aboutsummaryrefslogtreecommitdiff
path: root/REORG.TODO/sysdeps/unix/sysv/linux
diff options
context:
space:
mode:
Diffstat (limited to 'REORG.TODO/sysdeps/unix/sysv/linux')
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/Implies9
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/Makefile212
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/Versions175
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/_G_config.h59
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/_exit.c42
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/a.out.h138
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/aarch64/Implies3
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/aarch64/Makefile35
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/aarch64/Versions12
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/aarch64/__read_tp.S25
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/aarch64/arch-fork.h28
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/aarch64/bits/fcntl.h61
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/aarch64/bits/hwcap.h36
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/aarch64/bits/ipc.h54
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/aarch64/bits/local_lim.h101
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/aarch64/bits/mman.h44
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/aarch64/bits/sigstack.h32
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/aarch64/c++-types.data67
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/aarch64/clone.S92
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/aarch64/configure17
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/aarch64/configure.ac6
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/aarch64/cpu-features.c37
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/aarch64/cpu-features.h49
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/aarch64/dl-cache.h56
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/aarch64/dl-procinfo.c75
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/aarch64/dl-procinfo.h86
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/aarch64/dl-static.c84
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/aarch64/getcontext.S109
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/aarch64/init-first.c52
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/aarch64/ioctl.S31
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/aarch64/ipc_priv.h21
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/aarch64/kernel_rt_sigframe.h25
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/aarch64/ld.abilist10
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/aarch64/ldconfig.h30
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/aarch64/ldsodefs.h32
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/aarch64/libBrokenLocale.abilist2
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/aarch64/libanl.abilist5
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/aarch64/libc-__read_tp.S19
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/aarch64/libc-start.c28
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/aarch64/libc-vdso.h33
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/aarch64/libc.abilist2105
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/aarch64/libcrypt.abilist8
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/aarch64/libdl.abilist10
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/aarch64/libm.abilist462
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/aarch64/libnsl.abilist122
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist226
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/aarch64/libresolv.abilist92
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/aarch64/librt.abilist36
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/aarch64/libthread_db.abilist41
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/aarch64/libutil.abilist7
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/aarch64/localplt.data20
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/aarch64/makecontext.c74
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/aarch64/profil-counter.h20
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/aarch64/pt-vfork.c54
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/aarch64/readelflib.c18
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/aarch64/setcontext.S130
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/aarch64/shlib-versions7
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/aarch64/sigaction.c70
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/aarch64/sigcontextinfo.h35
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/aarch64/swapcontext.S101
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/aarch64/sys/elf.h26
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/aarch64/sys/procfs.h123
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/aarch64/sys/ptrace.h207
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/aarch64/sys/ucontext.h59
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/aarch64/sys/user.h37
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/aarch64/syscall.S44
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/aarch64/sysdep-cancel.h134
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/aarch64/sysdep.c33
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/aarch64/sysdep.h297
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/aarch64/ucontext-internal.h45
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/aarch64/ucontext_i.sym55
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/aarch64/vfork.S42
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/accept.c34
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/accept4.c36
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/access.c47
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/adjtime.c92
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/aio_misc.h68
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/aio_sigqueue.c52
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/alpha/Implies5
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/alpha/Makefile46
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/alpha/Versions113
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/alpha/____longjmp_chk.S144
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/alpha/a.out.h197
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/alpha/adjtime.c94
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/alpha/aio_cancel.c33
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/alpha/alpha/ptrace.h18
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/alpha/alpha/regdef.h44
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/alpha/alphaev6/fpu/Implies2
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/alpha/alphaev67/fpu/Implies2
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/alpha/arch-fork.h28
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/alpha/bits/a.out.h9
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/alpha/bits/dirent.h57
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/alpha/bits/elfclass.h14
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/alpha/bits/epoll.h27
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/alpha/bits/errno.h65
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/alpha/bits/eventfd.h31
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/alpha/bits/fcntl.h87
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/alpha/bits/inotify.h29
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/alpha/bits/ioctls.h36
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/alpha/bits/ipc.h54
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/alpha/bits/local_lim.h99
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/alpha/bits/mman.h66
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/alpha/bits/msq.h74
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/alpha/bits/netdb.h34
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/alpha/bits/resource.h265
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/alpha/bits/sem.h84
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/alpha/bits/semaphore.h33
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/alpha/bits/shm.h100
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/alpha/bits/sigaction.h75
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/alpha/bits/signalfd.h29
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/alpha/bits/signum.h81
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/alpha/bits/sigstack.h32
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/alpha/bits/socket_type.h55
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/alpha/bits/stat.h160
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/alpha/bits/statfs.h68
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/alpha/bits/termios.h223
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/alpha/bits/timerfd.h29
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/alpha/bits/typesizes.h76
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/alpha/bits/wordsize.h19
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/alpha/brk.S84
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/alpha/c++-types.data67
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/alpha/clone.S120
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/alpha/configure5
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/alpha/configure.ac5
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/alpha/dl-auxv.h35
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/alpha/dl-brk.S1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/alpha/dl-fxstatat64.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/alpha/dl-support.c2
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/alpha/dl-sysdep.c5
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/alpha/fpu/Implies2
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/alpha/fraiseexcpt.S58
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/alpha/fstatfs64.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/alpha/fstatvfs.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/alpha/fstatvfs64.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/alpha/fxstat.c58
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/alpha/fxstatat.c53
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/alpha/getclktck.c2
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/alpha/getcontext.S187
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/alpha/getdents.c3
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/alpha/getdents64.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/alpha/gethostname.c45
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/alpha/getsysstats.c57
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/alpha/glob.c51
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/alpha/ieee_get_fp_control.S50
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/alpha/ieee_set_fp_control.S46
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/alpha/internal_statvfs64.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/alpha/ioperm.c882
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/alpha/ipc_priv.h32
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/alpha/kernel-features.h38
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/alpha/kernel_sigaction.h15
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/alpha/kernel_stat.h89
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/alpha/kernel_sysinfo.h6
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/alpha/kernel_termios.h43
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/alpha/ld.abilist13
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/alpha/libBrokenLocale.abilist2
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/alpha/libanl.abilist5
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/alpha/libc.abilist2503
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/alpha/libcrypt.abilist8
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/alpha/libdl.abilist14
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/alpha/libm.abilist622
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/alpha/libnsl.abilist124
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/alpha/libpthread.abilist259
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/alpha/libresolv.abilist100
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/alpha/librt.abilist56
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/alpha/libthread_db.abilist44
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/alpha/libutil.abilist7
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/alpha/localplt.data37
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/alpha/lxstat.c58
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/alpha/makecontext.S163
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/alpha/nldbl-abi.h8
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/alpha/oldglob.c99
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/alpha/pipe.S1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/alpha/pt-vfork.S43
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/alpha/register-dump.h156
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/alpha/rt_sigaction.S120
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/alpha/select.c53
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/alpha/setcontext.S34
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/alpha/setfpucw.c61
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/alpha/shlib-versions14
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/alpha/sigaction.c38
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/alpha/sigcontextinfo.h24
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/alpha/sigprocmask.c57
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/alpha/sizes.h23
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/alpha/statfs64.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/alpha/statvfs.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/alpha/statvfs64.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/alpha/swapcontext.S50
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/alpha/sys/acct.h63
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/alpha/sys/io.h94
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/alpha/sys/procfs.h127
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/alpha/sys/ucontext.h67
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/alpha/sys/user.h52
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/alpha/syscall.S70
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/alpha/syscalls.list45
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/alpha/sysconf.c127
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h174
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/alpha/sysdep.h96
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/alpha/timer_create.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/alpha/timer_delete.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/alpha/timer_getoverr.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/alpha/timer_gettime.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/alpha/timer_settime.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/alpha/ucontext-offsets.sym18
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/alpha/vfork.S41
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/alpha/wordexp.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/alpha/xstat.c58
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/alpha/xstatconv.c120
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/alpha/xstatconv.h22
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/arch-fork.h27
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/arm/Implies1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/arm/Makefile69
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/arm/Versions19
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/arm/____longjmp_chk.S90
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/arm/aeabi_read_tp.S55
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/arm/alphasort64.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/arm/arch-fork.h27
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/arm/arm-features.h30
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/arm/atomic-machine.h107
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/arm/bits/fcntl.h54
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/arm/bits/hwcap.h45
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/arm/bits/mman.h40
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/arm/bits/shm.h103
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/arm/brk.c41
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/arm/c++-types.data67
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/arm/clone.S84
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/arm/dl-cache.h34
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/arm/dl-machine.h30
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/arm/dl-procinfo.c66
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/arm/dl-procinfo.h93
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/arm/fcntl.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/arm/fxstat.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/arm/fxstatat.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/arm/getcontext.S115
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/arm/getdents64.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/arm/glob64.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/arm/init-first.c44
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/arm/ioperm.c183
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/arm/kernel-features.h41
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/arm/ld.abilist10
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/arm/ldconfig.h25
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/arm/ldsodefs.h73
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/arm/libBrokenLocale.abilist2
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/arm/libanl.abilist5
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/arm/libc-do-syscall.S51
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/arm/libc-vdso.h33
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/arm/libc.abilist2154
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/arm/libcrypt.abilist8
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/arm/libdl.abilist10
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/arm/libm.abilist432
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/arm/libnsl.abilist122
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/arm/libpthread.abilist228
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/arm/libresolv.abilist93
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/arm/librt.abilist42
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/arm/libthread_db.abilist41
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/arm/libutil.abilist7
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/arm/localplt.data19
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/arm/lockf64.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/arm/lxstat.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/arm/makecontext.c73
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/arm/profil-counter.h34
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/arm/readahead.c37
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/arm/readdir64.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/arm/readdir64_r.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/arm/readelflib.c79
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/arm/register-dump.h136
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/arm/scandir64.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/arm/setcontext.S111
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/arm/shlib-versions9
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/arm/sigaction.c84
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/arm/sigcontextinfo.h48
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/arm/sigrestorer.S84
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/arm/swapcontext.S63
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/arm/sys/elf.h25
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/arm/sys/io.h47
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/arm/sys/procfs.h122
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/arm/sys/ucontext.h114
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/arm/sys/user.h71
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/arm/syscall.S48
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/arm/syscalls.list33
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/arm/sysdep-cancel.h241
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/arm/sysdep.S33
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/arm/sysdep.h442
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/arm/tls.h42
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/arm/ucontext_i.sym30
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/arm/umount.c30
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/arm/versionsort64.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/arm/vfork.S59
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/arm/xstat.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/bind.c35
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/bits/a.out.h7
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/bits/dirent.h57
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/bits/epoll.h27
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/bits/errno.h66
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/bits/eventfd.h31
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/bits/fcntl-linux.h411
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/bits/fcntl.h3
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/bits/in.h256
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/bits/initspin.h1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/bits/inotify.h29
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/bits/ioctl-types.h77
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/bits/ioctls.h108
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/bits/ipc.h55
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/bits/local_lim.h99
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/bits/mqueue.h33
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/bits/msq.h77
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/bits/param.h42
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/bits/poll.h49
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/bits/posix_opt.h191
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/bits/resource.h327
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/bits/sched.h211
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/bits/sem.h86
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/bits/shm.h103
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/bits/sigaction.h78
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/bits/sigcontext.h37
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/bits/sigevent-consts.h41
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/bits/siginfo-arch.h7
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/bits/siginfo-consts-arch.h7
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/bits/siginfo-consts.h187
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/bits/signalfd.h29
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/bits/signum.h79
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/bits/sigstack.h32
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/bits/socket.h447
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/bits/socket_type.h55
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/bits/ss_flags.h35
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/bits/stat.h172
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/bits/statfs.h69
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/bits/statvfs.h109
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/bits/sys_errlist.h32
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/bits/sysctl.h1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/bits/termios.h219
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/bits/time.h83
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/bits/timerfd.h29
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/bits/timex.h110
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/bits/types/__sigset_t.h10
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/bits/types/sigevent_t.h48
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/bits/types/siginfo_t.h151
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/bits/types/stack_t.h33
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/bits/uio.h78
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/bits/utsname.h28
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/bits/waitflags.h37
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/check_native.c177
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/check_pf.c391
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/clock.c39
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/clock_getcpuclockid.c48
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/clock_getres.c51
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/clock_gettime.c47
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/clock_nanosleep.c54
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/clock_settime.c38
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/close.c30
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/cmsg_nxthdr.c39
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/configure166
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/configure.ac122
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/connect.c33
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/creat.c40
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/creat64.c41
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/createthread.c152
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/default-sched.h42
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/device-nrs.h45
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/dl-brk.c5
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/dl-execstack.c67
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/dl-fxstatat64.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/dl-getcwd.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/dl-librecon.h60
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/dl-openat64.c31
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/dl-opendir.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/dl-origin.c80
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/dl-osinfo.h79
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/dl-sbrk.c5
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/dl-sysdep.c132
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/dl-sysdep.h33
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/dl-vdso.c49
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/dl-vdso.h53
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/dl-writev.h38
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/epoll_pwait.c59
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/epoll_wait.c32
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/errqueue.h45
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/eventfd_read.c27
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/eventfd_write.c28
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/exit-thread.h38
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/faccessat.c71
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/fallocate.c30
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/fallocate64.c33
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/fatal-prepare.h24
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/fchmodat.c40
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/fcntl.c85
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/fd_to_filename.h45
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/fdatasync.c29
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/fexecve.c55
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/fips-private.h74
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/fpathconf.c52
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/fstatfs64.c92
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/fstatvfs.c44
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/fstatvfs64.c68
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/fsync.c28
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/ftime.c3
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/ftruncate.c35
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/ftruncate64.c38
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/futex-internal.h251
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/futimens.c38
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/futimes.c51
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/futimesat.c38
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/fxstat.c61
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/fxstat64.c53
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/fxstatat.c65
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/fxstatat64.c47
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/gai_sigqueue.c52
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/generic/Makefile3
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/generic/README11
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/generic/____longjmp_chk.c57
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/generic/bits/fcntl.h56
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/generic/bits/msq.h84
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/generic/bits/sem.h92
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/generic/bits/shm.h111
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/generic/bits/stat.h171
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/generic/bits/statfs.h86
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/generic/bits/typesizes.h84
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/generic/brk.c45
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/generic/chmod.c31
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/generic/chown.c32
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/generic/dl-origin.c81
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/generic/dup2.c37
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/generic/epoll_create.c38
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/generic/futimesat.c51
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/generic/getdents.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/generic/getdents64.c37
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/generic/inotify_init.c32
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/generic/kernel_stat.h30
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/generic/lchown.c32
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/generic/link.c31
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/generic/lxstat.c48
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/generic/mkdir.c33
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/generic/pipe.c33
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/generic/readlink.c31
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/generic/readlink_chk.c39
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/generic/rmdir.c31
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/generic/symlink.c30
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/generic/syscalls.list12
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/generic/sysctl.c32
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/generic/sysdep.h35
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/generic/umount.c30
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/generic/unlink.c31
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/generic/ustat.c32
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/generic/utimes.c45
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/generic/wordsize-32/Versions5
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/generic/wordsize-32/fcntl.c86
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/generic/wordsize-32/fstatfs.c35
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/generic/wordsize-32/fxstat.c47
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/generic/wordsize-32/fxstat64.c36
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/generic/wordsize-32/fxstatat.c46
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/generic/wordsize-32/fxstatat64.c37
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/generic/wordsize-32/getdents.c115
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/generic/wordsize-32/lxstat.c45
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/generic/wordsize-32/lxstat64.c51
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/generic/wordsize-32/overflow.h60
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/generic/wordsize-32/sendfile.c45
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/generic/wordsize-32/statfs.c36
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/generic/wordsize-32/syscalls.list5
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/generic/wordsize-32/xstat.c45
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/generic/wordsize-32/xstat64.c51
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/generic/xmknod.c54
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/generic/xstat.c48
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/getclktck.c31
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/getcwd.c135
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/getdents.c272
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/getdents64.c3
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/getdirentries.c41
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/getdirentries64.c3
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/getdtsz.c21
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/getentropy.c73
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/gethostid.c118
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/getipv4sourcefilter.c73
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/getloadavg.c68
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/getlogin.c39
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/getlogin_r.c120
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/getpagesize.c32
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/getpeername.c35
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/getpriority.c45
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/getpt.c101
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/getrandom.c43
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/getrlimit.c56
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/getrlimit64.c87
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/getsockname.c35
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/getsockopt.c35
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/getsourcefilter.c146
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/getsysstats.c330
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/gettimeofday.c39
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/grantpt.c44
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/Implies1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/Makefile4
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/Versions38
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/____longjmp_chk.c47
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/arch-fork.h32
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/atomic-machine.h94
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/bits/epoll.h27
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/bits/errno.h66
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/bits/eventfd.h31
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/bits/fcntl.h85
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/bits/inotify.h29
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/bits/ioctls.h36
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/bits/ipc.h62
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/bits/mman.h111
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/bits/msq.h84
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/bits/sem.h91
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/bits/shm.h107
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/bits/sigaction.h81
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/bits/signalfd.h29
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/bits/signum.h89
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/bits/socket_type.h55
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/bits/timerfd.h29
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/brk.c41
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/c++-types.data67
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/clone.S161
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/fcntl.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/fxstat.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/fxstatat.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/getcontext.S165
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/getdents64.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/internaltypes.h84
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/ipc_priv.h21
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/kernel-features.h29
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/kernel_sigaction.h18
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/kernel_stat.h34
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/ld.abilist12
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/libBrokenLocale.abilist2
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/libanl.abilist5
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/libc.abilist2174
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/libcrypt.abilist8
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/libdl.abilist14
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/libm.abilist433
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/libnsl.abilist124
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/libpthread.abilist245
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/libresolv.abilist100
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/librt.abilist47
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/libthread_db.abilist44
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/libutil.abilist7
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/localplt.data24
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/lxstat.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/makecontext.c99
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/profil-counter.h24
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/pt-vfork.S79
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/pthread.h1203
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/pthreadP.h16
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/pthread_cond_broadcast.c40
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/pthread_cond_destroy.c40
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/pthread_cond_init.c40
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/pthread_cond_signal.c40
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/pthread_cond_wait.c53
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/setcontext.S158
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/shlib-versions9
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/swapcontext.c42
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/sys/procfs.h118
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/sys/ucontext.h67
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/sys/user.h1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/syscall.c65
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/syscalls.list16
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/sysdep-cancel.h279
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/sysdep.c29
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/sysdep.h512
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/ucontext_i.sym59
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/umount.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/utimes.c30
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/hppa/xstat.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/i386/Implies2
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/i386/Makefile46
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/i386/Versions51
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/i386/____longjmp_chk.S109
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/i386/_exit.S44
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/i386/alphasort64.c48
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/i386/arch-fork.h27
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/i386/brk.c41
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/i386/c++-types.data67
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/i386/clone.S124
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/i386/configure44
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/i386/configure.ac22
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/i386/dl-librecon.h62
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/i386/dl-procinfo.h47
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/i386/dl-sysdep.h46
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/i386/fcntl.c61
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/i386/fxstat.c61
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/i386/fxstatat.c56
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/i386/get_clockfreq.c88
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/i386/getcontext.S83
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/i386/getdents64.c39
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/i386/getmsg.c33
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/i386/gettimeofday.c35
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/i386/glob64.c76
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/i386/i686/Implies1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/i386/i686/dl-sysdep.h29
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/i386/i786/Implies2
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/i386/init-first.c50
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/i386/kernel-features.h50
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/i386/ld.abilist13
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/i386/ldconfig.h24
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/i386/libBrokenLocale.abilist2
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/i386/libanl.abilist5
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/i386/libc-do-syscall.S53
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/i386/libc-lowlevellock.S19
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/i386/libc.abilist2333
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/i386/libcrypt.abilist8
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/i386/libdl.abilist14
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/i386/libm.abilist476
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/i386/libnsl.abilist124
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/i386/libpthread.abilist257
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/i386/libresolv.abilist100
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/i386/librt.abilist47
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/i386/libthread_db.abilist44
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/i386/libutil.abilist7
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/i386/lll_timedlock_wait.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/i386/lll_timedwait_tid.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/i386/localplt.data18
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/i386/lockf64.c70
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/i386/lowlevellock.S466
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/i386/lowlevellock.h267
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/i386/lxstat.c62
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/i386/makecontext.S120
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/i386/olddirent.h44
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/i386/profil-counter.h31
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/i386/putmsg.c34
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/i386/readdir64.c43
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/i386/readdir64_r.c43
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/i386/readelflib.c93
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/i386/register-dump.h255
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/i386/scandir64.c136
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/i386/setcontext.S96
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/i386/shlib-versions1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/i386/sigaction.c129
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/i386/sigcontextinfo.h50
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/i386/smp.h55
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/i386/swapcontext.S109
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/i386/syscall.S35
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/i386/syscalls.list26
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/i386/sysdep-cancel.h153
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/i386/sysdep.c30
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/i386/sysdep.h657
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/i386/time.c34
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/i386/ucontext_i.sym30
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/i386/versionsort64.c48
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/i386/vfork.S57
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/i386/xstat.c61
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/ia64/Implies2
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/ia64/Makefile27
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/ia64/Versions41
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/ia64/____longjmp_chk.S88
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/ia64/__ia64_longjmp.S158
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/ia64/__longjmp.S168
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/ia64/__sigstack_longjmp.c167
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/ia64/__start_context.S51
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/ia64/arch-fork.h31
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/ia64/bits/endian.h7
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/ia64/bits/fcntl.h53
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/ia64/bits/ipc.h53
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/ia64/bits/local_lim.h99
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/ia64/bits/mman.h41
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/ia64/bits/msq.h75
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/ia64/bits/sem.h85
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/ia64/bits/setjmp.h34
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/ia64/bits/shm.h94
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/ia64/bits/sigaction.h75
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/ia64/bits/sigcontext.h82
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/ia64/bits/siginfo-arch.h17
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/ia64/bits/siginfo-consts-arch.h45
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/ia64/bits/sigstack.h36
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/ia64/bits/stat.h149
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/ia64/brk.S51
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/ia64/bsd-_setjmp.S1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/ia64/bsd-setjmp.S1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/ia64/c++-types.data67
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/ia64/clone.S1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/ia64/clone2.S91
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/ia64/configure8
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/ia64/configure.ac8
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/ia64/dl-brk.S1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/ia64/dl-cache.h24
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/ia64/dl-static.c61
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/ia64/dl-sysdep.h55
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/ia64/get_clockfreq.c87
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/ia64/getclktck.c2
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/ia64/getcontext.S157
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/ia64/has_cpuclock.c51
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/ia64/ioperm.c201
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/ia64/kernel-features.h29
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/ia64/kernel_stat.h21
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/ia64/ld.abilist11
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/ia64/ldconfig.h24
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/ia64/ldd-rewrite.sed1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/ia64/ldsodefs.h32
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/ia64/libBrokenLocale.abilist2
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/ia64/libanl.abilist5
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/ia64/libc.abilist2194
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/ia64/libcrypt.abilist8
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/ia64/libdl.abilist14
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/ia64/libm.abilist405
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/ia64/libnsl.abilist124
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/ia64/libpthread.abilist247
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/ia64/libresolv.abilist100
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/ia64/librt.abilist53
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/ia64/libthread_db.abilist44
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/ia64/libutil.abilist7
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/ia64/localplt.data17
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/ia64/makecontext.c88
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/ia64/pipe.S37
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/ia64/profil-counter.h31
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/ia64/pt-vfork.S48
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/ia64/readelflib.c59
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/ia64/register-dump.h181
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/ia64/rt-sysdep.S1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/ia64/setcontext.S152
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/ia64/setjmp.S198
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/ia64/shlib-versions8
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/ia64/sigaction.c45
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/ia64/sigaltstack-offsets.sym13
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/ia64/sigcontext-offsets.sym16
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/ia64/sigcontextinfo.h25
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/ia64/sigpending.c36
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/ia64/sigprocmask.c39
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/ia64/swapcontext.c39
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/ia64/sys/io.h67
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/ia64/sys/procfs.h129
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/ia64/sys/ptrace.h227
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/ia64/sys/rse.h77
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/ia64/sys/ucontext.h67
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/ia64/sys/user.h47
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/ia64/syscall.S33
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/ia64/syscalls.list28
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/ia64/sysconf.c30
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h223
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/ia64/sysdep.S58
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/ia64/sysdep.h387
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/ia64/system.c30
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/ia64/timer_create.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/ia64/timer_delete.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/ia64/timer_getoverr.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/ia64/timer_gettime.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/ia64/timer_settime.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/ia64/tst-setcontext2.c24
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/ia64/ucontext_i.h46
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/ia64/umount.c29
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/ia64/unwind-dw2-fde.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/ia64/unwind-forcedunwind.c38
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/ia64/unwind_longjmp.c43
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/ia64/vfork.S50
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/ia64/wordexp.c59
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/if_index.c241
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/ifaddrs.c846
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/ifreq.c74
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/include/bits/syscall.h3
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/include/sys/sysinfo.h29
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/include/sys/timex.h29
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/internal_statvfs.c87
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/internal_statvfs64.c4
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/ipc_ops.h30
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/ipc_priv.h39
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/kernel-features.h104
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/kernel-posix-cpu-timers.h18
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/kernel-posix-timers.h67
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/kernel_sigaction.h19
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/kernel_stat.h38
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/kernel_termios.h34
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/ldd-rewrite.sed11
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/lddlibc4.c105
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/ldsodefs.h39
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/libc_fatal.c68
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/linux_fsinfo.h271
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/listen.c35
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/local-setxid.h16
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/lowlevellock-futex.h145
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/lseek.c57
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/lseek64.c54
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/lutimes.c44
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/lxstat.c60
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/lxstat64.c52
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/m68k/Implies1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/m68k/Makefile25
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/m68k/Versions54
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/m68k/____longjmp_chk.c38
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/m68k/alphasort64.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/m68k/arch-fork.h28
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/m68k/bits/a.out.h3
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/m68k/bits/fcntl.h54
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/m68k/bits/mman.h40
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/m68k/bits/poll.h49
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/m68k/bits/sockaddr.h42
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/m68k/bits/stat.h172
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/m68k/brk.c47
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/m68k/c++-types.data67
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/m68k/clone.S111
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/m68k/coldfire/atomic-machine.h109
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/m68k/coldfire/ld.abilist10
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/m68k/coldfire/libBrokenLocale.abilist2
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/m68k/coldfire/libanl.abilist5
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist2133
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/m68k/coldfire/libcrypt.abilist8
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/m68k/coldfire/libdl.abilist10
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist432
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/m68k/coldfire/libnsl.abilist122
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist228
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/m68k/coldfire/libresolv.abilist93
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist42
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/m68k/coldfire/libthread_db.abilist41
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/m68k/coldfire/libutil.abilist7
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/m68k/coldfire/shlib-versions1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/m68k/coldfire/sysdep.h29
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/m68k/configure9
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/m68k/configure.ac10
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/m68k/dl-librecon.h1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/m68k/dl-static.c84
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/m68k/fcntl.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/m68k/fxstat.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/m68k/fxstatat.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/m68k/getdents64.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/m68k/getmsg.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/m68k/getpagesize.c49
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/m68k/getsysstats.c37
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/m68k/glob64.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/m68k/init-first.c74
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/m68k/kernel-features.h57
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/m68k/ldconfig.h1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/m68k/ldsodefs.h32
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/m68k/libc-m68k-vdso.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/m68k/localplt.data17
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/m68k/lockf64.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/m68k/lxstat.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/m68k/m680x0/Makefile3
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/m68k/m680x0/getcontext.S63
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/m68k/m680x0/ld.abilist13
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/m68k/m680x0/libBrokenLocale.abilist2
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/m68k/m680x0/libanl.abilist5
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist2288
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/m68k/m680x0/libcrypt.abilist8
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/m68k/m680x0/libdl.abilist14
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist474
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/m68k/m680x0/libnsl.abilist124
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist257
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/m68k/m680x0/libresolv.abilist100
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist47
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/m68k/m680x0/libthread_db.abilist44
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/m68k/m680x0/libutil.abilist7
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/m68k/m680x0/makecontext.S103
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/m68k/m680x0/setcontext.S94
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/m68k/m680x0/swapcontext.S108
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/m68k/m680x0/sysdep.h28
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/m68k/m680x0/ucontext_i.sym20
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/m68k/m68k-helpers.S95
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/m68k/m68k-vdso.c34
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/m68k/m68k-vdso.h60
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/m68k/mmap_internal.h29
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/m68k/mremap.S28
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/m68k/pt-vfork.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/m68k/putmsg.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/m68k/readdir64.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/m68k/readdir64_r.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/m68k/register-dump.h207
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/m68k/scandir64.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/m68k/sigcontextinfo.h25
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/m68k/sys/procfs.h125
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/m68k/sys/reg.h101
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/m68k/sys/ucontext.h131
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/m68k/sys/user.h65
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/m68k/syscall.S32
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/m68k/syscalls.list21
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/m68k/sysdep-cancel.h138
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/m68k/sysdep.S50
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/m68k/sysdep.h326
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/m68k/versionsort64.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/m68k/vfork.S60
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/m68k/xstat.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/malloc-sysdep.h59
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/microblaze/Implies1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/microblaze/Makefile9
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/microblaze/Versions5
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/microblaze/____longjmp_chk.S29
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/microblaze/arch-fork.h27
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/microblaze/bits/fcntl.h86
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/microblaze/bits/mman.h42
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/microblaze/bits/stat.h203
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/microblaze/brk.c44
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/microblaze/c++-types.data67
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/microblaze/clock-compat.c31
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/microblaze/clone.S73
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/microblaze/fcntl.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/microblaze/fxstat.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/microblaze/fxstatat.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/microblaze/getsysstats.c34
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/microblaze/kernel-features.h49
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/microblaze/kernel_stat.h52
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/microblaze/ld.abilist10
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/microblaze/libBrokenLocale.abilist2
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/microblaze/libanl.abilist5
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/microblaze/libc.abilist2105
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/microblaze/libcrypt.abilist8
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/microblaze/libdl.abilist10
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/microblaze/libm.abilist430
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/microblaze/libnsl.abilist122
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/microblaze/libpthread.abilist225
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/microblaze/libresolv.abilist92
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/microblaze/librt.abilist41
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/microblaze/libthread_db.abilist41
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/microblaze/libutil.abilist7
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/microblaze/localplt.data18
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/microblaze/lxstat.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/microblaze/profil-counter.h2
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/microblaze/pt-vfork.S49
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/microblaze/shlib-versions1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/microblaze/sigcontextinfo.h25
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/microblaze/sys/procfs.h123
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/microblaze/sys/user.h69
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/microblaze/syscall.S37
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/microblaze/syscalls.list7
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/microblaze/sysdep-cancel.h158
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/microblaze/sysdep.S39
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/microblaze/sysdep.h313
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/microblaze/vfork.S46
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/microblaze/xstat.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/Implies1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/Makefile112
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/Versions44
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/____longjmp_chk.c41
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/_test_and_set.c29
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/arch-fork.h1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/bits/epoll.h27
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/bits/errno.h65
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/bits/eventfd.h31
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/bits/fcntl.h104
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/bits/inotify.h29
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/bits/ioctl-types.h75
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/bits/ipc.h54
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/bits/local_lim.h99
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/bits/mman.h46
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/bits/msq.h92
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/bits/poll.h49
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/bits/resource.h273
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/bits/sem.h84
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/bits/shm.h95
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/bits/sigaction.h89
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/bits/sigcontext.h82
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/bits/siginfo-arch.h13
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/bits/signalfd.h29
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/bits/signum.h78
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/bits/socket_type.h55
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/bits/stat.h263
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/bits/statfs.h73
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/bits/termios.h222
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/bits/timerfd.h29
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/bits/types/stack_t.h33
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/brk.c47
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/clone.S152
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/configure477
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/configure.ac136
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/dl-cache.h72
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/dl-static.c84
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/getcontext.S154
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/getmsg.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/getrlimit64.c68
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/getsysstats.c36
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/init-first.c44
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/kernel-features.h49
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/kernel_rt_sigframe.h12
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/kernel_sigaction.h40
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/kernel_stat.h60
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/kernel_termios.h34
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/ldsodefs.h40
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/libc-abis16
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/libc-vdso.h33
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/makecontext.S198
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/Makefile4
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/Versions6
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/c++-types.data67
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/fcntl.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist2256
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/fxstatat.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/ld.abilist14
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/libBrokenLocale.abilist3
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/libanl.abilist6
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/libcidn.abilist1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/libcrypt.abilist9
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/libdl.abilist15
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist435
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/libnsl.abilist124
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/libnss_compat.abilist1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/libnss_db.abilist1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/libnss_dns.abilist1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/libnss_files.abilist1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/libnss_hesiod.abilist1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/libnss_nis.abilist1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/libnss_nisplus.abilist1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist257
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/libresolv.abilist101
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist47
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/libthread_db.abilist45
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/libutil.abilist8
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/lockf64.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/mips16/Makefile13
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/mips16/Versions6
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall.h89
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall0.c30
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall1.c32
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall2.c32
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall3.c32
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall4.c32
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall5.c33
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall6.c33
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall7.c33
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist2254
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/readahead.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/syscalls.list5
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/sysdep.h396
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/Makefile21
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/configure4
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/configure.ac5
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/fxstat64.c44
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/fxstatat64.c55
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/ipc_priv.h32
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/ldconfig.h25
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/ldd-rewrite.sed1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/libBrokenLocale.abilist2
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/libanl.abilist5
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/libcrypt.abilist8
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/libdl.abilist14
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist465
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/libnsl.abilist123
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist256
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/librt.abilist46
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/libthread_db.abilist44
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/libutil.abilist7
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/lxstat64.c43
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/msgctl.c25
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/n32/Versions6
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/n32/c++-types.data67
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/n32/fcntl.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/n32/ld.abilist13
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist2251
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/n32/libresolv.abilist100
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/n32/lockf64.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/n32/lseek.c36
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/n32/mmap_internal.h28
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/n32/syscalls.list13
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/n32/sysdep.h321
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/n64/c++-types.data67
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/n64/fstatfs64.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/n64/fts.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/n64/fts64.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/n64/ftw.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/n64/ftw64.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/n64/glob64.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/n64/ioctl.S41
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/n64/ld.abilist13
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist2245
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/n64/libresolv.abilist100
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/n64/posix_fadvise64.c35
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/n64/sendfile64.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/n64/statfs64.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/n64/syscalls.list12
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/n64/sysdep.h317
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/semctl.c25
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/shmctl.c25
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/syscall.S63
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/sysdep-cancel.h249
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/umount.c30
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/xstat64.c44
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/pipe.S1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/profil-counter.h2
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/pt-vfork.S1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/putmsg.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/readelflib.c91
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/register-dump.h121
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/setcontext.S196
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/setrlimit64.c64
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/shlib-versions27
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/sigaction.c116
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/sigcontextinfo.h42
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/swapcontext.S214
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/sys/cachectl.h41
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/sys/procfs.h126
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/sys/sysmips.h42
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/sys/ucontext.h125
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/sys/user.h210
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/syscalls.list23
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/sysdep-cancel.h190
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/ucontext_i.sym52
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/ustat.c35
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/vfork.S94
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mips/xstatconv.c201
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mmap.c51
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mmap64.c60
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mmap_internal.h49
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mq_close.c34
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mq_getattr.c34
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mq_notify.c282
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mq_open.c66
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mq_receive.c36
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mq_send.c35
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mq_timedreceive.c34
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mq_timedsend.c33
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/mq_unlink.c49
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/msgctl.c71
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/msgget.c35
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/msgrcv.c34
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/msgsnd.c33
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/msync.c26
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/nanosleep.c30
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/net/ethernet.h84
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/net/if_arp.h182
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/net/if_packet.h36
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/net/if_ppp.h171
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/net/if_shaper.h58
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/net/if_slip.h24
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/net/ppp-comp.h1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/net/ppp_defs.h8
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/net/route.h144
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/netash/ash.h39
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/netatalk/at.h28
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/netax25/ax25.h170
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/neteconet/ec.h51
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/netinet/if_ether.h104
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/netinet/if_fddi.h34
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/netinet/if_tr.h110
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/netipx/ipx.h111
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/netiucv/iucv.h48
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/netlink_assert_response.c106
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/netlinkaccess.h58
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/netpacket/packet.h80
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/netrom/netrom.h83
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/netrose/rose.h118
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/nfs/nfs.h1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/nice.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/nios2/Implies3
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/nios2/Makefile13
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/nios2/Versions6
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/nios2/arch-fork.h33
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/nios2/atomic-machine.h95
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/nios2/bits/mman.h42
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/nios2/c++-types.data67
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/nios2/cacheflush.c29
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/nios2/clone.S95
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/nios2/configure4
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/nios2/configure.ac4
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/nios2/getcontext.S66
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/nios2/ipc_priv.h21
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/nios2/kernel_rt_sigframe.h26
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/nios2/ld.abilist10
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/nios2/libBrokenLocale.abilist2
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/nios2/libanl.abilist5
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/nios2/libc.abilist2146
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/nios2/libcrypt.abilist8
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/nios2/libdl.abilist10
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/nios2/libm.abilist430
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/nios2/libnsl.abilist122
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/nios2/libpthread.abilist223
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/nios2/libresolv.abilist92
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/nios2/librt.abilist36
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/nios2/libthread_db.abilist41
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/nios2/libutil.abilist7
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/nios2/localplt.data38
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/nios2/makecontext.c79
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/nios2/profil-counter.h2
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/nios2/setcontext.S115
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/nios2/shlib-versions2
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/nios2/sigcontextinfo.h35
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/nios2/swapcontext.S125
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/nios2/sys/cachectl.h33
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/nios2/sys/procfs.h123
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/nios2/sys/ucontext.h62
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/nios2/sys/user.h58
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/nios2/syscall.S36
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/nios2/sysdep-cancel.h141
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/nios2/sysdep.S50
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/nios2/sysdep.h264
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/nios2/ucontext_i.sym29
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/nios2/vfork.S34
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/not-cancel.h109
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/nptl-signals.h85
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/nscd_setup_thread.c49
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/ntp_gettime.c41
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/ntp_gettimex.c42
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/open.c51
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/open64.c59
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/open_by_handle_at.c37
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/openat.c61
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/openat64.c4
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/opendir.c20
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/opensock.c114
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/pathconf.c293
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/pathconf.h40
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/paths.h75
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/pause.c35
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/personality.c49
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/poll.c46
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/posix_fadvise.c74
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/posix_fadvise64.c85
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/posix_fallocate.c37
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/posix_fallocate64.c44
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/posix_madvise.c37
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/Implies1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/Makefile39
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/Versions19
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/arch-fork.h1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/bits/environments.h96
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/bits/fcntl.h62
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/bits/ioctl-types.h77
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/bits/ipc.h54
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/bits/local_lim.h100
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/bits/mman.h49
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/bits/msq.h83
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/bits/ppc.h33
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/bits/sem.h90
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/bits/semaphore.h40
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/bits/shm.h112
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/bits/sigstack.h32
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/bits/stat.h275
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/bits/termios.h279
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/bits/wordsize.h11
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/configure79
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/configure.ac39
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/dl-brk.S1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/dl-cache.h1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/dl-static.c84
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/dl-sysdep.c33
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/elision-conf.c83
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/elision-conf.h42
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/elision-lock.c86
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/elision-timed.c28
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/elision-trylock.c69
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/elision-unlock.c43
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/force-elision.h28
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/get_clockfreq.c107
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/get_timebase_freq.c27
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/getdents64.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/getmsg.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/gettimeofday.c85
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/htm.h171
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/init-first.c85
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/ioctl.c64
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/ipc_priv.h39
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/kernel-features.h51
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/kernel_termios.h53
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/ldconfig.h27
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/ldd-rewrite.sed15
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/ldsodefs.h33
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/libc-start.c105
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/libc-vdso.h74
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/lowlevellock.h48
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/nldbl-abi.h8
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/405/Implies2
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/440/Implies2
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/464/Implies2
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/476/Implies2
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/970/Implies2
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/Makefile10
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/Versions46
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/____longjmp_chk.S76
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/a2/Implies2
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/brk.S52
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/c++-types.data67
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/cell/Implies2
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/cell/fpu/Implies3
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S101
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/configure4
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/configure.ac4
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/e500/nofpu/Implies3
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/fcntl.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/fe_mask.c33
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/fe_nomask.c37
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist2475
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist578
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/localplt.data16
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/fxstat.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/fxstatat.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/getcontext-common.S284
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/getcontext.S78
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/glob64.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/kernel_stat.h51
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/ld.abilist16
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/libBrokenLocale.abilist2
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/libanl.abilist5
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/libcrypt.abilist8
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/libdl.abilist14
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/libnsl.abilist124
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist262
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/libresolv.abilist100
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist47
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/libthread_db.abilist44
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/libutil.abilist7
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/lockf64.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/lxstat.c2
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/makecontext.S226
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/Implies2
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/context-e500.h144
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/getcontext.S60
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist2521
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist577
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/localplt.data46
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/setcontext.S60
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/swapcontext.S60
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/scandir64.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext-common.S306
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext.S80
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext-common.S529
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext.S78
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/syscalls.list10
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h118
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep.h234
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/ucontext_i.sym26
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S38
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/xstat.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/970/Implies2
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/Implies1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/Versions43
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/____longjmp_chk.S68
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/a2/Implies2
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/brk.S43
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/c++-types.data67
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/cell/Implies2
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/cell/fpu/Implies1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/clone.S119
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/configure233
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/configure.ac36
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/dl-cache.h24
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/fcntl.c65
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/fpu/fe_mask.c35
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/fpu/fe_nomask.c39
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/getcontext.S383
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/kernel_stat.h21
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/ld-le.abilist13
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/ld.abilist14
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/ldsodefs.h80
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libBrokenLocale-le.abilist2
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libBrokenLocale.abilist2
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libanl-le.abilist5
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libanl.abilist5
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist2193
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist2327
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libcrypt-le.abilist8
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libcrypt.abilist8
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libdl-le.abilist10
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libdl.abilist12
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libm-le.abilist469
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libm.abilist569
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libnsl-le.abilist122
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libnsl.abilist122
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libpthread-le.abilist226
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libpthread.abilist247
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libresolv-le.abilist92
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libresolv.abilist94
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/librt-le.abilist36
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/librt.abilist52
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libthread_db-le.abilist41
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libthread_db.abilist42
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libutil-le.abilist7
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libutil.abilist7
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/localplt.data15
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/makecontext.S187
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/setcontext.S513
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/shlib-versions7
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/swapcontext.S797
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h147
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep.h239
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_create.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_delete.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_getoverr.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_gettime.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_settime.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/ucontext_i.sym29
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/umount.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/vfork.S39
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64le/Implies1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64le/fpu/Implies1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/profil-counter.h2
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/pt-longjmp.c61
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/pthread_attr_setstack.c2
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/pthread_attr_setstacksize.c9
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/pthread_mutex_cond_lock.c22
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/pthread_mutex_lock.c22
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/pthread_mutex_timedlock.c22
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/pthread_mutex_trylock.c22
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/putmsg.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/readdir64.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/readdir64_r.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/readelflib.c60
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/rt-sysdep.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/sigcontextinfo.h26
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/sys/procfs.h139
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/sys/ptrace.h199
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/sys/ucontext.h193
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/sys/user.h40
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/syscall.S31
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/sysdep.c28
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/test-gettimebasefreq.c63
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/powerpc/time.c84
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/ppoll.c41
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/pread.c37
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/pread64.c40
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/preadv.c55
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/preadv2.c55
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/preadv64.c56
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/preadv64v2.c55
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/prlimit.c74
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/prof-freq.c29
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/profil.c3
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/pselect.c89
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/pt-raise.c20
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/pthread-pids.h30
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/pthread_getaffinity.c59
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/pthread_getcpuclockid.c42
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/pthread_getname.c69
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/pthread_kill.c59
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/pthread_setaffinity.c59
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/pthread_setname.c63
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/pthread_sigmask.c54
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/pthread_sigqueue.c73
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/ptrace.c53
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/ptsname.c165
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/pwrite.c37
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/pwrite64.c40
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/pwritev.c55
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/pwritev2.c51
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/pwritev64.c56
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/pwritev64v2.c55
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/raise.c53
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/read.c33
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/readahead.c46
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/readdir64.c7
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/readdir64_r.c7
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/readonly-area.c102
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/readv.c27
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/reboot.c29
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/recv.c35
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/recvfrom.c35
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/recvmmsg.c36
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/recvmsg.c34
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/remove.c2
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/rename.c35
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/renameat.c32
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/Implies5
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/Makefile31
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/Versions16
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/arch-fork.h29
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/bits/elfclass.h38
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/bits/environments.h96
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/bits/fcntl.h71
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/bits/hwcap.h38
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/bits/ipc.h60
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/bits/mman.h41
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/bits/msq.h84
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/bits/sem.h90
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/bits/shm.h110
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/bits/sigaction.h112
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/bits/stat.h265
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/bits/statfs.h69
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/bits/typesizes.h89
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/bits/utmp.h123
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/bits/utmpx.h102
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/brk.c55
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/configure5
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/configure.ac5
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/dl-cache.h1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/dl-procinfo.h49
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/elision-conf.c82
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/elision-conf.h44
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/elision-lock.c125
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/elision-timed.c26
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/elision-trylock.c97
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/elision-unlock.c61
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/force-elision.h28
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/fpu/Implies2
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/fpu/s_fma.c5
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/htm.h187
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/init-first.c60
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/jmp-unwind.c33
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/kernel-features.h52
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/ldconfig.h25
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/ldd-rewrite.sed15
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/libanl.abilist5
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/libc-vdso.h38
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/localplt.data16
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/longjmp_chk.c48
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/lowlevellock.h50
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/mmap_internal.h32
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/nldbl-abi.h8
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/opensock.c2
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/pt-longjmp.c33
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/pt-vfork.S1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/pthread_mutex_cond_lock.c22
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/pthread_mutex_lock.c22
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/pthread_mutex_timedlock.c22
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/pthread_mutex_trylock.c22
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/readelflib.c59
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/rt-sysdep.S1
-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
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/Implies1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/Makefile18
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/Versions15
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/____longjmp_chk.c54
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/__makecontext_ret.S37
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/c++-types.data67
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/clone.S66
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/configure15
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/configure.ac4
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/dl-cache.h24
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/getcontext.S89
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/kernel_stat.h21
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/ld.abilist11
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/libBrokenLocale.abilist2
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist2360
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/libcrypt.abilist8
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/libdl.abilist12
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist563
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/libnsl.abilist122
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist248
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/libresolv.abilist94
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist52
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/libthread_db.abilist44
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/libutil.abilist7
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/makecontext.c96
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/profil-counter.h26
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/register-dump.h132
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/setcontext.S72
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/shlib-versions2
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/sigaction.c43
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/sigpending.c36
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/sigprocmask.c37
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/swapcontext.S108
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/syscall.S68
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h152
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/sysdep.S75
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h345
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/timer_create.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/timer_delete.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/timer_getoverr.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/timer_gettime.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/timer_settime.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/vfork.S47
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/sa_len.c3
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/semtimedop.c36
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/sigcontextinfo.h27
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/sys/elf.h25
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/sys/procfs.h176
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/sys/ptrace.h238
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/sys/ucontext.h96
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/sys/user.h82
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/sysconf.c230
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/system.c29
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/s390/ucontext_i.sym25
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sa_len.c9
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/safe-fatal.h33
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sched_getaffinity.c65
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sched_getcpu.c39
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sched_setaffinity.c57
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/scsi/scsi.h225
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/scsi/scsi_ioctl.h31
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/scsi/sg.h276
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/segfault.c2
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/select.c71
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/semctl.c109
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/semget.c35
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/semop.c34
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/semtimedop.c36
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/send.c37
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sendmmsg.c37
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sendmsg.c34
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sendto.c35
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/setegid.c41
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/seteuid.c41
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/setgid.c34
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/setgroups.c36
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sethostid.c2
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/setipv4sourcefilter.c65
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/setregid.c34
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/setresgid.c35
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/setresuid.c35
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/setreuid.c34
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/setrlimit.c59
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/setrlimit64.c46
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/setsockopt.c35
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/setsourcefilter.c78
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/setuid.c33
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sh/Implies1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sh/Makefile16
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sh/Versions33
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sh/____longjmp_chk.S122
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sh/arch-fork.h28
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sh/atomic-machine.h425
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sh/bits/fcntl.h50
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sh/bits/mman.h40
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sh/bits/shm.h101
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sh/brk.c47
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sh/c++-types.data67
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sh/clone.S103
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sh/configure4
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sh/configure.ac4
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sh/fcntl.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sh/fxstat.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sh/fxstatat.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sh/kernel-features.h54
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sh/ld.abilist12
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sh/libBrokenLocale.abilist2
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sh/libanl.abilist5
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sh/libc.abilist2178
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sh/libcrypt.abilist8
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sh/libdl.abilist14
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sh/libm.abilist433
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sh/libnsl.abilist124
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sh/libpthread.abilist245
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sh/libresolv.abilist100
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sh/librt.abilist47
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sh/libthread_db.abilist44
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sh/libutil.abilist7
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sh/localplt.data21
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sh/lockf64.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sh/lowlevel-atomic.h80
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sh/lxstat.c2
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sh/makecontext.S160
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sh/pipe.S42
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sh/profil-counter.h32
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sh/pt-vfork.S1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sh/sh3/getcontext.S87
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sh/sh3/register-dump.h150
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sh/sh3/setcontext.S99
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sh/sh3/swapcontext.S132
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sh/sh3/ucontext_i.sym38
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sh/sh4/getcontext.S132
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sh/sh4/register-dump.h263
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sh/sh4/setcontext.S141
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sh/sh4/swapcontext.S218
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sh/sh4/sysdep.h4
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sh/sh4/ucontext_i.sym73
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sh/shlib-versions5
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sh/sigaltstack-offsets.sym13
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sh/sigcontextinfo.h26
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sh/smp.h23
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sh/sys/procfs.h111
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sh/sys/ucontext.h127
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sh/sys/user.h67
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sh/syscall.S43
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sh/syscalls.list22
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sh/sysdep-cancel.h169
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sh/sysdep.S32
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sh/sysdep.h360
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sh/vfork.S52
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sh/xstat.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/shlib-versions2
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/shm-directory.c147
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/shmat.c46
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/shmctl.c73
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/shmdt.c35
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/shmget.c35
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/shutdown.c35
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sigaction.c69
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/siglist.h24
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/signal.c3
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/signalfd.c28
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sigpending.c32
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sigprocmask.c56
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sigqueue.c48
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sigreturn.c3
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sigset-cvt-mask.h43
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sigsetops.h108
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sigstack.c66
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sigsuspend.c30
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sigtimedwait.c69
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sigwait.c107
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sigwaitinfo.c73
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sizes.h23
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/socket.c36
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/socketcall.h104
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/socketpair.c35
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/Implies1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/Makefile20
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/Versions46
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/a.out.h174
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/aio_cancel.c33
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/arch-fork.h27
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/a.out.h13
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/environments.h96
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/epoll.h27
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/errno.h65
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/eventfd.h31
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/fcntl.h101
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/inotify.h29
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/ioctls.h36
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/ipc.h61
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/local_lim.h99
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/long-double.h26
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/mman.h53
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/msq.h84
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/poll.h49
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/resource.h280
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/sem.h91
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/setjmp.h67
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/shm.h110
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/sigaction.h82
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/sigcontext.h82
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/siginfo-arch.h12
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/siginfo-consts-arch.h12
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/signalfd.h29
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/signum.h83
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/sigstack.h32
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/socket_type.h55
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/stat.h173
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/termios.h225
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/timerfd.h29
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/typesizes.h83
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/wordsize.h11
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/configure5
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/configure.ac5
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/dl-cache.h38
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/getrlimit64.c24
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/getshmlba.c39
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/getsysstats.c55
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/kernel-features.h42
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/kernel_termios.h37
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/ldd-rewrite.sed3
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/lowlevellock.h135
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/pt-vfork.S1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/readelflib.c61
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/rt-sysdep.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/Implies3
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/Makefile28
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/Versions26
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/____longjmp_chk.S113
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/brk.c54
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/c++-types.data67
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/clone.S90
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/fcntl.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/fpu/Implies2
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/fxstat.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/fxstatat.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/getcontext.S84
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/getdents64.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/glob64.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/kernel_stat.h35
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/ld.abilist12
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/libBrokenLocale.abilist2
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/libanl.abilist5
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist2479
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/libcrypt.abilist8
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/libdl.abilist14
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist568
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/libnsl.abilist124
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist259
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/libresolv.abilist100
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist50
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/libthread_db.abilist44
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/libutil.abilist7
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/localplt.data27
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/lockf64.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/lxstat.c2
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/makecontext.c92
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/nldbl-abi.h8
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/pipe.S39
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/profil-counter.h28
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/readdir64.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/readdir64_r.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/register-dump.h335
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/scandir64.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/setcontext.S118
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/shlib-versions1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/sigaction.c88
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/sigcontextinfo.h31
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/fpu/Implies3
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/fpu/multiarch/Implies4
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/get_clockfreq.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/swapcontext.S118
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/syscall.S37
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/syscalls.list19
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h111
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h147
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/ucontext_i.sym61
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S41
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/xstat.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/Implies1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/Makefile9
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/Versions19
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/____longjmp_chk.S90
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/__longjmp.S1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/__start_context.S36
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/brk.S105
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/bsd-_setjmp.S1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/bsd-setjmp.S1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/c++-types.data67
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/clone.S87
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/configure15
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/configure.ac4
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/dl-brk.S1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/dl-cache.h24
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/dl-fxstatat64.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/fxstat.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/fxstatat.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/get_clockfreq.c250
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/getcontext.S64
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/ipc_priv.h41
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/kernel_stat.h48
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/ld.abilist11
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/libBrokenLocale.abilist2
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/libanl.abilist5
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist2220
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/libcrypt.abilist8
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/libdl.abilist14
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist464
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/libnsl.abilist124
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist247
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/libresolv.abilist100
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist56
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/libthread_db.abilist44
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/libutil.abilist7
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/localplt.data29
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/longjmp.S51
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/lxstat.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/makecontext.c57
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/personality.c3
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/pipe.S40
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/profil-counter.h28
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/register-dump.h256
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/setcontext.S38
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/setjmp.S67
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/shlib-versions5
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/sigaction.c78
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/sigcontextinfo.h31
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/sigjmp.S1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/sigpending.c33
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/sigprocmask.c33
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/sizes.h23
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/swapcontext.c47
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/syscall.S39
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list10
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h109
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h162
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/time.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/timer_create.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/timer_delete.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/timer_getoverr.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/timer_gettime.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/timer_settime.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/ucontext_i.h27
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S41
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/wordexp.c59
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/xstat.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/xstatconv.c124
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/sys/procfs.h210
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/sys/ptrace.h281
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/sys/trap.h7
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/sys/ucontext.h274
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/sys/user.h86
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/sysdep.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/sysdep.h185
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sparc/system.c29
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/spawni.c397
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/speed.c97
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/splice.c27
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/statfs64.c95
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/statvfs.c44
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/statvfs64.c69
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sync_file_range.c33
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sys/acct.h106
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sys/epoll.h138
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sys/eventfd.h44
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sys/fanotify.h38
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sys/fsuid.h35
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sys/inotify.h99
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sys/kd.h34
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sys/klog.h33
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sys/mount.h150
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sys/pci.h24
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sys/personality.h80
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sys/prctl.h31
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sys/procfs.h114
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sys/ptrace.h229
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sys/quota.h135
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sys/raw.h38
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sys/reboot.h54
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sys/signalfd.h57
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sys/soundcard.h1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sys/swap.h43
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sys/syscall.h34
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sys/sysctl.h73
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sys/sysinfo.h47
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sys/timerfd.h55
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sys/timex.h71
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sys/ttydefaults.h100
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sys/user.h1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sys/vt.h1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/syscalls.list111
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sysconf.c146
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sysctl.c43
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sysctl.mk3
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sysdep-vdso.h98
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/sysdep.h68
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/syslog.c4
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/system.c76
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/tcdrain.c30
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/tcflow.c28
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/tcflush.c28
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/tcgetattr.c79
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/tcgetpgrp.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/tcsendbrk.c44
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/tcsetattr.c80
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/tcsetpgrp.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/tee.c26
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/termio.h6
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/test-errno-linux.c181
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/tile/Implies1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/tile/Makefile28
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/tile/Versions18
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/tile/arch-fork.h29
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/tile/bits/environments.h100
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/tile/bits/local_lim.h100
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/tile/bits/mman.h40
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/tile/bits/sigaction.h77
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/tile/bits/siginfo-arch.h10
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/tile/bits/siginfo-consts-arch.h14
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/tile/cacheflush.c34
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/tile/clone.S178
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/tile/dl-static.c84
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/tile/getcontext.S95
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/tile/init-first.c48
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/tile/ipc_priv.h21
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/tile/kernel-features.h27
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/tile/ldsodefs.h32
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/tile/libc-vdso.h42
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/tile/makecontext.c67
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/tile/profil-counter.h26
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/tile/pt-vfork.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/tile/set_dataplane.c39
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/tile/setcontext.S206
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/tile/shlib-versions2
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/tile/sigcontextinfo.h27
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/tile/swapcontext.S89
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/tile/sys/cachectl.h36
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/tile/sys/procfs.h128
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/tile/sys/ptrace.h196
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/tile/sys/reg.h2
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/tile/sys/ucontext.h72
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/tile/sys/user.h1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/tile/syscall.S32
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/tile/sysconf.c75
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/tile/sysdep-cancel.h154
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/tile/sysdep.c33
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/tile/sysdep.h243
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/Makefile6
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/configure21
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/configure.ac10
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/ioctl.S41
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/ldconfig.h26
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/ldd-rewrite.sed1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/register-dump.h123
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/sched_getcpu.c87
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/Implies4
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/Makefile1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/c++-types.data67
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/ld.abilist9
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libBrokenLocale.abilist2
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libanl.abilist5
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libc.abilist2112
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libcrypt.abilist8
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libdl.abilist10
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libm.abilist431
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libnsl.abilist122
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libpthread.abilist226
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libresolv.abilist92
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/librt.abilist41
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libthread_db.abilist41
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libutil.abilist7
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/Implies4
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/Makefile1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/c++-types.data67
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/ld.abilist9
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libBrokenLocale.abilist2
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libanl.abilist5
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libc.abilist2112
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libcrypt.abilist8
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libdl.abilist10
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libm.abilist431
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libnsl.abilist122
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libpthread.abilist226
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libresolv.abilist92
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/librt.abilist41
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libthread_db.abilist41
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libutil.abilist7
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/tile/tilepro/Implies3
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/tile/tilepro/c++-types.data67
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/tile/tilepro/ld.abilist9
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/tile/tilepro/ldconfig.h25
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/tile/tilepro/libBrokenLocale.abilist2
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/tile/tilepro/libanl.abilist5
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/tile/tilepro/libc.abilist2112
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/tile/tilepro/libcrypt.abilist8
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/tile/tilepro/libdl.abilist10
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/tile/tilepro/libm.abilist431
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/tile/tilepro/libnsl.abilist122
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/tile/tilepro/libpthread.abilist226
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/tile/tilepro/libresolv.abilist92
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/tile/tilepro/librt.abilist41
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/tile/tilepro/libthread_db.abilist41
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/tile/tilepro/libutil.abilist7
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/tile/tilepro/register-dump.h111
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/tile/ucontext_i.h42
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/tile/vfork.S49
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/time.c41
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/timer_create.c176
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/timer_delete.c72
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/timer_getoverr.c40
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/timer_gettime.c41
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/timer_routines.c191
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/timer_settime.c43
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/times.c67
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/timespec_get.c46
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/truncate.c35
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/truncate64.c37
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/tst-affinity-pid.c201
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/tst-affinity.c43
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/tst-align-clone.c95
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/tst-clone.c60
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/tst-clone2.c146
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/tst-fallocate-common.c98
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/tst-fallocate.c25
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/tst-fallocate64.c47
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/tst-fanotify.c61
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/tst-getpid1.c122
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/tst-personality.c45
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/tst-quota.c58
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/tst-setgetname.c302
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/tst-skeleton-affinity.c278
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/tst-skeleton-thread-affinity.c280
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/tst-sync_file_range.c132
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/tst-thread-affinity-pthread.c49
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/tst-thread-affinity-pthread2.c95
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/tst-thread-affinity-sched.c36
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/ttyname.c223
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/ttyname.h34
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/ttyname_r.c221
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/ualarm.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/umount.S12
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/umount2.S13
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/unlockpt.c48
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/updwtmp.c33
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/ustat.c37
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/utimensat.c36
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/utimes.c36
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/utmp_file.c33
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/vfork.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/vmsplice.c27
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/wait.c35
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/wait3.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/waitid.c32
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/waitpid.c33
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/Versions5
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/aio_read.c7
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/aio_read64.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/aio_write.c7
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/aio_write64.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/dl-fxstatat64.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/fstatfs64.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/fstatvfs.c5
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/fstatvfs64.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/fxstat.c45
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/fxstat64.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/fxstatat.c48
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/fxstatat64.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/getdents.c4
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/getdents64.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/getdirentries.c3
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/getdirentries64.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/glob64.c2
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/internal_statvfs64.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/lio_listio.c13
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/lio_listio64.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/lxstat.c45
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/lxstat64.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/openat.c11
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/openat64.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/readdir.c7
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/readdir64.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/readdir64_r.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/readdir_r.c4
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/sendfile64.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/statfs64.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/statvfs.c5
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/statvfs64.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/syscalls.list11
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/xstat.c44
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/xstat64.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/write.c33
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/writev.c27
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86/Implies1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86/Makefile24
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86/bits/a.out.h11
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86/bits/environments.h105
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86/bits/epoll.h29
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86/bits/fcntl.h61
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86/bits/ipctypes.h33
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86/bits/mman.h45
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86/bits/msq.h82
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86/bits/sem.h86
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86/bits/shm.h109
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86/bits/sigcontext.h196
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86/bits/siginfo-arch.h17
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86/bits/stat.h210
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86/bits/sysctl.h20
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86/bits/typesizes.h95
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86/elision-conf.c78
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86/elision-conf.h41
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86/elision-lock.c107
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86/elision-timed.c26
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86/elision-trylock.c75
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86/elision-unlock.c33
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86/force-elision.h26
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86/gettimeofday.c61
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86/hle.h75
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86/libc-vdso.h36
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86/pthread_mutex_cond_lock.c22
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86/pthread_mutex_lock.c22
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86/pthread_mutex_timedlock.c22
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86/pthread_mutex_trylock.c22
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86/sys/debugreg.h88
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86/sys/elf.h29
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86/sys/io.h183
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86/sys/perm.h35
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86/sys/procfs.h145
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86/sys/reg.h77
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86/sys/ucontext.h260
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86/sys/user.h180
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86/sys/vm86.h38
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86/sysconf.c42
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86/time.c59
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86_64/64/Makefile2
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86_64/64/c++-types.data67
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86_64/64/configure15
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86_64/64/configure.ac4
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86_64/64/dl-librecon.h44
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86_64/64/ld.abilist11
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86_64/64/libBrokenLocale.abilist2
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86_64/64/libanl.abilist5
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist2171
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86_64/64/libcrypt.abilist8
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86_64/64/libdl.abilist12
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist465
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86_64/64/libnsl.abilist122
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist244
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86_64/64/libresolv.abilist94
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist52
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86_64/64/libthread_db.abilist43
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86_64/64/libutil.abilist7
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86_64/64/mmap_internal.h42
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86_64/64/shlib-versions4
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86_64/Implies3
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86_64/Makefile15
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86_64/Versions17
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86_64/____longjmp_chk.S131
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86_64/__start_context.S49
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86_64/arch-fork.h27
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86_64/brk.c41
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86_64/cancellation.S115
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86_64/clone.S107
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86_64/compat-timer.h45
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86_64/configure4
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86_64/configure.ac4
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86_64/dl-cache.h51
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86_64/dl-procinfo.c5
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86_64/dl-procinfo.h5
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86_64/get_clockfreq.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86_64/getcontext.S87
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86_64/init-first.c52
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86_64/ipc_priv.h32
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86_64/kernel-features.h26
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86_64/kernel_stat.h21
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86_64/ldconfig.h26
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86_64/ldd-rewrite.sed3
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86_64/libc-cancellation.S21
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86_64/libc-lowlevellock.S19
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86_64/libmvec.abilist49
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86_64/librt-cancellation.S21
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86_64/lll_timedlock_wait.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86_64/lll_timedwait_tid.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S463
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86_64/lowlevellock.h278
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86_64/makecontext.c121
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86_64/profil-counter.h31
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86_64/pthread_setaffinity.c14
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86_64/readelflib.c2
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86_64/register-dump.h345
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86_64/sched_setaffinity.c14
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86_64/setcontext.S102
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86_64/sigaction.c176
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86_64/sigaltstack-offsets.sym15
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86_64/sigcontextinfo.h30
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86_64/sigpending.c36
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86_64/sigprocmask.c38
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86_64/swapcontext.S120
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86_64/syscall.S42
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86_64/syscalls.list21
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h109
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86_64/sysdep.S40
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86_64/sysdep.h392
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86_64/timer_create.c65
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86_64/timer_delete.c44
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86_64/timer_getoverr.c38
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86_64/timer_gettime.c37
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86_64/timer_settime.c39
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86_64/ucontext_i.sym37
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86_64/umount.c30
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86_64/vfork.S55
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86_64/x32/Implies1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86_64/x32/Makefile11
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86_64/x32/arch_prctl.c63
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86_64/x32/c++-types.data67
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86_64/x32/configure17
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86_64/x32/configure.ac6
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86_64/x32/dl-cache.h23
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86_64/x32/fts.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86_64/x32/fts64.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86_64/x32/ftw.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86_64/x32/ftw64.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86_64/x32/getcpu.c32
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86_64/x32/glob.c1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86_64/x32/ld.abilist9
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86_64/x32/libBrokenLocale.abilist2
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86_64/x32/libanl.abilist5
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist2112
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86_64/x32/libcrypt.abilist8
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86_64/x32/libdl.abilist10
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist463
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86_64/x32/libnsl.abilist122
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist226
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86_64/x32/libresolv.abilist92
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist41
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86_64/x32/libthread_db.abilist41
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86_64/x32/libutil.abilist7
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86_64/x32/llseek.S1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86_64/x32/lseek.S43
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86_64/x32/lseek64.S1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86_64/x32/shlib-versions4
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86_64/x32/syscalls.list7
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86_64/x32/sysctl.mk1
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86_64/x32/sysdep.h29
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/x86_64/x32/times.c38
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/xmknod.c47
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/xmknodat.c47
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/xstat.c59
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/xstat64.c54
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/xstatconv.c270
-rw-r--r--REORG.TODO/sysdeps/unix/sysv/linux/xstatconv.h26
2304 files changed, 209802 insertions, 0 deletions
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/Implies b/REORG.TODO/sysdeps/unix/sysv/linux/Implies
new file mode 100644
index 0000000000..a579e634ae
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/Implies
@@ -0,0 +1,9 @@
+# All Linux builds use NPTL.
+nptl
+
+# The gnu subdirectory exists for things common to both Linux-based and
+# Hurd-based GNU systems.
+gnu
+
+# Linux has network support in the kernel.
+unix/inet
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/Makefile b/REORG.TODO/sysdeps/unix/sysv/linux/Makefile
new file mode 100644
index 0000000000..99b3f9d346
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/Makefile
@@ -0,0 +1,212 @@
+ifeq ($(subdir),csu)
+sysdep_routines += errno-loc
+endif
+
+ifeq ($(subdir),assert)
+CFLAGS-assert.c += -DFATAL_PREPARE_INCLUDE='<fatal-prepare.h>'
+CFLAGS-assert-perr.c += -DFATAL_PREPARE_INCLUDE='<fatal-prepare.h>'
+endif
+
+ifeq ($(subdir),malloc)
+CFLAGS-malloc.c += -DMORECORE_CLEARS=2
+endif
+
+ifeq ($(subdir),misc)
+include $(firstword $(wildcard $(sysdirs:=/sysctl.mk)))
+
+sysdep_routines += clone umount umount2 readahead \
+ setfsuid setfsgid epoll_pwait signalfd \
+ eventfd eventfd_read eventfd_write prlimit \
+ personality epoll_wait tee vmsplice splice \
+ open_by_handle_at
+
+CFLAGS-gethostid.c = -fexceptions
+CFLAGS-tee.c = -fexceptions -fasynchronous-unwind-tables
+CFLAGS-vmsplice.c = -fexceptions -fasynchronous-unwind-tables
+CFLAGS-splice.c = -fexceptions -fasynchronous-unwind-tables
+CFLAGS-open_by_handle_at.c = -fexceptions -fasynchronous-unwind-tables
+CFLAGS-tst-writev.c += "-DARTIFICIAL_LIMIT=(0x80000000-sysconf(_SC_PAGESIZE))"
+
+# Note that bits/mman-linux.h is listed here though the file lives in the
+# top-level bits/ subdirectory instead of here in sysdeps/.../linux/bits/.
+# That is just so that other (non-Linux) configurations for whom the
+# bits/mman-linux.h definitions work well do not have to duplicate the
+# contents of the file. The file must still be listed in sysdep_headers
+# here and in any non-Linux configuration that uses it; other
+# configurations will not install the file.
+sysdep_headers += sys/mount.h sys/acct.h sys/sysctl.h \
+ sys/klog.h \
+ sys/user.h sys/prctl.h \
+ sys/kd.h sys/soundcard.h sys/vt.h \
+ sys/quota.h sys/fsuid.h \
+ scsi/sg.h scsi/scsi.h scsi/scsi_ioctl.h sys/pci.h \
+ sys/raw.h sys/personality.h sys/epoll.h \
+ bits/a.out.h sys/inotify.h sys/signalfd.h sys/eventfd.h \
+ sys/timerfd.h sys/fanotify.h bits/eventfd.h bits/inotify.h \
+ bits/signalfd.h bits/timerfd.h bits/epoll.h \
+ bits/socket_type.h bits/syscall.h bits/sysctl.h \
+ bits/mman-linux.h \
+ bits/siginfo-arch.h bits/siginfo-consts-arch.h
+
+tests += tst-clone tst-clone2 tst-fanotify tst-personality tst-quota \
+ tst-sync_file_range test-errno-linux
+
+# Generate the list of SYS_* macros for the system calls (__NR_* macros).
+
+# If there is more than one syscall list for different architecture
+# variants, the CPU/Makefile defines abi-variants to be a list of names
+# for those variants (e.g. 32 64), and, for each variant, defines
+# abi-$(variant)-options to be compiler options to cause <asm/unistd.h>
+# to define the desired list of syscalls and abi-$(variant)-condition to
+# be the condition for those options to use in a C #if condition.
+# abi-includes may be defined to a list of headers to include
+# in the generated header, if the default does not suffice.
+#
+# The generated header is compiled with `-ffreestanding' to avoid any
+# circular dependencies against the installed implementation headers.
+# Such a dependency would require the implementation header to be
+# installed before the generated header could be built (See bug 15711).
+# In current practice the generated header dependencies do not include
+# any of the implementation headers removed by the use of `-ffreestanding'.
+
+$(objpfx)bits/syscall%h $(objpfx)bits/syscall%d: ../sysdeps/unix/sysv/linux/sys/syscall.h
+ $(make-target-directory)
+ { \
+ echo '/* Generated at libc build time from kernel syscall list. */';\
+ echo ''; \
+ echo '#ifndef _SYSCALL_H'; \
+ echo '# error "Never use <bits/syscall.h> directly; include <sys/syscall.h> instead."'; \
+ echo '#endif'; \
+ echo ''; \
+ $(foreach h,$(abi-includes), echo '#include <$(h)>';) \
+ echo ''; \
+ $(if $(abi-variants), \
+ $(foreach v,$(abi-variants),\
+ $(CC) -ffreestanding -E -MD -MP -MF $(@:.h=.d)-t$(v) -MT '$(@:.d=.h) $(@:.h=.d)' \
+ -x c $(sysincludes) $< $(abi-$(v)-options) \
+ -D_LIBC -dM | \
+ sed -n 's@^#define __NR_\([^ ]*\) .*$$@#define SYS_\1 __NR_\1@p' | \
+ LC_ALL=C sort > $(@:.d=.h).new$(v); \
+ $(if $(abi-$(v)-condition),\
+ echo '#if $(abi-$(v)-condition)';) \
+ cat $(@:.d=.h).new$(v); \
+ $(if $(abi-$(v)-condition),echo '#endif';) \
+ rm -f $(@:.d=.h).new$(v); \
+ ), \
+ $(CC) -ffreestanding -E -MD -MP -MF $(@:.h=.d)-t$(v) -MT '$(@:.d=.h) $(@:.h=.d)' \
+ -x c $(sysincludes) $< \
+ -D_LIBC -dM | \
+ sed -n 's@^#define __NR_\([^ ]*\) .*$$@#define SYS_\1 __NR_\1@p' | \
+ LC_ALL=C sort;) \
+ } > $(@:.d=.h).new
+ mv -f $(@:.d=.h).new $(@:.d=.h)
+ifdef abi-variants
+ifneq (,$(objpfx))
+ sed $(sed-remove-objpfx) \
+ $(foreach v,$(abi-variants),$(@:.h=.d)-t$(v)) > $(@:.h=.d)-t3
+else
+ cat $(foreach v,$(abi-variants),$(@:.h=.d)-t$(v)) \
+ > $(@:.h=.d)-t3
+endif
+ rm -f $(foreach v,$(abi-variants),$(@:.h=.d)-t$(v))
+ mv -f $(@:.h=.d)-t3 $(@:.h=.d)
+else
+ mv -f $(@:.h=.d)-t $(@:.h=.d)
+endif
+
+ifndef no_deps
+# Get the generated list of dependencies (probably /usr/include/asm/unistd.h).
+-include $(objpfx)bits/syscall.d
+endif
+generated += bits/syscall.h bits/syscall.d
+endif
+
+ifeq ($(subdir),time)
+sysdep_headers += sys/timex.h bits/timex.h
+
+sysdep_routines += ntp_gettime ntp_gettimex
+endif
+
+ifeq ($(subdir),socket)
+sysdep_headers += net/if_ppp.h net/ppp-comp.h \
+ net/ppp_defs.h net/if_arp.h net/route.h net/ethernet.h \
+ net/if_slip.h net/if_packet.h net/if_shaper.h
+sysdep_routines += cmsg_nxthdr
+CFLAGS-recvmmsg.c = -fexceptions -fasynchronous-unwind-tables
+CFLAGS-sendmmsg.c = -fexceptions -fasynchronous-unwind-tables
+endif
+
+ifeq ($(subdir),sunrpc)
+sysdep_headers += nfs/nfs.h
+endif
+
+ifeq ($(subdir),termios)
+sysdep_headers += termio.h
+endif
+
+ifeq ($(subdir),posix)
+sysdep_headers += bits/initspin.h
+
+sysdep_routines += sched_getcpu
+
+tests += tst-affinity tst-affinity-pid
+
+CFLAGS-fork.c = $(libio-mtsafe)
+CFLAGS-getpid.o = -fomit-frame-pointer
+CFLAGS-getpid.os = -fomit-frame-pointer
+endif
+
+ifeq ($(subdir),inet)
+sysdep_headers += netinet/if_fddi.h netinet/if_tr.h \
+ netipx/ipx.h netash/ash.h netax25/ax25.h netatalk/at.h \
+ netrom/netrom.h netpacket/packet.h netrose/rose.h \
+ neteconet/ec.h netiucv/iucv.h
+sysdep_routines += netlink_assert_response
+endif
+
+# Don't compile the ctype glue code, since there is no old non-GNU C library.
+inhibit-glue = yes
+
+ifeq ($(subdir),dirent)
+sysdep_routines += getdirentries getdirentries64
+endif
+
+ifeq ($(subdir),nis)
+CFLAGS-ypclnt.c = -DUSE_BINDINGDIR=1
+endif
+
+ifeq ($(subdir),io)
+sysdep_routines += xstatconv internal_statvfs internal_statvfs64 \
+ sync_file_range fallocate fallocate64
+sysdep_headers += bits/fcntl-linux.h
+
+tests += tst-fallocate tst-fallocate64
+endif
+
+ifeq ($(subdir),elf)
+sysdep-rtld-routines += dl-brk dl-sbrk dl-getcwd dl-openat64 dl-opendir \
+ dl-fxstatat64
+
+libof-lddlibc4 = lddlibc4
+
+others += pldd
+install-bin += pldd
+$(objpfx)pldd: $(objpfx)xmalloc.o
+endif
+
+ifeq ($(subdir),rt)
+CFLAGS-mq_send.c += -fexceptions
+CFLAGS-mq_receive.c += -fexceptions
+endif
+
+ifeq ($(subdir),nscd)
+sysdep-CFLAGS += -DHAVE_EPOLL -DHAVE_SENDFILE -DHAVE_INOTIFY -DHAVE_NETLINK
+CFLAGS-gai.c += -DNEED_NETLINK
+endif
+
+ifeq ($(subdir),nptl)
+tests += tst-align-clone tst-getpid1 \
+ tst-thread-affinity-pthread tst-thread-affinity-pthread2 \
+ tst-thread-affinity-sched
+tests-internal += tst-setgetname
+endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/Versions b/REORG.TODO/sysdeps/unix/sysv/linux/Versions
new file mode 100644
index 0000000000..202ffccc29
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/Versions
@@ -0,0 +1,175 @@
+libc {
+ # The comment lines with "#errlist-compat" are magic; see errlist-compat.awk.
+ # When you get an error from errlist-compat.awk, you need to add a new
+ # version here. Don't do this blindly, since this means changing the ABI
+ # for all GNU/Linux configurations.
+
+ GLIBC_2.0 {
+ # functions used in inline functions or macros
+ __cmsg_nxthdr;
+
+ # functions used in other libraries
+ __clone;
+
+ # helper functions
+ __errno_location;
+
+ # b*
+ bdflush;
+
+ # c*
+ clone; create_module;
+
+ # d*
+ delete_module;
+
+ # g*
+ get_kernel_syms; getresgid; getresuid;
+
+ # i*
+ init_module;
+
+ # k*
+ klogctl;
+
+ # l*
+ llseek;
+
+ # m*
+ mremap;
+
+ # n*
+ nfsservctl;
+
+ # p*
+ personality; prctl;
+
+ # q*
+ query_module; quotactl;
+
+ # s*
+ setfsgid; setfsuid;
+
+ # s*
+ setresgid; setresuid; swapoff; swapon; sysctl; sysinfo;
+
+ # u*
+ umount; uselib;
+
+ #errlist-compat 123
+ _sys_errlist; sys_errlist; _sys_nerr; sys_nerr;
+ }
+ GLIBC_2.1 {
+ # functions used in inline functions or macros
+ __libc_sa_len;
+
+ # Since we have new signals this structure changed.
+ _sys_siglist; sys_siglist; sys_sigabbrev;
+
+ # New errlist.
+ _sys_errlist; sys_errlist; _sys_nerr; sys_nerr;
+
+ # chown interface change.
+ chown;
+
+ # Change in pthread_attr_t.
+ pthread_attr_init;
+
+ # c*
+ capget; capset;
+
+ # n*
+ ntp_adjtime; ntp_gettime;
+
+ # u*
+ umount2;
+
+ #errlist-compat 125
+ _sys_errlist; sys_errlist; _sys_nerr; sys_nerr;
+ }
+ GLIBC_2.2 {
+ # needed in other libraries.
+ __endmntent; __getmntent_r; __setmntent; __statfs; __sysctl;
+
+ # ipc ctl interface change.
+ semctl; shmctl; msgctl;
+ }
+ GLIBC_2.2.1 {
+ # p*
+ pivot_root;
+ }
+ GLIBC_2.3 {
+ # r*
+ readahead;
+
+ #errlist-compat 126
+ _sys_errlist; sys_errlist; _sys_nerr; sys_nerr;
+ }
+ GLIBC_2.3.2 {
+ # New kernel interfaces.
+ epoll_create; epoll_ctl; epoll_wait;
+ }
+ GLIBC_2.3.3 {
+ gnu_dev_major; gnu_dev_minor; gnu_dev_makedev;
+ }
+ GLIBC_2.3.4 {
+ sched_getaffinity; sched_setaffinity;
+ }
+ GLIBC_2.4 {
+ inotify_init; inotify_add_watch; inotify_rm_watch;
+
+ unshare;
+
+ #errlist-compat 132
+ _sys_errlist; sys_errlist; _sys_nerr; sys_nerr;
+ }
+ GLIBC_2.5 {
+ splice; tee; vmsplice;
+ }
+ GLIBC_2.6 {
+ epoll_pwait; sync_file_range; sched_getcpu;
+ }
+ GLIBC_2.7 {
+ eventfd; eventfd_read; eventfd_write; signalfd;
+ }
+ GLIBC_2.8 {
+ timerfd_create; timerfd_settime; timerfd_gettime;
+ }
+ GLIBC_2.9 {
+ epoll_create1; inotify_init1;
+ }
+ GLIBC_2.10 {
+ fallocate;
+ }
+ GLIBC_2.12 {
+ #errlist-compat 135
+ _sys_errlist; sys_errlist; _sys_nerr; sys_nerr;
+
+ ntp_gettimex;
+
+ recvmmsg;
+ }
+ GLIBC_2.13 {
+ prlimit; prlimit64;
+
+ fanotify_init; fanotify_mark;
+ }
+ GLIBC_2.14 {
+ clock_adjtime;
+
+ name_to_handle_at; open_by_handle_at;
+
+ setns;
+
+ sendmmsg;
+ }
+ GLIBC_2.15 {
+ process_vm_readv; process_vm_writev;
+ }
+ GLIBC_PRIVATE {
+ # functions used in other libraries
+ __syscall_rt_sigqueueinfo;
+ # functions used by nscd
+ __netlink_assert_response;
+ }
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/_G_config.h b/REORG.TODO/sysdeps/unix/sysv/linux/_G_config.h
new file mode 100644
index 0000000000..3bc6cfd595
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/_G_config.h
@@ -0,0 +1,59 @@
+/* This file is needed by libio to define various configuration parameters.
+ These are always the same in the GNU C library. */
+
+#ifndef _G_config_h
+#define _G_config_h 1
+
+/* Define types for libio in terms of the standard internal type names. */
+
+#include <bits/types.h>
+#define __need_size_t
+#if defined _LIBC || defined _GLIBCPP_USE_WCHAR_T
+# define __need_wchar_t
+#endif
+#define __need_NULL
+#include <stddef.h>
+
+#include <bits/types/__mbstate_t.h>
+#if defined _LIBC || defined _GLIBCPP_USE_WCHAR_T
+# include <bits/types/wint_t.h>
+#endif
+
+typedef struct
+{
+ __off_t __pos;
+ __mbstate_t __state;
+} _G_fpos_t;
+typedef struct
+{
+ __off64_t __pos;
+ __mbstate_t __state;
+} _G_fpos64_t;
+#if defined _LIBC || defined _GLIBCPP_USE_WCHAR_T
+# include <gconv.h>
+typedef union
+{
+ struct __gconv_info __cd;
+ struct
+ {
+ struct __gconv_info __cd;
+ struct __gconv_step_data __data;
+ } __combined;
+} _G_iconv_t;
+#endif
+
+
+/* These library features are always available in the GNU C library. */
+#define _G_va_list __gnuc_va_list
+
+#define _G_HAVE_MMAP 1
+#define _G_HAVE_MREMAP 1
+
+#define _G_IO_IO_FILE_VERSION 0x20001
+
+/* This is defined by <bits/stat.h> if `st_blksize' exists. */
+#define _G_HAVE_ST_BLKSIZE defined (_STATBUF_ST_BLKSIZE)
+
+#define _G_BUFSIZ 8192
+
+#endif /* _G_config.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/_exit.c b/REORG.TODO/sysdeps/unix/sysv/linux/_exit.c
new file mode 100644
index 0000000000..0020ddb7e5
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/_exit.c
@@ -0,0 +1,42 @@
+/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <sysdep.h>
+#include <abort-instr.h>
+
+
+void
+_exit (int status)
+{
+ while (1)
+ {
+#ifdef __NR_exit_group
+ INLINE_SYSCALL (exit_group, 1, status);
+#endif
+ INLINE_SYSCALL (exit, 1, status);
+
+#ifdef ABORT_INSTRUCTION
+ ABORT_INSTRUCTION;
+#endif
+ }
+}
+libc_hidden_def (_exit)
+rtld_hidden_def (_exit)
+weak_alias (_exit, _Exit)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/a.out.h b/REORG.TODO/sysdeps/unix/sysv/linux/a.out.h
new file mode 100644
index 0000000000..e3f4bdd08f
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/a.out.h
@@ -0,0 +1,138 @@
+#ifndef __A_OUT_GNU_H__
+#define __A_OUT_GNU_H__
+
+#include <bits/a.out.h>
+
+#define __GNU_EXEC_MACROS__
+
+struct exec
+{
+ unsigned long a_info; /* Use macros N_MAGIC, etc for access. */
+ unsigned int a_text; /* Length of text, in bytes. */
+ unsigned int a_data; /* Length of data, in bytes. */
+ unsigned int a_bss; /* Length of uninitialized data area for file, in bytes. */
+ unsigned int a_syms; /* Length of symbol table data in file, in bytes. */
+ unsigned int a_entry; /* Start address. */
+ unsigned int a_trsize;/* Length of relocation info for text, in bytes. */
+ unsigned int a_drsize;/* Length of relocation info for data, in bytes. */
+};
+
+enum machine_type
+{
+ M_OLDSUN2 = 0,
+ M_68010 = 1,
+ M_68020 = 2,
+ M_SPARC = 3,
+ M_386 = 100,
+ M_MIPS1 = 151,
+ M_MIPS2 = 152
+};
+
+#define N_MAGIC(exec) ((exec).a_info & 0xffff)
+#define N_MACHTYPE(exec) ((enum machine_type)(((exec).a_info >> 16) & 0xff))
+#define N_FLAGS(exec) (((exec).a_info >> 24) & 0xff)
+#define N_SET_INFO(exec, magic, type, flags) \
+ ((exec).a_info = ((magic) & 0xffff) \
+ | (((int)(type) & 0xff) << 16) \
+ | (((flags) & 0xff) << 24))
+#define N_SET_MAGIC(exec, magic) \
+ ((exec).a_info = ((exec).a_info & 0xffff0000) | ((magic) & 0xffff))
+#define N_SET_MACHTYPE(exec, machtype) \
+ ((exec).a_info = \
+ ((exec).a_info&0xff00ffff) | ((((int)(machtype))&0xff) << 16))
+#define N_SET_FLAGS(exec, flags) \
+ ((exec).a_info = \
+ ((exec).a_info&0x00ffffff) | (((flags) & 0xff) << 24))
+
+/* Code indicating object file or impure executable. */
+#define OMAGIC 0407
+/* Code indicating pure executable. */
+#define NMAGIC 0410
+/* Code indicating demand-paged executable. */
+#define ZMAGIC 0413
+/* This indicates a demand-paged executable with the header in the text.
+ The first page is unmapped to help trap NULL pointer references. */
+#define QMAGIC 0314
+/* Code indicating core file. */
+#define CMAGIC 0421
+
+#define N_TRSIZE(a) ((a).a_trsize)
+#define N_DRSIZE(a) ((a).a_drsize)
+#define N_SYMSIZE(a) ((a).a_syms)
+#define N_BADMAG(x) \
+ (N_MAGIC(x) != OMAGIC && N_MAGIC(x) != NMAGIC \
+ && N_MAGIC(x) != ZMAGIC && N_MAGIC(x) != QMAGIC)
+#define _N_HDROFF(x) (1024 - sizeof (struct exec))
+#define N_TXTOFF(x) \
+ (N_MAGIC(x) == ZMAGIC ? _N_HDROFF((x)) + sizeof (struct exec) : \
+ (N_MAGIC(x) == QMAGIC ? 0 : sizeof (struct exec)))
+#define N_DATOFF(x) (N_TXTOFF(x) + (x).a_text)
+#define N_TRELOFF(x) (N_DATOFF(x) + (x).a_data)
+#define N_DRELOFF(x) (N_TRELOFF(x) + N_TRSIZE(x))
+#define N_SYMOFF(x) (N_DRELOFF(x) + N_DRSIZE(x))
+#define N_STROFF(x) (N_SYMOFF(x) + N_SYMSIZE(x))
+
+/* Address of text segment in memory after it is loaded. */
+#define N_TXTADDR(x) (N_MAGIC(x) == QMAGIC ? 4096 : 0)
+
+/* Address of data segment in memory after it is loaded. */
+#define SEGMENT_SIZE 1024
+
+#define _N_SEGMENT_ROUND(x) (((x) + SEGMENT_SIZE - 1) & ~(SEGMENT_SIZE - 1))
+#define _N_TXTENDADDR(x) (N_TXTADDR(x)+(x).a_text)
+
+#define N_DATADDR(x) \
+ (N_MAGIC(x)==OMAGIC? (_N_TXTENDADDR(x)) \
+ : (_N_SEGMENT_ROUND (_N_TXTENDADDR(x))))
+#define N_BSSADDR(x) (N_DATADDR(x) + (x).a_data)
+
+#if !defined (N_NLIST_DECLARED)
+struct nlist
+{
+ union
+ {
+ char *n_name;
+ struct nlist *n_next;
+ long n_strx;
+ } n_un;
+ unsigned char n_type;
+ char n_other;
+ short n_desc;
+ unsigned long n_value;
+};
+#endif /* no N_NLIST_DECLARED. */
+
+#define N_UNDF 0
+#define N_ABS 2
+#define N_TEXT 4
+#define N_DATA 6
+#define N_BSS 8
+#define N_FN 15
+#define N_EXT 1
+#define N_TYPE 036
+#define N_STAB 0340
+#define N_INDR 0xa
+#define N_SETA 0x14 /* Absolute set element symbol. */
+#define N_SETT 0x16 /* Text set element symbol. */
+#define N_SETD 0x18 /* Data set element symbol. */
+#define N_SETB 0x1A /* Bss set element symbol. */
+#define N_SETV 0x1C /* Pointer to set vector in data area. */
+
+#if !defined (N_RELOCATION_INFO_DECLARED)
+/* This structure describes a single relocation to be performed.
+ The text-relocation section of the file is a vector of these structures,
+ all of which apply to the text section.
+ Likewise, the data-relocation section applies to the data section. */
+
+struct relocation_info
+{
+ int r_address;
+ unsigned int r_symbolnum:24;
+ unsigned int r_pcrel:1;
+ unsigned int r_length:2;
+ unsigned int r_extern:1;
+ unsigned int r_pad:4;
+};
+#endif /* no N_RELOCATION_INFO_DECLARED. */
+
+#endif /* __A_OUT_GNU_H__ */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/Implies b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/Implies
new file mode 100644
index 0000000000..4409e19b92
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/Implies
@@ -0,0 +1,3 @@
+aarch64/nptl
+unix/sysv/linux/generic
+unix/sysv/linux/wordsize-64
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/Makefile b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/Makefile
new file mode 100644
index 0000000000..6b4e620896
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/Makefile
@@ -0,0 +1,35 @@
+ifeq ($(subdir),csu)
+sysdep_routines += __read_tp libc-__read_tp
+static-only-routines += __read_tp
+shared-only-routines += libc-__read_tp
+endif
+
+ifeq ($(subdir),elf)
+sysdep_routines += dl-vdso
+sysdep-rtld-routines += __read_tp
+ifeq ($(build-shared),yes)
+# This is needed for DSO loading from static binaries.
+sysdep-dl-routines += dl-static
+endif
+endif
+
+ifeq ($(subdir),misc)
+sysdep_headers += sys/elf.h
+endif
+
+ifeq ($(subdir),stdlib)
+gen-as-const-headers += ucontext_i.sym
+endif
+
+abi-variants := lp64
+abi-variants += lp64_be
+
+ifeq (,$(filter $(default-abi),$(abi-variants)))
+Unknown ABI, must be one of $(abi-variants)
+endif
+
+abi-lp64-options := -U__AARCH64EB__
+abi-lp64-condition := !defined __AARCH64EB__
+
+abi-lp64_be-options := -D__AARCH64EB__
+abi-lp64_be-condition := defined __AARCH64EB__
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/Versions b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/Versions
new file mode 100644
index 0000000000..9bd87fe2d0
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/Versions
@@ -0,0 +1,12 @@
+ld {
+ GLIBC_PRIVATE {
+ # used for loading by static libraries
+ _dl_var_init;
+ }
+}
+libc {
+ GLIBC_PRIVATE {
+ __vdso_clock_gettime;
+ __vdso_clock_getres;
+ }
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/__read_tp.S b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/__read_tp.S
new file mode 100644
index 0000000000..d355878b70
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/__read_tp.S
@@ -0,0 +1,25 @@
+/* Copyright (C) 2005-2017 Free Software Foundation, Inc.
+
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation; either version 2.1 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+
+ .hidden __read_tp
+ENTRY (__read_tp)
+ mrs x0, tpidr_el0
+ RET
+END (__read_tp)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/arch-fork.h b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/arch-fork.h
new file mode 100644
index 0000000000..7b1f9bdd1f
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/arch-fork.h
@@ -0,0 +1,28 @@
+/* ARCH_FORK definition for Linux fork implementation. AArch64 version.
+ Copyright (C) 2005-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sched.h>
+#include <signal.h>
+#include <sysdep.h>
+#include <tls.h>
+
+
+#define ARCH_FORK() \
+ INLINE_SYSCALL (clone, 5, \
+ CLONE_CHILD_SETTID | CLONE_CHILD_CLEARTID | SIGCHLD, \
+ NULL, NULL, NULL, &THREAD_SELF->tid)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/bits/fcntl.h b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/bits/fcntl.h
new file mode 100644
index 0000000000..6ba241c02c
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/bits/fcntl.h
@@ -0,0 +1,61 @@
+/* O_*, F_*, FD_* bit values for the AArch64 Linux ABI.
+ Copyright (C) 2011-2017 Free Software Foundation, Inc.
+
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _FCNTL_H
+# error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
+#endif
+
+#define __O_DIRECTORY 040000
+#define __O_NOFOLLOW 0100000
+#define __O_DIRECT 0200000
+
+#ifdef __ILP32__
+# define __O_LARGEFILE 0400000
+#else
+# define __O_LARGEFILE 0
+#endif
+
+#ifdef __LP64__
+# define F_GETLK64 5
+# define F_SETLK64 6
+# define F_SETLKW64 7
+#endif
+
+struct flock
+ {
+ short int l_type; /* Type of lock: F_RDLCK, F_WRLCK, or F_UNLCK. */
+ short int l_whence; /* Where `l_start' is relative to (like `lseek'). */
+ __off_t l_start; /* Offset where the lock begins. */
+ __off_t l_len; /* Size of the locked area; zero means until EOF. */
+ __pid_t l_pid; /* Process holding the lock. */
+ };
+
+#ifdef __USE_LARGEFILE64
+struct flock64
+ {
+ short int l_type; /* Type of lock: F_RDLCK, F_WRLCK, or F_UNLCK. */
+ short int l_whence; /* Where `l_start' is relative to (like `lseek'). */
+ __off64_t l_start; /* Offset where the lock begins. */
+ __off64_t l_len; /* Size of the locked area; zero means until EOF. */
+ __pid_t l_pid; /* Process holding the lock. */
+ };
+#endif
+
+/* Include generic Linux declarations. */
+#include <bits/fcntl-linux.h>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/bits/hwcap.h b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/bits/hwcap.h
new file mode 100644
index 0000000000..117852da1c
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/bits/hwcap.h
@@ -0,0 +1,36 @@
+/* Defines for bits in AT_HWCAP. AArch64 Linux version.
+ Copyright (C) 2016-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#if !defined (_SYS_AUXV_H)
+# error "Never include <bits/hwcap.h> directly; use <sys/auxv.h> instead."
+#endif
+
+/* The following must match the kernel's <asm/hwcap.h>. */
+#define HWCAP_FP (1 << 0)
+#define HWCAP_ASIMD (1 << 1)
+#define HWCAP_EVTSTRM (1 << 2)
+#define HWCAP_AES (1 << 3)
+#define HWCAP_PMULL (1 << 4)
+#define HWCAP_SHA1 (1 << 5)
+#define HWCAP_SHA2 (1 << 6)
+#define HWCAP_CRC32 (1 << 7)
+#define HWCAP_ATOMICS (1 << 8)
+#define HWCAP_FPHP (1 << 9)
+#define HWCAP_ASIMDHP (1 << 10)
+#define HWCAP_CPUID (1 << 11)
+#define HWCAP_ASIMDRDM (1 << 12)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/bits/ipc.h b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/bits/ipc.h
new file mode 100644
index 0000000000..cd1f06e370
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/bits/ipc.h
@@ -0,0 +1,54 @@
+/* Copyright (C) 1995-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_IPC_H
+# error "Never use <bits/ipc.h> directly; include <sys/ipc.h> instead."
+#endif
+
+#include <bits/types.h>
+
+/* Mode bits for `msgget', `semget', and `shmget'. */
+#define IPC_CREAT 01000 /* Create key if key does not exist. */
+#define IPC_EXCL 02000 /* Fail if key exists. */
+#define IPC_NOWAIT 04000 /* Return error on wait. */
+
+/* Control commands for `msgctl', `semctl', and `shmctl'. */
+#define IPC_RMID 0 /* Remove identifier. */
+#define IPC_SET 1 /* Set `ipc_perm' options. */
+#define IPC_STAT 2 /* Get `ipc_perm' options. */
+#ifdef __USE_GNU
+# define IPC_INFO 3 /* See ipcs. */
+#endif
+
+/* Special key values. */
+#define IPC_PRIVATE ((__key_t) 0) /* Private key. */
+
+
+/* Data structure used to pass permission information to IPC operations. */
+struct ipc_perm
+ {
+ __key_t __key; /* Key. */
+ __uid_t uid; /* Owner's user ID. */
+ __gid_t gid; /* Owner's group ID. */
+ __uid_t cuid; /* Creator's user ID. */
+ __gid_t cgid; /* Creator's group ID. */
+ unsigned int mode; /* Read/write permission. */
+ unsigned short int __seq; /* Sequence number. */
+ unsigned short int __pad1;
+ __syscall_ulong_t __glibc_reserved1;
+ __syscall_ulong_t __glibc_reserved2;
+ };
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/bits/local_lim.h b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/bits/local_lim.h
new file mode 100644
index 0000000000..35a0326211
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/bits/local_lim.h
@@ -0,0 +1,101 @@
+/* Minimum guaranteed maximum values for system limits. Linux version.
+ Copyright (C) 1993-2017 Free Software Foundation, Inc.
+
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation; either version 2.1 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+/* The kernel header pollutes the namespace with the NR_OPEN symbol
+ and defines LINK_MAX although filesystems have different maxima. A
+ similar thing is true for OPEN_MAX: the limit can be changed at
+ runtime and therefore the macro must not be defined. Remove this
+ after including the header if necessary. */
+#ifndef NR_OPEN
+# define __undef_NR_OPEN
+#endif
+#ifndef LINK_MAX
+# define __undef_LINK_MAX
+#endif
+#ifndef OPEN_MAX
+# define __undef_OPEN_MAX
+#endif
+#ifndef ARG_MAX
+# define __undef_ARG_MAX
+#endif
+
+/* The kernel sources contain a file with all the needed information. */
+#include <linux/limits.h>
+
+/* Have to remove NR_OPEN? */
+#ifdef __undef_NR_OPEN
+# undef NR_OPEN
+# undef __undef_NR_OPEN
+#endif
+/* Have to remove LINK_MAX? */
+#ifdef __undef_LINK_MAX
+# undef LINK_MAX
+# undef __undef_LINK_MAX
+#endif
+/* Have to remove OPEN_MAX? */
+#ifdef __undef_OPEN_MAX
+# undef OPEN_MAX
+# undef __undef_OPEN_MAX
+#endif
+/* Have to remove ARG_MAX? */
+#ifdef __undef_ARG_MAX
+# undef ARG_MAX
+# undef __undef_ARG_MAX
+#endif
+
+/* The number of data keys per process. */
+#define _POSIX_THREAD_KEYS_MAX 128
+/* This is the value this implementation supports. */
+#define PTHREAD_KEYS_MAX 1024
+
+/* Controlling the iterations of destructors for thread-specific data. */
+#define _POSIX_THREAD_DESTRUCTOR_ITERATIONS 4
+/* Number of iterations this implementation does. */
+#define PTHREAD_DESTRUCTOR_ITERATIONS _POSIX_THREAD_DESTRUCTOR_ITERATIONS
+
+/* The number of threads per process. */
+#define _POSIX_THREAD_THREADS_MAX 64
+/* We have no predefined limit on the number of threads. */
+#undef PTHREAD_THREADS_MAX
+
+/* Maximum amount by which a process can descrease its asynchronous I/O
+ priority level. */
+#define AIO_PRIO_DELTA_MAX 20
+
+/* Minimum size for a thread. At least two pages for systems with 64k
+ pages. */
+#define PTHREAD_STACK_MIN 131072
+
+/* Maximum number of timer expiration overruns. */
+#define DELAYTIMER_MAX 2147483647
+
+/* Maximum tty name length. */
+#define TTY_NAME_MAX 32
+
+/* Maximum login name length. This is arbitrary. */
+#define LOGIN_NAME_MAX 256
+
+/* Maximum host name length. */
+#define HOST_NAME_MAX 64
+
+/* Maximum message queue priority level. */
+#define MQ_PRIO_MAX 32768
+
+/* Maximum value the semaphore can have. */
+#define SEM_VALUE_MAX (2147483647)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/bits/mman.h b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/bits/mman.h
new file mode 100644
index 0000000000..7fc3ef3e86
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/bits/mman.h
@@ -0,0 +1,44 @@
+/* Definitions for POSIX memory map interface. Linux/AArch64 version.
+
+ Copyright (C) 1997-2017 Free Software Foundation, Inc.
+
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_MMAN_H
+# error "Never use <bits/mman.h> directly; include <sys/mman.h> instead."
+#endif
+
+/* The following definitions basically come from the kernel headers.
+ But the kernel header is not namespace clean. */
+
+/* These are Linux-specific. */
+#ifdef __USE_MISC
+# define MAP_GROWSDOWN 0x00100 /* Stack-like segment. */
+# define MAP_DENYWRITE 0x00800 /* ETXTBSY */
+# define MAP_EXECUTABLE 0x01000 /* Mark it as an executable. */
+# define MAP_LOCKED 0x02000 /* Lock the mapping. */
+# define MAP_NORESERVE 0x04000 /* Don't check for reservations. */
+# define MAP_POPULATE 0x08000 /* Populate (prefault) pagetables. */
+# define MAP_NONBLOCK 0x10000 /* Do not block on IO. */
+# define MAP_STACK 0x20000 /* Allocation is for a stack. */
+# define MAP_HUGETLB 0x40000 /* Create huge page mapping. */
+#endif
+
+
+
+/* Include generic Linux declarations. */
+#include <bits/mman-linux.h>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/bits/sigstack.h b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/bits/sigstack.h
new file mode 100644
index 0000000000..434b24e926
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/bits/sigstack.h
@@ -0,0 +1,32 @@
+/* sigstack, sigaltstack definitions.
+ Copyright (C) 2015-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _BITS_SIGSTACK_H
+#define _BITS_SIGSTACK_H 1
+
+#if !defined _SIGNAL_H && !defined _SYS_UCONTEXT_H
+# error "Never include this file directly. Use <signal.h> instead"
+#endif
+
+/* Minimum stack size for a signal handler. */
+#define MINSIGSTKSZ 5120
+
+/* System default stack size. */
+#define SIGSTKSZ 16384
+
+#endif /* bits/sigstack.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/c++-types.data b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/c++-types.data
new file mode 100644
index 0000000000..ac925ccb36
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/c++-types.data
@@ -0,0 +1,67 @@
+blkcnt64_t:l
+blkcnt_t:l
+blksize_t:i
+caddr_t:Pc
+clockid_t:i
+clock_t:l
+daddr_t:i
+dev_t:m
+fd_mask:l
+fsblkcnt64_t:m
+fsblkcnt_t:m
+fsfilcnt64_t:m
+fsfilcnt_t:m
+fsid_t:8__fsid_t
+gid_t:j
+id_t:j
+ino64_t:m
+ino_t:m
+int16_t:s
+int32_t:i
+int64_t:l
+int8_t:a
+intptr_t:l
+key_t:i
+loff_t:l
+mode_t:j
+nlink_t:j
+off64_t:l
+off_t:l
+pid_t:i
+pthread_attr_t:14pthread_attr_t
+pthread_barrier_t:17pthread_barrier_t
+pthread_barrierattr_t:21pthread_barrierattr_t
+pthread_cond_t:14pthread_cond_t
+pthread_condattr_t:18pthread_condattr_t
+pthread_key_t:j
+pthread_mutex_t:15pthread_mutex_t
+pthread_mutexattr_t:19pthread_mutexattr_t
+pthread_once_t:i
+pthread_rwlock_t:16pthread_rwlock_t
+pthread_rwlockattr_t:20pthread_rwlockattr_t
+pthread_spinlock_t:i
+pthread_t:m
+quad_t:l
+register_t:l
+rlim64_t:m
+rlim_t:m
+sigset_t:10__sigset_t
+size_t:m
+socklen_t:j
+ssize_t:l
+suseconds_t:l
+time_t:l
+u_char:h
+uid_t:j
+uint:j
+u_int:j
+u_int16_t:t
+u_int32_t:j
+u_int64_t:m
+u_int8_t:h
+ulong:m
+u_long:m
+u_quad_t:m
+useconds_t:j
+ushort:t
+u_short:t
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/clone.S b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/clone.S
new file mode 100644
index 0000000000..259ec073c5
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/clone.S
@@ -0,0 +1,92 @@
+/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
+
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+/* clone() is even more special than fork() as it mucks with stacks
+ and invokes a function in the right context after its all over. */
+
+#include <sysdep.h>
+#define _ERRNO_H 1
+#include <bits/errno.h>
+
+#define CLONE_VM_BIT 8
+#define CLONE_VM (1 << CLONE_VM_BIT)
+
+#define CLONE_THREAD_BIT 16
+#define CLONE_THREAD (1 << CLONE_THREAD_BIT)
+
+/* int clone(int (*fn)(void *arg), x0
+ void *child_stack, x1
+ int flags, x2
+ void *arg, x3
+ pid_t *ptid, x4
+ struct user_desc *tls, x5
+ pid_t *ctid); x6
+ */
+ .text
+ENTRY(__clone)
+ DELOUSE (0)
+ DELOUSE (1)
+ DELOUSE (2)
+ DELOUSE (3)
+ DELOUSE (4)
+ DELOUSE (5)
+ DELOUSE (6)
+ /* Save args for the child. */
+ mov x10, x0
+ mov x11, x2
+ mov x12, x3
+
+ /* Sanity check args. */
+ mov x0, #-EINVAL
+ cbz x10, .Lsyscall_error
+ cbz x1, .Lsyscall_error
+
+ /* Do the system call. */
+ /* X0:flags, x1:newsp, x2:parenttidptr, x3:newtls, x4:childtid. */
+ mov x0, x2 /* flags */
+ /* New sp is already in x1. */
+ mov x2, x4 /* ptid */
+ mov x3, x5 /* tls */
+ mov x4, x6 /* ctid */
+ mov x8, #SYS_ify(clone)
+ svc 0x0
+
+ cmp x0, #0
+ beq thread_start
+ blt .Lsyscall_error
+ RET
+PSEUDO_END (__clone)
+
+ .align 4
+ .type thread_start, %function
+thread_start:
+ cfi_startproc
+ cfi_undefined (x30)
+ mov x29, 0
+
+ /* Pick the function arg and execute. */
+ mov x0, x12
+ blr x10
+
+ /* We are done, pass the return value through x0. */
+ b HIDDEN_JUMPTARGET(_exit)
+ cfi_endproc
+ .size thread_start, .-thread_start
+
+libc_hidden_def (__clone)
+weak_alias (__clone, clone)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/configure b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/configure
new file mode 100644
index 0000000000..f48472c5b6
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/configure
@@ -0,0 +1,17 @@
+# This file is generated from configure.ac by Autoconf. DO NOT EDIT!
+ # Local configure fragment for sysdeps/unix/sysv/linux/aarch64.
+
+arch_minimum_kernel=3.7.0
+
+test -n "$libc_cv_slibdir" ||
+case "$prefix" in
+/usr | /usr/)
+ libc_cv_slibdir=/lib64
+ libc_cv_rtlddir=/lib
+ if test "$libdir" = '${exec_prefix}/lib'; then
+ libdir='${exec_prefix}/lib64';
+ # Locale data can be shared between 32-bit and 64-bit libraries.
+ libc_cv_complocaledir='${exec_prefix}/lib/locale'
+ fi
+ ;;
+esac
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/configure.ac b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/configure.ac
new file mode 100644
index 0000000000..211fa9c317
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/configure.ac
@@ -0,0 +1,6 @@
+GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
+# Local configure fragment for sysdeps/unix/sysv/linux/aarch64.
+
+arch_minimum_kernel=3.7.0
+
+LIBC_SLIBDIR_RTLDDIR([lib64], [lib])
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/cpu-features.c b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/cpu-features.c
new file mode 100644
index 0000000000..ef6eecd17e
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/cpu-features.c
@@ -0,0 +1,37 @@
+/* Initialize CPU feature data. AArch64 version.
+ This file is part of the GNU C Library.
+ Copyright (C) 2017 Free Software Foundation, Inc.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <cpu-features.h>
+#include <sys/auxv.h>
+#include <elf/dl-hwcaps.h>
+
+static inline void
+init_cpu_features (struct cpu_features *cpu_features)
+{
+ uint64_t hwcap_mask = GET_HWCAP_MASK();
+ uint64_t hwcap = GLRO (dl_hwcap) & hwcap_mask;
+
+ if (hwcap & HWCAP_CPUID)
+ {
+ register uint64_t id = 0;
+ asm volatile ("mrs %0, midr_el1" : "=r"(id));
+ cpu_features->midr_el1 = id;
+ }
+ else
+ cpu_features->midr_el1 = 0;
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/cpu-features.h b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/cpu-features.h
new file mode 100644
index 0000000000..c92b650984
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/cpu-features.h
@@ -0,0 +1,49 @@
+/* Initialize CPU feature data. AArch64 version.
+ This file is part of the GNU C Library.
+ Copyright (C) 2017 Free Software Foundation, Inc.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _CPU_FEATURES_AARCH64_H
+#define _CPU_FEATURES_AARCH64_H
+
+#include <stdint.h>
+
+#define MIDR_PARTNUM_SHIFT 4
+#define MIDR_PARTNUM_MASK (0xfff << MIDR_PARTNUM_SHIFT)
+#define MIDR_PARTNUM(midr) \
+ (((midr) & MIDR_PARTNUM_MASK) >> MIDR_PARTNUM_SHIFT)
+#define MIDR_ARCHITECTURE_SHIFT 16
+#define MIDR_ARCHITECTURE_MASK (0xf << MIDR_ARCHITECTURE_SHIFT)
+#define MIDR_ARCHITECTURE(midr) \
+ (((midr) & MIDR_ARCHITECTURE_MASK) >> MIDR_ARCHITECTURE_SHIFT)
+#define MIDR_VARIANT_SHIFT 20
+#define MIDR_VARIANT_MASK (0xf << MIDR_VARIANT_SHIFT)
+#define MIDR_VARIANT(midr) \
+ (((midr) & MIDR_VARIANT_MASK) >> MIDR_VARIANT_SHIFT)
+#define MIDR_IMPLEMENTOR_SHIFT 24
+#define MIDR_IMPLEMENTOR_MASK (0xff << MIDR_IMPLEMENTOR_SHIFT)
+#define MIDR_IMPLEMENTOR(midr) \
+ (((midr) & MIDR_IMPLEMENTOR_MASK) >> MIDR_IMPLEMENTOR_SHIFT)
+
+#define IS_THUNDERX(midr) (MIDR_IMPLEMENTOR(midr) == 'C' \
+ && MIDR_PARTNUM(midr) == 0x0a1)
+
+struct cpu_features
+{
+ uint64_t midr_el1;
+};
+
+#endif /* _CPU_FEATURES_AARCH64_H */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/dl-cache.h b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/dl-cache.h
new file mode 100644
index 0000000000..90e1734347
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/dl-cache.h
@@ -0,0 +1,56 @@
+/* Support for reading /etc/ld.so.cache files written by Linux ldconfig.
+ Copyright (C) 2003-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <ldconfig.h>
+
+#ifdef __LP64__
+# define _DL_CACHE_DEFAULT_ID (FLAG_AARCH64_LIB64 | FLAG_ELF_LIBC6)
+#else
+# define _DL_CACHE_DEFAULT_ID (FLAG_AARCH64_LIB32 | FLAG_ELF_LIBC6)
+#endif
+
+#define _dl_cache_check_flags(flags) \
+ ((flags) == _DL_CACHE_DEFAULT_ID)
+
+#define add_system_dir(dir) \
+ do \
+ { \
+ size_t len = strlen (dir); \
+ char path[len + 6]; \
+ memcpy (path, dir, len + 1); \
+ if (len >= 6 && ! memcmp (path + len - 6, "/lib64", 6)) \
+ { \
+ len -= 2; \
+ path[len] = '\0'; \
+ } \
+ if (len >= 9 && ! memcmp (path + len - 9, "/libilp32", 9))\
+ { \
+ len -= 5; \
+ path[len] = '\0'; \
+ } \
+ add_dir (path); \
+ if (len >= 4 && ! memcmp (path + len - 4, "/lib", 4)) \
+ { \
+ memcpy (path + len, "64", 3); \
+ add_dir (path); \
+ memcpy (path + len, "ilp32", 6); \
+ add_dir (path); \
+ } \
+ } while (0)
+
+#include_next <dl-cache.h>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/dl-procinfo.c b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/dl-procinfo.c
new file mode 100644
index 0000000000..bc37bad782
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/dl-procinfo.c
@@ -0,0 +1,75 @@
+/* Data for AArch64 version of processor capability information.
+ Linux version.
+ Copyright (C) 2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+/* If anything should be added here check whether the size of each string
+ is still ok with the given array size.
+
+ All the #ifdefs in the definitions are quite irritating but
+ necessary if we want to avoid duplicating the information. There
+ are three different modes:
+
+ - PROCINFO_DECL is defined. This means we are only interested in
+ declarations.
+
+ - PROCINFO_DECL is not defined:
+
+ + if SHARED is defined the file is included in an array
+ initializer. The .element = { ... } syntax is needed.
+
+ + if SHARED is not defined a normal array initialization is
+ needed.
+ */
+
+#ifndef PROCINFO_CLASS
+# define PROCINFO_CLASS
+#endif
+
+#if !IS_IN (ldconfig)
+# if !defined PROCINFO_DECL && defined SHARED
+ ._dl_aarch64_cpu_features
+# else
+PROCINFO_CLASS struct cpu_features _dl_aarch64_cpu_features
+# endif
+# ifndef PROCINFO_DECL
+= { }
+# endif
+# if !defined SHARED || defined PROCINFO_DECL
+;
+# else
+,
+# endif
+#endif
+
+#if !defined PROCINFO_DECL && defined SHARED
+ ._dl_aarch64_cap_flags
+#else
+PROCINFO_CLASS const char _dl_aarch64_cap_flags[13][10]
+#endif
+#ifndef PROCINFO_DECL
+= { "fp", "asimd", "evtstrm", "aes", "pmull", "sha1", "sha2", "crc32",
+ "atomics", "fphp", "asimdhp", "cpuid", "asimdrdm"}
+#endif
+#if !defined SHARED || defined PROCINFO_DECL
+;
+#else
+,
+#endif
+
+#undef PROCINFO_DECL
+#undef PROCINFO_CLASS
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/dl-procinfo.h b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/dl-procinfo.h
new file mode 100644
index 0000000000..cdb36d3316
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/dl-procinfo.h
@@ -0,0 +1,86 @@
+/* Processor capability information handling macros - aarch64 version.
+ Copyright (C) 2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _DL_PROCINFO_H
+#define _DL_PROCINFO_H 1
+
+#include <sys/auxv.h>
+#include <unistd.h>
+#include <ldsodefs.h>
+#include <sysdep.h>
+
+/* We cannot provide a general printing function. */
+static inline int
+__attribute__ ((unused))
+_dl_procinfo (unsigned int type, unsigned long int word)
+{
+ /* This table should match the information from arch/arm64/kernel/cpuinfo.c
+ in the kernel sources. */
+ int i;
+
+ /* Fallback to unknown output mechanism. */
+ if (type == AT_HWCAP2)
+ return -1;
+
+ _dl_printf ("AT_HWCAP: ");
+
+ for (i = 0; i < 32; ++i)
+ if (word & (1 << i))
+ _dl_printf (" %s", GLRO(dl_aarch64_cap_flags)[i]);
+
+ _dl_printf ("\n");
+
+ return 0;
+}
+
+static inline const char *
+__attribute__ ((unused))
+_dl_hwcap_string (int idx)
+{
+ return GLRO(dl_aarch64_cap_flags)[idx];
+};
+
+
+/* 13 HWCAP bits set. */
+#define _DL_HWCAP_COUNT 13
+
+/* Low 13 bits are allocated in HWCAP. */
+#define _DL_HWCAP_LAST 12
+
+/* HWCAP_CPUID should be available by default to influence IFUNC as well as
+ library search. */
+#define HWCAP_IMPORTANT HWCAP_CPUID
+
+static inline int
+__attribute__ ((unused))
+_dl_string_hwcap (const char *str)
+{
+ for (int i = 0; i < _DL_HWCAP_COUNT; i++)
+ {
+ if (strcmp (str, _dl_hwcap_string (i)) == 0)
+ return i;
+ }
+ return -1;
+};
+
+/* There're no platforms to filter out. */
+#define _DL_HWCAP_PLATFORM 0
+
+#define _dl_string_platform(str) (-1)
+
+#endif /* dl-procinfo.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/dl-static.c b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/dl-static.c
new file mode 100644
index 0000000000..fcda0df16f
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/dl-static.c
@@ -0,0 +1,84 @@
+/* Variable initialization. AArch64 version.
+ Copyright (C) 2001-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <ldsodefs.h>
+
+#ifdef SHARED
+
+void
+_dl_var_init (void *array[])
+{
+ /* It has to match "variables" below. */
+ enum
+ {
+ DL_PAGESIZE = 0
+ };
+
+ GLRO(dl_pagesize) = *((size_t *) array[DL_PAGESIZE]);
+}
+
+#else
+
+static void *variables[] =
+{
+ &GLRO(dl_pagesize)
+};
+
+static void
+_dl_unprotect_relro (struct link_map *l)
+{
+ ElfW(Addr) start = ((l->l_addr + l->l_relro_addr)
+ & ~(GLRO(dl_pagesize) - 1));
+ ElfW(Addr) end = ((l->l_addr + l->l_relro_addr + l->l_relro_size)
+ & ~(GLRO(dl_pagesize) - 1));
+
+ if (start != end)
+ __mprotect ((void *) start, end - start, PROT_READ | PROT_WRITE);
+}
+
+void
+_dl_static_init (struct link_map *l)
+{
+ struct link_map *rtld_map = l;
+ struct r_scope_elem **scope;
+ const ElfW(Sym) *ref = NULL;
+ lookup_t loadbase;
+ void (*f) (void *[]);
+ size_t i;
+
+ loadbase = _dl_lookup_symbol_x ("_dl_var_init", l, &ref, l->l_local_scope,
+ NULL, 0, 1, NULL);
+
+ for (scope = l->l_local_scope; *scope != NULL; scope++)
+ for (i = 0; i < (*scope)->r_nlist; i++)
+ if ((*scope)->r_list[i] == loadbase)
+ {
+ rtld_map = (*scope)->r_list[i];
+ break;
+ }
+
+ if (ref != NULL)
+ {
+ f = (void (*) (void *[])) DL_SYMBOL_ADDRESS (loadbase, ref);
+ _dl_unprotect_relro (rtld_map);
+ f (variables);
+ _dl_protect_relro (rtld_map);
+ }
+}
+
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/getcontext.S b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/getcontext.S
new file mode 100644
index 0000000000..fa7074c590
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/getcontext.S
@@ -0,0 +1,109 @@
+/* Save current context.
+
+ Copyright (C) 2009-2017 Free Software Foundation, Inc.
+
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation; either version 2.1 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#include "ucontext_i.h"
+#include "ucontext-internal.h"
+
+/* int getcontext (ucontext_t *ucp)
+
+ Returns 0 on success -1 and errno on failure.
+ */
+
+ .text
+
+ENTRY(__getcontext)
+ DELOUSE (0)
+ /* The saved context will return to the getcontext() call point
+ with a return value of 0 */
+ str xzr, [x0, oX0 + 0 * SZREG]
+
+ stp x18, x19, [x0, oX0 + 18 * SZREG]
+ stp x20, x21, [x0, oX0 + 20 * SZREG]
+ stp x22, x23, [x0, oX0 + 22 * SZREG]
+ stp x24, x25, [x0, oX0 + 24 * SZREG]
+ stp x26, x27, [x0, oX0 + 26 * SZREG]
+ stp x28, x29, [x0, oX0 + 28 * SZREG]
+ str x30, [x0, oX0 + 30 * SZREG]
+
+ /* Place LR into the saved PC, this will ensure that when
+ switching to this saved context with setcontext() control
+ will pass back to the caller of getcontext(), we have
+ already arrange to return the appropriate return value in x0
+ above. */
+ str x30, [x0, oPC]
+
+ /* Save the current SP */
+ mov x2, sp
+ str x2, [x0, oSP]
+
+ /* Initialize the pstate. */
+ str xzr, [x0, oPSTATE]
+
+ /* Figure out where to place the first context extension
+ block. */
+ add x2, x0, #oEXTENSION
+
+ /* Write the context extension fpsimd header. */
+ mov w3, #(FPSIMD_MAGIC & 0xffff)
+ movk w3, #(FPSIMD_MAGIC >> 16), lsl #16
+ str w3, [x2, #oHEAD + oMAGIC]
+ mov w3, #FPSIMD_CONTEXT_SIZE
+ str w3, [x2, #oHEAD + oSIZE]
+
+ /* Fill in the FP SIMD context. */
+ add x3, x2, #oV0 + 8 * SZVREG
+ stp q8, q9, [x3], # 2 * SZVREG
+ stp q10, q11, [x3], # 2 * SZVREG
+ stp q12, q13, [x3], # 2 * SZVREG
+ stp q14, q15, [x3], # 2 * SZVREG
+
+ add x3, x2, oFPSR
+
+ mrs x4, fpsr
+ str w4, [x3]
+
+ mrs x4, fpcr
+ str w4, [x3, oFPCR - oFPSR]
+
+ /* Write the termination context extension header. */
+ add x2, x2, #FPSIMD_CONTEXT_SIZE
+
+ str xzr, [x2, #oHEAD + oMAGIC]
+ str xzr, [x2, #oHEAD + oSIZE]
+
+ /* Grab the signal mask */
+ /* rt_sigprocmask (SIG_BLOCK, NULL, &ucp->uc_sigmask, _NSIG8) */
+ add PTR_REG (2), PTR_REG (0), #UCONTEXT_SIGMASK
+ mov x0, SIG_BLOCK
+ mov x1, 0
+ mov x3, _NSIG8
+ mov x8, SYS_ify (rt_sigprocmask)
+ svc 0
+ cbnz x0, 1f
+
+ /* Return 0 for success */
+ mov x0, 0
+ RET
+1:
+ b C_SYMBOL_NAME(__syscall_error)
+
+ PSEUDO_END (__getcontext)
+weak_alias (__getcontext, getcontext)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/init-first.c b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/init-first.c
new file mode 100644
index 0000000000..96f5338994
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/init-first.c
@@ -0,0 +1,52 @@
+/* Copyright (C) 2007-2017 Free Software Foundation, Inc.
+
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation; either version 2.1 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifdef SHARED
+# include <dl-vdso.h>
+# include <libc-vdso.h>
+
+int (*VDSO_SYMBOL(gettimeofday)) (struct timeval *, void *) attribute_hidden;
+int (*VDSO_SYMBOL(clock_gettime)) (clockid_t, struct timespec *);
+int (*VDSO_SYMBOL(clock_getres)) (clockid_t, struct timespec *);
+
+static inline void
+_libc_vdso_platform_setup (void)
+{
+#ifdef __LP64__
+ PREPARE_VERSION (linux_version, "LINUX_2.6.39", 123718537);
+#else
+ PREPARE_VERSION (linux_version, "LINUX_4.9", 61765625);
+#endif
+
+ void *p = _dl_vdso_vsym ("__kernel_gettimeofday", &linux_version);
+ PTR_MANGLE (p);
+ VDSO_SYMBOL(gettimeofday) = p;
+
+ p = _dl_vdso_vsym ("__kernel_clock_gettime", &linux_version);
+ PTR_MANGLE (p);
+ VDSO_SYMBOL(clock_gettime) = p;
+
+ p = _dl_vdso_vsym ("__kernel_clock_getres", &linux_version);
+ PTR_MANGLE (p);
+ VDSO_SYMBOL(clock_getres) = p;
+}
+
+# define VDSO_SETUP _libc_vdso_platform_setup
+#endif
+
+#include <csu/init-first.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/ioctl.S b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/ioctl.S
new file mode 100644
index 0000000000..866d6ef12d
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/ioctl.S
@@ -0,0 +1,31 @@
+/* Copyright (C) 2012-2017 Free Software Foundation, Inc.
+
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation; either version 2.1 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+
+ .text
+ENTRY(__ioctl)
+ mov x8, #__NR_ioctl
+ sxtw x0, w0
+ svc #0x0
+ cmn x0, #4095
+ b.cs .Lsyscall_error
+ ret
+PSEUDO_END (__ioctl)
+
+weak_alias (__ioctl, ioctl)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/ipc_priv.h b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/ipc_priv.h
new file mode 100644
index 0000000000..8d12f31573
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/ipc_priv.h
@@ -0,0 +1,21 @@
+/* Old SysV permission definition for Linux. AArch64 version.
+ Copyright (C) 2016-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sys/ipc.h> /* For __key_t */
+
+#define __IPC_64 0x0
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/kernel_rt_sigframe.h b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/kernel_rt_sigframe.h
new file mode 100644
index 0000000000..e67ddfa91c
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/kernel_rt_sigframe.h
@@ -0,0 +1,25 @@
+/* Copyright (C) 2009-2017 Free Software Foundation, Inc.
+
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation; either version 2.1 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+/* This structure must have the same shape as the linux kernel
+ equivalent. */
+struct kernel_rt_sigframe
+{
+ siginfo_t info;
+ struct ucontext uc;
+};
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/ld.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/ld.abilist
new file mode 100644
index 0000000000..ec7f6174c5
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/ld.abilist
@@ -0,0 +1,10 @@
+GLIBC_2.17 GLIBC_2.17 A
+GLIBC_2.17 __libc_stack_end D 0x8
+GLIBC_2.17 __stack_chk_guard D 0x8
+GLIBC_2.17 __tls_get_addr F
+GLIBC_2.17 _dl_mcount F
+GLIBC_2.17 _r_debug D 0x28
+GLIBC_2.17 calloc F
+GLIBC_2.17 free F
+GLIBC_2.17 malloc F
+GLIBC_2.17 realloc F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/ldconfig.h b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/ldconfig.h
new file mode 100644
index 0000000000..e1c334c478
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/ldconfig.h
@@ -0,0 +1,30 @@
+/* Copyright (C) 2009-2017 Free Software Foundation, Inc.
+
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation; either version 2.1 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdeps/generic/ldconfig.h>
+
+#define SYSDEP_KNOWN_INTERPRETER_NAMES \
+ { "/lib/ld-linux-aarch64.so.1", FLAG_ELF_LIBC6 }, \
+ { "/lib/ld-linux-aarch64_be.so.1", FLAG_ELF_LIBC6 }, \
+ { "/lib/ld-linux-aarch64_ilp32.so.1", FLAG_ELF_LIBC6 }, \
+ { "/lib/ld-linux-aarch64_be_ilp32.so.1", FLAG_ELF_LIBC6 }, \
+ { "/lib/ld-linux.so.3", FLAG_ELF_LIBC6 }, \
+ { "/lib/ld-linux-armhf.so.3", FLAG_ELF_LIBC6 },
+#define SYSDEP_KNOWN_LIBRARY_NAMES \
+ { "libc.so.6", FLAG_ELF_LIBC6 }, \
+ { "libm.so.6", FLAG_ELF_LIBC6 },
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/ldsodefs.h b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/ldsodefs.h
new file mode 100644
index 0000000000..74ce6aa797
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/ldsodefs.h
@@ -0,0 +1,32 @@
+/* Run-time dynamic linker data structures for loaded ELF shared objects. Tile.
+ Copyright (C) 2001-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _LDSODEFS_H
+
+/* Get the real definitions. */
+#include_next <ldsodefs.h>
+
+/* Now define our stuff. */
+
+/* We need special support to initialize DSO loaded for statically linked
+ binaries. */
+extern void _dl_static_init (struct link_map *map);
+#undef DL_STATIC_INIT
+#define DL_STATIC_INIT(map) _dl_static_init (map)
+
+#endif /* ldsodefs.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/libBrokenLocale.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/libBrokenLocale.abilist
new file mode 100644
index 0000000000..5e54974368
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/libBrokenLocale.abilist
@@ -0,0 +1,2 @@
+GLIBC_2.17 GLIBC_2.17 A
+GLIBC_2.17 __ctype_get_mb_cur_max F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/libanl.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/libanl.abilist
new file mode 100644
index 0000000000..21330fc8d5
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/libanl.abilist
@@ -0,0 +1,5 @@
+GLIBC_2.17 GLIBC_2.17 A
+GLIBC_2.17 gai_cancel F
+GLIBC_2.17 gai_error F
+GLIBC_2.17 gai_suspend F
+GLIBC_2.17 getaddrinfo_a F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/libc-__read_tp.S b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/libc-__read_tp.S
new file mode 100644
index 0000000000..47df81abe6
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/libc-__read_tp.S
@@ -0,0 +1,19 @@
+/* Copyright (C) 2009-2017 Free Software Foundation, Inc.
+
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation; either version 2.1 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <__read_tp.S>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/libc-start.c b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/libc-start.c
new file mode 100644
index 0000000000..089a728a87
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/libc-start.c
@@ -0,0 +1,28 @@
+/* Override csu/libc-start.c on AArch64.
+ Copyright (C) 2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef SHARED
+# include <ldsodefs.h>
+# include <cpu-features.c>
+
+extern struct cpu_features _dl_aarch64_cpu_features;
+
+# define ARCH_INIT_CPU_FEATURES() init_cpu_features (&_dl_aarch64_cpu_features)
+
+#endif
+#include <csu/libc-start.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/libc-vdso.h b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/libc-vdso.h
new file mode 100644
index 0000000000..599ae9852c
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/libc-vdso.h
@@ -0,0 +1,33 @@
+/* Copyright (C) 2009-2017 Free Software Foundation, Inc.
+
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _LIBC_VDSO_H
+#define _LIBC_VDSO_H
+
+#ifdef SHARED
+
+# include <sysdep-vdso.h>
+
+extern int (*VDSO_SYMBOL(gettimeofday)) (struct timeval *, void *)
+ attribute_hidden;
+extern int (*VDSO_SYMBOL(clock_gettime)) (clockid_t, struct timespec *);
+extern int (*VDSO_SYMBOL(clock_getres)) (clockid_t, struct timespec *);
+
+#endif
+
+#endif /* _LIBC_VDSO_H */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/libc.abilist
new file mode 100644
index 0000000000..81e4fe9d9c
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/libc.abilist
@@ -0,0 +1,2105 @@
+GLIBC_2.17 GLIBC_2.17 A
+GLIBC_2.17 _Exit F
+GLIBC_2.17 _IO_2_1_stderr_ D 0xe0
+GLIBC_2.17 _IO_2_1_stdin_ D 0xe0
+GLIBC_2.17 _IO_2_1_stdout_ D 0xe0
+GLIBC_2.17 _IO_adjust_column F
+GLIBC_2.17 _IO_adjust_wcolumn F
+GLIBC_2.17 _IO_default_doallocate F
+GLIBC_2.17 _IO_default_finish F
+GLIBC_2.17 _IO_default_pbackfail F
+GLIBC_2.17 _IO_default_uflow F
+GLIBC_2.17 _IO_default_xsgetn F
+GLIBC_2.17 _IO_default_xsputn F
+GLIBC_2.17 _IO_do_write F
+GLIBC_2.17 _IO_doallocbuf F
+GLIBC_2.17 _IO_fclose F
+GLIBC_2.17 _IO_fdopen F
+GLIBC_2.17 _IO_feof F
+GLIBC_2.17 _IO_ferror F
+GLIBC_2.17 _IO_fflush F
+GLIBC_2.17 _IO_fgetpos F
+GLIBC_2.17 _IO_fgetpos64 F
+GLIBC_2.17 _IO_fgets F
+GLIBC_2.17 _IO_file_attach F
+GLIBC_2.17 _IO_file_close F
+GLIBC_2.17 _IO_file_close_it F
+GLIBC_2.17 _IO_file_doallocate F
+GLIBC_2.17 _IO_file_finish F
+GLIBC_2.17 _IO_file_fopen F
+GLIBC_2.17 _IO_file_init F
+GLIBC_2.17 _IO_file_jumps D 0xa8
+GLIBC_2.17 _IO_file_open F
+GLIBC_2.17 _IO_file_overflow F
+GLIBC_2.17 _IO_file_read F
+GLIBC_2.17 _IO_file_seek F
+GLIBC_2.17 _IO_file_seekoff F
+GLIBC_2.17 _IO_file_setbuf F
+GLIBC_2.17 _IO_file_stat F
+GLIBC_2.17 _IO_file_sync F
+GLIBC_2.17 _IO_file_underflow F
+GLIBC_2.17 _IO_file_write F
+GLIBC_2.17 _IO_file_xsputn F
+GLIBC_2.17 _IO_flockfile F
+GLIBC_2.17 _IO_flush_all F
+GLIBC_2.17 _IO_flush_all_linebuffered F
+GLIBC_2.17 _IO_fopen F
+GLIBC_2.17 _IO_fprintf F
+GLIBC_2.17 _IO_fputs F
+GLIBC_2.17 _IO_fread F
+GLIBC_2.17 _IO_free_backup_area F
+GLIBC_2.17 _IO_free_wbackup_area F
+GLIBC_2.17 _IO_fsetpos F
+GLIBC_2.17 _IO_fsetpos64 F
+GLIBC_2.17 _IO_ftell F
+GLIBC_2.17 _IO_ftrylockfile F
+GLIBC_2.17 _IO_funlockfile F
+GLIBC_2.17 _IO_fwrite F
+GLIBC_2.17 _IO_getc F
+GLIBC_2.17 _IO_getline F
+GLIBC_2.17 _IO_getline_info F
+GLIBC_2.17 _IO_gets F
+GLIBC_2.17 _IO_init F
+GLIBC_2.17 _IO_init_marker F
+GLIBC_2.17 _IO_init_wmarker F
+GLIBC_2.17 _IO_iter_begin F
+GLIBC_2.17 _IO_iter_end F
+GLIBC_2.17 _IO_iter_file F
+GLIBC_2.17 _IO_iter_next F
+GLIBC_2.17 _IO_least_wmarker F
+GLIBC_2.17 _IO_link_in F
+GLIBC_2.17 _IO_list_all D 0x8
+GLIBC_2.17 _IO_list_lock F
+GLIBC_2.17 _IO_list_resetlock F
+GLIBC_2.17 _IO_list_unlock F
+GLIBC_2.17 _IO_marker_delta F
+GLIBC_2.17 _IO_marker_difference F
+GLIBC_2.17 _IO_padn F
+GLIBC_2.17 _IO_peekc_locked F
+GLIBC_2.17 _IO_popen F
+GLIBC_2.17 _IO_printf F
+GLIBC_2.17 _IO_proc_close F
+GLIBC_2.17 _IO_proc_open F
+GLIBC_2.17 _IO_putc F
+GLIBC_2.17 _IO_puts F
+GLIBC_2.17 _IO_remove_marker F
+GLIBC_2.17 _IO_seekmark F
+GLIBC_2.17 _IO_seekoff F
+GLIBC_2.17 _IO_seekpos F
+GLIBC_2.17 _IO_seekwmark F
+GLIBC_2.17 _IO_setb F
+GLIBC_2.17 _IO_setbuffer F
+GLIBC_2.17 _IO_setvbuf F
+GLIBC_2.17 _IO_sgetn F
+GLIBC_2.17 _IO_sprintf F
+GLIBC_2.17 _IO_sputbackc F
+GLIBC_2.17 _IO_sputbackwc F
+GLIBC_2.17 _IO_sscanf F
+GLIBC_2.17 _IO_str_init_readonly F
+GLIBC_2.17 _IO_str_init_static F
+GLIBC_2.17 _IO_str_overflow F
+GLIBC_2.17 _IO_str_pbackfail F
+GLIBC_2.17 _IO_str_seekoff F
+GLIBC_2.17 _IO_str_underflow F
+GLIBC_2.17 _IO_sungetc F
+GLIBC_2.17 _IO_sungetwc F
+GLIBC_2.17 _IO_switch_to_get_mode F
+GLIBC_2.17 _IO_switch_to_main_wget_area F
+GLIBC_2.17 _IO_switch_to_wbackup_area F
+GLIBC_2.17 _IO_switch_to_wget_mode F
+GLIBC_2.17 _IO_un_link F
+GLIBC_2.17 _IO_ungetc F
+GLIBC_2.17 _IO_unsave_markers F
+GLIBC_2.17 _IO_unsave_wmarkers F
+GLIBC_2.17 _IO_vfprintf F
+GLIBC_2.17 _IO_vfscanf F
+GLIBC_2.17 _IO_vsprintf F
+GLIBC_2.17 _IO_wdefault_doallocate F
+GLIBC_2.17 _IO_wdefault_finish F
+GLIBC_2.17 _IO_wdefault_pbackfail F
+GLIBC_2.17 _IO_wdefault_uflow F
+GLIBC_2.17 _IO_wdefault_xsgetn F
+GLIBC_2.17 _IO_wdefault_xsputn F
+GLIBC_2.17 _IO_wdo_write F
+GLIBC_2.17 _IO_wdoallocbuf F
+GLIBC_2.17 _IO_wfile_jumps D 0xa8
+GLIBC_2.17 _IO_wfile_overflow F
+GLIBC_2.17 _IO_wfile_seekoff F
+GLIBC_2.17 _IO_wfile_sync F
+GLIBC_2.17 _IO_wfile_underflow F
+GLIBC_2.17 _IO_wfile_xsputn F
+GLIBC_2.17 _IO_wmarker_delta F
+GLIBC_2.17 _IO_wsetb F
+GLIBC_2.17 ___brk_addr D 0x8
+GLIBC_2.17 __adjtimex F
+GLIBC_2.17 __after_morecore_hook D 0x8
+GLIBC_2.17 __argz_count F
+GLIBC_2.17 __argz_next F
+GLIBC_2.17 __argz_stringify F
+GLIBC_2.17 __asprintf F
+GLIBC_2.17 __asprintf_chk F
+GLIBC_2.17 __assert F
+GLIBC_2.17 __assert_fail F
+GLIBC_2.17 __assert_perror_fail F
+GLIBC_2.17 __backtrace F
+GLIBC_2.17 __backtrace_symbols F
+GLIBC_2.17 __backtrace_symbols_fd F
+GLIBC_2.17 __bsd_getpgrp F
+GLIBC_2.17 __bzero F
+GLIBC_2.17 __check_rhosts_file D 0x4
+GLIBC_2.17 __chk_fail F
+GLIBC_2.17 __clone F
+GLIBC_2.17 __close F
+GLIBC_2.17 __cmsg_nxthdr F
+GLIBC_2.17 __confstr_chk F
+GLIBC_2.17 __connect F
+GLIBC_2.17 __ctype_b_loc F
+GLIBC_2.17 __ctype_get_mb_cur_max F
+GLIBC_2.17 __ctype_tolower_loc F
+GLIBC_2.17 __ctype_toupper_loc F
+GLIBC_2.17 __curbrk D 0x8
+GLIBC_2.17 __cxa_at_quick_exit F
+GLIBC_2.17 __cxa_atexit F
+GLIBC_2.17 __cxa_finalize F
+GLIBC_2.17 __cyg_profile_func_enter F
+GLIBC_2.17 __cyg_profile_func_exit F
+GLIBC_2.17 __daylight D 0x4
+GLIBC_2.17 __dcgettext F
+GLIBC_2.17 __default_morecore F
+GLIBC_2.17 __dgettext F
+GLIBC_2.17 __dprintf_chk F
+GLIBC_2.17 __dup2 F
+GLIBC_2.17 __duplocale F
+GLIBC_2.17 __endmntent F
+GLIBC_2.17 __environ D 0x8
+GLIBC_2.17 __errno_location F
+GLIBC_2.17 __fbufsize F
+GLIBC_2.17 __fcntl F
+GLIBC_2.17 __fdelt_chk F
+GLIBC_2.17 __fdelt_warn F
+GLIBC_2.17 __ffs F
+GLIBC_2.17 __fgets_chk F
+GLIBC_2.17 __fgets_unlocked_chk F
+GLIBC_2.17 __fgetws_chk F
+GLIBC_2.17 __fgetws_unlocked_chk F
+GLIBC_2.17 __finite F
+GLIBC_2.17 __finitef F
+GLIBC_2.17 __finitel F
+GLIBC_2.17 __flbf F
+GLIBC_2.17 __fork F
+GLIBC_2.17 __fpending F
+GLIBC_2.17 __fprintf_chk F
+GLIBC_2.17 __fpu_control D 0x4
+GLIBC_2.17 __fpurge F
+GLIBC_2.17 __fread_chk F
+GLIBC_2.17 __fread_unlocked_chk F
+GLIBC_2.17 __freadable F
+GLIBC_2.17 __freading F
+GLIBC_2.17 __free_hook D 0x8
+GLIBC_2.17 __freelocale F
+GLIBC_2.17 __fsetlocking F
+GLIBC_2.17 __fwprintf_chk F
+GLIBC_2.17 __fwritable F
+GLIBC_2.17 __fwriting F
+GLIBC_2.17 __fxstat F
+GLIBC_2.17 __fxstat64 F
+GLIBC_2.17 __fxstatat F
+GLIBC_2.17 __fxstatat64 F
+GLIBC_2.17 __getauxval F
+GLIBC_2.17 __getcwd_chk F
+GLIBC_2.17 __getdelim F
+GLIBC_2.17 __getdomainname_chk F
+GLIBC_2.17 __getgroups_chk F
+GLIBC_2.17 __gethostname_chk F
+GLIBC_2.17 __getlogin_r_chk F
+GLIBC_2.17 __getmntent_r F
+GLIBC_2.17 __getpagesize F
+GLIBC_2.17 __getpgid F
+GLIBC_2.17 __getpid F
+GLIBC_2.17 __gets_chk F
+GLIBC_2.17 __gettimeofday F
+GLIBC_2.17 __getwd_chk F
+GLIBC_2.17 __gmtime_r F
+GLIBC_2.17 __h_errno_location F
+GLIBC_2.17 __isalnum_l F
+GLIBC_2.17 __isalpha_l F
+GLIBC_2.17 __isascii_l F
+GLIBC_2.17 __isblank_l F
+GLIBC_2.17 __iscntrl_l F
+GLIBC_2.17 __isctype F
+GLIBC_2.17 __isdigit_l F
+GLIBC_2.17 __isgraph_l F
+GLIBC_2.17 __isinf F
+GLIBC_2.17 __isinff F
+GLIBC_2.17 __isinfl F
+GLIBC_2.17 __islower_l F
+GLIBC_2.17 __isnan F
+GLIBC_2.17 __isnanf F
+GLIBC_2.17 __isnanl F
+GLIBC_2.17 __isoc99_fscanf F
+GLIBC_2.17 __isoc99_fwscanf F
+GLIBC_2.17 __isoc99_scanf F
+GLIBC_2.17 __isoc99_sscanf F
+GLIBC_2.17 __isoc99_swscanf F
+GLIBC_2.17 __isoc99_vfscanf F
+GLIBC_2.17 __isoc99_vfwscanf F
+GLIBC_2.17 __isoc99_vscanf F
+GLIBC_2.17 __isoc99_vsscanf F
+GLIBC_2.17 __isoc99_vswscanf F
+GLIBC_2.17 __isoc99_vwscanf F
+GLIBC_2.17 __isoc99_wscanf F
+GLIBC_2.17 __isprint_l F
+GLIBC_2.17 __ispunct_l F
+GLIBC_2.17 __isspace_l F
+GLIBC_2.17 __isupper_l F
+GLIBC_2.17 __iswalnum_l F
+GLIBC_2.17 __iswalpha_l F
+GLIBC_2.17 __iswblank_l F
+GLIBC_2.17 __iswcntrl_l F
+GLIBC_2.17 __iswctype F
+GLIBC_2.17 __iswctype_l F
+GLIBC_2.17 __iswdigit_l F
+GLIBC_2.17 __iswgraph_l F
+GLIBC_2.17 __iswlower_l F
+GLIBC_2.17 __iswprint_l F
+GLIBC_2.17 __iswpunct_l F
+GLIBC_2.17 __iswspace_l F
+GLIBC_2.17 __iswupper_l F
+GLIBC_2.17 __iswxdigit_l F
+GLIBC_2.17 __isxdigit_l F
+GLIBC_2.17 __ivaliduser F
+GLIBC_2.17 __key_decryptsession_pk_LOCAL D 0x8
+GLIBC_2.17 __key_encryptsession_pk_LOCAL D 0x8
+GLIBC_2.17 __key_gendes_LOCAL D 0x8
+GLIBC_2.17 __libc_allocate_rtsig F
+GLIBC_2.17 __libc_calloc F
+GLIBC_2.17 __libc_current_sigrtmax F
+GLIBC_2.17 __libc_current_sigrtmin F
+GLIBC_2.17 __libc_free F
+GLIBC_2.17 __libc_freeres F
+GLIBC_2.17 __libc_init_first F
+GLIBC_2.17 __libc_mallinfo F
+GLIBC_2.17 __libc_malloc F
+GLIBC_2.17 __libc_mallopt F
+GLIBC_2.17 __libc_memalign F
+GLIBC_2.17 __libc_pvalloc F
+GLIBC_2.17 __libc_realloc F
+GLIBC_2.17 __libc_sa_len F
+GLIBC_2.17 __libc_start_main F
+GLIBC_2.17 __libc_valloc F
+GLIBC_2.17 __longjmp_chk F
+GLIBC_2.17 __lseek F
+GLIBC_2.17 __lxstat F
+GLIBC_2.17 __lxstat64 F
+GLIBC_2.17 __malloc_hook D 0x8
+GLIBC_2.17 __malloc_initialize_hook D 0x8
+GLIBC_2.17 __mbrlen F
+GLIBC_2.17 __mbrtowc F
+GLIBC_2.17 __mbsnrtowcs_chk F
+GLIBC_2.17 __mbsrtowcs_chk F
+GLIBC_2.17 __mbstowcs_chk F
+GLIBC_2.17 __memalign_hook D 0x8
+GLIBC_2.17 __memcpy_chk F
+GLIBC_2.17 __memmove_chk F
+GLIBC_2.17 __mempcpy F
+GLIBC_2.17 __mempcpy_chk F
+GLIBC_2.17 __mempcpy_small F
+GLIBC_2.17 __memset_chk F
+GLIBC_2.17 __monstartup F
+GLIBC_2.17 __morecore D 0x8
+GLIBC_2.17 __nanosleep F
+GLIBC_2.17 __newlocale F
+GLIBC_2.17 __nl_langinfo_l F
+GLIBC_2.17 __nss_configure_lookup F
+GLIBC_2.17 __nss_database_lookup F
+GLIBC_2.17 __nss_group_lookup F
+GLIBC_2.17 __nss_hostname_digits_dots F
+GLIBC_2.17 __nss_hosts_lookup F
+GLIBC_2.17 __nss_next F
+GLIBC_2.17 __nss_passwd_lookup F
+GLIBC_2.17 __obstack_printf_chk F
+GLIBC_2.17 __obstack_vprintf_chk F
+GLIBC_2.17 __open F
+GLIBC_2.17 __open64 F
+GLIBC_2.17 __open64_2 F
+GLIBC_2.17 __open_2 F
+GLIBC_2.17 __openat64_2 F
+GLIBC_2.17 __openat_2 F
+GLIBC_2.17 __overflow F
+GLIBC_2.17 __pipe F
+GLIBC_2.17 __poll F
+GLIBC_2.17 __poll_chk F
+GLIBC_2.17 __posix_getopt F
+GLIBC_2.17 __ppoll_chk F
+GLIBC_2.17 __pread64 F
+GLIBC_2.17 __pread64_chk F
+GLIBC_2.17 __pread_chk F
+GLIBC_2.17 __printf_chk F
+GLIBC_2.17 __printf_fp F
+GLIBC_2.17 __profile_frequency F
+GLIBC_2.17 __progname D 0x8
+GLIBC_2.17 __progname_full D 0x8
+GLIBC_2.17 __ptsname_r_chk F
+GLIBC_2.17 __pwrite64 F
+GLIBC_2.17 __rawmemchr F
+GLIBC_2.17 __rcmd_errstr D 0x8
+GLIBC_2.17 __read F
+GLIBC_2.17 __read_chk F
+GLIBC_2.17 __readlink_chk F
+GLIBC_2.17 __readlinkat_chk F
+GLIBC_2.17 __realloc_hook D 0x8
+GLIBC_2.17 __realpath_chk F
+GLIBC_2.17 __recv_chk F
+GLIBC_2.17 __recvfrom_chk F
+GLIBC_2.17 __register_atfork F
+GLIBC_2.17 __res_init F
+GLIBC_2.17 __res_nclose F
+GLIBC_2.17 __res_ninit F
+GLIBC_2.17 __res_randomid F
+GLIBC_2.17 __res_state F
+GLIBC_2.17 __rpc_thread_createerr F
+GLIBC_2.17 __rpc_thread_svc_fdset F
+GLIBC_2.17 __rpc_thread_svc_max_pollfd F
+GLIBC_2.17 __rpc_thread_svc_pollfd F
+GLIBC_2.17 __sbrk F
+GLIBC_2.17 __sched_cpualloc F
+GLIBC_2.17 __sched_cpucount F
+GLIBC_2.17 __sched_cpufree F
+GLIBC_2.17 __sched_get_priority_max F
+GLIBC_2.17 __sched_get_priority_min F
+GLIBC_2.17 __sched_getparam F
+GLIBC_2.17 __sched_getscheduler F
+GLIBC_2.17 __sched_setscheduler F
+GLIBC_2.17 __sched_yield F
+GLIBC_2.17 __select F
+GLIBC_2.17 __setmntent F
+GLIBC_2.17 __setpgid F
+GLIBC_2.17 __sigaction F
+GLIBC_2.17 __sigaddset F
+GLIBC_2.17 __sigdelset F
+GLIBC_2.17 __sigismember F
+GLIBC_2.17 __signbit F
+GLIBC_2.17 __signbitf F
+GLIBC_2.17 __signbitl F
+GLIBC_2.17 __sigpause F
+GLIBC_2.17 __sigsetjmp F
+GLIBC_2.17 __sigsuspend F
+GLIBC_2.17 __snprintf_chk F
+GLIBC_2.17 __sprintf_chk F
+GLIBC_2.17 __stack_chk_fail F
+GLIBC_2.17 __statfs F
+GLIBC_2.17 __stpcpy F
+GLIBC_2.17 __stpcpy_chk F
+GLIBC_2.17 __stpcpy_small F
+GLIBC_2.17 __stpncpy F
+GLIBC_2.17 __stpncpy_chk F
+GLIBC_2.17 __strcasecmp F
+GLIBC_2.17 __strcasecmp_l F
+GLIBC_2.17 __strcasestr F
+GLIBC_2.17 __strcat_chk F
+GLIBC_2.17 __strcoll_l F
+GLIBC_2.17 __strcpy_chk F
+GLIBC_2.17 __strcpy_small F
+GLIBC_2.17 __strcspn_c1 F
+GLIBC_2.17 __strcspn_c2 F
+GLIBC_2.17 __strcspn_c3 F
+GLIBC_2.17 __strdup F
+GLIBC_2.17 __strerror_r F
+GLIBC_2.17 __strfmon_l F
+GLIBC_2.17 __strftime_l F
+GLIBC_2.17 __strncasecmp_l F
+GLIBC_2.17 __strncat_chk F
+GLIBC_2.17 __strncpy_chk F
+GLIBC_2.17 __strndup F
+GLIBC_2.17 __strpbrk_c2 F
+GLIBC_2.17 __strpbrk_c3 F
+GLIBC_2.17 __strsep_1c F
+GLIBC_2.17 __strsep_2c F
+GLIBC_2.17 __strsep_3c F
+GLIBC_2.17 __strsep_g F
+GLIBC_2.17 __strspn_c1 F
+GLIBC_2.17 __strspn_c2 F
+GLIBC_2.17 __strspn_c3 F
+GLIBC_2.17 __strtod_internal F
+GLIBC_2.17 __strtod_l F
+GLIBC_2.17 __strtof_internal F
+GLIBC_2.17 __strtof_l F
+GLIBC_2.17 __strtok_r F
+GLIBC_2.17 __strtok_r_1c F
+GLIBC_2.17 __strtol_internal F
+GLIBC_2.17 __strtol_l F
+GLIBC_2.17 __strtold_internal F
+GLIBC_2.17 __strtold_l F
+GLIBC_2.17 __strtoll_internal F
+GLIBC_2.17 __strtoll_l F
+GLIBC_2.17 __strtoul_internal F
+GLIBC_2.17 __strtoul_l F
+GLIBC_2.17 __strtoull_internal F
+GLIBC_2.17 __strtoull_l F
+GLIBC_2.17 __strverscmp F
+GLIBC_2.17 __strxfrm_l F
+GLIBC_2.17 __swprintf_chk F
+GLIBC_2.17 __sysconf F
+GLIBC_2.17 __syslog_chk F
+GLIBC_2.17 __sysv_signal F
+GLIBC_2.17 __timezone D 0x8
+GLIBC_2.17 __toascii_l F
+GLIBC_2.17 __tolower_l F
+GLIBC_2.17 __toupper_l F
+GLIBC_2.17 __towctrans F
+GLIBC_2.17 __towctrans_l F
+GLIBC_2.17 __towlower_l F
+GLIBC_2.17 __towupper_l F
+GLIBC_2.17 __ttyname_r_chk F
+GLIBC_2.17 __tzname D 0x10
+GLIBC_2.17 __uflow F
+GLIBC_2.17 __underflow F
+GLIBC_2.17 __uselocale F
+GLIBC_2.17 __vasprintf_chk F
+GLIBC_2.17 __vdprintf_chk F
+GLIBC_2.17 __vfork F
+GLIBC_2.17 __vfprintf_chk F
+GLIBC_2.17 __vfscanf F
+GLIBC_2.17 __vfwprintf_chk F
+GLIBC_2.17 __vprintf_chk F
+GLIBC_2.17 __vsnprintf F
+GLIBC_2.17 __vsnprintf_chk F
+GLIBC_2.17 __vsprintf_chk F
+GLIBC_2.17 __vsscanf F
+GLIBC_2.17 __vswprintf_chk F
+GLIBC_2.17 __vsyslog_chk F
+GLIBC_2.17 __vwprintf_chk F
+GLIBC_2.17 __wait F
+GLIBC_2.17 __waitpid F
+GLIBC_2.17 __wcpcpy_chk F
+GLIBC_2.17 __wcpncpy_chk F
+GLIBC_2.17 __wcrtomb_chk F
+GLIBC_2.17 __wcscasecmp_l F
+GLIBC_2.17 __wcscat_chk F
+GLIBC_2.17 __wcscoll_l F
+GLIBC_2.17 __wcscpy_chk F
+GLIBC_2.17 __wcsftime_l F
+GLIBC_2.17 __wcsncasecmp_l F
+GLIBC_2.17 __wcsncat_chk F
+GLIBC_2.17 __wcsncpy_chk F
+GLIBC_2.17 __wcsnrtombs_chk F
+GLIBC_2.17 __wcsrtombs_chk F
+GLIBC_2.17 __wcstod_internal F
+GLIBC_2.17 __wcstod_l F
+GLIBC_2.17 __wcstof_internal F
+GLIBC_2.17 __wcstof_l F
+GLIBC_2.17 __wcstol_internal F
+GLIBC_2.17 __wcstol_l F
+GLIBC_2.17 __wcstold_internal F
+GLIBC_2.17 __wcstold_l F
+GLIBC_2.17 __wcstoll_internal F
+GLIBC_2.17 __wcstoll_l F
+GLIBC_2.17 __wcstombs_chk F
+GLIBC_2.17 __wcstoul_internal F
+GLIBC_2.17 __wcstoul_l F
+GLIBC_2.17 __wcstoull_internal F
+GLIBC_2.17 __wcstoull_l F
+GLIBC_2.17 __wcsxfrm_l F
+GLIBC_2.17 __wctomb_chk F
+GLIBC_2.17 __wctrans_l F
+GLIBC_2.17 __wctype_l F
+GLIBC_2.17 __wmemcpy_chk F
+GLIBC_2.17 __wmemmove_chk F
+GLIBC_2.17 __wmempcpy_chk F
+GLIBC_2.17 __wmemset_chk F
+GLIBC_2.17 __woverflow F
+GLIBC_2.17 __wprintf_chk F
+GLIBC_2.17 __write F
+GLIBC_2.17 __wuflow F
+GLIBC_2.17 __wunderflow F
+GLIBC_2.17 __xmknod F
+GLIBC_2.17 __xmknodat F
+GLIBC_2.17 __xpg_basename F
+GLIBC_2.17 __xpg_sigpause F
+GLIBC_2.17 __xpg_strerror_r F
+GLIBC_2.17 __xstat F
+GLIBC_2.17 __xstat64 F
+GLIBC_2.17 _authenticate F
+GLIBC_2.17 _dl_mcount_wrapper F
+GLIBC_2.17 _dl_mcount_wrapper_check F
+GLIBC_2.17 _environ D 0x8
+GLIBC_2.17 _exit F
+GLIBC_2.17 _flushlbf F
+GLIBC_2.17 _libc_intl_domainname D 0x5
+GLIBC_2.17 _longjmp F
+GLIBC_2.17 _mcleanup F
+GLIBC_2.17 _nl_default_dirname D 0x12
+GLIBC_2.17 _nl_domain_bindings D 0x8
+GLIBC_2.17 _nl_msg_cat_cntr D 0x4
+GLIBC_2.17 _null_auth D 0x18
+GLIBC_2.17 _obstack_allocated_p F
+GLIBC_2.17 _obstack_begin F
+GLIBC_2.17 _obstack_begin_1 F
+GLIBC_2.17 _obstack_free F
+GLIBC_2.17 _obstack_memory_used F
+GLIBC_2.17 _obstack_newchunk F
+GLIBC_2.17 _res D 0x238
+GLIBC_2.17 _res_hconf D 0x48
+GLIBC_2.17 _rpc_dtablesize F
+GLIBC_2.17 _seterr_reply F
+GLIBC_2.17 _setjmp F
+GLIBC_2.17 _sys_errlist D 0x438
+GLIBC_2.17 _sys_nerr D 0x4
+GLIBC_2.17 _sys_siglist D 0x208
+GLIBC_2.17 _tolower F
+GLIBC_2.17 _toupper F
+GLIBC_2.17 a64l F
+GLIBC_2.17 abort F
+GLIBC_2.17 abs F
+GLIBC_2.17 accept F
+GLIBC_2.17 accept4 F
+GLIBC_2.17 access F
+GLIBC_2.17 acct F
+GLIBC_2.17 addmntent F
+GLIBC_2.17 addseverity F
+GLIBC_2.17 adjtime F
+GLIBC_2.17 adjtimex F
+GLIBC_2.17 advance F
+GLIBC_2.17 alarm F
+GLIBC_2.17 aligned_alloc F
+GLIBC_2.17 alphasort F
+GLIBC_2.17 alphasort64 F
+GLIBC_2.17 argp_err_exit_status D 0x4
+GLIBC_2.17 argp_error F
+GLIBC_2.17 argp_failure F
+GLIBC_2.17 argp_help F
+GLIBC_2.17 argp_parse F
+GLIBC_2.17 argp_program_bug_address D 0x8
+GLIBC_2.17 argp_program_version D 0x8
+GLIBC_2.17 argp_program_version_hook D 0x8
+GLIBC_2.17 argp_state_help F
+GLIBC_2.17 argp_usage F
+GLIBC_2.17 argz_add F
+GLIBC_2.17 argz_add_sep F
+GLIBC_2.17 argz_append F
+GLIBC_2.17 argz_count F
+GLIBC_2.17 argz_create F
+GLIBC_2.17 argz_create_sep F
+GLIBC_2.17 argz_delete F
+GLIBC_2.17 argz_extract F
+GLIBC_2.17 argz_insert F
+GLIBC_2.17 argz_next F
+GLIBC_2.17 argz_replace F
+GLIBC_2.17 argz_stringify F
+GLIBC_2.17 asctime F
+GLIBC_2.17 asctime_r F
+GLIBC_2.17 asprintf F
+GLIBC_2.17 atof F
+GLIBC_2.17 atoi F
+GLIBC_2.17 atol F
+GLIBC_2.17 atoll F
+GLIBC_2.17 authdes_create F
+GLIBC_2.17 authdes_getucred F
+GLIBC_2.17 authdes_pk_create F
+GLIBC_2.17 authnone_create F
+GLIBC_2.17 authunix_create F
+GLIBC_2.17 authunix_create_default F
+GLIBC_2.17 backtrace F
+GLIBC_2.17 backtrace_symbols F
+GLIBC_2.17 backtrace_symbols_fd F
+GLIBC_2.17 basename F
+GLIBC_2.17 bcmp F
+GLIBC_2.17 bcopy F
+GLIBC_2.17 bdflush F
+GLIBC_2.17 bind F
+GLIBC_2.17 bind_textdomain_codeset F
+GLIBC_2.17 bindresvport F
+GLIBC_2.17 bindtextdomain F
+GLIBC_2.17 brk F
+GLIBC_2.17 bsd_signal F
+GLIBC_2.17 bsearch F
+GLIBC_2.17 btowc F
+GLIBC_2.17 bzero F
+GLIBC_2.17 c16rtomb F
+GLIBC_2.17 c32rtomb F
+GLIBC_2.17 calloc F
+GLIBC_2.17 callrpc F
+GLIBC_2.17 canonicalize_file_name F
+GLIBC_2.17 capget F
+GLIBC_2.17 capset F
+GLIBC_2.17 catclose F
+GLIBC_2.17 catgets F
+GLIBC_2.17 catopen F
+GLIBC_2.17 cbc_crypt F
+GLIBC_2.17 cfgetispeed F
+GLIBC_2.17 cfgetospeed F
+GLIBC_2.17 cfmakeraw F
+GLIBC_2.17 cfree F
+GLIBC_2.17 cfsetispeed F
+GLIBC_2.17 cfsetospeed F
+GLIBC_2.17 cfsetspeed F
+GLIBC_2.17 chdir F
+GLIBC_2.17 chflags F
+GLIBC_2.17 chmod F
+GLIBC_2.17 chown F
+GLIBC_2.17 chroot F
+GLIBC_2.17 clearenv F
+GLIBC_2.17 clearerr F
+GLIBC_2.17 clearerr_unlocked F
+GLIBC_2.17 clnt_broadcast F
+GLIBC_2.17 clnt_create F
+GLIBC_2.17 clnt_pcreateerror F
+GLIBC_2.17 clnt_perrno F
+GLIBC_2.17 clnt_perror F
+GLIBC_2.17 clnt_spcreateerror F
+GLIBC_2.17 clnt_sperrno F
+GLIBC_2.17 clnt_sperror F
+GLIBC_2.17 clntraw_create F
+GLIBC_2.17 clnttcp_create F
+GLIBC_2.17 clntudp_bufcreate F
+GLIBC_2.17 clntudp_create F
+GLIBC_2.17 clntunix_create F
+GLIBC_2.17 clock F
+GLIBC_2.17 clock_adjtime F
+GLIBC_2.17 clock_getcpuclockid F
+GLIBC_2.17 clock_getres F
+GLIBC_2.17 clock_gettime F
+GLIBC_2.17 clock_nanosleep F
+GLIBC_2.17 clock_settime F
+GLIBC_2.17 clone F
+GLIBC_2.17 close F
+GLIBC_2.17 closedir F
+GLIBC_2.17 closelog F
+GLIBC_2.17 confstr F
+GLIBC_2.17 connect F
+GLIBC_2.17 copysign F
+GLIBC_2.17 copysignf F
+GLIBC_2.17 copysignl F
+GLIBC_2.17 creat F
+GLIBC_2.17 creat64 F
+GLIBC_2.17 create_module F
+GLIBC_2.17 ctermid F
+GLIBC_2.17 ctime F
+GLIBC_2.17 ctime_r F
+GLIBC_2.17 cuserid F
+GLIBC_2.17 daemon F
+GLIBC_2.17 daylight D 0x4
+GLIBC_2.17 dcgettext F
+GLIBC_2.17 dcngettext F
+GLIBC_2.17 delete_module F
+GLIBC_2.17 des_setparity F
+GLIBC_2.17 dgettext F
+GLIBC_2.17 difftime F
+GLIBC_2.17 dirfd F
+GLIBC_2.17 dirname F
+GLIBC_2.17 div F
+GLIBC_2.17 dl_iterate_phdr F
+GLIBC_2.17 dngettext F
+GLIBC_2.17 dprintf F
+GLIBC_2.17 drand48 F
+GLIBC_2.17 drand48_r F
+GLIBC_2.17 dup F
+GLIBC_2.17 dup2 F
+GLIBC_2.17 dup3 F
+GLIBC_2.17 duplocale F
+GLIBC_2.17 dysize F
+GLIBC_2.17 eaccess F
+GLIBC_2.17 ecb_crypt F
+GLIBC_2.17 ecvt F
+GLIBC_2.17 ecvt_r F
+GLIBC_2.17 endaliasent F
+GLIBC_2.17 endfsent F
+GLIBC_2.17 endgrent F
+GLIBC_2.17 endhostent F
+GLIBC_2.17 endmntent F
+GLIBC_2.17 endnetent F
+GLIBC_2.17 endnetgrent F
+GLIBC_2.17 endprotoent F
+GLIBC_2.17 endpwent F
+GLIBC_2.17 endrpcent F
+GLIBC_2.17 endservent F
+GLIBC_2.17 endsgent F
+GLIBC_2.17 endspent F
+GLIBC_2.17 endttyent F
+GLIBC_2.17 endusershell F
+GLIBC_2.17 endutent F
+GLIBC_2.17 endutxent F
+GLIBC_2.17 environ D 0x8
+GLIBC_2.17 envz_add F
+GLIBC_2.17 envz_entry F
+GLIBC_2.17 envz_get F
+GLIBC_2.17 envz_merge F
+GLIBC_2.17 envz_remove F
+GLIBC_2.17 envz_strip F
+GLIBC_2.17 epoll_create F
+GLIBC_2.17 epoll_create1 F
+GLIBC_2.17 epoll_ctl F
+GLIBC_2.17 epoll_pwait F
+GLIBC_2.17 epoll_wait F
+GLIBC_2.17 erand48 F
+GLIBC_2.17 erand48_r F
+GLIBC_2.17 err F
+GLIBC_2.17 error F
+GLIBC_2.17 error_at_line F
+GLIBC_2.17 error_message_count D 0x4
+GLIBC_2.17 error_one_per_line D 0x4
+GLIBC_2.17 error_print_progname D 0x8
+GLIBC_2.17 errx F
+GLIBC_2.17 ether_aton F
+GLIBC_2.17 ether_aton_r F
+GLIBC_2.17 ether_hostton F
+GLIBC_2.17 ether_line F
+GLIBC_2.17 ether_ntoa F
+GLIBC_2.17 ether_ntoa_r F
+GLIBC_2.17 ether_ntohost F
+GLIBC_2.17 euidaccess F
+GLIBC_2.17 eventfd F
+GLIBC_2.17 eventfd_read F
+GLIBC_2.17 eventfd_write F
+GLIBC_2.17 execl F
+GLIBC_2.17 execle F
+GLIBC_2.17 execlp F
+GLIBC_2.17 execv F
+GLIBC_2.17 execve F
+GLIBC_2.17 execvp F
+GLIBC_2.17 execvpe F
+GLIBC_2.17 exit F
+GLIBC_2.17 faccessat F
+GLIBC_2.17 fallocate F
+GLIBC_2.17 fallocate64 F
+GLIBC_2.17 fanotify_init F
+GLIBC_2.17 fanotify_mark F
+GLIBC_2.17 fattach F
+GLIBC_2.17 fchdir F
+GLIBC_2.17 fchflags F
+GLIBC_2.17 fchmod F
+GLIBC_2.17 fchmodat F
+GLIBC_2.17 fchown F
+GLIBC_2.17 fchownat F
+GLIBC_2.17 fclose F
+GLIBC_2.17 fcloseall F
+GLIBC_2.17 fcntl F
+GLIBC_2.17 fcvt F
+GLIBC_2.17 fcvt_r F
+GLIBC_2.17 fdatasync F
+GLIBC_2.17 fdetach F
+GLIBC_2.17 fdopen F
+GLIBC_2.17 fdopendir F
+GLIBC_2.17 feof F
+GLIBC_2.17 feof_unlocked F
+GLIBC_2.17 ferror F
+GLIBC_2.17 ferror_unlocked F
+GLIBC_2.17 fexecve F
+GLIBC_2.17 fflush F
+GLIBC_2.17 fflush_unlocked F
+GLIBC_2.17 ffs F
+GLIBC_2.17 ffsl F
+GLIBC_2.17 ffsll F
+GLIBC_2.17 fgetc F
+GLIBC_2.17 fgetc_unlocked F
+GLIBC_2.17 fgetgrent F
+GLIBC_2.17 fgetgrent_r F
+GLIBC_2.17 fgetpos F
+GLIBC_2.17 fgetpos64 F
+GLIBC_2.17 fgetpwent F
+GLIBC_2.17 fgetpwent_r F
+GLIBC_2.17 fgets F
+GLIBC_2.17 fgets_unlocked F
+GLIBC_2.17 fgetsgent F
+GLIBC_2.17 fgetsgent_r F
+GLIBC_2.17 fgetspent F
+GLIBC_2.17 fgetspent_r F
+GLIBC_2.17 fgetwc F
+GLIBC_2.17 fgetwc_unlocked F
+GLIBC_2.17 fgetws F
+GLIBC_2.17 fgetws_unlocked F
+GLIBC_2.17 fgetxattr F
+GLIBC_2.17 fileno F
+GLIBC_2.17 fileno_unlocked F
+GLIBC_2.17 finite F
+GLIBC_2.17 finitef F
+GLIBC_2.17 finitel F
+GLIBC_2.17 flistxattr F
+GLIBC_2.17 flock F
+GLIBC_2.17 flockfile F
+GLIBC_2.17 fmemopen F
+GLIBC_2.17 fmtmsg F
+GLIBC_2.17 fnmatch F
+GLIBC_2.17 fopen F
+GLIBC_2.17 fopen64 F
+GLIBC_2.17 fopencookie F
+GLIBC_2.17 fork F
+GLIBC_2.17 fpathconf F
+GLIBC_2.17 fprintf F
+GLIBC_2.17 fputc F
+GLIBC_2.17 fputc_unlocked F
+GLIBC_2.17 fputs F
+GLIBC_2.17 fputs_unlocked F
+GLIBC_2.17 fputwc F
+GLIBC_2.17 fputwc_unlocked F
+GLIBC_2.17 fputws F
+GLIBC_2.17 fputws_unlocked F
+GLIBC_2.17 fread F
+GLIBC_2.17 fread_unlocked F
+GLIBC_2.17 free F
+GLIBC_2.17 freeaddrinfo F
+GLIBC_2.17 freeifaddrs F
+GLIBC_2.17 freelocale F
+GLIBC_2.17 fremovexattr F
+GLIBC_2.17 freopen F
+GLIBC_2.17 freopen64 F
+GLIBC_2.17 frexp F
+GLIBC_2.17 frexpf F
+GLIBC_2.17 frexpl F
+GLIBC_2.17 fscanf F
+GLIBC_2.17 fseek F
+GLIBC_2.17 fseeko F
+GLIBC_2.17 fseeko64 F
+GLIBC_2.17 fsetpos F
+GLIBC_2.17 fsetpos64 F
+GLIBC_2.17 fsetxattr F
+GLIBC_2.17 fstatfs F
+GLIBC_2.17 fstatfs64 F
+GLIBC_2.17 fstatvfs F
+GLIBC_2.17 fstatvfs64 F
+GLIBC_2.17 fsync F
+GLIBC_2.17 ftell F
+GLIBC_2.17 ftello F
+GLIBC_2.17 ftello64 F
+GLIBC_2.17 ftime F
+GLIBC_2.17 ftok F
+GLIBC_2.17 ftruncate F
+GLIBC_2.17 ftruncate64 F
+GLIBC_2.17 ftrylockfile F
+GLIBC_2.17 fts_children F
+GLIBC_2.17 fts_close F
+GLIBC_2.17 fts_open F
+GLIBC_2.17 fts_read F
+GLIBC_2.17 fts_set F
+GLIBC_2.17 ftw F
+GLIBC_2.17 ftw64 F
+GLIBC_2.17 funlockfile F
+GLIBC_2.17 futimens F
+GLIBC_2.17 futimes F
+GLIBC_2.17 futimesat F
+GLIBC_2.17 fwide F
+GLIBC_2.17 fwprintf F
+GLIBC_2.17 fwrite F
+GLIBC_2.17 fwrite_unlocked F
+GLIBC_2.17 fwscanf F
+GLIBC_2.17 gai_strerror F
+GLIBC_2.17 gcvt F
+GLIBC_2.17 get_avphys_pages F
+GLIBC_2.17 get_current_dir_name F
+GLIBC_2.17 get_kernel_syms F
+GLIBC_2.17 get_myaddress F
+GLIBC_2.17 get_nprocs F
+GLIBC_2.17 get_nprocs_conf F
+GLIBC_2.17 get_phys_pages F
+GLIBC_2.17 getaddrinfo F
+GLIBC_2.17 getaliasbyname F
+GLIBC_2.17 getaliasbyname_r F
+GLIBC_2.17 getaliasent F
+GLIBC_2.17 getaliasent_r F
+GLIBC_2.17 getauxval F
+GLIBC_2.17 getc F
+GLIBC_2.17 getc_unlocked F
+GLIBC_2.17 getchar F
+GLIBC_2.17 getchar_unlocked F
+GLIBC_2.17 getcontext F
+GLIBC_2.17 getcwd F
+GLIBC_2.17 getdate F
+GLIBC_2.17 getdate_err D 0x4
+GLIBC_2.17 getdate_r F
+GLIBC_2.17 getdelim F
+GLIBC_2.17 getdirentries F
+GLIBC_2.17 getdirentries64 F
+GLIBC_2.17 getdomainname F
+GLIBC_2.17 getdtablesize F
+GLIBC_2.17 getegid F
+GLIBC_2.17 getenv F
+GLIBC_2.17 geteuid F
+GLIBC_2.17 getfsent F
+GLIBC_2.17 getfsfile F
+GLIBC_2.17 getfsspec F
+GLIBC_2.17 getgid F
+GLIBC_2.17 getgrent F
+GLIBC_2.17 getgrent_r F
+GLIBC_2.17 getgrgid F
+GLIBC_2.17 getgrgid_r F
+GLIBC_2.17 getgrnam F
+GLIBC_2.17 getgrnam_r F
+GLIBC_2.17 getgrouplist F
+GLIBC_2.17 getgroups F
+GLIBC_2.17 gethostbyaddr F
+GLIBC_2.17 gethostbyaddr_r F
+GLIBC_2.17 gethostbyname F
+GLIBC_2.17 gethostbyname2 F
+GLIBC_2.17 gethostbyname2_r F
+GLIBC_2.17 gethostbyname_r F
+GLIBC_2.17 gethostent F
+GLIBC_2.17 gethostent_r F
+GLIBC_2.17 gethostid F
+GLIBC_2.17 gethostname F
+GLIBC_2.17 getifaddrs F
+GLIBC_2.17 getipv4sourcefilter F
+GLIBC_2.17 getitimer F
+GLIBC_2.17 getline F
+GLIBC_2.17 getloadavg F
+GLIBC_2.17 getlogin F
+GLIBC_2.17 getlogin_r F
+GLIBC_2.17 getmntent F
+GLIBC_2.17 getmntent_r F
+GLIBC_2.17 getmsg F
+GLIBC_2.17 getnameinfo F
+GLIBC_2.17 getnetbyaddr F
+GLIBC_2.17 getnetbyaddr_r F
+GLIBC_2.17 getnetbyname F
+GLIBC_2.17 getnetbyname_r F
+GLIBC_2.17 getnetent F
+GLIBC_2.17 getnetent_r F
+GLIBC_2.17 getnetgrent F
+GLIBC_2.17 getnetgrent_r F
+GLIBC_2.17 getnetname F
+GLIBC_2.17 getopt F
+GLIBC_2.17 getopt_long F
+GLIBC_2.17 getopt_long_only F
+GLIBC_2.17 getpagesize F
+GLIBC_2.17 getpass F
+GLIBC_2.17 getpeername F
+GLIBC_2.17 getpgid F
+GLIBC_2.17 getpgrp F
+GLIBC_2.17 getpid F
+GLIBC_2.17 getpmsg F
+GLIBC_2.17 getppid F
+GLIBC_2.17 getpriority F
+GLIBC_2.17 getprotobyname F
+GLIBC_2.17 getprotobyname_r F
+GLIBC_2.17 getprotobynumber F
+GLIBC_2.17 getprotobynumber_r F
+GLIBC_2.17 getprotoent F
+GLIBC_2.17 getprotoent_r F
+GLIBC_2.17 getpt F
+GLIBC_2.17 getpublickey F
+GLIBC_2.17 getpw F
+GLIBC_2.17 getpwent F
+GLIBC_2.17 getpwent_r F
+GLIBC_2.17 getpwnam F
+GLIBC_2.17 getpwnam_r F
+GLIBC_2.17 getpwuid F
+GLIBC_2.17 getpwuid_r F
+GLIBC_2.17 getresgid F
+GLIBC_2.17 getresuid F
+GLIBC_2.17 getrlimit F
+GLIBC_2.17 getrlimit64 F
+GLIBC_2.17 getrpcbyname F
+GLIBC_2.17 getrpcbyname_r F
+GLIBC_2.17 getrpcbynumber F
+GLIBC_2.17 getrpcbynumber_r F
+GLIBC_2.17 getrpcent F
+GLIBC_2.17 getrpcent_r F
+GLIBC_2.17 getrpcport F
+GLIBC_2.17 getrusage F
+GLIBC_2.17 gets F
+GLIBC_2.17 getsecretkey F
+GLIBC_2.17 getservbyname F
+GLIBC_2.17 getservbyname_r F
+GLIBC_2.17 getservbyport F
+GLIBC_2.17 getservbyport_r F
+GLIBC_2.17 getservent F
+GLIBC_2.17 getservent_r F
+GLIBC_2.17 getsgent F
+GLIBC_2.17 getsgent_r F
+GLIBC_2.17 getsgnam F
+GLIBC_2.17 getsgnam_r F
+GLIBC_2.17 getsid F
+GLIBC_2.17 getsockname F
+GLIBC_2.17 getsockopt F
+GLIBC_2.17 getsourcefilter F
+GLIBC_2.17 getspent F
+GLIBC_2.17 getspent_r F
+GLIBC_2.17 getspnam F
+GLIBC_2.17 getspnam_r F
+GLIBC_2.17 getsubopt F
+GLIBC_2.17 gettext F
+GLIBC_2.17 gettimeofday F
+GLIBC_2.17 getttyent F
+GLIBC_2.17 getttynam F
+GLIBC_2.17 getuid F
+GLIBC_2.17 getusershell F
+GLIBC_2.17 getutent F
+GLIBC_2.17 getutent_r F
+GLIBC_2.17 getutid F
+GLIBC_2.17 getutid_r F
+GLIBC_2.17 getutline F
+GLIBC_2.17 getutline_r F
+GLIBC_2.17 getutmp F
+GLIBC_2.17 getutmpx F
+GLIBC_2.17 getutxent F
+GLIBC_2.17 getutxid F
+GLIBC_2.17 getutxline F
+GLIBC_2.17 getw F
+GLIBC_2.17 getwc F
+GLIBC_2.17 getwc_unlocked F
+GLIBC_2.17 getwchar F
+GLIBC_2.17 getwchar_unlocked F
+GLIBC_2.17 getwd F
+GLIBC_2.17 getxattr F
+GLIBC_2.17 glob F
+GLIBC_2.17 glob64 F
+GLIBC_2.17 glob_pattern_p F
+GLIBC_2.17 globfree F
+GLIBC_2.17 globfree64 F
+GLIBC_2.17 gmtime F
+GLIBC_2.17 gmtime_r F
+GLIBC_2.17 gnu_dev_major F
+GLIBC_2.17 gnu_dev_makedev F
+GLIBC_2.17 gnu_dev_minor F
+GLIBC_2.17 gnu_get_libc_release F
+GLIBC_2.17 gnu_get_libc_version F
+GLIBC_2.17 grantpt F
+GLIBC_2.17 group_member F
+GLIBC_2.17 gsignal F
+GLIBC_2.17 gtty F
+GLIBC_2.17 h_errlist D 0x28
+GLIBC_2.17 h_nerr D 0x4
+GLIBC_2.17 hasmntopt F
+GLIBC_2.17 hcreate F
+GLIBC_2.17 hcreate_r F
+GLIBC_2.17 hdestroy F
+GLIBC_2.17 hdestroy_r F
+GLIBC_2.17 herror F
+GLIBC_2.17 host2netname F
+GLIBC_2.17 hsearch F
+GLIBC_2.17 hsearch_r F
+GLIBC_2.17 hstrerror F
+GLIBC_2.17 htonl F
+GLIBC_2.17 htons F
+GLIBC_2.17 iconv F
+GLIBC_2.17 iconv_close F
+GLIBC_2.17 iconv_open F
+GLIBC_2.17 if_freenameindex F
+GLIBC_2.17 if_indextoname F
+GLIBC_2.17 if_nameindex F
+GLIBC_2.17 if_nametoindex F
+GLIBC_2.17 imaxabs F
+GLIBC_2.17 imaxdiv F
+GLIBC_2.17 in6addr_any D 0x10
+GLIBC_2.17 in6addr_loopback D 0x10
+GLIBC_2.17 index F
+GLIBC_2.17 inet6_opt_append F
+GLIBC_2.17 inet6_opt_find F
+GLIBC_2.17 inet6_opt_finish F
+GLIBC_2.17 inet6_opt_get_val F
+GLIBC_2.17 inet6_opt_init F
+GLIBC_2.17 inet6_opt_next F
+GLIBC_2.17 inet6_opt_set_val F
+GLIBC_2.17 inet6_option_alloc F
+GLIBC_2.17 inet6_option_append F
+GLIBC_2.17 inet6_option_find F
+GLIBC_2.17 inet6_option_init F
+GLIBC_2.17 inet6_option_next F
+GLIBC_2.17 inet6_option_space F
+GLIBC_2.17 inet6_rth_add F
+GLIBC_2.17 inet6_rth_getaddr F
+GLIBC_2.17 inet6_rth_init F
+GLIBC_2.17 inet6_rth_reverse F
+GLIBC_2.17 inet6_rth_segments F
+GLIBC_2.17 inet6_rth_space F
+GLIBC_2.17 inet_addr F
+GLIBC_2.17 inet_aton F
+GLIBC_2.17 inet_lnaof F
+GLIBC_2.17 inet_makeaddr F
+GLIBC_2.17 inet_netof F
+GLIBC_2.17 inet_network F
+GLIBC_2.17 inet_nsap_addr F
+GLIBC_2.17 inet_nsap_ntoa F
+GLIBC_2.17 inet_ntoa F
+GLIBC_2.17 inet_ntop F
+GLIBC_2.17 inet_pton F
+GLIBC_2.17 init_module F
+GLIBC_2.17 initgroups F
+GLIBC_2.17 initstate F
+GLIBC_2.17 initstate_r F
+GLIBC_2.17 innetgr F
+GLIBC_2.17 inotify_add_watch F
+GLIBC_2.17 inotify_init F
+GLIBC_2.17 inotify_init1 F
+GLIBC_2.17 inotify_rm_watch F
+GLIBC_2.17 insque F
+GLIBC_2.17 ioctl F
+GLIBC_2.17 iruserok F
+GLIBC_2.17 iruserok_af F
+GLIBC_2.17 isalnum F
+GLIBC_2.17 isalnum_l F
+GLIBC_2.17 isalpha F
+GLIBC_2.17 isalpha_l F
+GLIBC_2.17 isascii F
+GLIBC_2.17 isastream F
+GLIBC_2.17 isatty F
+GLIBC_2.17 isblank F
+GLIBC_2.17 isblank_l F
+GLIBC_2.17 iscntrl F
+GLIBC_2.17 iscntrl_l F
+GLIBC_2.17 isctype F
+GLIBC_2.17 isdigit F
+GLIBC_2.17 isdigit_l F
+GLIBC_2.17 isfdtype F
+GLIBC_2.17 isgraph F
+GLIBC_2.17 isgraph_l F
+GLIBC_2.17 isinf F
+GLIBC_2.17 isinff F
+GLIBC_2.17 isinfl F
+GLIBC_2.17 islower F
+GLIBC_2.17 islower_l F
+GLIBC_2.17 isnan F
+GLIBC_2.17 isnanf F
+GLIBC_2.17 isnanl F
+GLIBC_2.17 isprint F
+GLIBC_2.17 isprint_l F
+GLIBC_2.17 ispunct F
+GLIBC_2.17 ispunct_l F
+GLIBC_2.17 isspace F
+GLIBC_2.17 isspace_l F
+GLIBC_2.17 isupper F
+GLIBC_2.17 isupper_l F
+GLIBC_2.17 iswalnum F
+GLIBC_2.17 iswalnum_l F
+GLIBC_2.17 iswalpha F
+GLIBC_2.17 iswalpha_l F
+GLIBC_2.17 iswblank F
+GLIBC_2.17 iswblank_l F
+GLIBC_2.17 iswcntrl F
+GLIBC_2.17 iswcntrl_l F
+GLIBC_2.17 iswctype F
+GLIBC_2.17 iswctype_l F
+GLIBC_2.17 iswdigit F
+GLIBC_2.17 iswdigit_l F
+GLIBC_2.17 iswgraph F
+GLIBC_2.17 iswgraph_l F
+GLIBC_2.17 iswlower F
+GLIBC_2.17 iswlower_l F
+GLIBC_2.17 iswprint F
+GLIBC_2.17 iswprint_l F
+GLIBC_2.17 iswpunct F
+GLIBC_2.17 iswpunct_l F
+GLIBC_2.17 iswspace F
+GLIBC_2.17 iswspace_l F
+GLIBC_2.17 iswupper F
+GLIBC_2.17 iswupper_l F
+GLIBC_2.17 iswxdigit F
+GLIBC_2.17 iswxdigit_l F
+GLIBC_2.17 isxdigit F
+GLIBC_2.17 isxdigit_l F
+GLIBC_2.17 jrand48 F
+GLIBC_2.17 jrand48_r F
+GLIBC_2.17 key_decryptsession F
+GLIBC_2.17 key_decryptsession_pk F
+GLIBC_2.17 key_encryptsession F
+GLIBC_2.17 key_encryptsession_pk F
+GLIBC_2.17 key_gendes F
+GLIBC_2.17 key_get_conv F
+GLIBC_2.17 key_secretkey_is_set F
+GLIBC_2.17 key_setnet F
+GLIBC_2.17 key_setsecret F
+GLIBC_2.17 kill F
+GLIBC_2.17 killpg F
+GLIBC_2.17 klogctl F
+GLIBC_2.17 l64a F
+GLIBC_2.17 labs F
+GLIBC_2.17 lchmod F
+GLIBC_2.17 lchown F
+GLIBC_2.17 lckpwdf F
+GLIBC_2.17 lcong48 F
+GLIBC_2.17 lcong48_r F
+GLIBC_2.17 ldexp F
+GLIBC_2.17 ldexpf F
+GLIBC_2.17 ldexpl F
+GLIBC_2.17 ldiv F
+GLIBC_2.17 lfind F
+GLIBC_2.17 lgetxattr F
+GLIBC_2.17 link F
+GLIBC_2.17 linkat F
+GLIBC_2.17 listen F
+GLIBC_2.17 listxattr F
+GLIBC_2.17 llabs F
+GLIBC_2.17 lldiv F
+GLIBC_2.17 llistxattr F
+GLIBC_2.17 llseek F
+GLIBC_2.17 loc1 D 0x8
+GLIBC_2.17 loc2 D 0x8
+GLIBC_2.17 localeconv F
+GLIBC_2.17 localtime F
+GLIBC_2.17 localtime_r F
+GLIBC_2.17 lockf F
+GLIBC_2.17 lockf64 F
+GLIBC_2.17 locs D 0x8
+GLIBC_2.17 longjmp F
+GLIBC_2.17 lrand48 F
+GLIBC_2.17 lrand48_r F
+GLIBC_2.17 lremovexattr F
+GLIBC_2.17 lsearch F
+GLIBC_2.17 lseek F
+GLIBC_2.17 lseek64 F
+GLIBC_2.17 lsetxattr F
+GLIBC_2.17 lutimes F
+GLIBC_2.17 madvise F
+GLIBC_2.17 makecontext F
+GLIBC_2.17 mallinfo F
+GLIBC_2.17 malloc F
+GLIBC_2.17 malloc_get_state F
+GLIBC_2.17 malloc_info F
+GLIBC_2.17 malloc_set_state F
+GLIBC_2.17 malloc_stats F
+GLIBC_2.17 malloc_trim F
+GLIBC_2.17 malloc_usable_size F
+GLIBC_2.17 mallopt F
+GLIBC_2.17 mallwatch D 0x8
+GLIBC_2.17 mblen F
+GLIBC_2.17 mbrlen F
+GLIBC_2.17 mbrtoc16 F
+GLIBC_2.17 mbrtoc32 F
+GLIBC_2.17 mbrtowc F
+GLIBC_2.17 mbsinit F
+GLIBC_2.17 mbsnrtowcs F
+GLIBC_2.17 mbsrtowcs F
+GLIBC_2.17 mbstowcs F
+GLIBC_2.17 mbtowc F
+GLIBC_2.17 mcheck F
+GLIBC_2.17 mcheck_check_all F
+GLIBC_2.17 mcheck_pedantic F
+GLIBC_2.17 memalign F
+GLIBC_2.17 memccpy F
+GLIBC_2.17 memchr F
+GLIBC_2.17 memcmp F
+GLIBC_2.17 memcpy F
+GLIBC_2.17 memfrob F
+GLIBC_2.17 memmem F
+GLIBC_2.17 memmove F
+GLIBC_2.17 mempcpy F
+GLIBC_2.17 memrchr F
+GLIBC_2.17 memset F
+GLIBC_2.17 mincore F
+GLIBC_2.17 mkdir F
+GLIBC_2.17 mkdirat F
+GLIBC_2.17 mkdtemp F
+GLIBC_2.17 mkfifo F
+GLIBC_2.17 mkfifoat F
+GLIBC_2.17 mkostemp F
+GLIBC_2.17 mkostemp64 F
+GLIBC_2.17 mkostemps F
+GLIBC_2.17 mkostemps64 F
+GLIBC_2.17 mkstemp F
+GLIBC_2.17 mkstemp64 F
+GLIBC_2.17 mkstemps F
+GLIBC_2.17 mkstemps64 F
+GLIBC_2.17 mktemp F
+GLIBC_2.17 mktime F
+GLIBC_2.17 mlock F
+GLIBC_2.17 mlockall F
+GLIBC_2.17 mmap F
+GLIBC_2.17 mmap64 F
+GLIBC_2.17 modf F
+GLIBC_2.17 modff F
+GLIBC_2.17 modfl F
+GLIBC_2.17 moncontrol F
+GLIBC_2.17 monstartup F
+GLIBC_2.17 mount F
+GLIBC_2.17 mprobe F
+GLIBC_2.17 mprotect F
+GLIBC_2.17 mrand48 F
+GLIBC_2.17 mrand48_r F
+GLIBC_2.17 mremap F
+GLIBC_2.17 msgctl F
+GLIBC_2.17 msgget F
+GLIBC_2.17 msgrcv F
+GLIBC_2.17 msgsnd F
+GLIBC_2.17 msync F
+GLIBC_2.17 mtrace F
+GLIBC_2.17 munlock F
+GLIBC_2.17 munlockall F
+GLIBC_2.17 munmap F
+GLIBC_2.17 muntrace F
+GLIBC_2.17 name_to_handle_at F
+GLIBC_2.17 nanosleep F
+GLIBC_2.17 netname2host F
+GLIBC_2.17 netname2user F
+GLIBC_2.17 newlocale F
+GLIBC_2.17 nfsservctl F
+GLIBC_2.17 nftw F
+GLIBC_2.17 nftw64 F
+GLIBC_2.17 ngettext F
+GLIBC_2.17 nice F
+GLIBC_2.17 nl_langinfo F
+GLIBC_2.17 nl_langinfo_l F
+GLIBC_2.17 nrand48 F
+GLIBC_2.17 nrand48_r F
+GLIBC_2.17 ntohl F
+GLIBC_2.17 ntohs F
+GLIBC_2.17 ntp_adjtime F
+GLIBC_2.17 ntp_gettime F
+GLIBC_2.17 ntp_gettimex F
+GLIBC_2.17 obstack_alloc_failed_handler D 0x8
+GLIBC_2.17 obstack_exit_failure D 0x4
+GLIBC_2.17 obstack_free F
+GLIBC_2.17 obstack_printf F
+GLIBC_2.17 obstack_vprintf F
+GLIBC_2.17 on_exit F
+GLIBC_2.17 open F
+GLIBC_2.17 open64 F
+GLIBC_2.17 open_by_handle_at F
+GLIBC_2.17 open_memstream F
+GLIBC_2.17 open_wmemstream F
+GLIBC_2.17 openat F
+GLIBC_2.17 openat64 F
+GLIBC_2.17 opendir F
+GLIBC_2.17 openlog F
+GLIBC_2.17 optarg D 0x8
+GLIBC_2.17 opterr D 0x4
+GLIBC_2.17 optind D 0x4
+GLIBC_2.17 optopt D 0x4
+GLIBC_2.17 parse_printf_format F
+GLIBC_2.17 passwd2des F
+GLIBC_2.17 pathconf F
+GLIBC_2.17 pause F
+GLIBC_2.17 pclose F
+GLIBC_2.17 perror F
+GLIBC_2.17 personality F
+GLIBC_2.17 pipe F
+GLIBC_2.17 pipe2 F
+GLIBC_2.17 pivot_root F
+GLIBC_2.17 pmap_getmaps F
+GLIBC_2.17 pmap_getport F
+GLIBC_2.17 pmap_rmtcall F
+GLIBC_2.17 pmap_set F
+GLIBC_2.17 pmap_unset F
+GLIBC_2.17 poll F
+GLIBC_2.17 popen F
+GLIBC_2.17 posix_fadvise F
+GLIBC_2.17 posix_fadvise64 F
+GLIBC_2.17 posix_fallocate F
+GLIBC_2.17 posix_fallocate64 F
+GLIBC_2.17 posix_madvise F
+GLIBC_2.17 posix_memalign F
+GLIBC_2.17 posix_openpt F
+GLIBC_2.17 posix_spawn F
+GLIBC_2.17 posix_spawn_file_actions_addclose F
+GLIBC_2.17 posix_spawn_file_actions_adddup2 F
+GLIBC_2.17 posix_spawn_file_actions_addopen F
+GLIBC_2.17 posix_spawn_file_actions_destroy F
+GLIBC_2.17 posix_spawn_file_actions_init F
+GLIBC_2.17 posix_spawnattr_destroy F
+GLIBC_2.17 posix_spawnattr_getflags F
+GLIBC_2.17 posix_spawnattr_getpgroup F
+GLIBC_2.17 posix_spawnattr_getschedparam F
+GLIBC_2.17 posix_spawnattr_getschedpolicy F
+GLIBC_2.17 posix_spawnattr_getsigdefault F
+GLIBC_2.17 posix_spawnattr_getsigmask F
+GLIBC_2.17 posix_spawnattr_init F
+GLIBC_2.17 posix_spawnattr_setflags F
+GLIBC_2.17 posix_spawnattr_setpgroup F
+GLIBC_2.17 posix_spawnattr_setschedparam F
+GLIBC_2.17 posix_spawnattr_setschedpolicy F
+GLIBC_2.17 posix_spawnattr_setsigdefault F
+GLIBC_2.17 posix_spawnattr_setsigmask F
+GLIBC_2.17 posix_spawnp F
+GLIBC_2.17 ppoll F
+GLIBC_2.17 prctl F
+GLIBC_2.17 pread F
+GLIBC_2.17 pread64 F
+GLIBC_2.17 preadv F
+GLIBC_2.17 preadv64 F
+GLIBC_2.17 printf F
+GLIBC_2.17 printf_size F
+GLIBC_2.17 printf_size_info F
+GLIBC_2.17 prlimit F
+GLIBC_2.17 prlimit64 F
+GLIBC_2.17 process_vm_readv F
+GLIBC_2.17 process_vm_writev F
+GLIBC_2.17 profil F
+GLIBC_2.17 program_invocation_name D 0x8
+GLIBC_2.17 program_invocation_short_name D 0x8
+GLIBC_2.17 pselect F
+GLIBC_2.17 psiginfo F
+GLIBC_2.17 psignal F
+GLIBC_2.17 pthread_attr_destroy F
+GLIBC_2.17 pthread_attr_getdetachstate F
+GLIBC_2.17 pthread_attr_getinheritsched F
+GLIBC_2.17 pthread_attr_getschedparam F
+GLIBC_2.17 pthread_attr_getschedpolicy F
+GLIBC_2.17 pthread_attr_getscope F
+GLIBC_2.17 pthread_attr_init F
+GLIBC_2.17 pthread_attr_setdetachstate F
+GLIBC_2.17 pthread_attr_setinheritsched F
+GLIBC_2.17 pthread_attr_setschedparam F
+GLIBC_2.17 pthread_attr_setschedpolicy F
+GLIBC_2.17 pthread_attr_setscope F
+GLIBC_2.17 pthread_cond_broadcast F
+GLIBC_2.17 pthread_cond_destroy F
+GLIBC_2.17 pthread_cond_init F
+GLIBC_2.17 pthread_cond_signal F
+GLIBC_2.17 pthread_cond_timedwait F
+GLIBC_2.17 pthread_cond_wait F
+GLIBC_2.17 pthread_condattr_destroy F
+GLIBC_2.17 pthread_condattr_init F
+GLIBC_2.17 pthread_equal F
+GLIBC_2.17 pthread_exit F
+GLIBC_2.17 pthread_getschedparam F
+GLIBC_2.17 pthread_mutex_destroy F
+GLIBC_2.17 pthread_mutex_init F
+GLIBC_2.17 pthread_mutex_lock F
+GLIBC_2.17 pthread_mutex_unlock F
+GLIBC_2.17 pthread_self F
+GLIBC_2.17 pthread_setcancelstate F
+GLIBC_2.17 pthread_setcanceltype F
+GLIBC_2.17 pthread_setschedparam F
+GLIBC_2.17 ptrace F
+GLIBC_2.17 ptsname F
+GLIBC_2.17 ptsname_r F
+GLIBC_2.17 putc F
+GLIBC_2.17 putc_unlocked F
+GLIBC_2.17 putchar F
+GLIBC_2.17 putchar_unlocked F
+GLIBC_2.17 putenv F
+GLIBC_2.17 putgrent F
+GLIBC_2.17 putmsg F
+GLIBC_2.17 putpmsg F
+GLIBC_2.17 putpwent F
+GLIBC_2.17 puts F
+GLIBC_2.17 putsgent F
+GLIBC_2.17 putspent F
+GLIBC_2.17 pututline F
+GLIBC_2.17 pututxline F
+GLIBC_2.17 putw F
+GLIBC_2.17 putwc F
+GLIBC_2.17 putwc_unlocked F
+GLIBC_2.17 putwchar F
+GLIBC_2.17 putwchar_unlocked F
+GLIBC_2.17 pvalloc F
+GLIBC_2.17 pwrite F
+GLIBC_2.17 pwrite64 F
+GLIBC_2.17 pwritev F
+GLIBC_2.17 pwritev64 F
+GLIBC_2.17 qecvt F
+GLIBC_2.17 qecvt_r F
+GLIBC_2.17 qfcvt F
+GLIBC_2.17 qfcvt_r F
+GLIBC_2.17 qgcvt F
+GLIBC_2.17 qsort F
+GLIBC_2.17 qsort_r F
+GLIBC_2.17 query_module F
+GLIBC_2.17 quick_exit F
+GLIBC_2.17 quotactl F
+GLIBC_2.17 raise F
+GLIBC_2.17 rand F
+GLIBC_2.17 rand_r F
+GLIBC_2.17 random F
+GLIBC_2.17 random_r F
+GLIBC_2.17 rawmemchr F
+GLIBC_2.17 rcmd F
+GLIBC_2.17 rcmd_af F
+GLIBC_2.17 re_comp F
+GLIBC_2.17 re_compile_fastmap F
+GLIBC_2.17 re_compile_pattern F
+GLIBC_2.17 re_exec F
+GLIBC_2.17 re_match F
+GLIBC_2.17 re_match_2 F
+GLIBC_2.17 re_search F
+GLIBC_2.17 re_search_2 F
+GLIBC_2.17 re_set_registers F
+GLIBC_2.17 re_set_syntax F
+GLIBC_2.17 re_syntax_options D 0x8
+GLIBC_2.17 read F
+GLIBC_2.17 readahead F
+GLIBC_2.17 readdir F
+GLIBC_2.17 readdir64 F
+GLIBC_2.17 readdir64_r F
+GLIBC_2.17 readdir_r F
+GLIBC_2.17 readlink F
+GLIBC_2.17 readlinkat F
+GLIBC_2.17 readv F
+GLIBC_2.17 realloc F
+GLIBC_2.17 realpath F
+GLIBC_2.17 reboot F
+GLIBC_2.17 recv F
+GLIBC_2.17 recvfrom F
+GLIBC_2.17 recvmmsg F
+GLIBC_2.17 recvmsg F
+GLIBC_2.17 regcomp F
+GLIBC_2.17 regerror F
+GLIBC_2.17 regexec F
+GLIBC_2.17 regfree F
+GLIBC_2.17 register_printf_function F
+GLIBC_2.17 register_printf_modifier F
+GLIBC_2.17 register_printf_specifier F
+GLIBC_2.17 register_printf_type F
+GLIBC_2.17 registerrpc F
+GLIBC_2.17 remap_file_pages F
+GLIBC_2.17 remove F
+GLIBC_2.17 removexattr F
+GLIBC_2.17 remque F
+GLIBC_2.17 rename F
+GLIBC_2.17 renameat F
+GLIBC_2.17 revoke F
+GLIBC_2.17 rewind F
+GLIBC_2.17 rewinddir F
+GLIBC_2.17 rexec F
+GLIBC_2.17 rexec_af F
+GLIBC_2.17 rexecoptions D 0x4
+GLIBC_2.17 rindex F
+GLIBC_2.17 rmdir F
+GLIBC_2.17 rpc_createerr D 0x20
+GLIBC_2.17 rpmatch F
+GLIBC_2.17 rresvport F
+GLIBC_2.17 rresvport_af F
+GLIBC_2.17 rtime F
+GLIBC_2.17 ruserok F
+GLIBC_2.17 ruserok_af F
+GLIBC_2.17 ruserpass F
+GLIBC_2.17 sbrk F
+GLIBC_2.17 scalbn F
+GLIBC_2.17 scalbnf F
+GLIBC_2.17 scalbnl F
+GLIBC_2.17 scandir F
+GLIBC_2.17 scandir64 F
+GLIBC_2.17 scandirat F
+GLIBC_2.17 scandirat64 F
+GLIBC_2.17 scanf F
+GLIBC_2.17 sched_get_priority_max F
+GLIBC_2.17 sched_get_priority_min F
+GLIBC_2.17 sched_getaffinity F
+GLIBC_2.17 sched_getcpu F
+GLIBC_2.17 sched_getparam F
+GLIBC_2.17 sched_getscheduler F
+GLIBC_2.17 sched_rr_get_interval F
+GLIBC_2.17 sched_setaffinity F
+GLIBC_2.17 sched_setparam F
+GLIBC_2.17 sched_setscheduler F
+GLIBC_2.17 sched_yield F
+GLIBC_2.17 secure_getenv F
+GLIBC_2.17 seed48 F
+GLIBC_2.17 seed48_r F
+GLIBC_2.17 seekdir F
+GLIBC_2.17 select F
+GLIBC_2.17 semctl F
+GLIBC_2.17 semget F
+GLIBC_2.17 semop F
+GLIBC_2.17 semtimedop F
+GLIBC_2.17 send F
+GLIBC_2.17 sendfile F
+GLIBC_2.17 sendfile64 F
+GLIBC_2.17 sendmmsg F
+GLIBC_2.17 sendmsg F
+GLIBC_2.17 sendto F
+GLIBC_2.17 setaliasent F
+GLIBC_2.17 setbuf F
+GLIBC_2.17 setbuffer F
+GLIBC_2.17 setcontext F
+GLIBC_2.17 setdomainname F
+GLIBC_2.17 setegid F
+GLIBC_2.17 setenv F
+GLIBC_2.17 seteuid F
+GLIBC_2.17 setfsent F
+GLIBC_2.17 setfsgid F
+GLIBC_2.17 setfsuid F
+GLIBC_2.17 setgid F
+GLIBC_2.17 setgrent F
+GLIBC_2.17 setgroups F
+GLIBC_2.17 sethostent F
+GLIBC_2.17 sethostid F
+GLIBC_2.17 sethostname F
+GLIBC_2.17 setipv4sourcefilter F
+GLIBC_2.17 setitimer F
+GLIBC_2.17 setjmp F
+GLIBC_2.17 setlinebuf F
+GLIBC_2.17 setlocale F
+GLIBC_2.17 setlogin F
+GLIBC_2.17 setlogmask F
+GLIBC_2.17 setmntent F
+GLIBC_2.17 setnetent F
+GLIBC_2.17 setnetgrent F
+GLIBC_2.17 setns F
+GLIBC_2.17 setpgid F
+GLIBC_2.17 setpgrp F
+GLIBC_2.17 setpriority F
+GLIBC_2.17 setprotoent F
+GLIBC_2.17 setpwent F
+GLIBC_2.17 setregid F
+GLIBC_2.17 setresgid F
+GLIBC_2.17 setresuid F
+GLIBC_2.17 setreuid F
+GLIBC_2.17 setrlimit F
+GLIBC_2.17 setrlimit64 F
+GLIBC_2.17 setrpcent F
+GLIBC_2.17 setservent F
+GLIBC_2.17 setsgent F
+GLIBC_2.17 setsid F
+GLIBC_2.17 setsockopt F
+GLIBC_2.17 setsourcefilter F
+GLIBC_2.17 setspent F
+GLIBC_2.17 setstate F
+GLIBC_2.17 setstate_r F
+GLIBC_2.17 settimeofday F
+GLIBC_2.17 setttyent F
+GLIBC_2.17 setuid F
+GLIBC_2.17 setusershell F
+GLIBC_2.17 setutent F
+GLIBC_2.17 setutxent F
+GLIBC_2.17 setvbuf F
+GLIBC_2.17 setxattr F
+GLIBC_2.17 sgetsgent F
+GLIBC_2.17 sgetsgent_r F
+GLIBC_2.17 sgetspent F
+GLIBC_2.17 sgetspent_r F
+GLIBC_2.17 shmat F
+GLIBC_2.17 shmctl F
+GLIBC_2.17 shmdt F
+GLIBC_2.17 shmget F
+GLIBC_2.17 shutdown F
+GLIBC_2.17 sigaction F
+GLIBC_2.17 sigaddset F
+GLIBC_2.17 sigaltstack F
+GLIBC_2.17 sigandset F
+GLIBC_2.17 sigblock F
+GLIBC_2.17 sigdelset F
+GLIBC_2.17 sigemptyset F
+GLIBC_2.17 sigfillset F
+GLIBC_2.17 siggetmask F
+GLIBC_2.17 sighold F
+GLIBC_2.17 sigignore F
+GLIBC_2.17 siginterrupt F
+GLIBC_2.17 sigisemptyset F
+GLIBC_2.17 sigismember F
+GLIBC_2.17 siglongjmp F
+GLIBC_2.17 signal F
+GLIBC_2.17 signalfd F
+GLIBC_2.17 sigorset F
+GLIBC_2.17 sigpause F
+GLIBC_2.17 sigpending F
+GLIBC_2.17 sigprocmask F
+GLIBC_2.17 sigqueue F
+GLIBC_2.17 sigrelse F
+GLIBC_2.17 sigreturn F
+GLIBC_2.17 sigset F
+GLIBC_2.17 sigsetmask F
+GLIBC_2.17 sigstack F
+GLIBC_2.17 sigsuspend F
+GLIBC_2.17 sigtimedwait F
+GLIBC_2.17 sigvec F
+GLIBC_2.17 sigwait F
+GLIBC_2.17 sigwaitinfo F
+GLIBC_2.17 sleep F
+GLIBC_2.17 snprintf F
+GLIBC_2.17 sockatmark F
+GLIBC_2.17 socket F
+GLIBC_2.17 socketpair F
+GLIBC_2.17 splice F
+GLIBC_2.17 sprintf F
+GLIBC_2.17 sprofil F
+GLIBC_2.17 srand F
+GLIBC_2.17 srand48 F
+GLIBC_2.17 srand48_r F
+GLIBC_2.17 srandom F
+GLIBC_2.17 srandom_r F
+GLIBC_2.17 sscanf F
+GLIBC_2.17 ssignal F
+GLIBC_2.17 sstk F
+GLIBC_2.17 statfs F
+GLIBC_2.17 statfs64 F
+GLIBC_2.17 statvfs F
+GLIBC_2.17 statvfs64 F
+GLIBC_2.17 stderr D 0x8
+GLIBC_2.17 stdin D 0x8
+GLIBC_2.17 stdout D 0x8
+GLIBC_2.17 step F
+GLIBC_2.17 stime F
+GLIBC_2.17 stpcpy F
+GLIBC_2.17 stpncpy F
+GLIBC_2.17 strcasecmp F
+GLIBC_2.17 strcasecmp_l F
+GLIBC_2.17 strcasestr F
+GLIBC_2.17 strcat F
+GLIBC_2.17 strchr F
+GLIBC_2.17 strchrnul F
+GLIBC_2.17 strcmp F
+GLIBC_2.17 strcoll F
+GLIBC_2.17 strcoll_l F
+GLIBC_2.17 strcpy F
+GLIBC_2.17 strcspn F
+GLIBC_2.17 strdup F
+GLIBC_2.17 strerror F
+GLIBC_2.17 strerror_l F
+GLIBC_2.17 strerror_r F
+GLIBC_2.17 strfmon F
+GLIBC_2.17 strfmon_l F
+GLIBC_2.17 strfry F
+GLIBC_2.17 strftime F
+GLIBC_2.17 strftime_l F
+GLIBC_2.17 strlen F
+GLIBC_2.17 strncasecmp F
+GLIBC_2.17 strncasecmp_l F
+GLIBC_2.17 strncat F
+GLIBC_2.17 strncmp F
+GLIBC_2.17 strncpy F
+GLIBC_2.17 strndup F
+GLIBC_2.17 strnlen F
+GLIBC_2.17 strpbrk F
+GLIBC_2.17 strptime F
+GLIBC_2.17 strptime_l F
+GLIBC_2.17 strrchr F
+GLIBC_2.17 strsep F
+GLIBC_2.17 strsignal F
+GLIBC_2.17 strspn F
+GLIBC_2.17 strstr F
+GLIBC_2.17 strtod F
+GLIBC_2.17 strtod_l F
+GLIBC_2.17 strtof F
+GLIBC_2.17 strtof_l F
+GLIBC_2.17 strtoimax F
+GLIBC_2.17 strtok F
+GLIBC_2.17 strtok_r F
+GLIBC_2.17 strtol F
+GLIBC_2.17 strtol_l F
+GLIBC_2.17 strtold F
+GLIBC_2.17 strtold_l F
+GLIBC_2.17 strtoll F
+GLIBC_2.17 strtoll_l F
+GLIBC_2.17 strtoq F
+GLIBC_2.17 strtoul F
+GLIBC_2.17 strtoul_l F
+GLIBC_2.17 strtoull F
+GLIBC_2.17 strtoull_l F
+GLIBC_2.17 strtoumax F
+GLIBC_2.17 strtouq F
+GLIBC_2.17 strverscmp F
+GLIBC_2.17 strxfrm F
+GLIBC_2.17 strxfrm_l F
+GLIBC_2.17 stty F
+GLIBC_2.17 svc_exit F
+GLIBC_2.17 svc_fdset D 0x80
+GLIBC_2.17 svc_getreq F
+GLIBC_2.17 svc_getreq_common F
+GLIBC_2.17 svc_getreq_poll F
+GLIBC_2.17 svc_getreqset F
+GLIBC_2.17 svc_max_pollfd D 0x4
+GLIBC_2.17 svc_pollfd D 0x8
+GLIBC_2.17 svc_register F
+GLIBC_2.17 svc_run F
+GLIBC_2.17 svc_sendreply F
+GLIBC_2.17 svc_unregister F
+GLIBC_2.17 svcauthdes_stats D 0x18
+GLIBC_2.17 svcerr_auth F
+GLIBC_2.17 svcerr_decode F
+GLIBC_2.17 svcerr_noproc F
+GLIBC_2.17 svcerr_noprog F
+GLIBC_2.17 svcerr_progvers F
+GLIBC_2.17 svcerr_systemerr F
+GLIBC_2.17 svcerr_weakauth F
+GLIBC_2.17 svcfd_create F
+GLIBC_2.17 svcraw_create F
+GLIBC_2.17 svctcp_create F
+GLIBC_2.17 svcudp_bufcreate F
+GLIBC_2.17 svcudp_create F
+GLIBC_2.17 svcudp_enablecache F
+GLIBC_2.17 svcunix_create F
+GLIBC_2.17 svcunixfd_create F
+GLIBC_2.17 swab F
+GLIBC_2.17 swapcontext F
+GLIBC_2.17 swapoff F
+GLIBC_2.17 swapon F
+GLIBC_2.17 swprintf F
+GLIBC_2.17 swscanf F
+GLIBC_2.17 symlink F
+GLIBC_2.17 symlinkat F
+GLIBC_2.17 sync F
+GLIBC_2.17 sync_file_range F
+GLIBC_2.17 syncfs F
+GLIBC_2.17 sys_errlist D 0x438
+GLIBC_2.17 sys_nerr D 0x4
+GLIBC_2.17 sys_sigabbrev D 0x208
+GLIBC_2.17 sys_siglist D 0x208
+GLIBC_2.17 syscall F
+GLIBC_2.17 sysconf F
+GLIBC_2.17 sysctl F
+GLIBC_2.17 sysinfo F
+GLIBC_2.17 syslog F
+GLIBC_2.17 system F
+GLIBC_2.17 sysv_signal F
+GLIBC_2.17 tcdrain F
+GLIBC_2.17 tcflow F
+GLIBC_2.17 tcflush F
+GLIBC_2.17 tcgetattr F
+GLIBC_2.17 tcgetpgrp F
+GLIBC_2.17 tcgetsid F
+GLIBC_2.17 tcsendbreak F
+GLIBC_2.17 tcsetattr F
+GLIBC_2.17 tcsetpgrp F
+GLIBC_2.17 tdelete F
+GLIBC_2.17 tdestroy F
+GLIBC_2.17 tee F
+GLIBC_2.17 telldir F
+GLIBC_2.17 tempnam F
+GLIBC_2.17 textdomain F
+GLIBC_2.17 tfind F
+GLIBC_2.17 time F
+GLIBC_2.17 timegm F
+GLIBC_2.17 timelocal F
+GLIBC_2.17 timerfd_create F
+GLIBC_2.17 timerfd_gettime F
+GLIBC_2.17 timerfd_settime F
+GLIBC_2.17 times F
+GLIBC_2.17 timespec_get F
+GLIBC_2.17 timezone D 0x8
+GLIBC_2.17 tmpfile F
+GLIBC_2.17 tmpfile64 F
+GLIBC_2.17 tmpnam F
+GLIBC_2.17 tmpnam_r F
+GLIBC_2.17 toascii F
+GLIBC_2.17 tolower F
+GLIBC_2.17 tolower_l F
+GLIBC_2.17 toupper F
+GLIBC_2.17 toupper_l F
+GLIBC_2.17 towctrans F
+GLIBC_2.17 towctrans_l F
+GLIBC_2.17 towlower F
+GLIBC_2.17 towlower_l F
+GLIBC_2.17 towupper F
+GLIBC_2.17 towupper_l F
+GLIBC_2.17 tr_break F
+GLIBC_2.17 truncate F
+GLIBC_2.17 truncate64 F
+GLIBC_2.17 tsearch F
+GLIBC_2.17 ttyname F
+GLIBC_2.17 ttyname_r F
+GLIBC_2.17 ttyslot F
+GLIBC_2.17 twalk F
+GLIBC_2.17 tzname D 0x10
+GLIBC_2.17 tzset F
+GLIBC_2.17 ualarm F
+GLIBC_2.17 ulckpwdf F
+GLIBC_2.17 ulimit F
+GLIBC_2.17 umask F
+GLIBC_2.17 umount F
+GLIBC_2.17 umount2 F
+GLIBC_2.17 uname F
+GLIBC_2.17 ungetc F
+GLIBC_2.17 ungetwc F
+GLIBC_2.17 unlink F
+GLIBC_2.17 unlinkat F
+GLIBC_2.17 unlockpt F
+GLIBC_2.17 unsetenv F
+GLIBC_2.17 unshare F
+GLIBC_2.17 updwtmp F
+GLIBC_2.17 updwtmpx F
+GLIBC_2.17 uselib F
+GLIBC_2.17 uselocale F
+GLIBC_2.17 user2netname F
+GLIBC_2.17 usleep F
+GLIBC_2.17 ustat F
+GLIBC_2.17 utime F
+GLIBC_2.17 utimensat F
+GLIBC_2.17 utimes F
+GLIBC_2.17 utmpname F
+GLIBC_2.17 utmpxname F
+GLIBC_2.17 valloc F
+GLIBC_2.17 vasprintf F
+GLIBC_2.17 vdprintf F
+GLIBC_2.17 verr F
+GLIBC_2.17 verrx F
+GLIBC_2.17 versionsort F
+GLIBC_2.17 versionsort64 F
+GLIBC_2.17 vfork F
+GLIBC_2.17 vfprintf F
+GLIBC_2.17 vfscanf F
+GLIBC_2.17 vfwprintf F
+GLIBC_2.17 vfwscanf F
+GLIBC_2.17 vhangup F
+GLIBC_2.17 vlimit F
+GLIBC_2.17 vmsplice F
+GLIBC_2.17 vprintf F
+GLIBC_2.17 vscanf F
+GLIBC_2.17 vsnprintf F
+GLIBC_2.17 vsprintf F
+GLIBC_2.17 vsscanf F
+GLIBC_2.17 vswprintf F
+GLIBC_2.17 vswscanf F
+GLIBC_2.17 vsyslog F
+GLIBC_2.17 vtimes F
+GLIBC_2.17 vwarn F
+GLIBC_2.17 vwarnx F
+GLIBC_2.17 vwprintf F
+GLIBC_2.17 vwscanf F
+GLIBC_2.17 wait F
+GLIBC_2.17 wait3 F
+GLIBC_2.17 wait4 F
+GLIBC_2.17 waitid F
+GLIBC_2.17 waitpid F
+GLIBC_2.17 warn F
+GLIBC_2.17 warnx F
+GLIBC_2.17 wcpcpy F
+GLIBC_2.17 wcpncpy F
+GLIBC_2.17 wcrtomb F
+GLIBC_2.17 wcscasecmp F
+GLIBC_2.17 wcscasecmp_l F
+GLIBC_2.17 wcscat F
+GLIBC_2.17 wcschr F
+GLIBC_2.17 wcschrnul F
+GLIBC_2.17 wcscmp F
+GLIBC_2.17 wcscoll F
+GLIBC_2.17 wcscoll_l F
+GLIBC_2.17 wcscpy F
+GLIBC_2.17 wcscspn F
+GLIBC_2.17 wcsdup F
+GLIBC_2.17 wcsftime F
+GLIBC_2.17 wcsftime_l F
+GLIBC_2.17 wcslen F
+GLIBC_2.17 wcsncasecmp F
+GLIBC_2.17 wcsncasecmp_l F
+GLIBC_2.17 wcsncat F
+GLIBC_2.17 wcsncmp F
+GLIBC_2.17 wcsncpy F
+GLIBC_2.17 wcsnlen F
+GLIBC_2.17 wcsnrtombs F
+GLIBC_2.17 wcspbrk F
+GLIBC_2.17 wcsrchr F
+GLIBC_2.17 wcsrtombs F
+GLIBC_2.17 wcsspn F
+GLIBC_2.17 wcsstr F
+GLIBC_2.17 wcstod F
+GLIBC_2.17 wcstod_l F
+GLIBC_2.17 wcstof F
+GLIBC_2.17 wcstof_l F
+GLIBC_2.17 wcstoimax F
+GLIBC_2.17 wcstok F
+GLIBC_2.17 wcstol F
+GLIBC_2.17 wcstol_l F
+GLIBC_2.17 wcstold F
+GLIBC_2.17 wcstold_l F
+GLIBC_2.17 wcstoll F
+GLIBC_2.17 wcstoll_l F
+GLIBC_2.17 wcstombs F
+GLIBC_2.17 wcstoq F
+GLIBC_2.17 wcstoul F
+GLIBC_2.17 wcstoul_l F
+GLIBC_2.17 wcstoull F
+GLIBC_2.17 wcstoull_l F
+GLIBC_2.17 wcstoumax F
+GLIBC_2.17 wcstouq F
+GLIBC_2.17 wcswcs F
+GLIBC_2.17 wcswidth F
+GLIBC_2.17 wcsxfrm F
+GLIBC_2.17 wcsxfrm_l F
+GLIBC_2.17 wctob F
+GLIBC_2.17 wctomb F
+GLIBC_2.17 wctrans F
+GLIBC_2.17 wctrans_l F
+GLIBC_2.17 wctype F
+GLIBC_2.17 wctype_l F
+GLIBC_2.17 wcwidth F
+GLIBC_2.17 wmemchr F
+GLIBC_2.17 wmemcmp F
+GLIBC_2.17 wmemcpy F
+GLIBC_2.17 wmemmove F
+GLIBC_2.17 wmempcpy F
+GLIBC_2.17 wmemset F
+GLIBC_2.17 wordexp F
+GLIBC_2.17 wordfree F
+GLIBC_2.17 wprintf F
+GLIBC_2.17 write F
+GLIBC_2.17 writev F
+GLIBC_2.17 wscanf F
+GLIBC_2.17 xdecrypt F
+GLIBC_2.17 xdr_accepted_reply F
+GLIBC_2.17 xdr_array F
+GLIBC_2.17 xdr_authdes_cred F
+GLIBC_2.17 xdr_authdes_verf F
+GLIBC_2.17 xdr_authunix_parms F
+GLIBC_2.17 xdr_bool F
+GLIBC_2.17 xdr_bytes F
+GLIBC_2.17 xdr_callhdr F
+GLIBC_2.17 xdr_callmsg F
+GLIBC_2.17 xdr_char F
+GLIBC_2.17 xdr_cryptkeyarg F
+GLIBC_2.17 xdr_cryptkeyarg2 F
+GLIBC_2.17 xdr_cryptkeyres F
+GLIBC_2.17 xdr_des_block F
+GLIBC_2.17 xdr_double F
+GLIBC_2.17 xdr_enum F
+GLIBC_2.17 xdr_float F
+GLIBC_2.17 xdr_free F
+GLIBC_2.17 xdr_getcredres F
+GLIBC_2.17 xdr_hyper F
+GLIBC_2.17 xdr_int F
+GLIBC_2.17 xdr_int16_t F
+GLIBC_2.17 xdr_int32_t F
+GLIBC_2.17 xdr_int64_t F
+GLIBC_2.17 xdr_int8_t F
+GLIBC_2.17 xdr_key_netstarg F
+GLIBC_2.17 xdr_key_netstres F
+GLIBC_2.17 xdr_keybuf F
+GLIBC_2.17 xdr_keystatus F
+GLIBC_2.17 xdr_long F
+GLIBC_2.17 xdr_longlong_t F
+GLIBC_2.17 xdr_netnamestr F
+GLIBC_2.17 xdr_netobj F
+GLIBC_2.17 xdr_opaque F
+GLIBC_2.17 xdr_opaque_auth F
+GLIBC_2.17 xdr_pmap F
+GLIBC_2.17 xdr_pmaplist F
+GLIBC_2.17 xdr_pointer F
+GLIBC_2.17 xdr_quad_t F
+GLIBC_2.17 xdr_reference F
+GLIBC_2.17 xdr_rejected_reply F
+GLIBC_2.17 xdr_replymsg F
+GLIBC_2.17 xdr_rmtcall_args F
+GLIBC_2.17 xdr_rmtcallres F
+GLIBC_2.17 xdr_short F
+GLIBC_2.17 xdr_sizeof F
+GLIBC_2.17 xdr_string F
+GLIBC_2.17 xdr_u_char F
+GLIBC_2.17 xdr_u_hyper F
+GLIBC_2.17 xdr_u_int F
+GLIBC_2.17 xdr_u_long F
+GLIBC_2.17 xdr_u_longlong_t F
+GLIBC_2.17 xdr_u_quad_t F
+GLIBC_2.17 xdr_u_short F
+GLIBC_2.17 xdr_uint16_t F
+GLIBC_2.17 xdr_uint32_t F
+GLIBC_2.17 xdr_uint64_t F
+GLIBC_2.17 xdr_uint8_t F
+GLIBC_2.17 xdr_union F
+GLIBC_2.17 xdr_unixcred F
+GLIBC_2.17 xdr_vector F
+GLIBC_2.17 xdr_void F
+GLIBC_2.17 xdr_wrapstring F
+GLIBC_2.17 xdrmem_create F
+GLIBC_2.17 xdrrec_create F
+GLIBC_2.17 xdrrec_endofrecord F
+GLIBC_2.17 xdrrec_eof F
+GLIBC_2.17 xdrrec_skiprecord F
+GLIBC_2.17 xdrstdio_create F
+GLIBC_2.17 xencrypt F
+GLIBC_2.17 xprt_register F
+GLIBC_2.17 xprt_unregister F
+GLIBC_2.18 GLIBC_2.18 A
+GLIBC_2.18 __cxa_thread_atexit_impl F
+GLIBC_2.18 _mcount F
+GLIBC_2.22 GLIBC_2.22 A
+GLIBC_2.22 fmemopen F
+GLIBC_2.23 GLIBC_2.23 A
+GLIBC_2.23 fts64_children F
+GLIBC_2.23 fts64_close F
+GLIBC_2.23 fts64_open F
+GLIBC_2.23 fts64_read F
+GLIBC_2.23 fts64_set F
+GLIBC_2.24 GLIBC_2.24 A
+GLIBC_2.24 quick_exit F
+GLIBC_2.25 GLIBC_2.25 A
+GLIBC_2.25 __explicit_bzero_chk F
+GLIBC_2.25 explicit_bzero F
+GLIBC_2.25 getentropy F
+GLIBC_2.25 getrandom F
+GLIBC_2.25 strfromd F
+GLIBC_2.25 strfromf F
+GLIBC_2.25 strfroml F
+GLIBC_2.26 GLIBC_2.26 A
+GLIBC_2.26 preadv2 F
+GLIBC_2.26 preadv64v2 F
+GLIBC_2.26 pwritev2 F
+GLIBC_2.26 pwritev64v2 F
+GLIBC_2.26 reallocarray F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/libcrypt.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/libcrypt.abilist
new file mode 100644
index 0000000000..58944b3d83
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/libcrypt.abilist
@@ -0,0 +1,8 @@
+GLIBC_2.17 GLIBC_2.17 A
+GLIBC_2.17 crypt F
+GLIBC_2.17 crypt_r F
+GLIBC_2.17 encrypt F
+GLIBC_2.17 encrypt_r F
+GLIBC_2.17 fcrypt F
+GLIBC_2.17 setkey F
+GLIBC_2.17 setkey_r F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/libdl.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/libdl.abilist
new file mode 100644
index 0000000000..1b4b1f77ed
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/libdl.abilist
@@ -0,0 +1,10 @@
+GLIBC_2.17 GLIBC_2.17 A
+GLIBC_2.17 dladdr F
+GLIBC_2.17 dladdr1 F
+GLIBC_2.17 dlclose F
+GLIBC_2.17 dlerror F
+GLIBC_2.17 dlinfo F
+GLIBC_2.17 dlmopen F
+GLIBC_2.17 dlopen F
+GLIBC_2.17 dlsym F
+GLIBC_2.17 dlvsym F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/libm.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/libm.abilist
new file mode 100644
index 0000000000..6266864ea7
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/libm.abilist
@@ -0,0 +1,462 @@
+GLIBC_2.17 GLIBC_2.17 A
+GLIBC_2.17 _LIB_VERSION D 0x4
+GLIBC_2.17 __acos_finite F
+GLIBC_2.17 __acosf_finite F
+GLIBC_2.17 __acosh_finite F
+GLIBC_2.17 __acoshf_finite F
+GLIBC_2.17 __acoshl_finite F
+GLIBC_2.17 __acosl_finite F
+GLIBC_2.17 __asin_finite F
+GLIBC_2.17 __asinf_finite F
+GLIBC_2.17 __asinl_finite F
+GLIBC_2.17 __atan2_finite F
+GLIBC_2.17 __atan2f_finite F
+GLIBC_2.17 __atan2l_finite F
+GLIBC_2.17 __atanh_finite F
+GLIBC_2.17 __atanhf_finite F
+GLIBC_2.17 __atanhl_finite F
+GLIBC_2.17 __clog10 F
+GLIBC_2.17 __clog10f F
+GLIBC_2.17 __clog10l F
+GLIBC_2.17 __cosh_finite F
+GLIBC_2.17 __coshf_finite F
+GLIBC_2.17 __coshl_finite F
+GLIBC_2.17 __exp10_finite F
+GLIBC_2.17 __exp10f_finite F
+GLIBC_2.17 __exp10l_finite F
+GLIBC_2.17 __exp2_finite F
+GLIBC_2.17 __exp2f_finite F
+GLIBC_2.17 __exp2l_finite F
+GLIBC_2.17 __exp_finite F
+GLIBC_2.17 __expf_finite F
+GLIBC_2.17 __expl_finite F
+GLIBC_2.17 __finite F
+GLIBC_2.17 __finitef F
+GLIBC_2.17 __finitel F
+GLIBC_2.17 __fmod_finite F
+GLIBC_2.17 __fmodf_finite F
+GLIBC_2.17 __fmodl_finite F
+GLIBC_2.17 __fpclassify F
+GLIBC_2.17 __fpclassifyf F
+GLIBC_2.17 __fpclassifyl F
+GLIBC_2.17 __gamma_r_finite F
+GLIBC_2.17 __gammaf_r_finite F
+GLIBC_2.17 __gammal_r_finite F
+GLIBC_2.17 __hypot_finite F
+GLIBC_2.17 __hypotf_finite F
+GLIBC_2.17 __hypotl_finite F
+GLIBC_2.17 __j0_finite F
+GLIBC_2.17 __j0f_finite F
+GLIBC_2.17 __j0l_finite F
+GLIBC_2.17 __j1_finite F
+GLIBC_2.17 __j1f_finite F
+GLIBC_2.17 __j1l_finite F
+GLIBC_2.17 __jn_finite F
+GLIBC_2.17 __jnf_finite F
+GLIBC_2.17 __jnl_finite F
+GLIBC_2.17 __lgamma_r_finite F
+GLIBC_2.17 __lgammaf_r_finite F
+GLIBC_2.17 __lgammal_r_finite F
+GLIBC_2.17 __log10_finite F
+GLIBC_2.17 __log10f_finite F
+GLIBC_2.17 __log10l_finite F
+GLIBC_2.17 __log2_finite F
+GLIBC_2.17 __log2f_finite F
+GLIBC_2.17 __log2l_finite F
+GLIBC_2.17 __log_finite F
+GLIBC_2.17 __logf_finite F
+GLIBC_2.17 __logl_finite F
+GLIBC_2.17 __pow_finite F
+GLIBC_2.17 __powf_finite F
+GLIBC_2.17 __powl_finite F
+GLIBC_2.17 __remainder_finite F
+GLIBC_2.17 __remainderf_finite F
+GLIBC_2.17 __remainderl_finite F
+GLIBC_2.17 __scalb_finite F
+GLIBC_2.17 __scalbf_finite F
+GLIBC_2.17 __scalbl_finite F
+GLIBC_2.17 __signbit F
+GLIBC_2.17 __signbitf F
+GLIBC_2.17 __signbitl F
+GLIBC_2.17 __sinh_finite F
+GLIBC_2.17 __sinhf_finite F
+GLIBC_2.17 __sinhl_finite F
+GLIBC_2.17 __sqrt_finite F
+GLIBC_2.17 __sqrtf_finite F
+GLIBC_2.17 __sqrtl_finite F
+GLIBC_2.17 __y0_finite F
+GLIBC_2.17 __y0f_finite F
+GLIBC_2.17 __y0l_finite F
+GLIBC_2.17 __y1_finite F
+GLIBC_2.17 __y1f_finite F
+GLIBC_2.17 __y1l_finite F
+GLIBC_2.17 __yn_finite F
+GLIBC_2.17 __ynf_finite F
+GLIBC_2.17 __ynl_finite F
+GLIBC_2.17 acos F
+GLIBC_2.17 acosf F
+GLIBC_2.17 acosh F
+GLIBC_2.17 acoshf F
+GLIBC_2.17 acoshl F
+GLIBC_2.17 acosl F
+GLIBC_2.17 asin F
+GLIBC_2.17 asinf F
+GLIBC_2.17 asinh F
+GLIBC_2.17 asinhf F
+GLIBC_2.17 asinhl F
+GLIBC_2.17 asinl F
+GLIBC_2.17 atan F
+GLIBC_2.17 atan2 F
+GLIBC_2.17 atan2f F
+GLIBC_2.17 atan2l F
+GLIBC_2.17 atanf F
+GLIBC_2.17 atanh F
+GLIBC_2.17 atanhf F
+GLIBC_2.17 atanhl F
+GLIBC_2.17 atanl F
+GLIBC_2.17 cabs F
+GLIBC_2.17 cabsf F
+GLIBC_2.17 cabsl F
+GLIBC_2.17 cacos F
+GLIBC_2.17 cacosf F
+GLIBC_2.17 cacosh F
+GLIBC_2.17 cacoshf F
+GLIBC_2.17 cacoshl F
+GLIBC_2.17 cacosl F
+GLIBC_2.17 carg F
+GLIBC_2.17 cargf F
+GLIBC_2.17 cargl F
+GLIBC_2.17 casin F
+GLIBC_2.17 casinf F
+GLIBC_2.17 casinh F
+GLIBC_2.17 casinhf F
+GLIBC_2.17 casinhl F
+GLIBC_2.17 casinl F
+GLIBC_2.17 catan F
+GLIBC_2.17 catanf F
+GLIBC_2.17 catanh F
+GLIBC_2.17 catanhf F
+GLIBC_2.17 catanhl F
+GLIBC_2.17 catanl F
+GLIBC_2.17 cbrt F
+GLIBC_2.17 cbrtf F
+GLIBC_2.17 cbrtl F
+GLIBC_2.17 ccos F
+GLIBC_2.17 ccosf F
+GLIBC_2.17 ccosh F
+GLIBC_2.17 ccoshf F
+GLIBC_2.17 ccoshl F
+GLIBC_2.17 ccosl F
+GLIBC_2.17 ceil F
+GLIBC_2.17 ceilf F
+GLIBC_2.17 ceill F
+GLIBC_2.17 cexp F
+GLIBC_2.17 cexpf F
+GLIBC_2.17 cexpl F
+GLIBC_2.17 cimag F
+GLIBC_2.17 cimagf F
+GLIBC_2.17 cimagl F
+GLIBC_2.17 clog F
+GLIBC_2.17 clog10 F
+GLIBC_2.17 clog10f F
+GLIBC_2.17 clog10l F
+GLIBC_2.17 clogf F
+GLIBC_2.17 clogl F
+GLIBC_2.17 conj F
+GLIBC_2.17 conjf F
+GLIBC_2.17 conjl F
+GLIBC_2.17 copysign F
+GLIBC_2.17 copysignf F
+GLIBC_2.17 copysignl F
+GLIBC_2.17 cos F
+GLIBC_2.17 cosf F
+GLIBC_2.17 cosh F
+GLIBC_2.17 coshf F
+GLIBC_2.17 coshl F
+GLIBC_2.17 cosl F
+GLIBC_2.17 cpow F
+GLIBC_2.17 cpowf F
+GLIBC_2.17 cpowl F
+GLIBC_2.17 cproj F
+GLIBC_2.17 cprojf F
+GLIBC_2.17 cprojl F
+GLIBC_2.17 creal F
+GLIBC_2.17 crealf F
+GLIBC_2.17 creall F
+GLIBC_2.17 csin F
+GLIBC_2.17 csinf F
+GLIBC_2.17 csinh F
+GLIBC_2.17 csinhf F
+GLIBC_2.17 csinhl F
+GLIBC_2.17 csinl F
+GLIBC_2.17 csqrt F
+GLIBC_2.17 csqrtf F
+GLIBC_2.17 csqrtl F
+GLIBC_2.17 ctan F
+GLIBC_2.17 ctanf F
+GLIBC_2.17 ctanh F
+GLIBC_2.17 ctanhf F
+GLIBC_2.17 ctanhl F
+GLIBC_2.17 ctanl F
+GLIBC_2.17 drem F
+GLIBC_2.17 dremf F
+GLIBC_2.17 dreml F
+GLIBC_2.17 erf F
+GLIBC_2.17 erfc F
+GLIBC_2.17 erfcf F
+GLIBC_2.17 erfcl F
+GLIBC_2.17 erff F
+GLIBC_2.17 erfl F
+GLIBC_2.17 exp F
+GLIBC_2.17 exp10 F
+GLIBC_2.17 exp10f F
+GLIBC_2.17 exp10l F
+GLIBC_2.17 exp2 F
+GLIBC_2.17 exp2f F
+GLIBC_2.17 exp2l F
+GLIBC_2.17 expf F
+GLIBC_2.17 expl F
+GLIBC_2.17 expm1 F
+GLIBC_2.17 expm1f F
+GLIBC_2.17 expm1l F
+GLIBC_2.17 fabs F
+GLIBC_2.17 fabsf F
+GLIBC_2.17 fabsl F
+GLIBC_2.17 fdim F
+GLIBC_2.17 fdimf F
+GLIBC_2.17 fdiml F
+GLIBC_2.17 feclearexcept F
+GLIBC_2.17 fedisableexcept F
+GLIBC_2.17 feenableexcept F
+GLIBC_2.17 fegetenv F
+GLIBC_2.17 fegetexcept F
+GLIBC_2.17 fegetexceptflag F
+GLIBC_2.17 fegetround F
+GLIBC_2.17 feholdexcept F
+GLIBC_2.17 feraiseexcept F
+GLIBC_2.17 fesetenv F
+GLIBC_2.17 fesetexceptflag F
+GLIBC_2.17 fesetround F
+GLIBC_2.17 fetestexcept F
+GLIBC_2.17 feupdateenv F
+GLIBC_2.17 finite F
+GLIBC_2.17 finitef F
+GLIBC_2.17 finitel F
+GLIBC_2.17 floor F
+GLIBC_2.17 floorf F
+GLIBC_2.17 floorl F
+GLIBC_2.17 fma F
+GLIBC_2.17 fmaf F
+GLIBC_2.17 fmal F
+GLIBC_2.17 fmax F
+GLIBC_2.17 fmaxf F
+GLIBC_2.17 fmaxl F
+GLIBC_2.17 fmin F
+GLIBC_2.17 fminf F
+GLIBC_2.17 fminl F
+GLIBC_2.17 fmod F
+GLIBC_2.17 fmodf F
+GLIBC_2.17 fmodl F
+GLIBC_2.17 frexp F
+GLIBC_2.17 frexpf F
+GLIBC_2.17 frexpl F
+GLIBC_2.17 gamma F
+GLIBC_2.17 gammaf F
+GLIBC_2.17 gammal F
+GLIBC_2.17 hypot F
+GLIBC_2.17 hypotf F
+GLIBC_2.17 hypotl F
+GLIBC_2.17 ilogb F
+GLIBC_2.17 ilogbf F
+GLIBC_2.17 ilogbl F
+GLIBC_2.17 j0 F
+GLIBC_2.17 j0f F
+GLIBC_2.17 j0l F
+GLIBC_2.17 j1 F
+GLIBC_2.17 j1f F
+GLIBC_2.17 j1l F
+GLIBC_2.17 jn F
+GLIBC_2.17 jnf F
+GLIBC_2.17 jnl F
+GLIBC_2.17 ldexp F
+GLIBC_2.17 ldexpf F
+GLIBC_2.17 ldexpl F
+GLIBC_2.17 lgamma F
+GLIBC_2.17 lgamma_r F
+GLIBC_2.17 lgammaf F
+GLIBC_2.17 lgammaf_r F
+GLIBC_2.17 lgammal F
+GLIBC_2.17 lgammal_r F
+GLIBC_2.17 llrint F
+GLIBC_2.17 llrintf F
+GLIBC_2.17 llrintl F
+GLIBC_2.17 llround F
+GLIBC_2.17 llroundf F
+GLIBC_2.17 llroundl F
+GLIBC_2.17 log F
+GLIBC_2.17 log10 F
+GLIBC_2.17 log10f F
+GLIBC_2.17 log10l F
+GLIBC_2.17 log1p F
+GLIBC_2.17 log1pf F
+GLIBC_2.17 log1pl F
+GLIBC_2.17 log2 F
+GLIBC_2.17 log2f F
+GLIBC_2.17 log2l F
+GLIBC_2.17 logb F
+GLIBC_2.17 logbf F
+GLIBC_2.17 logbl F
+GLIBC_2.17 logf F
+GLIBC_2.17 logl F
+GLIBC_2.17 lrint F
+GLIBC_2.17 lrintf F
+GLIBC_2.17 lrintl F
+GLIBC_2.17 lround F
+GLIBC_2.17 lroundf F
+GLIBC_2.17 lroundl F
+GLIBC_2.17 matherr F
+GLIBC_2.17 modf F
+GLIBC_2.17 modff F
+GLIBC_2.17 modfl F
+GLIBC_2.17 nan F
+GLIBC_2.17 nanf F
+GLIBC_2.17 nanl F
+GLIBC_2.17 nearbyint F
+GLIBC_2.17 nearbyintf F
+GLIBC_2.17 nearbyintl F
+GLIBC_2.17 nextafter F
+GLIBC_2.17 nextafterf F
+GLIBC_2.17 nextafterl F
+GLIBC_2.17 nexttoward F
+GLIBC_2.17 nexttowardf F
+GLIBC_2.17 nexttowardl F
+GLIBC_2.17 pow F
+GLIBC_2.17 pow10 F
+GLIBC_2.17 pow10f F
+GLIBC_2.17 pow10l F
+GLIBC_2.17 powf F
+GLIBC_2.17 powl F
+GLIBC_2.17 remainder F
+GLIBC_2.17 remainderf F
+GLIBC_2.17 remainderl F
+GLIBC_2.17 remquo F
+GLIBC_2.17 remquof F
+GLIBC_2.17 remquol F
+GLIBC_2.17 rint F
+GLIBC_2.17 rintf F
+GLIBC_2.17 rintl F
+GLIBC_2.17 round F
+GLIBC_2.17 roundf F
+GLIBC_2.17 roundl F
+GLIBC_2.17 scalb F
+GLIBC_2.17 scalbf F
+GLIBC_2.17 scalbl F
+GLIBC_2.17 scalbln F
+GLIBC_2.17 scalblnf F
+GLIBC_2.17 scalblnl F
+GLIBC_2.17 scalbn F
+GLIBC_2.17 scalbnf F
+GLIBC_2.17 scalbnl F
+GLIBC_2.17 signgam D 0x4
+GLIBC_2.17 significand F
+GLIBC_2.17 significandf F
+GLIBC_2.17 significandl F
+GLIBC_2.17 sin F
+GLIBC_2.17 sincos F
+GLIBC_2.17 sincosf F
+GLIBC_2.17 sincosl F
+GLIBC_2.17 sinf F
+GLIBC_2.17 sinh F
+GLIBC_2.17 sinhf F
+GLIBC_2.17 sinhl F
+GLIBC_2.17 sinl F
+GLIBC_2.17 sqrt F
+GLIBC_2.17 sqrtf F
+GLIBC_2.17 sqrtl F
+GLIBC_2.17 tan F
+GLIBC_2.17 tanf F
+GLIBC_2.17 tanh F
+GLIBC_2.17 tanhf F
+GLIBC_2.17 tanhl F
+GLIBC_2.17 tanl F
+GLIBC_2.17 tgamma F
+GLIBC_2.17 tgammaf F
+GLIBC_2.17 tgammal F
+GLIBC_2.17 trunc F
+GLIBC_2.17 truncf F
+GLIBC_2.17 truncl F
+GLIBC_2.17 y0 F
+GLIBC_2.17 y0f F
+GLIBC_2.17 y0l F
+GLIBC_2.17 y1 F
+GLIBC_2.17 y1f F
+GLIBC_2.17 y1l F
+GLIBC_2.17 yn F
+GLIBC_2.17 ynf F
+GLIBC_2.17 ynl F
+GLIBC_2.18 GLIBC_2.18 A
+GLIBC_2.18 __issignaling F
+GLIBC_2.18 __issignalingf F
+GLIBC_2.18 __issignalingl F
+GLIBC_2.23 GLIBC_2.23 A
+GLIBC_2.23 __signgam D 0x4
+GLIBC_2.23 lgamma F
+GLIBC_2.23 lgammaf F
+GLIBC_2.23 lgammal F
+GLIBC_2.24 GLIBC_2.24 A
+GLIBC_2.24 nextdown F
+GLIBC_2.24 nextdownf F
+GLIBC_2.24 nextdownl F
+GLIBC_2.24 nextup F
+GLIBC_2.24 nextupf F
+GLIBC_2.24 nextupl F
+GLIBC_2.25 GLIBC_2.25 A
+GLIBC_2.25 __iseqsig F
+GLIBC_2.25 __iseqsigf F
+GLIBC_2.25 __iseqsigl F
+GLIBC_2.25 canonicalize F
+GLIBC_2.25 canonicalizef F
+GLIBC_2.25 canonicalizel F
+GLIBC_2.25 fegetmode F
+GLIBC_2.25 fesetexcept F
+GLIBC_2.25 fesetmode F
+GLIBC_2.25 fetestexceptflag F
+GLIBC_2.25 fmaxmag F
+GLIBC_2.25 fmaxmagf F
+GLIBC_2.25 fmaxmagl F
+GLIBC_2.25 fminmag F
+GLIBC_2.25 fminmagf F
+GLIBC_2.25 fminmagl F
+GLIBC_2.25 fromfp F
+GLIBC_2.25 fromfpf F
+GLIBC_2.25 fromfpl F
+GLIBC_2.25 fromfpx F
+GLIBC_2.25 fromfpxf F
+GLIBC_2.25 fromfpxl F
+GLIBC_2.25 getpayload F
+GLIBC_2.25 getpayloadf F
+GLIBC_2.25 getpayloadl F
+GLIBC_2.25 llogb F
+GLIBC_2.25 llogbf F
+GLIBC_2.25 llogbl F
+GLIBC_2.25 roundeven F
+GLIBC_2.25 roundevenf F
+GLIBC_2.25 roundevenl F
+GLIBC_2.25 setpayload F
+GLIBC_2.25 setpayloadf F
+GLIBC_2.25 setpayloadl F
+GLIBC_2.25 setpayloadsig F
+GLIBC_2.25 setpayloadsigf F
+GLIBC_2.25 setpayloadsigl F
+GLIBC_2.25 totalorder F
+GLIBC_2.25 totalorderf F
+GLIBC_2.25 totalorderl F
+GLIBC_2.25 totalordermag F
+GLIBC_2.25 totalordermagf F
+GLIBC_2.25 totalordermagl F
+GLIBC_2.25 ufromfp F
+GLIBC_2.25 ufromfpf F
+GLIBC_2.25 ufromfpl F
+GLIBC_2.25 ufromfpx F
+GLIBC_2.25 ufromfpxf F
+GLIBC_2.25 ufromfpxl F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/libnsl.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/libnsl.abilist
new file mode 100644
index 0000000000..63d47aef79
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/libnsl.abilist
@@ -0,0 +1,122 @@
+GLIBC_2.17 GLIBC_2.17 A
+GLIBC_2.17 __free_fdresult F
+GLIBC_2.17 __nis_default_access F
+GLIBC_2.17 __nis_default_group F
+GLIBC_2.17 __nis_default_owner F
+GLIBC_2.17 __nis_default_ttl F
+GLIBC_2.17 __nis_finddirectory F
+GLIBC_2.17 __nis_hash F
+GLIBC_2.17 __nisbind_connect F
+GLIBC_2.17 __nisbind_create F
+GLIBC_2.17 __nisbind_destroy F
+GLIBC_2.17 __nisbind_next F
+GLIBC_2.17 __yp_check F
+GLIBC_2.17 nis_add F
+GLIBC_2.17 nis_add_entry F
+GLIBC_2.17 nis_addmember F
+GLIBC_2.17 nis_checkpoint F
+GLIBC_2.17 nis_clone_directory F
+GLIBC_2.17 nis_clone_object F
+GLIBC_2.17 nis_clone_result F
+GLIBC_2.17 nis_creategroup F
+GLIBC_2.17 nis_destroy_object F
+GLIBC_2.17 nis_destroygroup F
+GLIBC_2.17 nis_dir_cmp F
+GLIBC_2.17 nis_domain_of F
+GLIBC_2.17 nis_domain_of_r F
+GLIBC_2.17 nis_first_entry F
+GLIBC_2.17 nis_free_directory F
+GLIBC_2.17 nis_free_object F
+GLIBC_2.17 nis_free_request F
+GLIBC_2.17 nis_freenames F
+GLIBC_2.17 nis_freeresult F
+GLIBC_2.17 nis_freeservlist F
+GLIBC_2.17 nis_freetags F
+GLIBC_2.17 nis_getnames F
+GLIBC_2.17 nis_getservlist F
+GLIBC_2.17 nis_ismember F
+GLIBC_2.17 nis_leaf_of F
+GLIBC_2.17 nis_leaf_of_r F
+GLIBC_2.17 nis_lerror F
+GLIBC_2.17 nis_list F
+GLIBC_2.17 nis_local_directory F
+GLIBC_2.17 nis_local_group F
+GLIBC_2.17 nis_local_host F
+GLIBC_2.17 nis_local_principal F
+GLIBC_2.17 nis_lookup F
+GLIBC_2.17 nis_mkdir F
+GLIBC_2.17 nis_modify F
+GLIBC_2.17 nis_modify_entry F
+GLIBC_2.17 nis_name_of F
+GLIBC_2.17 nis_name_of_r F
+GLIBC_2.17 nis_next_entry F
+GLIBC_2.17 nis_perror F
+GLIBC_2.17 nis_ping F
+GLIBC_2.17 nis_print_directory F
+GLIBC_2.17 nis_print_entry F
+GLIBC_2.17 nis_print_group F
+GLIBC_2.17 nis_print_group_entry F
+GLIBC_2.17 nis_print_link F
+GLIBC_2.17 nis_print_object F
+GLIBC_2.17 nis_print_result F
+GLIBC_2.17 nis_print_rights F
+GLIBC_2.17 nis_print_table F
+GLIBC_2.17 nis_read_obj F
+GLIBC_2.17 nis_remove F
+GLIBC_2.17 nis_remove_entry F
+GLIBC_2.17 nis_removemember F
+GLIBC_2.17 nis_rmdir F
+GLIBC_2.17 nis_servstate F
+GLIBC_2.17 nis_sperrno F
+GLIBC_2.17 nis_sperror F
+GLIBC_2.17 nis_sperror_r F
+GLIBC_2.17 nis_stats F
+GLIBC_2.17 nis_verifygroup F
+GLIBC_2.17 nis_write_obj F
+GLIBC_2.17 readColdStartFile F
+GLIBC_2.17 writeColdStartFile F
+GLIBC_2.17 xdr_cback_data F
+GLIBC_2.17 xdr_domainname F
+GLIBC_2.17 xdr_keydat F
+GLIBC_2.17 xdr_mapname F
+GLIBC_2.17 xdr_obj_p F
+GLIBC_2.17 xdr_peername F
+GLIBC_2.17 xdr_valdat F
+GLIBC_2.17 xdr_yp_buf F
+GLIBC_2.17 xdr_ypall F
+GLIBC_2.17 xdr_ypbind_binding F
+GLIBC_2.17 xdr_ypbind_resp F
+GLIBC_2.17 xdr_ypbind_resptype F
+GLIBC_2.17 xdr_ypbind_setdom F
+GLIBC_2.17 xdr_ypdelete_args F
+GLIBC_2.17 xdr_ypmap_parms F
+GLIBC_2.17 xdr_ypmaplist F
+GLIBC_2.17 xdr_yppush_status F
+GLIBC_2.17 xdr_yppushresp_xfr F
+GLIBC_2.17 xdr_ypreq_key F
+GLIBC_2.17 xdr_ypreq_nokey F
+GLIBC_2.17 xdr_ypreq_xfr F
+GLIBC_2.17 xdr_ypresp_all F
+GLIBC_2.17 xdr_ypresp_key_val F
+GLIBC_2.17 xdr_ypresp_maplist F
+GLIBC_2.17 xdr_ypresp_master F
+GLIBC_2.17 xdr_ypresp_order F
+GLIBC_2.17 xdr_ypresp_val F
+GLIBC_2.17 xdr_ypresp_xfr F
+GLIBC_2.17 xdr_ypstat F
+GLIBC_2.17 xdr_ypupdate_args F
+GLIBC_2.17 xdr_ypxfrstat F
+GLIBC_2.17 yp_all F
+GLIBC_2.17 yp_bind F
+GLIBC_2.17 yp_first F
+GLIBC_2.17 yp_get_default_domain F
+GLIBC_2.17 yp_maplist F
+GLIBC_2.17 yp_master F
+GLIBC_2.17 yp_match F
+GLIBC_2.17 yp_next F
+GLIBC_2.17 yp_order F
+GLIBC_2.17 yp_unbind F
+GLIBC_2.17 yp_update F
+GLIBC_2.17 ypbinderr_string F
+GLIBC_2.17 yperr_string F
+GLIBC_2.17 ypprot_err F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
new file mode 100644
index 0000000000..0cf30ee02f
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
@@ -0,0 +1,226 @@
+GLIBC_2.17 GLIBC_2.17 A
+GLIBC_2.17 _IO_flockfile F
+GLIBC_2.17 _IO_ftrylockfile F
+GLIBC_2.17 _IO_funlockfile F
+GLIBC_2.17 __close F
+GLIBC_2.17 __connect F
+GLIBC_2.17 __errno_location F
+GLIBC_2.17 __fcntl F
+GLIBC_2.17 __fork F
+GLIBC_2.17 __h_errno_location F
+GLIBC_2.17 __libc_allocate_rtsig F
+GLIBC_2.17 __libc_current_sigrtmax F
+GLIBC_2.17 __libc_current_sigrtmin F
+GLIBC_2.17 __lseek F
+GLIBC_2.17 __nanosleep F
+GLIBC_2.17 __open F
+GLIBC_2.17 __open64 F
+GLIBC_2.17 __pread64 F
+GLIBC_2.17 __pthread_cleanup_routine F
+GLIBC_2.17 __pthread_getspecific F
+GLIBC_2.17 __pthread_key_create F
+GLIBC_2.17 __pthread_mutex_destroy F
+GLIBC_2.17 __pthread_mutex_init F
+GLIBC_2.17 __pthread_mutex_lock F
+GLIBC_2.17 __pthread_mutex_trylock F
+GLIBC_2.17 __pthread_mutex_unlock F
+GLIBC_2.17 __pthread_mutexattr_destroy F
+GLIBC_2.17 __pthread_mutexattr_init F
+GLIBC_2.17 __pthread_mutexattr_settype F
+GLIBC_2.17 __pthread_once F
+GLIBC_2.17 __pthread_register_cancel F
+GLIBC_2.17 __pthread_register_cancel_defer F
+GLIBC_2.17 __pthread_rwlock_destroy F
+GLIBC_2.17 __pthread_rwlock_init F
+GLIBC_2.17 __pthread_rwlock_rdlock F
+GLIBC_2.17 __pthread_rwlock_tryrdlock F
+GLIBC_2.17 __pthread_rwlock_trywrlock F
+GLIBC_2.17 __pthread_rwlock_unlock F
+GLIBC_2.17 __pthread_rwlock_wrlock F
+GLIBC_2.17 __pthread_setspecific F
+GLIBC_2.17 __pthread_unregister_cancel F
+GLIBC_2.17 __pthread_unregister_cancel_restore F
+GLIBC_2.17 __pthread_unwind_next F
+GLIBC_2.17 __pwrite64 F
+GLIBC_2.17 __read F
+GLIBC_2.17 __res_state F
+GLIBC_2.17 __send F
+GLIBC_2.17 __sigaction F
+GLIBC_2.17 __vfork F
+GLIBC_2.17 __wait F
+GLIBC_2.17 __write F
+GLIBC_2.17 _pthread_cleanup_pop F
+GLIBC_2.17 _pthread_cleanup_pop_restore F
+GLIBC_2.17 _pthread_cleanup_push F
+GLIBC_2.17 _pthread_cleanup_push_defer F
+GLIBC_2.17 accept F
+GLIBC_2.17 close F
+GLIBC_2.17 connect F
+GLIBC_2.17 fcntl F
+GLIBC_2.17 flockfile F
+GLIBC_2.17 fork F
+GLIBC_2.17 fsync F
+GLIBC_2.17 ftrylockfile F
+GLIBC_2.17 funlockfile F
+GLIBC_2.17 longjmp F
+GLIBC_2.17 lseek F
+GLIBC_2.17 lseek64 F
+GLIBC_2.17 msync F
+GLIBC_2.17 nanosleep F
+GLIBC_2.17 open F
+GLIBC_2.17 open64 F
+GLIBC_2.17 pause F
+GLIBC_2.17 pread F
+GLIBC_2.17 pread64 F
+GLIBC_2.17 pthread_attr_destroy F
+GLIBC_2.17 pthread_attr_getaffinity_np F
+GLIBC_2.17 pthread_attr_getdetachstate F
+GLIBC_2.17 pthread_attr_getguardsize F
+GLIBC_2.17 pthread_attr_getinheritsched F
+GLIBC_2.17 pthread_attr_getschedparam F
+GLIBC_2.17 pthread_attr_getschedpolicy F
+GLIBC_2.17 pthread_attr_getscope F
+GLIBC_2.17 pthread_attr_getstack F
+GLIBC_2.17 pthread_attr_getstackaddr F
+GLIBC_2.17 pthread_attr_getstacksize F
+GLIBC_2.17 pthread_attr_init F
+GLIBC_2.17 pthread_attr_setaffinity_np F
+GLIBC_2.17 pthread_attr_setdetachstate F
+GLIBC_2.17 pthread_attr_setguardsize F
+GLIBC_2.17 pthread_attr_setinheritsched F
+GLIBC_2.17 pthread_attr_setschedparam F
+GLIBC_2.17 pthread_attr_setschedpolicy F
+GLIBC_2.17 pthread_attr_setscope F
+GLIBC_2.17 pthread_attr_setstack F
+GLIBC_2.17 pthread_attr_setstackaddr F
+GLIBC_2.17 pthread_attr_setstacksize F
+GLIBC_2.17 pthread_barrier_destroy F
+GLIBC_2.17 pthread_barrier_init F
+GLIBC_2.17 pthread_barrier_wait F
+GLIBC_2.17 pthread_barrierattr_destroy F
+GLIBC_2.17 pthread_barrierattr_getpshared F
+GLIBC_2.17 pthread_barrierattr_init F
+GLIBC_2.17 pthread_barrierattr_setpshared F
+GLIBC_2.17 pthread_cancel F
+GLIBC_2.17 pthread_cond_broadcast F
+GLIBC_2.17 pthread_cond_destroy F
+GLIBC_2.17 pthread_cond_init F
+GLIBC_2.17 pthread_cond_signal F
+GLIBC_2.17 pthread_cond_timedwait F
+GLIBC_2.17 pthread_cond_wait F
+GLIBC_2.17 pthread_condattr_destroy F
+GLIBC_2.17 pthread_condattr_getclock F
+GLIBC_2.17 pthread_condattr_getpshared F
+GLIBC_2.17 pthread_condattr_init F
+GLIBC_2.17 pthread_condattr_setclock F
+GLIBC_2.17 pthread_condattr_setpshared F
+GLIBC_2.17 pthread_create F
+GLIBC_2.17 pthread_detach F
+GLIBC_2.17 pthread_equal F
+GLIBC_2.17 pthread_exit F
+GLIBC_2.17 pthread_getaffinity_np F
+GLIBC_2.17 pthread_getattr_np F
+GLIBC_2.17 pthread_getconcurrency F
+GLIBC_2.17 pthread_getcpuclockid F
+GLIBC_2.17 pthread_getname_np F
+GLIBC_2.17 pthread_getschedparam F
+GLIBC_2.17 pthread_getspecific F
+GLIBC_2.17 pthread_join F
+GLIBC_2.17 pthread_key_create F
+GLIBC_2.17 pthread_key_delete F
+GLIBC_2.17 pthread_kill F
+GLIBC_2.17 pthread_kill_other_threads_np F
+GLIBC_2.17 pthread_mutex_consistent F
+GLIBC_2.17 pthread_mutex_consistent_np F
+GLIBC_2.17 pthread_mutex_destroy F
+GLIBC_2.17 pthread_mutex_getprioceiling F
+GLIBC_2.17 pthread_mutex_init F
+GLIBC_2.17 pthread_mutex_lock F
+GLIBC_2.17 pthread_mutex_setprioceiling F
+GLIBC_2.17 pthread_mutex_timedlock F
+GLIBC_2.17 pthread_mutex_trylock F
+GLIBC_2.17 pthread_mutex_unlock F
+GLIBC_2.17 pthread_mutexattr_destroy F
+GLIBC_2.17 pthread_mutexattr_getkind_np F
+GLIBC_2.17 pthread_mutexattr_getprioceiling F
+GLIBC_2.17 pthread_mutexattr_getprotocol F
+GLIBC_2.17 pthread_mutexattr_getpshared F
+GLIBC_2.17 pthread_mutexattr_getrobust F
+GLIBC_2.17 pthread_mutexattr_getrobust_np F
+GLIBC_2.17 pthread_mutexattr_gettype F
+GLIBC_2.17 pthread_mutexattr_init F
+GLIBC_2.17 pthread_mutexattr_setkind_np F
+GLIBC_2.17 pthread_mutexattr_setprioceiling F
+GLIBC_2.17 pthread_mutexattr_setprotocol F
+GLIBC_2.17 pthread_mutexattr_setpshared F
+GLIBC_2.17 pthread_mutexattr_setrobust F
+GLIBC_2.17 pthread_mutexattr_setrobust_np F
+GLIBC_2.17 pthread_mutexattr_settype F
+GLIBC_2.17 pthread_once F
+GLIBC_2.17 pthread_rwlock_destroy F
+GLIBC_2.17 pthread_rwlock_init F
+GLIBC_2.17 pthread_rwlock_rdlock F
+GLIBC_2.17 pthread_rwlock_timedrdlock F
+GLIBC_2.17 pthread_rwlock_timedwrlock F
+GLIBC_2.17 pthread_rwlock_tryrdlock F
+GLIBC_2.17 pthread_rwlock_trywrlock F
+GLIBC_2.17 pthread_rwlock_unlock F
+GLIBC_2.17 pthread_rwlock_wrlock F
+GLIBC_2.17 pthread_rwlockattr_destroy F
+GLIBC_2.17 pthread_rwlockattr_getkind_np F
+GLIBC_2.17 pthread_rwlockattr_getpshared F
+GLIBC_2.17 pthread_rwlockattr_init F
+GLIBC_2.17 pthread_rwlockattr_setkind_np F
+GLIBC_2.17 pthread_rwlockattr_setpshared F
+GLIBC_2.17 pthread_self F
+GLIBC_2.17 pthread_setaffinity_np F
+GLIBC_2.17 pthread_setcancelstate F
+GLIBC_2.17 pthread_setcanceltype F
+GLIBC_2.17 pthread_setconcurrency F
+GLIBC_2.17 pthread_setname_np F
+GLIBC_2.17 pthread_setschedparam F
+GLIBC_2.17 pthread_setschedprio F
+GLIBC_2.17 pthread_setspecific F
+GLIBC_2.17 pthread_sigmask F
+GLIBC_2.17 pthread_sigqueue F
+GLIBC_2.17 pthread_spin_destroy F
+GLIBC_2.17 pthread_spin_init F
+GLIBC_2.17 pthread_spin_lock F
+GLIBC_2.17 pthread_spin_trylock F
+GLIBC_2.17 pthread_spin_unlock F
+GLIBC_2.17 pthread_testcancel F
+GLIBC_2.17 pthread_timedjoin_np F
+GLIBC_2.17 pthread_tryjoin_np F
+GLIBC_2.17 pthread_yield F
+GLIBC_2.17 pwrite F
+GLIBC_2.17 pwrite64 F
+GLIBC_2.17 raise F
+GLIBC_2.17 read F
+GLIBC_2.17 recv F
+GLIBC_2.17 recvfrom F
+GLIBC_2.17 recvmsg F
+GLIBC_2.17 sem_close F
+GLIBC_2.17 sem_destroy F
+GLIBC_2.17 sem_getvalue F
+GLIBC_2.17 sem_init F
+GLIBC_2.17 sem_open F
+GLIBC_2.17 sem_post F
+GLIBC_2.17 sem_timedwait F
+GLIBC_2.17 sem_trywait F
+GLIBC_2.17 sem_unlink F
+GLIBC_2.17 sem_wait F
+GLIBC_2.17 send F
+GLIBC_2.17 sendmsg F
+GLIBC_2.17 sendto F
+GLIBC_2.17 sigaction F
+GLIBC_2.17 siglongjmp F
+GLIBC_2.17 sigwait F
+GLIBC_2.17 system F
+GLIBC_2.17 tcdrain F
+GLIBC_2.17 vfork F
+GLIBC_2.17 wait F
+GLIBC_2.17 waitpid F
+GLIBC_2.17 write F
+GLIBC_2.18 GLIBC_2.18 A
+GLIBC_2.18 pthread_getattr_default_np F
+GLIBC_2.18 pthread_setattr_default_np F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/libresolv.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/libresolv.abilist
new file mode 100644
index 0000000000..cf278eedb3
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/libresolv.abilist
@@ -0,0 +1,92 @@
+GLIBC_2.17 GLIBC_2.17 A
+GLIBC_2.17 __b64_ntop F
+GLIBC_2.17 __b64_pton F
+GLIBC_2.17 __dn_comp F
+GLIBC_2.17 __dn_count_labels F
+GLIBC_2.17 __dn_expand F
+GLIBC_2.17 __dn_skipname F
+GLIBC_2.17 __fp_nquery F
+GLIBC_2.17 __fp_query F
+GLIBC_2.17 __fp_resstat F
+GLIBC_2.17 __hostalias F
+GLIBC_2.17 __loc_aton F
+GLIBC_2.17 __loc_ntoa F
+GLIBC_2.17 __p_cdname F
+GLIBC_2.17 __p_cdnname F
+GLIBC_2.17 __p_class F
+GLIBC_2.17 __p_class_syms D 0xa8
+GLIBC_2.17 __p_fqname F
+GLIBC_2.17 __p_fqnname F
+GLIBC_2.17 __p_option F
+GLIBC_2.17 __p_query F
+GLIBC_2.17 __p_rcode F
+GLIBC_2.17 __p_secstodate F
+GLIBC_2.17 __p_time F
+GLIBC_2.17 __p_type F
+GLIBC_2.17 __p_type_syms D 0x450
+GLIBC_2.17 __putlong F
+GLIBC_2.17 __putshort F
+GLIBC_2.17 __res_close F
+GLIBC_2.17 __res_dnok F
+GLIBC_2.17 __res_hnok F
+GLIBC_2.17 __res_hostalias F
+GLIBC_2.17 __res_isourserver F
+GLIBC_2.17 __res_mailok F
+GLIBC_2.17 __res_mkquery F
+GLIBC_2.17 __res_nameinquery F
+GLIBC_2.17 __res_nmkquery F
+GLIBC_2.17 __res_nquery F
+GLIBC_2.17 __res_nquerydomain F
+GLIBC_2.17 __res_nsearch F
+GLIBC_2.17 __res_nsend F
+GLIBC_2.17 __res_ownok F
+GLIBC_2.17 __res_queriesmatch F
+GLIBC_2.17 __res_query F
+GLIBC_2.17 __res_querydomain F
+GLIBC_2.17 __res_search F
+GLIBC_2.17 __res_send F
+GLIBC_2.17 __sym_ntop F
+GLIBC_2.17 __sym_ntos F
+GLIBC_2.17 __sym_ston F
+GLIBC_2.17 _gethtbyaddr F
+GLIBC_2.17 _gethtbyname F
+GLIBC_2.17 _gethtbyname2 F
+GLIBC_2.17 _gethtent F
+GLIBC_2.17 _getlong F
+GLIBC_2.17 _getshort F
+GLIBC_2.17 _res_opcodes D 0x80
+GLIBC_2.17 _sethtent F
+GLIBC_2.17 inet_net_ntop F
+GLIBC_2.17 inet_net_pton F
+GLIBC_2.17 inet_neta F
+GLIBC_2.17 ns_datetosecs F
+GLIBC_2.17 ns_format_ttl F
+GLIBC_2.17 ns_get16 F
+GLIBC_2.17 ns_get32 F
+GLIBC_2.17 ns_initparse F
+GLIBC_2.17 ns_makecanon F
+GLIBC_2.17 ns_msg_getflag F
+GLIBC_2.17 ns_name_compress F
+GLIBC_2.17 ns_name_ntol F
+GLIBC_2.17 ns_name_ntop F
+GLIBC_2.17 ns_name_pack F
+GLIBC_2.17 ns_name_pton F
+GLIBC_2.17 ns_name_rollback F
+GLIBC_2.17 ns_name_skip F
+GLIBC_2.17 ns_name_uncompress F
+GLIBC_2.17 ns_name_unpack F
+GLIBC_2.17 ns_parse_ttl F
+GLIBC_2.17 ns_parserr F
+GLIBC_2.17 ns_put16 F
+GLIBC_2.17 ns_put32 F
+GLIBC_2.17 ns_samedomain F
+GLIBC_2.17 ns_samename F
+GLIBC_2.17 ns_skiprr F
+GLIBC_2.17 ns_sprintrr F
+GLIBC_2.17 ns_sprintrrf F
+GLIBC_2.17 ns_subdomain F
+GLIBC_2.17 res_gethostbyaddr F
+GLIBC_2.17 res_gethostbyname F
+GLIBC_2.17 res_gethostbyname2 F
+GLIBC_2.17 res_send_setqhook F
+GLIBC_2.17 res_send_setrhook F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/librt.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/librt.abilist
new file mode 100644
index 0000000000..523d22249a
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/librt.abilist
@@ -0,0 +1,36 @@
+GLIBC_2.17 GLIBC_2.17 A
+GLIBC_2.17 __mq_open_2 F
+GLIBC_2.17 aio_cancel F
+GLIBC_2.17 aio_cancel64 F
+GLIBC_2.17 aio_error F
+GLIBC_2.17 aio_error64 F
+GLIBC_2.17 aio_fsync F
+GLIBC_2.17 aio_fsync64 F
+GLIBC_2.17 aio_init F
+GLIBC_2.17 aio_read F
+GLIBC_2.17 aio_read64 F
+GLIBC_2.17 aio_return F
+GLIBC_2.17 aio_return64 F
+GLIBC_2.17 aio_suspend F
+GLIBC_2.17 aio_suspend64 F
+GLIBC_2.17 aio_write F
+GLIBC_2.17 aio_write64 F
+GLIBC_2.17 lio_listio F
+GLIBC_2.17 lio_listio64 F
+GLIBC_2.17 mq_close F
+GLIBC_2.17 mq_getattr F
+GLIBC_2.17 mq_notify F
+GLIBC_2.17 mq_open F
+GLIBC_2.17 mq_receive F
+GLIBC_2.17 mq_send F
+GLIBC_2.17 mq_setattr F
+GLIBC_2.17 mq_timedreceive F
+GLIBC_2.17 mq_timedsend F
+GLIBC_2.17 mq_unlink F
+GLIBC_2.17 shm_open F
+GLIBC_2.17 shm_unlink F
+GLIBC_2.17 timer_create F
+GLIBC_2.17 timer_delete F
+GLIBC_2.17 timer_getoverrun F
+GLIBC_2.17 timer_gettime F
+GLIBC_2.17 timer_settime F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/libthread_db.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/libthread_db.abilist
new file mode 100644
index 0000000000..3e382bf79d
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/libthread_db.abilist
@@ -0,0 +1,41 @@
+GLIBC_2.17 GLIBC_2.17 A
+GLIBC_2.17 td_init F
+GLIBC_2.17 td_log F
+GLIBC_2.17 td_symbol_list F
+GLIBC_2.17 td_ta_clear_event F
+GLIBC_2.17 td_ta_delete F
+GLIBC_2.17 td_ta_enable_stats F
+GLIBC_2.17 td_ta_event_addr F
+GLIBC_2.17 td_ta_event_getmsg F
+GLIBC_2.17 td_ta_get_nthreads F
+GLIBC_2.17 td_ta_get_ph F
+GLIBC_2.17 td_ta_get_stats F
+GLIBC_2.17 td_ta_map_id2thr F
+GLIBC_2.17 td_ta_map_lwp2thr F
+GLIBC_2.17 td_ta_new F
+GLIBC_2.17 td_ta_reset_stats F
+GLIBC_2.17 td_ta_set_event F
+GLIBC_2.17 td_ta_setconcurrency F
+GLIBC_2.17 td_ta_thr_iter F
+GLIBC_2.17 td_ta_tsd_iter F
+GLIBC_2.17 td_thr_clear_event F
+GLIBC_2.17 td_thr_dbresume F
+GLIBC_2.17 td_thr_dbsuspend F
+GLIBC_2.17 td_thr_event_enable F
+GLIBC_2.17 td_thr_event_getmsg F
+GLIBC_2.17 td_thr_get_info F
+GLIBC_2.17 td_thr_getfpregs F
+GLIBC_2.17 td_thr_getgregs F
+GLIBC_2.17 td_thr_getxregs F
+GLIBC_2.17 td_thr_getxregsize F
+GLIBC_2.17 td_thr_set_event F
+GLIBC_2.17 td_thr_setfpregs F
+GLIBC_2.17 td_thr_setgregs F
+GLIBC_2.17 td_thr_setprio F
+GLIBC_2.17 td_thr_setsigpending F
+GLIBC_2.17 td_thr_setxregs F
+GLIBC_2.17 td_thr_sigsetmask F
+GLIBC_2.17 td_thr_tls_get_addr F
+GLIBC_2.17 td_thr_tlsbase F
+GLIBC_2.17 td_thr_tsd F
+GLIBC_2.17 td_thr_validate F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/libutil.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/libutil.abilist
new file mode 100644
index 0000000000..9c075bc0bd
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/libutil.abilist
@@ -0,0 +1,7 @@
+GLIBC_2.17 GLIBC_2.17 A
+GLIBC_2.17 forkpty F
+GLIBC_2.17 login F
+GLIBC_2.17 login_tty F
+GLIBC_2.17 logout F
+GLIBC_2.17 logwtmp F
+GLIBC_2.17 openpty F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/localplt.data b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/localplt.data
new file mode 100644
index 0000000000..bb18ff9bb2
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/localplt.data
@@ -0,0 +1,20 @@
+# See scripts/check-localplt.awk for how this file is processed.
+# PLT use is required for the malloc family and for matherr because
+# users can define their own functions and have library internals call them.
+libc.so: calloc
+libc.so: free
+libc.so: malloc
+libc.so: memalign
+libc.so: realloc
+libm.so: matherr
+# The dynamic loader needs __tls_get_addr for TLS.
+ld.so: __tls_get_addr
+# The main malloc is interposed into the dynamic linker, for
+# allocations after the initial link (when dlopen is used).
+ld.so: malloc
+ld.so: calloc
+ld.so: realloc
+ld.so: free
+# The TLS-enabled version of these functions is interposed from libc.so.
+ld.so: _dl_signal_error
+ld.so: _dl_catch_error
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/makecontext.c b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/makecontext.c
new file mode 100644
index 0000000000..f510f48e9f
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/makecontext.c
@@ -0,0 +1,74 @@
+/* Create new context.
+ Copyright (C) 2002-2017 Free Software Foundation, Inc.
+
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#include <stdarg.h>
+#include <stdint.h>
+#include <ucontext.h>
+
+
+/* makecontext sets up a stack and the registers for the
+ user context. The stack looks like this:
+
+ +-----------------------+
+ | padding as required |
+ +-----------------------+
+ sp -> | parameter 7-n |
+ +-----------------------+
+
+ The registers are set up like this:
+ %x0 .. %x7: parameter 1 to 8
+ %x19 : uc_link
+ %sp : stack pointer.
+*/
+
+void
+__makecontext (ucontext_t *ucp, void (*func) (void), int argc, ...)
+{
+ extern void __startcontext (void);
+ unsigned long int *sp;
+ va_list ap;
+ int i;
+
+ sp = (unsigned long int *)
+ ((uintptr_t) ucp->uc_stack.ss_sp + ucp->uc_stack.ss_size);
+
+ /* Allocate stack arguments. */
+ sp -= argc < 8 ? 0 : argc - 8;
+
+ /* Keep the stack aligned. */
+ sp = (unsigned long int *) (((uintptr_t) sp) & -16L);
+
+ ucp->uc_mcontext.regs[19] = (uintptr_t) ucp->uc_link;
+ ucp->uc_mcontext.sp = (uintptr_t) sp;
+ ucp->uc_mcontext.pc = (uintptr_t) func;
+ ucp->uc_mcontext.regs[29] = (uintptr_t) 0;
+ ucp->uc_mcontext.regs[30] = (uintptr_t) &__startcontext;
+
+ va_start (ap, argc);
+ for (i = 0; i < argc; ++i)
+ if (i < 8)
+ ucp->uc_mcontext.regs[i] = va_arg (ap, unsigned long int);
+ else
+ sp[i - 8] = va_arg (ap, unsigned long int);
+
+ va_end (ap);
+}
+
+weak_alias (__makecontext, makecontext)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/profil-counter.h b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/profil-counter.h
new file mode 100644
index 0000000000..e7262cd1d5
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/profil-counter.h
@@ -0,0 +1,20 @@
+/* Copyright (C) 2009-2017 Free Software Foundation, Inc.
+
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation; either version 2.1 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+/* We can use the ix86 version. */
+#include <sysdeps/unix/sysv/linux/i386/profil-counter.h>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/pt-vfork.c b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/pt-vfork.c
new file mode 100644
index 0000000000..abafb7ce73
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/pt-vfork.c
@@ -0,0 +1,54 @@
+/* vfork ABI-compatibility entry points for libpthread.
+ Copyright (C) 2014-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <shlib-compat.h>
+
+/* libpthread used to have its own vfork implementation that differed
+ from libc's only in having a pointless micro-optimization. There
+ is no longer any use to having a separate copy in libpthread, but
+ the historical ABI requires it. For static linking, there is no
+ need to provide anything here--the libc version will be linked in.
+ For shared library ABI compatibility, there must be __vfork and
+ vfork symbols in libpthread.so. */
+
+#if HAVE_IFUNC
+# include <nptl/pt-vfork.c>
+#elif (SHLIB_COMPAT (libpthread, GLIBC_2_0, GLIBC_2_20) \
+ || SHLIB_COMPAT (libpthread, GLIBC_2_1_2, GLIBC_2_20))
+
+/* Thankfully, on AArch64 we can rely on the compiler generating
+ a tail call here. */
+
+extern void __libc_vfork (void);
+
+void
+vfork_compat (void)
+{
+ __libc_vfork ();
+}
+
+# if SHLIB_COMPAT (libpthread, GLIBC_2_0, GLIBC_2_20)
+compat_symbol (libpthread, vfork_compat, vfork, GLIBC_2_0);
+# endif
+
+# if SHLIB_COMPAT (libpthread, GLIBC_2_1_2, GLIBC_2_20)
+strong_alias (vfork_compat, vfork_compat2)
+compat_symbol (libpthread, vfork_compat2, __vfork, GLIBC_2_1_2);
+# endif
+
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/readelflib.c b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/readelflib.c
new file mode 100644
index 0000000000..d932ff8021
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/readelflib.c
@@ -0,0 +1,18 @@
+/* Copyright (C) 2012-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include "../arm/readelflib.c"
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/setcontext.S b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/setcontext.S
new file mode 100644
index 0000000000..3a82926ad3
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/setcontext.S
@@ -0,0 +1,130 @@
+/* Set current context.
+
+ Copyright (C) 2009-2017 Free Software Foundation, Inc.
+
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation; either version 2.1 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#include "ucontext_i.h"
+#include "ucontext-internal.h"
+
+/* int __setcontext (const ucontext_t *ucp)
+
+ Restores the machine context in UCP and thereby resumes execution
+ in that context.
+
+ This implementation is intended to be used for *synchronous* context
+ switches only. Therefore, it does not have to restore anything
+ other than the PRESERVED state. */
+
+ .text
+
+ENTRY (__setcontext)
+ DELOUSE (0)
+ /* Save a copy of UCP. */
+ mov x9, x0
+
+ /* Set the signal mask with
+ rt_sigprocmask (SIG_SETMASK, mask, NULL, _NSIG/8). */
+ mov x0, #SIG_SETMASK
+ add x1, x9, #UCONTEXT_SIGMASK
+ mov x2, #0
+ mov x3, #_NSIG8
+ mov x8, SYS_ify (rt_sigprocmask)
+ svc 0
+ cbz x0, 1f
+ b C_SYMBOL_NAME (__syscall_error)
+1:
+ /* Restore the general purpose registers. */
+ mov x0, x9
+ cfi_def_cfa (x0, 0)
+ cfi_offset (x18, oX0 + 18 * SZREG)
+ cfi_offset (x19, oX0 + 19 * SZREG)
+ cfi_offset (x20, oX0 + 20 * SZREG)
+ cfi_offset (x21, oX0 + 21 * SZREG)
+ cfi_offset (x22, oX0 + 22 * SZREG)
+ cfi_offset (x23, oX0 + 23 * SZREG)
+ cfi_offset (x24, oX0 + 24 * SZREG)
+ cfi_offset (x25, oX0 + 25 * SZREG)
+ cfi_offset (x26, oX0 + 26 * SZREG)
+ cfi_offset (x27, oX0 + 27 * SZREG)
+ cfi_offset (x28, oX0 + 28 * SZREG)
+ cfi_offset (x29, oX0 + 29 * SZREG)
+ cfi_offset (x30, oX0 + 30 * SZREG)
+
+ cfi_offset ( d8, oV0 + 8 * SZVREG)
+ cfi_offset ( d9, oV0 + 9 * SZVREG)
+ cfi_offset (d10, oV0 + 10 * SZVREG)
+ cfi_offset (d11, oV0 + 11 * SZVREG)
+ cfi_offset (d12, oV0 + 12 * SZVREG)
+ cfi_offset (d13, oV0 + 13 * SZVREG)
+ cfi_offset (d14, oV0 + 14 * SZVREG)
+ cfi_offset (d15, oV0 + 15 * SZVREG)
+ ldp x18, x19, [x0, oX0 + 18 * SZREG]
+ ldp x20, x21, [x0, oX0 + 20 * SZREG]
+ ldp x22, x23, [x0, oX0 + 22 * SZREG]
+ ldp x24, x25, [x0, oX0 + 24 * SZREG]
+ ldp x26, x27, [x0, oX0 + 26 * SZREG]
+ ldp x28, x29, [x0, oX0 + 28 * SZREG]
+ ldr x30, [x0, oX0 + 30 * SZREG]
+ ldr x2, [x0, oSP]
+ mov sp, x2
+
+ /* Check for FP SIMD context. We don't support restoring
+ contexts created by the kernel, so this context must have
+ been created by getcontext. Hence we can rely on the
+ first extension block being the FP SIMD context. */
+ add x2, x0, #oEXTENSION
+
+ mov w3, #(FPSIMD_MAGIC & 0xffff)
+ movk w3, #(FPSIMD_MAGIC >> 16), lsl #16
+ ldr w1, [x2, #oHEAD + oMAGIC]
+ cmp w1, w3
+ b.ne 2f
+
+ /* Restore the FP SIMD context. */
+ add x3, x2, #oV0 + 8 * SZVREG
+ ldp q8, q9, [x3], #2 * SZVREG
+ ldp q10, q11, [x3], #2 * SZVREG
+ ldp q12, q13, [x3], #2 * SZVREG
+ ldp q14, q15, [x3], #2 * SZVREG
+
+ add x3, x2, oFPSR
+
+ ldr w4, [x3]
+ msr fpsr, x4
+
+ ldr w4, [x3, oFPCR - oFPSR]
+ msr fpcr, x4
+
+2:
+ ldr x16, [x0, oPC]
+ /* Restore arg registers. */
+ ldp x2, x3, [x0, oX0 + 2 * SZREG]
+ ldp x4, x5, [x0, oX0 + 4 * SZREG]
+ ldp x6, x7, [x0, oX0 + 6 * SZREG]
+ ldp x0, x1, [x0, oX0 + 0 * SZREG]
+ /* Jump to the new pc value. */
+ br x16
+PSEUDO_END (__setcontext)
+weak_alias (__setcontext, setcontext)
+
+ENTRY (__startcontext)
+ mov x0, x19
+ cbnz x0, __setcontext
+1: b HIDDEN_JUMPTARGET (exit)
+END (__startcontext)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/shlib-versions b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/shlib-versions
new file mode 100644
index 0000000000..e1768a7361
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/shlib-versions
@@ -0,0 +1,7 @@
+DEFAULT GLIBC_2.17
+
+%ifdef HAVE_AARCH64_BE
+ld=ld-linux-aarch64_be.so.1
+%else
+ld=ld-linux-aarch64.so.1
+%endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/sigaction.c b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/sigaction.c
new file mode 100644
index 0000000000..7cbb056367
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/sigaction.c
@@ -0,0 +1,70 @@
+/* Copyright (C) 1997-2017 Free Software Foundation, Inc.
+
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation; either version 2.1 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <signal.h>
+#include <string.h>
+
+#include <sysdep.h>
+#include <sys/syscall.h>
+
+#define SA_RESTORER 0x04000000
+
+/* The difference here is that the sigaction structure used in the
+ kernel is not the same as we use in the libc. Therefore we must
+ translate it here. */
+#include <kernel_sigaction.h>
+
+int
+__libc_sigaction (int sig, const struct sigaction *act, struct sigaction *oact)
+{
+ int result;
+ struct kernel_sigaction kact;
+ struct kernel_sigaction koact;
+
+ if (act)
+ {
+ kact.k_sa_handler = act->sa_handler;
+ memcpy (&kact.sa_mask, &act->sa_mask, sizeof (sigset_t));
+ kact.sa_flags = act->sa_flags;
+#ifdef HAVE_SA_RESTORER
+ if (kact.sa_flags & SA_RESTORER)
+ kact.sa_restorer = act->sa_restorer;
+#endif
+ }
+
+ result = INLINE_SYSCALL (rt_sigaction, 4, sig,
+ act ? &kact : NULL,
+ oact ? &koact : NULL, _NSIG / 8);
+ if (result >= 0 || errno != ENOSYS)
+ {
+ if (oact && result >= 0)
+ {
+ oact->sa_handler = koact.k_sa_handler;
+ memcpy (&oact->sa_mask, &koact.sa_mask, sizeof (sigset_t));
+ oact->sa_flags = koact.sa_flags;
+#ifdef HAVE_SA_RESTORER
+ oact->sa_restorer = koact.sa_restorer;
+#endif
+ }
+ }
+ return result;
+}
+libc_hidden_def (__libc_sigaction)
+
+#include <nptl/sigaction.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/sigcontextinfo.h b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/sigcontextinfo.h
new file mode 100644
index 0000000000..b28ad5bdcd
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/sigcontextinfo.h
@@ -0,0 +1,35 @@
+/* AArch64 definitions for signal handling calling conventions.
+ Copyright (C) 1996-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <stdint.h>
+#include <sys/ucontext.h>
+
+#define SIGCONTEXT siginfo_t *_si, struct ucontext *
+#define GET_PC(ctx) ((void *) (uintptr_t) (ctx)->uc_mcontext.pc)
+
+/* There is no reliable way to get the sigcontext unless we use a
+ three-argument signal handler. */
+#define __sigaction(sig, act, oact) ({ \
+ (act)->sa_flags |= SA_SIGINFO; \
+ (__sigaction) (sig, act, oact); \
+})
+
+#define sigaction(sig, act, oact) ({ \
+ (act)->sa_flags |= SA_SIGINFO; \
+ (sigaction) (sig, act, oact); \
+})
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/swapcontext.S b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/swapcontext.S
new file mode 100644
index 0000000000..429c179354
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/swapcontext.S
@@ -0,0 +1,101 @@
+/* Modify saved context.
+
+ Copyright (C) 2009-2017 Free Software Foundation, Inc.
+
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation; either version 2.1 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+
+#include "ucontext_i.h"
+#include "ucontext-internal.h"
+
+/* int swapcontext (ucontext_t *oucp, const ucontext_t *ucp) */
+
+ .text
+ENTRY(__swapcontext)
+ DELOUSE (0)
+ /* Set the value returned when swapcontext() returns in this context. */
+ str xzr, [x0, oX0 + 0 * SZREG]
+
+ stp x18, x19, [x0, oX0 + 18 * SZREG]
+ stp x20, x21, [x0, oX0 + 20 * SZREG]
+ stp x22, x23, [x0, oX0 + 22 * SZREG]
+ stp x24, x25, [x0, oX0 + 24 * SZREG]
+ stp x26, x27, [x0, oX0 + 26 * SZREG]
+ stp x28, x29, [x0, oX0 + 28 * SZREG]
+ str x30, [x0, oX0 + 30 * SZREG]
+ str x30, [x0, oPC]
+ mov x2, sp
+ str x2, [x0, oSP]
+
+ /* Figure out where to place the first context extension
+ block. */
+ add x2, x0, #oEXTENSION
+
+ /* Write the context extension fpsimd header. */
+ mov w3, #(FPSIMD_MAGIC & 0xffff)
+ movk w3, #(FPSIMD_MAGIC >> 16), lsl #16
+ str w3, [x2, #oHEAD + oMAGIC]
+ mov w3, #FPSIMD_CONTEXT_SIZE
+ str w3, [x2, #oHEAD + oSIZE]
+
+ /* Fill in the FP SIMD context. */
+ add x3, x2, #oV0 + 8 * SZVREG
+ stp q8, q9, [x3], #2 * SZVREG
+ stp q10, q11, [x3], #2 * SZVREG
+ stp q12, q13, [x3], #2 * SZVREG
+ stp q14, q15, [x3], #2 * SZVREG
+
+ add x3, x2, #oFPSR
+
+ mrs x4, fpsr
+ str w4, [x3, #oFPSR - oFPSR]
+
+ mrs x4, fpcr
+ str w4, [x3, #oFPCR - oFPSR]
+
+ /* Write the termination context extension header. */
+ add x2, x2, #FPSIMD_CONTEXT_SIZE
+
+ str xzr, [x2, #oHEAD + oMAGIC]
+ str xzr, [x2, #oHEAD + oSIZE]
+
+ /* Preserve ucp. */
+ mov x21, x1
+
+ /* rt_sigprocmask (SIG_SETMASK, &ucp->uc_sigmask, &oucp->uc_sigmask,
+ _NSIG8) */
+ /* Grab the signal mask */
+ /* rt_sigprocmask (SIG_BLOCK, NULL, &ucp->uc_sigmask, _NSIG8) */
+ add x2, x0, #UCONTEXT_SIGMASK
+ mov x0, SIG_BLOCK
+ mov x1, 0
+ mov x3, _NSIG8
+ mov x8, SYS_ify (rt_sigprocmask)
+ svc 0
+ cbnz x0, 1f
+
+ mov x22, x30
+ mov x0, x21
+ bl JUMPTARGET (__setcontext)
+ mov x30, x22
+ RET
+
+1:
+ b C_SYMBOL_NAME(__syscall_error)
+PSEUDO_END (__swapcontext)
+weak_alias (__swapcontext, swapcontext)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/sys/elf.h b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/sys/elf.h
new file mode 100644
index 0000000000..1c7447440c
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/sys/elf.h
@@ -0,0 +1,26 @@
+/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
+
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_ELF_H
+#define _SYS_ELF_H 1
+
+#warning "This header is obsolete; use <sys/procfs.h> instead."
+
+#include <sys/procfs.h>
+
+#endif /* sys/elf.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/sys/procfs.h b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/sys/procfs.h
new file mode 100644
index 0000000000..7a7b1d0742
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/sys/procfs.h
@@ -0,0 +1,123 @@
+/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
+
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_PROCFS_H
+#define _SYS_PROCFS_H 1
+
+/* This is somewhat modelled after the file of the same name on SVR4
+ systems. It provides a definition of the core file format for ELF
+ used on Linux. It doesn't have anything to do with the /proc file
+ system, even though Linux has one.
+
+ Anyway, the whole purpose of this file is for GDB and GDB only.
+ Don't read too much into it. Don't use it for anything other than
+ GDB unless you know what you are doing. */
+
+#include <features.h>
+#include <sys/time.h>
+#include <sys/types.h>
+#include <sys/user.h>
+
+__BEGIN_DECLS
+
+/* Type for a general-purpose register. */
+typedef unsigned long elf_greg_t;
+
+/* And the whole bunch of them. We could have used `struct
+ pt_regs' directly in the typedef, but tradition says that
+ the register set is an array, which does have some peculiar
+ semantics, so leave it that way. */
+#define ELF_NGREG (sizeof (struct user_regs_struct) / sizeof(elf_greg_t))
+typedef elf_greg_t elf_gregset_t[ELF_NGREG];
+
+/* Register set for the floating-point registers. */
+typedef struct user_fpsimd_struct elf_fpregset_t;
+
+/* Signal info. */
+struct elf_siginfo
+ {
+ int si_signo; /* Signal number. */
+ int si_code; /* Extra code. */
+ int si_errno; /* Errno. */
+ };
+
+/* Definitions to generate Intel SVR4-like core files. These mostly
+ have the same names as the SVR4 types with "elf_" tacked on the
+ front to prevent clashes with Linux definitions, and the typedef
+ forms have been avoided. This is mostly like the SVR4 structure,
+ but more Linuxy, with things that Linux does not support and which
+ GDB doesn't really use excluded. */
+
+struct elf_prstatus
+ {
+ struct elf_siginfo pr_info; /* Info associated with signal. */
+ short int pr_cursig; /* Current signal. */
+ unsigned long int pr_sigpend; /* Set of pending signals. */
+ unsigned long int pr_sighold; /* Set of held signals. */
+ __pid_t pr_pid;
+ __pid_t pr_ppid;
+ __pid_t pr_pgrp;
+ __pid_t pr_sid;
+ struct timeval pr_utime; /* User time. */
+ struct timeval pr_stime; /* System time. */
+ struct timeval pr_cutime; /* Cumulative user time. */
+ struct timeval pr_cstime; /* Cumulative system time. */
+ elf_gregset_t pr_reg; /* GP registers. */
+ int pr_fpvalid; /* True if math copro being used. */
+ };
+
+
+#define ELF_PRARGSZ (80) /* Number of chars for args. */
+
+struct elf_prpsinfo
+ {
+ char pr_state; /* Numeric process state. */
+ char pr_sname; /* Char for pr_state. */
+ char pr_zomb; /* Zombie. */
+ char pr_nice; /* Nice val. */
+ unsigned long int pr_flag; /* Flags. */
+ unsigned int pr_uid;
+ unsigned int pr_gid;
+ int pr_pid, pr_ppid, pr_pgrp, pr_sid;
+ /* Lots missing */
+ char pr_fname[16]; /* Filename of executable. */
+ char pr_psargs[ELF_PRARGSZ]; /* Initial part of arg list. */
+ };
+
+/* The rest of this file provides the types for emulation of the
+ Solaris <proc_service.h> interfaces that should be implemented by
+ users of libthread_db. */
+
+/* Addresses. */
+typedef void *psaddr_t;
+
+/* Register sets. Linux has different names. */
+typedef elf_gregset_t prgregset_t;
+typedef elf_fpregset_t prfpregset_t;
+
+/* We don't have any differences between processes and threads,
+ therefore have only one PID type. */
+typedef __pid_t lwpid_t;
+
+/* Process status and info. In the end we do provide typedefs for them. */
+typedef struct elf_prstatus prstatus_t;
+typedef struct elf_prpsinfo prpsinfo_t;
+
+__END_DECLS
+
+#endif /* sys/procfs.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/sys/ptrace.h b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/sys/ptrace.h
new file mode 100644
index 0000000000..c8ca9e398e
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/sys/ptrace.h
@@ -0,0 +1,207 @@
+/* `ptrace' debugger support interface. Linux version.
+ Copyright (C) 1996-2017 Free Software Foundation, Inc.
+
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_PTRACE_H
+#define _SYS_PTRACE_H 1
+
+#include <features.h>
+#include <bits/types.h>
+
+__BEGIN_DECLS
+
+/* Type of the REQUEST argument to `ptrace.' */
+enum __ptrace_request
+{
+ /* Indicate that the process making this request should be traced.
+ All signals received by this process can be intercepted by its
+ parent, and its parent can use the other `ptrace' requests. */
+ PTRACE_TRACEME = 0,
+#define PT_TRACE_ME PTRACE_TRACEME
+
+ /* Return the word in the process's text space at address ADDR. */
+ PTRACE_PEEKTEXT = 1,
+#define PT_READ_I PTRACE_PEEKTEXT
+
+ /* Return the word in the process's data space at address ADDR. */
+ PTRACE_PEEKDATA = 2,
+#define PT_READ_D PTRACE_PEEKDATA
+
+ /* Return the word in the process's user area at offset ADDR. */
+ PTRACE_PEEKUSER = 3,
+#define PT_READ_U PTRACE_PEEKUSER
+
+ /* Write the word DATA into the process's text space at address ADDR. */
+ PTRACE_POKETEXT = 4,
+#define PT_WRITE_I PTRACE_POKETEXT
+
+ /* Write the word DATA into the process's data space at address ADDR. */
+ PTRACE_POKEDATA = 5,
+#define PT_WRITE_D PTRACE_POKEDATA
+
+ /* Write the word DATA into the process's user area at offset ADDR. */
+ PTRACE_POKEUSER = 6,
+#define PT_WRITE_U PTRACE_POKEUSER
+
+ /* Continue the process. */
+ PTRACE_CONT = 7,
+#define PT_CONTINUE PTRACE_CONT
+
+ /* Kill the process. */
+ PTRACE_KILL = 8,
+#define PT_KILL PTRACE_KILL
+
+ /* Single step the process. */
+ PTRACE_SINGLESTEP = 9,
+#define PT_STEP PTRACE_SINGLESTEP
+
+ /* Attach to a process that is already running. */
+ PTRACE_ATTACH = 16,
+#define PT_ATTACH PTRACE_ATTACH
+
+ /* Detach from a process attached to with PTRACE_ATTACH. */
+ PTRACE_DETACH = 17,
+#define PT_DETACH PTRACE_DETACH
+
+ PTRACE_GET_THREAD_AREA = 22,
+
+ /* Continue and stop at the next (return from) syscall. */
+ PTRACE_SYSCALL = 24,
+#define PT_SYSCALL PTRACE_SYSCALL
+
+ /* Get all hardware breakpoint registers. */
+ PTRACE_GETHBPREGS = 29,
+
+ /* Set all hardware breakpoint registers. */
+ PTRACE_SETHBPREGS = 30,
+
+ /* Set ptrace filter options. */
+ PTRACE_SETOPTIONS = 0x4200,
+#define PT_SETOPTIONS PTRACE_SETOPTIONS
+
+ /* Get last ptrace message. */
+ PTRACE_GETEVENTMSG = 0x4201,
+#define PT_GETEVENTMSG PTRACE_GETEVENTMSG
+
+ /* Get siginfo for process. */
+ PTRACE_GETSIGINFO = 0x4202,
+#define PT_GETSIGINFO PTRACE_GETSIGINFO
+
+ /* Set new siginfo for process. */
+ PTRACE_SETSIGINFO = 0x4203,
+#define PT_SETSIGINFO PTRACE_SETSIGINFO
+
+ /* Get register content. */
+ PTRACE_GETREGSET = 0x4204,
+#define PTRACE_GETREGSET PTRACE_GETREGSET
+
+ /* Set register content. */
+ PTRACE_SETREGSET = 0x4205,
+#define PTRACE_SETREGSET PTRACE_SETREGSET
+
+ /* Like PTRACE_ATTACH, but do not force tracee to trap and do not affect
+ signal or group stop state. */
+ PTRACE_SEIZE = 0x4206,
+#define PTRACE_SEIZE PTRACE_SEIZE
+
+ /* Trap seized trace. */
+ PTRACE_INTERRUPT = 0x4207,
+#define PTRACE_INTERRUPT PTRACE_INTERRUPT
+
+ /* Wait for next group event. */
+ PTRACE_LISTEN = 0x4208,
+#define PTRACE_LISTEN PTRACE_LISTEN
+
+ PTRACE_PEEKSIGINFO = 0x4209,
+#define PTRACE_PEEKSIGINFO PTRACE_PEEKSIGINFO
+
+ PTRACE_GETSIGMASK = 0x420a,
+#define PTRACE_GETSIGMASK PTRACE_GETSIGMASK
+
+ PTRACE_SETSIGMASK = 0x420b,
+#define PTRACE_SETSIGMASK PTRACE_SETSIGMASK
+
+ PTRACE_SECCOMP_GET_FILTER = 0x420c
+#define PTRACE_SECCOMP_GET_FILTER PTRACE_SECCOMP_GET_FILTER
+};
+
+
+/* Flag for PTRACE_LISTEN. */
+enum __ptrace_flags
+{
+ PTRACE_SEIZE_DEVEL = 0x80000000
+};
+
+/* Options set using PTRACE_SETOPTIONS. */
+enum __ptrace_setoptions
+{
+ PTRACE_O_TRACESYSGOOD = 0x00000001,
+ PTRACE_O_TRACEFORK = 0x00000002,
+ PTRACE_O_TRACEVFORK = 0x00000004,
+ PTRACE_O_TRACECLONE = 0x00000008,
+ PTRACE_O_TRACEEXEC = 0x00000010,
+ PTRACE_O_TRACEVFORKDONE = 0x00000020,
+ PTRACE_O_TRACEEXIT = 0x00000040,
+ PTRACE_O_TRACESECCOMP = 0x00000080,
+ PTRACE_O_EXITKILL = 0x00100000,
+ PTRACE_O_SUSPEND_SECCOMP = 0x00200000,
+ PTRACE_O_MASK = 0x003000ff
+};
+
+enum __ptrace_eventcodes
+{
+/* Wait extended result codes for the above trace options. */
+ PTRACE_EVENT_FORK = 1,
+ PTRACE_EVENT_VFORK = 2,
+ PTRACE_EVENT_CLONE = 3,
+ PTRACE_EVENT_EXEC = 4,
+ PTRACE_EVENT_VFORK_DONE = 5,
+ PTRACE_EVENT_EXIT = 6,
+ PTRACE_EVENT_SECCOMP = 7,
+/* Extended result codes enabled by means other than options. */
+ PTRACE_EVENT_STOP = 128
+};
+
+/* Arguments for PTRACE_PEEKSIGINFO. */
+struct __ptrace_peeksiginfo_args
+{
+ __uint64_t off; /* From which siginfo to start. */
+ __uint32_t flags; /* Flags for peeksiginfo. */
+ __int32_t nr; /* How many siginfos to take. */
+};
+
+enum __ptrace_peeksiginfo_flags
+{
+ /* Read signals from a shared (process wide) queue. */
+ PTRACE_PEEKSIGINFO_SHARED = (1 << 0)
+};
+
+/* Perform process tracing functions. REQUEST is one of the values
+ above, and determines the action to be taken.
+ For all requests except PTRACE_TRACEME, PID specifies the process to be
+ traced.
+
+ PID and the other arguments described above for the various requests should
+ appear (those that are used for the particular request) as:
+ pid_t PID, void *ADDR, int DATA, void *ADDR2
+ after REQUEST. */
+extern long int ptrace (enum __ptrace_request __request, ...) __THROW;
+
+__END_DECLS
+
+#endif /* _SYS_PTRACE_H */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/sys/ucontext.h b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/sys/ucontext.h
new file mode 100644
index 0000000000..16c7acf221
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/sys/ucontext.h
@@ -0,0 +1,59 @@
+/* Copyright (C) 1998-2017 Free Software Foundation, Inc.
+
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+/* System V/AArch64 ABI compliant context switching support. */
+
+#ifndef _SYS_UCONTEXT_H
+#define _SYS_UCONTEXT_H 1
+
+#include <features.h>
+
+#include <bits/types/sigset_t.h>
+#include <bits/sigcontext.h>
+#include <bits/types/stack_t.h>
+
+#ifdef __USE_MISC
+# include <sys/procfs.h>
+
+
+typedef elf_greg_t greg_t;
+
+/* Container for all general registers. */
+typedef elf_gregset_t gregset_t;
+
+/* Structure to describe FPU registers. */
+typedef elf_fpregset_t fpregset_t;
+#endif
+
+/* Context to describe whole processor state. This only describes
+ the core registers; coprocessor registers get saved elsewhere
+ (e.g. in uc_regspace, or somewhere unspecified on the stack
+ during non-RT signal handlers). */
+typedef struct sigcontext mcontext_t;
+
+/* Userlevel context. */
+typedef struct ucontext
+ {
+ unsigned long uc_flags;
+ struct ucontext *uc_link;
+ stack_t uc_stack;
+ sigset_t uc_sigmask;
+ mcontext_t uc_mcontext;
+ } ucontext_t;
+
+#endif /* sys/ucontext.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/sys/user.h b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/sys/user.h
new file mode 100644
index 0000000000..b003cdb2b6
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/sys/user.h
@@ -0,0 +1,37 @@
+/* Copyright (C) 2009-2017 Free Software Foundation, Inc.
+
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation; either version 2.1 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_USER_H
+#define _SYS_USER_H 1
+
+struct user_regs_struct
+{
+ unsigned long long regs[31];
+ unsigned long long sp;
+ unsigned long long pc;
+ unsigned long long pstate;
+};
+
+struct user_fpsimd_struct
+{
+ __uint128_t vregs[32];
+ unsigned int fpsr;
+ unsigned int fpcr;
+};
+
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/syscall.S b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/syscall.S
new file mode 100644
index 0000000000..d377db45ff
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/syscall.S
@@ -0,0 +1,44 @@
+/* Copyright (C) 2005-2017 Free Software Foundation, Inc.
+
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation; either version 2.1 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+
+/* syscall (int nr, ...)
+
+ AArch64 system calls take between 0 and 7 arguments. On entry here nr
+ is in w0 and any other system call arguments are in register x1..x7.
+
+ For kernel entry we need to move the system call nr to x8 then
+ load the remaining arguments to register. */
+
+ENTRY (syscall)
+ uxtw x8, w0
+ mov x0, x1
+ mov x1, x2
+ mov x2, x3
+ mov x3, x4
+ mov x4, x5
+ mov x5, x6
+ mov x6, x7
+ svc 0x0
+ cmn x0, #4095
+ b.cs 1f
+ RET
+1:
+ b SYSCALL_ERROR
+PSEUDO_END (syscall)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/sysdep-cancel.h b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/sysdep-cancel.h
new file mode 100644
index 0000000000..4be2259878
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/sysdep-cancel.h
@@ -0,0 +1,134 @@
+/* Copyright (C) 2003-2017 Free Software Foundation, Inc.
+
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#include <tls.h>
+#ifndef __ASSEMBLER__
+# include <nptl/pthreadP.h>
+#endif
+
+#if IS_IN (libc) || IS_IN (libpthread) || IS_IN (librt)
+
+# undef PSEUDO
+# define PSEUDO(name, syscall_name, args) \
+ .section ".text"; \
+ENTRY (__##syscall_name##_nocancel); \
+.Lpseudo_nocancel: \
+ DO_CALL (syscall_name, args); \
+.Lpseudo_finish: \
+ cmn x0, 4095; \
+ b.cs .Lsyscall_error; \
+ .subsection 2; \
+ .size __##syscall_name##_nocancel,.-__##syscall_name##_nocancel; \
+ENTRY (name); \
+ SINGLE_THREAD_P(16); \
+ cbz w16, .Lpseudo_nocancel; \
+ /* Setup common stack frame no matter the number of args. \
+ Also save the first arg, since it's basically free. */ \
+ stp x30, x0, [sp, -64]!; \
+ cfi_adjust_cfa_offset (64); \
+ cfi_rel_offset (x30, 0); \
+ DOCARGS_##args; /* save syscall args around CENABLE. */ \
+ CENABLE; \
+ mov x16, x0; /* save mask around syscall. */ \
+ UNDOCARGS_##args; /* restore syscall args. */ \
+ DO_CALL (syscall_name, args); \
+ str x0, [sp, 8]; /* save result around CDISABLE. */ \
+ mov x0, x16; /* restore mask for CDISABLE. */ \
+ CDISABLE; \
+ /* Break down the stack frame, restoring result at once. */ \
+ ldp x30, x0, [sp], 64; \
+ cfi_adjust_cfa_offset (-64); \
+ cfi_restore (x30); \
+ b .Lpseudo_finish; \
+ cfi_endproc; \
+ .size name, .-name; \
+ .previous
+
+# undef PSEUDO_END
+# define PSEUDO_END(name) \
+ SYSCALL_ERROR_HANDLER; \
+ cfi_endproc
+
+# define DOCARGS_0
+# define DOCARGS_1
+# define DOCARGS_2 str x1, [sp, 16]
+# define DOCARGS_3 stp x1, x2, [sp, 16]
+# define DOCARGS_4 DOCARGS_3; str x3, [sp, 32]
+# define DOCARGS_5 DOCARGS_3; stp x3, x4, [sp, 32]
+# define DOCARGS_6 DOCARGS_5; str x5, [sp, 48]
+
+# define UNDOCARGS_0
+# define UNDOCARGS_1 ldr x0, [sp, 8]
+# define UNDOCARGS_2 ldp x0, x1, [sp, 8]
+# define UNDOCARGS_3 UNDOCARGS_1; ldp x1, x2, [sp, 16]
+# define UNDOCARGS_4 UNDOCARGS_2; ldp x2, x3, [sp, 24]
+# define UNDOCARGS_5 UNDOCARGS_3; ldp x3, x4, [sp, 32]
+# define UNDOCARGS_6 UNDOCARGS_4; ldp x4, x5, [sp, 40]
+
+# if IS_IN (libpthread)
+# define CENABLE bl __pthread_enable_asynccancel
+# define CDISABLE bl __pthread_disable_asynccancel
+# define __local_multiple_threads __pthread_multiple_threads
+# elif IS_IN (libc)
+# define CENABLE bl __libc_enable_asynccancel
+# define CDISABLE bl __libc_disable_asynccancel
+# define __local_multiple_threads __libc_multiple_threads
+# elif IS_IN (librt)
+# define CENABLE bl __librt_enable_asynccancel
+# define CDISABLE bl __librt_disable_asynccancel
+# else
+# error Unsupported library
+# endif
+
+# if IS_IN (libpthread) || IS_IN (libc)
+# ifndef __ASSEMBLER__
+extern int __local_multiple_threads attribute_hidden;
+# define SINGLE_THREAD_P __builtin_expect (__local_multiple_threads == 0, 1)
+# else
+# define SINGLE_THREAD_P(R) \
+ adrp x##R, __local_multiple_threads; \
+ ldr w##R, [x##R, :lo12:__local_multiple_threads]
+# endif
+# else
+/* There is no __local_multiple_threads for librt, so use the TCB. */
+# ifndef __ASSEMBLER__
+# define SINGLE_THREAD_P \
+ __builtin_expect (THREAD_GETMEM (THREAD_SELF, \
+ header.multiple_threads) == 0, 1)
+# else
+# define SINGLE_THREAD_P(R) \
+ mrs x##R, tpidr_el0; \
+ sub x##R, x##R, PTHREAD_SIZEOF; \
+ ldr w##R, [x##R, PTHREAD_MULTIPLE_THREADS_OFFSET]
+# endif
+# endif
+
+#elif !defined __ASSEMBLER__
+
+/* For rtld, et cetera. */
+# define SINGLE_THREAD_P 1
+# define NO_CANCELLATION 1
+
+#endif
+
+#ifndef __ASSEMBLER__
+# define RTLD_SINGLE_THREAD_P \
+ __builtin_expect (THREAD_GETMEM (THREAD_SELF, \
+ header.multiple_threads) == 0, 1)
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/sysdep.c b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/sysdep.c
new file mode 100644
index 0000000000..d9c995152f
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/sysdep.c
@@ -0,0 +1,33 @@
+/* Copyright (C) 2011-2017 Free Software Foundation, Inc.
+
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#include <errno.h>
+
+long __syscall_error (long err);
+hidden_proto (__syscall_error)
+
+/* This routine is jumped to by all the syscall handlers, to stash
+ an error number into errno. */
+long
+__syscall_error (long err)
+{
+ __set_errno (- err);
+ return -1;
+}
+hidden_def (__syscall_error)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/sysdep.h b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/sysdep.h
new file mode 100644
index 0000000000..4bb9112d62
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/sysdep.h
@@ -0,0 +1,297 @@
+/* Copyright (C) 2005-2017 Free Software Foundation, Inc.
+
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation; either version 2.1 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _LINUX_AARCH64_SYSDEP_H
+#define _LINUX_AARCH64_SYSDEP_H 1
+
+#include <sysdeps/unix/sysdep.h>
+#include <sysdeps/aarch64/sysdep.h>
+#include <sysdeps/unix/sysv/linux/generic/sysdep.h>
+
+/* Defines RTLD_PRIVATE_ERRNO and USE_DL_SYSINFO. */
+#include <dl-sysdep.h>
+
+#include <tls.h>
+
+/* In order to get __set_errno() definition in INLINE_SYSCALL. */
+#ifndef __ASSEMBLER__
+#include <errno.h>
+#endif
+
+/* For Linux we can use the system call table in the header file
+ /usr/include/asm/unistd.h
+ of the kernel. But these symbols do not follow the SYS_* syntax
+ so we have to redefine the `SYS_ify' macro here. */
+#undef SYS_ify
+#define SYS_ify(syscall_name) (__NR_##syscall_name)
+
+#ifdef __ASSEMBLER__
+
+/* Linux uses a negative return value to indicate syscall errors,
+ unlike most Unices, which use the condition codes' carry flag.
+
+ Since version 2.1 the return value of a system call might be
+ negative even if the call succeeded. E.g., the `lseek' system call
+ might return a large offset. Therefore we must not anymore test
+ for < 0, but test for a real error by making sure the value in R0
+ is a real error number. Linus said he will make sure the no syscall
+ returns a value in -1 .. -4095 as a valid result so we can safely
+ test with -4095. */
+
+# undef PSEUDO
+# define PSEUDO(name, syscall_name, args) \
+ .text; \
+ ENTRY (name); \
+ DO_CALL (syscall_name, args); \
+ cmn x0, #4095; \
+ b.cs .Lsyscall_error;
+
+# undef PSEUDO_END
+# define PSEUDO_END(name) \
+ SYSCALL_ERROR_HANDLER \
+ END (name)
+
+# undef PSEUDO_NOERRNO
+# define PSEUDO_NOERRNO(name, syscall_name, args) \
+ .text; \
+ ENTRY (name); \
+ DO_CALL (syscall_name, args);
+
+# undef PSEUDO_END_NOERRNO
+# define PSEUDO_END_NOERRNO(name) \
+ END (name)
+
+# define ret_NOERRNO ret
+
+/* The function has to return the error code. */
+# undef PSEUDO_ERRVAL
+# define PSEUDO_ERRVAL(name, syscall_name, args) \
+ .text; \
+ ENTRY (name) \
+ DO_CALL (syscall_name, args); \
+ neg x0, x0
+
+# undef PSEUDO_END_ERRVAL
+# define PSEUDO_END_ERRVAL(name) \
+ END (name)
+
+# define ret_ERRVAL ret
+
+# if !IS_IN (libc)
+# define SYSCALL_ERROR .Lsyscall_error
+# if RTLD_PRIVATE_ERRNO
+# define SYSCALL_ERROR_HANDLER \
+.Lsyscall_error: \
+ adrp x1, C_SYMBOL_NAME(rtld_errno); \
+ neg w0, w0; \
+ str w0, [x1, :lo12:C_SYMBOL_NAME(rtld_errno)]; \
+ mov x0, -1; \
+ RET;
+# else
+
+# define SYSCALL_ERROR_HANDLER \
+.Lsyscall_error: \
+ adrp x1, :gottprel:errno; \
+ neg w2, w0; \
+ ldr PTR_REG(1), [x1, :gottprel_lo12:errno]; \
+ mrs x3, tpidr_el0; \
+ mov x0, -1; \
+ str w2, [x1, x3]; \
+ RET;
+# endif
+# else
+# define SYSCALL_ERROR __syscall_error
+# define SYSCALL_ERROR_HANDLER \
+.Lsyscall_error: \
+ b __syscall_error;
+# endif
+
+/* Linux takes system call args in registers:
+ syscall number x8
+ arg 1 x0
+ arg 2 x1
+ arg 3 x2
+ arg 4 x3
+ arg 5 x4
+ arg 6 x5
+ arg 7 x6
+
+ The compiler is going to form a call by coming here, through PSEUDO, with
+ arguments
+ syscall number in the DO_CALL macro
+ arg 1 x0
+ arg 2 x1
+ arg 3 x2
+ arg 4 x3
+ arg 5 x4
+ arg 6 x5
+ arg 7 x6
+
+*/
+
+# undef DO_CALL
+# define DO_CALL(syscall_name, args) \
+ mov x8, SYS_ify (syscall_name); \
+ svc 0
+
+#else /* not __ASSEMBLER__ */
+
+
+/* List of system calls which are supported as vsyscalls. */
+# define HAVE_CLOCK_GETRES_VSYSCALL 1
+# define HAVE_CLOCK_GETTIME_VSYSCALL 1
+# define HAVE_GETTIMEOFDAY_VSYSCALL 1
+
+/* Previously AArch64 used the generic version without the libc_hidden_def
+ which lead in a non existent __send symbol in libc.so. */
+# undef HAVE_INTERNAL_SEND_SYMBOL
+
+/* Define a macro which expands into the inline wrapper code for a system
+ call. */
+# undef INLINE_SYSCALL
+# define INLINE_SYSCALL(name, nr, args...) \
+ ({ unsigned long _sys_result = INTERNAL_SYSCALL (name, , nr, args); \
+ if (__builtin_expect (INTERNAL_SYSCALL_ERROR_P (_sys_result, ), 0))\
+ { \
+ __set_errno (INTERNAL_SYSCALL_ERRNO (_sys_result, )); \
+ _sys_result = (unsigned long) -1; \
+ } \
+ (long) _sys_result; })
+
+# undef INTERNAL_SYSCALL_DECL
+# define INTERNAL_SYSCALL_DECL(err) do { } while (0)
+
+# undef INTERNAL_SYSCALL_RAW
+# define INTERNAL_SYSCALL_RAW(name, err, nr, args...) \
+ ({ long _sys_result; \
+ { \
+ LOAD_ARGS_##nr (args) \
+ register long _x8 asm ("x8") = (name); \
+ asm volatile ("svc 0 // syscall " # name \
+ : "=r" (_x0) : "r"(_x8) ASM_ARGS_##nr : "memory"); \
+ _sys_result = _x0; \
+ } \
+ _sys_result; })
+
+# undef INTERNAL_SYSCALL
+# define INTERNAL_SYSCALL(name, err, nr, args...) \
+ INTERNAL_SYSCALL_RAW(SYS_ify(name), err, nr, args)
+
+# undef INTERNAL_SYSCALL_AARCH64
+# define INTERNAL_SYSCALL_AARCH64(name, err, nr, args...) \
+ INTERNAL_SYSCALL_RAW(__ARM_NR_##name, err, nr, args)
+
+# undef INTERNAL_SYSCALL_ERROR_P
+# define INTERNAL_SYSCALL_ERROR_P(val, err) \
+ ((unsigned long) (val) >= (unsigned long) -4095)
+
+# undef INTERNAL_SYSCALL_ERRNO
+# define INTERNAL_SYSCALL_ERRNO(val, err) (-(val))
+
+# define LOAD_ARGS_0() \
+ register long _x0 asm ("x0");
+# define LOAD_ARGS_1(x0) \
+ long _x0tmp = (long) (x0); \
+ LOAD_ARGS_0 () \
+ _x0 = _x0tmp;
+# define LOAD_ARGS_2(x0, x1) \
+ long _x1tmp = (long) (x1); \
+ LOAD_ARGS_1 (x0) \
+ register long _x1 asm ("x1") = _x1tmp;
+# define LOAD_ARGS_3(x0, x1, x2) \
+ long _x2tmp = (long) (x2); \
+ LOAD_ARGS_2 (x0, x1) \
+ register long _x2 asm ("x2") = _x2tmp;
+# define LOAD_ARGS_4(x0, x1, x2, x3) \
+ long _x3tmp = (long) (x3); \
+ LOAD_ARGS_3 (x0, x1, x2) \
+ register long _x3 asm ("x3") = _x3tmp;
+# define LOAD_ARGS_5(x0, x1, x2, x3, x4) \
+ long _x4tmp = (long) (x4); \
+ LOAD_ARGS_4 (x0, x1, x2, x3) \
+ register long _x4 asm ("x4") = _x4tmp;
+# define LOAD_ARGS_6(x0, x1, x2, x3, x4, x5) \
+ long _x5tmp = (long) (x5); \
+ LOAD_ARGS_5 (x0, x1, x2, x3, x4) \
+ register long _x5 asm ("x5") = _x5tmp;
+# define LOAD_ARGS_7(x0, x1, x2, x3, x4, x5, x6)\
+ long _x6tmp = (long) (x6); \
+ LOAD_ARGS_6 (x0, x1, x2, x3, x4, x5) \
+ register long _x6 asm ("x6") = _x6tmp;
+
+# define ASM_ARGS_0
+# define ASM_ARGS_1 , "r" (_x0)
+# define ASM_ARGS_2 ASM_ARGS_1, "r" (_x1)
+# define ASM_ARGS_3 ASM_ARGS_2, "r" (_x2)
+# define ASM_ARGS_4 ASM_ARGS_3, "r" (_x3)
+# define ASM_ARGS_5 ASM_ARGS_4, "r" (_x4)
+# define ASM_ARGS_6 ASM_ARGS_5, "r" (_x5)
+# define ASM_ARGS_7 ASM_ARGS_6, "r" (_x6)
+
+# undef INTERNAL_SYSCALL_NCS
+# define INTERNAL_SYSCALL_NCS(number, err, nr, args...) \
+ INTERNAL_SYSCALL_RAW (number, err, nr, args)
+
+#endif /* __ASSEMBLER__ */
+
+/* Pointer mangling is supported for AArch64. */
+#if (IS_IN (rtld) || \
+ (!defined SHARED && (IS_IN (libc) \
+ || IS_IN (libpthread))))
+# ifdef __ASSEMBLER__
+/* Note, dst, src, guard, and tmp are all register numbers rather than
+ register names so they will work with both ILP32 and LP64. */
+# define PTR_MANGLE(dst, src, guard, tmp) \
+ LDST_PCREL (ldr, guard, tmp, C_SYMBOL_NAME(__pointer_chk_guard_local)); \
+ PTR_MANGLE2 (dst, src, guard)
+/* Use PTR_MANGLE2 for efficiency if guard is already loaded. */
+# define PTR_MANGLE2(dst, src, guard)\
+ eor x##dst, x##src, x##guard
+# define PTR_DEMANGLE(dst, src, guard, tmp)\
+ PTR_MANGLE (dst, src, guard, tmp)
+# define PTR_DEMANGLE2(dst, src, guard)\
+ PTR_MANGLE2 (dst, src, guard)
+# else
+extern uintptr_t __pointer_chk_guard_local attribute_relro attribute_hidden;
+# define PTR_MANGLE(var) \
+ (var) = (__typeof (var)) ((uintptr_t) (var) ^ __pointer_chk_guard_local)
+# define PTR_DEMANGLE(var) PTR_MANGLE (var)
+# endif
+#else
+# ifdef __ASSEMBLER__
+/* Note, dst, src, guard, and tmp are all register numbers rather than
+ register names so they will work with both ILP32 and LP64. */
+# define PTR_MANGLE(dst, src, guard, tmp) \
+ LDST_GLOBAL (ldr, guard, tmp, C_SYMBOL_NAME(__pointer_chk_guard)); \
+ PTR_MANGLE2 (dst, src, guard)
+/* Use PTR_MANGLE2 for efficiency if guard is already loaded. */
+# define PTR_MANGLE2(dst, src, guard)\
+ eor x##dst, x##src, x##guard
+# define PTR_DEMANGLE(dst, src, guard, tmp)\
+ PTR_MANGLE (dst, src, guard, tmp)
+# define PTR_DEMANGLE2(dst, src, guard)\
+ PTR_MANGLE2 (dst, src, guard)
+# else
+extern uintptr_t __pointer_chk_guard attribute_relro;
+# define PTR_MANGLE(var) \
+ (var) = (__typeof (var)) ((uintptr_t) (var) ^ __pointer_chk_guard)
+# define PTR_DEMANGLE(var) PTR_MANGLE (var)
+# endif
+#endif
+
+#endif /* linux/aarch64/sysdep.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/ucontext-internal.h b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/ucontext-internal.h
new file mode 100644
index 0000000000..c4739c105d
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/ucontext-internal.h
@@ -0,0 +1,45 @@
+/* Copyright (C) 2009-2017 Free Software Foundation, Inc.
+
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation; either version 2.1 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#define SP_ALIGN_SIZE 15
+
+#define SP_ALIGN_MASK ~15
+
+/* Size of an X regiser in bytes. */
+#define SZREG 8
+
+/* Size of a V register in bytes. */
+#define SZVREG 16
+
+/* Number of integer parameter passing registers. */
+#define NUMXREGARGS 8
+
+/* Number of FP parameter passing registers. */
+#define NUMDREGARGS 8
+
+/* Size of named integer argument in bytes when passed on the
+ stack. */
+#define SIZEOF_NAMED_INT 4
+
+/* Size of an anonymous integer argument in bytes when passed on the
+ stack. */
+#define SIZEOF_ANONYMOUS_INT 8
+
+#define oX21 (oX0 + 21*8)
+#define oFP (oX0 + 29*8)
+#define oLR (oX0 + 30*8)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/ucontext_i.sym b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/ucontext_i.sym
new file mode 100644
index 0000000000..ab3930c173
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/ucontext_i.sym
@@ -0,0 +1,55 @@
+#include <inttypes.h>
+#include <signal.h>
+#include <stddef.h>
+#include <sys/ucontext.h>
+#include <asm/sigcontext.h>
+
+#include "kernel_rt_sigframe.h"
+
+SIG_BLOCK
+SIG_SETMASK
+
+_NSIG8 (_NSIG / 8)
+
+-- Offsets of the fields in the kernel rt_sigframe_t structure.
+#define rt_sigframe(member) offsetof (struct kernel_rt_sigframe, member)
+
+RT_SIGFRAME_UCONTEXT rt_sigframe (uc)
+
+RT_SIGFRAME_SIZE sizeof (struct kernel_rt_sigframe)
+FPSIMD_CONTEXT_SIZE sizeof (struct fpsimd_context)
+
+#define ucontext(member) offsetof (ucontext_t, member)
+#define stack(member) ucontext (uc_stack.member)
+#define mcontext(member) ucontext (uc_mcontext.member)
+
+UCONTEXT_FLAGS ucontext (uc_flags)
+UCONTEXT_LINK ucontext (uc_link)
+UCONTEXT_STACK ucontext (uc_stack)
+UCONTEXT_MCONTEXT ucontext (uc_mcontext)
+UCONTEXT_SIGMASK ucontext (uc_sigmask)
+UCONTEXT_SIZE sizeof (ucontext_t)
+
+STACK_SP stack (ss_sp)
+STACK_SIZE stack (ss_size)
+STACK_FLAGS stack (ss_flags)
+
+oX0 mcontext (regs)
+oSP mcontext (sp)
+oPC mcontext (pc)
+oPSTATE mcontext (pstate)
+oEXTENSION mcontext (__reserved)
+
+#define fpsimd_context(member) offsetof (struct fpsimd_context, member)
+
+oHEAD fpsimd_context (head)
+oV0 fpsimd_context (vregs)
+oFPSR fpsimd_context (fpsr)
+oFPCR fpsimd_context (fpcr)
+
+#define aarch64_ctx(member) offsetof (struct _aarch64_ctx, member)
+
+oMAGIC aarch64_ctx (magic)
+oSIZE aarch64_ctx (size)
+
+FPSIMD_MAGIC
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/vfork.S b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/vfork.S
new file mode 100644
index 0000000000..890bb3d14d
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/aarch64/vfork.S
@@ -0,0 +1,42 @@
+/* Copyright (C) 1999-2017 Free Software Foundation, Inc.
+
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation; either version 2.1 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#define _ERRNO_H 1
+#include <bits/errno.h>
+
+/* Clone the calling process, but without copying the whole address space.
+ The calling process is suspended until the new process exits or is
+ replaced by a call to `execve'. Return -1 for errors, 0 to the new process,
+ and the process ID of the new process to the old process. */
+
+ENTRY (__vfork)
+
+ mov x0, #0x4111 /* CLONE_VM | CLONE_VFORK | SIGCHLD */
+ mov x1, sp
+ DO_CALL (clone, 2)
+
+ cmn x0, #4095
+ b.cs .Lsyscall_error
+ RET
+
+PSEUDO_END (__vfork)
+libc_hidden_def (__vfork)
+
+weak_alias (__vfork, vfork)
+strong_alias (__vfork, __libc_vfork)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/accept.c b/REORG.TODO/sysdeps/unix/sysv/linux/accept.c
new file mode 100644
index 0000000000..2fb59b7537
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/accept.c
@@ -0,0 +1,34 @@
+/* Copyright (C) 2015-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sys/socket.h>
+#include <sysdep-cancel.h>
+#include <socketcall.h>
+
+int
+__libc_accept (int fd, __SOCKADDR_ARG addr, socklen_t *len)
+{
+#ifdef __ASSUME_ACCEPT_SYSCALL
+ return SYSCALL_CANCEL (accept, fd, addr.__sockaddr__, len);
+#elif defined __ASSUME_ACCEPT4_SYSCALL
+ return SYSCALL_CANCEL (accept4, fd, addr.__sockaddr__, len, 0);
+#else
+ return SOCKETCALL_CANCEL (accept, fd, addr.__sockaddr__, len);
+#endif
+}
+weak_alias (__libc_accept, accept)
+libc_hidden_def (accept)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/accept4.c b/REORG.TODO/sysdeps/unix/sysv/linux/accept4.c
new file mode 100644
index 0000000000..1590c021ad
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/accept4.c
@@ -0,0 +1,36 @@
+/* Copyright (C) 2008-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@redhat.com>, 2008.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <signal.h>
+#include <sys/socket.h>
+
+#include <sysdep-cancel.h>
+#include <sys/syscall.h>
+#include <socketcall.h>
+#include <kernel-features.h>
+
+int
+accept4 (int fd, __SOCKADDR_ARG addr, socklen_t *addr_len, int flags)
+{
+#ifdef __ASSUME_ACCEPT4_SYSCALL
+ return SYSCALL_CANCEL (accept4, fd, addr.__sockaddr__, addr_len, flags);
+#else
+ return SOCKETCALL_CANCEL (accept4, fd, addr.__sockaddr__, addr_len, flags);
+#endif
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/access.c b/REORG.TODO/sysdeps/unix/sysv/linux/access.c
new file mode 100644
index 0000000000..67e69bd163
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/access.c
@@ -0,0 +1,47 @@
+/* Linux implementation for access function.
+ Copyright (C) 2016-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <fcntl.h>
+#include <unistd.h>
+#include <sysdep-cancel.h>
+
+int
+__access_noerrno (const char *file, int type)
+{
+ int res;
+ INTERNAL_SYSCALL_DECL (err);
+#ifdef __NR_access
+ res = INTERNAL_SYSCALL_CALL (access, err, file, type);
+#else
+ res = INTERNAL_SYSCALL_CALL (faccessat, err, AT_FDCWD, file, type);
+#endif
+ if (INTERNAL_SYSCALL_ERROR_P (res, err))
+ return INTERNAL_SYSCALL_ERRNO (res, err);
+ return 0;
+}
+
+int
+__access (const char *file, int type)
+{
+#ifdef __NR_access
+ return INLINE_SYSCALL_CALL (access, file, type);
+#else
+ return INLINE_SYSCALL_CALL (faccessat, AT_FDCWD, file, type);
+#endif
+}
+weak_alias (__access, access)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/adjtime.c b/REORG.TODO/sysdeps/unix/sysv/linux/adjtime.c
new file mode 100644
index 0000000000..d98d77064e
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/adjtime.c
@@ -0,0 +1,92 @@
+/* Copyright (C) 1995-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <limits.h>
+#include <sys/time.h>
+#include <sys/timex.h>
+
+#define MAX_SEC (INT_MAX / 1000000L - 2)
+#define MIN_SEC (INT_MIN / 1000000L + 2)
+
+#ifndef MOD_OFFSET
+#define modes mode
+#endif
+
+#ifndef TIMEVAL
+#define TIMEVAL timeval
+#endif
+
+#ifndef TIMEX
+#define TIMEX timex
+#endif
+
+#ifndef ADJTIME
+#define ADJTIME __adjtime
+#endif
+
+#ifndef ADJTIMEX
+#define NO_LOCAL_ADJTIME
+#define ADJTIMEX(x) __adjtimex (x)
+#endif
+
+#ifndef LINKAGE
+#define LINKAGE
+#endif
+
+LINKAGE int
+ADJTIME (const struct TIMEVAL *itv, struct TIMEVAL *otv)
+{
+ struct TIMEX tntx;
+
+ if (itv)
+ {
+ struct TIMEVAL tmp;
+
+ /* We will do some check here. */
+ tmp.tv_sec = itv->tv_sec + itv->tv_usec / 1000000L;
+ tmp.tv_usec = itv->tv_usec % 1000000L;
+ if (tmp.tv_sec > MAX_SEC || tmp.tv_sec < MIN_SEC)
+ return INLINE_SYSCALL_ERROR_RETURN_VALUE (EINVAL);
+ tntx.offset = tmp.tv_usec + tmp.tv_sec * 1000000L;
+ tntx.modes = ADJ_OFFSET_SINGLESHOT;
+ }
+ else
+ tntx.modes = ADJ_OFFSET_SS_READ;
+
+ if (__glibc_unlikely (ADJTIMEX (&tntx) < 0))
+ return -1;
+
+ if (otv)
+ {
+ if (tntx.offset < 0)
+ {
+ otv->tv_usec = -(-tntx.offset % 1000000);
+ otv->tv_sec = -(-tntx.offset / 1000000);
+ }
+ else
+ {
+ otv->tv_usec = tntx.offset % 1000000;
+ otv->tv_sec = tntx.offset / 1000000;
+ }
+ }
+ return 0;
+}
+
+#ifdef NO_LOCAL_ADJTIME
+weak_alias (__adjtime, adjtime)
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/aio_misc.h b/REORG.TODO/sysdeps/unix/sysv/linux/aio_misc.h
new file mode 100644
index 0000000000..36141350ba
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/aio_misc.h
@@ -0,0 +1,68 @@
+/* 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; see the file COPYING.LIB. If
+ not, see <http://www.gnu.org/licenses/>. */
+
+#ifndef _AIO_MISC_H
+# include_next <aio_misc.h>
+# include <limits.h>
+# include <pthread.h>
+# include <signal.h>
+# include <sysdep.h>
+
+# define aio_start_notify_thread __aio_start_notify_thread
+# define aio_create_helper_thread __aio_create_helper_thread
+
+extern inline void
+__aio_start_notify_thread (void)
+{
+ sigset_t ss;
+ sigemptyset (&ss);
+ INTERNAL_SYSCALL_DECL (err);
+ INTERNAL_SYSCALL (rt_sigprocmask, err, 4, SIG_SETMASK, &ss, NULL, _NSIG / 8);
+}
+
+extern inline int
+__aio_create_helper_thread (pthread_t *threadp, void *(*tf) (void *),
+ void *arg)
+{
+ pthread_attr_t attr;
+
+ /* Make sure the thread is created detached. */
+ pthread_attr_init (&attr);
+ pthread_attr_setdetachstate (&attr, PTHREAD_CREATE_DETACHED);
+
+ /* The helper thread needs only very little resources. */
+ (void) pthread_attr_setstacksize (&attr, __pthread_get_minstack (&attr));
+
+ /* Block all signals in the helper thread. To do this thoroughly we
+ temporarily have to block all signals here. */
+ sigset_t ss;
+ sigset_t oss;
+ sigfillset (&ss);
+ INTERNAL_SYSCALL_DECL (err);
+ INTERNAL_SYSCALL (rt_sigprocmask, err, 4, SIG_SETMASK, &ss, &oss, _NSIG / 8);
+
+ int ret = pthread_create (threadp, &attr, tf, arg);
+
+ /* Restore the signal mask. */
+ INTERNAL_SYSCALL (rt_sigprocmask, err, 4, SIG_SETMASK, &oss, NULL,
+ _NSIG / 8);
+
+ (void) pthread_attr_destroy (&attr);
+ return ret;
+}
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/aio_sigqueue.c b/REORG.TODO/sysdeps/unix/sysv/linux/aio_sigqueue.c
new file mode 100644
index 0000000000..714e9659df
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/aio_sigqueue.c
@@ -0,0 +1,52 @@
+/* Copyright (C) 1997-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <aio.h>
+#include <errno.h>
+#include <signal.h>
+#include <unistd.h>
+#include <string.h>
+
+#include <sysdep.h>
+#include <sys/syscall.h>
+
+#include <aio_misc.h>
+
+#ifdef __NR_rt_sigqueueinfo
+
+/* Return any pending signal or wait for one for the given time. */
+int
+internal_function
+__aio_sigqueue (int sig, const union sigval val, pid_t caller_pid)
+{
+ siginfo_t info;
+
+ /* First, clear the siginfo_t structure, so that we don't pass our
+ stack content to other tasks. */
+ memset (&info, 0, sizeof (siginfo_t));
+ /* We must pass the information about the data in a siginfo_t value. */
+ info.si_signo = sig;
+ info.si_code = SI_ASYNCIO;
+ info.si_pid = caller_pid;
+ info.si_uid = getuid ();
+ info.si_value = val;
+
+ return INLINE_SYSCALL (rt_sigqueueinfo, 3, info.si_pid, sig, &info);
+}
+#else
+# include <rt/aio_sigqueue.c>
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/alpha/Implies b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/Implies
new file mode 100644
index 0000000000..fddb49e2c2
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/Implies
@@ -0,0 +1,5 @@
+alpha/nptl
+unix/sysv/linux/wordsize-64
+# These supply the ABI compatibility for when long double was double.
+ieee754/ldbl-64-128
+ieee754/ldbl-opt
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/alpha/Makefile b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/Makefile
new file mode 100644
index 0000000000..47bd189f94
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/Makefile
@@ -0,0 +1,46 @@
+ifeq ($(subdir),posix)
+sysdep_routines += oldglob
+endif
+
+ifeq ($(subdir),stdlib)
+gen-as-const-headers += ucontext-offsets.sym
+endif
+
+ifeq ($(subdir),misc)
+sysdep_headers += alpha/ptrace.h alpha/regdef.h sys/io.h
+
+sysdep_routines += ieee_get_fp_control ieee_set_fp_control \
+ ioperm
+
+# Support old timeval32 entry points
+sysdep_routines += osf_gettimeofday osf_settimeofday \
+ osf_getitimer osf_setitimer osf_utimes \
+ osf_getrusage osf_wait4
+
+CFLAGS-ioperm.c = -Wa,-mev6
+endif
+
+ifeq ($(subdir),signal)
+sysdep_routines += rt_sigaction
+endif
+
+ifeq ($(subdir),math)
+# These 2 routines are normally in libgcc{.a,_s.so.1}.
+# However, alpha -mlong-double-128 libgcc relies on
+# glibc providing _Ots* routines and without these files
+# glibc relies on __multc3/__divtc3 only provided
+# by libgcc if configured with -mlong-double-128.
+# Provide these routines here as well.
+libm-routines += multc3 divtc3
+endif # math
+
+ifeq ($(subdir),nptl)
+# pull in __syscall_error routine, __sigprocmask, __syscall_rt_sigaction
+libpthread-routines += sysdep sigprocmask rt_sigaction
+libpthread-shared-only-routines += sysdep sigprocmask rt_sigaction
+endif
+
+ifeq ($(subdir),conform)
+# For bug 21260.
+conformtest-xfail-conds += alpha-linux
+endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/alpha/Versions b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/Versions
new file mode 100644
index 0000000000..29b82f999b
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/Versions
@@ -0,0 +1,113 @@
+libc {
+ # The comment lines with "#errlist-compat" are magic; see
+ # sysdeps/gnu/errlist-compat.awk.
+ # When you get an error from errlist-compat.awk, you need to add a new
+ # version here. Don't do this blindly, since this means changing the ABI
+ # for all GNU/Linux configurations.
+
+ GLIBC_2.0 {
+ #errlist-compat 131
+ _sys_errlist; sys_errlist; _sys_nerr; sys_nerr;
+
+ # Unfortunately in wider use.
+ _inb; _inw; _inl; _outb; _outw; _outl; _bus_base; _bus_base_sparse;
+ _hae_shift;
+
+ # Exception handling support functions from libgcc
+ __register_frame; __register_frame_table; __deregister_frame;
+ __frame_state_for; __register_frame_info_table;
+
+ # b*
+ bus_base; bus_base_sparse;
+
+ # h*
+ hae_shift;
+
+ # i*
+ inb; inl; inw; ioperm; iopl;
+
+ # o*
+ outb; outl; outw;
+
+ # p*
+ pciconfig_read; pciconfig_write; sethae;
+ }
+ GLIBC_2.1 {
+ #errlist-compat 131
+ _sys_errlist; sys_errlist; _sys_nerr; sys_nerr;
+
+ # Linux/Alpha 64-bit timeval functions.
+ __select; select;
+ adjtime; adjtimex; __adjtimex;
+ __gettimeofday;
+
+ # glob interface change
+ glob; globfree;
+
+ # limit type change
+ getrusage;
+
+ # time type change
+ gettimeofday; getitimer;
+
+ # i*
+ ieee_get_fp_control; ieee_set_fp_control;
+
+ # s*
+ setitimer; settimeofday;
+
+ # u*
+ utimes;
+
+ # w*
+ wait4;
+ }
+ GLIBC_2.1.4 {
+ pciconfig_iobase;
+ }
+ GLIBC_2.2.2 {
+ # w*
+ wordexp;
+ }
+ GLIBC_2.3 {
+ #errlist-compat 132
+ _sys_errlist; sys_errlist; _sys_nerr; sys_nerr;
+ }
+ GLIBC_2.4 {
+ #errlist-compat 138
+ _sys_errlist; sys_errlist; _sys_nerr; sys_nerr;
+ }
+ GLIBC_2.12 {
+ #errlist-compat 139
+ _sys_errlist; sys_errlist; _sys_nerr; sys_nerr;
+ }
+ GLIBC_2.16 {
+ #errlist-compat 140
+ _sys_errlist; sys_errlist; _sys_nerr; sys_nerr;
+ }
+ GLIBC_PRIVATE {
+ __libc_alpha_cache_shape;
+ }
+}
+ld {
+ GLIBC_PRIVATE {
+ __libc_alpha_cache_shape;
+ }
+}
+libpthread {
+ GLIBC_2.3.3 {
+ # Changed PTHREAD_STACK_MIN.
+ pthread_attr_setstack; pthread_attr_setstacksize;
+ }
+}
+librt {
+ GLIBC_2.3 {
+ # AIO functions.
+ aio_cancel; aio_cancel64;
+ }
+ GLIBC_2.3.3 {
+ # Changed timer_t.
+ timer_create; timer_delete; timer_getoverrun; timer_gettime;
+ timer_settime;
+ }
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/alpha/____longjmp_chk.S b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/____longjmp_chk.S
new file mode 100644
index 0000000000..b3063e59ed
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/____longjmp_chk.S
@@ -0,0 +1,144 @@
+/* Copyright (C) 1992-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#include <jmpbuf-offsets.h>
+
+
+ .section .rodata.str1.1,"aMS",@progbits,1
+ .type longjmp_msg,@object
+longjmp_msg:
+ .string "longjmp causes uninitialized stack frame"
+ .size longjmp_msg, .-longjmp_msg
+
+
+/* Jump to the position specified by ENV, causing the
+ setjmp call there to return VAL, or 1 if VAL is 0.
+ void __longjmp (__jmp_buf env, int val). */
+ .text
+ .align 4
+ .globl ____longjmp_chk
+ .type ____longjmp_chk, @function
+ .usepv ____longjmp_chk, std
+
+ cfi_startproc
+____longjmp_chk:
+ ldgp gp, 0(pv)
+#ifdef PROF
+ .set noat
+ lda AT, _mcount
+ jsr AT, (AT), _mcount
+ .set at
+#endif
+
+ ldq s2, JB_PC*8(a0)
+ mov a0, s0
+ ldq fp, JB_FP*8(a0)
+ mov a1, s1
+ ldq s3, JB_SP*8(a0)
+ cmoveq s1, 1, s1
+
+#ifdef PTR_DEMANGLE
+ PTR_DEMANGLE(s2, t1)
+ PTR_DEMANGLE2(s3, t1)
+ PTR_DEMANGLE2(fp, t1)
+#endif
+ /* ??? While this is a proper test for detecting a longjmp to an
+ invalid frame within any given stack, the main thread stack is
+ located *below* almost everything in the address space. Which
+ means that the test at Lfail vs the signal stack will almost
+ certainly never pass. We ought bounds check top and bottom of
+ the current thread's stack. */
+ cmpule s3, sp, t1
+ bne t1, $Lfail
+
+ .align 4
+$Lok:
+ mov s0, a0
+ mov s1, v0
+ mov s3, t0
+ mov s2, ra
+ cfi_remember_state
+ cfi_def_cfa(a0, 0)
+ cfi_register(sp, t0)
+ cfi_offset(s0, JB_S0*8)
+ cfi_offset(s1, JB_S1*8)
+ cfi_offset(s2, JB_S2*8)
+ cfi_offset(s3, JB_S3*8)
+ cfi_offset(s4, JB_S4*8)
+ cfi_offset(s5, JB_S5*8)
+ cfi_offset(s3, JB_S3*8)
+ cfi_offset($f2, JB_F2*8)
+ cfi_offset($f3, JB_F3*8)
+ cfi_offset($f4, JB_F4*8)
+ cfi_offset($f5, JB_F5*8)
+ cfi_offset($f6, JB_F6*8)
+ cfi_offset($f7, JB_F7*8)
+ cfi_offset($f8, JB_F8*8)
+ cfi_offset($f9, JB_F9*8)
+ ldq s0, JB_S0*8(a0)
+ ldq s1, JB_S1*8(a0)
+ ldq s2, JB_S2*8(a0)
+ ldq s3, JB_S3*8(a0)
+ ldq s4, JB_S4*8(a0)
+ ldq s5, JB_S5*8(a0)
+ ldt $f2, JB_F2*8(a0)
+ ldt $f3, JB_F3*8(a0)
+ ldt $f4, JB_F4*8(a0)
+ ldt $f5, JB_F5*8(a0)
+ ldt $f6, JB_F6*8(a0)
+ ldt $f7, JB_F7*8(a0)
+ ldt $f8, JB_F8*8(a0)
+ ldt $f9, JB_F9*8(a0)
+ mov t0, sp
+ ret
+
+ .align 4
+$Lfail:
+ cfi_restore_state
+ lda v0, __NR_sigaltstack
+ lda a0, 0
+ lda a1, -32(sp)
+ lda sp, -32(sp)
+ cfi_adjust_cfa_offset(32)
+ callsys
+ ldq t0, 0(sp) /* ss_sp */
+ ldl t1, 8(sp) /* ss_flags */
+ ldq t2, 16(sp) /* ss_size */
+ lda sp, 32(sp)
+ cfi_adjust_cfa_offset(-32)
+
+ /* Without working sigaltstack we cannot perform the test. */
+ bne a3, $Lok
+
+ addq t0, t2, t0 /* t0 = ss_sp + ss_size */
+ subq t0, s3, t0 /* t0 = (ss_sp + ss_size) - new_sp */
+ cmpule t2, t0, t0 /* t0 = (t0 >= ss_size) */
+ and t0, t1, t0 /* t0 = (t0 >= ss_size) & (ss_flags & SS_ONSTACK) */
+ bne t0, $Lok
+
+ ldah a0, longjmp_msg(gp) !gprelhigh
+ lda a0, longjmp_msg(a0) !gprellow
+#ifdef PIC
+ jsr ra, HIDDEN_JUMPTARGET(__fortify_fail)
+#else
+ bsr ra, HIDDEN_JUMPTARGET(__fortify_fail) !samegp
+#endif
+ bugchk
+
+ cfi_endproc
+ .size ____longjmp_chk, .-____longjmp_chk
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/alpha/a.out.h b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/a.out.h
new file mode 100644
index 0000000000..a7699f0fe0
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/a.out.h
@@ -0,0 +1,197 @@
+#ifndef __A_OUT_GNU_H__
+#define __A_OUT_GNU_H__
+
+#include <bits/a.out.h>
+
+#define __GNU_EXEC_MACROS__
+
+/*
+ * OSF/1 ECOFF header structs. ECOFF files consist of:
+ * - a file header (struct filehdr),
+ * - an a.out header (struct aouthdr),
+ * - one or more section headers (struct scnhdr).
+ * The filhdr's "f_nscns" field contains the
+ * number of section headers.
+ */
+
+struct filehdr
+{
+ /* OSF/1 "file" header */
+ unsigned short f_magic, f_nscns;
+ unsigned int f_timdat;
+ unsigned long f_symptr;
+ unsigned int f_nsyms;
+ unsigned short f_opthdr, f_flags;
+};
+
+struct aouthdr
+{
+ unsigned long info; /* After that it looks quite normal.. */
+ unsigned long tsize;
+ unsigned long dsize;
+ unsigned long bsize;
+ unsigned long entry;
+ unsigned long text_start; /* With a few additions that actually make sense. */
+ unsigned long data_start;
+ unsigned long bss_start;
+ unsigned int gprmask, fprmask; /* Bitmask of general & floating point regs used in binary. */
+ unsigned long gpvalue;
+};
+
+struct scnhdr
+{
+ char s_name[8];
+ unsigned long s_paddr;
+ unsigned long s_vaddr;
+ unsigned long s_size;
+ unsigned long s_scnptr;
+ unsigned long s_relptr;
+ unsigned long s_lnnoptr;
+ unsigned short s_nreloc;
+ unsigned short s_nlnno;
+ unsigned int s_flags;
+};
+
+struct exec
+{
+ /* OSF/1 "file" header */
+ struct filehdr fh;
+ struct aouthdr ah;
+};
+
+#define a_info ah.info
+#define a_text ah.tsize
+#define a_data ah.dsize
+#define a_bss ah.bsize
+#define a_entry ah.entry
+#define a_textstart ah.text_start
+#define a_datastart ah.data_start
+#define a_bssstart ah.bss_start
+#define a_gprmask ah.gprmask
+#define a_fprmask ah.fprmask
+#define a_gpvalue ah.gpvalue
+
+
+#define AOUTHSZ sizeof(struct aouthdr)
+#define SCNHSZ sizeof(struct scnhdr)
+#define SCNROUND 16
+
+enum machine_type
+{
+ M_OLDSUN2 = 0,
+ M_68010 = 1,
+ M_68020 = 2,
+ M_SPARC = 3,
+ M_386 = 100,
+ M_MIPS1 = 151,
+ M_MIPS2 = 152
+};
+
+#define N_MAGIC(exec) ((exec).a_info & 0xffff)
+#define N_MACHTYPE(exec) ((enum machine_type)(((exec).a_info >> 16) & 0xff))
+#define N_FLAGS(exec) (((exec).a_info >> 24) & 0xff)
+#define N_SET_INFO(exec, magic, type, flags) \
+ ((exec).a_info = ((magic) & 0xffff) \
+ | (((int)(type) & 0xff) << 16) \
+ | (((flags) & 0xff) << 24))
+#define N_SET_MAGIC(exec, magic) \
+ ((exec).a_info = ((exec).a_info & 0xffff0000) | ((magic) & 0xffff))
+#define N_SET_MACHTYPE(exec, machtype) \
+ ((exec).a_info = \
+ ((exec).a_info&0xff00ffff) | ((((int)(machtype))&0xff) << 16))
+#define N_SET_FLAGS(exec, flags) \
+ ((exec).a_info = \
+ ((exec).a_info&0x00ffffff) | (((flags) & 0xff) << 24))
+
+/* Code indicating object file or impure executable. */
+#define OMAGIC 0407
+/* Code indicating pure executable. */
+#define NMAGIC 0410
+/* Code indicating demand-paged executable. */
+#define ZMAGIC 0413
+/* This indicates a demand-paged executable with the header in the text.
+ The first page is unmapped to help trap NULL pointer references. */
+#define QMAGIC 0314
+/* Code indicating core file. */
+#define CMAGIC 0421
+
+#define N_TRSIZE(x) 0
+#define N_DRSIZE(x) 0
+#define N_SYMSIZE(x) 0
+#define N_BADMAG(x) \
+ (N_MAGIC(x) != OMAGIC && N_MAGIC(x) != NMAGIC \
+ && N_MAGIC(x) != ZMAGIC && N_MAGIC(x) != QMAGIC)
+#define _N_HDROFF(x) (1024 - sizeof (struct exec))
+#define N_TXTOFF(x) \
+ ((long) N_MAGIC(x) == ZMAGIC ? 0 : \
+ (sizeof (struct exec) + (x).fh.f_nscns * SCNHSZ + SCNROUND - 1) \
+ & ~(SCNROUND - 1))
+
+#define N_DATOFF(x) (N_TXTOFF(x) + (x).a_text)
+#define N_TRELOFF(x) (N_DATOFF(x) + (x).a_data)
+#define N_DRELOFF(x) (N_TRELOFF(x) + N_TRSIZE(x))
+#define N_SYMOFF(x) (N_DRELOFF(x) + N_DRSIZE(x))
+#define N_STROFF(x) (N_SYMOFF(x) + N_SYMSIZE(x))
+
+/* Address of text segment in memory after it is loaded. */
+#define N_TXTADDR(x) ((x).a_textstart)
+
+/* Address of data segment in memory after it is loaded. */
+#define SEGMENT_SIZE 1024
+
+#define _N_SEGMENT_ROUND(x) (((x) + SEGMENT_SIZE - 1) & ~(SEGMENT_SIZE - 1))
+#define _N_TXTENDADDR(x) (N_TXTADDR(x)+(x).a_text)
+
+#define N_DATADDR(x) ((x).a_datastart)
+#define N_BSSADDR(x) ((x).a_bssstart)
+
+#if !defined (N_NLIST_DECLARED)
+struct nlist
+{
+ union
+ {
+ char *n_name;
+ struct nlist *n_next;
+ long n_strx;
+ } n_un;
+ unsigned char n_type;
+ char n_other;
+ short n_desc;
+ unsigned long n_value;
+};
+#endif /* no N_NLIST_DECLARED. */
+
+#define N_UNDF 0
+#define N_ABS 2
+#define N_TEXT 4
+#define N_DATA 6
+#define N_BSS 8
+#define N_FN 15
+#define N_EXT 1
+#define N_TYPE 036
+#define N_STAB 0340
+#define N_INDR 0xa
+#define N_SETA 0x14 /* Absolute set element symbol. */
+#define N_SETT 0x16 /* Text set element symbol. */
+#define N_SETD 0x18 /* Data set element symbol. */
+#define N_SETB 0x1A /* Bss set element symbol. */
+#define N_SETV 0x1C /* Pointer to set vector in data area. */
+
+#if !defined (N_RELOCATION_INFO_DECLARED)
+/* This structure describes a single relocation to be performed.
+ The text-relocation section of the file is a vector of these structures,
+ all of which apply to the text section.
+ Likewise, the data-relocation section applies to the data section. */
+
+struct relocation_info
+{
+ int r_address;
+ unsigned int r_symbolnum:24;
+ unsigned int r_pcrel:1;
+ unsigned int r_length:2;
+ unsigned int r_extern:1;
+ unsigned int r_pad:4;
+};
+#endif /* no N_RELOCATION_INFO_DECLARED. */
+
+#endif /* __A_OUT_GNU_H__ */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/alpha/adjtime.c b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/adjtime.c
new file mode 100644
index 0000000000..9ed0119a8f
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/adjtime.c
@@ -0,0 +1,94 @@
+/* Copyright (C) 1998-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <shlib-compat.h>
+#include <sysdep.h>
+#include <sys/time.h>
+
+
+#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_1)
+struct timeval32
+{
+ int tv_sec, tv_usec;
+};
+
+struct timex32 {
+ unsigned int modes; /* mode selector */
+ long offset; /* time offset (usec) */
+ long freq; /* frequency offset (scaled ppm) */
+ long maxerror; /* maximum error (usec) */
+ long esterror; /* estimated error (usec) */
+ int status; /* clock command/status */
+ long constant; /* pll time constant */
+ long precision; /* clock precision (usec) (read only) */
+ long tolerance; /* clock frequency tolerance (ppm)
+ * (read only)
+ */
+ struct timeval32 time; /* (read only) */
+ long tick; /* (modified) usecs between clock ticks */
+
+ long ppsfreq; /* pps frequency (scaled ppm) (ro) */
+ long jitter; /* pps jitter (us) (ro) */
+ int shift; /* interval duration (s) (shift) (ro) */
+ long stabil; /* pps stability (scaled ppm) (ro) */
+ long jitcnt; /* jitter limit exceeded (ro) */
+ long calcnt; /* calibration intervals (ro) */
+ long errcnt; /* calibration errors (ro) */
+ long stbcnt; /* stability limit exceeded (ro) */
+
+ int :32; int :32; int :32; int :32;
+ int :32; int :32; int :32; int :32;
+ int :32; int :32; int :32; int :32;
+};
+
+#define TIMEVAL timeval32
+#define TIMEX timex32
+#define ADJTIME attribute_compat_text_section __adjtime_tv32
+#define ADJTIMEX(x) INLINE_SYSCALL (old_adjtimex, 1, x)
+#define ADJTIMEX32(x) INLINE_SYSCALL (old_adjtimex, 1, x)
+
+#include <sysdeps/unix/sysv/linux/adjtime.c>
+
+int attribute_compat_text_section
+__adjtimex_tv32 (struct timex32 *tx) { return ADJTIMEX (tx); }
+
+strong_alias (__adjtimex_tv32, __adjtimex_tv32_1);
+strong_alias (__adjtimex_tv32, __adjtimex_tv32_2);
+compat_symbol (libc, __adjtimex_tv32_1, __adjtimex, GLIBC_2_0);
+compat_symbol (libc, __adjtimex_tv32_2, adjtimex, GLIBC_2_0);
+compat_symbol (libc, __adjtime_tv32, adjtime, GLIBC_2_0);
+#endif /* SHLIB_COMPAT */
+
+#undef TIMEVAL
+#undef TIMEX
+#undef ADJTIME
+#undef ADJTIMEX
+#define TIMEVAL timeval
+#define TIMEX timex
+#define ADJTIMEX(x) INLINE_SYSCALL (adjtimex, 1, x)
+
+#include <sysdeps/unix/sysv/linux/adjtime.c>
+
+int
+__adjtimex_tv64 (struct timex *tx) { return ADJTIMEX (tx); }
+
+libc_hidden_ver (__adjtimex_tv64, __adjtimex)
+strong_alias (__adjtimex_tv64, __adjtimex_tv64p);
+weak_alias (__adjtimex_tv64, ntp_adjtime);
+versioned_symbol (libc, __adjtimex_tv64, __adjtimex, GLIBC_2_1);
+versioned_symbol (libc, __adjtimex_tv64p, adjtimex, GLIBC_2_1);
+versioned_symbol (libc, __adjtime, adjtime, GLIBC_2_1);
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/alpha/aio_cancel.c b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/aio_cancel.c
new file mode 100644
index 0000000000..0d6da82919
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/aio_cancel.c
@@ -0,0 +1,33 @@
+#include <shlib-compat.h>
+
+#define aio_cancel64 XXX
+#include <aio.h>
+#undef aio_cancel64
+#include <errno.h>
+
+extern __typeof (aio_cancel) __new_aio_cancel;
+extern __typeof (aio_cancel) __old_aio_cancel;
+
+#define aio_cancel __new_aio_cancel
+
+#include <sysdeps/pthread/aio_cancel.c>
+
+#undef aio_cancel
+strong_alias (__new_aio_cancel, __new_aio_cancel64);
+versioned_symbol (librt, __new_aio_cancel, aio_cancel, GLIBC_2_3);
+versioned_symbol (librt, __new_aio_cancel64, aio_cancel64, GLIBC_2_3);
+
+#if SHLIB_COMPAT (librt, GLIBC_2_1, GLIBC_2_3)
+
+#undef ECANCELED
+#define aio_cancel __old_aio_cancel
+#define ECANCELED 125
+
+#include <sysdeps/pthread/aio_cancel.c>
+
+#undef aio_cancel
+strong_alias (__old_aio_cancel, __old_aio_cancel64);
+compat_symbol (librt, __old_aio_cancel, aio_cancel, GLIBC_2_1);
+compat_symbol (librt, __old_aio_cancel64, aio_cancel64, GLIBC_2_1);
+
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/alpha/alpha/ptrace.h b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/alpha/ptrace.h
new file mode 100644
index 0000000000..57b96d64db
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/alpha/ptrace.h
@@ -0,0 +1,18 @@
+#ifndef __alpha_ptrace_h__
+#define __alpha_ptrace_h__
+
+/*
+ * Mostly for OSF/1 compatibility.
+ */
+
+#define REG_BASE 0
+#define NGP_REGS 32
+#define NFP_REGS 32
+
+#define GPR_BASE REG_BASE
+#define FPR_BASE (GPR_BASE+NGP_REGS)
+#define PC (FPR_BASE+NFP_REGS)
+#define SPR_PS (PC+1)
+#define NPTRC_REGS (SPR_PS+1)
+
+#endif /* __alpha_ptrace_h__ */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/alpha/alpha/regdef.h b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/alpha/regdef.h
new file mode 100644
index 0000000000..142df9c4f8
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/alpha/regdef.h
@@ -0,0 +1,44 @@
+#ifndef __alpha_regdef_h__
+#define __alpha_regdef_h__
+
+#define v0 $0 /* function return value */
+
+#define t0 $1 /* temporary registers (caller-saved) */
+#define t1 $2
+#define t2 $3
+#define t3 $4
+#define t4 $5
+#define t5 $6
+#define t6 $7
+#define t7 $8
+
+#define s0 $9 /* saved-registers (callee-saved registers) */
+#define s1 $10
+#define s2 $11
+#define s3 $12
+#define s4 $13
+#define s5 $14
+#define s6 $15
+#define fp s6 /* frame-pointer (s6 in frame-less procedures) */
+
+#define a0 $16 /* argument registers (caller-saved) */
+#define a1 $17
+#define a2 $18
+#define a3 $19
+#define a4 $20
+#define a5 $21
+
+#define t8 $22 /* more temps (caller-saved) */
+#define t9 $23
+#define t10 $24
+#define t11 $25
+#define ra $26 /* return address register */
+#define t12 $27
+
+#define pv t12 /* procedure-variable register */
+#define AT $at /* assembler temporary */
+#define gp $29 /* global pointer */
+#define sp $30 /* stack pointer */
+#define zero $31 /* reads as zero, writes are noops */
+
+#endif /* __alpha_regdef_h__ */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/alpha/alphaev6/fpu/Implies b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/alphaev6/fpu/Implies
new file mode 100644
index 0000000000..0d7000dc2d
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/alphaev6/fpu/Implies
@@ -0,0 +1,2 @@
+# Override ldbl-opt with alpha specific routines.
+alpha/alphaev6/fpu
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/alpha/alphaev67/fpu/Implies b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/alphaev67/fpu/Implies
new file mode 100644
index 0000000000..617c388d2d
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/alphaev67/fpu/Implies
@@ -0,0 +1,2 @@
+# Override ldbl-opt with alpha specific routines.
+alpha/alphaev67/fpu
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/alpha/arch-fork.h b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/arch-fork.h
new file mode 100644
index 0000000000..4e4e26d7ab
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/arch-fork.h
@@ -0,0 +1,28 @@
+/* ARCH_FORK definition for Linux fork implementation. Alpha version.
+ Copyright (C) 2003-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sched.h>
+#include <signal.h>
+#include <sysdep.h>
+#include <tls.h>
+
+
+#define ARCH_FORK() \
+ INLINE_SYSCALL (clone, 5, \
+ CLONE_CHILD_SETTID | CLONE_CHILD_CLEARTID | SIGCHLD, \
+ NULL, NULL, &THREAD_SELF->tid, NULL)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/alpha/bits/a.out.h b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/bits/a.out.h
new file mode 100644
index 0000000000..82a3dd4c0d
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/bits/a.out.h
@@ -0,0 +1,9 @@
+#ifndef __A_OUT_GNU_H__
+# error "Never use <bits/a.out.h> directly; include <a.out.h> instead."
+#endif
+#ifndef __A_OUT_GNU_H__
+# error "Never use <bits/a.out.h> directly; include <a.out.h> instead."
+#endif
+#ifndef __A_OUT_GNU_H__
+# error "Never use <bits/a.out.h> directly; include <a.out.h> instead."
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/alpha/bits/dirent.h b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/bits/dirent.h
new file mode 100644
index 0000000000..2ac7893af0
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/bits/dirent.h
@@ -0,0 +1,57 @@
+/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _BITS_DIRENT_H
+#define _BITS_DIRENT_H 1
+
+struct dirent
+ {
+#ifdef __USE_FILE_OFFSET64
+ __ino64_t d_ino;
+#else
+ __ino_t d_ino;
+ int __pad;
+#endif
+ __off_t d_off;
+ unsigned short int d_reclen;
+ unsigned char d_type;
+ char d_name[256]; /* We must not include limits.h! */
+ };
+
+#ifdef __USE_LARGEFILE64
+/* Note dirent64 is the same as dirent. */
+struct dirent64
+ {
+ __ino64_t d_ino;
+ __off64_t d_off;
+ unsigned short int d_reclen;
+ unsigned char d_type;
+ char d_name[256]; /* We must not include limits.h! */
+ };
+#endif
+
+#define d_fileno d_ino /* Backwards compatibility. */
+
+#undef _DIRENT_HAVE_D_NAMLEN
+#define _DIRENT_HAVE_D_RECLEN
+#define _DIRENT_HAVE_D_OFF
+#define _DIRENT_HAVE_D_TYPE
+
+/* Inform libc code that these two types are effectively identical. */
+#define _DIRENT_MATCHES_DIRENT64 1
+
+#endif /* bits/dirent.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/alpha/bits/elfclass.h b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/bits/elfclass.h
new file mode 100644
index 0000000000..e5aa4a0fbd
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/bits/elfclass.h
@@ -0,0 +1,14 @@
+/* This file specifies the native word size of the machine, which indicates
+ the ELF file class used for executables and shared objects on this
+ machine. */
+
+#ifndef _LINK_H
+# error "Never use <bits/elfclass.h> directly; include <link.h> instead."
+#endif
+
+#include <bits/wordsize.h>
+
+#define __ELF_NATIVE_CLASS __WORDSIZE
+
+/* Linux/Alpha is exceptional as it has .hash section with 64 bit entries. */
+typedef uint64_t Elf_Symndx;
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/alpha/bits/epoll.h b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/bits/epoll.h
new file mode 100644
index 0000000000..18bc87522d
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/bits/epoll.h
@@ -0,0 +1,27 @@
+/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_EPOLL_H
+# error "Never use <bits/epoll.h> directly; include <sys/epoll.h> instead."
+#endif
+
+/* Flags to be passed to epoll_create1. */
+enum
+ {
+ EPOLL_CLOEXEC = 010000000
+#define EPOLL_CLOEXEC EPOLL_CLOEXEC
+ };
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/alpha/bits/errno.h b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/bits/errno.h
new file mode 100644
index 0000000000..3338621710
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/bits/errno.h
@@ -0,0 +1,65 @@
+/* Error constants. Linux/Alpha specific version.
+ Copyright (C) 1996-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifdef _ERRNO_H
+
+# undef EDOM
+# undef EILSEQ
+# undef ERANGE
+# include <linux/errno.h>
+
+/* Linux has no ENOTSUP error code. */
+# define ENOTSUP EOPNOTSUPP
+
+# ifndef ECANCELED
+# define ECANCELED 131
+# endif
+
+/* Support for error codes to support robust mutexes was added later, too. */
+# ifndef EOWNERDEAD
+# define EOWNERDEAD 136
+# define ENOTRECOVERABLE 137
+# endif
+
+# ifndef ERFKILL
+# define ERFKILL 138
+# endif
+
+# ifndef EHWPOISON
+# define EHWPOISON 139
+# endif
+
+# ifndef __ASSEMBLER__
+/* Function to get address of global `errno' variable. */
+extern int *__errno_location (void) __THROW __attribute__ ((__const__));
+
+# if !defined _LIBC || defined _LIBC_REENTRANT
+/* When using threads, errno is a per-thread value. */
+# define errno (*__errno_location ())
+# endif
+# endif /* !__ASSEMBLER__ */
+#endif /* _ERRNO_H */
+
+#if !defined _ERRNO_H && defined __need_Emath
+/* This is ugly but the kernel header is not clean enough. We must
+ define only the values EDOM, EILSEQ and ERANGE in case __need_Emath is
+ defined. */
+# define EDOM 33 /* Math argument out of domain of function. */
+# define EILSEQ 116 /* Illegal byte sequence. */
+# define ERANGE 34 /* Math result not representable. */
+#endif /* !_ERRNO_H && __need_Emath */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/alpha/bits/eventfd.h b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/bits/eventfd.h
new file mode 100644
index 0000000000..60e7d5e78f
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/bits/eventfd.h
@@ -0,0 +1,31 @@
+/* Copyright (C) 2007-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_EVENTFD_H
+# error "Never use <bits/eventfd.h> directly; include <sys/eventfd.h> instead."
+#endif
+
+/* Flags for eventfd. */
+enum
+ {
+ EFD_SEMAPHORE = 000000001,
+#define EFD_SEMAPHORE EFD_SEMAPHORE
+ EFD_CLOEXEC = 010000000,
+#define EFD_CLOEXEC EFD_CLOEXEC
+ EFD_NONBLOCK = 000000004
+#define EFD_NONBLOCK EFD_NONBLOCK
+ };
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/alpha/bits/fcntl.h b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/bits/fcntl.h
new file mode 100644
index 0000000000..0db4643507
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/bits/fcntl.h
@@ -0,0 +1,87 @@
+/* O_*, F_*, FD_* bit values for Linux.
+ Copyright (C) 1995-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _FCNTL_H
+# error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
+#endif
+
+#define O_CREAT 01000 /* not fcntl */
+#define O_TRUNC 02000 /* not fcntl */
+#define O_EXCL 04000 /* not fcntl */
+#define O_NOCTTY 010000 /* not fcntl */
+
+#define O_NONBLOCK 00004
+#define O_APPEND 00010
+#define O_SYNC 020040000
+
+#define __O_DIRECTORY 0100000 /* Must be a directory. */
+#define __O_NOFOLLOW 0200000 /* Do not follow links. */
+#define __O_CLOEXEC 010000000 /* Set close_on_exec. */
+
+#define __O_DIRECT 02000000 /* Direct disk access. */
+#define __O_NOATIME 04000000 /* Do not set atime. */
+#define __O_PATH 040000000 /* Resolve pathname but do not open file. */
+#define __O_TMPFILE 0100100000 /* Atomically create nameless file. */
+
+/* Not necessary, files are always with 64bit off_t. */
+#define __O_LARGEFILE 0
+
+#define __O_DSYNC 040000 /* Synchronize data. */
+
+#define F_GETLK 7 /* Get record locking info. */
+#define F_SETLK 8 /* Set record locking info (non-blocking). */
+#define F_SETLKW 9 /* Set record locking info (blocking). */
+#define F_GETLK64 F_GETLK /* Get record locking info. */
+#define F_SETLK64 F_SETLK /* Set record locking info (non-blocking). */
+#define F_SETLKW64 F_SETLKW /* Set record locking info (blocking). */
+
+#define __F_SETOWN 5 /* Get owner of socket (receiver of SIGIO). */
+#define __F_GETOWN 6 /* Set owner of socket (receiver of SIGIO). */
+
+/* For posix fcntl() and `l_type' field of a `struct flock' for lockf() */
+#define F_RDLCK 1 /* Read lock. */
+#define F_WRLCK 2 /* Write lock. */
+#define F_UNLCK 8 /* Remove lock. */
+
+/* for old implementation of bsd flock () */
+#define F_EXLCK 16 /* or 3 */
+#define F_SHLCK 32 /* or 4 */
+
+/* We don't need to support __USE_FILE_OFFSET64. */
+struct flock
+ {
+ short int l_type; /* Type of lock: F_RDLCK, F_WRLCK, or F_UNLCK. */
+ short int l_whence; /* Where `l_start' is relative to (like `lseek'). */
+ __off_t l_start; /* Offset where the lock begins. */
+ __off_t l_len; /* Size of the locked area; zero means until EOF. */
+ __pid_t l_pid; /* Process holding the lock. */
+ };
+
+#ifdef __USE_LARGEFILE64
+struct flock64
+ {
+ short int l_type; /* Type of lock: F_RDLCK, F_WRLCK, or F_UNLCK. */
+ short int l_whence; /* Where `l_start' is relative to (like `lseek'). */
+ __off64_t l_start; /* Offset where the lock begins. */
+ __off64_t l_len; /* Size of the locked area; zero means until EOF. */
+ __pid_t l_pid; /* Process holding the lock. */
+ };
+#endif
+
+/* Include generic Linux declarations. */
+#include <bits/fcntl-linux.h>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/alpha/bits/inotify.h b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/bits/inotify.h
new file mode 100644
index 0000000000..5597935f47
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/bits/inotify.h
@@ -0,0 +1,29 @@
+/* Copyright (C) 2005-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_INOTIFY_H
+# error "Never use <bits/inotify.h> directly; include <sys/inotify.h> instead."
+#endif
+
+/* Flags for the parameter of inotify_init1. */
+enum
+ {
+ IN_CLOEXEC = 010000000,
+#define IN_CLOEXEC IN_CLOEXEC
+ IN_NONBLOCK = 000000004
+#define IN_NONBLOCK IN_NONBLOCK
+ };
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/alpha/bits/ioctls.h b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/bits/ioctls.h
new file mode 100644
index 0000000000..1626445574
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/bits/ioctls.h
@@ -0,0 +1,36 @@
+/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_IOCTL_H
+# error "Never use <bits/ioctls.h> directly; include <sys/ioctl.h> instead."
+#endif
+
+/* Use the definitions from the kernel header files. */
+#include <asm/ioctls.h>
+
+/* Oh well, this is necessary since the kernel data structure is
+ different from the user-level version. */
+#undef TCGETS
+#undef TCSETS
+#undef TCSETSW
+#undef TCSETSF
+#define TCGETS _IOR ('t', 19, char[44])
+#define TCSETS _IOW ('t', 20, char[44])
+#define TCSETSW _IOW ('t', 21, char[44])
+#define TCSETSF _IOW ('t', 22, char[44])
+
+#include <linux/sockios.h>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/alpha/bits/ipc.h b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/bits/ipc.h
new file mode 100644
index 0000000000..495e0fac3a
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/bits/ipc.h
@@ -0,0 +1,54 @@
+/* Copyright (C) 1995-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_IPC_H
+# error "Never use <bits/ipc.h> directly; include <sys/ipc.h> instead."
+#endif
+
+#include <bits/types.h>
+
+/* Mode bits for `msgget', `semget', and `shmget'. */
+#define IPC_CREAT 01000 /* Create key if key does not exist. */
+#define IPC_EXCL 02000 /* Fail if key exists. */
+#define IPC_NOWAIT 04000 /* Return error on wait. */
+
+/* Control commands for `msgctl', `semctl', and `shmctl'. */
+#define IPC_RMID 0 /* Remove identifier. */
+#define IPC_SET 1 /* Set `ipc_perm' options. */
+#define IPC_STAT 2 /* Get `ipc_perm' options. */
+#ifdef __USE_GNU
+# define IPC_INFO 3 /* See ipcs. */
+#endif
+
+/* Special key values. */
+#define IPC_PRIVATE ((__key_t) 0) /* Private key. */
+
+
+/* Data structure used to pass permission information to IPC operations. */
+struct ipc_perm
+ {
+ __key_t __key; /* Key. */
+ unsigned int uid; /* Owner's user ID. */
+ unsigned int gid; /* Owner's group ID. */
+ unsigned int cuid; /* Creator's user ID. */
+ unsigned int cgid; /* Creator's group ID. */
+ unsigned int mode; /* Read/write permission. */
+ unsigned short int __seq; /* Sequence number. */
+ unsigned short int __pad1;
+ unsigned long int __glibc_reserved1;
+ unsigned long int __glibc_reserved2;
+ };
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/alpha/bits/local_lim.h b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/bits/local_lim.h
new file mode 100644
index 0000000000..4bbd45d026
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/bits/local_lim.h
@@ -0,0 +1,99 @@
+/* Minimum guaranteed maximum values for system limits. Linux/Alpha 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 Library General Public License as
+ published by the Free Software Foundation; either version 2 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+/* The kernel header pollutes the namespace with the NR_OPEN symbol
+ and defines LINK_MAX although filesystems have different maxima. A
+ similar thing is true for OPEN_MAX: the limit can be changed at
+ runtime and therefore the macro must not be defined. Remove this
+ after including the header if necessary. */
+#ifndef NR_OPEN
+# define __undef_NR_OPEN
+#endif
+#ifndef LINK_MAX
+# define __undef_LINK_MAX
+#endif
+#ifndef OPEN_MAX
+# define __undef_OPEN_MAX
+#endif
+#ifndef ARG_MAX
+# define __undef_ARG_MAX
+#endif
+
+/* The kernel sources contain a file with all the needed information. */
+#include <linux/limits.h>
+
+/* Have to remove NR_OPEN? */
+#ifdef __undef_NR_OPEN
+# undef NR_OPEN
+# undef __undef_NR_OPEN
+#endif
+/* Have to remove LINK_MAX? */
+#ifdef __undef_LINK_MAX
+# undef LINK_MAX
+# undef __undef_LINK_MAX
+#endif
+/* Have to remove OPEN_MAX? */
+#ifdef __undef_OPEN_MAX
+# undef OPEN_MAX
+# undef __undef_OPEN_MAX
+#endif
+/* Have to remove ARG_MAX? */
+#ifdef __undef_ARG_MAX
+# undef ARG_MAX
+# undef __undef_ARG_MAX
+#endif
+
+/* The number of data keys per process. */
+#define _POSIX_THREAD_KEYS_MAX 128
+/* This is the value this implementation supports. */
+#define PTHREAD_KEYS_MAX 1024
+
+/* Controlling the iterations of destructors for thread-specific data. */
+#define _POSIX_THREAD_DESTRUCTOR_ITERATIONS 4
+/* Number of iterations this implementation does. */
+#define PTHREAD_DESTRUCTOR_ITERATIONS _POSIX_THREAD_DESTRUCTOR_ITERATIONS
+
+/* The number of threads per process. */
+#define _POSIX_THREAD_THREADS_MAX 64
+/* We have no predefined limit on the number of threads. */
+#undef PTHREAD_THREADS_MAX
+
+/* Maximum amount by which a process can descrease its asynchronous I/O
+ priority level. */
+#define AIO_PRIO_DELTA_MAX 20
+
+/* Minimum size for a thread. We are free to choose a reasonable value. */
+#define PTHREAD_STACK_MIN 24576
+
+/* Maximum number of timer expiration overruns. */
+#define DELAYTIMER_MAX 2147483647
+
+/* Maximum tty name length. */
+#define TTY_NAME_MAX 32
+
+/* Maximum login name length. This is arbitrary. */
+#define LOGIN_NAME_MAX 256
+
+/* Maximum host name length. */
+#define HOST_NAME_MAX 64
+
+/* Maximum message queue priority level. */
+#define MQ_PRIO_MAX 32768
+
+/* Maximum value the semaphore can have. */
+#define SEM_VALUE_MAX (2147483647)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/alpha/bits/mman.h b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/bits/mman.h
new file mode 100644
index 0000000000..5740188dac
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/bits/mman.h
@@ -0,0 +1,66 @@
+/* Definitions for POSIX memory map interface. Linux/Alpha version.
+ Copyright (C) 1997-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_MMAN_H
+# error "Never use <bits/mman.h> directly; include <sys/mman.h> instead."
+#endif
+
+/* The following definitions basically come from the kernel headers.
+ But the kernel header is not namespace clean. */
+
+#define __MAP_ANONYMOUS 0x10 /* Don't use a file. */
+
+/* These are Linux-specific. */
+#ifdef __USE_MISC
+# define MAP_GROWSDOWN 0x01000 /* Stack-like segment. */
+# define MAP_DENYWRITE 0x02000 /* ETXTBSY */
+# define MAP_EXECUTABLE 0x04000 /* Mark it as an executable. */
+# define MAP_LOCKED 0x08000 /* Lock the mapping. */
+# define MAP_NORESERVE 0x10000 /* Don't check for reservations. */
+# define MAP_POPULATE 0x20000 /* Populate (prefault) pagetables. */
+# define MAP_NONBLOCK 0x40000 /* Do not block on IO. */
+# define MAP_STACK 0x80000 /* Allocation is for a stack. */
+# define MAP_HUGETLB 0x100000 /* Create huge page mapping. */
+#endif
+
+/* Flags for `mlockall'. */
+#define MCL_CURRENT 8192
+#define MCL_FUTURE 16384
+#define MCL_ONFAULT 32768
+
+#include <bits/mman-linux.h>
+
+/* Values that differ from standard <mman-linux.h>. For the most part newer
+ values are shared, but older values are skewed. */
+
+#undef MAP_FIXED
+#define MAP_FIXED 0x100
+
+#undef MS_SYNC
+#define MS_SYNC 2
+#undef MS_INVALIDATE
+#define MS_INVALIDATE 4
+
+#ifdef __USE_MISC
+# undef MADV_DONTNEED
+# define MADV_DONTNEED 6
+#endif
+#ifdef __USE_XOPEN2K
+# undef POSIX_MADV_DONTNEED
+# define POSIX_MADV_DONTNEED 6
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/alpha/bits/msq.h b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/bits/msq.h
new file mode 100644
index 0000000000..e7db7dc9a9
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/bits/msq.h
@@ -0,0 +1,74 @@
+/* Copyright (C) 1995-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_MSG_H
+# error "Never use <bits/msq.h> directly; include <sys/msg.h> instead."
+#endif
+
+#include <bits/types.h>
+
+/* Define options for message queue functions. */
+#define MSG_NOERROR 010000 /* no error if message is too big */
+#ifdef __USE_GNU
+# define MSG_EXCEPT 020000 /* recv any msg except of specified type */
+# define MSG_COPY 040000 /* copy (not remove) all queue messages */
+#endif
+
+/* Types used in the structure definition. */
+typedef unsigned long int msgqnum_t;
+typedef unsigned long int msglen_t;
+
+
+/* Structure of record for one message inside the kernel.
+ The type `struct msg' is opaque. */
+struct msqid_ds
+{
+ struct ipc_perm msg_perm; /* structure describing operation permission */
+ __time_t msg_stime; /* time of last msgsnd command */
+ __time_t msg_rtime; /* time of last msgrcv command */
+ __time_t msg_ctime; /* time of last change */
+ unsigned long int __msg_cbytes; /* current number of bytes on queue */
+ msgqnum_t msg_qnum; /* number of messages currently on queue */
+ msglen_t msg_qbytes; /* max number of bytes allowed on queue */
+ __pid_t msg_lspid; /* pid of last msgsnd() */
+ __pid_t msg_lrpid; /* pid of last msgrcv() */
+ unsigned long int __glibc_reserved1;
+ unsigned long int __glibc_reserved2;
+};
+
+#ifdef __USE_MISC
+
+# define msg_cbytes __msg_cbytes
+
+/* ipcs ctl commands */
+# define MSG_STAT 11
+# define MSG_INFO 12
+
+/* buffer for msgctl calls IPC_INFO, MSG_INFO */
+struct msginfo
+ {
+ int msgpool;
+ int msgmap;
+ int msgmax;
+ int msgmnb;
+ int msgmni;
+ int msgssz;
+ int msgtql;
+ unsigned short int msgseg;
+ };
+
+#endif /* __USE_MISC */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/alpha/bits/netdb.h b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/bits/netdb.h
new file mode 100644
index 0000000000..f47af14907
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/bits/netdb.h
@@ -0,0 +1,34 @@
+/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _NETDB_H
+# error "Never include <bits/netdb.h> directly; use <netdb.h> instead."
+#endif
+
+
+/* Description of data base entry for a single network. NOTE: here a
+ poor assumption is made. The network number is expected to fit
+ into an unsigned long int variable. */
+struct netent
+{
+ char *n_name; /* Official name of network. */
+ char **n_aliases; /* Alias list. */
+ int n_addrtype; /* Net address type. */
+ /* XXX We should probably use uint32_t for the field and ensure
+ compatibility by adding appropriate padding. */
+ unsigned long int n_net; /* Network number. */
+};
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/alpha/bits/resource.h b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/bits/resource.h
new file mode 100644
index 0000000000..e5d5bc82d0
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/bits/resource.h
@@ -0,0 +1,265 @@
+/* Bit values & structures for resource limits. Alpha/Linux version.
+ Copyright (C) 1994-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_RESOURCE_H
+# error "Never use <bits/resource.h> directly; include <sys/resource.h> instead."
+#endif
+
+#include <bits/types.h>
+
+/* Transmute defines to enumerations. The macro re-definitions are
+ necessary because some programs want to test for operating system
+ features with #ifdef RUSAGE_SELF. In ISO C the reflexive
+ definition is a no-op. */
+
+/* Kinds of resource limit. */
+enum __rlimit_resource
+{
+ /* Per-process CPU limit, in seconds. */
+ RLIMIT_CPU = 0,
+#define RLIMIT_CPU RLIMIT_CPU
+
+ /* Largest file that can be created, in bytes. */
+ RLIMIT_FSIZE = 1,
+#define RLIMIT_FSIZE RLIMIT_FSIZE
+
+ /* Maximum size of data segment, in bytes. */
+ RLIMIT_DATA = 2,
+#define RLIMIT_DATA RLIMIT_DATA
+
+ /* Maximum size of stack segment, in bytes. */
+ RLIMIT_STACK = 3,
+#define RLIMIT_STACK RLIMIT_STACK
+
+ /* Largest core file that can be created, in bytes. */
+ RLIMIT_CORE = 4,
+#define RLIMIT_CORE RLIMIT_CORE
+
+ /* Largest resident set size, in bytes.
+ This affects swapping; processes that are exceeding their
+ resident set size will be more likely to have physical memory
+ taken from them. */
+ __RLIMIT_RSS = 5,
+#define RLIMIT_RSS __RLIMIT_RSS
+
+ /* Number of open files. */
+ RLIMIT_NOFILE = 6,
+ __RLIMIT_OFILE = RLIMIT_NOFILE, /* BSD name for same. */
+#define RLIMIT_NOFILE RLIMIT_NOFILE
+#define RLIMIT_OFILE __RLIMIT_OFILE
+
+ /* Address space limit (?) */
+ RLIMIT_AS = 7,
+#define RLIMIT_AS RLIMIT_AS
+
+ /* Number of processes. */
+ __RLIMIT_NPROC = 8,
+#define RLIMIT_NPROC __RLIMIT_NPROC
+
+ /* Locked-in-memory address space. */
+ __RLIMIT_MEMLOCK = 9,
+#define RLIMIT_MEMLOCK __RLIMIT_MEMLOCK
+
+ /* Maximum number of file locks. */
+ __RLIMIT_LOCKS = 10,
+#define RLIMIT_LOCKS __RLIMIT_LOCKS
+
+ /* Maximum number of pending signals. */
+ __RLIMIT_SIGPENDING = 11,
+#define RLIMIT_SIGPENDING __RLIMIT_SIGPENDING
+
+ /* Maximum bytes in POSIX message queues. */
+ __RLIMIT_MSGQUEUE = 12,
+#define RLIMIT_MSGQUEUE __RLIMIT_MSGQUEUE
+
+ /* Maximum nice priority allowed to raise to.
+ Nice levels 19 .. -20 correspond to 0 .. 39
+ values of this resource limit. */
+ __RLIMIT_NICE = 13,
+#define RLIMIT_NICE __RLIMIT_NICE
+
+ /* Maximum realtime priority allowed for non-priviledged
+ processes. */
+ __RLIMIT_RTPRIO = 14,
+#define RLIMIT_RTPRIO __RLIMIT_RTPRIO
+
+ /* Maximum CPU time in µs that a process scheduled under a real-time
+ scheduling policy may consume without making a blocking system
+ call before being forcibly descheduled. */
+ __RLIMIT_RTTIME = 15,
+#define RLIMIT_RTTIME __RLIMIT_RTTIME
+
+ __RLIMIT_NLIMITS = 16,
+ __RLIM_NLIMITS = __RLIMIT_NLIMITS
+#define RLIMIT_NLIMITS __RLIMIT_NLIMITS
+#define RLIM_NLIMITS __RLIM_NLIMITS
+};
+
+/* Value to indicate that there is no limit. */
+#ifndef __USE_FILE_OFFSET64
+# define RLIM_INFINITY ((long int)(~0UL >> 1))
+#else
+# define RLIM_INFINITY 0x7fffffffffffffffLL
+#endif
+
+#ifdef __USE_LARGEFILE64
+# define RLIM64_INFINITY 0x7fffffffffffffffLL
+#endif
+
+/* We can represent all limits. */
+#define RLIM_SAVED_MAX RLIM_INFINITY
+#define RLIM_SAVED_CUR RLIM_INFINITY
+
+
+/* Type for resource quantity measurement. */
+#ifndef __USE_FILE_OFFSET64
+typedef __rlim_t rlim_t;
+#else
+typedef __rlim64_t rlim_t;
+#endif
+#ifdef __USE_LARGEFILE64
+typedef __rlim64_t rlim64_t;
+#endif
+
+struct rlimit
+ {
+ /* The current (soft) limit. */
+ rlim_t rlim_cur;
+ /* The hard limit. */
+ rlim_t rlim_max;
+ };
+
+#ifdef __USE_LARGEFILE64
+struct rlimit64
+ {
+ /* The current (soft) limit. */
+ rlim64_t rlim_cur;
+ /* The hard limit. */
+ rlim64_t rlim_max;
+ };
+#endif
+
+/* Whose usage statistics do you want? */
+enum __rusage_who
+{
+ /* The calling process. */
+ RUSAGE_SELF = 0,
+#define RUSAGE_SELF RUSAGE_SELF
+
+ /* All of its terminated child processes. */
+ RUSAGE_CHILDREN = -1
+#define RUSAGE_CHILDREN RUSAGE_CHILDREN
+
+#ifdef __USE_GNU
+ ,
+ /* The calling thread. */
+ RUSAGE_THREAD = 1
+# define RUSAGE_THREAD RUSAGE_THREAD
+ /* Name for the same functionality on Solaris. */
+# define RUSAGE_LWP RUSAGE_THREAD
+#endif
+};
+
+#include <bits/types/struct_timeval.h>
+
+/* Structure which says how much of each resource has been used. */
+struct rusage
+ {
+ /* Total amount of user time used. */
+ struct timeval ru_utime;
+ /* Total amount of system time used. */
+ struct timeval ru_stime;
+ /* Maximum resident set size (in kilobytes). */
+ long int ru_maxrss;
+ /* Amount of sharing of text segment memory
+ with other processes (kilobyte-seconds). */
+ long int ru_ixrss;
+ /* Amount of data segment memory used (kilobyte-seconds). */
+ long int ru_idrss;
+ /* Amount of stack memory used (kilobyte-seconds). */
+ long int ru_isrss;
+ /* Number of soft page faults (i.e. those serviced by reclaiming
+ a page from the list of pages awaiting reallocation. */
+ long int ru_minflt;
+ /* Number of hard page faults (i.e. those that required I/O). */
+ long int ru_majflt;
+ /* Number of times a process was swapped out of physical memory. */
+ long int ru_nswap;
+ /* Number of input operations via the file system. Note: This
+ and `ru_oublock' do not include operations with the cache. */
+ long int ru_inblock;
+ /* Number of output operations via the file system. */
+ long int ru_oublock;
+ /* Number of IPC messages sent. */
+ long int ru_msgsnd;
+ /* Number of IPC messages received. */
+ long int ru_msgrcv;
+ /* Number of signals delivered. */
+ long int ru_nsignals;
+ /* Number of voluntary context switches, i.e. because the process
+ gave up the process before it had to (usually to wait for some
+ resource to be available). */
+ long int ru_nvcsw;
+ /* Number of involuntary context switches, i.e. a higher priority process
+ became runnable or the current process used up its time slice. */
+ long int ru_nivcsw;
+ };
+
+/* Priority limits. */
+#define PRIO_MIN -20 /* Minimum priority a process can have. */
+#define PRIO_MAX 20 /* Maximum priority a process can have. */
+
+/* The type of the WHICH argument to `getpriority' and `setpriority',
+ indicating what flavor of entity the WHO argument specifies. */
+enum __priority_which
+{
+ PRIO_PROCESS = 0, /* WHO is a process ID. */
+#define PRIO_PROCESS PRIO_PROCESS
+ PRIO_PGRP = 1, /* WHO is a process group ID. */
+#define PRIO_PGRP PRIO_PGRP
+ PRIO_USER = 2 /* WHO is a user ID. */
+#define PRIO_USER PRIO_USER
+};
+
+
+__BEGIN_DECLS
+
+#ifdef __USE_GNU
+/* Modify and return resource limits of a process atomically. */
+# ifndef __USE_FILE_OFFSET64
+extern int prlimit (__pid_t __pid, enum __rlimit_resource __resource,
+ const struct rlimit *__new_limit,
+ struct rlimit *__old_limit) __THROW;
+# else
+# ifdef __REDIRECT_NTH
+extern int __REDIRECT_NTH (prlimit, (__pid_t __pid,
+ enum __rlimit_resource __resource,
+ const struct rlimit *__new_limit,
+ struct rlimit *__old_limit), prlimit64);
+# else
+# define prlimit prlimit64
+# endif
+# endif
+# ifdef __USE_LARGEFILE64
+extern int prlimit64 (__pid_t __pid, enum __rlimit_resource __resource,
+ const struct rlimit64 *__new_limit,
+ struct rlimit64 *__old_limit) __THROW;
+# endif
+#endif
+
+__END_DECLS
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/alpha/bits/sem.h b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/bits/sem.h
new file mode 100644
index 0000000000..36de4390e8
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/bits/sem.h
@@ -0,0 +1,84 @@
+/* Copyright (C) 1995-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_SEM_H
+# error "Never include <bits/sem.h> directly; use <sys/sem.h> instead."
+#endif
+
+#include <sys/types.h>
+
+/* Flags for `semop'. */
+#define SEM_UNDO 0x1000 /* undo the operation on exit */
+
+/* Commands for `semctl'. */
+#define GETPID 11 /* get sempid */
+#define GETVAL 12 /* get semval */
+#define GETALL 13 /* get all semval's */
+#define GETNCNT 14 /* get semncnt */
+#define GETZCNT 15 /* get semzcnt */
+#define SETVAL 16 /* set semval */
+#define SETALL 17 /* set all semval's */
+
+
+/* Data structure describing a set of semaphores. */
+struct semid_ds
+{
+ struct ipc_perm sem_perm; /* operation permission struct */
+ __time_t sem_otime; /* last semop() time */
+ __time_t sem_ctime; /* last time changed by semctl() */
+ unsigned long int sem_nsems; /* number of semaphores in set */
+ unsigned long int __glibc_reserved1;
+ unsigned long int __glibc_reserved2;
+};
+
+/* The user should define a union like the following to use it for arguments
+ for `semctl'.
+
+ union semun
+ {
+ int val; <= value for SETVAL
+ struct semid_ds *buf; <= buffer for IPC_STAT & IPC_SET
+ unsigned short int *array; <= array for GETALL & SETALL
+ struct seminfo *__buf; <= buffer for IPC_INFO
+ };
+
+ Previous versions of this file used to define this union but this is
+ incorrect. One can test the macro _SEM_SEMUN_UNDEFINED to see whether
+ one must define the union or not. */
+#define _SEM_SEMUN_UNDEFINED 1
+
+#ifdef __USE_MISC
+
+/* ipcs ctl cmds */
+# define SEM_STAT 18
+# define SEM_INFO 19
+
+struct seminfo
+{
+ int semmap;
+ int semmni;
+ int semmns;
+ int semmnu;
+ int semmsl;
+ int semopm;
+ int semume;
+ int semusz;
+ int semvmx;
+ int semaem;
+};
+
+#endif /* __USE_MISC */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/alpha/bits/semaphore.h b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/bits/semaphore.h
new file mode 100644
index 0000000000..3038a26155
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/bits/semaphore.h
@@ -0,0 +1,33 @@
+/* Machine-specific POSIX semaphore type layouts. Alpha version.
+ Copyright (C) 2003-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SEMAPHORE_H
+# error "Never use <bits/semaphore.h> directly; include <semaphore.h> instead."
+#endif
+
+# define __SIZEOF_SEM_T 32
+
+/* Value returned if `sem_open' failed. */
+#define SEM_FAILED ((sem_t *) 0)
+
+
+typedef union
+{
+ char __size[__SIZEOF_SEM_T];
+ long int __align;
+} sem_t;
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/alpha/bits/shm.h b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/bits/shm.h
new file mode 100644
index 0000000000..d628dcf37c
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/bits/shm.h
@@ -0,0 +1,100 @@
+/* Copyright (C) 1995-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_SHM_H
+# error "Never include <bits/shm.h> directly; use <sys/shm.h> instead."
+#endif
+
+#include <bits/types.h>
+
+/* Permission flag for shmget. */
+#define SHM_R 0400 /* or S_IRUGO from <linux/stat.h> */
+#define SHM_W 0200 /* or S_IWUGO from <linux/stat.h> */
+
+/* Flags for `shmat'. */
+#define SHM_RDONLY 010000 /* attach read-only else read-write */
+#define SHM_RND 020000 /* round attach address to SHMLBA */
+#define SHM_REMAP 040000 /* take-over region on attach */
+#define SHM_EXEC 0100000 /* execution access */
+
+/* Commands for `shmctl'. */
+#define SHM_LOCK 11 /* lock segment (root only) */
+#define SHM_UNLOCK 12 /* unlock segment (root only) */
+
+__BEGIN_DECLS
+
+/* Segment low boundary address multiple. */
+#define SHMLBA (__getpagesize ())
+extern int __getpagesize (void) __THROW __attribute__ ((__const__));
+
+
+/* Type to count number of attaches. */
+typedef unsigned long int shmatt_t;
+
+/* Data structure describing a shared memory segment. */
+struct shmid_ds
+ {
+ struct ipc_perm shm_perm; /* operation permission struct */
+ size_t shm_segsz; /* size of segment in bytes */
+ __time_t shm_atime; /* time of last shmat() */
+ __time_t shm_dtime; /* time of last shmdt() */
+ __time_t shm_ctime; /* time of last change by shmctl() */
+ __pid_t shm_cpid; /* pid of creator */
+ __pid_t shm_lpid; /* pid of last shmop */
+ shmatt_t shm_nattch; /* number of current attaches */
+ unsigned long int __glibc_reserved1;
+ unsigned long int __glibc_reserved2;
+ };
+
+#ifdef __USE_MISC
+
+/* ipcs ctl commands */
+# define SHM_STAT 13
+# define SHM_INFO 14
+
+/* shm_mode upper byte flags */
+# define SHM_DEST 01000 /* segment will be destroyed on last detach */
+# define SHM_LOCKED 02000 /* segment will not be swapped */
+# define SHM_HUGETLB 04000 /* segment is mapped via hugetlb */
+# define SHM_NORESERVE 010000 /* don't check for reservations */
+
+struct shminfo
+ {
+ unsigned long int shmmax;
+ unsigned long int shmmin;
+ unsigned long int shmmni;
+ unsigned long int shmseg;
+ unsigned long int shmall;
+ unsigned long int __glibc_reserved1;
+ unsigned long int __glibc_reserved2;
+ unsigned long int __glibc_reserved3;
+ unsigned long int __glibc_reserved4;
+ };
+
+struct shm_info
+ {
+ int used_ids;
+ unsigned long int shm_tot; /* total allocated shm */
+ unsigned long int shm_rss; /* total resident shm */
+ unsigned long int shm_swp; /* total swapped shm */
+ unsigned long int swap_attempts;
+ unsigned long int swap_successes;
+ };
+
+#endif /* __USE_MISC */
+
+__END_DECLS
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/alpha/bits/sigaction.h b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/bits/sigaction.h
new file mode 100644
index 0000000000..42eaa818a5
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/bits/sigaction.h
@@ -0,0 +1,75 @@
+/* The proper definitions for Linux/Alpha sigaction.
+ Copyright (C) 1996-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SIGNAL_H
+# error "Never include <bits/sigaction.h> directly; use <signal.h> instead."
+#endif
+
+/* Structure describing the action to be taken when a signal arrives. */
+struct sigaction
+ {
+ /* Signal handler. */
+#ifdef __USE_POSIX199309
+ union
+ {
+ /* Used if SA_SIGINFO is not set. */
+ __sighandler_t sa_handler;
+ /* Used if SA_SIGINFO is set. */
+ void (*sa_sigaction) (int, siginfo_t *, void *);
+ }
+ __sigaction_handler;
+# define sa_handler __sigaction_handler.sa_handler
+# define sa_sigaction __sigaction_handler.sa_sigaction
+#else
+ __sighandler_t sa_handler;
+#endif
+
+ /* Additional set of signals to be blocked. */
+ __sigset_t sa_mask;
+
+ /* Special flags. */
+ int sa_flags;
+ };
+
+/* Bits in `sa_flags'. */
+#define SA_NOCLDSTOP 0x00000004 /* Don't send SIGCHLD when children stop. */
+#define SA_NOCLDWAIT 0x00000020 /* Don't create zombie on child death. */
+#define SA_SIGINFO 0x00000040 /* Invoke signal-catching function with
+ three arguments instead of one. */
+#if defined __USE_UNIX98 || defined __USE_MISC
+# define SA_ONSTACK 0x00000001 /* Use signal stack by using `sa_restorer'. */
+#endif
+#if defined __USE_UNIX98 || defined __USE_XOPEN2K8
+# define SA_RESTART 0x00000002 /* Restart syscall on signal return. */
+# define SA_NODEFER 0x00000008 /* Don't automatically block the signal
+ when its handler is being executed. */
+# define SA_RESETHAND 0x00000010 /* Reset to SIG_DFL on entry to handler. */
+#endif
+#ifdef __USE_MISC
+# define SA_INTERRUPT 0x20000000 /* Historical no-op. */
+
+/* Some aliases for the SA_ constants. */
+# define SA_NOMASK SA_NODEFER
+# define SA_ONESHOT SA_RESETHAND
+# define SA_STACK SA_ONSTACK
+#endif
+
+/* Values for the HOW argument to `sigprocmask'. */
+#define SIG_BLOCK 1 /* Block signals. */
+#define SIG_UNBLOCK 2 /* Unblock signals. */
+#define SIG_SETMASK 3 /* Set the set of blocked signals. */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/alpha/bits/signalfd.h b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/bits/signalfd.h
new file mode 100644
index 0000000000..cca91f281b
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/bits/signalfd.h
@@ -0,0 +1,29 @@
+/* Copyright (C) 2007-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_SIGNALFD_H
+# error "Never use <bits/signalfd.h> directly; include <sys/signalfd.h> instead."
+#endif
+
+/* Flags for signalfd. */
+enum
+ {
+ SFD_CLOEXEC = 010000000,
+#define SFD_CLOEXEC SFD_CLOEXEC
+ SFD_NONBLOCK = 000000004
+#define SFD_NONBLOCK SFD_NONBLOCK
+ };
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/alpha/bits/signum.h b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/bits/signum.h
new file mode 100644
index 0000000000..e5cc5218e3
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/bits/signum.h
@@ -0,0 +1,81 @@
+/* Signal number definitions. Linux/Alpha version.
+ Copyright (C) 1996-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifdef _SIGNAL_H
+
+/* Fake signal functions. */
+#define SIG_ERR ((__sighandler_t) -1) /* Error return. */
+#define SIG_DFL ((__sighandler_t) 0) /* Default action. */
+#define SIG_IGN ((__sighandler_t) 1) /* Ignore signal. */
+
+#ifdef __USE_XOPEN
+# define SIG_HOLD ((__sighandler_t) 2) /* Add signal to hold mask. */
+#endif
+
+/*
+ * Linux/AXP has different signal numbers that Linux/i386: I'm trying
+ * to make it OSF/1 binary compatible, at least for normal binaries.
+ */
+#define SIGHUP 1
+#define SIGINT 2
+#define SIGQUIT 3
+#define SIGILL 4
+#define SIGTRAP 5
+#define SIGABRT 6
+#define SIGEMT 7
+#define SIGFPE 8
+#define SIGKILL 9
+#define SIGBUS 10
+#define SIGSEGV 11
+#define SIGSYS 12
+#define SIGPIPE 13
+#define SIGALRM 14
+#define SIGTERM 15
+#define SIGURG 16
+#define SIGSTOP 17
+#define SIGTSTP 18
+#define SIGCONT 19
+#define SIGCHLD 20
+#define SIGCLD SIGCHLD
+#define SIGTTIN 21
+#define SIGTTOU 22
+#define SIGIO 23
+#define SIGXCPU 24
+#define SIGXFSZ 25
+#define SIGVTALRM 26
+#define SIGPROF 27
+#define SIGWINCH 28
+#define SIGINFO 29
+#define SIGUSR1 30
+#define SIGUSR2 31
+
+#define SIGPOLL SIGIO
+#define SIGPWR SIGINFO
+#define SIGIOT SIGABRT
+
+#define _NSIG 65 /* Biggest signal number + 1. */
+
+#define SIGRTMIN (__libc_current_sigrtmin ())
+#define SIGRTMAX (__libc_current_sigrtmax ())
+
+/* These are the hard limits of the kernel. These values should not be
+ used directly at user level. */
+#define __SIGRTMIN 32
+#define __SIGRTMAX (_NSIG - 1)
+
+#endif /* <signal.h> included. */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/alpha/bits/sigstack.h b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/bits/sigstack.h
new file mode 100644
index 0000000000..9a30c9d9d5
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/bits/sigstack.h
@@ -0,0 +1,32 @@
+/* sigstack, sigaltstack definitions.
+ Copyright (C) 1998-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _BITS_SIGSTACK_H
+#define _BITS_SIGSTACK_H 1
+
+#if !defined _SIGNAL_H && !defined _SYS_UCONTEXT_H
+# error "Never include this file directly. Use <signal.h> instead"
+#endif
+
+/* Minimum stack size for a signal handler. */
+#define MINSIGSTKSZ 4096
+
+/* System default stack size. */
+#define SIGSTKSZ 16384
+
+#endif /* bits/sigstack.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/alpha/bits/socket_type.h b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/bits/socket_type.h
new file mode 100644
index 0000000000..aa83fbaaf7
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/bits/socket_type.h
@@ -0,0 +1,55 @@
+/* Define enum __socket_type for Linux/Alpha.
+ Copyright (C) 1991-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_SOCKET_H
+# error "Never include <bits/socket_type.h> directly; use <sys/socket.h> instead."
+#endif
+
+/* Types of sockets. */
+enum __socket_type
+{
+ SOCK_STREAM = 1, /* Sequenced, reliable, connection-based
+ byte streams. */
+#define SOCK_STREAM SOCK_STREAM
+ SOCK_DGRAM = 2, /* Connectionless, unreliable datagrams
+ of fixed maximum length. */
+#define SOCK_DGRAM SOCK_DGRAM
+ SOCK_RAW = 3, /* Raw protocol interface. */
+#define SOCK_RAW SOCK_RAW
+ SOCK_RDM = 4, /* Reliably-delivered messages. */
+#define SOCK_RDM SOCK_RDM
+ SOCK_SEQPACKET = 5, /* Sequenced, reliable, connection-based,
+ datagrams of fixed maximum length. */
+#define SOCK_SEQPACKET SOCK_SEQPACKET
+ SOCK_DCCP = 6, /* Datagram Congestion Control Protocol. */
+#define SOCK_DCCP SOCK_DCCP
+ SOCK_PACKET = 10, /* Linux specific way of getting packets
+ at the dev level. For writing rarp and
+ other similar things on the user level. */
+#define SOCK_PACKET SOCK_PACKET
+
+ /* Flags to be ORed into the type parameter of socket and socketpair and
+ used for the flags parameter of paccept. */
+
+ SOCK_CLOEXEC = 010000000, /* Atomically set close-on-exec flag for the
+ new descriptor(s). */
+#define SOCK_CLOEXEC SOCK_CLOEXEC
+ SOCK_NONBLOCK = 0x40000000 /* Atomically mark descriptor(s) as
+ non-blocking. */
+#define SOCK_NONBLOCK SOCK_NONBLOCK
+};
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/alpha/bits/stat.h b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/bits/stat.h
new file mode 100644
index 0000000000..83e78bc1f6
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/bits/stat.h
@@ -0,0 +1,160 @@
+/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#if !defined _SYS_STAT_H && !defined _FCNTL_H
+# error "Never include <bits/stat.h> directly; use <sys/stat.h> instead."
+#endif
+
+#ifndef _BITS_STAT_H
+#define _BITS_STAT_H 1
+
+/* Versions of the `struct stat' data structure. */
+#define _STAT_VER_KERNEL 0
+#define _STAT_VER_GLIBC2 1
+#define _STAT_VER_GLIBC2_1 2
+#define _STAT_VER_KERNEL64 3
+#define _STAT_VER_GLIBC2_3_4 3
+#define _STAT_VER_LINUX 3
+#define _STAT_VER _STAT_VER_LINUX
+
+/* Versions of the `xmknod' interface. */
+#define _MKNOD_VER_LINUX 0
+
+
+/* Nanosecond resolution timestamps are stored in a format equivalent to
+ 'struct timespec'. This is the type used whenever possible but the
+ Unix namespace rules do not allow the identifier 'timespec' to appear
+ in the <sys/stat.h> header. Therefore we have to handle the use of
+ this header in strictly standard-compliant sources special.
+
+ Use neat tidy anonymous unions and structures when possible. */
+
+#ifdef __USE_XOPEN2K8
+# if __GNUC_PREREQ(3,3)
+# define __ST_TIME(X) \
+ __extension__ union { \
+ struct timespec st_##X##tim; \
+ struct { \
+ __time_t st_##X##time; \
+ unsigned long st_##X##timensec; \
+ }; \
+ }
+# else
+# define __ST_TIME(X) struct timespec st_##X##tim
+# define st_atime st_atim.tv_sec
+# define st_mtime st_mtim.tv_sec
+# define st_ctime st_ctim.tv_sec
+# endif
+#else
+# define __ST_TIME(X) \
+ __time_t st_##X##time; \
+ unsigned long st_##X##timensec
+#endif
+
+
+struct stat
+ {
+ __dev_t st_dev; /* Device. */
+#ifdef __USE_FILE_OFFSET64
+ __ino64_t st_ino; /* File serial number. */
+#else
+ __ino_t st_ino; /* File serial number. */
+ int __pad0; /* 64-bit st_ino. */
+#endif
+ __dev_t st_rdev; /* Device number, if device. */
+ __off_t st_size; /* Size of file, in bytes. */
+#ifdef __USE_FILE_OFFSET64
+ __blkcnt64_t st_blocks; /* Nr. 512-byte blocks allocated. */
+#else
+ __blkcnt_t st_blocks; /* Nr. 512-byte blocks allocated. */
+ int __pad1; /* 64-bit st_blocks. */
+#endif
+ __mode_t st_mode; /* File mode. */
+ __uid_t st_uid; /* User ID of the file's owner. */
+ __gid_t st_gid; /* Group ID of the file's group.*/
+ __blksize_t st_blksize; /* Optimal block size for I/O. */
+ __nlink_t st_nlink; /* Link count. */
+ int __pad2; /* Real padding. */
+ __ST_TIME(a); /* Time of last access. */
+ __ST_TIME(m); /* Time of last modification. */
+ __ST_TIME(c); /* Time of last status change. */
+ long __glibc_reserved[3];
+ };
+
+#ifdef __USE_LARGEFILE64
+/* Note stat64 is the same shape as stat. */
+struct stat64
+ {
+ __dev_t st_dev; /* Device. */
+ __ino64_t st_ino; /* File serial number. */
+ __dev_t st_rdev; /* Device number, if device. */
+ __off_t st_size; /* Size of file, in bytes. */
+ __blkcnt64_t st_blocks; /* Nr. 512-byte blocks allocated. */
+ __mode_t st_mode; /* File mode. */
+ __uid_t st_uid; /* User ID of the file's owner. */
+ __gid_t st_gid; /* Group ID of the file's group.*/
+ __blksize_t st_blksize; /* Optimal block size for I/O. */
+ __nlink_t st_nlink; /* Link count. */
+ int __pad0; /* Real padding. */
+ __ST_TIME(a); /* Time of last access. */
+ __ST_TIME(m); /* Time of last modification. */
+ __ST_TIME(c); /* Time of last status change. */
+ long __glibc_reserved[3];
+ };
+#endif
+
+#undef __ST_TIME
+
+/* Tell code we have these members. */
+#define _STATBUF_ST_BLKSIZE
+#define _STATBUF_ST_RDEV
+#define _STATBUF_ST_NSEC
+
+/* Encoding of the file mode. */
+
+#define __S_IFMT 0170000 /* These bits determine file type. */
+
+/* File types. */
+#define __S_IFDIR 0040000 /* Directory. */
+#define __S_IFCHR 0020000 /* Character device. */
+#define __S_IFBLK 0060000 /* Block device. */
+#define __S_IFREG 0100000 /* Regular file. */
+#define __S_IFIFO 0010000 /* FIFO. */
+#define __S_IFLNK 0120000 /* Symbolic link. */
+#define __S_IFSOCK 0140000 /* Socket. */
+
+/* POSIX.1b objects. Note that these macros always evaluate to zero. But
+ they do it by enforcing the correct use of the macros. */
+#define __S_TYPEISMQ(buf) ((buf)->st_mode - (buf)->st_mode)
+#define __S_TYPEISSEM(buf) ((buf)->st_mode - (buf)->st_mode)
+#define __S_TYPEISSHM(buf) ((buf)->st_mode - (buf)->st_mode)
+
+/* Protection bits. */
+
+#define __S_ISUID 04000 /* Set user ID on execution. */
+#define __S_ISGID 02000 /* Set group ID on execution. */
+#define __S_ISVTX 01000 /* Save swapped text after use (sticky). */
+#define __S_IREAD 0400 /* Read by owner. */
+#define __S_IWRITE 0200 /* Write by owner. */
+#define __S_IEXEC 0100 /* Execute by owner. */
+
+#ifdef __USE_ATFILE
+# define UTIME_NOW ((1l << 30) - 1l)
+# define UTIME_OMIT ((1l << 30) - 2l)
+#endif
+
+#endif /* bits/stat.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/alpha/bits/statfs.h b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/bits/statfs.h
new file mode 100644
index 0000000000..185e82bf5a
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/bits/statfs.h
@@ -0,0 +1,68 @@
+/* Copyright (C) 1997-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_STATFS_H
+# error "Never include <bits/statfs.h> directly; use <sys/statfs.h> instead."
+#endif
+
+#include <bits/types.h> /* for __fsid_t and __fsblkcnt_t. */
+
+struct statfs
+ {
+ int f_type;
+ int f_bsize;
+#ifndef __USE_FILE_OFFSET64
+ __fsblkcnt_t f_blocks;
+ __fsblkcnt_t f_bfree;
+ __fsblkcnt_t f_bavail;
+ __fsfilcnt_t f_files;
+ __fsfilcnt_t f_ffree;
+#else
+ __fsblkcnt64_t f_blocks;
+ __fsblkcnt64_t f_bfree;
+ __fsblkcnt64_t f_bavail;
+ __fsfilcnt64_t f_files;
+ __fsfilcnt64_t f_ffree;
+#endif
+ __fsid_t f_fsid;
+ int f_namelen;
+ int f_frsize;
+ int f_flags;
+ int f_spare[4];
+ };
+
+#ifdef __USE_LARGEFILE64
+struct statfs64
+ {
+ int f_type;
+ int f_bsize;
+ __fsblkcnt64_t f_blocks;
+ __fsblkcnt64_t f_bfree;
+ __fsblkcnt64_t f_bavail;
+ __fsfilcnt64_t f_files;
+ __fsfilcnt64_t f_ffree;
+ __fsid_t f_fsid;
+ int f_namelen;
+ int f_frsize;
+ int f_flags;
+ int f_spare[4];
+ };
+#endif
+
+/* Tell code we have this member. */
+#define _STATFS_F_NAMELEN
+#define _STATFS_F_FRSIZE
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/alpha/bits/termios.h b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/bits/termios.h
new file mode 100644
index 0000000000..19f717bba6
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/bits/termios.h
@@ -0,0 +1,223 @@
+/* termios type and macro definitions. Linux version.
+ Copyright (C) 1993-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _TERMIOS_H
+# error "Never include <bits/termios.h> directly; use <termios.h> instead."
+#endif
+
+typedef unsigned char cc_t;
+typedef unsigned int speed_t;
+typedef unsigned int tcflag_t;
+
+#define NCCS 32
+struct termios
+ {
+ tcflag_t c_iflag; /* input mode flags */
+ tcflag_t c_oflag; /* output mode flags */
+ tcflag_t c_cflag; /* control mode flags */
+ tcflag_t c_lflag; /* local mode flags */
+ cc_t c_cc[NCCS]; /* control characters */
+ cc_t c_line; /* line discipline (== c_cc[33]) */
+ speed_t c_ispeed; /* input speed */
+ speed_t c_ospeed; /* output speed */
+#define _HAVE_STRUCT_TERMIOS_C_ISPEED 1
+#define _HAVE_STRUCT_TERMIOS_C_OSPEED 1
+ };
+
+/* c_cc characters */
+#define VEOF 0
+#define VEOL 1
+#define VEOL2 2
+#define VERASE 3
+#define VWERASE 4
+#define VKILL 5
+#define VREPRINT 6
+#define VSWTC 7
+#define VINTR 8
+#define VQUIT 9
+#define VSUSP 10
+#define VSTART 12
+#define VSTOP 13
+#define VLNEXT 14
+#define VDISCARD 15
+#define VMIN 16
+#define VTIME 17
+
+/* c_iflag bits */
+#define IGNBRK 0000001
+#define BRKINT 0000002
+#define IGNPAR 0000004
+#define PARMRK 0000010
+#define INPCK 0000020
+#define ISTRIP 0000040
+#define INLCR 0000100
+#define IGNCR 0000200
+#define ICRNL 0000400
+#define IXON 0001000
+#define IXOFF 0002000
+#define IXANY 0004000
+#define IUCLC 0010000
+#define IMAXBEL 0020000
+#define IUTF8 0040000
+
+/* c_oflag bits */
+#define OPOST 0000001
+#define ONLCR 0000002
+#define OLCUC 0000004
+
+#define OCRNL 0000010
+#define ONOCR 0000020
+#define ONLRET 0000040
+
+#define OFILL 00000100
+#define OFDEL 00000200
+#if defined __USE_MISC || defined __USE_XOPEN
+# define NLDLY 00001400
+# define NL0 00000000
+# define NL1 00000400
+# if defined __USE_MISC
+# define NL2 00001000
+# define NL3 00001400
+# endif
+# define TABDLY 00006000
+# define TAB0 00000000
+# define TAB1 00002000
+# define TAB2 00004000
+# define TAB3 00006000
+# define CRDLY 00030000
+# define CR0 00000000
+# define CR1 00010000
+# define CR2 00020000
+# define CR3 00030000
+# define FFDLY 00040000
+# define FF0 00000000
+# define FF1 00040000
+# define BSDLY 00100000
+# define BS0 00000000
+# define BS1 00100000
+#endif
+
+#define VTDLY 00200000
+#define VT0 00000000
+#define VT1 00200000
+
+#ifdef __USE_MISC
+# define XTABS 01000000 /* Hmm.. Linux/i386 considers this part of TABDLY.. */
+#endif
+
+/* c_cflag bit meaning */
+#ifdef __USE_MISC
+# define CBAUD 0000037
+#endif
+#define B0 0000000 /* hang up */
+#define B50 0000001
+#define B75 0000002
+#define B110 0000003
+#define B134 0000004
+#define B150 0000005
+#define B200 0000006
+#define B300 0000007
+#define B600 0000010
+#define B1200 0000011
+#define B1800 0000012
+#define B2400 0000013
+#define B4800 0000014
+#define B9600 0000015
+#define B19200 0000016
+#define B38400 0000017
+#ifdef __USE_MISC
+# define EXTA B19200
+# define EXTB B38400
+# define CBAUDEX 0000000
+#endif
+#define B57600 00020
+#define B115200 00021
+#define B230400 00022
+#define B460800 00023
+#define B500000 00024
+#define B576000 00025
+#define B921600 00026
+#define B1000000 00027
+#define B1152000 00030
+#define B1500000 00031
+#define B2000000 00032
+#define B2500000 00033
+#define B3000000 00034
+#define B3500000 00035
+#define B4000000 00036
+
+#define __MAX_BAUD B4000000
+
+#define CSIZE 00001400
+#define CS5 00000000
+#define CS6 00000400
+#define CS7 00001000
+#define CS8 00001400
+
+#define CSTOPB 00002000
+#define CREAD 00004000
+#define PARENB 00010000
+#define PARODD 00020000
+#define HUPCL 00040000
+
+#define CLOCAL 00100000
+#ifdef __USE_MISC
+# define CMSPAR 010000000000 /* mark or space (stick) parity */
+# define CRTSCTS 020000000000 /* flow control */
+#endif
+
+/* c_lflag bits */
+#define ISIG 0x00000080
+#define ICANON 0x00000100
+#if defined __USE_MISC || (defined __USE_XOPEN && !defined __USE_XOPEN2K)
+# define XCASE 0x00004000
+#endif
+#define ECHO 0x00000008
+#define ECHOE 0x00000002
+#define ECHOK 0x00000004
+#define ECHONL 0x00000010
+#define NOFLSH 0x80000000
+#define TOSTOP 0x00400000
+#ifdef __USE_MISC
+# define ECHOCTL 0x00000040
+# define ECHOPRT 0x00000020
+# define ECHOKE 0x00000001
+# define FLUSHO 0x00800000
+# define PENDIN 0x20000000
+#endif
+#define IEXTEN 0x00000400
+
+/* Values for the ACTION argument to `tcflow'. */
+#define TCOOFF 0
+#define TCOON 1
+#define TCIOFF 2
+#define TCION 3
+
+/* Values for the QUEUE_SELECTOR argument to `tcflush'. */
+#define TCIFLUSH 0
+#define TCOFLUSH 1
+#define TCIOFLUSH 2
+
+/* Values for the OPTIONAL_ACTIONS argument to `tcsetattr'. */
+#define TCSANOW 0
+#define TCSADRAIN 1
+#define TCSAFLUSH 2
+
+
+#define _IOT_termios /* Hurd ioctl type field. */ \
+ _IOT (_IOTS (cflag_t), 4, _IOTS (cc_t), NCCS, _IOTS (speed_t), 2)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/alpha/bits/timerfd.h b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/bits/timerfd.h
new file mode 100644
index 0000000000..5344b9f358
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/bits/timerfd.h
@@ -0,0 +1,29 @@
+/* Copyright (C) 2008-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_TIMERFD_H
+# error "Never use <bits/timerfd.h> directly; include <sys/timerfd.h> instead."
+#endif
+
+/* Bits to be set in the FLAGS parameter of `timerfd_create'. */
+enum
+ {
+ TFD_CLOEXEC = 010000000,
+#define TFD_CLOEXEC TFD_CLOEXEC
+ TFD_NONBLOCK = 000000004
+#define TFD_NONBLOCK TFD_NONBLOCK
+ };
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/alpha/bits/typesizes.h b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/bits/typesizes.h
new file mode 100644
index 0000000000..d7e170c9a5
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/bits/typesizes.h
@@ -0,0 +1,76 @@
+/* bits/typesizes.h -- underlying types for *_t. Linux/Alpha version.
+ Copyright (C) 2002-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _BITS_TYPES_H
+# error "Never include <bits/typesizes.h> directly; use <sys/types.h> instead."
+#endif
+
+#ifndef _BITS_TYPESIZES_H
+#define _BITS_TYPESIZES_H 1
+
+/* See <bits/types.h> for the meaning of these macros. This file exists so
+ that <bits/types.h> need not vary across different GNU platforms. */
+
+#define __DEV_T_TYPE __U64_TYPE
+#define __UID_T_TYPE __U32_TYPE
+#define __GID_T_TYPE __U32_TYPE
+#define __INO_T_TYPE __U32_TYPE
+#define __INO64_T_TYPE __U64_TYPE
+#define __MODE_T_TYPE __U32_TYPE
+#define __NLINK_T_TYPE __U32_TYPE
+#define __OFF_T_TYPE __SLONGWORD_TYPE
+#define __OFF64_T_TYPE __S64_TYPE
+#define __PID_T_TYPE __S32_TYPE
+#define __RLIM_T_TYPE __ULONGWORD_TYPE
+#define __RLIM64_T_TYPE __U64_TYPE
+#define __BLKCNT_T_TYPE __U32_TYPE
+#define __BLKCNT64_T_TYPE __U64_TYPE
+#define __FSBLKCNT_T_TYPE __S32_TYPE
+#define __FSBLKCNT64_T_TYPE __S64_TYPE
+#define __FSFILCNT_T_TYPE __U32_TYPE
+#define __FSFILCNT64_T_TYPE __U64_TYPE
+#define __ID_T_TYPE __U32_TYPE
+#define __CLOCK_T_TYPE __SLONGWORD_TYPE
+#define __TIME_T_TYPE __SLONGWORD_TYPE
+#define __USECONDS_T_TYPE __U32_TYPE
+#define __SUSECONDS_T_TYPE __S64_TYPE
+#define __DADDR_T_TYPE __S32_TYPE
+#define __KEY_T_TYPE __S32_TYPE
+#define __CLOCKID_T_TYPE __S32_TYPE
+#define __TIMER_T_TYPE void *
+#define __BLKSIZE_T_TYPE __U32_TYPE
+#define __FSID_T_TYPE struct { int __val[2]; }
+#define __SSIZE_T_TYPE __SWORD_TYPE
+#define __SYSCALL_SLONG_TYPE __SLONGWORD_TYPE
+#define __SYSCALL_ULONG_TYPE __ULONGWORD_TYPE
+#define __CPU_MASK_TYPE __ULONGWORD_TYPE
+#define __FSWORD_T_TYPE __S32_TYPE
+
+/* Tell the libc code that off_t and off64_t are actually the same type
+ for all ABI purposes, even if possibly expressed as different base types
+ for C type-checking purposes. */
+#define __OFF_T_MATCHES_OFF64_T 1
+
+/* And for __rlim_t and __rlim64_t. */
+#define __RLIM_T_MATCHES_RLIM64_T 1
+
+/* Number of descriptors that can fit in an `fd_set'. */
+#define __FD_SETSIZE 1024
+
+
+#endif /* bits/typesizes.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/alpha/bits/wordsize.h b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/bits/wordsize.h
new file mode 100644
index 0000000000..76c5c47c28
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/bits/wordsize.h
@@ -0,0 +1,19 @@
+/* Copyright (C) 1999-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#define __WORDSIZE 64
+#define __WORDSIZE_TIME64_COMPAT32 0
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/alpha/brk.S b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/brk.S
new file mode 100644
index 0000000000..ef55339a09
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/brk.S
@@ -0,0 +1,84 @@
+/* Copyright (C) 1993-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Brendan Kehoe <brendan@zen.org>, 1993.
+
+ 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/>. */
+
+/* __brk is a special syscall under Linux since it never returns an
+ error. Instead, the error condition is indicated by returning the old
+ break value (instead of the new, requested one). */
+
+#include <sysdep.h>
+#define _ERRNO_H
+#include <bits/errno.h>
+
+#ifdef PIC
+.section .bss
+ .align 3
+ .globl __curbrk
+__curbrk: .skip 8
+ .type __curbrk,@object
+ .size __curbrk,8
+#else
+.comm __curbrk, 8
+#endif
+
+ .text
+ .align 4
+ .globl __brk
+ .ent __brk
+ .usepv __brk, std
+
+ cfi_startproc
+__brk:
+ ldgp gp, 0(t12)
+ subq sp, 16, sp
+ cfi_adjust_cfa_offset (16)
+#ifdef PROF
+ .set noat
+ lda AT, _mcount
+ jsr AT, (AT), _mcount
+ .set at
+#endif
+
+ /* Save the requested brk across the system call. */
+ stq a0, 0(sp)
+
+ ldiq v0, __NR_brk
+ call_pal PAL_callsys
+
+ ldq a0, 0(sp)
+ addq sp, 16, sp
+ cfi_adjust_cfa_offset (-16)
+
+ /* Be prepared for an OSF-style brk. */
+ bne a3, SYSCALL_ERROR_LABEL
+ beq v0, $ok
+
+ /* Correctly handle the brk(0) query case. */
+ cmoveq a0, v0, a0
+ xor a0, v0, t0
+ lda v0, ENOMEM
+ bne t0, SYSCALL_ERROR_LABEL
+
+ /* Update __curbrk and return cleanly. */
+ lda v0, 0
+$ok: stq a0, __curbrk
+ ret
+
+PSEUDO_END(__brk)
+ cfi_endproc
+
+weak_alias (__brk, brk)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/alpha/c++-types.data b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/c++-types.data
new file mode 100644
index 0000000000..f264ed84ba
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/c++-types.data
@@ -0,0 +1,67 @@
+blkcnt64_t:m
+blkcnt_t:j
+blksize_t:j
+caddr_t:Pc
+clockid_t:i
+clock_t:l
+daddr_t:i
+dev_t:m
+fd_mask:l
+fsblkcnt64_t:l
+fsblkcnt_t:i
+fsfilcnt64_t:m
+fsfilcnt_t:j
+fsid_t:8__fsid_t
+gid_t:j
+id_t:j
+ino64_t:m
+ino_t:j
+int16_t:s
+int32_t:i
+int64_t:l
+int8_t:a
+intptr_t:l
+key_t:i
+loff_t:l
+mode_t:j
+nlink_t:j
+off64_t:l
+off_t:l
+pid_t:i
+pthread_attr_t:14pthread_attr_t
+pthread_barrier_t:17pthread_barrier_t
+pthread_barrierattr_t:21pthread_barrierattr_t
+pthread_cond_t:14pthread_cond_t
+pthread_condattr_t:18pthread_condattr_t
+pthread_key_t:j
+pthread_mutex_t:15pthread_mutex_t
+pthread_mutexattr_t:19pthread_mutexattr_t
+pthread_once_t:i
+pthread_rwlock_t:16pthread_rwlock_t
+pthread_rwlockattr_t:20pthread_rwlockattr_t
+pthread_spinlock_t:i
+pthread_t:m
+quad_t:l
+register_t:l
+rlim64_t:m
+rlim_t:m
+sigset_t:10__sigset_t
+size_t:m
+socklen_t:j
+ssize_t:l
+suseconds_t:l
+time_t:l
+u_char:h
+uid_t:j
+uint:j
+u_int:j
+u_int16_t:t
+u_int32_t:j
+u_int64_t:m
+u_int8_t:h
+ulong:m
+u_long:m
+u_quad_t:m
+useconds_t:j
+ushort:t
+u_short:t
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/alpha/clone.S b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/clone.S
new file mode 100644
index 0000000000..20ae361c6b
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/clone.S
@@ -0,0 +1,120 @@
+/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Richard Henderson <rth@tamu.edu>, 1996.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+/* clone() is even more special than fork() as it mucks with stacks
+ and invokes a function in the right context after its all over. */
+
+#include <sysdep.h>
+#define _ERRNO_H 1
+#include <bits/errno.h>
+
+#define CLONE_VM 0x00000100
+
+/* int clone(int (*fn)(void *arg), void *child_stack, int flags,
+ void *arg, pid_t *ptid, void *tls, pid_t *ctid);
+
+ Note that everything past ARG is technically optional, based
+ on FLAGS, and that CTID is arg 7, and thus is on the stack.
+ However, since a load from top-of-stack better be legal always,
+ we don't bother checking FLAGS. */
+
+ .text
+ .align 4
+ .globl __clone
+ .ent __clone
+ .usepv __clone, USEPV_PROF
+
+ cfi_startproc
+__clone:
+#ifdef PROF
+ ldgp gp,0(pv)
+ lda AT, _mcount
+ jsr AT, (AT), _mcount
+#endif
+
+ /* Sanity check arguments. */
+ ldiq v0, EINVAL
+ beq a0, SYSCALL_ERROR_LABEL /* no NULL function pointers */
+ beq a1, SYSCALL_ERROR_LABEL /* no NULL stack pointers */
+
+ /* Save the fn ptr and arg on the new stack. */
+ subq a1, 32, a1
+ stq a0, 0(a1)
+ stq a3, 8(a1)
+ stq a2, 16(a1)
+
+ /* The syscall is of the form clone(flags, usp, ptid, ctid, tls).
+ Shift the flags, ptid, ctid, tls arguments into place; the
+ child_stack argument is already correct. */
+ mov a2, a0
+ mov a4, a2
+ ldq a3, 0(sp)
+ mov a5, a4
+
+ /* Do the system call. */
+ ldiq v0, __NR_clone
+ call_pal PAL_callsys
+
+ bne a3, SYSCALL_ERROR_LABEL
+ beq v0, thread_start
+
+ /* Successful return from the parent. */
+ ret
+
+PSEUDO_END(__clone)
+ cfi_endproc
+
+/* Load up the arguments to the function. Put this block of code in
+ its own function so that we can terminate the stack trace with our
+ debug info. */
+
+ .align 4
+ .ent thread_start
+ cfi_startproc
+thread_start:
+ mov 0, fp
+ cfi_def_cfa_register(fp)
+ cfi_undefined(ra)
+
+ /* Load up the arguments. */
+ ldq pv, 0(sp)
+ ldq a0, 8(sp)
+ addq sp, 32, sp
+
+ /* Call the user's function. */
+ jsr ra, (pv)
+ ldgp gp, 0(ra)
+
+ /* Call _exit rather than doing it inline for breakpoint purposes. */
+ mov v0, a0
+#ifdef PIC
+ bsr ra, HIDDEN_JUMPTARGET(_exit) !samegp
+#else
+ jsr ra, HIDDEN_JUMPTARGET(_exit)
+#endif
+
+ /* Die horribly. */
+ .align 4
+ halt
+
+ .align 4
+ cfi_endproc
+ .end thread_start
+
+libc_hidden_def (__clone)
+weak_alias (__clone, clone)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/alpha/configure b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/configure
new file mode 100644
index 0000000000..9afb5874cb
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/configure
@@ -0,0 +1,5 @@
+# This file is generated from configure.ac by Autoconf. DO NOT EDIT!
+ # Local configure fragment for sysdeps/unix/sysv/linux/alpha
+
+# We did historically export the unwinder from glibc.
+libc_cv_gcc_unwind_find_fde=yes
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/alpha/configure.ac b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/configure.ac
new file mode 100644
index 0000000000..a8b6996657
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/configure.ac
@@ -0,0 +1,5 @@
+GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
+# Local configure fragment for sysdeps/unix/sysv/linux/alpha
+
+# We did historically export the unwinder from glibc.
+libc_cv_gcc_unwind_find_fde=yes
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/alpha/dl-auxv.h b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/dl-auxv.h
new file mode 100644
index 0000000000..4be51e9264
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/dl-auxv.h
@@ -0,0 +1,35 @@
+/* Auxiliary vector processing for Linux/Alpha.
+ Copyright (C) 2007-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+/* Scan the Aux Vector for the cache shape entries. */
+
+extern long __libc_alpha_cache_shape[4];
+
+#define DL_PLATFORM_AUXV \
+ case AT_L1I_CACHESHAPE: \
+ __libc_alpha_cache_shape[0] = av->a_un.a_val; \
+ break; \
+ case AT_L1D_CACHESHAPE: \
+ __libc_alpha_cache_shape[1] = av->a_un.a_val; \
+ break; \
+ case AT_L2_CACHESHAPE: \
+ __libc_alpha_cache_shape[2] = av->a_un.a_val; \
+ break; \
+ case AT_L3_CACHESHAPE: \
+ __libc_alpha_cache_shape[3] = av->a_un.a_val; \
+ break;
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/alpha/dl-brk.S b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/dl-brk.S
new file mode 100644
index 0000000000..eeb96544e3
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/dl-brk.S
@@ -0,0 +1 @@
+#include <brk.S>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/alpha/dl-fxstatat64.c b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/dl-fxstatat64.c
new file mode 100644
index 0000000000..330b33f7c7
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/dl-fxstatat64.c
@@ -0,0 +1 @@
+#include "fxstatat.c"
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/alpha/dl-support.c b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/dl-support.c
new file mode 100644
index 0000000000..290217671c
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/dl-support.c
@@ -0,0 +1,2 @@
+#include "dl-auxv.h"
+#include <elf/dl-support.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/alpha/dl-sysdep.c b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/dl-sysdep.c
new file mode 100644
index 0000000000..5d0867a100
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/dl-sysdep.c
@@ -0,0 +1,5 @@
+#include "dl-auxv.h"
+
+long __libc_alpha_cache_shape[4] = { -2, -2, -2, -2 };
+
+#include <sysdeps/unix/sysv/linux/dl-sysdep.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/alpha/fpu/Implies b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/fpu/Implies
new file mode 100644
index 0000000000..d76f511c2e
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/fpu/Implies
@@ -0,0 +1,2 @@
+# Override ldbl-opt with alpha specific routines.
+alpha/fpu
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/alpha/fraiseexcpt.S b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/fraiseexcpt.S
new file mode 100644
index 0000000000..0d5a1e88c8
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/fraiseexcpt.S
@@ -0,0 +1,58 @@
+/* Copyright (C) 2004-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#include "kernel_sysinfo.h"
+
+
+ .text
+
+ENTRY(__feraiseexcept)
+ cfi_startproc
+ PSEUDO_PROLOGUE
+
+ lda sp, -16(sp)
+ cfi_adjust_cfa_offset(16)
+
+ ldi v0, __NR_osf_setsysinfo
+ stq a0, 0(sp)
+ mov sp, a1
+ ldi a0, SSI_IEEE_RAISE_EXCEPTION
+ call_pal PAL_callsys
+
+ lda sp, 16(sp)
+ cfi_adjust_cfa_offset(-16)
+
+ /* Here in libm we can't use SYSCALL_ERROR_LABEL. Nor is it clear
+ that we'd want to set errno anyway. All we're required to do is
+ return non-zero on error. Which is exactly A3. */
+ mov a3, v0
+ ret
+
+END(__feraiseexcept)
+ cfi_endproc
+
+#if IS_IN (libm)
+# include <shlib-compat.h>
+# if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_2)
+strong_alias (__feraiseexcept, __old_feraiseexcept)
+compat_symbol (libm, __old_feraiseexcept, feraiseexcept, GLIBC_2_1);
+# endif
+libm_hidden_def (__feraiseexcept)
+libm_hidden_ver (__feraiseexcept, feraiseexcept)
+versioned_symbol (libm, __feraiseexcept, feraiseexcept, GLIBC_2_2);
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/alpha/fstatfs64.c b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/fstatfs64.c
new file mode 100644
index 0000000000..5639959adb
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/fstatfs64.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/fstatfs64.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/alpha/fstatvfs.c b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/fstatvfs.c
new file mode 100644
index 0000000000..92e772347b
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/fstatvfs.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/fstatvfs.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/alpha/fstatvfs64.c b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/fstatvfs64.c
new file mode 100644
index 0000000000..0f1e71027a
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/fstatvfs64.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/fstatvfs64.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/alpha/fxstat.c b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/fxstat.c
new file mode 100644
index 0000000000..7f98c9b4ab
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/fxstat.c
@@ -0,0 +1,58 @@
+/* fxstat using old-style Unix stat system call.
+ Copyright (C) 2004-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#define __fxstat64 __fxstat64_disable
+
+#include <errno.h>
+#include <stddef.h>
+#include <sys/stat.h>
+#include <kernel_stat.h>
+#include <sysdep.h>
+#include <sys/syscall.h>
+#include <xstatconv.h>
+
+#undef __fxstat64
+
+
+/* Get information about the file NAME in BUF. */
+int
+__fxstat (int vers, int fd, struct stat *buf)
+{
+ INTERNAL_SYSCALL_DECL (err);
+ int result;
+ struct kernel_stat kbuf;
+
+ if (vers == _STAT_VER_KERNEL64)
+ {
+ result = INTERNAL_SYSCALL (fstat64, err, 2, fd, buf);
+ if (__builtin_expect (!INTERNAL_SYSCALL_ERROR_P (result, err), 1))
+ return result;
+ __set_errno (INTERNAL_SYSCALL_ERRNO (result, err));
+ return -1;
+ }
+
+ result = INTERNAL_SYSCALL (fstat, err, 2, fd, &kbuf);
+ if (__builtin_expect (!INTERNAL_SYSCALL_ERROR_P (result, err), 1))
+ return __xstat_conv (vers, &kbuf, buf);
+ __set_errno (INTERNAL_SYSCALL_ERRNO (result, err));
+ return -1;
+}
+hidden_def (__fxstat)
+weak_alias (__fxstat, _fxstat);
+strong_alias (__fxstat, __fxstat64);
+hidden_ver (__fxstat, __fxstat64)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/alpha/fxstatat.c b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/fxstatat.c
new file mode 100644
index 0000000000..98a23639da
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/fxstatat.c
@@ -0,0 +1,53 @@
+/* Copyright (C) 2005-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#define __fxstatat64 __fxstatat64_disable
+
+#include <errno.h>
+#include <fcntl.h>
+#include <stddef.h>
+#include <stdio.h>
+#include <sys/stat.h>
+#include <kernel_stat.h>
+#include <sysdep.h>
+#include <sys/syscall.h>
+#include <xstatconv.h>
+
+#undef __fxstatat64
+
+/* Get information about the file NAME in BUF. */
+int
+__fxstatat (int vers, int fd, const char *file, struct stat *st, int flag)
+{
+ INTERNAL_SYSCALL_DECL (err);
+ int result, errno_out;
+
+ /* ??? The __fxstatat entry point is new enough that it must be using
+ vers == _STAT_VER_KERNEL64. For the benefit of dl-fxstatat64.c, we
+ cannot actually check this, lest the compiler not optimize the rest
+ of the function away. */
+
+ result = INTERNAL_SYSCALL (fstatat64, err, 4, fd, file, st, flag);
+ if (__builtin_expect (!INTERNAL_SYSCALL_ERROR_P (result, err), 1))
+ return result;
+ errno_out = INTERNAL_SYSCALL_ERRNO (result, err);
+ __set_errno (errno_out);
+ return -1;
+}
+libc_hidden_def (__fxstatat)
+strong_alias (__fxstatat, __fxstatat64);
+libc_hidden_ver(__fxstatat, __fxstatat64);
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/alpha/getclktck.c b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/getclktck.c
new file mode 100644
index 0000000000..6636bbe689
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/getclktck.c
@@ -0,0 +1,2 @@
+#define SYSTEM_CLK_TCK 1024
+#include <sysdeps/unix/sysv/linux/getclktck.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/alpha/getcontext.S b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/getcontext.S
new file mode 100644
index 0000000000..b1a1f532cc
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/getcontext.S
@@ -0,0 +1,187 @@
+/* Save current context.
+ Copyright (C) 2004-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#include <ucontext-offsets.h>
+
+/* ??? Should be a better place for this that's asm friendly. */
+#define SIG_BLOCK 1
+
+
+ENTRY (__getcontext)
+#ifdef PROF
+ ldgp gp, 0(pv)
+ .set noat
+ lda AT, _mcount
+ jsr AT, (AT), _mcount
+ .set at
+ .prologue 1
+#else
+ .prologue 0
+#endif
+
+ bsr $0, __getcontext_x
+ mov $31, $0
+ ret
+
+END(__getcontext)
+weak_alias (__getcontext, getcontext)
+
+
+/* An internal routine used by getcontext and setcontext.
+ The incomming return address register is $0. */
+
+ .align 4
+ .globl __getcontext_x
+ .hidden __getcontext_x
+ .usepv __getcontext_x, no
+
+ cfi_startproc
+ cfi_return_column (64)
+__getcontext_x:
+ cfi_register (64, 0)
+
+ .set noat
+
+ /* Return value of getcontext. $0 is the only register
+ whose value is not preserved. */
+ stq $31, UC_SIGCTX+SC_REGS($16)
+
+ /* Store all registers into the context. */
+ stq $1, UC_SIGCTX+SC_REGS+1*8($16)
+ stq $2, UC_SIGCTX+SC_REGS+2*8($16)
+ stq $3, UC_SIGCTX+SC_REGS+3*8($16)
+ stq $4, UC_SIGCTX+SC_REGS+4*8($16)
+ stq $5, UC_SIGCTX+SC_REGS+5*8($16)
+ stq $6, UC_SIGCTX+SC_REGS+6*8($16)
+ stq $7, UC_SIGCTX+SC_REGS+7*8($16)
+ stq $8, UC_SIGCTX+SC_REGS+8*8($16)
+ stq $9, UC_SIGCTX+SC_REGS+9*8($16)
+ stq $10, UC_SIGCTX+SC_REGS+10*8($16)
+ stq $11, UC_SIGCTX+SC_REGS+11*8($16)
+ stq $12, UC_SIGCTX+SC_REGS+12*8($16)
+ stq $13, UC_SIGCTX+SC_REGS+13*8($16)
+ stq $14, UC_SIGCTX+SC_REGS+14*8($16)
+ stq $15, UC_SIGCTX+SC_REGS+15*8($16)
+ stq $16, UC_SIGCTX+SC_REGS+16*8($16)
+ stq $17, UC_SIGCTX+SC_REGS+17*8($16)
+ stq $18, UC_SIGCTX+SC_REGS+18*8($16)
+ stq $19, UC_SIGCTX+SC_REGS+19*8($16)
+ stq $20, UC_SIGCTX+SC_REGS+20*8($16)
+ stq $21, UC_SIGCTX+SC_REGS+21*8($16)
+ stq $22, UC_SIGCTX+SC_REGS+22*8($16)
+ stq $23, UC_SIGCTX+SC_REGS+23*8($16)
+ stq $24, UC_SIGCTX+SC_REGS+24*8($16)
+ stq $25, UC_SIGCTX+SC_REGS+25*8($16)
+ stq $26, UC_SIGCTX+SC_REGS+26*8($16)
+ stq $27, UC_SIGCTX+SC_REGS+27*8($16)
+ stq $28, UC_SIGCTX+SC_REGS+28*8($16)
+ stq $29, UC_SIGCTX+SC_REGS+29*8($16)
+ stq $30, UC_SIGCTX+SC_REGS+30*8($16)
+ stq $31, UC_SIGCTX+SC_REGS+31*8($16)
+
+ stt $f0, UC_SIGCTX+SC_FPREGS+0*8($16)
+ stt $f1, UC_SIGCTX+SC_FPREGS+1*8($16)
+ stt $f2, UC_SIGCTX+SC_FPREGS+2*8($16)
+ stt $f3, UC_SIGCTX+SC_FPREGS+3*8($16)
+ stt $f4, UC_SIGCTX+SC_FPREGS+4*8($16)
+ stt $f5, UC_SIGCTX+SC_FPREGS+5*8($16)
+ stt $f6, UC_SIGCTX+SC_FPREGS+6*8($16)
+ stt $f7, UC_SIGCTX+SC_FPREGS+7*8($16)
+ stt $f8, UC_SIGCTX+SC_FPREGS+8*8($16)
+ stt $f9, UC_SIGCTX+SC_FPREGS+9*8($16)
+ stt $f10, UC_SIGCTX+SC_FPREGS+10*8($16)
+ stt $f11, UC_SIGCTX+SC_FPREGS+11*8($16)
+ stt $f12, UC_SIGCTX+SC_FPREGS+12*8($16)
+ stt $f13, UC_SIGCTX+SC_FPREGS+13*8($16)
+ stt $f14, UC_SIGCTX+SC_FPREGS+14*8($16)
+ stt $f15, UC_SIGCTX+SC_FPREGS+15*8($16)
+ stt $f16, UC_SIGCTX+SC_FPREGS+16*8($16)
+ stt $f17, UC_SIGCTX+SC_FPREGS+17*8($16)
+ stt $f18, UC_SIGCTX+SC_FPREGS+18*8($16)
+ stt $f19, UC_SIGCTX+SC_FPREGS+19*8($16)
+ stt $f20, UC_SIGCTX+SC_FPREGS+20*8($16)
+ stt $f21, UC_SIGCTX+SC_FPREGS+21*8($16)
+ stt $f22, UC_SIGCTX+SC_FPREGS+22*8($16)
+ stt $f23, UC_SIGCTX+SC_FPREGS+23*8($16)
+ stt $f24, UC_SIGCTX+SC_FPREGS+24*8($16)
+ stt $f25, UC_SIGCTX+SC_FPREGS+25*8($16)
+ stt $f26, UC_SIGCTX+SC_FPREGS+26*8($16)
+ stt $f27, UC_SIGCTX+SC_FPREGS+27*8($16)
+ stt $f28, UC_SIGCTX+SC_FPREGS+28*8($16)
+ stt $f29, UC_SIGCTX+SC_FPREGS+29*8($16)
+ stt $f30, UC_SIGCTX+SC_FPREGS+30*8($16)
+ stt $f31, UC_SIGCTX+SC_FPREGS+31*8($16)
+
+ mf_fpcr $f0
+ lda $1, 8
+ stt $f0, UC_SIGCTX+SC_FPCR($16)
+
+ /* The return address of getcontext is the restart pc. */
+ stq $26, UC_SIGCTX+SC_PC($16)
+
+ /* Userlevel always has a processor status word of 8. */
+ stq $1, UC_SIGCTX+SC_PS($16)
+
+ /* Save registers around the syscall. We preserve $17
+ for the benefit of swapcontext. */
+ subq $30, 4*8, $30
+ cfi_adjust_cfa_offset(4*8)
+ stq $0, 0($30)
+ cfi_rel_offset(64, 0)
+ stq $16, 8($30)
+ stq $17, 16($30)
+
+ /* Save the current signal mask. Whee, there are three
+ copies of this in the alpha ucontext_t. */
+ lda $16, SIG_BLOCK
+ lda $17, 0
+ lda $0, __NR_osf_sigprocmask
+ callsys
+
+ ldq $16, 8($30)
+ ldq $17, 16($30)
+
+ stq $0, UC_OSF_SIGMASK($16)
+ stq $0, UC_SIGCTX+SC_MASK($16)
+ stq $0, UC_SIGMASK($16)
+ stq $31, UC_SIGMASK + 1*8($16)
+ stq $31, UC_SIGMASK + 2*8($16)
+ stq $31, UC_SIGMASK + 3*8($16)
+ stq $31, UC_SIGMASK + 4*8($16)
+ stq $31, UC_SIGMASK + 5*8($16)
+ stq $31, UC_SIGMASK + 6*8($16)
+ stq $31, UC_SIGMASK + 7*8($16)
+ stq $31, UC_SIGMASK + 8*8($16)
+ stq $31, UC_SIGMASK + 9*8($16)
+ stq $31, UC_SIGMASK +10*8($16)
+ stq $31, UC_SIGMASK +11*8($16)
+ stq $31, UC_SIGMASK +12*8($16)
+ stq $31, UC_SIGMASK +13*8($16)
+ stq $31, UC_SIGMASK +14*8($16)
+ stq $31, UC_SIGMASK +15*8($16)
+
+ ldq $0, 0($30)
+ addq $30, 4*8, $30
+ cfi_register (64, 0)
+ cfi_adjust_cfa_offset(-4*8)
+ ret $31, ($0), 1
+
+ cfi_endproc
+ .size __getcontext_x, .-__getcontext_x
+ .type __getcontext_x, @function
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/alpha/getdents.c b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/getdents.c
new file mode 100644
index 0000000000..dfecfef924
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/getdents.c
@@ -0,0 +1,3 @@
+#define DIRENT_SET_DP_INO(dp, value) \
+ do { (dp)->d_ino = (value); (dp)->__pad = 0; } while (0)
+#include <sysdeps/unix/sysv/linux/getdents.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/alpha/getdents64.c b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/getdents64.c
new file mode 100644
index 0000000000..50f1368b74
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/getdents64.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/getdents64.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/alpha/gethostname.c b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/gethostname.c
new file mode 100644
index 0000000000..a1b97ea6bf
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/gethostname.c
@@ -0,0 +1,45 @@
+/* Copyright (C) 2001-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@redhat.com>, 2001
+
+ 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 <string.h>
+#include <unistd.h>
+
+#include <sysdep.h>
+#include <sys/syscall.h>
+
+int
+__gethostname (char *name, size_t len)
+{
+ int result;
+
+ result = INLINE_SYSCALL (gethostname, 2, name, len);
+
+ if (result == 0
+ /* See whether the string is terminated. If not we will return
+ an error. */
+ && memchr (name, '\0', len) == NULL)
+ {
+ __set_errno (EOVERFLOW);
+ result = -1;
+ }
+
+ return result;
+}
+
+weak_alias (__gethostname, gethostname)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/alpha/getsysstats.c b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/getsysstats.c
new file mode 100644
index 0000000000..14dc2bb8ac
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/getsysstats.c
@@ -0,0 +1,57 @@
+/* Determine various system internal values, Linux/Alpha version.
+ Copyright (C) 1999-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Andreas Schwab <schwab@suse.de>
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+
+/* We need to define a special parser for /proc/cpuinfo. */
+#define GET_NPROCS_PARSER(FD, BUFFER, CP, RE, BUFFER_END, RESULT) \
+ do \
+ { \
+ /* Find the line that contains the information about the number of \
+ active cpus. We don't have to fear extremely long lines since \
+ the kernel will not generate them. 8192 bytes are really enough. \
+ If there is no "CPUs ..." line then we are on a UP system. */ \
+ char *l; \
+ (RESULT) = 1; \
+ while ((l = next_line (FD, BUFFER, &CP, &RE, BUFFER_END)) != NULL) \
+ if ((sscanf (BUFFER, "cpus active : %d", &(RESULT)) == 1) \
+ || (sscanf (BUFFER, "CPUs probed %*d active %d", \
+ &(RESULT)) == 1)) \
+ break; \
+ } \
+ while (0)
+
+
+/* On the Alpha we can distinguish between the number of configured and
+ active cpus. */
+#define GET_NPROCS_CONF_PARSER(FP, BUFFER, RESULT) \
+ do \
+ { \
+ /* Find the line that contains the information about the number of \
+ probed cpus. We don't have to fear extremely long lines since \
+ the kernel will not generate them. 8192 bytes are really enough. \
+ If there is no "CPUs ..." line then we are on a UP system. */ \
+ (RESULT) = 1; \
+ while (__fgets_unlocked ((BUFFER), sizeof (BUFFER), (FP)) != NULL) \
+ if ((sscanf (buffer, "cpus detected : %d", &(RESULT)) == 1) \
+ || (sscanf (buffer, "CPUs probed %d", &(RESULT)) == 1)) \
+ break; \
+ } \
+ while (0)
+
+#include <sysdeps/unix/sysv/linux/getsysstats.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/alpha/glob.c b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/glob.c
new file mode 100644
index 0000000000..2d7d287a25
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/glob.c
@@ -0,0 +1,51 @@
+/* Copyright (C) 1998-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#define glob64 __no_glob64_decl
+#define globfree64 __no_globfree64_decl
+
+#include <sys/types.h>
+#include <glob.h>
+#include <shlib-compat.h>
+
+/* For Linux/Alpha we have to make the glob symbols versioned. */
+#define glob(pattern, flags, errfunc, pglob) \
+ __new_glob (pattern, flags, errfunc, pglob)
+#define globfree(pglob) \
+ __new_globfree (pglob)
+
+/* We need prototypes for these new names. */
+extern int __new_glob (const char *__pattern, int __flags,
+ int (*__errfunc) (const char *, int),
+ glob_t *__pglob);
+extern void __new_globfree (glob_t *__pglob);
+
+#include <posix/glob.c>
+
+#undef glob
+#undef globfree
+#undef glob64
+#undef globfree64
+
+versioned_symbol (libc, __new_glob, glob, GLIBC_2_1);
+versioned_symbol (libc, __new_globfree, globfree, GLIBC_2_1);
+libc_hidden_ver (__new_glob, glob)
+libc_hidden_ver (__new_globfree, globfree)
+
+weak_alias (__new_glob, glob64)
+weak_alias (__new_globfree, globfree64)
+libc_hidden_ver (__new_globfree, globfree64)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/alpha/ieee_get_fp_control.S b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/ieee_get_fp_control.S
new file mode 100644
index 0000000000..30e75e5140
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/ieee_get_fp_control.S
@@ -0,0 +1,50 @@
+/* Copyright (C) 1993-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by David Mosberger <davidm@azstarnet.com>, 1995.
+
+ 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 "kernel_sysinfo.h"
+
+
+ .text
+
+ENTRY(__ieee_get_fp_control)
+ cfi_startproc
+ PSEUDO_PROLOGUE
+
+ lda sp, -16(sp)
+ cfi_adjust_cfa_offset(16)
+
+ mov sp, a1
+ ldi a0, GSI_IEEE_FP_CONTROL
+ ldi v0, __NR_osf_getsysinfo
+ call_pal PAL_callsys
+
+ ldq t0, 0(sp)
+ lda sp, 16(sp)
+ cfi_adjust_cfa_offset(-16)
+
+ bne a3, SYSCALL_ERROR_LABEL
+
+ mov t0, v0
+ ret
+
+PSEUDO_END(__ieee_get_fp_control)
+ cfi_endproc
+
+libc_hidden_def(__ieee_get_fp_control)
+weak_alias (__ieee_get_fp_control, ieee_get_fp_control)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/alpha/ieee_set_fp_control.S b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/ieee_set_fp_control.S
new file mode 100644
index 0000000000..c51350b83d
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/ieee_set_fp_control.S
@@ -0,0 +1,46 @@
+/* Copyright (C) 1993-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by David Mosberger <davidm@azstarnet.com>, 1995.
+
+ 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 "kernel_sysinfo.h"
+
+
+ENTRY(__ieee_set_fp_control)
+ cfi_startproc
+ PSEUDO_PROLOGUE
+
+ lda sp, -16(sp)
+ cfi_adjust_cfa_offset(16)
+
+ ldi v0, __NR_osf_setsysinfo
+ stq a0, 0(sp)
+ mov sp, a1
+ ldi a0, SSI_IEEE_FP_CONTROL
+ call_pal PAL_callsys
+
+ lda sp, 16(sp)
+ cfi_adjust_cfa_offset(-16)
+
+ bne a3, SYSCALL_ERROR_LABEL
+ ret
+
+PSEUDO_END(__ieee_set_fp_control)
+ cfi_endproc
+
+libc_hidden_def(__ieee_set_fp_control)
+weak_alias (__ieee_set_fp_control, ieee_set_fp_control)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/alpha/internal_statvfs64.c b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/internal_statvfs64.c
new file mode 100644
index 0000000000..81d18f7bb2
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/internal_statvfs64.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/internal_statvfs64.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/alpha/ioperm.c b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/ioperm.c
new file mode 100644
index 0000000000..ccbef3bd28
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/ioperm.c
@@ -0,0 +1,882 @@
+/* Copyright (C) 1992-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by David Mosberger.
+
+ 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/>. */
+
+/* I/O access is restricted to ISA port space (ports 0..65535).
+ Modern devices hopefully are sane enough not to put any performance
+ critical registers in i/o space.
+
+ On the first call to ioperm, the entire (E)ISA port space is mapped
+ into the virtual address space at address io.base. mprotect calls
+ are then used to enable/disable access to ports. Per page, there
+ are PAGE_SIZE>>IO_SHIFT I/O ports (e.g., 256 ports on a Low Cost Alpha
+ based system using 8KB pages).
+
+ Keep in mind that this code should be able to run in a 32bit address
+ space. It is therefore unreasonable to expect mmap'ing the entire
+ sparse address space would work (e.g., the Low Cost Alpha chip has an
+ I/O address space that's 512MB large!). */
+
+/* Make sure the ldbu/stb asms below are not expaneded to macros. */
+#ifndef __alpha_bwx__
+asm(".arch ev56");
+#endif
+
+#include <errno.h>
+#include <fcntl.h>
+#include <stdio.h>
+#include <ctype.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+
+#include <sys/types.h>
+#include <sys/mman.h>
+#include <sys/io.h>
+
+#include <sysdep.h>
+#include <sys/syscall.h>
+
+#define PATH_ALPHA_SYSTYPE "/etc/alpha_systype"
+#define PATH_CPUINFO "/proc/cpuinfo"
+
+#define MAX_PORT 0x10000
+#define vip volatile int *
+#define vuip volatile unsigned int *
+#define vusp volatile unsigned short *
+#define vucp volatile unsigned char *
+
+#define JENSEN_IO_BASE (0x300000000UL)
+#define JENSEN_SPARSE_MEM (0x200000000UL)
+
+/* With respect to the I/O architecture, APECS and LCA are identical,
+ so the following defines apply to LCA as well. */
+#define APECS_IO_BASE (0x1c0000000UL)
+#define APECS_SPARSE_MEM (0x200000000UL)
+#define APECS_DENSE_MEM (0x300000000UL)
+
+/* The same holds for CIA and PYXIS, except for PYXIS we prefer BWX. */
+#define CIA_IO_BASE (0x8580000000UL)
+#define CIA_SPARSE_MEM (0x8000000000UL)
+#define CIA_DENSE_MEM (0x8600000000UL)
+
+#define PYXIS_IO_BASE (0x8900000000UL)
+#define PYXIS_DENSE_MEM (0x8800000000UL)
+
+/* SABLE is EV4, GAMMA is EV5 */
+#define T2_IO_BASE (0x3a0000000UL)
+#define T2_SPARSE_MEM (0x200000000UL)
+#define T2_DENSE_MEM (0x3c0000000UL)
+
+#define GAMMA_IO_BASE (0x83a0000000UL)
+#define GAMMA_SPARSE_MEM (0x8200000000UL)
+#define GAMMA_DENSE_MEM (0x83c0000000UL)
+
+/* NOTE: these are hardwired to PCI bus 0 addresses!!! */
+#define MCPCIA_IO_BASE (0xf980000000UL)
+#define MCPCIA_SPARSE_MEM (0xf800000000UL)
+#define MCPCIA_DENSE_MEM (0xf900000000UL)
+
+/* Tsunami and Irongate use the same offsets, at least for hose 0. */
+#define TSUNAMI_IO_BASE (0x801fc000000UL)
+#define TSUNAMI_DENSE_MEM (0x80000000000UL)
+
+/* Polaris has SPARSE space, but we prefer to use only DENSE
+ because of some idiosyncracies in actually using SPARSE. */
+#define POLARIS_IO_BASE (0xf9fc000000UL)
+#define POLARIS_DENSE_MEM (0xf900000000UL)
+
+typedef enum {
+ IOSYS_UNKNOWN, IOSYS_JENSEN, IOSYS_APECS, IOSYS_CIA, IOSYS_PYXIS, IOSYS_T2,
+ IOSYS_TSUNAMI, IOSYS_MCPCIA, IOSYS_GAMMA, IOSYS_POLARIS,
+ IOSYS_CPUDEP, IOSYS_PCIDEP
+} iosys_t;
+
+typedef enum {
+ IOSWIZZLE_JENSEN, IOSWIZZLE_SPARSE, IOSWIZZLE_DENSE
+} ioswizzle_t;
+
+static struct io_system {
+ unsigned long int bus_memory_base;
+ unsigned long int sparse_bus_mem_base;
+ unsigned long int bus_io_base;
+} io_system[] = { /* NOTE! must match iosys_t enumeration */
+/* UNKNOWN */ {0, 0, 0},
+/* JENSEN */ {0, JENSEN_SPARSE_MEM, JENSEN_IO_BASE},
+/* APECS */ {APECS_DENSE_MEM, APECS_SPARSE_MEM, APECS_IO_BASE},
+/* CIA */ {CIA_DENSE_MEM, CIA_SPARSE_MEM, CIA_IO_BASE},
+/* PYXIS */ {PYXIS_DENSE_MEM, 0, PYXIS_IO_BASE},
+/* T2 */ {T2_DENSE_MEM, T2_SPARSE_MEM, T2_IO_BASE},
+/* TSUNAMI */ {TSUNAMI_DENSE_MEM, 0, TSUNAMI_IO_BASE},
+/* MCPCIA */ {MCPCIA_DENSE_MEM, MCPCIA_SPARSE_MEM, MCPCIA_IO_BASE},
+/* GAMMA */ {GAMMA_DENSE_MEM, GAMMA_SPARSE_MEM, GAMMA_IO_BASE},
+/* POLARIS */ {POLARIS_DENSE_MEM, 0, POLARIS_IO_BASE},
+/* CPUDEP */ {0, 0, 0}, /* for platforms dependent on CPU type */
+/* PCIDEP */ {0, 0, 0}, /* for platforms dependent on core logic */
+};
+
+static struct platform {
+ const char *name;
+ iosys_t io_sys;
+} platform[] = {
+ {"Alcor", IOSYS_CIA},
+ {"Avanti", IOSYS_APECS},
+ {"Cabriolet", IOSYS_APECS},
+ {"EB164", IOSYS_PCIDEP},
+ {"EB64+", IOSYS_APECS},
+ {"EB66", IOSYS_APECS},
+ {"EB66P", IOSYS_APECS},
+ {"Jensen", IOSYS_JENSEN},
+ {"Miata", IOSYS_PYXIS},
+ {"Mikasa", IOSYS_CPUDEP},
+ {"Nautilus", IOSYS_TSUNAMI},
+ {"Noname", IOSYS_APECS},
+ {"Noritake", IOSYS_CPUDEP},
+ {"Rawhide", IOSYS_MCPCIA},
+ {"Ruffian", IOSYS_PYXIS},
+ {"Sable", IOSYS_CPUDEP},
+ {"Takara", IOSYS_CIA},
+ {"Tsunami", IOSYS_TSUNAMI},
+ {"XL", IOSYS_APECS},
+};
+
+struct ioswtch {
+ void (*sethae)(unsigned long int addr);
+ void (*outb)(unsigned char b, unsigned long int port);
+ void (*outw)(unsigned short b, unsigned long int port);
+ void (*outl)(unsigned int b, unsigned long int port);
+ unsigned int (*inb)(unsigned long int port);
+ unsigned int (*inw)(unsigned long int port);
+ unsigned int (*inl)(unsigned long int port);
+};
+
+static struct {
+ unsigned long int hae_cache;
+ unsigned long int base;
+ struct ioswtch * swp;
+ unsigned long int bus_memory_base;
+ unsigned long int sparse_bus_memory_base;
+ unsigned long int io_base;
+ ioswizzle_t swiz;
+} io;
+
+static inline void
+stb_mb(unsigned char val, unsigned long addr)
+{
+ __asm__("stb %1,%0; mb" : "=m"(*(vucp)addr) : "r"(val));
+}
+
+static inline void
+stw_mb(unsigned short val, unsigned long addr)
+{
+ __asm__("stw %1,%0; mb" : "=m"(*(vusp)addr) : "r"(val));
+}
+
+static inline void
+stl_mb(unsigned int val, unsigned long addr)
+{
+ __asm__("stl %1,%0; mb" : "=m"(*(vip)addr) : "r"(val));
+}
+
+/* No need to examine error -- sethae never fails. */
+static inline void
+__sethae(unsigned long value)
+{
+ register unsigned long r16 __asm__("$16") = value;
+ register unsigned long r0 __asm__("$0") = __NR_sethae;
+ __asm__ __volatile__ ("callsys"
+ : "=r"(r0)
+ : "0"(r0), "r" (r16)
+ : inline_syscall_clobbers, "$19");
+}
+
+extern long __pciconfig_iobase(enum __pciconfig_iobase_which __which,
+ unsigned long int __bus,
+ unsigned long int __dfn);
+
+static inline unsigned long int
+port_to_cpu_addr (unsigned long int port, ioswizzle_t ioswiz, int size)
+{
+ if (ioswiz == IOSWIZZLE_SPARSE)
+ return io.base + (port << 5) + ((size - 1) << 3);
+ else if (ioswiz == IOSWIZZLE_DENSE)
+ return port + io.base;
+ else
+ return io.base + (port << 7) + ((size - 1) << 5);
+}
+
+static inline __attribute__((always_inline)) void
+inline_sethae (unsigned long int addr, ioswizzle_t ioswiz)
+{
+ if (ioswiz == IOSWIZZLE_SPARSE)
+ {
+ unsigned long int msb;
+
+ /* no need to set hae if msb is 0: */
+ msb = addr & 0xf8000000;
+ if (msb && msb != io.hae_cache)
+ {
+ io.hae_cache = msb;
+ __sethae (msb);
+ }
+ }
+ else if (ioswiz == IOSWIZZLE_JENSEN)
+ {
+ /* HAE on the Jensen is bits 31:25 shifted right. */
+ addr >>= 25;
+ if (addr != io.hae_cache)
+ {
+ io.hae_cache = addr;
+ __sethae (addr);
+ }
+ }
+}
+
+static inline void
+inline_outb (unsigned char b, unsigned long int port, ioswizzle_t ioswiz)
+{
+ unsigned int w;
+ unsigned long int addr = port_to_cpu_addr (port, ioswiz, 1);
+
+ asm ("insbl %2,%1,%0" : "=r" (w) : "ri" (port & 0x3), "r" (b));
+ stl_mb(w, addr);
+}
+
+
+static inline void
+inline_outw (unsigned short int b, unsigned long int port, ioswizzle_t ioswiz)
+{
+ unsigned long w;
+ unsigned long int addr = port_to_cpu_addr (port, ioswiz, 2);
+
+ asm ("inswl %2,%1,%0" : "=r" (w) : "ri" (port & 0x3), "r" (b));
+ stl_mb(w, addr);
+}
+
+
+static inline void
+inline_outl (unsigned int b, unsigned long int port, ioswizzle_t ioswiz)
+{
+ unsigned long int addr = port_to_cpu_addr (port, ioswiz, 4);
+
+ stl_mb(b, addr);
+}
+
+
+static inline unsigned int
+inline_inb (unsigned long int port, ioswizzle_t ioswiz)
+{
+ unsigned long int addr = port_to_cpu_addr (port, ioswiz, 1);
+ int result;
+
+ result = *(vip) addr;
+ result >>= (port & 3) * 8;
+ return 0xffUL & result;
+}
+
+
+static inline unsigned int
+inline_inw (unsigned long int port, ioswizzle_t ioswiz)
+{
+ unsigned long int addr = port_to_cpu_addr (port, ioswiz, 2);
+ int result;
+
+ result = *(vip) addr;
+ result >>= (port & 3) * 8;
+ return 0xffffUL & result;
+}
+
+
+static inline unsigned int
+inline_inl (unsigned long int port, ioswizzle_t ioswiz)
+{
+ unsigned long int addr = port_to_cpu_addr (port, ioswiz, 4);
+
+ return *(vuip) addr;
+}
+
+/*
+ * Now define the inline functions for CPUs supporting byte/word insns,
+ * and whose core logic supports I/O space accesses utilizing them.
+ *
+ * These routines could be used by MIATA, for example, because it has
+ * and EV56 plus PYXIS, but it currently uses SPARSE anyway. This is
+ * also true of RX164 which used POLARIS, but we will choose to use
+ * these routines in that case instead of SPARSE.
+ *
+ * These routines are necessary for TSUNAMI/TYPHOON based platforms,
+ * which will have (at least) EV6.
+ */
+
+static inline unsigned long int
+dense_port_to_cpu_addr (unsigned long int port)
+{
+ return port + io.base;
+}
+
+static inline void
+inline_bwx_outb (unsigned char b, unsigned long int port)
+{
+ unsigned long int addr = dense_port_to_cpu_addr (port);
+ stb_mb (b, addr);
+}
+
+static inline void
+inline_bwx_outw (unsigned short int b, unsigned long int port)
+{
+ unsigned long int addr = dense_port_to_cpu_addr (port);
+ stw_mb (b, addr);
+}
+
+static inline void
+inline_bwx_outl (unsigned int b, unsigned long int port)
+{
+ unsigned long int addr = dense_port_to_cpu_addr (port);
+ stl_mb (b, addr);
+}
+
+static inline unsigned int
+inline_bwx_inb (unsigned long int port)
+{
+ unsigned long int addr = dense_port_to_cpu_addr (port);
+ unsigned char r;
+
+ __asm__ ("ldbu %0,%1" : "=r"(r) : "m"(*(vucp)addr));
+ return r;
+}
+
+static inline unsigned int
+inline_bwx_inw (unsigned long int port)
+{
+ unsigned long int addr = dense_port_to_cpu_addr (port);
+ unsigned short r;
+
+ __asm__ ("ldwu %0,%1" : "=r"(r) : "m"(*(vusp)addr));
+ return r;
+}
+
+static inline unsigned int
+inline_bwx_inl (unsigned long int port)
+{
+ unsigned long int addr = dense_port_to_cpu_addr (port);
+
+ return *(vuip) addr;
+}
+
+/* macros to define routines with appropriate names and functions */
+
+/* these do either SPARSE or JENSEN swizzle */
+
+#define DCL_SETHAE(name, ioswiz) \
+static void \
+name##_sethae (unsigned long int addr) \
+{ \
+ inline_sethae (addr, IOSWIZZLE_##ioswiz); \
+}
+
+#define DCL_OUT(name, func, type, ioswiz) \
+static void \
+name##_##func (unsigned type b, unsigned long int addr) \
+{ \
+ inline_##func (b, addr, IOSWIZZLE_##ioswiz); \
+}
+
+#define DCL_IN(name, func, ioswiz) \
+static unsigned int \
+name##_##func (unsigned long int addr) \
+{ \
+ return inline_##func (addr, IOSWIZZLE_##ioswiz); \
+}
+
+/* these do DENSE, so no swizzle is needed */
+
+#define DCL_OUT_BWX(name, func, type) \
+static void \
+name##_##func (unsigned type b, unsigned long int addr) \
+{ \
+ inline_bwx_##func (b, addr); \
+}
+
+#define DCL_IN_BWX(name, func) \
+static unsigned int \
+name##_##func (unsigned long int addr) \
+{ \
+ return inline_bwx_##func (addr); \
+}
+
+/* now declare/define the necessary routines */
+
+DCL_SETHAE(jensen, JENSEN)
+DCL_OUT(jensen, outb, char, JENSEN)
+DCL_OUT(jensen, outw, short int, JENSEN)
+DCL_OUT(jensen, outl, int, JENSEN)
+DCL_IN(jensen, inb, JENSEN)
+DCL_IN(jensen, inw, JENSEN)
+DCL_IN(jensen, inl, JENSEN)
+
+DCL_SETHAE(sparse, SPARSE)
+DCL_OUT(sparse, outb, char, SPARSE)
+DCL_OUT(sparse, outw, short int, SPARSE)
+DCL_OUT(sparse, outl, int, SPARSE)
+DCL_IN(sparse, inb, SPARSE)
+DCL_IN(sparse, inw, SPARSE)
+DCL_IN(sparse, inl, SPARSE)
+
+DCL_SETHAE(dense, DENSE)
+DCL_OUT_BWX(dense, outb, char)
+DCL_OUT_BWX(dense, outw, short int)
+DCL_OUT_BWX(dense, outl, int)
+DCL_IN_BWX(dense, inb)
+DCL_IN_BWX(dense, inw)
+DCL_IN_BWX(dense, inl)
+
+/* define the "swizzle" switch */
+static struct ioswtch ioswtch[] = {
+ {
+ jensen_sethae,
+ jensen_outb, jensen_outw, jensen_outl,
+ jensen_inb, jensen_inw, jensen_inl
+ },
+ {
+ sparse_sethae,
+ sparse_outb, sparse_outw, sparse_outl,
+ sparse_inb, sparse_inw, sparse_inl
+ },
+ {
+ dense_sethae,
+ dense_outb, dense_outw, dense_outl,
+ dense_inb, dense_inw, dense_inl
+ }
+};
+
+#undef DEBUG_IOPERM
+
+/* Routine to process the /proc/cpuinfo information into the fields
+ that are required for correctly determining the platform parameters. */
+
+struct cpuinfo_data
+{
+ char systype[256]; /* system type field */
+ char sysvari[256]; /* system variation field */
+ char cpumodel[256]; /* cpu model field */
+};
+
+static inline int
+process_cpuinfo(struct cpuinfo_data *data)
+{
+ int got_type, got_vari, got_model;
+ char dummy[256];
+ FILE * fp;
+ int n;
+
+ data->systype[0] = 0;
+ data->sysvari[0] = 0;
+ data->cpumodel[0] = 0;
+
+ /* If there's an /etc/alpha_systype link, we're intending to override
+ whatever's in /proc/cpuinfo. */
+ n = __readlink (PATH_ALPHA_SYSTYPE, data->systype, 256 - 1);
+ if (n > 0)
+ {
+ data->systype[n] = '\0';
+ return 1;
+ }
+
+ fp = fopen (PATH_CPUINFO, "rce");
+ if (!fp)
+ return 0;
+
+ got_type = got_vari = got_model = 0;
+
+ while (1)
+ {
+ if (fgets_unlocked (dummy, 256, fp) == NULL)
+ break;
+ if (!got_type &&
+ sscanf (dummy, "system type : %256[^\n]\n", data->systype) == 1)
+ got_type = 1;
+ if (!got_vari &&
+ sscanf (dummy, "system variation : %256[^\n]\n", data->sysvari) == 1)
+ got_vari = 1;
+ if (!got_model &&
+ sscanf (dummy, "cpu model : %256[^\n]\n", data->cpumodel) == 1)
+ got_model = 1;
+ }
+
+ fclose (fp);
+
+#ifdef DEBUG_IOPERM
+ fprintf(stderr, "system type: `%s'\n", data->systype);
+ fprintf(stderr, "system vari: `%s'\n", data->sysvari);
+ fprintf(stderr, "cpu model: `%s'\n", data->cpumodel);
+#endif
+
+ return got_type + got_vari + got_model;
+}
+
+
+/*
+ * Initialize I/O system.
+ */
+static int
+init_iosys (void)
+{
+ long addr;
+ int i, olderrno = errno;
+ struct cpuinfo_data data;
+
+ /* First try the pciconfig_iobase syscall added to 2.2.15 and 2.3.99. */
+
+#ifdef __NR_pciconfig_iobase
+ addr = __pciconfig_iobase (IOBASE_DENSE_MEM, 0, 0);
+ if (addr != -1)
+ {
+ ioswizzle_t io_swiz;
+
+ if (addr == 0)
+ {
+ /* Only Jensen doesn't have dense mem space. */
+ io.sparse_bus_memory_base
+ = io_system[IOSYS_JENSEN].sparse_bus_mem_base;
+ io.io_base = io_system[IOSYS_JENSEN].bus_io_base;
+ io_swiz = IOSWIZZLE_JENSEN;
+ }
+ else
+ {
+ io.bus_memory_base = addr;
+
+ addr = __pciconfig_iobase (IOBASE_DENSE_IO, 0, 0);
+ if (addr != 0)
+ {
+ /* The X server uses _bus_base_sparse == 0 to know that
+ BWX access are supported to dense mem space. This is
+ true of every system that supports dense io space, so
+ never fill in io.sparse_bus_memory_base in this case. */
+ io_swiz = IOSWIZZLE_DENSE;
+ io.io_base = addr;
+ }
+ else
+ {
+ io.sparse_bus_memory_base
+ = __pciconfig_iobase (IOBASE_SPARSE_MEM, 0, 0);
+ io.io_base = __pciconfig_iobase (IOBASE_SPARSE_IO, 0, 0);
+ io_swiz = IOSWIZZLE_SPARSE;
+ }
+ }
+
+ io.swiz = io_swiz;
+ io.swp = &ioswtch[io_swiz];
+
+ return 0;
+ }
+#endif
+
+ /* Second, collect the contents of /etc/alpha_systype or /proc/cpuinfo. */
+
+ if (process_cpuinfo(&data) == 0)
+ {
+ /* This can happen if the format of /proc/cpuinfo changes. */
+ fprintf (stderr,
+ "ioperm.init_iosys: Unable to determine system type.\n"
+ "\t(May need " PATH_ALPHA_SYSTYPE " symlink?)\n");
+ __set_errno (ENODEV);
+ return -1;
+ }
+
+ /* Translate systype name into i/o system. */
+ for (i = 0; i < sizeof (platform) / sizeof (platform[0]); ++i)
+ {
+ if (strcmp (platform[i].name, data.systype) == 0)
+ {
+ iosys_t io_sys = platform[i].io_sys;
+
+ /* Some platforms can have either EV4 or EV5 CPUs. */
+ if (io_sys == IOSYS_CPUDEP)
+ {
+ /* SABLE or MIKASA or NORITAKE so far. */
+ if (strcmp (platform[i].name, "Sable") == 0)
+ {
+ if (strncmp (data.cpumodel, "EV4", 3) == 0)
+ io_sys = IOSYS_T2;
+ else if (strncmp (data.cpumodel, "EV5", 3) == 0)
+ io_sys = IOSYS_GAMMA;
+ }
+ else
+ {
+ /* This covers MIKASA/NORITAKE. */
+ if (strncmp (data.cpumodel, "EV4", 3) == 0)
+ io_sys = IOSYS_APECS;
+ else if (strncmp (data.cpumodel, "EV5", 3) == 0)
+ io_sys = IOSYS_CIA;
+ }
+ if (io_sys == IOSYS_CPUDEP)
+ {
+ /* This can happen if the format of /proc/cpuinfo changes.*/
+ fprintf (stderr, "ioperm.init_iosys: Unable to determine"
+ " CPU model.\n");
+ __set_errno (ENODEV);
+ return -1;
+ }
+ }
+ /* Some platforms can have different core logic chipsets */
+ if (io_sys == IOSYS_PCIDEP)
+ {
+ /* EB164 so far */
+ if (strcmp (data.systype, "EB164") == 0)
+ {
+ if (strncmp (data.sysvari, "RX164", 5) == 0)
+ io_sys = IOSYS_POLARIS;
+ else if (strncmp (data.sysvari, "LX164", 5) == 0
+ || strncmp (data.sysvari, "SX164", 5) == 0)
+ io_sys = IOSYS_PYXIS;
+ else
+ io_sys = IOSYS_CIA;
+ }
+ if (io_sys == IOSYS_PCIDEP)
+ {
+ /* This can happen if the format of /proc/cpuinfo changes.*/
+ fprintf (stderr, "ioperm.init_iosys: Unable to determine"
+ " core logic chipset.\n");
+ __set_errno (ENODEV);
+ return -1;
+ }
+ }
+ io.bus_memory_base = io_system[io_sys].bus_memory_base;
+ io.sparse_bus_memory_base = io_system[io_sys].sparse_bus_mem_base;
+ io.io_base = io_system[io_sys].bus_io_base;
+
+ if (io_sys == IOSYS_JENSEN)
+ io.swiz = IOSWIZZLE_JENSEN;
+ else if (io_sys == IOSYS_TSUNAMI
+ || io_sys == IOSYS_POLARIS
+ || io_sys == IOSYS_PYXIS)
+ io.swiz = IOSWIZZLE_DENSE;
+ else
+ io.swiz = IOSWIZZLE_SPARSE;
+ io.swp = &ioswtch[io.swiz];
+
+ __set_errno (olderrno);
+ return 0;
+ }
+ }
+
+ __set_errno (ENODEV);
+ fprintf(stderr, "ioperm.init_iosys: Platform not recognized.\n"
+ "\t(May need " PATH_ALPHA_SYSTYPE " symlink?)\n");
+ return -1;
+}
+
+
+int
+_ioperm (unsigned long int from, unsigned long int num, int turn_on)
+{
+ unsigned long int addr, len, pagesize = __getpagesize();
+ int prot;
+
+ if (!io.swp && init_iosys() < 0)
+ {
+#ifdef DEBUG_IOPERM
+ fprintf(stderr, "ioperm: init_iosys() failed (%m)\n");
+#endif
+ return -1;
+ }
+
+ /* This test isn't as silly as it may look like; consider overflows! */
+ if (from >= MAX_PORT || from + num > MAX_PORT)
+ {
+ __set_errno (EINVAL);
+#ifdef DEBUG_IOPERM
+ fprintf(stderr, "ioperm: from/num out of range\n");
+#endif
+ return -1;
+ }
+
+#ifdef DEBUG_IOPERM
+ fprintf(stderr, "ioperm: turn_on %d io.base %ld\n", turn_on, io.base);
+#endif
+
+ if (turn_on)
+ {
+ if (!io.base)
+ {
+ int fd;
+
+ io.hae_cache = 0;
+ if (io.swiz != IOSWIZZLE_DENSE)
+ {
+ /* Synchronize with hw. */
+ __sethae (0);
+ }
+
+ fd = __open ("/dev/mem", O_RDWR);
+ if (fd < 0)
+ {
+#ifdef DEBUG_IOPERM
+ fprintf(stderr, "ioperm: /dev/mem open failed (%m)\n");
+#endif
+ return -1;
+ }
+
+ addr = port_to_cpu_addr (0, io.swiz, 1);
+ len = port_to_cpu_addr (MAX_PORT, io.swiz, 1) - addr;
+ io.base =
+ (unsigned long int) __mmap (0, len, PROT_NONE, MAP_SHARED,
+ fd, io.io_base);
+ __close (fd);
+#ifdef DEBUG_IOPERM
+ fprintf(stderr, "ioperm: mmap of len 0x%lx returned 0x%lx\n",
+ len, io.base);
+#endif
+ if ((long) io.base == -1)
+ return -1;
+ }
+ prot = PROT_READ | PROT_WRITE;
+ }
+ else
+ {
+ if (!io.base)
+ return 0; /* never was turned on... */
+
+ /* turnoff access to relevant pages: */
+ prot = PROT_NONE;
+ }
+ addr = port_to_cpu_addr (from, io.swiz, 1);
+ addr &= ~(pagesize - 1);
+ len = port_to_cpu_addr (from + num, io.swiz, 1) - addr;
+ return __mprotect ((void *) addr, len, prot);
+}
+
+
+int
+_iopl (int level)
+{
+ switch (level)
+ {
+ case 0:
+ return 0;
+
+ case 1: case 2: case 3:
+ return _ioperm (0, MAX_PORT, 1);
+
+ default:
+ __set_errno (EINVAL);
+ return -1;
+ }
+}
+
+
+void
+_sethae (unsigned long int addr)
+{
+ if (!io.swp && init_iosys () < 0)
+ return;
+
+ io.swp->sethae (addr);
+}
+
+
+void
+_outb (unsigned char b, unsigned long int port)
+{
+ if (port >= MAX_PORT)
+ return;
+
+ io.swp->outb (b, port);
+}
+
+
+void
+_outw (unsigned short b, unsigned long int port)
+{
+ if (port >= MAX_PORT)
+ return;
+
+ io.swp->outw (b, port);
+}
+
+
+void
+_outl (unsigned int b, unsigned long int port)
+{
+ if (port >= MAX_PORT)
+ return;
+
+ io.swp->outl (b, port);
+}
+
+
+unsigned int
+_inb (unsigned long int port)
+{
+ return io.swp->inb (port);
+}
+
+
+unsigned int
+_inw (unsigned long int port)
+{
+ return io.swp->inw (port);
+}
+
+
+unsigned int
+_inl (unsigned long int port)
+{
+ return io.swp->inl (port);
+}
+
+
+unsigned long int
+_bus_base(void)
+{
+ if (!io.swp && init_iosys () < 0)
+ return -1;
+ return io.bus_memory_base;
+}
+
+unsigned long int
+_bus_base_sparse(void)
+{
+ if (!io.swp && init_iosys () < 0)
+ return -1;
+ return io.sparse_bus_memory_base;
+}
+
+int
+_hae_shift(void)
+{
+ if (!io.swp && init_iosys () < 0)
+ return -1;
+ if (io.swiz == IOSWIZZLE_JENSEN)
+ return 7;
+ if (io.swiz == IOSWIZZLE_SPARSE)
+ return 5;
+ return 0;
+}
+
+weak_alias (_sethae, sethae);
+weak_alias (_ioperm, ioperm);
+weak_alias (_iopl, iopl);
+weak_alias (_inb, inb);
+weak_alias (_inw, inw);
+weak_alias (_inl, inl);
+weak_alias (_outb, outb);
+weak_alias (_outw, outw);
+weak_alias (_outl, outl);
+weak_alias (_bus_base, bus_base);
+weak_alias (_bus_base_sparse, bus_base_sparse);
+weak_alias (_hae_shift, hae_shift);
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/alpha/ipc_priv.h b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/ipc_priv.h
new file mode 100644
index 0000000000..c8b946a38b
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/ipc_priv.h
@@ -0,0 +1,32 @@
+/* Old SysV permission definition for Linux. Alpha version.
+ Copyright (C) 2016-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sys/ipc.h> /* For __key_t */
+
+#define __IPC_64 0x100
+
+struct __old_ipc_perm
+{
+ __key_t __key; /* Key. */
+ unsigned int uid; /* Owner's user ID. */
+ unsigned int gid; /* Owner's group ID. */
+ unsigned int cuid; /* Creator's user ID. */
+ unsigned int cgid; /* Creator's group ID. */
+ unsigned int mode; /* Read/write permission. */
+ unsigned short int __seq; /* Sequence number. */
+};
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/alpha/kernel-features.h b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/kernel-features.h
new file mode 100644
index 0000000000..53f7611f93
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/kernel-features.h
@@ -0,0 +1,38 @@
+/* Set flags signalling availability of kernel features based on given
+ kernel version number.
+ Copyright (C) 2010-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _KERNEL_FEATURES_H
+#define _KERNEL_FEATURES_H 1
+
+#include_next <kernel-features.h>
+
+#undef __ASSUME_ST_INO_64_BIT
+#define __ASSUME_ST_INO_64_BIT 0
+
+/* There never has been support for fstat64. */
+#undef __ASSUME_STATFS64
+#define __ASSUME_STATFS64 0
+
+/* Alpha defines SysV ipc shmat syscall with a different name. */
+#define __NR_shmat __NR_osf_shmat
+
+#define __ASSUME_RECV_SYSCALL 1
+#define __ASSUME_SEND_SYSCALL 1
+
+#endif /* _KERNEL_FEATURES_H */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/alpha/kernel_sigaction.h b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/kernel_sigaction.h
new file mode 100644
index 0000000000..4c35d969cf
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/kernel_sigaction.h
@@ -0,0 +1,15 @@
+/* This is the sigaction struction from the Linux 2.1.20 kernel. */
+
+struct old_kernel_sigaction {
+ __sighandler_t k_sa_handler;
+ unsigned long sa_mask;
+ unsigned int sa_flags;
+};
+
+/* This is the sigaction structure from the Linux 2.1.68 kernel. */
+
+struct kernel_sigaction {
+ __sighandler_t k_sa_handler;
+ unsigned int sa_flags;
+ sigset_t sa_mask;
+};
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/alpha/kernel_stat.h b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/kernel_stat.h
new file mode 100644
index 0000000000..d637e099cf
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/kernel_stat.h
@@ -0,0 +1,89 @@
+/* Definition of `struct stat' used in the kernel. */
+struct kernel_stat
+ {
+ unsigned int st_dev;
+ unsigned int st_ino;
+ unsigned int st_mode;
+ unsigned int st_nlink;
+ unsigned int st_uid;
+ unsigned int st_gid;
+ unsigned int st_rdev;
+ long int st_size;
+ unsigned long int st_atime;
+ unsigned long int st_mtime;
+ unsigned long int st_ctime;
+ unsigned int st_blksize;
+ int st_blocks;
+ unsigned int st_flags;
+ unsigned int st_gen;
+ };
+
+/* Definition of `struct stat64' used in the kernel. */
+struct kernel_stat64
+ {
+ unsigned long st_dev;
+ unsigned long st_ino;
+ unsigned long st_rdev;
+ long st_size;
+ unsigned long st_blocks;
+
+ unsigned int st_mode;
+ unsigned int st_uid;
+ unsigned int st_gid;
+ unsigned int st_blksize;
+ unsigned int st_nlink;
+ unsigned int __pad0;
+
+ unsigned long st_atime;
+ unsigned long st_atimensec;
+ unsigned long st_mtime;
+ unsigned long st_mtimensec;
+ unsigned long st_ctime;
+ unsigned long st_ctimensec;
+ long __glibc_reserved[3];
+ };
+
+/* Definition of `struct stat' used by glibc 2.0. */
+struct glibc2_stat
+ {
+ __dev_t st_dev;
+ __ino_t st_ino;
+ __mode_t st_mode;
+ __nlink_t st_nlink;
+ __uid_t st_uid;
+ __gid_t st_gid;
+ __dev_t st_rdev;
+ __off_t st_size;
+ __time_t st_atime;
+ __time_t st_mtime;
+ __time_t st_ctime;
+ unsigned int st_blksize;
+ int st_blocks;
+ unsigned int st_flags;
+ unsigned int st_gen;
+ };
+
+/* Definition of `struct stat' used by glibc 2.1. */
+struct glibc21_stat
+ {
+ __dev_t st_dev;
+ __ino64_t st_ino;
+ __mode_t st_mode;
+ __nlink_t st_nlink;
+ __uid_t st_uid;
+ __gid_t st_gid;
+ __dev_t st_rdev;
+ __off_t st_size;
+ __time_t st_atime;
+ __time_t st_mtime;
+ __time_t st_ctime;
+ __blkcnt64_t st_blocks;
+ __blksize_t st_blksize;
+ unsigned int st_flags;
+ unsigned int st_gen;
+ int __pad3;
+ long __glibc_reserved[4];
+ };
+
+#define XSTAT_IS_XSTAT64 1
+#define STATFS_IS_STATFS64 0
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/alpha/kernel_sysinfo.h b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/kernel_sysinfo.h
new file mode 100644
index 0000000000..a3edec2269
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/kernel_sysinfo.h
@@ -0,0 +1,6 @@
+/* A copy of the couple of bits we need from <asm/sysinfo.h>. */
+
+#define GSI_IEEE_FP_CONTROL 45
+
+#define SSI_IEEE_FP_CONTROL 14
+#define SSI_IEEE_RAISE_EXCEPTION 1001
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/alpha/kernel_termios.h b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/kernel_termios.h
new file mode 100644
index 0000000000..ad12622a57
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/kernel_termios.h
@@ -0,0 +1,43 @@
+/* Copyright (C) 1997-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _KERNEL_TERMIOS_H
+#define _KERNEL_TERMIOS_H 1
+
+/* The following corresponds to the values from the Linux 2.1.20 kernel. */
+
+/* We need the definition of tcflag_t, cc_t, and speed_t. */
+#include <termios.h>
+
+#define __KERNEL_NCCS 19
+
+struct __kernel_termios
+ {
+ tcflag_t c_iflag; /* input mode flags */
+ tcflag_t c_oflag; /* output mode flags */
+ tcflag_t c_cflag; /* control mode flags */
+ tcflag_t c_lflag; /* local mode flags */
+ cc_t c_cc[__KERNEL_NCCS]; /* control characters */
+ cc_t c_line; /* line discipline */
+ speed_t c_ispeed; /* input speed */
+ speed_t c_ospeed; /* output speed */
+ };
+
+#define _HAVE_C_ISPEED 1
+#define _HAVE_C_OSPEED 1
+
+#endif /* kernel_termios.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/alpha/ld.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/ld.abilist
new file mode 100644
index 0000000000..ca34294610
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/ld.abilist
@@ -0,0 +1,13 @@
+GLIBC_2.0 GLIBC_2.0 A
+GLIBC_2.0 _r_debug D 0x28
+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 0x8
+GLIBC_2.1 _dl_mcount F
+GLIBC_2.3 GLIBC_2.3 A
+GLIBC_2.3 __tls_get_addr F
+GLIBC_2.4 GLIBC_2.4 A
+GLIBC_2.4 __stack_chk_guard D 0x8
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/alpha/libBrokenLocale.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/libBrokenLocale.abilist
new file mode 100644
index 0000000000..4a56bb68a3
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/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/alpha/libanl.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/libanl.abilist
new file mode 100644
index 0000000000..edabfb436e
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/libanl.abilist
@@ -0,0 +1,5 @@
+GLIBC_2.2.3 GLIBC_2.2.3 A
+GLIBC_2.2.3 gai_cancel F
+GLIBC_2.2.3 gai_error F
+GLIBC_2.2.3 gai_suspend F
+GLIBC_2.2.3 getaddrinfo_a F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/alpha/libc.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/libc.abilist
new file mode 100644
index 0000000000..fab73317ca
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/libc.abilist
@@ -0,0 +1,2503 @@
+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 0xa8
+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 0x8
+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 0x98
+GLIBC_2.0 _IO_stdin_ D 0x98
+GLIBC_2.0 _IO_stdout_ D 0x98
+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 __adjtimex F
+GLIBC_2.0 __after_morecore_hook D 0x8
+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 0x8
+GLIBC_2.0 __ctype_b D 0x8
+GLIBC_2.0 __ctype_get_mb_cur_max F
+GLIBC_2.0 __ctype_tolower D 0x8
+GLIBC_2.0 __ctype_toupper D 0x8
+GLIBC_2.0 __curbrk D 0x8
+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 __divl F
+GLIBC_2.0 __divlu F
+GLIBC_2.0 __divq F
+GLIBC_2.0 __divqu F
+GLIBC_2.0 __dup2 F
+GLIBC_2.0 __environ D 0x8
+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 0x8
+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 __ieee_get_fp_control F
+GLIBC_2.0 __ieee_set_fp_control 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 0x8
+GLIBC_2.0 __malloc_initialize_hook D 0x8
+GLIBC_2.0 __mbrlen F
+GLIBC_2.0 __mbrtowc F
+GLIBC_2.0 __memalign_hook D 0x8
+GLIBC_2.0 __mempcpy F
+GLIBC_2.0 __monstartup F
+GLIBC_2.0 __morecore D 0x8
+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 0x8
+GLIBC_2.0 __progname_full D 0x8
+GLIBC_2.0 __rcmd_errstr D 0x8
+GLIBC_2.0 __read F
+GLIBC_2.0 __realloc_hook D 0x8
+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 __reml F
+GLIBC_2.0 __remlu F
+GLIBC_2.0 __remq F
+GLIBC_2.0 __remqu 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 __strtoul_internal F
+GLIBC_2.0 __strtoull_internal F
+GLIBC_2.0 __sysv_signal F
+GLIBC_2.0 __timezone D 0x8
+GLIBC_2.0 __tzname D 0x10
+GLIBC_2.0 __uflow 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 _bus_base F
+GLIBC_2.0 _bus_base_sparse F
+GLIBC_2.0 _environ D 0x8
+GLIBC_2.0 _exit F
+GLIBC_2.0 _hae_shift F
+GLIBC_2.0 _inb F
+GLIBC_2.0 _inl F
+GLIBC_2.0 _inw 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 0x8
+GLIBC_2.0 _nl_msg_cat_cntr D 0x4
+GLIBC_2.0 _null_auth D 0x18
+GLIBC_2.0 _obstack D 0x8
+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 _outb F
+GLIBC_2.0 _outl F
+GLIBC_2.0 _outw F
+GLIBC_2.0 _res D 0x238
+GLIBC_2.0 _rpc_dtablesize F
+GLIBC_2.0 _seterr_reply F
+GLIBC_2.0 _setjmp F
+GLIBC_2.0 _sys_errlist D 0x418
+GLIBC_2.0 _sys_nerr D 0x4
+GLIBC_2.0 _sys_siglist D 0x100
+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 bus_base F
+GLIBC_2.0 bus_base_sparse 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 0x8
+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 0x8
+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 0x28
+GLIBC_2.0 h_nerr D 0x4
+GLIBC_2.0 hae_shift F
+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 inb 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 inl F
+GLIBC_2.0 innetgr F
+GLIBC_2.0 insque F
+GLIBC_2.0 inw F
+GLIBC_2.0 ioctl F
+GLIBC_2.0 ioperm F
+GLIBC_2.0 iopl 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 0x8
+GLIBC_2.0 loc2 D 0x8
+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 0x8
+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 0x8
+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 0x8
+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 0x8
+GLIBC_2.0 opterr D 0x4
+GLIBC_2.0 optind D 0x4
+GLIBC_2.0 optopt D 0x4
+GLIBC_2.0 outb F
+GLIBC_2.0 outl F
+GLIBC_2.0 outw F
+GLIBC_2.0 parse_printf_format F
+GLIBC_2.0 pathconf F
+GLIBC_2.0 pause F
+GLIBC_2.0 pciconfig_read F
+GLIBC_2.0 pciconfig_write 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 0x8
+GLIBC_2.0 program_invocation_short_name D 0x8
+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 0x8
+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 0x20
+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 sethae 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 0x8
+GLIBC_2.0 stdin D 0x8
+GLIBC_2.0 stdout D 0x8
+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 0x18
+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 0x418
+GLIBC_2.0 sys_nerr D 0x4
+GLIBC_2.0 sys_sigabbrev D 0x100
+GLIBC_2.0 sys_siglist D 0x100
+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 0x8
+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 0x10
+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 0xe0
+GLIBC_2.1 _IO_2_1_stdin_ D 0xe0
+GLIBC_2.1 _IO_2_1_stdout_ D 0xe0
+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 __adjtimex 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 __duplocale F
+GLIBC_2.1 __freelocale F
+GLIBC_2.1 __fxstat64 F
+GLIBC_2.1 __gettimeofday 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 0x8
+GLIBC_2.1 __key_encryptsession_pk_LOCAL D 0x8
+GLIBC_2.1 __key_gendes_LOCAL D 0x8
+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 __select 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 0x418
+GLIBC_2.1 _sys_nerr D 0x4
+GLIBC_2.1 _sys_siglist D 0x200
+GLIBC_2.1 addseverity F
+GLIBC_2.1 adjtime F
+GLIBC_2.1 adjtimex 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 0x8
+GLIBC_2.1 argp_program_version D 0x8
+GLIBC_2.1 argp_program_version_hook D 0x8
+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 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 getitimer 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 getrusage F
+GLIBC_2.1 gettimeofday F
+GLIBC_2.1 getutxent F
+GLIBC_2.1 getutxid F
+GLIBC_2.1 getutxline F
+GLIBC_2.1 glob F
+GLIBC_2.1 glob64 F
+GLIBC_2.1 globfree 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 ieee_get_fp_control F
+GLIBC_2.1 ieee_set_fp_control 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 select F
+GLIBC_2.1 sendfile F
+GLIBC_2.1 setitimer F
+GLIBC_2.1 setrlimit64 F
+GLIBC_2.1 settimeofday 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 0x418
+GLIBC_2.1 sys_nerr D 0x4
+GLIBC_2.1 sys_sigabbrev D 0x200
+GLIBC_2.1 sys_siglist D 0x200
+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 utimes F
+GLIBC_2.1 utmpxname F
+GLIBC_2.1 versionsort F
+GLIBC_2.1 versionsort64 F
+GLIBC_2.1 wait4 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.1.4 GLIBC_2.1.4 A
+GLIBC_2.1.4 pciconfig_iobase 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 fallocate64 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 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 0x458
+GLIBC_2.12 _sys_nerr D 0x4
+GLIBC_2.12 ntp_gettimex F
+GLIBC_2.12 recvmmsg F
+GLIBC_2.12 sys_errlist D 0x458
+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 _sys_errlist D 0x460
+GLIBC_2.16 _sys_nerr D 0x4
+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 sys_errlist D 0x460
+GLIBC_2.16 sys_nerr D 0x4
+GLIBC_2.16 timespec_get F
+GLIBC_2.17 GLIBC_2.17 A
+GLIBC_2.17 clock_getcpuclockid F
+GLIBC_2.17 clock_getres F
+GLIBC_2.17 clock_gettime F
+GLIBC_2.17 clock_nanosleep F
+GLIBC_2.17 clock_settime F
+GLIBC_2.17 secure_getenv F
+GLIBC_2.18 GLIBC_2.18 A
+GLIBC_2.18 __cxa_thread_atexit_impl F
+GLIBC_2.2 GLIBC_2.2 A
+GLIBC_2.2 _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 0xa8
+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 0x8
+GLIBC_2.2 __ctype32_toupper D 0x8
+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 __getmntent_r 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 _flushlbf F
+GLIBC_2.2 _res_hconf D 0x48
+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 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 rexec_af F
+GLIBC_2.2 rresvport_af F
+GLIBC_2.2 ruserok_af F
+GLIBC_2.2 semctl 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 0x8
+GLIBC_2.2 swprintf F
+GLIBC_2.2 swscanf F
+GLIBC_2.2 ungetwc 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.2 wordexp 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 0x420
+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 strtoul_l F
+GLIBC_2.3 strxfrm_l F
+GLIBC_2.3 sys_errlist D 0x420
+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 0x208
+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 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 strtoll_l F
+GLIBC_2.3.3 strtoull_l F
+GLIBC_2.3.3 sys_sigabbrev D 0x208
+GLIBC_2.3.3 sys_siglist D 0x208
+GLIBC_2.3.4 GLIBC_2.3.4 A
+GLIBC_2.3.4 _OtsAddX F
+GLIBC_2.3.4 _OtsConvertFloatTX F
+GLIBC_2.3.4 _OtsConvertFloatXT F
+GLIBC_2.3.4 _OtsCvtQUX F
+GLIBC_2.3.4 _OtsCvtQX F
+GLIBC_2.3.4 _OtsCvtXQ F
+GLIBC_2.3.4 _OtsDivX F
+GLIBC_2.3.4 _OtsEqlX F
+GLIBC_2.3.4 _OtsGeqX F
+GLIBC_2.3.4 _OtsGtrX F
+GLIBC_2.3.4 _OtsLeqX F
+GLIBC_2.3.4 _OtsLssX F
+GLIBC_2.3.4 _OtsMulX F
+GLIBC_2.3.4 _OtsNeqX F
+GLIBC_2.3.4 _OtsNintXQ F
+GLIBC_2.3.4 _OtsSubX F
+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 0x450
+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 0x450
+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 inotify_init1 F
+GLIBC_2.9 pipe2 F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/alpha/libcrypt.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/libcrypt.abilist
new file mode 100644
index 0000000000..4db2639336
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/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/alpha/libdl.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/libdl.abilist
new file mode 100644
index 0000000000..5536f6e0a9
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/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/alpha/libm.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/libm.abilist
new file mode 100644
index 0000000000..0dc44afd77
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/libm.abilist
@@ -0,0 +1,622 @@
+GLIBC_2.0 GLIBC_2.0 A
+GLIBC_2.0 _LIB_VERSION D 0x4
+GLIBC_2.0 __atan2 F
+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 __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.18 __sqrt_finite F
+GLIBC_2.18 __sqrtf_finite F
+GLIBC_2.18 __sqrtl_finite F
+GLIBC_2.2 GLIBC_2.2 A
+GLIBC_2.2 feclearexcept F
+GLIBC_2.2 fedisableexcept F
+GLIBC_2.2 feenableexcept F
+GLIBC_2.2 fegetenv F
+GLIBC_2.2 fegetexcept F
+GLIBC_2.2 fegetexceptflag F
+GLIBC_2.2 feraiseexcept F
+GLIBC_2.2 fesetenv F
+GLIBC_2.2 fesetexceptflag F
+GLIBC_2.2 feupdateenv 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.3.4 GLIBC_2.3.4 A
+GLIBC_2.3.4 __c1_cabsf F
+GLIBC_2.3.4 __c1_cacosf F
+GLIBC_2.3.4 __c1_cacoshf F
+GLIBC_2.3.4 __c1_cargf F
+GLIBC_2.3.4 __c1_casinf F
+GLIBC_2.3.4 __c1_casinhf F
+GLIBC_2.3.4 __c1_catanf F
+GLIBC_2.3.4 __c1_catanhf F
+GLIBC_2.3.4 __c1_ccosf F
+GLIBC_2.3.4 __c1_ccoshf F
+GLIBC_2.3.4 __c1_cexpf F
+GLIBC_2.3.4 __c1_cimagf F
+GLIBC_2.3.4 __c1_clog10f F
+GLIBC_2.3.4 __c1_clogf F
+GLIBC_2.3.4 __c1_conjf F
+GLIBC_2.3.4 __c1_cpowf F
+GLIBC_2.3.4 __c1_cprojf F
+GLIBC_2.3.4 __c1_crealf F
+GLIBC_2.3.4 __c1_csinf F
+GLIBC_2.3.4 __c1_csinhf F
+GLIBC_2.3.4 __c1_csqrtf F
+GLIBC_2.3.4 __c1_ctanf F
+GLIBC_2.3.4 __c1_ctanhf F
+GLIBC_2.3.4 cabsf F
+GLIBC_2.3.4 cacosf F
+GLIBC_2.3.4 cacoshf F
+GLIBC_2.3.4 cargf F
+GLIBC_2.3.4 casinf F
+GLIBC_2.3.4 casinhf F
+GLIBC_2.3.4 catanf F
+GLIBC_2.3.4 catanhf F
+GLIBC_2.3.4 ccosf F
+GLIBC_2.3.4 ccoshf F
+GLIBC_2.3.4 cexpf F
+GLIBC_2.3.4 cimagf F
+GLIBC_2.3.4 clog10f F
+GLIBC_2.3.4 clogf F
+GLIBC_2.3.4 conjf F
+GLIBC_2.3.4 cpowf F
+GLIBC_2.3.4 cprojf F
+GLIBC_2.3.4 crealf F
+GLIBC_2.3.4 csinf F
+GLIBC_2.3.4 csinhf F
+GLIBC_2.3.4 csqrtf F
+GLIBC_2.3.4 ctanf F
+GLIBC_2.3.4 ctanhf 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/alpha/libnsl.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/libnsl.abilist
new file mode 100644
index 0000000000..a23db2aeaf
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/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/alpha/libpthread.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
new file mode 100644
index 0000000000..7e121d45f8
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
@@ -0,0 +1,259 @@
+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.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_attr_setstack F
+GLIBC_2.3.3 pthread_attr_setstacksize 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/alpha/libresolv.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/libresolv.abilist
new file mode 100644
index 0000000000..2d92a35e81
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/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 0xa8
+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 0x450
+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 0x80
+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/alpha/librt.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/librt.abilist
new file mode 100644
index 0000000000..8699f6ccc4
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/librt.abilist
@@ -0,0 +1,56 @@
+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 GLIBC_2.3 A
+GLIBC_2.3 aio_cancel F
+GLIBC_2.3 aio_cancel64 F
+GLIBC_2.3.3 GLIBC_2.3.3 A
+GLIBC_2.3.3 timer_create F
+GLIBC_2.3.3 timer_delete F
+GLIBC_2.3.3 timer_getoverrun F
+GLIBC_2.3.3 timer_gettime F
+GLIBC_2.3.3 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/alpha/libthread_db.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/libthread_db.abilist
new file mode 100644
index 0000000000..a8a8c2c68d
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/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/alpha/libutil.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/libutil.abilist
new file mode 100644
index 0000000000..89c67755c4
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/libutil.abilist
@@ -0,0 +1,7 @@
+GLIBC_2.0 GLIBC_2.0 A
+GLIBC_2.0 forkpty F
+GLIBC_2.0 login F
+GLIBC_2.0 login_tty F
+GLIBC_2.0 logout F
+GLIBC_2.0 logwtmp F
+GLIBC_2.0 openpty F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/alpha/localplt.data b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/localplt.data
new file mode 100644
index 0000000000..1f0e3b494e
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/localplt.data
@@ -0,0 +1,37 @@
+libc.so: _OtsAddX ?
+libc.so: _OtsConvertFloatTX ?
+libc.so: _OtsConvertFloatXT ?
+libc.so: _OtsCvtQUX ?
+libc.so: _OtsCvtQX ?
+libc.so: _OtsCvtXQ ?
+libc.so: _OtsDivX ?
+libc.so: _OtsEqlX ?
+libc.so: _OtsGeqX ?
+libc.so: _OtsGtrX ?
+libc.so: _OtsLeqX ?
+libc.so: _OtsLssX ?
+libc.so: _OtsMulX ?
+libc.so: _OtsNeqX ?
+libc.so: _OtsNintXQ ?
+libc.so: _OtsSubX ?
+libc.so: _Unwind_Find_FDE
+libc.so: calloc + RELA R_ALPHA_GLOB_DAT
+libc.so: free + RELA R_ALPHA_GLOB_DAT
+libc.so: malloc + RELA R_ALPHA_GLOB_DAT
+libc.so: memalign + RELA R_ALPHA_GLOB_DAT
+libc.so: realloc + RELA R_ALPHA_GLOB_DAT
+libm.so: matherr + RELA R_ALPHA_GLOB_DAT
+# We used to offer inline functions that used this, so it must be exported.
+# Ought to reorg things such that carg isn't thus forced to use a plt.
+libm.so: __atan2
+# The dynamic loader needs __tls_get_addr for TLS.
+ld.so: __tls_get_addr ?
+# The main malloc is interposed into the dynamic linker, for
+# allocations after the initial link (when dlopen is used).
+ld.so: malloc + RELA R_ALPHA_GLOB_DAT
+ld.so: calloc + RELA R_ALPHA_GLOB_DAT
+ld.so: realloc + RELA R_ALPHA_GLOB_DAT
+ld.so: free + RELA R_ALPHA_GLOB_DAT
+# The TLS-enabled version of these functions is interposed from libc.so.
+ld.so: _dl_signal_error + RELA R_ALPHA_GLOB_DAT
+ld.so: _dl_catch_error + RELA R_ALPHA_GLOB_DAT
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/alpha/lxstat.c b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/lxstat.c
new file mode 100644
index 0000000000..8e49754f4c
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/lxstat.c
@@ -0,0 +1,58 @@
+/* lxstat using old-style Unix stat system call.
+ Copyright (C) 2004-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#define __lxstat64 __lxstat64_disable
+
+#include <errno.h>
+#include <stddef.h>
+#include <sys/stat.h>
+#include <kernel_stat.h>
+#include <sysdep.h>
+#include <sys/syscall.h>
+#include <xstatconv.h>
+
+#undef __lxstat64
+
+
+/* Get information about the file NAME in BUF. */
+int
+__lxstat (int vers, const char *name, struct stat *buf)
+{
+ INTERNAL_SYSCALL_DECL (err);
+ int result;
+ struct kernel_stat kbuf;
+
+ if (vers == _STAT_VER_KERNEL64)
+ {
+ result = INTERNAL_SYSCALL (lstat64, err, 2, name, buf);
+ if (__builtin_expect (!INTERNAL_SYSCALL_ERROR_P (result, err), 1))
+ return result;
+ __set_errno (INTERNAL_SYSCALL_ERRNO (result, err));
+ return -1;
+ }
+
+ result = INTERNAL_SYSCALL (lstat, err, 2, name, &kbuf);
+ if (__builtin_expect (!INTERNAL_SYSCALL_ERROR_P (result, err), 1))
+ return __xstat_conv (vers, &kbuf, buf);
+ __set_errno (INTERNAL_SYSCALL_ERRNO (result, err));
+ return -1;
+}
+hidden_def (__lxstat)
+weak_alias (__lxstat, _lxstat);
+strong_alias (__lxstat, __lxstat64);
+hidden_ver (__lxstat, __lxstat64)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/alpha/makecontext.S b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/makecontext.S
new file mode 100644
index 0000000000..b9529bd207
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/makecontext.S
@@ -0,0 +1,163 @@
+/* Copyright (C) 2004-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#include <ucontext-offsets.h>
+
+
+ENTRY(__makecontext)
+ ldgp $29, 0($27)
+#ifdef PROF
+ .set noat
+ lda AT, _mcount
+ jsr AT, (AT), _mcount
+ .set at
+#endif
+ .prologue 1
+
+ /* Compute top of stack, including arguments. */
+ ldq $1, UC_STACK+SS_SP($16)
+ ldq $2, UC_STACK+SS_SIZE($16)
+ addq $1, $2, $8
+ subq $18, 6, $1
+ cmovlt $1, 0, $1
+ s8addq $1, 0, $2
+ subq $8, $2, $8
+
+ /* Copy all parameters. Switch statement header here. */
+ ldah $3, $jumptable($29) !gprelhigh
+ cmple $18, 6, $1
+ mov $18, $2
+ cmoveq $1, 7, $2
+ s4addq $2, $3, $3
+ ldl $4, $jumptable($3) !gprellow
+ addq $4, $29, $4
+ jmp $31, ($4), $args1
+
+ .section .rodata
+ .align 2
+$jumptable:
+ .gprel32 $args0
+ .gprel32 $args1
+ .gprel32 $args2
+ .gprel32 $args3
+ .gprel32 $args4
+ .gprel32 $args5
+ .gprel32 $args6
+ .gprel32 $argsN
+ .text
+
+ /* Here we process arguments 7 through N. This is a straight
+ stack-to-stack copy. */
+ .align 4
+$argsN:
+ subq $18, 6, $1
+ lda $2, 0($8)
+ lda $3, 3*8($30)
+ .align 4
+1:
+ ldq $0, 0($3)
+ subq $1, 1, $1
+ lda $3, 8($3)
+ stq $0, 0($2)
+ lda $2, 8($2)
+ bne $1, 1b
+
+ /* Here we process arguments 6 through 0. This involves
+ copying into the register save areas of the ucontext. */
+ .align 4
+$args6:
+ ldq $0, 2*8($30)
+ stq $0, UC_SIGCTX+SC_REGS+21*8($16)
+ unop
+ stq $0, UC_SIGCTX+SC_FPREGS+21*8($16)
+$args5:
+ ldq $0, 1*8($30)
+ stq $0, UC_SIGCTX+SC_REGS+20*8($16)
+ unop
+ stq $0, UC_SIGCTX+SC_FPREGS+20*8($16)
+$args4:
+ ldq $0, 0*8($30)
+ stq $0, UC_SIGCTX+SC_REGS+19*8($16)
+ unop
+ stq $0, UC_SIGCTX+SC_FPREGS+19*8($16)
+$args3:
+ unop
+ stq $21, UC_SIGCTX+SC_REGS+18*8($16)
+ unop
+ stt $f21, UC_SIGCTX+SC_FPREGS+18*8($16)
+$args2:
+ unop
+ stq $20, UC_SIGCTX+SC_REGS+17*8($16)
+ unop
+ stt $f20, UC_SIGCTX+SC_FPREGS+17*8($16)
+$args1:
+ unop
+ stq $19, UC_SIGCTX+SC_REGS+16*8($16)
+ unop
+ stt $f19, UC_SIGCTX+SC_FPREGS+16*8($16)
+$args0:
+
+ /* Set up the registers ready to invoke __startcontext.
+ We seed $27 with the target function address, and $9
+ with the link from ucp. */
+ ldah $0, __startcontext($29) !gprelhigh
+ ldq $1, UC_LINK($16)
+ lda $0, __startcontext($0) !gprellow
+ stq $17, UC_SIGCTX+SC_REGS+27*8($16)
+ stq $8, UC_SIGCTX+SC_REGS+30*8($16)
+ stq $0, UC_SIGCTX+SC_PC($16)
+ stq $1, UC_SIGCTX+SC_REGS+9*8($16)
+
+ /* No return value from makecontext. */
+ ret
+
+END(__makecontext)
+weak_alias (__makecontext, makecontext)
+
+/* This function is where a new makecontext "thread" begins life.
+ We have already set up $27 for calling the target function, and
+ we've set $9 to the UC_LINK of the parent context.
+
+ If the function returns, we either jump to the linked context
+ (if non-null) or exit. */
+
+ .align 4
+ .ent __startcontext
+__startcontext:
+ .frame $31, 0, $31, 0
+ .prologue 0
+
+ jsr $26, ($27), 0
+ ldgp $29, 0($26)
+ mov $9, $16
+ beq $9, 1f
+
+#ifdef PIC
+ bsr $26, __setcontext !samegp
+1: mov $31, $16
+ bsr $26, HIDDEN_JUMPTARGET(exit) !samegp
+#else
+ jsr $26, __setcontext
+ ldgp $29, 0($26)
+1: mov $31, $16
+ jsr $26, HIDDEN_JUMPTARGET(exit)
+#endif
+
+ halt
+
+ .end __startcontext
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/alpha/nldbl-abi.h b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/nldbl-abi.h
new file mode 100644
index 0000000000..bd985cc59c
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/nldbl-abi.h
@@ -0,0 +1,8 @@
+/* ABI version for long double switch.
+ This is used by the Versions and math_ldbl_opt.h files in
+ sysdeps/ieee754/ldbl-opt/. It gives the ABI version where
+ long double == double was replaced with proper long double
+ for libm *l functions and libc functions using long double. */
+
+#define NLDBL_VERSION GLIBC_2.4
+#define LONG_DOUBLE_COMPAT_VERSION GLIBC_2_4
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/alpha/oldglob.c b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/oldglob.c
new file mode 100644
index 0000000000..edd6d47ba9
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/oldglob.c
@@ -0,0 +1,99 @@
+/* Copyright (C) 1998-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+/* This file contains only wrappers around the real glob functions. It
+ became necessary since the glob_t structure changed. */
+#include <sys/types.h>
+#include <glob.h>
+#include <shlib-compat.h>
+
+#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_1)
+
+/* This is the old structure. The difference is that the gl_pathc and
+ gl_offs elements have type `int'. */
+typedef struct
+ {
+ int gl_pathc; /* Count of paths matched by the pattern. */
+ char **gl_pathv; /* List of matched pathnames. */
+ int gl_offs; /* Slots to reserve in `gl_pathv'. */
+ int gl_flags; /* Set to FLAGS, maybe | GLOB_MAGCHAR. */
+
+ /* If the GLOB_ALTDIRFUNC flag is set, the following functions
+ are used instead of the normal file access functions. */
+ void (*gl_closedir) (void *);
+ struct dirent *(*gl_readdir) (void *);
+ __ptr_t (*gl_opendir) (const char *);
+ int (*gl_lstat) (const char *, struct stat *);
+ int (*gl_stat) (const char *, struct stat *);
+ } old_glob_t;
+
+
+int
+attribute_compat_text_section
+__old_glob (const char *pattern, int flags,
+ int (*errfunc) (const char *, int),
+ old_glob_t *pglob)
+{
+ glob_t correct;
+ int result;
+
+ /* Construct an object of correct type. */
+ correct.gl_pathc = pglob->gl_pathc;
+ correct.gl_pathv = pglob->gl_pathv;
+ correct.gl_offs = pglob->gl_offs;
+ correct.gl_flags = pglob->gl_flags;
+ correct.gl_closedir = pglob->gl_closedir;
+ correct.gl_readdir = pglob->gl_readdir;
+ correct.gl_opendir = pglob->gl_opendir;
+ correct.gl_lstat = pglob->gl_lstat;
+ correct.gl_stat = pglob->gl_stat;
+
+ result = glob (pattern, flags, errfunc, &correct);
+
+ /* And convert it back. */
+ pglob->gl_pathc = correct.gl_pathc;
+ pglob->gl_pathv = correct.gl_pathv;
+ pglob->gl_offs = correct.gl_offs;
+ pglob->gl_flags = correct.gl_flags;
+ pglob->gl_closedir = correct.gl_closedir;
+ pglob->gl_readdir = correct.gl_readdir;
+ pglob->gl_opendir = correct.gl_opendir;
+ pglob->gl_lstat = correct.gl_lstat;
+ pglob->gl_stat = correct.gl_stat;
+
+ return result;
+}
+compat_symbol (libc, __old_glob, glob, GLIBC_2_0);
+
+
+/* Free storage allocated in PGLOB by a previous `glob' call. */
+void
+attribute_compat_text_section
+__old_globfree (old_glob_t *pglob)
+{
+ glob_t correct;
+
+ /* We only need these two symbols. */
+ correct.gl_pathc = pglob->gl_pathc;
+ correct.gl_pathv = pglob->gl_pathv;
+ correct.gl_offs = pglob->gl_offs;
+
+ globfree (&correct);
+}
+compat_symbol (libc, __old_globfree, globfree, GLIBC_2_0);
+
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/alpha/pipe.S b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/pipe.S
new file mode 100644
index 0000000000..1e7ec1c199
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/pipe.S
@@ -0,0 +1 @@
+#include <sysdeps/unix/alpha/pipe.S>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/alpha/pt-vfork.S b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/pt-vfork.S
new file mode 100644
index 0000000000..a2cfe5f4c3
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/pt-vfork.S
@@ -0,0 +1,43 @@
+/* vfork ABI-compatibility entry points for libpthread.
+ Copyright (C) 2014-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <shlib-compat.h>
+
+/* libpthread used to have its own vfork implementation that differed
+ from libc's only in having a pointless micro-optimization. There
+ is no longer any use to having a separate copy in libpthread, but
+ the historical ABI requires it. For static linking, there is no
+ need to provide anything here--the libc version will be linked in.
+ For shared library ABI compatibility, there must be __vfork and
+ vfork symbols in libpthread.so. */
+
+#if (SHLIB_COMPAT (libpthread, GLIBC_2_0, GLIBC_2_20) \
+ || SHLIB_COMPAT (libpthread, GLIBC_2_1_2, GLIBC_2_20))
+
+#include <vfork.S>
+
+#endif
+
+#if SHLIB_COMPAT (libpthread, GLIBC_2_0, GLIBC_2_20)
+compat_symbol (libpthread, __libc_vfork, vfork, GLIBC_2_0);
+#endif
+
+#if SHLIB_COMPAT (libpthread, GLIBC_2_1_2, GLIBC_2_20)
+strong_alias (__libc_vfork, __vfork_compat)
+compat_symbol (libpthread, __vfork_compat, __vfork, GLIBC_2_1_2);
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/alpha/register-dump.h b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/register-dump.h
new file mode 100644
index 0000000000..b9d277ce3e
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/register-dump.h
@@ -0,0 +1,156 @@
+/* Dump registers.
+ Copyright (C) 2004-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <stddef.h>
+#include <string.h>
+
+/* We will print the register dump in this format:
+
+ V0: XXXXXXXXXXXXXXXX T0: XXXXXXXXXXXXXXXX T1: XXXXXXXXXXXXXXXX
+ T2: XXXXXXXXXXXXXXXX T3: XXXXXXXXXXXXXXXX T4: XXXXXXXXXXXXXXXX
+ T5: XXXXXXXXXXXXXXXX T6: XXXXXXXXXXXXXXXX T7: XXXXXXXXXXXXXXXX
+ S0: XXXXXXXXXXXXXXXX S1: XXXXXXXXXXXXXXXX S2: XXXXXXXXXXXXXXXX
+ S3: XXXXXXXXXXXXXXXX S4: XXXXXXXXXXXXXXXX S5: XXXXXXXXXXXXXXXX
+ S6: XXXXXXXXXXXXXXXX A0: XXXXXXXXXXXXXXXX A1: XXXXXXXXXXXXXXXX
+ A2: XXXXXXXXXXXXXXXX A3: XXXXXXXXXXXXXXXX A4: XXXXXXXXXXXXXXXX
+ A5: XXXXXXXXXXXXXXXX T8: XXXXXXXXXXXXXXXX T9: XXXXXXXXXXXXXXXX
+ T10: XXXXXXXXXXXXXXXX T11: XXXXXXXXXXXXXXXX RA: XXXXXXXXXXXXXXXX
+ T12: XXXXXXXXXXXXXXXX AT: XXXXXXXXXXXXXXXX GP: XXXXXXXXXXXXXXXX
+ SP: XXXXXXXXXXXXXXXX PC: XXXXXXXXXXXXXXXX
+
+ FP0: XXXXXXXXXXXXXXXX FP1: XXXXXXXXXXXXXXXX FP2: XXXXXXXXXXXXXXXX
+ FP3: XXXXXXXXXXXXXXXX FP4: XXXXXXXXXXXXXXXX FP5: XXXXXXXXXXXXXXXX
+ FP6: XXXXXXXXXXXXXXXX FP7: XXXXXXXXXXXXXXXX FP8: XXXXXXXXXXXXXXXX
+ FP9: XXXXXXXXXXXXXXXX FP10: XXXXXXXXXXXXXXXX FP11: XXXXXXXXXXXXXXXX
+ FP12: XXXXXXXXXXXXXXXX FP13: XXXXXXXXXXXXXXXX FP14: XXXXXXXXXXXXXXXX
+ FP15: XXXXXXXXXXXXXXXX FP16: XXXXXXXXXXXXXXXX FP17: XXXXXXXXXXXXXXXX
+ FP18: XXXXXXXXXXXXXXXX FP19: XXXXXXXXXXXXXXXX FP20: XXXXXXXXXXXXXXXX
+ FP21: XXXXXXXXXXXXXXXX FP22: XXXXXXXXXXXXXXXX FP23: XXXXXXXXXXXXXXXX
+ FP24: XXXXXXXXXXXXXXXX FP25: XXXXXXXXXXXXXXXX FP26: XXXXXXXXXXXXXXXX
+ FP27: XXXXXXXXXXXXXXXX FP28: XXXXXXXXXXXXXXXX FP29: XXXXXXXXXXXXXXXX
+ FP30: XXXXXXXXXXXXXXXX FPCR: XXXXXXXXXXXXXXXX
+
+ TA0: XXXXXXXXXXXXXXXX TA1: XXXXXXXXXXXXXXXX TA2: XXXXXXXXXXXXXXXX
+*/
+
+#define NREGS (32+32+3)
+
+static const char __attribute__((aligned(8))) regnames[NREGS][8] =
+{
+ " V0: ", " T0: ", " T1: ",
+ " T2: ", " T3: ", " T4: ",
+ " T5: ", " T6: ", " T7: ",
+ " S0: ", " S1: ", " S2: ",
+ " S3: ", " S4: ", " S5: ",
+ " S6: ", " A0: ", " A1: ",
+ " A2: ", " A3: ", " A4: ",
+ " A5: ", " T8: ", " T9: ",
+ " T10: ", " T11: ", " RA: ",
+ " T12: ", " AT: ", " GP: ",
+ " SP: ", " PC: ",
+
+ " FP0: ", " FP1: ", " FP2: ",
+ " FP3: ", " FP4: ", " FP5: ",
+ " FP6: ", " FP7: ", " FP8: ",
+ " FP9: ", " FP10: ", " FP11: ",
+ " FP12: ", " FP13: ", " FP14: ",
+ " FP15: ", " FP16: ", " FP17: ",
+ " FP18: ", " FP19: ", " FP20: ",
+ " FP21: ", " FP22: ", " FP23: ",
+ " FP24: ", " FP25: ", " FP26: ",
+ " FP27: ", " FP28: ", " FP29: ",
+ " FP30: ", " FPCR: ",
+
+ " TA0: ", " TA1: ", " TA2: "
+};
+
+#define O(FIELD, LF) offsetof(struct sigcontext, FIELD) + LF
+
+static const int offsets[NREGS] =
+{
+ O(sc_regs[0], 0), O(sc_regs[1], 0), O(sc_regs[2], 1),
+ O(sc_regs[3], 0), O(sc_regs[4], 0), O(sc_regs[5], 1),
+ O(sc_regs[6], 0), O(sc_regs[7], 0), O(sc_regs[8], 1),
+ O(sc_regs[9], 0), O(sc_regs[10], 0), O(sc_regs[11], 1),
+ O(sc_regs[12], 0), O(sc_regs[13], 0), O(sc_regs[14], 1),
+ O(sc_regs[15], 0), O(sc_regs[16], 0), O(sc_regs[17], 1),
+ O(sc_regs[18], 0), O(sc_regs[19], 0), O(sc_regs[20], 1),
+ O(sc_regs[21], 0), O(sc_regs[22], 0), O(sc_regs[23], 1),
+ O(sc_regs[24], 0), O(sc_regs[25], 0), O(sc_regs[26], 1),
+ O(sc_regs[27], 0), O(sc_regs[28], 0), O(sc_regs[29], 1),
+ O(sc_regs[30], 0), O(sc_pc, 2),
+
+ O(sc_fpregs[0], 0), O(sc_fpregs[1], 0), O(sc_fpregs[2], 1),
+ O(sc_fpregs[3], 0), O(sc_fpregs[4], 0), O(sc_fpregs[5], 1),
+ O(sc_fpregs[6], 0), O(sc_fpregs[7], 0), O(sc_fpregs[8], 1),
+ O(sc_fpregs[9], 0), O(sc_fpregs[10], 0), O(sc_fpregs[11], 1),
+ O(sc_fpregs[12], 0), O(sc_fpregs[13], 0), O(sc_fpregs[14], 1),
+ O(sc_fpregs[15], 0), O(sc_fpregs[16], 0), O(sc_fpregs[17], 1),
+ O(sc_fpregs[18], 0), O(sc_fpregs[19], 0), O(sc_fpregs[20], 1),
+ O(sc_fpregs[21], 0), O(sc_fpregs[22], 0), O(sc_fpregs[23], 1),
+ O(sc_fpregs[24], 0), O(sc_fpregs[25], 0), O(sc_fpregs[26], 1),
+ O(sc_fpregs[27], 0), O(sc_fpregs[28], 0), O(sc_fpregs[29], 1),
+ O(sc_fpregs[30], 0), O(sc_fpcr, 2),
+
+ O(sc_traparg_a0, 0), O(sc_traparg_a1, 0), O(sc_traparg_a2, 1)
+};
+
+#undef O
+
+static void
+register_dump (int fd, struct sigcontext *ctx)
+{
+ char buf[NREGS*(8+16) + 25 + 80];
+ char *p = buf;
+ size_t i;
+
+ p = stpcpy (p, "Register dump:\n\n");
+
+ for (i = 0; i < NREGS; ++i)
+ {
+ int this_offset, this_lf;
+ unsigned long val;
+ signed long j;
+
+ this_offset = offsets[i];
+ this_lf = this_offset & 7;
+
+ val = *(unsigned long *)(((size_t)ctx + this_offset) & -8);
+
+ memcpy (p, regnames[i], 8);
+ p += 8;
+
+ for (j = 60; j >= 0; j -= 4)
+ {
+ unsigned long x = (val >> j) & 15;
+ x += x < 10 ? '0' : 'a' - 10;
+ *p++ = x;
+ }
+
+ if (this_lf > 0)
+ {
+ if (this_lf > 1)
+ *p++ = '\n';
+ *p++ = '\n';
+ }
+ }
+
+ write (fd, buf, p - buf);
+}
+
+#define REGISTER_DUMP register_dump (fd, ctx)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/alpha/rt_sigaction.S b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/rt_sigaction.S
new file mode 100644
index 0000000000..45493484c7
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/rt_sigaction.S
@@ -0,0 +1,120 @@
+/* Copyright (C) 1998-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Richard Henderson <rth@cygnus.com>, 1998
+
+ 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>
+
+/* On Alpha we desparately want to avoid having to issue an imb. Ordinarily
+ the kernel would have to issue one after setting up the signal return
+ stack, but the Linux rt_sigaction syscall is prepared to accept a pointer
+ to the sigreturn syscall, instead of inlining it on the stack.
+
+ This just about halves signal delivery time. */
+
+ .text
+
+ENTRY(__syscall_rt_sigaction)
+ cfi_startproc
+ ldgp gp,0(pv)
+#ifdef PROF
+ .set noat
+ lda AT, _mcount
+ jsr AT, (AT), _mcount
+ .set at
+#endif
+ .prologue 1
+
+ beq a1, 0f
+ ldl t0, 8(a1) # sa_flags
+
+ ldah a4, __syscall_sigreturn(gp) !gprelhigh
+ ldah t1, __syscall_rt_sigreturn(gp) !gprelhigh
+ lda a4, __syscall_sigreturn(a4) !gprellow
+ lda t1, __syscall_rt_sigreturn(t1) !gprellow
+ and t0, 0x40, t0 # SA_SIGINFO
+ cmovne t0, t1, a4
+
+0: ldi v0, __NR_rt_sigaction
+ callsys
+ bne a3, SYSCALL_ERROR_LABEL
+ ret
+ cfi_endproc
+PSEUDO_END(__syscall_rt_sigaction)
+
+/* To enable unwinding through the signal frame without special hackery
+ elsewhere, describe the entire struct sigcontext with unwind info.
+
+ In order to minimize the size of the encoding, we set the CFA to the
+ end of the sigcontext, which makes all of the registers have small
+ negative offsets from that. */
+
+ .macro SIGCONTEXT_REGS_I base, from=0
+ cfi_offset (\from, \base + (4 + \from) * 8)
+ .if 30-\from
+ SIGCONTEXT_REGS_I \base, "(\from+1)"
+ .endif
+ .endm
+
+ .macro SIGCONTEXT_REGS_F base, from=32
+ cfi_offset (\from, \base + (4 + 1 + \from) * 8)
+ .if 62-\from
+ SIGCONTEXT_REGS_F \base, "(\from+1)"
+ .endif
+ .endm
+
+ .macro SIGCONTEXT_REGS base
+ SIGCONTEXT_REGS_I \base
+ SIGCONTEXT_REGS_F \base
+ cfi_offset (63, \base + (4 + 32 + 1 + 32) * 8)
+ cfi_offset (64, \base + 2 * 8)
+ .endm
+
+ cfi_startproc
+ cfi_return_column (64)
+ .cfi_signal_frame
+ SIGCONTEXT_REGS -648
+ cfi_def_cfa_offset (648)
+
+ /* While this frame is marked as a signal frame, that only applies
+ to how this return address is handled for the outer frame.
+ The return address that arrived here, from the inner frame, is
+ not marked as a signal frame and so the unwinder still tries to
+ subtract 1 to examine the presumed call insn. Thus we must
+ extend the unwind info to a nop before the start. */
+ nop
+ .align 4
+
+__syscall_sigreturn:
+ mov sp, a0
+ ldi v0, __NR_sigreturn
+ callsys
+ .size __syscall_sigreturn, .-__syscall_sigreturn
+ .type __syscall_sigreturn, @function
+
+ /* See above wrt including the nop. */
+ cfi_def_cfa_offset (176 + 648)
+ nop
+ .align 4
+
+__syscall_rt_sigreturn:
+ mov sp,a0
+ ldi v0,__NR_rt_sigreturn
+ callsys
+ .size __syscall_rt_sigreturn, .-__syscall_rt_sigreturn
+ .type __syscall_rt_sigreturn, @function
+
+ cfi_endproc
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/alpha/select.c b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/select.c
new file mode 100644
index 0000000000..bb0298f6a4
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/select.c
@@ -0,0 +1,53 @@
+/* Linux/alpha select implementation.
+ Copyright (C) 2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sys/time.h>
+#include <sys/types.h>
+#include <sys/select.h>
+#include <errno.h>
+#include <sysdep-cancel.h>
+#include <shlib-compat.h>
+
+int
+__new_select (int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds,
+ struct timeval *timeout)
+{
+ return SYSCALL_CANCEL (select, nfds, readfds, writefds, exceptfds, timeout);
+}
+strong_alias (__new_select, __select)
+libc_hidden_def (__select)
+
+default_symbol_version (__new_select, select, GLIBC_2.1);
+
+strong_alias (__new_select, __new_select_private);
+symbol_version (__new_select_private, __select, GLIBC_2.1);
+
+/* Old timeval32 compat calls. */
+#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_1)
+int
+__select_tv32 (int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds,
+ struct timeval *timeout)
+{
+ return SYSCALL_CANCEL (osf_select, nfds, readfds, writefds, exceptfds,
+ timeout);
+}
+strong_alias (__select_tv32, __select_tv32_1)
+
+compat_symbol (libc, __select_tv32, __select, GLIBC_2_0);
+compat_symbol (libc, __select_tv32_1, select, GLIBC_2_0);
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/alpha/setcontext.S b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/setcontext.S
new file mode 100644
index 0000000000..ea8601f34f
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/setcontext.S
@@ -0,0 +1,34 @@
+/* Install given context.
+ Copyright (C) 2004-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#include <ucontext-offsets.h>
+
+
+/* In case the user fiddled it, copy the "official" signal mask
+ from the ucontext_t into the sigcontext structure. */
+#undef PSEUDO_PREPARE_ARGS
+#define PSEUDO_PREPARE_ARGS \
+ ldq $0, UC_SIGMASK($16); \
+ stq $0, UC_SIGCTX+SC_MASK($16); \
+ lda $16, UC_SIGCTX($16);
+
+PSEUDO(__setcontext, sigreturn, 1)
+ ret
+PSEUDO_END(__setcontext)
+weak_alias (__setcontext, setcontext)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/alpha/setfpucw.c b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/setfpucw.c
new file mode 100644
index 0000000000..54484f8847
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/setfpucw.c
@@ -0,0 +1,61 @@
+/* Set FP exception mask and rounding mode.
+ Copyright (C) 1996-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <fpu_control.h>
+#include <fenv_libc.h>
+
+
+#define convert_bit(M, F, T) \
+ ((T) < (F) \
+ ? ((M) / ((F) / (T))) & (T) \
+ : ((M) & (F)) * ((T) / (F)))
+
+
+void
+__setfpucw (fpu_control_t fpu_control)
+{
+ unsigned long fpcr, swcr, fc = (int)fpu_control;
+
+ /* ??? If this was a real external interface we'd want to read the current
+ exception state with __ieee_get_fp_control. But this is an internal
+ function only called at process startup, so there's no point in trying
+ to preserve exceptions that cannot have been raised yet. Indeed, this
+ entire function is likely to be one big nop unless the user overrides
+ the default __fpu_control variable. */
+
+ /* Convert the rounding mode from fpu_control.h format. */
+ const unsigned long conv_rnd
+ = ( (FE_TOWARDZERO << (_FPU_RC_ZERO >> 8))
+ | (FE_DOWNWARD << (_FPU_RC_DOWN >> 8))
+ | (FE_TONEAREST << (_FPU_RC_NEAREST >> 8))
+ | (FE_UPWARD << (_FPU_RC_UP >> 8)));
+
+ fpcr = ((conv_rnd >> ((fc >> 8) & 3)) & 3) << FPCR_ROUND_SHIFT;
+
+ /* Convert the exception mask from fpu_control.h format. */
+ swcr = convert_bit (~fc, _FPU_MASK_IM, FE_INVALID >> SWCR_ENABLE_SHIFT);
+ swcr |= convert_bit (~fc, _FPU_MASK_DM, FE_UNDERFLOW >> SWCR_ENABLE_SHIFT);
+ swcr |= convert_bit (~fc, _FPU_MASK_ZM, FE_DIVBYZERO >> SWCR_ENABLE_SHIFT);
+ swcr |= convert_bit (~fc, _FPU_MASK_OM, FE_OVERFLOW >> SWCR_ENABLE_SHIFT);
+ swcr |= convert_bit (~fc, _FPU_MASK_PM, FE_INEXACT >> SWCR_ENABLE_SHIFT);
+
+ /* Install everything. */
+ __fpu_control = fc;
+ asm volatile ("mt_fpcr %0" : : "f"(fpcr));
+ __ieee_set_fp_control(swcr);
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/alpha/shlib-versions b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/shlib-versions
new file mode 100644
index 0000000000..cd913c257c
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/shlib-versions
@@ -0,0 +1,14 @@
+libm=6.1
+libc=6.1
+
+ld=ld-linux.so.2
+
+libdl=2.1
+
+libutil=1.1
+
+libresolv=2.1
+
+libnsl=1.1
+libcrypt=1.1
+libBrokenLocale=1.1
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/alpha/sigaction.c b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/sigaction.c
new file mode 100644
index 0000000000..3092a3cf55
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/sigaction.c
@@ -0,0 +1,38 @@
+/* Copyright (C) 2003-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#include <sys/cdefs.h>
+#include <stddef.h>
+
+/*
+ * In order to get the hidden arguments for rt_sigaction set up
+ * properly, we need to call the assembly version. Detect this in the
+ * INLINE_SYSCALL macro, and fail to expand inline in that case.
+ */
+
+#undef INLINE_SYSCALL
+#define INLINE_SYSCALL(name, nr, args...) \
+ (__NR_##name == __NR_rt_sigaction \
+ ? __syscall_rt_sigaction(args) \
+ : INLINE_SYSCALL1(name, nr, args))
+
+struct kernel_sigaction;
+extern int __syscall_rt_sigaction (int, const struct kernel_sigaction *,
+ struct kernel_sigaction *, size_t);
+
+#include <sysdeps/unix/sysv/linux/sigaction.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/alpha/sigcontextinfo.h b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/sigcontextinfo.h
new file mode 100644
index 0000000000..e8b74d56ea
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/sigcontextinfo.h
@@ -0,0 +1,24 @@
+/* Copyright (C) 1999-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#define SIGCONTEXT int _code, struct sigcontext *
+#define SIGCONTEXT_EXTRA_ARGS _code,
+#define GET_PC(ctx) ((void *) (ctx)->sc_pc)
+#define GET_FRAME(ctx) ((void *) (ctx)->sc_regs[15])
+#define GET_STACK(ctx) ((void *) (ctx)->sc_regs[30])
+#define CALL_SIGHANDLER(handler, signo, ctx) \
+ (handler)((signo), SIGCONTEXT_EXTRA_ARGS (ctx))
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/alpha/sigprocmask.c b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/sigprocmask.c
new file mode 100644
index 0000000000..39a07de475
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/sigprocmask.c
@@ -0,0 +1,57 @@
+/* Copyright (C) 1993-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by David Mosberger (davidm@azstarnet.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 <signal.h>
+
+/* When there is kernel support for more than 64 signals, we'll have to
+ switch to a new system call convention here. */
+
+int
+__sigprocmask (int how, const sigset_t *set, sigset_t *oset)
+{
+ unsigned long int setval;
+ long result;
+
+ if (set)
+ setval = set->__val[0];
+ else
+ {
+ setval = 0;
+ how = SIG_BLOCK; /* ensure blocked mask doesn't get changed */
+ }
+
+ result = INLINE_SYSCALL (osf_sigprocmask, 2, how, setval);
+ if (result == -1)
+ /* If there are ever more than 63 signals, we need to recode this
+ in assembler since we wouldn't be able to distinguish a mask of
+ all 1s from -1, but for now, we're doing just fine... */
+ return result;
+
+ if (oset)
+ {
+ oset->__val[0] = result;
+ result = _SIGSET_NWORDS;
+ while (--result > 0)
+ oset->__val[result] = 0;
+ }
+ return 0;
+}
+
+weak_alias (__sigprocmask, sigprocmask);
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/alpha/sizes.h b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/sizes.h
new file mode 100644
index 0000000000..c7d0d3455b
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/sizes.h
@@ -0,0 +1,23 @@
+/* Copyright (C) 1998-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SIZES_H
+#define _SIZES_H 1
+
+#define PTR_SIZE_STR "8"
+
+#endif /* sizes.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/alpha/statfs64.c b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/statfs64.c
new file mode 100644
index 0000000000..fe39cc4685
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/statfs64.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/statfs64.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/alpha/statvfs.c b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/statvfs.c
new file mode 100644
index 0000000000..78069e96f4
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/statvfs.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/statvfs.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/alpha/statvfs64.c b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/statvfs64.c
new file mode 100644
index 0000000000..c80e17751d
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/statvfs64.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/statvfs64.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/alpha/swapcontext.S b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/swapcontext.S
new file mode 100644
index 0000000000..31a0babfb1
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/swapcontext.S
@@ -0,0 +1,50 @@
+/* Save current context and install the given one.
+ Copyright (C) 2004-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#include <ucontext-offsets.h>
+
+ENTRY(__swapcontext)
+
+#ifdef PROF
+ ldgp $29, 0($27)
+ .set noat
+ lda AT, _mcount
+ jsr AT, (AT), _mcount
+ .set at
+ .prologue 1
+#elif defined PIC
+ .prologue 0
+#else
+ ldgp $29, 0($27)
+ .prologue 1
+#endif
+
+#ifdef PIC
+ unop
+ bsr $0, __getcontext_x !samegp
+ mov $17, $16
+ br $31, __setcontext !samegp
+#else
+ jsr $0, __getcontext_x
+ mov $17, $16
+ jmp $31, __setcontext
+#endif
+
+END(__swapcontext)
+weak_alias (__swapcontext, swapcontext)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/alpha/sys/acct.h b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/sys/acct.h
new file mode 100644
index 0000000000..3da9cde89b
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/sys/acct.h
@@ -0,0 +1,63 @@
+/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_ACCT_H
+
+#define _SYS_ACCT_H 1
+#include <features.h>
+
+#include <bits/types/time_t.h>
+
+__BEGIN_DECLS
+
+#define ACCT_COMM 16
+
+struct acct
+ {
+ char ac_comm[ACCT_COMM]; /* Accounting command name. */
+ time_t ac_utime; /* Accounting user time. */
+ time_t ac_stime; /* Accounting system time. */
+ time_t ac_etime; /* Accounting elapsed time. */
+ time_t ac_btime; /* Beginning time. */
+ unsigned int ac_uid; /* Accounting user ID. */
+ unsigned int ac_gid; /* Accounting group ID. */
+ unsigned int ac_tty; /* Controlling tty. */
+ /* Please note that the value of the `ac_tty' field, a device number,
+ is encoded differently in the kernel and for the libc dev_t type. */
+ char ac_flag; /* Accounting flag. */
+ long int ac_minflt; /* Accounting minor pagefaults. */
+ long int ac_majflt; /* Accounting major pagefaults. */
+ long int ac_exitcode; /* Accounting process exitcode. */
+ };
+
+enum
+ {
+ AFORK = 0001, /* Has executed fork, but no exec. */
+ ASU = 0002, /* Used super-user privileges. */
+ ACORE = 0004, /* Dumped core. */
+ AXSIG = 0010 /* Killed by a signal. */
+ };
+
+#define AHZ 100
+
+
+/* Switch process accounting on and off. */
+extern int acct (const char *__filename) __THROW;
+
+__END_DECLS
+
+#endif /* sys/acct.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/alpha/sys/io.h b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/sys/io.h
new file mode 100644
index 0000000000..3a6798edc5
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/sys/io.h
@@ -0,0 +1,94 @@
+/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_IO_H
+
+#define _SYS_IO_H 1
+#include <features.h>
+
+__BEGIN_DECLS
+
+/* If TURN_ON is TRUE, request for permission to do direct i/o on the
+ port numbers in the range [FROM,FROM+NUM-1]. Otherwise, turn I/O
+ permission off for that range. This call requires root privileges.
+
+ Portability note: not all Linux platforms support this call. Most
+ platforms based on the PC I/O architecture probably will, however.
+ E.g., Linux/Alpha for Alpha PCs supports this. */
+extern int ioperm (unsigned long int __from, unsigned long int __num,
+ int __turn_on) __THROW;
+
+/* Set the I/O privilege level to LEVEL. If LEVEL>3, permission to
+ access any I/O port is granted. This call requires root
+ privileges. */
+extern int iopl (int __level) __THROW;
+
+/* Return the physical address of the DENSE I/O memory or NULL if none
+ is available (e.g. on a jensen). */
+extern unsigned long int _bus_base (void) __THROW __attribute__ ((const));
+extern unsigned long int bus_base (void) __THROW __attribute__ ((const));
+
+/* Return the physical address of the SPARSE I/O memory. */
+extern unsigned long _bus_base_sparse (void) __THROW __attribute__ ((const));
+extern unsigned long bus_base_sparse (void) __THROW __attribute__ ((const));
+
+/* Return the HAE shift used by the SPARSE I/O memory. */
+extern int _hae_shift (void) __THROW __attribute__ ((const));
+extern int hae_shift (void) __THROW __attribute__ ((const));
+
+/* Previous three are deprecated in favour of the following, which
+ knows about multiple PCI "hoses". Provide the PCI bus and dfn
+ numbers just as to pciconfig_read/write. */
+
+enum __pciconfig_iobase_which
+{
+ IOBASE_HOSE = 0, /* Return hose index. */
+ IOBASE_SPARSE_MEM = 1, /* Return physical memory addresses. */
+ IOBASE_DENSE_MEM = 2,
+ IOBASE_SPARSE_IO = 3,
+ IOBASE_DENSE_IO = 4
+};
+
+extern long pciconfig_iobase(enum __pciconfig_iobase_which __which,
+ unsigned long int __bus,
+ unsigned long int __dfn)
+ __THROW __attribute__ ((const));
+
+/* Access PCI space protected from machine checks. */
+extern int pciconfig_read (unsigned long int __bus,
+ unsigned long int __dfn,
+ unsigned long int __off,
+ unsigned long int __len,
+ unsigned char *__buf) __THROW;
+
+extern int pciconfig_write (unsigned long int __bus,
+ unsigned long int __dfn,
+ unsigned long int __off,
+ unsigned long int __len,
+ unsigned char *__buf) __THROW;
+
+/* Userspace declarations. */
+extern unsigned int inb (unsigned long __port) __THROW;
+extern unsigned int inw (unsigned long __port) __THROW;
+extern unsigned int inl (unsigned long __port) __THROW;
+extern void outb (unsigned char __b, unsigned long __port) __THROW;
+extern void outw (unsigned short __w, unsigned long __port) __THROW;
+extern void outl (unsigned int __l, unsigned long __port) __THROW;
+
+__END_DECLS
+
+#endif /* _SYS_IO_H */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/alpha/sys/procfs.h b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/sys/procfs.h
new file mode 100644
index 0000000000..abc9fd8d6e
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/sys/procfs.h
@@ -0,0 +1,127 @@
+/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_PROCFS_H
+#define _SYS_PROCFS_H 1
+
+/* This is somehow modelled after the file of the same name on SysVr4
+ systems. It provides a definition of the core file format for ELF
+ used on Linux. */
+
+#include <features.h>
+#include <signal.h>
+#include <sys/time.h>
+#include <sys/types.h>
+#include <sys/ucontext.h>
+#include <sys/user.h>
+
+__BEGIN_DECLS
+
+/*
+ * The OSF/1 version of <sys/procfs.h> makes gregset_t 46 entries long.
+ * I have no idea why that is so. For now, we just leave it at 33
+ * (32 general regs + processor status word).
+ */
+#define ELF_NGREG 33
+#define ELF_NFPREG 32
+
+typedef unsigned long elf_greg_t;
+typedef elf_greg_t elf_gregset_t[ELF_NGREG];
+
+typedef double elf_fpreg_t;
+typedef elf_fpreg_t elf_fpregset_t[ELF_NFPREG];
+
+struct elf_siginfo
+ {
+ int si_signo; /* Signal number. */
+ int si_code; /* Extra code. */
+ int si_errno; /* Errno. */
+ };
+
+/* Definitions to generate Intel SVR4-like core files. These mostly
+ have the same names as the SVR4 types with "elf_" tacked on the
+ front to prevent clashes with linux definitions, and the typedef
+ forms have been avoided. This is mostly like the SVR4 structure,
+ but more Linuxy, with things that Linux does not support and which
+ gdb doesn't really use excluded. Fields present but not used are
+ marked with "XXX". */
+struct elf_prstatus
+ {
+#if 0
+ long int pr_flags; /* XXX Process flags. */
+ short int pr_why; /* XXX Reason for process halt. */
+ short int pr_what; /* XXX More detailed reason. */
+#endif
+ struct elf_siginfo pr_info; /* Info associated with signal. */
+ short int pr_cursig; /* Current signal. */
+ unsigned long int pr_sigpend; /* Set of pending signals. */
+ unsigned long int pr_sighold; /* Set of held signals. */
+#if 0
+ stack_t pr_altstack; /* Alternate stack info. */
+ struct sigaction pr_action; /* Signal action for current sig. */
+#endif
+ __pid_t pr_pid;
+ __pid_t pr_ppid;
+ __pid_t pr_pgrp;
+ __pid_t pr_sid;
+ struct timeval pr_utime; /* User time. */
+ struct timeval pr_stime; /* System time. */
+ struct timeval pr_cutime; /* Cumulative user time. */
+ struct timeval pr_cstime; /* Cumulative system time. */
+#if 0
+ long int pr_instr; /* Current instruction. */
+#endif
+ elf_gregset_t pr_reg; /* GP registers. */
+ int pr_fpvalid; /* True if math copro being used. */
+ };
+
+
+#define ELF_PRARGSZ (80) /* Number of chars for args */
+
+struct elf_prpsinfo
+ {
+ char pr_state; /* Numeric process state. */
+ char pr_sname; /* Char for pr_state. */
+ char pr_zomb; /* Zombie. */
+ char pr_nice; /* Nice val. */
+ unsigned long int pr_flag; /* Flags. */
+ unsigned int pr_uid;
+ unsigned int pr_gid;
+ int pr_pid, pr_ppid, pr_pgrp, pr_sid;
+ /* Lots missing */
+ char pr_fname[16]; /* Filename of executable. */
+ char pr_psargs[ELF_PRARGSZ]; /* Initial part of arg list. */
+ };
+
+/* Addresses. */
+typedef void *psaddr_t;
+
+/* Register sets. Linux has different names. */
+typedef gregset_t prgregset_t;
+typedef fpregset_t prfpregset_t;
+
+/* We don't have any differences between processes and threads,
+ therefore habe only ine PID type. */
+typedef __pid_t lwpid_t;
+
+
+typedef struct elf_prstatus prstatus_t;
+typedef struct elf_prpsinfo prpsinfo_t;
+
+__END_DECLS
+
+#endif /* sys/procfs.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/alpha/sys/ucontext.h b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/sys/ucontext.h
new file mode 100644
index 0000000000..b9e590347e
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/sys/ucontext.h
@@ -0,0 +1,67 @@
+/* Copyright (C) 1998-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_UCONTEXT_H
+#define _SYS_UCONTEXT_H 1
+
+#include <features.h>
+
+#include <bits/types/sigset_t.h>
+#include <bits/sigcontext.h>
+#include <bits/types/stack_t.h>
+
+
+/* Type for general register. */
+typedef long int greg_t;
+
+/* Number of general registers. */
+#define __NGREG 33
+#ifdef __USE_MISC
+# define NGREG __NGREG
+#endif
+
+/* Container for all general registers. */
+typedef greg_t gregset_t[__NGREG];
+
+/* Type for floating-point register. */
+typedef long int fpreg_t;
+
+/* Number of general registers. */
+#define __NFPREG 32
+#ifdef __USE_MISC
+# define NFPREG __NFPREG
+#endif
+
+/* Container for all general registers. */
+typedef fpreg_t fpregset_t[__NFPREG];
+
+
+/* A machine context is exactly a sigcontext. */
+typedef struct sigcontext mcontext_t;
+
+/* Userlevel context. */
+typedef struct ucontext
+ {
+ unsigned long int uc_flags;
+ struct ucontext *uc_link;
+ unsigned long __uc_osf_sigmask;
+ stack_t uc_stack;
+ mcontext_t uc_mcontext;
+ sigset_t uc_sigmask;
+ } ucontext_t;
+
+#endif /* sys/ucontext.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/alpha/sys/user.h b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/sys/user.h
new file mode 100644
index 0000000000..f5801a7c8f
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/sys/user.h
@@ -0,0 +1,52 @@
+/* Copyright (C) 1999-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_USER_H
+#define _SYS_USER_H 1
+
+/* The whole purpose of this file is for gdb/strace and gdb/strace
+ only. Don't read too much into it. Don't use it for anything other
+ than gdb/strace unless you know what you are doing. */
+
+#include <asm/reg.h>
+#include <stddef.h>
+
+struct user
+{
+ unsigned long int regs[EF_SIZE / 8 + 32]; /* integer and fp regs */
+ size_t u_tsize; /* text size (pages) */
+ size_t u_dsize; /* data size (pages) */
+ size_t u_ssize; /* stack size (pages) */
+ unsigned long int start_code; /* text starting address */
+ unsigned long int start_data; /* data starting address */
+ unsigned long int start_stack; /* stack starting address */
+ long int signal; /* signal causing core dump */
+ struct regs *u_ar0; /* help gdb find registers */
+ unsigned long int magic; /* identifies a core file */
+ char u_comm[32]; /* user command name */
+};
+
+#define PAGE_SHIFT 13
+#define PAGE_SIZE (1UL << PAGE_SHIFT)
+#define PAGE_MASK (~(PAGE_SIZE-1))
+#define NBPG PAGE_SIZE
+#define UPAGES 1
+#define HOST_TEXT_START_ADDR (u.start_code)
+#define HOST_DATA_START_ADDR (u.start_data)
+#define HOST_STACK_END_ADDR (u.start_stack + u.u_ssize * NBPG)
+
+#endif /* sys/user.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/alpha/syscall.S b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/syscall.S
new file mode 100644
index 0000000000..6b082bb489
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/syscall.S
@@ -0,0 +1,70 @@
+/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by David Mosberger <davidm@azstarnet.com>, 1996.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+
+/*
+ * This is for COMPATIBILITY with Linux/x86 only. Linux/Alpha system
+ * calls return an error indication in a3. This allows arbitrary 64bit
+ * values to be returned in v0 (because negative values are not
+ * mistaken as error numbers). However, C allows only one value to
+ * be returned, so the interface below folds the error indication passed in
+ * a3 back into v0: it sets v0 to -errno if an error occurs. Thus,
+ * no negative 64bit numbers can be returned. To avoid this problem,
+ * use assembly stubs wherever possible/convenient.
+ *
+ * Usage:
+ *
+ * long syscall(syscall_number, arg1, arg2, arg3, arg4, arg5, arg6)
+ *
+ * syscall_number = the index of the system call we're invoking
+ * arg1-arg6 = up to 6 integer arguments to the system call
+ *
+ * We need to do some arg shifting: the kernel expects the
+ * syscall number in v0 and the first six args in a0-a5.
+ *
+ */
+
+
+LEAF(__syscall, 0)
+#ifdef PROF
+ ldgp gp, 0(pv)
+ .set noat
+ lda AT, _mcount
+ jsr AT, (AT), _mcount
+ .set at
+ .prologue 1
+#else
+ .prologue 0
+#endif
+
+ mov a0, v0 /* Syscall number -> v0 */
+ mov a1, a0 /* arg1-arg5 -> a0-a4 */
+ mov a2, a1
+ mov a3, a2
+ mov a4, a3
+ mov a5, a4
+ ldq a5,0(sp) /* arg6 -> a5 */
+
+ call_pal PAL_callsys /* Invoke system call */
+ bne a3, SYSCALL_ERROR_LABEL
+ ret
+
+PSEUDO_END(__syscall)
+
+weak_alias (__syscall, syscall)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/alpha/syscalls.list b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/syscalls.list
new file mode 100644
index 0000000000..12cd021b60
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/syscalls.list
@@ -0,0 +1,45 @@
+# File name Caller Syscall name # args Strong name Weak names
+
+sigstack - sigstack 2 sigstack
+
+getpriority - getpriority i:ii __getpriority getpriority
+
+# proper socket implementations:
+bind - bind i:ipi __bind bind
+getpeername - getpeername i:ipp __getpeername getpeername
+getsockname - getsockname i:ipp __getsockname getsockname
+getsockopt - getsockopt i:iiiBN __getsockopt getsockopt
+listen - listen i:ii __listen listen
+setsockopt - setsockopt i:iiibn __setsockopt setsockopt
+shutdown - shutdown i:ii __shutdown shutdown
+socket - socket i:iii __socket socket
+socketpair - socketpair i:iiif __socketpair socketpair
+
+ptrace - ptrace 4 __ptrace ptrace
+
+# access pci space protected from machine checks:
+pciconfig_read EXTRA pciconfig_read 5 pciconfig_read
+pciconfig_write EXTRA pciconfig_write 5 pciconfig_write
+pciconfig_iobase EXTRA pciconfig_iobase 3 __pciconfig_iobase pciconfig_iobase
+
+# support old timeval32 entry points
+osf_gettimeofday - osf_gettimeofday 2 __gettimeofday_tv32 __gettimeofday@GLIBC_2.0 gettimeofday@GLIBC_2.0
+osf_settimeofday - osf_settimeofday 2 __settimeofday_tv32 settimeofday@GLIBC_2.0
+osf_getitimer - osf_getitimer 2 __getitimer_tv32 getitimer@GLIBC_2.0
+osf_setitimer - osf_setitimer 3 __setitimer_tv32 setitimer@GLIBC_2.0
+osf_utimes - osf_utimes 2 __utimes_tv32 utimes@GLIBC_2.0
+osf_getrusage - osf_getrusage 2 __getrusage_tv32 getrusage@GLIBC_2.0
+osf_wait4 - osf_wait4 4 __wait4_tv32 wait4@GLIBC_2.0
+
+# support new timeval64 entry points
+gettimeofday - gettimeofday 2 __GI___gettimeofday gettimeofday@@GLIBC_2.1 __gettimeofday@@GLIBC_2.1
+settimeofday - settimeofday 2 __settimeofday settimeofday@@GLIBC_2.1
+getitimer - getitimer 2 __getitimer getitimer@@GLIBC_2.1
+setitimer - setitimer 3 __setitimer setitimer@@GLIBC_2.1
+utimes - utimes 2 __utimes utimes@@GLIBC_2.1
+getrusage - getrusage 2 __getrusage getrusage@@GLIBC_2.1
+wait4 - wait4 4 __wait4 wait4@@GLIBC_2.1
+
+# avoid 64-bit aliases on 32-bit statfs syscalls
+fstatfs - fstatfs i:ip __fstatfs fstatfs
+statfs - statfs i:sp __statfs statfs
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/alpha/sysconf.c b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/sysconf.c
new file mode 100644
index 0000000000..e011f8f5dd
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/sysconf.c
@@ -0,0 +1,127 @@
+/* Copyright (C) 2004-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <assert.h>
+#include <stdbool.h>
+#include <stdlib.h>
+#include <unistd.h>
+
+
+static long int linux_sysconf (int name);
+
+#define CSHAPE(totalsize, linesize, assoc) \
+ ((totalsize & ~0xff) | (linesize << 4) | assoc)
+
+extern long __libc_alpha_cache_shape[4];
+
+/* Get the value of the system variable NAME. */
+long int
+__sysconf (int name)
+{
+ long shape, index;
+
+ /* We only handle the cache information here (for now). */
+ if (name < _SC_LEVEL1_ICACHE_SIZE || name > _SC_LEVEL4_CACHE_LINESIZE)
+ return linux_sysconf (name);
+
+ /* No Alpha has L4 caches. */
+ if (name >= _SC_LEVEL4_CACHE_SIZE)
+ return -1;
+
+ index = (name - _SC_LEVEL1_ICACHE_SIZE) / 3;
+ shape = __libc_alpha_cache_shape[index];
+ if (shape == -2)
+ {
+ long shape_l1i, shape_l1d, shape_l2, shape_l3 = -1;
+
+ /* ??? In the cases below for which we do not know L1 cache sizes,
+ we could do timings to measure sizes. But for the Bcache, it's
+ generally big enough that (without additional help) TLB effects
+ get in the way. We'd either need to be able to allocate large
+ pages or have the kernel do the timings from KSEG. Fortunately,
+ kernels beginning with 2.6.5 will pass us this info in auxvec. */
+
+ switch (__builtin_alpha_implver ())
+ {
+ case 0: /* EV4 */
+ /* EV4/LCA45 had 8k L1 caches; EV45 had 16k L1 caches. */
+ /* EV4/EV45 had 128k to 16M 32-byte direct Bcache. LCA45
+ had 64k to 8M 8-byte direct Bcache. Can't tell. */
+ shape_l1i = shape_l1d = shape_l2 = CSHAPE (0, 5, 1);
+ break;
+
+ case 1: /* EV5 */
+ if (__builtin_alpha_amask (1 << 8))
+ {
+ /* MAX insns not present; either EV5 or EV56. */
+ shape_l1i = shape_l1d = CSHAPE(8*1024, 5, 1);
+ /* ??? L2 and L3 *can* be configured as 32-byte line. */
+ shape_l2 = CSHAPE (96*1024, 6, 3);
+ /* EV5/EV56 has 1M to 16M Bcache. */
+ shape_l3 = CSHAPE (0, 6, 1);
+ }
+ else
+ {
+ /* MAX insns present; either PCA56 or PCA57. */
+ /* PCA56 had 16k 64-byte cache; PCA57 had 32k Icache. */
+ /* PCA56 had 8k 64-byte cache; PCA57 had 16k Dcache. */
+ /* PCA5[67] had 512k to 4M Bcache. */
+ shape_l1i = shape_l1d = shape_l2 = CSHAPE (0, 6, 1);
+ }
+ break;
+
+ case 2: /* EV6 */
+ shape_l1i = shape_l1d = CSHAPE(64*1024, 6, 2);
+ /* EV6/EV67/EV68* had 1M to 16M Bcache. */
+ shape_l2 = CSHAPE (0, 6, 1);
+ break;
+
+ case 3: /* EV7 */
+ shape_l1i = shape_l1d = CSHAPE(64*1024, 6, 2);
+ shape_l2 = CSHAPE(7*1024*1024/4, 6, 7);
+ break;
+
+ default:
+ shape_l1i = shape_l1d = shape_l2 = 0;
+ break;
+ }
+
+ __libc_alpha_cache_shape[0] = shape_l1i;
+ __libc_alpha_cache_shape[1] = shape_l1d;
+ __libc_alpha_cache_shape[2] = shape_l2;
+ __libc_alpha_cache_shape[3] = shape_l3;
+ shape = __libc_alpha_cache_shape[index];
+ }
+
+ if (shape <= 0)
+ return shape;
+
+ switch ((name - _SC_LEVEL1_ICACHE_SIZE) % 3)
+ {
+ case 0: /* total size */
+ return shape & -0x100;
+ case 1: /* associativity */
+ return shape & 0xf;
+ default: /* line size */
+ return 1L << ((shape >> 4) & 0xf);
+ }
+}
+
+/* Now the generic Linux version. */
+#undef __sysconf
+#define __sysconf static linux_sysconf
+#include <sysdeps/unix/sysv/linux/sysconf.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h
new file mode 100644
index 0000000000..66d6962b80
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h
@@ -0,0 +1,174 @@
+/* Copyright (C) 2003-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#include <tls.h>
+#ifndef __ASSEMBLER__
+# include <nptl/pthreadP.h>
+#endif
+
+#if IS_IN (libc) || IS_IN (libpthread) || IS_IN (librt)
+
+/* ??? Assumes that nothing comes between PSEUDO and PSEUDO_END
+ besides "ret". */
+
+# undef PSEUDO
+# define PSEUDO(name, syscall_name, args) \
+ .globl __##syscall_name##_nocancel; \
+ .type __##syscall_name##_nocancel, @function; \
+ .usepv __##syscall_name##_nocancel, std; \
+ .align 4; \
+ cfi_startproc; \
+__LABEL(__##syscall_name##_nocancel) \
+ ldgp gp, 0(pv); \
+ PSEUDO_PROF; \
+__LABEL($pseudo_nocancel) \
+ PSEUDO_PREPARE_ARGS; \
+ lda v0, SYS_ify(syscall_name); \
+ call_pal PAL_callsys; \
+ bne a3, SYSCALL_ERROR_LABEL; \
+__LABEL($pseudo_ret) \
+ .subsection 2; \
+ .size __##syscall_name##_nocancel, .-__##syscall_name##_nocancel; \
+ .globl name; \
+ .type name, @function; \
+ .usepv name, std; \
+ .align 4; \
+ cfi_startproc; \
+__LABEL(name) \
+ ldgp gp, 0(pv); \
+ PSEUDO_PROF; \
+ SINGLE_THREAD_P(t0); \
+ beq t0, $pseudo_nocancel; \
+ subq sp, 64, sp; \
+ cfi_def_cfa_offset(64); \
+ stq ra, 0(sp); \
+ cfi_offset(ra, -64); \
+ SAVE_ARGS_##args; \
+ CENABLE; \
+ LOAD_ARGS_##args; \
+ /* Save the CENABLE return value in RA. That register \
+ is preserved across syscall and the real return \
+ address is saved on the stack. */ \
+ mov v0, ra; \
+ lda v0, SYS_ify(syscall_name); \
+ call_pal PAL_callsys; \
+ stq v0, 8(sp); \
+ mov ra, a0; \
+ bne a3, $multi_error; \
+ CDISABLE; \
+ ldq ra, 0(sp); \
+ ldq v0, 8(sp); \
+ addq sp, 64, sp; \
+ cfi_remember_state; \
+ cfi_restore(ra); \
+ cfi_def_cfa_offset(0); \
+ ret; \
+ cfi_restore_state; \
+__LABEL($multi_error) \
+ CDISABLE; \
+ ldq ra, 0(sp); \
+ ldq v0, 8(sp); \
+ addq sp, 64, sp; \
+ cfi_restore(ra); \
+ cfi_def_cfa_offset(0); \
+ SYSCALL_ERROR_FALLTHRU; \
+ SYSCALL_ERROR_HANDLER; \
+ cfi_endproc; \
+ .previous
+
+# undef PSEUDO_END
+# define PSEUDO_END(sym) \
+ cfi_endproc; \
+ .subsection 2; \
+ .size sym, .-sym
+
+# define SAVE_ARGS_0 /* Nothing. */
+# define SAVE_ARGS_1 SAVE_ARGS_0; stq a0, 8(sp)
+# define SAVE_ARGS_2 SAVE_ARGS_1; stq a1, 16(sp)
+# define SAVE_ARGS_3 SAVE_ARGS_2; stq a2, 24(sp)
+# define SAVE_ARGS_4 SAVE_ARGS_3; stq a3, 32(sp)
+# define SAVE_ARGS_5 SAVE_ARGS_4; stq a4, 40(sp)
+# define SAVE_ARGS_6 SAVE_ARGS_5; stq a5, 48(sp)
+
+# define LOAD_ARGS_0 /* Nothing. */
+# define LOAD_ARGS_1 LOAD_ARGS_0; ldq a0, 8(sp)
+# define LOAD_ARGS_2 LOAD_ARGS_1; ldq a1, 16(sp)
+# define LOAD_ARGS_3 LOAD_ARGS_2; ldq a2, 24(sp)
+# define LOAD_ARGS_4 LOAD_ARGS_3; ldq a3, 32(sp)
+# define LOAD_ARGS_5 LOAD_ARGS_4; ldq a4, 40(sp)
+# define LOAD_ARGS_6 LOAD_ARGS_5; ldq a5, 48(sp)
+
+# if IS_IN (libpthread)
+# define __local_enable_asynccancel __pthread_enable_asynccancel
+# define __local_disable_asynccancel __pthread_disable_asynccancel
+# define __local_multiple_threads __pthread_multiple_threads
+# elif IS_IN (libc)
+# define __local_enable_asynccancel __libc_enable_asynccancel
+# define __local_disable_asynccancel __libc_disable_asynccancel
+# define __local_multiple_threads __libc_multiple_threads
+# elif IS_IN (librt)
+# define __local_enable_asynccancel __librt_enable_asynccancel
+# define __local_disable_asynccancel __librt_disable_asynccancel
+# else
+# error Unsupported library
+# endif
+
+# ifdef PIC
+# define CENABLE bsr ra, __local_enable_asynccancel !samegp
+# define CDISABLE bsr ra, __local_disable_asynccancel !samegp
+# else
+# define CENABLE jsr ra, __local_enable_asynccancel; ldgp ra, 0(gp)
+# define CDISABLE jsr ra, __local_disable_asynccancel; ldgp ra, 0(gp)
+# endif
+
+# if IS_IN (libpthread) || IS_IN (libc)
+# ifndef __ASSEMBLER__
+extern int __local_multiple_threads attribute_hidden;
+# define SINGLE_THREAD_P \
+ __builtin_expect (__local_multiple_threads == 0, 1)
+# elif defined(PIC)
+# define SINGLE_THREAD_P(reg) ldl reg, __local_multiple_threads(gp) !gprel
+# else
+# define SINGLE_THREAD_P(reg) \
+ ldah reg, __local_multiple_threads(gp) !gprelhigh; \
+ ldl reg, __local_multiple_threads(reg) !gprellow
+# endif
+# else
+# ifndef __ASSEMBLER__
+# define SINGLE_THREAD_P \
+ __builtin_expect (THREAD_GETMEM (THREAD_SELF, \
+ header.multiple_threads) == 0, 1)
+# else
+# define SINGLE_THREAD_P(reg) \
+ call_pal PAL_rduniq; \
+ ldl reg, MULTIPLE_THREADS_OFFSET($0)
+# endif
+# endif
+
+#else
+
+# 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/alpha/sysdep.h b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/sysdep.h
new file mode 100644
index 0000000000..4dc2d46ecf
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/sysdep.h
@@ -0,0 +1,96 @@
+/* Copyright (C) 1992-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper, <drepper@gnu.ai.mit.edu>, August 1995.
+
+ 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_ALPHA_SYSDEP_H
+#define _LINUX_ALPHA_SYSDEP_H 1
+
+#ifdef __ASSEMBLER__
+#include <asm/pal.h>
+#include <alpha/regdef.h>
+#endif
+
+/* There is some commonality. */
+#include <sysdeps/unix/sysv/linux/sysdep.h>
+#include <sysdeps/unix/alpha/sysdep.h>
+
+#include <tls.h>
+
+/* For Linux we can use the system call table in the header file
+ /usr/include/asm/unistd.h
+ of the kernel. But these symbols do not follow the SYS_* syntax
+ so we have to redefine the `SYS_ify' macro here. */
+#undef SYS_ify
+#define SYS_ify(syscall_name) __NR_##syscall_name
+
+/* Define some aliases to make automatic syscall generation work
+ properly. The SYS_* variants are for the benefit of the files in
+ sysdeps/unix. */
+#define __NR_getpid __NR_getxpid
+#define __NR_getuid __NR_getxuid
+#define __NR_getgid __NR_getxgid
+#define SYS_getpid __NR_getxpid
+#define SYS_getuid __NR_getxuid
+#define SYS_getgid __NR_getxgid
+
+/*
+ * Some syscalls no Linux program should know about:
+ */
+#define __NR_osf_sigprocmask 48
+#define __NR_osf_shmat 209
+#define __NR_osf_getsysinfo 256
+#define __NR_osf_setsysinfo 257
+
+/* Help old kernel headers where particular syscalls are not available. */
+#ifndef __NR_semtimedop
+# define __NR_semtimedop 423
+#endif
+
+/* This is a kludge to make syscalls.list find these under the names
+ pread and pwrite, since some kernel headers define those names
+ and some define the *64 names for the same system calls. */
+#if !defined __NR_pread && defined __NR_pread64
+# define __NR_pread __NR_pread64
+#endif
+#if !defined __NR_pwrite && defined __NR_pwrite64
+# define __NR_pwrite __NR_pwrite64
+#endif
+
+/*
+ * In order to get the hidden arguments for rt_sigaction set up
+ * properly, we need to call the assembly version. This shouldn't
+ * happen except for inside sigaction.c, where we handle this
+ * specially. Catch other uses and error.
+ */
+
+#undef INLINE_SYSCALL
+#define INLINE_SYSCALL(name, nr, args...) \
+({ \
+ extern char ChEcK[__NR_##name == __NR_rt_sigaction ? -1 : 1] \
+ __attribute__((unused)); \
+ INLINE_SYSCALL1(name, nr, args); \
+})
+
+#undef INTERNAL_SYSCALL
+#define INTERNAL_SYSCALL(name, err_out, nr, args...) \
+({ \
+ extern char ChEcK[__NR_##name == __NR_rt_sigaction ? -1 : 1] \
+ __attribute__((unused)); \
+ INTERNAL_SYSCALL1(name, err_out, nr, args); \
+})
+
+#endif /* _LINUX_ALPHA_SYSDEP_H */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/alpha/timer_create.c b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/timer_create.c
new file mode 100644
index 0000000000..d307135003
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/timer_create.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/x86_64/timer_create.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/alpha/timer_delete.c b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/timer_delete.c
new file mode 100644
index 0000000000..2dd94f5c7a
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/timer_delete.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/x86_64/timer_delete.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/alpha/timer_getoverr.c b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/timer_getoverr.c
new file mode 100644
index 0000000000..22eaff5cda
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/timer_getoverr.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/x86_64/timer_getoverr.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/alpha/timer_gettime.c b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/timer_gettime.c
new file mode 100644
index 0000000000..cea524bae5
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/timer_gettime.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/x86_64/timer_gettime.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/alpha/timer_settime.c b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/timer_settime.c
new file mode 100644
index 0000000000..fa231149d5
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/timer_settime.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/x86_64/timer_settime.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/alpha/ucontext-offsets.sym b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/ucontext-offsets.sym
new file mode 100644
index 0000000000..f95ff75636
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/ucontext-offsets.sym
@@ -0,0 +1,18 @@
+#include <stddef.h>
+#include <sys/ucontext.h>
+
+--
+UC_LINK offsetof (ucontext_t, uc_link)
+UC_OSF_SIGMASK offsetof (ucontext_t, __uc_osf_sigmask)
+UC_STACK offsetof (ucontext_t, uc_stack)
+UC_SIGCTX offsetof (ucontext_t, uc_mcontext)
+UC_SIGMASK offsetof (ucontext_t, uc_sigmask)
+SC_REGS offsetof (struct sigcontext, sc_regs)
+SC_FPREGS offsetof (struct sigcontext, sc_fpregs)
+SC_PC offsetof (struct sigcontext, sc_pc)
+SC_PS offsetof (struct sigcontext, sc_ps)
+SC_FPCRS offsetof (struct sigcontext, sc_fpcr)
+SC_MASK offsetof (struct sigcontext, sc_mask)
+SC_FPCR offsetof (struct sigcontext, sc_fpcr)
+SS_SP offsetof (stack_t, ss_sp)
+SS_SIZE offsetof (stack_t, ss_size)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/alpha/vfork.S b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/vfork.S
new file mode 100644
index 0000000000..7255822e17
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/vfork.S
@@ -0,0 +1,41 @@
+/* Copyright (C) 2004-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#include <tcb-offsets.h>
+
+ENTRY(__libc_vfork)
+ PSEUDO_PROLOGUE
+
+ /* Load the thread pointer value in A1 across the vfork. */
+ rduniq
+ mov v0, a1
+
+ lda v0, SYS_ify(vfork)
+ call_pal PAL_callsys
+
+ /* Normal error check and return. */
+ bne a3, SYSCALL_ERROR_LABEL
+ ret
+
+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/alpha/wordexp.c b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/wordexp.c
new file mode 100644
index 0000000000..32aefe579b
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/wordexp.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/sparc/sparc64/wordexp.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/alpha/xstat.c b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/xstat.c
new file mode 100644
index 0000000000..cf17353d7a
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/xstat.c
@@ -0,0 +1,58 @@
+/* xstat using old-style Unix stat system call.
+ Copyright (C) 2004-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#define __xstat64 __xstat64_disable
+
+#include <errno.h>
+#include <stddef.h>
+#include <sys/stat.h>
+#include <kernel_stat.h>
+#include <sysdep.h>
+#include <sys/syscall.h>
+#include <xstatconv.h>
+
+#undef __xstat64
+
+
+/* Get information about the file NAME in BUF. */
+int
+__xstat (int vers, const char *name, struct stat *buf)
+{
+ INTERNAL_SYSCALL_DECL (err);
+ int result;
+ struct kernel_stat kbuf;
+
+ if (vers == _STAT_VER_KERNEL64)
+ {
+ result = INTERNAL_SYSCALL (stat64, err, 2, name, buf);
+ if (__builtin_expect (!INTERNAL_SYSCALL_ERROR_P (result, err), 1))
+ return result;
+ __set_errno (INTERNAL_SYSCALL_ERRNO (result, err));
+ return -1;
+ }
+
+ result = INTERNAL_SYSCALL (stat, err, 2, name, &kbuf);
+ if (__builtin_expect (!INTERNAL_SYSCALL_ERROR_P (result, err), 1))
+ return __xstat_conv (vers, &kbuf, buf);
+ __set_errno (INTERNAL_SYSCALL_ERRNO (result, err));
+ return -1;
+}
+hidden_def (__xstat)
+weak_alias (__xstat, _xstat);
+strong_alias (__xstat, __xstat64);
+hidden_ver (__xstat, __xstat64)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/alpha/xstatconv.c b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/xstatconv.c
new file mode 100644
index 0000000000..face7cd047
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/xstatconv.c
@@ -0,0 +1,120 @@
+/* Convert between the kernel's `struct stat' format, and libc's.
+ Copyright (C) 1997-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <string.h>
+#include <sys/stat.h>
+#include <kernel_stat.h>
+#include <xstatconv.h>
+#include <sys/syscall.h>
+
+int
+__xstat_conv (int vers, struct kernel_stat *kbuf, void *ubuf)
+{
+ switch (vers)
+ {
+ case _STAT_VER_KERNEL:
+ *(struct kernel_stat *) ubuf = *kbuf;
+ break;
+
+ case _STAT_VER_GLIBC2:
+ {
+ struct glibc2_stat *buf = ubuf;
+
+ buf->st_dev = kbuf->st_dev;
+ buf->st_ino = kbuf->st_ino;
+ buf->st_mode = kbuf->st_mode;
+ buf->st_nlink = kbuf->st_nlink;
+ buf->st_uid = kbuf->st_uid;
+ buf->st_gid = kbuf->st_gid;
+ buf->st_rdev = kbuf->st_rdev;
+ buf->st_size = kbuf->st_size;
+ buf->st_atime = kbuf->st_atime;
+ buf->st_mtime = kbuf->st_mtime;
+ buf->st_ctime = kbuf->st_ctime;
+ buf->st_blksize = kbuf->st_blksize;
+ buf->st_blocks = kbuf->st_blocks;
+ buf->st_flags = kbuf->st_flags;
+ buf->st_gen = kbuf->st_gen;
+ }
+ break;
+
+ case _STAT_VER_GLIBC2_1:
+ {
+ struct glibc21_stat *buf = ubuf;
+
+ buf->st_dev = kbuf->st_dev;
+ buf->st_ino = kbuf->st_ino;
+ buf->st_mode = kbuf->st_mode;
+ buf->st_nlink = kbuf->st_nlink;
+ buf->st_uid = kbuf->st_uid;
+ buf->st_gid = kbuf->st_gid;
+ buf->st_rdev = kbuf->st_rdev;
+ buf->st_size = kbuf->st_size;
+ buf->st_atime = kbuf->st_atime;
+ buf->st_mtime = kbuf->st_mtime;
+ buf->st_ctime = kbuf->st_ctime;
+ buf->st_blocks = kbuf->st_blocks;
+ buf->st_blksize = kbuf->st_blksize;
+ buf->st_flags = kbuf->st_flags;
+ buf->st_gen = kbuf->st_gen;
+ buf->__pad3 = 0;
+ buf->__glibc_reserved[0] = 0;
+ buf->__glibc_reserved[1] = 0;
+ buf->__glibc_reserved[2] = 0;
+ buf->__glibc_reserved[3] = 0;
+ }
+ break;
+
+ case _STAT_VER_GLIBC2_3_4:
+ {
+ struct stat64 *buf = ubuf;
+
+ buf->st_dev = kbuf->st_dev;
+ buf->st_ino = kbuf->st_ino;
+ buf->st_rdev = kbuf->st_rdev;
+ buf->st_size = kbuf->st_size;
+ buf->st_blocks = kbuf->st_blocks;
+
+ buf->st_mode = kbuf->st_mode;
+ buf->st_uid = kbuf->st_uid;
+ buf->st_gid = kbuf->st_gid;
+ buf->st_blksize = kbuf->st_blksize;
+ buf->st_nlink = kbuf->st_nlink;
+ buf->__pad0 = 0;
+
+ buf->st_atime = kbuf->st_atime;
+ buf->st_atimensec = 0;
+ buf->st_mtime = kbuf->st_mtime;
+ buf->st_mtimensec = 0;
+ buf->st_ctime = kbuf->st_ctime;
+ buf->st_ctimensec = 0;
+
+ buf->__glibc_reserved[0] = 0;
+ buf->__glibc_reserved[1] = 0;
+ buf->__glibc_reserved[2] = 0;
+ }
+ break;
+
+ default:
+ __set_errno (EINVAL);
+ return -1;
+ }
+
+ return 0;
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/alpha/xstatconv.h b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/xstatconv.h
new file mode 100644
index 0000000000..121689662d
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/alpha/xstatconv.h
@@ -0,0 +1,22 @@
+/* Convert between the kernel's `struct stat' format, and libc's.
+ Copyright (C) 2004-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sys/syscall.h>
+
+extern int __xstat_conv (int vers, struct kernel_stat *kbuf, void *ubuf)
+ attribute_hidden;
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/arch-fork.h b/REORG.TODO/sysdeps/unix/sysv/linux/arch-fork.h
new file mode 100644
index 0000000000..b4e741c34d
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/arch-fork.h
@@ -0,0 +1,27 @@
+/* ARCH_FORK definition for Linux fork implementation. Stub version.
+ Copyright (C) 2014-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+/* This file should define the function-like macro of no arguments
+ ARCH_FORK to an INLINE_SYSCALL invocation of the clone-like system
+ call, passing the CLONE_CHILD_SETTID and CLONE_CHILD_CLEARTID flags
+ and &THREAD_SELF->tid as the TID address.
+
+ Machines that lack an arch-fork.h header file will hit an #error in
+ fork.c; this stub file doesn't contain an #error itself mainly for
+ the transition period of migrating old machine-specific fork.c files
+ to machine-specific arch-fork.h instead. */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/arm/Implies b/REORG.TODO/sysdeps/unix/sysv/linux/arm/Implies
new file mode 100644
index 0000000000..e609c137d0
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/arm/Implies
@@ -0,0 +1 @@
+arm/nptl
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/arm/Makefile b/REORG.TODO/sysdeps/unix/sysv/linux/arm/Makefile
new file mode 100644
index 0000000000..b9b8f71721
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/arm/Makefile
@@ -0,0 +1,69 @@
+ifeq ($(subdir),elf)
+sysdep_routines += dl-vdso
+sysdep-rtld-routines += aeabi_read_tp libc-do-syscall
+endif
+
+ifeq ($(subdir),misc)
+sysdep_routines += ioperm
+sysdep_headers += sys/elf.h sys/io.h
+endif
+
+ifeq ($(subdir),signal)
+sysdep_routines += sigrestorer
+endif
+
+ifeq ($(subdir),stdlib)
+gen-as-const-headers += ucontext_i.sym
+endif
+
+# Add a syscall function to each library that needs one.
+
+ifeq ($(subdir),crypt)
+libcrypt-sysdep_routines += libc-do-syscall
+endif
+
+ifeq ($(subdir),rt)
+librt-sysdep_routines += libc-do-syscall
+librt-shared-only-routines += libc-do-syscall
+endif
+
+ifeq ($(subdir),nptl)
+libpthread-sysdep_routines += libc-do-syscall
+libpthread-shared-only-routines += libc-do-syscall
+endif
+
+ifeq ($(subdir),resolv)
+libanl-sysdep_routines += libc-do-syscall
+libanl-shared-only-routines += libc-do-syscall
+endif
+
+ifeq ($(subdir),csu)
+sysdep_routines += libc-do-syscall
+endif
+
+ifeq ($(subdir),nscd)
+nscd-modules += libc-do-syscall
+endif
+
+ifeq ($(subdir),nss)
+libnss_db-sysdep_routines += libc-do-syscall
+libnss_db-shared-only-routines += libc-do-syscall
+endif
+
+ifeq ($(subdir),posix)
+LDFLAGS-tst-rfc3484 += $(common-objpfx)csu/libc-do-syscall.o
+LDFLAGS-tst-rfc3484-2 += $(common-objpfx)csu/libc-do-syscall.o
+LDFLAGS-tst-rfc3484-3 += $(common-objpfx)csu/libc-do-syscall.o
+endif
+
+abi-variants := soft hard
+
+ifeq (,$(filter $(default-abi),$(abi-variants)))
+Unknown ABI, must be one of $(abi-variants)
+endif
+
+abi-includes :=
+abi-soft-options := -U__ARM_PCS_VFP
+abi-soft-condition := !defined __ARM_PCS_VFP
+abi-hard-options := -D__ARM_PCS_VFP
+abi-hard-condition := defined __ARM_PCS_VFP
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/arm/Versions b/REORG.TODO/sysdeps/unix/sysv/linux/arm/Versions
new file mode 100644
index 0000000000..7e5ba53455
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/arm/Versions
@@ -0,0 +1,19 @@
+libc {
+ GLIBC_2.4 {
+ ioperm; iopl;
+ inb; inw; inl;
+ outb; outw; outl;
+ }
+ GLIBC_2.11 {
+ fallocate64;
+ }
+ GLIBC_2.24 {
+ recvmsg; sendmsg;
+ }
+ GLIBC_PRIVATE {
+ # A copy of sigaction lives in libpthread, and needs these.
+ __default_sa_restorer; __default_rt_sa_restorer;
+ # nptl/pthread_cond_timedwait.c uses INTERNAL_VSYSCALL(clock_gettime).
+ __vdso_clock_gettime;
+ }
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/arm/____longjmp_chk.S b/REORG.TODO/sysdeps/unix/sysv/linux/arm/____longjmp_chk.S
new file mode 100644
index 0000000000..6d8d93ae5f
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/arm/____longjmp_chk.S
@@ -0,0 +1,90 @@
+/* Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+
+ .section .rodata.str1.1,"aMS",%progbits,1
+ .type longjmp_msg,%object
+longjmp_msg:
+ .string "longjmp causes uninitialized stack frame"
+ .size longjmp_msg, .-longjmp_msg
+ .text
+
+#define __longjmp ____longjmp_chk
+
+#ifdef PIC
+# define CALL_FAIL \
+ ldr sl, .L_GOT; \
+ cfi_undefined (sl); \
+.L_GOT_OFF: \
+ add sl, pc, sl; \
+ ldr r0, .Lstr; \
+ add r0, sl, r0; \
+ B PLTJMP(HIDDEN_JUMPTARGET(__fortify_fail)); \
+.L_GOT: \
+ .word _GLOBAL_OFFSET_TABLE_-(.L_GOT_OFF+8); \
+.Lstr: \
+ .word longjmp_msg(GOTOFF);
+#else
+# define CALL_FAIL \
+ ldr r0, .Lstr; \
+ B HIDDEN_JUMPTARGET(__fortify_fail); \
+.Lstr: \
+ .word longjmp_msg;
+#endif
+
+#define CHECK_SP(reg) \
+ cfi_remember_state; \
+ cmp sp, reg; \
+ bls .Lok; \
+ push { r7 }; \
+ cfi_adjust_cfa_offset (4); \
+ cfi_rel_offset (r7, 0); \
+ mov r5, r0; \
+ cfi_undefined (r5); \
+ mov r7, #SYS_ify(sigaltstack); \
+ mov r0, #0; \
+ sub sp, sp, #12; /* == sizeof (stack_t) */ \
+ cfi_adjust_cfa_offset (12); \
+ cfi_remember_state; \
+ mov r1, sp; \
+ swi #0; \
+ cmp r0, #0; \
+ bne .Lok2; \
+ ldr r1, [sp, #4]; \
+ tst r1, #1; \
+ beq .Lfail; \
+ ldr r2, [sp, #0]; \
+ ldr r3, [sp, #8]; \
+ add r2, r2, r3; \
+ sub r2, r2, reg; \
+ cmp r2, r3; \
+ bhi .Lok2; \
+.Lfail: \
+ add sp, sp, #12; \
+ cfi_adjust_cfa_offset (-12); \
+ pop { r7 }; \
+ cfi_adjust_cfa_offset (-4); \
+ cfi_restore (r7); \
+ CALL_FAIL \
+ cfi_restore_state; \
+.Lok2: \
+ mov r0, r5; \
+ cfi_restore_state; \
+.Lok:
+
+#include <__longjmp.S>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/arm/aeabi_read_tp.S b/REORG.TODO/sysdeps/unix/sysv/linux/arm/aeabi_read_tp.S
new file mode 100644
index 0000000000..12eae35e7f
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/arm/aeabi_read_tp.S
@@ -0,0 +1,55 @@
+/* Copyright (C) 2005-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ In addition to the permissions in the GNU Lesser General Public
+ License, the Free Software Foundation gives you unlimited
+ permission to link the compiled version of this file with other
+ programs, and to distribute those programs without any restriction
+ coming from the use of this file. (The GNU Lesser General Public
+ License restrictions do apply in other respects; for example, they
+ cover modification of the file, and distribution when not linked
+ into another program.)
+
+ Note that people who make modified versions of this file are not
+ obligated to grant this special exception for their modified
+ versions; it is their choice whether to do so. The GNU Lesser
+ General Public License gives permission to release a modified
+ version without this exception; this exception also makes it
+ possible to release a modified version which carries forward this
+ exception.
+
+ 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>
+
+/* GCC will emit calls to this routine under -mtp=soft. Linux has an
+ equivalent helper function (which clobbers fewer registers than
+ a normal function call) in a high page of memory; tail call to the
+ helper. */
+
+ .hidden __aeabi_read_tp
+ENTRY (__aeabi_read_tp)
+#ifdef ARCH_HAS_HARD_TP
+ mrc p15, 0, r0, c13, c0, 3
+ bx lr
+#elif defined(__thumb2__)
+ movw r0, #0x0fe0
+ movt r0, #0xffff
+ bx r0
+#else
+ mov r0, #0xffff0fff
+ sub pc, r0, #31
+#endif
+END (__aeabi_read_tp)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/arm/alphasort64.c b/REORG.TODO/sysdeps/unix/sysv/linux/arm/alphasort64.c
new file mode 100644
index 0000000000..0b5ae47d2f
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/arm/alphasort64.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/i386/alphasort64.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/arm/arch-fork.h b/REORG.TODO/sysdeps/unix/sysv/linux/arm/arch-fork.h
new file mode 100644
index 0000000000..ab2d00e32e
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/arm/arch-fork.h
@@ -0,0 +1,27 @@
+/* ARCH_FORK definition for Linux fork implementation. ARM version.
+ Copyright (C) 2014-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sched.h>
+#include <sysdep.h>
+#include <tls.h>
+
+
+#define ARCH_FORK() \
+ INLINE_SYSCALL (clone, 5, \
+ CLONE_CHILD_SETTID | CLONE_CHILD_CLEARTID | SIGCHLD, \
+ NULL, NULL, NULL, &THREAD_SELF->tid)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/arm/arm-features.h b/REORG.TODO/sysdeps/unix/sysv/linux/arm/arm-features.h
new file mode 100644
index 0000000000..91c12a6243
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/arm/arm-features.h
@@ -0,0 +1,30 @@
+/* Macros to test for CPU features on ARM. Linux version.
+ Copyright (C) 2012-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _LINUX_ARM_FEATURES_H
+#define _LINUX_ARM_FEATURES_H 1
+
+#ifndef __ASSEMBLER__
+# include <ldsodefs.h>
+
+# define ARM_HAVE_VFP (GLRO (dl_hwcap) & HWCAP_ARM_VFP)
+#endif
+
+#include_next <arm-features.h>
+
+#endif /* arm-features.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/arm/atomic-machine.h b/REORG.TODO/sysdeps/unix/sysv/linux/arm/atomic-machine.h
new file mode 100644
index 0000000000..5fb516284b
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/arm/atomic-machine.h
@@ -0,0 +1,107 @@
+/* Atomic operations. ARM/Linux version.
+ Copyright (C) 2002-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <stdint.h>
+
+/* If the compiler doesn't provide a primitive, we'll use this macro
+ to get assistance from the kernel. */
+#ifdef __thumb2__
+# define __arm_assisted_full_barrier() \
+ __asm__ __volatile__ \
+ ("movw\tip, #0x0fa0\n\t" \
+ "movt\tip, #0xffff\n\t" \
+ "blx\tip" \
+ : : : "ip", "lr", "cc", "memory");
+#else
+# define __arm_assisted_full_barrier() \
+ __asm__ __volatile__ \
+ ("mov\tip, #0xffff0fff\n\t" \
+ "mov\tlr, pc\n\t" \
+ "add\tpc, ip, #(0xffff0fa0 - 0xffff0fff)" \
+ : : : "ip", "lr", "cc", "memory");
+#endif
+
+/* Atomic compare and exchange. This sequence relies on the kernel to
+ provide a compare and exchange operation which is atomic on the
+ current architecture, either via cleverness on pre-ARMv6 or via
+ ldrex / strex on ARMv6.
+
+ It doesn't matter what register is used for a_oldval2, but we must
+ specify one to work around GCC PR rtl-optimization/21223. Otherwise
+ it may cause a_oldval or a_tmp to be moved to a different register.
+
+ We use the union trick rather than simply using __typeof (...) in the
+ declarations of A_OLDVAL et al because when NEWVAL or OLDVAL is of the
+ form *PTR and PTR has a 'volatile ... *' type, then __typeof (*PTR) has
+ a 'volatile ...' type and this triggers -Wvolatile-register-var to
+ complain about 'register volatile ... asm ("reg")'. */
+#ifdef __thumb2__
+/* Thumb-2 has ldrex/strex. However it does not have barrier instructions,
+ so we still need to use the kernel helper. */
+# define __arm_assisted_compare_and_exchange_val_32_acq(mem, newval, oldval) \
+ ({ union { __typeof (oldval) a; uint32_t v; } oldval_arg = { .a = (oldval) };\
+ union { __typeof (newval) a; uint32_t v; } newval_arg = { .a = (newval) };\
+ register uint32_t a_oldval asm ("r0"); \
+ register uint32_t a_newval asm ("r1") = newval_arg.v; \
+ register __typeof (mem) a_ptr asm ("r2") = (mem); \
+ register uint32_t a_tmp asm ("r3"); \
+ register uint32_t a_oldval2 asm ("r4") = oldval_arg.v; \
+ __asm__ __volatile__ \
+ ("0:\tldr\t%[tmp],[%[ptr]]\n\t" \
+ "cmp\t%[tmp], %[old2]\n\t" \
+ "bne\t1f\n\t" \
+ "mov\t%[old], %[old2]\n\t" \
+ "movw\t%[tmp], #0x0fc0\n\t" \
+ "movt\t%[tmp], #0xffff\n\t" \
+ "blx\t%[tmp]\n\t" \
+ "bcc\t0b\n\t" \
+ "mov\t%[tmp], %[old2]\n\t" \
+ "1:" \
+ : [old] "=&r" (a_oldval), [tmp] "=&r" (a_tmp) \
+ : [new] "r" (a_newval), [ptr] "r" (a_ptr), \
+ [old2] "r" (a_oldval2) \
+ : "ip", "lr", "cc", "memory"); \
+ (__typeof (oldval)) a_tmp; })
+#else
+# define __arm_assisted_compare_and_exchange_val_32_acq(mem, newval, oldval) \
+ ({ union { __typeof (oldval) a; uint32_t v; } oldval_arg = { .a = (oldval) };\
+ union { __typeof (newval) a; uint32_t v; } newval_arg = { .a = (newval) };\
+ register uint32_t a_oldval asm ("r0"); \
+ register uint32_t a_newval asm ("r1") = newval_arg.v; \
+ register __typeof (mem) a_ptr asm ("r2") = (mem); \
+ register uint32_t a_tmp asm ("r3"); \
+ register uint32_t a_oldval2 asm ("r4") = oldval_arg.v; \
+ __asm__ __volatile__ \
+ ("0:\tldr\t%[tmp],[%[ptr]]\n\t" \
+ "cmp\t%[tmp], %[old2]\n\t" \
+ "bne\t1f\n\t" \
+ "mov\t%[old], %[old2]\n\t" \
+ "mov\t%[tmp], #0xffff0fff\n\t" \
+ "mov\tlr, pc\n\t" \
+ "add\tpc, %[tmp], #(0xffff0fc0 - 0xffff0fff)\n\t" \
+ "bcc\t0b\n\t" \
+ "mov\t%[tmp], %[old2]\n\t" \
+ "1:" \
+ : [old] "=&r" (a_oldval), [tmp] "=&r" (a_tmp) \
+ : [new] "r" (a_newval), [ptr] "r" (a_ptr), \
+ [old2] "r" (a_oldval2) \
+ : "ip", "lr", "cc", "memory"); \
+ (__typeof (oldval)) a_tmp; })
+#endif
+
+#include <sysdeps/arm/atomic-machine.h>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/arm/bits/fcntl.h b/REORG.TODO/sysdeps/unix/sysv/linux/arm/bits/fcntl.h
new file mode 100644
index 0000000000..61a8dac187
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/arm/bits/fcntl.h
@@ -0,0 +1,54 @@
+/* O_*, F_*, FD_* bit values for Linux.
+ Copyright (C) 1995-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _FCNTL_H
+# error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
+#endif
+
+#define __O_DIRECTORY 040000 /* Must be a directory. */
+#define __O_NOFOLLOW 0100000 /* Do not follow links. */
+#define __O_DIRECT 0200000 /* Direct disk access. */
+#define __O_LARGEFILE 0400000
+
+struct flock
+ {
+ short int l_type; /* Type of lock: F_RDLCK, F_WRLCK, or F_UNLCK. */
+ short int l_whence; /* Where `l_start' is relative to (like `lseek'). */
+#ifndef __USE_FILE_OFFSET64
+ __off_t l_start; /* Offset where the lock begins. */
+ __off_t l_len; /* Size of the locked area; zero means until EOF. */
+#else
+ __off64_t l_start; /* Offset where the lock begins. */
+ __off64_t l_len; /* Size of the locked area; zero means until EOF. */
+#endif
+ __pid_t l_pid; /* Process holding the lock. */
+ };
+
+#ifdef __USE_LARGEFILE64
+struct flock64
+ {
+ short int l_type; /* Type of lock: F_RDLCK, F_WRLCK, or F_UNLCK. */
+ short int l_whence; /* Where `l_start' is relative to (like `lseek'). */
+ __off64_t l_start; /* Offset where the lock begins. */
+ __off64_t l_len; /* Size of the locked area; zero means until EOF. */
+ __pid_t l_pid; /* Process holding the lock. */
+ };
+#endif
+
+/* Include generic Linux declarations. */
+#include <bits/fcntl-linux.h>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/arm/bits/hwcap.h b/REORG.TODO/sysdeps/unix/sysv/linux/arm/bits/hwcap.h
new file mode 100644
index 0000000000..b2cc3d8828
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/arm/bits/hwcap.h
@@ -0,0 +1,45 @@
+/* Defines for bits in AT_HWCAP. ARM Linux version.
+ 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/>. */
+
+#if !defined (_SYS_AUXV_H) && !defined (_LINUX_ARM_SYSDEP_H)
+# error "Never include <bits/hwcap.h> directly; use <sys/auxv.h> instead."
+#endif
+
+/* The following must match the kernel's <asm/hwcap.h>. */
+#define HWCAP_ARM_SWP 1
+#define HWCAP_ARM_HALF 2
+#define HWCAP_ARM_THUMB 4
+#define HWCAP_ARM_26BIT 8
+#define HWCAP_ARM_FAST_MULT 16
+#define HWCAP_ARM_FPA 32
+#define HWCAP_ARM_VFP 64
+#define HWCAP_ARM_EDSP 128
+#define HWCAP_ARM_JAVA 256
+#define HWCAP_ARM_IWMMXT 512
+#define HWCAP_ARM_CRUNCH 1024
+#define HWCAP_ARM_THUMBEE 2048
+#define HWCAP_ARM_NEON 4096
+#define HWCAP_ARM_VFPv3 8192
+#define HWCAP_ARM_VFPv3D16 16384
+#define HWCAP_ARM_TLS 32768
+#define HWCAP_ARM_VFPv4 65536
+#define HWCAP_ARM_IDIVA 131072
+#define HWCAP_ARM_IDIVT 262144
+#define HWCAP_ARM_VFPD32 524288
+#define HWCAP_ARM_LPAE 1048576
+#define HWCAP_ARM_EVTSTRM 2097152
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/arm/bits/mman.h b/REORG.TODO/sysdeps/unix/sysv/linux/arm/bits/mman.h
new file mode 100644
index 0000000000..14baee793b
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/arm/bits/mman.h
@@ -0,0 +1,40 @@
+/* Definitions for POSIX memory map interface. Linux/ARM version.
+ Copyright (C) 1997-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_MMAN_H
+# error "Never use <bits/mman.h> directly; include <sys/mman.h> instead."
+#endif
+
+/* The following definitions basically come from the kernel headers.
+ But the kernel header is not namespace clean. */
+
+/* These are Linux-specific. */
+#ifdef __USE_MISC
+# define MAP_GROWSDOWN 0x00100 /* Stack-like segment. */
+# define MAP_DENYWRITE 0x00800 /* ETXTBSY */
+# define MAP_EXECUTABLE 0x01000 /* Mark it as an executable. */
+# define MAP_LOCKED 0x02000 /* Lock the mapping. */
+# define MAP_NORESERVE 0x04000 /* Don't check for reservations. */
+# define MAP_POPULATE 0x08000 /* Populate (prefault) pagetables. */
+# define MAP_NONBLOCK 0x10000 /* Do not block on IO. */
+# define MAP_STACK 0x20000 /* Allocation is for a stack. */
+# define MAP_HUGETLB 0x40000 /* Create huge page mapping. */
+#endif
+
+/* Include generic Linux declarations. */
+#include <bits/mman-linux.h>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/arm/bits/shm.h b/REORG.TODO/sysdeps/unix/sysv/linux/arm/bits/shm.h
new file mode 100644
index 0000000000..2448ffdd72
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/arm/bits/shm.h
@@ -0,0 +1,103 @@
+/* Copyright (C) 1995-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_SHM_H
+# error "Never include <bits/shm.h> directly; use <sys/shm.h> instead."
+#endif
+
+#include <bits/types.h>
+
+/* Permission flag for shmget. */
+#define SHM_R 0400 /* or S_IRUGO from <linux/stat.h> */
+#define SHM_W 0200 /* or S_IWUGO from <linux/stat.h> */
+
+/* Flags for `shmat'. */
+#define SHM_RDONLY 010000 /* attach read-only else read-write */
+#define SHM_RND 020000 /* round attach address to SHMLBA */
+#define SHM_REMAP 040000 /* take-over region on attach */
+#define SHM_EXEC 0100000 /* execution access */
+
+/* Commands for `shmctl'. */
+#define SHM_LOCK 11 /* lock segment (root only) */
+#define SHM_UNLOCK 12 /* unlock segment (root only) */
+
+__BEGIN_DECLS
+
+/* Segment low boundary address multiple. */
+#define SHMLBA (__getpagesize () << 2)
+extern int __getpagesize (void) __THROW __attribute__ ((__const__));
+
+
+/* Type to count number of attaches. */
+typedef unsigned long int shmatt_t;
+
+/* Data structure describing a shared memory segment. */
+struct shmid_ds
+ {
+ struct ipc_perm shm_perm; /* operation permission struct */
+ size_t shm_segsz; /* size of segment in bytes */
+ __time_t shm_atime; /* time of last shmat() */
+ unsigned long int __glibc_reserved1;
+ __time_t shm_dtime; /* time of last shmdt() */
+ unsigned long int __glibc_reserved2;
+ __time_t shm_ctime; /* time of last change by shmctl() */
+ unsigned long int __glibc_reserved3;
+ __pid_t shm_cpid; /* pid of creator */
+ __pid_t shm_lpid; /* pid of last shmop */
+ shmatt_t shm_nattch; /* number of current attaches */
+ unsigned long int __glibc_reserved4;
+ unsigned long int __glibc_reserved5;
+ };
+
+#ifdef __USE_MISC
+
+/* ipcs ctl commands */
+# define SHM_STAT 13
+# define SHM_INFO 14
+
+/* shm_mode upper byte flags */
+# define SHM_DEST 01000 /* segment will be destroyed on last detach */
+# define SHM_LOCKED 02000 /* segment will not be swapped */
+# define SHM_HUGETLB 04000 /* segment is mapped via hugetlb */
+# define SHM_NORESERVE 010000 /* don't check for reservations */
+
+struct shminfo
+ {
+ unsigned long int shmmax;
+ unsigned long int shmmin;
+ unsigned long int shmmni;
+ unsigned long int shmseg;
+ unsigned long int shmall;
+ unsigned long int __glibc_reserved1;
+ unsigned long int __glibc_reserved2;
+ unsigned long int __glibc_reserved3;
+ unsigned long int __glibc_reserved4;
+ };
+
+struct shm_info
+ {
+ int used_ids;
+ unsigned long int shm_tot; /* total allocated shm */
+ unsigned long int shm_rss; /* total resident shm */
+ unsigned long int shm_swp; /* total swapped shm */
+ unsigned long int swap_attempts;
+ unsigned long int swap_successes;
+ };
+
+#endif /* __USE_MISC */
+
+__END_DECLS
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/arm/brk.c b/REORG.TODO/sysdeps/unix/sysv/linux/arm/brk.c
new file mode 100644
index 0000000000..74bff978d6
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/arm/brk.c
@@ -0,0 +1,41 @@
+/* brk system call for Linux/ARM.
+ Copyright (C) 1995-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <unistd.h>
+#include <sysdep.h>
+
+/* This must be initialized data because commons can't have aliases. */
+void *__curbrk = 0;
+
+int
+__brk (void *addr)
+{
+ void *newbrk;
+
+ __curbrk = newbrk = (void *) INLINE_SYSCALL (brk, 1, addr);
+
+ if (newbrk < addr)
+ {
+ __set_errno (ENOMEM);
+ return -1;
+ }
+
+ return 0;
+}
+weak_alias (__brk, brk)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/arm/c++-types.data b/REORG.TODO/sysdeps/unix/sysv/linux/arm/c++-types.data
new file mode 100644
index 0000000000..fde53bf337
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/arm/c++-types.data
@@ -0,0 +1,67 @@
+blkcnt64_t:x
+blkcnt_t:l
+blksize_t:l
+caddr_t:Pc
+clockid_t:i
+clock_t:l
+daddr_t:i
+dev_t:y
+fd_mask:l
+fsblkcnt64_t:y
+fsblkcnt_t:m
+fsfilcnt64_t:y
+fsfilcnt_t:m
+fsid_t:8__fsid_t
+gid_t:j
+id_t:j
+ino64_t:y
+ino_t:m
+int16_t:s
+int32_t:i
+int64_t:x
+int8_t:a
+intptr_t:i
+key_t:i
+loff_t:x
+mode_t:j
+nlink_t:j
+off64_t:x
+off_t:l
+pid_t:i
+pthread_attr_t:14pthread_attr_t
+pthread_barrier_t:17pthread_barrier_t
+pthread_barrierattr_t:21pthread_barrierattr_t
+pthread_cond_t:14pthread_cond_t
+pthread_condattr_t:18pthread_condattr_t
+pthread_key_t:j
+pthread_mutex_t:15pthread_mutex_t
+pthread_mutexattr_t:19pthread_mutexattr_t
+pthread_once_t:i
+pthread_rwlock_t:16pthread_rwlock_t
+pthread_rwlockattr_t:20pthread_rwlockattr_t
+pthread_spinlock_t:i
+pthread_t:m
+quad_t:x
+register_t:i
+rlim64_t:y
+rlim_t:m
+sigset_t:10__sigset_t
+size_t:j
+socklen_t:j
+ssize_t:i
+suseconds_t:l
+time_t:l
+u_char:h
+uid_t:j
+uint:j
+u_int:j
+u_int16_t:t
+u_int32_t:j
+u_int64_t:y
+u_int8_t:h
+ulong:m
+u_long:m
+u_quad_t:y
+useconds_t:j
+ushort:t
+u_short:t
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/arm/clone.S b/REORG.TODO/sysdeps/unix/sysv/linux/arm/clone.S
new file mode 100644
index 0000000000..a309add895
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/arm/clone.S
@@ -0,0 +1,84 @@
+/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Pat Beirne <patb@corelcomputer.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 <tcb-offsets.h>
+#define _ERRNO_H 1
+#include <bits/errno.h>
+
+#define CLONE_VM 0x00000100
+#define CLONE_THREAD 0x00010000
+
+/* int clone(int (*fn)(void *arg), void *child_stack, int flags, void *arg,
+ pid_t *ptid, struct user_desc *tls, pid_t *ctid); */
+
+ .text
+ENTRY(__clone)
+ @ sanity check args
+ cmp r0, #0
+ ite ne
+ cmpne r1, #0
+ moveq r0, #-EINVAL
+ beq PLTJMP(syscall_error)
+
+ @ insert the args onto the new stack
+ str r3, [r1, #-4]!
+ str r0, [r1, #-4]!
+
+ @ do the system call
+ @ get flags
+ mov r0, r2
+ mov ip, r2
+ @ new sp is already in r1
+ push {r4, r7}
+ cfi_adjust_cfa_offset (8)
+ cfi_rel_offset (r4, 0)
+ cfi_rel_offset (r7, 4)
+ ldr r2, [sp, #8]
+ ldr r3, [sp, #12]
+ ldr r4, [sp, #16]
+ ldr r7, =SYS_ify(clone)
+ swi 0x0
+ cfi_endproc
+ cmp r0, #0
+ beq 1f
+ pop {r4, r7}
+ blt PLTJMP(C_SYMBOL_NAME(__syscall_error))
+ RETINSTR(, lr)
+
+ cfi_startproc
+PSEUDO_END (__clone)
+
+1:
+ .fnstart
+ .cantunwind
+ @ pick the function arg and call address off the stack and execute
+ ldr r0, [sp, #4]
+ ldr ip, [sp], #8
+ BLX (ip)
+
+ @ and we are done, passing the return value through r0
+ b PLTJMP(HIDDEN_JUMPTARGET(_exit))
+
+ .fnend
+
+libc_hidden_def (__clone)
+weak_alias (__clone, clone)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/arm/dl-cache.h b/REORG.TODO/sysdeps/unix/sysv/linux/arm/dl-cache.h
new file mode 100644
index 0000000000..ccc4f2f3b3
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/arm/dl-cache.h
@@ -0,0 +1,34 @@
+/* Support for reading /etc/ld.so.cache files written by Linux ldconfig.
+ Copyright (C) 2003-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <ldconfig.h>
+
+/* In order to support the transition from unmarked objects
+ to marked objects we must treat unmarked objects as
+ compatible with either FLAG_ARM_LIBHF or FLAG_ARM_LIBSF. */
+#ifdef __ARM_PCS_VFP
+# define _dl_cache_check_flags(flags) \
+ ((flags) == (FLAG_ARM_LIBHF | FLAG_ELF_LIBC6) \
+ || (flags) == FLAG_ELF_LIBC6)
+#else
+# define _dl_cache_check_flags(flags) \
+ ((flags) == (FLAG_ARM_LIBSF | FLAG_ELF_LIBC6) \
+ || (flags) == FLAG_ELF_LIBC6)
+#endif
+
+#include_next <dl-cache.h>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/arm/dl-machine.h b/REORG.TODO/sysdeps/unix/sysv/linux/arm/dl-machine.h
new file mode 100644
index 0000000000..8cc7d25439
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/arm/dl-machine.h
@@ -0,0 +1,30 @@
+/* Machine-dependent ELF dynamic relocation inline functions. ARM/Linux version
+ Copyright (C) 1995-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef dl_machine_h
+
+/* This definition is Linux-specific. */
+#define CLEAR_CACHE(BEG,END) \
+ INTERNAL_SYSCALL_ARM (cacheflush, , 3, (BEG), (END), 0)
+
+#endif
+
+/* The rest is just machine-specific.
+ This #include is outside the #ifndef because the parts of
+ dl-machine.h used only by dynamic-link.h are outside the guard. */
+#include <sysdeps/arm/dl-machine.h>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/arm/dl-procinfo.c b/REORG.TODO/sysdeps/unix/sysv/linux/arm/dl-procinfo.c
new file mode 100644
index 0000000000..15c45d089f
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/arm/dl-procinfo.c
@@ -0,0 +1,66 @@
+/* Data for Linux/ARM version of processor capability information.
+ Copyright (C) 2001-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Philip Blundell <philb@gnu.org>, 2001.
+
+ 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 information must be kept in sync with the _DL_HWCAP_COUNT and
+ _DL_PLATFORM_COUNT definitions in procinfo.h.
+
+ If anything should be added here check whether the size of each string
+ is still ok with the given array size.
+
+ All the #ifdefs in the definitions are quite irritating but
+ necessary if we want to avoid duplicating the information. There
+ are three different modes:
+
+ - PROCINFO_DECL is defined. This means we are only interested in
+ declarations.
+
+ - PROCINFO_DECL is not defined:
+
+ + if SHARED is defined the file is included in an array
+ initializer. The .element = { ... } syntax is needed.
+
+ + if SHARED is not defined a normal array initialization is
+ needed.
+ */
+
+#ifndef PROCINFO_CLASS
+#define PROCINFO_CLASS
+#endif
+
+#if !defined PROCINFO_DECL && defined SHARED
+ ._dl_arm_cap_flags
+#else
+PROCINFO_CLASS const char _dl_arm_cap_flags[27][10]
+#endif
+#ifndef PROCINFO_DECL
+= {
+ "swp", "half", "thumb", "26bit", "fastmult", "fpa", "vfp", "edsp",
+ "java", "iwmmxt", "crunch", "thumbee", "neon", "vfpv3", "vfpv3d16",
+ "tls", "vfpv4", "idiva", "idivt", "vfpd32", "lpae", "evtstrm",
+ "aes", "pmull", "sha1", "sha2", "crc32",
+ }
+#endif
+#if !defined SHARED || defined PROCINFO_DECL
+;
+#else
+,
+#endif
+
+#undef PROCINFO_DECL
+#undef PROCINFO_CLASS
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/arm/dl-procinfo.h b/REORG.TODO/sysdeps/unix/sysv/linux/arm/dl-procinfo.h
new file mode 100644
index 0000000000..b6a9d9f6a2
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/arm/dl-procinfo.h
@@ -0,0 +1,93 @@
+/* Linux/ARM version of processor capability information handling macros.
+ Copyright (C) 2001-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Philip Blundell <philb@gnu.org>, 2001.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _DL_PROCINFO_H
+#define _DL_PROCINFO_H 1
+
+#include <ldsodefs.h>
+#include <sysdep.h>
+
+#define _DL_HWCAP_COUNT 27
+
+/* Low 22 bits are allocated in HWCAP. */
+#define _DL_HWCAP_LAST 21
+
+/* Low 5 bits are allocated in HWCAP2. */
+#define _DL_HWCAP2_LAST 4
+
+/* The kernel provides platform data but it is not interesting. */
+#define _DL_HWCAP_PLATFORM 0
+
+
+static inline const char *
+__attribute__ ((unused))
+_dl_hwcap_string (int idx)
+{
+ return GLRO(dl_arm_cap_flags)[idx];
+};
+
+static inline int
+__attribute__ ((unused))
+_dl_procinfo (unsigned int type, unsigned long int word)
+{
+ switch(type)
+ {
+ case AT_HWCAP:
+ _dl_printf ("AT_HWCAP: ");
+
+ for (int i = 0; i <= _DL_HWCAP_LAST; ++i)
+ if (word & (1 << i))
+ _dl_printf (" %s", _dl_hwcap_string (i));
+ break;
+ case AT_HWCAP2:
+ {
+ unsigned int offset = _DL_HWCAP_LAST + 1;
+
+ _dl_printf ("AT_HWCAP2: ");
+
+ for (int i = 0; i <= _DL_HWCAP2_LAST; ++i)
+ if (word & (1 << i))
+ _dl_printf (" %s", _dl_hwcap_string (offset + i));
+ break;
+ }
+ default:
+ /* This should not happen. */
+ return -1;
+ }
+ _dl_printf ("\n");
+ return 0;
+}
+
+#define HWCAP_IMPORTANT (HWCAP_ARM_VFP | HWCAP_ARM_NEON)
+
+static inline int
+__attribute__ ((unused))
+_dl_string_hwcap (const char *str)
+{
+ for (int i = 0; i < _DL_HWCAP_COUNT; i++)
+ {
+ if (strcmp (str, _dl_hwcap_string (i)) == 0)
+ return i;
+ }
+ return -1;
+};
+
+#define _dl_string_platform(str) (-1)
+
+#endif /* dl-procinfo.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/arm/fcntl.c b/REORG.TODO/sysdeps/unix/sysv/linux/arm/fcntl.c
new file mode 100644
index 0000000000..ea951bc4f9
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/arm/fcntl.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/i386/fcntl.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/arm/fxstat.c b/REORG.TODO/sysdeps/unix/sysv/linux/arm/fxstat.c
new file mode 100644
index 0000000000..4f219f0b9d
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/arm/fxstat.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/i386/fxstat.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/arm/fxstatat.c b/REORG.TODO/sysdeps/unix/sysv/linux/arm/fxstatat.c
new file mode 100644
index 0000000000..0f8b3135d8
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/arm/fxstatat.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/i386/fxstatat.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/arm/getcontext.S b/REORG.TODO/sysdeps/unix/sysv/linux/arm/getcontext.S
new file mode 100644
index 0000000000..fcc6c6f36b
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/arm/getcontext.S
@@ -0,0 +1,115 @@
+/* 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>
+#include <rtld-global-offsets.h>
+
+#include "ucontext_i.h"
+
+ .syntax unified
+ .text
+
+/* int getcontext (ucontext_t *ucp) */
+
+ENTRY(__getcontext)
+ /* No need to save r0-r3, d0-d7, or d16-d31. */
+ add r1, r0, #MCONTEXT_ARM_R4
+ stmia r1, {r4-r11}
+
+ /* Save R13 separately as Thumb can't STM it. */
+ str r13, [r0, #MCONTEXT_ARM_SP]
+ str r14, [r0, #MCONTEXT_ARM_LR]
+ /* Return to LR */
+ str r14, [r0, #MCONTEXT_ARM_PC]
+ /* Return zero */
+ mov r2, #0
+ str r2, [r0, #MCONTEXT_ARM_R0]
+
+ /* Save ucontext_t * across the next call. */
+ mov r4, r0
+
+ /* __sigprocmask(SIG_BLOCK, NULL, &(ucontext->uc_sigmask)) */
+ mov r0, #SIG_BLOCK
+ mov r1, #0
+ add r2, r4, #UCONTEXT_SIGMASK
+ bl PLTJMP(__sigprocmask)
+
+ /* Store FP regs. Much of the FP code is copied from arm/setjmp.S. */
+
+#ifdef PIC
+ ldr r2, 1f
+ ldr r1, .Lrtld_global_ro
+0: add r2, pc, r2
+ ldr r2, [r2, r1]
+ ldr r2, [r2, #RTLD_GLOBAL_RO_DL_HWCAP_OFFSET]
+#else
+ ldr r2, .Lhwcap
+ ldr r2, [r2, #0]
+#endif
+
+ add r0, r4, #UCONTEXT_REGSPACE
+
+#ifdef __SOFTFP__
+ tst r2, #HWCAP_ARM_VFP
+ beq .Lno_vfp
+#endif
+
+ /* Store the VFP registers.
+ Don't use VFP instructions directly because this code
+ is used in non-VFP multilibs. */
+ /* Following instruction is vstmia r0!, {d8-d15}. */
+ stc p11, cr8, [r0], #64
+ /* Store the floating-point status register. */
+ /* Following instruction is vmrs r1, fpscr. */
+ mrc p10, 7, r1, cr1, cr0, 0
+ str r1, [r0], #4
+.Lno_vfp:
+
+ tst r2, #HWCAP_ARM_IWMMXT
+ beq .Lno_iwmmxt
+
+ /* Save the call-preserved iWMMXt registers. */
+ /* Following instructions are wstrd wr10, [r0], #8 (etc.) */
+ stcl p1, cr10, [r0], #8
+ stcl p1, cr11, [r0], #8
+ stcl p1, cr12, [r0], #8
+ stcl p1, cr13, [r0], #8
+ stcl p1, cr14, [r0], #8
+ stcl p1, cr15, [r0], #8
+.Lno_iwmmxt:
+
+ /* Restore the clobbered R4 and LR. */
+ ldr r14, [r4, #MCONTEXT_ARM_LR]
+ ldr r4, [r4, #MCONTEXT_ARM_R4]
+
+ mov r0, #0
+
+ DO_RET(r14)
+
+END(__getcontext)
+
+#ifdef PIC
+1: .long _GLOBAL_OFFSET_TABLE_ - 0b - PC_OFS
+.Lrtld_global_ro:
+ .long C_SYMBOL_NAME(_rtld_global_ro)(GOT)
+#else
+.Lhwcap:
+ .long C_SYMBOL_NAME(_dl_hwcap)
+#endif
+
+
+weak_alias(__getcontext, getcontext)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/arm/getdents64.c b/REORG.TODO/sysdeps/unix/sysv/linux/arm/getdents64.c
new file mode 100644
index 0000000000..0c75fb5a06
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/arm/getdents64.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/i386/getdents64.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/arm/glob64.c b/REORG.TODO/sysdeps/unix/sysv/linux/arm/glob64.c
new file mode 100644
index 0000000000..82a9a296a7
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/arm/glob64.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/i386/glob64.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/arm/init-first.c b/REORG.TODO/sysdeps/unix/sysv/linux/arm/init-first.c
new file mode 100644
index 0000000000..3c289c2a25
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/arm/init-first.c
@@ -0,0 +1,44 @@
+/* Initialization code run first thing by the ELF startup code. Linux/ARM.
+ Copyright (C) 2015-2017 Free Software Foundation, Inc.
+
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation; either version 2.1 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifdef SHARED
+# include <dl-vdso.h>
+# include <libc-vdso.h>
+
+int (*VDSO_SYMBOL(gettimeofday)) (struct timeval *, void *) attribute_hidden;
+int (*VDSO_SYMBOL(clock_gettime)) (clockid_t, struct timespec *);
+
+static inline void
+_libc_vdso_platform_setup (void)
+{
+ PREPARE_VERSION_KNOWN (linux26, LINUX_2_6);
+
+ void *p = _dl_vdso_vsym ("__vdso_gettimeofday", &linux26);
+ PTR_MANGLE (p);
+ VDSO_SYMBOL (gettimeofday) = p;
+
+ p = _dl_vdso_vsym ("__vdso_clock_gettime", &linux26);
+ PTR_MANGLE (p);
+ VDSO_SYMBOL (clock_gettime) = p;
+}
+
+# define VDSO_SETUP _libc_vdso_platform_setup
+#endif
+
+#include <csu/init-first.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/arm/ioperm.c b/REORG.TODO/sysdeps/unix/sysv/linux/arm/ioperm.c
new file mode 100644
index 0000000000..c1fedd3696
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/arm/ioperm.c
@@ -0,0 +1,183 @@
+/* Copyright (C) 1998-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Phil Blundell, based on the Alpha version by
+ David Mosberger.
+
+ 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/>. */
+
+/* I/O port access on the ARM is something of a fiction. What we do is to
+ map an appropriate area of /dev/mem into user space so that a program
+ can blast away at the hardware in such a way as to generate I/O cycles
+ on the bus. To insulate user code from dependencies on particular
+ hardware we don't allow calls to inb() and friends to be inlined, but
+ force them to come through code in here every time. Performance-critical
+ registers tend to be memory mapped these days so this should be no big
+ problem. */
+
+/* Once upon a time this file used mprotect to enable and disable
+ access to particular areas of I/O space. Unfortunately the
+ mprotect syscall also has the side effect of enabling caching for
+ the area affected (this is a kernel limitation). So we now just
+ enable all the ports all of the time. */
+
+#include <errno.h>
+#include <fcntl.h>
+#include <stdio.h>
+#include <ctype.h>
+#include <stdlib.h>
+#include <unistd.h>
+
+#include <sys/types.h>
+#include <sys/mman.h>
+
+#include <sys/sysctl.h>
+
+#define MAX_PORT 0x10000
+
+static struct {
+ unsigned long int base;
+ unsigned long int io_base;
+ unsigned int shift;
+ unsigned int initdone; /* since all the above could be 0 */
+} io;
+
+#define IO_ADDR(port) (io.base + ((port) << io.shift))
+
+/*
+ * Initialize I/O system. The io_bae and port_shift values are fetched
+ * using sysctl (CTL_BUS, CTL_BUS_ISA, ISA_*).
+ */
+
+static int
+init_iosys (void)
+{
+ static int iobase_name[] = { CTL_BUS, CTL_BUS_ISA, BUS_ISA_PORT_BASE };
+ static int ioshift_name[] = { CTL_BUS, CTL_BUS_ISA, BUS_ISA_PORT_SHIFT };
+ size_t len = sizeof(io.base);
+
+ if (! __sysctl (iobase_name, 3, &io.io_base, &len, NULL, 0)
+ && ! __sysctl (ioshift_name, 3, &io.shift, &len, NULL, 0))
+ {
+ io.initdone = 1;
+ return 0;
+ }
+
+ /* sysctl has failed... */
+ __set_errno (ENODEV);
+ return -1;
+}
+
+int
+_ioperm (unsigned long int from, unsigned long int num, int turn_on)
+{
+ if (! io.initdone && init_iosys () < 0)
+ return -1;
+
+ /* this test isn't as silly as it may look like; consider overflows! */
+ if (from >= MAX_PORT || from + num > MAX_PORT)
+ {
+ __set_errno (EINVAL);
+ return -1;
+ }
+
+ if (turn_on)
+ {
+ if (! io.base)
+ {
+ int fd;
+
+ fd = __open ("/dev/mem", O_RDWR);
+ if (fd < 0)
+ return -1;
+
+ io.base =
+ (unsigned long int) __mmap (0, MAX_PORT << io.shift,
+ PROT_READ | PROT_WRITE,
+ MAP_SHARED, fd, io.io_base);
+ __close (fd);
+ if ((long) io.base == -1)
+ return -1;
+ }
+ }
+
+ return 0;
+}
+
+
+int
+_iopl (unsigned int level)
+{
+ if (level > 3)
+ {
+ __set_errno (EINVAL);
+ return -1;
+ }
+ if (level)
+ {
+ return _ioperm (0, MAX_PORT, 1);
+ }
+ return 0;
+}
+
+
+void
+_outb (unsigned char b, unsigned long int port)
+{
+ *((volatile unsigned char *)(IO_ADDR (port))) = b;
+}
+
+
+void
+_outw (unsigned short b, unsigned long int port)
+{
+ *((volatile unsigned short *)(IO_ADDR (port))) = b;
+}
+
+
+void
+_outl (unsigned int b, unsigned long int port)
+{
+ *((volatile unsigned long *)(IO_ADDR (port))) = b;
+}
+
+
+unsigned int
+_inb (unsigned long int port)
+{
+ return *((volatile unsigned char *)(IO_ADDR (port)));
+}
+
+
+unsigned int
+_inw (unsigned long int port)
+{
+ return *((volatile unsigned short *)(IO_ADDR (port)));
+}
+
+
+unsigned int
+_inl (unsigned long int port)
+{
+ return *((volatile unsigned long *)(IO_ADDR (port)));
+}
+
+weak_alias (_ioperm, ioperm);
+weak_alias (_iopl, iopl);
+weak_alias (_inb, inb);
+weak_alias (_inw, inw);
+weak_alias (_inl, inl);
+weak_alias (_outb, outb);
+weak_alias (_outw, outw);
+weak_alias (_outl, outl);
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/arm/kernel-features.h b/REORG.TODO/sysdeps/unix/sysv/linux/arm/kernel-features.h
new file mode 100644
index 0000000000..e13b049389
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/arm/kernel-features.h
@@ -0,0 +1,41 @@
+/* Set flags signalling availability of kernel features based on given
+ kernel version number.
+ Copyright (C) 2006-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include_next <kernel-features.h>
+
+/* The ARM kernel before 3.14.3 may or may not support
+ futex_atomic_cmpxchg_inatomic, depending on kernel
+ configuration. */
+#if __LINUX_KERNEL_VERSION < 0x030E03
+# undef __ASSUME_SET_ROBUST_LIST
+#endif
+
+/* ARM fadvise64_64 reorganize the syscall arguments. */
+#define __ASSUME_FADVISE64_64_6ARG 1
+
+/* Define this if your 32-bit syscall API requires 64-bit register
+ pairs to start with an even-number register. */
+#define __ASSUME_ALIGNED_REGISTER_PAIRS 1
+
+/* ARM only has a syscall for fadvise64{_64} and it is defined with a
+ non-standard name. */
+#define __NR_fadvise64_64 __NR_arm_fadvise64_64
+
+#define __ASSUME_RECV_SYSCALL 1
+#define __ASSUME_SEND_SYSCALL 1
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/arm/ld.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/arm/ld.abilist
new file mode 100644
index 0000000000..cbf3a3cb2e
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/arm/ld.abilist
@@ -0,0 +1,10 @@
+GLIBC_2.4 GLIBC_2.4 A
+GLIBC_2.4 __libc_stack_end D 0x4
+GLIBC_2.4 __stack_chk_guard D 0x4
+GLIBC_2.4 __tls_get_addr F
+GLIBC_2.4 _dl_mcount F
+GLIBC_2.4 _r_debug D 0x14
+GLIBC_2.4 calloc F
+GLIBC_2.4 free F
+GLIBC_2.4 malloc F
+GLIBC_2.4 realloc F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/arm/ldconfig.h b/REORG.TODO/sysdeps/unix/sysv/linux/arm/ldconfig.h
new file mode 100644
index 0000000000..a9a467cc6b
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/arm/ldconfig.h
@@ -0,0 +1,25 @@
+/* Copyright (C) 2001-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdeps/generic/ldconfig.h>
+
+#define SYSDEP_KNOWN_INTERPRETER_NAMES \
+ { "/lib/ld-linux.so.3", FLAG_ELF_LIBC6 }, \
+ { "/lib/ld-linux-armhf.so.3", FLAG_ELF_LIBC6 },
+#define SYSDEP_KNOWN_LIBRARY_NAMES \
+ { "libc.so.6", FLAG_ELF_LIBC6 }, \
+ { "libm.so.6", FLAG_ELF_LIBC6 },
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/arm/ldsodefs.h b/REORG.TODO/sysdeps/unix/sysv/linux/arm/ldsodefs.h
new file mode 100644
index 0000000000..6bd126b8ec
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/arm/ldsodefs.h
@@ -0,0 +1,73 @@
+/* Run-time dynamic linker data structures for loaded ELF shared objects.
+ Copyright (C) 2010-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 _ARM_LINUX_LDSODEFS_H
+#define _ARM_LINUX_LDSODEFS_H 1
+
+#include_next <ldsodefs.h>
+
+#undef VALID_ELF_HEADER
+#undef VALID_ELF_OSABI
+#undef MORE_ELF_HEADER_DATA
+
+#define EXTRA_OSABI ELFOSABI_ARM_AEABI
+
+#ifdef __ARM_PCS_VFP
+# define VALID_FLOAT_ABI(x) \
+ ((EF_ARM_EABI_VERSION ((x)) != EF_ARM_EABI_VER5) \
+ || !((x) & EF_ARM_ABI_FLOAT_SOFT))
+#else
+# define VALID_FLOAT_ABI(x) \
+ ((EF_ARM_EABI_VERSION ((x)) != EF_ARM_EABI_VER5) \
+ || !((x) & EF_ARM_ABI_FLOAT_HARD))
+#endif
+
+#undef VALID_ELF_HEADER
+#define VALID_ELF_HEADER(hdr,exp,size) \
+ ((memcmp (hdr, exp, size) == 0 \
+ || memcmp (hdr, expected2, size) == 0 \
+ || memcmp (hdr, expected3, size) == 0) \
+ && VALID_FLOAT_ABI (ehdr->e_flags))
+#define VALID_ELF_OSABI(osabi) (osabi == ELFOSABI_SYSV \
+ || osabi == ELFOSABI_GNU \
+ || osabi == EXTRA_OSABI)
+#define MORE_ELF_HEADER_DATA \
+ static const unsigned char expected2[EI_PAD] = \
+ { \
+ [EI_MAG0] = ELFMAG0, \
+ [EI_MAG1] = ELFMAG1, \
+ [EI_MAG2] = ELFMAG2, \
+ [EI_MAG3] = ELFMAG3, \
+ [EI_CLASS] = ELFW(CLASS), \
+ [EI_DATA] = byteorder, \
+ [EI_VERSION] = EV_CURRENT, \
+ [EI_OSABI] = ELFOSABI_GNU \
+ }; \
+ static const unsigned char expected3[EI_PAD] = \
+ { \
+ [EI_MAG0] = ELFMAG0, \
+ [EI_MAG1] = ELFMAG1, \
+ [EI_MAG2] = ELFMAG2, \
+ [EI_MAG3] = ELFMAG3, \
+ [EI_CLASS] = ELFW(CLASS), \
+ [EI_DATA] = byteorder, \
+ [EI_VERSION] = EV_CURRENT, \
+ [EI_OSABI] = EXTRA_OSABI \
+ }
+
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/arm/libBrokenLocale.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/arm/libBrokenLocale.abilist
new file mode 100644
index 0000000000..e80f213955
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/arm/libBrokenLocale.abilist
@@ -0,0 +1,2 @@
+GLIBC_2.4 GLIBC_2.4 A
+GLIBC_2.4 __ctype_get_mb_cur_max F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/arm/libanl.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/arm/libanl.abilist
new file mode 100644
index 0000000000..df0c397ddc
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/arm/libanl.abilist
@@ -0,0 +1,5 @@
+GLIBC_2.4 GLIBC_2.4 A
+GLIBC_2.4 gai_cancel F
+GLIBC_2.4 gai_error F
+GLIBC_2.4 gai_suspend F
+GLIBC_2.4 getaddrinfo_a F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/arm/libc-do-syscall.S b/REORG.TODO/sysdeps/unix/sysv/linux/arm/libc-do-syscall.S
new file mode 100644
index 0000000000..e5c1341a9d
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/arm/libc-do-syscall.S
@@ -0,0 +1,51 @@
+/* Copyright (C) 2010-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/>. */
+
+/* When this file is built for inclusion in nscd, _FORTIFY_SOURCE is
+ defined but -O is not used, resulting in a warning from features.h. */
+#undef _FORTIFY_SOURCE
+#include <sysdep.h>
+
+/* Out-of-line syscall stub. We expect the system call number in ip
+ and return the raw result in r0. No registers are clobbered.
+ We could avoid using the stack for this, but the goal is accurate
+ unwind information - and while there is a reserved prefix in the
+ ARM unwind tables for register to register moves, the actual opcodes
+ are not defined. */
+
+#if defined(__thumb__)
+ .thumb
+ .syntax unified
+ .hidden __libc_do_syscall
+
+#undef CALL_MCOUNT
+#define CALL_MCOUNT
+
+ENTRY (__libc_do_syscall)
+ .fnstart
+ push {r7, lr}
+ .save {r7, lr}
+ cfi_adjust_cfa_offset (8)
+ cfi_rel_offset (r7, 0)
+ cfi_rel_offset (lr, 4)
+ mov r7, ip
+ swi 0x0
+ pop {r7, pc}
+ .fnend
+END (__libc_do_syscall)
+
+#endif /* __thumb__ */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/arm/libc-vdso.h b/REORG.TODO/sysdeps/unix/sysv/linux/arm/libc-vdso.h
new file mode 100644
index 0000000000..ae37b574e1
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/arm/libc-vdso.h
@@ -0,0 +1,33 @@
+/* VDSO function pointer declarations. Linux/ARM.
+ Copyright (C) 2015-2017 Free Software Foundation, Inc.
+
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _LIBC_VDSO_H
+#define _LIBC_VDSO_H
+
+#ifdef SHARED
+
+# include <sysdep-vdso.h>
+
+extern int (*VDSO_SYMBOL(gettimeofday)) (struct timeval *, void *)
+ attribute_hidden;
+extern int (*VDSO_SYMBOL(clock_gettime)) (clockid_t, struct timespec *);
+
+#endif
+
+#endif /* _LIBC_VDSO_H */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/arm/libc.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/arm/libc.abilist
new file mode 100644
index 0000000000..d2a206a8df
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/arm/libc.abilist
@@ -0,0 +1,2154 @@
+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.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.4 GLIBC_2.4 A
+GLIBC_2.4 _Exit F
+GLIBC_2.4 _IO_2_1_stderr_ D 0xa0
+GLIBC_2.4 _IO_2_1_stdin_ D 0xa0
+GLIBC_2.4 _IO_2_1_stdout_ D 0xa0
+GLIBC_2.4 _IO_adjust_column F
+GLIBC_2.4 _IO_adjust_wcolumn F
+GLIBC_2.4 _IO_default_doallocate F
+GLIBC_2.4 _IO_default_finish F
+GLIBC_2.4 _IO_default_pbackfail F
+GLIBC_2.4 _IO_default_uflow F
+GLIBC_2.4 _IO_default_xsgetn F
+GLIBC_2.4 _IO_default_xsputn F
+GLIBC_2.4 _IO_do_write F
+GLIBC_2.4 _IO_doallocbuf F
+GLIBC_2.4 _IO_fclose F
+GLIBC_2.4 _IO_fdopen F
+GLIBC_2.4 _IO_feof F
+GLIBC_2.4 _IO_ferror F
+GLIBC_2.4 _IO_fflush F
+GLIBC_2.4 _IO_fgetpos F
+GLIBC_2.4 _IO_fgetpos64 F
+GLIBC_2.4 _IO_fgets F
+GLIBC_2.4 _IO_file_attach F
+GLIBC_2.4 _IO_file_close F
+GLIBC_2.4 _IO_file_close_it F
+GLIBC_2.4 _IO_file_doallocate F
+GLIBC_2.4 _IO_file_finish F
+GLIBC_2.4 _IO_file_fopen F
+GLIBC_2.4 _IO_file_init F
+GLIBC_2.4 _IO_file_jumps D 0x54
+GLIBC_2.4 _IO_file_open F
+GLIBC_2.4 _IO_file_overflow F
+GLIBC_2.4 _IO_file_read F
+GLIBC_2.4 _IO_file_seek F
+GLIBC_2.4 _IO_file_seekoff F
+GLIBC_2.4 _IO_file_setbuf F
+GLIBC_2.4 _IO_file_stat F
+GLIBC_2.4 _IO_file_sync F
+GLIBC_2.4 _IO_file_underflow F
+GLIBC_2.4 _IO_file_write F
+GLIBC_2.4 _IO_file_xsputn F
+GLIBC_2.4 _IO_flockfile F
+GLIBC_2.4 _IO_flush_all F
+GLIBC_2.4 _IO_flush_all_linebuffered F
+GLIBC_2.4 _IO_fopen F
+GLIBC_2.4 _IO_fprintf F
+GLIBC_2.4 _IO_fputs F
+GLIBC_2.4 _IO_fread F
+GLIBC_2.4 _IO_free_backup_area F
+GLIBC_2.4 _IO_free_wbackup_area F
+GLIBC_2.4 _IO_fsetpos F
+GLIBC_2.4 _IO_fsetpos64 F
+GLIBC_2.4 _IO_ftell F
+GLIBC_2.4 _IO_ftrylockfile F
+GLIBC_2.4 _IO_funlockfile F
+GLIBC_2.4 _IO_fwrite F
+GLIBC_2.4 _IO_getc F
+GLIBC_2.4 _IO_getline F
+GLIBC_2.4 _IO_getline_info F
+GLIBC_2.4 _IO_gets F
+GLIBC_2.4 _IO_init F
+GLIBC_2.4 _IO_init_marker F
+GLIBC_2.4 _IO_init_wmarker F
+GLIBC_2.4 _IO_iter_begin F
+GLIBC_2.4 _IO_iter_end F
+GLIBC_2.4 _IO_iter_file F
+GLIBC_2.4 _IO_iter_next F
+GLIBC_2.4 _IO_least_wmarker F
+GLIBC_2.4 _IO_link_in F
+GLIBC_2.4 _IO_list_all D 0x4
+GLIBC_2.4 _IO_list_lock F
+GLIBC_2.4 _IO_list_resetlock F
+GLIBC_2.4 _IO_list_unlock F
+GLIBC_2.4 _IO_marker_delta F
+GLIBC_2.4 _IO_marker_difference F
+GLIBC_2.4 _IO_padn F
+GLIBC_2.4 _IO_peekc_locked F
+GLIBC_2.4 _IO_popen F
+GLIBC_2.4 _IO_printf F
+GLIBC_2.4 _IO_proc_close F
+GLIBC_2.4 _IO_proc_open F
+GLIBC_2.4 _IO_putc F
+GLIBC_2.4 _IO_puts F
+GLIBC_2.4 _IO_remove_marker F
+GLIBC_2.4 _IO_seekmark F
+GLIBC_2.4 _IO_seekoff F
+GLIBC_2.4 _IO_seekpos F
+GLIBC_2.4 _IO_seekwmark F
+GLIBC_2.4 _IO_setb F
+GLIBC_2.4 _IO_setbuffer F
+GLIBC_2.4 _IO_setvbuf F
+GLIBC_2.4 _IO_sgetn F
+GLIBC_2.4 _IO_sprintf F
+GLIBC_2.4 _IO_sputbackc F
+GLIBC_2.4 _IO_sputbackwc F
+GLIBC_2.4 _IO_sscanf F
+GLIBC_2.4 _IO_str_init_readonly F
+GLIBC_2.4 _IO_str_init_static F
+GLIBC_2.4 _IO_str_overflow F
+GLIBC_2.4 _IO_str_pbackfail F
+GLIBC_2.4 _IO_str_seekoff F
+GLIBC_2.4 _IO_str_underflow F
+GLIBC_2.4 _IO_sungetc F
+GLIBC_2.4 _IO_sungetwc F
+GLIBC_2.4 _IO_switch_to_get_mode F
+GLIBC_2.4 _IO_switch_to_main_wget_area F
+GLIBC_2.4 _IO_switch_to_wbackup_area F
+GLIBC_2.4 _IO_switch_to_wget_mode F
+GLIBC_2.4 _IO_un_link F
+GLIBC_2.4 _IO_ungetc F
+GLIBC_2.4 _IO_unsave_markers F
+GLIBC_2.4 _IO_unsave_wmarkers F
+GLIBC_2.4 _IO_vfprintf F
+GLIBC_2.4 _IO_vfscanf F
+GLIBC_2.4 _IO_vsprintf F
+GLIBC_2.4 _IO_wdefault_doallocate F
+GLIBC_2.4 _IO_wdefault_finish F
+GLIBC_2.4 _IO_wdefault_pbackfail F
+GLIBC_2.4 _IO_wdefault_uflow F
+GLIBC_2.4 _IO_wdefault_xsgetn F
+GLIBC_2.4 _IO_wdefault_xsputn F
+GLIBC_2.4 _IO_wdo_write F
+GLIBC_2.4 _IO_wdoallocbuf F
+GLIBC_2.4 _IO_wfile_jumps D 0x54
+GLIBC_2.4 _IO_wfile_overflow F
+GLIBC_2.4 _IO_wfile_seekoff F
+GLIBC_2.4 _IO_wfile_sync F
+GLIBC_2.4 _IO_wfile_underflow F
+GLIBC_2.4 _IO_wfile_xsputn F
+GLIBC_2.4 _IO_wmarker_delta F
+GLIBC_2.4 _IO_wsetb F
+GLIBC_2.4 __adjtimex F
+GLIBC_2.4 __aeabi_MB_CUR_MAX F
+GLIBC_2.4 __aeabi_assert F
+GLIBC_2.4 __aeabi_atexit F
+GLIBC_2.4 __aeabi_errno_addr F
+GLIBC_2.4 __aeabi_localeconv F
+GLIBC_2.4 __aeabi_memclr F
+GLIBC_2.4 __aeabi_memclr4 F
+GLIBC_2.4 __aeabi_memclr8 F
+GLIBC_2.4 __aeabi_memcpy F
+GLIBC_2.4 __aeabi_memcpy4 F
+GLIBC_2.4 __aeabi_memcpy8 F
+GLIBC_2.4 __aeabi_memmove F
+GLIBC_2.4 __aeabi_memmove4 F
+GLIBC_2.4 __aeabi_memmove8 F
+GLIBC_2.4 __aeabi_memset F
+GLIBC_2.4 __aeabi_memset4 F
+GLIBC_2.4 __aeabi_memset8 F
+GLIBC_2.4 __after_morecore_hook D 0x4
+GLIBC_2.4 __argz_count F
+GLIBC_2.4 __argz_next F
+GLIBC_2.4 __argz_stringify F
+GLIBC_2.4 __asprintf F
+GLIBC_2.4 __assert F
+GLIBC_2.4 __assert_fail F
+GLIBC_2.4 __assert_perror_fail F
+GLIBC_2.4 __backtrace F
+GLIBC_2.4 __backtrace_symbols F
+GLIBC_2.4 __backtrace_symbols_fd F
+GLIBC_2.4 __bsd_getpgrp F
+GLIBC_2.4 __bzero F
+GLIBC_2.4 __check_rhosts_file D 0x4
+GLIBC_2.4 __chk_fail F
+GLIBC_2.4 __clone F
+GLIBC_2.4 __close F
+GLIBC_2.4 __cmsg_nxthdr F
+GLIBC_2.4 __confstr_chk F
+GLIBC_2.4 __connect F
+GLIBC_2.4 __ctype_b_loc F
+GLIBC_2.4 __ctype_get_mb_cur_max F
+GLIBC_2.4 __ctype_tolower_loc F
+GLIBC_2.4 __ctype_toupper_loc F
+GLIBC_2.4 __curbrk D 0x4
+GLIBC_2.4 __cxa_atexit F
+GLIBC_2.4 __cxa_finalize F
+GLIBC_2.4 __cyg_profile_func_enter F
+GLIBC_2.4 __cyg_profile_func_exit F
+GLIBC_2.4 __daylight D 0x4
+GLIBC_2.4 __dcgettext F
+GLIBC_2.4 __default_morecore F
+GLIBC_2.4 __dgettext F
+GLIBC_2.4 __dup2 F
+GLIBC_2.4 __duplocale F
+GLIBC_2.4 __endmntent F
+GLIBC_2.4 __environ D 0x4
+GLIBC_2.4 __errno_location F
+GLIBC_2.4 __fbufsize F
+GLIBC_2.4 __fcntl F
+GLIBC_2.4 __ffs 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 __finite F
+GLIBC_2.4 __finitef F
+GLIBC_2.4 __finitel F
+GLIBC_2.4 __flbf F
+GLIBC_2.4 __fork F
+GLIBC_2.4 __fpending F
+GLIBC_2.4 __fprintf_chk F
+GLIBC_2.4 __fpu_control D 0x4
+GLIBC_2.4 __fpurge F
+GLIBC_2.4 __freadable F
+GLIBC_2.4 __freading F
+GLIBC_2.4 __free_hook D 0x4
+GLIBC_2.4 __freelocale F
+GLIBC_2.4 __fsetlocking F
+GLIBC_2.4 __fwprintf_chk F
+GLIBC_2.4 __fwritable F
+GLIBC_2.4 __fwriting F
+GLIBC_2.4 __fxstat F
+GLIBC_2.4 __fxstat64 F
+GLIBC_2.4 __fxstatat F
+GLIBC_2.4 __fxstatat64 F
+GLIBC_2.4 __getcwd_chk F
+GLIBC_2.4 __getdelim 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 __getmntent_r F
+GLIBC_2.4 __getpagesize F
+GLIBC_2.4 __getpgid F
+GLIBC_2.4 __getpid F
+GLIBC_2.4 __gets_chk F
+GLIBC_2.4 __gettimeofday F
+GLIBC_2.4 __getwd_chk F
+GLIBC_2.4 __gmtime_r F
+GLIBC_2.4 __gnu_Unwind_Find_exidx F
+GLIBC_2.4 __h_errno_location F
+GLIBC_2.4 __isalnum_l F
+GLIBC_2.4 __isalpha_l F
+GLIBC_2.4 __isascii_l F
+GLIBC_2.4 __isblank_l F
+GLIBC_2.4 __iscntrl_l F
+GLIBC_2.4 __isctype F
+GLIBC_2.4 __isdigit_l F
+GLIBC_2.4 __isgraph_l F
+GLIBC_2.4 __isinf F
+GLIBC_2.4 __isinff F
+GLIBC_2.4 __isinfl F
+GLIBC_2.4 __islower_l F
+GLIBC_2.4 __isnan F
+GLIBC_2.4 __isnanf F
+GLIBC_2.4 __isnanl F
+GLIBC_2.4 __isprint_l F
+GLIBC_2.4 __ispunct_l F
+GLIBC_2.4 __isspace_l F
+GLIBC_2.4 __isupper_l F
+GLIBC_2.4 __iswalnum_l F
+GLIBC_2.4 __iswalpha_l F
+GLIBC_2.4 __iswblank_l F
+GLIBC_2.4 __iswcntrl_l F
+GLIBC_2.4 __iswctype F
+GLIBC_2.4 __iswctype_l F
+GLIBC_2.4 __iswdigit_l F
+GLIBC_2.4 __iswgraph_l F
+GLIBC_2.4 __iswlower_l F
+GLIBC_2.4 __iswprint_l F
+GLIBC_2.4 __iswpunct_l F
+GLIBC_2.4 __iswspace_l F
+GLIBC_2.4 __iswupper_l F
+GLIBC_2.4 __iswxdigit_l F
+GLIBC_2.4 __isxdigit_l F
+GLIBC_2.4 __ivaliduser F
+GLIBC_2.4 __key_decryptsession_pk_LOCAL D 0x4
+GLIBC_2.4 __key_encryptsession_pk_LOCAL D 0x4
+GLIBC_2.4 __key_gendes_LOCAL D 0x4
+GLIBC_2.4 __libc_allocate_rtsig F
+GLIBC_2.4 __libc_calloc F
+GLIBC_2.4 __libc_current_sigrtmax F
+GLIBC_2.4 __libc_current_sigrtmin F
+GLIBC_2.4 __libc_free F
+GLIBC_2.4 __libc_freeres F
+GLIBC_2.4 __libc_init_first F
+GLIBC_2.4 __libc_mallinfo F
+GLIBC_2.4 __libc_malloc F
+GLIBC_2.4 __libc_mallopt F
+GLIBC_2.4 __libc_memalign F
+GLIBC_2.4 __libc_pvalloc F
+GLIBC_2.4 __libc_realloc F
+GLIBC_2.4 __libc_sa_len F
+GLIBC_2.4 __libc_start_main F
+GLIBC_2.4 __libc_valloc F
+GLIBC_2.4 __lseek F
+GLIBC_2.4 __lxstat F
+GLIBC_2.4 __lxstat64 F
+GLIBC_2.4 __malloc_hook D 0x4
+GLIBC_2.4 __malloc_initialize_hook D 0x4
+GLIBC_2.4 __mbrlen F
+GLIBC_2.4 __mbrtowc F
+GLIBC_2.4 __mbsnrtowcs_chk F
+GLIBC_2.4 __mbsrtowcs_chk F
+GLIBC_2.4 __mbstowcs_chk F
+GLIBC_2.4 __memalign_hook D 0x4
+GLIBC_2.4 __memcpy_chk F
+GLIBC_2.4 __memmove_chk F
+GLIBC_2.4 __mempcpy F
+GLIBC_2.4 __mempcpy_chk F
+GLIBC_2.4 __mempcpy_small F
+GLIBC_2.4 __memset_chk F
+GLIBC_2.4 __monstartup F
+GLIBC_2.4 __morecore D 0x4
+GLIBC_2.4 __nanosleep F
+GLIBC_2.4 __newlocale F
+GLIBC_2.4 __nl_langinfo_l F
+GLIBC_2.4 __nss_configure_lookup F
+GLIBC_2.4 __nss_database_lookup F
+GLIBC_2.4 __nss_group_lookup F
+GLIBC_2.4 __nss_hostname_digits_dots F
+GLIBC_2.4 __nss_hosts_lookup F
+GLIBC_2.4 __nss_next F
+GLIBC_2.4 __nss_passwd_lookup F
+GLIBC_2.4 __open F
+GLIBC_2.4 __open64 F
+GLIBC_2.4 __overflow F
+GLIBC_2.4 __pipe F
+GLIBC_2.4 __poll F
+GLIBC_2.4 __pread64 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 __profile_frequency F
+GLIBC_2.4 __progname D 0x4
+GLIBC_2.4 __progname_full D 0x4
+GLIBC_2.4 __ptsname_r_chk F
+GLIBC_2.4 __pwrite64 F
+GLIBC_2.4 __rawmemchr F
+GLIBC_2.4 __rcmd_errstr D 0x4
+GLIBC_2.4 __read F
+GLIBC_2.4 __read_chk F
+GLIBC_2.4 __readlink_chk F
+GLIBC_2.4 __realloc_hook D 0x4
+GLIBC_2.4 __realpath_chk F
+GLIBC_2.4 __recv_chk F
+GLIBC_2.4 __recvfrom_chk F
+GLIBC_2.4 __register_atfork F
+GLIBC_2.4 __res_init F
+GLIBC_2.4 __res_nclose F
+GLIBC_2.4 __res_ninit F
+GLIBC_2.4 __res_randomid F
+GLIBC_2.4 __res_state F
+GLIBC_2.4 __rpc_thread_createerr F
+GLIBC_2.4 __rpc_thread_svc_fdset F
+GLIBC_2.4 __rpc_thread_svc_max_pollfd F
+GLIBC_2.4 __rpc_thread_svc_pollfd F
+GLIBC_2.4 __sbrk F
+GLIBC_2.4 __sched_get_priority_max F
+GLIBC_2.4 __sched_get_priority_min F
+GLIBC_2.4 __sched_getparam F
+GLIBC_2.4 __sched_getscheduler F
+GLIBC_2.4 __sched_setscheduler F
+GLIBC_2.4 __sched_yield F
+GLIBC_2.4 __secure_getenv F
+GLIBC_2.4 __select F
+GLIBC_2.4 __send F
+GLIBC_2.4 __setmntent F
+GLIBC_2.4 __setpgid F
+GLIBC_2.4 __sigaction F
+GLIBC_2.4 __sigaddset F
+GLIBC_2.4 __sigdelset F
+GLIBC_2.4 __sigismember F
+GLIBC_2.4 __signbit F
+GLIBC_2.4 __signbitf F
+GLIBC_2.4 __sigpause F
+GLIBC_2.4 __sigsetjmp F
+GLIBC_2.4 __sigsuspend F
+GLIBC_2.4 __snprintf_chk F
+GLIBC_2.4 __sprintf_chk F
+GLIBC_2.4 __stack_chk_fail F
+GLIBC_2.4 __statfs F
+GLIBC_2.4 __stpcpy F
+GLIBC_2.4 __stpcpy_chk F
+GLIBC_2.4 __stpcpy_small F
+GLIBC_2.4 __stpncpy F
+GLIBC_2.4 __stpncpy_chk F
+GLIBC_2.4 __strcasecmp F
+GLIBC_2.4 __strcasecmp_l F
+GLIBC_2.4 __strcasestr F
+GLIBC_2.4 __strcat_chk F
+GLIBC_2.4 __strcoll_l F
+GLIBC_2.4 __strcpy_chk F
+GLIBC_2.4 __strcpy_small F
+GLIBC_2.4 __strcspn_c1 F
+GLIBC_2.4 __strcspn_c2 F
+GLIBC_2.4 __strcspn_c3 F
+GLIBC_2.4 __strdup F
+GLIBC_2.4 __strerror_r F
+GLIBC_2.4 __strfmon_l F
+GLIBC_2.4 __strftime_l F
+GLIBC_2.4 __strncasecmp_l F
+GLIBC_2.4 __strncat_chk F
+GLIBC_2.4 __strncpy_chk F
+GLIBC_2.4 __strndup F
+GLIBC_2.4 __strpbrk_c2 F
+GLIBC_2.4 __strpbrk_c3 F
+GLIBC_2.4 __strsep_1c F
+GLIBC_2.4 __strsep_2c F
+GLIBC_2.4 __strsep_3c F
+GLIBC_2.4 __strsep_g F
+GLIBC_2.4 __strspn_c1 F
+GLIBC_2.4 __strspn_c2 F
+GLIBC_2.4 __strspn_c3 F
+GLIBC_2.4 __strtod_internal F
+GLIBC_2.4 __strtod_l F
+GLIBC_2.4 __strtof_internal F
+GLIBC_2.4 __strtof_l F
+GLIBC_2.4 __strtok_r F
+GLIBC_2.4 __strtok_r_1c F
+GLIBC_2.4 __strtol_internal F
+GLIBC_2.4 __strtol_l F
+GLIBC_2.4 __strtold_internal F
+GLIBC_2.4 __strtold_l F
+GLIBC_2.4 __strtoll_internal F
+GLIBC_2.4 __strtoll_l F
+GLIBC_2.4 __strtoul_internal F
+GLIBC_2.4 __strtoul_l F
+GLIBC_2.4 __strtoull_internal F
+GLIBC_2.4 __strtoull_l F
+GLIBC_2.4 __strverscmp F
+GLIBC_2.4 __strxfrm_l F
+GLIBC_2.4 __swprintf_chk F
+GLIBC_2.4 __sysconf F
+GLIBC_2.4 __sysctl F
+GLIBC_2.4 __syslog_chk F
+GLIBC_2.4 __sysv_signal F
+GLIBC_2.4 __timezone D 0x4
+GLIBC_2.4 __toascii_l F
+GLIBC_2.4 __tolower_l F
+GLIBC_2.4 __toupper_l F
+GLIBC_2.4 __towctrans F
+GLIBC_2.4 __towctrans_l F
+GLIBC_2.4 __towlower_l F
+GLIBC_2.4 __towupper_l F
+GLIBC_2.4 __ttyname_r_chk F
+GLIBC_2.4 __tzname D 0x8
+GLIBC_2.4 __uflow F
+GLIBC_2.4 __underflow F
+GLIBC_2.4 __uselocale F
+GLIBC_2.4 __vfork 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 __wait F
+GLIBC_2.4 __waitpid F
+GLIBC_2.4 __wcpcpy_chk F
+GLIBC_2.4 __wcpncpy_chk F
+GLIBC_2.4 __wcrtomb_chk F
+GLIBC_2.4 __wcscasecmp_l F
+GLIBC_2.4 __wcscat_chk F
+GLIBC_2.4 __wcscoll_l F
+GLIBC_2.4 __wcscpy_chk F
+GLIBC_2.4 __wcsftime_l F
+GLIBC_2.4 __wcsncasecmp_l 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 __wcstod_internal F
+GLIBC_2.4 __wcstod_l F
+GLIBC_2.4 __wcstof_internal F
+GLIBC_2.4 __wcstof_l F
+GLIBC_2.4 __wcstol_internal F
+GLIBC_2.4 __wcstol_l F
+GLIBC_2.4 __wcstold_internal F
+GLIBC_2.4 __wcstold_l F
+GLIBC_2.4 __wcstoll_internal F
+GLIBC_2.4 __wcstoll_l F
+GLIBC_2.4 __wcstombs_chk F
+GLIBC_2.4 __wcstoul_internal F
+GLIBC_2.4 __wcstoul_l F
+GLIBC_2.4 __wcstoull_internal F
+GLIBC_2.4 __wcstoull_l F
+GLIBC_2.4 __wcsxfrm_l F
+GLIBC_2.4 __wctomb_chk F
+GLIBC_2.4 __wctrans_l F
+GLIBC_2.4 __wctype_l 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 __woverflow F
+GLIBC_2.4 __wprintf_chk F
+GLIBC_2.4 __write F
+GLIBC_2.4 __wuflow F
+GLIBC_2.4 __wunderflow F
+GLIBC_2.4 __xmknod F
+GLIBC_2.4 __xmknodat F
+GLIBC_2.4 __xpg_basename F
+GLIBC_2.4 __xpg_sigpause F
+GLIBC_2.4 __xpg_strerror_r F
+GLIBC_2.4 __xstat F
+GLIBC_2.4 __xstat64 F
+GLIBC_2.4 _authenticate F
+GLIBC_2.4 _dl_mcount_wrapper F
+GLIBC_2.4 _dl_mcount_wrapper_check F
+GLIBC_2.4 _environ D 0x4
+GLIBC_2.4 _exit F
+GLIBC_2.4 _flushlbf F
+GLIBC_2.4 _libc_intl_domainname D 0x5
+GLIBC_2.4 _longjmp F
+GLIBC_2.4 _mcleanup F
+GLIBC_2.4 _mcount F
+GLIBC_2.4 _nl_default_dirname D 0x12
+GLIBC_2.4 _nl_domain_bindings D 0x4
+GLIBC_2.4 _nl_msg_cat_cntr D 0x4
+GLIBC_2.4 _null_auth D 0xc
+GLIBC_2.4 _obstack_allocated_p F
+GLIBC_2.4 _obstack_begin F
+GLIBC_2.4 _obstack_begin_1 F
+GLIBC_2.4 _obstack_free F
+GLIBC_2.4 _obstack_memory_used F
+GLIBC_2.4 _obstack_newchunk F
+GLIBC_2.4 _res D 0x200
+GLIBC_2.4 _res_hconf D 0x30
+GLIBC_2.4 _rpc_dtablesize F
+GLIBC_2.4 _seterr_reply F
+GLIBC_2.4 _setjmp F
+GLIBC_2.4 _sys_errlist D 0x210
+GLIBC_2.4 _sys_nerr D 0x4
+GLIBC_2.4 _sys_siglist D 0x104
+GLIBC_2.4 _tolower F
+GLIBC_2.4 _toupper F
+GLIBC_2.4 a64l F
+GLIBC_2.4 abort F
+GLIBC_2.4 abs F
+GLIBC_2.4 accept F
+GLIBC_2.4 access F
+GLIBC_2.4 acct F
+GLIBC_2.4 addmntent F
+GLIBC_2.4 addseverity F
+GLIBC_2.4 adjtime F
+GLIBC_2.4 adjtimex F
+GLIBC_2.4 advance F
+GLIBC_2.4 alarm F
+GLIBC_2.4 alphasort F
+GLIBC_2.4 alphasort64 F
+GLIBC_2.4 argp_err_exit_status D 0x4
+GLIBC_2.4 argp_error F
+GLIBC_2.4 argp_failure F
+GLIBC_2.4 argp_help F
+GLIBC_2.4 argp_parse F
+GLIBC_2.4 argp_program_bug_address D 0x4
+GLIBC_2.4 argp_program_version D 0x4
+GLIBC_2.4 argp_program_version_hook D 0x4
+GLIBC_2.4 argp_state_help F
+GLIBC_2.4 argp_usage F
+GLIBC_2.4 argz_add F
+GLIBC_2.4 argz_add_sep F
+GLIBC_2.4 argz_append F
+GLIBC_2.4 argz_count F
+GLIBC_2.4 argz_create F
+GLIBC_2.4 argz_create_sep F
+GLIBC_2.4 argz_delete F
+GLIBC_2.4 argz_extract F
+GLIBC_2.4 argz_insert F
+GLIBC_2.4 argz_next F
+GLIBC_2.4 argz_replace F
+GLIBC_2.4 argz_stringify F
+GLIBC_2.4 asctime F
+GLIBC_2.4 asctime_r F
+GLIBC_2.4 asprintf F
+GLIBC_2.4 atof F
+GLIBC_2.4 atoi F
+GLIBC_2.4 atol F
+GLIBC_2.4 atoll F
+GLIBC_2.4 authdes_create F
+GLIBC_2.4 authdes_getucred F
+GLIBC_2.4 authdes_pk_create F
+GLIBC_2.4 authnone_create F
+GLIBC_2.4 authunix_create F
+GLIBC_2.4 authunix_create_default F
+GLIBC_2.4 backtrace F
+GLIBC_2.4 backtrace_symbols F
+GLIBC_2.4 backtrace_symbols_fd F
+GLIBC_2.4 basename F
+GLIBC_2.4 bcmp F
+GLIBC_2.4 bcopy F
+GLIBC_2.4 bdflush F
+GLIBC_2.4 bind F
+GLIBC_2.4 bind_textdomain_codeset F
+GLIBC_2.4 bindresvport F
+GLIBC_2.4 bindtextdomain F
+GLIBC_2.4 brk F
+GLIBC_2.4 bsd_signal F
+GLIBC_2.4 bsearch F
+GLIBC_2.4 btowc F
+GLIBC_2.4 bzero F
+GLIBC_2.4 calloc F
+GLIBC_2.4 callrpc F
+GLIBC_2.4 canonicalize_file_name F
+GLIBC_2.4 capget F
+GLIBC_2.4 capset F
+GLIBC_2.4 catclose F
+GLIBC_2.4 catgets F
+GLIBC_2.4 catopen F
+GLIBC_2.4 cbc_crypt F
+GLIBC_2.4 cfgetispeed F
+GLIBC_2.4 cfgetospeed F
+GLIBC_2.4 cfmakeraw F
+GLIBC_2.4 cfree F
+GLIBC_2.4 cfsetispeed F
+GLIBC_2.4 cfsetospeed F
+GLIBC_2.4 cfsetspeed F
+GLIBC_2.4 chdir F
+GLIBC_2.4 chflags F
+GLIBC_2.4 chmod F
+GLIBC_2.4 chown F
+GLIBC_2.4 chroot F
+GLIBC_2.4 clearenv F
+GLIBC_2.4 clearerr F
+GLIBC_2.4 clearerr_unlocked F
+GLIBC_2.4 clnt_broadcast F
+GLIBC_2.4 clnt_create F
+GLIBC_2.4 clnt_pcreateerror F
+GLIBC_2.4 clnt_perrno F
+GLIBC_2.4 clnt_perror F
+GLIBC_2.4 clnt_spcreateerror F
+GLIBC_2.4 clnt_sperrno F
+GLIBC_2.4 clnt_sperror F
+GLIBC_2.4 clntraw_create F
+GLIBC_2.4 clnttcp_create F
+GLIBC_2.4 clntudp_bufcreate F
+GLIBC_2.4 clntudp_create F
+GLIBC_2.4 clntunix_create F
+GLIBC_2.4 clock F
+GLIBC_2.4 clone F
+GLIBC_2.4 close F
+GLIBC_2.4 closedir F
+GLIBC_2.4 closelog F
+GLIBC_2.4 confstr F
+GLIBC_2.4 connect F
+GLIBC_2.4 copysign F
+GLIBC_2.4 copysignf F
+GLIBC_2.4 copysignl F
+GLIBC_2.4 creat F
+GLIBC_2.4 creat64 F
+GLIBC_2.4 create_module F
+GLIBC_2.4 ctermid F
+GLIBC_2.4 ctime F
+GLIBC_2.4 ctime_r F
+GLIBC_2.4 cuserid F
+GLIBC_2.4 daemon F
+GLIBC_2.4 daylight D 0x4
+GLIBC_2.4 dcgettext F
+GLIBC_2.4 dcngettext F
+GLIBC_2.4 delete_module F
+GLIBC_2.4 des_setparity F
+GLIBC_2.4 dgettext F
+GLIBC_2.4 difftime F
+GLIBC_2.4 dirfd F
+GLIBC_2.4 dirname F
+GLIBC_2.4 div F
+GLIBC_2.4 dl_iterate_phdr F
+GLIBC_2.4 dngettext F
+GLIBC_2.4 dprintf F
+GLIBC_2.4 drand48 F
+GLIBC_2.4 drand48_r F
+GLIBC_2.4 dup F
+GLIBC_2.4 dup2 F
+GLIBC_2.4 duplocale F
+GLIBC_2.4 dysize F
+GLIBC_2.4 eaccess F
+GLIBC_2.4 ecb_crypt F
+GLIBC_2.4 ecvt F
+GLIBC_2.4 ecvt_r F
+GLIBC_2.4 endaliasent F
+GLIBC_2.4 endfsent F
+GLIBC_2.4 endgrent F
+GLIBC_2.4 endhostent F
+GLIBC_2.4 endmntent F
+GLIBC_2.4 endnetent F
+GLIBC_2.4 endnetgrent F
+GLIBC_2.4 endprotoent F
+GLIBC_2.4 endpwent F
+GLIBC_2.4 endrpcent F
+GLIBC_2.4 endservent F
+GLIBC_2.4 endspent F
+GLIBC_2.4 endttyent F
+GLIBC_2.4 endusershell F
+GLIBC_2.4 endutent F
+GLIBC_2.4 endutxent F
+GLIBC_2.4 environ D 0x4
+GLIBC_2.4 envz_add F
+GLIBC_2.4 envz_entry F
+GLIBC_2.4 envz_get F
+GLIBC_2.4 envz_merge F
+GLIBC_2.4 envz_remove F
+GLIBC_2.4 envz_strip F
+GLIBC_2.4 epoll_create F
+GLIBC_2.4 epoll_ctl F
+GLIBC_2.4 epoll_wait F
+GLIBC_2.4 erand48 F
+GLIBC_2.4 erand48_r F
+GLIBC_2.4 err F
+GLIBC_2.4 error F
+GLIBC_2.4 error_at_line F
+GLIBC_2.4 error_message_count D 0x4
+GLIBC_2.4 error_one_per_line D 0x4
+GLIBC_2.4 error_print_progname D 0x4
+GLIBC_2.4 errx F
+GLIBC_2.4 ether_aton F
+GLIBC_2.4 ether_aton_r F
+GLIBC_2.4 ether_hostton F
+GLIBC_2.4 ether_line F
+GLIBC_2.4 ether_ntoa F
+GLIBC_2.4 ether_ntoa_r F
+GLIBC_2.4 ether_ntohost F
+GLIBC_2.4 euidaccess F
+GLIBC_2.4 execl F
+GLIBC_2.4 execle F
+GLIBC_2.4 execlp F
+GLIBC_2.4 execv F
+GLIBC_2.4 execve F
+GLIBC_2.4 execvp F
+GLIBC_2.4 exit F
+GLIBC_2.4 faccessat F
+GLIBC_2.4 fattach F
+GLIBC_2.4 fchdir F
+GLIBC_2.4 fchflags F
+GLIBC_2.4 fchmod F
+GLIBC_2.4 fchmodat F
+GLIBC_2.4 fchown F
+GLIBC_2.4 fchownat F
+GLIBC_2.4 fclose F
+GLIBC_2.4 fcloseall F
+GLIBC_2.4 fcntl F
+GLIBC_2.4 fcvt F
+GLIBC_2.4 fcvt_r F
+GLIBC_2.4 fdatasync F
+GLIBC_2.4 fdetach F
+GLIBC_2.4 fdopen F
+GLIBC_2.4 fdopendir F
+GLIBC_2.4 feof F
+GLIBC_2.4 feof_unlocked F
+GLIBC_2.4 ferror F
+GLIBC_2.4 ferror_unlocked F
+GLIBC_2.4 fexecve F
+GLIBC_2.4 fflush F
+GLIBC_2.4 fflush_unlocked F
+GLIBC_2.4 ffs F
+GLIBC_2.4 ffsl F
+GLIBC_2.4 ffsll F
+GLIBC_2.4 fgetc F
+GLIBC_2.4 fgetc_unlocked F
+GLIBC_2.4 fgetgrent F
+GLIBC_2.4 fgetgrent_r F
+GLIBC_2.4 fgetpos F
+GLIBC_2.4 fgetpos64 F
+GLIBC_2.4 fgetpwent F
+GLIBC_2.4 fgetpwent_r F
+GLIBC_2.4 fgets F
+GLIBC_2.4 fgets_unlocked F
+GLIBC_2.4 fgetspent F
+GLIBC_2.4 fgetspent_r F
+GLIBC_2.4 fgetwc F
+GLIBC_2.4 fgetwc_unlocked F
+GLIBC_2.4 fgetws F
+GLIBC_2.4 fgetws_unlocked F
+GLIBC_2.4 fgetxattr F
+GLIBC_2.4 fileno F
+GLIBC_2.4 fileno_unlocked F
+GLIBC_2.4 finite F
+GLIBC_2.4 finitef F
+GLIBC_2.4 finitel F
+GLIBC_2.4 flistxattr F
+GLIBC_2.4 flock F
+GLIBC_2.4 flockfile F
+GLIBC_2.4 fmemopen F
+GLIBC_2.4 fmtmsg F
+GLIBC_2.4 fnmatch F
+GLIBC_2.4 fopen F
+GLIBC_2.4 fopen64 F
+GLIBC_2.4 fopencookie F
+GLIBC_2.4 fork F
+GLIBC_2.4 fpathconf F
+GLIBC_2.4 fprintf F
+GLIBC_2.4 fputc F
+GLIBC_2.4 fputc_unlocked F
+GLIBC_2.4 fputs F
+GLIBC_2.4 fputs_unlocked F
+GLIBC_2.4 fputwc F
+GLIBC_2.4 fputwc_unlocked F
+GLIBC_2.4 fputws F
+GLIBC_2.4 fputws_unlocked F
+GLIBC_2.4 fread F
+GLIBC_2.4 fread_unlocked F
+GLIBC_2.4 free F
+GLIBC_2.4 freeaddrinfo F
+GLIBC_2.4 freeifaddrs F
+GLIBC_2.4 freelocale F
+GLIBC_2.4 fremovexattr F
+GLIBC_2.4 freopen F
+GLIBC_2.4 freopen64 F
+GLIBC_2.4 frexp F
+GLIBC_2.4 frexpf F
+GLIBC_2.4 frexpl F
+GLIBC_2.4 fscanf F
+GLIBC_2.4 fseek F
+GLIBC_2.4 fseeko F
+GLIBC_2.4 fseeko64 F
+GLIBC_2.4 fsetpos F
+GLIBC_2.4 fsetpos64 F
+GLIBC_2.4 fsetxattr F
+GLIBC_2.4 fstatfs F
+GLIBC_2.4 fstatfs64 F
+GLIBC_2.4 fstatvfs F
+GLIBC_2.4 fstatvfs64 F
+GLIBC_2.4 fsync F
+GLIBC_2.4 ftell F
+GLIBC_2.4 ftello F
+GLIBC_2.4 ftello64 F
+GLIBC_2.4 ftime F
+GLIBC_2.4 ftok F
+GLIBC_2.4 ftruncate F
+GLIBC_2.4 ftruncate64 F
+GLIBC_2.4 ftrylockfile F
+GLIBC_2.4 fts_children F
+GLIBC_2.4 fts_close F
+GLIBC_2.4 fts_open F
+GLIBC_2.4 fts_read F
+GLIBC_2.4 fts_set F
+GLIBC_2.4 ftw F
+GLIBC_2.4 ftw64 F
+GLIBC_2.4 funlockfile F
+GLIBC_2.4 futimes F
+GLIBC_2.4 futimesat F
+GLIBC_2.4 fwide F
+GLIBC_2.4 fwprintf F
+GLIBC_2.4 fwrite F
+GLIBC_2.4 fwrite_unlocked F
+GLIBC_2.4 fwscanf F
+GLIBC_2.4 gai_strerror F
+GLIBC_2.4 gcvt F
+GLIBC_2.4 get_avphys_pages F
+GLIBC_2.4 get_current_dir_name F
+GLIBC_2.4 get_kernel_syms F
+GLIBC_2.4 get_myaddress F
+GLIBC_2.4 get_nprocs F
+GLIBC_2.4 get_nprocs_conf F
+GLIBC_2.4 get_phys_pages F
+GLIBC_2.4 getaddrinfo F
+GLIBC_2.4 getaliasbyname F
+GLIBC_2.4 getaliasbyname_r F
+GLIBC_2.4 getaliasent F
+GLIBC_2.4 getaliasent_r F
+GLIBC_2.4 getc F
+GLIBC_2.4 getc_unlocked F
+GLIBC_2.4 getchar F
+GLIBC_2.4 getchar_unlocked F
+GLIBC_2.4 getcontext F
+GLIBC_2.4 getcwd F
+GLIBC_2.4 getdate F
+GLIBC_2.4 getdate_err D 0x4
+GLIBC_2.4 getdate_r F
+GLIBC_2.4 getdelim F
+GLIBC_2.4 getdirentries F
+GLIBC_2.4 getdirentries64 F
+GLIBC_2.4 getdomainname F
+GLIBC_2.4 getdtablesize F
+GLIBC_2.4 getegid F
+GLIBC_2.4 getenv F
+GLIBC_2.4 geteuid F
+GLIBC_2.4 getfsent F
+GLIBC_2.4 getfsfile F
+GLIBC_2.4 getfsspec F
+GLIBC_2.4 getgid F
+GLIBC_2.4 getgrent F
+GLIBC_2.4 getgrent_r F
+GLIBC_2.4 getgrgid F
+GLIBC_2.4 getgrgid_r F
+GLIBC_2.4 getgrnam F
+GLIBC_2.4 getgrnam_r F
+GLIBC_2.4 getgrouplist F
+GLIBC_2.4 getgroups F
+GLIBC_2.4 gethostbyaddr F
+GLIBC_2.4 gethostbyaddr_r F
+GLIBC_2.4 gethostbyname F
+GLIBC_2.4 gethostbyname2 F
+GLIBC_2.4 gethostbyname2_r F
+GLIBC_2.4 gethostbyname_r F
+GLIBC_2.4 gethostent F
+GLIBC_2.4 gethostent_r F
+GLIBC_2.4 gethostid F
+GLIBC_2.4 gethostname F
+GLIBC_2.4 getifaddrs F
+GLIBC_2.4 getipv4sourcefilter F
+GLIBC_2.4 getitimer F
+GLIBC_2.4 getline F
+GLIBC_2.4 getloadavg F
+GLIBC_2.4 getlogin F
+GLIBC_2.4 getlogin_r F
+GLIBC_2.4 getmntent F
+GLIBC_2.4 getmntent_r F
+GLIBC_2.4 getmsg F
+GLIBC_2.4 getnameinfo F
+GLIBC_2.4 getnetbyaddr F
+GLIBC_2.4 getnetbyaddr_r F
+GLIBC_2.4 getnetbyname F
+GLIBC_2.4 getnetbyname_r F
+GLIBC_2.4 getnetent F
+GLIBC_2.4 getnetent_r F
+GLIBC_2.4 getnetgrent F
+GLIBC_2.4 getnetgrent_r F
+GLIBC_2.4 getnetname F
+GLIBC_2.4 getopt F
+GLIBC_2.4 getopt_long F
+GLIBC_2.4 getopt_long_only F
+GLIBC_2.4 getpagesize F
+GLIBC_2.4 getpass F
+GLIBC_2.4 getpeername F
+GLIBC_2.4 getpgid F
+GLIBC_2.4 getpgrp F
+GLIBC_2.4 getpid F
+GLIBC_2.4 getpmsg F
+GLIBC_2.4 getppid F
+GLIBC_2.4 getpriority F
+GLIBC_2.4 getprotobyname F
+GLIBC_2.4 getprotobyname_r F
+GLIBC_2.4 getprotobynumber F
+GLIBC_2.4 getprotobynumber_r F
+GLIBC_2.4 getprotoent F
+GLIBC_2.4 getprotoent_r F
+GLIBC_2.4 getpt F
+GLIBC_2.4 getpublickey F
+GLIBC_2.4 getpw F
+GLIBC_2.4 getpwent F
+GLIBC_2.4 getpwent_r F
+GLIBC_2.4 getpwnam F
+GLIBC_2.4 getpwnam_r F
+GLIBC_2.4 getpwuid F
+GLIBC_2.4 getpwuid_r F
+GLIBC_2.4 getresgid F
+GLIBC_2.4 getresuid F
+GLIBC_2.4 getrlimit F
+GLIBC_2.4 getrlimit64 F
+GLIBC_2.4 getrpcbyname F
+GLIBC_2.4 getrpcbyname_r F
+GLIBC_2.4 getrpcbynumber F
+GLIBC_2.4 getrpcbynumber_r F
+GLIBC_2.4 getrpcent F
+GLIBC_2.4 getrpcent_r F
+GLIBC_2.4 getrpcport F
+GLIBC_2.4 getrusage F
+GLIBC_2.4 gets F
+GLIBC_2.4 getsecretkey F
+GLIBC_2.4 getservbyname F
+GLIBC_2.4 getservbyname_r F
+GLIBC_2.4 getservbyport F
+GLIBC_2.4 getservbyport_r F
+GLIBC_2.4 getservent F
+GLIBC_2.4 getservent_r F
+GLIBC_2.4 getsid F
+GLIBC_2.4 getsockname F
+GLIBC_2.4 getsockopt F
+GLIBC_2.4 getsourcefilter F
+GLIBC_2.4 getspent F
+GLIBC_2.4 getspent_r F
+GLIBC_2.4 getspnam F
+GLIBC_2.4 getspnam_r F
+GLIBC_2.4 getsubopt F
+GLIBC_2.4 gettext F
+GLIBC_2.4 gettimeofday F
+GLIBC_2.4 getttyent F
+GLIBC_2.4 getttynam F
+GLIBC_2.4 getuid F
+GLIBC_2.4 getusershell F
+GLIBC_2.4 getutent F
+GLIBC_2.4 getutent_r F
+GLIBC_2.4 getutid F
+GLIBC_2.4 getutid_r F
+GLIBC_2.4 getutline F
+GLIBC_2.4 getutline_r F
+GLIBC_2.4 getutmp F
+GLIBC_2.4 getutmpx F
+GLIBC_2.4 getutxent F
+GLIBC_2.4 getutxid F
+GLIBC_2.4 getutxline F
+GLIBC_2.4 getw F
+GLIBC_2.4 getwc F
+GLIBC_2.4 getwc_unlocked F
+GLIBC_2.4 getwchar F
+GLIBC_2.4 getwchar_unlocked F
+GLIBC_2.4 getwd F
+GLIBC_2.4 getxattr F
+GLIBC_2.4 glob F
+GLIBC_2.4 glob64 F
+GLIBC_2.4 glob_pattern_p F
+GLIBC_2.4 globfree F
+GLIBC_2.4 globfree64 F
+GLIBC_2.4 gmtime F
+GLIBC_2.4 gmtime_r F
+GLIBC_2.4 gnu_dev_major F
+GLIBC_2.4 gnu_dev_makedev F
+GLIBC_2.4 gnu_dev_minor F
+GLIBC_2.4 gnu_get_libc_release F
+GLIBC_2.4 gnu_get_libc_version F
+GLIBC_2.4 grantpt F
+GLIBC_2.4 group_member F
+GLIBC_2.4 gsignal F
+GLIBC_2.4 gtty F
+GLIBC_2.4 h_errlist D 0x14
+GLIBC_2.4 h_nerr D 0x4
+GLIBC_2.4 hasmntopt F
+GLIBC_2.4 hcreate F
+GLIBC_2.4 hcreate_r F
+GLIBC_2.4 hdestroy F
+GLIBC_2.4 hdestroy_r F
+GLIBC_2.4 herror F
+GLIBC_2.4 host2netname F
+GLIBC_2.4 hsearch F
+GLIBC_2.4 hsearch_r F
+GLIBC_2.4 hstrerror F
+GLIBC_2.4 htonl F
+GLIBC_2.4 htons F
+GLIBC_2.4 iconv F
+GLIBC_2.4 iconv_close F
+GLIBC_2.4 iconv_open F
+GLIBC_2.4 if_freenameindex F
+GLIBC_2.4 if_indextoname F
+GLIBC_2.4 if_nameindex F
+GLIBC_2.4 if_nametoindex F
+GLIBC_2.4 imaxabs F
+GLIBC_2.4 imaxdiv F
+GLIBC_2.4 in6addr_any D 0x10
+GLIBC_2.4 in6addr_loopback D 0x10
+GLIBC_2.4 inb F
+GLIBC_2.4 index F
+GLIBC_2.4 inet6_option_alloc F
+GLIBC_2.4 inet6_option_append F
+GLIBC_2.4 inet6_option_find F
+GLIBC_2.4 inet6_option_init F
+GLIBC_2.4 inet6_option_next F
+GLIBC_2.4 inet6_option_space F
+GLIBC_2.4 inet_addr F
+GLIBC_2.4 inet_aton F
+GLIBC_2.4 inet_lnaof F
+GLIBC_2.4 inet_makeaddr F
+GLIBC_2.4 inet_netof F
+GLIBC_2.4 inet_network F
+GLIBC_2.4 inet_nsap_addr F
+GLIBC_2.4 inet_nsap_ntoa F
+GLIBC_2.4 inet_ntoa F
+GLIBC_2.4 inet_ntop F
+GLIBC_2.4 inet_pton F
+GLIBC_2.4 init_module F
+GLIBC_2.4 initgroups F
+GLIBC_2.4 initstate F
+GLIBC_2.4 initstate_r F
+GLIBC_2.4 inl F
+GLIBC_2.4 innetgr F
+GLIBC_2.4 inotify_add_watch F
+GLIBC_2.4 inotify_init F
+GLIBC_2.4 inotify_rm_watch F
+GLIBC_2.4 insque F
+GLIBC_2.4 inw F
+GLIBC_2.4 ioctl F
+GLIBC_2.4 ioperm F
+GLIBC_2.4 iopl F
+GLIBC_2.4 iruserok F
+GLIBC_2.4 iruserok_af F
+GLIBC_2.4 isalnum F
+GLIBC_2.4 isalnum_l F
+GLIBC_2.4 isalpha F
+GLIBC_2.4 isalpha_l F
+GLIBC_2.4 isascii F
+GLIBC_2.4 isastream F
+GLIBC_2.4 isatty F
+GLIBC_2.4 isblank F
+GLIBC_2.4 isblank_l F
+GLIBC_2.4 iscntrl F
+GLIBC_2.4 iscntrl_l F
+GLIBC_2.4 isctype F
+GLIBC_2.4 isdigit F
+GLIBC_2.4 isdigit_l F
+GLIBC_2.4 isfdtype F
+GLIBC_2.4 isgraph F
+GLIBC_2.4 isgraph_l F
+GLIBC_2.4 isinf F
+GLIBC_2.4 isinff F
+GLIBC_2.4 isinfl F
+GLIBC_2.4 islower F
+GLIBC_2.4 islower_l F
+GLIBC_2.4 isnan F
+GLIBC_2.4 isnanf F
+GLIBC_2.4 isnanl F
+GLIBC_2.4 isprint F
+GLIBC_2.4 isprint_l F
+GLIBC_2.4 ispunct F
+GLIBC_2.4 ispunct_l F
+GLIBC_2.4 isspace F
+GLIBC_2.4 isspace_l F
+GLIBC_2.4 isupper F
+GLIBC_2.4 isupper_l F
+GLIBC_2.4 iswalnum F
+GLIBC_2.4 iswalnum_l F
+GLIBC_2.4 iswalpha F
+GLIBC_2.4 iswalpha_l F
+GLIBC_2.4 iswblank F
+GLIBC_2.4 iswblank_l F
+GLIBC_2.4 iswcntrl F
+GLIBC_2.4 iswcntrl_l F
+GLIBC_2.4 iswctype F
+GLIBC_2.4 iswctype_l F
+GLIBC_2.4 iswdigit F
+GLIBC_2.4 iswdigit_l F
+GLIBC_2.4 iswgraph F
+GLIBC_2.4 iswgraph_l F
+GLIBC_2.4 iswlower F
+GLIBC_2.4 iswlower_l F
+GLIBC_2.4 iswprint F
+GLIBC_2.4 iswprint_l F
+GLIBC_2.4 iswpunct F
+GLIBC_2.4 iswpunct_l F
+GLIBC_2.4 iswspace F
+GLIBC_2.4 iswspace_l F
+GLIBC_2.4 iswupper F
+GLIBC_2.4 iswupper_l F
+GLIBC_2.4 iswxdigit F
+GLIBC_2.4 iswxdigit_l F
+GLIBC_2.4 isxdigit F
+GLIBC_2.4 isxdigit_l F
+GLIBC_2.4 jrand48 F
+GLIBC_2.4 jrand48_r F
+GLIBC_2.4 key_decryptsession F
+GLIBC_2.4 key_decryptsession_pk F
+GLIBC_2.4 key_encryptsession F
+GLIBC_2.4 key_encryptsession_pk F
+GLIBC_2.4 key_gendes F
+GLIBC_2.4 key_get_conv F
+GLIBC_2.4 key_secretkey_is_set F
+GLIBC_2.4 key_setnet F
+GLIBC_2.4 key_setsecret F
+GLIBC_2.4 kill F
+GLIBC_2.4 killpg F
+GLIBC_2.4 klogctl F
+GLIBC_2.4 l64a F
+GLIBC_2.4 labs F
+GLIBC_2.4 lchmod F
+GLIBC_2.4 lchown F
+GLIBC_2.4 lckpwdf F
+GLIBC_2.4 lcong48 F
+GLIBC_2.4 lcong48_r F
+GLIBC_2.4 ldexp F
+GLIBC_2.4 ldexpf F
+GLIBC_2.4 ldexpl F
+GLIBC_2.4 ldiv F
+GLIBC_2.4 lfind F
+GLIBC_2.4 lgetxattr F
+GLIBC_2.4 link F
+GLIBC_2.4 linkat F
+GLIBC_2.4 listen F
+GLIBC_2.4 listxattr F
+GLIBC_2.4 llabs F
+GLIBC_2.4 lldiv F
+GLIBC_2.4 llistxattr F
+GLIBC_2.4 llseek F
+GLIBC_2.4 loc1 D 0x4
+GLIBC_2.4 loc2 D 0x4
+GLIBC_2.4 localeconv F
+GLIBC_2.4 localtime F
+GLIBC_2.4 localtime_r F
+GLIBC_2.4 lockf F
+GLIBC_2.4 lockf64 F
+GLIBC_2.4 locs D 0x4
+GLIBC_2.4 longjmp F
+GLIBC_2.4 lrand48 F
+GLIBC_2.4 lrand48_r F
+GLIBC_2.4 lremovexattr F
+GLIBC_2.4 lsearch F
+GLIBC_2.4 lseek F
+GLIBC_2.4 lseek64 F
+GLIBC_2.4 lsetxattr F
+GLIBC_2.4 lutimes F
+GLIBC_2.4 madvise F
+GLIBC_2.4 makecontext F
+GLIBC_2.4 mallinfo F
+GLIBC_2.4 malloc F
+GLIBC_2.4 malloc_get_state F
+GLIBC_2.4 malloc_set_state F
+GLIBC_2.4 malloc_stats F
+GLIBC_2.4 malloc_trim F
+GLIBC_2.4 malloc_usable_size F
+GLIBC_2.4 mallopt F
+GLIBC_2.4 mallwatch D 0x4
+GLIBC_2.4 mblen F
+GLIBC_2.4 mbrlen F
+GLIBC_2.4 mbrtowc F
+GLIBC_2.4 mbsinit F
+GLIBC_2.4 mbsnrtowcs F
+GLIBC_2.4 mbsrtowcs F
+GLIBC_2.4 mbstowcs F
+GLIBC_2.4 mbtowc F
+GLIBC_2.4 mcheck F
+GLIBC_2.4 mcheck_check_all F
+GLIBC_2.4 mcheck_pedantic F
+GLIBC_2.4 mcount F
+GLIBC_2.4 memalign F
+GLIBC_2.4 memccpy F
+GLIBC_2.4 memchr F
+GLIBC_2.4 memcmp F
+GLIBC_2.4 memcpy F
+GLIBC_2.4 memfrob F
+GLIBC_2.4 memmem F
+GLIBC_2.4 memmove F
+GLIBC_2.4 mempcpy F
+GLIBC_2.4 memrchr F
+GLIBC_2.4 memset F
+GLIBC_2.4 mincore F
+GLIBC_2.4 mkdir F
+GLIBC_2.4 mkdirat F
+GLIBC_2.4 mkdtemp F
+GLIBC_2.4 mkfifo F
+GLIBC_2.4 mkfifoat F
+GLIBC_2.4 mkstemp F
+GLIBC_2.4 mkstemp64 F
+GLIBC_2.4 mktemp F
+GLIBC_2.4 mktime F
+GLIBC_2.4 mlock F
+GLIBC_2.4 mlockall F
+GLIBC_2.4 mmap F
+GLIBC_2.4 mmap64 F
+GLIBC_2.4 modf F
+GLIBC_2.4 modff F
+GLIBC_2.4 modfl F
+GLIBC_2.4 moncontrol F
+GLIBC_2.4 monstartup F
+GLIBC_2.4 mount F
+GLIBC_2.4 mprobe F
+GLIBC_2.4 mprotect F
+GLIBC_2.4 mrand48 F
+GLIBC_2.4 mrand48_r F
+GLIBC_2.4 mremap F
+GLIBC_2.4 msgctl F
+GLIBC_2.4 msgget F
+GLIBC_2.4 msgrcv F
+GLIBC_2.4 msgsnd F
+GLIBC_2.4 msync F
+GLIBC_2.4 mtrace F
+GLIBC_2.4 munlock F
+GLIBC_2.4 munlockall F
+GLIBC_2.4 munmap F
+GLIBC_2.4 muntrace F
+GLIBC_2.4 nanosleep F
+GLIBC_2.4 netname2host F
+GLIBC_2.4 netname2user F
+GLIBC_2.4 newlocale F
+GLIBC_2.4 nfsservctl F
+GLIBC_2.4 nftw F
+GLIBC_2.4 nftw64 F
+GLIBC_2.4 ngettext F
+GLIBC_2.4 nice F
+GLIBC_2.4 nl_langinfo F
+GLIBC_2.4 nl_langinfo_l F
+GLIBC_2.4 nrand48 F
+GLIBC_2.4 nrand48_r F
+GLIBC_2.4 ntohl F
+GLIBC_2.4 ntohs F
+GLIBC_2.4 ntp_adjtime F
+GLIBC_2.4 ntp_gettime F
+GLIBC_2.4 obstack_alloc_failed_handler D 0x4
+GLIBC_2.4 obstack_exit_failure D 0x4
+GLIBC_2.4 obstack_free F
+GLIBC_2.4 obstack_printf F
+GLIBC_2.4 obstack_vprintf F
+GLIBC_2.4 on_exit F
+GLIBC_2.4 open F
+GLIBC_2.4 open64 F
+GLIBC_2.4 open_memstream F
+GLIBC_2.4 open_wmemstream F
+GLIBC_2.4 openat F
+GLIBC_2.4 openat64 F
+GLIBC_2.4 opendir F
+GLIBC_2.4 openlog F
+GLIBC_2.4 optarg D 0x4
+GLIBC_2.4 opterr D 0x4
+GLIBC_2.4 optind D 0x4
+GLIBC_2.4 optopt D 0x4
+GLIBC_2.4 outb F
+GLIBC_2.4 outl F
+GLIBC_2.4 outw F
+GLIBC_2.4 parse_printf_format F
+GLIBC_2.4 passwd2des F
+GLIBC_2.4 pathconf F
+GLIBC_2.4 pause F
+GLIBC_2.4 pclose F
+GLIBC_2.4 perror F
+GLIBC_2.4 personality F
+GLIBC_2.4 pipe F
+GLIBC_2.4 pivot_root F
+GLIBC_2.4 pmap_getmaps F
+GLIBC_2.4 pmap_getport F
+GLIBC_2.4 pmap_rmtcall F
+GLIBC_2.4 pmap_set F
+GLIBC_2.4 pmap_unset F
+GLIBC_2.4 poll F
+GLIBC_2.4 popen F
+GLIBC_2.4 posix_fadvise F
+GLIBC_2.4 posix_fadvise64 F
+GLIBC_2.4 posix_fallocate F
+GLIBC_2.4 posix_fallocate64 F
+GLIBC_2.4 posix_madvise F
+GLIBC_2.4 posix_memalign F
+GLIBC_2.4 posix_openpt F
+GLIBC_2.4 posix_spawn F
+GLIBC_2.4 posix_spawn_file_actions_addclose F
+GLIBC_2.4 posix_spawn_file_actions_adddup2 F
+GLIBC_2.4 posix_spawn_file_actions_addopen F
+GLIBC_2.4 posix_spawn_file_actions_destroy F
+GLIBC_2.4 posix_spawn_file_actions_init F
+GLIBC_2.4 posix_spawnattr_destroy F
+GLIBC_2.4 posix_spawnattr_getflags F
+GLIBC_2.4 posix_spawnattr_getpgroup F
+GLIBC_2.4 posix_spawnattr_getschedparam F
+GLIBC_2.4 posix_spawnattr_getschedpolicy F
+GLIBC_2.4 posix_spawnattr_getsigdefault F
+GLIBC_2.4 posix_spawnattr_getsigmask F
+GLIBC_2.4 posix_spawnattr_init F
+GLIBC_2.4 posix_spawnattr_setflags F
+GLIBC_2.4 posix_spawnattr_setpgroup F
+GLIBC_2.4 posix_spawnattr_setschedparam F
+GLIBC_2.4 posix_spawnattr_setschedpolicy F
+GLIBC_2.4 posix_spawnattr_setsigdefault F
+GLIBC_2.4 posix_spawnattr_setsigmask F
+GLIBC_2.4 posix_spawnp F
+GLIBC_2.4 ppoll F
+GLIBC_2.4 prctl F
+GLIBC_2.4 pread F
+GLIBC_2.4 pread64 F
+GLIBC_2.4 printf F
+GLIBC_2.4 printf_size F
+GLIBC_2.4 printf_size_info F
+GLIBC_2.4 profil F
+GLIBC_2.4 profil_counter F
+GLIBC_2.4 program_invocation_name D 0x4
+GLIBC_2.4 program_invocation_short_name D 0x4
+GLIBC_2.4 pselect F
+GLIBC_2.4 psignal F
+GLIBC_2.4 pthread_attr_destroy F
+GLIBC_2.4 pthread_attr_getdetachstate F
+GLIBC_2.4 pthread_attr_getinheritsched F
+GLIBC_2.4 pthread_attr_getschedparam F
+GLIBC_2.4 pthread_attr_getschedpolicy F
+GLIBC_2.4 pthread_attr_getscope F
+GLIBC_2.4 pthread_attr_init F
+GLIBC_2.4 pthread_attr_setdetachstate F
+GLIBC_2.4 pthread_attr_setinheritsched F
+GLIBC_2.4 pthread_attr_setschedparam F
+GLIBC_2.4 pthread_attr_setschedpolicy F
+GLIBC_2.4 pthread_attr_setscope F
+GLIBC_2.4 pthread_cond_broadcast F
+GLIBC_2.4 pthread_cond_destroy F
+GLIBC_2.4 pthread_cond_init F
+GLIBC_2.4 pthread_cond_signal F
+GLIBC_2.4 pthread_cond_timedwait F
+GLIBC_2.4 pthread_cond_wait F
+GLIBC_2.4 pthread_condattr_destroy F
+GLIBC_2.4 pthread_condattr_init F
+GLIBC_2.4 pthread_equal F
+GLIBC_2.4 pthread_exit F
+GLIBC_2.4 pthread_getschedparam F
+GLIBC_2.4 pthread_mutex_destroy F
+GLIBC_2.4 pthread_mutex_init F
+GLIBC_2.4 pthread_mutex_lock F
+GLIBC_2.4 pthread_mutex_unlock F
+GLIBC_2.4 pthread_self F
+GLIBC_2.4 pthread_setcancelstate F
+GLIBC_2.4 pthread_setcanceltype F
+GLIBC_2.4 pthread_setschedparam F
+GLIBC_2.4 ptrace F
+GLIBC_2.4 ptsname F
+GLIBC_2.4 ptsname_r F
+GLIBC_2.4 putc F
+GLIBC_2.4 putc_unlocked F
+GLIBC_2.4 putchar F
+GLIBC_2.4 putchar_unlocked F
+GLIBC_2.4 putenv F
+GLIBC_2.4 putgrent F
+GLIBC_2.4 putmsg F
+GLIBC_2.4 putpmsg F
+GLIBC_2.4 putpwent F
+GLIBC_2.4 puts F
+GLIBC_2.4 putspent F
+GLIBC_2.4 pututline F
+GLIBC_2.4 pututxline F
+GLIBC_2.4 putw F
+GLIBC_2.4 putwc F
+GLIBC_2.4 putwc_unlocked F
+GLIBC_2.4 putwchar F
+GLIBC_2.4 putwchar_unlocked F
+GLIBC_2.4 pvalloc F
+GLIBC_2.4 pwrite F
+GLIBC_2.4 pwrite64 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 qsort F
+GLIBC_2.4 query_module F
+GLIBC_2.4 quotactl F
+GLIBC_2.4 raise F
+GLIBC_2.4 rand F
+GLIBC_2.4 rand_r F
+GLIBC_2.4 random F
+GLIBC_2.4 random_r F
+GLIBC_2.4 rawmemchr F
+GLIBC_2.4 rcmd F
+GLIBC_2.4 rcmd_af F
+GLIBC_2.4 re_comp F
+GLIBC_2.4 re_compile_fastmap F
+GLIBC_2.4 re_compile_pattern F
+GLIBC_2.4 re_exec F
+GLIBC_2.4 re_match F
+GLIBC_2.4 re_match_2 F
+GLIBC_2.4 re_search F
+GLIBC_2.4 re_search_2 F
+GLIBC_2.4 re_set_registers F
+GLIBC_2.4 re_set_syntax F
+GLIBC_2.4 re_syntax_options D 0x4
+GLIBC_2.4 read F
+GLIBC_2.4 readahead F
+GLIBC_2.4 readdir F
+GLIBC_2.4 readdir64 F
+GLIBC_2.4 readdir64_r F
+GLIBC_2.4 readdir_r F
+GLIBC_2.4 readlink F
+GLIBC_2.4 readlinkat F
+GLIBC_2.4 readv F
+GLIBC_2.4 realloc F
+GLIBC_2.4 realpath F
+GLIBC_2.4 reboot F
+GLIBC_2.4 recv F
+GLIBC_2.4 recvfrom F
+GLIBC_2.4 recvmsg F
+GLIBC_2.4 regcomp F
+GLIBC_2.4 regerror F
+GLIBC_2.4 regexec F
+GLIBC_2.4 regfree F
+GLIBC_2.4 register_printf_function F
+GLIBC_2.4 registerrpc F
+GLIBC_2.4 remap_file_pages F
+GLIBC_2.4 remove F
+GLIBC_2.4 removexattr F
+GLIBC_2.4 remque F
+GLIBC_2.4 rename F
+GLIBC_2.4 renameat F
+GLIBC_2.4 revoke F
+GLIBC_2.4 rewind F
+GLIBC_2.4 rewinddir F
+GLIBC_2.4 rexec F
+GLIBC_2.4 rexec_af F
+GLIBC_2.4 rexecoptions D 0x4
+GLIBC_2.4 rindex F
+GLIBC_2.4 rmdir F
+GLIBC_2.4 rpc_createerr D 0x10
+GLIBC_2.4 rpmatch F
+GLIBC_2.4 rresvport F
+GLIBC_2.4 rresvport_af F
+GLIBC_2.4 rtime F
+GLIBC_2.4 ruserok F
+GLIBC_2.4 ruserok_af F
+GLIBC_2.4 ruserpass F
+GLIBC_2.4 sbrk F
+GLIBC_2.4 scalbn F
+GLIBC_2.4 scalbnf F
+GLIBC_2.4 scalbnl F
+GLIBC_2.4 scandir F
+GLIBC_2.4 scandir64 F
+GLIBC_2.4 scanf F
+GLIBC_2.4 sched_get_priority_max F
+GLIBC_2.4 sched_get_priority_min F
+GLIBC_2.4 sched_getaffinity F
+GLIBC_2.4 sched_getparam F
+GLIBC_2.4 sched_getscheduler F
+GLIBC_2.4 sched_rr_get_interval F
+GLIBC_2.4 sched_setaffinity F
+GLIBC_2.4 sched_setparam F
+GLIBC_2.4 sched_setscheduler F
+GLIBC_2.4 sched_yield F
+GLIBC_2.4 seed48 F
+GLIBC_2.4 seed48_r F
+GLIBC_2.4 seekdir F
+GLIBC_2.4 select F
+GLIBC_2.4 semctl F
+GLIBC_2.4 semget F
+GLIBC_2.4 semop F
+GLIBC_2.4 semtimedop F
+GLIBC_2.4 send F
+GLIBC_2.4 sendfile F
+GLIBC_2.4 sendfile64 F
+GLIBC_2.4 sendmsg F
+GLIBC_2.4 sendto F
+GLIBC_2.4 setaliasent F
+GLIBC_2.4 setbuf F
+GLIBC_2.4 setbuffer F
+GLIBC_2.4 setcontext F
+GLIBC_2.4 setdomainname F
+GLIBC_2.4 setegid F
+GLIBC_2.4 setenv F
+GLIBC_2.4 seteuid F
+GLIBC_2.4 setfsent F
+GLIBC_2.4 setfsgid F
+GLIBC_2.4 setfsuid F
+GLIBC_2.4 setgid F
+GLIBC_2.4 setgrent F
+GLIBC_2.4 setgroups F
+GLIBC_2.4 sethostent F
+GLIBC_2.4 sethostid F
+GLIBC_2.4 sethostname F
+GLIBC_2.4 setipv4sourcefilter F
+GLIBC_2.4 setitimer F
+GLIBC_2.4 setjmp F
+GLIBC_2.4 setlinebuf F
+GLIBC_2.4 setlocale F
+GLIBC_2.4 setlogin F
+GLIBC_2.4 setlogmask F
+GLIBC_2.4 setmntent F
+GLIBC_2.4 setnetent F
+GLIBC_2.4 setnetgrent F
+GLIBC_2.4 setpgid F
+GLIBC_2.4 setpgrp F
+GLIBC_2.4 setpriority F
+GLIBC_2.4 setprotoent F
+GLIBC_2.4 setpwent F
+GLIBC_2.4 setregid F
+GLIBC_2.4 setresgid F
+GLIBC_2.4 setresuid F
+GLIBC_2.4 setreuid F
+GLIBC_2.4 setrlimit F
+GLIBC_2.4 setrlimit64 F
+GLIBC_2.4 setrpcent F
+GLIBC_2.4 setservent F
+GLIBC_2.4 setsid F
+GLIBC_2.4 setsockopt F
+GLIBC_2.4 setsourcefilter F
+GLIBC_2.4 setspent F
+GLIBC_2.4 setstate F
+GLIBC_2.4 setstate_r F
+GLIBC_2.4 settimeofday F
+GLIBC_2.4 setttyent F
+GLIBC_2.4 setuid F
+GLIBC_2.4 setusershell F
+GLIBC_2.4 setutent F
+GLIBC_2.4 setutxent F
+GLIBC_2.4 setvbuf F
+GLIBC_2.4 setxattr F
+GLIBC_2.4 sgetspent F
+GLIBC_2.4 sgetspent_r F
+GLIBC_2.4 shmat F
+GLIBC_2.4 shmctl F
+GLIBC_2.4 shmdt F
+GLIBC_2.4 shmget F
+GLIBC_2.4 shutdown F
+GLIBC_2.4 sigaction F
+GLIBC_2.4 sigaddset F
+GLIBC_2.4 sigaltstack F
+GLIBC_2.4 sigandset F
+GLIBC_2.4 sigblock F
+GLIBC_2.4 sigdelset F
+GLIBC_2.4 sigemptyset F
+GLIBC_2.4 sigfillset F
+GLIBC_2.4 siggetmask F
+GLIBC_2.4 sighold F
+GLIBC_2.4 sigignore F
+GLIBC_2.4 siginterrupt F
+GLIBC_2.4 sigisemptyset F
+GLIBC_2.4 sigismember F
+GLIBC_2.4 siglongjmp F
+GLIBC_2.4 signal F
+GLIBC_2.4 sigorset F
+GLIBC_2.4 sigpause F
+GLIBC_2.4 sigpending F
+GLIBC_2.4 sigprocmask F
+GLIBC_2.4 sigqueue F
+GLIBC_2.4 sigrelse F
+GLIBC_2.4 sigreturn F
+GLIBC_2.4 sigset F
+GLIBC_2.4 sigsetmask F
+GLIBC_2.4 sigstack F
+GLIBC_2.4 sigsuspend F
+GLIBC_2.4 sigtimedwait F
+GLIBC_2.4 sigvec F
+GLIBC_2.4 sigwait F
+GLIBC_2.4 sigwaitinfo F
+GLIBC_2.4 sleep F
+GLIBC_2.4 snprintf F
+GLIBC_2.4 sockatmark F
+GLIBC_2.4 socket F
+GLIBC_2.4 socketpair F
+GLIBC_2.4 sprintf F
+GLIBC_2.4 sprofil F
+GLIBC_2.4 srand F
+GLIBC_2.4 srand48 F
+GLIBC_2.4 srand48_r F
+GLIBC_2.4 srandom F
+GLIBC_2.4 srandom_r F
+GLIBC_2.4 sscanf F
+GLIBC_2.4 ssignal F
+GLIBC_2.4 sstk F
+GLIBC_2.4 statfs F
+GLIBC_2.4 statfs64 F
+GLIBC_2.4 statvfs F
+GLIBC_2.4 statvfs64 F
+GLIBC_2.4 stderr D 0x4
+GLIBC_2.4 stdin D 0x4
+GLIBC_2.4 stdout D 0x4
+GLIBC_2.4 step F
+GLIBC_2.4 stime F
+GLIBC_2.4 stpcpy F
+GLIBC_2.4 stpncpy F
+GLIBC_2.4 strcasecmp F
+GLIBC_2.4 strcasecmp_l F
+GLIBC_2.4 strcasestr F
+GLIBC_2.4 strcat F
+GLIBC_2.4 strchr F
+GLIBC_2.4 strchrnul F
+GLIBC_2.4 strcmp F
+GLIBC_2.4 strcoll F
+GLIBC_2.4 strcoll_l F
+GLIBC_2.4 strcpy F
+GLIBC_2.4 strcspn F
+GLIBC_2.4 strdup F
+GLIBC_2.4 strerror F
+GLIBC_2.4 strerror_r F
+GLIBC_2.4 strfmon F
+GLIBC_2.4 strfmon_l F
+GLIBC_2.4 strfry F
+GLIBC_2.4 strftime F
+GLIBC_2.4 strftime_l F
+GLIBC_2.4 strlen F
+GLIBC_2.4 strncasecmp F
+GLIBC_2.4 strncasecmp_l F
+GLIBC_2.4 strncat F
+GLIBC_2.4 strncmp F
+GLIBC_2.4 strncpy F
+GLIBC_2.4 strndup F
+GLIBC_2.4 strnlen F
+GLIBC_2.4 strpbrk F
+GLIBC_2.4 strptime F
+GLIBC_2.4 strptime_l F
+GLIBC_2.4 strrchr F
+GLIBC_2.4 strsep F
+GLIBC_2.4 strsignal F
+GLIBC_2.4 strspn F
+GLIBC_2.4 strstr F
+GLIBC_2.4 strtod F
+GLIBC_2.4 strtod_l F
+GLIBC_2.4 strtof F
+GLIBC_2.4 strtof_l F
+GLIBC_2.4 strtoimax F
+GLIBC_2.4 strtok F
+GLIBC_2.4 strtok_r F
+GLIBC_2.4 strtol F
+GLIBC_2.4 strtol_l F
+GLIBC_2.4 strtold F
+GLIBC_2.4 strtold_l F
+GLIBC_2.4 strtoll F
+GLIBC_2.4 strtoll_l F
+GLIBC_2.4 strtoq F
+GLIBC_2.4 strtoul F
+GLIBC_2.4 strtoul_l F
+GLIBC_2.4 strtoull F
+GLIBC_2.4 strtoull_l F
+GLIBC_2.4 strtoumax F
+GLIBC_2.4 strtouq F
+GLIBC_2.4 strverscmp F
+GLIBC_2.4 strxfrm F
+GLIBC_2.4 strxfrm_l F
+GLIBC_2.4 stty F
+GLIBC_2.4 svc_exit F
+GLIBC_2.4 svc_fdset D 0x80
+GLIBC_2.4 svc_getreq F
+GLIBC_2.4 svc_getreq_common F
+GLIBC_2.4 svc_getreq_poll F
+GLIBC_2.4 svc_getreqset F
+GLIBC_2.4 svc_max_pollfd D 0x4
+GLIBC_2.4 svc_pollfd D 0x4
+GLIBC_2.4 svc_register F
+GLIBC_2.4 svc_run F
+GLIBC_2.4 svc_sendreply F
+GLIBC_2.4 svc_unregister F
+GLIBC_2.4 svcauthdes_stats D 0xc
+GLIBC_2.4 svcerr_auth F
+GLIBC_2.4 svcerr_decode F
+GLIBC_2.4 svcerr_noproc F
+GLIBC_2.4 svcerr_noprog F
+GLIBC_2.4 svcerr_progvers F
+GLIBC_2.4 svcerr_systemerr F
+GLIBC_2.4 svcerr_weakauth F
+GLIBC_2.4 svcfd_create F
+GLIBC_2.4 svcraw_create F
+GLIBC_2.4 svctcp_create F
+GLIBC_2.4 svcudp_bufcreate F
+GLIBC_2.4 svcudp_create F
+GLIBC_2.4 svcudp_enablecache F
+GLIBC_2.4 svcunix_create F
+GLIBC_2.4 svcunixfd_create F
+GLIBC_2.4 swab F
+GLIBC_2.4 swapcontext F
+GLIBC_2.4 swapoff F
+GLIBC_2.4 swapon F
+GLIBC_2.4 swprintf F
+GLIBC_2.4 swscanf F
+GLIBC_2.4 symlink F
+GLIBC_2.4 symlinkat F
+GLIBC_2.4 sync F
+GLIBC_2.4 sys_errlist D 0x210
+GLIBC_2.4 sys_nerr D 0x4
+GLIBC_2.4 sys_sigabbrev D 0x104
+GLIBC_2.4 sys_siglist D 0x104
+GLIBC_2.4 syscall F
+GLIBC_2.4 sysconf F
+GLIBC_2.4 sysctl F
+GLIBC_2.4 sysinfo F
+GLIBC_2.4 syslog F
+GLIBC_2.4 system F
+GLIBC_2.4 sysv_signal F
+GLIBC_2.4 tcdrain F
+GLIBC_2.4 tcflow F
+GLIBC_2.4 tcflush F
+GLIBC_2.4 tcgetattr F
+GLIBC_2.4 tcgetpgrp F
+GLIBC_2.4 tcgetsid F
+GLIBC_2.4 tcsendbreak F
+GLIBC_2.4 tcsetattr F
+GLIBC_2.4 tcsetpgrp F
+GLIBC_2.4 tdelete F
+GLIBC_2.4 tdestroy F
+GLIBC_2.4 telldir F
+GLIBC_2.4 tempnam F
+GLIBC_2.4 textdomain F
+GLIBC_2.4 tfind F
+GLIBC_2.4 time F
+GLIBC_2.4 timegm F
+GLIBC_2.4 timelocal F
+GLIBC_2.4 times F
+GLIBC_2.4 timezone D 0x4
+GLIBC_2.4 tmpfile F
+GLIBC_2.4 tmpfile64 F
+GLIBC_2.4 tmpnam F
+GLIBC_2.4 tmpnam_r F
+GLIBC_2.4 toascii F
+GLIBC_2.4 tolower F
+GLIBC_2.4 tolower_l F
+GLIBC_2.4 toupper F
+GLIBC_2.4 toupper_l F
+GLIBC_2.4 towctrans F
+GLIBC_2.4 towctrans_l F
+GLIBC_2.4 towlower F
+GLIBC_2.4 towlower_l F
+GLIBC_2.4 towupper F
+GLIBC_2.4 towupper_l F
+GLIBC_2.4 tr_break F
+GLIBC_2.4 truncate F
+GLIBC_2.4 truncate64 F
+GLIBC_2.4 tsearch F
+GLIBC_2.4 ttyname F
+GLIBC_2.4 ttyname_r F
+GLIBC_2.4 ttyslot F
+GLIBC_2.4 twalk F
+GLIBC_2.4 tzname D 0x8
+GLIBC_2.4 tzset F
+GLIBC_2.4 ualarm F
+GLIBC_2.4 ulckpwdf F
+GLIBC_2.4 ulimit F
+GLIBC_2.4 umask F
+GLIBC_2.4 umount F
+GLIBC_2.4 umount2 F
+GLIBC_2.4 uname F
+GLIBC_2.4 ungetc F
+GLIBC_2.4 ungetwc F
+GLIBC_2.4 unlink F
+GLIBC_2.4 unlinkat F
+GLIBC_2.4 unlockpt F
+GLIBC_2.4 unsetenv F
+GLIBC_2.4 unshare F
+GLIBC_2.4 updwtmp F
+GLIBC_2.4 updwtmpx F
+GLIBC_2.4 uselib F
+GLIBC_2.4 uselocale F
+GLIBC_2.4 user2netname F
+GLIBC_2.4 usleep F
+GLIBC_2.4 ustat F
+GLIBC_2.4 utime F
+GLIBC_2.4 utimes F
+GLIBC_2.4 utmpname F
+GLIBC_2.4 utmpxname F
+GLIBC_2.4 valloc F
+GLIBC_2.4 vasprintf F
+GLIBC_2.4 vdprintf F
+GLIBC_2.4 verr F
+GLIBC_2.4 verrx F
+GLIBC_2.4 versionsort F
+GLIBC_2.4 versionsort64 F
+GLIBC_2.4 vfork F
+GLIBC_2.4 vfprintf F
+GLIBC_2.4 vfscanf F
+GLIBC_2.4 vfwprintf F
+GLIBC_2.4 vfwscanf F
+GLIBC_2.4 vhangup F
+GLIBC_2.4 vlimit 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 vtimes F
+GLIBC_2.4 vwarn F
+GLIBC_2.4 vwarnx F
+GLIBC_2.4 vwprintf F
+GLIBC_2.4 vwscanf F
+GLIBC_2.4 wait F
+GLIBC_2.4 wait3 F
+GLIBC_2.4 wait4 F
+GLIBC_2.4 waitid F
+GLIBC_2.4 waitpid F
+GLIBC_2.4 warn F
+GLIBC_2.4 warnx F
+GLIBC_2.4 wcpcpy F
+GLIBC_2.4 wcpncpy F
+GLIBC_2.4 wcrtomb F
+GLIBC_2.4 wcscasecmp F
+GLIBC_2.4 wcscasecmp_l F
+GLIBC_2.4 wcscat F
+GLIBC_2.4 wcschr F
+GLIBC_2.4 wcschrnul F
+GLIBC_2.4 wcscmp F
+GLIBC_2.4 wcscoll F
+GLIBC_2.4 wcscoll_l F
+GLIBC_2.4 wcscpy F
+GLIBC_2.4 wcscspn F
+GLIBC_2.4 wcsdup F
+GLIBC_2.4 wcsftime F
+GLIBC_2.4 wcsftime_l F
+GLIBC_2.4 wcslen F
+GLIBC_2.4 wcsncasecmp F
+GLIBC_2.4 wcsncasecmp_l F
+GLIBC_2.4 wcsncat F
+GLIBC_2.4 wcsncmp F
+GLIBC_2.4 wcsncpy F
+GLIBC_2.4 wcsnlen F
+GLIBC_2.4 wcsnrtombs F
+GLIBC_2.4 wcspbrk F
+GLIBC_2.4 wcsrchr F
+GLIBC_2.4 wcsrtombs F
+GLIBC_2.4 wcsspn F
+GLIBC_2.4 wcsstr F
+GLIBC_2.4 wcstod F
+GLIBC_2.4 wcstod_l F
+GLIBC_2.4 wcstof F
+GLIBC_2.4 wcstof_l F
+GLIBC_2.4 wcstoimax F
+GLIBC_2.4 wcstok F
+GLIBC_2.4 wcstol F
+GLIBC_2.4 wcstol_l F
+GLIBC_2.4 wcstold F
+GLIBC_2.4 wcstold_l F
+GLIBC_2.4 wcstoll F
+GLIBC_2.4 wcstoll_l F
+GLIBC_2.4 wcstombs F
+GLIBC_2.4 wcstoq F
+GLIBC_2.4 wcstoul F
+GLIBC_2.4 wcstoul_l F
+GLIBC_2.4 wcstoull F
+GLIBC_2.4 wcstoull_l F
+GLIBC_2.4 wcstoumax F
+GLIBC_2.4 wcstouq F
+GLIBC_2.4 wcswcs F
+GLIBC_2.4 wcswidth F
+GLIBC_2.4 wcsxfrm F
+GLIBC_2.4 wcsxfrm_l F
+GLIBC_2.4 wctob F
+GLIBC_2.4 wctomb F
+GLIBC_2.4 wctrans F
+GLIBC_2.4 wctrans_l F
+GLIBC_2.4 wctype F
+GLIBC_2.4 wctype_l F
+GLIBC_2.4 wcwidth F
+GLIBC_2.4 wmemchr F
+GLIBC_2.4 wmemcmp F
+GLIBC_2.4 wmemcpy F
+GLIBC_2.4 wmemmove F
+GLIBC_2.4 wmempcpy F
+GLIBC_2.4 wmemset F
+GLIBC_2.4 wordexp F
+GLIBC_2.4 wordfree F
+GLIBC_2.4 wprintf F
+GLIBC_2.4 write F
+GLIBC_2.4 writev F
+GLIBC_2.4 wscanf F
+GLIBC_2.4 xdecrypt F
+GLIBC_2.4 xdr_accepted_reply F
+GLIBC_2.4 xdr_array F
+GLIBC_2.4 xdr_authdes_cred F
+GLIBC_2.4 xdr_authdes_verf F
+GLIBC_2.4 xdr_authunix_parms F
+GLIBC_2.4 xdr_bool F
+GLIBC_2.4 xdr_bytes F
+GLIBC_2.4 xdr_callhdr F
+GLIBC_2.4 xdr_callmsg F
+GLIBC_2.4 xdr_char F
+GLIBC_2.4 xdr_cryptkeyarg F
+GLIBC_2.4 xdr_cryptkeyarg2 F
+GLIBC_2.4 xdr_cryptkeyres F
+GLIBC_2.4 xdr_des_block F
+GLIBC_2.4 xdr_double F
+GLIBC_2.4 xdr_enum F
+GLIBC_2.4 xdr_float F
+GLIBC_2.4 xdr_free F
+GLIBC_2.4 xdr_getcredres F
+GLIBC_2.4 xdr_hyper F
+GLIBC_2.4 xdr_int F
+GLIBC_2.4 xdr_int16_t F
+GLIBC_2.4 xdr_int32_t F
+GLIBC_2.4 xdr_int64_t F
+GLIBC_2.4 xdr_int8_t F
+GLIBC_2.4 xdr_key_netstarg F
+GLIBC_2.4 xdr_key_netstres F
+GLIBC_2.4 xdr_keybuf F
+GLIBC_2.4 xdr_keystatus F
+GLIBC_2.4 xdr_long F
+GLIBC_2.4 xdr_longlong_t F
+GLIBC_2.4 xdr_netnamestr F
+GLIBC_2.4 xdr_netobj F
+GLIBC_2.4 xdr_opaque F
+GLIBC_2.4 xdr_opaque_auth F
+GLIBC_2.4 xdr_pmap F
+GLIBC_2.4 xdr_pmaplist F
+GLIBC_2.4 xdr_pointer F
+GLIBC_2.4 xdr_quad_t F
+GLIBC_2.4 xdr_reference F
+GLIBC_2.4 xdr_rejected_reply F
+GLIBC_2.4 xdr_replymsg F
+GLIBC_2.4 xdr_rmtcall_args F
+GLIBC_2.4 xdr_rmtcallres F
+GLIBC_2.4 xdr_short F
+GLIBC_2.4 xdr_sizeof F
+GLIBC_2.4 xdr_string F
+GLIBC_2.4 xdr_u_char F
+GLIBC_2.4 xdr_u_hyper F
+GLIBC_2.4 xdr_u_int F
+GLIBC_2.4 xdr_u_long F
+GLIBC_2.4 xdr_u_longlong_t F
+GLIBC_2.4 xdr_u_quad_t F
+GLIBC_2.4 xdr_u_short F
+GLIBC_2.4 xdr_uint16_t F
+GLIBC_2.4 xdr_uint32_t F
+GLIBC_2.4 xdr_uint64_t F
+GLIBC_2.4 xdr_uint8_t F
+GLIBC_2.4 xdr_union F
+GLIBC_2.4 xdr_unixcred F
+GLIBC_2.4 xdr_vector F
+GLIBC_2.4 xdr_void F
+GLIBC_2.4 xdr_wrapstring F
+GLIBC_2.4 xdrmem_create F
+GLIBC_2.4 xdrrec_create F
+GLIBC_2.4 xdrrec_endofrecord F
+GLIBC_2.4 xdrrec_eof F
+GLIBC_2.4 xdrrec_skiprecord F
+GLIBC_2.4 xdrstdio_create F
+GLIBC_2.4 xencrypt F
+GLIBC_2.4 xprt_register F
+GLIBC_2.4 xprt_unregister F
+GLIBC_2.5 GLIBC_2.5 A
+GLIBC_2.5 __readlinkat_chk F
+GLIBC_2.5 inet6_opt_append F
+GLIBC_2.5 inet6_opt_find F
+GLIBC_2.5 inet6_opt_finish F
+GLIBC_2.5 inet6_opt_get_val F
+GLIBC_2.5 inet6_opt_init F
+GLIBC_2.5 inet6_opt_next F
+GLIBC_2.5 inet6_opt_set_val F
+GLIBC_2.5 inet6_rth_add F
+GLIBC_2.5 inet6_rth_getaddr F
+GLIBC_2.5 inet6_rth_init F
+GLIBC_2.5 inet6_rth_reverse F
+GLIBC_2.5 inet6_rth_segments F
+GLIBC_2.5 inet6_rth_space F
+GLIBC_2.5 splice F
+GLIBC_2.5 tee F
+GLIBC_2.5 vmsplice F
+GLIBC_2.6 GLIBC_2.6 A
+GLIBC_2.6 __sched_cpucount F
+GLIBC_2.6 epoll_pwait F
+GLIBC_2.6 futimens F
+GLIBC_2.6 sched_getcpu F
+GLIBC_2.6 strerror_l F
+GLIBC_2.6 sync_file_range F
+GLIBC_2.6 utimensat F
+GLIBC_2.7 GLIBC_2.7 A
+GLIBC_2.7 __fread_chk F
+GLIBC_2.7 __fread_unlocked_chk F
+GLIBC_2.7 __isoc99_fscanf F
+GLIBC_2.7 __isoc99_fwscanf F
+GLIBC_2.7 __isoc99_scanf F
+GLIBC_2.7 __isoc99_sscanf F
+GLIBC_2.7 __isoc99_swscanf F
+GLIBC_2.7 __isoc99_vfscanf F
+GLIBC_2.7 __isoc99_vfwscanf F
+GLIBC_2.7 __isoc99_vscanf F
+GLIBC_2.7 __isoc99_vsscanf F
+GLIBC_2.7 __isoc99_vswscanf F
+GLIBC_2.7 __isoc99_vwscanf F
+GLIBC_2.7 __isoc99_wscanf F
+GLIBC_2.7 __open64_2 F
+GLIBC_2.7 __open_2 F
+GLIBC_2.7 __openat64_2 F
+GLIBC_2.7 __openat_2 F
+GLIBC_2.7 __sched_cpualloc F
+GLIBC_2.7 __sched_cpufree F
+GLIBC_2.7 eventfd F
+GLIBC_2.7 eventfd_read F
+GLIBC_2.7 eventfd_write F
+GLIBC_2.7 mkostemp F
+GLIBC_2.7 mkostemp64 F
+GLIBC_2.7 signalfd F
+GLIBC_2.8 GLIBC_2.8 A
+GLIBC_2.8 __asprintf_chk F
+GLIBC_2.8 __dprintf_chk F
+GLIBC_2.8 __gnu_mcount_nc F
+GLIBC_2.8 __obstack_printf_chk F
+GLIBC_2.8 __obstack_vprintf_chk F
+GLIBC_2.8 __vasprintf_chk F
+GLIBC_2.8 __vdprintf_chk F
+GLIBC_2.8 qsort_r F
+GLIBC_2.8 timerfd_create F
+GLIBC_2.8 timerfd_gettime F
+GLIBC_2.8 timerfd_settime F
+GLIBC_2.9 GLIBC_2.9 A
+GLIBC_2.9 dup3 F
+GLIBC_2.9 epoll_create1 F
+GLIBC_2.9 inotify_init1 F
+GLIBC_2.9 pipe2 F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/arm/libcrypt.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/arm/libcrypt.abilist
new file mode 100644
index 0000000000..04f1f02fa3
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/arm/libcrypt.abilist
@@ -0,0 +1,8 @@
+GLIBC_2.4 GLIBC_2.4 A
+GLIBC_2.4 crypt F
+GLIBC_2.4 crypt_r F
+GLIBC_2.4 encrypt F
+GLIBC_2.4 encrypt_r F
+GLIBC_2.4 fcrypt F
+GLIBC_2.4 setkey F
+GLIBC_2.4 setkey_r F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/arm/libdl.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/arm/libdl.abilist
new file mode 100644
index 0000000000..89a750a0a3
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/arm/libdl.abilist
@@ -0,0 +1,10 @@
+GLIBC_2.4 GLIBC_2.4 A
+GLIBC_2.4 dladdr F
+GLIBC_2.4 dladdr1 F
+GLIBC_2.4 dlclose F
+GLIBC_2.4 dlerror F
+GLIBC_2.4 dlinfo F
+GLIBC_2.4 dlmopen F
+GLIBC_2.4 dlopen F
+GLIBC_2.4 dlsym F
+GLIBC_2.4 dlvsym F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/arm/libm.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/arm/libm.abilist
new file mode 100644
index 0000000000..d0c33d2a11
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/arm/libm.abilist
@@ -0,0 +1,432 @@
+GLIBC_2.15 GLIBC_2.15 A
+GLIBC_2.15 __acos_finite F
+GLIBC_2.15 __acosf_finite F
+GLIBC_2.15 __acosh_finite F
+GLIBC_2.15 __acoshf_finite F
+GLIBC_2.15 __asin_finite F
+GLIBC_2.15 __asinf_finite F
+GLIBC_2.15 __atan2_finite F
+GLIBC_2.15 __atan2f_finite F
+GLIBC_2.15 __atanh_finite F
+GLIBC_2.15 __atanhf_finite F
+GLIBC_2.15 __cosh_finite F
+GLIBC_2.15 __coshf_finite F
+GLIBC_2.15 __exp10_finite F
+GLIBC_2.15 __exp10f_finite F
+GLIBC_2.15 __exp2_finite F
+GLIBC_2.15 __exp2f_finite F
+GLIBC_2.15 __exp_finite F
+GLIBC_2.15 __expf_finite F
+GLIBC_2.15 __fmod_finite F
+GLIBC_2.15 __fmodf_finite F
+GLIBC_2.15 __gamma_r_finite F
+GLIBC_2.15 __gammaf_r_finite F
+GLIBC_2.15 __hypot_finite F
+GLIBC_2.15 __hypotf_finite F
+GLIBC_2.15 __j0_finite F
+GLIBC_2.15 __j0f_finite F
+GLIBC_2.15 __j1_finite F
+GLIBC_2.15 __j1f_finite F
+GLIBC_2.15 __jn_finite F
+GLIBC_2.15 __jnf_finite F
+GLIBC_2.15 __lgamma_r_finite F
+GLIBC_2.15 __lgammaf_r_finite F
+GLIBC_2.15 __log10_finite F
+GLIBC_2.15 __log10f_finite F
+GLIBC_2.15 __log2_finite F
+GLIBC_2.15 __log2f_finite F
+GLIBC_2.15 __log_finite F
+GLIBC_2.15 __logf_finite F
+GLIBC_2.15 __pow_finite F
+GLIBC_2.15 __powf_finite F
+GLIBC_2.15 __remainder_finite F
+GLIBC_2.15 __remainderf_finite F
+GLIBC_2.15 __scalb_finite F
+GLIBC_2.15 __scalbf_finite F
+GLIBC_2.15 __sinh_finite F
+GLIBC_2.15 __sinhf_finite F
+GLIBC_2.15 __sqrt_finite F
+GLIBC_2.15 __sqrtf_finite F
+GLIBC_2.15 __y0_finite F
+GLIBC_2.15 __y0f_finite F
+GLIBC_2.15 __y1_finite F
+GLIBC_2.15 __y1f_finite F
+GLIBC_2.15 __yn_finite F
+GLIBC_2.15 __ynf_finite F
+GLIBC_2.18 GLIBC_2.18 A
+GLIBC_2.18 __issignaling F
+GLIBC_2.18 __issignalingf F
+GLIBC_2.23 GLIBC_2.23 A
+GLIBC_2.23 __signgam D 0x4
+GLIBC_2.23 lgamma F
+GLIBC_2.23 lgammaf F
+GLIBC_2.23 lgammal F
+GLIBC_2.24 GLIBC_2.24 A
+GLIBC_2.24 nextdown F
+GLIBC_2.24 nextdownf F
+GLIBC_2.24 nextdownl F
+GLIBC_2.24 nextup F
+GLIBC_2.24 nextupf F
+GLIBC_2.24 nextupl F
+GLIBC_2.25 GLIBC_2.25 A
+GLIBC_2.25 __iseqsig F
+GLIBC_2.25 __iseqsigf F
+GLIBC_2.25 canonicalize F
+GLIBC_2.25 canonicalizef F
+GLIBC_2.25 canonicalizel F
+GLIBC_2.25 fegetmode F
+GLIBC_2.25 fesetexcept F
+GLIBC_2.25 fesetmode F
+GLIBC_2.25 fetestexceptflag F
+GLIBC_2.25 fmaxmag F
+GLIBC_2.25 fmaxmagf F
+GLIBC_2.25 fmaxmagl F
+GLIBC_2.25 fminmag F
+GLIBC_2.25 fminmagf F
+GLIBC_2.25 fminmagl F
+GLIBC_2.25 fromfp F
+GLIBC_2.25 fromfpf F
+GLIBC_2.25 fromfpl F
+GLIBC_2.25 fromfpx F
+GLIBC_2.25 fromfpxf F
+GLIBC_2.25 fromfpxl F
+GLIBC_2.25 getpayload F
+GLIBC_2.25 getpayloadf F
+GLIBC_2.25 getpayloadl F
+GLIBC_2.25 llogb F
+GLIBC_2.25 llogbf F
+GLIBC_2.25 llogbl F
+GLIBC_2.25 roundeven F
+GLIBC_2.25 roundevenf F
+GLIBC_2.25 roundevenl F
+GLIBC_2.25 setpayload F
+GLIBC_2.25 setpayloadf F
+GLIBC_2.25 setpayloadl F
+GLIBC_2.25 setpayloadsig F
+GLIBC_2.25 setpayloadsigf F
+GLIBC_2.25 setpayloadsigl F
+GLIBC_2.25 totalorder F
+GLIBC_2.25 totalorderf F
+GLIBC_2.25 totalorderl F
+GLIBC_2.25 totalordermag F
+GLIBC_2.25 totalordermagf F
+GLIBC_2.25 totalordermagl F
+GLIBC_2.25 ufromfp F
+GLIBC_2.25 ufromfpf F
+GLIBC_2.25 ufromfpl F
+GLIBC_2.25 ufromfpx F
+GLIBC_2.25 ufromfpxf F
+GLIBC_2.25 ufromfpxl F
+GLIBC_2.4 GLIBC_2.4 A
+GLIBC_2.4 _LIB_VERSION D 0x4
+GLIBC_2.4 __clog10 F
+GLIBC_2.4 __clog10f F
+GLIBC_2.4 __clog10l F
+GLIBC_2.4 __finite F
+GLIBC_2.4 __finitef F
+GLIBC_2.4 __finitel F
+GLIBC_2.4 __fpclassify F
+GLIBC_2.4 __fpclassifyf F
+GLIBC_2.4 __signbit F
+GLIBC_2.4 __signbitf F
+GLIBC_2.4 acos F
+GLIBC_2.4 acosf F
+GLIBC_2.4 acosh F
+GLIBC_2.4 acoshf F
+GLIBC_2.4 acoshl F
+GLIBC_2.4 acosl F
+GLIBC_2.4 asin F
+GLIBC_2.4 asinf F
+GLIBC_2.4 asinh F
+GLIBC_2.4 asinhf F
+GLIBC_2.4 asinhl F
+GLIBC_2.4 asinl F
+GLIBC_2.4 atan F
+GLIBC_2.4 atan2 F
+GLIBC_2.4 atan2f F
+GLIBC_2.4 atan2l F
+GLIBC_2.4 atanf F
+GLIBC_2.4 atanh F
+GLIBC_2.4 atanhf F
+GLIBC_2.4 atanhl F
+GLIBC_2.4 atanl F
+GLIBC_2.4 cabs F
+GLIBC_2.4 cabsf F
+GLIBC_2.4 cabsl F
+GLIBC_2.4 cacos F
+GLIBC_2.4 cacosf F
+GLIBC_2.4 cacosh F
+GLIBC_2.4 cacoshf F
+GLIBC_2.4 cacoshl F
+GLIBC_2.4 cacosl F
+GLIBC_2.4 carg F
+GLIBC_2.4 cargf F
+GLIBC_2.4 cargl F
+GLIBC_2.4 casin F
+GLIBC_2.4 casinf F
+GLIBC_2.4 casinh F
+GLIBC_2.4 casinhf F
+GLIBC_2.4 casinhl F
+GLIBC_2.4 casinl F
+GLIBC_2.4 catan F
+GLIBC_2.4 catanf F
+GLIBC_2.4 catanh F
+GLIBC_2.4 catanhf F
+GLIBC_2.4 catanhl F
+GLIBC_2.4 catanl F
+GLIBC_2.4 cbrt F
+GLIBC_2.4 cbrtf F
+GLIBC_2.4 cbrtl F
+GLIBC_2.4 ccos F
+GLIBC_2.4 ccosf F
+GLIBC_2.4 ccosh F
+GLIBC_2.4 ccoshf F
+GLIBC_2.4 ccoshl F
+GLIBC_2.4 ccosl F
+GLIBC_2.4 ceil F
+GLIBC_2.4 ceilf F
+GLIBC_2.4 ceill F
+GLIBC_2.4 cexp F
+GLIBC_2.4 cexpf F
+GLIBC_2.4 cexpl F
+GLIBC_2.4 cimag F
+GLIBC_2.4 cimagf F
+GLIBC_2.4 cimagl F
+GLIBC_2.4 clog F
+GLIBC_2.4 clog10 F
+GLIBC_2.4 clog10f F
+GLIBC_2.4 clog10l F
+GLIBC_2.4 clogf F
+GLIBC_2.4 clogl F
+GLIBC_2.4 conj F
+GLIBC_2.4 conjf F
+GLIBC_2.4 conjl F
+GLIBC_2.4 copysign F
+GLIBC_2.4 copysignf F
+GLIBC_2.4 copysignl F
+GLIBC_2.4 cos F
+GLIBC_2.4 cosf F
+GLIBC_2.4 cosh F
+GLIBC_2.4 coshf F
+GLIBC_2.4 coshl F
+GLIBC_2.4 cosl F
+GLIBC_2.4 cpow F
+GLIBC_2.4 cpowf F
+GLIBC_2.4 cpowl F
+GLIBC_2.4 cproj F
+GLIBC_2.4 cprojf F
+GLIBC_2.4 cprojl F
+GLIBC_2.4 creal F
+GLIBC_2.4 crealf F
+GLIBC_2.4 creall F
+GLIBC_2.4 csin F
+GLIBC_2.4 csinf F
+GLIBC_2.4 csinh F
+GLIBC_2.4 csinhf F
+GLIBC_2.4 csinhl F
+GLIBC_2.4 csinl F
+GLIBC_2.4 csqrt F
+GLIBC_2.4 csqrtf F
+GLIBC_2.4 csqrtl F
+GLIBC_2.4 ctan F
+GLIBC_2.4 ctanf F
+GLIBC_2.4 ctanh F
+GLIBC_2.4 ctanhf F
+GLIBC_2.4 ctanhl F
+GLIBC_2.4 ctanl F
+GLIBC_2.4 drem F
+GLIBC_2.4 dremf F
+GLIBC_2.4 dreml F
+GLIBC_2.4 erf F
+GLIBC_2.4 erfc F
+GLIBC_2.4 erfcf F
+GLIBC_2.4 erfcl F
+GLIBC_2.4 erff F
+GLIBC_2.4 erfl F
+GLIBC_2.4 exp F
+GLIBC_2.4 exp10 F
+GLIBC_2.4 exp10f F
+GLIBC_2.4 exp10l F
+GLIBC_2.4 exp2 F
+GLIBC_2.4 exp2f F
+GLIBC_2.4 exp2l F
+GLIBC_2.4 expf F
+GLIBC_2.4 expl F
+GLIBC_2.4 expm1 F
+GLIBC_2.4 expm1f F
+GLIBC_2.4 expm1l F
+GLIBC_2.4 fabs F
+GLIBC_2.4 fabsf F
+GLIBC_2.4 fabsl F
+GLIBC_2.4 fdim F
+GLIBC_2.4 fdimf F
+GLIBC_2.4 fdiml F
+GLIBC_2.4 feclearexcept F
+GLIBC_2.4 fedisableexcept F
+GLIBC_2.4 feenableexcept F
+GLIBC_2.4 fegetenv F
+GLIBC_2.4 fegetexcept F
+GLIBC_2.4 fegetexceptflag F
+GLIBC_2.4 fegetround F
+GLIBC_2.4 feholdexcept F
+GLIBC_2.4 feraiseexcept F
+GLIBC_2.4 fesetenv F
+GLIBC_2.4 fesetexceptflag F
+GLIBC_2.4 fesetround F
+GLIBC_2.4 fetestexcept F
+GLIBC_2.4 feupdateenv F
+GLIBC_2.4 finite F
+GLIBC_2.4 finitef F
+GLIBC_2.4 finitel F
+GLIBC_2.4 floor F
+GLIBC_2.4 floorf F
+GLIBC_2.4 floorl F
+GLIBC_2.4 fma F
+GLIBC_2.4 fmaf F
+GLIBC_2.4 fmal F
+GLIBC_2.4 fmax F
+GLIBC_2.4 fmaxf F
+GLIBC_2.4 fmaxl F
+GLIBC_2.4 fmin F
+GLIBC_2.4 fminf F
+GLIBC_2.4 fminl F
+GLIBC_2.4 fmod F
+GLIBC_2.4 fmodf F
+GLIBC_2.4 fmodl F
+GLIBC_2.4 frexp F
+GLIBC_2.4 frexpf F
+GLIBC_2.4 frexpl F
+GLIBC_2.4 gamma F
+GLIBC_2.4 gammaf F
+GLIBC_2.4 gammal F
+GLIBC_2.4 hypot F
+GLIBC_2.4 hypotf F
+GLIBC_2.4 hypotl F
+GLIBC_2.4 ilogb F
+GLIBC_2.4 ilogbf F
+GLIBC_2.4 ilogbl F
+GLIBC_2.4 j0 F
+GLIBC_2.4 j0f F
+GLIBC_2.4 j0l F
+GLIBC_2.4 j1 F
+GLIBC_2.4 j1f F
+GLIBC_2.4 j1l F
+GLIBC_2.4 jn F
+GLIBC_2.4 jnf F
+GLIBC_2.4 jnl F
+GLIBC_2.4 ldexp F
+GLIBC_2.4 ldexpf F
+GLIBC_2.4 ldexpl F
+GLIBC_2.4 lgamma F
+GLIBC_2.4 lgamma_r F
+GLIBC_2.4 lgammaf F
+GLIBC_2.4 lgammaf_r F
+GLIBC_2.4 lgammal F
+GLIBC_2.4 lgammal_r F
+GLIBC_2.4 llrint F
+GLIBC_2.4 llrintf F
+GLIBC_2.4 llrintl F
+GLIBC_2.4 llround F
+GLIBC_2.4 llroundf F
+GLIBC_2.4 llroundl F
+GLIBC_2.4 log F
+GLIBC_2.4 log10 F
+GLIBC_2.4 log10f F
+GLIBC_2.4 log10l F
+GLIBC_2.4 log1p F
+GLIBC_2.4 log1pf F
+GLIBC_2.4 log1pl F
+GLIBC_2.4 log2 F
+GLIBC_2.4 log2f F
+GLIBC_2.4 log2l F
+GLIBC_2.4 logb F
+GLIBC_2.4 logbf F
+GLIBC_2.4 logbl F
+GLIBC_2.4 logf F
+GLIBC_2.4 logl F
+GLIBC_2.4 lrint F
+GLIBC_2.4 lrintf F
+GLIBC_2.4 lrintl F
+GLIBC_2.4 lround F
+GLIBC_2.4 lroundf F
+GLIBC_2.4 lroundl F
+GLIBC_2.4 matherr F
+GLIBC_2.4 modf F
+GLIBC_2.4 modff F
+GLIBC_2.4 modfl F
+GLIBC_2.4 nan F
+GLIBC_2.4 nanf F
+GLIBC_2.4 nanl F
+GLIBC_2.4 nearbyint F
+GLIBC_2.4 nearbyintf F
+GLIBC_2.4 nearbyintl F
+GLIBC_2.4 nextafter F
+GLIBC_2.4 nextafterf F
+GLIBC_2.4 nextafterl F
+GLIBC_2.4 nexttoward F
+GLIBC_2.4 nexttowardf F
+GLIBC_2.4 nexttowardl F
+GLIBC_2.4 pow F
+GLIBC_2.4 pow10 F
+GLIBC_2.4 pow10f F
+GLIBC_2.4 pow10l F
+GLIBC_2.4 powf F
+GLIBC_2.4 powl F
+GLIBC_2.4 remainder F
+GLIBC_2.4 remainderf F
+GLIBC_2.4 remainderl F
+GLIBC_2.4 remquo F
+GLIBC_2.4 remquof F
+GLIBC_2.4 remquol F
+GLIBC_2.4 rint F
+GLIBC_2.4 rintf F
+GLIBC_2.4 rintl F
+GLIBC_2.4 round F
+GLIBC_2.4 roundf F
+GLIBC_2.4 roundl F
+GLIBC_2.4 scalb F
+GLIBC_2.4 scalbf F
+GLIBC_2.4 scalbl F
+GLIBC_2.4 scalbln F
+GLIBC_2.4 scalblnf F
+GLIBC_2.4 scalblnl F
+GLIBC_2.4 scalbn F
+GLIBC_2.4 scalbnf F
+GLIBC_2.4 scalbnl F
+GLIBC_2.4 signgam D 0x4
+GLIBC_2.4 significand F
+GLIBC_2.4 significandf F
+GLIBC_2.4 significandl F
+GLIBC_2.4 sin F
+GLIBC_2.4 sincos F
+GLIBC_2.4 sincosf F
+GLIBC_2.4 sincosl F
+GLIBC_2.4 sinf F
+GLIBC_2.4 sinh F
+GLIBC_2.4 sinhf F
+GLIBC_2.4 sinhl F
+GLIBC_2.4 sinl F
+GLIBC_2.4 sqrt F
+GLIBC_2.4 sqrtf F
+GLIBC_2.4 sqrtl F
+GLIBC_2.4 tan F
+GLIBC_2.4 tanf F
+GLIBC_2.4 tanh F
+GLIBC_2.4 tanhf F
+GLIBC_2.4 tanhl F
+GLIBC_2.4 tanl F
+GLIBC_2.4 tgamma F
+GLIBC_2.4 tgammaf F
+GLIBC_2.4 tgammal F
+GLIBC_2.4 trunc F
+GLIBC_2.4 truncf F
+GLIBC_2.4 truncl F
+GLIBC_2.4 y0 F
+GLIBC_2.4 y0f F
+GLIBC_2.4 y0l F
+GLIBC_2.4 y1 F
+GLIBC_2.4 y1f F
+GLIBC_2.4 y1l F
+GLIBC_2.4 yn F
+GLIBC_2.4 ynf F
+GLIBC_2.4 ynl F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/arm/libnsl.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/arm/libnsl.abilist
new file mode 100644
index 0000000000..2b2e49e6a1
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/arm/libnsl.abilist
@@ -0,0 +1,122 @@
+GLIBC_2.4 GLIBC_2.4 A
+GLIBC_2.4 __free_fdresult F
+GLIBC_2.4 __nis_default_access F
+GLIBC_2.4 __nis_default_group F
+GLIBC_2.4 __nis_default_owner F
+GLIBC_2.4 __nis_default_ttl F
+GLIBC_2.4 __nis_finddirectory F
+GLIBC_2.4 __nis_hash F
+GLIBC_2.4 __nisbind_connect F
+GLIBC_2.4 __nisbind_create F
+GLIBC_2.4 __nisbind_destroy F
+GLIBC_2.4 __nisbind_next F
+GLIBC_2.4 __yp_check F
+GLIBC_2.4 nis_add F
+GLIBC_2.4 nis_add_entry F
+GLIBC_2.4 nis_addmember F
+GLIBC_2.4 nis_checkpoint F
+GLIBC_2.4 nis_clone_directory F
+GLIBC_2.4 nis_clone_object F
+GLIBC_2.4 nis_clone_result F
+GLIBC_2.4 nis_creategroup F
+GLIBC_2.4 nis_destroy_object F
+GLIBC_2.4 nis_destroygroup F
+GLIBC_2.4 nis_dir_cmp F
+GLIBC_2.4 nis_domain_of F
+GLIBC_2.4 nis_domain_of_r F
+GLIBC_2.4 nis_first_entry F
+GLIBC_2.4 nis_free_directory F
+GLIBC_2.4 nis_free_object F
+GLIBC_2.4 nis_free_request F
+GLIBC_2.4 nis_freenames F
+GLIBC_2.4 nis_freeresult F
+GLIBC_2.4 nis_freeservlist F
+GLIBC_2.4 nis_freetags F
+GLIBC_2.4 nis_getnames F
+GLIBC_2.4 nis_getservlist F
+GLIBC_2.4 nis_ismember F
+GLIBC_2.4 nis_leaf_of F
+GLIBC_2.4 nis_leaf_of_r F
+GLIBC_2.4 nis_lerror F
+GLIBC_2.4 nis_list F
+GLIBC_2.4 nis_local_directory F
+GLIBC_2.4 nis_local_group F
+GLIBC_2.4 nis_local_host F
+GLIBC_2.4 nis_local_principal F
+GLIBC_2.4 nis_lookup F
+GLIBC_2.4 nis_mkdir F
+GLIBC_2.4 nis_modify F
+GLIBC_2.4 nis_modify_entry F
+GLIBC_2.4 nis_name_of F
+GLIBC_2.4 nis_name_of_r F
+GLIBC_2.4 nis_next_entry F
+GLIBC_2.4 nis_perror F
+GLIBC_2.4 nis_ping F
+GLIBC_2.4 nis_print_directory F
+GLIBC_2.4 nis_print_entry F
+GLIBC_2.4 nis_print_group F
+GLIBC_2.4 nis_print_group_entry F
+GLIBC_2.4 nis_print_link F
+GLIBC_2.4 nis_print_object F
+GLIBC_2.4 nis_print_result F
+GLIBC_2.4 nis_print_rights F
+GLIBC_2.4 nis_print_table F
+GLIBC_2.4 nis_read_obj F
+GLIBC_2.4 nis_remove F
+GLIBC_2.4 nis_remove_entry F
+GLIBC_2.4 nis_removemember F
+GLIBC_2.4 nis_rmdir F
+GLIBC_2.4 nis_servstate F
+GLIBC_2.4 nis_sperrno F
+GLIBC_2.4 nis_sperror F
+GLIBC_2.4 nis_sperror_r F
+GLIBC_2.4 nis_stats F
+GLIBC_2.4 nis_verifygroup F
+GLIBC_2.4 nis_write_obj F
+GLIBC_2.4 readColdStartFile F
+GLIBC_2.4 writeColdStartFile F
+GLIBC_2.4 xdr_cback_data F
+GLIBC_2.4 xdr_domainname F
+GLIBC_2.4 xdr_keydat F
+GLIBC_2.4 xdr_mapname F
+GLIBC_2.4 xdr_obj_p F
+GLIBC_2.4 xdr_peername F
+GLIBC_2.4 xdr_valdat F
+GLIBC_2.4 xdr_yp_buf F
+GLIBC_2.4 xdr_ypall F
+GLIBC_2.4 xdr_ypbind_binding F
+GLIBC_2.4 xdr_ypbind_resp F
+GLIBC_2.4 xdr_ypbind_resptype F
+GLIBC_2.4 xdr_ypbind_setdom F
+GLIBC_2.4 xdr_ypdelete_args F
+GLIBC_2.4 xdr_ypmap_parms F
+GLIBC_2.4 xdr_ypmaplist F
+GLIBC_2.4 xdr_yppush_status F
+GLIBC_2.4 xdr_yppushresp_xfr F
+GLIBC_2.4 xdr_ypreq_key F
+GLIBC_2.4 xdr_ypreq_nokey F
+GLIBC_2.4 xdr_ypreq_xfr F
+GLIBC_2.4 xdr_ypresp_all F
+GLIBC_2.4 xdr_ypresp_key_val F
+GLIBC_2.4 xdr_ypresp_maplist F
+GLIBC_2.4 xdr_ypresp_master F
+GLIBC_2.4 xdr_ypresp_order F
+GLIBC_2.4 xdr_ypresp_val F
+GLIBC_2.4 xdr_ypresp_xfr F
+GLIBC_2.4 xdr_ypstat F
+GLIBC_2.4 xdr_ypupdate_args F
+GLIBC_2.4 xdr_ypxfrstat F
+GLIBC_2.4 yp_all F
+GLIBC_2.4 yp_bind F
+GLIBC_2.4 yp_first F
+GLIBC_2.4 yp_get_default_domain F
+GLIBC_2.4 yp_maplist F
+GLIBC_2.4 yp_master F
+GLIBC_2.4 yp_match F
+GLIBC_2.4 yp_next F
+GLIBC_2.4 yp_order F
+GLIBC_2.4 yp_unbind F
+GLIBC_2.4 yp_update F
+GLIBC_2.4 ypbinderr_string F
+GLIBC_2.4 yperr_string F
+GLIBC_2.4 ypprot_err F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/arm/libpthread.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/arm/libpthread.abilist
new file mode 100644
index 0000000000..91545c1542
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/arm/libpthread.abilist
@@ -0,0 +1,228 @@
+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.4 GLIBC_2.4 A
+GLIBC_2.4 _IO_flockfile F
+GLIBC_2.4 _IO_ftrylockfile F
+GLIBC_2.4 _IO_funlockfile F
+GLIBC_2.4 __close F
+GLIBC_2.4 __connect F
+GLIBC_2.4 __errno_location F
+GLIBC_2.4 __fcntl F
+GLIBC_2.4 __fork F
+GLIBC_2.4 __h_errno_location F
+GLIBC_2.4 __libc_allocate_rtsig F
+GLIBC_2.4 __libc_current_sigrtmax F
+GLIBC_2.4 __libc_current_sigrtmin F
+GLIBC_2.4 __lseek F
+GLIBC_2.4 __nanosleep F
+GLIBC_2.4 __open F
+GLIBC_2.4 __open64 F
+GLIBC_2.4 __pread64 F
+GLIBC_2.4 __pthread_cleanup_routine F
+GLIBC_2.4 __pthread_getspecific F
+GLIBC_2.4 __pthread_key_create F
+GLIBC_2.4 __pthread_mutex_destroy F
+GLIBC_2.4 __pthread_mutex_init F
+GLIBC_2.4 __pthread_mutex_lock F
+GLIBC_2.4 __pthread_mutex_trylock F
+GLIBC_2.4 __pthread_mutex_unlock F
+GLIBC_2.4 __pthread_mutexattr_destroy F
+GLIBC_2.4 __pthread_mutexattr_init F
+GLIBC_2.4 __pthread_mutexattr_settype F
+GLIBC_2.4 __pthread_once F
+GLIBC_2.4 __pthread_register_cancel F
+GLIBC_2.4 __pthread_register_cancel_defer F
+GLIBC_2.4 __pthread_rwlock_destroy F
+GLIBC_2.4 __pthread_rwlock_init F
+GLIBC_2.4 __pthread_rwlock_rdlock F
+GLIBC_2.4 __pthread_rwlock_tryrdlock F
+GLIBC_2.4 __pthread_rwlock_trywrlock F
+GLIBC_2.4 __pthread_rwlock_unlock F
+GLIBC_2.4 __pthread_rwlock_wrlock F
+GLIBC_2.4 __pthread_setspecific F
+GLIBC_2.4 __pthread_unregister_cancel F
+GLIBC_2.4 __pthread_unregister_cancel_restore F
+GLIBC_2.4 __pthread_unwind_next F
+GLIBC_2.4 __pwrite64 F
+GLIBC_2.4 __read F
+GLIBC_2.4 __res_state F
+GLIBC_2.4 __send F
+GLIBC_2.4 __sigaction F
+GLIBC_2.4 __vfork F
+GLIBC_2.4 __wait F
+GLIBC_2.4 __write F
+GLIBC_2.4 _pthread_cleanup_pop F
+GLIBC_2.4 _pthread_cleanup_pop_restore F
+GLIBC_2.4 _pthread_cleanup_push F
+GLIBC_2.4 _pthread_cleanup_push_defer F
+GLIBC_2.4 accept F
+GLIBC_2.4 close F
+GLIBC_2.4 connect F
+GLIBC_2.4 fcntl F
+GLIBC_2.4 flockfile F
+GLIBC_2.4 fork F
+GLIBC_2.4 fsync F
+GLIBC_2.4 ftrylockfile F
+GLIBC_2.4 funlockfile F
+GLIBC_2.4 longjmp F
+GLIBC_2.4 lseek F
+GLIBC_2.4 lseek64 F
+GLIBC_2.4 msync F
+GLIBC_2.4 nanosleep F
+GLIBC_2.4 open F
+GLIBC_2.4 open64 F
+GLIBC_2.4 pause F
+GLIBC_2.4 pread F
+GLIBC_2.4 pread64 F
+GLIBC_2.4 pthread_attr_destroy F
+GLIBC_2.4 pthread_attr_getaffinity_np F
+GLIBC_2.4 pthread_attr_getdetachstate F
+GLIBC_2.4 pthread_attr_getguardsize F
+GLIBC_2.4 pthread_attr_getinheritsched F
+GLIBC_2.4 pthread_attr_getschedparam F
+GLIBC_2.4 pthread_attr_getschedpolicy F
+GLIBC_2.4 pthread_attr_getscope F
+GLIBC_2.4 pthread_attr_getstack F
+GLIBC_2.4 pthread_attr_getstackaddr F
+GLIBC_2.4 pthread_attr_getstacksize F
+GLIBC_2.4 pthread_attr_init F
+GLIBC_2.4 pthread_attr_setaffinity_np F
+GLIBC_2.4 pthread_attr_setdetachstate F
+GLIBC_2.4 pthread_attr_setguardsize F
+GLIBC_2.4 pthread_attr_setinheritsched F
+GLIBC_2.4 pthread_attr_setschedparam F
+GLIBC_2.4 pthread_attr_setschedpolicy F
+GLIBC_2.4 pthread_attr_setscope F
+GLIBC_2.4 pthread_attr_setstack F
+GLIBC_2.4 pthread_attr_setstackaddr F
+GLIBC_2.4 pthread_attr_setstacksize F
+GLIBC_2.4 pthread_barrier_destroy F
+GLIBC_2.4 pthread_barrier_init F
+GLIBC_2.4 pthread_barrier_wait F
+GLIBC_2.4 pthread_barrierattr_destroy F
+GLIBC_2.4 pthread_barrierattr_getpshared F
+GLIBC_2.4 pthread_barrierattr_init F
+GLIBC_2.4 pthread_barrierattr_setpshared F
+GLIBC_2.4 pthread_cancel F
+GLIBC_2.4 pthread_cond_broadcast F
+GLIBC_2.4 pthread_cond_destroy F
+GLIBC_2.4 pthread_cond_init F
+GLIBC_2.4 pthread_cond_signal F
+GLIBC_2.4 pthread_cond_timedwait F
+GLIBC_2.4 pthread_cond_wait F
+GLIBC_2.4 pthread_condattr_destroy F
+GLIBC_2.4 pthread_condattr_getclock F
+GLIBC_2.4 pthread_condattr_getpshared F
+GLIBC_2.4 pthread_condattr_init F
+GLIBC_2.4 pthread_condattr_setclock F
+GLIBC_2.4 pthread_condattr_setpshared F
+GLIBC_2.4 pthread_create F
+GLIBC_2.4 pthread_detach F
+GLIBC_2.4 pthread_equal F
+GLIBC_2.4 pthread_exit F
+GLIBC_2.4 pthread_getaffinity_np F
+GLIBC_2.4 pthread_getattr_np F
+GLIBC_2.4 pthread_getconcurrency F
+GLIBC_2.4 pthread_getcpuclockid F
+GLIBC_2.4 pthread_getschedparam F
+GLIBC_2.4 pthread_getspecific F
+GLIBC_2.4 pthread_join F
+GLIBC_2.4 pthread_key_create F
+GLIBC_2.4 pthread_key_delete F
+GLIBC_2.4 pthread_kill F
+GLIBC_2.4 pthread_kill_other_threads_np F
+GLIBC_2.4 pthread_mutex_consistent_np F
+GLIBC_2.4 pthread_mutex_destroy F
+GLIBC_2.4 pthread_mutex_getprioceiling F
+GLIBC_2.4 pthread_mutex_init F
+GLIBC_2.4 pthread_mutex_lock F
+GLIBC_2.4 pthread_mutex_setprioceiling F
+GLIBC_2.4 pthread_mutex_timedlock F
+GLIBC_2.4 pthread_mutex_trylock F
+GLIBC_2.4 pthread_mutex_unlock F
+GLIBC_2.4 pthread_mutexattr_destroy F
+GLIBC_2.4 pthread_mutexattr_getkind_np F
+GLIBC_2.4 pthread_mutexattr_getprioceiling F
+GLIBC_2.4 pthread_mutexattr_getprotocol F
+GLIBC_2.4 pthread_mutexattr_getpshared F
+GLIBC_2.4 pthread_mutexattr_getrobust_np F
+GLIBC_2.4 pthread_mutexattr_gettype F
+GLIBC_2.4 pthread_mutexattr_init F
+GLIBC_2.4 pthread_mutexattr_setkind_np F
+GLIBC_2.4 pthread_mutexattr_setprioceiling F
+GLIBC_2.4 pthread_mutexattr_setprotocol F
+GLIBC_2.4 pthread_mutexattr_setpshared F
+GLIBC_2.4 pthread_mutexattr_setrobust_np F
+GLIBC_2.4 pthread_mutexattr_settype F
+GLIBC_2.4 pthread_once F
+GLIBC_2.4 pthread_rwlock_destroy F
+GLIBC_2.4 pthread_rwlock_init F
+GLIBC_2.4 pthread_rwlock_rdlock F
+GLIBC_2.4 pthread_rwlock_timedrdlock F
+GLIBC_2.4 pthread_rwlock_timedwrlock F
+GLIBC_2.4 pthread_rwlock_tryrdlock F
+GLIBC_2.4 pthread_rwlock_trywrlock F
+GLIBC_2.4 pthread_rwlock_unlock F
+GLIBC_2.4 pthread_rwlock_wrlock F
+GLIBC_2.4 pthread_rwlockattr_destroy F
+GLIBC_2.4 pthread_rwlockattr_getkind_np F
+GLIBC_2.4 pthread_rwlockattr_getpshared F
+GLIBC_2.4 pthread_rwlockattr_init F
+GLIBC_2.4 pthread_rwlockattr_setkind_np F
+GLIBC_2.4 pthread_rwlockattr_setpshared F
+GLIBC_2.4 pthread_self F
+GLIBC_2.4 pthread_setaffinity_np F
+GLIBC_2.4 pthread_setcancelstate F
+GLIBC_2.4 pthread_setcanceltype F
+GLIBC_2.4 pthread_setconcurrency F
+GLIBC_2.4 pthread_setschedparam F
+GLIBC_2.4 pthread_setschedprio F
+GLIBC_2.4 pthread_setspecific F
+GLIBC_2.4 pthread_sigmask F
+GLIBC_2.4 pthread_spin_destroy F
+GLIBC_2.4 pthread_spin_init F
+GLIBC_2.4 pthread_spin_lock F
+GLIBC_2.4 pthread_spin_trylock F
+GLIBC_2.4 pthread_spin_unlock F
+GLIBC_2.4 pthread_testcancel F
+GLIBC_2.4 pthread_timedjoin_np F
+GLIBC_2.4 pthread_tryjoin_np F
+GLIBC_2.4 pthread_yield F
+GLIBC_2.4 pwrite F
+GLIBC_2.4 pwrite64 F
+GLIBC_2.4 raise F
+GLIBC_2.4 read F
+GLIBC_2.4 recv F
+GLIBC_2.4 recvfrom F
+GLIBC_2.4 recvmsg F
+GLIBC_2.4 sem_close F
+GLIBC_2.4 sem_destroy F
+GLIBC_2.4 sem_getvalue F
+GLIBC_2.4 sem_init F
+GLIBC_2.4 sem_open F
+GLIBC_2.4 sem_post F
+GLIBC_2.4 sem_timedwait F
+GLIBC_2.4 sem_trywait F
+GLIBC_2.4 sem_unlink F
+GLIBC_2.4 sem_wait F
+GLIBC_2.4 send F
+GLIBC_2.4 sendmsg F
+GLIBC_2.4 sendto F
+GLIBC_2.4 sigaction F
+GLIBC_2.4 siglongjmp F
+GLIBC_2.4 sigwait F
+GLIBC_2.4 system F
+GLIBC_2.4 tcdrain F
+GLIBC_2.4 vfork F
+GLIBC_2.4 wait F
+GLIBC_2.4 waitpid F
+GLIBC_2.4 write F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/arm/libresolv.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/arm/libresolv.abilist
new file mode 100644
index 0000000000..c7023be532
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/arm/libresolv.abilist
@@ -0,0 +1,93 @@
+GLIBC_2.4 GLIBC_2.4 A
+GLIBC_2.4 __b64_ntop F
+GLIBC_2.4 __b64_pton F
+GLIBC_2.4 __dn_comp F
+GLIBC_2.4 __dn_count_labels F
+GLIBC_2.4 __dn_expand F
+GLIBC_2.4 __dn_skipname F
+GLIBC_2.4 __fp_nquery F
+GLIBC_2.4 __fp_query F
+GLIBC_2.4 __fp_resstat F
+GLIBC_2.4 __hostalias F
+GLIBC_2.4 __loc_aton F
+GLIBC_2.4 __loc_ntoa F
+GLIBC_2.4 __p_cdname F
+GLIBC_2.4 __p_cdnname F
+GLIBC_2.4 __p_class F
+GLIBC_2.4 __p_class_syms D 0x54
+GLIBC_2.4 __p_fqname F
+GLIBC_2.4 __p_fqnname F
+GLIBC_2.4 __p_option F
+GLIBC_2.4 __p_query F
+GLIBC_2.4 __p_rcode F
+GLIBC_2.4 __p_secstodate F
+GLIBC_2.4 __p_time F
+GLIBC_2.4 __p_type F
+GLIBC_2.4 __p_type_syms D 0x228
+GLIBC_2.4 __putlong F
+GLIBC_2.4 __putshort F
+GLIBC_2.4 __res_close F
+GLIBC_2.4 __res_dnok F
+GLIBC_2.4 __res_hnok F
+GLIBC_2.4 __res_hostalias F
+GLIBC_2.4 __res_isourserver F
+GLIBC_2.4 __res_mailok F
+GLIBC_2.4 __res_mkquery F
+GLIBC_2.4 __res_nameinquery F
+GLIBC_2.4 __res_nmkquery F
+GLIBC_2.4 __res_nquery F
+GLIBC_2.4 __res_nquerydomain F
+GLIBC_2.4 __res_nsearch F
+GLIBC_2.4 __res_nsend F
+GLIBC_2.4 __res_ownok F
+GLIBC_2.4 __res_queriesmatch F
+GLIBC_2.4 __res_query F
+GLIBC_2.4 __res_querydomain F
+GLIBC_2.4 __res_search F
+GLIBC_2.4 __res_send F
+GLIBC_2.4 __sym_ntop F
+GLIBC_2.4 __sym_ntos F
+GLIBC_2.4 __sym_ston F
+GLIBC_2.4 _gethtbyaddr F
+GLIBC_2.4 _gethtbyname F
+GLIBC_2.4 _gethtbyname2 F
+GLIBC_2.4 _gethtent F
+GLIBC_2.4 _getlong F
+GLIBC_2.4 _getshort F
+GLIBC_2.4 _res_opcodes D 0x40
+GLIBC_2.4 _sethtent F
+GLIBC_2.4 inet_net_ntop F
+GLIBC_2.4 inet_net_pton F
+GLIBC_2.4 inet_neta F
+GLIBC_2.4 res_gethostbyaddr F
+GLIBC_2.4 res_gethostbyname F
+GLIBC_2.4 res_gethostbyname2 F
+GLIBC_2.4 res_send_setqhook F
+GLIBC_2.4 res_send_setrhook 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/arm/librt.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/arm/librt.abilist
new file mode 100644
index 0000000000..b47aa0cc9c
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/arm/librt.abilist
@@ -0,0 +1,42 @@
+GLIBC_2.4 GLIBC_2.4 A
+GLIBC_2.4 aio_cancel F
+GLIBC_2.4 aio_cancel64 F
+GLIBC_2.4 aio_error F
+GLIBC_2.4 aio_error64 F
+GLIBC_2.4 aio_fsync F
+GLIBC_2.4 aio_fsync64 F
+GLIBC_2.4 aio_init F
+GLIBC_2.4 aio_read F
+GLIBC_2.4 aio_read64 F
+GLIBC_2.4 aio_return F
+GLIBC_2.4 aio_return64 F
+GLIBC_2.4 aio_suspend F
+GLIBC_2.4 aio_suspend64 F
+GLIBC_2.4 aio_write F
+GLIBC_2.4 aio_write64 F
+GLIBC_2.4 clock_getcpuclockid F
+GLIBC_2.4 clock_getres F
+GLIBC_2.4 clock_gettime F
+GLIBC_2.4 clock_nanosleep F
+GLIBC_2.4 clock_settime F
+GLIBC_2.4 lio_listio F
+GLIBC_2.4 lio_listio64 F
+GLIBC_2.4 mq_close F
+GLIBC_2.4 mq_getattr F
+GLIBC_2.4 mq_notify F
+GLIBC_2.4 mq_open F
+GLIBC_2.4 mq_receive F
+GLIBC_2.4 mq_send F
+GLIBC_2.4 mq_setattr F
+GLIBC_2.4 mq_timedreceive F
+GLIBC_2.4 mq_timedsend F
+GLIBC_2.4 mq_unlink F
+GLIBC_2.4 shm_open F
+GLIBC_2.4 shm_unlink F
+GLIBC_2.4 timer_create F
+GLIBC_2.4 timer_delete F
+GLIBC_2.4 timer_getoverrun F
+GLIBC_2.4 timer_gettime F
+GLIBC_2.4 timer_settime F
+GLIBC_2.7 GLIBC_2.7 A
+GLIBC_2.7 __mq_open_2 F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/arm/libthread_db.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/arm/libthread_db.abilist
new file mode 100644
index 0000000000..4cffcd2238
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/arm/libthread_db.abilist
@@ -0,0 +1,41 @@
+GLIBC_2.4 GLIBC_2.4 A
+GLIBC_2.4 td_init F
+GLIBC_2.4 td_log F
+GLIBC_2.4 td_symbol_list F
+GLIBC_2.4 td_ta_clear_event F
+GLIBC_2.4 td_ta_delete F
+GLIBC_2.4 td_ta_enable_stats F
+GLIBC_2.4 td_ta_event_addr F
+GLIBC_2.4 td_ta_event_getmsg F
+GLIBC_2.4 td_ta_get_nthreads F
+GLIBC_2.4 td_ta_get_ph F
+GLIBC_2.4 td_ta_get_stats F
+GLIBC_2.4 td_ta_map_id2thr F
+GLIBC_2.4 td_ta_map_lwp2thr F
+GLIBC_2.4 td_ta_new F
+GLIBC_2.4 td_ta_reset_stats F
+GLIBC_2.4 td_ta_set_event F
+GLIBC_2.4 td_ta_setconcurrency F
+GLIBC_2.4 td_ta_thr_iter F
+GLIBC_2.4 td_ta_tsd_iter F
+GLIBC_2.4 td_thr_clear_event F
+GLIBC_2.4 td_thr_dbresume F
+GLIBC_2.4 td_thr_dbsuspend F
+GLIBC_2.4 td_thr_event_enable F
+GLIBC_2.4 td_thr_event_getmsg F
+GLIBC_2.4 td_thr_get_info F
+GLIBC_2.4 td_thr_getfpregs F
+GLIBC_2.4 td_thr_getgregs F
+GLIBC_2.4 td_thr_getxregs F
+GLIBC_2.4 td_thr_getxregsize F
+GLIBC_2.4 td_thr_set_event F
+GLIBC_2.4 td_thr_setfpregs F
+GLIBC_2.4 td_thr_setgregs F
+GLIBC_2.4 td_thr_setprio F
+GLIBC_2.4 td_thr_setsigpending F
+GLIBC_2.4 td_thr_setxregs F
+GLIBC_2.4 td_thr_sigsetmask F
+GLIBC_2.4 td_thr_tls_get_addr F
+GLIBC_2.4 td_thr_tlsbase F
+GLIBC_2.4 td_thr_tsd F
+GLIBC_2.4 td_thr_validate F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/arm/libutil.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/arm/libutil.abilist
new file mode 100644
index 0000000000..0b4f746094
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/arm/libutil.abilist
@@ -0,0 +1,7 @@
+GLIBC_2.4 GLIBC_2.4 A
+GLIBC_2.4 forkpty F
+GLIBC_2.4 login F
+GLIBC_2.4 login_tty F
+GLIBC_2.4 logout F
+GLIBC_2.4 logwtmp F
+GLIBC_2.4 openpty F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/arm/localplt.data b/REORG.TODO/sysdeps/unix/sysv/linux/arm/localplt.data
new file mode 100644
index 0000000000..19d3299d98
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/arm/localplt.data
@@ -0,0 +1,19 @@
+libc.so: calloc
+libc.so: free
+libc.so: malloc
+libc.so: memalign
+libc.so: raise
+libc.so: realloc
+libm.so: matherr
+libpthread.so: raise
+# The dynamic loader needs __tls_get_addr for TLS.
+ld.so: __tls_get_addr
+# The main malloc is interposed into the dynamic linker, for
+# allocations after the initial link (when dlopen is used).
+ld.so: malloc
+ld.so: calloc
+ld.so: realloc
+ld.so: free
+# The TLS-enabled version of these functions is interposed from libc.so.
+ld.so: _dl_signal_error
+ld.so: _dl_catch_error
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/arm/lockf64.c b/REORG.TODO/sysdeps/unix/sysv/linux/arm/lockf64.c
new file mode 100644
index 0000000000..a88f5a784a
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/arm/lockf64.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/i386/lockf64.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/arm/lxstat.c b/REORG.TODO/sysdeps/unix/sysv/linux/arm/lxstat.c
new file mode 100644
index 0000000000..0efa0aea49
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/arm/lxstat.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/i386/lxstat.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/arm/makecontext.c b/REORG.TODO/sysdeps/unix/sysv/linux/arm/makecontext.c
new file mode 100644
index 0000000000..2ccd563869
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/arm/makecontext.c
@@ -0,0 +1,73 @@
+/* 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 <stdarg.h>
+#include <ucontext.h>
+
+/* Number of arguments that go in registers. */
+#define NREG_ARGS 4
+
+/* Take a context previously prepared via getcontext() and set to
+ call func() with the given int only args. */
+void
+__makecontext (ucontext_t *ucp, void (*func) (void), int argc, ...)
+{
+ extern void __startcontext (void);
+ unsigned long *funcstack;
+ va_list vl;
+ unsigned long *regptr;
+ unsigned int reg;
+ int misaligned;
+
+ /* Start at the top of stack. */
+ funcstack = (unsigned long *) (ucp->uc_stack.ss_sp + ucp->uc_stack.ss_size);
+
+ /* Ensure the stack stays eight byte aligned. */
+ misaligned = ((unsigned long) funcstack & 4) != 0;
+
+ if ((argc > NREG_ARGS) && (argc & 1) != 0)
+ misaligned = !misaligned;
+
+ if (misaligned)
+ funcstack -= 1;
+
+ va_start (vl, argc);
+
+ /* Reserve space for the on-stack arguments. */
+ if (argc > NREG_ARGS)
+ funcstack -= (argc - NREG_ARGS);
+
+ ucp->uc_mcontext.arm_sp = (unsigned long) funcstack;
+ ucp->uc_mcontext.arm_pc = (unsigned long) func;
+
+ /* Exit to startcontext() with the next context in R4 */
+ ucp->uc_mcontext.arm_r4 = (unsigned long) ucp->uc_link;
+ ucp->uc_mcontext.arm_lr = (unsigned long) __startcontext;
+
+ /* The first four arguments go into registers. */
+ regptr = &(ucp->uc_mcontext.arm_r0);
+
+ for (reg = 0; (reg < argc) && (reg < NREG_ARGS); reg++)
+ *regptr++ = va_arg (vl, unsigned long);
+
+ /* And the remainder on the stack. */
+ for (; reg < argc; reg++)
+ *funcstack++ = va_arg (vl, unsigned long);
+
+ va_end (vl);
+}
+weak_alias (__makecontext, makecontext)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/arm/profil-counter.h b/REORG.TODO/sysdeps/unix/sysv/linux/arm/profil-counter.h
new file mode 100644
index 0000000000..20346704b3
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/arm/profil-counter.h
@@ -0,0 +1,34 @@
+/* Low-level statistical profiling support function. Linux/ARM version.
+ Copyright (C) 1996-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <signal.h>
+#include <sigcontextinfo.h>
+
+void
+__profil_counter (int signo, const SIGCONTEXT scp)
+{
+ profil_count ((void *) GET_PC (scp));
+
+ /* This is a hack to prevent the compiler from implementing the
+ above function call as a sibcall. The sibcall would overwrite
+ the signal context. */
+ asm volatile ("");
+}
+#ifndef __profil_counter
+weak_alias (__profil_counter, profil_counter)
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/arm/readahead.c b/REORG.TODO/sysdeps/unix/sysv/linux/arm/readahead.c
new file mode 100644
index 0000000000..fa0279ed19
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/arm/readahead.c
@@ -0,0 +1,37 @@
+/* Provide kernel hint to read ahead.
+ Copyright (C) 2002-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <fcntl.h>
+#include <sys/types.h>
+#include <endian.h>
+
+#include <sysdep.h>
+#include <sys/syscall.h>
+
+
+ssize_t
+__readahead (int fd, off64_t offset, size_t count)
+{
+ return INLINE_SYSCALL (readahead, 5, fd, 0,
+ __LONG_LONG_PAIR ((off_t) (offset >> 32),
+ (off_t) (offset & 0xffffffff)),
+ count);
+}
+
+weak_alias (__readahead, readahead)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/arm/readdir64.c b/REORG.TODO/sysdeps/unix/sysv/linux/arm/readdir64.c
new file mode 100644
index 0000000000..2ea26dd409
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/arm/readdir64.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/i386/readdir64.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/arm/readdir64_r.c b/REORG.TODO/sysdeps/unix/sysv/linux/arm/readdir64_r.c
new file mode 100644
index 0000000000..9f54f897e3
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/arm/readdir64_r.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/i386/readdir64_r.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/arm/readelflib.c b/REORG.TODO/sysdeps/unix/sysv/linux/arm/readelflib.c
new file mode 100644
index 0000000000..65273bcf77
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/arm/readelflib.c
@@ -0,0 +1,79 @@
+/* Copyright (C) 1999-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Andreas Jaeger <aj@suse.de>, 1999 and
+ Jakub Jelinek <jakub@redhat.com>, 1999.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+
+int process_elf32_file (const char *file_name, const char *lib, int *flag,
+ unsigned int *osversion, char **soname,
+ void *file_contents, size_t file_length);
+int process_elf64_file (const char *file_name, const char *lib, int *flag,
+ unsigned int *osversion, char **soname,
+ void *file_contents, size_t file_length);
+
+/* Returns 0 if everything is ok, != 0 in case of error. */
+int
+process_elf_file (const char *file_name, const char *lib, int *flag,
+ unsigned int *osversion, char **soname, void *file_contents,
+ size_t file_length)
+{
+ ElfW(Ehdr) *elf_header = (ElfW(Ehdr) *) file_contents;
+ int ret;
+
+ if (elf_header->e_ident [EI_CLASS] == ELFCLASS32)
+ {
+ Elf32_Ehdr *elf32_header = (Elf32_Ehdr *) elf_header;
+
+ ret = process_elf32_file (file_name, lib, flag, osversion, soname,
+ file_contents, file_length);
+
+ if (!ret && EF_ARM_EABI_VERSION (elf32_header->e_flags) == EF_ARM_EABI_VER5)
+ {
+ if (elf32_header->e_flags & EF_ARM_ABI_FLOAT_HARD)
+ *flag = FLAG_ARM_LIBHF|FLAG_ELF_LIBC6;
+ else if (elf32_header->e_flags & EF_ARM_ABI_FLOAT_SOFT)
+ *flag = FLAG_ARM_LIBSF|FLAG_ELF_LIBC6;
+ else
+ /* We must assume the unmarked objects are compatible
+ with all ABI variants. Such objects may have been
+ generated in a transitional period when the ABI
+ tags were not added to all objects. */
+ *flag = FLAG_ELF_LIBC6;
+ }
+ }
+ else
+ {
+ ret = process_elf64_file (file_name, lib, flag, osversion, soname,
+ file_contents, file_length);
+ /* AArch64 libraries are always libc.so.6+. */
+ if (!ret)
+ *flag = FLAG_AARCH64_LIB64|FLAG_ELF_LIBC6;
+ }
+ return ret;
+}
+
+#undef __ELF_NATIVE_CLASS
+#undef process_elf_file
+#define process_elf_file process_elf32_file
+#define __ELF_NATIVE_CLASS 32
+#include "elf/readelflib.c"
+
+#undef __ELF_NATIVE_CLASS
+#undef process_elf_file
+#define process_elf_file process_elf64_file
+#define __ELF_NATIVE_CLASS 64
+#include "elf/readelflib.c"
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/arm/register-dump.h b/REORG.TODO/sysdeps/unix/sysv/linux/arm/register-dump.h
new file mode 100644
index 0000000000..0f2bed7d1d
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/arm/register-dump.h
@@ -0,0 +1,136 @@
+/* Dump registers.
+ Copyright (C) 1998-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Philip Blundell <pb@nexus.co.uk>, 1998.
+
+ 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>
+#include <sys/ucontext.h>
+
+/* We will print the register dump in this format:
+
+ R0: XXXXXXXX R1: XXXXXXXX R2: XXXXXXXX R3: XXXXXXXX
+ R4: XXXXXXXX R5: XXXXXXXX R6: XXXXXXXX R7: XXXXXXXX
+ R8: XXXXXXXX R9: XXXXXXXX SL: XXXXXXXX FP: XXXXXXXX
+ IP: XXXXXXXX SP: XXXXXXXX LR: XXXXXXXX PC: XXXXXXXX
+
+ CPSR: XXXXXXXX
+
+ Trap: XXXXXXXX Error: XXXXXXXX OldMask: XXXXXXXX
+ Addr: XXXXXXXX
+
+ */
+
+static void
+hexvalue (unsigned long int value, char *buf, size_t len)
+{
+ char *cp = _itoa_word (value, buf + len, 16, 0);
+ while (cp > buf)
+ *--cp = '0';
+}
+
+static void
+register_dump (int fd, const struct ucontext *ctx)
+{
+ char regs[21][8];
+ struct iovec iov[97];
+ 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->uc_mcontext.arm_r0, regs[0], 8);
+ hexvalue (ctx->uc_mcontext.arm_r1, regs[1], 8);
+ hexvalue (ctx->uc_mcontext.arm_r2, regs[2], 8);
+ hexvalue (ctx->uc_mcontext.arm_r3, regs[3], 8);
+ hexvalue (ctx->uc_mcontext.arm_r4, regs[4], 8);
+ hexvalue (ctx->uc_mcontext.arm_r5, regs[5], 8);
+ hexvalue (ctx->uc_mcontext.arm_r6, regs[6], 8);
+ hexvalue (ctx->uc_mcontext.arm_r7, regs[7], 8);
+ hexvalue (ctx->uc_mcontext.arm_r8, regs[8], 8);
+ hexvalue (ctx->uc_mcontext.arm_r9, regs[9], 8);
+ hexvalue (ctx->uc_mcontext.arm_r10, regs[10], 8);
+ hexvalue (ctx->uc_mcontext.arm_fp, regs[11], 8);
+ hexvalue (ctx->uc_mcontext.arm_ip, regs[12], 8);
+ hexvalue (ctx->uc_mcontext.arm_sp, regs[13], 8);
+ hexvalue (ctx->uc_mcontext.arm_lr, regs[14], 8);
+ hexvalue (ctx->uc_mcontext.arm_pc, regs[15], 8);
+ hexvalue (ctx->uc_mcontext.arm_cpsr, regs[16], 8);
+ hexvalue (ctx->uc_mcontext.trap_no, regs[17], 8);
+ hexvalue (ctx->uc_mcontext.error_code, regs[18], 8);
+ hexvalue (ctx->uc_mcontext.oldmask, regs[19], 8);
+ hexvalue (ctx->uc_mcontext.fault_address, regs[20], 8);
+
+ /* Generate the output. */
+ ADD_STRING ("Register dump:\n\n R0: ");
+ ADD_MEM (regs[0], 8);
+ ADD_STRING (" R1: ");
+ ADD_MEM (regs[1], 8);
+ ADD_STRING (" R2: ");
+ ADD_MEM (regs[2], 8);
+ ADD_STRING (" R3: ");
+ ADD_MEM (regs[3], 8);
+ ADD_STRING ("\n R4: ");
+ ADD_MEM (regs[4], 8);
+ ADD_STRING (" R5: ");
+ ADD_MEM (regs[5], 8);
+ ADD_STRING (" R6: ");
+ ADD_MEM (regs[6], 8);
+ ADD_STRING (" R7: ");
+ ADD_MEM (regs[7], 8);
+ ADD_STRING ("\n R8: ");
+ ADD_MEM (regs[8], 8);
+ ADD_STRING (" R9: ");
+ ADD_MEM (regs[9], 8);
+ ADD_STRING (" SL: ");
+ ADD_MEM (regs[10], 8);
+ ADD_STRING (" FP: ");
+ ADD_MEM (regs[11], 8);
+ ADD_STRING ("\n IP: ");
+ ADD_MEM (regs[12], 8);
+ ADD_STRING (" SP: ");
+ ADD_MEM (regs[13], 8);
+ ADD_STRING (" LR: ");
+ ADD_MEM (regs[14], 8);
+ ADD_STRING (" PC: ");
+ ADD_MEM (regs[15], 8);
+ ADD_STRING ("\n\n CPSR: ");
+ ADD_MEM (regs[16], 8);
+ ADD_STRING ("\n\n Trap: ");
+ ADD_MEM (regs[17], 8);
+ ADD_STRING (" Error: ");
+ ADD_MEM (regs[18], 8);
+ ADD_STRING (" OldMask: ");
+ ADD_MEM (regs[19], 8);
+ ADD_STRING ("\n Addr: ");
+ ADD_MEM (regs[20], 8);
+
+ ADD_STRING ("\n");
+
+ /* Write the stuff out. */
+ writev (fd, iov, nr);
+}
+
+
+#define REGISTER_DUMP register_dump (fd, ctx)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/arm/scandir64.c b/REORG.TODO/sysdeps/unix/sysv/linux/arm/scandir64.c
new file mode 100644
index 0000000000..506fd8877c
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/arm/scandir64.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/i386/scandir64.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/arm/setcontext.S b/REORG.TODO/sysdeps/unix/sysv/linux/arm/setcontext.S
new file mode 100644
index 0000000000..db6aebfbd4
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/arm/setcontext.S
@@ -0,0 +1,111 @@
+/* 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/>. */
+
+/* ??? Needs more rearrangement for the LDM to handle thumb mode. */
+#define NO_THUMB
+#include <sysdep.h>
+#include <rtld-global-offsets.h>
+
+#include "ucontext_i.h"
+
+ .syntax unified
+ .text
+
+/* int setcontext (const ucontext_t *ucp) */
+
+ENTRY(__setcontext)
+ mov r4, r0
+ add r0, r0, #UCONTEXT_REGSPACE
+
+ /* Restore the VFP registers. Copied from arm/__longjmp.S. */
+#ifdef PIC
+ ldr r2, 1f
+ ldr r1, .Lrtld_global_ro
+0: add r2, pc, r2
+ ldr r2, [r2, r1]
+ ldr r2, [r2, #RTLD_GLOBAL_RO_DL_HWCAP_OFFSET]
+#else
+ ldr r2, .Lhwcap
+ ldr r2, [r2, #0]
+#endif
+
+#ifdef __SOFTFP__
+ tst r2, #HWCAP_ARM_VFP
+ beq .Lno_vfp_sc
+#endif
+
+ /* Following instruction is vldmia r0!, {d8-d15}. */
+ ldc p11, cr8, [r0], #64
+ /* Restore the floating-point status register. */
+ ldr r1, [r0], #4
+ /* Following instruction is fmxr fpscr, r1. */
+ mcr p10, 7, r1, cr1, cr0, 0
+.Lno_vfp_sc:
+ tst r2, #HWCAP_ARM_IWMMXT
+ beq .Lno_iwmmxt_sc
+
+ /* Restore the call-preserved iWMMXt registers. */
+ /* Following instructions are wldrd wr10, [r0], #8 (etc.) */
+ ldcl p1, cr10, [r0], #8
+ ldcl p1, cr11, [r0], #8
+ ldcl p1, cr12, [r0], #8
+ ldcl p1, cr13, [r0], #8
+ ldcl p1, cr14, [r0], #8
+ ldcl p1, cr15, [r0], #8
+.Lno_iwmmxt_sc:
+
+ /* Now bring back the signal status. */
+ mov r0, #SIG_SETMASK
+ add r1, r4, #UCONTEXT_SIGMASK
+ mov r2, #0
+ bl PLTJMP(__sigprocmask)
+
+ /* Loading r0-r3 makes makecontext easier. */
+ add r14, r4, #MCONTEXT_ARM_R0
+ ldmia r14, {r0-r12}
+ ldr r13, [r14, #(MCONTEXT_ARM_SP - MCONTEXT_ARM_R0)]
+ add r14, r14, #(MCONTEXT_ARM_LR - MCONTEXT_ARM_R0)
+ ldmia r14, {r14, pc}
+
+END(setcontext)
+weak_alias(__setcontext, setcontext)
+
+ /* Called when a makecontext() context returns. Start the
+ context in R4 or fall through to exit(). */
+ /* Unwind descriptors are looked up based on PC - 2, so we have to
+ make sure to mark the instruction preceding the __startcontext
+ label as .cantunwind. */
+ .fnstart
+ .cantunwind
+ nop
+ENTRY(__startcontext)
+ movs r0, r4
+ bne PLTJMP(__setcontext)
+
+ @ New context was 0 - exit
+ b PLTJMP(HIDDEN_JUMPTARGET(exit))
+ .fnend
+END(__startcontext)
+
+#ifdef PIC
+1: .long _GLOBAL_OFFSET_TABLE_ - 0b - PC_OFS
+.Lrtld_global_ro:
+ .long C_SYMBOL_NAME(_rtld_global_ro)(GOT)
+#else
+.Lhwcap:
+ .long C_SYMBOL_NAME(_dl_hwcap)
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/arm/shlib-versions b/REORG.TODO/sysdeps/unix/sysv/linux/arm/shlib-versions
new file mode 100644
index 0000000000..9b169530d4
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/arm/shlib-versions
@@ -0,0 +1,9 @@
+DEFAULT GLIBC_2.4
+
+%ifdef HAVE_ARM_PCS_VFP
+# The EABI-derived hard-float ABI uses a new dynamic linker.
+ld=ld-linux-armhf.so.3
+%else
+# The EABI-derived soft-float ABI continues to use ld-linux.so.3.
+ld=ld-linux.so.3
+%endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/arm/sigaction.c b/REORG.TODO/sysdeps/unix/sysv/linux/arm/sigaction.c
new file mode 100644
index 0000000000..e4c0d976b0
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/arm/sigaction.c
@@ -0,0 +1,84 @@
+/* Copyright (C) 1997-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <signal.h>
+#include <string.h>
+
+#include <sysdep.h>
+#include <sys/syscall.h>
+
+/* The difference here is that the sigaction structure used in the
+ kernel is not the same as we use in the libc. Therefore we must
+ translate it here. */
+#include <kernel_sigaction.h>
+
+#define SA_RESTORER 0x04000000
+
+extern void __default_sa_restorer (void);
+extern void __default_rt_sa_restorer (void);
+
+/* When RT signals are in use we need to use a different return stub. */
+#define choose_restorer(flags) \
+ (flags & SA_SIGINFO) ? __default_rt_sa_restorer \
+ : __default_sa_restorer
+
+/* If ACT is not NULL, change the action for SIG to *ACT.
+ If OACT is not NULL, put the old action for SIG in *OACT. */
+int
+__libc_sigaction (int sig, const struct sigaction *act, struct sigaction *oact)
+{
+ int result;
+
+ struct kernel_sigaction kact, koact;
+
+ if (act)
+ {
+ kact.k_sa_handler = act->sa_handler;
+ memcpy (&kact.sa_mask, &act->sa_mask, sizeof (sigset_t));
+ kact.sa_flags = act->sa_flags;
+#ifdef HAVE_SA_RESTORER
+ if (kact.sa_flags & SA_RESTORER)
+ kact.sa_restorer = act->sa_restorer;
+ else
+ {
+ kact.sa_restorer = choose_restorer (kact.sa_flags);
+ kact.sa_flags |= SA_RESTORER;
+ }
+#endif
+ }
+
+ /* XXX The size argument hopefully will have to be changed to the
+ real size of the user-level sigset_t. */
+ result = INLINE_SYSCALL (rt_sigaction, 4, sig,
+ act ? &kact : NULL,
+ oact ? &koact : NULL, _NSIG / 8);
+
+ if (oact && result >= 0)
+ {
+ oact->sa_handler = koact.k_sa_handler;
+ memcpy (&oact->sa_mask, &koact.sa_mask, sizeof (sigset_t));
+ oact->sa_flags = koact.sa_flags;
+#ifdef HAVE_SA_RESTORER
+ oact->sa_restorer = koact.sa_restorer;
+#endif
+ }
+ return result;
+}
+libc_hidden_def (__libc_sigaction)
+
+#include <nptl/sigaction.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/arm/sigcontextinfo.h b/REORG.TODO/sysdeps/unix/sysv/linux/arm/sigcontextinfo.h
new file mode 100644
index 0000000000..f2a66d154d
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/arm/sigcontextinfo.h
@@ -0,0 +1,48 @@
+/* Copyright (C) 1999-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Philip Blundell <philb@gnu.org>, 1999.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sys/ucontext.h>
+
+#define SIGCONTEXT siginfo_t *_si, struct ucontext *
+#define SIGCONTEXT_EXTRA_ARGS _si,
+
+/* The sigcontext structure changed between 2.0 and 2.1 kernels. On any
+ modern system we should be able to assume that the "new" format will be
+ in use. */
+
+#define GET_PC(ctx) ((void *) (ctx)->uc_mcontext.arm_pc)
+#define GET_FRAME(ctx) ADVANCE_STACK_FRAME ((void *) ctx->uc_mcontext.arm_fp)
+#define GET_STACK(ctx) ((void *) (ctx)->uc_mcontext.arm_sp)
+
+#define ADVANCE_STACK_FRAME(frm) \
+ ((struct layout *)frm - 1)
+
+#define CALL_SIGHANDLER(handler, signo, ctx) \
+ (handler)((signo), SIGCONTEXT_EXTRA_ARGS (ctx))
+
+/* There is no reliable way to get the sigcontext unless we use a
+ three-argument signal handler. */
+#define __sigaction(sig, act, oact) ({ \
+ (act)->sa_flags |= SA_SIGINFO; \
+ (__sigaction) (sig, act, oact); \
+})
+
+#define sigaction(sig, act, oact) ({ \
+ (act)->sa_flags |= SA_SIGINFO; \
+ (sigaction) (sig, act, oact); \
+})
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/arm/sigrestorer.S b/REORG.TODO/sysdeps/unix/sysv/linux/arm/sigrestorer.S
new file mode 100644
index 0000000000..01136bef0e
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/arm/sigrestorer.S
@@ -0,0 +1,84 @@
+/* Copyright (C) 1999-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+
+/* If no SA_RESTORER function was specified by the application we use
+ one of these. This avoids the need for the kernel to synthesise a return
+ instruction on the stack, which would involve expensive cache flushes.
+
+ Nowadays (2.6 series, and somewhat earlier) the kernel uses a high page
+ for signal trampolines, so the cache flushes are not an issue. But since
+ we do not have a vDSO, continue to use these so that we can provide
+ unwind information.
+
+ Start the unwind tables at least one instruction before the signal
+ trampoline, because the unwinder will assume we are returning after
+ a call site. */
+
+/* Used in ENTRY. */
+#undef cfi_startproc
+#define cfi_startproc \
+ .cfi_startproc simple; \
+ .cfi_signal_frame
+
+/* The CFA is not computed / used correctly here; this is neither trivial to
+ do, nor is it needed. */
+#define CFI \
+ cfi_def_cfa (sp, 0); \
+ cfi_offset (r0, OFFSET + 0 * 4); \
+ cfi_offset (r1, OFFSET + 1 * 4); \
+ cfi_offset (r2, OFFSET + 2 * 4); \
+ cfi_offset (r3, OFFSET + 3 * 4); \
+ cfi_offset (r4, OFFSET + 4 * 4); \
+ cfi_offset (r5, OFFSET + 5 * 4); \
+ cfi_offset (r6, OFFSET + 6 * 4); \
+ cfi_offset (r7, OFFSET + 7 * 4); \
+ cfi_offset (r8, OFFSET + 8 * 4); \
+ cfi_offset (r9, OFFSET + 9 * 4); \
+ cfi_offset (r10, OFFSET + 10 * 4); \
+ cfi_offset (r11, OFFSET + 11 * 4); \
+ cfi_offset (r12, OFFSET + 12 * 4); \
+ cfi_offset (r13, OFFSET + 13 * 4); \
+ cfi_offset (r14, OFFSET + 14 * 4); \
+ cfi_offset (r15, OFFSET + 15 * 4)
+
+#define OFFSET 32
+ .fnstart
+ .save {r0-r15}
+ .pad #OFFSET
+ nop
+ENTRY(__default_sa_restorer)
+ CFI
+ mov r7, $SYS_ify(sigreturn)
+ swi 0x0
+ .fnend
+END(__default_sa_restorer)
+#undef OFFSET
+
+#define OFFSET 160
+ .fnstart
+ .save {r0-r15}
+ .pad #OFFSET
+ nop
+ENTRY(__default_rt_sa_restorer)
+ CFI
+ mov r7, $SYS_ify(rt_sigreturn)
+ swi 0x0
+ .fnend
+END(__default_rt_sa_restorer)
+#undef OFFSET
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/arm/swapcontext.S b/REORG.TODO/sysdeps/unix/sysv/linux/arm/swapcontext.S
new file mode 100644
index 0000000000..555da1fe0a
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/arm/swapcontext.S
@@ -0,0 +1,63 @@
+/* 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>
+
+#include "ucontext_i.h"
+
+ .syntax unified
+ .text
+
+/* int swapcontext (ucontext_t *oucp, const ucontext_t *ucp) */
+
+ENTRY(swapcontext)
+
+ /* Have getcontext() do most of the work then fix up
+ LR afterwards. Save R3 to keep the stack aligned. */
+ push {r0,r1,r3,r14}
+ cfi_adjust_cfa_offset (16)
+ cfi_rel_offset (r0,0)
+ cfi_rel_offset (r1,4)
+ cfi_rel_offset (r3,8)
+ cfi_rel_offset (r14,12)
+
+ bl __getcontext
+ mov r4, r0
+
+ pop {r0,r1,r3,r14}
+ cfi_adjust_cfa_offset (-16)
+ cfi_restore (r0)
+ cfi_restore (r1)
+ cfi_restore (r3)
+ cfi_restore (r14)
+
+ /* Exit if getcontext() failed. */
+ cmp r4, #0
+ itt ne
+ movne r0, r4
+ RETINSTR(ne, r14)
+
+ /* Fix up LR and the PC. */
+ str r13,[r0, #MCONTEXT_ARM_SP]
+ str r14,[r0, #MCONTEXT_ARM_LR]
+ str r14,[r0, #MCONTEXT_ARM_PC]
+
+ /* And swap using swapcontext(). */
+ mov r0, r1
+ b __setcontext
+
+END(swapcontext)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/arm/sys/elf.h b/REORG.TODO/sysdeps/unix/sysv/linux/arm/sys/elf.h
new file mode 100644
index 0000000000..44af8d2b1e
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/arm/sys/elf.h
@@ -0,0 +1,25 @@
+/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_ELF_H
+#define _SYS_ELF_H 1
+
+#warning "This header is obsolete; use <sys/procfs.h> instead."
+
+#include <sys/procfs.h>
+
+#endif /* sys/elf.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/arm/sys/io.h b/REORG.TODO/sysdeps/unix/sysv/linux/arm/sys/io.h
new file mode 100644
index 0000000000..f4337823ce
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/arm/sys/io.h
@@ -0,0 +1,47 @@
+/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_IO_H
+
+#define _SYS_IO_H 1
+#include <features.h>
+
+__BEGIN_DECLS
+
+/* If TURN_ON is TRUE, request for permission to do direct i/o on the
+ port numbers in the range [FROM,FROM+NUM-1]. Otherwise, turn I/O
+ permission off for that range. This call requires root privileges. */
+extern int ioperm (unsigned long int __from, unsigned long int __num,
+ int __turn_on) __THROW;
+
+/* Set the I/O privilege level to LEVEL. If LEVEL is nonzero,
+ permission to access any I/O port is granted. This call requires
+ root privileges. */
+extern int iopl (int __level) __THROW;
+
+/* The functions that actually perform reads and writes. */
+extern unsigned char inb (unsigned long int __port) __THROW;
+extern unsigned short int inw (unsigned long int __port) __THROW;
+extern unsigned long int inl (unsigned long int __port) __THROW;
+
+extern void outb (unsigned char __value, unsigned long int __port) __THROW;
+extern void outw (unsigned short __value, unsigned long int __port) __THROW;
+extern void outl (unsigned long __value, unsigned long int __port) __THROW;
+
+__END_DECLS
+
+#endif /* _SYS_IO_H */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/arm/sys/procfs.h b/REORG.TODO/sysdeps/unix/sysv/linux/arm/sys/procfs.h
new file mode 100644
index 0000000000..1b1b153730
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/arm/sys/procfs.h
@@ -0,0 +1,122 @@
+/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_PROCFS_H
+#define _SYS_PROCFS_H 1
+
+/* This is somewhat modelled after the file of the same name on SVR4
+ systems. It provides a definition of the core file format for ELF
+ used on Linux. It doesn't have anything to do with the /proc file
+ system, even though Linux has one.
+
+ Anyway, the whole purpose of this file is for GDB and GDB only.
+ Don't read too much into it. Don't use it for anything other than
+ GDB unless you know what you are doing. */
+
+#include <features.h>
+#include <sys/time.h>
+#include <sys/types.h>
+#include <sys/user.h>
+
+__BEGIN_DECLS
+
+/* Type for a general-purpose register. */
+typedef unsigned long elf_greg_t;
+
+/* And the whole bunch of them. We could have used `struct
+ user_regs' directly in the typedef, but tradition says that
+ the register set is an array, which does have some peculiar
+ semantics, so leave it that way. */
+#define ELF_NGREG (sizeof (struct user_regs) / sizeof(elf_greg_t))
+typedef elf_greg_t elf_gregset_t[ELF_NGREG];
+
+/* Register set for the floating-point registers. */
+typedef struct user_fpregs elf_fpregset_t;
+
+/* Signal info. */
+struct elf_siginfo
+ {
+ int si_signo; /* Signal number. */
+ int si_code; /* Extra code. */
+ int si_errno; /* Errno. */
+ };
+
+/* Definitions to generate Intel SVR4-like core files. These mostly
+ have the same names as the SVR4 types with "elf_" tacked on the
+ front to prevent clashes with Linux definitions, and the typedef
+ forms have been avoided. This is mostly like the SVR4 structure,
+ but more Linuxy, with things that Linux does not support and which
+ GDB doesn't really use excluded. */
+
+struct elf_prstatus
+ {
+ struct elf_siginfo pr_info; /* Info associated with signal. */
+ short int pr_cursig; /* Current signal. */
+ unsigned long int pr_sigpend; /* Set of pending signals. */
+ unsigned long int pr_sighold; /* Set of held signals. */
+ __pid_t pr_pid;
+ __pid_t pr_ppid;
+ __pid_t pr_pgrp;
+ __pid_t pr_sid;
+ struct timeval pr_utime; /* User time. */
+ struct timeval pr_stime; /* System time. */
+ struct timeval pr_cutime; /* Cumulative user time. */
+ struct timeval pr_cstime; /* Cumulative system time. */
+ elf_gregset_t pr_reg; /* GP registers. */
+ int pr_fpvalid; /* True if math copro being used. */
+ };
+
+
+#define ELF_PRARGSZ (80) /* Number of chars for args. */
+
+struct elf_prpsinfo
+ {
+ char pr_state; /* Numeric process state. */
+ char pr_sname; /* Char for pr_state. */
+ char pr_zomb; /* Zombie. */
+ char pr_nice; /* Nice val. */
+ unsigned long int pr_flag; /* Flags. */
+ unsigned short int pr_uid;
+ unsigned short int pr_gid;
+ int pr_pid, pr_ppid, pr_pgrp, pr_sid;
+ /* Lots missing */
+ char pr_fname[16]; /* Filename of executable. */
+ char pr_psargs[ELF_PRARGSZ]; /* Initial part of arg list. */
+ };
+
+/* The rest of this file provides the types for emulation of the
+ Solaris <proc_service.h> interfaces that should be implemented by
+ users of libthread_db. */
+
+/* Addresses. */
+typedef void *psaddr_t;
+
+/* Register sets. Linux has different names. */
+typedef elf_gregset_t prgregset_t;
+typedef elf_fpregset_t prfpregset_t;
+
+/* We don't have any differences between processes and threads,
+ therefore have only one PID type. */
+typedef __pid_t lwpid_t;
+
+/* Process status and info. In the end we do provide typedefs for them. */
+typedef struct elf_prstatus prstatus_t;
+typedef struct elf_prpsinfo prpsinfo_t;
+
+__END_DECLS
+
+#endif /* sys/procfs.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/arm/sys/ucontext.h b/REORG.TODO/sysdeps/unix/sysv/linux/arm/sys/ucontext.h
new file mode 100644
index 0000000000..0ce9b14ba5
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/arm/sys/ucontext.h
@@ -0,0 +1,114 @@
+/* Copyright (C) 1998-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+/* System V/ARM ABI compliant context switching support. */
+
+#ifndef _SYS_UCONTEXT_H
+#define _SYS_UCONTEXT_H 1
+
+#include <features.h>
+
+#include <bits/types/sigset_t.h>
+#include <bits/sigcontext.h>
+#include <bits/types/stack_t.h>
+
+
+#ifdef __USE_MISC
+typedef int greg_t;
+
+/* Number of general registers. */
+# define NGREG 18
+
+/* Container for all general registers. */
+typedef greg_t gregset_t[NGREG];
+
+/* Number of each register is the `gregset_t' array. */
+enum
+{
+ REG_R0 = 0,
+# define REG_R0 REG_R0
+ REG_R1 = 1,
+# define REG_R1 REG_R1
+ REG_R2 = 2,
+# define REG_R2 REG_R2
+ REG_R3 = 3,
+# define REG_R3 REG_R3
+ REG_R4 = 4,
+# define REG_R4 REG_R4
+ REG_R5 = 5,
+# define REG_R5 REG_R5
+ REG_R6 = 6,
+# define REG_R6 REG_R6
+ REG_R7 = 7,
+# define REG_R7 REG_R7
+ REG_R8 = 8,
+# define REG_R8 REG_R8
+ REG_R9 = 9,
+# define REG_R9 REG_R9
+ REG_R10 = 10,
+# define REG_R10 REG_R10
+ REG_R11 = 11,
+# define REG_R11 REG_R11
+ REG_R12 = 12,
+# define REG_R12 REG_R12
+ REG_R13 = 13,
+# define REG_R13 REG_R13
+ REG_R14 = 14,
+# define REG_R14 REG_R14
+ REG_R15 = 15
+# define REG_R15 REG_R15
+};
+
+struct _libc_fpstate
+{
+ struct
+ {
+ unsigned int sign1:1;
+ unsigned int unused:15;
+ unsigned int sign2:1;
+ unsigned int exponent:14;
+ unsigned int j:1;
+ unsigned int mantissa1:31;
+ unsigned int mantissa0:32;
+ } fpregs[8];
+ unsigned int fpsr:32;
+ unsigned int fpcr:32;
+ unsigned char ftype[8];
+ unsigned int init_flag;
+};
+/* Structure to describe FPU registers. */
+typedef struct _libc_fpstate fpregset_t;
+#endif
+
+/* Context to describe whole processor state. This only describes
+ the core registers; coprocessor registers get saved elsewhere
+ (e.g. in uc_regspace, or somewhere unspecified on the stack
+ during non-RT signal handlers). */
+typedef struct sigcontext mcontext_t;
+
+/* Userlevel context. */
+typedef struct ucontext
+ {
+ unsigned long uc_flags;
+ struct ucontext *uc_link;
+ stack_t uc_stack;
+ mcontext_t uc_mcontext;
+ sigset_t uc_sigmask;
+ unsigned long uc_regspace[128] __attribute__((__aligned__(8)));
+ } ucontext_t;
+
+#endif /* sys/ucontext.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/arm/sys/user.h b/REORG.TODO/sysdeps/unix/sysv/linux/arm/sys/user.h
new file mode 100644
index 0000000000..46ca428e66
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/arm/sys/user.h
@@ -0,0 +1,71 @@
+/* Copyright (C) 1998-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_USER_H
+#define _SYS_USER_H 1
+
+/* The whole purpose of this file is for GDB and GDB only. Don't read
+ too much into it. Don't use it for anything other than GDB unless
+ you know what you are doing. */
+
+struct user_fpregs
+{
+ struct fp_reg
+ {
+ unsigned int sign1:1;
+ unsigned int unused:15;
+ unsigned int sign2:1;
+ unsigned int exponent:14;
+ unsigned int j:1;
+ unsigned int mantissa1:31;
+ unsigned int mantissa0:32;
+ } fpregs[8];
+ unsigned int fpsr:32;
+ unsigned int fpcr:32;
+ unsigned char ftype[8];
+ unsigned int init_flag;
+};
+
+struct user_regs
+{
+ unsigned long int uregs[18];
+};
+
+struct user
+{
+ struct user_regs regs; /* General registers */
+ int u_fpvalid; /* True if math co-processor being used. */
+
+ unsigned long int u_tsize; /* Text segment size (pages). */
+ unsigned long int u_dsize; /* Data segment size (pages). */
+ unsigned long int u_ssize; /* Stack segment size (pages). */
+
+ unsigned long start_code; /* Starting virtual address of text. */
+ unsigned long start_stack; /* Starting virtual address of stack. */
+
+ long int signal; /* Signal that caused the core dump. */
+ int reserved; /* No longer used */
+ struct user_regs *u_ar0; /* help gdb to find the general registers. */
+
+ unsigned long magic; /* uniquely identify a core file */
+ char u_comm[32]; /* User command that was responsible */
+ int u_debugreg[8];
+ struct user_fpregs u_fp; /* Floating point registers */
+ struct user_fpregs *u_fp0; /* help gdb to find the FP registers. */
+};
+
+#endif /* sys/user.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/arm/syscall.S b/REORG.TODO/sysdeps/unix/sysv/linux/arm/syscall.S
new file mode 100644
index 0000000000..c9528fff40
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/arm/syscall.S
@@ -0,0 +1,48 @@
+/* Copyright (C) 2005-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+
+/* In the EABI syscall interface, we don't need a special syscall to
+ implement syscall(). It won't work reliably with 64-bit arguments
+ (but that is true on many modern platforms). */
+
+ENTRY (syscall)
+ mov ip, sp
+ push {r4, r5, r6, r7}
+ cfi_adjust_cfa_offset (16)
+ cfi_rel_offset (r4, 0)
+ cfi_rel_offset (r5, 4)
+ cfi_rel_offset (r6, 8)
+ cfi_rel_offset (r7, 12)
+ mov r7, r0
+ mov r0, r1
+ mov r1, r2
+ mov r2, r3
+ ldmfd ip, {r3, r4, r5, r6}
+ swi 0x0
+ pop {r4, r5, r6, r7}
+ cfi_adjust_cfa_offset (-16)
+ cfi_restore (r4)
+ cfi_restore (r5)
+ cfi_restore (r6)
+ cfi_restore (r7)
+ cmn r0, #4096
+ it cc
+ RETINSTR(cc, lr)
+ b PLTJMP(syscall_error)
+PSEUDO_END (syscall)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/arm/syscalls.list b/REORG.TODO/sysdeps/unix/sysv/linux/arm/syscalls.list
new file mode 100644
index 0000000000..13441f7eb4
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/arm/syscalls.list
@@ -0,0 +1,33 @@
+# File name Caller Syscall name # args Strong name Weak names
+
+chown - chown32 i:sii __chown chown
+lchown - lchown32 i:sii __lchown lchown
+fchown - fchown32 i:iii __fchown fchown
+
+getegid - getegid32 Ei: __getegid getegid
+geteuid - geteuid32 Ei: __geteuid geteuid
+getgid - getgid32 Ei: __getgid getgid
+getuid - getuid32 Ei: __getuid getuid
+getresgid - getresgid32 i:ppp __getresgid getresgid
+getresuid - getresuid32 i:ppp __getresuid getresuid
+getgroups - getgroups32 i:ip __getgroups getgroups
+
+setfsgid - setfsgid32 Ei:i setfsgid
+setfsuid - setfsuid32 Ei:i setfsuid
+
+prlimit64 EXTRA prlimit64 i:iipp prlimit64
+
+fanotify_mark EXTRA fanotify_mark i:iiiiis fanotify_mark
+
+personality EXTRA personality Ei:i __personality personality
+
+# proper socket implementations:
+bind - bind i:ipi __bind bind
+getpeername - getpeername i:ipp __getpeername getpeername
+getsockname - getsockname i:ipp __getsockname getsockname
+getsockopt - getsockopt i:iiiBN __getsockopt getsockopt
+listen - listen i:ii __listen listen
+setsockopt - setsockopt i:iiibn __setsockopt setsockopt
+shutdown - shutdown i:ii __shutdown shutdown
+socket - socket i:iii __socket socket
+socketpair - socketpair i:iiif __socketpair socketpair
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/arm/sysdep-cancel.h b/REORG.TODO/sysdeps/unix/sysv/linux/arm/sysdep-cancel.h
new file mode 100644
index 0000000000..de12acf046
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/arm/sysdep-cancel.h
@@ -0,0 +1,241 @@
+/* Copyright (C) 2003-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#include <tls.h>
+#ifndef __ASSEMBLER__
+# include <nptl/pthreadP.h>
+#endif
+
+#if IS_IN (libc) || IS_IN (libpthread) || IS_IN (librt)
+
+/* NOTE: We do mark syscalls with unwind annotations, for the benefit of
+ cancellation; but they're really only accurate at the point of the
+ syscall. The ARM unwind directives are not rich enough without adding
+ a custom personality function. */
+
+# undef PSEUDO
+# define PSEUDO(name, syscall_name, args) \
+ .text; \
+ ENTRY (__##syscall_name##_nocancel); \
+ CFI_SECTIONS; \
+ DO_CALL (syscall_name, args); \
+ cmn r0, $4096; \
+ PSEUDO_RET; \
+ END (__##syscall_name##_nocancel); \
+ ENTRY (name); \
+ SINGLE_THREAD_P; \
+ DOARGS_##args; \
+ bne .Lpseudo_cancel; \
+ cfi_remember_state; \
+ ldr r7, =SYS_ify (syscall_name); \
+ swi 0x0; \
+ UNDOARGS_##args; \
+ cmn r0, $4096; \
+ PSEUDO_RET; \
+ cfi_restore_state; \
+ .Lpseudo_cancel: \
+ .fnstart; /* matched by the .fnend in UNDOARGS below. */ \
+ DOCARGS_##args; /* save syscall args etc. around CENABLE. */ \
+ CENABLE; \
+ mov ip, r0; /* put mask in safe place. */ \
+ UNDOCARGS_##args; /* restore syscall args. */ \
+ ldr r7, =SYS_ify (syscall_name); \
+ swi 0x0; /* do the call. */ \
+ mov r7, r0; /* save syscall return value. */ \
+ mov r0, ip; /* get mask back. */ \
+ CDISABLE; \
+ mov r0, r7; /* retrieve return value. */ \
+ RESTORE_LR_##args; \
+ UNDOARGS_##args; \
+ cmn r0, $4096
+
+/* DOARGS pushes eight bytes on the stack for five arguments, twelve bytes for
+ six arguments, and four bytes for fewer. In order to preserve doubleword
+ alignment, sometimes we must save an extra register. */
+
+# define RESTART_UNWIND \
+ .fnend; \
+ .fnstart; \
+ .save {r7}; \
+ .save {lr}
+
+# define DOCARGS_0 \
+ .save {r7}; \
+ push {lr}; \
+ cfi_adjust_cfa_offset (4); \
+ cfi_rel_offset (lr, 0); \
+ .save {lr}
+# define UNDOCARGS_0
+# define RESTORE_LR_0 \
+ pop {lr}; \
+ cfi_adjust_cfa_offset (-4); \
+ cfi_restore (lr)
+
+# define DOCARGS_1 \
+ .save {r7}; \
+ push {r0, r1, lr}; \
+ cfi_adjust_cfa_offset (12); \
+ cfi_rel_offset (lr, 8); \
+ .save {lr}; \
+ .pad #8
+# define UNDOCARGS_1 \
+ ldr r0, [sp], #8; \
+ cfi_adjust_cfa_offset (-8); \
+ RESTART_UNWIND
+# define RESTORE_LR_1 \
+ RESTORE_LR_0
+
+# define DOCARGS_2 \
+ .save {r7}; \
+ push {r0, r1, lr}; \
+ cfi_adjust_cfa_offset (12); \
+ cfi_rel_offset (lr, 8); \
+ .save {lr}; \
+ .pad #8
+# define UNDOCARGS_2 \
+ pop {r0, r1}; \
+ cfi_adjust_cfa_offset (-8); \
+ RESTART_UNWIND
+# define RESTORE_LR_2 \
+ RESTORE_LR_0
+
+# define DOCARGS_3 \
+ .save {r7}; \
+ push {r0, r1, r2, r3, lr}; \
+ cfi_adjust_cfa_offset (20); \
+ cfi_rel_offset (lr, 16); \
+ .save {lr}; \
+ .pad #16
+# define UNDOCARGS_3 \
+ pop {r0, r1, r2, r3}; \
+ cfi_adjust_cfa_offset (-16); \
+ RESTART_UNWIND
+# define RESTORE_LR_3 \
+ RESTORE_LR_0
+
+# define DOCARGS_4 \
+ .save {r7}; \
+ push {r0, r1, r2, r3, lr}; \
+ cfi_adjust_cfa_offset (20); \
+ cfi_rel_offset (lr, 16); \
+ .save {lr}; \
+ .pad #16
+# define UNDOCARGS_4 \
+ pop {r0, r1, r2, r3}; \
+ cfi_adjust_cfa_offset (-16); \
+ RESTART_UNWIND
+# define RESTORE_LR_4 \
+ RESTORE_LR_0
+
+/* r4 is only stmfd'ed for correct stack alignment. */
+# define DOCARGS_5 \
+ .save {r4, r7}; \
+ push {r0, r1, r2, r3, r4, lr}; \
+ cfi_adjust_cfa_offset (24); \
+ cfi_rel_offset (lr, 20); \
+ .save {lr}; \
+ .pad #20
+# define UNDOCARGS_5 \
+ pop {r0, r1, r2, r3}; \
+ cfi_adjust_cfa_offset (-16); \
+ .fnend; \
+ .fnstart; \
+ .save {r4, r7}; \
+ .save {lr}; \
+ .pad #4
+# define RESTORE_LR_5 \
+ pop {r4, lr}; \
+ cfi_adjust_cfa_offset (-8); \
+ /* r4 will be marked as restored later. */ \
+ cfi_restore (lr)
+
+# define DOCARGS_6 \
+ .save {r4, r5, r7}; \
+ push {r0, r1, r2, r3, lr}; \
+ cfi_adjust_cfa_offset (20); \
+ cfi_rel_offset (lr, 16); \
+ .save {lr}; \
+ .pad #16
+# define UNDOCARGS_6 \
+ pop {r0, r1, r2, r3}; \
+ cfi_adjust_cfa_offset (-16); \
+ .fnend; \
+ .fnstart; \
+ .save {r4, r5, r7}; \
+ .save {lr};
+# define RESTORE_LR_6 \
+ RESTORE_LR_0
+
+# if IS_IN (libpthread)
+# define CENABLE bl PLTJMP(__pthread_enable_asynccancel)
+# define CDISABLE bl PLTJMP(__pthread_disable_asynccancel)
+# define __local_multiple_threads __pthread_multiple_threads
+# elif IS_IN (libc)
+# define CENABLE bl PLTJMP(__libc_enable_asynccancel)
+# define CDISABLE bl PLTJMP(__libc_disable_asynccancel)
+# define __local_multiple_threads __libc_multiple_threads
+# elif IS_IN (librt)
+# define CENABLE bl PLTJMP(__librt_enable_asynccancel)
+# define CDISABLE bl PLTJMP(__librt_disable_asynccancel)
+# else
+# error Unsupported library
+# endif
+
+# if IS_IN (libpthread) || IS_IN (libc)
+# ifndef __ASSEMBLER__
+extern int __local_multiple_threads attribute_hidden;
+# define SINGLE_THREAD_P __builtin_expect (__local_multiple_threads == 0, 1)
+# else
+# define SINGLE_THREAD_P \
+ LDST_PCREL(ldr, ip, ip, __local_multiple_threads); \
+ teq ip, #0
+# endif
+# else
+/* There is no __local_multiple_threads for librt, so use the TCB. */
+# ifndef __ASSEMBLER__
+# define SINGLE_THREAD_P \
+ __builtin_expect (THREAD_GETMEM (THREAD_SELF, \
+ header.multiple_threads) == 0, 1)
+# else
+# define SINGLE_THREAD_P \
+ push {r0, lr}; \
+ cfi_adjust_cfa_offset (8); \
+ cfi_rel_offset (lr, 4); \
+ GET_TLS (lr); \
+ NEGOFF_ADJ_BASE (r0, MULTIPLE_THREADS_OFFSET); \
+ ldr ip, NEGOFF_OFF1 (r0, MULTIPLE_THREADS_OFFSET); \
+ pop {r0, lr}; \
+ cfi_adjust_cfa_offset (-8); \
+ cfi_restore (lr); \
+ teq ip, #0
+# endif
+# endif
+
+#elif !defined __ASSEMBLER__
+
+/* For rtld, et cetera. */
+# define SINGLE_THREAD_P 1
+# define NO_CANCELLATION 1
+
+#endif
+
+#ifndef __ASSEMBLER__
+# define RTLD_SINGLE_THREAD_P \
+ __builtin_expect (THREAD_GETMEM (THREAD_SELF, \
+ header.multiple_threads) == 0, 1)
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/arm/sysdep.S b/REORG.TODO/sysdeps/unix/sysv/linux/arm/sysdep.S
new file mode 100644
index 0000000000..a9b8a034c1
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/arm/sysdep.S
@@ -0,0 +1,33 @@
+/* Copyright (C) 1995-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+
+ .text
+
+/* The syscall stubs jump here when they detect an error.
+ The code for Linux is almost identical to the canonical Unix
+ code, except that the error number in R0 is negated. */
+
+#undef CALL_MCOUNT
+#define CALL_MCOUNT /* Don't insert the profiling call, it clobbers R0. */
+
+ENTRY (__syscall_error)
+ rsb r0, r0, $0
+
+#define __syscall_error __syscall_error_1
+#include <sysdeps/unix/arm/sysdep.S>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/arm/sysdep.h b/REORG.TODO/sysdeps/unix/sysv/linux/arm/sysdep.h
new file mode 100644
index 0000000000..3ca2198596
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/arm/sysdep.h
@@ -0,0 +1,442 @@
+/* Copyright (C) 1992-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper, <drepper@gnu.ai.mit.edu>, August 1995.
+ ARM changes by Philip Blundell, <pjb27@cam.ac.uk>, May 1997.
+
+ 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_ARM_SYSDEP_H
+#define _LINUX_ARM_SYSDEP_H 1
+
+/* There is some commonality. */
+#include <sysdeps/unix/sysv/linux/sysdep.h>
+#include <sysdeps/unix/arm/sysdep.h>
+
+/* Defines RTLD_PRIVATE_ERRNO and USE_DL_SYSINFO. */
+#include <dl-sysdep.h>
+
+#include <tls.h>
+
+/* In order to get __set_errno() definition in INLINE_SYSCALL. */
+#ifndef __ASSEMBLER__
+#include <errno.h>
+#endif
+
+/* For Linux we can use the system call table in the header file
+ /usr/include/asm/unistd.h
+ of the kernel. But these symbols do not follow the SYS_* syntax
+ so we have to redefine the `SYS_ify' macro here. */
+#undef SYS_ify
+#define SYS_ify(syscall_name) (__NR_##syscall_name)
+
+#include <bits/hwcap.h>
+
+#ifdef __ASSEMBLER__
+
+#ifndef ARCH_HAS_HARD_TP
+/* Internal macro calling the linux kernel kuser_get_tls helper.
+ Note that in thumb mode, a constant pool break is often out of range, so
+ we always expand the constant inline. */
+# ifdef __thumb2__
+# define GET_TLS_BODY \
+ movw r0, #0x0fe0; \
+ movt r0, #0xffff; \
+ blx r0
+# else
+# define GET_TLS_BODY \
+ mov r0, #0xffff0fff; /* Point to the high page. */ \
+ mov lr, pc; /* Save our return address. */ \
+ sub pc, r0, #31 /* Jump to the TLS entry. */
+# endif
+
+/* Helper to get the TLS base pointer. Save LR in TMP, return in R0,
+ and no other registers clobbered. TMP may be LR itself to indicate
+ that no save is necessary. */
+# undef GET_TLS
+# define GET_TLS(TMP) \
+ .ifnc TMP, lr; \
+ mov TMP, lr; \
+ cfi_register (lr, TMP); \
+ GET_TLS_BODY; \
+ mov lr, TMP; \
+ cfi_restore (lr); \
+ .else; \
+ GET_TLS_BODY; \
+ .endif
+#endif /* ARCH_HAS_HARD_TP */
+
+/* Linux uses a negative return value to indicate syscall errors,
+ unlike most Unices, which use the condition codes' carry flag.
+
+ Since version 2.1 the return value of a system call might be
+ negative even if the call succeeded. E.g., the `lseek' system call
+ might return a large offset. Therefore we must not anymore test
+ for < 0, but test for a real error by making sure the value in R0
+ is a real error number. Linus said he will make sure the no syscall
+ returns a value in -1 .. -4095 as a valid result so we can safely
+ test with -4095. */
+
+#undef PSEUDO
+#define PSEUDO(name, syscall_name, args) \
+ .text; \
+ ENTRY (name); \
+ DO_CALL (syscall_name, args); \
+ cmn r0, $4096;
+
+#define PSEUDO_RET \
+ it cc; \
+ RETINSTR(cc, lr); \
+ b PLTJMP(SYSCALL_ERROR)
+#undef ret
+#define ret PSEUDO_RET
+
+#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);
+
+#define PSEUDO_RET_NOERRNO \
+ DO_RET (lr);
+
+#undef ret_NOERRNO
+#define ret_NOERRNO PSEUDO_RET_NOERRNO
+
+#undef PSEUDO_END_NOERRNO
+#define PSEUDO_END_NOERRNO(name) \
+ END (name)
+
+/* The function has to return the error code. */
+#undef PSEUDO_ERRVAL
+#define PSEUDO_ERRVAL(name, syscall_name, args) \
+ .text; \
+ ENTRY (name) \
+ DO_CALL (syscall_name, args); \
+ rsb r0, r0, #0
+
+#undef PSEUDO_END_ERRVAL
+#define PSEUDO_END_ERRVAL(name) \
+ END (name)
+
+#define ret_ERRVAL PSEUDO_RET_NOERRNO
+
+#if !IS_IN (libc)
+# define SYSCALL_ERROR __local_syscall_error
+# if RTLD_PRIVATE_ERRNO
+# define SYSCALL_ERROR_HANDLER \
+__local_syscall_error: \
+ rsb r0, r0, #0; \
+ LDST_PCREL(str, r0, r1, C_SYMBOL_NAME(rtld_errno)); \
+ mvn r0, #0; \
+ DO_RET(lr)
+# else
+# if defined(__ARM_ARCH_4T__) && defined(__THUMB_INTERWORK__)
+# define POP_PC \
+ pop { lr }; \
+ cfi_adjust_cfa_offset (-4); \
+ cfi_restore (lr); \
+ bx lr
+# else
+# define POP_PC pop { pc }
+# endif
+# define SYSCALL_ERROR_HANDLER \
+__local_syscall_error: \
+ push { lr }; \
+ cfi_adjust_cfa_offset (4); \
+ cfi_rel_offset (lr, 0); \
+ push { r0 }; \
+ cfi_adjust_cfa_offset (4); \
+ bl PLTJMP(C_SYMBOL_NAME(__errno_location)); \
+ pop { r1 }; \
+ cfi_adjust_cfa_offset (-4); \
+ rsb r1, r1, #0; \
+ str r1, [r0]; \
+ mvn r0, #0; \
+ POP_PC;
+# endif
+#else
+# define SYSCALL_ERROR_HANDLER /* Nothing here; code in sysdep.S is used. */
+# define SYSCALL_ERROR __syscall_error
+#endif
+
+/* The ARM EABI user interface passes the syscall number in r7, instead
+ of in the swi. This is more efficient, because the kernel does not need
+ to fetch the swi from memory to find out the number; which can be painful
+ with separate I-cache and D-cache. Make sure to use 0 for the SWI
+ argument; otherwise the (optional) compatibility code for APCS binaries
+ may be invoked. */
+
+/* Linux takes system call args in registers:
+ arg 1 r0
+ arg 2 r1
+ arg 3 r2
+ arg 4 r3
+ arg 5 r4 (this is different from the APCS convention)
+ arg 6 r5
+ arg 7 r6
+
+ The compiler is going to form a call by coming here, through PSEUDO, with
+ arguments
+ syscall number in the DO_CALL macro
+ arg 1 r0
+ arg 2 r1
+ arg 3 r2
+ arg 4 r3
+ arg 5 [sp]
+ arg 6 [sp+4]
+ arg 7 [sp+8]
+
+ We need to shuffle values between R4..R6 and the stack so that the
+ caller's v1..v3 and stack frame are not corrupted, and the kernel
+ sees the right arguments.
+
+*/
+
+/* We must save and restore r7 (call-saved) for the syscall number.
+ We never make function calls from inside here (only potentially
+ signal handlers), so we do not bother with doubleword alignment.
+
+ Just like the APCS syscall convention, the EABI syscall convention uses
+ r0 through r6 for up to seven syscall arguments. None are ever passed to
+ the kernel on the stack, although incoming arguments are on the stack for
+ syscalls with five or more arguments.
+
+ The assembler will convert the literal pool load to a move for most
+ syscalls. */
+
+#undef DO_CALL
+#define DO_CALL(syscall_name, args) \
+ DOARGS_##args; \
+ ldr r7, =SYS_ify (syscall_name); \
+ swi 0x0; \
+ UNDOARGS_##args
+
+#undef DOARGS_0
+#define DOARGS_0 \
+ .fnstart; \
+ push { r7 }; \
+ cfi_adjust_cfa_offset (4); \
+ cfi_rel_offset (r7, 0); \
+ .save { r7 }
+#undef DOARGS_1
+#define DOARGS_1 DOARGS_0
+#undef DOARGS_2
+#define DOARGS_2 DOARGS_0
+#undef DOARGS_3
+#define DOARGS_3 DOARGS_0
+#undef DOARGS_4
+#define DOARGS_4 DOARGS_0
+#undef DOARGS_5
+#define DOARGS_5 \
+ .fnstart; \
+ push {r4, r7}; \
+ cfi_adjust_cfa_offset (8); \
+ cfi_rel_offset (r4, 0); \
+ cfi_rel_offset (r7, 4); \
+ .save { r4, r7 }; \
+ ldr r4, [sp, #8]
+#undef DOARGS_6
+#define DOARGS_6 \
+ .fnstart; \
+ mov ip, sp; \
+ push {r4, r5, r7}; \
+ cfi_adjust_cfa_offset (12); \
+ cfi_rel_offset (r4, 0); \
+ cfi_rel_offset (r5, 4); \
+ cfi_rel_offset (r7, 8); \
+ .save { r4, r5, r7 }; \
+ ldmia ip, {r4, r5}
+#undef DOARGS_7
+#define DOARGS_7 \
+ .fnstart; \
+ mov ip, sp; \
+ push {r4, r5, r6, r7}; \
+ cfi_adjust_cfa_offset (16); \
+ cfi_rel_offset (r4, 0); \
+ cfi_rel_offset (r5, 4); \
+ cfi_rel_offset (r6, 8); \
+ cfi_rel_offset (r7, 12); \
+ .save { r4, r5, r6, r7 }; \
+ ldmia ip, {r4, r5, r6}
+
+#undef UNDOARGS_0
+#define UNDOARGS_0 \
+ pop {r7}; \
+ cfi_adjust_cfa_offset (-4); \
+ cfi_restore (r7); \
+ .fnend
+#undef UNDOARGS_1
+#define UNDOARGS_1 UNDOARGS_0
+#undef UNDOARGS_2
+#define UNDOARGS_2 UNDOARGS_0
+#undef UNDOARGS_3
+#define UNDOARGS_3 UNDOARGS_0
+#undef UNDOARGS_4
+#define UNDOARGS_4 UNDOARGS_0
+#undef UNDOARGS_5
+#define UNDOARGS_5 \
+ pop {r4, r7}; \
+ cfi_adjust_cfa_offset (-8); \
+ cfi_restore (r4); \
+ cfi_restore (r7); \
+ .fnend
+#undef UNDOARGS_6
+#define UNDOARGS_6 \
+ pop {r4, r5, r7}; \
+ cfi_adjust_cfa_offset (-12); \
+ cfi_restore (r4); \
+ cfi_restore (r5); \
+ cfi_restore (r7); \
+ .fnend
+#undef UNDOARGS_7
+#define UNDOARGS_7 \
+ pop {r4, r5, r6, r7}; \
+ cfi_adjust_cfa_offset (-16); \
+ cfi_restore (r4); \
+ cfi_restore (r5); \
+ cfi_restore (r6); \
+ cfi_restore (r7); \
+ .fnend
+
+#else /* not __ASSEMBLER__ */
+
+/* Define a macro which expands into the inline wrapper code for a system
+ call. */
+#undef INLINE_SYSCALL
+#define INLINE_SYSCALL(name, nr, args...) \
+ ({ unsigned int _sys_result = INTERNAL_SYSCALL (name, , nr, args); \
+ if (__builtin_expect (INTERNAL_SYSCALL_ERROR_P (_sys_result, ), 0)) \
+ { \
+ __set_errno (INTERNAL_SYSCALL_ERRNO (_sys_result, )); \
+ _sys_result = (unsigned int) -1; \
+ } \
+ (int) _sys_result; })
+
+#undef INTERNAL_SYSCALL_DECL
+#define INTERNAL_SYSCALL_DECL(err) do { } while (0)
+
+#if defined(__thumb__)
+/* We can not expose the use of r7 to the compiler. GCC (as
+ of 4.5) uses r7 as the hard frame pointer for Thumb - although
+ for Thumb-2 it isn't obviously a better choice than r11.
+ And GCC does not support asms that conflict with the frame
+ pointer.
+
+ This would be easier if syscall numbers never exceeded 255,
+ but they do. For the moment the LOAD_ARGS_7 is sacrificed.
+ We can't use push/pop inside the asm because that breaks
+ unwinding (i.e. thread cancellation) for this frame. We can't
+ locally save and restore r7, because we do not know if this
+ function uses r7 or if it is our caller's r7; if it is our caller's,
+ then unwinding will fail higher up the stack. So we move the
+ syscall out of line and provide its own unwind information. */
+# undef INTERNAL_SYSCALL_RAW
+# define INTERNAL_SYSCALL_RAW(name, err, nr, args...) \
+ ({ \
+ register int _a1 asm ("a1"); \
+ int _nametmp = name; \
+ LOAD_ARGS_##nr (args) \
+ register int _name asm ("ip") = _nametmp; \
+ asm volatile ("bl __libc_do_syscall" \
+ : "=r" (_a1) \
+ : "r" (_name) ASM_ARGS_##nr \
+ : "memory", "lr"); \
+ _a1; })
+#else /* ARM */
+# undef INTERNAL_SYSCALL_RAW
+# define INTERNAL_SYSCALL_RAW(name, err, nr, args...) \
+ ({ \
+ register int _a1 asm ("r0"), _nr asm ("r7"); \
+ LOAD_ARGS_##nr (args) \
+ _nr = name; \
+ asm volatile ("swi 0x0 @ syscall " #name \
+ : "=r" (_a1) \
+ : "r" (_nr) ASM_ARGS_##nr \
+ : "memory"); \
+ _a1; })
+#endif
+
+#undef INTERNAL_SYSCALL
+#define INTERNAL_SYSCALL(name, err, nr, args...) \
+ INTERNAL_SYSCALL_RAW(SYS_ify(name), err, nr, args)
+
+#undef INTERNAL_SYSCALL_ARM
+#define INTERNAL_SYSCALL_ARM(name, err, nr, args...) \
+ INTERNAL_SYSCALL_RAW(__ARM_NR_##name, err, nr, args)
+
+#undef INTERNAL_SYSCALL_ERROR_P
+#define INTERNAL_SYSCALL_ERROR_P(val, err) \
+ ((unsigned int) (val) >= 0xfffff001u)
+
+#undef INTERNAL_SYSCALL_ERRNO
+#define INTERNAL_SYSCALL_ERRNO(val, err) (-(val))
+
+/* List of system calls which are supported as vsyscalls. */
+#define HAVE_CLOCK_GETTIME_VSYSCALL 1
+#define HAVE_GETTIMEOFDAY_VSYSCALL 1
+
+#define LOAD_ARGS_0()
+#define ASM_ARGS_0
+#define LOAD_ARGS_1(a1) \
+ int _a1tmp = (int) (a1); \
+ LOAD_ARGS_0 () \
+ _a1 = _a1tmp;
+#define ASM_ARGS_1 ASM_ARGS_0, "r" (_a1)
+#define LOAD_ARGS_2(a1, a2) \
+ int _a2tmp = (int) (a2); \
+ LOAD_ARGS_1 (a1) \
+ register int _a2 asm ("a2") = _a2tmp;
+#define ASM_ARGS_2 ASM_ARGS_1, "r" (_a2)
+#define LOAD_ARGS_3(a1, a2, a3) \
+ int _a3tmp = (int) (a3); \
+ LOAD_ARGS_2 (a1, a2) \
+ register int _a3 asm ("a3") = _a3tmp;
+#define ASM_ARGS_3 ASM_ARGS_2, "r" (_a3)
+#define LOAD_ARGS_4(a1, a2, a3, a4) \
+ int _a4tmp = (int) (a4); \
+ LOAD_ARGS_3 (a1, a2, a3) \
+ register int _a4 asm ("a4") = _a4tmp;
+#define ASM_ARGS_4 ASM_ARGS_3, "r" (_a4)
+#define LOAD_ARGS_5(a1, a2, a3, a4, a5) \
+ int _v1tmp = (int) (a5); \
+ LOAD_ARGS_4 (a1, a2, a3, a4) \
+ register int _v1 asm ("v1") = _v1tmp;
+#define ASM_ARGS_5 ASM_ARGS_4, "r" (_v1)
+#define LOAD_ARGS_6(a1, a2, a3, a4, a5, a6) \
+ int _v2tmp = (int) (a6); \
+ LOAD_ARGS_5 (a1, a2, a3, a4, a5) \
+ register int _v2 asm ("v2") = _v2tmp;
+#define ASM_ARGS_6 ASM_ARGS_5, "r" (_v2)
+#ifndef __thumb__
+# define LOAD_ARGS_7(a1, a2, a3, a4, a5, a6, a7) \
+ int _v3tmp = (int) (a7); \
+ LOAD_ARGS_6 (a1, a2, a3, a4, a5, a6) \
+ register int _v3 asm ("v3") = _v3tmp;
+# define ASM_ARGS_7 ASM_ARGS_6, "r" (_v3)
+#endif
+
+/* For EABI, non-constant syscalls are actually pretty easy... */
+#undef INTERNAL_SYSCALL_NCS
+#define INTERNAL_SYSCALL_NCS(number, err, nr, args...) \
+ INTERNAL_SYSCALL_RAW (number, err, nr, args)
+
+#endif /* __ASSEMBLER__ */
+
+#endif /* linux/arm/sysdep.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/arm/tls.h b/REORG.TODO/sysdeps/unix/sysv/linux/arm/tls.h
new file mode 100644
index 0000000000..60f503081f
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/arm/tls.h
@@ -0,0 +1,42 @@
+/* Definition for thread-local data handling. ARM/Linux version.
+ Copyright (C) 2005-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _LINUX_ARM_TLS_H
+#define _LINUX_ARM_TLS_H 1
+
+/* Almost everything is OS-independent and common for all NPTL on ARM. */
+#include <sysdeps/arm/nptl/tls.h>
+
+#ifndef __ASSEMBLER__
+
+/* Get system call information. */
+# include <sysdep.h>
+
+/* Code to initially initialize the thread pointer. This might need
+ special attention since 'errno' is not yet available and if the
+ operation can cause a failure 'errno' must not be touched. */
+# define TLS_INIT_TP(tcbp) \
+ ({ INTERNAL_SYSCALL_DECL (err); \
+ long int result_var; \
+ result_var = INTERNAL_SYSCALL_ARM (set_tls, err, 1, (tcbp)); \
+ INTERNAL_SYSCALL_ERROR_P (result_var, err) \
+ ? "unknown error" : NULL; })
+
+#endif /* __ASSEMBLER__ */
+
+#endif /* tls.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/arm/ucontext_i.sym b/REORG.TODO/sysdeps/unix/sysv/linux/arm/ucontext_i.sym
new file mode 100644
index 0000000000..306292f1f8
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/arm/ucontext_i.sym
@@ -0,0 +1,30 @@
+#include <inttypes.h>
+#include <signal.h>
+#include <stddef.h>
+#include <sys/ucontext.h>
+
+SIG_BLOCK
+SIG_SETMASK
+
+-- Offsets of the fields in the ucontext_t structure.
+#define ucontext(member) offsetof (ucontext_t, member)
+#define mcontext(member) ucontext (uc_mcontext.member)
+
+UCONTEXT_FLAGS ucontext (uc_flags)
+UCONTEXT_LINK ucontext (uc_link)
+UCONTEXT_STACK ucontext (uc_stack)
+UCONTEXT_MCONTEXT ucontext (uc_mcontext)
+UCONTEXT_SIGMASK ucontext (uc_sigmask)
+
+UCONTEXT_REGSPACE ucontext (uc_regspace)
+
+MCONTEXT_TRAP_NO mcontext (trap_no)
+MCONTEXT_ERROR_CODE mcontext (error_code)
+MCONTEXT_OLDMASK mcontext (oldmask)
+MCONTEXT_ARM_R0 mcontext (arm_r0)
+MCONTEXT_ARM_R4 mcontext (arm_r4)
+MCONTEXT_ARM_SP mcontext (arm_sp)
+MCONTEXT_ARM_LR mcontext (arm_lr)
+MCONTEXT_ARM_PC mcontext (arm_pc)
+MCONTEXT_ARM_CPSR mcontext (arm_cpsr)
+MCONTEXT_FAULT_ADDRESS mcontext (fault_address)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/arm/umount.c b/REORG.TODO/sysdeps/unix/sysv/linux/arm/umount.c
new file mode 100644
index 0000000000..64487c7819
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/arm/umount.c
@@ -0,0 +1,30 @@
+/* Copyright (C) 2000-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by David Huggins-Daines <dhd@debian.org>, 2000.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+/* Since we don't have an oldumount system call, do what the kernel
+ does down here. */
+
+extern long int __umount2 (const char *name, int flags);
+
+long int
+__umount (const char *name)
+{
+ return __umount2 (name, 0);
+}
+
+weak_alias (__umount, umount);
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/arm/versionsort64.c b/REORG.TODO/sysdeps/unix/sysv/linux/arm/versionsort64.c
new file mode 100644
index 0000000000..144b691e56
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/arm/versionsort64.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/i386/versionsort64.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/arm/vfork.S b/REORG.TODO/sysdeps/unix/sysv/linux/arm/vfork.S
new file mode 100644
index 0000000000..e3666ea501
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/arm/vfork.S
@@ -0,0 +1,59 @@
+/* Copyright (C) 1999-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Philip Blundell <philb@gnu.org>.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#define _ERRNO_H 1
+#include <bits/errno.h>
+#include <tcb-offsets.h>
+
+
+/* Clone the calling process, but without copying the whole address space.
+ The calling process is suspended until the new process exits or is
+ replaced by a call to `execve'. Return -1 for errors, 0 to the new process,
+ and the process ID of the new process to the old process. */
+
+ENTRY (__vfork)
+ /* The DO_CALL macro saves r7 on the stack, to enable generation
+ of ARM unwind info. Since the stack is initially shared between
+ parent and child of vfork, that saved value could be corrupted.
+ To avoid this problem, we save r7 into ip as well, and restore
+ from there. */
+ mov ip, r7
+ cfi_register (r7, ip)
+ .fnstart
+ push { r7 }
+ cfi_adjust_cfa_offset (4)
+ .save { r7 }
+ ldr r7, =SYS_ify (vfork)
+ swi 0x0
+ .fnend
+ add sp, sp, #4
+ cfi_adjust_cfa_offset (-4)
+ mov r7, ip
+ cfi_restore (r7)
+
+ cmn a1, #4096
+ it cc
+ RETINSTR(cc, lr)
+
+ b PLTJMP(SYSCALL_ERROR)
+PSEUDO_END (__vfork)
+libc_hidden_def (__vfork)
+
+weak_alias (__vfork, vfork)
+strong_alias (__vfork, __libc_vfork)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/arm/xstat.c b/REORG.TODO/sysdeps/unix/sysv/linux/arm/xstat.c
new file mode 100644
index 0000000000..e9869f5508
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/arm/xstat.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/i386/xstat.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/bind.c b/REORG.TODO/sysdeps/unix/sysv/linux/bind.c
new file mode 100644
index 0000000000..b747f5e2f1
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/bind.c
@@ -0,0 +1,35 @@
+/* Copyright (C) 2015-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <signal.h>
+#include <sys/socket.h>
+
+#include <socketcall.h>
+#include <kernel-features.h>
+#include <sys/syscall.h>
+
+int
+__bind (int fd, __CONST_SOCKADDR_ARG addr, socklen_t len)
+{
+#ifdef __ASSUME_BIND_SYSCALL
+ return INLINE_SYSCALL (bind, 3, fd, addr.__sockaddr__, len);
+#else
+ return SOCKETCALL (bind, fd, addr.__sockaddr__, len, 0, 0, 0);
+#endif
+}
+weak_alias (__bind, bind)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/bits/a.out.h b/REORG.TODO/sysdeps/unix/sysv/linux/bits/a.out.h
new file mode 100644
index 0000000000..0e7fb030fc
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/bits/a.out.h
@@ -0,0 +1,7 @@
+#ifndef __A_OUT_GNU_H__
+# error "Never use <bits/a.out.h> directly; include <a.out.h> instead."
+#endif
+
+/* Signal to users of this header that this architecture really doesn't
+ support a.out binary format. */
+#define __NO_A_OUT_SUPPORT 1
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/bits/dirent.h b/REORG.TODO/sysdeps/unix/sysv/linux/bits/dirent.h
new file mode 100644
index 0000000000..a681f55bfd
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/bits/dirent.h
@@ -0,0 +1,57 @@
+/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _DIRENT_H
+# error "Never use <bits/dirent.h> directly; include <dirent.h> instead."
+#endif
+
+struct dirent
+ {
+#ifndef __USE_FILE_OFFSET64
+ __ino_t d_ino;
+ __off_t d_off;
+#else
+ __ino64_t d_ino;
+ __off64_t d_off;
+#endif
+ unsigned short int d_reclen;
+ unsigned char d_type;
+ char d_name[256]; /* We must not include limits.h! */
+ };
+
+#ifdef __USE_LARGEFILE64
+struct dirent64
+ {
+ __ino64_t d_ino;
+ __off64_t d_off;
+ unsigned short int d_reclen;
+ unsigned char d_type;
+ char d_name[256]; /* We must not include limits.h! */
+ };
+#endif
+
+#define d_fileno d_ino /* Backwards compatibility. */
+
+#undef _DIRENT_HAVE_D_NAMLEN
+#define _DIRENT_HAVE_D_RECLEN
+#define _DIRENT_HAVE_D_OFF
+#define _DIRENT_HAVE_D_TYPE
+
+#if defined __OFF_T_MATCHES_OFF64_T && defined __INO_T_MATCHES_INO64_T
+/* Inform libc code that these two types are effectively identical. */
+# define _DIRENT_MATCHES_DIRENT64 1
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/bits/epoll.h b/REORG.TODO/sysdeps/unix/sysv/linux/bits/epoll.h
new file mode 100644
index 0000000000..904e9c3e1a
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/bits/epoll.h
@@ -0,0 +1,27 @@
+/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_EPOLL_H
+# error "Never use <bits/epoll.h> directly; include <sys/epoll.h> instead."
+#endif
+
+/* Flags to be passed to epoll_create1. */
+enum
+ {
+ EPOLL_CLOEXEC = 02000000
+#define EPOLL_CLOEXEC EPOLL_CLOEXEC
+ };
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/bits/errno.h b/REORG.TODO/sysdeps/unix/sysv/linux/bits/errno.h
new file mode 100644
index 0000000000..c0f4d20fe7
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/bits/errno.h
@@ -0,0 +1,66 @@
+/* Error constants. Linux specific version.
+ Copyright (C) 1996-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifdef _ERRNO_H
+
+# undef EDOM
+# undef EILSEQ
+# undef ERANGE
+# include <linux/errno.h>
+
+/* Linux has no ENOTSUP error code. */
+# define ENOTSUP EOPNOTSUPP
+
+/* Older Linux versions also had no ECANCELED error code. */
+# ifndef ECANCELED
+# define ECANCELED 125
+# endif
+
+/* Support for error codes to support robust mutexes was added later, too. */
+# ifndef EOWNERDEAD
+# define EOWNERDEAD 130
+# define ENOTRECOVERABLE 131
+# endif
+
+# ifndef ERFKILL
+# define ERFKILL 132
+# endif
+
+# ifndef EHWPOISON
+# define EHWPOISON 133
+# endif
+
+# ifndef __ASSEMBLER__
+/* Function to get address of global `errno' variable. */
+extern int *__errno_location (void) __THROW __attribute__ ((__const__));
+
+# if !defined _LIBC || defined _LIBC_REENTRANT
+/* When using threads, errno is a per-thread value. */
+# define errno (*__errno_location ())
+# endif
+# endif /* !__ASSEMBLER__ */
+#endif /* _ERRNO_H */
+
+#if !defined _ERRNO_H && defined __need_Emath
+/* This is ugly but the kernel header is not clean enough. We must
+ define only the values EDOM, EILSEQ and ERANGE in case __need_Emath is
+ defined. */
+# define EDOM 33 /* Math argument out of domain of function. */
+# define EILSEQ 84 /* Illegal byte sequence. */
+# define ERANGE 34 /* Math result not representable. */
+#endif /* !_ERRNO_H && __need_Emath */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/bits/eventfd.h b/REORG.TODO/sysdeps/unix/sysv/linux/bits/eventfd.h
new file mode 100644
index 0000000000..9720712a09
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/bits/eventfd.h
@@ -0,0 +1,31 @@
+/* Copyright (C) 2007-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_EVENTFD_H
+# error "Never use <bits/eventfd.h> directly; include <sys/eventfd.h> instead."
+#endif
+
+/* Flags for eventfd. */
+enum
+ {
+ EFD_SEMAPHORE = 00000001,
+#define EFD_SEMAPHORE EFD_SEMAPHORE
+ EFD_CLOEXEC = 02000000,
+#define EFD_CLOEXEC EFD_CLOEXEC
+ EFD_NONBLOCK = 00004000
+#define EFD_NONBLOCK EFD_NONBLOCK
+ };
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/bits/fcntl-linux.h b/REORG.TODO/sysdeps/unix/sysv/linux/bits/fcntl-linux.h
new file mode 100644
index 0000000000..59d663196a
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/bits/fcntl-linux.h
@@ -0,0 +1,411 @@
+/* O_*, F_*, FD_* bit values for Linux.
+ Copyright (C) 2001-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _FCNTL_H
+# error "Never use <bits/fcntl-linux.h> directly; include <fcntl.h> instead."
+#endif
+
+/* This file contains shared definitions between Linux architectures
+ and is included by <bits/fcntl.h> to declare them. The various
+ #ifndef cases allow the architecture specific file to define those
+ values with different values.
+
+ A minimal <bits/fcntl.h> contains just:
+
+ struct flock {...}
+ #ifdef __USE_LARGEFILE64
+ struct flock64 {...}
+ #endif
+ #include <bits/fcntl-linux.h>
+*/
+
+#ifdef __USE_GNU
+# include <bits/uio.h>
+#endif
+
+/* open/fcntl. */
+#define O_ACCMODE 0003
+#define O_RDONLY 00
+#define O_WRONLY 01
+#define O_RDWR 02
+#ifndef O_CREAT
+# define O_CREAT 0100 /* Not fcntl. */
+#endif
+#ifndef O_EXCL
+# define O_EXCL 0200 /* Not fcntl. */
+#endif
+#ifndef O_NOCTTY
+# define O_NOCTTY 0400 /* Not fcntl. */
+#endif
+#ifndef O_TRUNC
+# define O_TRUNC 01000 /* Not fcntl. */
+#endif
+#ifndef O_APPEND
+# define O_APPEND 02000
+#endif
+#ifndef O_NONBLOCK
+# define O_NONBLOCK 04000
+#endif
+#ifndef O_NDELAY
+# define O_NDELAY O_NONBLOCK
+#endif
+#ifndef O_SYNC
+# define O_SYNC 04010000
+#endif
+#define O_FSYNC O_SYNC
+#ifndef O_ASYNC
+# define O_ASYNC 020000
+#endif
+#ifndef __O_LARGEFILE
+# define __O_LARGEFILE 0100000
+#endif
+
+#ifndef __O_DIRECTORY
+# define __O_DIRECTORY 0200000
+#endif
+#ifndef __O_NOFOLLOW
+# define __O_NOFOLLOW 0400000
+#endif
+#ifndef __O_CLOEXEC
+# define __O_CLOEXEC 02000000
+#endif
+#ifndef __O_DIRECT
+# define __O_DIRECT 040000
+#endif
+#ifndef __O_NOATIME
+# define __O_NOATIME 01000000
+#endif
+#ifndef __O_PATH
+# define __O_PATH 010000000
+#endif
+#ifndef __O_DSYNC
+# define __O_DSYNC 010000
+#endif
+#ifndef __O_TMPFILE
+# define __O_TMPFILE (020000000 | __O_DIRECTORY)
+#endif
+
+#ifndef F_GETLK
+# ifndef __USE_FILE_OFFSET64
+# define F_GETLK 5 /* Get record locking info. */
+# define F_SETLK 6 /* Set record locking info (non-blocking). */
+# define F_SETLKW 7 /* Set record locking info (blocking). */
+# else
+# define F_GETLK F_GETLK64 /* Get record locking info. */
+# define F_SETLK F_SETLK64 /* Set record locking info (non-blocking).*/
+# define F_SETLKW F_SETLKW64 /* Set record locking info (blocking). */
+# endif
+#endif
+#ifndef F_GETLK64
+# define F_GETLK64 12 /* Get record locking info. */
+# define F_SETLK64 13 /* Set record locking info (non-blocking). */
+# define F_SETLKW64 14 /* Set record locking info (blocking). */
+#endif
+
+/* open file description locks.
+
+ Usually record locks held by a process are released on *any* close and are
+ not inherited across a fork.
+
+ These cmd values will set locks that conflict with process-associated record
+ locks, but are "owned" by the opened file description, not the process.
+ This means that they are inherited across fork or clone with CLONE_FILES
+ like BSD (flock) locks, and they are only released automatically when the
+ last reference to the the file description against which they were acquired
+ is put. */
+#ifdef __USE_GNU
+# define F_OFD_GETLK 36
+# define F_OFD_SETLK 37
+# define F_OFD_SETLKW 38
+#endif
+
+#ifdef __USE_LARGEFILE64
+# define O_LARGEFILE __O_LARGEFILE
+#endif
+
+#ifdef __USE_XOPEN2K8
+# define O_DIRECTORY __O_DIRECTORY /* Must be a directory. */
+# define O_NOFOLLOW __O_NOFOLLOW /* Do not follow links. */
+# define O_CLOEXEC __O_CLOEXEC /* Set close_on_exec. */
+#endif
+
+#ifdef __USE_GNU
+# define O_DIRECT __O_DIRECT /* Direct disk access. */
+# define O_NOATIME __O_NOATIME /* Do not set atime. */
+# define O_PATH __O_PATH /* Resolve pathname but do not open file. */
+# define O_TMPFILE __O_TMPFILE /* Atomically create nameless file. */
+#endif
+
+/* For now, Linux has no separate synchronicitiy options for read
+ operations. We define O_RSYNC therefore as the same as O_SYNC
+ since this is a superset. */
+#if defined __USE_POSIX199309 || defined __USE_UNIX98
+# define O_DSYNC __O_DSYNC /* Synchronize data. */
+# if defined __O_RSYNC
+# define O_RSYNC __O_RSYNC /* Synchronize read operations. */
+# else
+# define O_RSYNC O_SYNC /* Synchronize read operations. */
+# endif
+#endif
+
+/* Values for the second argument to `fcntl'. */
+#define F_DUPFD 0 /* Duplicate file descriptor. */
+#define F_GETFD 1 /* Get file descriptor flags. */
+#define F_SETFD 2 /* Set file descriptor flags. */
+#define F_GETFL 3 /* Get file status flags. */
+#define F_SETFL 4 /* Set file status flags. */
+
+#ifndef __F_SETOWN
+# define __F_SETOWN 8
+# define __F_GETOWN 9
+#endif
+
+#if defined __USE_UNIX98 || defined __USE_XOPEN2K8
+# define F_SETOWN __F_SETOWN /* Get owner (process receiving SIGIO). */
+# define F_GETOWN __F_GETOWN /* Set owner (process receiving SIGIO). */
+#endif
+
+#ifndef __F_SETSIG
+# define __F_SETSIG 10 /* Set number of signal to be sent. */
+# define __F_GETSIG 11 /* Get number of signal to be sent. */
+#endif
+#ifndef __F_SETOWN_EX
+# define __F_SETOWN_EX 15 /* Get owner (thread receiving SIGIO). */
+# define __F_GETOWN_EX 16 /* Set owner (thread receiving SIGIO). */
+#endif
+
+#ifdef __USE_GNU
+# define F_SETSIG __F_SETSIG /* Set number of signal to be sent. */
+# define F_GETSIG __F_GETSIG /* Get number of signal to be sent. */
+# define F_SETOWN_EX __F_SETOWN_EX /* Get owner (thread receiving SIGIO). */
+# define F_GETOWN_EX __F_GETOWN_EX /* Set owner (thread receiving SIGIO). */
+#endif
+
+#ifdef __USE_GNU
+# define F_SETLEASE 1024 /* Set a lease. */
+# define F_GETLEASE 1025 /* Enquire what lease is active. */
+# define F_NOTIFY 1026 /* Request notifications on a directory. */
+# define F_SETPIPE_SZ 1031 /* Set pipe page size array. */
+# define F_GETPIPE_SZ 1032 /* Set pipe page size array. */
+#endif
+#ifdef __USE_XOPEN2K8
+# define F_DUPFD_CLOEXEC 1030 /* Duplicate file descriptor with
+ close-on-exit set. */
+#endif
+
+/* For F_[GET|SET]FD. */
+#define FD_CLOEXEC 1 /* Actually anything with low bit set goes */
+
+#ifndef F_RDLCK
+/* For posix fcntl() and `l_type' field of a `struct flock' for lockf(). */
+# define F_RDLCK 0 /* Read lock. */
+# define F_WRLCK 1 /* Write lock. */
+# define F_UNLCK 2 /* Remove lock. */
+#endif
+
+
+/* For old implementation of BSD flock. */
+#ifndef F_EXLCK
+# define F_EXLCK 4 /* or 3 */
+# define F_SHLCK 8 /* or 4 */
+#endif
+
+#ifdef __USE_MISC
+/* Operations for BSD flock, also used by the kernel implementation. */
+# define LOCK_SH 1 /* Shared lock. */
+# define LOCK_EX 2 /* Exclusive lock. */
+# define LOCK_NB 4 /* Or'd with one of the above to prevent
+ blocking. */
+# define LOCK_UN 8 /* Remove lock. */
+#endif
+
+#ifdef __USE_GNU
+# define LOCK_MAND 32 /* This is a mandatory flock: */
+# define LOCK_READ 64 /* ... which allows concurrent read operations. */
+# define LOCK_WRITE 128 /* ... which allows concurrent write operations. */
+# define LOCK_RW 192 /* ... Which allows concurrent read & write operations. */
+#endif
+
+#ifdef __USE_GNU
+/* Types of directory notifications that may be requested with F_NOTIFY. */
+# define DN_ACCESS 0x00000001 /* File accessed. */
+# define DN_MODIFY 0x00000002 /* File modified. */
+# define DN_CREATE 0x00000004 /* File created. */
+# define DN_DELETE 0x00000008 /* File removed. */
+# define DN_RENAME 0x00000010 /* File renamed. */
+# define DN_ATTRIB 0x00000020 /* File changed attributes. */
+# define DN_MULTISHOT 0x80000000 /* Don't remove notifier. */
+#endif
+
+
+#ifdef __USE_GNU
+/* Owner types. */
+enum __pid_type
+ {
+ F_OWNER_TID = 0, /* Kernel thread. */
+ F_OWNER_PID, /* Process. */
+ F_OWNER_PGRP, /* Process group. */
+ F_OWNER_GID = F_OWNER_PGRP /* Alternative, obsolete name. */
+ };
+
+/* Structure to use with F_GETOWN_EX and F_SETOWN_EX. */
+struct f_owner_ex
+ {
+ enum __pid_type type; /* Owner type of ID. */
+ __pid_t pid; /* ID of owner. */
+ };
+#endif
+
+/* Define some more compatibility macros to be backward compatible with
+ BSD systems which did not managed to hide these kernel macros. */
+#ifdef __USE_MISC
+# define FAPPEND O_APPEND
+# define FFSYNC O_FSYNC
+# define FASYNC O_ASYNC
+# define FNONBLOCK O_NONBLOCK
+# define FNDELAY O_NDELAY
+#endif /* Use misc. */
+
+#ifndef __POSIX_FADV_DONTNEED
+# define __POSIX_FADV_DONTNEED 4
+# define __POSIX_FADV_NOREUSE 5
+#endif
+/* Advise to `posix_fadvise'. */
+#ifdef __USE_XOPEN2K
+# define POSIX_FADV_NORMAL 0 /* No further special treatment. */
+# define POSIX_FADV_RANDOM 1 /* Expect random page references. */
+# define POSIX_FADV_SEQUENTIAL 2 /* Expect sequential page references. */
+# define POSIX_FADV_WILLNEED 3 /* Will need these pages. */
+# define POSIX_FADV_DONTNEED __POSIX_FADV_DONTNEED /* Don't need these pages. */
+# define POSIX_FADV_NOREUSE __POSIX_FADV_NOREUSE /* Data will be accessed once. */
+#endif
+
+
+#ifdef __USE_GNU
+/* Flags for SYNC_FILE_RANGE. */
+# define SYNC_FILE_RANGE_WAIT_BEFORE 1 /* Wait upon writeout of all pages
+ in the range before performing the
+ write. */
+# define SYNC_FILE_RANGE_WRITE 2 /* Initiate writeout of all those
+ dirty pages in the range which are
+ not presently under writeback. */
+# define SYNC_FILE_RANGE_WAIT_AFTER 4 /* Wait upon writeout of all pages in
+ the range after performing the
+ write. */
+
+/* Flags for SPLICE and VMSPLICE. */
+# define SPLICE_F_MOVE 1 /* Move pages instead of copying. */
+# define SPLICE_F_NONBLOCK 2 /* Don't block on the pipe splicing
+ (but we may still block on the fd
+ we splice from/to). */
+# define SPLICE_F_MORE 4 /* Expect more data. */
+# define SPLICE_F_GIFT 8 /* Pages passed in are a gift. */
+
+
+/* Flags for fallocate. */
+# include <linux/falloc.h>
+
+
+/* File handle structure. */
+struct file_handle
+{
+ unsigned int handle_bytes;
+ int handle_type;
+ /* File identifier. */
+ unsigned char f_handle[0];
+};
+
+/* Maximum handle size (for now). */
+# define MAX_HANDLE_SZ 128
+#endif
+
+__BEGIN_DECLS
+
+#ifdef __USE_GNU
+
+/* Provide kernel hint to read ahead. */
+extern ssize_t readahead (int __fd, __off64_t __offset, size_t __count)
+ __THROW;
+
+
+/* Selective file content synch'ing.
+
+ This function is a possible cancellation point and therefore not
+ marked with __THROW. */
+extern int sync_file_range (int __fd, __off64_t __offset, __off64_t __count,
+ unsigned int __flags);
+
+
+/* Splice address range into a pipe.
+
+ This function is a possible cancellation point and therefore not
+ marked with __THROW. */
+extern ssize_t vmsplice (int __fdout, const struct iovec *__iov,
+ size_t __count, unsigned int __flags);
+
+/* Splice two files together.
+
+ This function is a possible cancellation point and therefore not
+ marked with __THROW. */
+extern ssize_t splice (int __fdin, __off64_t *__offin, int __fdout,
+ __off64_t *__offout, size_t __len,
+ unsigned int __flags);
+
+/* In-kernel implementation of tee for pipe buffers.
+
+ This function is a possible cancellation point and therefore not
+ marked with __THROW. */
+extern ssize_t tee (int __fdin, int __fdout, size_t __len,
+ unsigned int __flags);
+
+/* Reserve storage for the data of the file associated with FD.
+
+ This function is a possible cancellation point and therefore not
+ marked with __THROW. */
+# ifndef __USE_FILE_OFFSET64
+extern int fallocate (int __fd, int __mode, __off_t __offset, __off_t __len);
+# else
+# ifdef __REDIRECT
+extern int __REDIRECT (fallocate, (int __fd, int __mode, __off64_t __offset,
+ __off64_t __len),
+ fallocate64);
+# else
+# define fallocate fallocate64
+# endif
+# endif
+# ifdef __USE_LARGEFILE64
+extern int fallocate64 (int __fd, int __mode, __off64_t __offset,
+ __off64_t __len);
+# endif
+
+
+/* Map file name to file handle. */
+extern int name_to_handle_at (int __dfd, const char *__name,
+ struct file_handle *__handle, int *__mnt_id,
+ int __flags) __THROW;
+
+/* Open file using the file handle.
+
+ This function is a possible cancellation point and therefore not
+ marked with __THROW. */
+extern int open_by_handle_at (int __mountdirfd, struct file_handle *__handle,
+ int __flags);
+
+#endif /* use GNU */
+
+__END_DECLS
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/bits/fcntl.h b/REORG.TODO/sysdeps/unix/sysv/linux/bits/fcntl.h
new file mode 100644
index 0000000000..be40350e82
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/bits/fcntl.h
@@ -0,0 +1,3 @@
+/* bits/fcntl.h is architecture specific. */
+#error "This file must be supplied by every Linux architecture."
+
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/bits/in.h b/REORG.TODO/sysdeps/unix/sysv/linux/bits/in.h
new file mode 100644
index 0000000000..377732b9fe
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/bits/in.h
@@ -0,0 +1,256 @@
+/* Copyright (C) 1991-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+/* Linux version. */
+
+#ifndef _NETINET_IN_H
+# error "Never use <bits/in.h> directly; include <netinet/in.h> instead."
+#endif
+
+/* If the application has already included linux/in6.h from a linux-based
+ kernel then we will not define the IPv6 IPPROTO_* defines, in6_addr (nor the
+ defines), sockaddr_in6, or ipv6_mreq. Same for in6_ptkinfo or ip6_mtuinfo
+ in linux/ipv6.h. The ABI used by the linux-kernel and glibc match exactly.
+ Neither the linux kernel nor glibc should break this ABI without coordination.
+ In upstream kernel 56c176c9 the _UAPI prefix was stripped so we need to check
+ for _LINUX_IN6_H and _IPV6_H now, and keep checking the old versions for
+ maximum backwards compatibility. */
+#if defined _UAPI_LINUX_IN6_H \
+ || defined _UAPI_IPV6_H \
+ || defined _LINUX_IN6_H \
+ || defined _IPV6_H
+/* This is not quite the same API since the kernel always defines s6_addr16 and
+ s6_addr32. This is not a violation of POSIX since POSIX says "at least the
+ following member" and that holds true. */
+# define __USE_KERNEL_IPV6_DEFS 1
+#else
+# define __USE_KERNEL_IPV6_DEFS 0
+#endif
+
+/* Options for use with `getsockopt' and `setsockopt' at the IP level.
+ The first word in the comment at the right is the data type used;
+ "bool" means a boolean value stored in an `int'. */
+#define IP_OPTIONS 4 /* ip_opts; IP per-packet options. */
+#define IP_HDRINCL 3 /* int; Header is included with data. */
+#define IP_TOS 1 /* int; IP type of service and precedence. */
+#define IP_TTL 2 /* int; IP time to live. */
+#define IP_RECVOPTS 6 /* bool; Receive all IP options w/datagram. */
+/* For BSD compatibility. */
+#define IP_RECVRETOPTS IP_RETOPTS /* bool; Receive IP options for response. */
+#define IP_RETOPTS 7 /* ip_opts; Set/get IP per-packet options. */
+#define IP_MULTICAST_IF 32 /* in_addr; set/get IP multicast i/f */
+#define IP_MULTICAST_TTL 33 /* unsigned char; set/get IP multicast ttl */
+#define IP_MULTICAST_LOOP 34 /* bool; set/get IP multicast loopback */
+#define IP_ADD_MEMBERSHIP 35 /* ip_mreq; add an IP group membership */
+#define IP_DROP_MEMBERSHIP 36 /* ip_mreq; drop an IP group membership */
+#define IP_UNBLOCK_SOURCE 37 /* ip_mreq_source: unblock data from source */
+#define IP_BLOCK_SOURCE 38 /* ip_mreq_source: block data from source */
+#define IP_ADD_SOURCE_MEMBERSHIP 39 /* ip_mreq_source: join source group */
+#define IP_DROP_SOURCE_MEMBERSHIP 40 /* ip_mreq_source: leave source group */
+#define IP_MSFILTER 41
+#ifdef __USE_MISC
+# define MCAST_JOIN_GROUP 42 /* group_req: join any-source group */
+# define MCAST_BLOCK_SOURCE 43 /* group_source_req: block from given group */
+# define MCAST_UNBLOCK_SOURCE 44 /* group_source_req: unblock from given group*/
+# define MCAST_LEAVE_GROUP 45 /* group_req: leave any-source group */
+# define MCAST_JOIN_SOURCE_GROUP 46 /* group_source_req: join source-spec gr */
+# define MCAST_LEAVE_SOURCE_GROUP 47 /* group_source_req: leave source-spec gr*/
+# define MCAST_MSFILTER 48
+# define IP_MULTICAST_ALL 49
+# define IP_UNICAST_IF 50
+
+# define MCAST_EXCLUDE 0
+# define MCAST_INCLUDE 1
+#endif
+
+#define IP_ROUTER_ALERT 5 /* bool */
+#define IP_PKTINFO 8 /* bool */
+#define IP_PKTOPTIONS 9
+#define IP_PMTUDISC 10 /* obsolete name? */
+#define IP_MTU_DISCOVER 10 /* int; see below */
+#define IP_RECVERR 11 /* bool */
+#define IP_RECVTTL 12 /* bool */
+#define IP_RECVTOS 13 /* bool */
+#define IP_MTU 14 /* int */
+#define IP_FREEBIND 15
+#define IP_IPSEC_POLICY 16
+#define IP_XFRM_POLICY 17
+#define IP_PASSSEC 18
+#define IP_TRANSPARENT 19
+#define IP_MULTICAST_ALL 49 /* bool */
+
+/* TProxy original addresses */
+#define IP_ORIGDSTADDR 20
+#define IP_RECVORIGDSTADDR IP_ORIGDSTADDR
+
+#define IP_MINTTL 21
+#define IP_NODEFRAG 22
+#define IP_CHECKSUM 23
+#define IP_BIND_ADDRESS_NO_PORT 24
+#define IP_RECVFRAGSIZE 25
+
+/* IP_MTU_DISCOVER arguments. */
+#define IP_PMTUDISC_DONT 0 /* Never send DF frames. */
+#define IP_PMTUDISC_WANT 1 /* Use per route hints. */
+#define IP_PMTUDISC_DO 2 /* Always DF. */
+#define IP_PMTUDISC_PROBE 3 /* Ignore dst pmtu. */
+/* Always use interface mtu (ignores dst pmtu) but don't set DF flag.
+ Also incoming ICMP frag_needed notifications will be ignored on
+ this socket to prevent accepting spoofed ones. */
+#define IP_PMTUDISC_INTERFACE 4
+/* Like IP_PMTUDISC_INTERFACE but allow packets to be fragmented. */
+#define IP_PMTUDISC_OMIT 5
+
+#define IP_MULTICAST_IF 32
+#define IP_MULTICAST_TTL 33
+#define IP_MULTICAST_LOOP 34
+#define IP_ADD_MEMBERSHIP 35
+#define IP_DROP_MEMBERSHIP 36
+#define IP_UNBLOCK_SOURCE 37
+#define IP_BLOCK_SOURCE 38
+#define IP_ADD_SOURCE_MEMBERSHIP 39
+#define IP_DROP_SOURCE_MEMBERSHIP 40
+#define IP_MSFILTER 41
+#define IP_MULTICAST_ALL 49
+#define IP_UNICAST_IF 50
+
+/* To select the IP level. */
+#define SOL_IP 0
+
+#define IP_DEFAULT_MULTICAST_TTL 1
+#define IP_DEFAULT_MULTICAST_LOOP 1
+#define IP_MAX_MEMBERSHIPS 20
+
+#ifdef __USE_MISC
+/* Structure used to describe IP options for IP_OPTIONS and IP_RETOPTS.
+ The `ip_dst' field is used for the first-hop gateway when using a
+ source route (this gets put into the header proper). */
+struct ip_opts
+ {
+ struct in_addr ip_dst; /* First hop; zero without source route. */
+ char ip_opts[40]; /* Actually variable in size. */
+ };
+
+/* Like `struct ip_mreq' but including interface specification by index. */
+struct ip_mreqn
+ {
+ struct in_addr imr_multiaddr; /* IP multicast address of group */
+ struct in_addr imr_address; /* local IP address of interface */
+ int imr_ifindex; /* Interface index */
+ };
+
+/* Structure used for IP_PKTINFO. */
+struct in_pktinfo
+ {
+ int ipi_ifindex; /* Interface index */
+ struct in_addr ipi_spec_dst; /* Routing destination address */
+ struct in_addr ipi_addr; /* Header destination address */
+ };
+#endif
+
+/* Options for use with `getsockopt' and `setsockopt' at the IPv6 level.
+ The first word in the comment at the right is the data type used;
+ "bool" means a boolean value stored in an `int'. */
+#define IPV6_ADDRFORM 1
+#define IPV6_2292PKTINFO 2
+#define IPV6_2292HOPOPTS 3
+#define IPV6_2292DSTOPTS 4
+#define IPV6_2292RTHDR 5
+#define IPV6_2292PKTOPTIONS 6
+#define IPV6_CHECKSUM 7
+#define IPV6_2292HOPLIMIT 8
+
+#define SCM_SRCRT IPV6_RXSRCRT
+
+#define IPV6_NEXTHOP 9
+#define IPV6_AUTHHDR 10
+#define IPV6_UNICAST_HOPS 16
+#define IPV6_MULTICAST_IF 17
+#define IPV6_MULTICAST_HOPS 18
+#define IPV6_MULTICAST_LOOP 19
+#define IPV6_JOIN_GROUP 20
+#define IPV6_LEAVE_GROUP 21
+#define IPV6_ROUTER_ALERT 22
+#define IPV6_MTU_DISCOVER 23
+#define IPV6_MTU 24
+#define IPV6_RECVERR 25
+#define IPV6_V6ONLY 26
+#define IPV6_JOIN_ANYCAST 27
+#define IPV6_LEAVE_ANYCAST 28
+#define IPV6_IPSEC_POLICY 34
+#define IPV6_XFRM_POLICY 35
+#define IPV6_HDRINCL 36
+
+/* Advanced API (RFC3542) (1). */
+#define IPV6_RECVPKTINFO 49
+#define IPV6_PKTINFO 50
+#define IPV6_RECVHOPLIMIT 51
+#define IPV6_HOPLIMIT 52
+#define IPV6_RECVHOPOPTS 53
+#define IPV6_HOPOPTS 54
+#define IPV6_RTHDRDSTOPTS 55
+#define IPV6_RECVRTHDR 56
+#define IPV6_RTHDR 57
+#define IPV6_RECVDSTOPTS 58
+#define IPV6_DSTOPTS 59
+#define IPV6_RECVPATHMTU 60
+#define IPV6_PATHMTU 61
+#define IPV6_DONTFRAG 62
+
+/* Advanced API (RFC3542) (2). */
+#define IPV6_RECVTCLASS 66
+#define IPV6_TCLASS 67
+
+#define IPV6_AUTOFLOWLABEL 70
+
+/* RFC5014. */
+#define IPV6_ADDR_PREFERENCES 72
+
+/* RFC5082. */
+#define IPV6_MINHOPCOUNT 73
+
+#define IPV6_ORIGDSTADDR 74
+#define IPV6_RECVORIGDSTADDR IPV6_ORIGDSTADDR
+#define IPV6_TRANSPARENT 75
+#define IPV6_UNICAST_IF 76
+#define IPV6_RECVFRAGSIZE 77
+
+/* Obsolete synonyms for the above. */
+#if !__USE_KERNEL_IPV6_DEFS
+# define IPV6_ADD_MEMBERSHIP IPV6_JOIN_GROUP
+# define IPV6_DROP_MEMBERSHIP IPV6_LEAVE_GROUP
+#endif
+#define IPV6_RXHOPOPTS IPV6_HOPOPTS
+#define IPV6_RXDSTOPTS IPV6_DSTOPTS
+
+/* IPV6_MTU_DISCOVER values. */
+#define IPV6_PMTUDISC_DONT 0 /* Never send DF frames. */
+#define IPV6_PMTUDISC_WANT 1 /* Use per route hints. */
+#define IPV6_PMTUDISC_DO 2 /* Always DF. */
+#define IPV6_PMTUDISC_PROBE 3 /* Ignore dst pmtu. */
+#define IPV6_PMTUDISC_INTERFACE 4 /* See IP_PMTUDISC_INTERFACE. */
+#define IPV6_PMTUDISC_OMIT 5 /* See IP_PMTUDISC_OMIT. */
+
+/* Socket level values for IPv6. */
+#define SOL_IPV6 41
+#define SOL_ICMPV6 58
+
+/* Routing header options for IPv6. */
+#define IPV6_RTHDR_LOOSE 0 /* Hop doesn't need to be neighbour. */
+#define IPV6_RTHDR_STRICT 1 /* Hop must be a neighbour. */
+
+#define IPV6_RTHDR_TYPE_0 0 /* IPv6 Routing header type 0. */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/bits/initspin.h b/REORG.TODO/sysdeps/unix/sysv/linux/bits/initspin.h
new file mode 100644
index 0000000000..936f178497
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/bits/initspin.h
@@ -0,0 +1 @@
+/* No thread support. */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/bits/inotify.h b/REORG.TODO/sysdeps/unix/sysv/linux/bits/inotify.h
new file mode 100644
index 0000000000..c9d83eb7e3
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/bits/inotify.h
@@ -0,0 +1,29 @@
+/* Copyright (C) 2005-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_INOTIFY_H
+# error "Never use <bits/inotify.h> directly; include <sys/inotify.h> instead."
+#endif
+
+/* Flags for the parameter of inotify_init1. */
+enum
+ {
+ IN_CLOEXEC = 02000000,
+#define IN_CLOEXEC IN_CLOEXEC
+ IN_NONBLOCK = 00004000
+#define IN_NONBLOCK IN_NONBLOCK
+ };
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/bits/ioctl-types.h b/REORG.TODO/sysdeps/unix/sysv/linux/bits/ioctl-types.h
new file mode 100644
index 0000000000..f6fe26acce
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/bits/ioctl-types.h
@@ -0,0 +1,77 @@
+/* Structure types for pre-termios terminal ioctls. Linux version.
+ Copyright (C) 1996-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_IOCTL_H
+# error "Never use <bits/ioctl-types.h> directly; include <sys/ioctl.h> instead."
+#endif
+
+/* Get definition of constants for use with `ioctl'. */
+#include <asm/ioctls.h>
+
+
+struct winsize
+ {
+ unsigned short int ws_row;
+ unsigned short int ws_col;
+ unsigned short int ws_xpixel;
+ unsigned short int ws_ypixel;
+ };
+
+#define NCC 8
+struct termio
+ {
+ unsigned short int c_iflag; /* input mode flags */
+ unsigned short int c_oflag; /* output mode flags */
+ unsigned short int c_cflag; /* control mode flags */
+ unsigned short int c_lflag; /* local mode flags */
+ unsigned char c_line; /* line discipline */
+ unsigned char c_cc[NCC]; /* control characters */
+};
+
+/* modem lines */
+#define TIOCM_LE 0x001
+#define TIOCM_DTR 0x002
+#define TIOCM_RTS 0x004
+#define TIOCM_ST 0x008
+#define TIOCM_SR 0x010
+#define TIOCM_CTS 0x020
+#define TIOCM_CAR 0x040
+#define TIOCM_RNG 0x080
+#define TIOCM_DSR 0x100
+#define TIOCM_CD TIOCM_CAR
+#define TIOCM_RI TIOCM_RNG
+
+/* ioctl (fd, TIOCSERGETLSR, &result) where result may be as below */
+
+/* line disciplines */
+#define N_TTY 0
+#define N_SLIP 1
+#define N_MOUSE 2
+#define N_PPP 3
+#define N_STRIP 4
+#define N_AX25 5
+#define N_X25 6 /* X.25 async */
+#define N_6PACK 7
+#define N_MASC 8 /* Mobitex module */
+#define N_R3964 9 /* Simatic R3964 module */
+#define N_PROFIBUS_FDL 10 /* Profibus */
+#define N_IRDA 11 /* Linux IR */
+#define N_SMSBLOCK 12 /* SMS block mode */
+#define N_HDLC 13 /* synchronous HDLC */
+#define N_SYNC_PPP 14 /* synchronous PPP */
+#define N_HCI 15 /* Bluetooth HCI UART */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/bits/ioctls.h b/REORG.TODO/sysdeps/unix/sysv/linux/bits/ioctls.h
new file mode 100644
index 0000000000..28ab1d0f1a
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/bits/ioctls.h
@@ -0,0 +1,108 @@
+/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_IOCTL_H
+# error "Never use <bits/ioctls.h> directly; include <sys/ioctl.h> instead."
+#endif
+
+/* Use the definitions from the kernel header files. */
+#include <asm/ioctls.h>
+
+/* Routing table calls. */
+#define SIOCADDRT 0x890B /* add routing table entry */
+#define SIOCDELRT 0x890C /* delete routing table entry */
+#define SIOCRTMSG 0x890D /* call to routing system */
+
+/* Socket configuration controls. */
+#define SIOCGIFNAME 0x8910 /* get iface name */
+#define SIOCSIFLINK 0x8911 /* set iface channel */
+#define SIOCGIFCONF 0x8912 /* get iface list */
+#define SIOCGIFFLAGS 0x8913 /* get flags */
+#define SIOCSIFFLAGS 0x8914 /* set flags */
+#define SIOCGIFADDR 0x8915 /* get PA address */
+#define SIOCSIFADDR 0x8916 /* set PA address */
+#define SIOCGIFDSTADDR 0x8917 /* get remote PA address */
+#define SIOCSIFDSTADDR 0x8918 /* set remote PA address */
+#define SIOCGIFBRDADDR 0x8919 /* get broadcast PA address */
+#define SIOCSIFBRDADDR 0x891a /* set broadcast PA address */
+#define SIOCGIFNETMASK 0x891b /* get network PA mask */
+#define SIOCSIFNETMASK 0x891c /* set network PA mask */
+#define SIOCGIFMETRIC 0x891d /* get metric */
+#define SIOCSIFMETRIC 0x891e /* set metric */
+#define SIOCGIFMEM 0x891f /* get memory address (BSD) */
+#define SIOCSIFMEM 0x8920 /* set memory address (BSD) */
+#define SIOCGIFMTU 0x8921 /* get MTU size */
+#define SIOCSIFMTU 0x8922 /* set MTU size */
+#define SIOCSIFNAME 0x8923 /* set interface name */
+#define SIOCSIFHWADDR 0x8924 /* set hardware address */
+#define SIOCGIFENCAP 0x8925 /* get/set encapsulations */
+#define SIOCSIFENCAP 0x8926
+#define SIOCGIFHWADDR 0x8927 /* Get hardware address */
+#define SIOCGIFSLAVE 0x8929 /* Driver slaving support */
+#define SIOCSIFSLAVE 0x8930
+#define SIOCADDMULTI 0x8931 /* Multicast address lists */
+#define SIOCDELMULTI 0x8932
+#define SIOCGIFINDEX 0x8933 /* name -> if_index mapping */
+#define SIOGIFINDEX SIOCGIFINDEX /* misprint compatibility :-) */
+#define SIOCSIFPFLAGS 0x8934 /* set/get extended flags set */
+#define SIOCGIFPFLAGS 0x8935
+#define SIOCDIFADDR 0x8936 /* delete PA address */
+#define SIOCSIFHWBROADCAST 0x8937 /* set hardware broadcast addr */
+#define SIOCGIFCOUNT 0x8938 /* get number of devices */
+
+#define SIOCGIFBR 0x8940 /* Bridging support */
+#define SIOCSIFBR 0x8941 /* Set bridging options */
+
+#define SIOCGIFTXQLEN 0x8942 /* Get the tx queue length */
+#define SIOCSIFTXQLEN 0x8943 /* Set the tx queue length */
+
+
+/* ARP cache control calls. */
+ /* 0x8950 - 0x8952 * obsolete calls, don't re-use */
+#define SIOCDARP 0x8953 /* delete ARP table entry */
+#define SIOCGARP 0x8954 /* get ARP table entry */
+#define SIOCSARP 0x8955 /* set ARP table entry */
+
+/* RARP cache control calls. */
+#define SIOCDRARP 0x8960 /* delete RARP table entry */
+#define SIOCGRARP 0x8961 /* get RARP table entry */
+#define SIOCSRARP 0x8962 /* set RARP table entry */
+
+/* Driver configuration calls */
+
+#define SIOCGIFMAP 0x8970 /* Get device parameters */
+#define SIOCSIFMAP 0x8971 /* Set device parameters */
+
+/* DLCI configuration calls */
+
+#define SIOCADDDLCI 0x8980 /* Create new DLCI device */
+#define SIOCDELDLCI 0x8981 /* Delete DLCI device */
+
+/* Device private ioctl calls. */
+
+/* These 16 ioctls are available to devices via the do_ioctl() device
+ vector. Each device should include this file and redefine these
+ names as their own. Because these are device dependent it is a good
+ idea _NOT_ to issue them to random objects and hope. */
+
+#define SIOCDEVPRIVATE 0x89F0 /* to 89FF */
+
+/*
+ * These 16 ioctl calls are protocol private
+ */
+
+#define SIOCPROTOPRIVATE 0x89E0 /* to 89EF */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/bits/ipc.h b/REORG.TODO/sysdeps/unix/sysv/linux/bits/ipc.h
new file mode 100644
index 0000000000..f86fe8b5a4
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/bits/ipc.h
@@ -0,0 +1,55 @@
+/* Copyright (C) 1995-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_IPC_H
+# error "Never use <bits/ipc.h> directly; include <sys/ipc.h> instead."
+#endif
+
+#include <bits/types.h>
+
+/* Mode bits for `msgget', `semget', and `shmget'. */
+#define IPC_CREAT 01000 /* Create key if key does not exist. */
+#define IPC_EXCL 02000 /* Fail if key exists. */
+#define IPC_NOWAIT 04000 /* Return error on wait. */
+
+/* Control commands for `msgctl', `semctl', and `shmctl'. */
+#define IPC_RMID 0 /* Remove identifier. */
+#define IPC_SET 1 /* Set `ipc_perm' options. */
+#define IPC_STAT 2 /* Get `ipc_perm' options. */
+#ifdef __USE_GNU
+# define IPC_INFO 3 /* See ipcs. */
+#endif
+
+/* Special key values. */
+#define IPC_PRIVATE ((__key_t) 0) /* Private key. */
+
+
+/* Data structure used to pass permission information to IPC operations. */
+struct ipc_perm
+ {
+ __key_t __key; /* Key. */
+ __uid_t uid; /* Owner's user ID. */
+ __gid_t gid; /* Owner's group ID. */
+ __uid_t cuid; /* Creator's user ID. */
+ __gid_t cgid; /* Creator's group ID. */
+ unsigned short int mode; /* Read/write permission. */
+ unsigned short int __pad1;
+ unsigned short int __seq; /* Sequence number. */
+ unsigned short int __pad2;
+ __syscall_ulong_t __glibc_reserved1;
+ __syscall_ulong_t __glibc_reserved2;
+ };
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/bits/local_lim.h b/REORG.TODO/sysdeps/unix/sysv/linux/bits/local_lim.h
new file mode 100644
index 0000000000..7b5303cf0e
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/bits/local_lim.h
@@ -0,0 +1,99 @@
+/* Minimum guaranteed maximum values for system limits. Linux version.
+ Copyright (C) 1993-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation; either version 2.1 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; see the file COPYING.LIB. If
+ not, see <http://www.gnu.org/licenses/>. */
+
+/* The kernel header pollutes the namespace with the NR_OPEN symbol
+ and defines LINK_MAX although filesystems have different maxima. A
+ similar thing is true for OPEN_MAX: the limit can be changed at
+ runtime and therefore the macro must not be defined. Remove this
+ after including the header if necessary. */
+#ifndef NR_OPEN
+# define __undef_NR_OPEN
+#endif
+#ifndef LINK_MAX
+# define __undef_LINK_MAX
+#endif
+#ifndef OPEN_MAX
+# define __undef_OPEN_MAX
+#endif
+#ifndef ARG_MAX
+# define __undef_ARG_MAX
+#endif
+
+/* The kernel sources contain a file with all the needed information. */
+#include <linux/limits.h>
+
+/* Have to remove NR_OPEN? */
+#ifdef __undef_NR_OPEN
+# undef NR_OPEN
+# undef __undef_NR_OPEN
+#endif
+/* Have to remove LINK_MAX? */
+#ifdef __undef_LINK_MAX
+# undef LINK_MAX
+# undef __undef_LINK_MAX
+#endif
+/* Have to remove OPEN_MAX? */
+#ifdef __undef_OPEN_MAX
+# undef OPEN_MAX
+# undef __undef_OPEN_MAX
+#endif
+/* Have to remove ARG_MAX? */
+#ifdef __undef_ARG_MAX
+# undef ARG_MAX
+# undef __undef_ARG_MAX
+#endif
+
+/* The number of data keys per process. */
+#define _POSIX_THREAD_KEYS_MAX 128
+/* This is the value this implementation supports. */
+#define PTHREAD_KEYS_MAX 1024
+
+/* Controlling the iterations of destructors for thread-specific data. */
+#define _POSIX_THREAD_DESTRUCTOR_ITERATIONS 4
+/* Number of iterations this implementation does. */
+#define PTHREAD_DESTRUCTOR_ITERATIONS _POSIX_THREAD_DESTRUCTOR_ITERATIONS
+
+/* The number of threads per process. */
+#define _POSIX_THREAD_THREADS_MAX 64
+/* We have no predefined limit on the number of threads. */
+#undef PTHREAD_THREADS_MAX
+
+/* Maximum amount by which a process can descrease its asynchronous I/O
+ priority level. */
+#define AIO_PRIO_DELTA_MAX 20
+
+/* Minimum size for a thread. We are free to choose a reasonable value. */
+#define PTHREAD_STACK_MIN 16384
+
+/* Maximum number of timer expiration overruns. */
+#define DELAYTIMER_MAX 2147483647
+
+/* Maximum tty name length. */
+#define TTY_NAME_MAX 32
+
+/* Maximum login name length. This is arbitrary. */
+#define LOGIN_NAME_MAX 256
+
+/* Maximum host name length. */
+#define HOST_NAME_MAX 64
+
+/* Maximum message queue priority level. */
+#define MQ_PRIO_MAX 32768
+
+/* Maximum value the semaphore can have. */
+#define SEM_VALUE_MAX (2147483647)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/bits/mqueue.h b/REORG.TODO/sysdeps/unix/sysv/linux/bits/mqueue.h
new file mode 100644
index 0000000000..47bcce60ec
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/bits/mqueue.h
@@ -0,0 +1,33 @@
+/* Copyright (C) 2004-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _MQUEUE_H
+# error "Never use <bits/mqueue.h> directly; include <mqueue.h> instead."
+#endif
+
+#include <bits/types.h>
+
+typedef int mqd_t;
+
+struct mq_attr
+{
+ __syscall_slong_t mq_flags; /* Message queue flags. */
+ __syscall_slong_t mq_maxmsg; /* Maximum number of messages. */
+ __syscall_slong_t mq_msgsize; /* Maximum message size. */
+ __syscall_slong_t mq_curmsgs; /* Number of messages currently queued. */
+ __syscall_slong_t __pad[4];
+};
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/bits/msq.h b/REORG.TODO/sysdeps/unix/sysv/linux/bits/msq.h
new file mode 100644
index 0000000000..31c4863e7b
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/bits/msq.h
@@ -0,0 +1,77 @@
+/* Copyright (C) 1995-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_MSG_H
+# error "Never use <bits/msq.h> directly; include <sys/msg.h> instead."
+#endif
+
+#include <bits/types.h>
+
+/* Define options for message queue functions. */
+#define MSG_NOERROR 010000 /* no error if message is too big */
+#ifdef __USE_GNU
+# define MSG_EXCEPT 020000 /* recv any msg except of specified type */
+# define MSG_COPY 040000 /* copy (not remove) all queue messages */
+#endif
+
+/* Types used in the structure definition. */
+typedef unsigned long int msgqnum_t;
+typedef unsigned long int msglen_t;
+
+
+/* Structure of record for one message inside the kernel.
+ The type `struct msg' is opaque. */
+struct msqid_ds
+{
+ struct ipc_perm msg_perm; /* structure describing operation permission */
+ __time_t msg_stime; /* time of last msgsnd command */
+ unsigned long int __glibc_reserved1;
+ __time_t msg_rtime; /* time of last msgrcv command */
+ unsigned long int __glibc_reserved2;
+ __time_t msg_ctime; /* time of last change */
+ unsigned long int __glibc_reserved3;
+ unsigned long int __msg_cbytes; /* current number of bytes on queue */
+ msgqnum_t msg_qnum; /* number of messages currently on queue */
+ msglen_t msg_qbytes; /* max number of bytes allowed on queue */
+ __pid_t msg_lspid; /* pid of last msgsnd() */
+ __pid_t msg_lrpid; /* pid of last msgrcv() */
+ unsigned long int __glibc_reserved4;
+ unsigned long int __glibc_reserved5;
+};
+
+#ifdef __USE_MISC
+
+# define msg_cbytes __msg_cbytes
+
+/* ipcs ctl commands */
+# define MSG_STAT 11
+# define MSG_INFO 12
+
+/* buffer for msgctl calls IPC_INFO, MSG_INFO */
+struct msginfo
+ {
+ int msgpool;
+ int msgmap;
+ int msgmax;
+ int msgmnb;
+ int msgmni;
+ int msgssz;
+ int msgtql;
+ unsigned short int msgseg;
+ };
+
+#endif /* __USE_MISC */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/bits/param.h b/REORG.TODO/sysdeps/unix/sysv/linux/bits/param.h
new file mode 100644
index 0000000000..a53868acdb
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/bits/param.h
@@ -0,0 +1,42 @@
+/* Old-style Unix parameters and limits. Linux version.
+ Copyright (C) 1995-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_PARAM_H
+# error "Never use <bits/param.h> directly; include <sys/param.h> instead."
+#endif
+
+#ifndef ARG_MAX
+# define __undef_ARG_MAX
+#endif
+
+#include <linux/limits.h>
+#include <linux/param.h>
+
+/* The kernel headers define ARG_MAX. The value is wrong, though. */
+#ifdef __undef_ARG_MAX
+# undef ARG_MAX
+# undef __undef_ARG_MAX
+#endif
+
+#define MAXSYMLINKS 20
+
+/* The following are not really correct but it is a value we used for a
+ long time and which seems to be usable. People should not use NOFILE
+ and NCARGS anyway. */
+#define NOFILE 256
+#define NCARGS 131072
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/bits/poll.h b/REORG.TODO/sysdeps/unix/sysv/linux/bits/poll.h
new file mode 100644
index 0000000000..da1c66b32b
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/bits/poll.h
@@ -0,0 +1,49 @@
+/* Copyright (C) 1997-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_POLL_H
+# error "Never use <bits/poll.h> directly; include <sys/poll.h> instead."
+#endif
+
+/* Event types that can be polled for. These bits may be set in `events'
+ to indicate the interesting event types; they will appear in `revents'
+ to indicate the status of the file descriptor. */
+#define POLLIN 0x001 /* There is data to read. */
+#define POLLPRI 0x002 /* There is urgent data to read. */
+#define POLLOUT 0x004 /* Writing now will not block. */
+
+#if defined __USE_XOPEN || defined __USE_XOPEN2K8
+/* These values are defined in XPG4.2. */
+# define POLLRDNORM 0x040 /* Normal data may be read. */
+# define POLLRDBAND 0x080 /* Priority data may be read. */
+# define POLLWRNORM 0x100 /* Writing now will not block. */
+# define POLLWRBAND 0x200 /* Priority data may be written. */
+#endif
+
+#ifdef __USE_GNU
+/* These are extensions for Linux. */
+# define POLLMSG 0x400
+# define POLLREMOVE 0x1000
+# define POLLRDHUP 0x2000
+#endif
+
+/* Event types always implicitly polled for. These bits need not be set in
+ `events', but they will appear in `revents' to indicate the status of
+ the file descriptor. */
+#define POLLERR 0x008 /* Error condition. */
+#define POLLHUP 0x010 /* Hung up. */
+#define POLLNVAL 0x020 /* Invalid polling request. */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/bits/posix_opt.h b/REORG.TODO/sysdeps/unix/sysv/linux/bits/posix_opt.h
new file mode 100644
index 0000000000..56cbbb88a0
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/bits/posix_opt.h
@@ -0,0 +1,191 @@
+/* Define POSIX options for Linux.
+ Copyright (C) 1996-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation; either version 2.1 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; see the file COPYING.LIB. If
+ not, see <http://www.gnu.org/licenses/>. */
+
+#ifndef _BITS_POSIX_OPT_H
+#define _BITS_POSIX_OPT_H 1
+
+/* Job control is supported. */
+#define _POSIX_JOB_CONTROL 1
+
+/* Processes have a saved set-user-ID and a saved set-group-ID. */
+#define _POSIX_SAVED_IDS 1
+
+/* Priority scheduling is supported. */
+#define _POSIX_PRIORITY_SCHEDULING 200809L
+
+/* Synchronizing file data is supported. */
+#define _POSIX_SYNCHRONIZED_IO 200809L
+
+/* The fsync function is present. */
+#define _POSIX_FSYNC 200809L
+
+/* Mapping of files to memory is supported. */
+#define _POSIX_MAPPED_FILES 200809L
+
+/* Locking of all memory is supported. */
+#define _POSIX_MEMLOCK 200809L
+
+/* Locking of ranges of memory is supported. */
+#define _POSIX_MEMLOCK_RANGE 200809L
+
+/* Setting of memory protections is supported. */
+#define _POSIX_MEMORY_PROTECTION 200809L
+
+/* Some filesystems allow all users to change file ownership. */
+#define _POSIX_CHOWN_RESTRICTED 0
+
+/* `c_cc' member of 'struct termios' structure can be disabled by
+ using the value _POSIX_VDISABLE. */
+#define _POSIX_VDISABLE '\0'
+
+/* Filenames are not silently truncated. */
+#define _POSIX_NO_TRUNC 1
+
+/* X/Open realtime support is available. */
+#define _XOPEN_REALTIME 1
+
+/* X/Open thread realtime support is available. */
+#define _XOPEN_REALTIME_THREADS 1
+
+/* XPG4.2 shared memory is supported. */
+#define _XOPEN_SHM 1
+
+/* Tell we have POSIX threads. */
+#define _POSIX_THREADS 200809L
+
+/* We have the reentrant functions described in POSIX. */
+#define _POSIX_REENTRANT_FUNCTIONS 1
+#define _POSIX_THREAD_SAFE_FUNCTIONS 200809L
+
+/* We provide priority scheduling for threads. */
+#define _POSIX_THREAD_PRIORITY_SCHEDULING 200809L
+
+/* We support user-defined stack sizes. */
+#define _POSIX_THREAD_ATTR_STACKSIZE 200809L
+
+/* We support user-defined stacks. */
+#define _POSIX_THREAD_ATTR_STACKADDR 200809L
+
+/* We support priority inheritence. */
+#define _POSIX_THREAD_PRIO_INHERIT 200809L
+
+/* We support priority protection, though only for non-robust
+ mutexes. */
+#define _POSIX_THREAD_PRIO_PROTECT 200809L
+
+#ifdef __USE_XOPEN2K8
+/* We support priority inheritence for robust mutexes. */
+# define _POSIX_THREAD_ROBUST_PRIO_INHERIT 200809L
+
+/* We do not support priority protection for robust mutexes. */
+# define _POSIX_THREAD_ROBUST_PRIO_PROTECT -1
+#endif
+
+/* We support POSIX.1b semaphores. */
+#define _POSIX_SEMAPHORES 200809L
+
+/* Real-time signals are supported. */
+#define _POSIX_REALTIME_SIGNALS 200809L
+
+/* We support asynchronous I/O. */
+#define _POSIX_ASYNCHRONOUS_IO 200809L
+#define _POSIX_ASYNC_IO 1
+/* Alternative name for Unix98. */
+#define _LFS_ASYNCHRONOUS_IO 1
+/* Support for prioritization is also available. */
+#define _POSIX_PRIORITIZED_IO 200809L
+
+/* The LFS support in asynchronous I/O is also available. */
+#define _LFS64_ASYNCHRONOUS_IO 1
+
+/* The rest of the LFS is also available. */
+#define _LFS_LARGEFILE 1
+#define _LFS64_LARGEFILE 1
+#define _LFS64_STDIO 1
+
+/* POSIX shared memory objects are implemented. */
+#define _POSIX_SHARED_MEMORY_OBJECTS 200809L
+
+/* CPU-time clocks support needs to be checked at runtime. */
+#define _POSIX_CPUTIME 0
+
+/* Clock support in threads must be also checked at runtime. */
+#define _POSIX_THREAD_CPUTIME 0
+
+/* GNU libc provides regular expression handling. */
+#define _POSIX_REGEXP 1
+
+/* Reader/Writer locks are available. */
+#define _POSIX_READER_WRITER_LOCKS 200809L
+
+/* We have a POSIX shell. */
+#define _POSIX_SHELL 1
+
+/* We support the Timeouts option. */
+#define _POSIX_TIMEOUTS 200809L
+
+/* We support spinlocks. */
+#define _POSIX_SPIN_LOCKS 200809L
+
+/* The `spawn' function family is supported. */
+#define _POSIX_SPAWN 200809L
+
+/* We have POSIX timers. */
+#define _POSIX_TIMERS 200809L
+
+/* The barrier functions are available. */
+#define _POSIX_BARRIERS 200809L
+
+/* POSIX message queues are available. */
+#define _POSIX_MESSAGE_PASSING 200809L
+
+/* Thread process-shared synchronization is supported. */
+#define _POSIX_THREAD_PROCESS_SHARED 200809L
+
+/* The monotonic clock might be available. */
+#define _POSIX_MONOTONIC_CLOCK 0
+
+/* The clock selection interfaces are available. */
+#define _POSIX_CLOCK_SELECTION 200809L
+
+/* Advisory information interfaces are available. */
+#define _POSIX_ADVISORY_INFO 200809L
+
+/* IPv6 support is available. */
+#define _POSIX_IPV6 200809L
+
+/* Raw socket support is available. */
+#define _POSIX_RAW_SOCKETS 200809L
+
+/* We have at least one terminal. */
+#define _POSIX2_CHAR_TERM 200809L
+
+/* Neither process nor thread sporadic server interfaces is available. */
+#define _POSIX_SPORADIC_SERVER -1
+#define _POSIX_THREAD_SPORADIC_SERVER -1
+
+/* trace.h is not available. */
+#define _POSIX_TRACE -1
+#define _POSIX_TRACE_EVENT_FILTER -1
+#define _POSIX_TRACE_INHERIT -1
+#define _POSIX_TRACE_LOG -1
+
+/* Typed memory objects are not available. */
+#define _POSIX_TYPED_MEMORY_OBJECTS -1
+
+#endif /* bits/posix_opt.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/bits/resource.h b/REORG.TODO/sysdeps/unix/sysv/linux/bits/resource.h
new file mode 100644
index 0000000000..d4dbc268cb
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/bits/resource.h
@@ -0,0 +1,327 @@
+/* Bit values & structures for resource limits. Linux version.
+ Copyright (C) 1994-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_RESOURCE_H
+# error "Never use <bits/resource.h> directly; include <sys/resource.h> instead."
+#endif
+
+#include <bits/types.h>
+
+/* Transmute defines to enumerations. The macro re-definitions are
+ necessary because some programs want to test for operating system
+ features with #ifdef RUSAGE_SELF. In ISO C the reflexive
+ definition is a no-op. */
+
+/* Kinds of resource limit. */
+enum __rlimit_resource
+{
+ /* Per-process CPU limit, in seconds. */
+ RLIMIT_CPU = 0,
+#define RLIMIT_CPU RLIMIT_CPU
+
+ /* Largest file that can be created, in bytes. */
+ RLIMIT_FSIZE = 1,
+#define RLIMIT_FSIZE RLIMIT_FSIZE
+
+ /* Maximum size of data segment, in bytes. */
+ RLIMIT_DATA = 2,
+#define RLIMIT_DATA RLIMIT_DATA
+
+ /* Maximum size of stack segment, in bytes. */
+ RLIMIT_STACK = 3,
+#define RLIMIT_STACK RLIMIT_STACK
+
+ /* Largest core file that can be created, in bytes. */
+ RLIMIT_CORE = 4,
+#define RLIMIT_CORE RLIMIT_CORE
+
+ /* Largest resident set size, in bytes.
+ This affects swapping; processes that are exceeding their
+ resident set size will be more likely to have physical memory
+ taken from them. */
+ __RLIMIT_RSS = 5,
+#define RLIMIT_RSS __RLIMIT_RSS
+
+ /* Number of open files. */
+ RLIMIT_NOFILE = 7,
+ __RLIMIT_OFILE = RLIMIT_NOFILE, /* BSD name for same. */
+#define RLIMIT_NOFILE RLIMIT_NOFILE
+#define RLIMIT_OFILE __RLIMIT_OFILE
+
+ /* Address space limit. */
+ RLIMIT_AS = 9,
+#define RLIMIT_AS RLIMIT_AS
+
+ /* Number of processes. */
+ __RLIMIT_NPROC = 6,
+#define RLIMIT_NPROC __RLIMIT_NPROC
+
+ /* Locked-in-memory address space. */
+ __RLIMIT_MEMLOCK = 8,
+#define RLIMIT_MEMLOCK __RLIMIT_MEMLOCK
+
+ /* Maximum number of file locks. */
+ __RLIMIT_LOCKS = 10,
+#define RLIMIT_LOCKS __RLIMIT_LOCKS
+
+ /* Maximum number of pending signals. */
+ __RLIMIT_SIGPENDING = 11,
+#define RLIMIT_SIGPENDING __RLIMIT_SIGPENDING
+
+ /* Maximum bytes in POSIX message queues. */
+ __RLIMIT_MSGQUEUE = 12,
+#define RLIMIT_MSGQUEUE __RLIMIT_MSGQUEUE
+
+ /* Maximum nice priority allowed to raise to.
+ Nice levels 19 .. -20 correspond to 0 .. 39
+ values of this resource limit. */
+ __RLIMIT_NICE = 13,
+#define RLIMIT_NICE __RLIMIT_NICE
+
+ /* Maximum realtime priority allowed for non-priviledged
+ processes. */
+ __RLIMIT_RTPRIO = 14,
+#define RLIMIT_RTPRIO __RLIMIT_RTPRIO
+
+ /* Maximum CPU time in µs that a process scheduled under a real-time
+ scheduling policy may consume without making a blocking system
+ call before being forcibly descheduled. */
+ __RLIMIT_RTTIME = 15,
+#define RLIMIT_RTTIME __RLIMIT_RTTIME
+
+ __RLIMIT_NLIMITS = 16,
+ __RLIM_NLIMITS = __RLIMIT_NLIMITS
+#define RLIMIT_NLIMITS __RLIMIT_NLIMITS
+#define RLIM_NLIMITS __RLIM_NLIMITS
+};
+
+/* Value to indicate that there is no limit. */
+#ifndef __USE_FILE_OFFSET64
+# define RLIM_INFINITY ((__rlim_t) -1)
+#else
+# define RLIM_INFINITY 0xffffffffffffffffuLL
+#endif
+
+#ifdef __USE_LARGEFILE64
+# define RLIM64_INFINITY 0xffffffffffffffffuLL
+#endif
+
+/* We can represent all limits. */
+#define RLIM_SAVED_MAX RLIM_INFINITY
+#define RLIM_SAVED_CUR RLIM_INFINITY
+
+
+/* Type for resource quantity measurement. */
+#ifndef __USE_FILE_OFFSET64
+typedef __rlim_t rlim_t;
+#else
+typedef __rlim64_t rlim_t;
+#endif
+#ifdef __USE_LARGEFILE64
+typedef __rlim64_t rlim64_t;
+#endif
+
+struct rlimit
+ {
+ /* The current (soft) limit. */
+ rlim_t rlim_cur;
+ /* The hard limit. */
+ rlim_t rlim_max;
+ };
+
+#ifdef __USE_LARGEFILE64
+struct rlimit64
+ {
+ /* The current (soft) limit. */
+ rlim64_t rlim_cur;
+ /* The hard limit. */
+ rlim64_t rlim_max;
+ };
+#endif
+
+/* Whose usage statistics do you want? */
+enum __rusage_who
+{
+ /* The calling process. */
+ RUSAGE_SELF = 0,
+#define RUSAGE_SELF RUSAGE_SELF
+
+ /* All of its terminated child processes. */
+ RUSAGE_CHILDREN = -1
+#define RUSAGE_CHILDREN RUSAGE_CHILDREN
+
+#ifdef __USE_GNU
+ ,
+ /* The calling thread. */
+ RUSAGE_THREAD = 1
+# define RUSAGE_THREAD RUSAGE_THREAD
+ /* Name for the same functionality on Solaris. */
+# define RUSAGE_LWP RUSAGE_THREAD
+#endif
+};
+
+#include <bits/types/struct_timeval.h>
+
+/* Structure which says how much of each resource has been used. */
+
+/* The purpose of all the unions is to have the kernel-compatible layout
+ while keeping the API type as 'long int', and among machines where
+ __syscall_slong_t is not 'long int', this only does the right thing
+ for little-endian ones, like x32. */
+struct rusage
+ {
+ /* Total amount of user time used. */
+ struct timeval ru_utime;
+ /* Total amount of system time used. */
+ struct timeval ru_stime;
+ /* Maximum resident set size (in kilobytes). */
+ __extension__ union
+ {
+ long int ru_maxrss;
+ __syscall_slong_t __ru_maxrss_word;
+ };
+ /* Amount of sharing of text segment memory
+ with other processes (kilobyte-seconds). */
+ /* Maximum resident set size (in kilobytes). */
+ __extension__ union
+ {
+ long int ru_ixrss;
+ __syscall_slong_t __ru_ixrss_word;
+ };
+ /* Amount of data segment memory used (kilobyte-seconds). */
+ __extension__ union
+ {
+ long int ru_idrss;
+ __syscall_slong_t __ru_idrss_word;
+ };
+ /* Amount of stack memory used (kilobyte-seconds). */
+ __extension__ union
+ {
+ long int ru_isrss;
+ __syscall_slong_t __ru_isrss_word;
+ };
+ /* Number of soft page faults (i.e. those serviced by reclaiming
+ a page from the list of pages awaiting reallocation. */
+ __extension__ union
+ {
+ long int ru_minflt;
+ __syscall_slong_t __ru_minflt_word;
+ };
+ /* Number of hard page faults (i.e. those that required I/O). */
+ __extension__ union
+ {
+ long int ru_majflt;
+ __syscall_slong_t __ru_majflt_word;
+ };
+ /* Number of times a process was swapped out of physical memory. */
+ __extension__ union
+ {
+ long int ru_nswap;
+ __syscall_slong_t __ru_nswap_word;
+ };
+ /* Number of input operations via the file system. Note: This
+ and `ru_oublock' do not include operations with the cache. */
+ __extension__ union
+ {
+ long int ru_inblock;
+ __syscall_slong_t __ru_inblock_word;
+ };
+ /* Number of output operations via the file system. */
+ __extension__ union
+ {
+ long int ru_oublock;
+ __syscall_slong_t __ru_oublock_word;
+ };
+ /* Number of IPC messages sent. */
+ __extension__ union
+ {
+ long int ru_msgsnd;
+ __syscall_slong_t __ru_msgsnd_word;
+ };
+ /* Number of IPC messages received. */
+ __extension__ union
+ {
+ long int ru_msgrcv;
+ __syscall_slong_t __ru_msgrcv_word;
+ };
+ /* Number of signals delivered. */
+ __extension__ union
+ {
+ long int ru_nsignals;
+ __syscall_slong_t __ru_nsignals_word;
+ };
+ /* Number of voluntary context switches, i.e. because the process
+ gave up the process before it had to (usually to wait for some
+ resource to be available). */
+ __extension__ union
+ {
+ long int ru_nvcsw;
+ __syscall_slong_t __ru_nvcsw_word;
+ };
+ /* Number of involuntary context switches, i.e. a higher priority process
+ became runnable or the current process used up its time slice. */
+ __extension__ union
+ {
+ long int ru_nivcsw;
+ __syscall_slong_t __ru_nivcsw_word;
+ };
+ };
+
+/* Priority limits. */
+#define PRIO_MIN -20 /* Minimum priority a process can have. */
+#define PRIO_MAX 20 /* Maximum priority a process can have. */
+
+/* The type of the WHICH argument to `getpriority' and `setpriority',
+ indicating what flavor of entity the WHO argument specifies. */
+enum __priority_which
+{
+ PRIO_PROCESS = 0, /* WHO is a process ID. */
+#define PRIO_PROCESS PRIO_PROCESS
+ PRIO_PGRP = 1, /* WHO is a process group ID. */
+#define PRIO_PGRP PRIO_PGRP
+ PRIO_USER = 2 /* WHO is a user ID. */
+#define PRIO_USER PRIO_USER
+};
+
+
+__BEGIN_DECLS
+
+#ifdef __USE_GNU
+/* Modify and return resource limits of a process atomically. */
+# ifndef __USE_FILE_OFFSET64
+extern int prlimit (__pid_t __pid, enum __rlimit_resource __resource,
+ const struct rlimit *__new_limit,
+ struct rlimit *__old_limit) __THROW;
+# else
+# ifdef __REDIRECT_NTH
+extern int __REDIRECT_NTH (prlimit, (__pid_t __pid,
+ enum __rlimit_resource __resource,
+ const struct rlimit *__new_limit,
+ struct rlimit *__old_limit), prlimit64);
+# else
+# define prlimit prlimit64
+# endif
+# endif
+# ifdef __USE_LARGEFILE64
+extern int prlimit64 (__pid_t __pid, enum __rlimit_resource __resource,
+ const struct rlimit64 *__new_limit,
+ struct rlimit64 *__old_limit) __THROW;
+# endif
+#endif
+
+__END_DECLS
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/bits/sched.h b/REORG.TODO/sysdeps/unix/sysv/linux/bits/sched.h
new file mode 100644
index 0000000000..cc0d698f34
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/bits/sched.h
@@ -0,0 +1,211 @@
+/* Definitions of constants and data structure for POSIX 1003.1b-1993
+ scheduling interface.
+ Copyright (C) 1996-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef __need_schedparam
+
+#ifndef _SCHED_H
+# error "Never include <bits/sched.h> directly; use <sched.h> instead."
+#endif
+
+
+/* Scheduling algorithms. */
+#define SCHED_OTHER 0
+#define SCHED_FIFO 1
+#define SCHED_RR 2
+#ifdef __USE_GNU
+# define SCHED_BATCH 3
+# define SCHED_IDLE 5
+
+# define SCHED_RESET_ON_FORK 0x40000000
+#endif
+
+#ifdef __USE_GNU
+/* Cloning flags. */
+# define CSIGNAL 0x000000ff /* Signal mask to be sent at exit. */
+# define CLONE_VM 0x00000100 /* Set if VM shared between processes. */
+# define CLONE_FS 0x00000200 /* Set if fs info shared between processes. */
+# define CLONE_FILES 0x00000400 /* Set if open files shared between processes. */
+# define CLONE_SIGHAND 0x00000800 /* Set if signal handlers shared. */
+# define CLONE_PTRACE 0x00002000 /* Set if tracing continues on the child. */
+# define CLONE_VFORK 0x00004000 /* Set if the parent wants the child to
+ wake it up on mm_release. */
+# define CLONE_PARENT 0x00008000 /* Set if we want to have the same
+ parent as the cloner. */
+# define CLONE_THREAD 0x00010000 /* Set to add to same thread group. */
+# define CLONE_NEWNS 0x00020000 /* Set to create new namespace. */
+# define CLONE_SYSVSEM 0x00040000 /* Set to shared SVID SEM_UNDO semantics. */
+# define CLONE_SETTLS 0x00080000 /* Set TLS info. */
+# define CLONE_PARENT_SETTID 0x00100000 /* Store TID in userlevel buffer
+ before MM copy. */
+# define CLONE_CHILD_CLEARTID 0x00200000 /* Register exit futex and memory
+ location to clear. */
+# define CLONE_DETACHED 0x00400000 /* Create clone detached. */
+# define CLONE_UNTRACED 0x00800000 /* Set if the tracing process can't
+ force CLONE_PTRACE on this clone. */
+# define CLONE_CHILD_SETTID 0x01000000 /* Store TID in userlevel buffer in
+ the child. */
+# define CLONE_NEWCGROUP 0x02000000 /* New cgroup namespace. */
+# define CLONE_NEWUTS 0x04000000 /* New utsname group. */
+# define CLONE_NEWIPC 0x08000000 /* New ipcs. */
+# define CLONE_NEWUSER 0x10000000 /* New user namespace. */
+# define CLONE_NEWPID 0x20000000 /* New pid namespace. */
+# define CLONE_NEWNET 0x40000000 /* New network namespace. */
+# define CLONE_IO 0x80000000 /* Clone I/O context. */
+#endif
+
+/* The official definition. */
+struct sched_param
+ {
+ int __sched_priority;
+ };
+
+__BEGIN_DECLS
+
+#ifdef __USE_GNU
+/* Clone current process. */
+extern int clone (int (*__fn) (void *__arg), void *__child_stack,
+ int __flags, void *__arg, ...) __THROW;
+
+/* Unshare the specified resources. */
+extern int unshare (int __flags) __THROW;
+
+/* Get index of currently used CPU. */
+extern int sched_getcpu (void) __THROW;
+
+/* Switch process to namespace of type NSTYPE indicated by FD. */
+extern int setns (int __fd, int __nstype) __THROW;
+#endif
+
+
+__END_DECLS
+
+#endif /* need schedparam */
+
+#if !defined __defined_schedparam \
+ && (defined __need_schedparam || defined _SCHED_H)
+# define __defined_schedparam 1
+/* Data structure to describe a process' schedulability. */
+struct __sched_param
+ {
+ int __sched_priority;
+ };
+# undef __need_schedparam
+#endif
+
+
+#if defined _SCHED_H && !defined __cpu_set_t_defined
+# define __cpu_set_t_defined
+/* Size definition for CPU sets. */
+# define __CPU_SETSIZE 1024
+# define __NCPUBITS (8 * sizeof (__cpu_mask))
+
+/* Type for array elements in 'cpu_set_t'. */
+typedef __CPU_MASK_TYPE __cpu_mask;
+
+/* Basic access functions. */
+# define __CPUELT(cpu) ((cpu) / __NCPUBITS)
+# define __CPUMASK(cpu) ((__cpu_mask) 1 << ((cpu) % __NCPUBITS))
+
+/* Data structure to describe CPU mask. */
+typedef struct
+{
+ __cpu_mask __bits[__CPU_SETSIZE / __NCPUBITS];
+} cpu_set_t;
+
+/* Access functions for CPU masks. */
+# if __GNUC_PREREQ (2, 91)
+# define __CPU_ZERO_S(setsize, cpusetp) \
+ do __builtin_memset (cpusetp, '\0', setsize); while (0)
+# else
+# define __CPU_ZERO_S(setsize, cpusetp) \
+ do { \
+ size_t __i; \
+ size_t __imax = (setsize) / sizeof (__cpu_mask); \
+ __cpu_mask *__bits = (cpusetp)->__bits; \
+ for (__i = 0; __i < __imax; ++__i) \
+ __bits[__i] = 0; \
+ } while (0)
+# endif
+# define __CPU_SET_S(cpu, setsize, cpusetp) \
+ (__extension__ \
+ ({ size_t __cpu = (cpu); \
+ __cpu / 8 < (setsize) \
+ ? (((__cpu_mask *) ((cpusetp)->__bits))[__CPUELT (__cpu)] \
+ |= __CPUMASK (__cpu)) \
+ : 0; }))
+# define __CPU_CLR_S(cpu, setsize, cpusetp) \
+ (__extension__ \
+ ({ size_t __cpu = (cpu); \
+ __cpu / 8 < (setsize) \
+ ? (((__cpu_mask *) ((cpusetp)->__bits))[__CPUELT (__cpu)] \
+ &= ~__CPUMASK (__cpu)) \
+ : 0; }))
+# define __CPU_ISSET_S(cpu, setsize, cpusetp) \
+ (__extension__ \
+ ({ size_t __cpu = (cpu); \
+ __cpu / 8 < (setsize) \
+ ? ((((const __cpu_mask *) ((cpusetp)->__bits))[__CPUELT (__cpu)] \
+ & __CPUMASK (__cpu))) != 0 \
+ : 0; }))
+
+# define __CPU_COUNT_S(setsize, cpusetp) \
+ __sched_cpucount (setsize, cpusetp)
+
+# if __GNUC_PREREQ (2, 91)
+# define __CPU_EQUAL_S(setsize, cpusetp1, cpusetp2) \
+ (__builtin_memcmp (cpusetp1, cpusetp2, setsize) == 0)
+# else
+# define __CPU_EQUAL_S(setsize, cpusetp1, cpusetp2) \
+ (__extension__ \
+ ({ const __cpu_mask *__arr1 = (cpusetp1)->__bits; \
+ const __cpu_mask *__arr2 = (cpusetp2)->__bits; \
+ size_t __imax = (setsize) / sizeof (__cpu_mask); \
+ size_t __i; \
+ for (__i = 0; __i < __imax; ++__i) \
+ if (__arr1[__i] != __arr2[__i]) \
+ break; \
+ __i == __imax; }))
+# endif
+
+# define __CPU_OP_S(setsize, destset, srcset1, srcset2, op) \
+ (__extension__ \
+ ({ cpu_set_t *__dest = (destset); \
+ const __cpu_mask *__arr1 = (srcset1)->__bits; \
+ const __cpu_mask *__arr2 = (srcset2)->__bits; \
+ size_t __imax = (setsize) / sizeof (__cpu_mask); \
+ size_t __i; \
+ for (__i = 0; __i < __imax; ++__i) \
+ ((__cpu_mask *) __dest->__bits)[__i] = __arr1[__i] op __arr2[__i]; \
+ __dest; }))
+
+# define __CPU_ALLOC_SIZE(count) \
+ ((((count) + __NCPUBITS - 1) / __NCPUBITS) * sizeof (__cpu_mask))
+# define __CPU_ALLOC(count) __sched_cpualloc (count)
+# define __CPU_FREE(cpuset) __sched_cpufree (cpuset)
+
+__BEGIN_DECLS
+
+extern int __sched_cpucount (size_t __setsize, const cpu_set_t *__setp)
+ __THROW;
+extern cpu_set_t *__sched_cpualloc (size_t __count) __THROW __wur;
+extern void __sched_cpufree (cpu_set_t *__set) __THROW;
+
+__END_DECLS
+
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/bits/sem.h b/REORG.TODO/sysdeps/unix/sysv/linux/bits/sem.h
new file mode 100644
index 0000000000..7659ca97b9
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/bits/sem.h
@@ -0,0 +1,86 @@
+/* Copyright (C) 1995-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_SEM_H
+# error "Never include <bits/sem.h> directly; use <sys/sem.h> instead."
+#endif
+
+#include <sys/types.h>
+
+/* Flags for `semop'. */
+#define SEM_UNDO 0x1000 /* undo the operation on exit */
+
+/* Commands for `semctl'. */
+#define GETPID 11 /* get sempid */
+#define GETVAL 12 /* get semval */
+#define GETALL 13 /* get all semval's */
+#define GETNCNT 14 /* get semncnt */
+#define GETZCNT 15 /* get semzcnt */
+#define SETVAL 16 /* set semval */
+#define SETALL 17 /* set all semval's */
+
+
+/* Data structure describing a set of semaphores. */
+struct semid_ds
+{
+ struct ipc_perm sem_perm; /* operation permission struct */
+ __time_t sem_otime; /* last semop() time */
+ unsigned long int __glibc_reserved1;
+ __time_t sem_ctime; /* last time changed by semctl() */
+ unsigned long int __glibc_reserved2;
+ unsigned long int sem_nsems; /* number of semaphores in set */
+ unsigned long int __glibc_reserved3;
+ unsigned long int __glibc_reserved4;
+};
+
+/* The user should define a union like the following to use it for arguments
+ for `semctl'.
+
+ union semun
+ {
+ int val; <= value for SETVAL
+ struct semid_ds *buf; <= buffer for IPC_STAT & IPC_SET
+ unsigned short int *array; <= array for GETALL & SETALL
+ struct seminfo *__buf; <= buffer for IPC_INFO
+ };
+
+ Previous versions of this file used to define this union but this is
+ incorrect. One can test the macro _SEM_SEMUN_UNDEFINED to see whether
+ one must define the union or not. */
+#define _SEM_SEMUN_UNDEFINED 1
+
+#ifdef __USE_MISC
+
+/* ipcs ctl cmds */
+# define SEM_STAT 18
+# define SEM_INFO 19
+
+struct seminfo
+{
+ int semmap;
+ int semmni;
+ int semmns;
+ int semmnu;
+ int semmsl;
+ int semopm;
+ int semume;
+ int semusz;
+ int semvmx;
+ int semaem;
+};
+
+#endif /* __USE_MISC */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/bits/shm.h b/REORG.TODO/sysdeps/unix/sysv/linux/bits/shm.h
new file mode 100644
index 0000000000..f8f593c4a2
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/bits/shm.h
@@ -0,0 +1,103 @@
+/* Copyright (C) 1995-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_SHM_H
+# error "Never include <bits/shm.h> directly; use <sys/shm.h> instead."
+#endif
+
+#include <bits/types.h>
+
+/* Permission flag for shmget. */
+#define SHM_R 0400 /* or S_IRUGO from <linux/stat.h> */
+#define SHM_W 0200 /* or S_IWUGO from <linux/stat.h> */
+
+/* Flags for `shmat'. */
+#define SHM_RDONLY 010000 /* attach read-only else read-write */
+#define SHM_RND 020000 /* round attach address to SHMLBA */
+#define SHM_REMAP 040000 /* take-over region on attach */
+#define SHM_EXEC 0100000 /* execution access */
+
+/* Commands for `shmctl'. */
+#define SHM_LOCK 11 /* lock segment (root only) */
+#define SHM_UNLOCK 12 /* unlock segment (root only) */
+
+__BEGIN_DECLS
+
+/* Segment low boundary address multiple. */
+#define SHMLBA (__getpagesize ())
+extern int __getpagesize (void) __THROW __attribute__ ((__const__));
+
+
+/* Type to count number of attaches. */
+typedef unsigned long int shmatt_t;
+
+/* Data structure describing a shared memory segment. */
+struct shmid_ds
+ {
+ struct ipc_perm shm_perm; /* operation permission struct */
+ size_t shm_segsz; /* size of segment in bytes */
+ __time_t shm_atime; /* time of last shmat() */
+ unsigned long int __glibc_reserved1;
+ __time_t shm_dtime; /* time of last shmdt() */
+ unsigned long int __glibc_reserved2;
+ __time_t shm_ctime; /* time of last change by shmctl() */
+ unsigned long int __glibc_reserved3;
+ __pid_t shm_cpid; /* pid of creator */
+ __pid_t shm_lpid; /* pid of last shmop */
+ shmatt_t shm_nattch; /* number of current attaches */
+ unsigned long int __glibc_reserved4;
+ unsigned long int __glibc_reserved5;
+ };
+
+#ifdef __USE_MISC
+
+/* ipcs ctl commands */
+# define SHM_STAT 13
+# define SHM_INFO 14
+
+/* shm_mode upper byte flags */
+# define SHM_DEST 01000 /* segment will be destroyed on last detach */
+# define SHM_LOCKED 02000 /* segment will not be swapped */
+# define SHM_HUGETLB 04000 /* segment is mapped via hugetlb */
+# define SHM_NORESERVE 010000 /* don't check for reservations */
+
+struct shminfo
+ {
+ unsigned long int shmmax;
+ unsigned long int shmmin;
+ unsigned long int shmmni;
+ unsigned long int shmseg;
+ unsigned long int shmall;
+ unsigned long int __glibc_reserved1;
+ unsigned long int __glibc_reserved2;
+ unsigned long int __glibc_reserved3;
+ unsigned long int __glibc_reserved4;
+ };
+
+struct shm_info
+ {
+ int used_ids;
+ unsigned long int shm_tot; /* total allocated shm */
+ unsigned long int shm_rss; /* total resident shm */
+ unsigned long int shm_swp; /* total swapped shm */
+ unsigned long int swap_attempts;
+ unsigned long int swap_successes;
+ };
+
+#endif /* __USE_MISC */
+
+__END_DECLS
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/bits/sigaction.h b/REORG.TODO/sysdeps/unix/sysv/linux/bits/sigaction.h
new file mode 100644
index 0000000000..1e96d74daf
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/bits/sigaction.h
@@ -0,0 +1,78 @@
+/* The proper definitions for Linux's sigaction.
+ 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 _SIGNAL_H
+# error "Never include <bits/sigaction.h> directly; use <signal.h> instead."
+#endif
+
+/* Structure describing the action to be taken when a signal arrives. */
+struct sigaction
+ {
+ /* Signal handler. */
+#ifdef __USE_POSIX199309
+ union
+ {
+ /* Used if SA_SIGINFO is not set. */
+ __sighandler_t sa_handler;
+ /* Used if SA_SIGINFO is set. */
+ void (*sa_sigaction) (int, siginfo_t *, void *);
+ }
+ __sigaction_handler;
+# define sa_handler __sigaction_handler.sa_handler
+# define sa_sigaction __sigaction_handler.sa_sigaction
+#else
+ __sighandler_t sa_handler;
+#endif
+
+ /* Additional set of signals to be blocked. */
+ __sigset_t sa_mask;
+
+ /* Special flags. */
+ int sa_flags;
+
+ /* Restore handler. */
+ void (*sa_restorer) (void);
+ };
+
+/* Bits in `sa_flags'. */
+#define SA_NOCLDSTOP 1 /* Don't send SIGCHLD when children stop. */
+#define SA_NOCLDWAIT 2 /* Don't create zombie on child death. */
+#define SA_SIGINFO 4 /* Invoke signal-catching function with
+ three arguments instead of one. */
+#if defined __USE_UNIX98 || defined __USE_MISC
+# define SA_ONSTACK 0x08000000 /* Use signal stack by using `sa_restorer'. */
+#endif
+#if defined __USE_UNIX98 || defined __USE_XOPEN2K8
+# define SA_RESTART 0x10000000 /* Restart syscall on signal return. */
+# define SA_NODEFER 0x40000000 /* Don't automatically block the signal when
+ its handler is being executed. */
+# define SA_RESETHAND 0x80000000 /* Reset to SIG_DFL on entry to handler. */
+#endif
+#ifdef __USE_MISC
+# define SA_INTERRUPT 0x20000000 /* Historical no-op. */
+
+/* Some aliases for the SA_ constants. */
+# define SA_NOMASK SA_NODEFER
+# define SA_ONESHOT SA_RESETHAND
+# define SA_STACK SA_ONSTACK
+#endif
+
+/* Values for the HOW argument to `sigprocmask'. */
+#define SIG_BLOCK 0 /* Block signals. */
+#define SIG_UNBLOCK 1 /* Unblock signals. */
+#define SIG_SETMASK 2 /* Set the set of blocked signals. */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/bits/sigcontext.h b/REORG.TODO/sysdeps/unix/sysv/linux/bits/sigcontext.h
new file mode 100644
index 0000000000..cb7e6b1e30
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/bits/sigcontext.h
@@ -0,0 +1,37 @@
+/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _BITS_SIGCONTEXT_H
+#define _BITS_SIGCONTEXT_H 1
+
+#if !defined _SIGNAL_H && !defined _SYS_UCONTEXT_H
+# error "Never use <bits/sigcontext.h> directly; include <signal.h> instead."
+#endif
+
+#ifndef sigcontext_struct
+/* Kernel headers before 2.1.1 define a struct sigcontext_struct, but
+ we need sigcontext. */
+# define sigcontext_struct sigcontext
+
+# include <asm/sigcontext.h>
+
+/* The Linux kernel headers redefine NULL wrongly, so cleanup afterwards. */
+# define __need_NULL
+# include <stddef.h>
+#endif
+
+#endif /* bits/sigcontext.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/bits/sigevent-consts.h b/REORG.TODO/sysdeps/unix/sysv/linux/bits/sigevent-consts.h
new file mode 100644
index 0000000000..df3513bde2
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/bits/sigevent-consts.h
@@ -0,0 +1,41 @@
+/* sigevent constants. Linux version.
+ Copyright (C) 1997-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _BITS_SIGEVENT_CONSTS_H
+#define _BITS_SIGEVENT_CONSTS_H 1
+
+#if !defined _SIGNAL_H && !defined _AIO_H
+#error "Don't include <bits/sigevent-consts.h> directly; use <signal.h> instead."
+#endif
+
+/* `sigev_notify' values. */
+enum
+{
+ SIGEV_SIGNAL = 0, /* Notify via signal. */
+# define SIGEV_SIGNAL SIGEV_SIGNAL
+ SIGEV_NONE, /* Other notification: meaningless. */
+# define SIGEV_NONE SIGEV_NONE
+ SIGEV_THREAD, /* Deliver via thread creation. */
+# define SIGEV_THREAD SIGEV_THREAD
+
+ SIGEV_THREAD_ID = 4 /* Send signal to specific thread.
+ This is a Linux extension. */
+#define SIGEV_THREAD_ID SIGEV_THREAD_ID
+};
+
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/bits/siginfo-arch.h b/REORG.TODO/sysdeps/unix/sysv/linux/bits/siginfo-arch.h
new file mode 100644
index 0000000000..00018fa620
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/bits/siginfo-arch.h
@@ -0,0 +1,7 @@
+/* Architecture-specific adjustments to siginfo_t. */
+#ifndef _BITS_SIGINFO_ARCH_H
+#define _BITS_SIGINFO_ARCH_H 1
+
+/* This architecture has no adjustments to make to siginfo_t. */
+
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/bits/siginfo-consts-arch.h b/REORG.TODO/sysdeps/unix/sysv/linux/bits/siginfo-consts-arch.h
new file mode 100644
index 0000000000..96b4edbccd
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/bits/siginfo-consts-arch.h
@@ -0,0 +1,7 @@
+/* Architecture-specific additional siginfo constants. */
+#ifndef _BITS_SIGINFO_CONSTS_ARCH_H
+#define _BITS_SIGINFO_CONSTS_ARCH_H 1
+
+/* This architecture has no additional siginfo constants. */
+
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/bits/siginfo-consts.h b/REORG.TODO/sysdeps/unix/sysv/linux/bits/siginfo-consts.h
new file mode 100644
index 0000000000..525840cea1
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/bits/siginfo-consts.h
@@ -0,0 +1,187 @@
+/* siginfo constants. Linux version.
+ Copyright (C) 1997-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _BITS_SIGINFO_CONSTS_H
+#define _BITS_SIGINFO_CONSTS_H 1
+
+#ifndef _SIGNAL_H
+#error "Don't include <bits/siginfo-consts.h> directly; use <signal.h> instead."
+#endif
+
+/* Most of these constants are uniform across all architectures, but there
+ is one exception. */
+#include <bits/siginfo-arch.h>
+#ifndef __SI_ASYNCIO_AFTER_SIGIO
+# define __SI_ASYNCIO_AFTER_SIGIO 1
+#endif
+
+/* Values for `si_code'. Positive values are reserved for kernel-generated
+ signals. */
+enum
+{
+ SI_ASYNCNL = -60, /* Sent by asynch name lookup completion. */
+ SI_TKILL = -6, /* Sent by tkill. */
+ SI_SIGIO, /* Sent by queued SIGIO. */
+#if __SI_ASYNCIO_AFTER_SIGIO
+ SI_ASYNCIO, /* Sent by AIO completion. */
+ SI_MESGQ, /* Sent by real time mesq state change. */
+ SI_TIMER, /* Sent by timer expiration. */
+#else
+ SI_MESGQ,
+ SI_TIMER,
+ SI_ASYNCIO,
+#endif
+ SI_QUEUE, /* Sent by sigqueue. */
+ SI_USER, /* Sent by kill, sigsend. */
+ SI_KERNEL = 0x80 /* Send by kernel. */
+
+#define SI_ASYNCNL SI_ASYNCNL
+#define SI_TKILL SI_TKILL
+#define SI_SIGIO SI_SIGIO
+#define SI_ASYNCIO SI_ASYNCIO
+#define SI_MESGQ SI_MESGQ
+#define SI_TIMER SI_TIMER
+#define SI_ASYNCIO SI_ASYNCIO
+#define SI_QUEUE SI_QUEUE
+#define SI_USER SI_USER
+#define SI_KERNEL SI_KERNEL
+};
+
+
+# if defined __USE_XOPEN_EXTENDED || defined __USE_XOPEN2K8
+/* `si_code' values for SIGILL signal. */
+enum
+{
+ ILL_ILLOPC = 1, /* Illegal opcode. */
+# define ILL_ILLOPC ILL_ILLOPC
+ ILL_ILLOPN, /* Illegal operand. */
+# define ILL_ILLOPN ILL_ILLOPN
+ ILL_ILLADR, /* Illegal addressing mode. */
+# define ILL_ILLADR ILL_ILLADR
+ ILL_ILLTRP, /* Illegal trap. */
+# define ILL_ILLTRP ILL_ILLTRP
+ ILL_PRVOPC, /* Privileged opcode. */
+# define ILL_PRVOPC ILL_PRVOPC
+ ILL_PRVREG, /* Privileged register. */
+# define ILL_PRVREG ILL_PRVREG
+ ILL_COPROC, /* Coprocessor error. */
+# define ILL_COPROC ILL_COPROC
+ ILL_BADSTK /* Internal stack error. */
+# define ILL_BADSTK ILL_BADSTK
+};
+
+/* `si_code' values for SIGFPE signal. */
+enum
+{
+ FPE_INTDIV = 1, /* Integer divide by zero. */
+# define FPE_INTDIV FPE_INTDIV
+ FPE_INTOVF, /* Integer overflow. */
+# define FPE_INTOVF FPE_INTOVF
+ FPE_FLTDIV, /* Floating point divide by zero. */
+# define FPE_FLTDIV FPE_FLTDIV
+ FPE_FLTOVF, /* Floating point overflow. */
+# define FPE_FLTOVF FPE_FLTOVF
+ FPE_FLTUND, /* Floating point underflow. */
+# define FPE_FLTUND FPE_FLTUND
+ FPE_FLTRES, /* Floating point inexact result. */
+# define FPE_FLTRES FPE_FLTRES
+ FPE_FLTINV, /* Floating point invalid operation. */
+# define FPE_FLTINV FPE_FLTINV
+ FPE_FLTSUB /* Subscript out of range. */
+# define FPE_FLTSUB FPE_FLTSUB
+};
+
+/* `si_code' values for SIGSEGV signal. */
+enum
+{
+ SEGV_MAPERR = 1, /* Address not mapped to object. */
+# define SEGV_MAPERR SEGV_MAPERR
+ SEGV_ACCERR /* Invalid permissions for mapped object. */
+# define SEGV_ACCERR SEGV_ACCERR
+};
+
+/* `si_code' values for SIGBUS signal. */
+enum
+{
+ BUS_ADRALN = 1, /* Invalid address alignment. */
+# define BUS_ADRALN BUS_ADRALN
+ BUS_ADRERR, /* Non-existant physical address. */
+# define BUS_ADRERR BUS_ADRERR
+ BUS_OBJERR, /* Object specific hardware error. */
+# define BUS_OBJERR BUS_OBJERR
+ BUS_MCEERR_AR, /* Hardware memory error: action required. */
+# define BUS_MCEERR_AR BUS_MCEERR_AR
+ BUS_MCEERR_AO /* Hardware memory error: action optional. */
+# define BUS_MCEERR_AO BUS_MCEERR_AO
+};
+# endif
+
+# ifdef __USE_XOPEN_EXTENDED
+/* `si_code' values for SIGTRAP signal. */
+enum
+{
+ TRAP_BRKPT = 1, /* Process breakpoint. */
+# define TRAP_BRKPT TRAP_BRKPT
+ TRAP_TRACE /* Process trace trap. */
+# define TRAP_TRACE TRAP_TRACE
+};
+# endif
+
+# if defined __USE_XOPEN_EXTENDED || defined __USE_XOPEN2K8
+/* `si_code' values for SIGCHLD signal. */
+enum
+{
+ CLD_EXITED = 1, /* Child has exited. */
+# define CLD_EXITED CLD_EXITED
+ CLD_KILLED, /* Child was killed. */
+# define CLD_KILLED CLD_KILLED
+ CLD_DUMPED, /* Child terminated abnormally. */
+# define CLD_DUMPED CLD_DUMPED
+ CLD_TRAPPED, /* Traced child has trapped. */
+# define CLD_TRAPPED CLD_TRAPPED
+ CLD_STOPPED, /* Child has stopped. */
+# define CLD_STOPPED CLD_STOPPED
+ CLD_CONTINUED /* Stopped child has continued. */
+# define CLD_CONTINUED CLD_CONTINUED
+};
+
+/* `si_code' values for SIGPOLL signal. */
+enum
+{
+ POLL_IN = 1, /* Data input available. */
+# define POLL_IN POLL_IN
+ POLL_OUT, /* Output buffers available. */
+# define POLL_OUT POLL_OUT
+ POLL_MSG, /* Input message available. */
+# define POLL_MSG POLL_MSG
+ POLL_ERR, /* I/O error. */
+# define POLL_ERR POLL_ERR
+ POLL_PRI, /* High priority input available. */
+# define POLL_PRI POLL_PRI
+ POLL_HUP /* Device disconnected. */
+# define POLL_HUP POLL_HUP
+};
+# endif
+
+/* Architectures might also add architecture-specific constants.
+ These are all considered GNU extensions. */
+#ifdef __USE_GNU
+# include <bits/siginfo-consts-arch.h>
+#endif
+
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/bits/signalfd.h b/REORG.TODO/sysdeps/unix/sysv/linux/bits/signalfd.h
new file mode 100644
index 0000000000..9830b6953e
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/bits/signalfd.h
@@ -0,0 +1,29 @@
+/* Copyright (C) 2007-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_SIGNALFD_H
+# error "Never use <bits/signalfd.h> directly; include <sys/signalfd.h> instead."
+#endif
+
+/* Flags for signalfd. */
+enum
+ {
+ SFD_CLOEXEC = 02000000,
+#define SFD_CLOEXEC SFD_CLOEXEC
+ SFD_NONBLOCK = 00004000
+#define SFD_NONBLOCK SFD_NONBLOCK
+ };
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/bits/signum.h b/REORG.TODO/sysdeps/unix/sysv/linux/bits/signum.h
new file mode 100644
index 0000000000..e30efead0d
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/bits/signum.h
@@ -0,0 +1,79 @@
+/* Signal number definitions. Linux version.
+ Copyright (C) 1995-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifdef _SIGNAL_H
+
+/* Fake signal functions. */
+#define SIG_ERR ((__sighandler_t) -1) /* Error return. */
+#define SIG_DFL ((__sighandler_t) 0) /* Default action. */
+#define SIG_IGN ((__sighandler_t) 1) /* Ignore signal. */
+
+#ifdef __USE_XOPEN
+# define SIG_HOLD ((__sighandler_t) 2) /* Add signal to hold mask. */
+#endif
+
+
+/* Signals. */
+#define SIGHUP 1 /* Hangup (POSIX). */
+#define SIGINT 2 /* Interrupt (ANSI). */
+#define SIGQUIT 3 /* Quit (POSIX). */
+#define SIGILL 4 /* Illegal instruction (ANSI). */
+#define SIGTRAP 5 /* Trace trap (POSIX). */
+#define SIGABRT 6 /* Abort (ANSI). */
+#define SIGIOT 6 /* IOT trap (4.2 BSD). */
+#define SIGBUS 7 /* BUS error (4.2 BSD). */
+#define SIGFPE 8 /* Floating-point exception (ANSI). */
+#define SIGKILL 9 /* Kill, unblockable (POSIX). */
+#define SIGUSR1 10 /* User-defined signal 1 (POSIX). */
+#define SIGSEGV 11 /* Segmentation violation (ANSI). */
+#define SIGUSR2 12 /* User-defined signal 2 (POSIX). */
+#define SIGPIPE 13 /* Broken pipe (POSIX). */
+#define SIGALRM 14 /* Alarm clock (POSIX). */
+#define SIGTERM 15 /* Termination (ANSI). */
+#define SIGSTKFLT 16 /* Stack fault. */
+#define SIGCLD SIGCHLD /* Same as SIGCHLD (System V). */
+#define SIGCHLD 17 /* Child status has changed (POSIX). */
+#define SIGCONT 18 /* Continue (POSIX). */
+#define SIGSTOP 19 /* Stop, unblockable (POSIX). */
+#define SIGTSTP 20 /* Keyboard stop (POSIX). */
+#define SIGTTIN 21 /* Background read from tty (POSIX). */
+#define SIGTTOU 22 /* Background write to tty (POSIX). */
+#define SIGURG 23 /* Urgent condition on socket (4.2 BSD). */
+#define SIGXCPU 24 /* CPU limit exceeded (4.2 BSD). */
+#define SIGXFSZ 25 /* File size limit exceeded (4.2 BSD). */
+#define SIGVTALRM 26 /* Virtual alarm clock (4.2 BSD). */
+#define SIGPROF 27 /* Profiling alarm clock (4.2 BSD). */
+#define SIGWINCH 28 /* Window size change (4.3 BSD, Sun). */
+#define SIGPOLL SIGIO /* Pollable event occurred (System V). */
+#define SIGIO 29 /* I/O now possible (4.2 BSD). */
+#define SIGPWR 30 /* Power failure restart (System V). */
+#define SIGSYS 31 /* Bad system call. */
+#define SIGUNUSED 31
+
+#define _NSIG 65 /* Biggest signal number + 1
+ (including real-time signals). */
+
+#define SIGRTMIN (__libc_current_sigrtmin ())
+#define SIGRTMAX (__libc_current_sigrtmax ())
+
+/* These are the hard limits of the kernel. These values should not be
+ used directly at user level. */
+#define __SIGRTMIN 32
+#define __SIGRTMAX (_NSIG - 1)
+
+#endif /* <signal.h> included. */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/bits/sigstack.h b/REORG.TODO/sysdeps/unix/sysv/linux/bits/sigstack.h
new file mode 100644
index 0000000000..e6b6c7edcf
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/bits/sigstack.h
@@ -0,0 +1,32 @@
+/* sigstack, sigaltstack definitions.
+ Copyright (C) 1998-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _BITS_SIGSTACK_H
+#define _BITS_SIGSTACK_H 1
+
+#if !defined _SIGNAL_H && !defined _SYS_UCONTEXT_H
+# error "Never include this file directly. Use <signal.h> instead"
+#endif
+
+/* Minimum stack size for a signal handler. */
+#define MINSIGSTKSZ 2048
+
+/* System default stack size. */
+#define SIGSTKSZ 8192
+
+#endif /* bits/sigstack.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/bits/socket.h b/REORG.TODO/sysdeps/unix/sysv/linux/bits/socket.h
new file mode 100644
index 0000000000..ec2bf8564f
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/bits/socket.h
@@ -0,0 +1,447 @@
+/* System-specific socket constants and types. Linux version.
+ Copyright (C) 1991-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef __BITS_SOCKET_H
+#define __BITS_SOCKET_H
+
+#ifndef _SYS_SOCKET_H
+# error "Never include <bits/socket.h> directly; use <sys/socket.h> instead."
+#endif
+
+#define __need_size_t
+#include <stddef.h>
+
+#include <sys/types.h>
+
+/* Type for length arguments in socket calls. */
+#ifndef __socklen_t_defined
+typedef __socklen_t socklen_t;
+# define __socklen_t_defined
+#endif
+
+/* Get the architecture-dependent definition of enum __socket_type. */
+#include <bits/socket_type.h>
+
+/* Protocol families. */
+#define PF_UNSPEC 0 /* Unspecified. */
+#define PF_LOCAL 1 /* Local to host (pipes and file-domain). */
+#define PF_UNIX PF_LOCAL /* POSIX name for PF_LOCAL. */
+#define PF_FILE PF_LOCAL /* Another non-standard name for PF_LOCAL. */
+#define PF_INET 2 /* IP protocol family. */
+#define PF_AX25 3 /* Amateur Radio AX.25. */
+#define PF_IPX 4 /* Novell Internet Protocol. */
+#define PF_APPLETALK 5 /* Appletalk DDP. */
+#define PF_NETROM 6 /* Amateur radio NetROM. */
+#define PF_BRIDGE 7 /* Multiprotocol bridge. */
+#define PF_ATMPVC 8 /* ATM PVCs. */
+#define PF_X25 9 /* Reserved for X.25 project. */
+#define PF_INET6 10 /* IP version 6. */
+#define PF_ROSE 11 /* Amateur Radio X.25 PLP. */
+#define PF_DECnet 12 /* Reserved for DECnet project. */
+#define PF_NETBEUI 13 /* Reserved for 802.2LLC project. */
+#define PF_SECURITY 14 /* Security callback pseudo AF. */
+#define PF_KEY 15 /* PF_KEY key management API. */
+#define PF_NETLINK 16
+#define PF_ROUTE PF_NETLINK /* Alias to emulate 4.4BSD. */
+#define PF_PACKET 17 /* Packet family. */
+#define PF_ASH 18 /* Ash. */
+#define PF_ECONET 19 /* Acorn Econet. */
+#define PF_ATMSVC 20 /* ATM SVCs. */
+#define PF_RDS 21 /* RDS sockets. */
+#define PF_SNA 22 /* Linux SNA Project */
+#define PF_IRDA 23 /* IRDA sockets. */
+#define PF_PPPOX 24 /* PPPoX sockets. */
+#define PF_WANPIPE 25 /* Wanpipe API sockets. */
+#define PF_LLC 26 /* Linux LLC. */
+#define PF_IB 27 /* Native InfiniBand address. */
+#define PF_MPLS 28 /* MPLS. */
+#define PF_CAN 29 /* Controller Area Network. */
+#define PF_TIPC 30 /* TIPC sockets. */
+#define PF_BLUETOOTH 31 /* Bluetooth sockets. */
+#define PF_IUCV 32 /* IUCV sockets. */
+#define PF_RXRPC 33 /* RxRPC sockets. */
+#define PF_ISDN 34 /* mISDN sockets. */
+#define PF_PHONET 35 /* Phonet sockets. */
+#define PF_IEEE802154 36 /* IEEE 802.15.4 sockets. */
+#define PF_CAIF 37 /* CAIF sockets. */
+#define PF_ALG 38 /* Algorithm sockets. */
+#define PF_NFC 39 /* NFC sockets. */
+#define PF_VSOCK 40 /* vSockets. */
+#define PF_KCM 41 /* Kernel Connection Multiplexor. */
+#define PF_QIPCRTR 42 /* Qualcomm IPC Router. */
+#define PF_SMC 43 /* SMC sockets. */
+#define PF_MAX 44 /* For now.. */
+
+/* Address families. */
+#define AF_UNSPEC PF_UNSPEC
+#define AF_LOCAL PF_LOCAL
+#define AF_UNIX PF_UNIX
+#define AF_FILE PF_FILE
+#define AF_INET PF_INET
+#define AF_AX25 PF_AX25
+#define AF_IPX PF_IPX
+#define AF_APPLETALK PF_APPLETALK
+#define AF_NETROM PF_NETROM
+#define AF_BRIDGE PF_BRIDGE
+#define AF_ATMPVC PF_ATMPVC
+#define AF_X25 PF_X25
+#define AF_INET6 PF_INET6
+#define AF_ROSE PF_ROSE
+#define AF_DECnet PF_DECnet
+#define AF_NETBEUI PF_NETBEUI
+#define AF_SECURITY PF_SECURITY
+#define AF_KEY PF_KEY
+#define AF_NETLINK PF_NETLINK
+#define AF_ROUTE PF_ROUTE
+#define AF_PACKET PF_PACKET
+#define AF_ASH PF_ASH
+#define AF_ECONET PF_ECONET
+#define AF_ATMSVC PF_ATMSVC
+#define AF_RDS PF_RDS
+#define AF_SNA PF_SNA
+#define AF_IRDA PF_IRDA
+#define AF_PPPOX PF_PPPOX
+#define AF_WANPIPE PF_WANPIPE
+#define AF_LLC PF_LLC
+#define AF_IB PF_IB
+#define AF_MPLS PF_MPLS
+#define AF_CAN PF_CAN
+#define AF_TIPC PF_TIPC
+#define AF_BLUETOOTH PF_BLUETOOTH
+#define AF_IUCV PF_IUCV
+#define AF_RXRPC PF_RXRPC
+#define AF_ISDN PF_ISDN
+#define AF_PHONET PF_PHONET
+#define AF_IEEE802154 PF_IEEE802154
+#define AF_CAIF PF_CAIF
+#define AF_ALG PF_ALG
+#define AF_NFC PF_NFC
+#define AF_VSOCK PF_VSOCK
+#define AF_KCM PF_KCM
+#define AF_QIPCRTR PF_QIPCRTR
+#define AF_SMC PF_SMC
+#define AF_MAX PF_MAX
+
+/* Socket level values. Others are defined in the appropriate headers.
+
+ XXX These definitions also should go into the appropriate headers as
+ far as they are available. */
+#define SOL_RAW 255
+#define SOL_DECNET 261
+#define SOL_X25 262
+#define SOL_PACKET 263
+#define SOL_ATM 264 /* ATM layer (cell level). */
+#define SOL_AAL 265 /* ATM Adaption Layer (packet level). */
+#define SOL_IRDA 266
+#define SOL_NETBEUI 267
+#define SOL_LLC 268
+#define SOL_DCCP 269
+#define SOL_NETLINK 270
+#define SOL_TIPC 271
+#define SOL_RXRPC 272
+#define SOL_PPPOL2TP 273
+#define SOL_BLUETOOTH 274
+#define SOL_PNPIPE 275
+#define SOL_RDS 276
+#define SOL_IUCV 277
+#define SOL_CAIF 278
+#define SOL_ALG 279
+#define SOL_NFC 280
+#define SOL_KCM 281
+
+/* Maximum queue length specifiable by listen. */
+#define SOMAXCONN 128
+
+/* Get the definition of the macro to define the common sockaddr members. */
+#include <bits/sockaddr.h>
+
+/* Structure describing a generic socket address. */
+struct sockaddr
+ {
+ __SOCKADDR_COMMON (sa_); /* Common data: address family and length. */
+ char sa_data[14]; /* Address data. */
+ };
+
+
+/* Structure large enough to hold any socket address (with the historical
+ exception of AF_UNIX). */
+#define __ss_aligntype unsigned long int
+#define _SS_PADSIZE \
+ (_SS_SIZE - __SOCKADDR_COMMON_SIZE - sizeof (__ss_aligntype))
+
+struct sockaddr_storage
+ {
+ __SOCKADDR_COMMON (ss_); /* Address family, etc. */
+ char __ss_padding[_SS_PADSIZE];
+ __ss_aligntype __ss_align; /* Force desired alignment. */
+ };
+
+
+/* Bits in the FLAGS argument to `send', `recv', et al. */
+enum
+ {
+ MSG_OOB = 0x01, /* Process out-of-band data. */
+#define MSG_OOB MSG_OOB
+ MSG_PEEK = 0x02, /* Peek at incoming messages. */
+#define MSG_PEEK MSG_PEEK
+ MSG_DONTROUTE = 0x04, /* Don't use local routing. */
+#define MSG_DONTROUTE MSG_DONTROUTE
+#ifdef __USE_GNU
+ /* DECnet uses a different name. */
+ MSG_TRYHARD = MSG_DONTROUTE,
+# define MSG_TRYHARD MSG_DONTROUTE
+#endif
+ MSG_CTRUNC = 0x08, /* Control data lost before delivery. */
+#define MSG_CTRUNC MSG_CTRUNC
+ MSG_PROXY = 0x10, /* Supply or ask second address. */
+#define MSG_PROXY MSG_PROXY
+ MSG_TRUNC = 0x20,
+#define MSG_TRUNC MSG_TRUNC
+ MSG_DONTWAIT = 0x40, /* Nonblocking IO. */
+#define MSG_DONTWAIT MSG_DONTWAIT
+ MSG_EOR = 0x80, /* End of record. */
+#define MSG_EOR MSG_EOR
+ MSG_WAITALL = 0x100, /* Wait for a full request. */
+#define MSG_WAITALL MSG_WAITALL
+ MSG_FIN = 0x200,
+#define MSG_FIN MSG_FIN
+ MSG_SYN = 0x400,
+#define MSG_SYN MSG_SYN
+ MSG_CONFIRM = 0x800, /* Confirm path validity. */
+#define MSG_CONFIRM MSG_CONFIRM
+ MSG_RST = 0x1000,
+#define MSG_RST MSG_RST
+ MSG_ERRQUEUE = 0x2000, /* Fetch message from error queue. */
+#define MSG_ERRQUEUE MSG_ERRQUEUE
+ MSG_NOSIGNAL = 0x4000, /* Do not generate SIGPIPE. */
+#define MSG_NOSIGNAL MSG_NOSIGNAL
+ MSG_MORE = 0x8000, /* Sender will send more. */
+#define MSG_MORE MSG_MORE
+ MSG_WAITFORONE = 0x10000, /* Wait for at least one packet to return.*/
+#define MSG_WAITFORONE MSG_WAITFORONE
+ MSG_BATCH = 0x40000, /* sendmmsg: more messages coming. */
+#define MSG_BATCH MSG_BATCH
+ MSG_FASTOPEN = 0x20000000, /* Send data in TCP SYN. */
+#define MSG_FASTOPEN MSG_FASTOPEN
+
+ MSG_CMSG_CLOEXEC = 0x40000000 /* Set close_on_exit for file
+ descriptor received through
+ SCM_RIGHTS. */
+#define MSG_CMSG_CLOEXEC MSG_CMSG_CLOEXEC
+ };
+
+
+/* Structure describing messages sent by
+ `sendmsg' and received by `recvmsg'. */
+struct msghdr
+ {
+ void *msg_name; /* Address to send to/receive from. */
+ socklen_t msg_namelen; /* Length of address data. */
+
+ struct iovec *msg_iov; /* Vector of data to send/receive into. */
+ size_t msg_iovlen; /* Number of elements in the vector. */
+
+ void *msg_control; /* Ancillary data (eg BSD filedesc passing). */
+ size_t msg_controllen; /* Ancillary data buffer length.
+ !! The type should be socklen_t but the
+ definition of the kernel is incompatible
+ with this. */
+
+ int msg_flags; /* Flags on received message. */
+ };
+
+/* Structure used for storage of ancillary data object information. */
+struct cmsghdr
+ {
+ size_t cmsg_len; /* Length of data in cmsg_data plus length
+ of cmsghdr structure.
+ !! The type should be socklen_t but the
+ definition of the kernel is incompatible
+ with this. */
+ int cmsg_level; /* Originating protocol. */
+ int cmsg_type; /* Protocol specific type. */
+#if __glibc_c99_flexarr_available
+ __extension__ unsigned char __cmsg_data __flexarr; /* Ancillary data. */
+#endif
+ };
+
+/* Ancillary data object manipulation macros. */
+#if __glibc_c99_flexarr_available
+# define CMSG_DATA(cmsg) ((cmsg)->__cmsg_data)
+#else
+# define CMSG_DATA(cmsg) ((unsigned char *) ((struct cmsghdr *) (cmsg) + 1))
+#endif
+#define CMSG_NXTHDR(mhdr, cmsg) __cmsg_nxthdr (mhdr, cmsg)
+#define CMSG_FIRSTHDR(mhdr) \
+ ((size_t) (mhdr)->msg_controllen >= sizeof (struct cmsghdr) \
+ ? (struct cmsghdr *) (mhdr)->msg_control : (struct cmsghdr *) 0)
+#define CMSG_ALIGN(len) (((len) + sizeof (size_t) - 1) \
+ & (size_t) ~(sizeof (size_t) - 1))
+#define CMSG_SPACE(len) (CMSG_ALIGN (len) \
+ + CMSG_ALIGN (sizeof (struct cmsghdr)))
+#define CMSG_LEN(len) (CMSG_ALIGN (sizeof (struct cmsghdr)) + (len))
+
+extern struct cmsghdr *__cmsg_nxthdr (struct msghdr *__mhdr,
+ struct cmsghdr *__cmsg) __THROW;
+#ifdef __USE_EXTERN_INLINES
+# ifndef _EXTERN_INLINE
+# define _EXTERN_INLINE __extern_inline
+# endif
+_EXTERN_INLINE struct cmsghdr *
+__NTH (__cmsg_nxthdr (struct msghdr *__mhdr, struct cmsghdr *__cmsg))
+{
+ if ((size_t) __cmsg->cmsg_len < sizeof (struct cmsghdr))
+ /* The kernel header does this so there may be a reason. */
+ return (struct cmsghdr *) 0;
+
+ __cmsg = (struct cmsghdr *) ((unsigned char *) __cmsg
+ + CMSG_ALIGN (__cmsg->cmsg_len));
+ if ((unsigned char *) (__cmsg + 1) > ((unsigned char *) __mhdr->msg_control
+ + __mhdr->msg_controllen)
+ || ((unsigned char *) __cmsg + CMSG_ALIGN (__cmsg->cmsg_len)
+ > ((unsigned char *) __mhdr->msg_control + __mhdr->msg_controllen)))
+ /* No more entries. */
+ return (struct cmsghdr *) 0;
+ return __cmsg;
+}
+#endif /* Use `extern inline'. */
+
+/* Socket level message types. This must match the definitions in
+ <linux/socket.h>. */
+enum
+ {
+ SCM_RIGHTS = 0x01 /* Transfer file descriptors. */
+#define SCM_RIGHTS SCM_RIGHTS
+#ifdef __USE_GNU
+ , SCM_CREDENTIALS = 0x02 /* Credentials passing. */
+# define SCM_CREDENTIALS SCM_CREDENTIALS
+#endif
+ };
+
+#ifdef __USE_GNU
+/* User visible structure for SCM_CREDENTIALS message */
+struct ucred
+{
+ pid_t pid; /* PID of sending process. */
+ uid_t uid; /* UID of sending process. */
+ gid_t gid; /* GID of sending process. */
+};
+#endif
+
+/* Ugly workaround for unclean kernel headers. */
+#ifndef __USE_MISC
+# ifndef FIOGETOWN
+# define __SYS_SOCKET_H_undef_FIOGETOWN
+# endif
+# ifndef FIOSETOWN
+# define __SYS_SOCKET_H_undef_FIOSETOWN
+# endif
+# ifndef SIOCATMARK
+# define __SYS_SOCKET_H_undef_SIOCATMARK
+# endif
+# ifndef SIOCGPGRP
+# define __SYS_SOCKET_H_undef_SIOCGPGRP
+# endif
+# ifndef SIOCGSTAMP
+# define __SYS_SOCKET_H_undef_SIOCGSTAMP
+# endif
+# ifndef SIOCGSTAMPNS
+# define __SYS_SOCKET_H_undef_SIOCGSTAMPNS
+# endif
+# ifndef SIOCSPGRP
+# define __SYS_SOCKET_H_undef_SIOCSPGRP
+# endif
+#endif
+#ifndef IOCSIZE_MASK
+# define __SYS_SOCKET_H_undef_IOCSIZE_MASK
+#endif
+#ifndef IOCSIZE_SHIFT
+# define __SYS_SOCKET_H_undef_IOCSIZE_SHIFT
+#endif
+#ifndef IOC_IN
+# define __SYS_SOCKET_H_undef_IOC_IN
+#endif
+#ifndef IOC_INOUT
+# define __SYS_SOCKET_H_undef_IOC_INOUT
+#endif
+#ifndef IOC_OUT
+# define __SYS_SOCKET_H_undef_IOC_OUT
+#endif
+
+/* Get socket manipulation related informations from kernel headers. */
+#include <asm/socket.h>
+
+#ifndef __USE_MISC
+# ifdef __SYS_SOCKET_H_undef_FIOGETOWN
+# undef __SYS_SOCKET_H_undef_FIOGETOWN
+# undef FIOGETOWN
+# endif
+# ifdef __SYS_SOCKET_H_undef_FIOSETOWN
+# undef __SYS_SOCKET_H_undef_FIOSETOWN
+# undef FIOSETOWN
+# endif
+# ifdef __SYS_SOCKET_H_undef_SIOCATMARK
+# undef __SYS_SOCKET_H_undef_SIOCATMARK
+# undef SIOCATMARK
+# endif
+# ifdef __SYS_SOCKET_H_undef_SIOCGPGRP
+# undef __SYS_SOCKET_H_undef_SIOCGPGRP
+# undef SIOCGPGRP
+# endif
+# ifdef __SYS_SOCKET_H_undef_SIOCGSTAMP
+# undef __SYS_SOCKET_H_undef_SIOCGSTAMP
+# undef SIOCGSTAMP
+# endif
+# ifdef __SYS_SOCKET_H_undef_SIOCGSTAMPNS
+# undef __SYS_SOCKET_H_undef_SIOCGSTAMPNS
+# undef SIOCGSTAMPNS
+# endif
+# ifdef __SYS_SOCKET_H_undef_SIOCSPGRP
+# undef __SYS_SOCKET_H_undef_SIOCSPGRP
+# undef SIOCSPGRP
+# endif
+#endif
+#ifdef __SYS_SOCKET_H_undef_IOCSIZE_MASK
+# undef __SYS_SOCKET_H_undef_IOCSIZE_MASK
+# undef IOCSIZE_MASK
+#endif
+#ifdef __SYS_SOCKET_H_undef_IOCSIZE_SHIFT
+# undef __SYS_SOCKET_H_undef_IOCSIZE_SHIFT
+# undef IOCSIZE_SHIFT
+#endif
+#ifdef __SYS_SOCKET_H_undef_IOC_IN
+# undef __SYS_SOCKET_H_undef_IOC_IN
+# undef IOC_IN
+#endif
+#ifdef __SYS_SOCKET_H_undef_IOC_INOUT
+# undef __SYS_SOCKET_H_undef_IOC_INOUT
+# undef IOC_INOUT
+#endif
+#ifdef __SYS_SOCKET_H_undef_IOC_OUT
+# undef __SYS_SOCKET_H_undef_IOC_OUT
+# undef IOC_OUT
+#endif
+
+/* Structure used to manipulate the SO_LINGER option. */
+struct linger
+ {
+ int l_onoff; /* Nonzero to linger on close. */
+ int l_linger; /* Time to linger. */
+ };
+
+#endif /* bits/socket.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/bits/socket_type.h b/REORG.TODO/sysdeps/unix/sysv/linux/bits/socket_type.h
new file mode 100644
index 0000000000..fcb34bcc90
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/bits/socket_type.h
@@ -0,0 +1,55 @@
+/* Define enum __socket_type for generic Linux.
+ Copyright (C) 1991-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_SOCKET_H
+# error "Never include <bits/socket_type.h> directly; use <sys/socket.h> instead."
+#endif
+
+/* Types of sockets. */
+enum __socket_type
+{
+ SOCK_STREAM = 1, /* Sequenced, reliable, connection-based
+ byte streams. */
+#define SOCK_STREAM SOCK_STREAM
+ SOCK_DGRAM = 2, /* Connectionless, unreliable datagrams
+ of fixed maximum length. */
+#define SOCK_DGRAM SOCK_DGRAM
+ SOCK_RAW = 3, /* Raw protocol interface. */
+#define SOCK_RAW SOCK_RAW
+ SOCK_RDM = 4, /* Reliably-delivered messages. */
+#define SOCK_RDM SOCK_RDM
+ SOCK_SEQPACKET = 5, /* Sequenced, reliable, connection-based,
+ datagrams of fixed maximum length. */
+#define SOCK_SEQPACKET SOCK_SEQPACKET
+ SOCK_DCCP = 6, /* Datagram Congestion Control Protocol. */
+#define SOCK_DCCP SOCK_DCCP
+ SOCK_PACKET = 10, /* Linux specific way of getting packets
+ at the dev level. For writing rarp and
+ other similar things on the user level. */
+#define SOCK_PACKET SOCK_PACKET
+
+ /* Flags to be ORed into the type parameter of socket and socketpair and
+ used for the flags parameter of paccept. */
+
+ SOCK_CLOEXEC = 02000000, /* Atomically set close-on-exec flag for the
+ new descriptor(s). */
+#define SOCK_CLOEXEC SOCK_CLOEXEC
+ SOCK_NONBLOCK = 00004000 /* Atomically mark descriptor(s) as
+ non-blocking. */
+#define SOCK_NONBLOCK SOCK_NONBLOCK
+};
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/bits/ss_flags.h b/REORG.TODO/sysdeps/unix/sysv/linux/bits/ss_flags.h
new file mode 100644
index 0000000000..497b613a8c
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/bits/ss_flags.h
@@ -0,0 +1,35 @@
+/* ss_flags values for stack_t. Linux version.
+ Copyright (C) 1998-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _BITS_SS_FLAGS_H
+#define _BITS_SS_FLAGS_H 1
+
+#if !defined _SIGNAL_H && !defined _SYS_UCONTEXT_H
+# error "Never include this file directly. Use <signal.h> instead"
+#endif
+
+/* Possible values for `ss_flags'. */
+enum
+{
+ SS_ONSTACK = 1,
+#define SS_ONSTACK SS_ONSTACK
+ SS_DISABLE
+#define SS_DISABLE SS_DISABLE
+};
+
+#endif /* bits/ss_flags.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/bits/stat.h b/REORG.TODO/sysdeps/unix/sysv/linux/bits/stat.h
new file mode 100644
index 0000000000..187590e51e
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/bits/stat.h
@@ -0,0 +1,172 @@
+/* Copyright (C) 1992-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#if !defined _SYS_STAT_H && !defined _FCNTL_H
+# error "Never include <bits/stat.h> directly; use <sys/stat.h> instead."
+#endif
+
+#ifndef _BITS_STAT_H
+#define _BITS_STAT_H 1
+
+/* Versions of the `struct stat' data structure. */
+#define _STAT_VER_LINUX_OLD 1
+#define _STAT_VER_KERNEL 1
+#define _STAT_VER_SVR4 2
+#define _STAT_VER_LINUX 3
+#define _STAT_VER _STAT_VER_LINUX /* The one defined below. */
+
+/* Versions of the `xmknod' interface. */
+#define _MKNOD_VER_LINUX 1
+#define _MKNOD_VER_SVR4 2
+#define _MKNOD_VER _MKNOD_VER_LINUX /* The bits defined below. */
+
+
+struct stat
+ {
+ __dev_t st_dev; /* Device. */
+ unsigned short int __pad1;
+#ifndef __USE_FILE_OFFSET64
+ __ino_t st_ino; /* File serial number. */
+#else
+ __ino_t __st_ino; /* 32bit file serial number. */
+#endif
+ __mode_t st_mode; /* File mode. */
+ __nlink_t st_nlink; /* Link count. */
+ __uid_t st_uid; /* User ID of the file's owner. */
+ __gid_t st_gid; /* Group ID of the file's group.*/
+ __dev_t st_rdev; /* Device number, if device. */
+ unsigned short int __pad2;
+#ifndef __USE_FILE_OFFSET64
+ __off_t st_size; /* Size of file, in bytes. */
+#else
+ __off64_t st_size; /* Size of file, in bytes. */
+#endif
+ __blksize_t st_blksize; /* Optimal block size for I/O. */
+
+#ifndef __USE_FILE_OFFSET64
+ __blkcnt_t st_blocks; /* Number 512-byte blocks allocated. */
+#else
+ __blkcnt64_t st_blocks; /* Number 512-byte blocks allocated. */
+#endif
+#ifdef __USE_XOPEN2K8
+ /* Nanosecond resolution timestamps are stored in a format
+ equivalent to 'struct timespec'. This is the type used
+ whenever possible but the Unix namespace rules do not allow the
+ identifier 'timespec' to appear in the <sys/stat.h> header.
+ Therefore we have to handle the use of this header in strictly
+ standard-compliant sources special. */
+ struct timespec st_atim; /* Time of last access. */
+ struct timespec st_mtim; /* Time of last modification. */
+ struct timespec st_ctim; /* Time of last status change. */
+# define st_atime st_atim.tv_sec /* Backward compatibility. */
+# define st_mtime st_mtim.tv_sec
+# define st_ctime st_ctim.tv_sec
+#else
+ __time_t st_atime; /* Time of last access. */
+ unsigned long int st_atimensec; /* Nscecs of last access. */
+ __time_t st_mtime; /* Time of last modification. */
+ unsigned long int st_mtimensec; /* Nsecs of last modification. */
+ __time_t st_ctime; /* Time of last status change. */
+ unsigned long int st_ctimensec; /* Nsecs of last status change. */
+#endif
+#ifndef __USE_FILE_OFFSET64
+ unsigned long int __glibc_reserved4;
+ unsigned long int __glibc_reserved5;
+#else
+ __ino64_t st_ino; /* File serial number. */
+#endif
+ };
+
+#ifdef __USE_LARGEFILE64
+struct stat64
+ {
+ __dev_t st_dev; /* Device. */
+ unsigned int __pad1;
+
+ __ino_t __st_ino; /* 32bit file serial number. */
+ __mode_t st_mode; /* File mode. */
+ __nlink_t st_nlink; /* Link count. */
+ __uid_t st_uid; /* User ID of the file's owner. */
+ __gid_t st_gid; /* Group ID of the file's group.*/
+ __dev_t st_rdev; /* Device number, if device. */
+ unsigned int __pad2;
+ __off64_t st_size; /* Size of file, in bytes. */
+ __blksize_t st_blksize; /* Optimal block size for I/O. */
+
+ __blkcnt64_t st_blocks; /* Number 512-byte blocks allocated. */
+# ifdef __USE_XOPEN2K8
+ /* Nanosecond resolution timestamps are stored in a format
+ equivalent to 'struct timespec'. This is the type used
+ whenever possible but the Unix namespace rules do not allow the
+ identifier 'timespec' to appear in the <sys/stat.h> header.
+ Therefore we have to handle the use of this header in strictly
+ standard-compliant sources special. */
+ struct timespec st_atim; /* Time of last access. */
+ struct timespec st_mtim; /* Time of last modification. */
+ struct timespec st_ctim; /* Time of last status change. */
+# else
+ __time_t st_atime; /* Time of last access. */
+ unsigned long int st_atimensec; /* Nscecs of last access. */
+ __time_t st_mtime; /* Time of last modification. */
+ unsigned long int st_mtimensec; /* Nsecs of last modification. */
+ __time_t st_ctime; /* Time of last status change. */
+ unsigned long int st_ctimensec; /* Nsecs of last status change. */
+# endif
+ __ino64_t st_ino; /* File serial number. */
+ };
+#endif
+
+/* Tell code we have these members. */
+#define _STATBUF_ST_BLKSIZE
+#define _STATBUF_ST_RDEV
+/* Nanosecond resolution time values are supported. */
+#define _STATBUF_ST_NSEC
+
+/* Encoding of the file mode. */
+
+#define __S_IFMT 0170000 /* These bits determine file type. */
+
+/* File types. */
+#define __S_IFDIR 0040000 /* Directory. */
+#define __S_IFCHR 0020000 /* Character device. */
+#define __S_IFBLK 0060000 /* Block device. */
+#define __S_IFREG 0100000 /* Regular file. */
+#define __S_IFIFO 0010000 /* FIFO. */
+#define __S_IFLNK 0120000 /* Symbolic link. */
+#define __S_IFSOCK 0140000 /* Socket. */
+
+/* POSIX.1b objects. Note that these macros always evaluate to zero. But
+ they do it by enforcing the correct use of the macros. */
+#define __S_TYPEISMQ(buf) ((buf)->st_mode - (buf)->st_mode)
+#define __S_TYPEISSEM(buf) ((buf)->st_mode - (buf)->st_mode)
+#define __S_TYPEISSHM(buf) ((buf)->st_mode - (buf)->st_mode)
+
+/* Protection bits. */
+
+#define __S_ISUID 04000 /* Set user ID on execution. */
+#define __S_ISGID 02000 /* Set group ID on execution. */
+#define __S_ISVTX 01000 /* Save swapped text after use (sticky). */
+#define __S_IREAD 0400 /* Read by owner. */
+#define __S_IWRITE 0200 /* Write by owner. */
+#define __S_IEXEC 0100 /* Execute by owner. */
+
+#ifdef __USE_ATFILE
+# define UTIME_NOW ((1l << 30) - 1l)
+# define UTIME_OMIT ((1l << 30) - 2l)
+#endif
+
+#endif /* bits/stat.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/bits/statfs.h b/REORG.TODO/sysdeps/unix/sysv/linux/bits/statfs.h
new file mode 100644
index 0000000000..54329613f3
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/bits/statfs.h
@@ -0,0 +1,69 @@
+/* Copyright (C) 1997-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_STATFS_H
+# error "Never include <bits/statfs.h> directly; use <sys/statfs.h> instead."
+#endif
+
+#include <bits/types.h>
+
+struct statfs
+ {
+ __fsword_t f_type;
+ __fsword_t f_bsize;
+#ifndef __USE_FILE_OFFSET64
+ __fsblkcnt_t f_blocks;
+ __fsblkcnt_t f_bfree;
+ __fsblkcnt_t f_bavail;
+ __fsfilcnt_t f_files;
+ __fsfilcnt_t f_ffree;
+#else
+ __fsblkcnt64_t f_blocks;
+ __fsblkcnt64_t f_bfree;
+ __fsblkcnt64_t f_bavail;
+ __fsfilcnt64_t f_files;
+ __fsfilcnt64_t f_ffree;
+#endif
+ __fsid_t f_fsid;
+ __fsword_t f_namelen;
+ __fsword_t f_frsize;
+ __fsword_t f_flags;
+ __fsword_t f_spare[4];
+ };
+
+#ifdef __USE_LARGEFILE64
+struct statfs64
+ {
+ __fsword_t f_type;
+ __fsword_t f_bsize;
+ __fsblkcnt64_t f_blocks;
+ __fsblkcnt64_t f_bfree;
+ __fsblkcnt64_t f_bavail;
+ __fsfilcnt64_t f_files;
+ __fsfilcnt64_t f_ffree;
+ __fsid_t f_fsid;
+ __fsword_t f_namelen;
+ __fsword_t f_frsize;
+ __fsword_t f_flags;
+ __fsword_t f_spare[4];
+ };
+#endif
+
+/* Tell code we have these members. */
+#define _STATFS_F_NAMELEN
+#define _STATFS_F_FRSIZE
+#define _STATFS_F_FLAGS
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/bits/statvfs.h b/REORG.TODO/sysdeps/unix/sysv/linux/bits/statvfs.h
new file mode 100644
index 0000000000..4552517dd3
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/bits/statvfs.h
@@ -0,0 +1,109 @@
+/* Copyright (C) 1997-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_STATVFS_H
+# error "Never include <bits/statvfs.h> directly; use <sys/statvfs.h> instead."
+#endif
+
+#include <bits/types.h> /* For __fsblkcnt_t and __fsfilcnt_t. */
+
+#if (__WORDSIZE == 32 \
+ && (!defined __SYSCALL_WORDSIZE || __SYSCALL_WORDSIZE == 32))
+#define _STATVFSBUF_F_UNUSED
+#endif
+
+struct statvfs
+ {
+ unsigned long int f_bsize;
+ unsigned long int f_frsize;
+#ifndef __USE_FILE_OFFSET64
+ __fsblkcnt_t f_blocks;
+ __fsblkcnt_t f_bfree;
+ __fsblkcnt_t f_bavail;
+ __fsfilcnt_t f_files;
+ __fsfilcnt_t f_ffree;
+ __fsfilcnt_t f_favail;
+#else
+ __fsblkcnt64_t f_blocks;
+ __fsblkcnt64_t f_bfree;
+ __fsblkcnt64_t f_bavail;
+ __fsfilcnt64_t f_files;
+ __fsfilcnt64_t f_ffree;
+ __fsfilcnt64_t f_favail;
+#endif
+ unsigned long int f_fsid;
+#ifdef _STATVFSBUF_F_UNUSED
+ int __f_unused;
+#endif
+ unsigned long int f_flag;
+ unsigned long int f_namemax;
+ int __f_spare[6];
+ };
+
+#ifdef __USE_LARGEFILE64
+struct statvfs64
+ {
+ unsigned long int f_bsize;
+ unsigned long int f_frsize;
+ __fsblkcnt64_t f_blocks;
+ __fsblkcnt64_t f_bfree;
+ __fsblkcnt64_t f_bavail;
+ __fsfilcnt64_t f_files;
+ __fsfilcnt64_t f_ffree;
+ __fsfilcnt64_t f_favail;
+ unsigned long int f_fsid;
+#ifdef _STATVFSBUF_F_UNUSED
+ int __f_unused;
+#endif
+ unsigned long int f_flag;
+ unsigned long int f_namemax;
+ int __f_spare[6];
+ };
+#endif
+
+/* Definitions for the flag in `f_flag'. These definitions should be
+ kept in sync with the definitions in <sys/mount.h>. */
+enum
+{
+ ST_RDONLY = 1, /* Mount read-only. */
+#define ST_RDONLY ST_RDONLY
+ ST_NOSUID = 2 /* Ignore suid and sgid bits. */
+#define ST_NOSUID ST_NOSUID
+#ifdef __USE_GNU
+ ,
+ ST_NODEV = 4, /* Disallow access to device special files. */
+# define ST_NODEV ST_NODEV
+ ST_NOEXEC = 8, /* Disallow program execution. */
+# define ST_NOEXEC ST_NOEXEC
+ ST_SYNCHRONOUS = 16, /* Writes are synced at once. */
+# define ST_SYNCHRONOUS ST_SYNCHRONOUS
+ ST_MANDLOCK = 64, /* Allow mandatory locks on an FS. */
+# define ST_MANDLOCK ST_MANDLOCK
+ ST_WRITE = 128, /* Write on file/directory/symlink. */
+# define ST_WRITE ST_WRITE
+ ST_APPEND = 256, /* Append-only file. */
+# define ST_APPEND ST_APPEND
+ ST_IMMUTABLE = 512, /* Immutable file. */
+# define ST_IMMUTABLE ST_IMMUTABLE
+ ST_NOATIME = 1024, /* Do not update access times. */
+# define ST_NOATIME ST_NOATIME
+ ST_NODIRATIME = 2048, /* Do not update directory access times. */
+# define ST_NODIRATIME ST_NODIRATIME
+ ST_RELATIME = 4096 /* Update atime relative to mtime/ctime. */
+# define ST_RELATIME ST_RELATIME
+#endif /* Use GNU. */
+};
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/bits/sys_errlist.h b/REORG.TODO/sysdeps/unix/sysv/linux/bits/sys_errlist.h
new file mode 100644
index 0000000000..b4d2c956df
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/bits/sys_errlist.h
@@ -0,0 +1,32 @@
+/* Declare sys_errlist and sys_nerr, or don't. Compatibility (do) version.
+ Copyright (C) 2002-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU 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 _STDIO_H
+# error "Never include <bits/sys_errlist.h> directly; use <stdio.h> instead."
+#endif
+
+/* sys_errlist and sys_nerr are deprecated. Use strerror instead. */
+
+#ifdef __USE_MISC
+extern int sys_nerr;
+extern const char *const sys_errlist[];
+#endif
+#ifdef __USE_GNU
+extern int _sys_nerr;
+extern const char *const _sys_errlist[];
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/bits/sysctl.h b/REORG.TODO/sysdeps/unix/sysv/linux/bits/sysctl.h
new file mode 100644
index 0000000000..81447b2f74
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/bits/sysctl.h
@@ -0,0 +1 @@
+/* Empty file. */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/bits/termios.h b/REORG.TODO/sysdeps/unix/sysv/linux/bits/termios.h
new file mode 100644
index 0000000000..495fa8b16d
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/bits/termios.h
@@ -0,0 +1,219 @@
+/* termios type and macro definitions. Linux version.
+ Copyright (C) 1993-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _TERMIOS_H
+# error "Never include <bits/termios.h> directly; use <termios.h> instead."
+#endif
+
+typedef unsigned char cc_t;
+typedef unsigned int speed_t;
+typedef unsigned int tcflag_t;
+
+#define NCCS 32
+struct termios
+ {
+ tcflag_t c_iflag; /* input mode flags */
+ tcflag_t c_oflag; /* output mode flags */
+ tcflag_t c_cflag; /* control mode flags */
+ tcflag_t c_lflag; /* local mode flags */
+ cc_t c_line; /* line discipline */
+ cc_t c_cc[NCCS]; /* control characters */
+ speed_t c_ispeed; /* input speed */
+ speed_t c_ospeed; /* output speed */
+#define _HAVE_STRUCT_TERMIOS_C_ISPEED 1
+#define _HAVE_STRUCT_TERMIOS_C_OSPEED 1
+ };
+
+/* c_cc characters */
+#define VINTR 0
+#define VQUIT 1
+#define VERASE 2
+#define VKILL 3
+#define VEOF 4
+#define VTIME 5
+#define VMIN 6
+#define VSWTC 7
+#define VSTART 8
+#define VSTOP 9
+#define VSUSP 10
+#define VEOL 11
+#define VREPRINT 12
+#define VDISCARD 13
+#define VWERASE 14
+#define VLNEXT 15
+#define VEOL2 16
+
+/* c_iflag bits */
+#define IGNBRK 0000001
+#define BRKINT 0000002
+#define IGNPAR 0000004
+#define PARMRK 0000010
+#define INPCK 0000020
+#define ISTRIP 0000040
+#define INLCR 0000100
+#define IGNCR 0000200
+#define ICRNL 0000400
+#define IUCLC 0001000
+#define IXON 0002000
+#define IXANY 0004000
+#define IXOFF 0010000
+#define IMAXBEL 0020000
+#define IUTF8 0040000
+
+/* c_oflag bits */
+#define OPOST 0000001
+#define OLCUC 0000002
+#define ONLCR 0000004
+#define OCRNL 0000010
+#define ONOCR 0000020
+#define ONLRET 0000040
+#define OFILL 0000100
+#define OFDEL 0000200
+#if defined __USE_MISC || defined __USE_XOPEN
+# define NLDLY 0000400
+# define NL0 0000000
+# define NL1 0000400
+# define CRDLY 0003000
+# define CR0 0000000
+# define CR1 0001000
+# define CR2 0002000
+# define CR3 0003000
+# define TABDLY 0014000
+# define TAB0 0000000
+# define TAB1 0004000
+# define TAB2 0010000
+# define TAB3 0014000
+# define BSDLY 0020000
+# define BS0 0000000
+# define BS1 0020000
+# define FFDLY 0100000
+# define FF0 0000000
+# define FF1 0100000
+#endif
+
+#define VTDLY 0040000
+#define VT0 0000000
+#define VT1 0040000
+
+#ifdef __USE_MISC
+# define XTABS 0014000
+#endif
+
+/* c_cflag bit meaning */
+#ifdef __USE_MISC
+# define CBAUD 0010017
+#endif
+#define B0 0000000 /* hang up */
+#define B50 0000001
+#define B75 0000002
+#define B110 0000003
+#define B134 0000004
+#define B150 0000005
+#define B200 0000006
+#define B300 0000007
+#define B600 0000010
+#define B1200 0000011
+#define B1800 0000012
+#define B2400 0000013
+#define B4800 0000014
+#define B9600 0000015
+#define B19200 0000016
+#define B38400 0000017
+#ifdef __USE_MISC
+# define EXTA B19200
+# define EXTB B38400
+#endif
+#define CSIZE 0000060
+#define CS5 0000000
+#define CS6 0000020
+#define CS7 0000040
+#define CS8 0000060
+#define CSTOPB 0000100
+#define CREAD 0000200
+#define PARENB 0000400
+#define PARODD 0001000
+#define HUPCL 0002000
+#define CLOCAL 0004000
+#ifdef __USE_MISC
+# define CBAUDEX 0010000
+#endif
+#define B57600 0010001
+#define B115200 0010002
+#define B230400 0010003
+#define B460800 0010004
+#define B500000 0010005
+#define B576000 0010006
+#define B921600 0010007
+#define B1000000 0010010
+#define B1152000 0010011
+#define B1500000 0010012
+#define B2000000 0010013
+#define B2500000 0010014
+#define B3000000 0010015
+#define B3500000 0010016
+#define B4000000 0010017
+#define __MAX_BAUD B4000000
+#ifdef __USE_MISC
+# define CIBAUD 002003600000 /* input baud rate (not used) */
+# define CMSPAR 010000000000 /* mark or space (stick) parity */
+# define CRTSCTS 020000000000 /* flow control */
+#endif
+
+/* c_lflag bits */
+#define ISIG 0000001
+#define ICANON 0000002
+#if defined __USE_MISC || (defined __USE_XOPEN && !defined __USE_XOPEN2K)
+# define XCASE 0000004
+#endif
+#define ECHO 0000010
+#define ECHOE 0000020
+#define ECHOK 0000040
+#define ECHONL 0000100
+#define NOFLSH 0000200
+#define TOSTOP 0000400
+#ifdef __USE_MISC
+# define ECHOCTL 0001000
+# define ECHOPRT 0002000
+# define ECHOKE 0004000
+# define FLUSHO 0010000
+# define PENDIN 0040000
+#endif
+#define IEXTEN 0100000
+#ifdef __USE_MISC
+# define EXTPROC 0200000
+#endif
+
+/* tcflow() and TCXONC use these */
+#define TCOOFF 0
+#define TCOON 1
+#define TCIOFF 2
+#define TCION 3
+
+/* tcflush() and TCFLSH use these */
+#define TCIFLUSH 0
+#define TCOFLUSH 1
+#define TCIOFLUSH 2
+
+/* tcsetattr uses these */
+#define TCSANOW 0
+#define TCSADRAIN 1
+#define TCSAFLUSH 2
+
+
+#define _IOT_termios /* Hurd ioctl type field. */ \
+ _IOT (_IOTS (cflag_t), 4, _IOTS (cc_t), NCCS, _IOTS (speed_t), 2)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/bits/time.h b/REORG.TODO/sysdeps/unix/sysv/linux/bits/time.h
new file mode 100644
index 0000000000..f00154f7ba
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/bits/time.h
@@ -0,0 +1,83 @@
+/* System-dependent timing definitions. Linux version.
+ Copyright (C) 1996-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+/*
+ * Never include this file directly; use <time.h> instead.
+ */
+
+#ifndef _BITS_TIME_H
+#define _BITS_TIME_H 1
+
+#include <bits/types.h>
+
+/* ISO/IEC 9899:1999 7.23.1: Components of time
+ The macro `CLOCKS_PER_SEC' is an expression with type `clock_t' that is
+ the number per second of the value returned by the `clock' function. */
+/* CAE XSH, Issue 4, Version 2: <time.h>
+ The value of CLOCKS_PER_SEC is required to be 1 million on all
+ XSI-conformant systems. */
+#define CLOCKS_PER_SEC ((__clock_t) 1000000)
+
+#if (!defined __STRICT_ANSI__ || defined __USE_POSIX) \
+ && !defined __USE_XOPEN2K
+/* Even though CLOCKS_PER_SEC has such a strange value CLK_TCK
+ presents the real value for clock ticks per second for the system. */
+extern long int __sysconf (int);
+# define CLK_TCK ((__clock_t) __sysconf (2)) /* 2 is _SC_CLK_TCK */
+#endif
+
+#ifdef __USE_POSIX199309
+/* Identifier for system-wide realtime clock. */
+# define CLOCK_REALTIME 0
+/* Monotonic system-wide clock. */
+# define CLOCK_MONOTONIC 1
+/* High-resolution timer from the CPU. */
+# define CLOCK_PROCESS_CPUTIME_ID 2
+/* Thread-specific CPU-time clock. */
+# define CLOCK_THREAD_CPUTIME_ID 3
+/* Monotonic system-wide clock, not adjusted for frequency scaling. */
+# define CLOCK_MONOTONIC_RAW 4
+/* Identifier for system-wide realtime clock, updated only on ticks. */
+# define CLOCK_REALTIME_COARSE 5
+/* Monotonic system-wide clock, updated only on ticks. */
+# define CLOCK_MONOTONIC_COARSE 6
+/* Monotonic system-wide clock that includes time spent in suspension. */
+# define CLOCK_BOOTTIME 7
+/* Like CLOCK_REALTIME but also wakes suspended system. */
+# define CLOCK_REALTIME_ALARM 8
+/* Like CLOCK_BOOTTIME but also wakes suspended system. */
+# define CLOCK_BOOTTIME_ALARM 9
+/* Like CLOCK_REALTIME but in International Atomic Time. */
+# define CLOCK_TAI 11
+
+/* Flag to indicate time is absolute. */
+# define TIMER_ABSTIME 1
+#endif
+
+#ifdef __USE_GNU
+# include <bits/timex.h>
+
+__BEGIN_DECLS
+
+/* Tune a POSIX clock. */
+extern int clock_adjtime (__clockid_t __clock_id, struct timex *__utx) __THROW;
+
+__END_DECLS
+#endif /* use GNU */
+
+#endif /* bits/time.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/bits/timerfd.h b/REORG.TODO/sysdeps/unix/sysv/linux/bits/timerfd.h
new file mode 100644
index 0000000000..021f9c11fd
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/bits/timerfd.h
@@ -0,0 +1,29 @@
+/* Copyright (C) 2008-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_TIMERFD_H
+# error "Never use <bits/timerfd.h> directly; include <sys/timerfd.h> instead."
+#endif
+
+/* Bits to be set in the FLAGS parameter of `timerfd_create'. */
+enum
+ {
+ TFD_CLOEXEC = 02000000,
+#define TFD_CLOEXEC TFD_CLOEXEC
+ TFD_NONBLOCK = 00004000
+#define TFD_NONBLOCK TFD_NONBLOCK
+ };
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/bits/timex.h b/REORG.TODO/sysdeps/unix/sysv/linux/bits/timex.h
new file mode 100644
index 0000000000..544bc62e54
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/bits/timex.h
@@ -0,0 +1,110 @@
+/* Copyright (C) 1995-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _BITS_TIMEX_H
+#define _BITS_TIMEX_H 1
+
+#include <bits/types.h>
+#include <bits/types/struct_timeval.h>
+
+/* These definitions from linux/timex.h as of 3.18. */
+
+struct timex
+{
+ unsigned int modes; /* mode selector */
+ __syscall_slong_t offset; /* time offset (usec) */
+ __syscall_slong_t freq; /* frequency offset (scaled ppm) */
+ __syscall_slong_t maxerror; /* maximum error (usec) */
+ __syscall_slong_t esterror; /* estimated error (usec) */
+ int status; /* clock command/status */
+ __syscall_slong_t constant; /* pll time constant */
+ __syscall_slong_t precision; /* clock precision (usec) (ro) */
+ __syscall_slong_t tolerance; /* clock frequency tolerance (ppm) (ro) */
+ struct timeval time; /* (read only, except for ADJ_SETOFFSET) */
+ __syscall_slong_t tick; /* (modified) usecs between clock ticks */
+ __syscall_slong_t ppsfreq; /* pps frequency (scaled ppm) (ro) */
+ __syscall_slong_t jitter; /* pps jitter (us) (ro) */
+ int shift; /* interval duration (s) (shift) (ro) */
+ __syscall_slong_t stabil; /* pps stability (scaled ppm) (ro) */
+ __syscall_slong_t jitcnt; /* jitter limit exceeded (ro) */
+ __syscall_slong_t calcnt; /* calibration intervals (ro) */
+ __syscall_slong_t errcnt; /* calibration errors (ro) */
+ __syscall_slong_t stbcnt; /* stability limit exceeded (ro) */
+
+ int tai; /* TAI offset (ro) */
+
+ /* ??? */
+ int :32; int :32; int :32; int :32;
+ int :32; int :32; int :32; int :32;
+ int :32; int :32; int :32;
+};
+
+/* Mode codes (timex.mode) */
+#define ADJ_OFFSET 0x0001 /* time offset */
+#define ADJ_FREQUENCY 0x0002 /* frequency offset */
+#define ADJ_MAXERROR 0x0004 /* maximum time error */
+#define ADJ_ESTERROR 0x0008 /* estimated time error */
+#define ADJ_STATUS 0x0010 /* clock status */
+#define ADJ_TIMECONST 0x0020 /* pll time constant */
+#define ADJ_TAI 0x0080 /* set TAI offset */
+#define ADJ_SETOFFSET 0x0100 /* add 'time' to current time */
+#define ADJ_MICRO 0x1000 /* select microsecond resolution */
+#define ADJ_NANO 0x2000 /* select nanosecond resolution */
+#define ADJ_TICK 0x4000 /* tick value */
+#define ADJ_OFFSET_SINGLESHOT 0x8001 /* old-fashioned adjtime */
+#define ADJ_OFFSET_SS_READ 0xa001 /* read-only adjtime */
+
+/* xntp 3.4 compatibility names */
+#define MOD_OFFSET ADJ_OFFSET
+#define MOD_FREQUENCY ADJ_FREQUENCY
+#define MOD_MAXERROR ADJ_MAXERROR
+#define MOD_ESTERROR ADJ_ESTERROR
+#define MOD_STATUS ADJ_STATUS
+#define MOD_TIMECONST ADJ_TIMECONST
+#define MOD_CLKB ADJ_TICK
+#define MOD_CLKA ADJ_OFFSET_SINGLESHOT /* 0x8000 in original */
+#define MOD_TAI ADJ_TAI
+#define MOD_MICRO ADJ_MICRO
+#define MOD_NANO ADJ_NANO
+
+
+/* Status codes (timex.status) */
+#define STA_PLL 0x0001 /* enable PLL updates (rw) */
+#define STA_PPSFREQ 0x0002 /* enable PPS freq discipline (rw) */
+#define STA_PPSTIME 0x0004 /* enable PPS time discipline (rw) */
+#define STA_FLL 0x0008 /* select frequency-lock mode (rw) */
+
+#define STA_INS 0x0010 /* insert leap (rw) */
+#define STA_DEL 0x0020 /* delete leap (rw) */
+#define STA_UNSYNC 0x0040 /* clock unsynchronized (rw) */
+#define STA_FREQHOLD 0x0080 /* hold frequency (rw) */
+
+#define STA_PPSSIGNAL 0x0100 /* PPS signal present (ro) */
+#define STA_PPSJITTER 0x0200 /* PPS signal jitter exceeded (ro) */
+#define STA_PPSWANDER 0x0400 /* PPS signal wander exceeded (ro) */
+#define STA_PPSERROR 0x0800 /* PPS signal calibration error (ro) */
+
+#define STA_CLOCKERR 0x1000 /* clock hardware fault (ro) */
+#define STA_NANO 0x2000 /* resolution (0 = us, 1 = ns) (ro) */
+#define STA_MODE 0x4000 /* mode (0 = PLL, 1 = FLL) (ro) */
+#define STA_CLK 0x8000 /* clock source (0 = A, 1 = B) (ro) */
+
+/* Read-only bits */
+#define STA_RONLY (STA_PPSSIGNAL | STA_PPSJITTER | STA_PPSWANDER | \
+ STA_PPSERROR | STA_CLOCKERR | STA_NANO | STA_MODE | STA_CLK)
+
+#endif /* bits/timex.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/bits/types/__sigset_t.h b/REORG.TODO/sysdeps/unix/sysv/linux/bits/types/__sigset_t.h
new file mode 100644
index 0000000000..e2f18acf30
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/bits/types/__sigset_t.h
@@ -0,0 +1,10 @@
+#ifndef ____sigset_t_defined
+#define ____sigset_t_defined
+
+#define _SIGSET_NWORDS (1024 / (8 * sizeof (unsigned long int)))
+typedef struct
+{
+ unsigned long int __val[_SIGSET_NWORDS];
+} __sigset_t;
+
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/bits/types/sigevent_t.h b/REORG.TODO/sysdeps/unix/sysv/linux/bits/types/sigevent_t.h
new file mode 100644
index 0000000000..0d4857b16e
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/bits/types/sigevent_t.h
@@ -0,0 +1,48 @@
+#ifndef __sigevent_t_defined
+#define __sigevent_t_defined 1
+
+#include <bits/wordsize.h>
+#include <bits/types.h>
+#include <bits/types/sigval_t.h>
+
+#define __SIGEV_MAX_SIZE 64
+#if __WORDSIZE == 64
+# define __SIGEV_PAD_SIZE ((__SIGEV_MAX_SIZE / sizeof (int)) - 4)
+#else
+# define __SIGEV_PAD_SIZE ((__SIGEV_MAX_SIZE / sizeof (int)) - 3)
+#endif
+
+/* Forward declaration. */
+#ifndef __have_pthread_attr_t
+typedef union pthread_attr_t pthread_attr_t;
+# define __have_pthread_attr_t 1
+#endif
+
+/* Structure to transport application-defined values with signals. */
+typedef struct sigevent
+ {
+ sigval_t sigev_value;
+ int sigev_signo;
+ int sigev_notify;
+
+ union
+ {
+ int _pad[__SIGEV_PAD_SIZE];
+
+ /* When SIGEV_SIGNAL and SIGEV_THREAD_ID set, LWP ID of the
+ thread to receive the signal. */
+ __pid_t _tid;
+
+ struct
+ {
+ void (*_function) (sigval_t); /* Function to start. */
+ pthread_attr_t *_attribute; /* Thread attributes. */
+ } _sigev_thread;
+ } _sigev_un;
+ } sigevent_t;
+
+/* POSIX names to access some of the members. */
+#define sigev_notify_function _sigev_un._sigev_thread._function
+#define sigev_notify_attributes _sigev_un._sigev_thread._attribute
+
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/bits/types/siginfo_t.h b/REORG.TODO/sysdeps/unix/sysv/linux/bits/types/siginfo_t.h
new file mode 100644
index 0000000000..bed69148f9
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/bits/types/siginfo_t.h
@@ -0,0 +1,151 @@
+#ifndef __siginfo_t_defined
+#define __siginfo_t_defined 1
+
+#include <bits/wordsize.h>
+#include <bits/types.h>
+#include <bits/types/sigval_t.h>
+
+#define __SI_MAX_SIZE 128
+#if __WORDSIZE == 64
+# define __SI_PAD_SIZE ((__SI_MAX_SIZE / sizeof (int)) - 4)
+#else
+# define __SI_PAD_SIZE ((__SI_MAX_SIZE / sizeof (int)) - 3)
+#endif
+
+/* Some fields of siginfo_t have architecture-specific variations. */
+#include <bits/siginfo-arch.h>
+#ifndef __SI_ALIGNMENT
+# define __SI_ALIGNMENT /* nothing */
+#endif
+#ifndef __SI_BAND_TYPE
+# define __SI_BAND_TYPE long int
+#endif
+#ifndef __SI_CLOCK_T
+# define __SI_CLOCK_T __clock_t
+#endif
+#ifndef __SI_ERRNO_THEN_CODE
+# define __SI_ERRNO_THEN_CODE 1
+#endif
+#ifndef __SI_HAVE_SIGSYS
+# define __SI_HAVE_SIGSYS 1
+#endif
+#ifndef __SI_SIGFAULT_ADDL
+# define __SI_SIGFAULT_ADDL /* nothing */
+#endif
+
+typedef struct
+ {
+ int si_signo; /* Signal number. */
+#if __SI_ERRNO_THEN_CODE
+ int si_errno; /* If non-zero, an errno value associated with
+ this signal, as defined in <errno.h>. */
+ int si_code; /* Signal code. */
+#else
+ int si_code;
+ int si_errno;
+#endif
+#if __WORDSIZE == 64
+ int __pad0; /* Explicit padding. */
+#endif
+
+ union
+ {
+ int _pad[__SI_PAD_SIZE];
+
+ /* kill(). */
+ struct
+ {
+ __pid_t si_pid; /* Sending process ID. */
+ __uid_t si_uid; /* Real user ID of sending process. */
+ } _kill;
+
+ /* POSIX.1b timers. */
+ struct
+ {
+ int si_tid; /* Timer ID. */
+ int si_overrun; /* Overrun count. */
+ sigval_t si_sigval; /* Signal value. */
+ } _timer;
+
+ /* POSIX.1b signals. */
+ struct
+ {
+ __pid_t si_pid; /* Sending process ID. */
+ __uid_t si_uid; /* Real user ID of sending process. */
+ sigval_t si_sigval; /* Signal value. */
+ } _rt;
+
+ /* SIGCHLD. */
+ struct
+ {
+ __pid_t si_pid; /* Which child. */
+ __uid_t si_uid; /* Real user ID of sending process. */
+ int si_status; /* Exit value or signal. */
+ __SI_CLOCK_T si_utime;
+ __SI_CLOCK_T si_stime;
+ } _sigchld;
+
+ /* SIGILL, SIGFPE, SIGSEGV, SIGBUS. */
+ struct
+ {
+ void *si_addr; /* Faulting insn/memory ref. */
+ __SI_SIGFAULT_ADDL
+ short int si_addr_lsb; /* Valid LSB of the reported address. */
+ union
+ {
+ /* used when si_code=SEGV_BNDERR */
+ struct
+ {
+ void *_lower;
+ void *_upper;
+ } _addr_bnd;
+ /* used when si_code=SEGV_PKUERR */
+ __uint32_t _pkey;
+ } _bounds;
+ } _sigfault;
+
+ /* SIGPOLL. */
+ struct
+ {
+ long int si_band; /* Band event for SIGPOLL. */
+ int si_fd;
+ } _sigpoll;
+
+ /* SIGSYS. */
+#if __SI_HAVE_SIGSYS
+ struct
+ {
+ void *_call_addr; /* Calling user insn. */
+ int _syscall; /* Triggering system call number. */
+ unsigned int _arch; /* AUDIT_ARCH_* of syscall. */
+ } _sigsys;
+#endif
+ } _sifields;
+ } siginfo_t __SI_ALIGNMENT;
+
+
+/* X/Open requires some more fields with fixed names. */
+#define si_pid _sifields._kill.si_pid
+#define si_uid _sifields._kill.si_uid
+#define si_timerid _sifields._timer.si_tid
+#define si_overrun _sifields._timer.si_overrun
+#define si_status _sifields._sigchld.si_status
+#define si_utime _sifields._sigchld.si_utime
+#define si_stime _sifields._sigchld.si_stime
+#define si_value _sifields._rt.si_sigval
+#define si_int _sifields._rt.si_sigval.sival_int
+#define si_ptr _sifields._rt.si_sigval.sival_ptr
+#define si_addr _sifields._sigfault.si_addr
+#define si_addr_lsb _sifields._sigfault.si_addr_lsb
+#define si_lower _sifields._sigfault._bounds._addr_bnd._lower
+#define si_upper _sifields._sigfault._bounds._addr_bnd._upper
+#define si_pkey _sifields._sigfault._bounds._pkey
+#define si_band _sifields._sigpoll.si_band
+#define si_fd _sifields._sigpoll.si_fd
+#if __SI_HAVE_SIGSYS
+# define si_call_addr _sifields._sigsys._call_addr
+# define si_syscall _sifields._sigsys._syscall
+# define si_arch _sifields._sigsys._arch
+#endif
+
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/bits/types/stack_t.h b/REORG.TODO/sysdeps/unix/sysv/linux/bits/types/stack_t.h
new file mode 100644
index 0000000000..373c227930
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/bits/types/stack_t.h
@@ -0,0 +1,33 @@
+/* Define stack_t. Linux version.
+ Copyright (C) 1998-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef __stack_t_defined
+#define __stack_t_defined 1
+
+#define __need_size_t
+#include <stddef.h>
+
+/* Structure describing a signal stack. */
+typedef struct
+ {
+ void *ss_sp;
+ int ss_flags;
+ size_t ss_size;
+ } stack_t;
+
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/bits/uio.h b/REORG.TODO/sysdeps/unix/sysv/linux/bits/uio.h
new file mode 100644
index 0000000000..d5701f8171
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/bits/uio.h
@@ -0,0 +1,78 @@
+/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#if !defined _SYS_UIO_H && !defined _FCNTL_H
+# error "Never include <bits/uio.h> directly; use <sys/uio.h> instead."
+#endif
+
+#ifndef _BITS_UIO_H
+#define _BITS_UIO_H 1
+
+#include <sys/types.h>
+
+
+/* We should normally use the Linux kernel header file to define this
+ type and macros but this calls for trouble because of the header
+ includes other kernel headers. */
+
+/* Size of object which can be written atomically.
+
+ This macro has different values in different kernel versions. The
+ latest versions of the kernel use 1024 and this is good choice. Since
+ the C library implementation of readv/writev is able to emulate the
+ functionality even if the currently running kernel does not support
+ this large value the readv/writev call will not fail because of this. */
+#define UIO_MAXIOV 1024
+
+
+#include <bits/types/struct_iovec.h>
+
+#endif
+
+
+#ifdef __USE_GNU
+# if defined _SYS_UIO_H && !defined _BITS_UIO_H_FOR_SYS_UIO_H
+# define _BITS_UIO_H_FOR_SYS_UIO_H 1
+
+__BEGIN_DECLS
+
+/* Read from another process' address space. */
+extern ssize_t process_vm_readv (pid_t __pid, const struct iovec *__lvec,
+ unsigned long int __liovcnt,
+ const struct iovec *__rvec,
+ unsigned long int __riovcnt,
+ unsigned long int __flags)
+ __THROW;
+
+/* Write to another process' address space. */
+extern ssize_t process_vm_writev (pid_t __pid, const struct iovec *__lvec,
+ unsigned long int __liovcnt,
+ const struct iovec *__rvec,
+ unsigned long int __riovcnt,
+ unsigned long int __flags)
+ __THROW;
+
+__END_DECLS
+
+# endif
+
+/* Flags for preadv2/pwritev2: */
+#define RWF_HIPRI 0x00000001 /* High priority request. */
+#define RWF_DSYNC 0x00000002 /* per-IO O_DSYNC. */
+#define RWF_SYNC 0x00000004 /* per-IO O_SYNC. */
+
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/bits/utsname.h b/REORG.TODO/sysdeps/unix/sysv/linux/bits/utsname.h
new file mode 100644
index 0000000000..ed99a4c62b
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/bits/utsname.h
@@ -0,0 +1,28 @@
+/* Copyright (C) 1995-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_UTSNAME_H
+# error "Never include <bits/utsname.h> directly; use <sys/utsname.h> instead."
+#endif
+
+/* Length of the entries in `struct utsname' is 65. */
+#define _UTSNAME_LENGTH 65
+
+/* Linux provides as additional information in the `struct utsname'
+ the name of the current domain. Define _UTSNAME_DOMAIN_LENGTH
+ to a value != 0 to activate this entry. */
+#define _UTSNAME_DOMAIN_LENGTH _UTSNAME_LENGTH
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/bits/waitflags.h b/REORG.TODO/sysdeps/unix/sysv/linux/bits/waitflags.h
new file mode 100644
index 0000000000..7dcb7b2f34
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/bits/waitflags.h
@@ -0,0 +1,37 @@
+/* Definitions of flag bits for `waitpid' et al.
+ Copyright (C) 1992-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#if !defined _SYS_WAIT_H && !defined _STDLIB_H
+# error "Never include <bits/waitflags.h> directly; use <sys/wait.h> instead."
+#endif
+
+
+/* Bits in the third argument to `waitpid'. */
+#define WNOHANG 1 /* Don't block waiting. */
+#define WUNTRACED 2 /* Report status of stopped children. */
+
+/* Bits in the fourth argument to `waitid'. */
+#define WSTOPPED 2 /* Report stopped child (same as WUNTRACED). */
+#define WEXITED 4 /* Report dead child. */
+#define WCONTINUED 8 /* Report continued child. */
+#define WNOWAIT 0x01000000 /* Don't reap, just poll status. */
+
+#define __WNOTHREAD 0x20000000 /* Don't wait on children of other threads
+ in this group */
+#define __WALL 0x40000000 /* Wait for any child. */
+#define __WCLONE 0x80000000 /* Wait for cloned process. */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/check_native.c b/REORG.TODO/sysdeps/unix/sysv/linux/check_native.c
new file mode 100644
index 0000000000..7e5a7c9be3
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/check_native.c
@@ -0,0 +1,177 @@
+/* Determine whether interfaces use native transport. Linux version.
+ Copyright (C) 2007-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <assert.h>
+#include <errno.h>
+#include <ifaddrs.h>
+#include <stddef.h>
+#include <stdint.h>
+#include <stdlib.h>
+#include <string.h>
+#include <time.h>
+#include <unistd.h>
+#include <net/if.h>
+#include <net/if_arp.h>
+#include <sys/ioctl.h>
+
+#include <asm/types.h>
+#include <linux/netlink.h>
+#include <linux/rtnetlink.h>
+
+#include <not-cancel.h>
+
+#include "netlinkaccess.h"
+
+void
+__check_native (uint32_t a1_index, int *a1_native,
+ uint32_t a2_index, int *a2_native)
+{
+ int fd = __socket (PF_NETLINK, SOCK_RAW | SOCK_CLOEXEC, NETLINK_ROUTE);
+
+ struct sockaddr_nl nladdr;
+ memset (&nladdr, '\0', sizeof (nladdr));
+ nladdr.nl_family = AF_NETLINK;
+
+ socklen_t addr_len = sizeof (nladdr);
+
+ if (fd < 0
+ || __bind (fd, (struct sockaddr *) &nladdr, sizeof (nladdr)) != 0
+ || __getsockname (fd, (struct sockaddr *) &nladdr, &addr_len) != 0)
+ return;
+
+ pid_t pid = nladdr.nl_pid;
+ struct req
+ {
+ struct nlmsghdr nlh;
+ struct rtgenmsg g;
+ /* struct rtgenmsg consists of a single byte. This means there
+ are three bytes of padding included in the REQ definition.
+ We make them explicit here. */
+ char pad[3];
+ } req;
+
+ req.nlh.nlmsg_len = sizeof (req);
+ req.nlh.nlmsg_type = RTM_GETLINK;
+ req.nlh.nlmsg_flags = NLM_F_ROOT | NLM_F_MATCH | NLM_F_REQUEST;
+ req.nlh.nlmsg_pid = 0;
+ req.nlh.nlmsg_seq = time (NULL);
+ req.g.rtgen_family = AF_UNSPEC;
+
+ assert (sizeof (req) - offsetof (struct req, pad) == 3);
+ memset (req.pad, '\0', sizeof (req.pad));
+
+ memset (&nladdr, '\0', sizeof (nladdr));
+ nladdr.nl_family = AF_NETLINK;
+
+#ifdef PAGE_SIZE
+ /* Help the compiler optimize out the malloc call if PAGE_SIZE
+ is constant and smaller or equal to PTHREAD_STACK_MIN/4. */
+ const size_t buf_size = PAGE_SIZE;
+#else
+ const size_t buf_size = __getpagesize ();
+#endif
+ bool use_malloc = false;
+ char *buf;
+
+ if (__libc_use_alloca (buf_size))
+ buf = alloca (buf_size);
+ else
+ {
+ buf = malloc (buf_size);
+ if (buf != NULL)
+ use_malloc = true;
+ else
+ goto out_fail;
+ }
+
+ struct iovec iov = { buf, buf_size };
+
+ if (TEMP_FAILURE_RETRY (__sendto (fd, (void *) &req, sizeof (req), 0,
+ (struct sockaddr *) &nladdr,
+ sizeof (nladdr))) < 0)
+ goto out_fail;
+
+ bool done = false;
+ do
+ {
+ struct msghdr msg =
+ {
+ .msg_name = (void *) &nladdr,
+ .msg_namelen = sizeof (nladdr),
+ .msg_iov = &iov,
+ .msg_iovlen = 1,
+ .msg_control = NULL,
+ .msg_controllen = 0,
+ .msg_flags = 0
+ };
+
+ ssize_t read_len = TEMP_FAILURE_RETRY (__recvmsg (fd, &msg, 0));
+ __netlink_assert_response (fd, read_len);
+ if (read_len < 0)
+ goto out_fail;
+
+ if (msg.msg_flags & MSG_TRUNC)
+ goto out_fail;
+
+ struct nlmsghdr *nlmh;
+ for (nlmh = (struct nlmsghdr *) buf;
+ NLMSG_OK (nlmh, (size_t) read_len);
+ nlmh = (struct nlmsghdr *) NLMSG_NEXT (nlmh, read_len))
+ {
+ if (nladdr.nl_pid != 0 || (pid_t) nlmh->nlmsg_pid != pid
+ || nlmh->nlmsg_seq != req.nlh.nlmsg_seq)
+ continue;
+
+ if (nlmh->nlmsg_type == RTM_NEWLINK)
+ {
+ struct ifinfomsg *ifim = (struct ifinfomsg *) NLMSG_DATA (nlmh);
+ int native = (ifim->ifi_type != ARPHRD_TUNNEL6
+ && ifim->ifi_type != ARPHRD_TUNNEL
+ && ifim->ifi_type != ARPHRD_SIT);
+
+ if (a1_index == ifim->ifi_index)
+ {
+ *a1_native = native;
+ a1_index = 0xffffffffu;
+ }
+ if (a2_index == ifim->ifi_index)
+ {
+ *a2_native = native;
+ a2_index = 0xffffffffu;
+ }
+
+ if (a1_index == 0xffffffffu
+ && a2_index == 0xffffffffu)
+ goto out;
+ }
+ else if (nlmh->nlmsg_type == NLMSG_DONE)
+ /* We found the end, leave the loop. */
+ done = true;
+ }
+ }
+ while (! done);
+
+ out:
+ close_not_cancel_no_status (fd);
+
+ return;
+
+out_fail:
+ if (use_malloc)
+ free (buf);
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/check_pf.c b/REORG.TODO/sysdeps/unix/sysv/linux/check_pf.c
new file mode 100644
index 0000000000..3bf221a177
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/check_pf.c
@@ -0,0 +1,391 @@
+/* Determine protocol families for which interfaces exist. Linux version.
+ Copyright (C) 2003-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <assert.h>
+#include <errno.h>
+#include <ifaddrs.h>
+#include <netdb.h>
+#include <stddef.h>
+#include <string.h>
+#include <time.h>
+#include <unistd.h>
+#include <stdint.h>
+#include <sys/socket.h>
+
+#include <asm/types.h>
+#include <linux/netlink.h>
+#include <linux/rtnetlink.h>
+
+#include <not-cancel.h>
+#include <libc-lock.h>
+#include <atomic.h>
+#include <nscd/nscd-client.h>
+
+#include "netlinkaccess.h"
+
+#ifndef IFA_F_HOMEADDRESS
+# define IFA_F_HOMEADDRESS 0
+#endif
+#ifndef IFA_F_OPTIMISTIC
+# define IFA_F_OPTIMISTIC 0
+#endif
+
+
+struct cached_data
+{
+ uint32_t timestamp;
+ uint32_t usecnt;
+ bool seen_ipv4;
+ bool seen_ipv6;
+ size_t in6ailen;
+ struct in6addrinfo in6ai[0];
+};
+
+static struct cached_data noai6ai_cached =
+ {
+ .usecnt = 1, /* Make sure we never try to delete this entry. */
+ .in6ailen = 0
+ };
+
+static struct cached_data *cache;
+__libc_lock_define_initialized (static, lock);
+
+
+#if IS_IN (nscd)
+static uint32_t nl_timestamp;
+
+uint32_t
+__bump_nl_timestamp (void)
+{
+ if (atomic_increment_val (&nl_timestamp) == 0)
+ atomic_increment (&nl_timestamp);
+
+ return nl_timestamp;
+}
+#endif
+
+static inline uint32_t
+get_nl_timestamp (void)
+{
+#if IS_IN (nscd)
+ return nl_timestamp;
+#elif defined USE_NSCD
+ return __nscd_get_nl_timestamp ();
+#else
+ return 0;
+#endif
+}
+
+static inline bool
+cache_valid_p (void)
+{
+ if (cache != NULL)
+ {
+ uint32_t timestamp = get_nl_timestamp ();
+ return timestamp != 0 && cache->timestamp == timestamp;
+ }
+ return false;
+}
+
+
+static struct cached_data *
+make_request (int fd, pid_t pid)
+{
+ struct cached_data *result = NULL;
+
+ size_t result_len = 0;
+ size_t result_cap = 32;
+
+ struct req
+ {
+ struct nlmsghdr nlh;
+ struct rtgenmsg g;
+ /* struct rtgenmsg consists of a single byte. This means there
+ are three bytes of padding included in the REQ definition.
+ We make them explicit here. */
+ char pad[3];
+ } req;
+ struct sockaddr_nl nladdr;
+
+ req.nlh.nlmsg_len = sizeof (req);
+ req.nlh.nlmsg_type = RTM_GETADDR;
+ req.nlh.nlmsg_flags = NLM_F_ROOT | NLM_F_MATCH | NLM_F_REQUEST;
+ req.nlh.nlmsg_pid = 0;
+ req.nlh.nlmsg_seq = time (NULL);
+ req.g.rtgen_family = AF_UNSPEC;
+
+ assert (sizeof (req) - offsetof (struct req, pad) == 3);
+ memset (req.pad, '\0', sizeof (req.pad));
+
+ memset (&nladdr, '\0', sizeof (nladdr));
+ nladdr.nl_family = AF_NETLINK;
+
+#ifdef PAGE_SIZE
+ const size_t buf_size = PAGE_SIZE;
+#else
+ const size_t buf_size = 4096;
+#endif
+ char buf[buf_size];
+
+ struct iovec iov = { buf, buf_size };
+
+ if (TEMP_FAILURE_RETRY (__sendto (fd, (void *) &req, sizeof (req), 0,
+ (struct sockaddr *) &nladdr,
+ sizeof (nladdr))) < 0)
+ goto out_fail;
+
+ bool done = false;
+
+ bool seen_ipv4 = false;
+ bool seen_ipv6 = false;
+
+ do
+ {
+ struct msghdr msg =
+ {
+ .msg_name = (void *) &nladdr,
+ .msg_namelen = sizeof (nladdr),
+ .msg_iov = &iov,
+ .msg_iovlen = 1,
+ .msg_control = NULL,
+ .msg_controllen = 0,
+ .msg_flags = 0
+ };
+
+ ssize_t read_len = TEMP_FAILURE_RETRY (__recvmsg (fd, &msg, 0));
+ __netlink_assert_response (fd, read_len);
+ if (read_len < 0)
+ goto out_fail;
+
+ if (msg.msg_flags & MSG_TRUNC)
+ goto out_fail;
+
+ struct nlmsghdr *nlmh;
+ for (nlmh = (struct nlmsghdr *) buf;
+ NLMSG_OK (nlmh, (size_t) read_len);
+ nlmh = (struct nlmsghdr *) NLMSG_NEXT (nlmh, read_len))
+ {
+ if (nladdr.nl_pid != 0 || (pid_t) nlmh->nlmsg_pid != pid
+ || nlmh->nlmsg_seq != req.nlh.nlmsg_seq)
+ continue;
+
+ if (nlmh->nlmsg_type == RTM_NEWADDR)
+ {
+ struct ifaddrmsg *ifam = (struct ifaddrmsg *) NLMSG_DATA (nlmh);
+ struct rtattr *rta = IFA_RTA (ifam);
+ size_t len = nlmh->nlmsg_len - NLMSG_LENGTH (sizeof (*ifam));
+
+ if (ifam->ifa_family != AF_INET
+ && ifam->ifa_family != AF_INET6)
+ continue;
+
+ const void *local = NULL;
+ const void *address = NULL;
+ while (RTA_OK (rta, len))
+ {
+ switch (rta->rta_type)
+ {
+ case IFA_LOCAL:
+ local = RTA_DATA (rta);
+ break;
+
+ case IFA_ADDRESS:
+ address = RTA_DATA (rta);
+ goto out;
+ }
+
+ rta = RTA_NEXT (rta, len);
+ }
+
+ if (local != NULL)
+ {
+ address = local;
+ out:
+ if (ifam->ifa_family == AF_INET)
+ {
+ if (*(const in_addr_t *) address
+ != htonl (INADDR_LOOPBACK))
+ seen_ipv4 = true;
+ }
+ else
+ {
+ if (!IN6_IS_ADDR_LOOPBACK (address))
+ seen_ipv6 = true;
+ }
+ }
+
+ if (result_len == 0 || result_len == result_cap)
+ {
+ result_cap = 2 * result_cap;
+ result = realloc (result, sizeof (*result)
+ + result_cap
+ * sizeof (struct in6addrinfo));
+ }
+
+ if (!result)
+ goto out_fail;
+
+ struct in6addrinfo *info = &result->in6ai[result_len++];
+
+ info->flags = (((ifam->ifa_flags
+ & (IFA_F_DEPRECATED | IFA_F_OPTIMISTIC))
+ ? in6ai_deprecated : 0)
+ | ((ifam->ifa_flags & IFA_F_HOMEADDRESS)
+ ? in6ai_homeaddress : 0));
+ info->prefixlen = ifam->ifa_prefixlen;
+ info->index = ifam->ifa_index;
+ if (ifam->ifa_family == AF_INET)
+ {
+ info->addr[0] = 0;
+ info->addr[1] = 0;
+ info->addr[2] = htonl (0xffff);
+ info->addr[3] = *(const in_addr_t *) address;
+ }
+ else
+ memcpy (info->addr, address, sizeof (info->addr));
+ }
+ else if (nlmh->nlmsg_type == NLMSG_DONE)
+ /* We found the end, leave the loop. */
+ done = true;
+ }
+ }
+ while (! done);
+
+ if (seen_ipv6 && result != NULL)
+ {
+ result->timestamp = get_nl_timestamp ();
+ result->usecnt = 2;
+ result->seen_ipv4 = seen_ipv4;
+ result->seen_ipv6 = true;
+ result->in6ailen = result_len;
+ }
+ else
+ {
+ free (result);
+
+ atomic_add (&noai6ai_cached.usecnt, 2);
+ noai6ai_cached.seen_ipv4 = seen_ipv4;
+ noai6ai_cached.seen_ipv6 = seen_ipv6;
+ result = &noai6ai_cached;
+ }
+
+ return result;
+
+ out_fail:
+
+ free (result);
+ return NULL;
+}
+
+
+void
+attribute_hidden
+__check_pf (bool *seen_ipv4, bool *seen_ipv6,
+ struct in6addrinfo **in6ai, size_t *in6ailen)
+{
+ *in6ai = NULL;
+ *in6ailen = 0;
+
+ struct cached_data *olddata = NULL;
+ struct cached_data *data = NULL;
+
+ __libc_lock_lock (lock);
+
+ if (cache_valid_p ())
+ {
+ data = cache;
+ atomic_increment (&cache->usecnt);
+ }
+ else
+ {
+ int fd = __socket (PF_NETLINK, SOCK_RAW, NETLINK_ROUTE);
+
+ if (__glibc_likely (fd >= 0))
+ {
+ struct sockaddr_nl nladdr;
+ memset (&nladdr, '\0', sizeof (nladdr));
+ nladdr.nl_family = AF_NETLINK;
+
+ socklen_t addr_len = sizeof (nladdr);
+
+ if (__bind (fd, (struct sockaddr *) &nladdr, sizeof (nladdr)) == 0
+ && __getsockname (fd, (struct sockaddr *) &nladdr,
+ &addr_len) == 0)
+ data = make_request (fd, nladdr.nl_pid);
+
+ close_not_cancel_no_status (fd);
+ }
+
+ if (data != NULL)
+ {
+ olddata = cache;
+ cache = data;
+ }
+ }
+
+ __libc_lock_unlock (lock);
+
+ if (data != NULL)
+ {
+ /* It worked. */
+ *seen_ipv4 = data->seen_ipv4;
+ *seen_ipv6 = data->seen_ipv6;
+ *in6ailen = data->in6ailen;
+ *in6ai = data->in6ai;
+
+ if (olddata != NULL && olddata->usecnt > 0
+ && atomic_add_zero (&olddata->usecnt, -1))
+ free (olddata);
+
+ return;
+ }
+
+ /* We cannot determine what interfaces are available. Be
+ pessimistic. */
+ *seen_ipv4 = true;
+ *seen_ipv6 = true;
+}
+
+/* Free the cache if it has been allocated. */
+libc_freeres_fn (freecache)
+{
+ if (cache)
+ __free_in6ai (cache->in6ai);
+}
+
+void
+__free_in6ai (struct in6addrinfo *ai)
+{
+ if (ai != NULL)
+ {
+ struct cached_data *data =
+ (struct cached_data *) ((char *) ai
+ - offsetof (struct cached_data, in6ai));
+
+ if (atomic_add_zero (&data->usecnt, -1))
+ {
+ __libc_lock_lock (lock);
+
+ if (data->usecnt == 0)
+ /* Still unused. */
+ free (data);
+
+ __libc_lock_unlock (lock);
+ }
+ }
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/clock.c b/REORG.TODO/sysdeps/unix/sysv/linux/clock.c
new file mode 100644
index 0000000000..a0056e4da7
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/clock.c
@@ -0,0 +1,39 @@
+/* Return the time used by the program so far (user time + system time).
+ Copyright (C) 1991-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sys/times.h>
+#include <time.h>
+#include <unistd.h>
+
+clock_t
+clock (void)
+{
+ struct timespec ts;
+
+ _Static_assert (CLOCKS_PER_SEC == 1000000,
+ "CLOCKS_PER_SEC should be 1000000");
+
+ /* clock_gettime shouldn't fail here since CLOCK_PROCESS_CPUTIME_ID is
+ supported since 2.6.12. Check the return value anyway in case the kernel
+ barfs on us for some reason. */
+ if (__glibc_unlikely (__clock_gettime (CLOCK_PROCESS_CPUTIME_ID, &ts) != 0))
+ return (clock_t) -1;
+
+ return (ts.tv_sec * CLOCKS_PER_SEC
+ + ts.tv_nsec / (1000000000 / CLOCKS_PER_SEC));
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/clock_getcpuclockid.c b/REORG.TODO/sysdeps/unix/sysv/linux/clock_getcpuclockid.c
new file mode 100644
index 0000000000..4b1f3b67b0
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/clock_getcpuclockid.c
@@ -0,0 +1,48 @@
+/* clock_getcpuclockid -- Get a clockid_t for process CPU time. Linux version.
+ Copyright (C) 2004-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <time.h>
+#include <unistd.h>
+#include "kernel-posix-cpu-timers.h"
+
+int
+__clock_getcpuclockid (pid_t pid, clockid_t *clock_id)
+{
+ /* The clockid_t value is a simple computation from the PID.
+ But we do a clock_getres call to validate it. */
+
+ const clockid_t pidclock = MAKE_PROCESS_CPUCLOCK (pid, CPUCLOCK_SCHED);
+
+ INTERNAL_SYSCALL_DECL (err);
+ int r = INTERNAL_SYSCALL (clock_getres, err, 2, pidclock, NULL);
+ if (!INTERNAL_SYSCALL_ERROR_P (r, err))
+ {
+ *clock_id = pidclock;
+ return 0;
+ }
+
+ if (INTERNAL_SYSCALL_ERRNO (r, err) == EINVAL)
+ {
+ /* The clock_getres system call checked the PID for us. */
+ return ESRCH;
+ }
+ else
+ return INTERNAL_SYSCALL_ERRNO (r, err);
+}
+weak_alias (__clock_getcpuclockid, clock_getcpuclockid)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/clock_getres.c b/REORG.TODO/sysdeps/unix/sysv/linux/clock_getres.c
new file mode 100644
index 0000000000..2b7bb65e55
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/clock_getres.c
@@ -0,0 +1,51 @@
+/* clock_getres -- Get the resolution of a POSIX clockid_t. Linux version.
+ Copyright (C) 2003-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#include <errno.h>
+#include <time.h>
+#include "kernel-posix-cpu-timers.h"
+
+#ifdef HAVE_CLOCK_GETRES_VSYSCALL
+# define HAVE_VSYSCALL
+#endif
+#include <sysdep-vdso.h>
+
+#define SYSCALL_GETRES \
+ retval = INLINE_VSYSCALL (clock_getres, 2, clock_id, res); \
+ break
+
+/* The REALTIME and MONOTONIC clock are definitely supported in the
+ kernel. */
+#define SYSDEP_GETRES \
+ SYSDEP_GETRES_CPUTIME \
+ case CLOCK_REALTIME: \
+ case CLOCK_MONOTONIC: \
+ case CLOCK_MONOTONIC_RAW: \
+ case CLOCK_REALTIME_COARSE: \
+ case CLOCK_MONOTONIC_COARSE: \
+ SYSCALL_GETRES
+
+/* We handled the REALTIME clock here. */
+#define HANDLED_REALTIME 1
+#define HANDLED_CPUTIME 1
+
+#define SYSDEP_GETRES_CPU SYSCALL_GETRES
+#define SYSDEP_GETRES_CPUTIME /* Default catches them too. */
+
+#include <sysdeps/posix/clock_getres.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/clock_gettime.c b/REORG.TODO/sysdeps/unix/sysv/linux/clock_gettime.c
new file mode 100644
index 0000000000..e232f69a4f
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/clock_gettime.c
@@ -0,0 +1,47 @@
+/* clock_gettime -- Get current time from a POSIX clockid_t. Linux version.
+ Copyright (C) 2003-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#include <errno.h>
+#include <time.h>
+#include "kernel-posix-cpu-timers.h"
+
+#ifdef HAVE_CLOCK_GETTIME_VSYSCALL
+# define HAVE_VSYSCALL
+#endif
+#include <sysdep-vdso.h>
+
+/* The REALTIME and MONOTONIC clock are definitely supported in the
+ kernel. */
+#define SYSDEP_GETTIME \
+ SYSDEP_GETTIME_CPUTIME; \
+ case CLOCK_REALTIME: \
+ case CLOCK_MONOTONIC: \
+ retval = INLINE_VSYSCALL (clock_gettime, 2, clock_id, tp); \
+ break
+
+/* We handled the REALTIME clock here. */
+#define HANDLED_REALTIME 1
+#define HANDLED_CPUTIME 1
+
+#define SYSDEP_GETTIME_CPU(clock_id, tp) \
+ retval = INLINE_VSYSCALL (clock_gettime, 2, clock_id, tp); \
+ break
+#define SYSDEP_GETTIME_CPUTIME /* Default catches them too. */
+
+#include <sysdeps/unix/clock_gettime.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/clock_nanosleep.c b/REORG.TODO/sysdeps/unix/sysv/linux/clock_nanosleep.c
new file mode 100644
index 0000000000..93bc4cf47e
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/clock_nanosleep.c
@@ -0,0 +1,54 @@
+/* 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 <time.h>
+#include <errno.h>
+
+#include <sysdep-cancel.h>
+#include "kernel-posix-cpu-timers.h"
+
+
+/* We can simply use the syscall. The CPU clocks are not supported
+ with this function. */
+int
+__clock_nanosleep (clockid_t clock_id, int flags, const struct timespec *req,
+ struct timespec *rem)
+{
+ INTERNAL_SYSCALL_DECL (err);
+ int r;
+
+ if (clock_id == CLOCK_THREAD_CPUTIME_ID)
+ return EINVAL;
+ if (clock_id == CLOCK_PROCESS_CPUTIME_ID)
+ clock_id = MAKE_PROCESS_CPUCLOCK (0, CPUCLOCK_SCHED);
+
+ if (SINGLE_THREAD_P)
+ r = INTERNAL_SYSCALL (clock_nanosleep, err, 4, clock_id, flags, req, rem);
+ else
+ {
+ int oldstate = LIBC_CANCEL_ASYNC ();
+
+ r = INTERNAL_SYSCALL (clock_nanosleep, err, 4, clock_id, flags, req,
+ rem);
+
+ LIBC_CANCEL_RESET (oldstate);
+ }
+
+ return (INTERNAL_SYSCALL_ERROR_P (r, err)
+ ? INTERNAL_SYSCALL_ERRNO (r, err) : 0);
+}
+weak_alias (__clock_nanosleep, clock_nanosleep)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/clock_settime.c b/REORG.TODO/sysdeps/unix/sysv/linux/clock_settime.c
new file mode 100644
index 0000000000..058c518e5a
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/clock_settime.c
@@ -0,0 +1,38 @@
+/* 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 <sysdep.h>
+#include <time.h>
+
+#include "kernel-posix-cpu-timers.h"
+
+
+/* The REALTIME clock is definitely supported in the kernel. */
+#define SYSDEP_SETTIME \
+ case CLOCK_REALTIME: \
+ retval = INLINE_SYSCALL (clock_settime, 2, clock_id, tp); \
+ break
+
+/* We handled the REALTIME clock here. */
+#define HANDLED_REALTIME 1
+
+#define HANDLED_CPUTIME 1
+#define SYSDEP_SETTIME_CPU \
+ retval = INLINE_SYSCALL (clock_settime, 2, clock_id, tp)
+
+#include <sysdeps/unix/clock_settime.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/close.c b/REORG.TODO/sysdeps/unix/sysv/linux/close.c
new file mode 100644
index 0000000000..1ac71ce980
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/close.c
@@ -0,0 +1,30 @@
+/* Linux close syscall implementation.
+ Copyright (C) 2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <unistd.h>
+#include <sysdep-cancel.h>
+
+/* Close the file descriptor FD. */
+int
+__close (int fd)
+{
+ return SYSCALL_CANCEL (close, fd);
+}
+libc_hidden_def (__close)
+strong_alias (__close, __libc_close)
+weak_alias (__close, close)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/cmsg_nxthdr.c b/REORG.TODO/sysdeps/unix/sysv/linux/cmsg_nxthdr.c
new file mode 100644
index 0000000000..797be3ab68
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/cmsg_nxthdr.c
@@ -0,0 +1,39 @@
+/* Return point to next ancillary data entry in message header.
+ Copyright (C) 1997-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <stddef.h>
+#include <sys/socket.h>
+
+
+struct cmsghdr *
+__cmsg_nxthdr (struct msghdr *mhdr, struct cmsghdr *cmsg)
+{
+ if ((size_t) cmsg->cmsg_len < sizeof (struct cmsghdr))
+ /* The kernel header does this so there may be a reason. */
+ return NULL;
+
+ cmsg = (struct cmsghdr *) ((unsigned char *) cmsg
+ + CMSG_ALIGN (cmsg->cmsg_len));
+ if ((unsigned char *) (cmsg + 1) > ((unsigned char *) mhdr->msg_control
+ + mhdr->msg_controllen)
+ || ((unsigned char *) cmsg + CMSG_ALIGN (cmsg->cmsg_len)
+ > ((unsigned char *) mhdr->msg_control + mhdr->msg_controllen)))
+ /* No more entries. */
+ return NULL;
+ return cmsg;
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/configure b/REORG.TODO/sysdeps/unix/sysv/linux/configure
new file mode 100644
index 0000000000..cace758c01
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/configure
@@ -0,0 +1,166 @@
+# This file is generated from configure.ac by Autoconf. DO NOT EDIT!
+ # Local configure fragment for sysdeps/unix/sysv/linux.
+
+if test -n "$sysheaders"; then
+ OLD_CPPFLAGS=$CPPFLAGS
+ CPPFLAGS="$CPPFLAGS $SYSINCLUDES"
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking installed Linux kernel header files" >&5
+$as_echo_n "checking installed Linux kernel header files... " >&6; }
+if ${libc_cv_linux320+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <linux/version.h>
+#if !defined LINUX_VERSION_CODE || LINUX_VERSION_CODE < (3 *65536+ 2 *256+ 0) /* 3.2.0 */
+# error kernel headers missing or too old
+#endif
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ libc_cv_linux320='3.2.0 or later'
+else
+ libc_cv_linux320='missing or too old!'
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_linux320" >&5
+$as_echo "$libc_cv_linux320" >&6; }
+if test "$libc_cv_linux320" != '3.2.0 or later'; then
+ as_fn_error $? "GNU libc requires kernel header files from
+Linux 3.2.0 or later to be installed before configuring.
+The kernel header files are found usually in /usr/include/asm and
+/usr/include/linux; make sure these directories use files from
+Linux 3.2.0 or later. This check uses <linux/version.h>, so
+make sure that file was built correctly when installing the kernel header
+files. To use kernel headers not from /usr/include/linux, use the
+configure option --with-headers." "$LINENO" 5
+fi
+
+# If the user gave a minimal version number test whether the available
+# kernel headers are young enough. Additionally we have minimal
+# kernel versions for some architectures. If a previous configure fragment
+# set arch_minimum_kernel already, let that override our defaults here.
+# Note that we presume such a fragment has set libc_cv_gcc_unwind_find_fde
+# if appropriate too.
+test -n "$arch_minimum_kernel" || arch_minimum_kernel=3.2.0
+if test -n "$minimum_kernel"; then
+
+ user_version=$((`echo "$minimum_kernel.0.0.0" | sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*/\1 \* 65536 + \2 \* 256 + \3/'`))
+ arch_version=$((`echo "$arch_minimum_kernel.0.0.0" | sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*/\1 \* 65536 + \2 \* 256 + \3/'`))
+
+ if test $user_version -lt $arch_version; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: minimum kernel version reset to $arch_minimum_kernel" >&5
+$as_echo "$as_me: WARNING: minimum kernel version reset to $arch_minimum_kernel" >&2;}
+ minimum_kernel=$arch_minimum_kernel
+ fi
+else
+ minimum_kernel=$arch_minimum_kernel
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for kernel header at least $minimum_kernel" >&5
+$as_echo_n "checking for kernel header at least $minimum_kernel... " >&6; }
+decnum=`echo "$minimum_kernel.0.0.0" | sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*/(\1 * 65536 + \2 * 256 + \3)/'`;
+abinum=`echo "$minimum_kernel.0.0.0" | sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*/\1,\2,\3/'`;
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <linux/version.h>
+#if LINUX_VERSION_CODE < $decnum
+# error kernel headers too old
+#endif
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ libc_minimum_kernel=ok
+else
+ libc_minimum_kernel='too old!'
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_minimum_kernel" >&5
+$as_echo "$libc_minimum_kernel" >&6; }
+if test "$libc_minimum_kernel" = ok; then
+ cat >>confdefs.h <<_ACEOF
+#define __LINUX_KERNEL_VERSION $decnum
+_ACEOF
+
+ cat >>confdefs.h <<_ACEOF
+#define __ABI_TAG_VERSION $abinum
+_ACEOF
+
+else
+ as_fn_error $? "*** The available kernel headers are older than the requested
+*** compatible kernel version" "$LINENO" 5
+fi
+
+if test -n "$sysheaders"; then
+ CPPFLAGS=$OLD_CPPFLAGS
+fi
+
+if test "$prefix" = "/usr/local" -o "$prefix" = "/usr/local/" -o "$prefix" = "NONE"; then
+ if test $enable_sanity = yes; then
+ echo "\
+*** On GNU/Linux systems the GNU C Library should not be installed into
+*** /usr/local since this might make your system totally unusable.
+*** We strongly advise to use a different prefix. For details read the FAQ.
+*** If you really mean to do this, run configure again using the extra
+*** parameter \`--disable-sanity-checks'."
+ exit 1
+ else
+ echo "\
+*** WARNING: Do you really want to install the GNU C Library into /usr/local?
+*** This might make your system totally unusable, for details read the FAQ."
+ fi
+fi
+
+
+# One Linux we use ldconfig.
+use_ldconfig=yes
+
+if test $host = $build; then
+ # If $prefix/include/{net,scsi} are symlinks, make install will
+ # clobber what they're linked to (probably a kernel tree).
+ # test -L ought to work on all Linux boxes.
+ if test "x$prefix" != xNONE; then
+ ac_prefix=$prefix
+ else
+ ac_prefix=$ac_default_prefix
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for symlinks in ${ac_prefix}/include" >&5
+$as_echo_n "checking for symlinks in ${ac_prefix}/include... " >&6; }
+ ac_message=
+ if test -L ${ac_prefix}/include/net; then
+ ac_message="$ac_message
+ ${ac_prefix}/include/net is a symlink"
+ fi
+ if test -L ${ac_prefix}/include/scsi; then
+ ac_message="$ac_message
+ ${ac_prefix}/include/scsi is a symlink"
+ fi
+ if test -n "$ac_message"; then
+ as_fn_error $? "$ac_message
+\`make install' will destroy the target of the link(s).
+Delete the links and re-run configure, or better still, move the entire
+${ac_prefix}/include directory out of the way." "$LINENO" 5
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
+$as_echo "ok" >&6; }
+ fi
+fi
+
+# We have inlined syscalls.
+$as_echo "#define HAVE_INLINED_SYSCALLS 1" >>confdefs.h
+
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/configure.ac b/REORG.TODO/sysdeps/unix/sysv/linux/configure.ac
new file mode 100644
index 0000000000..13abda0a51
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/configure.ac
@@ -0,0 +1,122 @@
+GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
+# Local configure fragment for sysdeps/unix/sysv/linux.
+
+define([LIBC_LINUX_VERSION],[3.2.0])dnl
+if test -n "$sysheaders"; then
+ OLD_CPPFLAGS=$CPPFLAGS
+ CPPFLAGS="$CPPFLAGS $SYSINCLUDES"
+fi
+define([libc_cv_linuxVER], [libc_cv_linux]patsubst(LIBC_LINUX_VERSION,[\.]))dnl
+AC_CACHE_CHECK(installed Linux kernel header files, libc_cv_linuxVER, [dnl
+AC_TRY_COMPILE([#include <linux/version.h>
+#if !defined LINUX_VERSION_CODE || LINUX_VERSION_CODE < ]dnl
+patsubst(LIBC_LINUX_VERSION,[^\([^.]*\)\.\([^.]*\)\.\([^.]*\)$],dnl
+[ (\1 *65536+ \2 *256+ \3) /* \1.\2.\3 */])[
+# error kernel headers missing or too old
+#endif], [],
+ [libc_cv_linuxVER='LIBC_LINUX_VERSION or later'],
+ [libc_cv_linuxVER='missing or too old!'])])
+if test "$libc_cv_linuxVER" != 'LIBC_LINUX_VERSION or later'; then
+ AC_MSG_ERROR([GNU libc requires kernel header files from
+Linux LIBC_LINUX_VERSION or later to be installed before configuring.
+The kernel header files are found usually in /usr/include/asm and
+/usr/include/linux; make sure these directories use files from
+Linux LIBC_LINUX_VERSION or later. This check uses <linux/version.h>, so
+make sure that file was built correctly when installing the kernel header
+files. To use kernel headers not from /usr/include/linux, use the
+configure option --with-headers.])
+fi
+
+# If the user gave a minimal version number test whether the available
+# kernel headers are young enough. Additionally we have minimal
+# kernel versions for some architectures. If a previous configure fragment
+# set arch_minimum_kernel already, let that override our defaults here.
+# Note that we presume such a fragment has set libc_cv_gcc_unwind_find_fde
+# if appropriate too.
+test -n "$arch_minimum_kernel" || arch_minimum_kernel=3.2.0
+if test -n "$minimum_kernel"; then
+ changequote(,)
+ user_version=$((`echo "$minimum_kernel.0.0.0" | sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*/\1 \* 65536 + \2 \* 256 + \3/'`))
+ arch_version=$((`echo "$arch_minimum_kernel.0.0.0" | sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*/\1 \* 65536 + \2 \* 256 + \3/'`))
+ changequote([,])
+ if test $user_version -lt $arch_version; then
+ AC_MSG_WARN([minimum kernel version reset to $arch_minimum_kernel])
+ minimum_kernel=$arch_minimum_kernel
+ fi
+else
+ minimum_kernel=$arch_minimum_kernel
+fi
+
+AC_MSG_CHECKING(for kernel header at least $minimum_kernel)
+changequote(,)dnl
+decnum=`echo "$minimum_kernel.0.0.0" | sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*/(\1 * 65536 + \2 * 256 + \3)/'`;
+abinum=`echo "$minimum_kernel.0.0.0" | sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*/\1,\2,\3/'`;
+changequote([,])dnl
+AC_TRY_COMPILE([#include <linux/version.h>
+#if LINUX_VERSION_CODE < $decnum
+# error kernel headers too old
+#endif], [], [libc_minimum_kernel=ok], [libc_minimum_kernel='too old!'])
+AC_MSG_RESULT($libc_minimum_kernel)
+if test "$libc_minimum_kernel" = ok; then
+ AC_DEFINE_UNQUOTED(__LINUX_KERNEL_VERSION, $decnum)
+ AC_DEFINE_UNQUOTED(__ABI_TAG_VERSION, $abinum)
+else
+ AC_MSG_ERROR([*** The available kernel headers are older than the requested
+*** compatible kernel version])
+fi
+
+if test -n "$sysheaders"; then
+ CPPFLAGS=$OLD_CPPFLAGS
+fi
+
+if test "$prefix" = "/usr/local" -o "$prefix" = "/usr/local/" -o "$prefix" = "NONE"; then
+ if test $enable_sanity = yes; then
+ echo "\
+*** On GNU/Linux systems the GNU C Library should not be installed into
+*** /usr/local since this might make your system totally unusable.
+*** We strongly advise to use a different prefix. For details read the FAQ.
+*** If you really mean to do this, run configure again using the extra
+*** parameter \`--disable-sanity-checks'."
+ exit 1
+ else
+ echo "\
+*** WARNING: Do you really want to install the GNU C Library into /usr/local?
+*** This might make your system totally unusable, for details read the FAQ."
+ fi
+fi
+
+
+# One Linux we use ldconfig.
+use_ldconfig=yes
+
+if test $host = $build; then
+ # If $prefix/include/{net,scsi} are symlinks, make install will
+ # clobber what they're linked to (probably a kernel tree).
+ # test -L ought to work on all Linux boxes.
+ if test "x$prefix" != xNONE; then
+ ac_prefix=$prefix
+ else
+ ac_prefix=$ac_default_prefix
+ fi
+ AC_MSG_CHECKING([for symlinks in ${ac_prefix}/include])
+ ac_message=
+ if test -L ${ac_prefix}/include/net; then
+ ac_message="$ac_message
+ ${ac_prefix}/include/net is a symlink"
+ fi
+ if test -L ${ac_prefix}/include/scsi; then
+ ac_message="$ac_message
+ ${ac_prefix}/include/scsi is a symlink"
+ fi
+ if test -n "$ac_message"; then
+ AC_MSG_ERROR([$ac_message
+\`make install' will destroy the target of the link(s).
+Delete the links and re-run configure, or better still, move the entire
+${ac_prefix}/include directory out of the way.])
+ else
+ AC_MSG_RESULT(ok)
+ fi
+fi
+
+# We have inlined syscalls.
+AC_DEFINE(HAVE_INLINED_SYSCALLS)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/connect.c b/REORG.TODO/sysdeps/unix/sysv/linux/connect.c
new file mode 100644
index 0000000000..f6ab5df6ad
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/connect.c
@@ -0,0 +1,33 @@
+/* Copyright (C) 2015-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sys/socket.h>
+#include <sysdep-cancel.h>
+#include <socketcall.h>
+
+int
+__libc_connect (int fd, __CONST_SOCKADDR_ARG addr, socklen_t len)
+{
+#ifdef __ASSUME_CONNECT_SYSCALL
+ return SYSCALL_CANCEL (connect, fd, addr.__sockaddr__, len);
+#else
+ return SOCKETCALL_CANCEL (connect, fd, addr.__sockaddr__, len);
+#endif
+}
+weak_alias (__libc_connect, connect)
+weak_alias (__libc_connect, __connect)
+libc_hidden_weak (__connect)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/creat.c b/REORG.TODO/sysdeps/unix/sysv/linux/creat.c
new file mode 100644
index 0000000000..31e024838c
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/creat.c
@@ -0,0 +1,40 @@
+/* Linux default implementation for creat.
+ Copyright (C) 2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <fcntl.h>
+#include <sys/types.h>
+
+#include <sysdep-cancel.h>
+
+#ifndef __OFF_T_MATCHES_OFF64_T
+
+/* Create FILE with protections MODE. */
+int
+__creat (const char *file, mode_t mode)
+{
+# ifdef __NR_creat
+ return SYSCALL_CANCEL (creat, file, mode);
+# else
+ return __open (file, O_WRONLY | O_CREAT | O_TRUNC, mode);
+# endif
+}
+weak_alias (__creat, creat)
+
+LIBC_CANCEL_HANDLED ();
+
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/creat64.c b/REORG.TODO/sysdeps/unix/sysv/linux/creat64.c
new file mode 100644
index 0000000000..709c66091a
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/creat64.c
@@ -0,0 +1,41 @@
+/* Linux default implementation for LFS creat.
+ Copyright (C) 2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <fcntl.h>
+#include <sys/types.h>
+#include <sysdep-cancel.h>
+
+/* Create FILE with protections MODE. */
+int
+__creat64 (const char *file, mode_t mode)
+{
+#if defined __OFF_T_MATCHES_OFF64_T && defined __NR_creat
+ return SYSCALL_CANCEL (creat, file, mode);
+#else
+ /* We need to pass O_LARGEFILE. */
+ return __open64 (file, O_WRONLY | O_CREAT | O_TRUNC, mode);
+#endif
+}
+weak_alias (__creat64, creat64)
+
+#ifdef __OFF_T_MATCHES_OFF64_T
+strong_alias (__creat64, __creat)
+weak_alias (__creat64, creat)
+#endif
+
+LIBC_CANCEL_HANDLED ();
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/createthread.c b/REORG.TODO/sysdeps/unix/sysv/linux/createthread.c
new file mode 100644
index 0000000000..fe3a3fe4a2
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/createthread.c
@@ -0,0 +1,152 @@
+/* Low-level thread creation for NPTL. Linux version.
+ Copyright (C) 2002-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sched.h>
+#include <setjmp.h>
+#include <signal.h>
+#include <stdlib.h>
+#include <atomic.h>
+#include <ldsodefs.h>
+#include <tls.h>
+#include <stdint.h>
+
+#include <arch-fork.h>
+
+
+#ifndef ARCH_CLONE
+# define ARCH_CLONE __clone
+#endif
+
+/* See the comments in pthread_create.c for the requirements for these
+ two macros and the create_thread function. */
+
+#define START_THREAD_DEFN \
+ static int __attribute__ ((noreturn)) start_thread (void *arg)
+#define START_THREAD_SELF arg
+
+/* pthread_create.c defines this using START_THREAD_DEFN
+ We need a forward declaration here so we can take its address. */
+static int start_thread (void *arg) __attribute__ ((noreturn));
+
+static int
+create_thread (struct pthread *pd, const struct pthread_attr *attr,
+ bool *stopped_start, STACK_VARIABLES_PARMS, bool *thread_ran)
+{
+ /* Determine whether the newly created threads has to be started
+ stopped since we have to set the scheduling parameters or set the
+ affinity. */
+ if (attr != NULL
+ && (__glibc_unlikely (attr->cpuset != NULL)
+ || __glibc_unlikely ((attr->flags & ATTR_FLAG_NOTINHERITSCHED) != 0)))
+ *stopped_start = true;
+
+ pd->stopped_start = *stopped_start;
+ if (__glibc_unlikely (*stopped_start))
+ /* See CONCURRENCY NOTES in nptl/pthread_creat.c. */
+ lll_lock (pd->lock, LLL_PRIVATE);
+
+ /* We rely heavily on various flags the CLONE function understands:
+
+ CLONE_VM, CLONE_FS, CLONE_FILES
+ These flags select semantics with shared address space and
+ file descriptors according to what POSIX requires.
+
+ CLONE_SIGHAND, CLONE_THREAD
+ This flag selects the POSIX signal semantics and various
+ other kinds of sharing (itimers, POSIX timers, etc.).
+
+ CLONE_SETTLS
+ The sixth parameter to CLONE determines the TLS area for the
+ new thread.
+
+ CLONE_PARENT_SETTID
+ The kernels writes the thread ID of the newly created thread
+ into the location pointed to by the fifth parameters to CLONE.
+
+ Note that it would be semantically equivalent to use
+ CLONE_CHILD_SETTID but it is be more expensive in the kernel.
+
+ CLONE_CHILD_CLEARTID
+ The kernels clears the thread ID of a thread that has called
+ sys_exit() in the location pointed to by the seventh parameter
+ to CLONE.
+
+ The termination signal is chosen to be zero which means no signal
+ is sent. */
+ const int clone_flags = (CLONE_VM | CLONE_FS | CLONE_FILES | CLONE_SYSVSEM
+ | CLONE_SIGHAND | CLONE_THREAD
+ | CLONE_SETTLS | CLONE_PARENT_SETTID
+ | CLONE_CHILD_CLEARTID
+ | 0);
+
+ TLS_DEFINE_INIT_TP (tp, pd);
+
+ if (__glibc_unlikely (ARCH_CLONE (&start_thread, STACK_VARIABLES_ARGS,
+ clone_flags, pd, &pd->tid, tp, &pd->tid)
+ == -1))
+ return errno;
+
+ /* It's started now, so if we fail below, we'll have to cancel it
+ and let it clean itself up. */
+ *thread_ran = true;
+
+ /* Now we have the possibility to set scheduling parameters etc. */
+ if (attr != NULL)
+ {
+ INTERNAL_SYSCALL_DECL (err);
+ int res;
+
+ /* Set the affinity mask if necessary. */
+ if (attr->cpuset != NULL)
+ {
+ assert (*stopped_start);
+
+ res = INTERNAL_SYSCALL (sched_setaffinity, err, 3, pd->tid,
+ attr->cpusetsize, attr->cpuset);
+
+ if (__glibc_unlikely (INTERNAL_SYSCALL_ERROR_P (res, err)))
+ err_out:
+ {
+ /* The operation failed. We have to kill the thread.
+ We let the normal cancellation mechanism do the work. */
+
+ pid_t pid = __getpid ();
+ INTERNAL_SYSCALL_DECL (err2);
+ (void) INTERNAL_SYSCALL_CALL (tgkill, err2, pid, pd->tid,
+ SIGCANCEL);
+
+ return INTERNAL_SYSCALL_ERRNO (res, err);
+ }
+ }
+
+ /* Set the scheduling parameters. */
+ if ((attr->flags & ATTR_FLAG_NOTINHERITSCHED) != 0)
+ {
+ assert (*stopped_start);
+
+ res = INTERNAL_SYSCALL (sched_setscheduler, err, 3, pd->tid,
+ pd->schedpolicy, &pd->schedparam);
+
+ if (__glibc_unlikely (INTERNAL_SYSCALL_ERROR_P (res, err)))
+ goto err_out;
+ }
+ }
+
+ return 0;
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/default-sched.h b/REORG.TODO/sysdeps/unix/sysv/linux/default-sched.h
new file mode 100644
index 0000000000..d27d09de19
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/default-sched.h
@@ -0,0 +1,42 @@
+/* Determine calling thread's scheduling parameters. Linux version.
+ Copyright (C) 2014-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public License as
+ published by the Free Software Foundation; either version 2 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with the GNU C Library; see the file COPYING.LIB. If
+ not, see <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+
+/* This should fill in PD->schedpolicy if PD->flags does not contain
+ ATTR_FLAG_POLICY_SET, and set it; and PD->schedparam if PD->flags does
+ not contain ATTR_FLAG_SCHED_SET, and set it. It won't be called at all
+ if both bits are already set. */
+
+static void
+collect_default_sched (struct pthread *pd)
+{
+ INTERNAL_SYSCALL_DECL (scerr);
+
+ if ((pd->flags & ATTR_FLAG_POLICY_SET) == 0)
+ {
+ pd->schedpolicy = INTERNAL_SYSCALL (sched_getscheduler, scerr, 1, 0);
+ pd->flags |= ATTR_FLAG_POLICY_SET;
+ }
+
+ if ((pd->flags & ATTR_FLAG_SCHED_SET) == 0)
+ {
+ INTERNAL_SYSCALL (sched_getparam, scerr, 2, 0, &pd->schedparam);
+ pd->flags |= ATTR_FLAG_SCHED_SET;
+ }
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/device-nrs.h b/REORG.TODO/sysdeps/unix/sysv/linux/device-nrs.h
new file mode 100644
index 0000000000..37a894b139
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/device-nrs.h
@@ -0,0 +1,45 @@
+/* Device numbers of devices used in the implementation. Linux 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/>. */
+
+#ifndef _DEVICE_NRS_H
+#define _DEVICE_NRS_H 1
+
+#include <sys/sysmacros.h>
+
+/* /dev/null is (1,3). */
+#define DEV_NULL_MAJOR 1
+#define DEV_NULL_MINOR 3
+
+/* /dev/full is (1,7). */
+#define DEV_FULL_MAJOR 1
+#define DEV_FULL_MINOR 7
+
+/* Pseudo tty slaves. For Linux we use the Unix98 ttys. We could
+ also include the old BSD-style tty buts they should not be used and
+ the extra test would only slow down correctly set up systems. If a
+ system still uses those device the slower tests performed (using
+ isatty) will catch it. */
+#define DEV_TTY_LOW_MAJOR 136
+#define DEV_TTY_HIGH_MAJOR 143
+
+/* Test whether given device is a tty. */
+#define DEV_TTY_P(statp) \
+ ({ int __dev_major = major ((statp)->st_rdev); \
+ __dev_major >= DEV_TTY_LOW_MAJOR && __dev_major <= DEV_TTY_HIGH_MAJOR; })
+
+#endif /* device-nrs.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/dl-brk.c b/REORG.TODO/sysdeps/unix/sysv/linux/dl-brk.c
new file mode 100644
index 0000000000..c37cdfec33
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/dl-brk.c
@@ -0,0 +1,5 @@
+/* We can use the normal code but we also know the __curbrk is not exported
+ from ld.so. */
+extern void *__curbrk attribute_hidden;
+
+#include <brk.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/dl-execstack.c b/REORG.TODO/sysdeps/unix/sysv/linux/dl-execstack.c
new file mode 100644
index 0000000000..3c4de1cb46
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/dl-execstack.c
@@ -0,0 +1,67 @@
+/* Stack executability handling for GNU dynamic linker. Linux version.
+ Copyright (C) 2003-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <ldsodefs.h>
+#include <sys/mman.h>
+#include <errno.h>
+#include <libintl.h>
+#include <stdbool.h>
+#include <stackinfo.h>
+#include <caller.h>
+#include <sysdep.h>
+
+
+extern int __stack_prot attribute_relro attribute_hidden;
+
+
+int
+internal_function
+_dl_make_stack_executable (void **stack_endp)
+{
+ /* This gives us the highest/lowest page that needs to be changed. */
+ uintptr_t page = ((uintptr_t) *stack_endp
+ & -(intptr_t) GLRO(dl_pagesize));
+ int result = 0;
+
+ /* Challenge the caller. */
+ if (__builtin_expect (__check_caller (RETURN_ADDRESS (0),
+ allow_ldso|allow_libpthread) != 0, 0)
+ || __builtin_expect (*stack_endp != __libc_stack_end, 0))
+ return EPERM;
+
+ if (__builtin_expect (__mprotect ((void *) page, GLRO(dl_pagesize),
+ __stack_prot) == 0, 1))
+ goto return_success;
+ result = errno;
+ goto out;
+
+ return_success:
+ /* Clear the address. */
+ *stack_endp = NULL;
+
+ /* Remember that we changed the permission. */
+ GL(dl_stack_flags) |= PF_X;
+
+ out:
+#ifdef check_consistency
+ check_consistency ();
+#endif
+
+ return result;
+}
+rtld_hidden_def (_dl_make_stack_executable)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/dl-fxstatat64.c b/REORG.TODO/sysdeps/unix/sysv/linux/dl-fxstatat64.c
new file mode 100644
index 0000000000..d229d0ea0f
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/dl-fxstatat64.c
@@ -0,0 +1 @@
+#include <fxstatat64.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/dl-getcwd.c b/REORG.TODO/sysdeps/unix/sysv/linux/dl-getcwd.c
new file mode 100644
index 0000000000..4bd5657f1e
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/dl-getcwd.c
@@ -0,0 +1 @@
+#include "getcwd.c"
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/dl-librecon.h b/REORG.TODO/sysdeps/unix/sysv/linux/dl-librecon.h
new file mode 100644
index 0000000000..a6e54bed75
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/dl-librecon.h
@@ -0,0 +1,60 @@
+/* Optional code to distinguish library flavours.
+ Copyright (C) 2001-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Jakub Jelinek <jakub@redhat.com>, 2001.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _DL_LIBRECON_H
+#define _DL_LIBRECON_H 1
+
+static inline void __attribute__ ((unused, always_inline))
+_dl_osversion_init (char *assume_kernel)
+{
+ unsigned long int i, j, osversion = 0;
+ char *p = assume_kernel, *q;
+
+ for (i = 0; i < 3; i++, p = q + 1)
+ {
+ j = __strtoul_internal (p, &q, 0, 0);
+ if (j >= 255 || p == q || (i < 2 && *q && *q != '.'))
+ {
+ osversion = 0;
+ break;
+ }
+ osversion |= j << (16 - 8 * i);
+ if (!*q)
+ break;
+ }
+ if (osversion)
+ GLRO(dl_osversion) = osversion;
+}
+
+/* Recognizing extra environment variables. */
+#define EXTRA_LD_ENVVARS_13 \
+ if (memcmp (envline, "ASSUME_KERNEL", 13) == 0) \
+ { \
+ _dl_osversion_init (&envline[14]); \
+ break; \
+ }
+
+#define DL_OSVERSION_INIT \
+ do { \
+ char *assume_kernel = getenv ("LD_ASSUME_KERNEL"); \
+ if (assume_kernel) \
+ _dl_osversion_init (assume_kernel); \
+ } while (0)
+
+#endif /* dl-librecon.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/dl-openat64.c b/REORG.TODO/sysdeps/unix/sysv/linux/dl-openat64.c
new file mode 100644
index 0000000000..deb68cd233
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/dl-openat64.c
@@ -0,0 +1,31 @@
+/* Copyright (C) 2011-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@gmain.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 <assert.h>
+#include <errno.h>
+#include <fcntl.h>
+#include <sysdep.h>
+
+
+int
+openat64 (int dfd, const char *file, int oflag, ...)
+{
+ assert (!__OPEN_NEEDS_MODE (oflag));
+
+ return INLINE_SYSCALL (openat, 3, dfd, file, oflag | O_LARGEFILE);
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/dl-opendir.c b/REORG.TODO/sysdeps/unix/sysv/linux/dl-opendir.c
new file mode 100644
index 0000000000..c1cdc057a7
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/dl-opendir.c
@@ -0,0 +1 @@
+#include <opendir.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/dl-origin.c b/REORG.TODO/sysdeps/unix/sysv/linux/dl-origin.c
new file mode 100644
index 0000000000..595eadfb82
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/dl-origin.c
@@ -0,0 +1,80 @@
+/* Find path of executable.
+ Copyright (C) 1998-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
+
+ 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 <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+#include <sys/param.h>
+#include <ldsodefs.h>
+#include <sysdep.h>
+
+#include <dl-dst.h>
+
+/* On Linux >= 2.1 systems which have the dcache implementation we can get
+ the path of the application from the /proc/self/exe symlink. Try this
+ first and fall back on the generic method if necessary. */
+
+const char *
+_dl_get_origin (void)
+{
+ char linkval[PATH_MAX];
+ char *result;
+ int len;
+ INTERNAL_SYSCALL_DECL (err);
+
+ len = INTERNAL_SYSCALL (readlink, err, 3, "/proc/self/exe", linkval,
+ sizeof (linkval));
+ if (! INTERNAL_SYSCALL_ERROR_P (len, err) && len > 0 && linkval[0] != '[')
+ {
+ /* We can use this value. */
+ assert (linkval[0] == '/');
+ while (len > 1 && linkval[len - 1] != '/')
+ --len;
+ result = (char *) malloc (len + 1);
+ if (result == NULL)
+ result = (char *) -1;
+ else if (len == 1)
+ memcpy (result, "/", 2);
+ else
+ *((char *) __mempcpy (result, linkval, len - 1)) = '\0';
+ }
+ else
+ {
+ result = (char *) -1;
+ /* We use the environment variable LD_ORIGIN_PATH. If it is set make
+ a copy and strip out trailing slashes. */
+ if (GLRO(dl_origin_path) != NULL)
+ {
+ size_t len = strlen (GLRO(dl_origin_path));
+ result = (char *) malloc (len + 1);
+ if (result == NULL)
+ result = (char *) -1;
+ else
+ {
+ char *cp = __mempcpy (result, GLRO(dl_origin_path), len);
+ while (cp > result + 1 && cp[-1] == '/')
+ --cp;
+ *cp = '\0';
+ }
+ }
+ }
+
+ return result;
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/dl-osinfo.h b/REORG.TODO/sysdeps/unix/sysv/linux/dl-osinfo.h
new file mode 100644
index 0000000000..823cd8224d
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/dl-osinfo.h
@@ -0,0 +1,79 @@
+/* Operating system specific code for generic dynamic loader functions. Linux.
+ 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 <dl-sysdep.h>
+#include <endian.h>
+#include <fcntl.h>
+#include <stdint.h>
+#include <not-cancel.h>
+
+#ifndef MIN
+# define MIN(a,b) (((a)<(b))?(a):(b))
+#endif
+
+#define DL_SYSDEP_OSCHECK(FATAL) \
+ do { \
+ /* Test whether the kernel is new enough. This test is only performed \
+ if the library is not compiled to run on all kernels. */ \
+ \
+ int version = _dl_discover_osversion (); \
+ if (__glibc_likely (version >= 0)) \
+ { \
+ if (__builtin_expect (GLRO(dl_osversion) == 0, 1) \
+ || GLRO(dl_osversion) > version) \
+ GLRO(dl_osversion) = version; \
+ \
+ /* Now we can test with the required version. */ \
+ if (__LINUX_KERNEL_VERSION > 0 && version < __LINUX_KERNEL_VERSION) \
+ /* Not sufficent. */ \
+ FATAL ("FATAL: kernel too old\n"); \
+ } \
+ else if (__LINUX_KERNEL_VERSION > 0) \
+ FATAL ("FATAL: cannot determine kernel version\n"); \
+ } while (0)
+
+static inline uintptr_t __attribute__ ((always_inline))
+_dl_setup_stack_chk_guard (void *dl_random)
+{
+ union
+ {
+ uintptr_t num;
+ unsigned char bytes[sizeof (uintptr_t)];
+ } ret;
+
+ /* We need in the moment only 8 bytes on 32-bit platforms and 16
+ bytes on 64-bit platforms. Therefore we can use the data
+ directly and not use the kernel-provided data to seed a PRNG. */
+ memcpy (ret.bytes, dl_random, sizeof (ret));
+#if BYTE_ORDER == LITTLE_ENDIAN
+ ret.num &= ~(uintptr_t) 0xff;
+#elif BYTE_ORDER == BIG_ENDIAN
+ ret.num &= ~((uintptr_t) 0xff << (8 * (sizeof (ret) - 1)));
+#else
+# error "BYTE_ORDER unknown"
+#endif
+ return ret.num;
+}
+
+static inline uintptr_t __attribute__ ((always_inline))
+_dl_setup_pointer_guard (void *dl_random, uintptr_t stack_chk_guard)
+{
+ uintptr_t ret;
+ memcpy (&ret, (char *) dl_random + sizeof (ret), sizeof (ret));
+ return ret;
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/dl-sbrk.c b/REORG.TODO/sysdeps/unix/sysv/linux/dl-sbrk.c
new file mode 100644
index 0000000000..1ce5cb188c
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/dl-sbrk.c
@@ -0,0 +1,5 @@
+/* We can use the normal code but we also know the __curbrk is not exported
+ from ld.so. */
+extern void *__curbrk attribute_hidden;
+
+#include <misc/sbrk.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/dl-sysdep.c b/REORG.TODO/sysdeps/unix/sysv/linux/dl-sysdep.c
new file mode 100644
index 0000000000..3082ce207e
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/dl-sysdep.c
@@ -0,0 +1,132 @@
+/* Dynamic linker system dependencies for Linux.
+ Copyright (C) 1995-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+/* Linux needs some special initialization, but otherwise uses
+ the generic dynamic linker system interface code. */
+
+#include <string.h>
+#include <fcntl.h>
+#include <unistd.h>
+#include <sys/param.h>
+#include <sys/utsname.h>
+#include <ldsodefs.h>
+
+#ifdef SHARED
+# define DL_SYSDEP_INIT frob_brk ()
+
+static inline void
+frob_brk (void)
+{
+ __brk (0); /* Initialize the break. */
+}
+
+# include <elf/dl-sysdep.c>
+#endif
+
+
+int
+attribute_hidden
+_dl_discover_osversion (void)
+{
+#if defined NEED_DL_SYSINFO_DSO && defined SHARED
+ if (GLRO(dl_sysinfo_map) != NULL)
+ {
+ /* If the kernel-supplied DSO contains a note indicating the kernel's
+ version, we don't need to call uname or parse any strings. */
+
+ static const struct
+ {
+ ElfW(Nhdr) hdr;
+ char vendor[8];
+ } expected_note = { { sizeof "Linux", sizeof (ElfW(Word)), 0 }, "Linux" };
+ const ElfW(Phdr) *const phdr = GLRO(dl_sysinfo_map)->l_phdr;
+ const ElfW(Word) phnum = GLRO(dl_sysinfo_map)->l_phnum;
+ for (uint_fast16_t i = 0; i < phnum; ++i)
+ if (phdr[i].p_type == PT_NOTE)
+ {
+ const ElfW(Addr) start = (phdr[i].p_vaddr
+ + GLRO(dl_sysinfo_map)->l_addr);
+ const ElfW(Nhdr) *note = (const void *) start;
+ while ((ElfW(Addr)) (note + 1) - start < phdr[i].p_memsz)
+ {
+ if (!memcmp (note, &expected_note, sizeof expected_note))
+ return *(const ElfW(Word) *) ((const void *) note
+ + sizeof expected_note);
+#define ROUND(len) (((len) + sizeof note->n_type - 1) & -sizeof note->n_type)
+ note = ((const void *) (note + 1)
+ + ROUND (note->n_namesz) + ROUND (note->n_descsz));
+#undef ROUND
+ }
+ }
+ }
+#endif
+
+ char bufmem[64];
+ char *buf = bufmem;
+ unsigned int version;
+ int parts;
+ char *cp;
+ struct utsname uts;
+
+ /* Try the uname system call. */
+ if (__uname (&uts))
+ {
+ /* This was not successful. Now try reading the /proc filesystem. */
+ int fd = __open ("/proc/sys/kernel/osrelease", O_RDONLY);
+ if (fd < 0)
+ return -1;
+ ssize_t reslen = __read (fd, bufmem, sizeof (bufmem));
+ __close (fd);
+ if (reslen <= 0)
+ /* This also didn't work. We give up since we cannot
+ make sure the library can actually work. */
+ return -1;
+ buf[MIN (reslen, (ssize_t) sizeof (bufmem) - 1)] = '\0';
+ }
+ else
+ buf = uts.release;
+
+ /* Now convert it into a number. The string consists of at most
+ three parts. */
+ version = 0;
+ parts = 0;
+ cp = buf;
+ while ((*cp >= '0') && (*cp <= '9'))
+ {
+ unsigned int here = *cp++ - '0';
+
+ while ((*cp >= '0') && (*cp <= '9'))
+ {
+ here *= 10;
+ here += *cp++ - '0';
+ }
+
+ ++parts;
+ version <<= 8;
+ version |= here;
+
+ if (*cp++ != '.' || parts == 3)
+ /* Another part following? */
+ break;
+ }
+
+ if (parts < 3)
+ version <<= 8 * (3 - parts);
+
+ return version;
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/dl-sysdep.h b/REORG.TODO/sysdeps/unix/sysv/linux/dl-sysdep.h
new file mode 100644
index 0000000000..586f130264
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/dl-sysdep.h
@@ -0,0 +1,33 @@
+/* System-specific settings for dynamic linker code. Linux version.
+ Copyright (C) 2005-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include_next <dl-sysdep.h>
+
+/* On many architectures the kernel provides a virtual DSO and gives
+ AT_SYSINFO_EHDR to point us to it. As this is introduced for new
+ machines, we should look at it for unwind information even if
+ we aren't making direct use of it. So enable this across the board. */
+
+#define NEED_DL_SYSINFO_DSO 1
+
+
+#ifndef __ASSEMBLER__
+/* Get version of the OS. */
+extern int _dl_discover_osversion (void) attribute_hidden;
+# define HAVE_DL_DISCOVER_OSVERSION 1
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/dl-vdso.c b/REORG.TODO/sysdeps/unix/sysv/linux/dl-vdso.c
new file mode 100644
index 0000000000..7e3546e5bc
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/dl-vdso.c
@@ -0,0 +1,49 @@
+/* ELF symbol resolve functions for VDSO objects.
+ Copyright (C) 2005-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include "config.h"
+#include <ldsodefs.h>
+
+
+void *
+internal_function
+_dl_vdso_vsym (const char *name, const struct r_found_version *vers)
+{
+ struct link_map *map = GLRO (dl_sysinfo_map);
+ void *value = NULL;
+
+
+ if (map != NULL)
+ {
+ /* Use a WEAK REF so we don't error out if the symbol is not found. */
+ ElfW (Sym) wsym;
+ memset (&wsym, 0, sizeof (ElfW (Sym)));
+ wsym.st_info = (unsigned char) ELFW (ST_INFO (STB_WEAK, STT_NOTYPE));
+
+ /* Search the scope of the vdso map. */
+ const ElfW (Sym) *ref = &wsym;
+ lookup_t result = GLRO (dl_lookup_symbol_x) (name, map, &ref,
+ map->l_local_scope,
+ vers, 0, 0, NULL);
+
+ if (ref != NULL)
+ value = DL_SYMBOL_ADDRESS (result, ref);
+ }
+
+ return value;
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/dl-vdso.h b/REORG.TODO/sysdeps/unix/sysv/linux/dl-vdso.h
new file mode 100644
index 0000000000..8923883f88
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/dl-vdso.h
@@ -0,0 +1,53 @@
+/* ELF symbol resolve functions for VDSO objects.
+ Copyright (C) 2005-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _DL_VDSO_H
+#define _DL_VDSO_H 1
+
+#include <assert.h>
+#include <ldsodefs.h>
+#include <dl-hash.h>
+
+/* Create version number record for lookup. */
+#define PREPARE_VERSION(var, vname, vhash) \
+ struct r_found_version var; \
+ var.name = vname; \
+ var.hidden = 1; \
+ var.hash = vhash; \
+ assert (var.hash == _dl_elf_hash (var.name)); \
+ /* We don't have a specific file where the symbol can be found. */ \
+ var.filename = NULL
+
+/* Use this for the known version sets defined below, where we
+ record their precomputed hash values only once, in this file. */
+#define PREPARE_VERSION_KNOWN(var, vname) \
+ PREPARE_VERSION (var, VDSO_NAME_##vname, VDSO_HASH_##vname)
+
+#define VDSO_NAME_LINUX_2_6 "LINUX_2.6"
+#define VDSO_HASH_LINUX_2_6 61765110
+#define VDSO_NAME_LINUX_2_6_15 "LINUX_2.6.15"
+#define VDSO_HASH_LINUX_2_6_15 123718565
+#define VDSO_NAME_LINUX_2_6_29 "LINUX_2.6.29"
+#define VDSO_HASH_LINUX_2_6_29 123718585
+
+/* Functions for resolving symbols in the VDSO link map. */
+extern void *_dl_vdso_vsym (const char *name,
+ const struct r_found_version *version)
+ internal_function attribute_hidden;
+
+#endif /* dl-vdso.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/dl-writev.h b/REORG.TODO/sysdeps/unix/sysv/linux/dl-writev.h
new file mode 100644
index 0000000000..112319052e
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/dl-writev.h
@@ -0,0 +1,38 @@
+/* Message-writing for the dynamic linker. Linux version.
+ Copyright (C) 2013-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sys/uio.h>
+#include <sysdep.h>
+
+/* This is used from only one place: dl-misc.c:_dl_debug_vdprintf.
+ Hence it's in a header with the expectation it will be inlined.
+
+ This is writev, but with a constraint added and others loosened:
+
+ 1. Under RTLD_PRIVATE_ERRNO, it must not clobber the private errno
+ when another thread holds the dl_load_lock.
+ 2. It is not obliged to detect and report errors at all.
+ 3. It's not really obliged to deliver a single atomic write
+ (though it may be preferable). */
+
+static inline void
+_dl_writev (int fd, const struct iovec *iov, size_t niov)
+{
+ INTERNAL_SYSCALL_DECL (err);
+ INTERNAL_SYSCALL (writev, err, 3, fd, iov, niov);
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/epoll_pwait.c b/REORG.TODO/sysdeps/unix/sysv/linux/epoll_pwait.c
new file mode 100644
index 0000000000..59391f409b
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/epoll_pwait.c
@@ -0,0 +1,59 @@
+/* Copyright (C) 2007-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <signal.h>
+#include <unistd.h>
+#include <sys/epoll.h>
+
+#include <sysdep-cancel.h>
+#include <sys/syscall.h>
+
+#ifdef __NR_epoll_pwait
+
+/* Wait for events on an epoll instance "epfd". Returns the number of
+ triggered events returned in "events" buffer. Or -1 in case of
+ error with the "errno" variable set to the specific error code. The
+ "events" parameter is a buffer that will contain triggered
+ events. The "maxevents" is the maximum number of events to be
+ returned ( usually size of "events" ). The "timeout" parameter
+ specifies the maximum wait time in milliseconds (-1 == infinite).
+ The thread's signal mask is temporarily and atomically replaced with
+ the one provided as parameter. */
+
+int epoll_pwait (int epfd, struct epoll_event *events,
+ int maxevents, int timeout,
+ const sigset_t *set)
+{
+ return SYSCALL_CANCEL (epoll_pwait, epfd, events, maxevents,
+ timeout, set, _NSIG / 8);
+}
+
+#else
+
+int epoll_pwait (int epfd, struct epoll_event *events,
+ int maxevents, int timeout,
+ const sigset_t *set)
+{
+ __set_errno (ENOSYS);
+ return -1;
+}
+stub_warning (epoll_pwait)
+
+#endif
+
+libc_hidden_def (epoll_pwait)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/epoll_wait.c b/REORG.TODO/sysdeps/unix/sysv/linux/epoll_wait.c
new file mode 100644
index 0000000000..eb6e6d3ace
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/epoll_wait.c
@@ -0,0 +1,32 @@
+/* Linux epoll_wait syscall implementation.
+ Copyright (C) 2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <stddef.h>
+#include <unistd.h>
+#include <sys/types.h>
+#include <sys/epoll.h>
+
+int
+epoll_wait (int epfd, struct epoll_event *events, int maxevents, int timeout)
+{
+#ifdef __NR_epoll_wait
+ return SYSCALL_CANCEL (epoll_wait, epfd, events, maxevents, timeout);
+#else
+ return epoll_pwait (epfd, events, maxevents, timeout, NULL);
+#endif
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/errqueue.h b/REORG.TODO/sysdeps/unix/sysv/linux/errqueue.h
new file mode 100644
index 0000000000..963eb33bb4
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/errqueue.h
@@ -0,0 +1,45 @@
+/* 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/>. */
+
+/* Linux version. */
+
+#ifndef _BITS_ERRQUEUE_H
+#define _BITS_ERRQUEUE_H 1
+
+#include <sys/types.h>
+#include <sys/socket.h>
+
+struct sock_extended_err
+ {
+ u_int32_t ee_errno;
+ u_int8_t ee_origin;
+ u_int8_t ee_type;
+ u_int8_t ee_code;
+ u_int8_t ee_pad;
+ u_int32_t ee_info;
+ u_int32_t ee_data;
+ };
+
+#define SO_EE_ORIGIN_NONE 0
+#define SO_EE_ORIGIN_LOCAL 1
+#define SO_EE_ORIGIN_ICMP 2
+#define SO_EE_ORIGIN_ICMP6 3
+
+#define SO_EE_OFFENDER(see) \
+ ((struct sockaddr *)(((struct sock_extended_err)(see))+1))
+
+#endif /* bits/errqueue.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/eventfd_read.c b/REORG.TODO/sysdeps/unix/sysv/linux/eventfd_read.c
new file mode 100644
index 0000000000..a909b7a19a
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/eventfd_read.c
@@ -0,0 +1,27 @@
+/* Copyright (C) 2007-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <unistd.h>
+#include <sys/eventfd.h>
+
+
+int
+eventfd_read (int fd, eventfd_t *value)
+{
+ return __read (fd, value, sizeof (eventfd_t)) != sizeof (eventfd_t) ? -1 : 0;
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/eventfd_write.c b/REORG.TODO/sysdeps/unix/sysv/linux/eventfd_write.c
new file mode 100644
index 0000000000..0142a81b90
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/eventfd_write.c
@@ -0,0 +1,28 @@
+/* Copyright (C) 2007-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <unistd.h>
+#include <sys/eventfd.h>
+
+
+int
+eventfd_write (int fd, eventfd_t value)
+{
+ return __write (fd, &value,
+ sizeof (eventfd_t)) != sizeof (eventfd_t) ? -1 : 0;
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/exit-thread.h b/REORG.TODO/sysdeps/unix/sysv/linux/exit-thread.h
new file mode 100644
index 0000000000..749db19813
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/exit-thread.h
@@ -0,0 +1,38 @@
+/* Call to terminate the current thread. Linux version.
+ Copyright (C) 2014-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+
+/* This causes the current thread to exit, without affecting other
+ threads in the process if there are any. If there are no other
+ threads left, then this has the effect of _exit (0). */
+
+static inline void __attribute__ ((noreturn, always_inline, unused))
+__exit_thread (void)
+{
+ /* Doing this in a loop is mostly just to satisfy the compiler that the
+ function really qualifies as noreturn. It also means that in some
+ pathological situation where the system call does not get made or does
+ not work, the thread will simply spin rather than running off the end
+ of the caller and doing unexpectedly strange things. */
+ while (1)
+ {
+ INTERNAL_SYSCALL_DECL (err);
+ INTERNAL_SYSCALL (exit, err, 1, 0);
+ }
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/faccessat.c b/REORG.TODO/sysdeps/unix/sysv/linux/faccessat.c
new file mode 100644
index 0000000000..5aecb10840
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/faccessat.c
@@ -0,0 +1,71 @@
+/* Test for access to file, relative to open directory. Linux version.
+ Copyright (C) 2006-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <fcntl.h>
+#include <stddef.h>
+#include <stdio.h>
+#include <string.h>
+#include <unistd.h>
+#include <sys/types.h>
+#include <alloca.h>
+#include <sysdep.h>
+
+
+int
+faccessat (int fd, const char *file, int mode, int flag)
+{
+ if (flag & ~(AT_SYMLINK_NOFOLLOW | AT_EACCESS))
+ return INLINE_SYSCALL_ERROR_RETURN_VALUE (EINVAL);
+
+ if ((flag == 0 || ((flag & ~AT_EACCESS) == 0 && ! __libc_enable_secure)))
+ return INLINE_SYSCALL (faccessat, 3, fd, file, mode);
+
+ struct stat64 stats;
+ if (__fxstatat64 (_STAT_VER, fd, file, &stats, flag & AT_SYMLINK_NOFOLLOW))
+ return -1;
+
+ mode &= (X_OK | W_OK | R_OK); /* Clear any bogus bits. */
+#if R_OK != S_IROTH || W_OK != S_IWOTH || X_OK != S_IXOTH
+# error Oops, portability assumptions incorrect.
+#endif
+
+ if (mode == F_OK)
+ return 0; /* The file exists. */
+
+ uid_t uid = (flag & AT_EACCESS) ? __geteuid () : __getuid ();
+
+ /* The super-user can read and write any file, and execute any file
+ that anyone can execute. */
+ if (uid == 0 && ((mode & X_OK) == 0
+ || (stats.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH))))
+ return 0;
+
+ int granted = (uid == stats.st_uid
+ ? (unsigned int) (stats.st_mode & (mode << 6)) >> 6
+ : (stats.st_gid == ((flag & AT_EACCESS)
+ ? __getegid () : __getgid ())
+ || __group_member (stats.st_gid))
+ ? (unsigned int) (stats.st_mode & (mode << 3)) >> 3
+ : (stats.st_mode & mode));
+
+ if (granted == mode)
+ return 0;
+
+ return INLINE_SYSCALL_ERROR_RETURN_VALUE (EACCES);
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/fallocate.c b/REORG.TODO/sysdeps/unix/sysv/linux/fallocate.c
new file mode 100644
index 0000000000..d8fedb9f0a
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/fallocate.c
@@ -0,0 +1,30 @@
+/* Copyright (C) 2007-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <fcntl.h>
+#include <sysdep-cancel.h>
+
+#ifndef __OFF_T_MATCHES_OFF64_T
+/* Reserve storage for the data of the file associated with FD. */
+int
+fallocate (int fd, int mode, __off_t offset, __off_t len)
+{
+ return SYSCALL_CANCEL (fallocate, fd, mode,
+ SYSCALL_LL (offset), SYSCALL_LL (len));
+}
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/fallocate64.c b/REORG.TODO/sysdeps/unix/sysv/linux/fallocate64.c
new file mode 100644
index 0000000000..a387a0fd95
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/fallocate64.c
@@ -0,0 +1,33 @@
+/* Copyright (C) 2007-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <fcntl.h>
+#include <sysdep-cancel.h>
+
+
+/* Reserve storage for the data of the file associated with FD. */
+int
+fallocate64 (int fd, int mode, __off64_t offset, __off64_t len)
+{
+ return SYSCALL_CANCEL (fallocate, fd, mode,
+ SYSCALL_LL64 (offset), SYSCALL_LL64 (len));
+}
+
+#ifdef __OFF_T_MATCHES_OFF64_T
+weak_alias (fallocate64, fallocate)
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/fatal-prepare.h b/REORG.TODO/sysdeps/unix/sysv/linux/fatal-prepare.h
new file mode 100644
index 0000000000..cd136b58cb
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/fatal-prepare.h
@@ -0,0 +1,24 @@
+/* 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 <pthread.h>
+
+/* We have to completely disable cancellation. assert() must not be a
+ cancellation point but the implementation uses write() etc. */
+#define FATAL_PREPARE \
+ __libc_ptf_call (__pthread_setcancelstate, \
+ (PTHREAD_CANCEL_DISABLE, NULL), 0)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/fchmodat.c b/REORG.TODO/sysdeps/unix/sysv/linux/fchmodat.c
new file mode 100644
index 0000000000..30fd28f38b
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/fchmodat.c
@@ -0,0 +1,40 @@
+/* Change the protections of file relative to open directory. Linux version.
+ Copyright (C) 2006-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <fcntl.h>
+#include <stddef.h>
+#include <stdio.h>
+#include <string.h>
+#include <unistd.h>
+#include <sys/types.h>
+#include <alloca.h>
+#include <sysdep.h>
+
+int
+fchmodat (int fd, const char *file, mode_t mode, int flag)
+{
+ if (flag & ~AT_SYMLINK_NOFOLLOW)
+ return INLINE_SYSCALL_ERROR_RETURN_VALUE (EINVAL);
+#ifndef __NR_lchmod /* Linux so far has no lchmod syscall. */
+ if (flag & AT_SYMLINK_NOFOLLOW)
+ return INLINE_SYSCALL_ERROR_RETURN_VALUE (ENOTSUP);
+#endif
+
+ return INLINE_SYSCALL (fchmodat, 3, fd, file, mode);
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/fcntl.c b/REORG.TODO/sysdeps/unix/sysv/linux/fcntl.c
new file mode 100644
index 0000000000..02f32525c7
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/fcntl.c
@@ -0,0 +1,85 @@
+/* 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 <assert.h>
+#include <errno.h>
+#include <sysdep-cancel.h> /* Must come before <fcntl.h>. */
+#include <fcntl.h>
+#include <stdarg.h>
+
+#include <sys/syscall.h>
+
+
+static int
+do_fcntl (int fd, int cmd, void *arg)
+{
+ if (cmd != F_GETOWN)
+ return INLINE_SYSCALL (fcntl, 3, fd, cmd, arg);
+
+ INTERNAL_SYSCALL_DECL (err);
+ struct f_owner_ex fex;
+ int res = INTERNAL_SYSCALL (fcntl, err, 3, fd, F_GETOWN_EX, &fex);
+ if (!INTERNAL_SYSCALL_ERROR_P (res, err))
+ return fex.type == F_OWNER_GID ? -fex.pid : fex.pid;
+
+ return INLINE_SYSCALL_ERROR_RETURN_VALUE (INTERNAL_SYSCALL_ERRNO (res,
+ err));
+}
+
+
+#ifndef NO_CANCELLATION
+int
+__fcntl_nocancel (int fd, int cmd, ...)
+{
+ va_list ap;
+ void *arg;
+
+ va_start (ap, cmd);
+ arg = va_arg (ap, void *);
+ va_end (ap);
+
+ return do_fcntl (fd, cmd, arg);
+}
+#endif
+
+
+int
+__libc_fcntl (int fd, int cmd, ...)
+{
+ va_list ap;
+ void *arg;
+
+ va_start (ap, cmd);
+ arg = va_arg (ap, void *);
+ va_end (ap);
+
+ if (SINGLE_THREAD_P || cmd != F_SETLKW)
+ return do_fcntl (fd, cmd, arg);
+
+ int oldtype = LIBC_CANCEL_ASYNC ();
+
+ int result = do_fcntl (fd, cmd, arg);
+
+ LIBC_CANCEL_RESET (oldtype);
+
+ return result;
+}
+libc_hidden_def (__libc_fcntl)
+
+weak_alias (__libc_fcntl, __fcntl)
+libc_hidden_weak (__fcntl)
+weak_alias (__libc_fcntl, fcntl)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/fd_to_filename.h b/REORG.TODO/sysdeps/unix/sysv/linux/fd_to_filename.h
new file mode 100644
index 0000000000..414a30f18a
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/fd_to_filename.h
@@ -0,0 +1,45 @@
+/* Query filename corresponding to an open FD. Linux version.
+ Copyright (C) 2001-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <stdlib.h>
+#include <string.h>
+#include <sys/stat.h>
+#include <_itoa.h>
+
+static inline const char *
+fd_to_filename (int fd)
+{
+ char *ret = malloc (30);
+
+ if (ret != NULL)
+ {
+ struct stat64 st;
+
+ *_fitoa_word (fd, __stpcpy (ret, "/proc/self/fd/"), 10, 0) = '\0';
+
+ /* We must make sure the file exists. */
+ if (__lxstat64 (_STAT_VER, ret, &st) < 0)
+ {
+ /* /proc is not mounted or something else happened. Don't
+ return the file name. */
+ free (ret);
+ ret = NULL;
+ }
+ }
+ return ret;
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/fdatasync.c b/REORG.TODO/sysdeps/unix/sysv/linux/fdatasync.c
new file mode 100644
index 0000000000..09a07fbb9e
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/fdatasync.c
@@ -0,0 +1,29 @@
+/* Synchronize a file's in-core state with storage device Linux
+ implementation.
+ Copyright (C) 2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <unistd.h>
+#include <sysdep-cancel.h>
+
+/* Synchronize at least the data part of a file with the underlying
+ media. */
+int
+fdatasync (int fd)
+{
+ return SYSCALL_CANCEL (fdatasync, fd);
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/fexecve.c b/REORG.TODO/sysdeps/unix/sysv/linux/fexecve.c
new file mode 100644
index 0000000000..30fa719b56
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/fexecve.c
@@ -0,0 +1,55 @@
+/* Copyright (C) 1994-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <stddef.h>
+#include <stdio.h>
+#include <unistd.h>
+#include <sys/stat.h>
+
+
+/* Execute the file FD refers to, overlaying the running program image.
+ ARGV and ENVP are passed to the new program, as for `execve'. */
+int
+fexecve (int fd, char *const argv[], char *const envp[])
+{
+ if (fd < 0 || argv == NULL || envp == NULL)
+ {
+ __set_errno (EINVAL);
+ return -1;
+ }
+
+ /* We use the /proc filesystem to get the information. If it is not
+ mounted we fail. */
+ char buf[sizeof "/proc/self/fd/" + sizeof (int) * 3];
+ __snprintf (buf, sizeof (buf), "/proc/self/fd/%d", fd);
+
+ /* We do not need the return value. */
+ __execve (buf, argv, envp);
+
+ int save = errno;
+
+ /* We come here only if the 'execve' call fails. Determine whether
+ /proc is mounted. If not we return ENOSYS. */
+ struct stat st;
+ if (stat ("/proc/self/fd", &st) != 0 && errno == ENOENT)
+ save = ENOSYS;
+
+ __set_errno (save);
+
+ return -1;
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/fips-private.h b/REORG.TODO/sysdeps/unix/sysv/linux/fips-private.h
new file mode 100644
index 0000000000..c9fe26695c
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/fips-private.h
@@ -0,0 +1,74 @@
+/* FIPS compliance status test for GNU/Linux systems.
+ Copyright (C) 2012-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _FIPS_PRIVATE_H
+#define _FIPS_PRIVATE_H
+
+#include <errno.h>
+#include <fcntl.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <not-cancel.h>
+#include <stdbool.h>
+
+/* Return true if FIPS mode is enabled. See
+ sysdeps/generic/fips-private.h for more information. */
+
+static bool
+fips_enabled_p (void)
+{
+ static enum
+ {
+ FIPS_UNTESTED = 0,
+ FIPS_ENABLED = 1,
+ FIPS_DISABLED = -1,
+ FIPS_TEST_FAILED = -2
+ } checked;
+
+ if (checked == FIPS_UNTESTED)
+ {
+ int fd = open_not_cancel_2 ("/proc/sys/crypto/fips_enabled", O_RDONLY);
+
+ if (fd != -1)
+ {
+ /* This is more than enough, the file contains a single integer. */
+ char buf[32];
+ ssize_t n;
+ n = TEMP_FAILURE_RETRY (read_not_cancel (fd, buf, sizeof (buf) - 1));
+ close_not_cancel_no_status (fd);
+
+ if (n > 0)
+ {
+ /* Terminate the string. */
+ buf[n] = '\0';
+
+ char *endp;
+ long int res = strtol (buf, &endp, 10);
+ if (endp != buf && (*endp == '\0' || *endp == '\n'))
+ checked = (res > 0) ? FIPS_ENABLED : FIPS_DISABLED;
+ }
+ }
+
+ if (checked == FIPS_UNTESTED)
+ checked = FIPS_TEST_FAILED;
+ }
+
+ return checked == FIPS_ENABLED;
+}
+
+#endif /* _FIPS_PRIVATE_H */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/fpathconf.c b/REORG.TODO/sysdeps/unix/sysv/linux/fpathconf.c
new file mode 100644
index 0000000000..4d0ed8ec43
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/fpathconf.c
@@ -0,0 +1,52 @@
+/* Get file-specific information about descriptor FD. Linux version.
+ Copyright (C) 1991-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <fcntl.h>
+#include "pathconf.h"
+
+static long int posix_fpathconf (int fd, int name);
+
+/* Define this first, so it can be inlined. */
+#define __fpathconf static posix_fpathconf
+#include <sysdeps/posix/fpathconf.c>
+
+
+/* Get file-specific information about descriptor FD. */
+long int
+__fpathconf (int fd, int name)
+{
+ struct statfs fsbuf;
+
+ switch (name)
+ {
+ case _PC_LINK_MAX:
+ return __statfs_link_max (__fstatfs (fd, &fsbuf), &fsbuf, NULL, fd);
+
+ case _PC_FILESIZEBITS:
+ return __statfs_filesize_max (__fstatfs (fd, &fsbuf), &fsbuf);
+
+ case _PC_2_SYMLINKS:
+ return __statfs_symlinks (__fstatfs (fd, &fsbuf), &fsbuf);
+
+ case _PC_CHOWN_RESTRICTED:
+ return __statfs_chown_restricted (__fstatfs (fd, &fsbuf), &fsbuf);
+
+ default:
+ return posix_fpathconf (fd, name);
+ }
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/fstatfs64.c b/REORG.TODO/sysdeps/unix/sysv/linux/fstatfs64.c
new file mode 100644
index 0000000000..3be70c057a
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/fstatfs64.c
@@ -0,0 +1,92 @@
+/* Return information about the filesystem on which FD resides.
+ Copyright (C) 1996-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <string.h>
+#include <stddef.h>
+#include <sysdep.h>
+#include <kernel_stat.h>
+
+/* Hide the prototypes for __fstatfs and fstatfs so that GCC will not
+ complain about the different function signatures if they are aliased
+ to __fstat64. If STATFS_IS_STATFS64 is not zero then the statfs and
+ statfs64 structures have an identical layout but different type names. */
+
+#if STATFS_IS_STATFS64
+# define __fstatfs __fstatfs_disable
+# define fstatfs fstatfs_disable
+#endif
+#include <sys/statfs.h>
+
+#include <kernel-features.h>
+
+/* Defined in statfs64.c. */
+extern int __no_statfs64 attribute_hidden;
+
+/* Return information about the filesystem on which FD resides. */
+int
+__fstatfs64 (int fd, struct statfs64 *buf)
+{
+#ifdef __NR_fstatfs64
+# if __ASSUME_STATFS64 == 0
+ if (! __no_statfs64)
+# endif
+ {
+ int result = INLINE_SYSCALL (fstatfs64, 3, fd, sizeof (*buf), buf);
+
+# if __ASSUME_STATFS64 == 0
+ if (result == 0 || errno != ENOSYS)
+# endif
+ return result;
+
+# if __ASSUME_STATFS64 == 0
+ __no_statfs64 = 1;
+# endif
+ }
+#endif
+
+#if __ASSUME_STATFS64 == 0
+ struct statfs buf32;
+
+ if (__fstatfs (fd, &buf32) < 0)
+ return -1;
+
+ buf->f_type = buf32.f_type;
+ buf->f_bsize = buf32.f_bsize;
+ buf->f_blocks = buf32.f_blocks;
+ buf->f_bfree = buf32.f_bfree;
+ buf->f_bavail = buf32.f_bavail;
+ buf->f_files = buf32.f_files;
+ buf->f_ffree = buf32.f_ffree;
+ buf->f_fsid = buf32.f_fsid;
+ buf->f_namelen = buf32.f_namelen;
+ buf->f_frsize = buf32.f_frsize;
+ memcpy (buf->f_spare, buf32.f_spare, sizeof (buf32.f_spare));
+
+ return 0;
+#endif
+}
+weak_alias (__fstatfs64, fstatfs64)
+
+#undef __fstatfs
+#undef fstatfs
+
+#if STATFS_IS_STATFS64
+weak_alias (__fstatfs64, __fstatfs)
+weak_alias (__fstatfs64, fstatfs)
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/fstatvfs.c b/REORG.TODO/sysdeps/unix/sysv/linux/fstatvfs.c
new file mode 100644
index 0000000000..e07a5b9f3d
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/fstatvfs.c
@@ -0,0 +1,44 @@
+/* Copyright (C) 1998-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
+
+ 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 <stddef.h>
+#include <sys/stat.h>
+#include <sys/statfs.h>
+#include <sys/statvfs.h>
+
+extern void __internal_statvfs (const char *name, struct statvfs *buf,
+ struct statfs *fsbuf, int fd);
+
+
+int
+__fstatvfs (int fd, struct statvfs *buf)
+{
+ struct statfs fsbuf;
+
+ /* Get as much information as possible from the system. */
+ if (__fstatfs (fd, &fsbuf) < 0)
+ return -1;
+
+ /* Convert the result. */
+ __internal_statvfs (NULL, buf, &fsbuf, fd);
+
+ /* We signal success if the statfs call succeeded. */
+ return 0;
+}
+weak_alias (__fstatvfs, fstatvfs)
+libc_hidden_weak (fstatvfs)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/fstatvfs64.c b/REORG.TODO/sysdeps/unix/sysv/linux/fstatvfs64.c
new file mode 100644
index 0000000000..02a0d7ee42
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/fstatvfs64.c
@@ -0,0 +1,68 @@
+/* Return information about the filesystem on which FD resides.
+ Copyright (C) 1996-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <string.h>
+#include <sys/stat.h>
+#include <sys/statfs.h>
+#include <sys/statvfs.h>
+#include <kernel-features.h>
+
+
+extern void __internal_statvfs64 (const char *name, struct statvfs64 *buf,
+ struct statfs64 *fsbuf, int fd);
+
+
+/* Return information about the filesystem on which FD resides. */
+int
+__fstatvfs64 (int fd, struct statvfs64 *buf)
+{
+ struct statfs64 fsbuf;
+ int res = __fstatfs64 (fd, &fsbuf);
+
+#ifndef __ASSUME_STATFS64
+ if (res < 0 && errno == ENOSYS)
+ {
+ struct statvfs buf32;
+
+ res = fstatvfs (fd, &buf32);
+ if (res == 0)
+ {
+ buf->f_bsize = buf32.f_bsize;
+ buf->f_frsize = buf32.f_frsize;
+ buf->f_blocks = buf32.f_blocks;
+ buf->f_bfree = buf32.f_bfree;
+ buf->f_bavail = buf32.f_bavail;
+ buf->f_files = buf32.f_files;
+ buf->f_ffree = buf32.f_ffree;
+ buf->f_favail = buf32.f_favail;
+ buf->f_fsid = buf32.f_fsid;
+ buf->f_flag = buf32.f_flag;
+ buf->f_namemax = buf32.f_namemax;
+ memcpy (buf->__f_spare, buf32.__f_spare, sizeof (buf32.__f_spare));
+ }
+ }
+#endif
+
+ if (res == 0)
+ /* Convert the result. */
+ __internal_statvfs64 (NULL, buf, &fsbuf, fd);
+
+ return res;
+}
+weak_alias (__fstatvfs64, fstatvfs64)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/fsync.c b/REORG.TODO/sysdeps/unix/sysv/linux/fsync.c
new file mode 100644
index 0000000000..ac4827bd5e
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/fsync.c
@@ -0,0 +1,28 @@
+/* Synchronize a file's in-core state with storage device Linux
+ implementation.
+ Copyright (C) 2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <unistd.h>
+#include <sysdep-cancel.h>
+
+/* Make all changes done to FD actually appear on disk. */
+int
+fsync (int fd)
+{
+ return SYSCALL_CANCEL (fsync, fd);
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/ftime.c b/REORG.TODO/sysdeps/unix/sysv/linux/ftime.c
new file mode 100644
index 0000000000..5a5949f608
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/ftime.c
@@ -0,0 +1,3 @@
+/* Linux defines the ftime system call but doesn't actually implement
+ it. Use the BSD implementation. */
+#include <sysdeps/unix/bsd/ftime.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/ftruncate.c b/REORG.TODO/sysdeps/unix/sysv/linux/ftruncate.c
new file mode 100644
index 0000000000..1068f2abe4
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/ftruncate.c
@@ -0,0 +1,35 @@
+/* Copyright (C) 2016-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <unistd.h>
+#include <sysdep.h>
+#include <errno.h>
+
+#ifndef __OFF_T_MATCHES_OFF64_T
+/* Truncate the file FD refers to LENGTH bytes. */
+int
+__ftruncate (int fd, off_t length)
+{
+# ifndef __NR_ftruncate
+ return INLINE_SYSCALL_CALL (ftruncate64, fd,
+ __ALIGNMENT_ARG SYSCALL_LL (length));
+# else
+ return INLINE_SYSCALL_CALL (ftruncate, fd, length);
+# endif
+}
+weak_alias (__ftruncate, ftruncate)
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/ftruncate64.c b/REORG.TODO/sysdeps/unix/sysv/linux/ftruncate64.c
new file mode 100644
index 0000000000..a8e0fd6ba0
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/ftruncate64.c
@@ -0,0 +1,38 @@
+/* Copyright (C) 1997-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <unistd.h>
+#include <sysdep.h>
+#include <errno.h>
+
+#ifndef __NR_ftruncate64
+# define __NR_ftruncate64 __NR_ftruncate
+#endif
+
+/* Truncate the file referenced by FD to LENGTH bytes. */
+int
+__ftruncate64 (int fd, off64_t length)
+{
+ return INLINE_SYSCALL_CALL (ftruncate64, fd,
+ __ALIGNMENT_ARG SYSCALL_LL64 (length));
+}
+weak_alias (__ftruncate64, ftruncate64)
+
+#ifdef __OFF_T_MATCHES_OFF64_T
+weak_alias (__ftruncate64, __ftruncate)
+weak_alias (__ftruncate64, ftruncate);
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/futex-internal.h b/REORG.TODO/sysdeps/unix/sysv/linux/futex-internal.h
new file mode 100644
index 0000000000..1386807f5b
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/futex-internal.h
@@ -0,0 +1,251 @@
+/* futex operations for glibc-internal use. Linux version.
+ Copyright (C) 2014-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef FUTEX_INTERNAL_H
+#define FUTEX_INTERNAL_H
+
+#include <sysdeps/nptl/futex-internal.h>
+#include <errno.h>
+#include <lowlevellock-futex.h>
+#include <nptl/pthreadP.h>
+
+/* See sysdeps/nptl/futex-internal.h for documentation; this file only
+ contains Linux-specific comments.
+
+ The Linux kernel treats provides absolute timeouts based on the
+ CLOCK_REALTIME clock and relative timeouts measured against the
+ CLOCK_MONOTONIC clock.
+
+ We expect a Linux kernel version of 2.6.22 or more recent (since this
+ version, EINTR is not returned on spurious wake-ups anymore). */
+
+/* FUTEX_SHARED is always supported by the Linux kernel. */
+static __always_inline int
+futex_supports_pshared (int pshared)
+{
+ if (__glibc_likely (pshared == PTHREAD_PROCESS_PRIVATE))
+ return 0;
+ else if (pshared == PTHREAD_PROCESS_SHARED)
+ return 0;
+ else
+ return EINVAL;
+}
+
+/* The Linux kernel supports relative timeouts measured against the
+ CLOCK_MONOTONIC clock. */
+static __always_inline bool
+futex_supports_exact_relative_timeouts (void)
+{
+ return true;
+}
+
+/* See sysdeps/nptl/futex-internal.h for details. */
+static __always_inline int
+futex_wait (unsigned int *futex_word, unsigned int expected, int private)
+{
+ int err = lll_futex_timed_wait (futex_word, expected, NULL, private);
+ switch (err)
+ {
+ case 0:
+ case -EAGAIN:
+ case -EINTR:
+ return -err;
+
+ case -ETIMEDOUT: /* Cannot have happened as we provided no timeout. */
+ case -EFAULT: /* Must have been caused by a glibc or application bug. */
+ case -EINVAL: /* Either due to wrong alignment or due to the timeout not
+ being normalized. Must have been caused by a glibc or
+ application bug. */
+ case -ENOSYS: /* Must have been caused by a glibc bug. */
+ /* No other errors are documented at this time. */
+ default:
+ futex_fatal_error ();
+ }
+}
+
+/* See sysdeps/nptl/futex-internal.h for details. */
+static __always_inline int
+futex_wait_cancelable (unsigned int *futex_word, unsigned int expected,
+ int private)
+{
+ int oldtype;
+ oldtype = __pthread_enable_asynccancel ();
+ int err = lll_futex_timed_wait (futex_word, expected, NULL, private);
+ __pthread_disable_asynccancel (oldtype);
+ switch (err)
+ {
+ case 0:
+ case -EAGAIN:
+ case -EINTR:
+ return -err;
+
+ case -ETIMEDOUT: /* Cannot have happened as we provided no timeout. */
+ case -EFAULT: /* Must have been caused by a glibc or application bug. */
+ case -EINVAL: /* Either due to wrong alignment or due to the timeout not
+ being normalized. Must have been caused by a glibc or
+ application bug. */
+ case -ENOSYS: /* Must have been caused by a glibc bug. */
+ /* No other errors are documented at this time. */
+ default:
+ futex_fatal_error ();
+ }
+}
+
+/* See sysdeps/nptl/futex-internal.h for details. */
+static __always_inline int
+futex_reltimed_wait (unsigned int *futex_word, unsigned int expected,
+ const struct timespec *reltime, int private)
+{
+ int err = lll_futex_timed_wait (futex_word, expected, reltime, private);
+ switch (err)
+ {
+ case 0:
+ case -EAGAIN:
+ case -EINTR:
+ case -ETIMEDOUT:
+ return -err;
+
+ case -EFAULT: /* Must have been caused by a glibc or application bug. */
+ case -EINVAL: /* Either due to wrong alignment or due to the timeout not
+ being normalized. Must have been caused by a glibc or
+ application bug. */
+ case -ENOSYS: /* Must have been caused by a glibc bug. */
+ /* No other errors are documented at this time. */
+ default:
+ futex_fatal_error ();
+ }
+}
+
+/* See sysdeps/nptl/futex-internal.h for details. */
+static __always_inline int
+futex_reltimed_wait_cancelable (unsigned int *futex_word,
+ unsigned int expected,
+ const struct timespec *reltime, int private)
+{
+ int oldtype;
+ oldtype = __pthread_enable_asynccancel ();
+ int err = lll_futex_timed_wait (futex_word, expected, reltime, private);
+ __pthread_disable_asynccancel (oldtype);
+ switch (err)
+ {
+ case 0:
+ case -EAGAIN:
+ case -EINTR:
+ case -ETIMEDOUT:
+ return -err;
+
+ case -EFAULT: /* Must have been caused by a glibc or application bug. */
+ case -EINVAL: /* Either due to wrong alignment or due to the timeout not
+ being normalized. Must have been caused by a glibc or
+ application bug. */
+ case -ENOSYS: /* Must have been caused by a glibc bug. */
+ /* No other errors are documented at this time. */
+ default:
+ futex_fatal_error ();
+ }
+}
+
+/* See sysdeps/nptl/futex-internal.h for details. */
+static __always_inline int
+futex_abstimed_wait (unsigned int *futex_word, unsigned int expected,
+ const struct timespec *abstime, int private)
+{
+ /* Work around the fact that the kernel rejects negative timeout values
+ despite them being valid. */
+ if (__glibc_unlikely ((abstime != NULL) && (abstime->tv_sec < 0)))
+ return ETIMEDOUT;
+ int err = lll_futex_timed_wait_bitset (futex_word, expected, abstime,
+ FUTEX_CLOCK_REALTIME, private);
+ switch (err)
+ {
+ case 0:
+ case -EAGAIN:
+ case -EINTR:
+ case -ETIMEDOUT:
+ return -err;
+
+ case -EFAULT: /* Must have been caused by a glibc or application bug. */
+ case -EINVAL: /* Either due to wrong alignment or due to the timeout not
+ being normalized. Must have been caused by a glibc or
+ application bug. */
+ case -ENOSYS: /* Must have been caused by a glibc bug. */
+ /* No other errors are documented at this time. */
+ default:
+ futex_fatal_error ();
+ }
+}
+
+/* See sysdeps/nptl/futex-internal.h for details. */
+static __always_inline int
+futex_abstimed_wait_cancelable (unsigned int *futex_word,
+ unsigned int expected,
+ const struct timespec *abstime, int private)
+{
+ /* Work around the fact that the kernel rejects negative timeout values
+ despite them being valid. */
+ if (__glibc_unlikely ((abstime != NULL) && (abstime->tv_sec < 0)))
+ return ETIMEDOUT;
+ int oldtype;
+ oldtype = __pthread_enable_asynccancel ();
+ int err = lll_futex_timed_wait_bitset (futex_word, expected, abstime,
+ FUTEX_CLOCK_REALTIME, private);
+ __pthread_disable_asynccancel (oldtype);
+ switch (err)
+ {
+ case 0:
+ case -EAGAIN:
+ case -EINTR:
+ case -ETIMEDOUT:
+ return -err;
+
+ case -EFAULT: /* Must have been caused by a glibc or application bug. */
+ case -EINVAL: /* Either due to wrong alignment or due to the timeout not
+ being normalized. Must have been caused by a glibc or
+ application bug. */
+ case -ENOSYS: /* Must have been caused by a glibc bug. */
+ /* No other errors are documented at this time. */
+ default:
+ futex_fatal_error ();
+ }
+}
+
+/* See sysdeps/nptl/futex-internal.h for details. */
+static __always_inline void
+futex_wake (unsigned int *futex_word, int processes_to_wake, int private)
+{
+ int res = lll_futex_wake (futex_word, processes_to_wake, private);
+ /* No error. Ignore the number of woken processes. */
+ if (res >= 0)
+ return;
+ switch (res)
+ {
+ case -EFAULT: /* Could have happened due to memory reuse. */
+ case -EINVAL: /* Could be either due to incorrect alignment (a bug in
+ glibc or in the application) or due to memory being
+ reused for a PI futex. We cannot distinguish between the
+ two causes, and one of them is correct use, so we do not
+ act in this case. */
+ return;
+ case -ENOSYS: /* Must have been caused by a glibc bug. */
+ /* No other errors are documented at this time. */
+ default:
+ futex_fatal_error ();
+ }
+}
+
+#endif /* futex-internal.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/futimens.c b/REORG.TODO/sysdeps/unix/sysv/linux/futimens.c
new file mode 100644
index 0000000000..b4985e034c
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/futimens.c
@@ -0,0 +1,38 @@
+/* Change access and modification times of open file. Linux version.
+ Copyright (C) 2007-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <fcntl.h>
+#include <string.h>
+#include <time.h>
+#include <sysdep.h>
+
+
+/* Change the access time of the file associated with FD to TSP[0] and
+ the modification time of FILE to TSP[1].
+
+ Starting with 2.6.22 the Linux kernel has the utimensat syscall which
+ can be used to implement futimens. */
+int
+futimens (int fd, const struct timespec tsp[2])
+{
+ if (fd < 0)
+ return INLINE_SYSCALL_ERROR_RETURN_VALUE (EBADF);
+ /* Avoid implicit array coercion in syscall macros. */
+ return INLINE_SYSCALL (utimensat, 4, fd, NULL, &tsp[0], 0);
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/futimes.c b/REORG.TODO/sysdeps/unix/sysv/linux/futimes.c
new file mode 100644
index 0000000000..af79cb1508
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/futimes.c
@@ -0,0 +1,51 @@
+/* futimes -- change access and modification times of open file. Linux version.
+ Copyright (C) 2002-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU 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 <string.h>
+#include <time.h>
+#include <utime.h>
+#include <sys/time.h>
+#include <_itoa.h>
+#include <fcntl.h>
+
+
+/* Change the access time of the file associated with FD to TVP[0] and
+ the modification time of FILE to TVP[1].
+
+ Starting with 2.6.22 the Linux kernel has the utimensat syscall which
+ can be used to implement futimes. */
+int
+__futimes (int fd, const struct timeval tvp[2])
+{
+ /* The utimensat system call expects timespec not timeval. */
+ struct timespec ts[2];
+ if (tvp != NULL)
+ {
+ if (tvp[0].tv_usec < 0 || tvp[0].tv_usec >= 1000000
+ || tvp[1].tv_usec < 0 || tvp[1].tv_usec >= 1000000)
+ return INLINE_SYSCALL_ERROR_RETURN_VALUE (EINVAL);
+
+ TIMEVAL_TO_TIMESPEC (&tvp[0], &ts[0]);
+ TIMEVAL_TO_TIMESPEC (&tvp[1], &ts[1]);
+ }
+
+ return INLINE_SYSCALL (utimensat, 4, fd, NULL, tvp ? &ts : NULL, 0);
+}
+weak_alias (__futimes, futimes)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/futimesat.c b/REORG.TODO/sysdeps/unix/sysv/linux/futimesat.c
new file mode 100644
index 0000000000..88d11941a8
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/futimesat.c
@@ -0,0 +1,38 @@
+/* Copyright (C) 2005-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <fcntl.h>
+#include <stddef.h>
+#include <stdio.h>
+#include <string.h>
+#include <utime.h>
+#include <sys/time.h>
+#include <sysdep.h>
+
+
+/* Change the access time of FILE relative to FD to TVP[0] and
+ the modification time of FILE to TVP[1]. */
+int
+futimesat (int fd, const char *file, const struct timeval tvp[2])
+{
+ if (file == NULL)
+ return __futimes (fd, tvp);
+
+ /* Avoid implicit array coercion in syscall macros. */
+ return INLINE_SYSCALL (futimesat, 3, fd, file, &tvp[0]);
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/fxstat.c b/REORG.TODO/sysdeps/unix/sysv/linux/fxstat.c
new file mode 100644
index 0000000000..b7b84264d6
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/fxstat.c
@@ -0,0 +1,61 @@
+/* fxstat using old-style Unix fstat system call.
+ Copyright (C) 1991-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+/* Ho hum, if xstat == xstat64 we must get rid of the prototype or gcc
+ will complain since they don't strictly match. */
+#define __fxstat64 __fxstat64_disable
+
+#include <errno.h>
+#include <stddef.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <kernel_stat.h>
+
+#include <sysdep.h>
+#include <sys/syscall.h>
+
+#include <xstatconv.h>
+
+/* Get information about the file FD in BUF. */
+int
+__fxstat (int vers, int fd, struct stat *buf)
+{
+ if (vers == _STAT_VER_KERNEL)
+ return INLINE_SYSCALL (fstat, 2, fd, buf);
+
+#ifdef STAT_IS_KERNEL_STAT
+ return INLINE_SYSCALL_ERROR_RETURN_VALUE (EINVAL);
+#else
+ struct kernel_stat kbuf;
+ int result;
+
+ result = INLINE_SYSCALL (fstat, 2, fd, &kbuf);
+ if (result == 0)
+ result = __xstat_conv (vers, &kbuf, buf);
+
+ return result;
+#endif
+}
+
+hidden_def (__fxstat)
+weak_alias (__fxstat, _fxstat);
+#if XSTAT_IS_XSTAT64
+#undef __fxstat64
+strong_alias (__fxstat, __fxstat64);
+hidden_ver (__fxstat, __fxstat64)
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/fxstat64.c b/REORG.TODO/sysdeps/unix/sysv/linux/fxstat64.c
new file mode 100644
index 0000000000..8a59d86d31
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/fxstat64.c
@@ -0,0 +1,53 @@
+/* fxstat64 using Linux fstat64 system call.
+ Copyright (C) 1997-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <stddef.h>
+#include <sys/stat.h>
+#include <kernel_stat.h>
+
+#include <sysdep.h>
+#include <sys/syscall.h>
+
+#include <kernel-features.h>
+
+/* Get information about the file FD in BUF. */
+
+int
+___fxstat64 (int vers, int fd, struct stat64 *buf)
+{
+ int result;
+ result = INLINE_SYSCALL (fstat64, 2, fd, buf);
+#if defined _HAVE_STAT64___ST_INO && !__ASSUME_ST_INO_64_BIT
+ if (__builtin_expect (!result, 1) && buf->__st_ino != (__ino_t) buf->st_ino)
+ buf->st_ino = buf->__st_ino;
+#endif
+ return result;
+}
+
+#include <shlib-compat.h>
+
+#if SHLIB_COMPAT(libc, GLIBC_2_1, GLIBC_2_2)
+versioned_symbol (libc, ___fxstat64, __fxstat64, GLIBC_2_2);
+strong_alias (___fxstat64, __old__fxstat64)
+compat_symbol (libc, __old__fxstat64, __fxstat64, GLIBC_2_1);
+hidden_ver (___fxstat64, __fxstat64)
+#else
+strong_alias (___fxstat64, __fxstat64)
+hidden_def (__fxstat64)
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/fxstatat.c b/REORG.TODO/sysdeps/unix/sysv/linux/fxstatat.c
new file mode 100644
index 0000000000..23f17eaf70
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/fxstatat.c
@@ -0,0 +1,65 @@
+/* Copyright (C) 2005-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+/* Ho hum, if fxstatat == fxstatat64 we must get rid of the prototype or gcc
+ will complain since they don't strictly match. */
+#define __fxstatat64 __fxstatat64_disable
+
+#include <errno.h>
+#include <fcntl.h>
+#include <stddef.h>
+#include <stdio.h>
+#include <string.h>
+#include <sys/stat.h>
+#include <kernel_stat.h>
+
+#include <sysdep.h>
+#include <sys/syscall.h>
+
+#include <xstatconv.h>
+
+/* Get information about the file NAME in BUF. */
+int
+__fxstatat (int vers, int fd, const char *file, struct stat *st, int flag)
+{
+ int result;
+ INTERNAL_SYSCALL_DECL (err);
+#ifdef STAT_IS_KERNEL_STAT
+# define kst (*st)
+#else
+ struct kernel_stat kst;
+#endif
+
+ result = INTERNAL_SYSCALL (newfstatat, err, 4, fd, file, &kst, flag);
+ if (!__builtin_expect (INTERNAL_SYSCALL_ERROR_P (result, err), 1))
+ {
+#ifdef STAT_IS_KERNEL_STAT
+ return 0;
+#else
+ return __xstat_conv (vers, &kst, st);
+#endif
+ }
+ else
+ return INLINE_SYSCALL_ERROR_RETURN_VALUE (INTERNAL_SYSCALL_ERRNO (result,
+ err));
+}
+libc_hidden_def (__fxstatat)
+#if XSTAT_IS_XSTAT64
+# undef __fxstatat64
+strong_alias (__fxstatat, __fxstatat64);
+libc_hidden_def (__fxstatat64)
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/fxstatat64.c b/REORG.TODO/sysdeps/unix/sysv/linux/fxstatat64.c
new file mode 100644
index 0000000000..ef1e132c11
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/fxstatat64.c
@@ -0,0 +1,47 @@
+/* Copyright (C) 2005-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <fcntl.h>
+#include <stddef.h>
+#include <stdio.h>
+#include <string.h>
+#include <sys/stat.h>
+#include <kernel_stat.h>
+
+#include <sysdep.h>
+#include <sys/syscall.h>
+
+/* Get information about the file NAME in BUF. */
+
+int
+__fxstatat64 (int vers, int fd, const char *file, struct stat64 *st, int flag)
+{
+ if (__glibc_unlikely (vers != _STAT_VER_LINUX))
+ return INLINE_SYSCALL_ERROR_RETURN_VALUE (EINVAL);
+
+ int result;
+ INTERNAL_SYSCALL_DECL (err);
+
+ result = INTERNAL_SYSCALL (fstatat64, err, 4, fd, file, st, flag);
+ if (!__builtin_expect (INTERNAL_SYSCALL_ERROR_P (result, err), 1))
+ return 0;
+ else
+ return INLINE_SYSCALL_ERROR_RETURN_VALUE (INTERNAL_SYSCALL_ERRNO (result,
+ err));
+}
+libc_hidden_def (__fxstatat64)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/gai_sigqueue.c b/REORG.TODO/sysdeps/unix/sysv/linux/gai_sigqueue.c
new file mode 100644
index 0000000000..0f7b459b5e
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/gai_sigqueue.c
@@ -0,0 +1,52 @@
+/* Copyright (C) 2001-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <netdb.h>
+#include <signal.h>
+#include <string.h>
+#include <unistd.h>
+
+#include <sysdep.h>
+#include <sys/syscall.h>
+
+#include "gai_misc.h"
+
+#ifdef __NR_rt_sigqueueinfo
+
+/* Return any pending signal or wait for one for the given time. */
+int
+internal_function
+__gai_sigqueue (int sig, const union sigval val, pid_t caller_pid)
+{
+ siginfo_t info;
+
+ /* First, clear the siginfo_t structure, so that we don't pass our
+ stack content to other tasks. */
+ memset (&info, 0, sizeof (siginfo_t));
+ /* We must pass the information about the data in a siginfo_t value. */
+ info.si_signo = sig;
+ info.si_code = SI_ASYNCNL;
+ info.si_pid = caller_pid;
+ info.si_uid = __getuid ();
+ info.si_value = val;
+
+ return INLINE_SYSCALL (rt_sigqueueinfo, 3, info.si_pid, sig, &info);
+}
+#else
+# include <resolv/gai_sigqueue.c>
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/generic/Makefile b/REORG.TODO/sysdeps/unix/sysv/linux/generic/Makefile
new file mode 100644
index 0000000000..7e27e79772
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/generic/Makefile
@@ -0,0 +1,3 @@
+ifeq ($(subdir),misc)
+sysdep_routines += epoll_create inotify_init
+endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/generic/README b/REORG.TODO/sysdeps/unix/sysv/linux/generic/README
new file mode 100644
index 0000000000..301a6107e1
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/generic/README
@@ -0,0 +1,11 @@
+This hierarchy supports Linux systems using the new
+asm-generic/unistd.h, which removes many familiar old syscalls. For
+example, to implement open(), newer Linux architectures require glibc
+to invoke the __NR_openat syscall with AT_FDCWD. This hierarchy
+provides all those implementations.
+
+It also provides support for 32-bit platforms using the 64-bit kernel
+syscall APIs, as the 32-bit ones are no longer provided. Note that
+newer ILP32 environments (x32 or AArch64:ILP32, for example) are
+converting to use more 64-bit types in kernel syscalls, so that aspect
+of this support is in more flux as of this writing.
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/generic/____longjmp_chk.c b/REORG.TODO/sysdeps/unix/sysv/linux/generic/____longjmp_chk.c
new file mode 100644
index 0000000000..1c0f040976
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/generic/____longjmp_chk.c
@@ -0,0 +1,57 @@
+/* Copyright (C) 2011-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
+
+ 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 <jmpbuf-offsets.h>
+#include <sysdep.h>
+#include <setjmp.h>
+#include <signal.h>
+#include <stdio.h>
+#include <stackinfo.h>
+
+#ifdef _STACK_GROWS_DOWN
+#define called_from(this, saved) ((this) < (saved))
+#else
+#define called_from(this, saved) ((this) > (saved))
+#endif
+
+extern void ____longjmp_chk (__jmp_buf __env, int __val)
+ __attribute__ ((__noreturn__));
+
+void ____longjmp_chk (__jmp_buf env, int val)
+{
+ void *this_frame = __builtin_frame_address (0);
+ void *saved_frame = JB_FRAME_ADDRESS (env);
+ INTERNAL_SYSCALL_DECL (err);
+ stack_t ss;
+
+ /* If "env" is from a frame that called us, we're all set. */
+ if (called_from(this_frame, saved_frame))
+ __longjmp (env, val);
+
+ /* If we can't get the current stack state, give up and do the longjmp. */
+ if (INTERNAL_SYSCALL (sigaltstack, err, 2, NULL, &ss) != 0)
+ __longjmp (env, val);
+
+ /* If we we are executing on the alternate stack and within the
+ bounds, do the longjmp. */
+ if (ss.ss_flags == SS_ONSTACK &&
+ (this_frame >= ss.ss_sp && this_frame < (ss.ss_sp + ss.ss_size)))
+ __longjmp (env, val);
+
+ __fortify_fail ("longjmp causes uninitialized stack frame");
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/generic/bits/fcntl.h b/REORG.TODO/sysdeps/unix/sysv/linux/generic/bits/fcntl.h
new file mode 100644
index 0000000000..0767467f82
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/generic/bits/fcntl.h
@@ -0,0 +1,56 @@
+/* O_*, F_*, FD_* bit values for the generic Linux ABI.
+ Copyright (C) 2011-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _FCNTL_H
+# error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
+#endif
+
+#include <bits/wordsize.h>
+
+#if __WORDSIZE == 64
+# define __O_LARGEFILE 0
+#endif
+
+struct flock
+ {
+ short int l_type; /* Type of lock: F_RDLCK, F_WRLCK, or F_UNLCK. */
+ short int l_whence; /* Where `l_start' is relative to (like `lseek'). */
+#ifndef __USE_FILE_OFFSET64
+ __off_t l_start; /* Offset where the lock begins. */
+ __off_t l_len; /* Size of the locked area; zero means until EOF. */
+#else
+ __off64_t l_start; /* Offset where the lock begins. */
+ __off64_t l_len; /* Size of the locked area; zero means until EOF. */
+#endif
+ __pid_t l_pid; /* Process holding the lock. */
+ };
+
+#ifdef __USE_LARGEFILE64
+struct flock64
+ {
+ short int l_type; /* Type of lock: F_RDLCK, F_WRLCK, or F_UNLCK. */
+ short int l_whence; /* Where `l_start' is relative to (like `lseek'). */
+ __off64_t l_start; /* Offset where the lock begins. */
+ __off64_t l_len; /* Size of the locked area; zero means until EOF. */
+ __pid_t l_pid; /* Process holding the lock. */
+ };
+#endif
+
+/* Include generic Linux declarations. */
+#include <bits/fcntl-linux.h>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/generic/bits/msq.h b/REORG.TODO/sysdeps/unix/sysv/linux/generic/bits/msq.h
new file mode 100644
index 0000000000..fc80473af6
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/generic/bits/msq.h
@@ -0,0 +1,84 @@
+/* Copyright (C) 2011-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_MSG_H
+# error "Never use <bits/msq.h> directly; include <sys/msg.h> instead."
+#endif
+
+#include <bits/types.h>
+#include <bits/wordsize.h>
+
+/* Define options for message queue functions. */
+#define MSG_NOERROR 010000 /* no error if message is too big */
+#ifdef __USE_GNU
+# define MSG_EXCEPT 020000 /* recv any msg except of specified type */
+# define MSG_COPY 040000 /* copy (not remove) all queue messages */
+#endif
+
+/* Types used in the structure definition. */
+typedef unsigned long int msgqnum_t;
+typedef unsigned long int msglen_t;
+
+/* Structure of record for one message inside the kernel.
+ The type `struct msg' is opaque. */
+struct msqid_ds
+{
+ struct ipc_perm msg_perm; /* structure describing operation permission */
+ __time_t msg_stime; /* time of last msgsnd command */
+#if __WORDSIZE == 32
+ unsigned long int __glibc_reserved1;
+#endif
+ __time_t msg_rtime; /* time of last msgrcv command */
+#if __WORDSIZE == 32
+ unsigned long int __glibc_reserved2;
+#endif
+ __time_t msg_ctime; /* time of last change */
+#if __WORDSIZE == 32
+ unsigned long int __glibc_reserved3;
+#endif
+ unsigned long int __msg_cbytes; /* current number of bytes on queue */
+ msgqnum_t msg_qnum; /* number of messages currently on queue */
+ msglen_t msg_qbytes; /* max number of bytes allowed on queue */
+ __pid_t msg_lspid; /* pid of last msgsnd() */
+ __pid_t msg_lrpid; /* pid of last msgrcv() */
+ unsigned long int __glibc_reserved4;
+ unsigned long int __glibc_reserved5;
+};
+
+#ifdef __USE_MISC
+
+# define msg_cbytes __msg_cbytes
+
+/* ipcs ctl commands */
+# define MSG_STAT 11
+# define MSG_INFO 12
+
+/* buffer for msgctl calls IPC_INFO, MSG_INFO */
+struct msginfo
+ {
+ int msgpool;
+ int msgmap;
+ int msgmax;
+ int msgmnb;
+ int msgmni;
+ int msgssz;
+ int msgtql;
+ unsigned short int msgseg;
+ };
+
+#endif /* __USE_MISC */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/generic/bits/sem.h b/REORG.TODO/sysdeps/unix/sysv/linux/generic/bits/sem.h
new file mode 100644
index 0000000000..718ee74403
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/generic/bits/sem.h
@@ -0,0 +1,92 @@
+/* Copyright (C) 2011-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_SEM_H
+# error "Never include <bits/sem.h> directly; use <sys/sem.h> instead."
+#endif
+
+#include <sys/types.h>
+#include <bits/wordsize.h>
+
+/* Flags for `semop'. */
+#define SEM_UNDO 0x1000 /* undo the operation on exit */
+
+/* Commands for `semctl'. */
+#define GETPID 11 /* get sempid */
+#define GETVAL 12 /* get semval */
+#define GETALL 13 /* get all semval's */
+#define GETNCNT 14 /* get semncnt */
+#define GETZCNT 15 /* get semzcnt */
+#define SETVAL 16 /* set semval */
+#define SETALL 17 /* set all semval's */
+
+
+/* Data structure describing a set of semaphores. */
+struct semid_ds
+{
+ struct ipc_perm sem_perm; /* operation permission struct */
+ __time_t sem_otime; /* last semop() time */
+#if __WORDSIZE == 32
+ unsigned long int __glibc_reserved1;
+#endif
+ __time_t sem_ctime; /* last time changed by semctl() */
+#if __WORDSIZE == 32
+ unsigned long int __glibc_reserved2;
+#endif
+ unsigned long int sem_nsems; /* number of semaphores in set */
+ unsigned long int __glibc_reserved3;
+ unsigned long int __glibc_reserved4;
+};
+
+/* The user should define a union like the following to use it for arguments
+ for `semctl'.
+
+ union semun
+ {
+ int val; <= value for SETVAL
+ struct semid_ds *buf; <= buffer for IPC_STAT & IPC_SET
+ unsigned short int *array; <= array for GETALL & SETALL
+ struct seminfo *__buf; <= buffer for IPC_INFO
+ };
+
+ Previous versions of this file used to define this union but this is
+ incorrect. One can test the macro _SEM_SEMUN_UNDEFINED to see whether
+ one must define the union or not. */
+#define _SEM_SEMUN_UNDEFINED 1
+
+#ifdef __USE_MISC
+
+/* ipcs ctl cmds */
+# define SEM_STAT 18
+# define SEM_INFO 19
+
+struct seminfo
+{
+ int semmap;
+ int semmni;
+ int semmns;
+ int semmnu;
+ int semmsl;
+ int semopm;
+ int semume;
+ int semusz;
+ int semvmx;
+ int semaem;
+};
+
+#endif /* __USE_MISC */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/generic/bits/shm.h b/REORG.TODO/sysdeps/unix/sysv/linux/generic/bits/shm.h
new file mode 100644
index 0000000000..057b85c601
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/generic/bits/shm.h
@@ -0,0 +1,111 @@
+/* Copyright (C) 2011-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_SHM_H
+# error "Never include <bits/shm.h> directly; use <sys/shm.h> instead."
+#endif
+
+#include <bits/types.h>
+#include <bits/wordsize.h>
+
+/* Permission flag for shmget. */
+#define SHM_R 0400 /* or S_IRUGO from <linux/stat.h> */
+#define SHM_W 0200 /* or S_IWUGO from <linux/stat.h> */
+
+/* Flags for `shmat'. */
+#define SHM_RDONLY 010000 /* attach read-only else read-write */
+#define SHM_RND 020000 /* round attach address to SHMLBA */
+#define SHM_REMAP 040000 /* take-over region on attach */
+#define SHM_EXEC 0100000 /* execution access */
+
+/* Commands for `shmctl'. */
+#define SHM_LOCK 11 /* lock segment (root only) */
+#define SHM_UNLOCK 12 /* unlock segment (root only) */
+
+__BEGIN_DECLS
+
+/* Segment low boundary address multiple. */
+#define SHMLBA (__getpagesize ())
+extern int __getpagesize (void) __THROW __attribute__ ((__const__));
+
+
+/* Type to count number of attaches. */
+typedef unsigned long int shmatt_t;
+
+/* Data structure describing a shared memory segment. */
+struct shmid_ds
+ {
+ struct ipc_perm shm_perm; /* operation permission struct */
+ size_t shm_segsz; /* size of segment in bytes */
+ __time_t shm_atime; /* time of last shmat() */
+#if __WORDSIZE == 32
+ unsigned long int __glibc_reserved1;
+#endif
+ __time_t shm_dtime; /* time of last shmdt() */
+#if __WORDSIZE == 32
+ unsigned long int __glibc_reserved2;
+#endif
+ __time_t shm_ctime; /* time of last change by shmctl() */
+#if __WORDSIZE == 32
+ unsigned long int __glibc_reserved3;
+#endif
+ __pid_t shm_cpid; /* pid of creator */
+ __pid_t shm_lpid; /* pid of last shmop */
+ shmatt_t shm_nattch; /* number of current attaches */
+ unsigned long int __glibc_reserved4;
+ unsigned long int __glibc_reserved5;
+ };
+
+#ifdef __USE_MISC
+
+/* ipcs ctl commands */
+# define SHM_STAT 13
+# define SHM_INFO 14
+
+/* shm_mode upper byte flags */
+# define SHM_DEST 01000 /* segment will be destroyed on last detach */
+# define SHM_LOCKED 02000 /* segment will not be swapped */
+# define SHM_HUGETLB 04000 /* segment is mapped via hugetlb */
+# define SHM_NORESERVE 010000 /* don't check for reservations */
+
+struct shminfo
+ {
+ unsigned long int shmmax;
+ unsigned long int shmmin;
+ unsigned long int shmmni;
+ unsigned long int shmseg;
+ unsigned long int shmall;
+ unsigned long int __glibc_reserved1;
+ unsigned long int __glibc_reserved2;
+ unsigned long int __glibc_reserved3;
+ unsigned long int __glibc_reserved4;
+ };
+
+struct shm_info
+ {
+ int used_ids;
+ unsigned long int shm_tot; /* total allocated shm */
+ unsigned long int shm_rss; /* total resident shm */
+ unsigned long int shm_swp; /* total swapped shm */
+ unsigned long int swap_attempts;
+ unsigned long int swap_successes;
+ };
+
+#endif /* __USE_MISC */
+
+__END_DECLS
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/generic/bits/stat.h b/REORG.TODO/sysdeps/unix/sysv/linux/generic/bits/stat.h
new file mode 100644
index 0000000000..6b2ee71e28
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/generic/bits/stat.h
@@ -0,0 +1,171 @@
+/* Copyright (C) 2011-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#if !defined _SYS_STAT_H && !defined _FCNTL_H
+# error "Never include <bits/stat.h> directly; use <sys/stat.h> instead."
+#endif
+
+#ifndef _BITS_STAT_H
+#define _BITS_STAT_H 1
+
+#include <endian.h>
+#include <bits/wordsize.h>
+
+/* 64-bit libc uses the kernel's 'struct stat', accessed via the
+ stat() syscall; 32-bit libc uses the kernel's 'struct stat64'
+ and accesses it via the stat64() syscall. All the various
+ APIs offered by libc use the kernel shape for their struct stat
+ structure; the only difference is that 32-bit programs not
+ using __USE_FILE_OFFSET64 only see the low 32 bits of some
+ of the fields (specifically st_ino, st_size, and st_blocks). */
+#define _STAT_VER_KERNEL 0
+#define _STAT_VER_LINUX 0
+#define _STAT_VER _STAT_VER_KERNEL
+
+/* Versions of the `xmknod' interface. */
+#define _MKNOD_VER_LINUX 0
+
+#if defined __USE_FILE_OFFSET64
+# define __field64(type, type64, name) type64 name
+#elif __WORDSIZE == 64
+# define __field64(type, type64, name) type name
+#elif __BYTE_ORDER == __LITTLE_ENDIAN
+# define __field64(type, type64, name) \
+ type name __attribute__((__aligned__ (__alignof__ (type64)))); int __##name##_pad
+#else
+# define __field64(type, type64, name) \
+ int __##name##_pad __attribute__((__aligned__ (__alignof__ (type64)))); type name
+#endif
+
+struct stat
+ {
+ __dev_t st_dev; /* Device. */
+ __field64(__ino_t, __ino64_t, st_ino); /* File serial number. */
+ __mode_t st_mode; /* File mode. */
+ __nlink_t st_nlink; /* Link count. */
+ __uid_t st_uid; /* User ID of the file's owner. */
+ __gid_t st_gid; /* Group ID of the file's group.*/
+ __dev_t st_rdev; /* Device number, if device. */
+ __dev_t __pad1;
+ __field64(__off_t, __off64_t, st_size); /* Size of file, in bytes. */
+ __blksize_t st_blksize; /* Optimal block size for I/O. */
+ int __pad2;
+ __field64(__blkcnt_t, __blkcnt64_t, st_blocks); /* 512-byte blocks */
+#ifdef __USE_XOPEN2K8
+ /* Nanosecond resolution timestamps are stored in a format
+ equivalent to 'struct timespec'. This is the type used
+ whenever possible but the Unix namespace rules do not allow the
+ identifier 'timespec' to appear in the <sys/stat.h> header.
+ Therefore we have to handle the use of this header in strictly
+ standard-compliant sources special. */
+ struct timespec st_atim; /* Time of last access. */
+ struct timespec st_mtim; /* Time of last modification. */
+ struct timespec st_ctim; /* Time of last status change. */
+# define st_atime st_atim.tv_sec /* Backward compatibility. */
+# define st_mtime st_mtim.tv_sec
+# define st_ctime st_ctim.tv_sec
+#else
+ __time_t st_atime; /* Time of last access. */
+ unsigned long int st_atimensec; /* Nscecs of last access. */
+ __time_t st_mtime; /* Time of last modification. */
+ unsigned long int st_mtimensec; /* Nsecs of last modification. */
+ __time_t st_ctime; /* Time of last status change. */
+ unsigned long int st_ctimensec; /* Nsecs of last status change. */
+#endif
+ int __glibc_reserved[2];
+ };
+
+#undef __field64
+
+#ifdef __USE_LARGEFILE64
+struct stat64
+ {
+ __dev_t st_dev; /* Device. */
+ __ino64_t st_ino; /* File serial number. */
+ __mode_t st_mode; /* File mode. */
+ __nlink_t st_nlink; /* Link count. */
+ __uid_t st_uid; /* User ID of the file's owner. */
+ __gid_t st_gid; /* Group ID of the file's group.*/
+ __dev_t st_rdev; /* Device number, if device. */
+ __dev_t __pad1;
+ __off64_t st_size; /* Size of file, in bytes. */
+ __blksize_t st_blksize; /* Optimal block size for I/O. */
+ int __pad2;
+ __blkcnt64_t st_blocks; /* Nr. 512-byte blocks allocated. */
+#ifdef __USE_XOPEN2K8
+ /* Nanosecond resolution timestamps are stored in a format
+ equivalent to 'struct timespec'. This is the type used
+ whenever possible but the Unix namespace rules do not allow the
+ identifier 'timespec' to appear in the <sys/stat.h> header.
+ Therefore we have to handle the use of this header in strictly
+ standard-compliant sources special. */
+ struct timespec st_atim; /* Time of last access. */
+ struct timespec st_mtim; /* Time of last modification. */
+ struct timespec st_ctim; /* Time of last status change. */
+#else
+ __time_t st_atime; /* Time of last access. */
+ unsigned long int st_atimensec; /* Nscecs of last access. */
+ __time_t st_mtime; /* Time of last modification. */
+ unsigned long int st_mtimensec; /* Nsecs of last modification. */
+ __time_t st_ctime; /* Time of last status change. */
+ unsigned long int st_ctimensec; /* Nsecs of last status change. */
+#endif
+ int __glibc_reserved[2];
+ };
+#endif
+
+/* Tell code we have these members. */
+#define _STATBUF_ST_BLKSIZE
+#define _STATBUF_ST_RDEV
+/* Nanosecond resolution time values are supported. */
+#define _STATBUF_ST_NSEC
+
+/* Encoding of the file mode. */
+
+#define __S_IFMT 0170000 /* These bits determine file type. */
+
+/* File types. */
+#define __S_IFDIR 0040000 /* Directory. */
+#define __S_IFCHR 0020000 /* Character device. */
+#define __S_IFBLK 0060000 /* Block device. */
+#define __S_IFREG 0100000 /* Regular file. */
+#define __S_IFIFO 0010000 /* FIFO. */
+#define __S_IFLNK 0120000 /* Symbolic link. */
+#define __S_IFSOCK 0140000 /* Socket. */
+
+/* POSIX.1b objects. Note that these macros always evaluate to zero. But
+ they do it by enforcing the correct use of the macros. */
+#define __S_TYPEISMQ(buf) ((buf)->st_mode - (buf)->st_mode)
+#define __S_TYPEISSEM(buf) ((buf)->st_mode - (buf)->st_mode)
+#define __S_TYPEISSHM(buf) ((buf)->st_mode - (buf)->st_mode)
+
+/* Protection bits. */
+
+#define __S_ISUID 04000 /* Set user ID on execution. */
+#define __S_ISGID 02000 /* Set group ID on execution. */
+#define __S_ISVTX 01000 /* Save swapped text after use (sticky). */
+#define __S_IREAD 0400 /* Read by owner. */
+#define __S_IWRITE 0200 /* Write by owner. */
+#define __S_IEXEC 0100 /* Execute by owner. */
+
+#ifdef __USE_ATFILE
+# define UTIME_NOW ((1l << 30) - 1l)
+# define UTIME_OMIT ((1l << 30) - 2l)
+#endif
+
+#endif /* bits/stat.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/generic/bits/statfs.h b/REORG.TODO/sysdeps/unix/sysv/linux/generic/bits/statfs.h
new file mode 100644
index 0000000000..8dc8f0aa79
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/generic/bits/statfs.h
@@ -0,0 +1,86 @@
+/* Copyright (C) 2011-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_STATFS_H
+# error "Never include <bits/statfs.h> directly; use <sys/statfs.h> instead."
+#endif
+
+#include <endian.h>
+#include <bits/types.h>
+#include <bits/wordsize.h>
+
+/* 64-bit libc uses the kernel's 'struct statfs', accessed via the
+ statfs() syscall; 32-bit libc uses the kernel's 'struct statfs64'
+ and accesses it via the statfs64() syscall. All the various
+ APIs offered by libc use the kernel shape for their struct statfs
+ structure; the only difference is that 32-bit programs not
+ using __USE_FILE_OFFSET64 only see the low 32 bits of some
+ of the fields (the __fsblkcnt_t and __fsfilcnt_t fields). */
+
+#if defined __USE_FILE_OFFSET64
+# define __field64(type, type64, name) type64 name
+#elif __WORDSIZE == 64
+# define __field64(type, type64, name) type name
+#elif __BYTE_ORDER == __LITTLE_ENDIAN
+# define __field64(type, type64, name) \
+ type name __attribute__((__aligned__ (__alignof__ (type64)))); int __##name##_pad
+#else
+# define __field64(type, type64, name) \
+ int __##name##_pad __attribute__((__aligned__ (__alignof__ (type64)))); type name
+#endif
+
+struct statfs
+ {
+ __SWORD_TYPE f_type;
+ __SWORD_TYPE f_bsize;
+ __field64(__fsblkcnt_t, __fsblkcnt64_t, f_blocks);
+ __field64(__fsblkcnt_t, __fsblkcnt64_t, f_bfree);
+ __field64(__fsblkcnt_t, __fsblkcnt64_t, f_bavail);
+ __field64(__fsfilcnt_t, __fsfilcnt64_t, f_files);
+ __field64(__fsfilcnt_t, __fsfilcnt64_t, f_ffree);
+ __fsid_t f_fsid;
+ __SWORD_TYPE f_namelen;
+ __SWORD_TYPE f_frsize;
+ __SWORD_TYPE f_flags;
+ __SWORD_TYPE f_spare[4];
+ };
+
+#undef __field64
+
+#ifdef __USE_LARGEFILE64
+struct statfs64
+ {
+ __SWORD_TYPE f_type;
+ __SWORD_TYPE f_bsize;
+ __fsblkcnt64_t f_blocks;
+ __fsblkcnt64_t f_bfree;
+ __fsblkcnt64_t f_bavail;
+ __fsfilcnt64_t f_files;
+ __fsfilcnt64_t f_ffree;
+ __fsid_t f_fsid;
+ __SWORD_TYPE f_namelen;
+ __SWORD_TYPE f_frsize;
+ __SWORD_TYPE f_flags;
+ __SWORD_TYPE f_spare[4];
+ };
+#endif
+
+/* Tell code we have these members. */
+#define _STATFS_F_NAMELEN
+#define _STATFS_F_FRSIZE
+#define _STATFS_F_FLAGS
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/generic/bits/typesizes.h b/REORG.TODO/sysdeps/unix/sysv/linux/generic/bits/typesizes.h
new file mode 100644
index 0000000000..49e911ef8c
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/generic/bits/typesizes.h
@@ -0,0 +1,84 @@
+/* bits/typesizes.h -- underlying types for *_t. For the generic Linux ABI.
+ Copyright (C) 2011-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _BITS_TYPES_H
+# error "Never include <bits/typesizes.h> directly; use <sys/types.h> instead."
+#endif
+
+#ifndef _BITS_TYPESIZES_H
+#define _BITS_TYPESIZES_H 1
+
+/* See <bits/types.h> for the meaning of these macros. This file exists so
+ that <bits/types.h> need not vary across different GNU platforms. */
+
+#define __DEV_T_TYPE __UQUAD_TYPE
+#define __UID_T_TYPE __U32_TYPE
+#define __GID_T_TYPE __U32_TYPE
+#define __INO_T_TYPE __ULONGWORD_TYPE
+#define __INO64_T_TYPE __UQUAD_TYPE
+#define __MODE_T_TYPE __U32_TYPE
+#define __NLINK_T_TYPE __U32_TYPE
+#define __OFF_T_TYPE __SLONGWORD_TYPE
+#define __OFF64_T_TYPE __SQUAD_TYPE
+#define __PID_T_TYPE __S32_TYPE
+#define __RLIM_T_TYPE __ULONGWORD_TYPE
+#define __RLIM64_T_TYPE __UQUAD_TYPE
+#define __BLKCNT_T_TYPE __SLONGWORD_TYPE
+#define __BLKCNT64_T_TYPE __SQUAD_TYPE
+#define __FSBLKCNT_T_TYPE __ULONGWORD_TYPE
+#define __FSBLKCNT64_T_TYPE __UQUAD_TYPE
+#define __FSFILCNT_T_TYPE __ULONGWORD_TYPE
+#define __FSFILCNT64_T_TYPE __UQUAD_TYPE
+#define __FSWORD_T_TYPE __SWORD_TYPE
+#define __ID_T_TYPE __U32_TYPE
+#define __CLOCK_T_TYPE __SLONGWORD_TYPE
+#define __TIME_T_TYPE __SLONGWORD_TYPE
+#define __USECONDS_T_TYPE __U32_TYPE
+#define __SUSECONDS_T_TYPE __SLONGWORD_TYPE
+#define __DADDR_T_TYPE __S32_TYPE
+#define __KEY_T_TYPE __S32_TYPE
+#define __CLOCKID_T_TYPE __S32_TYPE
+#define __TIMER_T_TYPE void *
+#define __BLKSIZE_T_TYPE __S32_TYPE
+#define __FSID_T_TYPE struct { int __val[2]; }
+#define __SSIZE_T_TYPE __SWORD_TYPE
+#define __SYSCALL_SLONG_TYPE __SLONGWORD_TYPE
+#define __SYSCALL_ULONG_TYPE __ULONGWORD_TYPE
+#define __CPU_MASK_TYPE __ULONGWORD_TYPE
+
+#ifdef __LP64__
+/* Tell the libc code that off_t and off64_t are actually the same type
+ for all ABI purposes, even if possibly expressed as different base types
+ for C type-checking purposes. */
+# define __OFF_T_MATCHES_OFF64_T 1
+
+/* Same for ino_t and ino64_t. */
+# define __INO_T_MATCHES_INO64_T 1
+
+/* And for __rlim_t and __rlim64_t. */
+# define __RLIM_T_MATCHES_RLIM64_T 1
+#else
+# define __RLIM_T_MATCHES_RLIM64_T 0
+#endif
+
+/* Number of descriptors that can fit in an `fd_set'. */
+#define __FD_SETSIZE 1024
+
+
+#endif /* bits/typesizes.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/generic/brk.c b/REORG.TODO/sysdeps/unix/sysv/linux/generic/brk.c
new file mode 100644
index 0000000000..7838ecdb9b
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/generic/brk.c
@@ -0,0 +1,45 @@
+/* Copyright (C) 2011-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <unistd.h>
+#include <sysdep.h>
+
+/* This must be initialized data because commons can't have aliases. */
+void *__curbrk = 0;
+
+/* Old braindamage in GCC's crtstuff.c requires this symbol in an attempt
+ to work around different old braindamage in the old Linux ELF dynamic
+ linker. */
+weak_alias (__curbrk, ___brk_addr)
+
+int
+__brk (void *addr)
+{
+ INTERNAL_SYSCALL_DECL (err);
+
+ __curbrk = (void *) INTERNAL_SYSCALL (brk, err, 1, addr);
+ if (__curbrk < addr)
+ {
+ __set_errno (ENOMEM);
+ return -1;
+ }
+
+ return 0;
+}
+weak_alias (__brk, brk)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/generic/chmod.c b/REORG.TODO/sysdeps/unix/sysv/linux/generic/chmod.c
new file mode 100644
index 0000000000..41d6d9851f
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/generic/chmod.c
@@ -0,0 +1,31 @@
+/* Copyright (C) 2011-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
+
+ 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 <stddef.h>
+#include <fcntl.h>
+#include <sys/stat.h>
+#include <sys/types.h>
+
+/* Change the protections of FILE to MODE. */
+int
+__chmod (const char *file, mode_t mode)
+{
+ return INLINE_SYSCALL (fchmodat, 3, AT_FDCWD, file, mode);
+}
+weak_alias (__chmod, chmod)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/generic/chown.c b/REORG.TODO/sysdeps/unix/sysv/linux/generic/chown.c
new file mode 100644
index 0000000000..1917f44f65
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/generic/chown.c
@@ -0,0 +1,32 @@
+/* Copyright (C) 2011-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
+
+ 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 <stddef.h>
+#include <unistd.h>
+#include <fcntl.h>
+#include <sys/types.h>
+
+/* Change the owner and group of FILE. */
+int
+__chown (const char *file, uid_t owner, gid_t group)
+{
+ return INLINE_SYSCALL (fchownat, 5, AT_FDCWD, file, owner, group, 0);
+}
+libc_hidden_def (__chown)
+weak_alias (__chown, chown)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/generic/dl-origin.c b/REORG.TODO/sysdeps/unix/sysv/linux/generic/dl-origin.c
new file mode 100644
index 0000000000..04ea9044be
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/generic/dl-origin.c
@@ -0,0 +1,81 @@
+/* Find path of executable.
+ Copyright (C) 1998-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
+
+ 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 <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+#include <fcntl.h>
+#include <sys/param.h>
+#include <ldsodefs.h>
+#include <sysdep.h>
+
+#include <dl-dst.h>
+
+/* On Linux >= 2.1 systems which have the dcache implementation we can get
+ the path of the application from the /proc/self/exe symlink. Try this
+ first and fall back on the generic method if necessary. */
+
+const char *
+_dl_get_origin (void)
+{
+ char linkval[PATH_MAX];
+ char *result;
+ int len;
+ INTERNAL_SYSCALL_DECL (err);
+
+ len = INTERNAL_SYSCALL (readlinkat, err, 4, AT_FDCWD, "/proc/self/exe",
+ linkval, sizeof (linkval));
+ if (! INTERNAL_SYSCALL_ERROR_P (len, err) && len > 0 && linkval[0] != '[')
+ {
+ /* We can use this value. */
+ assert (linkval[0] == '/');
+ while (len > 1 && linkval[len - 1] != '/')
+ --len;
+ result = (char *) malloc (len + 1);
+ if (result == NULL)
+ result = (char *) -1;
+ else if (len == 1)
+ memcpy (result, "/", 2);
+ else
+ *((char *) __mempcpy (result, linkval, len - 1)) = '\0';
+ }
+ else
+ {
+ result = (char *) -1;
+ /* We use the environment variable LD_ORIGIN_PATH. If it is set make
+ a copy and strip out trailing slashes. */
+ if (GLRO(dl_origin_path) != NULL)
+ {
+ size_t len = strlen (GLRO(dl_origin_path));
+ result = (char *) malloc (len + 1);
+ if (result == NULL)
+ result = (char *) -1;
+ else
+ {
+ char *cp = __mempcpy (result, GLRO(dl_origin_path), len);
+ while (cp > result + 1 && cp[-1] == '/')
+ --cp;
+ *cp = '\0';
+ }
+ }
+ }
+
+ return result;
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/generic/dup2.c b/REORG.TODO/sysdeps/unix/sysv/linux/generic/dup2.c
new file mode 100644
index 0000000000..c86b85bff1
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/generic/dup2.c
@@ -0,0 +1,37 @@
+/* Copyright (C) 2011-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
+
+ 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 <limits.h>
+#include <unistd.h>
+
+/* Duplicate FD to FD2, closing the old FD2 and making FD2 be
+ open the same file as FD is. Return FD2 or -1. */
+int
+__dup2 (int fd, int fd2)
+{
+ /* For the degenerate case, check if the fd is valid (by trying to
+ get the file status flags) and return it, or else return EBADF. */
+ if (fd == fd2)
+ return __libc_fcntl (fd, F_GETFL, 0) < 0 ? -1 : fd;
+
+ return INLINE_SYSCALL (dup3, 3, fd, fd2, 0);
+}
+libc_hidden_def (__dup2)
+weak_alias (__dup2, dup2)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/generic/epoll_create.c b/REORG.TODO/sysdeps/unix/sysv/linux/generic/epoll_create.c
new file mode 100644
index 0000000000..6034bccca5
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/generic/epoll_create.c
@@ -0,0 +1,38 @@
+/* Copyright (C) 2011-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
+
+ 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 <stddef.h>
+#include <errno.h>
+#include <unistd.h>
+#include <sys/types.h>
+#include <sys/epoll.h>
+
+libc_hidden_proto (epoll_create)
+
+int
+epoll_create (int size)
+{
+ if (size <= 0)
+ {
+ __set_errno (EINVAL);
+ return -1;
+ }
+
+ return INLINE_SYSCALL (epoll_create1, 1, 0);
+}
+libc_hidden_def (epoll_create)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/generic/futimesat.c b/REORG.TODO/sysdeps/unix/sysv/linux/generic/futimesat.c
new file mode 100644
index 0000000000..afc580a8c6
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/generic/futimesat.c
@@ -0,0 +1,51 @@
+/* Copyright (C) 2005-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
+
+ 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 <stddef.h>
+#include <stdio.h>
+#include <string.h>
+#include <utime.h>
+#include <sys/time.h>
+#include <sysdep.h>
+
+
+/* Change the access time of FILE relative to FD to TVP[0] and
+ the modification time of FILE to TVP[1]. */
+int
+futimesat (int fd, const char *file, const struct timeval tvp[2])
+{
+ struct timespec tsp[2];
+ int result;
+
+ if (tvp)
+ {
+ if (tvp[0].tv_usec >= 1000000 || tvp[0].tv_usec < 0 ||
+ tvp[1].tv_usec >= 1000000 || tvp[1].tv_usec < 0)
+ {
+ __set_errno (EINVAL);
+ return -1;
+ }
+ TIMEVAL_TO_TIMESPEC (&tvp[0], &tsp[0]);
+ TIMEVAL_TO_TIMESPEC (&tvp[1], &tsp[1]);
+ }
+
+ result = INLINE_SYSCALL (utimensat, 4, fd, file, tvp ? tsp : NULL, 0);
+ return result;
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/generic/getdents.c b/REORG.TODO/sysdeps/unix/sysv/linux/generic/getdents.c
new file mode 100644
index 0000000000..14dbbc71a0
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/generic/getdents.c
@@ -0,0 +1 @@
+/* Defined in getdents64.c */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/generic/getdents64.c b/REORG.TODO/sysdeps/unix/sysv/linux/generic/getdents64.c
new file mode 100644
index 0000000000..2334201bc4
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/generic/getdents64.c
@@ -0,0 +1,37 @@
+/* Copyright (C) 2011-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
+
+ 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 <stddef.h>
+#include <stdint.h>
+#include <unistd.h>
+#include <sys/types.h>
+#include <bits/wordsize.h>
+
+#include <sysdep.h>
+#include <sys/syscall.h>
+
+/* The kernel struct linux_dirent64 matches the 'struct getdents64' type. */
+ssize_t
+__getdents64 (int fd, char *buf, size_t nbytes)
+{
+ return INLINE_SYSCALL (getdents64, 3, fd, buf, nbytes);
+}
+
+#if __WORDSIZE == 64
+strong_alias (__getdents64, __getdents)
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/generic/inotify_init.c b/REORG.TODO/sysdeps/unix/sysv/linux/generic/inotify_init.c
new file mode 100644
index 0000000000..cbf2034d99
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/generic/inotify_init.c
@@ -0,0 +1,32 @@
+/* Copyright (C) 2011-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
+
+ 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 <stddef.h>
+#include <errno.h>
+#include <unistd.h>
+#include <sys/types.h>
+#include <sys/inotify.h>
+
+libc_hidden_proto (inotify_init)
+
+int
+inotify_init (void)
+{
+ return INLINE_SYSCALL (inotify_init1, 1, 0);
+}
+libc_hidden_def (inotify_init)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/generic/kernel_stat.h b/REORG.TODO/sysdeps/unix/sysv/linux/generic/kernel_stat.h
new file mode 100644
index 0000000000..574907b0da
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/generic/kernel_stat.h
@@ -0,0 +1,30 @@
+/* Copyright (C) 2011-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
+
+ 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 <bits/wordsize.h>
+
+#define STAT_IS_KERNEL_STAT 1
+
+/* We provide separate 32-bit API versions that check for EOVERFLOW. */
+#if __WORDSIZE == 64
+# define XSTAT_IS_XSTAT64 1
+#else
+# define XSTAT_IS_XSTAT64 0
+#endif
+
+#define STATFS_IS_STATFS64 0
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/generic/lchown.c b/REORG.TODO/sysdeps/unix/sysv/linux/generic/lchown.c
new file mode 100644
index 0000000000..c69a85fb1c
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/generic/lchown.c
@@ -0,0 +1,32 @@
+/* Copyright (C) 2011-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
+
+ 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 <stddef.h>
+#include <unistd.h>
+#include <fcntl.h>
+#include <sys/types.h>
+
+/* Change the owner and group of FILE. */
+int
+__lchown (const char *file, uid_t owner, gid_t group)
+{
+ return INLINE_SYSCALL (fchownat, 5, AT_FDCWD, file, owner, group,
+ AT_SYMLINK_NOFOLLOW);
+}
+weak_alias (__lchown, lchown)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/generic/link.c b/REORG.TODO/sysdeps/unix/sysv/linux/generic/link.c
new file mode 100644
index 0000000000..d2e5ed968f
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/generic/link.c
@@ -0,0 +1,31 @@
+/* Copyright (C) 2011-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
+
+ 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 <stddef.h>
+#include <unistd.h>
+#include <fcntl.h>
+
+/* Make a link to FROM called TO. */
+int
+__link (const char *from, const char *to)
+{
+ return INLINE_SYSCALL (linkat, 5, AT_FDCWD, from, AT_FDCWD, to, 0);
+}
+
+weak_alias (__link, link)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/generic/lxstat.c b/REORG.TODO/sysdeps/unix/sysv/linux/generic/lxstat.c
new file mode 100644
index 0000000000..becc17c531
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/generic/lxstat.c
@@ -0,0 +1,48 @@
+/* Copyright (C) 2011-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
+
+ 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/>. */
+
+/* Ignore prototype to avoid error if we alias __lxstat and __lxstat64. */
+#define __lxstat64 __lxstat64_disable
+
+#include <errno.h>
+#include <stddef.h>
+#include <fcntl.h>
+#include <sys/stat.h>
+#include <kernel_stat.h>
+
+#include <sysdep.h>
+#include <sys/syscall.h>
+
+/* Get information about the file NAME in BUF. */
+int
+__lxstat (int vers, const char *name, struct stat *buf)
+{
+ if (vers == _STAT_VER_KERNEL)
+ return INLINE_SYSCALL (newfstatat, 4, AT_FDCWD, name, buf,
+ AT_SYMLINK_NOFOLLOW);
+ errno = EINVAL;
+ return -1;
+}
+
+hidden_def (__lxstat)
+weak_alias (__lxstat, _lxstat);
+#if XSTAT_IS_XSTAT64
+#undef __lxstat64
+strong_alias (__lxstat, __lxstat64);
+hidden_ver (__lxstat, __lxstat64)
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/generic/mkdir.c b/REORG.TODO/sysdeps/unix/sysv/linux/generic/mkdir.c
new file mode 100644
index 0000000000..6571d29ca3
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/generic/mkdir.c
@@ -0,0 +1,33 @@
+/* Copyright (C) 2011-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
+
+ 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 <stddef.h>
+#include <sysdep.h>
+#include <fcntl.h>
+#include <sys/stat.h>
+#include <sys/types.h>
+
+
+/* Create a directory named PATH with protections MODE. */
+int
+__mkdir (const char *path, mode_t mode)
+{
+ return INLINE_SYSCALL (mkdirat, 3, AT_FDCWD, path, mode);
+}
+weak_alias (__mkdir, mkdir)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/generic/pipe.c b/REORG.TODO/sysdeps/unix/sysv/linux/generic/pipe.c
new file mode 100644
index 0000000000..4b3c5bd3b2
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/generic/pipe.c
@@ -0,0 +1,33 @@
+/* Copyright (C) 2011-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <unistd.h>
+#include <stddef.h>
+
+/* Create a one-way communication channel (__pipe).
+ If successful, two file descriptors are stored in PIPEDES;
+ bytes written on PIPEDES[1] can be read from PIPEDES[0].
+ Returns 0 if successful, -1 if not. */
+int
+__pipe (int __pipedes[2])
+{
+ return INLINE_SYSCALL (pipe2, 2, __pipedes, 0);
+}
+libc_hidden_def (__pipe)
+weak_alias (__pipe, pipe)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/generic/readlink.c b/REORG.TODO/sysdeps/unix/sysv/linux/generic/readlink.c
new file mode 100644
index 0000000000..ad2d018a4f
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/generic/readlink.c
@@ -0,0 +1,31 @@
+/* Copyright (C) 2011-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <unistd.h>
+#include <fcntl.h>
+
+/* Read the contents of the symbolic link PATH into no more than
+ LEN bytes of BUF. The contents are not null-terminated.
+ Returns the number of characters read, or -1 for errors. */
+ssize_t
+__readlink (const char *path, char *buf, size_t len)
+{
+ return INLINE_SYSCALL (readlinkat, 4, AT_FDCWD, path, buf, len);
+}
+weak_alias (__readlink, readlink)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/generic/readlink_chk.c b/REORG.TODO/sysdeps/unix/sysv/linux/generic/readlink_chk.c
new file mode 100644
index 0000000000..54b108fead
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/generic/readlink_chk.c
@@ -0,0 +1,39 @@
+/* Copyright (C) 2011-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
+
+ 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 <unistd.h>
+#include <fcntl.h>
+#include <sys/param.h>
+#ifdef HAVE_INLINED_SYSCALLS
+# include <errno.h>
+# include <sysdep.h>
+#endif
+
+
+ssize_t
+__readlink_chk (const char *path, void *buf, size_t len, size_t buflen)
+{
+ if (len > buflen)
+ __chk_fail ();
+
+#ifdef HAVE_INLINED_SYSCALLS
+ return INLINE_SYSCALL (readlinkat, 4, AT_FDCWD, path, buf, len);
+#else
+ return __readlink (path, buf, len);
+#endif
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/generic/rmdir.c b/REORG.TODO/sysdeps/unix/sysv/linux/generic/rmdir.c
new file mode 100644
index 0000000000..2048c08b06
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/generic/rmdir.c
@@ -0,0 +1,31 @@
+/* Copyright (C) 2011-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
+
+ 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 <stddef.h>
+#include <unistd.h>
+#include <fcntl.h>
+
+
+/* Remove the directory PATH. */
+int
+__rmdir (const char *path)
+{
+ return INLINE_SYSCALL (unlinkat, 3, AT_FDCWD, path, AT_REMOVEDIR);
+}
+weak_alias (__rmdir, rmdir)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/generic/symlink.c b/REORG.TODO/sysdeps/unix/sysv/linux/generic/symlink.c
new file mode 100644
index 0000000000..70cc4ab70d
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/generic/symlink.c
@@ -0,0 +1,30 @@
+/* Copyright (C) 2011-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
+
+ 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 <stddef.h>
+#include <unistd.h>
+#include <fcntl.h>
+
+/* Make a link to FROM called TO. */
+int
+__symlink (const char *from, const char *to)
+{
+ return INLINE_SYSCALL (symlinkat, 3, from, AT_FDCWD, to);
+}
+weak_alias (__symlink, symlink)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/generic/syscalls.list b/REORG.TODO/sysdeps/unix/sysv/linux/generic/syscalls.list
new file mode 100644
index 0000000000..ed8b216d47
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/generic/syscalls.list
@@ -0,0 +1,12 @@
+# File name Caller Syscall name # args Strong name Weak names
+
+# Socket APIs
+socket - socket i:iii __socket socket
+socketpair - socketpair i:iiif __socketpair socketpair
+bind - bind i:ipi __bind bind
+listen - listen i:ii __listen listen
+getsockname - getsockname i:ipp __getsockname getsockname
+getpeername - getpeername i:ipp __getpeername getpeername
+setsockopt - setsockopt i:iiibn __setsockopt setsockopt
+getsockopt - getsockopt i:iiiBN __getsockopt getsockopt
+shutdown - shutdown i:ii __shutdown shutdown
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/generic/sysctl.c b/REORG.TODO/sysdeps/unix/sysv/linux/generic/sysctl.c
new file mode 100644
index 0000000000..f9961d4cdb
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/generic/sysctl.c
@@ -0,0 +1,32 @@
+/* Copyright (C) 2011-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
+
+ 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 <sys/syscall.h>
+
+/* This deprecated syscall is no longer used (replaced with /proc/sys). */
+int
+sysctl (int *name, int nlen, void *oldval, size_t *oldlenp,
+ void *newval, size_t newlen)
+{
+ __set_errno (ENOSYS);
+ return -1;
+}
+stub_warning (sysctl)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/generic/sysdep.h b/REORG.TODO/sysdeps/unix/sysv/linux/generic/sysdep.h
new file mode 100644
index 0000000000..0e854ad69e
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/generic/sysdep.h
@@ -0,0 +1,35 @@
+/* Copyright (C) 2011-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
+
+ 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 <bits/wordsize.h>
+#include <kernel-features.h>
+#include <sysdeps/unix/sysdep.h>
+#include <sysdeps/unix/sysv/linux/sysdep.h>
+
+/* Provide the common name to allow more code reuse. */
+#ifdef __NR_llseek
+# define __NR__llseek __NR_llseek
+#endif
+
+#if __WORDSIZE == 64
+/* By defining the older names, glibc will build syscall wrappers for
+ both pread and pread64; sysdeps/unix/sysv/linux/wordsize-64/pread64.c
+ will suppress generating any separate code for pread64.c. */
+#define __NR_pread __NR_pread64
+#define __NR_pwrite __NR_pwrite64
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/generic/umount.c b/REORG.TODO/sysdeps/unix/sysv/linux/generic/umount.c
new file mode 100644
index 0000000000..6b933c6e43
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/generic/umount.c
@@ -0,0 +1,30 @@
+/* Copyright (C) 2011-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
+
+ 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/>. */
+
+/* Since the generic Linux syscall ABI doesn't have an oldumount system call,
+ do what the kernel does down here. */
+
+extern long int __umount2 (const char *name, int flags);
+
+long int
+__umount (const char *name)
+{
+ return __umount2 (name, 0);
+}
+
+weak_alias (__umount, umount);
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/generic/unlink.c b/REORG.TODO/sysdeps/unix/sysv/linux/generic/unlink.c
new file mode 100644
index 0000000000..25953f2145
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/generic/unlink.c
@@ -0,0 +1,31 @@
+/* Copyright (C) 2011-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
+
+ 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 <stddef.h>
+#include <unistd.h>
+#include <fcntl.h>
+
+
+/* Remove the link named NAME. */
+int
+__unlink (const char *name)
+{
+ return INLINE_SYSCALL (unlinkat, 3, AT_FDCWD, name, 0);
+}
+weak_alias (__unlink, unlink)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/generic/ustat.c b/REORG.TODO/sysdeps/unix/sysv/linux/generic/ustat.c
new file mode 100644
index 0000000000..780d931a5c
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/generic/ustat.c
@@ -0,0 +1,32 @@
+/* Copyright (C) 2011-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
+
+ 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 <sys/ustat.h>
+
+#include <sysdep.h>
+#include <sys/syscall.h>
+
+/* This deprecated syscall is no longer used (replaced with fstat). */
+int
+ustat (dev_t dev, struct ustat *ubuf)
+{
+ __set_errno (ENOSYS);
+ return -1;
+}
+stub_warning (ustat)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/generic/utimes.c b/REORG.TODO/sysdeps/unix/sysv/linux/generic/utimes.c
new file mode 100644
index 0000000000..de8d6d9df7
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/generic/utimes.c
@@ -0,0 +1,45 @@
+/* Copyright (C) 2011-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
+
+ 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 <stddef.h>
+#include <utime.h>
+#include <fcntl.h>
+#include <sys/time.h>
+#include <sysdep.h>
+
+
+/* Change the access time of FILE to TVP[0] and
+ the modification time of FILE to TVP[1]. */
+int
+__utimes (const char *file, const struct timeval tvp[2])
+{
+ struct timespec ts[2];
+ struct timespec *tsp = NULL;
+
+ if (tvp)
+ {
+ TIMEVAL_TO_TIMESPEC (&tvp[0], &ts[0]);
+ TIMEVAL_TO_TIMESPEC (&tvp[1], &ts[1]);
+ tsp = &ts[0];
+ }
+
+ return INLINE_SYSCALL (utimensat, 4, AT_FDCWD, file, tsp, 0);
+}
+
+weak_alias (__utimes, utimes)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/generic/wordsize-32/Versions b/REORG.TODO/sysdeps/unix/sysv/linux/generic/wordsize-32/Versions
new file mode 100644
index 0000000000..cdc6022015
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/generic/wordsize-32/Versions
@@ -0,0 +1,5 @@
+libc {
+ GLIBC_2.15 {
+ fallocate64;
+ }
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/generic/wordsize-32/fcntl.c b/REORG.TODO/sysdeps/unix/sysv/linux/generic/wordsize-32/fcntl.c
new file mode 100644
index 0000000000..20399f9310
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/generic/wordsize-32/fcntl.c
@@ -0,0 +1,86 @@
+/* Copyright (C) 2011-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
+
+ 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 <sysdep-cancel.h> /* Must come before <fcntl.h>. */
+#include <fcntl.h>
+#include <stdarg.h>
+
+#include <sys/syscall.h>
+
+
+static int
+do_fcntl (int fd, int cmd, void *arg)
+{
+ if (cmd != F_GETOWN)
+ return INLINE_SYSCALL (fcntl64, 3, fd, cmd, arg);
+
+ INTERNAL_SYSCALL_DECL (err);
+ struct f_owner_ex fex;
+ int res = INTERNAL_SYSCALL (fcntl64, err, 3, fd, F_GETOWN_EX, &fex);
+ if (!INTERNAL_SYSCALL_ERROR_P (res, err))
+ return fex.type == F_OWNER_GID ? -fex.pid : fex.pid;
+
+ __set_errno (INTERNAL_SYSCALL_ERRNO (res, err));
+ return -1;
+}
+
+
+#ifndef NO_CANCELLATION
+int
+__fcntl_nocancel (int fd, int cmd, ...)
+{
+ va_list ap;
+ void *arg;
+
+ va_start (ap, cmd);
+ arg = va_arg (ap, void *);
+ va_end (ap);
+
+ return do_fcntl (fd, cmd, arg);
+}
+#endif
+
+
+int
+__libc_fcntl (int fd, int cmd, ...)
+{
+ va_list ap;
+ void *arg;
+
+ va_start (ap, cmd);
+ arg = va_arg (ap, void *);
+ va_end (ap);
+
+ if (SINGLE_THREAD_P || cmd != F_SETLKW)
+ return do_fcntl (fd, cmd, arg);
+
+ int oldtype = LIBC_CANCEL_ASYNC ();
+
+ int result = do_fcntl (fd, cmd, arg);
+
+ LIBC_CANCEL_RESET (oldtype);
+
+ return result;
+}
+libc_hidden_def (__libc_fcntl)
+
+weak_alias (__libc_fcntl, __fcntl)
+libc_hidden_weak (__fcntl)
+weak_alias (__libc_fcntl, fcntl)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/generic/wordsize-32/fstatfs.c b/REORG.TODO/sysdeps/unix/sysv/linux/generic/wordsize-32/fstatfs.c
new file mode 100644
index 0000000000..4c0a83040d
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/generic/wordsize-32/fstatfs.c
@@ -0,0 +1,35 @@
+/* Copyright (C) 2011-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
+
+ 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 <sys/statfs.h>
+#include <kernel_stat.h>
+#include <stddef.h>
+
+#if !STATFS_IS_STATFS64
+#include "overflow.h"
+
+/* Return information about the filesystem on which FD resides. */
+int
+__fstatfs (int fd, struct statfs *buf)
+{
+ int rc = INLINE_SYSCALL (fstatfs64, 3, fd, sizeof (*buf), buf);
+ return rc ?: statfs_overflow (buf);
+}
+weak_alias (__fstatfs, fstatfs)
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/generic/wordsize-32/fxstat.c b/REORG.TODO/sysdeps/unix/sysv/linux/generic/wordsize-32/fxstat.c
new file mode 100644
index 0000000000..55c830731d
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/generic/wordsize-32/fxstat.c
@@ -0,0 +1,47 @@
+/* Copyright (C) 2011-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
+
+ 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 <stddef.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <kernel_stat.h>
+
+#include <sysdep.h>
+#include <sys/syscall.h>
+
+#if !XSTAT_IS_XSTAT64
+#include "overflow.h"
+
+/* Get information about the file FD in BUF. */
+int
+__fxstat (int vers, int fd, struct stat *buf)
+{
+ if (vers == _STAT_VER_KERNEL)
+ {
+ int rc = INLINE_SYSCALL (fstat64, 2, fd, buf);
+ return rc ?: stat_overflow (buf);
+ }
+
+ errno = EINVAL;
+ return -1;
+}
+
+hidden_def (__fxstat)
+weak_alias (__fxstat, _fxstat);
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/generic/wordsize-32/fxstat64.c b/REORG.TODO/sysdeps/unix/sysv/linux/generic/wordsize-32/fxstat64.c
new file mode 100644
index 0000000000..c7f128c622
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/generic/wordsize-32/fxstat64.c
@@ -0,0 +1,36 @@
+/* __fxstat64 () implementation.
+ Copyright (C) 2016-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
+
+ 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/>. */
+
+/* Hide the prototypes for __fxstat and _fxstat so that GCC will not
+ complain about the different function signatures if they are aliased
+ to __fxstat64. If XSTAT_IS_XSTAT64 is set to non-zero then the stat and
+ stat64 structures have an identical layout but different type names. */
+
+#define __fxstat __fxstat_disable
+#define _fxstat _fxstat_disable
+
+#include <sysdeps/unix/sysv/linux/fxstat64.c>
+
+#undef __fxstat
+#undef _fxstat
+#if XSTAT_IS_XSTAT64
+weak_alias (__fxstat64, __fxstat)
+weak_alias (__fxstat64, _fxstat)
+hidden_ver (__fxstat64, __fxstat)
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/generic/wordsize-32/fxstatat.c b/REORG.TODO/sysdeps/unix/sysv/linux/generic/wordsize-32/fxstatat.c
new file mode 100644
index 0000000000..2c1feea6b6
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/generic/wordsize-32/fxstatat.c
@@ -0,0 +1,46 @@
+/* Copyright (C) 2011-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
+
+ 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 <stddef.h>
+#include <stdio.h>
+#include <sys/stat.h>
+#include <kernel_stat.h>
+
+#include <sysdep.h>
+#include <sys/syscall.h>
+
+#if !XSTAT_IS_XSTAT64
+#include "overflow.h"
+
+/* Get information about the file NAME in BUF. */
+int
+__fxstatat (int vers, int fd, const char *file, struct stat *buf, int flag)
+{
+ if (vers == _STAT_VER_KERNEL)
+ {
+ int rc = INLINE_SYSCALL (fstatat64, 4, fd, file, buf, flag);
+ return rc ?: stat_overflow (buf);
+ }
+
+ errno = EINVAL;
+ return -1;
+}
+libc_hidden_def (__fxstatat)
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/generic/wordsize-32/fxstatat64.c b/REORG.TODO/sysdeps/unix/sysv/linux/generic/wordsize-32/fxstatat64.c
new file mode 100644
index 0000000000..93fa42b686
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/generic/wordsize-32/fxstatat64.c
@@ -0,0 +1,37 @@
+/* __fxstatat64 () implementation.
+ Copyright (C) 2016-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
+
+ 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/>. */
+
+/* Hide the prototype for __fxstatat so that GCC will not complain about
+ the different function signature if it is aliased to __fxstatat64.
+ If XSTAT_IS_XSTAT64 is set to non-zero then the stat and stat64 structures
+ have an identical layout but different type names. */
+
+#define __fxstatat __fxstatat_disable
+
+#include <sys/stat.h>
+#undef _STAT_VER_LINUX
+#define _STAT_VER_LINUX _STAT_VER_KERNEL
+
+#include <sysdeps/unix/sysv/linux/fxstatat64.c>
+
+#undef __fxstatat
+#if XSTAT_IS_XSTAT64
+weak_alias (__fxstatat64, __fxstatat)
+libc_hidden_ver (__fxstatat64, __fxstatat)
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/generic/wordsize-32/getdents.c b/REORG.TODO/sysdeps/unix/sysv/linux/generic/wordsize-32/getdents.c
new file mode 100644
index 0000000000..9f1c991694
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/generic/wordsize-32/getdents.c
@@ -0,0 +1,115 @@
+/* Copyright (C) 1993-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Simplified from sysdeps/unix/sysv/linux/getdents.c.
+
+ 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 <alloca.h>
+#include <assert.h>
+#include <errno.h>
+#include <dirent.h>
+#include <stddef.h>
+#include <stdint.h>
+#include <string.h>
+#include <unistd.h>
+#include <sys/param.h>
+#include <sys/types.h>
+
+#include <sysdep.h>
+#include <sys/syscall.h>
+
+/* Pack the dirent64 struct down into 32-bit offset/inode fields, and
+ ensure that no overflow occurs. */
+ssize_t
+__getdents (int fd, char *buf, size_t nbytes)
+{
+ union
+ {
+ struct dirent64 k; /* Kernel structure. */
+ struct dirent u;
+ char b[1];
+ } *kbuf = (void *) buf, *outp, *inp;
+ size_t kbytes = nbytes;
+ off64_t last_offset = -1;
+ ssize_t retval;
+
+ const size_t size_diff = (offsetof (struct dirent64, d_name)
+ - offsetof (struct dirent, d_name));
+ if (nbytes <= sizeof (struct dirent))
+ {
+ kbytes = nbytes + offsetof (struct dirent64, d_name)
+ - offsetof (struct dirent, d_name);
+ kbuf = __alloca(kbytes);
+ }
+
+ retval = INLINE_SYSCALL (getdents64, 3, fd, kbuf, kbytes);
+ if (retval == -1)
+ return -1;
+
+ /* These two pointers might alias the same memory buffer.
+ Standard C requires that we always use the same type for them,
+ so we must use the union type. */
+ inp = kbuf;
+ outp = (void *) buf;
+
+ while (&inp->b < &kbuf->b + retval)
+ {
+ const size_t alignment = __alignof__ (struct dirent);
+ /* Since inp->k.d_reclen is already aligned for the kernel
+ structure this may compute a value that is bigger
+ than necessary. */
+ size_t old_reclen = inp->k.d_reclen;
+ size_t new_reclen = ((old_reclen - size_diff + alignment - 1)
+ & ~(alignment - 1));
+
+ /* Copy the data out of the old structure into temporary space.
+ Then copy the name, which may overlap if BUF == KBUF. */
+ const uint64_t d_ino = inp->k.d_ino;
+ const int64_t d_off = inp->k.d_off;
+ const uint8_t d_type = inp->k.d_type;
+
+ memmove (outp->u.d_name, inp->k.d_name,
+ old_reclen - offsetof (struct dirent64, d_name));
+
+ /* Now we have copied the data from INP and access only OUTP. */
+
+ outp->u.d_ino = d_ino;
+ outp->u.d_off = d_off;
+ if ((sizeof (outp->u.d_ino) != sizeof (inp->k.d_ino)
+ && outp->u.d_ino != d_ino)
+ || (sizeof (outp->u.d_off) != sizeof (inp->k.d_off)
+ && outp->u.d_off != d_off))
+ {
+ /* Overflow. If there was at least one entry before this one,
+ return them without error, otherwise signal overflow. */
+ if (last_offset != -1)
+ {
+ __lseek64 (fd, last_offset, SEEK_SET);
+ return outp->b - buf;
+ }
+ __set_errno (EOVERFLOW);
+ return -1;
+ }
+
+ last_offset = d_off;
+ outp->u.d_reclen = new_reclen;
+ outp->u.d_type = d_type;
+
+ inp = (void *) inp + old_reclen;
+ outp = (void *) outp + new_reclen;
+ }
+
+ return outp->b - buf;
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/generic/wordsize-32/lxstat.c b/REORG.TODO/sysdeps/unix/sysv/linux/generic/wordsize-32/lxstat.c
new file mode 100644
index 0000000000..db4f4919fc
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/generic/wordsize-32/lxstat.c
@@ -0,0 +1,45 @@
+/* Copyright (C) 2011-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
+
+ 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 <stddef.h>
+#include <fcntl.h>
+#include <sys/stat.h>
+#include <kernel_stat.h>
+
+#include <sysdep.h>
+#include <sys/syscall.h>
+
+#if !XSTAT_IS_XSTAT64
+#include "overflow.h"
+
+/* Get information about the file NAME in BUF. */
+int
+__lxstat (int vers, const char *name, struct stat *buf)
+{
+ if (vers == _STAT_VER_KERNEL)
+ {
+ int rc = INLINE_SYSCALL (fstatat64, 4, AT_FDCWD, name, buf,
+ AT_SYMLINK_NOFOLLOW);
+ return rc ?: stat_overflow (buf);
+ }
+ errno = EINVAL;
+ return -1;
+}
+hidden_def (__lxstat)
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/generic/wordsize-32/lxstat64.c b/REORG.TODO/sysdeps/unix/sysv/linux/generic/wordsize-32/lxstat64.c
new file mode 100644
index 0000000000..647939a74c
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/generic/wordsize-32/lxstat64.c
@@ -0,0 +1,51 @@
+/* Copyright (C) 2011-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
+
+ 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/>. */
+
+/* Hide the prototype for __lxstat so that GCC will not complain about
+ the different function signature if it is aliased to __lxstat64.
+ If XSTAT_IS_XSTAT64 is set to non-zero then the stat and stat64
+ structures have an identical layout but different type names. */
+
+#define __lxstat __lxstat_disable
+
+#include <errno.h>
+#include <stddef.h>
+#include <fcntl.h>
+#include <sys/stat.h>
+#include <kernel_stat.h>
+
+#include <sysdep.h>
+#include <sys/syscall.h>
+
+/* Get information about the file NAME in BUF. */
+int
+__lxstat64 (int vers, const char *name, struct stat64 *buf)
+{
+ if (vers == _STAT_VER_KERNEL)
+ return INLINE_SYSCALL (fstatat64, 4, AT_FDCWD, name, buf,
+ AT_SYMLINK_NOFOLLOW);
+ errno = EINVAL;
+ return -1;
+}
+hidden_def (__lxstat64)
+
+#undef __lxstat
+#if XSTAT_IS_XSTAT64
+strong_alias (__lxstat64, __lxstat)
+hidden_ver (__lxstat64, __lxstat)
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/generic/wordsize-32/overflow.h b/REORG.TODO/sysdeps/unix/sysv/linux/generic/wordsize-32/overflow.h
new file mode 100644
index 0000000000..4c993ac817
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/generic/wordsize-32/overflow.h
@@ -0,0 +1,60 @@
+/* Overflow tests for stat, statfs, and lseek functions.
+ Copyright (C) 2011-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
+
+ 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/stat.h>
+#include <sys/statfs.h>
+
+/* Test for overflows of structures where we ask the kernel to fill them
+ in with standard 64-bit syscalls but return them through APIs that
+ only expose the low 32 bits of some fields. */
+
+static inline off_t lseek_overflow (loff_t res)
+{
+ off_t retval = (off_t) res;
+ if (retval == res)
+ return retval;
+
+ __set_errno (EOVERFLOW);
+ return (off_t) -1;
+}
+
+static inline int stat_overflow (struct stat *buf)
+{
+ if (buf->__st_ino_pad == 0 && buf->__st_size_pad == 0 &&
+ buf->__st_blocks_pad == 0)
+ return 0;
+
+ __set_errno (EOVERFLOW);
+ return -1;
+}
+
+/* Note that f_files and f_ffree may validly be a sign-extended -1. */
+static inline int statfs_overflow (struct statfs *buf)
+{
+ if (buf->__f_blocks_pad == 0 && buf->__f_bfree_pad == 0 &&
+ buf->__f_bavail_pad == 0 &&
+ (buf->__f_files_pad == 0 ||
+ (buf->f_files == -1U && buf->__f_files_pad == -1)) &&
+ (buf->__f_ffree_pad == 0 ||
+ (buf->f_ffree == -1U && buf->__f_ffree_pad == -1)))
+ return 0;
+
+ __set_errno (EOVERFLOW);
+ return -1;
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/generic/wordsize-32/sendfile.c b/REORG.TODO/sysdeps/unix/sysv/linux/generic/wordsize-32/sendfile.c
new file mode 100644
index 0000000000..2c252cc2cf
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/generic/wordsize-32/sendfile.c
@@ -0,0 +1,45 @@
+/* Copyright (C) 2011-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
+
+ 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/sendfile.h>
+#include <errno.h>
+
+/* Send COUNT bytes from file associated with IN_FD starting at OFFSET to
+ descriptor OUT_FD. */
+ssize_t
+sendfile (int out_fd, int in_fd, off_t *offset, size_t count)
+{
+ __off64_t off64;
+ int rc;
+
+ if (offset != NULL)
+ {
+ if (*offset < 0 || (off_t) (*offset + count) < 0)
+ {
+ __set_errno (EINVAL);
+ return -1;
+ }
+ off64 = *offset;
+ }
+
+ rc = INLINE_SYSCALL (sendfile64, 4, out_fd, in_fd,
+ offset ? &off64 : NULL, count);
+ if (offset)
+ *offset = off64;
+ return rc;
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/generic/wordsize-32/statfs.c b/REORG.TODO/sysdeps/unix/sysv/linux/generic/wordsize-32/statfs.c
new file mode 100644
index 0000000000..11da0021d6
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/generic/wordsize-32/statfs.c
@@ -0,0 +1,36 @@
+/* Copyright (C) 2011-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
+
+ 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 <sys/statfs.h>
+#include <kernel_stat.h>
+#include <stddef.h>
+
+#if !STATFS_IS_STATFS64
+#include "overflow.h"
+
+/* Return information about the filesystem on which FILE resides. */
+int
+__statfs (const char *file, struct statfs *buf)
+{
+ int rc = INLINE_SYSCALL (statfs64, 3, file, sizeof (*buf), buf);
+ return rc ?: statfs_overflow (buf);
+}
+libc_hidden_def (__statfs)
+weak_alias (__statfs, statfs)
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/generic/wordsize-32/syscalls.list b/REORG.TODO/sysdeps/unix/sysv/linux/generic/wordsize-32/syscalls.list
new file mode 100644
index 0000000000..b775008a37
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/generic/wordsize-32/syscalls.list
@@ -0,0 +1,5 @@
+# File name Caller Syscall name # args Strong name Weak names
+
+# rlimit APIs
+prlimit64 EXTRA prlimit64 i:iipp prlimit64
+fanotify_mark EXTRA fanotify_mark i:iiiiis fanotify_mark
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/generic/wordsize-32/xstat.c b/REORG.TODO/sysdeps/unix/sysv/linux/generic/wordsize-32/xstat.c
new file mode 100644
index 0000000000..91c1c9be6d
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/generic/wordsize-32/xstat.c
@@ -0,0 +1,45 @@
+/* Copyright (C) 2011-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
+
+ 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 <stddef.h>
+#include <fcntl.h>
+#include <sys/stat.h>
+#include <kernel_stat.h>
+
+#include <sysdep.h>
+#include <sys/syscall.h>
+
+#if !XSTAT_IS_XSTAT64
+#include "overflow.h"
+
+/* Get information about the file NAME in BUF. */
+int
+__xstat (int vers, const char *name, struct stat *buf)
+{
+ if (vers == _STAT_VER_KERNEL)
+ {
+ int rc = INLINE_SYSCALL (fstatat64, 4, AT_FDCWD, name, buf, 0);
+ return rc ?: stat_overflow (buf);
+ }
+
+ errno = EINVAL;
+ return -1;
+}
+hidden_def (__xstat)
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/generic/wordsize-32/xstat64.c b/REORG.TODO/sysdeps/unix/sysv/linux/generic/wordsize-32/xstat64.c
new file mode 100644
index 0000000000..5ef0614eb6
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/generic/wordsize-32/xstat64.c
@@ -0,0 +1,51 @@
+/* Copyright (C) 2011-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
+
+ 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/>. */
+
+/* Hide the prototype for __xstat so that GCC will not complain about
+ the different function signature if it is aliased to __xstat64.
+ If XSTAT_IS_XSTAT64 is set to non-zero then the stat and stat64
+ structures have an identical layout but different type names. */
+
+#define __xstat __xstat_disable
+
+#include <errno.h>
+#include <stddef.h>
+#include <fcntl.h>
+#include <sys/stat.h>
+#include <kernel_stat.h>
+
+#include <sysdep.h>
+#include <sys/syscall.h>
+
+/* Get information about the file NAME in BUF. */
+int
+__xstat64 (int vers, const char *name, struct stat64 *buf)
+{
+ if (vers == _STAT_VER_KERNEL)
+ return INLINE_SYSCALL (fstatat64, 4, AT_FDCWD, name, buf, 0);
+
+ errno = EINVAL;
+ return -1;
+}
+hidden_def (__xstat64)
+
+#undef __xstat
+#if XSTAT_IS_XSTAT64
+strong_alias (__xstat64, __xstat)
+hidden_ver (__xstat64, __xstat)
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/generic/xmknod.c b/REORG.TODO/sysdeps/unix/sysv/linux/generic/xmknod.c
new file mode 100644
index 0000000000..5e91539894
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/generic/xmknod.c
@@ -0,0 +1,54 @@
+/* Copyright (C) 2011-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
+
+ 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 <sys/types.h>
+#include <sys/stat.h>
+#include <sys/sysmacros.h>
+
+#include <sysdep.h>
+#include <sys/syscall.h>
+
+/* Create a device file named PATH, with permission and special bits MODE
+ and device number DEV (which can be constructed from major and minor
+ device numbers with the `makedev' macro above). */
+int
+__xmknod (int vers, const char *path, mode_t mode, dev_t *dev)
+{
+ unsigned long long int k_dev;
+
+ if (vers != _MKNOD_VER)
+ {
+ __set_errno (EINVAL);
+ return -1;
+ }
+
+ /* We must convert the value to dev_t type used by the kernel. */
+ k_dev = (*dev) & ((1ULL << 32) - 1);
+ if (k_dev != *dev)
+ {
+ __set_errno (EINVAL);
+ return -1;
+ }
+
+ return INLINE_SYSCALL (mknodat, 4, AT_FDCWD, path, mode,
+ (unsigned int) k_dev);
+}
+weak_alias (__xmknod, _xmknod)
+libc_hidden_def (__xmknod)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/generic/xstat.c b/REORG.TODO/sysdeps/unix/sysv/linux/generic/xstat.c
new file mode 100644
index 0000000000..1a7277a802
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/generic/xstat.c
@@ -0,0 +1,48 @@
+/* Copyright (C) 2011-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
+
+ 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/>. */
+
+/* Ignore prototype to avoid error if we alias __xstat and __xstat64. */
+#define __xstat64 __xstat64_disable
+
+#include <errno.h>
+#include <stddef.h>
+#include <fcntl.h>
+#include <sys/stat.h>
+#include <kernel_stat.h>
+
+#include <sysdep.h>
+#include <sys/syscall.h>
+
+/* Get information about the file NAME in BUF. */
+int
+__xstat (int vers, const char *name, struct stat *buf)
+{
+ if (vers == _STAT_VER_KERNEL)
+ return INLINE_SYSCALL (newfstatat, 4, AT_FDCWD, name, buf, 0);
+
+ errno = EINVAL;
+ return -1;
+}
+
+hidden_def (__xstat)
+weak_alias (__xstat, _xstat);
+#if XSTAT_IS_XSTAT64
+#undef __xstat64
+strong_alias (__xstat, __xstat64);
+hidden_ver (__xstat, __xstat64)
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/getclktck.c b/REORG.TODO/sysdeps/unix/sysv/linux/getclktck.c
new file mode 100644
index 0000000000..617ea540c8
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/getclktck.c
@@ -0,0 +1,31 @@
+/* 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 <time.h>
+
+#include <ldsodefs.h>
+
+#ifndef SYSTEM_CLK_TCK
+# define SYSTEM_CLK_TCK 100
+#endif
+
+/* Return frequency of times(). */
+int
+__getclktck (void)
+{
+ return GLRO(dl_clktck) ?: SYSTEM_CLK_TCK;
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/getcwd.c b/REORG.TODO/sysdeps/unix/sysv/linux/getcwd.c
new file mode 100644
index 0000000000..3b556fd450
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/getcwd.c
@@ -0,0 +1,135 @@
+/* Determine current working directory. Linux version.
+ Copyright (C) 1997-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
+
+ 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 <stdlib.h>
+#include <unistd.h>
+#include <sys/param.h>
+
+#include <sysdep.h>
+#include <sys/syscall.h>
+
+
+/* If we compile the file for use in ld.so we don't need the feature
+ that getcwd() allocates the buffers itself. */
+#if IS_IN (rtld)
+# define NO_ALLOCATION 1
+#endif
+
+
+/* The "proc" filesystem provides an easy method to retrieve the value.
+ For each process, the corresponding directory contains a symbolic link
+ named `cwd'. Reading the content of this link immediate gives us the
+ information. But we have to take care for systems which do not have
+ the proc filesystem mounted. Use the POSIX implementation in this case. */
+static char *generic_getcwd (char *buf, size_t size) internal_function;
+
+char *
+__getcwd (char *buf, size_t size)
+{
+ char *path;
+ char *result;
+
+#ifndef NO_ALLOCATION
+ size_t alloc_size = size;
+ if (size == 0)
+ {
+ if (buf != NULL)
+ {
+ __set_errno (EINVAL);
+ return NULL;
+ }
+
+ alloc_size = MAX (PATH_MAX, __getpagesize ());
+ }
+
+ if (buf == NULL)
+ {
+ path = malloc (alloc_size);
+ if (path == NULL)
+ return NULL;
+ }
+ else
+#else
+# define alloc_size size
+#endif
+ path = buf;
+
+ int retval;
+
+ retval = INLINE_SYSCALL (getcwd, 2, path, alloc_size);
+ if (retval >= 0)
+ {
+#ifndef NO_ALLOCATION
+ if (buf == NULL && size == 0)
+ /* Ensure that the buffer is only as large as necessary. */
+ buf = realloc (path, (size_t) retval);
+
+ if (buf == NULL)
+ /* Either buf was NULL all along, or `realloc' failed but
+ we still have the original string. */
+ buf = path;
+#endif
+
+ return buf;
+ }
+
+ /* The system call cannot handle paths longer than a page.
+ Neither can the magic symlink in /proc/self. Just use the
+ generic implementation right away. */
+ if (errno == ENAMETOOLONG)
+ {
+#ifndef NO_ALLOCATION
+ if (buf == NULL && size == 0)
+ {
+ free (path);
+ path = NULL;
+ }
+#endif
+
+ result = generic_getcwd (path, size);
+
+#ifndef NO_ALLOCATION
+ if (result == NULL && buf == NULL && size != 0)
+ free (path);
+#endif
+
+ return result;
+ }
+
+ /* It should never happen that the `getcwd' syscall failed because
+ the buffer is too small if we allocated the buffer ourselves
+ large enough. */
+ assert (errno != ERANGE || buf != NULL || size != 0);
+
+#ifndef NO_ALLOCATION
+ if (buf == NULL)
+ free (path);
+#endif
+
+ return NULL;
+}
+weak_alias (__getcwd, getcwd)
+
+/* Get the code for the generic version. */
+#define GETCWD_RETURN_TYPE static char * internal_function
+#define __getcwd generic_getcwd
+#include <sysdeps/posix/getcwd.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/getdents.c b/REORG.TODO/sysdeps/unix/sysv/linux/getdents.c
new file mode 100644
index 0000000000..4794eb737d
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/getdents.c
@@ -0,0 +1,272 @@
+/* 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/>. */
+
+#include <alloca.h>
+#include <assert.h>
+#include <errno.h>
+#include <dirent.h>
+#include <stddef.h>
+#include <stdint.h>
+#include <string.h>
+#include <unistd.h>
+#include <sys/param.h>
+#include <sys/types.h>
+
+#include <sysdep.h>
+#include <sys/syscall.h>
+
+#include <linux/posix_types.h>
+
+#include <kernel-features.h>
+
+/* For Linux we need a special version of this file since the
+ definition of `struct dirent' is not the same for the kernel and
+ the libc. There is one additional field which might be introduced
+ in the kernel structure in the future.
+
+ Here is the kernel definition of `struct dirent' as of 2.1.20: */
+
+struct kernel_dirent
+ {
+ long int d_ino;
+ __kernel_off_t d_off;
+ unsigned short int d_reclen;
+ char d_name[256];
+ };
+
+struct kernel_dirent64
+ {
+ uint64_t d_ino;
+ int64_t d_off;
+ unsigned short int d_reclen;
+ unsigned char d_type;
+ char d_name[256];
+ };
+
+#ifndef __GETDENTS
+# define __GETDENTS __getdents
+#endif
+#ifndef DIRENT_TYPE
+# define DIRENT_TYPE struct dirent
+#endif
+#ifndef DIRENT_SET_DP_INO
+# define DIRENT_SET_DP_INO(dp, value) (dp)->d_ino = (value)
+#endif
+
+/* The problem here is that we cannot simply read the next NBYTES
+ bytes. We need to take the additional field into account. We use
+ some heuristic. Assuming the directory contains names with 14
+ characters on average we can compute an estimated number of entries
+ which fit in the buffer. Taking this number allows us to specify a
+ reasonable number of bytes to read. If we should be wrong, we can
+ reset the file descriptor. In practice the kernel is limiting the
+ amount of data returned much more then the reduced buffer size. */
+ssize_t
+internal_function
+__GETDENTS (int fd, char *buf, size_t nbytes)
+{
+ ssize_t retval;
+
+ /* The d_ino and d_off fields in kernel_dirent and dirent must have
+ the same sizes and alignments. */
+ if (sizeof (DIRENT_TYPE) == sizeof (struct dirent)
+ && (sizeof (((struct kernel_dirent *) 0)->d_ino)
+ == sizeof (((struct dirent *) 0)->d_ino))
+ && (sizeof (((struct kernel_dirent *) 0)->d_off)
+ == sizeof (((struct dirent *) 0)->d_off))
+ && (offsetof (struct kernel_dirent, d_off)
+ == offsetof (struct dirent, d_off))
+ && (offsetof (struct kernel_dirent, d_reclen)
+ == offsetof (struct dirent, d_reclen)))
+ {
+ retval = INLINE_SYSCALL (getdents, 3, fd, buf, nbytes);
+
+ /* The kernel added the d_type value after the name. Change
+ this now. */
+ if (retval != -1)
+ {
+ union
+ {
+ struct kernel_dirent k;
+ struct dirent u;
+ } *kbuf = (void *) buf;
+
+ while ((char *) kbuf < buf + retval)
+ {
+ char d_type = *((char *) kbuf + kbuf->k.d_reclen - 1);
+ memmove (kbuf->u.d_name, kbuf->k.d_name,
+ strlen (kbuf->k.d_name) + 1);
+ kbuf->u.d_type = d_type;
+
+ kbuf = (void *) ((char *) kbuf + kbuf->k.d_reclen);
+ }
+ }
+
+ return retval;
+ }
+
+ off64_t last_offset = -1;
+
+#ifdef __NR_getdents64
+ {
+ union
+ {
+ struct kernel_dirent64 k;
+ DIRENT_TYPE u;
+ char b[1];
+ } *kbuf = (void *) buf, *outp, *inp;
+ size_t kbytes = nbytes;
+ if (offsetof (DIRENT_TYPE, d_name)
+ < offsetof (struct kernel_dirent64, d_name)
+ && nbytes <= sizeof (DIRENT_TYPE))
+ {
+ kbytes = (nbytes + offsetof (struct kernel_dirent64, d_name)
+ - offsetof (DIRENT_TYPE, d_name));
+ kbuf = __alloca(kbytes);
+ }
+ retval = INLINE_SYSCALL (getdents64, 3, fd, kbuf, kbytes);
+ const size_t size_diff = (offsetof (struct kernel_dirent64, d_name)
+ - offsetof (DIRENT_TYPE, d_name));
+
+ /* Return the error if encountered. */
+ if (retval == -1)
+ return -1;
+
+ /* If the structure returned by the kernel is identical to what we
+ need, don't do any conversions. */
+ if (offsetof (DIRENT_TYPE, d_name)
+ == offsetof (struct kernel_dirent64, d_name)
+ && sizeof (outp->u.d_ino) == sizeof (inp->k.d_ino)
+ && sizeof (outp->u.d_off) == sizeof (inp->k.d_off))
+ return retval;
+
+ /* These two pointers might alias the same memory buffer.
+ Standard C requires that we always use the same type for them,
+ so we must use the union type. */
+ inp = kbuf;
+ outp = (void *) buf;
+
+ while (&inp->b < &kbuf->b + retval)
+ {
+ const size_t alignment = __alignof__ (DIRENT_TYPE);
+ /* Since inp->k.d_reclen is already aligned for the kernel
+ structure this may compute a value that is bigger
+ than necessary. */
+ size_t old_reclen = inp->k.d_reclen;
+ size_t new_reclen = ((old_reclen - size_diff + alignment - 1)
+ & ~(alignment - 1));
+
+ /* Copy the data out of the old structure into temporary space.
+ Then copy the name, which may overlap if BUF == KBUF. */
+ const uint64_t d_ino = inp->k.d_ino;
+ const int64_t d_off = inp->k.d_off;
+ const uint8_t d_type = inp->k.d_type;
+
+ memmove (outp->u.d_name, inp->k.d_name,
+ old_reclen - offsetof (struct kernel_dirent64, d_name));
+
+ /* Now we have copied the data from INP and access only OUTP. */
+
+ DIRENT_SET_DP_INO (&outp->u, d_ino);
+ outp->u.d_off = d_off;
+ if ((sizeof (outp->u.d_ino) != sizeof (inp->k.d_ino)
+ && outp->u.d_ino != d_ino)
+ || (sizeof (outp->u.d_off) != sizeof (inp->k.d_off)
+ && outp->u.d_off != d_off))
+ {
+ /* Overflow. If there was at least one entry
+ before this one, return them without error,
+ otherwise signal overflow. */
+ if (last_offset != -1)
+ {
+ __lseek64 (fd, last_offset, SEEK_SET);
+ return outp->b - buf;
+ }
+ __set_errno (EOVERFLOW);
+ return -1;
+ }
+
+ last_offset = d_off;
+ outp->u.d_reclen = new_reclen;
+ outp->u.d_type = d_type;
+
+ inp = (void *) inp + old_reclen;
+ outp = (void *) outp + new_reclen;
+ }
+
+ return outp->b - buf;
+ }
+#endif
+ {
+ size_t red_nbytes;
+ struct kernel_dirent *skdp, *kdp;
+ const size_t size_diff = (offsetof (DIRENT_TYPE, d_name)
+ - offsetof (struct kernel_dirent, d_name));
+
+ red_nbytes = MIN (nbytes
+ - ((nbytes / (offsetof (DIRENT_TYPE, d_name) + 14))
+ * size_diff),
+ nbytes - size_diff);
+
+ skdp = kdp = __alloca (red_nbytes);
+
+ retval = INLINE_SYSCALL (getdents, 3, fd, (char *) kdp, red_nbytes);
+
+ if (retval == -1)
+ return -1;
+
+ DIRENT_TYPE *dp = (DIRENT_TYPE *) buf;
+ while ((char *) kdp < (char *) skdp + retval)
+ {
+ const size_t alignment = __alignof__ (DIRENT_TYPE);
+ /* Since kdp->d_reclen is already aligned for the kernel structure
+ this may compute a value that is bigger than necessary. */
+ size_t new_reclen = ((kdp->d_reclen + size_diff + alignment - 1)
+ & ~(alignment - 1));
+ if ((char *) dp + new_reclen > buf + nbytes)
+ {
+ /* Our heuristic failed. We read too many entries. Reset
+ the stream. */
+ assert (last_offset != -1);
+ __lseek64 (fd, last_offset, SEEK_SET);
+
+ if ((char *) dp == buf)
+ {
+ /* The buffer the user passed in is too small to hold even
+ one entry. */
+ __set_errno (EINVAL);
+ return -1;
+ }
+
+ break;
+ }
+
+ last_offset = kdp->d_off;
+ DIRENT_SET_DP_INO(dp, kdp->d_ino);
+ dp->d_off = kdp->d_off;
+ dp->d_reclen = new_reclen;
+ dp->d_type = *((char *) kdp + kdp->d_reclen - 1);
+ memcpy (dp->d_name, kdp->d_name,
+ kdp->d_reclen - offsetof (struct kernel_dirent, d_name));
+
+ dp = (DIRENT_TYPE *) ((char *) dp + new_reclen);
+ kdp = (struct kernel_dirent *) (((char *) kdp) + kdp->d_reclen);
+ }
+
+ return (char *) dp - buf;
+ }
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/getdents64.c b/REORG.TODO/sysdeps/unix/sysv/linux/getdents64.c
new file mode 100644
index 0000000000..805917e274
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/getdents64.c
@@ -0,0 +1,3 @@
+#define __GETDENTS __getdents64
+#define DIRENT_TYPE struct dirent64
+#include <sysdeps/unix/sysv/linux/getdents.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/getdirentries.c b/REORG.TODO/sysdeps/unix/sysv/linux/getdirentries.c
new file mode 100644
index 0000000000..fb10d9818a
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/getdirentries.c
@@ -0,0 +1,41 @@
+/* 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/>. */
+
+#include <dirent.h>
+#include <unistd.h>
+
+#ifndef GETDIRENTRIES
+# define GETDIRENTRIES getdirentries
+# define __GETDENTS __getdents
+#else
+# define off_t off64_t
+# define __lseek __lseek64
+#endif
+
+ssize_t
+GETDIRENTRIES (int fd, char *buf, size_t nbytes, off_t *basep)
+{
+ off_t base = __lseek (fd, (off_t) 0, SEEK_CUR);
+ ssize_t result;
+
+ result = __GETDENTS (fd, buf, nbytes);
+
+ if (result != -1)
+ *basep = base;
+
+ return result;
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/getdirentries64.c b/REORG.TODO/sysdeps/unix/sysv/linux/getdirentries64.c
new file mode 100644
index 0000000000..e486a36a12
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/getdirentries64.c
@@ -0,0 +1,3 @@
+#define GETDIRENTRIES getdirentries64
+#define __GETDENTS __getdents64
+#include "getdirentries.c"
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/getdtsz.c b/REORG.TODO/sysdeps/unix/sysv/linux/getdtsz.c
new file mode 100644
index 0000000000..5ee08d58d6
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/getdtsz.c
@@ -0,0 +1,21 @@
+/* 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/>. */
+
+/* This comes from the Linux kernel header. */
+#define OPEN_MAX 256
+
+#include <sysdeps/posix/getdtsz.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/getentropy.c b/REORG.TODO/sysdeps/unix/sysv/linux/getentropy.c
new file mode 100644
index 0000000000..14e5e91392
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/getentropy.c
@@ -0,0 +1,73 @@
+/* Implementation of getentropy based on the getrandom system call.
+ Copyright (C) 2016-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sys/random.h>
+#include <assert.h>
+#include <errno.h>
+#include <unistd.h>
+
+#ifdef __NR_getrandom
+/* Write LENGTH bytes of randomness starting at BUFFER. Return 0 on
+ success and -1 on failure. */
+int
+getentropy (void *buffer, size_t length)
+{
+ /* The interface is documented to return EIO for buffer lengths
+ longer than 256 bytes. */
+ if (length > 256)
+ {
+ __set_errno (EIO);
+ return -1;
+ }
+
+ /* Try to fill the buffer completely. Even with the 256 byte limit
+ above, we might still receive an EINTR error (when blocking
+ during boot). */
+ void *end = buffer + length;
+ while (buffer < end)
+ {
+ /* NB: No cancellation point. */
+ ssize_t bytes = INLINE_SYSCALL_CALL (getrandom, buffer, end - buffer, 0);
+ if (bytes < 0)
+ {
+ if (errno == EINTR)
+ /* Try again if interrupted by a signal. */
+ continue;
+ else
+ return -1;
+ }
+ if (bytes == 0)
+ {
+ /* No more bytes available. This should not happen under
+ normal circumstances. */
+ __set_errno (EIO);
+ return -1;
+ }
+ /* Try again in case of a short read. */
+ buffer += bytes;
+ }
+ return 0;
+}
+#else
+int
+getentropy (void *buffer, size_t length)
+{
+ __set_errno (ENOSYS);
+ return -1;
+}
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/gethostid.c b/REORG.TODO/sysdeps/unix/sysv/linux/gethostid.c
new file mode 100644
index 0000000000..cc108aa2d6
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/gethostid.c
@@ -0,0 +1,118 @@
+/* Copyright (C) 1995-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <alloca.h>
+#include <errno.h>
+#include <fcntl.h>
+#include <unistd.h>
+#include <netdb.h>
+#include <not-cancel.h>
+
+#define HOSTIDFILE "/etc/hostid"
+
+#ifdef SET_PROCEDURE
+int
+sethostid (long int id)
+{
+ int fd;
+ ssize_t written;
+ int32_t id32 = id;
+
+ /* Test for appropriate rights to set host ID. */
+ if (__libc_enable_secure)
+ {
+ __set_errno (EPERM);
+ return -1;
+ }
+
+ /* Make sure the ID is not too large. Needed for bi-arch support. */
+ if (id32 != id)
+ {
+ __set_errno (EOVERFLOW);
+ return -1;
+ }
+
+ /* Open file for writing. Everybody is allowed to read this file. */
+ fd = open_not_cancel (HOSTIDFILE, O_CREAT|O_WRONLY|O_TRUNC, 0644);
+ if (fd < 0)
+ return -1;
+
+ written = write_not_cancel (fd, &id32, sizeof (id32));
+
+ close_not_cancel_no_status (fd);
+
+ return written != sizeof (id32) ? -1 : 0;
+}
+
+#else
+# include <string.h>
+# include <sys/param.h>
+# include <resolv/netdb.h>
+# include <netinet/in.h>
+
+long int
+gethostid (void)
+{
+ char hostname[MAXHOSTNAMELEN + 1];
+ size_t buflen;
+ char *buffer;
+ struct hostent hostbuf, *hp;
+ int32_t id;
+ struct in_addr in;
+ int herr;
+ int fd;
+
+ /* First try to get the ID from a former invocation of sethostid. */
+ fd = open_not_cancel (HOSTIDFILE, O_RDONLY|O_LARGEFILE, 0);
+ if (fd >= 0)
+ {
+ ssize_t n = read_not_cancel (fd, &id, sizeof (id));
+
+ close_not_cancel_no_status (fd);
+
+ if (n == sizeof (id))
+ return id;
+ }
+
+ /* Getting from the file was not successful. An intelligent guess for
+ a unique number of a host is its IP address. Return this. */
+ if (__gethostname (hostname, MAXHOSTNAMELEN) < 0 || hostname[0] == '\0')
+ /* This also fails. Return and arbitrary value. */
+ return 0;
+
+ buflen = 1024;
+ buffer = __alloca (buflen);
+
+ /* To get the IP address we need to know the host name. */
+ while (__gethostbyname_r (hostname, &hostbuf, buffer, buflen, &hp, &herr)
+ != 0
+ || hp == NULL)
+ if (herr != NETDB_INTERNAL || errno != ERANGE)
+ return 0;
+ else
+ /* Enlarge buffer. */
+ buffer = extend_alloca (buffer, buflen, 2 * buflen);
+
+ in.s_addr = 0;
+ memcpy (&in, hp->h_addr,
+ (int) sizeof (in) < hp->h_length ? (int) sizeof (in) : hp->h_length);
+
+ /* For the return value to be not exactly the IP address we do some
+ bit fiddling. */
+ return (int32_t) (in.s_addr << 16 | in.s_addr >> 16);
+}
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/getipv4sourcefilter.c b/REORG.TODO/sysdeps/unix/sysv/linux/getipv4sourcefilter.c
new file mode 100644
index 0000000000..004c83e916
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/getipv4sourcefilter.c
@@ -0,0 +1,73 @@
+/* Get IPv4 source filter. Linux version.
+ Copyright (C) 2004-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@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 <alloca.h>
+#include <errno.h>
+#include <stdlib.h>
+#include <string.h>
+#include <stdint.h>
+#include <netinet/in.h>
+#include <sys/param.h>
+#include <sys/socket.h>
+
+
+int
+getipv4sourcefilter (int s, struct in_addr interface, struct in_addr group,
+ uint32_t *fmode, uint32_t *numsrc, struct in_addr *slist)
+{
+ /* We have to create an struct ip_msfilter object which we can pass
+ to the kernel. */
+ socklen_t needed = IP_MSFILTER_SIZE (*numsrc);
+ int use_alloca = __libc_use_alloca (needed);
+
+ struct ip_msfilter *imsf;
+ if (use_alloca)
+ imsf = (struct ip_msfilter *) alloca (needed);
+ else
+ {
+ imsf = (struct ip_msfilter *) malloc (needed);
+ if (imsf == NULL)
+ return -1;
+ }
+
+ imsf->imsf_multiaddr = group;
+ imsf->imsf_interface = interface;
+ imsf->imsf_numsrc = *numsrc;
+
+ int result = __getsockopt (s, SOL_IP, IP_MSFILTER, imsf, &needed);
+
+ /* If successful, copy the results to the places the caller wants
+ them in. */
+ if (result == 0)
+ {
+ *fmode = imsf->imsf_fmode;
+ memcpy (slist, imsf->imsf_slist,
+ MIN (*numsrc, imsf->imsf_numsrc) * sizeof (struct in_addr));
+ *numsrc = imsf->imsf_numsrc;
+ }
+
+ if (! use_alloca)
+ {
+ int save_errno = errno;
+ free (imsf);
+ __set_errno (save_errno);
+ }
+
+ return result;
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/getloadavg.c b/REORG.TODO/sysdeps/unix/sysv/linux/getloadavg.c
new file mode 100644
index 0000000000..117f8c2b38
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/getloadavg.c
@@ -0,0 +1,68 @@
+/* Get system load averages. Linux (/proc/loadavg) version.
+ Copyright (C) 1999-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <fcntl.h>
+#include <locale.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <not-cancel.h>
+
+/* Put the 1 minute, 5 minute and 15 minute load averages
+ into the first NELEM elements of LOADAVG.
+ Return the number written (never more than 3, but may be less than NELEM),
+ or -1 if an error occurred. */
+
+int
+getloadavg (double loadavg[], int nelem)
+{
+ int fd;
+
+ fd = open_not_cancel_2 ("/proc/loadavg", O_RDONLY);
+ if (fd < 0)
+ return -1;
+ else
+ {
+ char buf[65], *p;
+ ssize_t nread;
+ int i;
+
+ nread = read_not_cancel (fd, buf, sizeof buf - 1);
+ close_not_cancel_no_status (fd);
+ if (nread <= 0)
+ return -1;
+ buf[nread - 1] = '\0';
+
+ if (nelem > 3)
+ nelem = 3;
+ p = buf;
+ for (i = 0; i < nelem; ++i)
+ {
+ char *endp;
+ loadavg[i] = __strtod_l (p, &endp, _nl_C_locobj_ptr);
+ if (endp == p)
+ /* This should not happen. The format of /proc/loadavg
+ must have changed. Don't return with what we have,
+ signal an error. */
+ return -1;
+ p = endp;
+ }
+
+ return i;
+ }
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/getlogin.c b/REORG.TODO/sysdeps/unix/sysv/linux/getlogin.c
new file mode 100644
index 0000000000..ccb9e78ff2
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/getlogin.c
@@ -0,0 +1,39 @@
+/* Copyright (C) 2010-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 <pwd.h>
+#include <unistd.h>
+#include <not-cancel.h>
+
+#define STATIC static
+#define getlogin getlogin_fd0
+#include <sysdeps/unix/getlogin.c>
+#undef getlogin
+
+
+/* Return the login name of the user, or NULL if it can't be determined.
+ The returned pointer, if not NULL, is good only until the next call. */
+
+char *
+getlogin (void)
+{
+ int res = __getlogin_r_loginuid (name, sizeof (name));
+ if (res >= 0)
+ return res == 0 ? name : NULL;
+
+ return getlogin_fd0 ();
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/getlogin_r.c b/REORG.TODO/sysdeps/unix/sysv/linux/getlogin_r.c
new file mode 100644
index 0000000000..05ac36b491
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/getlogin_r.c
@@ -0,0 +1,120 @@
+/* Copyright (C) 2010-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 <pwd.h>
+#include <unistd.h>
+#include <not-cancel.h>
+
+#define STATIC static
+static int getlogin_r_fd0 (char *name, size_t namesize);
+#define __getlogin_r getlogin_r_fd0
+#include <sysdeps/unix/getlogin_r.c>
+#undef __getlogin_r
+
+
+/* Try to determine login name from /proc/self/loginuid and return 0
+ if successful. If /proc/self/loginuid cannot be read return -1.
+ Otherwise return the error number. */
+
+int
+attribute_hidden
+__getlogin_r_loginuid (char *name, size_t namesize)
+{
+ int fd = open_not_cancel_2 ("/proc/self/loginuid", O_RDONLY);
+ if (fd == -1)
+ return -1;
+
+ /* We are reading a 32-bit number. 12 bytes are enough for the text
+ representation. If not, something is wrong. */
+ char uidbuf[12];
+ ssize_t n = TEMP_FAILURE_RETRY (read_not_cancel (fd, uidbuf,
+ sizeof (uidbuf)));
+ close_not_cancel_no_status (fd);
+
+ uid_t uid;
+ char *endp;
+ if (n <= 0
+ || n == sizeof (uidbuf)
+ || (uidbuf[n] = '\0',
+ uid = strtoul (uidbuf, &endp, 10),
+ endp == uidbuf || *endp != '\0'))
+ return -1;
+
+ size_t buflen = 1024;
+ char *buf = alloca (buflen);
+ bool use_malloc = false;
+ struct passwd pwd;
+ struct passwd *tpwd;
+ int result = 0;
+ int res;
+
+ while ((res = __getpwuid_r (uid, &pwd, buf, buflen, &tpwd)) == ERANGE)
+ if (__libc_use_alloca (2 * buflen))
+ buf = extend_alloca (buf, buflen, 2 * buflen);
+ else
+ {
+ buflen *= 2;
+ char *newp = realloc (use_malloc ? buf : NULL, buflen);
+ if (newp == NULL)
+ {
+ result = ENOMEM;
+ goto out;
+ }
+ buf = newp;
+ use_malloc = true;
+ }
+
+ if (res != 0 || tpwd == NULL)
+ {
+ result = -1;
+ goto out;
+ }
+
+ size_t needed = strlen (pwd.pw_name) + 1;
+ if (needed > namesize)
+ {
+ __set_errno (ERANGE);
+ result = ERANGE;
+ goto out;
+ }
+
+ memcpy (name, pwd.pw_name, needed);
+
+ out:
+ if (use_malloc)
+ free (buf);
+
+ return result;
+}
+
+
+/* Return at most NAME_LEN characters of the login name of the user in NAME.
+ If it cannot be determined or some other error occurred, return the error
+ code. Otherwise return 0. */
+
+int
+__getlogin_r (char *name, size_t namesize)
+{
+ int res = __getlogin_r_loginuid (name, namesize);
+ if (res >= 0)
+ return res;
+
+ return getlogin_r_fd0 (name, namesize);
+}
+libc_hidden_def (__getlogin_r)
+weak_alias (__getlogin_r, getlogin_r)
+libc_hidden_weak (getlogin_r)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/getpagesize.c b/REORG.TODO/sysdeps/unix/sysv/linux/getpagesize.c
new file mode 100644
index 0000000000..d1fd37010e
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/getpagesize.c
@@ -0,0 +1,32 @@
+/* Copyright (C) 1991-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <assert.h>
+#include <unistd.h>
+#include <sys/param.h>
+
+#include <ldsodefs.h>
+
+/* Return the system page size. */
+int
+__getpagesize (void)
+{
+ assert (GLRO(dl_pagesize) != 0);
+ return GLRO(dl_pagesize);
+}
+libc_hidden_def (__getpagesize)
+weak_alias (__getpagesize, getpagesize)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/getpeername.c b/REORG.TODO/sysdeps/unix/sysv/linux/getpeername.c
new file mode 100644
index 0000000000..347fc74039
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/getpeername.c
@@ -0,0 +1,35 @@
+/* Copyright (C) 2015-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <signal.h>
+#include <sys/socket.h>
+
+#include <socketcall.h>
+#include <kernel-features.h>
+#include <sys/syscall.h>
+
+int
+__getpeername (int fd, __SOCKADDR_ARG addr, socklen_t *len)
+{
+#ifdef __ASSUME_GETPEERNAME_SYSCALL
+ return INLINE_SYSCALL (getpeername, 3, fd, addr.__sockaddr__, len);
+#else
+ return SOCKETCALL (getpeername, fd, addr.__sockaddr__, len);
+#endif
+}
+weak_alias (__getpeername, getpeername)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/getpriority.c b/REORG.TODO/sysdeps/unix/sysv/linux/getpriority.c
new file mode 100644
index 0000000000..5137cf72b8
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/getpriority.c
@@ -0,0 +1,45 @@
+/* getpriority for Linux.
+ Copyright (C) 1996-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <sys/resource.h>
+
+#include <sysdep.h>
+#include <sys/syscall.h>
+
+/* The return value of getpriority syscall is biased by this value
+ to avoid returning negative values. */
+#define PZERO 20
+
+/* Return the highest priority of any process specified by WHICH and WHO
+ (see above); if WHO is zero, the current process, process group, or user
+ (as specified by WHO) is used. A lower priority number means higher
+ priority. Priorities range from PRIO_MIN to PRIO_MAX. */
+
+int
+__getpriority (enum __priority_which which, id_t who)
+{
+ int res;
+
+ res = INLINE_SYSCALL (getpriority, 2, (int) which, who);
+ if (res >= 0)
+ res = PZERO - res;
+ return res;
+}
+libc_hidden_def (__getpriority)
+weak_alias (__getpriority, getpriority)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/getpt.c b/REORG.TODO/sysdeps/unix/sysv/linux/getpt.c
new file mode 100644
index 0000000000..a92b8f988d
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/getpt.c
@@ -0,0 +1,101 @@
+/* Copyright (C) 1998-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Zack Weinberg <zack@rabi.phys.columbia.edu>, 1998.
+
+ 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 <stdlib.h>
+#include <unistd.h>
+#include <paths.h>
+#include <sys/statfs.h>
+
+#include "linux_fsinfo.h"
+
+/* Path to the master pseudo terminal cloning device. */
+#define _PATH_DEVPTMX _PATH_DEV "ptmx"
+/* Directory containing the UNIX98 pseudo terminals. */
+#define _PATH_DEVPTS _PATH_DEV "pts"
+
+/* Prototype for function that opens BSD-style master pseudo-terminals. */
+int __bsd_getpt (void);
+
+/* Open a master pseudo terminal and return its file descriptor. */
+int
+__posix_openpt (int oflag)
+{
+ static int have_no_dev_ptmx;
+ int fd;
+
+ if (!have_no_dev_ptmx)
+ {
+ fd = __open (_PATH_DEVPTMX, oflag);
+ if (fd != -1)
+ {
+ struct statfs fsbuf;
+ static int devpts_mounted;
+
+ /* Check that the /dev/pts filesystem is mounted
+ or if /dev is a devfs filesystem (this implies /dev/pts). */
+ if (devpts_mounted
+ || (__statfs (_PATH_DEVPTS, &fsbuf) == 0
+ && fsbuf.f_type == DEVPTS_SUPER_MAGIC)
+ || (__statfs (_PATH_DEV, &fsbuf) == 0
+ && fsbuf.f_type == DEVFS_SUPER_MAGIC))
+ {
+ /* Everything is ok. */
+ devpts_mounted = 1;
+ return fd;
+ }
+
+ /* If /dev/pts is not mounted then the UNIX98 pseudo terminals
+ are not usable. */
+ __close (fd);
+ have_no_dev_ptmx = 1;
+ __set_errno (ENOENT);
+ }
+ else
+ {
+ if (errno == ENOENT || errno == ENODEV)
+ have_no_dev_ptmx = 1;
+ else
+ return -1;
+ }
+ }
+ else
+ __set_errno (ENOENT);
+
+ return -1;
+}
+weak_alias (__posix_openpt, posix_openpt)
+
+
+int
+__getpt (void)
+{
+ int fd = __posix_openpt (O_RDWR);
+ if (fd == -1)
+ fd = __bsd_getpt ();
+ return fd;
+}
+
+
+#define PTYNAME1 "pqrstuvwxyzabcde";
+#define PTYNAME2 "0123456789abcdef";
+
+#define __getpt __bsd_getpt
+#define HAVE_POSIX_OPENPT
+#include <sysdeps/unix/bsd/getpt.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/getrandom.c b/REORG.TODO/sysdeps/unix/sysv/linux/getrandom.c
new file mode 100644
index 0000000000..25eb6efdd6
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/getrandom.c
@@ -0,0 +1,43 @@
+/* Implementation of the getrandom system call.
+ Copyright (C) 2016-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sys/random.h>
+#include <errno.h>
+#include <unistd.h>
+#include <sysdep-cancel.h>
+
+#ifdef __NR_getrandom
+/* Write LENGTH bytes of randomness starting at BUFFER. Return 0 on
+ success and -1 on failure. */
+ssize_t
+getrandom (void *buffer, size_t length, unsigned int flags)
+{
+ return SYSCALL_CANCEL (getrandom, buffer, length, flags);
+}
+#else
+/* Always provide a definition, even if the kernel headers lack the
+ system call number. */
+ssize_t
+getrandom (void *buffer, size_t length, unsigned int flags)
+{
+ /* Ideally, we would add a cancellation point here, but we currently
+ cannot do so inside libc. */
+ __set_errno (ENOSYS);
+ return -1;
+}
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/getrlimit.c b/REORG.TODO/sysdeps/unix/sysv/linux/getrlimit.c
new file mode 100644
index 0000000000..32670fbb18
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/getrlimit.c
@@ -0,0 +1,56 @@
+/* Linux getrlimit implementation (32 bits rlim_t).
+ Copyright (C) 2016-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <sys/resource.h>
+#include <sys/types.h>
+#include <shlib-compat.h>
+
+#if !__RLIM_T_MATCHES_RLIM64_T
+
+/* The __NR_getrlimit compatibility implementation is required iff
+ __NR_ugetrlimit is also defined (meaning an old broken RLIM_INFINITY
+ definition). */
+# ifndef __NR_ugetrlimit
+# define __NR_ugetrlimit __NR_getrlimit
+# undef SHLIB_COMPAT
+# define SHLIB_COMPAT(a, b, c) 0
+# endif
+
+int
+__new_getrlimit (enum __rlimit_resource resource, struct rlimit *rlim)
+{
+ return INLINE_SYSCALL_CALL (ugetrlimit, resource, rlim);
+}
+weak_alias (__new_getrlimit, __getrlimit)
+hidden_weak (__getrlimit)
+
+# if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_2)
+/* Back compatible 2Gig limited rlimit. */
+int
+__old_getrlimit (enum __rlimit_resource resource, struct rlimit *rlim)
+{
+ return INLINE_SYSCALL_CALL (getrlimit, resource, rlim);
+}
+compat_symbol (libc, __old_getrlimit, getrlimit, GLIBC_2_0);
+versioned_symbol (libc, __new_getrlimit, getrlimit, GLIBC_2_2);
+# else
+weak_alias (__new_getrlimit, getrlimit)
+# endif
+
+#endif /* __RLIM_T_MATCHES_RLIM64_T */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/getrlimit64.c b/REORG.TODO/sysdeps/unix/sysv/linux/getrlimit64.c
new file mode 100644
index 0000000000..56af3c0646
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/getrlimit64.c
@@ -0,0 +1,87 @@
+/* Linux getrlimit64 implementation (64 bits rlim_t).
+ Copyright (C) 2010-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 <sys/types.h>
+#include <shlib-compat.h>
+
+/* Add this redirection so the strong_alias for __RLIM_T_MATCHES_RLIM64_T
+ linking getlimit64 to {__}getrlimit does not throw a type error. */
+#undef getrlimit
+#undef __getrlimit
+#define getrlimit getrlimit_redirect
+#define __getrlimit __getrlimit_redirect
+#include <sys/resource.h>
+#undef getrlimit
+#undef __getrlimit
+
+/* Put the soft and hard limits for RESOURCE in *RLIMITS.
+ Returns 0 if successful, -1 if not (and sets errno). */
+int
+__getrlimit64 (enum __rlimit_resource resource, struct rlimit64 *rlimits)
+{
+ return INLINE_SYSCALL_CALL (prlimit64, 0, resource, NULL, rlimits);
+}
+libc_hidden_def (__getrlimit64)
+
+#if __RLIM_T_MATCHES_RLIM64_T
+/* If both rlim_t and rlimt64_t are essentially the same type we can use
+ alias both interfaces. */
+strong_alias (__getrlimit64, __GI_getrlimit)
+strong_alias (__getrlimit64, __GI___getrlimit)
+strong_alias (__getrlimit64, __getrlimit)
+weak_alias (__getrlimit64, getrlimit)
+/* And there is no need for compat symbols. */
+# undef SHLIB_COMPAT
+# define SHLIB_COMPAT(a, b, c) 0
+#endif
+
+#if SHLIB_COMPAT (libc, GLIBC_2_1, GLIBC_2_2)
+/* Back compatible 2GiB limited rlimit. */
+extern int __new_getrlimit (enum __rlimit_resource, struct rlimit *);
+
+int
+attribute_compat_text_section
+__old_getrlimit64 (enum __rlimit_resource resource, struct rlimit64 *rlimits)
+{
+# if __RLIM_T_MATCHES_RLIM64_T
+# define rlimits32 (*rlimits)
+# else
+ struct rlimit rlimits32;
+# endif
+
+ if (__new_getrlimit (resource, &rlimits32) < 0)
+ return -1;
+
+ if (rlimits32.rlim_cur == RLIM_INFINITY)
+ rlimits->rlim_cur = RLIM64_INFINITY >> 1;
+ else
+ rlimits->rlim_cur = rlimits32.rlim_cur;
+ if (rlimits32.rlim_max == RLIM_INFINITY)
+ rlimits->rlim_max = RLIM64_INFINITY >> 1;
+ else
+ rlimits->rlim_max = rlimits32.rlim_max;
+
+ return 0;
+}
+versioned_symbol (libc, __getrlimit64, getrlimit64, GLIBC_2_2);
+compat_symbol (libc, __old_getrlimit64, getrlimit64, GLIBC_2_1);
+#else
+weak_alias (__getrlimit64, getrlimit64)
+libc_hidden_weak (getrlimit64)
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/getsockname.c b/REORG.TODO/sysdeps/unix/sysv/linux/getsockname.c
new file mode 100644
index 0000000000..17382998ea
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/getsockname.c
@@ -0,0 +1,35 @@
+/* Copyright (C) 2015-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <signal.h>
+#include <sys/socket.h>
+
+#include <socketcall.h>
+#include <kernel-features.h>
+#include <sys/syscall.h>
+
+int
+__getsockname (int fd, __SOCKADDR_ARG addr, socklen_t *len)
+{
+#ifdef __ASSUME_GETSOCKNAME_SYSCALL
+ return INLINE_SYSCALL (getsockname, 3, fd, addr.__sockaddr__, len);
+#else
+ return SOCKETCALL (getsockname, fd, addr.__sockaddr__, len);
+#endif
+}
+weak_alias (__getsockname, getsockname)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/getsockopt.c b/REORG.TODO/sysdeps/unix/sysv/linux/getsockopt.c
new file mode 100644
index 0000000000..8c37b49da4
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/getsockopt.c
@@ -0,0 +1,35 @@
+/* Copyright (C) 2015-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <signal.h>
+#include <sys/socket.h>
+
+#include <socketcall.h>
+#include <kernel-features.h>
+#include <sys/syscall.h>
+
+int
+__getsockopt (int fd, int level, int optname, void *optval, socklen_t *len)
+{
+#ifdef __ASSUME_GETSOCKOPT_SYSCALL
+ return INLINE_SYSCALL (getsockopt, 5, fd, level, optname, optval, len);
+#else
+ return SOCKETCALL (getsockopt, fd, level, optname, optval, len);
+#endif
+}
+weak_alias (__getsockopt, getsockopt)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/getsourcefilter.c b/REORG.TODO/sysdeps/unix/sysv/linux/getsourcefilter.c
new file mode 100644
index 0000000000..806cb161e4
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/getsourcefilter.c
@@ -0,0 +1,146 @@
+/* Get source filter. Linux version.
+ Copyright (C) 2004-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@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 <alloca.h>
+#include <assert.h>
+#include <errno.h>
+#include <stdlib.h>
+#include <string.h>
+#include <stdint.h>
+#include <netatalk/at.h>
+#include <netax25/ax25.h>
+#include <netinet/in.h>
+#include <netipx/ipx.h>
+#include <netpacket/packet.h>
+#include <netrose/rose.h>
+#include <sys/param.h>
+#include <sys/socket.h>
+
+
+static const struct
+{
+ int sol;
+ int af;
+ socklen_t size;
+} sol_map[] =
+ {
+ /* Sort the array according to importance of the protocols. Add
+ more protocols when they become available. */
+ { SOL_IP, AF_INET, sizeof (struct sockaddr_in) },
+ { SOL_IPV6, AF_INET6, sizeof (struct sockaddr_in6) },
+ { SOL_AX25, AF_AX25, sizeof (struct sockaddr_ax25) },
+ { SOL_IPX, AF_IPX, sizeof (struct sockaddr_ipx) },
+ { SOL_ATALK, AF_APPLETALK, sizeof (struct sockaddr_at) },
+ { SOL_ROSE, AF_ROSE, sizeof (struct sockaddr_rose) },
+ { SOL_PACKET, AF_PACKET, sizeof (struct sockaddr_ll) }
+ };
+#define NSOL_MAP (sizeof (sol_map) / sizeof (sol_map[0]))
+
+
+/* Try to determine the socket level value. Ideally both side and
+ family are set. But sometimes only the size is correct and the
+ family value might be bogus. Loop over the array entries and look
+ for a perfect match or the first match based on size. */
+int
+__get_sol (int af, socklen_t len)
+{
+ int first_size_sol = -1;
+
+ for (size_t cnt = 0; cnt < NSOL_MAP; ++cnt)
+ {
+ /* Just a test so that we make sure the special value used to
+ signal the "we have so far no socket level value" is OK. */
+ assert (sol_map[cnt].sol != -1);
+
+ if (len == sol_map[cnt].size)
+ {
+ /* The size matches, which is a requirement. If the family
+ matches, too, we have a winner. Otherwise we remember the
+ socket level value for this protocol if it is the first
+ match. */
+ if (af == sol_map[cnt].af)
+ /* Bingo! */
+ return sol_map[cnt].sol;
+
+ if (first_size_sol == -1)
+ first_size_sol = sol_map[cnt].sol;
+ }
+ }
+
+ return first_size_sol;
+}
+
+
+int
+getsourcefilter (int s, uint32_t interface, const struct sockaddr *group,
+ socklen_t grouplen, uint32_t *fmode, uint32_t *numsrc,
+ struct sockaddr_storage *slist)
+{
+ /* We have to create an struct ip_msfilter object which we can pass
+ to the kernel. */
+ socklen_t needed = GROUP_FILTER_SIZE (*numsrc);
+ int use_alloca = __libc_use_alloca (needed);
+
+ struct group_filter *gf;
+ if (use_alloca)
+ gf = (struct group_filter *) alloca (needed);
+ else
+ {
+ gf = (struct group_filter *) malloc (needed);
+ if (gf == NULL)
+ return -1;
+ }
+
+ gf->gf_interface = interface;
+ memcpy (&gf->gf_group, group, grouplen);
+ gf->gf_numsrc = *numsrc;
+
+ /* We need to provide the appropriate socket level value. */
+ int result;
+ int sol = __get_sol (group->sa_family, grouplen);
+ if (sol == -1)
+ {
+ __set_errno (EINVAL);
+ result = -1;
+ }
+ else
+ {
+ result = __getsockopt (s, sol, MCAST_MSFILTER, gf, &needed);
+
+ /* If successful, copy the results to the places the caller wants
+ them in. */
+ if (result == 0)
+ {
+ *fmode = gf->gf_fmode;
+ memcpy (slist, gf->gf_slist,
+ MIN (*numsrc, gf->gf_numsrc)
+ * sizeof (struct sockaddr_storage));
+ *numsrc = gf->gf_numsrc;
+ }
+ }
+
+ if (! use_alloca)
+ {
+ int save_errno = errno;
+ free (gf);
+ __set_errno (save_errno);
+ }
+
+ return result;
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/getsysstats.c b/REORG.TODO/sysdeps/unix/sysv/linux/getsysstats.c
new file mode 100644
index 0000000000..63e41100eb
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/getsysstats.c
@@ -0,0 +1,330 @@
+/* Determine various system internal values, Linux version.
+ Copyright (C) 1996-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <alloca.h>
+#include <assert.h>
+#include <ctype.h>
+#include <dirent.h>
+#include <errno.h>
+#include <fcntl.h>
+#include <mntent.h>
+#include <paths.h>
+#include <stdio.h>
+#include <stdio_ext.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+#include <sys/sysinfo.h>
+
+#include <atomic.h>
+#include <not-cancel.h>
+
+
+/* How we can determine the number of available processors depends on
+ the configuration. There is currently (as of version 2.0.21) no
+ system call to determine the number. It is planned for the 2.1.x
+ series to add this, though.
+
+ One possibility to implement it for systems using Linux 2.0 is to
+ examine the pseudo file /proc/cpuinfo. Here we have one entry for
+ each processor.
+
+ But not all systems have support for the /proc filesystem. If it
+ is not available we simply return 1 since there is no way. */
+
+
+/* Other architectures use different formats for /proc/cpuinfo. This
+ provides a hook for alternative parsers. */
+#ifndef GET_NPROCS_PARSER
+# define GET_NPROCS_PARSER(FD, BUFFER, CP, RE, BUFFER_END, RESULT) \
+ do \
+ { \
+ (RESULT) = 0; \
+ /* Read all lines and count the lines starting with the string \
+ "processor". We don't have to fear extremely long lines since \
+ the kernel will not generate them. 8192 bytes are really \
+ enough. */ \
+ char *l; \
+ while ((l = next_line (FD, BUFFER, &CP, &RE, BUFFER_END)) != NULL) \
+ if (strncmp (l, "processor", 9) == 0) \
+ ++(RESULT); \
+ } \
+ while (0)
+#endif
+
+
+static char *
+next_line (int fd, char *const buffer, char **cp, char **re,
+ char *const buffer_end)
+{
+ char *res = *cp;
+ char *nl = memchr (*cp, '\n', *re - *cp);
+ if (nl == NULL)
+ {
+ if (*cp != buffer)
+ {
+ if (*re == buffer_end)
+ {
+ memmove (buffer, *cp, *re - *cp);
+ *re = buffer + (*re - *cp);
+ *cp = buffer;
+
+ ssize_t n = read_not_cancel (fd, *re, buffer_end - *re);
+ if (n < 0)
+ return NULL;
+
+ *re += n;
+
+ nl = memchr (*cp, '\n', *re - *cp);
+ while (nl == NULL && *re == buffer_end)
+ {
+ /* Truncate too long lines. */
+ *re = buffer + 3 * (buffer_end - buffer) / 4;
+ n = read_not_cancel (fd, *re, buffer_end - *re);
+ if (n < 0)
+ return NULL;
+
+ nl = memchr (*re, '\n', n);
+ **re = '\n';
+ *re += n;
+ }
+ }
+ else
+ nl = memchr (*cp, '\n', *re - *cp);
+
+ res = *cp;
+ }
+
+ if (nl == NULL)
+ nl = *re - 1;
+ }
+
+ *cp = nl + 1;
+ assert (*cp <= *re);
+
+ return res == *re ? NULL : res;
+}
+
+
+int
+__get_nprocs (void)
+{
+ static int cached_result = -1;
+ static time_t timestamp;
+
+ time_t now = time (NULL);
+ time_t prev = timestamp;
+ atomic_read_barrier ();
+ if (now == prev && cached_result > -1)
+ return cached_result;
+
+ /* XXX Here will come a test for the new system call. */
+
+ const size_t buffer_size = __libc_use_alloca (8192) ? 8192 : 512;
+ char *buffer = alloca (buffer_size);
+ char *buffer_end = buffer + buffer_size;
+ char *cp = buffer_end;
+ char *re = buffer_end;
+
+ const int flags = O_RDONLY | O_CLOEXEC;
+ int fd = open_not_cancel_2 ("/sys/devices/system/cpu/online", flags);
+ char *l;
+ int result = 0;
+ if (fd != -1)
+ {
+ l = next_line (fd, buffer, &cp, &re, buffer_end);
+ if (l != NULL)
+ do
+ {
+ char *endp;
+ unsigned long int n = strtoul (l, &endp, 10);
+ if (l == endp)
+ {
+ result = 0;
+ break;
+ }
+
+ unsigned long int m = n;
+ if (*endp == '-')
+ {
+ l = endp + 1;
+ m = strtoul (l, &endp, 10);
+ if (l == endp)
+ {
+ result = 0;
+ break;
+ }
+ }
+
+ result += m - n + 1;
+
+ l = endp;
+ while (l < re && isspace (*l))
+ ++l;
+ }
+ while (l < re);
+
+ close_not_cancel_no_status (fd);
+
+ if (result > 0)
+ goto out;
+ }
+
+ cp = buffer_end;
+ re = buffer_end;
+ result = 1;
+
+ /* The /proc/stat format is more uniform, use it by default. */
+ fd = open_not_cancel_2 ("/proc/stat", flags);
+ if (fd != -1)
+ {
+ result = 0;
+
+ while ((l = next_line (fd, buffer, &cp, &re, buffer_end)) != NULL)
+ /* The current format of /proc/stat has all the cpu* entries
+ at the front. We assume here that stays this way. */
+ if (strncmp (l, "cpu", 3) != 0)
+ break;
+ else if (isdigit (l[3]))
+ ++result;
+
+ close_not_cancel_no_status (fd);
+ }
+ else
+ {
+ fd = open_not_cancel_2 ("/proc/cpuinfo", flags);
+ if (fd != -1)
+ {
+ GET_NPROCS_PARSER (fd, buffer, cp, re, buffer_end, result);
+ close_not_cancel_no_status (fd);
+ }
+ }
+
+ out:
+ cached_result = result;
+ atomic_write_barrier ();
+ timestamp = now;
+
+ return result;
+}
+weak_alias (__get_nprocs, get_nprocs)
+
+
+/* On some architectures it is possible to distinguish between configured
+ and active cpus. */
+int
+__get_nprocs_conf (void)
+{
+ /* XXX Here will come a test for the new system call. */
+
+ /* Try to use the sysfs filesystem. It has actual information about
+ online processors. */
+ DIR *dir = __opendir ("/sys/devices/system/cpu");
+ if (dir != NULL)
+ {
+ int count = 0;
+ struct dirent64 *d;
+
+ while ((d = __readdir64 (dir)) != NULL)
+ /* NB: the sysfs has d_type support. */
+ if (d->d_type == DT_DIR && strncmp (d->d_name, "cpu", 3) == 0)
+ {
+ char *endp;
+ unsigned long int nr = strtoul (d->d_name + 3, &endp, 10);
+ if (nr != ULONG_MAX && endp != d->d_name + 3 && *endp == '\0')
+ ++count;
+ }
+
+ __closedir (dir);
+
+ return count;
+ }
+
+ int result = 1;
+
+#ifdef GET_NPROCS_CONF_PARSER
+ /* If we haven't found an appropriate entry return 1. */
+ FILE *fp = fopen ("/proc/cpuinfo", "rce");
+ if (fp != NULL)
+ {
+ char buffer[8192];
+
+ /* No threads use this stream. */
+ __fsetlocking (fp, FSETLOCKING_BYCALLER);
+ GET_NPROCS_CONF_PARSER (fp, buffer, result);
+ fclose (fp);
+ }
+#else
+ result = __get_nprocs ();
+#endif
+
+ return result;
+}
+weak_alias (__get_nprocs_conf, get_nprocs_conf)
+
+
+/* Compute (num*mem_unit)/pagesize, but avoid overflowing long int.
+ In practice, mem_unit is never bigger than the page size, so after
+ the first loop it is 1. [In the kernel, it is initialized to
+ PAGE_SIZE in mm/page_alloc.c:si_meminfo(), and then in
+ kernel.sys.c:do_sysinfo() it is set to 1 if unsigned long can
+ represent all the sizes measured in bytes]. */
+static long int
+sysinfo_mempages (unsigned long int num, unsigned int mem_unit)
+{
+ unsigned long int ps = __getpagesize ();
+
+ while (mem_unit > 1 && ps > 1)
+ {
+ mem_unit >>= 1;
+ ps >>= 1;
+ }
+ num *= mem_unit;
+ while (ps > 1)
+ {
+ ps >>= 1;
+ num >>= 1;
+ }
+ return num;
+}
+
+/* Return the number of pages of total/available physical memory in
+ the system. This used to be done by parsing /proc/meminfo, but
+ that's unnecessarily expensive (and /proc is not always available).
+ The sysinfo syscall provides the same information, and has been
+ available at least since kernel 2.3.48. */
+long int
+__get_phys_pages (void)
+{
+ struct sysinfo info;
+
+ __sysinfo (&info);
+ return sysinfo_mempages (info.totalram, info.mem_unit);
+}
+weak_alias (__get_phys_pages, get_phys_pages)
+
+long int
+__get_avphys_pages (void)
+{
+ struct sysinfo info;
+
+ __sysinfo (&info);
+ return sysinfo_mempages (info.freeram, info.mem_unit);
+}
+weak_alias (__get_avphys_pages, get_avphys_pages)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/gettimeofday.c b/REORG.TODO/sysdeps/unix/sysv/linux/gettimeofday.c
new file mode 100644
index 0000000000..6afa407ac4
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/gettimeofday.c
@@ -0,0 +1,39 @@
+/* Copyright (C) 2015-2017 Free Software Foundation, Inc.
+
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation; either version 2.1 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <sys/time.h>
+
+#undef __gettimeofday
+
+#ifdef HAVE_GETTIMEOFDAY_VSYSCALL
+# define HAVE_VSYSCALL
+#endif
+#include <sysdep-vdso.h>
+
+/* Get the current time of day and timezone information,
+ putting it into *tv and *tz. If tz is null, *tz is not filled.
+ Returns 0 on success, -1 on errors. */
+int
+__gettimeofday (struct timeval *tv, struct timezone *tz)
+{
+ return INLINE_VSYSCALL (gettimeofday, 2, tv, tz);
+}
+libc_hidden_def (__gettimeofday)
+weak_alias (__gettimeofday, gettimeofday)
+libc_hidden_weak (gettimeofday)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/grantpt.c b/REORG.TODO/sysdeps/unix/sysv/linux/grantpt.c
new file mode 100644
index 0000000000..8cebde36ed
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/grantpt.c
@@ -0,0 +1,44 @@
+#include <assert.h>
+#include <ctype.h>
+#include <dirent.h>
+#include <errno.h>
+#include <fcntl.h>
+#include <paths.h>
+#include <stdlib.h>
+#include <unistd.h>
+
+#include <not-cancel.h>
+
+#include "pty-private.h"
+
+#if HAVE_PT_CHOWN
+/* Close all file descriptors except the one specified. */
+static void
+close_all_fds (void)
+{
+ DIR *dir = __opendir ("/proc/self/fd");
+ if (dir != NULL)
+ {
+ struct dirent64 *d;
+ while ((d = __readdir64 (dir)) != NULL)
+ if (isdigit (d->d_name[0]))
+ {
+ char *endp;
+ long int fd = strtol (d->d_name, &endp, 10);
+ if (*endp == '\0' && fd != PTY_FILENO && fd != dirfd (dir))
+ close_not_cancel_no_status (fd);
+ }
+
+ __closedir (dir);
+
+ int nullfd = open_not_cancel_2 (_PATH_DEVNULL, O_RDONLY);
+ assert (nullfd == STDIN_FILENO);
+ nullfd = open_not_cancel_2 (_PATH_DEVNULL, O_WRONLY);
+ assert (nullfd == STDOUT_FILENO);
+ __dup2 (STDOUT_FILENO, STDERR_FILENO);
+ }
+}
+# define CLOSE_ALL_FDS() close_all_fds()
+#endif
+
+#include <sysdeps/unix/grantpt.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/Implies b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/Implies
new file mode 100644
index 0000000000..c3d145cb44
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/Implies
@@ -0,0 +1 @@
+hppa/nptl
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/Makefile b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/Makefile
new file mode 100644
index 0000000000..68569013fb
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/Makefile
@@ -0,0 +1,4 @@
+# Used by *context() functions
+ifeq ($(subdir),stdlib)
+gen-as-const-headers += ucontext_i.sym
+endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/Versions b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/Versions
new file mode 100644
index 0000000000..b5098b2171
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/Versions
@@ -0,0 +1,38 @@
+libc {
+ # The comment lines with "#errlist-compat" are magic; see errlist-compat.awk.
+ # When you get an error from errlist-compat.awk, you need to add a new
+ # version here. Don't do this blindly, since this means changing the ABI
+ # for all GNU/Linux configurations.
+
+ GLIBC_2.1 {
+ #errlist-compat 253
+ _sys_errlist; sys_errlist; _sys_nerr; sys_nerr;
+ }
+ GLIBC_2.2 {
+ # New rlimit interface
+ getrlimit; setrlimit; getrlimit64; setrlimit64;
+ }
+ GLIBC_2.3 {
+ #errlist-compat 254
+ _sys_errlist; sys_errlist; _sys_nerr; sys_nerr;
+ }
+ GLIBC_2.4 {
+ #errlist-compat 256
+ _sys_errlist; sys_errlist; _sys_nerr; sys_nerr;
+ }
+ GLIBC_2.11 {
+ fallocate64;
+ }
+ GLIBC_2.12 {
+ #errlist-compat 257
+ _sys_errlist; sys_errlist; _sys_nerr; sys_nerr;
+ }
+ GLIBC_2.17 {
+ #errlist-compat 260
+ _sys_errlist; sys_errlist; _sys_nerr; sys_nerr;
+ prlimit64;
+ }
+ GLIBC_2.19 {
+ fanotify_mark;
+ }
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/____longjmp_chk.c b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/____longjmp_chk.c
new file mode 100644
index 0000000000..48aaeb36c9
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/____longjmp_chk.c
@@ -0,0 +1,47 @@
+/* Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with GCC; see the file COPYING. If not, write to the Free
+ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
+ 02110-1301, USA. */
+
+#include <stdio.h>
+#include <signal.h>
+#include <sysdep.h>
+#define __longjmp ____longjmp_chk
+#define CHECK_SP(sp) \
+ do { \
+ register unsigned long this_sp asm ("r30"); \
+ /* The stack grows up, therefore frames that were created and then \
+ destroyed must all have stack values higher than ours. */ \
+ if ((unsigned long) (sp) > this_sp) \
+ { \
+ stack_t oss; \
+ INTERNAL_SYSCALL_DECL (err); \
+ int result = INTERNAL_SYSCALL (sigaltstack, err, 2, NULL, &oss);\
+ /* If we aren't using an alternate stack then we have already \
+ shown that we are jumping to a frame that doesn't exist so \
+ error out. If we are using an alternate stack we must prove \
+ that we are jumping *out* of the alternate stack. Note that \
+ the check for that is the same as that for _STACK_GROWS_UP \
+ as for _STACK_GROWS_DOWN. */ \
+ if (!INTERNAL_SYSCALL_ERROR_P (result, err) \
+ && ((oss.ss_flags & SS_ONSTACK) == 0 \
+ || ((unsigned long) oss.ss_sp + oss.ss_size \
+ - (unsigned long) (sp)) < oss.ss_size)) \
+ __fortify_fail ("longjmp causes uninitialized stack frame"); \
+ } \
+ } while (0)
+
+#include <__longjmp.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/arch-fork.h b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/arch-fork.h
new file mode 100644
index 0000000000..108305417d
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/arch-fork.h
@@ -0,0 +1,32 @@
+/* ARCH_FORK definition for Linux fork implementation. HPPA version.
+ Copyright (C) 2005-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sched.h>
+#include <signal.h>
+#include <sysdep.h>
+#include <tls.h>
+
+/* Argument 1 - Clone flags.
+ 2 - Child stack pointer.
+ 3 - Parent tid pointer.
+ 4 - New TLS area pointer.
+ 5 - Child tid pointer. */
+#define ARCH_FORK() \
+ INLINE_SYSCALL (clone, 5, \
+ CLONE_CHILD_SETTID | CLONE_CHILD_CLEARTID | SIGCHLD, \
+ NULL, NULL, NULL, &THREAD_SELF->tid)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/atomic-machine.h b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/atomic-machine.h
new file mode 100644
index 0000000000..59581bd4bc
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/atomic-machine.h
@@ -0,0 +1,94 @@
+/* Copyright (C) 2003-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Carlos O'Donell <carlos@baldric.uwo.ca>, 2005.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <stdint.h> /* Required for type definitions e.g. uint8_t. */
+
+#ifndef _ATOMIC_MACHINE_H
+#define _ATOMIC_MACHINE_H 1
+
+typedef int8_t atomic8_t;
+typedef uint8_t uatomic8_t;
+typedef int_fast8_t atomic_fast8_t;
+typedef uint_fast8_t uatomic_fast8_t;
+
+typedef int32_t atomic32_t;
+typedef uint32_t uatomic32_t;
+typedef int_fast32_t atomic_fast32_t;
+typedef uint_fast32_t uatomic_fast32_t;
+
+typedef intptr_t atomicptr_t;
+typedef uintptr_t uatomicptr_t;
+typedef intmax_t atomic_max_t;
+typedef uintmax_t uatomic_max_t;
+
+#define __HAVE_64B_ATOMICS 0
+#define USE_ATOMIC_COMPILER_BUILTINS 0
+
+/* XXX Is this actually correct? */
+#define ATOMIC_EXCHANGE_USES_CAS 1
+
+/* prev = *addr;
+ if (prev == old)
+ *addr = new;
+ return prev; */
+
+/* Use the kernel atomic light weight syscalls on hppa. */
+#define _LWS "0xb0"
+#define _LWS_CAS "0"
+/* Note r31 is the link register. */
+#define _LWS_CLOBBER "r1", "r23", "r22", "r20", "r31", "memory"
+/* String constant for -EAGAIN. */
+#define _ASM_EAGAIN "-11"
+/* String constant for -EDEADLOCK. */
+#define _ASM_EDEADLOCK "-45"
+
+/* The only basic operation needed is compare and exchange. The mem
+ pointer must be word aligned. We no longer loop on deadlock. */
+#define atomic_compare_and_exchange_val_acq(mem, newval, oldval) \
+ ({ \
+ register long lws_errno asm("r21"); \
+ register unsigned long lws_ret asm("r28"); \
+ register unsigned long lws_mem asm("r26") = (unsigned long)(mem); \
+ register unsigned long lws_old asm("r25") = (unsigned long)(oldval);\
+ register unsigned long lws_new asm("r24") = (unsigned long)(newval);\
+ __asm__ __volatile__( \
+ "0: \n\t" \
+ "ble " _LWS "(%%sr2, %%r0) \n\t" \
+ "ldi " _LWS_CAS ", %%r20 \n\t" \
+ "cmpiclr,<> " _ASM_EAGAIN ", %%r21, %%r0\n\t" \
+ "b,n 0b \n\t" \
+ "cmpclr,= %%r0, %%r21, %%r0 \n\t" \
+ "iitlbp %%r0,(%%sr0, %%r0) \n\t" \
+ : "=r" (lws_ret), "=r" (lws_errno) \
+ : "r" (lws_mem), "r" (lws_old), "r" (lws_new) \
+ : _LWS_CLOBBER \
+ ); \
+ \
+ (__typeof (oldval)) lws_ret; \
+ })
+
+#define atomic_compare_and_exchange_bool_acq(mem, newval, oldval) \
+ ({ \
+ __typeof__ (*mem) ret; \
+ ret = atomic_compare_and_exchange_val_acq(mem, newval, oldval); \
+ /* Return 1 if it was already acquired. */ \
+ (ret != oldval); \
+ })
+
+#endif
+/* _ATOMIC_MACHINE_H */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/bits/epoll.h b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/bits/epoll.h
new file mode 100644
index 0000000000..0ba399dd2b
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/bits/epoll.h
@@ -0,0 +1,27 @@
+/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_EPOLL_H
+# error "Never use <bits/epoll.h> directly; include <sys/epoll.h> instead."
+#endif
+
+/* Flags to be passed to epoll_create1. */
+enum
+ {
+ EPOLL_CLOEXEC = 010000000
+#define EPOLL_CLOEXEC EPOLL_CLOEXEC
+ };
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/bits/errno.h b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/bits/errno.h
new file mode 100644
index 0000000000..ce6bebe8b0
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/bits/errno.h
@@ -0,0 +1,66 @@
+/* Error constants. Linux/HPPA specific version.
+ Copyright (C) 1996-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifdef _ERRNO_H
+
+# undef EDOM
+# undef EILSEQ
+# undef ERANGE
+# include <linux/errno.h>
+
+/* Linux also has no ECANCELED error code. Since it is not used here
+ we define it to an invalid value. */
+# ifndef ECANCELED
+# define ECANCELED ECANCELLED
+# endif
+
+# ifndef EOWNERDEAD
+# define EOWNERDEAD 254
+# endif
+
+# ifndef ENOTRECOVERABLE
+# define ENOTRECOVERABLE 255
+# endif
+
+# ifndef ERFKILL
+# define ERFKILL 256
+# endif
+
+# ifndef EHWPOISON
+# define EHWPOISON 257
+# endif
+
+# ifndef __ASSEMBLER__
+/* Function to get address of global `errno' variable. */
+extern int *__errno_location (void) __THROW __attribute__ ((__const__));
+
+# if !defined _LIBC || defined _LIBC_REENTRANT
+/* When using threads, errno is a per-thread value. */
+# define errno (*__errno_location ())
+# endif
+# endif /* !__ASSEMBLER__ */
+#endif /* _ERRNO_H */
+
+#if !defined _ERRNO_H && defined __need_Emath
+/* This is ugly but the kernel header is not clean enough. We must
+ define only the values EDOM, EILSEQ and ERANGE in case __need_Emath is
+ defined. */
+# define EDOM 33 /* Math argument out of domain of function. */
+# define EILSEQ 47 /* Illegal byte sequence. */
+# define ERANGE 34 /* Math result not representable. */
+#endif /* !_ERRNO_H && __need_Emath */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/bits/eventfd.h b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/bits/eventfd.h
new file mode 100644
index 0000000000..aaed52f736
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/bits/eventfd.h
@@ -0,0 +1,31 @@
+/* Copyright (C) 2007-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_EVENTFD_H
+# error "Never use <bits/eventfd.h> directly; include <sys/eventfd.h> instead."
+#endif
+
+/* Flags for eventfd. */
+enum
+ {
+ EFD_SEMAPHORE = 1,
+#define EFD_SEMAPHORE EFD_SEMAPHORE
+ EFD_CLOEXEC = 010000000,
+#define EFD_CLOEXEC EFD_CLOEXEC
+ EFD_NONBLOCK = 00200004 /* HPUX has separate NDELAY & NONBLOCK */
+#define EFD_NONBLOCK EFD_NONBLOCK
+ };
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/bits/fcntl.h b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/bits/fcntl.h
new file mode 100644
index 0000000000..2bd799883d
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/bits/fcntl.h
@@ -0,0 +1,85 @@
+/* O_*, F_*, FD_* bit values for Linux.
+ Copyright (C) 1995-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _FCNTL_H
+# error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
+#endif
+
+#define O_CREAT 00000400 /* not fcntl */
+#define O_EXCL 00002000 /* not fcntl */
+#define O_NOCTTY 00400000 /* not fcntl */
+#define O_APPEND 00000010
+#define O_NONBLOCK 00200004 /* HPUX has separate NDELAY & NONBLOCK */
+#define __O_DSYNC 01000000
+#define __O_RSYNC 02000000 /* HPUX only */
+#define __O_SYNC 00100000
+#define O_SYNC (__O_SYNC|__O_DSYNC)
+
+#define O_BLKSEEK 00000100 /* HPUX only */
+
+#define __O_DIRECTORY 000010000 /* Must be a directory. */
+#define __O_NOFOLLOW 000000200 /* Do not follow links. */
+#define __O_CLOEXEC 010000000 /* Set close_on_exec. */
+#define __O_NOATIME 004000000 /* Do not set atime. */
+#define __O_PATH 020000000
+#define __O_TMPFILE 040010000 /* Atomically create nameless file. */
+
+#define __O_LARGEFILE 00004000
+
+#define F_GETLK64 8 /* Get record locking info. */
+#define F_SETLK64 9 /* Set record locking info (non-blocking). */
+#define F_SETLKW64 10 /* Set record locking info (blocking). */
+
+#define __F_GETOWN 11 /* Get owner of socket (receiver of SIGIO). */
+#define __F_SETOWN 12 /* Set owner of socket (receiver of SIGIO). */
+
+#define __F_SETSIG 13 /* Set number of signal to be sent. */
+#define __F_GETSIG 14 /* Get number of signal to be sent. */
+
+/* For posix fcntl() and `l_type' field of a `struct flock' for lockf(). */
+#define F_RDLCK 1 /* Read lock. */
+#define F_WRLCK 2 /* Write lock. */
+#define F_UNLCK 3 /* Remove lock. */
+
+struct flock
+ {
+ short int l_type; /* Type of lock: F_RDLCK, F_WRLCK, or F_UNLCK. */
+ short int l_whence; /* Where `l_start' is relative to (like `lseek'). */
+#ifndef __USE_FILE_OFFSET64
+ __off_t l_start; /* Offset where the lock begins. */
+ __off_t l_len; /* Size of the locked area; zero means until EOF. */
+#else
+ __off64_t l_start; /* Offset where the lock begins. */
+ __off64_t l_len; /* Size of the locked area; zero means until EOF. */
+#endif
+ __pid_t l_pid; /* Process holding the lock. */
+ };
+
+#ifdef __USE_LARGEFILE64
+struct flock64
+ {
+ short int l_type; /* Type of lock: F_RDLCK, F_WRLCK, or F_UNLCK. */
+ short int l_whence; /* Where `l_start' is relative to (like `lseek'). */
+ __off64_t l_start; /* Offset where the lock begins. */
+ __off64_t l_len; /* Size of the locked area; zero means until EOF. */
+ __pid_t l_pid; /* Process holding the lock. */
+ };
+#endif
+
+/* Include generic Linux declarations. */
+#include <bits/fcntl-linux.h>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/bits/inotify.h b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/bits/inotify.h
new file mode 100644
index 0000000000..dfe5c8497c
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/bits/inotify.h
@@ -0,0 +1,29 @@
+/* Copyright (C) 2005-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_INOTIFY_H
+# error "Never use <bits/inotify.h> directly; include <sys/inotify.h> instead."
+#endif
+
+/* Flags for the parameter of inotify_init1. */
+enum
+ {
+ IN_CLOEXEC = 010000000,
+#define IN_CLOEXEC IN_CLOEXEC
+ IN_NONBLOCK = 000200004 /* HPUX has separate NDELAY & NONBLOCK */
+#define IN_NONBLOCK IN_NONBLOCK
+ };
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/bits/ioctls.h b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/bits/ioctls.h
new file mode 100644
index 0000000000..f81e67017b
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/bits/ioctls.h
@@ -0,0 +1,36 @@
+/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_IOCTL_H
+# error "Never use <bits/ioctls.h> directly; include <sys/ioctl.h> instead."
+#endif
+
+/* Use the definitions from the kernel header files. */
+#include <asm/ioctls.h>
+
+/* Oh well, this is necessary since the kernel data structure is
+ different from the user-level version. */
+#undef TCGETS
+#undef TCSETS
+#undef TCSETSW
+#undef TCSETSF
+#define TCGETS _IOR ('T', 16, char[36])
+#define TCSETS _IOW ('T', 17, char[36])
+#define TCSETSW _IOW ('T', 18, char[36])
+#define TCSETSF _IOW ('T', 19, char[36])
+
+#include <linux/sockios.h>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/bits/ipc.h b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/bits/ipc.h
new file mode 100644
index 0000000000..b2c2cc1ecb
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/bits/ipc.h
@@ -0,0 +1,62 @@
+/* Copyright (C) 1995-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_IPC_H
+# error "Never use <bits/ipc.h> directly; include <sys/ipc.h> instead."
+#endif
+
+#include <bits/types.h>
+#include <bits/wordsize.h>
+
+/* Mode bits for `msgget', `semget', and `shmget'. */
+#define IPC_CREAT 01000 /* Create key if key does not exist. */
+#define IPC_EXCL 02000 /* Fail if key exists. */
+#define IPC_NOWAIT 04000 /* Return error on wait. */
+
+/* Control commands for `msgctl', `semctl', and `shmctl'. */
+#define IPC_RMID 0 /* Remove identifier. */
+#define IPC_SET 1 /* Set `ipc_perm' options. */
+#define IPC_STAT 2 /* Get `ipc_perm' options. */
+#ifdef __USE_GNU
+# define IPC_INFO 3 /* See ipcs. */
+#endif
+
+/* Special key values. */
+#define IPC_PRIVATE ((__key_t) 0) /* Private key. */
+
+
+/* Data structure used to pass permission information to IPC operations. */
+struct ipc_perm
+ {
+ __key_t __key; /* Key. */
+ __uid_t uid; /* Owner's user ID. */
+ __gid_t gid; /* Owner's group ID. */
+ __uid_t cuid; /* Creator's user ID. */
+ __gid_t cgid; /* Creator's group ID. */
+#if __WORDSIZE == 32
+ unsigned short int __pad1;
+ unsigned short int mode; /* Read/write permission. */
+ unsigned short int __pad2;
+#else
+ __mode_t mode; /* Read/write permission. */
+ unsigned short int __pad2;
+#endif
+ unsigned short int __seq; /* Sequence number. */
+ unsigned int __pad3;
+ __extension__ unsigned long long int __glibc_reserved1;
+ __extension__ unsigned long long int __glibc_reserved2;
+ };
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/bits/mman.h b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/bits/mman.h
new file mode 100644
index 0000000000..acf7002beb
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/bits/mman.h
@@ -0,0 +1,111 @@
+/* Definitions for POSIX memory map interface. Linux/HPPA version.
+ Copyright (C) 1997-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_MMAN_H
+# error "Never use <bits/mman.h> directly; include <sys/mman.h> instead."
+#endif
+
+/* These are taken from the kernel definitions. */
+
+#define PROT_READ 0x1 /* Page can be read */
+#define PROT_WRITE 0x2 /* Page can be written */
+#define PROT_EXEC 0x4 /* Page can be executed */
+#define PROT_NONE 0x0 /* Page can not be accessed */
+#define PROT_GROWSDOWN 0x01000000 /* Extend change to start of
+ growsdown vma (mprotect only). */
+#define PROT_GROWSUP 0x02000000 /* Extend change to start of
+ growsup vma (mprotect only). */
+
+#define MAP_SHARED 0x01 /* Share changes */
+#define MAP_PRIVATE 0x02 /* Changes are private */
+#ifdef __USE_MISC
+# define MAP_TYPE 0x03 /* Mask for type of mapping */
+#endif
+
+/* Other flags. */
+#define MAP_FIXED 0x04 /* Interpret addr exactly */
+#ifdef __USE_MISC
+# define MAP_FILE 0x0
+# define MAP_ANONYMOUS 0x10 /* Don't use a file */
+# define MAP_ANON MAP_ANONYMOUS
+# define MAP_VARIABLE 0
+/* When MAP_HUGETLB is set bits [26:31] encode the log2 of the huge page size. */
+# define MAP_HUGE_SHIFT 26
+# define MAP_HUGE_MASK 0x3f
+#endif
+
+/* These are Linux-specific. */
+#ifdef __USE_MISC
+# define MAP_DENYWRITE 0x0800 /* ETXTBSY */
+# define MAP_EXECUTABLE 0x1000 /* Mark it as an executable */
+# define MAP_LOCKED 0x2000 /* Pages are locked */
+# define MAP_NORESERVE 0x4000 /* Don't check for reservations */
+# define MAP_GROWSDOWN 0x8000 /* Stack-like segment */
+# define MAP_POPULATE 0x10000 /* Populate (prefault) pagetables */
+# define MAP_NONBLOCK 0x20000 /* Do not block on IO */
+# define MAP_STACK 0x40000 /* Create for process/thread stacks */
+# define MAP_HUGETLB 0x80000 /* Create a huge page mapping */
+#endif
+
+/* Flags to "msync" */
+#define MS_SYNC 1 /* Synchronous memory sync */
+#define MS_ASYNC 2 /* Sync memory asynchronously */
+#define MS_INVALIDATE 4 /* Invalidate the caches */
+
+/* Flags to "mlockall" */
+#define MCL_CURRENT 1 /* Lock all current mappings */
+#define MCL_FUTURE 2 /* Lock all future mappings */
+#define MCL_ONFAULT 4 /* Lock all pages that are faulted in */
+
+/* Flags for `mremap'. */
+#ifdef __USE_GNU
+# define MREMAP_MAYMOVE 1
+# define MREMAP_FIXED 2
+#endif
+
+/* Advice to "madvise" */
+#ifdef __USE_MISC
+# define MADV_NORMAL 0 /* No further special treatment */
+# define MADV_RANDOM 1 /* Expect random page references */
+# define MADV_SEQUENTIAL 2 /* Expect sequential page references */
+# define MADV_WILLNEED 3 /* Will need these pages */
+# define MADV_DONTNEED 4 /* Dont need these pages */
+# define MADV_SPACEAVAIL 5 /* Insure that resources are reserved */
+# define MADV_VPS_PURGE 6 /* Purge pages from VM page cache */
+# define MADV_VPS_INHERIT 7 /* Inherit parents page size */
+# define MADV_FREE 8 /* Free pages only if memory pressure. */
+# define MADV_REMOVE 9 /* Remove these pages and resources. */
+# define MADV_DONTFORK 10 /* Do not inherit across fork. */
+# define MADV_DOFORK 11 /* Do inherit across fork. */
+# define MADV_MERGEABLE 65 /* KSM may merge identical pages */
+# define MADV_UNMERGEABLE 66 /* KSM may not merge identical pages */
+# define MADV_HUGEPAGE 67 /* Worth backing with hugepages */
+# define MADV_NOHUGEPAGE 68 /* Not worth backing with hugepages */
+# define MADV_DONTDUMP 69 /* Explicity exclude from the core dump,
+ overrides the coredump filter bits */
+# define MADV_DODUMP 70 /* Clear the MADV_NODUMP flag */
+#endif
+
+/* The POSIX people had to invent similar names for the same things. */
+#ifdef __USE_XOPEN2K
+# define POSIX_MADV_NORMAL 0 /* No further special treatment. */
+# define POSIX_MADV_RANDOM 1 /* Expect random page references. */
+# define POSIX_MADV_SEQUENTIAL 2 /* Expect sequential page references. */
+# define POSIX_MADV_WILLNEED 3 /* Will need these pages. */
+# define POSIX_MADV_DONTNEED 4 /* Don't need these pages. */
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/bits/msq.h b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/bits/msq.h
new file mode 100644
index 0000000000..e022a95809
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/bits/msq.h
@@ -0,0 +1,84 @@
+/* Copyright (C) 1995-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_MSG_H
+# error "Never use <bits/msq.h> directly; include <sys/msg.h> instead."
+#endif
+
+#include <bits/types.h>
+#include <bits/wordsize.h>
+
+/* Define options for message queue functions. */
+#define MSG_NOERROR 010000 /* no error if message is too big */
+#ifdef __USE_GNU
+# define MSG_EXCEPT 020000 /* recv any msg except of specified type */
+# define MSG_COPY 040000 /* copy (not remove) all queue messages */
+#endif
+
+/* Types used in the structure definition. */
+typedef unsigned long int msgqnum_t;
+typedef unsigned long int msglen_t;
+
+
+/* Structure of record for one message inside the kernel.
+ The type `struct msg' is opaque. */
+struct msqid_ds
+{
+ struct ipc_perm msg_perm; /* structure describing operation permission */
+#if __WORDSIZE == 32
+ unsigned int __pad1;
+#endif
+ __time_t msg_stime; /* time of last msgsnd command */
+#if __WORDSIZE == 32
+ unsigned int __pad2;
+#endif
+ __time_t msg_rtime; /* time of last msgrcv command */
+#if __WORDSIZE == 32
+ unsigned int __pad3;
+#endif
+ __time_t msg_ctime; /* time of last change */
+ unsigned long int __msg_cbytes; /* current number of bytes on queue */
+ msgqnum_t msg_qnum; /* number of messages currently on queue */
+ msglen_t msg_qbytes; /* max number of bytes allowed on queue */
+ __pid_t msg_lspid; /* pid of last msgsnd() */
+ __pid_t msg_lrpid; /* pid of last msgrcv() */
+ unsigned long int __glibc_reserved1;
+ unsigned long int __glibc_reserved2;
+};
+
+#ifdef __USE_MISC
+
+# define msg_cbytes __msg_cbytes
+
+/* ipcs ctl commands */
+# define MSG_STAT 11
+# define MSG_INFO 12
+
+/* buffer for msgctl calls IPC_INFO, MSG_INFO */
+struct msginfo
+ {
+ int msgpool;
+ int msgmap;
+ int msgmax;
+ int msgmnb;
+ int msgmni;
+ int msgssz;
+ int msgtql;
+ unsigned short int msgseg;
+ };
+
+#endif /* __USE_MISC */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/bits/sem.h b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/bits/sem.h
new file mode 100644
index 0000000000..a891494c3a
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/bits/sem.h
@@ -0,0 +1,91 @@
+/* Copyright (C) 1995-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_SEM_H
+# error "Never include <bits/sem.h> directly; use <sys/sem.h> instead."
+#endif
+
+#include <sys/types.h>
+#include <bits/wordsize.h>
+
+/* Flags for `semop'. */
+#define SEM_UNDO 0x1000 /* undo the operation on exit */
+
+/* Commands for `semctl'. */
+#define GETPID 11 /* get sempid */
+#define GETVAL 12 /* get semval */
+#define GETALL 13 /* get all semval's */
+#define GETNCNT 14 /* get semncnt */
+#define GETZCNT 15 /* get semzcnt */
+#define SETVAL 16 /* set semval */
+#define SETALL 17 /* set all semval's */
+
+
+/* Data structure describing a set of semaphores. */
+struct semid_ds
+{
+ struct ipc_perm sem_perm; /* operation permission struct */
+#if __WORDSIZE == 32
+ unsigned int __pad1;
+#endif
+ __time_t sem_otime; /* last semop() time */
+#if __WORDSIZE == 32
+ unsigned int __pad2;
+#endif
+ __time_t sem_ctime; /* last time changed by semctl() */
+ unsigned long int sem_nsems; /* number of semaphores in set */
+ unsigned long int __glibc_reserved1;
+ unsigned long int __glibc_reserved2;
+};
+
+/* The user should define a union like the following to use it for arguments
+ for `semctl'.
+
+ union semun
+ {
+ int val; <= value for SETVAL
+ struct semid_ds *buf; <= buffer for IPC_STAT & IPC_SET
+ unsigned short int *array; <= array for GETALL & SETALL
+ struct seminfo *__buf; <= buffer for IPC_INFO
+ };
+
+ Previous versions of this file used to define this union but this is
+ incorrect. One can test the macro _SEM_SEMUN_UNDEFINED to see whether
+ one must define the union or not. */
+#define _SEM_SEMUN_UNDEFINED 1
+
+#ifdef __USE_MISC
+
+/* ipcs ctl cmds */
+# define SEM_STAT 18
+# define SEM_INFO 19
+
+struct seminfo
+{
+ int semmap;
+ int semmni;
+ int semmns;
+ int semmnu;
+ int semmsl;
+ int semopm;
+ int semume;
+ int semusz;
+ int semvmx;
+ int semaem;
+};
+
+#endif /* __USE_MISC */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/bits/shm.h b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/bits/shm.h
new file mode 100644
index 0000000000..794f0ab2da
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/bits/shm.h
@@ -0,0 +1,107 @@
+/* Copyright (C) 1995-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_SHM_H
+# error "Never include <bits/shm.h> directly; use <sys/shm.h> instead."
+#endif
+
+#include <bits/types.h>
+#include <bits/wordsize.h>
+
+/* Permission flag for shmget. */
+#define SHM_R 0400 /* or S_IRUGO from <linux/stat.h> */
+#define SHM_W 0200 /* or S_IWUGO from <linux/stat.h> */
+
+/* Flags for `shmat'. */
+#define SHM_RDONLY 010000 /* attach read-only else read-write */
+#define SHM_RND 020000 /* round attach address to SHMLBA */
+#define SHM_REMAP 040000 /* take-over region on attach */
+#define SHM_EXEC 0100000 /* execution access */
+
+/* Commands for `shmctl'. */
+#define SHM_LOCK 11 /* lock segment (root only) */
+#define SHM_UNLOCK 12 /* unlock segment (root only) */
+
+/* Segment low boundary address multiple. */
+#define SHMLBA 0x00400000 /* address needs to be 4 Mb aligned */
+
+/* Type to count number of attaches. */
+typedef unsigned long int shmatt_t;
+
+/* Data structure describing a shared memory segment. */
+struct shmid_ds
+ {
+ struct ipc_perm shm_perm; /* operation permission struct */
+#if __WORDSIZE == 32
+ unsigned int __pad1;
+#endif
+ __time_t shm_atime; /* time of last shmat() */
+#if __WORDSIZE == 32
+ unsigned int __pad2;
+#endif
+ __time_t shm_dtime; /* time of last shmdt() */
+#if __WORDSIZE == 32
+ unsigned int __pad3;
+#endif
+ __time_t shm_ctime; /* time of last change by shmctl() */
+#if __WORDSIZE == 32
+ unsigned int __pad4;
+#endif
+ size_t shm_segsz; /* size of segment in bytes */
+ __pid_t shm_cpid; /* pid of creator */
+ __pid_t shm_lpid; /* pid of last shmop */
+ shmatt_t shm_nattch; /* number of current attaches */
+ unsigned long int __glibc_reserved1;
+ unsigned long int __glibc_reserved2;
+ };
+
+#ifdef __USE_MISC
+
+/* ipcs ctl commands */
+# define SHM_STAT 13
+# define SHM_INFO 14
+
+/* shm_mode upper byte flags */
+# define SHM_DEST 01000 /* segment will be destroyed on last detach */
+# define SHM_LOCKED 02000 /* segment will not be swapped */
+# define SHM_HUGETLB 04000 /* segment is mapped via hugetlb */
+# define SHM_NORESERVE 010000 /* don't check for reservations */
+
+struct shminfo
+ {
+ unsigned long shmmax;
+ unsigned long shmmin;
+ unsigned long shmmni;
+ unsigned long shmseg;
+ unsigned long shmall;
+ unsigned long __glibc_reserved1;
+ unsigned long __glibc_reserved2;
+ unsigned long __glibc_reserved3;
+ unsigned long __glibc_reserved4;
+ };
+
+struct shm_info
+ {
+ int used_ids;
+ unsigned long int shm_tot; /* total allocated shm */
+ unsigned long int shm_rss; /* total resident shm */
+ unsigned long int shm_swp; /* total swapped shm */
+ unsigned long int swap_attempts;
+ unsigned long int swap_successes;
+ };
+
+#endif /* __USE_MISC */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/bits/sigaction.h b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/bits/sigaction.h
new file mode 100644
index 0000000000..06ba2db8f2
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/bits/sigaction.h
@@ -0,0 +1,81 @@
+/* Definitions for Linux/HPPA sigaction.
+ Copyright (C) 1996-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SIGNAL_H
+# error "Never include <bits/sigaction.h> directly; use <signal.h> instead."
+#endif
+
+#include <bits/wordsize.h>
+
+/* Structure describing the action to be taken when a signal arrives. */
+struct sigaction
+ {
+ /* Signal handler. */
+#ifdef __USE_POSIX199309
+ union
+ {
+ /* Used if SA_SIGINFO is not set. */
+ __sighandler_t sa_handler;
+ /* Used if SA_SIGINFO is set. */
+ void (*sa_sigaction) (int, siginfo_t *, void *);
+ }
+ __sigaction_handler;
+# define sa_handler __sigaction_handler.sa_handler
+# define sa_sigaction __sigaction_handler.sa_sigaction
+#else
+ __sighandler_t sa_handler;
+#endif
+
+ /* Special flags. */
+#if __WORDSIZE == 64
+ int __glibc_reserved0;
+#endif
+ int sa_flags;
+
+ /* Additional set of signals to be blocked. */
+ __sigset_t sa_mask;
+ };
+
+/* Bits in `sa_flags'. */
+
+#define SA_NOCLDSTOP 0x00000008 /* Don't send SIGCHLD when children stop. */
+#define SA_NOCLDWAIT 0x00000080 /* Don't create zombie on child death. */
+#define SA_SIGINFO 0x00000010 /* Invoke signal-catching function with
+ three arguments instead of one. */
+#if defined __USE_UNIX98 || defined __USE_MISC
+# define SA_ONSTACK 0x00000001 /* Use signal stack by using `sa_restorer'. */
+#endif
+#if defined __USE_UNIX98 || defined __USE_XOPEN2K8
+# define SA_RESETHAND 0x00000004 /* Reset to SIG_DFL on entry to handler. */
+# define SA_NODEFER 0x00000020 /* Don't automatically block the signal
+ when its handler is being executed. */
+# define SA_RESTART 0x00000040 /* Restart syscall on signal return. */
+#endif
+#ifdef __USE_MISC
+# define SA_INTERRUPT 0x20000000 /* Historic no-op. */
+
+/* Some aliases for the SA_ constants. */
+# define SA_NOMASK SA_NODEFER
+# define SA_ONESHOT SA_RESETHAND
+# define SA_STACK SA_ONSTACK
+#endif
+
+/* Values for the HOW argument to `sigprocmask'. */
+#define SIG_BLOCK 0 /* for blocking signals */
+#define SIG_UNBLOCK 1 /* for unblocking signals */
+#define SIG_SETMASK 2 /* for setting the signal mask */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/bits/signalfd.h b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/bits/signalfd.h
new file mode 100644
index 0000000000..34bf6d6bf3
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/bits/signalfd.h
@@ -0,0 +1,29 @@
+/* Copyright (C) 2007-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_SIGNALFD_H
+# error "Never use <bits/signalfd.h> directly; include <sys/signalfd.h> instead."
+#endif
+
+/* Flags for signalfd. */
+enum
+ {
+ SFD_CLOEXEC = 010000000,
+#define SFD_CLOEXEC SFD_CLOEXEC
+ SFD_NONBLOCK = 00200004 /* HPUX has separate NDELAY & NONBLOCK */
+#define SFD_NONBLOCK SFD_NONBLOCK
+ };
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/bits/signum.h b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/bits/signum.h
new file mode 100644
index 0000000000..20c0b60c9f
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/bits/signum.h
@@ -0,0 +1,89 @@
+/* Signal number definitions. Linux/HPPA version.
+ Copyright (C) 1995-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifdef _SIGNAL_H
+
+/* Fake signal functions. */
+#define SIG_ERR ((__sighandler_t) -1) /* Error return. */
+#define SIG_DFL ((__sighandler_t) 0) /* Default action. */
+#define SIG_IGN ((__sighandler_t) 1) /* Ignore signal. */
+
+#ifdef __USE_XOPEN
+# define SIG_HOLD ((__sighandler_t) 2) /* Add signal to hold mask. */
+#endif
+
+
+/* Signals. */
+#define SIGHUP 1 /* Hangup (POSIX). */
+#define SIGINT 2 /* Interrupt (ANSI). */
+#define SIGQUIT 3 /* Quit (POSIX). */
+#define SIGILL 4 /* Illegal instruction (ANSI). */
+#define SIGTRAP 5 /* Trace trap (POSIX). */
+#define SIGABRT 6 /* Abort (ANSI). */
+#define SIGIOT 6 /* IOT trap (4.2 BSD). */
+#define SIGSTKFLT 7 /* Stack fault. */
+#define SIGFPE 8 /* Floating-point exception (ANSI). */
+#define SIGKILL 9 /* Kill, unblockable (POSIX). */
+#define SIGBUS 10 /* BUS error (4.2 BSD). */
+#define SIGSEGV 11 /* Segmentation violation (ANSI). */
+#define SIGXCPU 12 /* CPU limit exceeded (4.2 BSD). */
+#define SIGPIPE 13 /* Broken pipe (POSIX). */
+#define SIGALRM 14 /* Alarm clock (POSIX). */
+#define SIGTERM 15 /* Termination (ANSI). */
+#define SIGUSR1 16 /* User-defined signal 1 (POSIX). */
+#define SIGUSR2 17 /* User-defined signal 2 (POSIX). */
+#define SIGCLD SIGCHLD /* Same as SIGCHLD (System V). */
+#define SIGCHLD 18 /* Child status has changed (POSIX). */
+#define SIGPWR 19 /* Power failure restart (System V). */
+#define SIGVTALRM 20 /* Virtual alarm clock (4.2 BSD). */
+#define SIGPROF 21 /* Profiling alarm clock (4.2 BSD). */
+#define SIGPOLL SIGIO /* Pollable event occurred (System V). */
+#define SIGIO 22 /* I/O now possible (4.2 BSD). */
+#define SIGWINCH 23 /* Window size change (4.3 BSD, Sun). */
+#define SIGSTOP 24 /* Stop, unblockable (POSIX). */
+#define SIGTSTP 25 /* Keyboard stop (POSIX). */
+#define SIGCONT 26 /* Continue (POSIX). */
+#define SIGTTIN 27 /* Background read from tty (POSIX). */
+#define SIGTTOU 28 /* Background write to tty (POSIX). */
+#define SIGURG 29 /* Urgent condition on socket (4.2 BSD). */
+#define SIGXFSZ 30 /* File size limit exceeded (4.2 BSD). */
+#define SIGSYS 31 /* Bad system call. */
+#define SIGUNUSED 31
+
+#define _NSIG 65 /* Biggest signal number + 1
+ (including real-time signals). */
+
+#define SIGRTMIN (__libc_current_sigrtmin ())
+#define SIGRTMAX (__libc_current_sigrtmax ())
+
+/* These are the hard limits of the kernel. These values should not be
+ used directly at user level. */
+/* In the Linux kernel version 3.17, and glibc 2.21, the signal numbers
+ were rearranged in order to make hppa like every other arch. Previously
+ we started __SIGRTMIN at 37, and that meant several pieces of important
+ software, including systemd, would fail to build. To support systemd we
+ removed SIGEMT and SIGLOST, and rearranged the others according to
+ expected values. This is technically an ABI incompatible change, but
+ because zero applications use SIGSTKFLT, SIGXCPU, SIGXFSZ and SIGSYS
+ nothing broke. Nothing uses SIGEMT and SIGLOST, and they were present
+ for HPUX compatibility which is no longer supported. Thus because
+ nothing breaks we don't do any compatibility work here. */
+#define __SIGRTMIN 32 /* Kernel > 3.17. */
+#define __SIGRTMAX (_NSIG - 1)
+
+#endif /* <signal.h> included. */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/bits/socket_type.h b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/bits/socket_type.h
new file mode 100644
index 0000000000..8c99f2116f
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/bits/socket_type.h
@@ -0,0 +1,55 @@
+/* Define enum __socket_type for Linux/HP-PARISC.
+ Copyright (C) 2012-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_SOCKET_H
+# error "Never include <bits/socket_type.h> directly; use <sys/socket.h> instead."
+#endif
+
+/* Types of sockets. */
+enum __socket_type
+{
+ SOCK_STREAM = 1, /* Sequenced, reliable, connection-based
+ byte streams. */
+#define SOCK_STREAM SOCK_STREAM
+ SOCK_DGRAM = 2, /* Connectionless, unreliable datagrams
+ of fixed maximum length. */
+#define SOCK_DGRAM SOCK_DGRAM
+ SOCK_RAW = 3, /* Raw protocol interface. */
+#define SOCK_RAW SOCK_RAW
+ SOCK_RDM = 4, /* Reliably-delivered messages. */
+#define SOCK_RDM SOCK_RDM
+ SOCK_SEQPACKET = 5, /* Sequenced, reliable, connection-based,
+ datagrams of fixed maximum length. */
+#define SOCK_SEQPACKET SOCK_SEQPACKET
+ SOCK_DCCP = 6, /* Datagram Congestion Control Protocol. */
+#define SOCK_DCCP SOCK_DCCP
+ SOCK_PACKET = 10, /* Linux specific way of getting packets
+ at the dev level. For writing rarp and
+ other similar things on the user level. */
+#define SOCK_PACKET SOCK_PACKET
+
+ /* Flags to be ORed into the type parameter of socket and socketpair and
+ used for the flags parameter of paccept. */
+
+ SOCK_CLOEXEC = 010000000, /* Atomically set close-on-exec flag for the
+ new descriptor(s). */
+#define SOCK_CLOEXEC SOCK_CLOEXEC
+ SOCK_NONBLOCK = 0x40000000 /* Atomically mark descriptor(s) as
+ non-blocking. */
+#define SOCK_NONBLOCK SOCK_NONBLOCK
+};
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/bits/timerfd.h b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/bits/timerfd.h
new file mode 100644
index 0000000000..2a62c980af
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/bits/timerfd.h
@@ -0,0 +1,29 @@
+/* Copyright (C) 2008-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_TIMERFD_H
+# error "Never use <bits/timerfd.h> directly; include <sys/timerfd.h> instead."
+#endif
+
+/* Bits to be set in the FLAGS parameter of `timerfd_create'. */
+enum
+ {
+ TFD_CLOEXEC = 010000000,
+#define TFD_CLOEXEC TFD_CLOEXEC
+ TFD_NONBLOCK = 000200004 /* HPUX has separate NDELAY & NONBLOCK */
+#define TFD_NONBLOCK TFD_NONBLOCK
+ };
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/brk.c b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/brk.c
new file mode 100644
index 0000000000..f500ab419f
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/brk.c
@@ -0,0 +1,41 @@
+/* brk system call for Linux/HPPA.
+ Copyright (C) 1995-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <unistd.h>
+#include <sysdep.h>
+
+/* This must be initialized data because commons can't have aliases. */
+void *__curbrk = 0;
+
+int
+__brk (void *addr)
+{
+ void *newbrk;
+
+ __curbrk = newbrk = (void *) INLINE_SYSCALL (brk, 1, addr);
+
+ if (newbrk < addr)
+ {
+ __set_errno (ENOMEM);
+ return -1;
+ }
+
+ return 0;
+}
+weak_alias (__brk, brk)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/c++-types.data b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/c++-types.data
new file mode 100644
index 0000000000..fde53bf337
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/c++-types.data
@@ -0,0 +1,67 @@
+blkcnt64_t:x
+blkcnt_t:l
+blksize_t:l
+caddr_t:Pc
+clockid_t:i
+clock_t:l
+daddr_t:i
+dev_t:y
+fd_mask:l
+fsblkcnt64_t:y
+fsblkcnt_t:m
+fsfilcnt64_t:y
+fsfilcnt_t:m
+fsid_t:8__fsid_t
+gid_t:j
+id_t:j
+ino64_t:y
+ino_t:m
+int16_t:s
+int32_t:i
+int64_t:x
+int8_t:a
+intptr_t:i
+key_t:i
+loff_t:x
+mode_t:j
+nlink_t:j
+off64_t:x
+off_t:l
+pid_t:i
+pthread_attr_t:14pthread_attr_t
+pthread_barrier_t:17pthread_barrier_t
+pthread_barrierattr_t:21pthread_barrierattr_t
+pthread_cond_t:14pthread_cond_t
+pthread_condattr_t:18pthread_condattr_t
+pthread_key_t:j
+pthread_mutex_t:15pthread_mutex_t
+pthread_mutexattr_t:19pthread_mutexattr_t
+pthread_once_t:i
+pthread_rwlock_t:16pthread_rwlock_t
+pthread_rwlockattr_t:20pthread_rwlockattr_t
+pthread_spinlock_t:i
+pthread_t:m
+quad_t:x
+register_t:i
+rlim64_t:y
+rlim_t:m
+sigset_t:10__sigset_t
+size_t:j
+socklen_t:j
+ssize_t:i
+suseconds_t:l
+time_t:l
+u_char:h
+uid_t:j
+uint:j
+u_int:j
+u_int16_t:t
+u_int32_t:j
+u_int64_t:y
+u_int8_t:h
+ulong:m
+u_long:m
+u_quad_t:y
+useconds_t:j
+ushort:t
+u_short:t
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/clone.S b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/clone.S
new file mode 100644
index 0000000000..d36b302199
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/clone.S
@@ -0,0 +1,161 @@
+/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by David Huggins-Daines <dhd@debian.org>, 2000.
+ Based on the Alpha version by Richard Henderson <rth@tamu.edu>, 1996.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+/* clone() is even more special than fork() as it mucks with stacks
+ and invokes a function in the right context after its all over. */
+
+#include <asm/unistd.h>
+#include <sysdep.h>
+#define _ERRNO_H 1
+#include <bits/errno.h>
+#include <tcb-offsets.h>
+
+/* Non-thread code calls __clone with the following parameters:
+ int clone(int (*fn)(void *arg),
+ void *child_stack,
+ int flags,
+ void *arg)
+
+ NPTL Code will call __clone with the following parameters:
+ int clone(int (*fn)(void *arg),
+ void *child_stack,
+ int flags,
+ void *arg,
+ int *parent_tidptr,
+ struct user_desc *newtls,
+ int *child_pidptr)
+
+ The code should not mangle the extra input registers.
+ Syscall expects: Input to __clone:
+ 4(r25) - function pointer (r26, arg0)
+ 0(r25) - argument (r23, arg3)
+ r26 - clone flags. (r24, arg2)
+ r25+64 - user stack pointer. (r25, arg1)
+ r24 - parent tid pointer. (stack - 52)
+ r23 - struct user_desc newtls pointer. (stack - 56)
+ r22 - child tid pointer. (stack - 60)
+ r20 - clone syscall number (constant)
+
+ Return:
+
+ On success the thread ID of the child process is returend in
+ the callers context.
+ On error return -1, and set errno to the value returned by
+ the syscall.
+ */
+
+ .text
+ENTRY(__clone)
+ /* Prologue */
+ stwm %r4, 64(%sp)
+ stw %sp, -4(%sp)
+#ifdef PIC
+ stw %r19, -32(%sp)
+#endif
+
+ /* Sanity check arguments. */
+ comib,=,n 0, %arg0, .LerrorSanity /* no NULL function pointers */
+ comib,=,n 0, %arg1, .LerrorSanity /* no NULL stack pointers */
+
+ /* Save the function pointer, arg, and flags on the new stack. */
+ stwm %r26, 64(%r25)
+ stw %r23, -60(%r25)
+ stw %r24, -56(%r25)
+ /* Clone arguments are (int flags, void * child_stack) */
+ copy %r24, %r26 /* flags are first */
+ /* User stack pointer is in the correct register already */
+
+ /* Load args from stack... */
+ ldw -116(%sp), %r24 /* Load parent_tidptr */
+ ldw -120(%sp), %r23 /* Load newtls */
+ ldw -124(%sp), %r22 /* Load child_tidptr */
+
+ /* Save the PIC register. */
+#ifdef PIC
+ copy %r19, %r4 /* parent */
+#endif
+
+ /* Do the system call */
+ ble 0x100(%sr2, %r0)
+ ldi __NR_clone, %r20
+
+ ldi -4096, %r1
+ comclr,>>= %r1, %ret0, %r0 /* Note: unsigned compare. */
+ b,n .LerrorRest
+
+ /* Restore the PIC register. */
+#ifdef PIC
+ copy %r4, %r19 /* parent */
+#endif
+
+ comib,=,n 0, %ret0, .LthreadStart
+
+ /* Successful return from the parent
+ No need to restore the PIC register,
+ since we return immediately. */
+
+ ldw -84(%sp), %rp
+ bv %r0(%rp)
+ ldwm -64(%sp), %r4
+
+.LerrorRest:
+ /* Something bad happened -- no child created */
+ bl __syscall_error, %rp
+ sub %r0, %ret0, %arg0
+ ldw -84(%sp), %rp
+ /* Return after setting errno, ret0 is set to -1 by __syscall_error. */
+ bv %r0(%rp)
+ ldwm -64(%sp), %r4
+
+.LerrorSanity:
+ /* Sanity checks failed, return -1, and set errno to EINVAL. */
+ bl __syscall_error, %rp
+ ldi EINVAL, %arg0
+ ldw -84(%sp), %rp
+ bv %r0(%rp)
+ ldwm -64(%sp), %r4
+
+.LthreadStart:
+ /* Load up the arguments. */
+ ldw -60(%sp), %arg0
+ ldw -64(%sp), %r22
+
+ /* $$dyncall fixes child's PIC register */
+
+ /* Call the user's function */
+#ifdef PIC
+ copy %r19, %r4
+#endif
+ bl $$dyncall, %r31
+ copy %r31, %rp
+#ifdef PIC
+ copy %r4, %r19
+#endif
+ /* The call to _exit needs saved r19. */
+ bl _exit, %rp
+ copy %ret0, %arg0
+
+ /* We should not return from _exit.
+ We do not restore r4, or the stack state. */
+ iitlbp %r0, (%sr0, %r0)
+
+PSEUDO_END(__clone)
+
+libc_hidden_def (__clone)
+weak_alias (__clone, clone)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/fcntl.c b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/fcntl.c
new file mode 100644
index 0000000000..ea951bc4f9
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/fcntl.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/i386/fcntl.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/fxstat.c b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/fxstat.c
new file mode 100644
index 0000000000..4f219f0b9d
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/fxstat.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/i386/fxstat.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/fxstatat.c b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/fxstatat.c
new file mode 100644
index 0000000000..0f8b3135d8
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/fxstatat.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/i386/fxstatat.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/getcontext.S b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/getcontext.S
new file mode 100644
index 0000000000..6f52f2149d
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/getcontext.S
@@ -0,0 +1,165 @@
+/* Get current user context.
+ Copyright (C) 2008-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Helge Deller <deller@gmx.de>, 2008.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+
+#include "ucontext_i.h"
+
+
+ /* Trampoline function. Non-standard calling ABI. */
+ /* Can not use ENTRY(__getcontext_ret) here. */
+ .type __getcontext_ret, @function
+ .hidden __getcontext_ret
+__getcontext_ret:
+ .proc
+ .callinfo FRAME=0,NO_CALLS
+ /* r26-r23 contain original r3-r6, but because setcontext
+ does not reload r3-r6 (it's using them as temporaries)
+ we must save them elsewhere and swap them back in. */
+ copy %r23, %r3
+ copy %r24, %r4
+ copy %r25, %r5
+ copy %r26, %r6
+ /* r20 contains original return pointer. */
+ bv 0(%r20)
+ copy %r0, %ret0
+ .procend
+ .size __getcontext_ret, .-__getcontext_ret
+
+
+ENTRY(__getcontext)
+ /* Save the registers. */
+ stw %r0, oR0(%r26)
+ stw %r1, oR1(%r26)
+ /* stw %r2, oR2(%r26) - used for trampoline. */
+ stw %r3, oR3(%r26)
+ stw %r4, oR4(%r26)
+ stw %r5, oR5(%r26)
+ stw %r6, oR6(%r26)
+ stw %r7, oR7(%r26)
+ stw %r8, oR8(%r26)
+ stw %r9, oR9(%r26)
+ stw %r10, oR10(%r26)
+ stw %r11, oR11(%r26)
+ stw %r12, oR12(%r26)
+ stw %r13, oR13(%r26)
+ stw %r14, oR14(%r26)
+ stw %r15, oR15(%r26)
+ stw %r16, oR16(%r26)
+ stw %r17, oR17(%r26)
+ stw %r18, oR18(%r26)
+ stw %r19, oR19(%r26)
+ /* stw %r20, oR20(%r26) - used for trampoline. */
+ stw %r21, oR21(%r26)
+ stw %r22, oR22(%r26)
+ /* stw %r23, oR23(%r26) - used for trampoline. */
+ /* stw %r24, oR24(%r26) - used for trampoline. */
+ /* stw %r25, oR25(%r26) - used for trampoline. */
+ /* stw %r26, oR26(%r26) - used for trampoline. */
+ stw %r27, oR27(%r26)
+ stw %r28, oR28(%r26)
+ stw %r29, oR29(%r26)
+ stw %sp, oR30(%r26)
+ stw %r31, oR31(%r26)
+
+ stw %r0, oUC_FLAGS(%r26)
+ /* stw %r0, oUC_LINK(%r26) - Do not overwrite. */
+ stw %sp, oSS_SP(%r26)
+ stw %r0, oSS_FLAGS(%r26)
+ stw %r0, oSS_SIZE(%r26)
+
+ stw %r0, oSC_FLAGS(%r26)
+
+ stw %r0, oIASQ0(%r26)
+ stw %r0, oIASQ1(%r26)
+ stw %r0, oIAOQ0(%r26)
+ stw %r0, oIAOQ1(%r26)
+ stw %r0, oSAR(%r26) /* used as flag in swapcontext(). */
+
+
+ /* Store floating-point regs. */
+ ldo oFPREGS0(%r26),%r1
+ fstds,ma %fr0, 8(%r1)
+ fstds,ma %fr1, 8(%r1)
+ fstds,ma %fr2, 8(%r1)
+ fstds,ma %fr3, 8(%r1)
+ fstds,ma %fr4, 8(%r1)
+ fstds,ma %fr5, 8(%r1)
+ fstds,ma %fr6, 8(%r1)
+ fstds,ma %fr7, 8(%r1)
+ fstds,ma %fr8, 8(%r1)
+ fstds,ma %fr9, 8(%r1)
+ fstds,ma %fr10, 8(%r1)
+ fstds,ma %fr11, 8(%r1)
+ fstds,ma %fr12, 8(%r1)
+ fstds,ma %fr13, 8(%r1)
+ fstds,ma %fr14, 8(%r1)
+ fstds,ma %fr15, 8(%r1)
+ fstds,ma %fr16, 8(%r1)
+ fstds,ma %fr17, 8(%r1)
+ fstds,ma %fr18, 8(%r1)
+ fstds,ma %fr19, 8(%r1)
+ fstds,ma %fr20, 8(%r1)
+ fstds,ma %fr21, 8(%r1)
+ fstds,ma %fr22, 8(%r1)
+ fstds,ma %fr23, 8(%r1)
+ fstds,ma %fr24, 8(%r1)
+ fstds,ma %fr25, 8(%r1)
+ fstds,ma %fr26, 8(%r1)
+ fstds,ma %fr27, 8(%r1)
+ fstds,ma %fr28, 8(%r1)
+ fstds,ma %fr29, 8(%r1)
+ fstds,ma %fr30, 8(%r1)
+ fstds %fr31, 0(%r1)
+
+ /* Prologue */
+ stwm %r4, 64(%sp)
+#ifdef PIC
+ stw %r19, -32(%sp)
+#endif
+
+ /* Set up the trampoline registers.
+ r20, r23, r24, r25, r26 and r2 are clobbered
+ by call to getcontext() anyway. Reuse them. */
+ stw %r2, oR20(%r26)
+ stw %r3, oR23(%r26)
+ stw %r4, oR24(%r26)
+ stw %r5, oR25(%r26)
+ stw %r6, oR26(%r26)
+ ldil L%__getcontext_ret, %r1
+ ldo R%__getcontext_ret(%r1), %r1
+ stw %r1, oR2(%r26)
+
+ /* Save the current signal mask. */
+ /* sigprocmask(SIG_BLOCK, NULL, &ucp->uc_sigmask); */
+ ldo oSIGMASK(%r26), %r24
+ copy %r0, %r25
+ bl sigprocmask, %r2
+ ldi SIG_BLOCK, %r26
+
+ /* Epilogue */
+ ldw -84(%sp), %r2
+#ifdef PIC
+ ldw -96(%sp), %r19
+#endif
+ bv %r0(%r2)
+ ldwm -64(%sp), %r4
+END(__getcontext)
+
+weak_alias (__getcontext, getcontext)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/getdents64.c b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/getdents64.c
new file mode 100644
index 0000000000..0c75fb5a06
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/getdents64.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/i386/getdents64.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/internaltypes.h b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/internaltypes.h
new file mode 100644
index 0000000000..d6496579da
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/internaltypes.h
@@ -0,0 +1,84 @@
+#include_next <internaltypes.h>
+#ifndef _INTERNAL_TYPES_H_HPPA_
+#define _INTERNAL_TYPES_H_HPPA_ 1
+#include <atomic.h>
+
+/* In GLIBC 2.10 HPPA switched from Linuxthreads to NPTL, and in order
+to maintain ABI compatibility with pthread_cond_t, some care had to be
+taken.
+
+The NPTL pthread_cond_t grew in size. When HPPA switched to NPTL, we
+dropped the use of ldcw, and switched to the kernel helper routine for
+compare-and-swap. This allowed HPPA to use the 4-word 16-byte aligned
+lock words, and alignment words to store the additional pthread_cond_t
+data. Once organized properly the new NPTL pthread_cond_t was 1 word
+smaller than the Linuxthreads version.
+
+However, we were faced with the case that users may have initialized the
+pthread_cond_t with PTHREAD_COND_INITIALIZER. In this case, the first
+four words were set to one, and must be cleared before any NPTL code
+used these words.
+
+We didn't want to use LDCW, because it continues to be a source of bugs
+when applications memset pthread_cond_t to all zeroes by accident. This
+works on all other architectures where lock words are unlocked at zero.
+Remember that because of the semantics of LDCW, a locked word is set to
+zero, and an unlocked word is set to 1.
+
+Instead we used atomic_compare_and_exchange_val_acq, but we couldn't use
+this on any of the pthread_cond_t words, otherwise it might interfere
+with the current operation of the structure. To solve this problem we
+used the left over word.
+
+If the stucture was initialized by a legacy Linuxthread
+PTHREAD_COND_INITIALIZER it contained a 1, and this indicates that the
+structure requires zeroing for NPTL. The first thread to come upon a
+pthread_cond_t with a 1 in the __initializer field, will
+compare-and-swap the value, placing a 2 there which will cause all other
+threads using the same pthread_cond_t to wait for the completion of the
+initialization. Lastly, we use a store (with memory barrier) to change
+__initializer from 2 to 0. Note that the store is strongly ordered, but
+we use the PA 1.1 compatible form which is ",ma" with zero offset.
+
+In the future, when the application is recompiled with NPTL
+PTHREAD_COND_INITIALIZER it will be a quick compare-and-swap, which
+fails because __initializer is zero, and the structure will be used as
+is correctly. */
+
+#define cond_compat_clear(var) \
+({ \
+ int tmp = 0; \
+ var->__data.__wseq = 0; \
+ var->__data.__signals_sent = 0; \
+ var->__data.__confirmed = 0; \
+ var->__data.__generation = 0; \
+ var->__data.__mutex = NULL; \
+ var->__data.__quiescence_waiters = 0; \
+ var->__data.__clockid = 0; \
+ /* Clear __initializer last, to indicate initialization is done. */ \
+ /* This synchronizes-with the acquire load below. */ \
+ atomic_store_release (&var->__data.__initializer, 0); \
+})
+
+#define cond_compat_check_and_clear(var) \
+({ \
+ int v; \
+ int *value = &var->__data.__initializer; \
+ /* This synchronizes-with the release store above. */ \
+ while ((v = atomic_load_acquire (value)) != 0) \
+ { \
+ if (v == 1 \
+ /* Relaxed MO is fine; it only matters who's first. */ \
+ && atomic_compare_exchange_acquire_weak_relaxed (value, 1, 2)) \
+ { \
+ /* We're first; initialize structure. */ \
+ cond_compat_clear (var); \
+ break; \
+ } \
+ else \
+ /* Yield before we re-check initialization status. */ \
+ sched_yield (); \
+ } \
+})
+
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/ipc_priv.h b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/ipc_priv.h
new file mode 100644
index 0000000000..d880f5029a
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/ipc_priv.h
@@ -0,0 +1,21 @@
+/* Old SysV permission definition for Linux. Hppa version.
+ Copyright (C) 2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sys/ipc.h> /* For __key_t */
+
+#define __IPC_64 0x0
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/kernel-features.h b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/kernel-features.h
new file mode 100644
index 0000000000..0e73a5c0df
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/kernel-features.h
@@ -0,0 +1,29 @@
+/* Set flags signalling availability of kernel features based on given
+ kernel version number.
+ Copyright (C) 2006-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+
+/* Support for the utimes syscall was added in 3.14. */
+#if __LINUX_KERNEL_VERSION >= 0x030e00
+# define __ASSUME_UTIMES 1
+#endif
+
+#include_next <kernel-features.h>
+
+#define __ASSUME_RECV_SYSCALL 1
+#define __ASSUME_SEND_SYSCALL 1
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/kernel_sigaction.h b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/kernel_sigaction.h
new file mode 100644
index 0000000000..af048cbe7d
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/kernel_sigaction.h
@@ -0,0 +1,18 @@
+/* We have a separate header file here because we do not support
+ SA_RESTORER on hppa. */
+
+/* This is the sigaction struction from the Linux 2.1.20 kernel. */
+/* Blah. This is bogus. We don't ever use it. */
+struct old_kernel_sigaction {
+ __sighandler_t k_sa_handler;
+ unsigned long sa_mask;
+ unsigned long sa_flags;
+};
+
+/* This is the sigaction structure from the Linux 2.1.68 kernel. */
+
+struct kernel_sigaction {
+ __sighandler_t k_sa_handler;
+ unsigned long sa_flags;
+ sigset_t sa_mask;
+};
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/kernel_stat.h b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/kernel_stat.h
new file mode 100644
index 0000000000..a3ac53a1ef
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/kernel_stat.h
@@ -0,0 +1,34 @@
+/* definition of "struct stat" from the kernel */
+struct kernel_stat {
+ unsigned long st_dev; /* dev_t is 32 bits on parisc */
+ unsigned long st_ino; /* 32 bits */
+ unsigned short st_mode; /* 16 bits */
+ unsigned short st_nlink; /* 16 bits */
+ unsigned short st_reserved1; /* old st_uid */
+ unsigned short st_reserved2; /* old st_gid */
+ unsigned long st_rdev;
+ unsigned long st_size;
+ struct timespec st_atim;
+ struct timespec st_mtim;
+ struct timespec st_ctim;
+ long st_blksize;
+ long st_blocks;
+ unsigned long __glibc_reserved1; /* ACL stuff */
+ unsigned long __glibc_reserved2; /* network */
+ unsigned long __glibc_reserved3; /* network */
+ unsigned long __glibc_reserved4; /* cnodes */
+ unsigned short __glibc_reserved5; /* netsite */
+ short st_fstype;
+ unsigned long st_realdev;
+ unsigned short st_basemode;
+ unsigned short st_spareshort;
+ unsigned long st_uid;
+ unsigned long st_gid;
+ unsigned long st_spare4[3];
+};
+
+#define _HAVE_STAT_NSEC
+#define _HAVE_STAT64_NSEC
+
+#define XSTAT_IS_XSTAT64 0
+#define STATFS_IS_STATFS64 0
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/ld.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/ld.abilist
new file mode 100644
index 0000000000..fc1c60ea17
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/ld.abilist
@@ -0,0 +1,12 @@
+GLIBC_2.2 GLIBC_2.2 A
+GLIBC_2.2 __libc_stack_end D 0x4
+GLIBC_2.2 _dl_mcount F
+GLIBC_2.2 _r_debug D 0x14
+GLIBC_2.2 calloc F
+GLIBC_2.2 free F
+GLIBC_2.2 malloc F
+GLIBC_2.2 realloc F
+GLIBC_2.3 GLIBC_2.3 A
+GLIBC_2.3 __tls_get_addr F
+GLIBC_2.4 GLIBC_2.4 A
+GLIBC_2.4 __stack_chk_guard D 0x4
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/libBrokenLocale.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/libBrokenLocale.abilist
new file mode 100644
index 0000000000..21343df781
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/libBrokenLocale.abilist
@@ -0,0 +1,2 @@
+GLIBC_2.2 GLIBC_2.2 A
+GLIBC_2.2 __ctype_get_mb_cur_max F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/libanl.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/libanl.abilist
new file mode 100644
index 0000000000..edabfb436e
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/libanl.abilist
@@ -0,0 +1,5 @@
+GLIBC_2.2.3 GLIBC_2.2.3 A
+GLIBC_2.2.3 gai_cancel F
+GLIBC_2.2.3 gai_error F
+GLIBC_2.2.3 gai_suspend F
+GLIBC_2.2.3 getaddrinfo_a F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/libc.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/libc.abilist
new file mode 100644
index 0000000000..24bb7300d3
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/libc.abilist
@@ -0,0 +1,2174 @@
+GLIBC_2.10 GLIBC_2.10 A
+GLIBC_2.10 __cxa_at_quick_exit F
+GLIBC_2.10 __posix_getopt F
+GLIBC_2.10 accept4 F
+GLIBC_2.10 endsgent F
+GLIBC_2.10 fallocate F
+GLIBC_2.10 fgetsgent F
+GLIBC_2.10 fgetsgent_r F
+GLIBC_2.10 getsgent F
+GLIBC_2.10 getsgent_r F
+GLIBC_2.10 getsgnam F
+GLIBC_2.10 getsgnam_r F
+GLIBC_2.10 malloc_info F
+GLIBC_2.10 preadv F
+GLIBC_2.10 preadv64 F
+GLIBC_2.10 psiginfo F
+GLIBC_2.10 putsgent F
+GLIBC_2.10 pwritev F
+GLIBC_2.10 pwritev64 F
+GLIBC_2.10 quick_exit F
+GLIBC_2.10 register_printf_modifier F
+GLIBC_2.10 register_printf_specifier F
+GLIBC_2.10 register_printf_type F
+GLIBC_2.10 setsgent F
+GLIBC_2.10 sgetsgent F
+GLIBC_2.10 sgetsgent_r F
+GLIBC_2.11 GLIBC_2.11 A
+GLIBC_2.11 __longjmp_chk F
+GLIBC_2.11 execvpe F
+GLIBC_2.11 fallocate64 F
+GLIBC_2.11 mkostemps F
+GLIBC_2.11 mkostemps64 F
+GLIBC_2.11 mkstemps F
+GLIBC_2.11 mkstemps64 F
+GLIBC_2.12 GLIBC_2.12 A
+GLIBC_2.12 _sys_errlist D 0x404
+GLIBC_2.12 _sys_nerr D 0x4
+GLIBC_2.12 ntp_gettimex F
+GLIBC_2.12 recvmmsg F
+GLIBC_2.12 sys_errlist D 0x404
+GLIBC_2.12 sys_nerr D 0x4
+GLIBC_2.13 GLIBC_2.13 A
+GLIBC_2.13 fanotify_init F
+GLIBC_2.13 prlimit F
+GLIBC_2.14 GLIBC_2.14 A
+GLIBC_2.14 clock_adjtime F
+GLIBC_2.14 name_to_handle_at F
+GLIBC_2.14 open_by_handle_at F
+GLIBC_2.14 sendmmsg F
+GLIBC_2.14 setns F
+GLIBC_2.14 syncfs F
+GLIBC_2.15 GLIBC_2.15 A
+GLIBC_2.15 __fdelt_chk F
+GLIBC_2.15 __fdelt_warn F
+GLIBC_2.15 posix_spawn F
+GLIBC_2.15 posix_spawnp F
+GLIBC_2.15 process_vm_readv F
+GLIBC_2.15 process_vm_writev F
+GLIBC_2.15 scandirat F
+GLIBC_2.15 scandirat64 F
+GLIBC_2.16 GLIBC_2.16 A
+GLIBC_2.16 __getauxval F
+GLIBC_2.16 __poll_chk F
+GLIBC_2.16 __ppoll_chk F
+GLIBC_2.16 aligned_alloc F
+GLIBC_2.16 c16rtomb F
+GLIBC_2.16 c32rtomb F
+GLIBC_2.16 getauxval F
+GLIBC_2.16 mbrtoc16 F
+GLIBC_2.16 mbrtoc32 F
+GLIBC_2.16 timespec_get F
+GLIBC_2.17 GLIBC_2.17 A
+GLIBC_2.17 _sys_errlist D 0x410
+GLIBC_2.17 _sys_nerr D 0x4
+GLIBC_2.17 clock_getcpuclockid F
+GLIBC_2.17 clock_getres F
+GLIBC_2.17 clock_gettime F
+GLIBC_2.17 clock_nanosleep F
+GLIBC_2.17 clock_settime F
+GLIBC_2.17 prlimit64 F
+GLIBC_2.17 secure_getenv F
+GLIBC_2.17 sys_errlist D 0x410
+GLIBC_2.17 sys_nerr D 0x4
+GLIBC_2.18 GLIBC_2.18 A
+GLIBC_2.18 __cxa_thread_atexit_impl F
+GLIBC_2.19 GLIBC_2.19 A
+GLIBC_2.19 fanotify_mark F
+GLIBC_2.2 GLIBC_2.2 A
+GLIBC_2.2 _Exit F
+GLIBC_2.2 _IO_2_1_stderr_ D 0xa0
+GLIBC_2.2 _IO_2_1_stdin_ D 0xa0
+GLIBC_2.2 _IO_2_1_stdout_ D 0xa0
+GLIBC_2.2 _IO_adjust_column F
+GLIBC_2.2 _IO_adjust_wcolumn F
+GLIBC_2.2 _IO_default_doallocate F
+GLIBC_2.2 _IO_default_finish F
+GLIBC_2.2 _IO_default_pbackfail F
+GLIBC_2.2 _IO_default_uflow F
+GLIBC_2.2 _IO_default_xsgetn F
+GLIBC_2.2 _IO_default_xsputn F
+GLIBC_2.2 _IO_do_write F
+GLIBC_2.2 _IO_doallocbuf F
+GLIBC_2.2 _IO_fclose F
+GLIBC_2.2 _IO_fdopen F
+GLIBC_2.2 _IO_feof F
+GLIBC_2.2 _IO_ferror F
+GLIBC_2.2 _IO_fflush F
+GLIBC_2.2 _IO_fgetpos F
+GLIBC_2.2 _IO_fgetpos64 F
+GLIBC_2.2 _IO_fgets F
+GLIBC_2.2 _IO_file_attach F
+GLIBC_2.2 _IO_file_close F
+GLIBC_2.2 _IO_file_close_it F
+GLIBC_2.2 _IO_file_doallocate F
+GLIBC_2.2 _IO_file_finish F
+GLIBC_2.2 _IO_file_fopen F
+GLIBC_2.2 _IO_file_init F
+GLIBC_2.2 _IO_file_jumps D 0x54
+GLIBC_2.2 _IO_file_open F
+GLIBC_2.2 _IO_file_overflow F
+GLIBC_2.2 _IO_file_read F
+GLIBC_2.2 _IO_file_seek F
+GLIBC_2.2 _IO_file_seekoff F
+GLIBC_2.2 _IO_file_setbuf F
+GLIBC_2.2 _IO_file_stat F
+GLIBC_2.2 _IO_file_sync F
+GLIBC_2.2 _IO_file_underflow F
+GLIBC_2.2 _IO_file_write F
+GLIBC_2.2 _IO_file_xsputn F
+GLIBC_2.2 _IO_flockfile F
+GLIBC_2.2 _IO_flush_all F
+GLIBC_2.2 _IO_flush_all_linebuffered F
+GLIBC_2.2 _IO_fopen F
+GLIBC_2.2 _IO_fprintf F
+GLIBC_2.2 _IO_fputs F
+GLIBC_2.2 _IO_fread F
+GLIBC_2.2 _IO_free_backup_area F
+GLIBC_2.2 _IO_free_wbackup_area F
+GLIBC_2.2 _IO_fsetpos F
+GLIBC_2.2 _IO_fsetpos64 F
+GLIBC_2.2 _IO_ftell F
+GLIBC_2.2 _IO_ftrylockfile F
+GLIBC_2.2 _IO_funlockfile F
+GLIBC_2.2 _IO_fwrite F
+GLIBC_2.2 _IO_getc F
+GLIBC_2.2 _IO_getline F
+GLIBC_2.2 _IO_getline_info F
+GLIBC_2.2 _IO_gets F
+GLIBC_2.2 _IO_init F
+GLIBC_2.2 _IO_init_marker F
+GLIBC_2.2 _IO_init_wmarker F
+GLIBC_2.2 _IO_iter_begin F
+GLIBC_2.2 _IO_iter_end F
+GLIBC_2.2 _IO_iter_file F
+GLIBC_2.2 _IO_iter_next F
+GLIBC_2.2 _IO_least_wmarker F
+GLIBC_2.2 _IO_link_in F
+GLIBC_2.2 _IO_list_all D 0x4
+GLIBC_2.2 _IO_list_lock F
+GLIBC_2.2 _IO_list_resetlock F
+GLIBC_2.2 _IO_list_unlock F
+GLIBC_2.2 _IO_marker_delta F
+GLIBC_2.2 _IO_marker_difference F
+GLIBC_2.2 _IO_padn F
+GLIBC_2.2 _IO_peekc_locked F
+GLIBC_2.2 _IO_popen F
+GLIBC_2.2 _IO_printf F
+GLIBC_2.2 _IO_proc_close F
+GLIBC_2.2 _IO_proc_open F
+GLIBC_2.2 _IO_putc F
+GLIBC_2.2 _IO_puts F
+GLIBC_2.2 _IO_remove_marker F
+GLIBC_2.2 _IO_seekmark F
+GLIBC_2.2 _IO_seekoff F
+GLIBC_2.2 _IO_seekpos F
+GLIBC_2.2 _IO_seekwmark F
+GLIBC_2.2 _IO_setb F
+GLIBC_2.2 _IO_setbuffer F
+GLIBC_2.2 _IO_setvbuf F
+GLIBC_2.2 _IO_sgetn F
+GLIBC_2.2 _IO_sprintf F
+GLIBC_2.2 _IO_sputbackc F
+GLIBC_2.2 _IO_sputbackwc F
+GLIBC_2.2 _IO_sscanf F
+GLIBC_2.2 _IO_str_init_readonly F
+GLIBC_2.2 _IO_str_init_static F
+GLIBC_2.2 _IO_str_overflow F
+GLIBC_2.2 _IO_str_pbackfail F
+GLIBC_2.2 _IO_str_seekoff F
+GLIBC_2.2 _IO_str_underflow F
+GLIBC_2.2 _IO_sungetc F
+GLIBC_2.2 _IO_sungetwc F
+GLIBC_2.2 _IO_switch_to_get_mode F
+GLIBC_2.2 _IO_switch_to_main_wget_area F
+GLIBC_2.2 _IO_switch_to_wbackup_area F
+GLIBC_2.2 _IO_switch_to_wget_mode F
+GLIBC_2.2 _IO_un_link F
+GLIBC_2.2 _IO_ungetc F
+GLIBC_2.2 _IO_unsave_markers F
+GLIBC_2.2 _IO_unsave_wmarkers F
+GLIBC_2.2 _IO_vfprintf F
+GLIBC_2.2 _IO_vfscanf F
+GLIBC_2.2 _IO_vsprintf F
+GLIBC_2.2 _IO_wdefault_doallocate F
+GLIBC_2.2 _IO_wdefault_finish F
+GLIBC_2.2 _IO_wdefault_pbackfail F
+GLIBC_2.2 _IO_wdefault_uflow F
+GLIBC_2.2 _IO_wdefault_xsgetn F
+GLIBC_2.2 _IO_wdefault_xsputn F
+GLIBC_2.2 _IO_wdo_write F
+GLIBC_2.2 _IO_wdoallocbuf F
+GLIBC_2.2 _IO_wfile_jumps D 0x54
+GLIBC_2.2 _IO_wfile_overflow F
+GLIBC_2.2 _IO_wfile_seekoff F
+GLIBC_2.2 _IO_wfile_sync F
+GLIBC_2.2 _IO_wfile_underflow F
+GLIBC_2.2 _IO_wfile_xsputn F
+GLIBC_2.2 _IO_wmarker_delta F
+GLIBC_2.2 _IO_wsetb F
+GLIBC_2.2 __adjtimex F
+GLIBC_2.2 __after_morecore_hook D 0x4
+GLIBC_2.2 __argz_count F
+GLIBC_2.2 __argz_next F
+GLIBC_2.2 __argz_stringify F
+GLIBC_2.2 __asprintf F
+GLIBC_2.2 __assert F
+GLIBC_2.2 __assert_fail F
+GLIBC_2.2 __assert_perror_fail F
+GLIBC_2.2 __backtrace F
+GLIBC_2.2 __backtrace_symbols F
+GLIBC_2.2 __backtrace_symbols_fd F
+GLIBC_2.2 __bsd_getpgrp F
+GLIBC_2.2 __bzero F
+GLIBC_2.2 __check_rhosts_file D 0x4
+GLIBC_2.2 __clone F
+GLIBC_2.2 __close F
+GLIBC_2.2 __clz_tab D 0x100
+GLIBC_2.2 __cmsg_nxthdr F
+GLIBC_2.2 __connect F
+GLIBC_2.2 __ctype32_b D 0x4
+GLIBC_2.2 __ctype32_tolower D 0x4
+GLIBC_2.2 __ctype32_toupper D 0x4
+GLIBC_2.2 __ctype_b D 0x4
+GLIBC_2.2 __ctype_get_mb_cur_max F
+GLIBC_2.2 __ctype_tolower D 0x4
+GLIBC_2.2 __ctype_toupper D 0x4
+GLIBC_2.2 __curbrk D 0x4
+GLIBC_2.2 __cxa_atexit F
+GLIBC_2.2 __cxa_finalize F
+GLIBC_2.2 __cyg_profile_func_enter F
+GLIBC_2.2 __cyg_profile_func_exit F
+GLIBC_2.2 __daylight D 0x4
+GLIBC_2.2 __dcgettext F
+GLIBC_2.2 __default_morecore F
+GLIBC_2.2 __dgettext F
+GLIBC_2.2 __dup2 F
+GLIBC_2.2 __duplocale F
+GLIBC_2.2 __endmntent F
+GLIBC_2.2 __environ D 0x4
+GLIBC_2.2 __errno_location F
+GLIBC_2.2 __fbufsize F
+GLIBC_2.2 __fcntl F
+GLIBC_2.2 __ffs F
+GLIBC_2.2 __finite F
+GLIBC_2.2 __finitef F
+GLIBC_2.2 __flbf F
+GLIBC_2.2 __fork F
+GLIBC_2.2 __fpending F
+GLIBC_2.2 __fpu_control D 0x4
+GLIBC_2.2 __fpurge F
+GLIBC_2.2 __freadable F
+GLIBC_2.2 __freading F
+GLIBC_2.2 __free_hook D 0x4
+GLIBC_2.2 __freelocale F
+GLIBC_2.2 __fsetlocking F
+GLIBC_2.2 __fwritable F
+GLIBC_2.2 __fwriting F
+GLIBC_2.2 __fxstat F
+GLIBC_2.2 __fxstat64 F
+GLIBC_2.2 __getdelim F
+GLIBC_2.2 __getmntent_r F
+GLIBC_2.2 __getpagesize F
+GLIBC_2.2 __getpgid F
+GLIBC_2.2 __getpid F
+GLIBC_2.2 __gettimeofday F
+GLIBC_2.2 __gmtime_r F
+GLIBC_2.2 __h_errno_location F
+GLIBC_2.2 __isalnum_l F
+GLIBC_2.2 __isalpha_l F
+GLIBC_2.2 __isascii_l F
+GLIBC_2.2 __isblank_l F
+GLIBC_2.2 __iscntrl_l F
+GLIBC_2.2 __isdigit_l F
+GLIBC_2.2 __isgraph_l F
+GLIBC_2.2 __isinf F
+GLIBC_2.2 __isinff F
+GLIBC_2.2 __islower_l F
+GLIBC_2.2 __isnan F
+GLIBC_2.2 __isnanf F
+GLIBC_2.2 __isprint_l F
+GLIBC_2.2 __ispunct_l F
+GLIBC_2.2 __isspace_l F
+GLIBC_2.2 __isupper_l F
+GLIBC_2.2 __iswalnum_l F
+GLIBC_2.2 __iswalpha_l F
+GLIBC_2.2 __iswblank_l F
+GLIBC_2.2 __iswcntrl_l F
+GLIBC_2.2 __iswctype F
+GLIBC_2.2 __iswctype_l F
+GLIBC_2.2 __iswdigit_l F
+GLIBC_2.2 __iswgraph_l F
+GLIBC_2.2 __iswlower_l F
+GLIBC_2.2 __iswprint_l F
+GLIBC_2.2 __iswpunct_l F
+GLIBC_2.2 __iswspace_l F
+GLIBC_2.2 __iswupper_l F
+GLIBC_2.2 __iswxdigit_l F
+GLIBC_2.2 __isxdigit_l F
+GLIBC_2.2 __ivaliduser F
+GLIBC_2.2 __key_decryptsession_pk_LOCAL D 0x4
+GLIBC_2.2 __key_encryptsession_pk_LOCAL D 0x4
+GLIBC_2.2 __key_gendes_LOCAL D 0x4
+GLIBC_2.2 __libc_allocate_rtsig F
+GLIBC_2.2 __libc_calloc F
+GLIBC_2.2 __libc_current_sigrtmax F
+GLIBC_2.2 __libc_current_sigrtmin F
+GLIBC_2.2 __libc_free F
+GLIBC_2.2 __libc_freeres F
+GLIBC_2.2 __libc_init_first F
+GLIBC_2.2 __libc_mallinfo F
+GLIBC_2.2 __libc_malloc F
+GLIBC_2.2 __libc_mallopt F
+GLIBC_2.2 __libc_memalign F
+GLIBC_2.2 __libc_pvalloc F
+GLIBC_2.2 __libc_realloc F
+GLIBC_2.2 __libc_sa_len F
+GLIBC_2.2 __libc_start_main F
+GLIBC_2.2 __libc_valloc F
+GLIBC_2.2 __lseek F
+GLIBC_2.2 __lxstat F
+GLIBC_2.2 __lxstat64 F
+GLIBC_2.2 __malloc_hook D 0x4
+GLIBC_2.2 __malloc_initialize_hook D 0x4
+GLIBC_2.2 __mbrlen F
+GLIBC_2.2 __mbrtowc F
+GLIBC_2.2 __memalign_hook D 0x4
+GLIBC_2.2 __mempcpy F
+GLIBC_2.2 __mempcpy_small F
+GLIBC_2.2 __monstartup F
+GLIBC_2.2 __morecore D 0x4
+GLIBC_2.2 __newlocale F
+GLIBC_2.2 __nl_langinfo_l F
+GLIBC_2.2 __nss_configure_lookup F
+GLIBC_2.2 __nss_database_lookup F
+GLIBC_2.2 __nss_group_lookup F
+GLIBC_2.2 __nss_hosts_lookup F
+GLIBC_2.2 __nss_next F
+GLIBC_2.2 __nss_passwd_lookup F
+GLIBC_2.2 __open F
+GLIBC_2.2 __open64 F
+GLIBC_2.2 __overflow F
+GLIBC_2.2 __pipe F
+GLIBC_2.2 __poll F
+GLIBC_2.2 __pread64 F
+GLIBC_2.2 __printf_fp F
+GLIBC_2.2 __profile_frequency F
+GLIBC_2.2 __progname D 0x4
+GLIBC_2.2 __progname_full D 0x4
+GLIBC_2.2 __pwrite64 F
+GLIBC_2.2 __rawmemchr F
+GLIBC_2.2 __rcmd_errstr D 0x4
+GLIBC_2.2 __read F
+GLIBC_2.2 __realloc_hook D 0x4
+GLIBC_2.2 __res_init F
+GLIBC_2.2 __res_nclose F
+GLIBC_2.2 __res_ninit F
+GLIBC_2.2 __res_randomid F
+GLIBC_2.2 __res_state F
+GLIBC_2.2 __sbrk F
+GLIBC_2.2 __sched_get_priority_max F
+GLIBC_2.2 __sched_get_priority_min F
+GLIBC_2.2 __sched_getparam F
+GLIBC_2.2 __sched_getscheduler F
+GLIBC_2.2 __sched_setscheduler F
+GLIBC_2.2 __sched_yield F
+GLIBC_2.2 __secure_getenv F
+GLIBC_2.2 __select F
+GLIBC_2.2 __send F
+GLIBC_2.2 __setmntent F
+GLIBC_2.2 __setpgid F
+GLIBC_2.2 __sigaction F
+GLIBC_2.2 __sigaddset F
+GLIBC_2.2 __sigdelset F
+GLIBC_2.2 __sigismember F
+GLIBC_2.2 __signbit F
+GLIBC_2.2 __signbitf F
+GLIBC_2.2 __signbitl F
+GLIBC_2.2 __sigpause F
+GLIBC_2.2 __sigsetjmp F
+GLIBC_2.2 __sigsuspend F
+GLIBC_2.2 __statfs F
+GLIBC_2.2 __stpcpy F
+GLIBC_2.2 __stpcpy_small F
+GLIBC_2.2 __stpncpy F
+GLIBC_2.2 __strcasecmp F
+GLIBC_2.2 __strcasecmp_l F
+GLIBC_2.2 __strcasestr F
+GLIBC_2.2 __strcoll_l F
+GLIBC_2.2 __strcpy_small F
+GLIBC_2.2 __strcspn_c1 F
+GLIBC_2.2 __strcspn_c2 F
+GLIBC_2.2 __strcspn_c3 F
+GLIBC_2.2 __strdup F
+GLIBC_2.2 __strerror_r F
+GLIBC_2.2 __strfmon_l F
+GLIBC_2.2 __strncasecmp_l F
+GLIBC_2.2 __strndup F
+GLIBC_2.2 __strpbrk_c2 F
+GLIBC_2.2 __strpbrk_c3 F
+GLIBC_2.2 __strsep_1c F
+GLIBC_2.2 __strsep_2c F
+GLIBC_2.2 __strsep_3c F
+GLIBC_2.2 __strsep_g F
+GLIBC_2.2 __strspn_c1 F
+GLIBC_2.2 __strspn_c2 F
+GLIBC_2.2 __strspn_c3 F
+GLIBC_2.2 __strtod_internal F
+GLIBC_2.2 __strtod_l F
+GLIBC_2.2 __strtof_internal F
+GLIBC_2.2 __strtof_l F
+GLIBC_2.2 __strtok_r F
+GLIBC_2.2 __strtok_r_1c F
+GLIBC_2.2 __strtol_internal F
+GLIBC_2.2 __strtol_l F
+GLIBC_2.2 __strtold_internal F
+GLIBC_2.2 __strtold_l F
+GLIBC_2.2 __strtoll_internal F
+GLIBC_2.2 __strtoll_l F
+GLIBC_2.2 __strtoul_internal F
+GLIBC_2.2 __strtoul_l F
+GLIBC_2.2 __strtoull_internal F
+GLIBC_2.2 __strtoull_l F
+GLIBC_2.2 __strverscmp F
+GLIBC_2.2 __strxfrm_l F
+GLIBC_2.2 __sysconf F
+GLIBC_2.2 __sysctl F
+GLIBC_2.2 __sysv_signal F
+GLIBC_2.2 __timezone D 0x4
+GLIBC_2.2 __toascii_l F
+GLIBC_2.2 __tolower_l F
+GLIBC_2.2 __toupper_l F
+GLIBC_2.2 __towctrans F
+GLIBC_2.2 __towctrans_l F
+GLIBC_2.2 __towlower_l F
+GLIBC_2.2 __towupper_l F
+GLIBC_2.2 __tzname D 0x8
+GLIBC_2.2 __uflow F
+GLIBC_2.2 __underflow F
+GLIBC_2.2 __vfork F
+GLIBC_2.2 __vfscanf F
+GLIBC_2.2 __vsnprintf F
+GLIBC_2.2 __vsscanf F
+GLIBC_2.2 __wait F
+GLIBC_2.2 __waitpid F
+GLIBC_2.2 __wcscasecmp_l F
+GLIBC_2.2 __wcscoll_l F
+GLIBC_2.2 __wcsncasecmp_l F
+GLIBC_2.2 __wcstod_internal F
+GLIBC_2.2 __wcstod_l F
+GLIBC_2.2 __wcstof_internal F
+GLIBC_2.2 __wcstof_l F
+GLIBC_2.2 __wcstol_internal F
+GLIBC_2.2 __wcstol_l F
+GLIBC_2.2 __wcstold_internal F
+GLIBC_2.2 __wcstold_l F
+GLIBC_2.2 __wcstoll_internal F
+GLIBC_2.2 __wcstoll_l F
+GLIBC_2.2 __wcstoul_internal F
+GLIBC_2.2 __wcstoul_l F
+GLIBC_2.2 __wcstoull_internal F
+GLIBC_2.2 __wcstoull_l F
+GLIBC_2.2 __wcsxfrm_l F
+GLIBC_2.2 __wctrans_l F
+GLIBC_2.2 __wctype_l F
+GLIBC_2.2 __woverflow F
+GLIBC_2.2 __write F
+GLIBC_2.2 __wuflow F
+GLIBC_2.2 __wunderflow F
+GLIBC_2.2 __xmknod F
+GLIBC_2.2 __xpg_basename F
+GLIBC_2.2 __xpg_sigpause F
+GLIBC_2.2 __xstat F
+GLIBC_2.2 __xstat64 F
+GLIBC_2.2 _authenticate F
+GLIBC_2.2 _dl_mcount_wrapper F
+GLIBC_2.2 _dl_mcount_wrapper_check F
+GLIBC_2.2 _environ D 0x4
+GLIBC_2.2 _exit F
+GLIBC_2.2 _flushlbf F
+GLIBC_2.2 _libc_intl_domainname D 0x5
+GLIBC_2.2 _longjmp F
+GLIBC_2.2 _mcleanup F
+GLIBC_2.2 _mcount F
+GLIBC_2.2 _nl_default_dirname D 0x12
+GLIBC_2.2 _nl_domain_bindings D 0x4
+GLIBC_2.2 _nl_msg_cat_cntr D 0x4
+GLIBC_2.2 _null_auth D 0xc
+GLIBC_2.2 _obstack D 0x4
+GLIBC_2.2 _obstack_allocated_p F
+GLIBC_2.2 _obstack_begin F
+GLIBC_2.2 _obstack_begin_1 F
+GLIBC_2.2 _obstack_free F
+GLIBC_2.2 _obstack_memory_used F
+GLIBC_2.2 _obstack_newchunk F
+GLIBC_2.2 _res D 0x200
+GLIBC_2.2 _res_hconf D 0x30
+GLIBC_2.2 _rpc_dtablesize F
+GLIBC_2.2 _seterr_reply F
+GLIBC_2.2 _setjmp F
+GLIBC_2.2 _sys_errlist D 0x3f4
+GLIBC_2.2 _sys_nerr D 0x4
+GLIBC_2.2 _sys_siglist D 0x100
+GLIBC_2.2 _tolower F
+GLIBC_2.2 _toupper F
+GLIBC_2.2 a64l F
+GLIBC_2.2 abort F
+GLIBC_2.2 abs F
+GLIBC_2.2 accept F
+GLIBC_2.2 access F
+GLIBC_2.2 acct F
+GLIBC_2.2 addmntent F
+GLIBC_2.2 addseverity F
+GLIBC_2.2 adjtime F
+GLIBC_2.2 adjtimex F
+GLIBC_2.2 advance F
+GLIBC_2.2 alarm F
+GLIBC_2.2 alphasort F
+GLIBC_2.2 alphasort64 F
+GLIBC_2.2 argp_err_exit_status D 0x4
+GLIBC_2.2 argp_error F
+GLIBC_2.2 argp_failure F
+GLIBC_2.2 argp_help F
+GLIBC_2.2 argp_parse F
+GLIBC_2.2 argp_program_bug_address D 0x4
+GLIBC_2.2 argp_program_version D 0x4
+GLIBC_2.2 argp_program_version_hook D 0x4
+GLIBC_2.2 argp_state_help F
+GLIBC_2.2 argp_usage F
+GLIBC_2.2 argz_add F
+GLIBC_2.2 argz_add_sep F
+GLIBC_2.2 argz_append F
+GLIBC_2.2 argz_count F
+GLIBC_2.2 argz_create F
+GLIBC_2.2 argz_create_sep F
+GLIBC_2.2 argz_delete F
+GLIBC_2.2 argz_extract F
+GLIBC_2.2 argz_insert F
+GLIBC_2.2 argz_next F
+GLIBC_2.2 argz_replace F
+GLIBC_2.2 argz_stringify F
+GLIBC_2.2 asctime F
+GLIBC_2.2 asctime_r F
+GLIBC_2.2 asprintf F
+GLIBC_2.2 atexit F
+GLIBC_2.2 atof F
+GLIBC_2.2 atoi F
+GLIBC_2.2 atol F
+GLIBC_2.2 atoll F
+GLIBC_2.2 authdes_create F
+GLIBC_2.2 authdes_getucred F
+GLIBC_2.2 authdes_pk_create F
+GLIBC_2.2 authnone_create F
+GLIBC_2.2 authunix_create F
+GLIBC_2.2 authunix_create_default F
+GLIBC_2.2 backtrace F
+GLIBC_2.2 backtrace_symbols F
+GLIBC_2.2 backtrace_symbols_fd F
+GLIBC_2.2 basename F
+GLIBC_2.2 bcmp F
+GLIBC_2.2 bcopy F
+GLIBC_2.2 bdflush F
+GLIBC_2.2 bind F
+GLIBC_2.2 bind_textdomain_codeset F
+GLIBC_2.2 bindresvport F
+GLIBC_2.2 bindtextdomain F
+GLIBC_2.2 brk F
+GLIBC_2.2 bsd_signal F
+GLIBC_2.2 bsearch F
+GLIBC_2.2 btowc F
+GLIBC_2.2 bzero F
+GLIBC_2.2 calloc F
+GLIBC_2.2 callrpc F
+GLIBC_2.2 canonicalize_file_name F
+GLIBC_2.2 capget F
+GLIBC_2.2 capset F
+GLIBC_2.2 catclose F
+GLIBC_2.2 catgets F
+GLIBC_2.2 catopen F
+GLIBC_2.2 cbc_crypt F
+GLIBC_2.2 cfgetispeed F
+GLIBC_2.2 cfgetospeed F
+GLIBC_2.2 cfmakeraw F
+GLIBC_2.2 cfree F
+GLIBC_2.2 cfsetispeed F
+GLIBC_2.2 cfsetospeed F
+GLIBC_2.2 cfsetspeed F
+GLIBC_2.2 chdir F
+GLIBC_2.2 chflags F
+GLIBC_2.2 chmod F
+GLIBC_2.2 chown F
+GLIBC_2.2 chroot F
+GLIBC_2.2 clearenv F
+GLIBC_2.2 clearerr F
+GLIBC_2.2 clearerr_unlocked F
+GLIBC_2.2 clnt_broadcast F
+GLIBC_2.2 clnt_create F
+GLIBC_2.2 clnt_pcreateerror F
+GLIBC_2.2 clnt_perrno F
+GLIBC_2.2 clnt_perror F
+GLIBC_2.2 clnt_spcreateerror F
+GLIBC_2.2 clnt_sperrno F
+GLIBC_2.2 clnt_sperror F
+GLIBC_2.2 clntraw_create F
+GLIBC_2.2 clnttcp_create F
+GLIBC_2.2 clntudp_bufcreate F
+GLIBC_2.2 clntudp_create F
+GLIBC_2.2 clntunix_create F
+GLIBC_2.2 clock F
+GLIBC_2.2 clone F
+GLIBC_2.2 close F
+GLIBC_2.2 closedir F
+GLIBC_2.2 closelog F
+GLIBC_2.2 confstr F
+GLIBC_2.2 connect F
+GLIBC_2.2 copysign F
+GLIBC_2.2 copysignf F
+GLIBC_2.2 copysignl F
+GLIBC_2.2 creat F
+GLIBC_2.2 creat64 F
+GLIBC_2.2 create_module F
+GLIBC_2.2 ctermid F
+GLIBC_2.2 ctime F
+GLIBC_2.2 ctime_r F
+GLIBC_2.2 cuserid F
+GLIBC_2.2 daemon F
+GLIBC_2.2 daylight D 0x4
+GLIBC_2.2 dcgettext F
+GLIBC_2.2 dcngettext F
+GLIBC_2.2 delete_module F
+GLIBC_2.2 des_setparity F
+GLIBC_2.2 dgettext F
+GLIBC_2.2 difftime F
+GLIBC_2.2 dirfd F
+GLIBC_2.2 dirname F
+GLIBC_2.2 div F
+GLIBC_2.2 dngettext F
+GLIBC_2.2 dprintf F
+GLIBC_2.2 drand48 F
+GLIBC_2.2 drand48_r F
+GLIBC_2.2 dup F
+GLIBC_2.2 dup2 F
+GLIBC_2.2 dysize F
+GLIBC_2.2 ecb_crypt F
+GLIBC_2.2 ecvt F
+GLIBC_2.2 ecvt_r F
+GLIBC_2.2 endaliasent F
+GLIBC_2.2 endfsent F
+GLIBC_2.2 endgrent F
+GLIBC_2.2 endhostent F
+GLIBC_2.2 endmntent F
+GLIBC_2.2 endnetent F
+GLIBC_2.2 endnetgrent F
+GLIBC_2.2 endprotoent F
+GLIBC_2.2 endpwent F
+GLIBC_2.2 endrpcent F
+GLIBC_2.2 endservent F
+GLIBC_2.2 endspent F
+GLIBC_2.2 endttyent F
+GLIBC_2.2 endusershell F
+GLIBC_2.2 endutent F
+GLIBC_2.2 endutxent F
+GLIBC_2.2 environ D 0x4
+GLIBC_2.2 envz_add F
+GLIBC_2.2 envz_entry F
+GLIBC_2.2 envz_get F
+GLIBC_2.2 envz_merge F
+GLIBC_2.2 envz_remove F
+GLIBC_2.2 envz_strip F
+GLIBC_2.2 erand48 F
+GLIBC_2.2 erand48_r F
+GLIBC_2.2 err F
+GLIBC_2.2 error F
+GLIBC_2.2 error_at_line F
+GLIBC_2.2 error_message_count D 0x4
+GLIBC_2.2 error_one_per_line D 0x4
+GLIBC_2.2 error_print_progname D 0x4
+GLIBC_2.2 errx F
+GLIBC_2.2 ether_aton F
+GLIBC_2.2 ether_aton_r F
+GLIBC_2.2 ether_hostton F
+GLIBC_2.2 ether_line F
+GLIBC_2.2 ether_ntoa F
+GLIBC_2.2 ether_ntoa_r F
+GLIBC_2.2 ether_ntohost F
+GLIBC_2.2 euidaccess F
+GLIBC_2.2 execl F
+GLIBC_2.2 execle F
+GLIBC_2.2 execlp F
+GLIBC_2.2 execv F
+GLIBC_2.2 execve F
+GLIBC_2.2 execvp F
+GLIBC_2.2 exit F
+GLIBC_2.2 fattach F
+GLIBC_2.2 fchdir F
+GLIBC_2.2 fchflags F
+GLIBC_2.2 fchmod F
+GLIBC_2.2 fchown F
+GLIBC_2.2 fclose F
+GLIBC_2.2 fcloseall F
+GLIBC_2.2 fcntl F
+GLIBC_2.2 fcvt F
+GLIBC_2.2 fcvt_r F
+GLIBC_2.2 fdatasync F
+GLIBC_2.2 fdetach F
+GLIBC_2.2 fdopen F
+GLIBC_2.2 feof F
+GLIBC_2.2 feof_unlocked F
+GLIBC_2.2 ferror F
+GLIBC_2.2 ferror_unlocked F
+GLIBC_2.2 fexecve F
+GLIBC_2.2 fflush F
+GLIBC_2.2 fflush_unlocked F
+GLIBC_2.2 ffs F
+GLIBC_2.2 ffsl F
+GLIBC_2.2 ffsll F
+GLIBC_2.2 fgetc F
+GLIBC_2.2 fgetc_unlocked F
+GLIBC_2.2 fgetgrent F
+GLIBC_2.2 fgetgrent_r F
+GLIBC_2.2 fgetpos F
+GLIBC_2.2 fgetpos64 F
+GLIBC_2.2 fgetpwent F
+GLIBC_2.2 fgetpwent_r F
+GLIBC_2.2 fgets F
+GLIBC_2.2 fgets_unlocked F
+GLIBC_2.2 fgetspent F
+GLIBC_2.2 fgetspent_r F
+GLIBC_2.2 fgetwc F
+GLIBC_2.2 fgetwc_unlocked F
+GLIBC_2.2 fgetws F
+GLIBC_2.2 fgetws_unlocked F
+GLIBC_2.2 fileno F
+GLIBC_2.2 fileno_unlocked F
+GLIBC_2.2 finite F
+GLIBC_2.2 finitef F
+GLIBC_2.2 finitel F
+GLIBC_2.2 flock F
+GLIBC_2.2 flockfile F
+GLIBC_2.2 fmemopen F
+GLIBC_2.2 fmtmsg F
+GLIBC_2.2 fnmatch F
+GLIBC_2.2 fopen F
+GLIBC_2.2 fopen64 F
+GLIBC_2.2 fopencookie F
+GLIBC_2.2 fork F
+GLIBC_2.2 fpathconf F
+GLIBC_2.2 fprintf F
+GLIBC_2.2 fputc F
+GLIBC_2.2 fputc_unlocked F
+GLIBC_2.2 fputs F
+GLIBC_2.2 fputs_unlocked F
+GLIBC_2.2 fputwc F
+GLIBC_2.2 fputwc_unlocked F
+GLIBC_2.2 fputws F
+GLIBC_2.2 fputws_unlocked F
+GLIBC_2.2 fread F
+GLIBC_2.2 fread_unlocked F
+GLIBC_2.2 free F
+GLIBC_2.2 freeaddrinfo F
+GLIBC_2.2 freopen F
+GLIBC_2.2 freopen64 F
+GLIBC_2.2 frexp F
+GLIBC_2.2 frexpf F
+GLIBC_2.2 frexpl F
+GLIBC_2.2 fscanf F
+GLIBC_2.2 fseek F
+GLIBC_2.2 fseeko F
+GLIBC_2.2 fseeko64 F
+GLIBC_2.2 fsetpos F
+GLIBC_2.2 fsetpos64 F
+GLIBC_2.2 fstatfs F
+GLIBC_2.2 fstatfs64 F
+GLIBC_2.2 fstatvfs F
+GLIBC_2.2 fstatvfs64 F
+GLIBC_2.2 fsync F
+GLIBC_2.2 ftell F
+GLIBC_2.2 ftello F
+GLIBC_2.2 ftello64 F
+GLIBC_2.2 ftime F
+GLIBC_2.2 ftok F
+GLIBC_2.2 ftruncate F
+GLIBC_2.2 ftruncate64 F
+GLIBC_2.2 ftrylockfile F
+GLIBC_2.2 fts_children F
+GLIBC_2.2 fts_close F
+GLIBC_2.2 fts_open F
+GLIBC_2.2 fts_read F
+GLIBC_2.2 fts_set F
+GLIBC_2.2 ftw F
+GLIBC_2.2 ftw64 F
+GLIBC_2.2 funlockfile F
+GLIBC_2.2 fwide F
+GLIBC_2.2 fwprintf F
+GLIBC_2.2 fwrite F
+GLIBC_2.2 fwrite_unlocked F
+GLIBC_2.2 fwscanf F
+GLIBC_2.2 gai_strerror F
+GLIBC_2.2 gcvt F
+GLIBC_2.2 get_avphys_pages F
+GLIBC_2.2 get_current_dir_name F
+GLIBC_2.2 get_kernel_syms F
+GLIBC_2.2 get_myaddress F
+GLIBC_2.2 get_nprocs F
+GLIBC_2.2 get_nprocs_conf F
+GLIBC_2.2 get_phys_pages F
+GLIBC_2.2 getaddrinfo F
+GLIBC_2.2 getaliasbyname F
+GLIBC_2.2 getaliasbyname_r F
+GLIBC_2.2 getaliasent F
+GLIBC_2.2 getaliasent_r F
+GLIBC_2.2 getc F
+GLIBC_2.2 getc_unlocked F
+GLIBC_2.2 getchar F
+GLIBC_2.2 getchar_unlocked F
+GLIBC_2.2 getcontext F
+GLIBC_2.2 getcwd F
+GLIBC_2.2 getdate F
+GLIBC_2.2 getdate_err D 0x4
+GLIBC_2.2 getdate_r F
+GLIBC_2.2 getdelim F
+GLIBC_2.2 getdirentries F
+GLIBC_2.2 getdirentries64 F
+GLIBC_2.2 getdomainname F
+GLIBC_2.2 getdtablesize F
+GLIBC_2.2 getegid F
+GLIBC_2.2 getenv F
+GLIBC_2.2 geteuid F
+GLIBC_2.2 getfsent F
+GLIBC_2.2 getfsfile F
+GLIBC_2.2 getfsspec F
+GLIBC_2.2 getgid F
+GLIBC_2.2 getgrent F
+GLIBC_2.2 getgrent_r F
+GLIBC_2.2 getgrgid F
+GLIBC_2.2 getgrgid_r F
+GLIBC_2.2 getgrnam F
+GLIBC_2.2 getgrnam_r F
+GLIBC_2.2 getgroups F
+GLIBC_2.2 gethostbyaddr F
+GLIBC_2.2 gethostbyaddr_r F
+GLIBC_2.2 gethostbyname F
+GLIBC_2.2 gethostbyname2 F
+GLIBC_2.2 gethostbyname2_r F
+GLIBC_2.2 gethostbyname_r F
+GLIBC_2.2 gethostent F
+GLIBC_2.2 gethostent_r F
+GLIBC_2.2 gethostid F
+GLIBC_2.2 gethostname F
+GLIBC_2.2 getitimer F
+GLIBC_2.2 getline F
+GLIBC_2.2 getloadavg F
+GLIBC_2.2 getlogin F
+GLIBC_2.2 getlogin_r F
+GLIBC_2.2 getmntent F
+GLIBC_2.2 getmntent_r F
+GLIBC_2.2 getmsg F
+GLIBC_2.2 getnameinfo F
+GLIBC_2.2 getnetbyaddr F
+GLIBC_2.2 getnetbyaddr_r F
+GLIBC_2.2 getnetbyname F
+GLIBC_2.2 getnetbyname_r F
+GLIBC_2.2 getnetent F
+GLIBC_2.2 getnetent_r F
+GLIBC_2.2 getnetgrent F
+GLIBC_2.2 getnetgrent_r F
+GLIBC_2.2 getnetname F
+GLIBC_2.2 getopt F
+GLIBC_2.2 getopt_long F
+GLIBC_2.2 getopt_long_only F
+GLIBC_2.2 getpagesize F
+GLIBC_2.2 getpass F
+GLIBC_2.2 getpeername F
+GLIBC_2.2 getpgid F
+GLIBC_2.2 getpgrp F
+GLIBC_2.2 getpid F
+GLIBC_2.2 getpmsg F
+GLIBC_2.2 getppid F
+GLIBC_2.2 getpriority F
+GLIBC_2.2 getprotobyname F
+GLIBC_2.2 getprotobyname_r F
+GLIBC_2.2 getprotobynumber F
+GLIBC_2.2 getprotobynumber_r F
+GLIBC_2.2 getprotoent F
+GLIBC_2.2 getprotoent_r F
+GLIBC_2.2 getpt F
+GLIBC_2.2 getpublickey F
+GLIBC_2.2 getpw F
+GLIBC_2.2 getpwent F
+GLIBC_2.2 getpwent_r F
+GLIBC_2.2 getpwnam F
+GLIBC_2.2 getpwnam_r F
+GLIBC_2.2 getpwuid F
+GLIBC_2.2 getpwuid_r F
+GLIBC_2.2 getresgid F
+GLIBC_2.2 getresuid F
+GLIBC_2.2 getrlimit F
+GLIBC_2.2 getrlimit64 F
+GLIBC_2.2 getrpcbyname F
+GLIBC_2.2 getrpcbyname_r F
+GLIBC_2.2 getrpcbynumber F
+GLIBC_2.2 getrpcbynumber_r F
+GLIBC_2.2 getrpcent F
+GLIBC_2.2 getrpcent_r F
+GLIBC_2.2 getrpcport F
+GLIBC_2.2 getrusage F
+GLIBC_2.2 gets F
+GLIBC_2.2 getsecretkey F
+GLIBC_2.2 getservbyname F
+GLIBC_2.2 getservbyname_r F
+GLIBC_2.2 getservbyport F
+GLIBC_2.2 getservbyport_r F
+GLIBC_2.2 getservent F
+GLIBC_2.2 getservent_r F
+GLIBC_2.2 getsid F
+GLIBC_2.2 getsockname F
+GLIBC_2.2 getsockopt F
+GLIBC_2.2 getspent F
+GLIBC_2.2 getspent_r F
+GLIBC_2.2 getspnam F
+GLIBC_2.2 getspnam_r F
+GLIBC_2.2 getsubopt F
+GLIBC_2.2 gettext F
+GLIBC_2.2 gettimeofday F
+GLIBC_2.2 getttyent F
+GLIBC_2.2 getttynam F
+GLIBC_2.2 getuid F
+GLIBC_2.2 getusershell F
+GLIBC_2.2 getutent F
+GLIBC_2.2 getutent_r F
+GLIBC_2.2 getutid F
+GLIBC_2.2 getutid_r F
+GLIBC_2.2 getutline F
+GLIBC_2.2 getutline_r F
+GLIBC_2.2 getutmp F
+GLIBC_2.2 getutmpx F
+GLIBC_2.2 getutxent F
+GLIBC_2.2 getutxid F
+GLIBC_2.2 getutxline F
+GLIBC_2.2 getw F
+GLIBC_2.2 getwc F
+GLIBC_2.2 getwc_unlocked F
+GLIBC_2.2 getwchar F
+GLIBC_2.2 getwchar_unlocked F
+GLIBC_2.2 getwd F
+GLIBC_2.2 glob F
+GLIBC_2.2 glob64 F
+GLIBC_2.2 glob_pattern_p F
+GLIBC_2.2 globfree F
+GLIBC_2.2 globfree64 F
+GLIBC_2.2 gmtime F
+GLIBC_2.2 gmtime_r F
+GLIBC_2.2 gnu_get_libc_release F
+GLIBC_2.2 gnu_get_libc_version F
+GLIBC_2.2 grantpt F
+GLIBC_2.2 group_member F
+GLIBC_2.2 gsignal F
+GLIBC_2.2 gtty F
+GLIBC_2.2 h_errlist D 0x14
+GLIBC_2.2 h_nerr D 0x4
+GLIBC_2.2 hasmntopt F
+GLIBC_2.2 hcreate F
+GLIBC_2.2 hcreate_r F
+GLIBC_2.2 hdestroy F
+GLIBC_2.2 hdestroy_r F
+GLIBC_2.2 herror F
+GLIBC_2.2 host2netname F
+GLIBC_2.2 hsearch F
+GLIBC_2.2 hsearch_r F
+GLIBC_2.2 hstrerror F
+GLIBC_2.2 htonl F
+GLIBC_2.2 htons F
+GLIBC_2.2 iconv F
+GLIBC_2.2 iconv_close F
+GLIBC_2.2 iconv_open F
+GLIBC_2.2 if_freenameindex F
+GLIBC_2.2 if_indextoname F
+GLIBC_2.2 if_nameindex F
+GLIBC_2.2 if_nametoindex F
+GLIBC_2.2 imaxabs F
+GLIBC_2.2 imaxdiv F
+GLIBC_2.2 in6addr_any D 0x10
+GLIBC_2.2 in6addr_loopback D 0x10
+GLIBC_2.2 index F
+GLIBC_2.2 inet_addr F
+GLIBC_2.2 inet_aton F
+GLIBC_2.2 inet_lnaof F
+GLIBC_2.2 inet_makeaddr F
+GLIBC_2.2 inet_netof F
+GLIBC_2.2 inet_network F
+GLIBC_2.2 inet_nsap_addr F
+GLIBC_2.2 inet_nsap_ntoa F
+GLIBC_2.2 inet_ntoa F
+GLIBC_2.2 inet_ntop F
+GLIBC_2.2 inet_pton F
+GLIBC_2.2 init_module F
+GLIBC_2.2 initgroups F
+GLIBC_2.2 initstate F
+GLIBC_2.2 initstate_r F
+GLIBC_2.2 innetgr F
+GLIBC_2.2 insque F
+GLIBC_2.2 ioctl F
+GLIBC_2.2 iruserok F
+GLIBC_2.2 iruserok_af F
+GLIBC_2.2 isalnum F
+GLIBC_2.2 isalpha F
+GLIBC_2.2 isascii F
+GLIBC_2.2 isastream F
+GLIBC_2.2 isatty F
+GLIBC_2.2 isblank F
+GLIBC_2.2 iscntrl F
+GLIBC_2.2 isdigit F
+GLIBC_2.2 isfdtype F
+GLIBC_2.2 isgraph F
+GLIBC_2.2 isinf F
+GLIBC_2.2 isinff F
+GLIBC_2.2 isinfl F
+GLIBC_2.2 islower F
+GLIBC_2.2 isnan F
+GLIBC_2.2 isnanf F
+GLIBC_2.2 isnanl F
+GLIBC_2.2 isprint F
+GLIBC_2.2 ispunct F
+GLIBC_2.2 isspace F
+GLIBC_2.2 isupper F
+GLIBC_2.2 iswalnum F
+GLIBC_2.2 iswalpha F
+GLIBC_2.2 iswblank F
+GLIBC_2.2 iswcntrl F
+GLIBC_2.2 iswctype F
+GLIBC_2.2 iswdigit F
+GLIBC_2.2 iswgraph F
+GLIBC_2.2 iswlower F
+GLIBC_2.2 iswprint F
+GLIBC_2.2 iswpunct F
+GLIBC_2.2 iswspace F
+GLIBC_2.2 iswupper F
+GLIBC_2.2 iswxdigit F
+GLIBC_2.2 isxdigit F
+GLIBC_2.2 jrand48 F
+GLIBC_2.2 jrand48_r F
+GLIBC_2.2 key_decryptsession F
+GLIBC_2.2 key_decryptsession_pk F
+GLIBC_2.2 key_encryptsession F
+GLIBC_2.2 key_encryptsession_pk F
+GLIBC_2.2 key_gendes F
+GLIBC_2.2 key_get_conv F
+GLIBC_2.2 key_secretkey_is_set F
+GLIBC_2.2 key_setnet F
+GLIBC_2.2 key_setsecret F
+GLIBC_2.2 kill F
+GLIBC_2.2 killpg F
+GLIBC_2.2 klogctl F
+GLIBC_2.2 l64a F
+GLIBC_2.2 labs F
+GLIBC_2.2 lchown F
+GLIBC_2.2 lckpwdf F
+GLIBC_2.2 lcong48 F
+GLIBC_2.2 lcong48_r F
+GLIBC_2.2 ldexp F
+GLIBC_2.2 ldexpf F
+GLIBC_2.2 ldexpl F
+GLIBC_2.2 ldiv F
+GLIBC_2.2 lfind F
+GLIBC_2.2 link F
+GLIBC_2.2 listen F
+GLIBC_2.2 llabs F
+GLIBC_2.2 lldiv F
+GLIBC_2.2 llseek F
+GLIBC_2.2 loc1 D 0x4
+GLIBC_2.2 loc2 D 0x4
+GLIBC_2.2 localeconv F
+GLIBC_2.2 localtime F
+GLIBC_2.2 localtime_r F
+GLIBC_2.2 lockf F
+GLIBC_2.2 lockf64 F
+GLIBC_2.2 locs D 0x4
+GLIBC_2.2 longjmp F
+GLIBC_2.2 lrand48 F
+GLIBC_2.2 lrand48_r F
+GLIBC_2.2 lsearch F
+GLIBC_2.2 lseek F
+GLIBC_2.2 lseek64 F
+GLIBC_2.2 madvise F
+GLIBC_2.2 makecontext F
+GLIBC_2.2 mallinfo F
+GLIBC_2.2 malloc F
+GLIBC_2.2 malloc_get_state F
+GLIBC_2.2 malloc_set_state F
+GLIBC_2.2 malloc_stats F
+GLIBC_2.2 malloc_trim F
+GLIBC_2.2 malloc_usable_size F
+GLIBC_2.2 mallopt F
+GLIBC_2.2 mallwatch D 0x4
+GLIBC_2.2 mblen F
+GLIBC_2.2 mbrlen F
+GLIBC_2.2 mbrtowc F
+GLIBC_2.2 mbsinit F
+GLIBC_2.2 mbsnrtowcs F
+GLIBC_2.2 mbsrtowcs F
+GLIBC_2.2 mbstowcs F
+GLIBC_2.2 mbtowc F
+GLIBC_2.2 mcheck F
+GLIBC_2.2 mcheck_check_all F
+GLIBC_2.2 mcheck_pedantic F
+GLIBC_2.2 memalign F
+GLIBC_2.2 memccpy F
+GLIBC_2.2 memchr F
+GLIBC_2.2 memcmp F
+GLIBC_2.2 memcpy F
+GLIBC_2.2 memfrob F
+GLIBC_2.2 memmem F
+GLIBC_2.2 memmove F
+GLIBC_2.2 mempcpy F
+GLIBC_2.2 memrchr F
+GLIBC_2.2 memset F
+GLIBC_2.2 mincore F
+GLIBC_2.2 mkdir F
+GLIBC_2.2 mkdtemp F
+GLIBC_2.2 mkfifo F
+GLIBC_2.2 mkstemp F
+GLIBC_2.2 mkstemp64 F
+GLIBC_2.2 mktemp F
+GLIBC_2.2 mktime F
+GLIBC_2.2 mlock F
+GLIBC_2.2 mlockall F
+GLIBC_2.2 mmap F
+GLIBC_2.2 mmap64 F
+GLIBC_2.2 modf F
+GLIBC_2.2 modff F
+GLIBC_2.2 modfl F
+GLIBC_2.2 moncontrol F
+GLIBC_2.2 monstartup F
+GLIBC_2.2 mount F
+GLIBC_2.2 mprobe F
+GLIBC_2.2 mprotect F
+GLIBC_2.2 mrand48 F
+GLIBC_2.2 mrand48_r F
+GLIBC_2.2 mremap F
+GLIBC_2.2 msgctl F
+GLIBC_2.2 msgget F
+GLIBC_2.2 msgrcv F
+GLIBC_2.2 msgsnd F
+GLIBC_2.2 msync F
+GLIBC_2.2 mtrace F
+GLIBC_2.2 munlock F
+GLIBC_2.2 munlockall F
+GLIBC_2.2 munmap F
+GLIBC_2.2 muntrace F
+GLIBC_2.2 nanosleep F
+GLIBC_2.2 netname2host F
+GLIBC_2.2 netname2user F
+GLIBC_2.2 nfsservctl F
+GLIBC_2.2 nftw F
+GLIBC_2.2 nftw64 F
+GLIBC_2.2 ngettext F
+GLIBC_2.2 nice F
+GLIBC_2.2 nl_langinfo F
+GLIBC_2.2 nrand48 F
+GLIBC_2.2 nrand48_r F
+GLIBC_2.2 ntohl F
+GLIBC_2.2 ntohs F
+GLIBC_2.2 ntp_adjtime F
+GLIBC_2.2 ntp_gettime F
+GLIBC_2.2 obstack_alloc_failed_handler D 0x4
+GLIBC_2.2 obstack_exit_failure D 0x4
+GLIBC_2.2 obstack_free F
+GLIBC_2.2 obstack_printf F
+GLIBC_2.2 obstack_vprintf F
+GLIBC_2.2 on_exit F
+GLIBC_2.2 open F
+GLIBC_2.2 open64 F
+GLIBC_2.2 open_memstream F
+GLIBC_2.2 opendir F
+GLIBC_2.2 openlog F
+GLIBC_2.2 optarg D 0x4
+GLIBC_2.2 opterr D 0x4
+GLIBC_2.2 optind D 0x4
+GLIBC_2.2 optopt D 0x4
+GLIBC_2.2 parse_printf_format F
+GLIBC_2.2 passwd2des F
+GLIBC_2.2 pathconf F
+GLIBC_2.2 pause F
+GLIBC_2.2 pclose F
+GLIBC_2.2 perror F
+GLIBC_2.2 personality F
+GLIBC_2.2 pipe F
+GLIBC_2.2 pmap_getmaps F
+GLIBC_2.2 pmap_getport F
+GLIBC_2.2 pmap_rmtcall F
+GLIBC_2.2 pmap_set F
+GLIBC_2.2 pmap_unset F
+GLIBC_2.2 poll F
+GLIBC_2.2 popen F
+GLIBC_2.2 posix_fadvise F
+GLIBC_2.2 posix_fadvise64 F
+GLIBC_2.2 posix_fallocate F
+GLIBC_2.2 posix_fallocate64 F
+GLIBC_2.2 posix_madvise F
+GLIBC_2.2 posix_memalign F
+GLIBC_2.2 posix_spawn F
+GLIBC_2.2 posix_spawn_file_actions_addclose F
+GLIBC_2.2 posix_spawn_file_actions_adddup2 F
+GLIBC_2.2 posix_spawn_file_actions_addopen F
+GLIBC_2.2 posix_spawn_file_actions_destroy F
+GLIBC_2.2 posix_spawn_file_actions_init F
+GLIBC_2.2 posix_spawnattr_destroy F
+GLIBC_2.2 posix_spawnattr_getflags F
+GLIBC_2.2 posix_spawnattr_getpgroup F
+GLIBC_2.2 posix_spawnattr_getschedparam F
+GLIBC_2.2 posix_spawnattr_getschedpolicy F
+GLIBC_2.2 posix_spawnattr_getsigdefault F
+GLIBC_2.2 posix_spawnattr_getsigmask F
+GLIBC_2.2 posix_spawnattr_init F
+GLIBC_2.2 posix_spawnattr_setflags F
+GLIBC_2.2 posix_spawnattr_setpgroup F
+GLIBC_2.2 posix_spawnattr_setschedparam F
+GLIBC_2.2 posix_spawnattr_setschedpolicy F
+GLIBC_2.2 posix_spawnattr_setsigdefault F
+GLIBC_2.2 posix_spawnattr_setsigmask F
+GLIBC_2.2 posix_spawnp F
+GLIBC_2.2 prctl F
+GLIBC_2.2 pread F
+GLIBC_2.2 pread64 F
+GLIBC_2.2 printf F
+GLIBC_2.2 printf_size F
+GLIBC_2.2 printf_size_info F
+GLIBC_2.2 profil F
+GLIBC_2.2 program_invocation_name D 0x4
+GLIBC_2.2 program_invocation_short_name D 0x4
+GLIBC_2.2 pselect F
+GLIBC_2.2 psignal F
+GLIBC_2.2 pthread_attr_destroy F
+GLIBC_2.2 pthread_attr_getdetachstate F
+GLIBC_2.2 pthread_attr_getinheritsched F
+GLIBC_2.2 pthread_attr_getschedparam F
+GLIBC_2.2 pthread_attr_getschedpolicy F
+GLIBC_2.2 pthread_attr_getscope F
+GLIBC_2.2 pthread_attr_init F
+GLIBC_2.2 pthread_attr_setdetachstate F
+GLIBC_2.2 pthread_attr_setinheritsched F
+GLIBC_2.2 pthread_attr_setschedparam F
+GLIBC_2.2 pthread_attr_setschedpolicy F
+GLIBC_2.2 pthread_attr_setscope F
+GLIBC_2.2 pthread_cond_broadcast F
+GLIBC_2.2 pthread_cond_destroy F
+GLIBC_2.2 pthread_cond_init F
+GLIBC_2.2 pthread_cond_signal F
+GLIBC_2.2 pthread_cond_timedwait F
+GLIBC_2.2 pthread_cond_wait F
+GLIBC_2.2 pthread_condattr_destroy F
+GLIBC_2.2 pthread_condattr_init F
+GLIBC_2.2 pthread_equal F
+GLIBC_2.2 pthread_exit F
+GLIBC_2.2 pthread_getschedparam F
+GLIBC_2.2 pthread_mutex_destroy F
+GLIBC_2.2 pthread_mutex_init F
+GLIBC_2.2 pthread_mutex_lock F
+GLIBC_2.2 pthread_mutex_unlock F
+GLIBC_2.2 pthread_self F
+GLIBC_2.2 pthread_setcancelstate F
+GLIBC_2.2 pthread_setcanceltype F
+GLIBC_2.2 pthread_setschedparam F
+GLIBC_2.2 ptrace F
+GLIBC_2.2 ptsname F
+GLIBC_2.2 ptsname_r F
+GLIBC_2.2 putc F
+GLIBC_2.2 putc_unlocked F
+GLIBC_2.2 putchar F
+GLIBC_2.2 putchar_unlocked F
+GLIBC_2.2 putenv F
+GLIBC_2.2 putgrent F
+GLIBC_2.2 putmsg F
+GLIBC_2.2 putpmsg F
+GLIBC_2.2 putpwent F
+GLIBC_2.2 puts F
+GLIBC_2.2 putspent F
+GLIBC_2.2 pututline F
+GLIBC_2.2 pututxline F
+GLIBC_2.2 putw F
+GLIBC_2.2 putwc F
+GLIBC_2.2 putwc_unlocked F
+GLIBC_2.2 putwchar F
+GLIBC_2.2 putwchar_unlocked F
+GLIBC_2.2 pvalloc F
+GLIBC_2.2 pwrite F
+GLIBC_2.2 pwrite64 F
+GLIBC_2.2 qecvt F
+GLIBC_2.2 qecvt_r F
+GLIBC_2.2 qfcvt F
+GLIBC_2.2 qfcvt_r F
+GLIBC_2.2 qgcvt F
+GLIBC_2.2 qsort F
+GLIBC_2.2 query_module F
+GLIBC_2.2 quotactl F
+GLIBC_2.2 raise F
+GLIBC_2.2 rand F
+GLIBC_2.2 rand_r F
+GLIBC_2.2 random F
+GLIBC_2.2 random_r F
+GLIBC_2.2 rawmemchr F
+GLIBC_2.2 rcmd F
+GLIBC_2.2 rcmd_af F
+GLIBC_2.2 re_comp F
+GLIBC_2.2 re_compile_fastmap F
+GLIBC_2.2 re_compile_pattern F
+GLIBC_2.2 re_exec F
+GLIBC_2.2 re_match F
+GLIBC_2.2 re_match_2 F
+GLIBC_2.2 re_max_failures D 0x4
+GLIBC_2.2 re_search F
+GLIBC_2.2 re_search_2 F
+GLIBC_2.2 re_set_registers F
+GLIBC_2.2 re_set_syntax F
+GLIBC_2.2 re_syntax_options D 0x4
+GLIBC_2.2 read F
+GLIBC_2.2 readdir F
+GLIBC_2.2 readdir64 F
+GLIBC_2.2 readdir64_r F
+GLIBC_2.2 readdir_r F
+GLIBC_2.2 readlink F
+GLIBC_2.2 readv F
+GLIBC_2.2 realloc F
+GLIBC_2.2 realpath F
+GLIBC_2.2 reboot F
+GLIBC_2.2 recv F
+GLIBC_2.2 recvfrom F
+GLIBC_2.2 recvmsg F
+GLIBC_2.2 regcomp F
+GLIBC_2.2 regerror F
+GLIBC_2.2 regexec F
+GLIBC_2.2 regfree F
+GLIBC_2.2 register_printf_function F
+GLIBC_2.2 registerrpc F
+GLIBC_2.2 remove F
+GLIBC_2.2 remque F
+GLIBC_2.2 rename F
+GLIBC_2.2 revoke F
+GLIBC_2.2 rewind F
+GLIBC_2.2 rewinddir F
+GLIBC_2.2 rexec F
+GLIBC_2.2 rexec_af F
+GLIBC_2.2 rexecoptions D 0x4
+GLIBC_2.2 rindex F
+GLIBC_2.2 rmdir F
+GLIBC_2.2 rpc_createerr D 0x10
+GLIBC_2.2 rpmatch F
+GLIBC_2.2 rresvport F
+GLIBC_2.2 rresvport_af F
+GLIBC_2.2 rtime F
+GLIBC_2.2 ruserok F
+GLIBC_2.2 ruserok_af F
+GLIBC_2.2 ruserpass F
+GLIBC_2.2 sbrk F
+GLIBC_2.2 scalbn F
+GLIBC_2.2 scalbnf F
+GLIBC_2.2 scalbnl F
+GLIBC_2.2 scandir F
+GLIBC_2.2 scandir64 F
+GLIBC_2.2 scanf F
+GLIBC_2.2 sched_get_priority_max F
+GLIBC_2.2 sched_get_priority_min F
+GLIBC_2.2 sched_getparam F
+GLIBC_2.2 sched_getscheduler F
+GLIBC_2.2 sched_rr_get_interval F
+GLIBC_2.2 sched_setparam F
+GLIBC_2.2 sched_setscheduler F
+GLIBC_2.2 sched_yield F
+GLIBC_2.2 seed48 F
+GLIBC_2.2 seed48_r F
+GLIBC_2.2 seekdir F
+GLIBC_2.2 select F
+GLIBC_2.2 semctl F
+GLIBC_2.2 semget F
+GLIBC_2.2 semop F
+GLIBC_2.2 send F
+GLIBC_2.2 sendfile F
+GLIBC_2.2 sendmsg F
+GLIBC_2.2 sendto F
+GLIBC_2.2 setaliasent F
+GLIBC_2.2 setbuf F
+GLIBC_2.2 setbuffer F
+GLIBC_2.2 setcontext F
+GLIBC_2.2 setdomainname F
+GLIBC_2.2 setegid F
+GLIBC_2.2 setenv F
+GLIBC_2.2 seteuid F
+GLIBC_2.2 setfsent F
+GLIBC_2.2 setfsgid F
+GLIBC_2.2 setfsuid F
+GLIBC_2.2 setgid F
+GLIBC_2.2 setgrent F
+GLIBC_2.2 setgroups F
+GLIBC_2.2 sethostent F
+GLIBC_2.2 sethostid F
+GLIBC_2.2 sethostname F
+GLIBC_2.2 setitimer F
+GLIBC_2.2 setjmp F
+GLIBC_2.2 setlinebuf F
+GLIBC_2.2 setlocale F
+GLIBC_2.2 setlogin F
+GLIBC_2.2 setlogmask F
+GLIBC_2.2 setmntent F
+GLIBC_2.2 setnetent F
+GLIBC_2.2 setnetgrent F
+GLIBC_2.2 setpgid F
+GLIBC_2.2 setpgrp F
+GLIBC_2.2 setpriority F
+GLIBC_2.2 setprotoent F
+GLIBC_2.2 setpwent F
+GLIBC_2.2 setregid F
+GLIBC_2.2 setresgid F
+GLIBC_2.2 setresuid F
+GLIBC_2.2 setreuid F
+GLIBC_2.2 setrlimit F
+GLIBC_2.2 setrlimit64 F
+GLIBC_2.2 setrpcent F
+GLIBC_2.2 setservent F
+GLIBC_2.2 setsid F
+GLIBC_2.2 setsockopt F
+GLIBC_2.2 setspent F
+GLIBC_2.2 setstate F
+GLIBC_2.2 setstate_r F
+GLIBC_2.2 settimeofday F
+GLIBC_2.2 setttyent F
+GLIBC_2.2 setuid F
+GLIBC_2.2 setusershell F
+GLIBC_2.2 setutent F
+GLIBC_2.2 setutxent F
+GLIBC_2.2 setvbuf F
+GLIBC_2.2 sgetspent F
+GLIBC_2.2 sgetspent_r F
+GLIBC_2.2 shmat F
+GLIBC_2.2 shmctl F
+GLIBC_2.2 shmdt F
+GLIBC_2.2 shmget F
+GLIBC_2.2 shutdown F
+GLIBC_2.2 sigaction F
+GLIBC_2.2 sigaddset F
+GLIBC_2.2 sigaltstack F
+GLIBC_2.2 sigandset F
+GLIBC_2.2 sigblock F
+GLIBC_2.2 sigdelset F
+GLIBC_2.2 sigemptyset F
+GLIBC_2.2 sigfillset F
+GLIBC_2.2 siggetmask F
+GLIBC_2.2 sighold F
+GLIBC_2.2 sigignore F
+GLIBC_2.2 siginterrupt F
+GLIBC_2.2 sigisemptyset F
+GLIBC_2.2 sigismember F
+GLIBC_2.2 siglongjmp F
+GLIBC_2.2 signal F
+GLIBC_2.2 sigorset F
+GLIBC_2.2 sigpause F
+GLIBC_2.2 sigpending F
+GLIBC_2.2 sigprocmask F
+GLIBC_2.2 sigqueue F
+GLIBC_2.2 sigrelse F
+GLIBC_2.2 sigreturn F
+GLIBC_2.2 sigset F
+GLIBC_2.2 sigsetmask F
+GLIBC_2.2 sigstack F
+GLIBC_2.2 sigsuspend F
+GLIBC_2.2 sigtimedwait F
+GLIBC_2.2 sigvec F
+GLIBC_2.2 sigwait F
+GLIBC_2.2 sigwaitinfo F
+GLIBC_2.2 sleep F
+GLIBC_2.2 snprintf F
+GLIBC_2.2 socket F
+GLIBC_2.2 socketpair F
+GLIBC_2.2 sprintf F
+GLIBC_2.2 srand F
+GLIBC_2.2 srand48 F
+GLIBC_2.2 srand48_r F
+GLIBC_2.2 srandom F
+GLIBC_2.2 srandom_r F
+GLIBC_2.2 sscanf F
+GLIBC_2.2 ssignal F
+GLIBC_2.2 sstk F
+GLIBC_2.2 statfs F
+GLIBC_2.2 statfs64 F
+GLIBC_2.2 statvfs F
+GLIBC_2.2 statvfs64 F
+GLIBC_2.2 stderr D 0x4
+GLIBC_2.2 stdin D 0x4
+GLIBC_2.2 stdout D 0x4
+GLIBC_2.2 step F
+GLIBC_2.2 stime F
+GLIBC_2.2 stpcpy F
+GLIBC_2.2 stpncpy F
+GLIBC_2.2 strcasecmp F
+GLIBC_2.2 strcasestr F
+GLIBC_2.2 strcat F
+GLIBC_2.2 strchr F
+GLIBC_2.2 strchrnul F
+GLIBC_2.2 strcmp F
+GLIBC_2.2 strcoll F
+GLIBC_2.2 strcpy F
+GLIBC_2.2 strcspn F
+GLIBC_2.2 strdup F
+GLIBC_2.2 strerror F
+GLIBC_2.2 strerror_r F
+GLIBC_2.2 strfmon F
+GLIBC_2.2 strfry F
+GLIBC_2.2 strftime F
+GLIBC_2.2 strlen F
+GLIBC_2.2 strncasecmp F
+GLIBC_2.2 strncat F
+GLIBC_2.2 strncmp F
+GLIBC_2.2 strncpy F
+GLIBC_2.2 strndup F
+GLIBC_2.2 strnlen F
+GLIBC_2.2 strpbrk F
+GLIBC_2.2 strptime F
+GLIBC_2.2 strrchr F
+GLIBC_2.2 strsep F
+GLIBC_2.2 strsignal F
+GLIBC_2.2 strspn F
+GLIBC_2.2 strstr F
+GLIBC_2.2 strtod F
+GLIBC_2.2 strtof F
+GLIBC_2.2 strtoimax F
+GLIBC_2.2 strtok F
+GLIBC_2.2 strtok_r F
+GLIBC_2.2 strtol F
+GLIBC_2.2 strtold F
+GLIBC_2.2 strtoll F
+GLIBC_2.2 strtoq F
+GLIBC_2.2 strtoul F
+GLIBC_2.2 strtoull F
+GLIBC_2.2 strtoumax F
+GLIBC_2.2 strtouq F
+GLIBC_2.2 strverscmp F
+GLIBC_2.2 strxfrm F
+GLIBC_2.2 stty F
+GLIBC_2.2 svc_exit F
+GLIBC_2.2 svc_fdset D 0x80
+GLIBC_2.2 svc_getreq F
+GLIBC_2.2 svc_getreq_common F
+GLIBC_2.2 svc_getreq_poll F
+GLIBC_2.2 svc_getreqset F
+GLIBC_2.2 svc_max_pollfd D 0x4
+GLIBC_2.2 svc_pollfd D 0x4
+GLIBC_2.2 svc_register F
+GLIBC_2.2 svc_run F
+GLIBC_2.2 svc_sendreply F
+GLIBC_2.2 svc_unregister F
+GLIBC_2.2 svcauthdes_stats D 0xc
+GLIBC_2.2 svcerr_auth F
+GLIBC_2.2 svcerr_decode F
+GLIBC_2.2 svcerr_noproc F
+GLIBC_2.2 svcerr_noprog F
+GLIBC_2.2 svcerr_progvers F
+GLIBC_2.2 svcerr_systemerr F
+GLIBC_2.2 svcerr_weakauth F
+GLIBC_2.2 svcfd_create F
+GLIBC_2.2 svcraw_create F
+GLIBC_2.2 svctcp_create F
+GLIBC_2.2 svcudp_bufcreate F
+GLIBC_2.2 svcudp_create F
+GLIBC_2.2 svcudp_enablecache F
+GLIBC_2.2 svcunix_create F
+GLIBC_2.2 svcunixfd_create F
+GLIBC_2.2 swab F
+GLIBC_2.2 swapcontext F
+GLIBC_2.2 swapoff F
+GLIBC_2.2 swapon F
+GLIBC_2.2 swprintf F
+GLIBC_2.2 swscanf F
+GLIBC_2.2 symlink F
+GLIBC_2.2 sync F
+GLIBC_2.2 sys_errlist D 0x3f4
+GLIBC_2.2 sys_nerr D 0x4
+GLIBC_2.2 sys_sigabbrev D 0x100
+GLIBC_2.2 sys_siglist D 0x100
+GLIBC_2.2 syscall F
+GLIBC_2.2 sysconf F
+GLIBC_2.2 sysctl F
+GLIBC_2.2 sysinfo F
+GLIBC_2.2 syslog F
+GLIBC_2.2 system F
+GLIBC_2.2 sysv_signal F
+GLIBC_2.2 tcdrain F
+GLIBC_2.2 tcflow F
+GLIBC_2.2 tcflush F
+GLIBC_2.2 tcgetattr F
+GLIBC_2.2 tcgetpgrp F
+GLIBC_2.2 tcgetsid F
+GLIBC_2.2 tcsendbreak F
+GLIBC_2.2 tcsetattr F
+GLIBC_2.2 tcsetpgrp F
+GLIBC_2.2 tdelete F
+GLIBC_2.2 tdestroy F
+GLIBC_2.2 telldir F
+GLIBC_2.2 tempnam F
+GLIBC_2.2 textdomain F
+GLIBC_2.2 tfind F
+GLIBC_2.2 time F
+GLIBC_2.2 timegm F
+GLIBC_2.2 timelocal F
+GLIBC_2.2 times F
+GLIBC_2.2 timezone D 0x4
+GLIBC_2.2 tmpfile F
+GLIBC_2.2 tmpfile64 F
+GLIBC_2.2 tmpnam F
+GLIBC_2.2 tmpnam_r F
+GLIBC_2.2 toascii F
+GLIBC_2.2 tolower F
+GLIBC_2.2 toupper F
+GLIBC_2.2 towctrans F
+GLIBC_2.2 towlower F
+GLIBC_2.2 towupper F
+GLIBC_2.2 tr_break F
+GLIBC_2.2 truncate F
+GLIBC_2.2 truncate64 F
+GLIBC_2.2 tsearch F
+GLIBC_2.2 ttyname F
+GLIBC_2.2 ttyname_r F
+GLIBC_2.2 ttyslot F
+GLIBC_2.2 twalk F
+GLIBC_2.2 tzname D 0x8
+GLIBC_2.2 tzset F
+GLIBC_2.2 ualarm F
+GLIBC_2.2 ulckpwdf F
+GLIBC_2.2 ulimit F
+GLIBC_2.2 umask F
+GLIBC_2.2 umount F
+GLIBC_2.2 umount2 F
+GLIBC_2.2 uname F
+GLIBC_2.2 ungetc F
+GLIBC_2.2 ungetwc F
+GLIBC_2.2 unlink F
+GLIBC_2.2 unlockpt F
+GLIBC_2.2 unsetenv F
+GLIBC_2.2 updwtmp F
+GLIBC_2.2 updwtmpx F
+GLIBC_2.2 uselib F
+GLIBC_2.2 user2netname F
+GLIBC_2.2 usleep F
+GLIBC_2.2 ustat F
+GLIBC_2.2 utime F
+GLIBC_2.2 utimes F
+GLIBC_2.2 utmpname F
+GLIBC_2.2 utmpxname F
+GLIBC_2.2 valloc F
+GLIBC_2.2 vasprintf F
+GLIBC_2.2 vdprintf F
+GLIBC_2.2 verr F
+GLIBC_2.2 verrx F
+GLIBC_2.2 versionsort F
+GLIBC_2.2 versionsort64 F
+GLIBC_2.2 vfork F
+GLIBC_2.2 vfprintf F
+GLIBC_2.2 vfscanf F
+GLIBC_2.2 vfwprintf F
+GLIBC_2.2 vfwscanf F
+GLIBC_2.2 vhangup F
+GLIBC_2.2 vlimit F
+GLIBC_2.2 vprintf F
+GLIBC_2.2 vscanf F
+GLIBC_2.2 vsnprintf F
+GLIBC_2.2 vsprintf F
+GLIBC_2.2 vsscanf F
+GLIBC_2.2 vswprintf F
+GLIBC_2.2 vswscanf F
+GLIBC_2.2 vsyslog F
+GLIBC_2.2 vtimes F
+GLIBC_2.2 vwarn F
+GLIBC_2.2 vwarnx F
+GLIBC_2.2 vwprintf F
+GLIBC_2.2 vwscanf F
+GLIBC_2.2 wait F
+GLIBC_2.2 wait3 F
+GLIBC_2.2 wait4 F
+GLIBC_2.2 waitid F
+GLIBC_2.2 waitpid F
+GLIBC_2.2 warn F
+GLIBC_2.2 warnx F
+GLIBC_2.2 wcpcpy F
+GLIBC_2.2 wcpncpy F
+GLIBC_2.2 wcrtomb F
+GLIBC_2.2 wcscasecmp F
+GLIBC_2.2 wcscat F
+GLIBC_2.2 wcschr F
+GLIBC_2.2 wcschrnul F
+GLIBC_2.2 wcscmp F
+GLIBC_2.2 wcscoll F
+GLIBC_2.2 wcscpy F
+GLIBC_2.2 wcscspn F
+GLIBC_2.2 wcsdup F
+GLIBC_2.2 wcsftime F
+GLIBC_2.2 wcslen F
+GLIBC_2.2 wcsncasecmp F
+GLIBC_2.2 wcsncat F
+GLIBC_2.2 wcsncmp F
+GLIBC_2.2 wcsncpy F
+GLIBC_2.2 wcsnlen F
+GLIBC_2.2 wcsnrtombs F
+GLIBC_2.2 wcspbrk F
+GLIBC_2.2 wcsrchr F
+GLIBC_2.2 wcsrtombs F
+GLIBC_2.2 wcsspn F
+GLIBC_2.2 wcsstr F
+GLIBC_2.2 wcstod F
+GLIBC_2.2 wcstof F
+GLIBC_2.2 wcstoimax F
+GLIBC_2.2 wcstok F
+GLIBC_2.2 wcstol F
+GLIBC_2.2 wcstold F
+GLIBC_2.2 wcstoll F
+GLIBC_2.2 wcstombs F
+GLIBC_2.2 wcstoq F
+GLIBC_2.2 wcstoul F
+GLIBC_2.2 wcstoull F
+GLIBC_2.2 wcstoumax F
+GLIBC_2.2 wcstouq F
+GLIBC_2.2 wcswcs F
+GLIBC_2.2 wcswidth F
+GLIBC_2.2 wcsxfrm F
+GLIBC_2.2 wctob F
+GLIBC_2.2 wctomb F
+GLIBC_2.2 wctrans F
+GLIBC_2.2 wctype F
+GLIBC_2.2 wcwidth F
+GLIBC_2.2 wmemchr F
+GLIBC_2.2 wmemcmp F
+GLIBC_2.2 wmemcpy F
+GLIBC_2.2 wmemmove F
+GLIBC_2.2 wmempcpy F
+GLIBC_2.2 wmemset F
+GLIBC_2.2 wordexp F
+GLIBC_2.2 wordfree F
+GLIBC_2.2 wprintf F
+GLIBC_2.2 write F
+GLIBC_2.2 writev F
+GLIBC_2.2 wscanf F
+GLIBC_2.2 xdecrypt F
+GLIBC_2.2 xdr_accepted_reply F
+GLIBC_2.2 xdr_array F
+GLIBC_2.2 xdr_authdes_cred F
+GLIBC_2.2 xdr_authdes_verf F
+GLIBC_2.2 xdr_authunix_parms F
+GLIBC_2.2 xdr_bool F
+GLIBC_2.2 xdr_bytes F
+GLIBC_2.2 xdr_callhdr F
+GLIBC_2.2 xdr_callmsg F
+GLIBC_2.2 xdr_char F
+GLIBC_2.2 xdr_cryptkeyarg F
+GLIBC_2.2 xdr_cryptkeyarg2 F
+GLIBC_2.2 xdr_cryptkeyres F
+GLIBC_2.2 xdr_des_block F
+GLIBC_2.2 xdr_double F
+GLIBC_2.2 xdr_enum F
+GLIBC_2.2 xdr_float F
+GLIBC_2.2 xdr_free F
+GLIBC_2.2 xdr_getcredres F
+GLIBC_2.2 xdr_hyper F
+GLIBC_2.2 xdr_int F
+GLIBC_2.2 xdr_int16_t F
+GLIBC_2.2 xdr_int32_t F
+GLIBC_2.2 xdr_int64_t F
+GLIBC_2.2 xdr_int8_t F
+GLIBC_2.2 xdr_key_netstarg F
+GLIBC_2.2 xdr_key_netstres F
+GLIBC_2.2 xdr_keybuf F
+GLIBC_2.2 xdr_keystatus F
+GLIBC_2.2 xdr_long F
+GLIBC_2.2 xdr_longlong_t F
+GLIBC_2.2 xdr_netnamestr F
+GLIBC_2.2 xdr_netobj F
+GLIBC_2.2 xdr_opaque F
+GLIBC_2.2 xdr_opaque_auth F
+GLIBC_2.2 xdr_pmap F
+GLIBC_2.2 xdr_pmaplist F
+GLIBC_2.2 xdr_pointer F
+GLIBC_2.2 xdr_reference F
+GLIBC_2.2 xdr_rejected_reply F
+GLIBC_2.2 xdr_replymsg F
+GLIBC_2.2 xdr_rmtcall_args F
+GLIBC_2.2 xdr_rmtcallres F
+GLIBC_2.2 xdr_short F
+GLIBC_2.2 xdr_sizeof F
+GLIBC_2.2 xdr_string F
+GLIBC_2.2 xdr_u_char F
+GLIBC_2.2 xdr_u_hyper F
+GLIBC_2.2 xdr_u_int F
+GLIBC_2.2 xdr_u_long F
+GLIBC_2.2 xdr_u_longlong_t F
+GLIBC_2.2 xdr_u_short F
+GLIBC_2.2 xdr_uint16_t F
+GLIBC_2.2 xdr_uint32_t F
+GLIBC_2.2 xdr_uint64_t F
+GLIBC_2.2 xdr_uint8_t F
+GLIBC_2.2 xdr_union F
+GLIBC_2.2 xdr_unixcred F
+GLIBC_2.2 xdr_vector F
+GLIBC_2.2 xdr_void F
+GLIBC_2.2 xdr_wrapstring F
+GLIBC_2.2 xdrmem_create F
+GLIBC_2.2 xdrrec_create F
+GLIBC_2.2 xdrrec_endofrecord F
+GLIBC_2.2 xdrrec_eof F
+GLIBC_2.2 xdrrec_skiprecord F
+GLIBC_2.2 xdrstdio_create F
+GLIBC_2.2 xencrypt F
+GLIBC_2.2 xprt_register F
+GLIBC_2.2 xprt_unregister F
+GLIBC_2.2.1 GLIBC_2.2.1 A
+GLIBC_2.2.1 pivot_root F
+GLIBC_2.2.1 posix_openpt F
+GLIBC_2.2.2 GLIBC_2.2.2 A
+GLIBC_2.2.2 __nss_hostname_digits_dots F
+GLIBC_2.2.3 GLIBC_2.2.3 A
+GLIBC_2.2.3 __rpc_thread_createerr F
+GLIBC_2.2.3 __rpc_thread_svc_fdset F
+GLIBC_2.2.3 __rpc_thread_svc_max_pollfd F
+GLIBC_2.2.3 __rpc_thread_svc_pollfd F
+GLIBC_2.2.3 fnmatch F
+GLIBC_2.2.3 sprofil F
+GLIBC_2.2.4 GLIBC_2.2.4 A
+GLIBC_2.2.4 dl_iterate_phdr F
+GLIBC_2.2.4 getgrouplist F
+GLIBC_2.2.4 sockatmark F
+GLIBC_2.2.6 GLIBC_2.2.6 A
+GLIBC_2.2.6 __nanosleep F
+GLIBC_2.22 GLIBC_2.22 A
+GLIBC_2.22 fmemopen F
+GLIBC_2.23 GLIBC_2.23 A
+GLIBC_2.23 fts64_children F
+GLIBC_2.23 fts64_close F
+GLIBC_2.23 fts64_open F
+GLIBC_2.23 fts64_read F
+GLIBC_2.23 fts64_set F
+GLIBC_2.24 GLIBC_2.24 A
+GLIBC_2.24 quick_exit F
+GLIBC_2.25 GLIBC_2.25 A
+GLIBC_2.25 __explicit_bzero_chk F
+GLIBC_2.25 explicit_bzero F
+GLIBC_2.25 getentropy F
+GLIBC_2.25 getrandom F
+GLIBC_2.25 strfromd F
+GLIBC_2.25 strfromf F
+GLIBC_2.25 strfroml F
+GLIBC_2.26 GLIBC_2.26 A
+GLIBC_2.26 preadv2 F
+GLIBC_2.26 preadv64v2 F
+GLIBC_2.26 pwritev2 F
+GLIBC_2.26 pwritev64v2 F
+GLIBC_2.26 reallocarray F
+GLIBC_2.3 GLIBC_2.3 A
+GLIBC_2.3 __ctype_b_loc F
+GLIBC_2.3 __ctype_tolower_loc F
+GLIBC_2.3 __ctype_toupper_loc F
+GLIBC_2.3 __isctype F
+GLIBC_2.3 __strftime_l F
+GLIBC_2.3 __uselocale F
+GLIBC_2.3 __wcsftime_l F
+GLIBC_2.3 _sys_errlist D 0x3f8
+GLIBC_2.3 _sys_nerr D 0x4
+GLIBC_2.3 duplocale F
+GLIBC_2.3 fgetxattr F
+GLIBC_2.3 flistxattr F
+GLIBC_2.3 freeifaddrs F
+GLIBC_2.3 freelocale F
+GLIBC_2.3 fremovexattr F
+GLIBC_2.3 fsetxattr F
+GLIBC_2.3 futimes F
+GLIBC_2.3 getifaddrs F
+GLIBC_2.3 getxattr F
+GLIBC_2.3 isalnum_l F
+GLIBC_2.3 isalpha_l F
+GLIBC_2.3 isblank_l F
+GLIBC_2.3 iscntrl_l F
+GLIBC_2.3 isctype F
+GLIBC_2.3 isdigit_l F
+GLIBC_2.3 isgraph_l F
+GLIBC_2.3 islower_l F
+GLIBC_2.3 isprint_l F
+GLIBC_2.3 ispunct_l F
+GLIBC_2.3 isspace_l F
+GLIBC_2.3 isupper_l F
+GLIBC_2.3 iswalnum_l F
+GLIBC_2.3 iswalpha_l F
+GLIBC_2.3 iswblank_l F
+GLIBC_2.3 iswcntrl_l F
+GLIBC_2.3 iswctype_l F
+GLIBC_2.3 iswdigit_l F
+GLIBC_2.3 iswgraph_l F
+GLIBC_2.3 iswlower_l F
+GLIBC_2.3 iswprint_l F
+GLIBC_2.3 iswpunct_l F
+GLIBC_2.3 iswspace_l F
+GLIBC_2.3 iswupper_l F
+GLIBC_2.3 iswxdigit_l F
+GLIBC_2.3 isxdigit_l F
+GLIBC_2.3 lgetxattr F
+GLIBC_2.3 listxattr F
+GLIBC_2.3 llistxattr F
+GLIBC_2.3 lremovexattr F
+GLIBC_2.3 lsetxattr F
+GLIBC_2.3 lutimes F
+GLIBC_2.3 newlocale F
+GLIBC_2.3 nl_langinfo_l F
+GLIBC_2.3 readahead F
+GLIBC_2.3 realpath F
+GLIBC_2.3 removexattr F
+GLIBC_2.3 sendfile64 F
+GLIBC_2.3 setxattr F
+GLIBC_2.3 strcasecmp_l F
+GLIBC_2.3 strcoll_l F
+GLIBC_2.3 strfmon_l F
+GLIBC_2.3 strftime_l F
+GLIBC_2.3 strncasecmp_l F
+GLIBC_2.3 strtod_l F
+GLIBC_2.3 strtof_l F
+GLIBC_2.3 strtol_l F
+GLIBC_2.3 strtold_l F
+GLIBC_2.3 strtoll_l F
+GLIBC_2.3 strtoul_l F
+GLIBC_2.3 strtoull_l F
+GLIBC_2.3 strxfrm_l F
+GLIBC_2.3 sys_errlist D 0x3f8
+GLIBC_2.3 sys_nerr D 0x4
+GLIBC_2.3 tolower_l F
+GLIBC_2.3 toupper_l F
+GLIBC_2.3 towctrans_l F
+GLIBC_2.3 towlower_l F
+GLIBC_2.3 towupper_l F
+GLIBC_2.3 uselocale F
+GLIBC_2.3 wcscasecmp_l F
+GLIBC_2.3 wcscoll_l F
+GLIBC_2.3 wcsftime_l F
+GLIBC_2.3 wcsncasecmp_l F
+GLIBC_2.3 wcstod_l F
+GLIBC_2.3 wcstof_l F
+GLIBC_2.3 wcstol_l F
+GLIBC_2.3 wcstold_l F
+GLIBC_2.3 wcstoll_l F
+GLIBC_2.3 wcstoul_l F
+GLIBC_2.3 wcstoull_l F
+GLIBC_2.3 wcsxfrm_l F
+GLIBC_2.3 wctrans_l F
+GLIBC_2.3 wctype_l F
+GLIBC_2.3.2 GLIBC_2.3.2 A
+GLIBC_2.3.2 __register_atfork F
+GLIBC_2.3.2 epoll_create F
+GLIBC_2.3.2 epoll_ctl F
+GLIBC_2.3.2 epoll_wait F
+GLIBC_2.3.2 lchmod F
+GLIBC_2.3.2 pthread_cond_broadcast F
+GLIBC_2.3.2 pthread_cond_destroy F
+GLIBC_2.3.2 pthread_cond_init F
+GLIBC_2.3.2 pthread_cond_signal F
+GLIBC_2.3.2 pthread_cond_timedwait F
+GLIBC_2.3.2 pthread_cond_wait F
+GLIBC_2.3.2 strptime_l F
+GLIBC_2.3.3 GLIBC_2.3.3 A
+GLIBC_2.3.3 _sys_siglist D 0x104
+GLIBC_2.3.3 gnu_dev_major F
+GLIBC_2.3.3 gnu_dev_makedev F
+GLIBC_2.3.3 gnu_dev_minor F
+GLIBC_2.3.3 inet6_option_alloc F
+GLIBC_2.3.3 inet6_option_append F
+GLIBC_2.3.3 inet6_option_find F
+GLIBC_2.3.3 inet6_option_init F
+GLIBC_2.3.3 inet6_option_next F
+GLIBC_2.3.3 inet6_option_space F
+GLIBC_2.3.3 nftw F
+GLIBC_2.3.3 nftw64 F
+GLIBC_2.3.3 posix_fadvise64 F
+GLIBC_2.3.3 posix_fallocate64 F
+GLIBC_2.3.3 remap_file_pages F
+GLIBC_2.3.3 sched_getaffinity F
+GLIBC_2.3.3 sched_setaffinity F
+GLIBC_2.3.3 semtimedop F
+GLIBC_2.3.3 sys_sigabbrev D 0x104
+GLIBC_2.3.3 sys_siglist D 0x104
+GLIBC_2.3.4 GLIBC_2.3.4 A
+GLIBC_2.3.4 __chk_fail F
+GLIBC_2.3.4 __fprintf_chk F
+GLIBC_2.3.4 __gets_chk F
+GLIBC_2.3.4 __memcpy_chk F
+GLIBC_2.3.4 __memmove_chk F
+GLIBC_2.3.4 __mempcpy_chk F
+GLIBC_2.3.4 __memset_chk F
+GLIBC_2.3.4 __printf_chk F
+GLIBC_2.3.4 __snprintf_chk F
+GLIBC_2.3.4 __sprintf_chk F
+GLIBC_2.3.4 __stpcpy_chk F
+GLIBC_2.3.4 __strcat_chk F
+GLIBC_2.3.4 __strcpy_chk F
+GLIBC_2.3.4 __strncat_chk F
+GLIBC_2.3.4 __strncpy_chk F
+GLIBC_2.3.4 __vfprintf_chk F
+GLIBC_2.3.4 __vprintf_chk F
+GLIBC_2.3.4 __vsnprintf_chk F
+GLIBC_2.3.4 __vsprintf_chk F
+GLIBC_2.3.4 __xpg_strerror_r F
+GLIBC_2.3.4 getipv4sourcefilter F
+GLIBC_2.3.4 getsourcefilter F
+GLIBC_2.3.4 regexec F
+GLIBC_2.3.4 sched_getaffinity F
+GLIBC_2.3.4 sched_setaffinity F
+GLIBC_2.3.4 setipv4sourcefilter F
+GLIBC_2.3.4 setsourcefilter F
+GLIBC_2.3.4 xdr_quad_t F
+GLIBC_2.3.4 xdr_u_quad_t F
+GLIBC_2.4 GLIBC_2.4 A
+GLIBC_2.4 __confstr_chk F
+GLIBC_2.4 __fgets_chk F
+GLIBC_2.4 __fgets_unlocked_chk F
+GLIBC_2.4 __fgetws_chk F
+GLIBC_2.4 __fgetws_unlocked_chk F
+GLIBC_2.4 __fwprintf_chk F
+GLIBC_2.4 __fxstatat F
+GLIBC_2.4 __fxstatat64 F
+GLIBC_2.4 __getcwd_chk F
+GLIBC_2.4 __getdomainname_chk F
+GLIBC_2.4 __getgroups_chk F
+GLIBC_2.4 __gethostname_chk F
+GLIBC_2.4 __getlogin_r_chk F
+GLIBC_2.4 __getwd_chk F
+GLIBC_2.4 __mbsnrtowcs_chk F
+GLIBC_2.4 __mbsrtowcs_chk F
+GLIBC_2.4 __mbstowcs_chk F
+GLIBC_2.4 __pread64_chk F
+GLIBC_2.4 __pread_chk F
+GLIBC_2.4 __ptsname_r_chk F
+GLIBC_2.4 __read_chk F
+GLIBC_2.4 __readlink_chk F
+GLIBC_2.4 __realpath_chk F
+GLIBC_2.4 __recv_chk F
+GLIBC_2.4 __recvfrom_chk F
+GLIBC_2.4 __stack_chk_fail F
+GLIBC_2.4 __stpncpy_chk F
+GLIBC_2.4 __swprintf_chk F
+GLIBC_2.4 __syslog_chk F
+GLIBC_2.4 __ttyname_r_chk F
+GLIBC_2.4 __vfwprintf_chk F
+GLIBC_2.4 __vswprintf_chk F
+GLIBC_2.4 __vsyslog_chk F
+GLIBC_2.4 __vwprintf_chk F
+GLIBC_2.4 __wcpcpy_chk F
+GLIBC_2.4 __wcpncpy_chk F
+GLIBC_2.4 __wcrtomb_chk F
+GLIBC_2.4 __wcscat_chk F
+GLIBC_2.4 __wcscpy_chk F
+GLIBC_2.4 __wcsncat_chk F
+GLIBC_2.4 __wcsncpy_chk F
+GLIBC_2.4 __wcsnrtombs_chk F
+GLIBC_2.4 __wcsrtombs_chk F
+GLIBC_2.4 __wcstombs_chk F
+GLIBC_2.4 __wctomb_chk F
+GLIBC_2.4 __wmemcpy_chk F
+GLIBC_2.4 __wmemmove_chk F
+GLIBC_2.4 __wmempcpy_chk F
+GLIBC_2.4 __wmemset_chk F
+GLIBC_2.4 __wprintf_chk F
+GLIBC_2.4 __xmknodat F
+GLIBC_2.4 _sys_errlist D 0x400
+GLIBC_2.4 _sys_nerr D 0x4
+GLIBC_2.4 eaccess F
+GLIBC_2.4 faccessat F
+GLIBC_2.4 fchmodat F
+GLIBC_2.4 fchownat F
+GLIBC_2.4 fdopendir F
+GLIBC_2.4 futimesat F
+GLIBC_2.4 inotify_add_watch F
+GLIBC_2.4 inotify_init F
+GLIBC_2.4 inotify_rm_watch F
+GLIBC_2.4 linkat F
+GLIBC_2.4 mkdirat F
+GLIBC_2.4 mkfifoat F
+GLIBC_2.4 open_wmemstream F
+GLIBC_2.4 openat F
+GLIBC_2.4 openat64 F
+GLIBC_2.4 ppoll F
+GLIBC_2.4 readlinkat F
+GLIBC_2.4 renameat F
+GLIBC_2.4 symlinkat F
+GLIBC_2.4 sys_errlist D 0x400
+GLIBC_2.4 sys_nerr D 0x4
+GLIBC_2.4 unlinkat F
+GLIBC_2.4 unshare F
+GLIBC_2.5 GLIBC_2.5 A
+GLIBC_2.5 __readlinkat_chk F
+GLIBC_2.5 inet6_opt_append F
+GLIBC_2.5 inet6_opt_find F
+GLIBC_2.5 inet6_opt_finish F
+GLIBC_2.5 inet6_opt_get_val F
+GLIBC_2.5 inet6_opt_init F
+GLIBC_2.5 inet6_opt_next F
+GLIBC_2.5 inet6_opt_set_val F
+GLIBC_2.5 inet6_rth_add F
+GLIBC_2.5 inet6_rth_getaddr F
+GLIBC_2.5 inet6_rth_init F
+GLIBC_2.5 inet6_rth_reverse F
+GLIBC_2.5 inet6_rth_segments F
+GLIBC_2.5 inet6_rth_space F
+GLIBC_2.5 splice F
+GLIBC_2.5 tee F
+GLIBC_2.5 vmsplice F
+GLIBC_2.6 GLIBC_2.6 A
+GLIBC_2.6 __sched_cpucount F
+GLIBC_2.6 epoll_pwait F
+GLIBC_2.6 futimens F
+GLIBC_2.6 sched_getcpu F
+GLIBC_2.6 strerror_l F
+GLIBC_2.6 sync_file_range F
+GLIBC_2.6 utimensat F
+GLIBC_2.7 GLIBC_2.7 A
+GLIBC_2.7 __fread_chk F
+GLIBC_2.7 __fread_unlocked_chk F
+GLIBC_2.7 __isoc99_fscanf F
+GLIBC_2.7 __isoc99_fwscanf F
+GLIBC_2.7 __isoc99_scanf F
+GLIBC_2.7 __isoc99_sscanf F
+GLIBC_2.7 __isoc99_swscanf F
+GLIBC_2.7 __isoc99_vfscanf F
+GLIBC_2.7 __isoc99_vfwscanf F
+GLIBC_2.7 __isoc99_vscanf F
+GLIBC_2.7 __isoc99_vsscanf F
+GLIBC_2.7 __isoc99_vswscanf F
+GLIBC_2.7 __isoc99_vwscanf F
+GLIBC_2.7 __isoc99_wscanf F
+GLIBC_2.7 __open64_2 F
+GLIBC_2.7 __open_2 F
+GLIBC_2.7 __openat64_2 F
+GLIBC_2.7 __openat_2 F
+GLIBC_2.7 __sched_cpualloc F
+GLIBC_2.7 __sched_cpufree F
+GLIBC_2.7 eventfd F
+GLIBC_2.7 eventfd_read F
+GLIBC_2.7 eventfd_write F
+GLIBC_2.7 mkostemp F
+GLIBC_2.7 mkostemp64 F
+GLIBC_2.7 signalfd F
+GLIBC_2.8 GLIBC_2.8 A
+GLIBC_2.8 __asprintf_chk F
+GLIBC_2.8 __dprintf_chk F
+GLIBC_2.8 __obstack_printf_chk F
+GLIBC_2.8 __obstack_vprintf_chk F
+GLIBC_2.8 __vasprintf_chk F
+GLIBC_2.8 __vdprintf_chk F
+GLIBC_2.8 qsort_r F
+GLIBC_2.8 timerfd_create F
+GLIBC_2.8 timerfd_gettime F
+GLIBC_2.8 timerfd_settime F
+GLIBC_2.9 GLIBC_2.9 A
+GLIBC_2.9 dup3 F
+GLIBC_2.9 epoll_create1 F
+GLIBC_2.9 inotify_init1 F
+GLIBC_2.9 pipe2 F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/libcrypt.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/libcrypt.abilist
new file mode 100644
index 0000000000..4db2639336
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/libcrypt.abilist
@@ -0,0 +1,8 @@
+GLIBC_2.0 GLIBC_2.0 A
+GLIBC_2.0 crypt F
+GLIBC_2.0 crypt_r F
+GLIBC_2.0 encrypt F
+GLIBC_2.0 encrypt_r F
+GLIBC_2.0 fcrypt F
+GLIBC_2.0 setkey F
+GLIBC_2.0 setkey_r F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/libdl.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/libdl.abilist
new file mode 100644
index 0000000000..5536f6e0a9
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/libdl.abilist
@@ -0,0 +1,14 @@
+GLIBC_2.0 GLIBC_2.0 A
+GLIBC_2.0 dladdr F
+GLIBC_2.0 dlclose F
+GLIBC_2.0 dlerror F
+GLIBC_2.0 dlopen F
+GLIBC_2.0 dlsym F
+GLIBC_2.1 GLIBC_2.1 A
+GLIBC_2.1 dlopen F
+GLIBC_2.1 dlvsym F
+GLIBC_2.3.3 GLIBC_2.3.3 A
+GLIBC_2.3.3 dladdr1 F
+GLIBC_2.3.3 dlinfo F
+GLIBC_2.3.4 GLIBC_2.3.4 A
+GLIBC_2.3.4 dlmopen F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/libm.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/libm.abilist
new file mode 100644
index 0000000000..80fd4ada99
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/libm.abilist
@@ -0,0 +1,433 @@
+GLIBC_2.15 GLIBC_2.15 A
+GLIBC_2.15 __acos_finite F
+GLIBC_2.15 __acosf_finite F
+GLIBC_2.15 __acosh_finite F
+GLIBC_2.15 __acoshf_finite F
+GLIBC_2.15 __asin_finite F
+GLIBC_2.15 __asinf_finite F
+GLIBC_2.15 __atan2_finite F
+GLIBC_2.15 __atan2f_finite F
+GLIBC_2.15 __atanh_finite F
+GLIBC_2.15 __atanhf_finite F
+GLIBC_2.15 __cosh_finite F
+GLIBC_2.15 __coshf_finite F
+GLIBC_2.15 __exp10_finite F
+GLIBC_2.15 __exp10f_finite F
+GLIBC_2.15 __exp2_finite F
+GLIBC_2.15 __exp2f_finite F
+GLIBC_2.15 __exp_finite F
+GLIBC_2.15 __expf_finite F
+GLIBC_2.15 __fmod_finite F
+GLIBC_2.15 __fmodf_finite F
+GLIBC_2.15 __gamma_r_finite F
+GLIBC_2.15 __gammaf_r_finite F
+GLIBC_2.15 __hypot_finite F
+GLIBC_2.15 __hypotf_finite F
+GLIBC_2.15 __j0_finite F
+GLIBC_2.15 __j0f_finite F
+GLIBC_2.15 __j1_finite F
+GLIBC_2.15 __j1f_finite F
+GLIBC_2.15 __jn_finite F
+GLIBC_2.15 __jnf_finite F
+GLIBC_2.15 __lgamma_r_finite F
+GLIBC_2.15 __lgammaf_r_finite F
+GLIBC_2.15 __log10_finite F
+GLIBC_2.15 __log10f_finite F
+GLIBC_2.15 __log2_finite F
+GLIBC_2.15 __log2f_finite F
+GLIBC_2.15 __log_finite F
+GLIBC_2.15 __logf_finite F
+GLIBC_2.15 __pow_finite F
+GLIBC_2.15 __powf_finite F
+GLIBC_2.15 __remainder_finite F
+GLIBC_2.15 __remainderf_finite F
+GLIBC_2.15 __scalb_finite F
+GLIBC_2.15 __scalbf_finite F
+GLIBC_2.15 __sinh_finite F
+GLIBC_2.15 __sinhf_finite F
+GLIBC_2.15 __sqrt_finite F
+GLIBC_2.15 __sqrtf_finite F
+GLIBC_2.15 __y0_finite F
+GLIBC_2.15 __y0f_finite F
+GLIBC_2.15 __y1_finite F
+GLIBC_2.15 __y1f_finite F
+GLIBC_2.15 __yn_finite F
+GLIBC_2.15 __ynf_finite F
+GLIBC_2.18 GLIBC_2.18 A
+GLIBC_2.18 __issignaling F
+GLIBC_2.18 __issignalingf F
+GLIBC_2.2 GLIBC_2.2 A
+GLIBC_2.2 _LIB_VERSION D 0x4
+GLIBC_2.2 __clog10 F
+GLIBC_2.2 __clog10f F
+GLIBC_2.2 __clog10l F
+GLIBC_2.2 __finite F
+GLIBC_2.2 __finitef F
+GLIBC_2.2 __fpclassify F
+GLIBC_2.2 __fpclassifyf F
+GLIBC_2.2 __signbit F
+GLIBC_2.2 __signbitf F
+GLIBC_2.2 __signbitl F
+GLIBC_2.2 acos F
+GLIBC_2.2 acosf F
+GLIBC_2.2 acosh F
+GLIBC_2.2 acoshf F
+GLIBC_2.2 acoshl F
+GLIBC_2.2 acosl F
+GLIBC_2.2 asin F
+GLIBC_2.2 asinf F
+GLIBC_2.2 asinh F
+GLIBC_2.2 asinhf F
+GLIBC_2.2 asinhl F
+GLIBC_2.2 asinl F
+GLIBC_2.2 atan F
+GLIBC_2.2 atan2 F
+GLIBC_2.2 atan2f F
+GLIBC_2.2 atan2l F
+GLIBC_2.2 atanf F
+GLIBC_2.2 atanh F
+GLIBC_2.2 atanhf F
+GLIBC_2.2 atanhl F
+GLIBC_2.2 atanl F
+GLIBC_2.2 cabs F
+GLIBC_2.2 cabsf F
+GLIBC_2.2 cabsl F
+GLIBC_2.2 cacos F
+GLIBC_2.2 cacosf F
+GLIBC_2.2 cacosh F
+GLIBC_2.2 cacoshf F
+GLIBC_2.2 cacoshl F
+GLIBC_2.2 cacosl F
+GLIBC_2.2 carg F
+GLIBC_2.2 cargf F
+GLIBC_2.2 cargl F
+GLIBC_2.2 casin F
+GLIBC_2.2 casinf F
+GLIBC_2.2 casinh F
+GLIBC_2.2 casinhf F
+GLIBC_2.2 casinhl F
+GLIBC_2.2 casinl F
+GLIBC_2.2 catan F
+GLIBC_2.2 catanf F
+GLIBC_2.2 catanh F
+GLIBC_2.2 catanhf F
+GLIBC_2.2 catanhl F
+GLIBC_2.2 catanl F
+GLIBC_2.2 cbrt F
+GLIBC_2.2 cbrtf F
+GLIBC_2.2 cbrtl F
+GLIBC_2.2 ccos F
+GLIBC_2.2 ccosf F
+GLIBC_2.2 ccosh F
+GLIBC_2.2 ccoshf F
+GLIBC_2.2 ccoshl F
+GLIBC_2.2 ccosl F
+GLIBC_2.2 ceil F
+GLIBC_2.2 ceilf F
+GLIBC_2.2 ceill F
+GLIBC_2.2 cexp F
+GLIBC_2.2 cexpf F
+GLIBC_2.2 cexpl F
+GLIBC_2.2 cimag F
+GLIBC_2.2 cimagf F
+GLIBC_2.2 cimagl F
+GLIBC_2.2 clog F
+GLIBC_2.2 clog10 F
+GLIBC_2.2 clog10f F
+GLIBC_2.2 clog10l F
+GLIBC_2.2 clogf F
+GLIBC_2.2 clogl F
+GLIBC_2.2 conj F
+GLIBC_2.2 conjf F
+GLIBC_2.2 conjl F
+GLIBC_2.2 copysign F
+GLIBC_2.2 copysignf F
+GLIBC_2.2 copysignl F
+GLIBC_2.2 cos F
+GLIBC_2.2 cosf F
+GLIBC_2.2 cosh F
+GLIBC_2.2 coshf F
+GLIBC_2.2 coshl F
+GLIBC_2.2 cosl F
+GLIBC_2.2 cpow F
+GLIBC_2.2 cpowf F
+GLIBC_2.2 cpowl F
+GLIBC_2.2 cproj F
+GLIBC_2.2 cprojf F
+GLIBC_2.2 cprojl F
+GLIBC_2.2 creal F
+GLIBC_2.2 crealf F
+GLIBC_2.2 creall F
+GLIBC_2.2 csin F
+GLIBC_2.2 csinf F
+GLIBC_2.2 csinh F
+GLIBC_2.2 csinhf F
+GLIBC_2.2 csinhl F
+GLIBC_2.2 csinl F
+GLIBC_2.2 csqrt F
+GLIBC_2.2 csqrtf F
+GLIBC_2.2 csqrtl F
+GLIBC_2.2 ctan F
+GLIBC_2.2 ctanf F
+GLIBC_2.2 ctanh F
+GLIBC_2.2 ctanhf F
+GLIBC_2.2 ctanhl F
+GLIBC_2.2 ctanl F
+GLIBC_2.2 drem F
+GLIBC_2.2 dremf F
+GLIBC_2.2 dreml F
+GLIBC_2.2 erf F
+GLIBC_2.2 erfc F
+GLIBC_2.2 erfcf F
+GLIBC_2.2 erfcl F
+GLIBC_2.2 erff F
+GLIBC_2.2 erfl F
+GLIBC_2.2 exp F
+GLIBC_2.2 exp10 F
+GLIBC_2.2 exp10f F
+GLIBC_2.2 exp10l F
+GLIBC_2.2 exp2 F
+GLIBC_2.2 exp2f F
+GLIBC_2.2 expf F
+GLIBC_2.2 expl F
+GLIBC_2.2 expm1 F
+GLIBC_2.2 expm1f F
+GLIBC_2.2 expm1l F
+GLIBC_2.2 fabs F
+GLIBC_2.2 fabsf F
+GLIBC_2.2 fabsl F
+GLIBC_2.2 fdim F
+GLIBC_2.2 fdimf F
+GLIBC_2.2 fdiml F
+GLIBC_2.2 feclearexcept F
+GLIBC_2.2 fedisableexcept F
+GLIBC_2.2 feenableexcept F
+GLIBC_2.2 fegetenv F
+GLIBC_2.2 fegetexcept F
+GLIBC_2.2 fegetexceptflag F
+GLIBC_2.2 fegetround F
+GLIBC_2.2 feholdexcept F
+GLIBC_2.2 feraiseexcept F
+GLIBC_2.2 fesetenv F
+GLIBC_2.2 fesetexceptflag F
+GLIBC_2.2 fesetround F
+GLIBC_2.2 fetestexcept F
+GLIBC_2.2 feupdateenv F
+GLIBC_2.2 finite F
+GLIBC_2.2 finitef F
+GLIBC_2.2 finitel F
+GLIBC_2.2 floor F
+GLIBC_2.2 floorf F
+GLIBC_2.2 floorl F
+GLIBC_2.2 fma F
+GLIBC_2.2 fmaf F
+GLIBC_2.2 fmal F
+GLIBC_2.2 fmax F
+GLIBC_2.2 fmaxf F
+GLIBC_2.2 fmaxl F
+GLIBC_2.2 fmin F
+GLIBC_2.2 fminf F
+GLIBC_2.2 fminl F
+GLIBC_2.2 fmod F
+GLIBC_2.2 fmodf F
+GLIBC_2.2 fmodl F
+GLIBC_2.2 frexp F
+GLIBC_2.2 frexpf F
+GLIBC_2.2 frexpl F
+GLIBC_2.2 gamma F
+GLIBC_2.2 gammaf F
+GLIBC_2.2 gammal F
+GLIBC_2.2 hypot F
+GLIBC_2.2 hypotf F
+GLIBC_2.2 hypotl F
+GLIBC_2.2 ilogb F
+GLIBC_2.2 ilogbf F
+GLIBC_2.2 ilogbl F
+GLIBC_2.2 j0 F
+GLIBC_2.2 j0f F
+GLIBC_2.2 j0l F
+GLIBC_2.2 j1 F
+GLIBC_2.2 j1f F
+GLIBC_2.2 j1l F
+GLIBC_2.2 jn F
+GLIBC_2.2 jnf F
+GLIBC_2.2 jnl F
+GLIBC_2.2 ldexp F
+GLIBC_2.2 ldexpf F
+GLIBC_2.2 ldexpl F
+GLIBC_2.2 lgamma F
+GLIBC_2.2 lgamma_r F
+GLIBC_2.2 lgammaf F
+GLIBC_2.2 lgammaf_r F
+GLIBC_2.2 lgammal F
+GLIBC_2.2 lgammal_r F
+GLIBC_2.2 llrint F
+GLIBC_2.2 llrintf F
+GLIBC_2.2 llrintl F
+GLIBC_2.2 llround F
+GLIBC_2.2 llroundf F
+GLIBC_2.2 llroundl F
+GLIBC_2.2 log F
+GLIBC_2.2 log10 F
+GLIBC_2.2 log10f F
+GLIBC_2.2 log10l F
+GLIBC_2.2 log1p F
+GLIBC_2.2 log1pf F
+GLIBC_2.2 log1pl F
+GLIBC_2.2 log2 F
+GLIBC_2.2 log2f F
+GLIBC_2.2 log2l F
+GLIBC_2.2 logb F
+GLIBC_2.2 logbf F
+GLIBC_2.2 logbl F
+GLIBC_2.2 logf F
+GLIBC_2.2 logl F
+GLIBC_2.2 lrint F
+GLIBC_2.2 lrintf F
+GLIBC_2.2 lrintl F
+GLIBC_2.2 lround F
+GLIBC_2.2 lroundf F
+GLIBC_2.2 lroundl F
+GLIBC_2.2 matherr F
+GLIBC_2.2 modf F
+GLIBC_2.2 modff F
+GLIBC_2.2 modfl F
+GLIBC_2.2 nan F
+GLIBC_2.2 nanf F
+GLIBC_2.2 nanl F
+GLIBC_2.2 nearbyint F
+GLIBC_2.2 nearbyintf F
+GLIBC_2.2 nearbyintl F
+GLIBC_2.2 nextafter F
+GLIBC_2.2 nextafterf F
+GLIBC_2.2 nextafterl F
+GLIBC_2.2 nexttoward F
+GLIBC_2.2 nexttowardf F
+GLIBC_2.2 nexttowardl F
+GLIBC_2.2 pow F
+GLIBC_2.2 pow10 F
+GLIBC_2.2 pow10f F
+GLIBC_2.2 pow10l F
+GLIBC_2.2 powf F
+GLIBC_2.2 powl F
+GLIBC_2.2 remainder F
+GLIBC_2.2 remainderf F
+GLIBC_2.2 remainderl F
+GLIBC_2.2 remquo F
+GLIBC_2.2 remquof F
+GLIBC_2.2 remquol F
+GLIBC_2.2 rint F
+GLIBC_2.2 rintf F
+GLIBC_2.2 rintl F
+GLIBC_2.2 round F
+GLIBC_2.2 roundf F
+GLIBC_2.2 roundl F
+GLIBC_2.2 scalb F
+GLIBC_2.2 scalbf F
+GLIBC_2.2 scalbl F
+GLIBC_2.2 scalbln F
+GLIBC_2.2 scalblnf F
+GLIBC_2.2 scalblnl F
+GLIBC_2.2 scalbn F
+GLIBC_2.2 scalbnf F
+GLIBC_2.2 scalbnl F
+GLIBC_2.2 signgam D 0x4
+GLIBC_2.2 significand F
+GLIBC_2.2 significandf F
+GLIBC_2.2 significandl F
+GLIBC_2.2 sin F
+GLIBC_2.2 sincos F
+GLIBC_2.2 sincosf F
+GLIBC_2.2 sincosl F
+GLIBC_2.2 sinf F
+GLIBC_2.2 sinh F
+GLIBC_2.2 sinhf F
+GLIBC_2.2 sinhl F
+GLIBC_2.2 sinl F
+GLIBC_2.2 sqrt F
+GLIBC_2.2 sqrtf F
+GLIBC_2.2 sqrtl F
+GLIBC_2.2 tan F
+GLIBC_2.2 tanf F
+GLIBC_2.2 tanh F
+GLIBC_2.2 tanhf F
+GLIBC_2.2 tanhl F
+GLIBC_2.2 tanl F
+GLIBC_2.2 tgamma F
+GLIBC_2.2 tgammaf F
+GLIBC_2.2 tgammal F
+GLIBC_2.2 trunc F
+GLIBC_2.2 truncf F
+GLIBC_2.2 truncl F
+GLIBC_2.2 y0 F
+GLIBC_2.2 y0f F
+GLIBC_2.2 y0l F
+GLIBC_2.2 y1 F
+GLIBC_2.2 y1f F
+GLIBC_2.2 y1l F
+GLIBC_2.2 yn F
+GLIBC_2.2 ynf F
+GLIBC_2.2 ynl F
+GLIBC_2.23 GLIBC_2.23 A
+GLIBC_2.23 __signgam D 0x4
+GLIBC_2.23 lgamma F
+GLIBC_2.23 lgammaf F
+GLIBC_2.23 lgammal F
+GLIBC_2.24 GLIBC_2.24 A
+GLIBC_2.24 nextdown F
+GLIBC_2.24 nextdownf F
+GLIBC_2.24 nextdownl F
+GLIBC_2.24 nextup F
+GLIBC_2.24 nextupf F
+GLIBC_2.24 nextupl F
+GLIBC_2.25 GLIBC_2.25 A
+GLIBC_2.25 __iseqsig F
+GLIBC_2.25 __iseqsigf F
+GLIBC_2.25 canonicalize F
+GLIBC_2.25 canonicalizef F
+GLIBC_2.25 canonicalizel F
+GLIBC_2.25 fegetmode F
+GLIBC_2.25 fesetexcept F
+GLIBC_2.25 fesetmode F
+GLIBC_2.25 fetestexceptflag F
+GLIBC_2.25 fmaxmag F
+GLIBC_2.25 fmaxmagf F
+GLIBC_2.25 fmaxmagl F
+GLIBC_2.25 fminmag F
+GLIBC_2.25 fminmagf F
+GLIBC_2.25 fminmagl F
+GLIBC_2.25 fromfp F
+GLIBC_2.25 fromfpf F
+GLIBC_2.25 fromfpl F
+GLIBC_2.25 fromfpx F
+GLIBC_2.25 fromfpxf F
+GLIBC_2.25 fromfpxl F
+GLIBC_2.25 getpayload F
+GLIBC_2.25 getpayloadf F
+GLIBC_2.25 getpayloadl F
+GLIBC_2.25 llogb F
+GLIBC_2.25 llogbf F
+GLIBC_2.25 llogbl F
+GLIBC_2.25 roundeven F
+GLIBC_2.25 roundevenf F
+GLIBC_2.25 roundevenl F
+GLIBC_2.25 setpayload F
+GLIBC_2.25 setpayloadf F
+GLIBC_2.25 setpayloadl F
+GLIBC_2.25 setpayloadsig F
+GLIBC_2.25 setpayloadsigf F
+GLIBC_2.25 setpayloadsigl F
+GLIBC_2.25 totalorder F
+GLIBC_2.25 totalorderf F
+GLIBC_2.25 totalorderl F
+GLIBC_2.25 totalordermag F
+GLIBC_2.25 totalordermagf F
+GLIBC_2.25 totalordermagl F
+GLIBC_2.25 ufromfp F
+GLIBC_2.25 ufromfpf F
+GLIBC_2.25 ufromfpl F
+GLIBC_2.25 ufromfpx F
+GLIBC_2.25 ufromfpxf F
+GLIBC_2.25 ufromfpxl F
+GLIBC_2.4 GLIBC_2.4 A
+GLIBC_2.4 exp2l F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/libnsl.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/libnsl.abilist
new file mode 100644
index 0000000000..a23db2aeaf
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/libnsl.abilist
@@ -0,0 +1,124 @@
+GLIBC_2.0 GLIBC_2.0 A
+GLIBC_2.0 __yp_check F
+GLIBC_2.0 xdr_domainname F
+GLIBC_2.0 xdr_keydat F
+GLIBC_2.0 xdr_mapname F
+GLIBC_2.0 xdr_peername F
+GLIBC_2.0 xdr_valdat F
+GLIBC_2.0 xdr_yp_buf F
+GLIBC_2.0 xdr_ypbind_binding F
+GLIBC_2.0 xdr_ypbind_resp F
+GLIBC_2.0 xdr_ypbind_resptype F
+GLIBC_2.0 xdr_ypbind_setdom F
+GLIBC_2.0 xdr_ypdelete_args F
+GLIBC_2.0 xdr_ypmap_parms F
+GLIBC_2.0 xdr_ypmaplist F
+GLIBC_2.0 xdr_yppush_status F
+GLIBC_2.0 xdr_yppushresp_xfr F
+GLIBC_2.0 xdr_ypreq_key F
+GLIBC_2.0 xdr_ypreq_nokey F
+GLIBC_2.0 xdr_ypreq_xfr F
+GLIBC_2.0 xdr_ypresp_all F
+GLIBC_2.0 xdr_ypresp_key_val F
+GLIBC_2.0 xdr_ypresp_maplist F
+GLIBC_2.0 xdr_ypresp_master F
+GLIBC_2.0 xdr_ypresp_order F
+GLIBC_2.0 xdr_ypresp_val F
+GLIBC_2.0 xdr_ypresp_xfr F
+GLIBC_2.0 xdr_ypstat F
+GLIBC_2.0 xdr_ypupdate_args F
+GLIBC_2.0 xdr_ypxfrstat F
+GLIBC_2.0 yp_all F
+GLIBC_2.0 yp_bind F
+GLIBC_2.0 yp_first F
+GLIBC_2.0 yp_get_default_domain F
+GLIBC_2.0 yp_maplist F
+GLIBC_2.0 yp_master F
+GLIBC_2.0 yp_match F
+GLIBC_2.0 yp_next F
+GLIBC_2.0 yp_order F
+GLIBC_2.0 yp_unbind F
+GLIBC_2.0 yp_update F
+GLIBC_2.0 ypbinderr_string F
+GLIBC_2.0 yperr_string F
+GLIBC_2.0 ypprot_err F
+GLIBC_2.1 GLIBC_2.1 A
+GLIBC_2.1 __free_fdresult F
+GLIBC_2.1 __nis_default_access F
+GLIBC_2.1 __nis_default_group F
+GLIBC_2.1 __nis_default_owner F
+GLIBC_2.1 __nis_default_ttl F
+GLIBC_2.1 __nis_finddirectory F
+GLIBC_2.1 __nis_hash F
+GLIBC_2.1 __nisbind_connect F
+GLIBC_2.1 __nisbind_create F
+GLIBC_2.1 __nisbind_destroy F
+GLIBC_2.1 __nisbind_next F
+GLIBC_2.1 nis_add F
+GLIBC_2.1 nis_add_entry F
+GLIBC_2.1 nis_addmember F
+GLIBC_2.1 nis_checkpoint F
+GLIBC_2.1 nis_clone_directory F
+GLIBC_2.1 nis_clone_object F
+GLIBC_2.1 nis_clone_result F
+GLIBC_2.1 nis_creategroup F
+GLIBC_2.1 nis_destroy_object F
+GLIBC_2.1 nis_destroygroup F
+GLIBC_2.1 nis_dir_cmp F
+GLIBC_2.1 nis_domain_of F
+GLIBC_2.1 nis_domain_of_r F
+GLIBC_2.1 nis_first_entry F
+GLIBC_2.1 nis_free_directory F
+GLIBC_2.1 nis_free_object F
+GLIBC_2.1 nis_free_request F
+GLIBC_2.1 nis_freenames F
+GLIBC_2.1 nis_freeresult F
+GLIBC_2.1 nis_freeservlist F
+GLIBC_2.1 nis_freetags F
+GLIBC_2.1 nis_getnames F
+GLIBC_2.1 nis_getservlist F
+GLIBC_2.1 nis_ismember F
+GLIBC_2.1 nis_leaf_of F
+GLIBC_2.1 nis_leaf_of_r F
+GLIBC_2.1 nis_lerror F
+GLIBC_2.1 nis_list F
+GLIBC_2.1 nis_local_directory F
+GLIBC_2.1 nis_local_group F
+GLIBC_2.1 nis_local_host F
+GLIBC_2.1 nis_local_principal F
+GLIBC_2.1 nis_lookup F
+GLIBC_2.1 nis_mkdir F
+GLIBC_2.1 nis_modify F
+GLIBC_2.1 nis_modify_entry F
+GLIBC_2.1 nis_name_of F
+GLIBC_2.1 nis_name_of_r F
+GLIBC_2.1 nis_next_entry F
+GLIBC_2.1 nis_perror F
+GLIBC_2.1 nis_ping F
+GLIBC_2.1 nis_print_directory F
+GLIBC_2.1 nis_print_entry F
+GLIBC_2.1 nis_print_group F
+GLIBC_2.1 nis_print_group_entry F
+GLIBC_2.1 nis_print_link F
+GLIBC_2.1 nis_print_object F
+GLIBC_2.1 nis_print_result F
+GLIBC_2.1 nis_print_rights F
+GLIBC_2.1 nis_print_table F
+GLIBC_2.1 nis_read_obj F
+GLIBC_2.1 nis_remove F
+GLIBC_2.1 nis_remove_entry F
+GLIBC_2.1 nis_removemember F
+GLIBC_2.1 nis_rmdir F
+GLIBC_2.1 nis_servstate F
+GLIBC_2.1 nis_sperrno F
+GLIBC_2.1 nis_sperror F
+GLIBC_2.1 nis_sperror_r F
+GLIBC_2.1 nis_stats F
+GLIBC_2.1 nis_verifygroup F
+GLIBC_2.1 nis_write_obj F
+GLIBC_2.1 readColdStartFile F
+GLIBC_2.1 writeColdStartFile F
+GLIBC_2.1 xdr_cback_data F
+GLIBC_2.1 xdr_obj_p F
+GLIBC_2.2 GLIBC_2.2 A
+GLIBC_2.2 xdr_ypall F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/libpthread.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
new file mode 100644
index 0000000000..a73aa43c55
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/libpthread.abilist
@@ -0,0 +1,245 @@
+GLIBC_2.11 GLIBC_2.11 A
+GLIBC_2.11 pthread_sigqueue F
+GLIBC_2.12 GLIBC_2.12 A
+GLIBC_2.12 pthread_getname_np F
+GLIBC_2.12 pthread_mutex_consistent F
+GLIBC_2.12 pthread_mutexattr_getrobust F
+GLIBC_2.12 pthread_mutexattr_setrobust F
+GLIBC_2.12 pthread_setname_np F
+GLIBC_2.18 GLIBC_2.18 A
+GLIBC_2.18 pthread_getattr_default_np F
+GLIBC_2.18 pthread_setattr_default_np F
+GLIBC_2.2 GLIBC_2.2 A
+GLIBC_2.2 _IO_flockfile F
+GLIBC_2.2 _IO_ftrylockfile F
+GLIBC_2.2 _IO_funlockfile F
+GLIBC_2.2 __close F
+GLIBC_2.2 __connect F
+GLIBC_2.2 __errno_location F
+GLIBC_2.2 __fcntl F
+GLIBC_2.2 __fork F
+GLIBC_2.2 __h_errno_location F
+GLIBC_2.2 __libc_allocate_rtsig F
+GLIBC_2.2 __libc_current_sigrtmax F
+GLIBC_2.2 __libc_current_sigrtmin F
+GLIBC_2.2 __lseek F
+GLIBC_2.2 __open F
+GLIBC_2.2 __open64 F
+GLIBC_2.2 __pread64 F
+GLIBC_2.2 __pthread_getspecific F
+GLIBC_2.2 __pthread_key_create F
+GLIBC_2.2 __pthread_mutex_destroy F
+GLIBC_2.2 __pthread_mutex_init F
+GLIBC_2.2 __pthread_mutex_lock F
+GLIBC_2.2 __pthread_mutex_trylock F
+GLIBC_2.2 __pthread_mutex_unlock F
+GLIBC_2.2 __pthread_mutexattr_destroy F
+GLIBC_2.2 __pthread_mutexattr_init F
+GLIBC_2.2 __pthread_mutexattr_settype F
+GLIBC_2.2 __pthread_once F
+GLIBC_2.2 __pthread_rwlock_destroy F
+GLIBC_2.2 __pthread_rwlock_init F
+GLIBC_2.2 __pthread_rwlock_rdlock F
+GLIBC_2.2 __pthread_rwlock_tryrdlock F
+GLIBC_2.2 __pthread_rwlock_trywrlock F
+GLIBC_2.2 __pthread_rwlock_unlock F
+GLIBC_2.2 __pthread_rwlock_wrlock F
+GLIBC_2.2 __pthread_setspecific F
+GLIBC_2.2 __pwrite64 F
+GLIBC_2.2 __read F
+GLIBC_2.2 __res_state F
+GLIBC_2.2 __send F
+GLIBC_2.2 __sigaction F
+GLIBC_2.2 __vfork F
+GLIBC_2.2 __wait F
+GLIBC_2.2 __write F
+GLIBC_2.2 _pthread_cleanup_pop F
+GLIBC_2.2 _pthread_cleanup_pop_restore F
+GLIBC_2.2 _pthread_cleanup_push F
+GLIBC_2.2 _pthread_cleanup_push_defer F
+GLIBC_2.2 accept F
+GLIBC_2.2 close F
+GLIBC_2.2 connect F
+GLIBC_2.2 fcntl F
+GLIBC_2.2 flockfile F
+GLIBC_2.2 fork F
+GLIBC_2.2 fsync F
+GLIBC_2.2 ftrylockfile F
+GLIBC_2.2 funlockfile F
+GLIBC_2.2 longjmp F
+GLIBC_2.2 lseek F
+GLIBC_2.2 lseek64 F
+GLIBC_2.2 msync F
+GLIBC_2.2 nanosleep F
+GLIBC_2.2 open F
+GLIBC_2.2 open64 F
+GLIBC_2.2 pause F
+GLIBC_2.2 pread F
+GLIBC_2.2 pread64 F
+GLIBC_2.2 pthread_atfork F
+GLIBC_2.2 pthread_attr_destroy F
+GLIBC_2.2 pthread_attr_getdetachstate F
+GLIBC_2.2 pthread_attr_getguardsize F
+GLIBC_2.2 pthread_attr_getinheritsched F
+GLIBC_2.2 pthread_attr_getschedparam F
+GLIBC_2.2 pthread_attr_getschedpolicy F
+GLIBC_2.2 pthread_attr_getscope F
+GLIBC_2.2 pthread_attr_getstack F
+GLIBC_2.2 pthread_attr_getstackaddr F
+GLIBC_2.2 pthread_attr_getstacksize F
+GLIBC_2.2 pthread_attr_init F
+GLIBC_2.2 pthread_attr_setdetachstate F
+GLIBC_2.2 pthread_attr_setguardsize F
+GLIBC_2.2 pthread_attr_setinheritsched F
+GLIBC_2.2 pthread_attr_setschedparam F
+GLIBC_2.2 pthread_attr_setschedpolicy F
+GLIBC_2.2 pthread_attr_setscope F
+GLIBC_2.2 pthread_attr_setstack F
+GLIBC_2.2 pthread_attr_setstackaddr F
+GLIBC_2.2 pthread_attr_setstacksize F
+GLIBC_2.2 pthread_barrier_destroy F
+GLIBC_2.2 pthread_barrier_init F
+GLIBC_2.2 pthread_barrier_wait F
+GLIBC_2.2 pthread_barrierattr_destroy F
+GLIBC_2.2 pthread_barrierattr_init F
+GLIBC_2.2 pthread_barrierattr_setpshared F
+GLIBC_2.2 pthread_cancel F
+GLIBC_2.2 pthread_cond_broadcast F
+GLIBC_2.2 pthread_cond_destroy F
+GLIBC_2.2 pthread_cond_init F
+GLIBC_2.2 pthread_cond_signal F
+GLIBC_2.2 pthread_cond_timedwait F
+GLIBC_2.2 pthread_cond_wait F
+GLIBC_2.2 pthread_condattr_destroy F
+GLIBC_2.2 pthread_condattr_getpshared F
+GLIBC_2.2 pthread_condattr_init F
+GLIBC_2.2 pthread_condattr_setpshared F
+GLIBC_2.2 pthread_create F
+GLIBC_2.2 pthread_detach F
+GLIBC_2.2 pthread_equal F
+GLIBC_2.2 pthread_exit F
+GLIBC_2.2 pthread_getconcurrency F
+GLIBC_2.2 pthread_getcpuclockid F
+GLIBC_2.2 pthread_getschedparam F
+GLIBC_2.2 pthread_getspecific F
+GLIBC_2.2 pthread_join F
+GLIBC_2.2 pthread_key_create F
+GLIBC_2.2 pthread_key_delete F
+GLIBC_2.2 pthread_kill F
+GLIBC_2.2 pthread_kill_other_threads_np F
+GLIBC_2.2 pthread_mutex_destroy F
+GLIBC_2.2 pthread_mutex_init F
+GLIBC_2.2 pthread_mutex_lock F
+GLIBC_2.2 pthread_mutex_timedlock F
+GLIBC_2.2 pthread_mutex_trylock F
+GLIBC_2.2 pthread_mutex_unlock F
+GLIBC_2.2 pthread_mutexattr_destroy F
+GLIBC_2.2 pthread_mutexattr_getkind_np F
+GLIBC_2.2 pthread_mutexattr_getpshared F
+GLIBC_2.2 pthread_mutexattr_gettype F
+GLIBC_2.2 pthread_mutexattr_init F
+GLIBC_2.2 pthread_mutexattr_setkind_np F
+GLIBC_2.2 pthread_mutexattr_setpshared F
+GLIBC_2.2 pthread_mutexattr_settype F
+GLIBC_2.2 pthread_once F
+GLIBC_2.2 pthread_rwlock_destroy F
+GLIBC_2.2 pthread_rwlock_init F
+GLIBC_2.2 pthread_rwlock_rdlock F
+GLIBC_2.2 pthread_rwlock_timedrdlock F
+GLIBC_2.2 pthread_rwlock_timedwrlock F
+GLIBC_2.2 pthread_rwlock_tryrdlock F
+GLIBC_2.2 pthread_rwlock_trywrlock F
+GLIBC_2.2 pthread_rwlock_unlock F
+GLIBC_2.2 pthread_rwlock_wrlock F
+GLIBC_2.2 pthread_rwlockattr_destroy F
+GLIBC_2.2 pthread_rwlockattr_getkind_np F
+GLIBC_2.2 pthread_rwlockattr_getpshared F
+GLIBC_2.2 pthread_rwlockattr_init F
+GLIBC_2.2 pthread_rwlockattr_setkind_np F
+GLIBC_2.2 pthread_rwlockattr_setpshared F
+GLIBC_2.2 pthread_self F
+GLIBC_2.2 pthread_setcancelstate F
+GLIBC_2.2 pthread_setcanceltype F
+GLIBC_2.2 pthread_setconcurrency F
+GLIBC_2.2 pthread_setschedparam F
+GLIBC_2.2 pthread_setspecific F
+GLIBC_2.2 pthread_sigmask F
+GLIBC_2.2 pthread_spin_destroy F
+GLIBC_2.2 pthread_spin_init F
+GLIBC_2.2 pthread_spin_lock F
+GLIBC_2.2 pthread_spin_trylock F
+GLIBC_2.2 pthread_spin_unlock F
+GLIBC_2.2 pthread_testcancel F
+GLIBC_2.2 pthread_yield F
+GLIBC_2.2 pwrite F
+GLIBC_2.2 pwrite64 F
+GLIBC_2.2 raise F
+GLIBC_2.2 read F
+GLIBC_2.2 recv F
+GLIBC_2.2 recvfrom F
+GLIBC_2.2 recvmsg F
+GLIBC_2.2 sem_close F
+GLIBC_2.2 sem_destroy F
+GLIBC_2.2 sem_getvalue F
+GLIBC_2.2 sem_init F
+GLIBC_2.2 sem_open F
+GLIBC_2.2 sem_post F
+GLIBC_2.2 sem_timedwait F
+GLIBC_2.2 sem_trywait F
+GLIBC_2.2 sem_unlink F
+GLIBC_2.2 sem_wait F
+GLIBC_2.2 send F
+GLIBC_2.2 sendmsg F
+GLIBC_2.2 sendto F
+GLIBC_2.2 sigaction F
+GLIBC_2.2 siglongjmp F
+GLIBC_2.2 sigwait F
+GLIBC_2.2 system F
+GLIBC_2.2 tcdrain F
+GLIBC_2.2 vfork F
+GLIBC_2.2 wait F
+GLIBC_2.2 waitpid F
+GLIBC_2.2 write F
+GLIBC_2.2.3 GLIBC_2.2.3 A
+GLIBC_2.2.3 pthread_getattr_np F
+GLIBC_2.2.6 GLIBC_2.2.6 A
+GLIBC_2.2.6 __nanosleep F
+GLIBC_2.3.2 GLIBC_2.3.2 A
+GLIBC_2.3.2 pthread_cond_broadcast F
+GLIBC_2.3.2 pthread_cond_destroy F
+GLIBC_2.3.2 pthread_cond_init F
+GLIBC_2.3.2 pthread_cond_signal F
+GLIBC_2.3.2 pthread_cond_timedwait F
+GLIBC_2.3.2 pthread_cond_wait F
+GLIBC_2.3.3 GLIBC_2.3.3 A
+GLIBC_2.3.3 __pthread_cleanup_routine F
+GLIBC_2.3.3 __pthread_register_cancel F
+GLIBC_2.3.3 __pthread_register_cancel_defer F
+GLIBC_2.3.3 __pthread_unregister_cancel F
+GLIBC_2.3.3 __pthread_unregister_cancel_restore F
+GLIBC_2.3.3 __pthread_unwind_next F
+GLIBC_2.3.3 pthread_attr_getaffinity_np F
+GLIBC_2.3.3 pthread_attr_setaffinity_np F
+GLIBC_2.3.3 pthread_barrierattr_getpshared F
+GLIBC_2.3.3 pthread_condattr_getclock F
+GLIBC_2.3.3 pthread_condattr_setclock F
+GLIBC_2.3.3 pthread_getaffinity_np F
+GLIBC_2.3.3 pthread_setaffinity_np F
+GLIBC_2.3.3 pthread_timedjoin_np F
+GLIBC_2.3.3 pthread_tryjoin_np F
+GLIBC_2.3.4 GLIBC_2.3.4 A
+GLIBC_2.3.4 pthread_attr_getaffinity_np F
+GLIBC_2.3.4 pthread_attr_setaffinity_np F
+GLIBC_2.3.4 pthread_getaffinity_np F
+GLIBC_2.3.4 pthread_setaffinity_np F
+GLIBC_2.3.4 pthread_setschedprio F
+GLIBC_2.4 GLIBC_2.4 A
+GLIBC_2.4 pthread_mutex_consistent_np F
+GLIBC_2.4 pthread_mutex_getprioceiling F
+GLIBC_2.4 pthread_mutex_setprioceiling F
+GLIBC_2.4 pthread_mutexattr_getprioceiling F
+GLIBC_2.4 pthread_mutexattr_getprotocol F
+GLIBC_2.4 pthread_mutexattr_getrobust_np F
+GLIBC_2.4 pthread_mutexattr_setprioceiling F
+GLIBC_2.4 pthread_mutexattr_setprotocol F
+GLIBC_2.4 pthread_mutexattr_setrobust_np F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/libresolv.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/libresolv.abilist
new file mode 100644
index 0000000000..4d50e7c8c6
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/libresolv.abilist
@@ -0,0 +1,100 @@
+GLIBC_2.0 GLIBC_2.0 A
+GLIBC_2.0 __b64_ntop F
+GLIBC_2.0 __b64_pton F
+GLIBC_2.0 __dn_comp F
+GLIBC_2.0 __dn_count_labels F
+GLIBC_2.0 __dn_skipname F
+GLIBC_2.0 __fp_nquery F
+GLIBC_2.0 __fp_query F
+GLIBC_2.0 __fp_resstat F
+GLIBC_2.0 __hostalias F
+GLIBC_2.0 __loc_aton F
+GLIBC_2.0 __loc_ntoa F
+GLIBC_2.0 __p_cdname F
+GLIBC_2.0 __p_cdnname F
+GLIBC_2.0 __p_class F
+GLIBC_2.0 __p_class_syms D 0x54
+GLIBC_2.0 __p_fqname F
+GLIBC_2.0 __p_fqnname F
+GLIBC_2.0 __p_option F
+GLIBC_2.0 __p_query F
+GLIBC_2.0 __p_secstodate F
+GLIBC_2.0 __p_time F
+GLIBC_2.0 __p_type F
+GLIBC_2.0 __p_type_syms D 0x228
+GLIBC_2.0 __putlong F
+GLIBC_2.0 __putshort F
+GLIBC_2.0 __res_close F
+GLIBC_2.0 __res_dnok F
+GLIBC_2.0 __res_hnok F
+GLIBC_2.0 __res_isourserver F
+GLIBC_2.0 __res_mailok F
+GLIBC_2.0 __res_nameinquery F
+GLIBC_2.0 __res_ownok F
+GLIBC_2.0 __res_queriesmatch F
+GLIBC_2.0 __res_send F
+GLIBC_2.0 __sym_ntop F
+GLIBC_2.0 __sym_ntos F
+GLIBC_2.0 __sym_ston F
+GLIBC_2.0 _gethtbyaddr F
+GLIBC_2.0 _gethtbyname F
+GLIBC_2.0 _gethtbyname2 F
+GLIBC_2.0 _gethtent F
+GLIBC_2.0 _getlong F
+GLIBC_2.0 _getshort F
+GLIBC_2.0 _res_opcodes D 0x40
+GLIBC_2.0 _sethtent F
+GLIBC_2.0 dn_expand F
+GLIBC_2.0 inet_net_ntop F
+GLIBC_2.0 inet_net_pton F
+GLIBC_2.0 inet_neta F
+GLIBC_2.0 res_gethostbyaddr F
+GLIBC_2.0 res_gethostbyname F
+GLIBC_2.0 res_gethostbyname2 F
+GLIBC_2.0 res_mkquery F
+GLIBC_2.0 res_query F
+GLIBC_2.0 res_querydomain F
+GLIBC_2.0 res_search F
+GLIBC_2.0 res_send_setqhook F
+GLIBC_2.0 res_send_setrhook F
+GLIBC_2.2 GLIBC_2.2 A
+GLIBC_2.2 __dn_expand F
+GLIBC_2.2 __res_hostalias F
+GLIBC_2.2 __res_mkquery F
+GLIBC_2.2 __res_nmkquery F
+GLIBC_2.2 __res_nquery F
+GLIBC_2.2 __res_nquerydomain F
+GLIBC_2.2 __res_nsearch F
+GLIBC_2.2 __res_nsend F
+GLIBC_2.2 __res_query F
+GLIBC_2.2 __res_querydomain F
+GLIBC_2.2 __res_search F
+GLIBC_2.3.2 GLIBC_2.3.2 A
+GLIBC_2.3.2 __p_rcode F
+GLIBC_2.9 GLIBC_2.9 A
+GLIBC_2.9 ns_datetosecs F
+GLIBC_2.9 ns_format_ttl F
+GLIBC_2.9 ns_get16 F
+GLIBC_2.9 ns_get32 F
+GLIBC_2.9 ns_initparse F
+GLIBC_2.9 ns_makecanon F
+GLIBC_2.9 ns_msg_getflag F
+GLIBC_2.9 ns_name_compress F
+GLIBC_2.9 ns_name_ntol F
+GLIBC_2.9 ns_name_ntop F
+GLIBC_2.9 ns_name_pack F
+GLIBC_2.9 ns_name_pton F
+GLIBC_2.9 ns_name_rollback F
+GLIBC_2.9 ns_name_skip F
+GLIBC_2.9 ns_name_uncompress F
+GLIBC_2.9 ns_name_unpack F
+GLIBC_2.9 ns_parse_ttl F
+GLIBC_2.9 ns_parserr F
+GLIBC_2.9 ns_put16 F
+GLIBC_2.9 ns_put32 F
+GLIBC_2.9 ns_samedomain F
+GLIBC_2.9 ns_samename F
+GLIBC_2.9 ns_skiprr F
+GLIBC_2.9 ns_sprintrr F
+GLIBC_2.9 ns_sprintrrf F
+GLIBC_2.9 ns_subdomain F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/librt.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/librt.abilist
new file mode 100644
index 0000000000..15e4418863
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/librt.abilist
@@ -0,0 +1,47 @@
+GLIBC_2.1 GLIBC_2.1 A
+GLIBC_2.1 aio_cancel F
+GLIBC_2.1 aio_cancel64 F
+GLIBC_2.1 aio_error F
+GLIBC_2.1 aio_error64 F
+GLIBC_2.1 aio_fsync F
+GLIBC_2.1 aio_fsync64 F
+GLIBC_2.1 aio_init F
+GLIBC_2.1 aio_read F
+GLIBC_2.1 aio_read64 F
+GLIBC_2.1 aio_return F
+GLIBC_2.1 aio_return64 F
+GLIBC_2.1 aio_suspend F
+GLIBC_2.1 aio_suspend64 F
+GLIBC_2.1 aio_write F
+GLIBC_2.1 aio_write64 F
+GLIBC_2.1 lio_listio F
+GLIBC_2.1 lio_listio64 F
+GLIBC_2.2 GLIBC_2.2 A
+GLIBC_2.2 clock_getcpuclockid F
+GLIBC_2.2 clock_getres F
+GLIBC_2.2 clock_gettime F
+GLIBC_2.2 clock_nanosleep F
+GLIBC_2.2 clock_settime F
+GLIBC_2.2 shm_open F
+GLIBC_2.2 shm_unlink F
+GLIBC_2.2 timer_create F
+GLIBC_2.2 timer_delete F
+GLIBC_2.2 timer_getoverrun F
+GLIBC_2.2 timer_gettime F
+GLIBC_2.2 timer_settime F
+GLIBC_2.3.4 GLIBC_2.3.4 A
+GLIBC_2.3.4 mq_close F
+GLIBC_2.3.4 mq_getattr F
+GLIBC_2.3.4 mq_notify F
+GLIBC_2.3.4 mq_open F
+GLIBC_2.3.4 mq_receive F
+GLIBC_2.3.4 mq_send F
+GLIBC_2.3.4 mq_setattr F
+GLIBC_2.3.4 mq_timedreceive F
+GLIBC_2.3.4 mq_timedsend F
+GLIBC_2.3.4 mq_unlink F
+GLIBC_2.4 GLIBC_2.4 A
+GLIBC_2.4 lio_listio F
+GLIBC_2.4 lio_listio64 F
+GLIBC_2.7 GLIBC_2.7 A
+GLIBC_2.7 __mq_open_2 F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/libthread_db.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/libthread_db.abilist
new file mode 100644
index 0000000000..a8a8c2c68d
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/libthread_db.abilist
@@ -0,0 +1,44 @@
+GLIBC_2.1.3 GLIBC_2.1.3 A
+GLIBC_2.1.3 td_init F
+GLIBC_2.1.3 td_log F
+GLIBC_2.1.3 td_ta_clear_event F
+GLIBC_2.1.3 td_ta_delete F
+GLIBC_2.1.3 td_ta_enable_stats F
+GLIBC_2.1.3 td_ta_event_addr F
+GLIBC_2.1.3 td_ta_event_getmsg F
+GLIBC_2.1.3 td_ta_get_nthreads F
+GLIBC_2.1.3 td_ta_get_ph F
+GLIBC_2.1.3 td_ta_get_stats F
+GLIBC_2.1.3 td_ta_map_id2thr F
+GLIBC_2.1.3 td_ta_map_lwp2thr F
+GLIBC_2.1.3 td_ta_new F
+GLIBC_2.1.3 td_ta_reset_stats F
+GLIBC_2.1.3 td_ta_set_event F
+GLIBC_2.1.3 td_ta_setconcurrency F
+GLIBC_2.1.3 td_ta_thr_iter F
+GLIBC_2.1.3 td_ta_tsd_iter F
+GLIBC_2.1.3 td_thr_clear_event F
+GLIBC_2.1.3 td_thr_dbresume F
+GLIBC_2.1.3 td_thr_dbsuspend F
+GLIBC_2.1.3 td_thr_event_enable F
+GLIBC_2.1.3 td_thr_event_getmsg F
+GLIBC_2.1.3 td_thr_get_info F
+GLIBC_2.1.3 td_thr_getfpregs F
+GLIBC_2.1.3 td_thr_getgregs F
+GLIBC_2.1.3 td_thr_getxregs F
+GLIBC_2.1.3 td_thr_getxregsize F
+GLIBC_2.1.3 td_thr_set_event F
+GLIBC_2.1.3 td_thr_setfpregs F
+GLIBC_2.1.3 td_thr_setgregs F
+GLIBC_2.1.3 td_thr_setprio F
+GLIBC_2.1.3 td_thr_setsigpending F
+GLIBC_2.1.3 td_thr_setxregs F
+GLIBC_2.1.3 td_thr_sigsetmask F
+GLIBC_2.1.3 td_thr_tsd F
+GLIBC_2.1.3 td_thr_validate F
+GLIBC_2.2.3 GLIBC_2.2.3 A
+GLIBC_2.2.3 td_symbol_list F
+GLIBC_2.3 GLIBC_2.3 A
+GLIBC_2.3 td_thr_tls_get_addr F
+GLIBC_2.3.3 GLIBC_2.3.3 A
+GLIBC_2.3.3 td_thr_tlsbase F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/libutil.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/libutil.abilist
new file mode 100644
index 0000000000..89c67755c4
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/libutil.abilist
@@ -0,0 +1,7 @@
+GLIBC_2.0 GLIBC_2.0 A
+GLIBC_2.0 forkpty F
+GLIBC_2.0 login F
+GLIBC_2.0 login_tty F
+GLIBC_2.0 logout F
+GLIBC_2.0 logwtmp F
+GLIBC_2.0 openpty F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/localplt.data b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/localplt.data
new file mode 100644
index 0000000000..9dd81b47c8
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/localplt.data
@@ -0,0 +1,24 @@
+# See scripts/check-localplt.awk for how this file is processed.
+# PLT use is required for the malloc family and for matherr because
+# users can define their own functions and have library internals call them.
+libc.so: calloc
+libc.so: free
+libc.so: malloc
+libc.so: memalign
+libc.so: realloc
+libc.so: _exit
+libc.so: __sigsetjmp
+libc.so: _IO_funlockfile
+libc.so: sigprocmask
+libc.so: __errno_location
+libm.so: matherr
+libpthread.so: __errno_location
+# The main malloc is interposed into the dynamic linker, for
+# allocations after the initial link (when dlopen is used).
+ld.so: malloc
+ld.so: calloc
+ld.so: realloc
+ld.so: free
+# The TLS-enabled version of these functions is interposed from libc.so.
+ld.so: _dl_signal_error
+ld.so: _dl_catch_error
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/lxstat.c b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/lxstat.c
new file mode 100644
index 0000000000..0efa0aea49
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/lxstat.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/i386/lxstat.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/makecontext.c b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/makecontext.c
new file mode 100644
index 0000000000..9b02e49608
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/makecontext.c
@@ -0,0 +1,99 @@
+/* Create new context.
+ Copyright (C) 2008-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Helge Deller <deller@gmx.de>, 2008.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <libintl.h>
+#include <stdarg.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <sysdep.h>
+#include <ucontext.h>
+
+/* POSIX only supports integer arguments. */
+
+/* Stack must be 64-byte aligned at all times. */
+#define STACK_ALIGN 64
+/* Size of frame marker in unsigned long words. */
+#define FRAME_SIZE_UL 8
+/* Size of frame marker in bytes. */
+#define FRAME_SIZE_BYTES (8 * sizeof(unsigned long))
+/* Size of X arguments in bytes. */
+#define ARGS(x) (x * sizeof(unsigned long))
+
+void
+__makecontext (ucontext_t *ucp, void (*func) (void), int argc, ...)
+{
+ unsigned long *sp, *osp;
+ va_list ap;
+ int i;
+
+ /* Create a 64-byte aligned frame to store args. Use ss_sp if
+ it is available, otherwise be robust and use the currently
+ saved stack pointer. */
+ if (ucp->uc_stack.ss_sp && ucp->uc_stack.ss_size)
+ osp = (unsigned long *)ucp->uc_stack.ss_sp;
+ else
+ osp = (unsigned long *)ucp->uc_mcontext.sc_gr[30];
+
+ sp = (unsigned long *)((((unsigned long) osp)
+ + FRAME_SIZE_BYTES + ARGS(argc) + STACK_ALIGN)
+ & ~(STACK_ALIGN - 1));
+
+ /* Use new frame. */
+ ucp->uc_mcontext.sc_gr[30] = ((unsigned long) sp);
+
+ /* Finish frame setup. */
+ if (ucp->uc_link)
+ {
+ /* Returning to the next context and next frame. */
+ sp[-4/sizeof(unsigned long)] = ucp->uc_link->uc_mcontext.sc_gr[30];
+ sp[-20/sizeof(unsigned long)] = ucp->uc_link->uc_mcontext.sc_gr[2];
+ }
+ else
+ {
+ /* This is the main context. No frame marker, and no return address. */
+ sp[-4/sizeof(unsigned long)] = 0x0;
+ sp[-20/sizeof(unsigned long)] = 0x0;
+ }
+
+ /* Store address to jump to. */
+ ucp->uc_mcontext.sc_gr[2] = (unsigned long) func;
+
+ /* Process arguments. */
+ va_start (ap, argc);
+ for (i = 0; i < argc; ++i)
+ {
+ if (i < 4)
+ {
+ ucp->uc_mcontext.sc_gr[26-i] = va_arg (ap, int);
+ continue;
+ }
+
+ if ((i < 8) && (sizeof(unsigned long) == 8))
+ {
+ /* 64bit: r19-r22 are arg7-arg4. */
+ ucp->uc_mcontext.sc_gr[22+4-i] = va_arg (ap, int);
+ continue;
+ }
+
+ /* All other arguments go on the stack. */
+ sp[-1 * (FRAME_SIZE_UL + 1 + i)] = va_arg (ap, int);
+ }
+ va_end (ap);
+}
+weak_alias(__makecontext, makecontext)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/profil-counter.h b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/profil-counter.h
new file mode 100644
index 0000000000..0bb6e37298
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/profil-counter.h
@@ -0,0 +1,24 @@
+/* Machine-dependent SIGPROF signal handler. PA-RISC version
+ Copyright (C) 1996-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+static void
+__profil_counter (int signr, siginfo_t *si, struct ucontext *uctx)
+{
+ unsigned long ip = uctx->uc_mcontext.sc_iaoq[0] & ~0x3;
+ profil_count ((void *) ip);
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/pt-vfork.S b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/pt-vfork.S
new file mode 100644
index 0000000000..fc4573c86b
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/pt-vfork.S
@@ -0,0 +1,79 @@
+/* Copyright (C) 2005-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#define _ERRNO_H 1
+#include <bits/errno.h>
+#include <tcb-offsets.h>
+
+/* Clone the calling process, but without copying the whole address space.
+ The calling process is suspended until the new process exits or is
+ replaced by a call to `execve'. Return -1 for errors, 0 to the new process,
+ and the process ID of the new process to the old process. */
+
+.Lthread_start: ASM_LINE_SEP
+
+ /* r26, r25, r24, r23 are free since vfork has no arguments */
+ENTRY(__vfork)
+ /* We must not create a frame. When the child unwinds to call
+ exec it will clobber the same frame that the parent
+ needs to unwind. */
+
+ /* Save the PIC register. */
+#ifdef PIC
+ copy %r19, %r25 /* parent */
+#endif
+
+ /* Syscall saves and restores all register states */
+ ble 0x100(%sr2,%r0)
+ ldi __NR_vfork,%r20
+
+ /* Check for error */
+ ldi -4096,%r1
+ comclr,>>= %r1,%ret0,%r0 /* Note: unsigned compare. */
+ b,n .Lerror
+
+ /* Return, and DO NOT restore rp. The child may have called
+ functions that updated the frame's rp. This works because
+ the kernel ensures rp is preserved across the vfork
+ syscall. */
+ bv,n %r0(%rp)
+
+.Lerror:
+ /* Now we need a stack to call a function. We are assured
+ that there is no child now, so it's safe to create
+ a frame. */
+ stw %rp, -20(%sp)
+ stwm %r3, 64(%sp)
+ stw %sp, -4(%sp)
+
+ sub %r0,%ret0,%r3
+ SYSCALL_ERROR_HANDLER
+ /* Restore the PIC register (in delay slot) on error */
+#ifdef PIC
+ copy %r25, %r19 /* parent */
+#else
+ nop
+#endif
+ /* Write syscall return into errno location */
+ stw %r3, 0(%ret0)
+ ldw -84(%sp), %rp
+ bv %r0(%rp)
+ ldwm -64(%sp), %r3
+PSEUDO_END (__vfork)
+libc_hidden_def (__vfork)
+weak_alias (__vfork, vfork)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/pthread.h b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/pthread.h
new file mode 100644
index 0000000000..ac617201d2
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/pthread.h
@@ -0,0 +1,1203 @@
+/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _PTHREAD_H
+#define _PTHREAD_H 1
+
+#include <features.h>
+#include <endian.h>
+#include <sched.h>
+#include <time.h>
+
+#include <bits/pthreadtypes.h>
+#include <bits/setjmp.h>
+#include <bits/wordsize.h>
+
+
+/* Detach state. */
+enum
+{
+ PTHREAD_CREATE_JOINABLE,
+#define PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_JOINABLE
+ PTHREAD_CREATE_DETACHED
+#define PTHREAD_CREATE_DETACHED PTHREAD_CREATE_DETACHED
+};
+
+
+/* Mutex types. */
+enum
+{
+ PTHREAD_MUTEX_TIMED_NP,
+ PTHREAD_MUTEX_RECURSIVE_NP,
+ PTHREAD_MUTEX_ERRORCHECK_NP,
+ PTHREAD_MUTEX_ADAPTIVE_NP
+#if defined __USE_UNIX98 || defined __USE_XOPEN2K8
+ ,
+ PTHREAD_MUTEX_NORMAL = PTHREAD_MUTEX_TIMED_NP,
+ PTHREAD_MUTEX_RECURSIVE = PTHREAD_MUTEX_RECURSIVE_NP,
+ PTHREAD_MUTEX_ERRORCHECK = PTHREAD_MUTEX_ERRORCHECK_NP,
+ PTHREAD_MUTEX_DEFAULT = PTHREAD_MUTEX_NORMAL
+#endif
+#ifdef __USE_GNU
+ /* For compatibility. */
+ , PTHREAD_MUTEX_FAST_NP = PTHREAD_MUTEX_TIMED_NP
+#endif
+};
+
+
+#ifdef __USE_XOPEN2K
+/* Robust mutex or not flags. */
+enum
+{
+ PTHREAD_MUTEX_STALLED,
+ PTHREAD_MUTEX_STALLED_NP = PTHREAD_MUTEX_STALLED,
+ PTHREAD_MUTEX_ROBUST,
+ PTHREAD_MUTEX_ROBUST_NP = PTHREAD_MUTEX_ROBUST
+};
+#endif
+
+
+#if defined __USE_POSIX199506 || defined __USE_UNIX98
+/* Mutex protocols. */
+enum
+{
+ PTHREAD_PRIO_NONE,
+ PTHREAD_PRIO_INHERIT,
+ PTHREAD_PRIO_PROTECT
+};
+#endif
+
+
+#ifdef __PTHREAD_MUTEX_HAVE_PREV
+# define PTHREAD_MUTEX_INITIALIZER \
+ { { 0, 0, 0, 0, 0, __PTHREAD_SPINS, { 0, 0 } } }
+# ifdef __USE_GNU
+# define PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP \
+ { { 0, 0, 0, 0, PTHREAD_MUTEX_RECURSIVE_NP, __PTHREAD_SPINS, { 0, 0 } } }
+# define PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP \
+ { { 0, 0, 0, 0, PTHREAD_MUTEX_ERRORCHECK_NP, __PTHREAD_SPINS, { 0, 0 } } }
+# define PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP \
+ { { 0, 0, 0, 0, PTHREAD_MUTEX_ADAPTIVE_NP, __PTHREAD_SPINS, { 0, 0 } } }
+# define PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP \
+ { { 0, 0, 0, 0, PTHREAD_MUTEX_ADAPTIVE_NP, __PTHREAD_SPINS, { 0, 0 } } }
+
+# endif
+#else
+# define PTHREAD_MUTEX_INITIALIZER \
+ { { 0, 0, 0, 0, 0, { __PTHREAD_SPINS } } }
+# ifdef __USE_GNU
+# define PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP \
+ { { 0, 0, 0, PTHREAD_MUTEX_RECURSIVE_NP, 0, { __PTHREAD_SPINS } } }
+# define PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP \
+ { { 0, 0, 0, PTHREAD_MUTEX_ERRORCHECK_NP, 0, { __PTHREAD_SPINS } } }
+# define PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP \
+ { { 0, 0, 0, PTHREAD_MUTEX_ADAPTIVE_NP, 0, { __PTHREAD_SPINS } } }
+
+# endif
+#endif
+
+
+/* Read-write lock types. */
+#if defined __USE_UNIX98 || defined __USE_XOPEN2K
+enum
+{
+ PTHREAD_RWLOCK_PREFER_READER_NP,
+ PTHREAD_RWLOCK_PREFER_WRITER_NP,
+ PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP,
+ PTHREAD_RWLOCK_DEFAULT_NP = PTHREAD_RWLOCK_PREFER_READER_NP
+};
+
+/* Define __PTHREAD_RWLOCK_INT_FLAGS_SHARED to 1 if pthread_rwlock_t
+ has the shared field. All 64-bit architectures have the shared field
+ in pthread_rwlock_t. */
+#ifndef __PTHREAD_RWLOCK_INT_FLAGS_SHARED
+# if __WORDSIZE == 64
+# define __PTHREAD_RWLOCK_INT_FLAGS_SHARED 1
+# endif
+#endif
+
+/* Read-write lock initializers. */
+# define PTHREAD_RWLOCK_INITIALIZER \
+ { { 0, 0, 0, 0, 0, 0, 0, 0, __PTHREAD_RWLOCK_ELISION_EXTRA, 0, 0 } }
+# ifdef __USE_GNU
+# ifdef __PTHREAD_RWLOCK_INT_FLAGS_SHARED
+# define PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP \
+ { { 0, 0, 0, 0, 0, 0, 0, 0, __PTHREAD_RWLOCK_ELISION_EXTRA, 0, \
+ PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP } }
+# else
+# if __BYTE_ORDER == __LITTLE_ENDIAN
+# define PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP \
+ { { 0, 0, 0, 0, 0, 0, PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP, \
+ 0, __PTHREAD_RWLOCK_ELISION_EXTRA, 0, 0 } }
+# else
+# define PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP \
+ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP,\
+ 0 } }
+# endif
+# endif
+# endif
+#endif /* Unix98 or XOpen2K */
+
+
+/* Scheduler inheritance. */
+enum
+{
+ PTHREAD_INHERIT_SCHED,
+#define PTHREAD_INHERIT_SCHED PTHREAD_INHERIT_SCHED
+ PTHREAD_EXPLICIT_SCHED
+#define PTHREAD_EXPLICIT_SCHED PTHREAD_EXPLICIT_SCHED
+};
+
+
+/* Scope handling. */
+enum
+{
+ PTHREAD_SCOPE_SYSTEM,
+#define PTHREAD_SCOPE_SYSTEM PTHREAD_SCOPE_SYSTEM
+ PTHREAD_SCOPE_PROCESS
+#define PTHREAD_SCOPE_PROCESS PTHREAD_SCOPE_PROCESS
+};
+
+
+/* Process shared or private flag. */
+enum
+{
+ PTHREAD_PROCESS_PRIVATE,
+#define PTHREAD_PROCESS_PRIVATE PTHREAD_PROCESS_PRIVATE
+ PTHREAD_PROCESS_SHARED
+#define PTHREAD_PROCESS_SHARED PTHREAD_PROCESS_SHARED
+};
+
+
+
+/* Conditional variable handling. */
+#define PTHREAD_COND_INITIALIZER { { 0, 0, 0, 0, 0, (void *) 0, 0, 0 } }
+
+
+/* Cleanup buffers */
+struct _pthread_cleanup_buffer
+{
+ void (*__routine) (void *); /* Function to call. */
+ void *__arg; /* Its argument. */
+ int __canceltype; /* Saved cancellation type. */
+ struct _pthread_cleanup_buffer *__prev; /* Chaining of cleanup functions. */
+};
+
+/* Cancellation */
+enum
+{
+ PTHREAD_CANCEL_ENABLE,
+#define PTHREAD_CANCEL_ENABLE PTHREAD_CANCEL_ENABLE
+ PTHREAD_CANCEL_DISABLE
+#define PTHREAD_CANCEL_DISABLE PTHREAD_CANCEL_DISABLE
+};
+enum
+{
+ PTHREAD_CANCEL_DEFERRED,
+#define PTHREAD_CANCEL_DEFERRED PTHREAD_CANCEL_DEFERRED
+ PTHREAD_CANCEL_ASYNCHRONOUS
+#define PTHREAD_CANCEL_ASYNCHRONOUS PTHREAD_CANCEL_ASYNCHRONOUS
+};
+#define PTHREAD_CANCELED ((void *) -1)
+
+
+/* Single execution handling. */
+#define PTHREAD_ONCE_INIT 0
+
+
+#ifdef __USE_XOPEN2K
+/* Value returned by 'pthread_barrier_wait' for one of the threads after
+ the required number of threads have called this function.
+ -1 is distinct from 0 and all errno constants */
+# define PTHREAD_BARRIER_SERIAL_THREAD -1
+#endif
+
+
+__BEGIN_DECLS
+
+/* Create a new thread, starting with execution of START-ROUTINE
+ getting passed ARG. Creation attributed come from ATTR. The new
+ handle is stored in *NEWTHREAD. */
+extern int pthread_create (pthread_t *__restrict __newthread,
+ const pthread_attr_t *__restrict __attr,
+ void *(*__start_routine) (void *),
+ void *__restrict __arg) __THROWNL __nonnull ((1, 3));
+
+/* Terminate calling thread.
+
+ The registered cleanup handlers are called via exception handling
+ so we cannot mark this function with __THROW.*/
+extern void pthread_exit (void *__retval) __attribute__ ((__noreturn__));
+
+/* Make calling thread wait for termination of the thread TH. The
+ exit status of the thread is stored in *THREAD_RETURN, if THREAD_RETURN
+ is not NULL.
+
+ This function is a cancellation point and therefore not marked with
+ __THROW. */
+extern int pthread_join (pthread_t __th, void **__thread_return);
+
+#ifdef __USE_GNU
+/* Check whether thread TH has terminated. If yes return the status of
+ the thread in *THREAD_RETURN, if THREAD_RETURN is not NULL. */
+extern int pthread_tryjoin_np (pthread_t __th, void **__thread_return) __THROW;
+
+/* Make calling thread wait for termination of the thread TH, but only
+ until TIMEOUT. The exit status of the thread is stored in
+ *THREAD_RETURN, if THREAD_RETURN is not NULL.
+
+ This function is a cancellation point and therefore not marked with
+ __THROW. */
+extern int pthread_timedjoin_np (pthread_t __th, void **__thread_return,
+ const struct timespec *__abstime);
+#endif
+
+/* Indicate that the thread TH is never to be joined with PTHREAD_JOIN.
+ The resources of TH will therefore be freed immediately when it
+ terminates, instead of waiting for another thread to perform PTHREAD_JOIN
+ on it. */
+extern int pthread_detach (pthread_t __th) __THROW;
+
+
+/* Obtain the identifier of the current thread. */
+extern pthread_t pthread_self (void) __THROW __attribute__ ((__const__));
+
+/* Compare two thread identifiers. */
+extern int pthread_equal (pthread_t __thread1, pthread_t __thread2)
+ __THROW __attribute__ ((__const__));
+
+
+/* Thread attribute handling. */
+
+/* Initialize thread attribute *ATTR with default attributes
+ (detachstate is PTHREAD_JOINABLE, scheduling policy is SCHED_OTHER,
+ no user-provided stack). */
+extern int pthread_attr_init (pthread_attr_t *__attr) __THROW __nonnull ((1));
+
+/* Destroy thread attribute *ATTR. */
+extern int pthread_attr_destroy (pthread_attr_t *__attr)
+ __THROW __nonnull ((1));
+
+/* Get detach state attribute. */
+extern int pthread_attr_getdetachstate (const pthread_attr_t *__attr,
+ int *__detachstate)
+ __THROW __nonnull ((1, 2));
+
+/* Set detach state attribute. */
+extern int pthread_attr_setdetachstate (pthread_attr_t *__attr,
+ int __detachstate)
+ __THROW __nonnull ((1));
+
+
+/* Get the size of the guard area created for stack overflow protection. */
+extern int pthread_attr_getguardsize (const pthread_attr_t *__attr,
+ size_t *__guardsize)
+ __THROW __nonnull ((1, 2));
+
+/* Set the size of the guard area created for stack overflow protection. */
+extern int pthread_attr_setguardsize (pthread_attr_t *__attr,
+ size_t __guardsize)
+ __THROW __nonnull ((1));
+
+
+/* Return in *PARAM the scheduling parameters of *ATTR. */
+extern int pthread_attr_getschedparam (const pthread_attr_t *__restrict __attr,
+ struct sched_param *__restrict __param)
+ __THROW __nonnull ((1, 2));
+
+/* Set scheduling parameters (priority, etc) in *ATTR according to PARAM. */
+extern int pthread_attr_setschedparam (pthread_attr_t *__restrict __attr,
+ const struct sched_param *__restrict
+ __param) __THROW __nonnull ((1, 2));
+
+/* Return in *POLICY the scheduling policy of *ATTR. */
+extern int pthread_attr_getschedpolicy (const pthread_attr_t *__restrict
+ __attr, int *__restrict __policy)
+ __THROW __nonnull ((1, 2));
+
+/* Set scheduling policy in *ATTR according to POLICY. */
+extern int pthread_attr_setschedpolicy (pthread_attr_t *__attr, int __policy)
+ __THROW __nonnull ((1));
+
+/* Return in *INHERIT the scheduling inheritance mode of *ATTR. */
+extern int pthread_attr_getinheritsched (const pthread_attr_t *__restrict
+ __attr, int *__restrict __inherit)
+ __THROW __nonnull ((1, 2));
+
+/* Set scheduling inheritance mode in *ATTR according to INHERIT. */
+extern int pthread_attr_setinheritsched (pthread_attr_t *__attr,
+ int __inherit)
+ __THROW __nonnull ((1));
+
+
+/* Return in *SCOPE the scheduling contention scope of *ATTR. */
+extern int pthread_attr_getscope (const pthread_attr_t *__restrict __attr,
+ int *__restrict __scope)
+ __THROW __nonnull ((1, 2));
+
+/* Set scheduling contention scope in *ATTR according to SCOPE. */
+extern int pthread_attr_setscope (pthread_attr_t *__attr, int __scope)
+ __THROW __nonnull ((1));
+
+/* Return the previously set address for the stack. */
+extern int pthread_attr_getstackaddr (const pthread_attr_t *__restrict
+ __attr, void **__restrict __stackaddr)
+ __THROW __nonnull ((1, 2)) __attribute_deprecated__;
+
+/* Set the starting address of the stack of the thread to be created.
+ Depending on whether the stack grows up or down the value must either
+ be higher or lower than all the address in the memory block. The
+ minimal size of the block must be PTHREAD_STACK_MIN. */
+extern int pthread_attr_setstackaddr (pthread_attr_t *__attr,
+ void *__stackaddr)
+ __THROW __nonnull ((1)) __attribute_deprecated__;
+
+/* Return the currently used minimal stack size. */
+extern int pthread_attr_getstacksize (const pthread_attr_t *__restrict
+ __attr, size_t *__restrict __stacksize)
+ __THROW __nonnull ((1, 2));
+
+/* Add information about the minimum stack size needed for the thread
+ to be started. This size must never be less than PTHREAD_STACK_MIN
+ and must also not exceed the system limits. */
+extern int pthread_attr_setstacksize (pthread_attr_t *__attr,
+ size_t __stacksize)
+ __THROW __nonnull ((1));
+
+#ifdef __USE_XOPEN2K
+/* Return the previously set address for the stack. */
+extern int pthread_attr_getstack (const pthread_attr_t *__restrict __attr,
+ void **__restrict __stackaddr,
+ size_t *__restrict __stacksize)
+ __THROW __nonnull ((1, 2, 3));
+
+/* The following two interfaces are intended to replace the last two. They
+ require setting the address as well as the size since only setting the
+ address will make the implementation on some architectures impossible. */
+extern int pthread_attr_setstack (pthread_attr_t *__attr, void *__stackaddr,
+ size_t __stacksize) __THROW __nonnull ((1));
+#endif
+
+#ifdef __USE_GNU
+/* Thread created with attribute ATTR will be limited to run only on
+ the processors represented in CPUSET. */
+extern int pthread_attr_setaffinity_np (pthread_attr_t *__attr,
+ size_t __cpusetsize,
+ const cpu_set_t *__cpuset)
+ __THROW __nonnull ((1, 3));
+
+/* Get bit set in CPUSET representing the processors threads created with
+ ATTR can run on. */
+extern int pthread_attr_getaffinity_np (const pthread_attr_t *__attr,
+ size_t __cpusetsize,
+ cpu_set_t *__cpuset)
+ __THROW __nonnull ((1, 3));
+
+/* Get the default attributes used by pthread_create in this process. */
+extern int pthread_getattr_default_np (pthread_attr_t *__attr)
+ __THROW __nonnull ((1));
+
+/* Set the default attributes to be used by pthread_create in this
+ process. */
+extern int pthread_setattr_default_np (const pthread_attr_t *__attr)
+ __THROW __nonnull ((1));
+
+/* Initialize thread attribute *ATTR with attributes corresponding to the
+ already running thread TH. It shall be called on uninitialized ATTR
+ and destroyed with pthread_attr_destroy when no longer needed. */
+extern int pthread_getattr_np (pthread_t __th, pthread_attr_t *__attr)
+ __THROW __nonnull ((2));
+#endif
+
+
+/* Functions for scheduling control. */
+
+/* Set the scheduling parameters for TARGET_THREAD according to POLICY
+ and *PARAM. */
+extern int pthread_setschedparam (pthread_t __target_thread, int __policy,
+ const struct sched_param *__param)
+ __THROW __nonnull ((3));
+
+/* Return in *POLICY and *PARAM the scheduling parameters for TARGET_THREAD. */
+extern int pthread_getschedparam (pthread_t __target_thread,
+ int *__restrict __policy,
+ struct sched_param *__restrict __param)
+ __THROW __nonnull ((2, 3));
+
+/* Set the scheduling priority for TARGET_THREAD. */
+extern int pthread_setschedprio (pthread_t __target_thread, int __prio)
+ __THROW;
+
+
+#ifdef __USE_GNU
+/* Get thread name visible in the kernel and its interfaces. */
+extern int pthread_getname_np (pthread_t __target_thread, char *__buf,
+ size_t __buflen)
+ __THROW __nonnull ((2));
+
+/* Set thread name visible in the kernel and its interfaces. */
+extern int pthread_setname_np (pthread_t __target_thread, const char *__name)
+ __THROW __nonnull ((2));
+#endif
+
+
+#ifdef __USE_UNIX98
+/* Determine level of concurrency. */
+extern int pthread_getconcurrency (void) __THROW;
+
+/* Set new concurrency level to LEVEL. */
+extern int pthread_setconcurrency (int __level) __THROW;
+#endif
+
+#ifdef __USE_GNU
+/* Yield the processor to another thread or process.
+ This function is similar to the POSIX `sched_yield' function but
+ might be differently implemented in the case of a m-on-n thread
+ implementation. */
+extern int pthread_yield (void) __THROW;
+
+
+/* Limit specified thread TH to run only on the processors represented
+ in CPUSET. */
+extern int pthread_setaffinity_np (pthread_t __th, size_t __cpusetsize,
+ const cpu_set_t *__cpuset)
+ __THROW __nonnull ((3));
+
+/* Get bit set in CPUSET representing the processors TH can run on. */
+extern int pthread_getaffinity_np (pthread_t __th, size_t __cpusetsize,
+ cpu_set_t *__cpuset)
+ __THROW __nonnull ((3));
+#endif
+
+
+/* Functions for handling initialization. */
+
+/* Guarantee that the initialization function INIT_ROUTINE will be called
+ only once, even if pthread_once is executed several times with the
+ same ONCE_CONTROL argument. ONCE_CONTROL must point to a static or
+ extern variable initialized to PTHREAD_ONCE_INIT.
+
+ The initialization functions might throw exception which is why
+ this function is not marked with __THROW. */
+extern int pthread_once (pthread_once_t *__once_control,
+ void (*__init_routine) (void)) __nonnull ((1, 2));
+
+
+/* Functions for handling cancellation.
+
+ Note that these functions are explicitly not marked to not throw an
+ exception in C++ code. If cancellation is implemented by unwinding
+ this is necessary to have the compiler generate the unwind information. */
+
+/* Set cancelability state of current thread to STATE, returning old
+ state in *OLDSTATE if OLDSTATE is not NULL. */
+extern int pthread_setcancelstate (int __state, int *__oldstate);
+
+/* Set cancellation state of current thread to TYPE, returning the old
+ type in *OLDTYPE if OLDTYPE is not NULL. */
+extern int pthread_setcanceltype (int __type, int *__oldtype);
+
+/* Cancel THREAD immediately or at the next possibility. */
+extern int pthread_cancel (pthread_t __th);
+
+/* Test for pending cancellation for the current thread and terminate
+ the thread as per pthread_exit(PTHREAD_CANCELED) if it has been
+ cancelled. */
+extern void pthread_testcancel (void);
+
+
+/* Cancellation handling with integration into exception handling. */
+
+typedef struct
+{
+ struct
+ {
+ __jmp_buf __cancel_jmp_buf;
+ int __mask_was_saved;
+ } __cancel_jmp_buf[1];
+ void *__pad[4];
+} __pthread_unwind_buf_t __attribute__ ((__aligned__));
+
+/* No special attributes by default. */
+#ifndef __cleanup_fct_attribute
+# define __cleanup_fct_attribute
+#endif
+
+
+/* Structure to hold the cleanup handler information. */
+struct __pthread_cleanup_frame
+{
+ void (*__cancel_routine) (void *);
+ void *__cancel_arg;
+ int __do_it;
+ int __cancel_type;
+};
+
+#if defined __GNUC__ && defined __EXCEPTIONS
+# ifdef __cplusplus
+/* Class to handle cancellation handler invocation. */
+class __pthread_cleanup_class
+{
+ void (*__cancel_routine) (void *);
+ void *__cancel_arg;
+ int __do_it;
+ int __cancel_type;
+
+ public:
+ __pthread_cleanup_class (void (*__fct) (void *), void *__arg)
+ : __cancel_routine (__fct), __cancel_arg (__arg), __do_it (1) { }
+ ~__pthread_cleanup_class () { if (__do_it) __cancel_routine (__cancel_arg); }
+ void __setdoit (int __newval) { __do_it = __newval; }
+ void __defer () { pthread_setcanceltype (PTHREAD_CANCEL_DEFERRED,
+ &__cancel_type); }
+ void __restore () const { pthread_setcanceltype (__cancel_type, 0); }
+};
+
+/* Install a cleanup handler: ROUTINE will be called with arguments ARG
+ when the thread is canceled or calls pthread_exit. ROUTINE will also
+ be called with arguments ARG when the matching pthread_cleanup_pop
+ is executed with non-zero EXECUTE argument.
+
+ pthread_cleanup_push and pthread_cleanup_pop are macros and must always
+ be used in matching pairs at the same nesting level of braces. */
+# define pthread_cleanup_push(routine, arg) \
+ do { \
+ __pthread_cleanup_class __clframe (routine, arg)
+
+/* Remove a cleanup handler installed by the matching pthread_cleanup_push.
+ If EXECUTE is non-zero, the handler function is called. */
+# define pthread_cleanup_pop(execute) \
+ __clframe.__setdoit (execute); \
+ } while (0)
+
+# ifdef __USE_GNU
+/* Install a cleanup handler as pthread_cleanup_push does, but also
+ saves the current cancellation type and sets it to deferred
+ cancellation. */
+# define pthread_cleanup_push_defer_np(routine, arg) \
+ do { \
+ __pthread_cleanup_class __clframe (routine, arg); \
+ __clframe.__defer ()
+
+/* Remove a cleanup handler as pthread_cleanup_pop does, but also
+ restores the cancellation type that was in effect when the matching
+ pthread_cleanup_push_defer was called. */
+# define pthread_cleanup_pop_restore_np(execute) \
+ __clframe.__restore (); \
+ __clframe.__setdoit (execute); \
+ } while (0)
+# endif
+# else
+/* Function called to call the cleanup handler. As an extern inline
+ function the compiler is free to decide inlining the change when
+ needed or fall back on the copy which must exist somewhere
+ else. */
+__extern_inline void
+__pthread_cleanup_routine (struct __pthread_cleanup_frame *__frame)
+{
+ if (__frame->__do_it)
+ __frame->__cancel_routine (__frame->__cancel_arg);
+}
+
+/* Install a cleanup handler: ROUTINE will be called with arguments ARG
+ when the thread is canceled or calls pthread_exit. ROUTINE will also
+ be called with arguments ARG when the matching pthread_cleanup_pop
+ is executed with non-zero EXECUTE argument.
+
+ pthread_cleanup_push and pthread_cleanup_pop are macros and must always
+ be used in matching pairs at the same nesting level of braces. */
+# define pthread_cleanup_push(routine, arg) \
+ do { \
+ struct __pthread_cleanup_frame __clframe \
+ __attribute__ ((__cleanup__ (__pthread_cleanup_routine))) \
+ = { .__cancel_routine = (routine), .__cancel_arg = (arg), \
+ .__do_it = 1 };
+
+/* Remove a cleanup handler installed by the matching pthread_cleanup_push.
+ If EXECUTE is non-zero, the handler function is called. */
+# define pthread_cleanup_pop(execute) \
+ __clframe.__do_it = (execute); \
+ } while (0)
+
+# ifdef __USE_GNU
+/* Install a cleanup handler as pthread_cleanup_push does, but also
+ saves the current cancellation type and sets it to deferred
+ cancellation. */
+# define pthread_cleanup_push_defer_np(routine, arg) \
+ do { \
+ struct __pthread_cleanup_frame __clframe \
+ __attribute__ ((__cleanup__ (__pthread_cleanup_routine))) \
+ = { .__cancel_routine = (routine), .__cancel_arg = (arg), \
+ .__do_it = 1 }; \
+ (void) pthread_setcanceltype (PTHREAD_CANCEL_DEFERRED, \
+ &__clframe.__cancel_type)
+
+/* Remove a cleanup handler as pthread_cleanup_pop does, but also
+ restores the cancellation type that was in effect when the matching
+ pthread_cleanup_push_defer was called. */
+# define pthread_cleanup_pop_restore_np(execute) \
+ (void) pthread_setcanceltype (__clframe.__cancel_type, NULL); \
+ __clframe.__do_it = (execute); \
+ } while (0)
+# endif
+# endif
+#else
+/* Install a cleanup handler: ROUTINE will be called with arguments ARG
+ when the thread is canceled or calls pthread_exit. ROUTINE will also
+ be called with arguments ARG when the matching pthread_cleanup_pop
+ is executed with non-zero EXECUTE argument.
+
+ pthread_cleanup_push and pthread_cleanup_pop are macros and must always
+ be used in matching pairs at the same nesting level of braces. */
+# define pthread_cleanup_push(routine, arg) \
+ do { \
+ __pthread_unwind_buf_t __cancel_buf; \
+ void (*__cancel_routine) (void *) = (routine); \
+ void *__cancel_arg = (arg); \
+ int __not_first_call = __sigsetjmp ((struct __jmp_buf_tag *) (void *) \
+ __cancel_buf.__cancel_jmp_buf, 0); \
+ if (__glibc_unlikely (__not_first_call)) \
+ { \
+ __cancel_routine (__cancel_arg); \
+ __pthread_unwind_next (&__cancel_buf); \
+ /* NOTREACHED */ \
+ } \
+ \
+ __pthread_register_cancel (&__cancel_buf); \
+ do {
+extern void __pthread_register_cancel (__pthread_unwind_buf_t *__buf)
+ __cleanup_fct_attribute;
+
+/* Remove a cleanup handler installed by the matching pthread_cleanup_push.
+ If EXECUTE is non-zero, the handler function is called. */
+# define pthread_cleanup_pop(execute) \
+ do { } while (0);/* Empty to allow label before pthread_cleanup_pop. */\
+ } while (0); \
+ __pthread_unregister_cancel (&__cancel_buf); \
+ if (execute) \
+ __cancel_routine (__cancel_arg); \
+ } while (0)
+extern void __pthread_unregister_cancel (__pthread_unwind_buf_t *__buf)
+ __cleanup_fct_attribute;
+
+# ifdef __USE_GNU
+/* Install a cleanup handler as pthread_cleanup_push does, but also
+ saves the current cancellation type and sets it to deferred
+ cancellation. */
+# define pthread_cleanup_push_defer_np(routine, arg) \
+ do { \
+ __pthread_unwind_buf_t __cancel_buf; \
+ void (*__cancel_routine) (void *) = (routine); \
+ void *__cancel_arg = (arg); \
+ int __not_first_call = __sigsetjmp ((struct __jmp_buf_tag *) (void *) \
+ __cancel_buf.__cancel_jmp_buf, 0); \
+ if (__glibc_unlikely (__not_first_call)) \
+ { \
+ __cancel_routine (__cancel_arg); \
+ __pthread_unwind_next (&__cancel_buf); \
+ /* NOTREACHED */ \
+ } \
+ \
+ __pthread_register_cancel_defer (&__cancel_buf); \
+ do {
+extern void __pthread_register_cancel_defer (__pthread_unwind_buf_t *__buf)
+ __cleanup_fct_attribute;
+
+/* Remove a cleanup handler as pthread_cleanup_pop does, but also
+ restores the cancellation type that was in effect when the matching
+ pthread_cleanup_push_defer was called. */
+# define pthread_cleanup_pop_restore_np(execute) \
+ do { } while (0);/* Empty to allow label before pthread_cleanup_pop. */\
+ } while (0); \
+ __pthread_unregister_cancel_restore (&__cancel_buf); \
+ if (execute) \
+ __cancel_routine (__cancel_arg); \
+ } while (0)
+extern void __pthread_unregister_cancel_restore (__pthread_unwind_buf_t *__buf)
+ __cleanup_fct_attribute;
+# endif
+
+/* Internal interface to initiate cleanup. */
+extern void __pthread_unwind_next (__pthread_unwind_buf_t *__buf)
+ __cleanup_fct_attribute __attribute__ ((__noreturn__))
+# ifndef SHARED
+ __attribute__ ((__weak__))
+# endif
+ ;
+#endif
+
+/* Function used in the macros. */
+struct __jmp_buf_tag;
+extern int __sigsetjmp (struct __jmp_buf_tag *__env, int __savemask) __THROWNL;
+
+
+/* Mutex handling. */
+
+/* Initialize a mutex. */
+extern int pthread_mutex_init (pthread_mutex_t *__mutex,
+ const pthread_mutexattr_t *__mutexattr)
+ __THROW __nonnull ((1));
+
+/* Destroy a mutex. */
+extern int pthread_mutex_destroy (pthread_mutex_t *__mutex)
+ __THROW __nonnull ((1));
+
+/* Try locking a mutex. */
+extern int pthread_mutex_trylock (pthread_mutex_t *__mutex)
+ __THROWNL __nonnull ((1));
+
+/* Lock a mutex. */
+extern int pthread_mutex_lock (pthread_mutex_t *__mutex)
+ __THROWNL __nonnull ((1));
+
+#ifdef __USE_XOPEN2K
+/* Wait until lock becomes available, or specified time passes. */
+extern int pthread_mutex_timedlock (pthread_mutex_t *__restrict __mutex,
+ const struct timespec *__restrict
+ __abstime) __THROWNL __nonnull ((1, 2));
+#endif
+
+/* Unlock a mutex. */
+extern int pthread_mutex_unlock (pthread_mutex_t *__mutex)
+ __THROWNL __nonnull ((1));
+
+
+/* Get the priority ceiling of MUTEX. */
+extern int pthread_mutex_getprioceiling (const pthread_mutex_t *
+ __restrict __mutex,
+ int *__restrict __prioceiling)
+ __THROW __nonnull ((1, 2));
+
+/* Set the priority ceiling of MUTEX to PRIOCEILING, return old
+ priority ceiling value in *OLD_CEILING. */
+extern int pthread_mutex_setprioceiling (pthread_mutex_t *__restrict __mutex,
+ int __prioceiling,
+ int *__restrict __old_ceiling)
+ __THROW __nonnull ((1, 3));
+
+
+#ifdef __USE_XOPEN2K8
+/* Declare the state protected by MUTEX as consistent. */
+extern int pthread_mutex_consistent (pthread_mutex_t *__mutex)
+ __THROW __nonnull ((1));
+# ifdef __USE_GNU
+extern int pthread_mutex_consistent_np (pthread_mutex_t *__mutex)
+ __THROW __nonnull ((1));
+# endif
+#endif
+
+
+/* Functions for handling mutex attributes. */
+
+/* Initialize mutex attribute object ATTR with default attributes
+ (kind is PTHREAD_MUTEX_TIMED_NP). */
+extern int pthread_mutexattr_init (pthread_mutexattr_t *__attr)
+ __THROW __nonnull ((1));
+
+/* Destroy mutex attribute object ATTR. */
+extern int pthread_mutexattr_destroy (pthread_mutexattr_t *__attr)
+ __THROW __nonnull ((1));
+
+/* Get the process-shared flag of the mutex attribute ATTR. */
+extern int pthread_mutexattr_getpshared (const pthread_mutexattr_t *
+ __restrict __attr,
+ int *__restrict __pshared)
+ __THROW __nonnull ((1, 2));
+
+/* Set the process-shared flag of the mutex attribute ATTR. */
+extern int pthread_mutexattr_setpshared (pthread_mutexattr_t *__attr,
+ int __pshared)
+ __THROW __nonnull ((1));
+
+#if defined __USE_UNIX98 || defined __USE_XOPEN2K8
+/* Return in *KIND the mutex kind attribute in *ATTR. */
+extern int pthread_mutexattr_gettype (const pthread_mutexattr_t *__restrict
+ __attr, int *__restrict __kind)
+ __THROW __nonnull ((1, 2));
+
+/* Set the mutex kind attribute in *ATTR to KIND (either PTHREAD_MUTEX_NORMAL,
+ PTHREAD_MUTEX_RECURSIVE, PTHREAD_MUTEX_ERRORCHECK, or
+ PTHREAD_MUTEX_DEFAULT). */
+extern int pthread_mutexattr_settype (pthread_mutexattr_t *__attr, int __kind)
+ __THROW __nonnull ((1));
+#endif
+
+/* Return in *PROTOCOL the mutex protocol attribute in *ATTR. */
+extern int pthread_mutexattr_getprotocol (const pthread_mutexattr_t *
+ __restrict __attr,
+ int *__restrict __protocol)
+ __THROW __nonnull ((1, 2));
+
+/* Set the mutex protocol attribute in *ATTR to PROTOCOL (either
+ PTHREAD_PRIO_NONE, PTHREAD_PRIO_INHERIT, or PTHREAD_PRIO_PROTECT). */
+extern int pthread_mutexattr_setprotocol (pthread_mutexattr_t *__attr,
+ int __protocol)
+ __THROW __nonnull ((1));
+
+/* Return in *PRIOCEILING the mutex prioceiling attribute in *ATTR. */
+extern int pthread_mutexattr_getprioceiling (const pthread_mutexattr_t *
+ __restrict __attr,
+ int *__restrict __prioceiling)
+ __THROW __nonnull ((1, 2));
+
+/* Set the mutex prioceiling attribute in *ATTR to PRIOCEILING. */
+extern int pthread_mutexattr_setprioceiling (pthread_mutexattr_t *__attr,
+ int __prioceiling)
+ __THROW __nonnull ((1));
+
+#ifdef __USE_XOPEN2K
+/* Get the robustness flag of the mutex attribute ATTR. */
+extern int pthread_mutexattr_getrobust (const pthread_mutexattr_t *__attr,
+ int *__robustness)
+ __THROW __nonnull ((1, 2));
+# ifdef __USE_GNU
+extern int pthread_mutexattr_getrobust_np (const pthread_mutexattr_t *__attr,
+ int *__robustness)
+ __THROW __nonnull ((1, 2));
+# endif
+
+/* Set the robustness flag of the mutex attribute ATTR. */
+extern int pthread_mutexattr_setrobust (pthread_mutexattr_t *__attr,
+ int __robustness)
+ __THROW __nonnull ((1));
+# ifdef __USE_GNU
+extern int pthread_mutexattr_setrobust_np (pthread_mutexattr_t *__attr,
+ int __robustness)
+ __THROW __nonnull ((1));
+# endif
+#endif
+
+
+#if defined __USE_UNIX98 || defined __USE_XOPEN2K
+/* Functions for handling read-write locks. */
+
+/* Initialize read-write lock RWLOCK using attributes ATTR, or use
+ the default values if later is NULL. */
+extern int pthread_rwlock_init (pthread_rwlock_t *__restrict __rwlock,
+ const pthread_rwlockattr_t *__restrict
+ __attr) __THROW __nonnull ((1));
+
+/* Destroy read-write lock RWLOCK. */
+extern int pthread_rwlock_destroy (pthread_rwlock_t *__rwlock)
+ __THROW __nonnull ((1));
+
+/* Acquire read lock for RWLOCK. */
+extern int pthread_rwlock_rdlock (pthread_rwlock_t *__rwlock)
+ __THROWNL __nonnull ((1));
+
+/* Try to acquire read lock for RWLOCK. */
+extern int pthread_rwlock_tryrdlock (pthread_rwlock_t *__rwlock)
+ __THROWNL __nonnull ((1));
+
+# ifdef __USE_XOPEN2K
+/* Try to acquire read lock for RWLOCK or return after specfied time. */
+extern int pthread_rwlock_timedrdlock (pthread_rwlock_t *__restrict __rwlock,
+ const struct timespec *__restrict
+ __abstime) __THROWNL __nonnull ((1, 2));
+# endif
+
+/* Acquire write lock for RWLOCK. */
+extern int pthread_rwlock_wrlock (pthread_rwlock_t *__rwlock)
+ __THROWNL __nonnull ((1));
+
+/* Try to acquire write lock for RWLOCK. */
+extern int pthread_rwlock_trywrlock (pthread_rwlock_t *__rwlock)
+ __THROWNL __nonnull ((1));
+
+# ifdef __USE_XOPEN2K
+/* Try to acquire write lock for RWLOCK or return after specfied time. */
+extern int pthread_rwlock_timedwrlock (pthread_rwlock_t *__restrict __rwlock,
+ const struct timespec *__restrict
+ __abstime) __THROWNL __nonnull ((1, 2));
+# endif
+
+/* Unlock RWLOCK. */
+extern int pthread_rwlock_unlock (pthread_rwlock_t *__rwlock)
+ __THROWNL __nonnull ((1));
+
+
+/* Functions for handling read-write lock attributes. */
+
+/* Initialize attribute object ATTR with default values. */
+extern int pthread_rwlockattr_init (pthread_rwlockattr_t *__attr)
+ __THROW __nonnull ((1));
+
+/* Destroy attribute object ATTR. */
+extern int pthread_rwlockattr_destroy (pthread_rwlockattr_t *__attr)
+ __THROW __nonnull ((1));
+
+/* Return current setting of process-shared attribute of ATTR in PSHARED. */
+extern int pthread_rwlockattr_getpshared (const pthread_rwlockattr_t *
+ __restrict __attr,
+ int *__restrict __pshared)
+ __THROW __nonnull ((1, 2));
+
+/* Set process-shared attribute of ATTR to PSHARED. */
+extern int pthread_rwlockattr_setpshared (pthread_rwlockattr_t *__attr,
+ int __pshared)
+ __THROW __nonnull ((1));
+
+/* Return current setting of reader/writer preference. */
+extern int pthread_rwlockattr_getkind_np (const pthread_rwlockattr_t *
+ __restrict __attr,
+ int *__restrict __pref)
+ __THROW __nonnull ((1, 2));
+
+/* Set reader/write preference. */
+extern int pthread_rwlockattr_setkind_np (pthread_rwlockattr_t *__attr,
+ int __pref) __THROW __nonnull ((1));
+#endif
+
+
+/* Functions for handling conditional variables. */
+
+/* Initialize condition variable COND using attributes ATTR, or use
+ the default values if later is NULL. */
+extern int pthread_cond_init (pthread_cond_t *__restrict __cond,
+ const pthread_condattr_t *__restrict __cond_attr)
+ __THROW __nonnull ((1));
+
+/* Destroy condition variable COND. */
+extern int pthread_cond_destroy (pthread_cond_t *__cond)
+ __THROW __nonnull ((1));
+
+/* Wake up one thread waiting for condition variable COND. */
+extern int pthread_cond_signal (pthread_cond_t *__cond)
+ __THROWNL __nonnull ((1));
+
+/* Wake up all threads waiting for condition variables COND. */
+extern int pthread_cond_broadcast (pthread_cond_t *__cond)
+ __THROWNL __nonnull ((1));
+
+/* Wait for condition variable COND to be signaled or broadcast.
+ MUTEX is assumed to be locked before.
+
+ This function is a cancellation point and therefore not marked with
+ __THROW. */
+extern int pthread_cond_wait (pthread_cond_t *__restrict __cond,
+ pthread_mutex_t *__restrict __mutex)
+ __nonnull ((1, 2));
+
+/* Wait for condition variable COND to be signaled or broadcast until
+ ABSTIME. MUTEX is assumed to be locked before. ABSTIME is an
+ absolute time specification; zero is the beginning of the epoch
+ (00:00:00 GMT, January 1, 1970).
+
+ This function is a cancellation point and therefore not marked with
+ __THROW. */
+extern int pthread_cond_timedwait (pthread_cond_t *__restrict __cond,
+ pthread_mutex_t *__restrict __mutex,
+ const struct timespec *__restrict __abstime)
+ __nonnull ((1, 2, 3));
+
+/* Functions for handling condition variable attributes. */
+
+/* Initialize condition variable attribute ATTR. */
+extern int pthread_condattr_init (pthread_condattr_t *__attr)
+ __THROW __nonnull ((1));
+
+/* Destroy condition variable attribute ATTR. */
+extern int pthread_condattr_destroy (pthread_condattr_t *__attr)
+ __THROW __nonnull ((1));
+
+/* Get the process-shared flag of the condition variable attribute ATTR. */
+extern int pthread_condattr_getpshared (const pthread_condattr_t *
+ __restrict __attr,
+ int *__restrict __pshared)
+ __THROW __nonnull ((1, 2));
+
+/* Set the process-shared flag of the condition variable attribute ATTR. */
+extern int pthread_condattr_setpshared (pthread_condattr_t *__attr,
+ int __pshared) __THROW __nonnull ((1));
+
+#ifdef __USE_XOPEN2K
+/* Get the clock selected for the condition variable attribute ATTR. */
+extern int pthread_condattr_getclock (const pthread_condattr_t *
+ __restrict __attr,
+ __clockid_t *__restrict __clock_id)
+ __THROW __nonnull ((1, 2));
+
+/* Set the clock selected for the condition variable attribute ATTR. */
+extern int pthread_condattr_setclock (pthread_condattr_t *__attr,
+ __clockid_t __clock_id)
+ __THROW __nonnull ((1));
+#endif
+
+
+#ifdef __USE_XOPEN2K
+/* Functions to handle spinlocks. */
+
+/* Initialize the spinlock LOCK. If PSHARED is nonzero the spinlock can
+ be shared between different processes. */
+extern int pthread_spin_init (pthread_spinlock_t *__lock, int __pshared)
+ __THROW __nonnull ((1));
+
+/* Destroy the spinlock LOCK. */
+extern int pthread_spin_destroy (pthread_spinlock_t *__lock)
+ __THROW __nonnull ((1));
+
+/* Wait until spinlock LOCK is retrieved. */
+extern int pthread_spin_lock (pthread_spinlock_t *__lock)
+ __THROWNL __nonnull ((1));
+
+/* Try to lock spinlock LOCK. */
+extern int pthread_spin_trylock (pthread_spinlock_t *__lock)
+ __THROWNL __nonnull ((1));
+
+/* Release spinlock LOCK. */
+extern int pthread_spin_unlock (pthread_spinlock_t *__lock)
+ __THROWNL __nonnull ((1));
+
+
+/* Functions to handle barriers. */
+
+/* Initialize BARRIER with the attributes in ATTR. The barrier is
+ opened when COUNT waiters arrived. */
+extern int pthread_barrier_init (pthread_barrier_t *__restrict __barrier,
+ const pthread_barrierattr_t *__restrict
+ __attr, unsigned int __count)
+ __THROW __nonnull ((1));
+
+/* Destroy a previously dynamically initialized barrier BARRIER. */
+extern int pthread_barrier_destroy (pthread_barrier_t *__barrier)
+ __THROW __nonnull ((1));
+
+/* Wait on barrier BARRIER. */
+extern int pthread_barrier_wait (pthread_barrier_t *__barrier)
+ __THROWNL __nonnull ((1));
+
+
+/* Initialize barrier attribute ATTR. */
+extern int pthread_barrierattr_init (pthread_barrierattr_t *__attr)
+ __THROW __nonnull ((1));
+
+/* Destroy previously dynamically initialized barrier attribute ATTR. */
+extern int pthread_barrierattr_destroy (pthread_barrierattr_t *__attr)
+ __THROW __nonnull ((1));
+
+/* Get the process-shared flag of the barrier attribute ATTR. */
+extern int pthread_barrierattr_getpshared (const pthread_barrierattr_t *
+ __restrict __attr,
+ int *__restrict __pshared)
+ __THROW __nonnull ((1, 2));
+
+/* Set the process-shared flag of the barrier attribute ATTR. */
+extern int pthread_barrierattr_setpshared (pthread_barrierattr_t *__attr,
+ int __pshared)
+ __THROW __nonnull ((1));
+#endif
+
+
+/* Functions for handling thread-specific data. */
+
+/* Create a key value identifying a location in the thread-specific
+ data area. Each thread maintains a distinct thread-specific data
+ area. DESTR_FUNCTION, if non-NULL, is called with the value
+ associated to that key when the key is destroyed.
+ DESTR_FUNCTION is not called if the value associated is NULL when
+ the key is destroyed. */
+extern int pthread_key_create (pthread_key_t *__key,
+ void (*__destr_function) (void *))
+ __THROW __nonnull ((1));
+
+/* Destroy KEY. */
+extern int pthread_key_delete (pthread_key_t __key) __THROW;
+
+/* Return current value of the thread-specific data slot identified by KEY. */
+extern void *pthread_getspecific (pthread_key_t __key) __THROW;
+
+/* Store POINTER in the thread-specific data slot identified by KEY. */
+extern int pthread_setspecific (pthread_key_t __key,
+ const void *__pointer) __THROW ;
+
+
+#ifdef __USE_XOPEN2K
+/* Get ID of CPU-time clock for thread THREAD_ID. */
+extern int pthread_getcpuclockid (pthread_t __thread_id,
+ __clockid_t *__clock_id)
+ __THROW __nonnull ((2));
+#endif
+
+
+/* Install handlers to be called when a new process is created with FORK.
+ The PREPARE handler is called in the parent process just before performing
+ FORK. The PARENT handler is called in the parent process just after FORK.
+ The CHILD handler is called in the child process. Each of the three
+ handlers can be NULL, meaning that no handler needs to be called at that
+ point.
+ PTHREAD_ATFORK can be called several times, in which case the PREPARE
+ handlers are called in LIFO order (last added with PTHREAD_ATFORK,
+ first called before FORK), and the PARENT and CHILD handlers are called
+ in FIFO (first added, first called). */
+
+extern int pthread_atfork (void (*__prepare) (void),
+ void (*__parent) (void),
+ void (*__child) (void)) __THROW;
+
+
+#ifdef __USE_EXTERN_INLINES
+/* Optimizations. */
+__extern_inline int
+__NTH (pthread_equal (pthread_t __thread1, pthread_t __thread2))
+{
+ return __thread1 == __thread2;
+}
+#endif
+
+__END_DECLS
+
+#endif /* pthread.h */
+
+#ifndef _PTHREAD_H_HPPA_
+#define _PTHREAD_H_HPPA_ 1
+
+/* The pthread_cond_t initializer is compatible only with NPTL. We do not
+ want to be forwards compatible, we eventually want to drop the code
+ that has to clear the old LT initializer. */
+#undef PTHREAD_COND_INITIALIZER
+#define PTHREAD_COND_INITIALIZER { { 0, 0, 0, (void *) 0, 0, 0, 0, 0, 0 } }
+
+/* The pthread_mutex_t and pthread_rwlock_t initializers are compatible
+ only with NPTL. NPTL assumes pthread_rwlock_t is all zero. */
+#undef PTHREAD_MUTEX_INITIALIZER
+#undef PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP
+#undef PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP
+#undef PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP
+/* Mutex initializers. */
+#define PTHREAD_MUTEX_INITIALIZER \
+ { { 0, 0, 0, 0, { 0, 0, 0, 0 }, 0, { 0 }, 0, 0 } }
+#ifdef __USE_GNU
+# define PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP \
+ { { 0, 0, 0, PTHREAD_MUTEX_RECURSIVE_NP, { 0, 0, 0, 0 }, 0, { 0 }, 0, 0 } }
+# define PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP \
+ { { 0, 0, 0, PTHREAD_MUTEX_ERRORCHECK_NP, { 0, 0, 0, 0 }, 0, { 0 }, 0, 0 } }
+# define PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP \
+ { { 0, 0, 0, PTHREAD_MUTEX_ADAPTIVE_NP, { 0, 0, 0, 0 }, 0, { 0 }, 0, 0 } }
+#endif
+
+#undef PTHREAD_RWLOCK_INITIALIZER
+#undef PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP
+/* Read-write lock initializers. */
+#define PTHREAD_RWLOCK_INITIALIZER \
+ { { { 0, 0, 0, 0 }, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+#ifdef __USE_GNU
+# define PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP \
+ { { { 0, 0, 0, 0 }, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP,\
+ 0, 0, 0 } }
+#endif /* Unix98 or XOpen2K */
+
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/pthreadP.h b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/pthreadP.h
new file mode 100644
index 0000000000..744b5b090b
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/pthreadP.h
@@ -0,0 +1,16 @@
+#include_next <pthreadP.h>
+#ifndef _PTHREADP_H_HPPA_
+#define _PTHREADP_H_HPPA_ 1
+
+/* Internal cond functions. */
+extern int __pthread_cond_broadcast_internal (pthread_cond_t *cond);
+extern int __pthread_cond_destroy_internal (pthread_cond_t *cond);
+extern int __pthread_cond_init_internal (pthread_cond_t *cond,
+ const pthread_condattr_t *cond_attr);
+extern int __pthread_cond_signal_internal (pthread_cond_t *cond);
+extern int __pthread_cond_timedwait_internal (pthread_cond_t *cond,
+ pthread_mutex_t *mutex,
+ const struct timespec *abstime);
+extern int __pthread_cond_wait_internal (pthread_cond_t *cond,
+ pthread_mutex_t *mutex);
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/pthread_cond_broadcast.c b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/pthread_cond_broadcast.c
new file mode 100644
index 0000000000..a6f9f5d433
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/pthread_cond_broadcast.c
@@ -0,0 +1,40 @@
+/* Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Carlos O'Donell <carlos@codesourcery.com>, 2009.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef INCLUDED_SELF
+# define INCLUDED_SELF
+# include <pthread_cond_broadcast.c>
+#else
+# include <pthread.h>
+# include <pthreadP.h>
+# include <internaltypes.h>
+# include <shlib-compat.h>
+int
+__pthread_cond_broadcast (pthread_cond_t *cond)
+{
+ cond_compat_check_and_clear (cond);
+ return __pthread_cond_broadcast_internal (cond);
+}
+versioned_symbol (libpthread, __pthread_cond_broadcast, pthread_cond_broadcast,
+ GLIBC_2_3_2);
+# undef versioned_symbol
+# define versioned_symbol(lib, local, symbol, version)
+# undef __pthread_cond_broadcast
+# define __pthread_cond_broadcast __pthread_cond_broadcast_internal
+# include_next <pthread_cond_broadcast.c>
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/pthread_cond_destroy.c b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/pthread_cond_destroy.c
new file mode 100644
index 0000000000..49af087bb4
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/pthread_cond_destroy.c
@@ -0,0 +1,40 @@
+/* Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Carlos O'Donell <carlos@codesourcery.com>, 2009.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef INCLUDED_SELF
+# define INCLUDED_SELF
+# include <pthread_cond_destroy.c>
+#else
+# include <pthread.h>
+# include <pthreadP.h>
+# include <internaltypes.h>
+# include <shlib-compat.h>
+int
+__pthread_cond_destroy (pthread_cond_t *cond)
+{
+ cond_compat_check_and_clear (cond);
+ return __pthread_cond_destroy_internal (cond);
+}
+versioned_symbol (libpthread, __pthread_cond_destroy, pthread_cond_destroy,
+ GLIBC_2_3_2);
+# undef versioned_symbol
+# define versioned_symbol(lib, local, symbol, version)
+# undef __pthread_cond_destroy
+# define __pthread_cond_destroy __pthread_cond_destroy_internal
+# include_next <pthread_cond_destroy.c>
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/pthread_cond_init.c b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/pthread_cond_init.c
new file mode 100644
index 0000000000..ccb3de07ff
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/pthread_cond_init.c
@@ -0,0 +1,40 @@
+/* Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Carlos O'Donell <carlos@codesourcery.com>, 2009.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef INCLUDED_SELF
+# define INCLUDED_SELF
+# include <pthread_cond_init.c>
+#else
+# include <pthread.h>
+# include <pthreadP.h>
+# include <internaltypes.h>
+# include <shlib-compat.h>
+int
+__pthread_cond_init (pthread_cond_t *cond, const pthread_condattr_t *cond_attr)
+{
+ cond_compat_clear (cond);
+ return __pthread_cond_init_internal (cond, cond_attr);
+}
+versioned_symbol (libpthread, __pthread_cond_init, pthread_cond_init,
+ GLIBC_2_3_2);
+# undef versioned_symbol
+# define versioned_symbol(lib, local, symbol, version)
+# undef __pthread_cond_init
+# define __pthread_cond_init __pthread_cond_init_internal
+# include_next <pthread_cond_init.c>
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/pthread_cond_signal.c b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/pthread_cond_signal.c
new file mode 100644
index 0000000000..2bf32af933
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/pthread_cond_signal.c
@@ -0,0 +1,40 @@
+/* Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Carlos O'Donell <carlos@codesourcery.com>, 2009.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef INCLUDED_SELF
+# define INCLUDED_SELF
+# include <pthread_cond_signal.c>
+#else
+# include <pthread.h>
+# include <pthreadP.h>
+# include <internaltypes.h>
+# include <shlib-compat.h>
+int
+__pthread_cond_signal (pthread_cond_t *cond)
+{
+ cond_compat_check_and_clear (cond);
+ return __pthread_cond_signal_internal (cond);
+}
+versioned_symbol (libpthread, __pthread_cond_signal, pthread_cond_signal,
+ GLIBC_2_3_2);
+# undef versioned_symbol
+# define versioned_symbol(lib, local, symbol, version)
+# undef __pthread_cond_signal
+# define __pthread_cond_signal __pthread_cond_signal_internal
+# include_next <pthread_cond_signal.c>
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/pthread_cond_wait.c b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/pthread_cond_wait.c
new file mode 100644
index 0000000000..1cc2fc15d4
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/pthread_cond_wait.c
@@ -0,0 +1,53 @@
+/* Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Carlos O'Donell <carlos@codesourcery.com>, 2009.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef INCLUDED_SELF
+# define INCLUDED_SELF
+# include <pthread_cond_wait.c>
+#else
+# include <pthread.h>
+# include <pthreadP.h>
+# include <internaltypes.h>
+# include <shlib-compat.h>
+int
+__pthread_cond_wait (pthread_cond_t *cond, pthread_mutex_t *mutex)
+{
+ cond_compat_check_and_clear (cond);
+ return __pthread_cond_wait_internal (cond, mutex);
+}
+versioned_symbol (libpthread, __pthread_cond_wait, pthread_cond_wait,
+ GLIBC_2_3_2);
+int
+__pthread_cond_timedwait (cond, mutex, abstime)
+ pthread_cond_t *cond;
+ pthread_mutex_t *mutex;
+ const struct timespec *abstime;
+{
+ cond_compat_check_and_clear (cond);
+ return __pthread_cond_timedwait_internal (cond, mutex, abstime);
+}
+versioned_symbol (libpthread, __pthread_cond_timedwait, pthread_cond_timedwait,
+ GLIBC_2_3_2);
+# undef versioned_symbol
+# define versioned_symbol(lib, local, symbol, version)
+# undef __pthread_cond_wait
+# define __pthread_cond_wait __pthread_cond_wait_internal
+# undef __pthread_cond_timedwait
+# define __pthread_cond_timedwait __pthread_cond_timedwait_internal
+# include_next <pthread_cond_wait.c>
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/setcontext.S b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/setcontext.S
new file mode 100644
index 0000000000..3f4da7938f
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/setcontext.S
@@ -0,0 +1,158 @@
+/* Install given context.
+ Copyright (C) 2008-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Helge Deller <deller@gmx.de>, 2008.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#include <libc-symbols.h>
+
+#include "ucontext_i.h"
+
+
+ENTRY(__setcontext)
+ /* Prologue */
+ stwm %r3, 64(%sp)
+#ifdef PIC
+ stw %r19, -32(%sp)
+#endif
+
+ /* Save ucp. */
+ copy %r26, %r3
+
+.Lagain:
+ /* Set the current signal mask. */
+ /* sigprocmask(SIG_BLOCK, &ucp->uc_sigmask, NULL); */
+ copy %r0, %r24
+ ldo oSIGMASK(%r3), %r25
+ bl sigprocmask, %r2
+ ldi SIG_SETMASK, %r26
+
+ comib,<>,n 0,%ret0,.Lerror
+
+ /* Save %sp, %dp. */
+ copy %sp, %r4
+ copy %dp, %r5
+ copy %r19, %r6
+
+ /* Get the registers. */
+ ldw oR1(%r3), %r1
+ ldw oR2(%r3), %r2
+ /* ldw oR3(%r3), %r3 - used for ucp pointer. */
+ /* ldw oR4(%r3), %r4 - used for original %sp. */
+ /* ldw oR5(%r3), %r5 - used for %dp / %r27. */
+ /* ldw oR6(%r3), %r6 - used for %r19. */
+ ldw oR7(%r3), %r7
+ ldw oR8(%r3), %r8
+ ldw oR9(%r3), %r9
+ ldw oR10(%r3), %r10
+ ldw oR11(%r3), %r11
+ ldw oR12(%r3), %r12
+ ldw oR13(%r3), %r13
+ ldw oR14(%r3), %r14
+ ldw oR15(%r3), %r15
+ ldw oR16(%r3), %r16
+ ldw oR17(%r3), %r17
+ ldw oR18(%r3), %r18
+ ldw oR19(%r3), %r19
+ ldw oR20(%r3), %r20
+ ldw oR21(%r3), %r21
+ /* ldw oR22(%r3), %r22 - dyncall arg. */
+ ldw oR23(%r3), %r23
+ ldw oR24(%r3), %r24
+ ldw oR25(%r3), %r25
+ ldw oR26(%r3), %r26
+ ldw oR27(%r3), %r27
+ ldw oR28(%r3), %r28
+ ldw oR29(%r3), %r29
+ ldw oR30(%r3), %sp
+ /* ldw oR31(%r3), %r31 - dyncall scratch register */
+
+ /* Restore floating-point registers. */
+ ldo oFPREGS31(%r3), %r22
+ fldds 0(%r22), %fr31
+ fldds,mb -8(%r22), %fr30
+ fldds,mb -8(%r22), %fr29
+ fldds,mb -8(%r22), %fr28
+ fldds,mb -8(%r22), %fr27
+ fldds,mb -8(%r22), %fr26
+ fldds,mb -8(%r22), %fr25
+ fldds,mb -8(%r22), %fr24
+ fldds,mb -8(%r22), %fr23
+ fldds,mb -8(%r22), %fr22
+ fldds,mb -8(%r22), %fr21
+ fldds,mb -8(%r22), %fr20
+ fldds,mb -8(%r22), %fr19
+ fldds,mb -8(%r22), %fr18
+ fldds,mb -8(%r22), %fr17
+ fldds,mb -8(%r22), %fr16
+ fldds,mb -8(%r22), %fr15
+ fldds,mb -8(%r22), %fr14
+ fldds,mb -8(%r22), %fr13
+ fldds,mb -8(%r22), %fr12
+ fldds,mb -8(%r22), %fr11
+ fldds,mb -8(%r22), %fr10
+ fldds,mb -8(%r22), %fr9
+ fldds,mb -8(%r22), %fr8
+ fldds,mb -8(%r22), %fr7
+ fldds,mb -8(%r22), %fr6
+ fldds,mb -8(%r22), %fr5
+ fldds,mb -8(%r22), %fr4
+ fldds,mb -8(%r22), %fr3
+ fldds,mb -8(%r22), %fr2
+ fldds,mb -8(%r22), %fr1
+ fldds,mb -8(%r22), %fr0
+
+ /* Do not load oSS_SP into %sp. The value of oSS_SP indicates
+ the start of the user allocated stack, but not the sp that
+ should be used by the new context. In fact makecontext
+ will create a frame, and adjust sp as required. We do not
+ support calling getcontext and modifying ss_sp without
+ a call to makecontext to synchronize ss_sp into the machine
+ context. */
+
+ /* Call external function. */
+ copy %r2, %r22
+ bl $$dyncall, %r31
+ copy %r31, %r2
+
+ /* We return here. Get new ucp in %r3, reload %sp. */
+ ldw oUC_LINK(%r3), %r3
+ copy %r4, %sp
+ copy %r5, %dp
+ copy %r6, %r19
+
+ /* Continue until ucp == NULL. */
+ comib,<> 0,%r3,.Lagain
+ nop
+
+ /* No further context available. Exit now. */
+ bl HIDDEN_JUMPTARGET(exit), %r2
+ ldi -1, %r26
+
+
+.Lerror:
+ /* Epilogue */
+ ldw -84(%r30), %r2
+#ifdef PIC
+ ldw -96(%r30), %r19
+#endif
+ bv %r0(%r2)
+ ldwm -64(%r30), %r3
+L(pseudo_end):
+PSEUDO_END(__setcontext)
+
+weak_alias(__setcontext, setcontext)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/shlib-versions b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/shlib-versions
new file mode 100644
index 0000000000..3a2d496220
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/shlib-versions
@@ -0,0 +1,9 @@
+libm=6 GLIBC_2.2
+
+libc=6 GLIBC_2.2
+
+ld=ld.so.1 GLIBC_2.2
+
+libBrokenLocale=1 GLIBC_2.2
+
+libpthread=0 GLIBC_2.2
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/swapcontext.c b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/swapcontext.c
new file mode 100644
index 0000000000..c341f2d3a5
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/swapcontext.c
@@ -0,0 +1,42 @@
+/* Swap to new context.
+ Copyright (C) 2008-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Helge Deller <deller@gmx.de>, 2008.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <ucontext.h>
+
+extern int __getcontext (ucontext_t *ucp);
+extern int __setcontext (const ucontext_t *ucp);
+
+int
+__swapcontext (ucontext_t *oucp, const ucontext_t *ucp)
+{
+ /* Save the current machine context to oucp. */
+ __getcontext (oucp);
+
+ /* mark sc_sar flag to skip the setcontext call on reactivation. */
+ if (oucp->uc_mcontext.sc_sar == 0) {
+ oucp->uc_mcontext.sc_sar++;
+
+ /* Restore the machine context in ucp. */
+ __setcontext (ucp);
+ }
+
+ return 0;
+}
+
+weak_alias (__swapcontext, swapcontext)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/sys/procfs.h b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/sys/procfs.h
new file mode 100644
index 0000000000..f0d53c4bc6
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/sys/procfs.h
@@ -0,0 +1,118 @@
+/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_PROCFS_H
+#define _SYS_PROCFS_H 1
+
+/* This is somewhat modelled after the file of the same name on SVR4
+ systems. It provides a definition of the core file format for ELF
+ used on Linux. It doesn't have anything to do with the /proc file
+ system, even though Linux has one.
+
+ Anyway, the whole purpose of this file is for GDB and GDB only.
+ Don't read too much into it. Don't use it for anything other than
+ GDB unless you know what you are doing. */
+
+#include <features.h>
+#include <sys/time.h>
+#include <sys/types.h>
+#include <sys/user.h>
+
+__BEGIN_DECLS
+
+typedef unsigned long elf_greg_t;
+#define ELF_NGREG 80 /* We only need 64 at present, but leave space
+ for expansion. */
+typedef elf_greg_t elf_gregset_t[ELF_NGREG];
+
+#define ELF_NFPREG 32
+typedef double elf_fpreg_t;
+typedef elf_fpreg_t elf_fpregset_t[ELF_NFPREG];
+
+struct elf_siginfo
+ {
+ int si_signo; /* Signal number. */
+ int si_code; /* Extra code. */
+ int si_errno; /* Errno. */
+ };
+
+/* Definitions to generate Intel SVR4-like core files. These mostly
+ have the same names as the SVR4 types with "elf_" tacked on the
+ front to prevent clashes with Linux definitions, and the typedef
+ forms have been avoided. This is mostly like the SVR4 structure,
+ but more Linuxy, with things that Linux does not support and which
+ GDB doesn't really use excluded. */
+
+struct elf_prstatus
+ {
+ struct elf_siginfo pr_info; /* Info associated with signal. */
+ short int pr_cursig; /* Current signal. */
+ unsigned long int pr_sigpend; /* Set of pending signals. */
+ unsigned long int pr_sighold; /* Set of held signals. */
+ __pid_t pr_pid;
+ __pid_t pr_ppid;
+ __pid_t pr_pgrp;
+ __pid_t pr_sid;
+ struct timeval pr_utime; /* User time. */
+ struct timeval pr_stime; /* System time. */
+ struct timeval pr_cutime; /* Cumulative user time. */
+ struct timeval pr_cstime; /* Cumulative system time. */
+ elf_gregset_t pr_reg; /* GP registers. */
+ int pr_fpvalid; /* True if math copro being used. */
+ };
+
+
+#define ELF_PRARGSZ (80) /* Number of chars for args. */
+
+struct elf_prpsinfo
+ {
+ char pr_state; /* Numeric process state. */
+ char pr_sname; /* Char for pr_state. */
+ char pr_zomb; /* Zombie. */
+ char pr_nice; /* Nice val. */
+ unsigned long int pr_flag; /* Flags. */
+ unsigned int pr_uid;
+ unsigned int pr_gid;
+ int pr_pid, pr_ppid, pr_pgrp, pr_sid;
+ /* Lots missing */
+ char pr_fname[16]; /* Filename of executable. */
+ char pr_psargs[ELF_PRARGSZ]; /* Initial part of arg list. */
+ };
+
+
+/* The rest of this file provides the types for emulation of the
+ Solaris <proc_service.h> interfaces that should be implemented by
+ users of libthread_db. */
+
+/* Addresses. */
+typedef void *psaddr_t;
+
+/* Register sets. Linux has different names. */
+typedef elf_gregset_t prgregset_t;
+typedef elf_fpregset_t prfpregset_t;
+
+/* We don't have any differences between processes and threads,
+ therefore have only one PID type. */
+typedef __pid_t lwpid_t;
+
+/* Process status and info. In the end we do provide typedefs for them. */
+typedef struct elf_prstatus prstatus_t;
+typedef struct elf_prpsinfo prpsinfo_t;
+
+__END_DECLS
+
+#endif /* sys/procfs.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/sys/ucontext.h b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/sys/ucontext.h
new file mode 100644
index 0000000000..982b4c44c2
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/sys/ucontext.h
@@ -0,0 +1,67 @@
+/* Copyright (C) 1997-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+/* Don't rely on this, the interface is currently messed up and may need to
+ be broken to be fixed. */
+#ifndef _SYS_UCONTEXT_H
+#define _SYS_UCONTEXT_H 1
+
+#include <features.h>
+
+#include <bits/types/sigset_t.h>
+#include <bits/sigcontext.h>
+#include <bits/types/stack_t.h>
+
+
+#ifdef __USE_MISC
+/* Type for general register. */
+typedef unsigned long int greg_t;
+
+/* Number of general registers. */
+# define NGREG 80
+# define NFPREG 32
+
+/* Container for all general registers. */
+typedef struct gregset
+ {
+ greg_t g_regs[32];
+ greg_t sr_regs[8];
+ greg_t cr_regs[24];
+ greg_t g_pad[16];
+ } gregset_t;
+
+/* Container for all FPU registers. */
+typedef struct fpregset
+ {
+ double fp_dregs[32];
+ } fpregset_t;
+#endif
+
+/* Context to describe whole processor state. */
+typedef struct sigcontext mcontext_t;
+
+/* Userlevel context. */
+typedef struct ucontext
+ {
+ unsigned long int uc_flags;
+ struct ucontext *uc_link;
+ stack_t uc_stack;
+ mcontext_t uc_mcontext;
+ sigset_t uc_sigmask;
+ } ucontext_t;
+
+#endif /* sys/ucontext.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/sys/user.h b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/sys/user.h
new file mode 100644
index 0000000000..c871f1a03d
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/sys/user.h
@@ -0,0 +1 @@
+/* This file is not needed, but in practice gdb might try to include it. */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/syscall.c b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/syscall.c
new file mode 100644
index 0000000000..da38c1147a
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/syscall.c
@@ -0,0 +1,65 @@
+/* Copyright (C) 1997-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <stdarg.h>
+#include <sysdep.h>
+#include <errno.h>
+
+/* HPPA implements syscall() in 'C'; the assembler version would
+ typically be in syscall.S. Also note that we have INLINE_SYSCALL,
+ INTERNAL_SYSCALL, and all the generated pure assembly syscall wrappers.
+ How often the function is used is unknown. */
+
+long int
+syscall (long int __sysno, ...)
+{
+ /* FIXME: Keep this matching INLINE_SYSCALL for hppa */
+ va_list args;
+ long int arg0, arg1, arg2, arg3, arg4, arg5;
+ long int __sys_res;
+
+ /* Load varargs */
+ va_start (args, __sysno);
+ arg0 = va_arg (args, long int);
+ arg1 = va_arg (args, long int);
+ arg2 = va_arg (args, long int);
+ arg3 = va_arg (args, long int);
+ arg4 = va_arg (args, long int);
+ arg5 = va_arg (args, long int);
+ va_end (args);
+
+ {
+ LOAD_ARGS_6 (arg0, arg1, arg2, arg3, arg4, arg5)
+ register unsigned long int __res asm("r28");
+ PIC_REG_DEF
+ LOAD_REGS_6
+ asm volatile (SAVE_ASM_PIC
+ " ble 0x100(%%sr2, %%r0) \n"
+ " copy %1, %%r20 \n"
+ LOAD_ASM_PIC
+ : "=r" (__res)
+ : "r" (__sysno) PIC_REG_USE ASM_ARGS_6
+ : "memory", CALL_CLOB_REGS CLOB_ARGS_6);
+ __sys_res = __res;
+ }
+ if ((unsigned long int) __sys_res >= (unsigned long int) -4095)
+ {
+ __set_errno (-__sys_res);
+ __sys_res = -1;
+ }
+ return __sys_res;
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/syscalls.list b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/syscalls.list
new file mode 100644
index 0000000000..cd37573b89
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/syscalls.list
@@ -0,0 +1,16 @@
+# File name Caller Syscall name # args Strong name Weak names
+
+# proper socket implementations:
+bind - bind i:ipi __bind bind
+getpeername - getpeername i:ipp __getpeername getpeername
+getsockname - getsockname i:ipp __getsockname getsockname
+getsockopt - getsockopt i:iiiBN __getsockopt getsockopt
+listen - listen i:ii __listen listen
+setsockopt - setsockopt i:iiibn __setsockopt setsockopt
+shutdown - shutdown i:ii __shutdown shutdown
+socket - socket i:iii __socket socket
+socketpair - socketpair i:iiif __socketpair socketpair
+
+prlimit64 EXTRA prlimit64 i:iipp __prlimit64 prlimit64@@GLIBC_2.17
+fanotify_mark EXTRA fanotify_mark i:iiiiis __fanotify_mark fanotify_mark@@GLIBC_2.19
+personality EXTRA personality Ei:i __personality personality
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/sysdep-cancel.h b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/sysdep-cancel.h
new file mode 100644
index 0000000000..5ea297267f
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/sysdep-cancel.h
@@ -0,0 +1,279 @@
+/* Copyright (C) 2005-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#include <tls.h>
+#ifndef __ASSEMBLER__
+# include <nptl/pthreadP.h>
+#endif
+
+#if IS_IN (libc) || IS_IN (libpthread) || IS_IN (librt)
+
+# ifndef NO_ERROR
+# define NO_ERROR -0x1000
+# endif
+
+/* The syscall cancellation mechanism requires userspace
+ assistance, the following code does roughly this:
+
+ do arguments (read arg5 and arg6 to registers)
+ setup frame
+
+ check if there are threads, yes jump to pseudo_cancel
+
+ unthreaded:
+ syscall
+ check syscall return (jump to pre_end)
+ set errno
+ set return to -1
+ (jump to pre_end)
+
+ pseudo_cancel:
+ cenable
+ syscall
+ cdisable
+ check syscall return (jump to pre_end)
+ set errno
+ set return to -1
+
+ pre_end
+ restore stack
+
+ It is expected that 'ret' and 'END' macros will
+ append an 'undo arguments' and 'return' to the
+ this PSEUDO macro. */
+
+# undef PSEUDO
+# define PSEUDO(name, syscall_name, args) \
+ ENTRY (__##syscall_name##_nocancel) \
+ DOARGS_##args ASM_LINE_SEP \
+ stwm TREG, 64(%sp) ASM_LINE_SEP \
+ .cfi_offset TREG, 0 ASM_LINE_SEP \
+ .cfi_adjust_cfa_offset 64 ASM_LINE_SEP \
+ stw %sp, -4(%sp) ASM_LINE_SEP \
+ .cfi_offset 30, -4 ASM_LINE_SEP \
+ stw %r19, -32(%sp) ASM_LINE_SEP \
+ .cfi_offset 19, -32 ASM_LINE_SEP \
+ /* Save r19 */ ASM_LINE_SEP \
+ SAVE_PIC(TREG) ASM_LINE_SEP \
+ /* Do syscall, delay loads # */ ASM_LINE_SEP \
+ ble 0x100(%sr2,%r0) ASM_LINE_SEP \
+ ldi SYS_ify (syscall_name), %r20 /* delay */ ASM_LINE_SEP \
+ ldi NO_ERROR,%r1 ASM_LINE_SEP \
+ cmpb,>>=,n %r1,%ret0,L(pre_nc_end) ASM_LINE_SEP \
+ /* Restore r19 from TREG */ ASM_LINE_SEP \
+ LOAD_PIC(TREG) /* delay */ ASM_LINE_SEP \
+ SYSCALL_ERROR_HANDLER ASM_LINE_SEP \
+ /* Use TREG for temp storage */ ASM_LINE_SEP \
+ copy %ret0, TREG /* delay */ ASM_LINE_SEP \
+ /* OPTIMIZE: Don't reload r19 */ ASM_LINE_SEP \
+ /* do a -1*syscall_ret0 */ ASM_LINE_SEP \
+ sub %r0, TREG, TREG ASM_LINE_SEP \
+ /* Store into errno location */ ASM_LINE_SEP \
+ stw TREG, 0(%sr0,%ret0) ASM_LINE_SEP \
+ /* return -1 as error */ ASM_LINE_SEP \
+ ldi -1, %ret0 ASM_LINE_SEP \
+L(pre_nc_end): ASM_LINE_SEP \
+ /* No need to LOAD_PIC */ ASM_LINE_SEP \
+ /* Undo frame */ ASM_LINE_SEP \
+ ldwm -64(%sp),TREG ASM_LINE_SEP \
+ .cfi_adjust_cfa_offset -64 ASM_LINE_SEP \
+ /* Restore rp before exit */ ASM_LINE_SEP \
+ ldw -20(%sp), %rp ASM_LINE_SEP \
+ .cfi_restore 2 ASM_LINE_SEP \
+ ret ASM_LINE_SEP \
+ END(__##syscall_name##_nocancel) ASM_LINE_SEP \
+ /**********************************************/ASM_LINE_SEP \
+ ENTRY (name) \
+ DOARGS_##args ASM_LINE_SEP \
+ stwm TREG, 64(%sp) ASM_LINE_SEP \
+ .cfi_adjust_cfa_offset 64 ASM_LINE_SEP \
+ stw %sp, -4(%sp) ASM_LINE_SEP \
+ .cfi_offset 30, -4 ASM_LINE_SEP \
+ stw %r19, -32(%sp) ASM_LINE_SEP \
+ .cfi_offset 19, -32 ASM_LINE_SEP \
+ /* Done setting up frame, continue... */ ASM_LINE_SEP \
+ SINGLE_THREAD_P ASM_LINE_SEP \
+ cmpib,<>,n 0,%ret0,L(pseudo_cancel) ASM_LINE_SEP \
+L(unthreaded): ASM_LINE_SEP \
+ /* Save r19 */ ASM_LINE_SEP \
+ SAVE_PIC(TREG) ASM_LINE_SEP \
+ /* Do syscall, delay loads # */ ASM_LINE_SEP \
+ ble 0x100(%sr2,%r0) ASM_LINE_SEP \
+ ldi SYS_ify (syscall_name), %r20 /* delay */ ASM_LINE_SEP \
+ ldi NO_ERROR,%r1 ASM_LINE_SEP \
+ cmpb,>>=,n %r1,%ret0,L(pre_end) ASM_LINE_SEP \
+ /* Restore r19 from TREG */ ASM_LINE_SEP \
+ LOAD_PIC(TREG) /* delay */ ASM_LINE_SEP \
+ SYSCALL_ERROR_HANDLER ASM_LINE_SEP \
+ /* Use TREG for temp storage */ ASM_LINE_SEP \
+ copy %ret0, TREG /* delay */ ASM_LINE_SEP \
+ /* OPTIMIZE: Don't reload r19 */ ASM_LINE_SEP \
+ /* do a -1*syscall_ret0 */ ASM_LINE_SEP \
+ sub %r0, TREG, TREG ASM_LINE_SEP \
+ /* Store into errno location */ ASM_LINE_SEP \
+ stw TREG, 0(%sr0,%ret0) ASM_LINE_SEP \
+ b L(pre_end) ASM_LINE_SEP \
+ /* return -1 as error */ ASM_LINE_SEP \
+ ldi -1, %ret0 /* delay */ ASM_LINE_SEP \
+L(pseudo_cancel): ASM_LINE_SEP \
+ PUSHARGS_##args /* Save args */ ASM_LINE_SEP \
+ /* Save r19 into TREG */ ASM_LINE_SEP \
+ CENABLE /* FUNC CALL */ ASM_LINE_SEP \
+ SAVE_PIC(TREG) /* delay */ ASM_LINE_SEP \
+ /* restore syscall args */ ASM_LINE_SEP \
+ POPARGS_##args ASM_LINE_SEP \
+ /* save mask from cenable (use stub rp slot) */ ASM_LINE_SEP \
+ stw %ret0, -24(%sp) ASM_LINE_SEP \
+ /* ... SYSCALL ... */ ASM_LINE_SEP \
+ ble 0x100(%sr2,%r0) ASM_LINE_SEP \
+ ldi SYS_ify (syscall_name), %r20 /* delay */ ASM_LINE_SEP \
+ /* ............... */ ASM_LINE_SEP \
+ LOAD_PIC(TREG) ASM_LINE_SEP \
+ /* pass mask as arg0 to cdisable */ ASM_LINE_SEP \
+ ldw -24(%sp), %r26 ASM_LINE_SEP \
+ CDISABLE ASM_LINE_SEP \
+ stw %ret0, -24(%sp) /* delay */ ASM_LINE_SEP \
+ /* Restore syscall return */ ASM_LINE_SEP \
+ ldw -24(%sp), %ret0 ASM_LINE_SEP \
+ /* compare error */ ASM_LINE_SEP \
+ ldi NO_ERROR,%r1 ASM_LINE_SEP \
+ /* branch if no error */ ASM_LINE_SEP \
+ cmpb,>>=,n %r1,%ret0,L(pre_end) ASM_LINE_SEP \
+ LOAD_PIC(TREG) /* cond. nullify */ ASM_LINE_SEP \
+ copy %ret0, TREG /* save syscall return */ ASM_LINE_SEP \
+ SYSCALL_ERROR_HANDLER ASM_LINE_SEP \
+ /* make syscall res value positive */ ASM_LINE_SEP \
+ sub %r0, TREG, TREG /* delay */ ASM_LINE_SEP \
+ /* No need to LOAD_PIC */ ASM_LINE_SEP \
+ /* store into errno location */ ASM_LINE_SEP \
+ stw TREG, 0(%sr0,%ret0) ASM_LINE_SEP \
+ /* return -1 */ ASM_LINE_SEP \
+ ldi -1, %ret0 ASM_LINE_SEP \
+L(pre_end): ASM_LINE_SEP \
+ /* No need to LOAD_PIC */ ASM_LINE_SEP \
+ /* Undo frame */ ASM_LINE_SEP \
+ ldwm -64(%sp),TREG ASM_LINE_SEP \
+ .cfi_adjust_cfa_offset -64 ASM_LINE_SEP \
+ /* Restore rp before exit */ ASM_LINE_SEP \
+ ldw -20(%sp), %rp ASM_LINE_SEP \
+ .cfi_restore 2 ASM_LINE_SEP
+
+/* Save arguments into our frame */
+# define PUSHARGS_0 /* nothing to do */
+# define PUSHARGS_1 PUSHARGS_0 stw %r26, -36(%sr0,%sp) ASM_LINE_SEP \
+ .cfi_offset 26, -36 ASM_LINE_SEP
+# define PUSHARGS_2 PUSHARGS_1 stw %r25, -40(%sr0,%sp) ASM_LINE_SEP \
+ .cfi_offset 25, -40 ASM_LINE_SEP
+# define PUSHARGS_3 PUSHARGS_2 stw %r24, -44(%sr0,%sp) ASM_LINE_SEP \
+ .cfi_offset 24, -44 ASM_LINE_SEP
+# define PUSHARGS_4 PUSHARGS_3 stw %r23, -48(%sr0,%sp) ASM_LINE_SEP \
+ .cfi_offset 23, -48 ASM_LINE_SEP
+# define PUSHARGS_5 PUSHARGS_4 stw %r22, -52(%sr0,%sp) ASM_LINE_SEP \
+ .cfi_offset 22, -52 ASM_LINE_SEP
+# define PUSHARGS_6 PUSHARGS_5 stw %r21, -56(%sr0,%sp) ASM_LINE_SEP \
+ .cfi_offset 21, -56 ASM_LINE_SEP
+
+/* Bring them back from the stack */
+# define POPARGS_0 /* nothing to do */
+# define POPARGS_1 POPARGS_0 ldw -36(%sr0,%sp), %r26 ASM_LINE_SEP \
+ .cfi_restore 26 ASM_LINE_SEP
+# define POPARGS_2 POPARGS_1 ldw -40(%sr0,%sp), %r25 ASM_LINE_SEP \
+ .cfi_restore 25 ASM_LINE_SEP
+# define POPARGS_3 POPARGS_2 ldw -44(%sr0,%sp), %r24 ASM_LINE_SEP \
+ .cfi_restore 24 ASM_LINE_SEP
+# define POPARGS_4 POPARGS_3 ldw -48(%sr0,%sp), %r23 ASM_LINE_SEP \
+ .cfi_restore 23 ASM_LINE_SEP
+# define POPARGS_5 POPARGS_4 ldw -52(%sr0,%sp), %r22 ASM_LINE_SEP \
+ .cfi_restore 22 ASM_LINE_SEP
+# define POPARGS_6 POPARGS_5 ldw -56(%sr0,%sp), %r21 ASM_LINE_SEP \
+ .cfi_restore 21 ASM_LINE_SEP
+
+# if IS_IN (libpthread)
+# ifdef PIC
+# define CENABLE .import __pthread_enable_asynccancel,code ASM_LINE_SEP \
+ bl __pthread_enable_asynccancel,%r2 ASM_LINE_SEP
+# define CDISABLE .import __pthread_disable_asynccancel,code ASM_LINE_SEP \
+ bl __pthread_disable_asynccancel,%r2 ASM_LINE_SEP
+# else
+# define CENABLE .import __pthread_enable_asynccancel,code ASM_LINE_SEP \
+ bl __pthread_enable_asynccancel,%r2 ASM_LINE_SEP
+# define CDISABLE .import __pthread_disable_asynccancel,code ASM_LINE_SEP \
+ bl __pthread_disable_asynccancel,%r2 ASM_LINE_SEP
+# endif
+# elif IS_IN (libc)
+# ifdef PIC
+# define CENABLE .import __libc_enable_asynccancel,code ASM_LINE_SEP \
+ bl __libc_enable_asynccancel,%r2 ASM_LINE_SEP
+# define CDISABLE .import __libc_disable_asynccancel,code ASM_LINE_SEP \
+ bl __libc_disable_asynccancel,%r2 ASM_LINE_SEP
+# else
+# define CENABLE .import __libc_enable_asynccancel,code ASM_LINE_SEP \
+ bl __libc_enable_asynccancel,%r2 ASM_LINE_SEP
+# define CDISABLE .import __libc_disable_asynccancel,code ASM_LINE_SEP \
+ bl __libc_disable_asynccancel,%r2 ASM_LINE_SEP
+# endif
+# elif IS_IN (librt)
+# ifdef PIC
+# define CENABLE .import __librt_enable_asynccancel,code ASM_LINE_SEP \
+ bl __librt_enable_asynccancel,%r2 ASM_LINE_SEP
+# define CDISABLE .import __librt_disable_asynccancel,code ASM_LINE_SEP \
+ bl __librt_disable_asynccancel,%r2 ASM_LINE_SEP
+# else
+# define CENABLE .import __librt_enable_asynccancel,code ASM_LINE_SEP \
+ bl __librt_enable_asynccancel,%r2 ASM_LINE_SEP
+# define CDISABLE .import __librt_disable_asynccancel,code ASM_LINE_SEP \
+ bl __librt_disable_asynccancel,%r2 ASM_LINE_SEP
+# endif
+# else
+# error Unsupported library
+# endif
+
+# if IS_IN (libpthread)
+# define __local_multiple_threads __pthread_multiple_threads
+# elif IS_IN (libc)
+# define __local_multiple_threads __libc_multiple_threads
+# elif IS_IN (librt)
+# define __local_multiple_threads __librt_multiple_threads
+# else
+# error Unsupported library
+# endif
+
+# ifndef __ASSEMBLER__
+# define SINGLE_THREAD_P \
+ __builtin_expect (THREAD_GETMEM (THREAD_SELF, \
+ header.multiple_threads) == 0, 1)
+# else
+/* Read the value of header.multiple_threads from the thread pointer */
+# define SINGLE_THREAD_P \
+ mfctl %cr27, %ret0 ASM_LINE_SEP \
+ ldw MULTIPLE_THREADS_THREAD_OFFSET(%sr0,%ret0),%ret0 ASM_LINE_SEP
+# endif
+#elif !defined __ASSEMBLER__
+
+/* This code should never be used but we define it anyhow. */
+# define SINGLE_THREAD_P (1)
+# define NO_CANCELLATION 1
+
+#endif
+/* IS_IN (libc) || IS_IN (libpthread) || IS_IN (librt) */
+
+#ifndef __ASSEMBLER__
+# define RTLD_SINGLE_THREAD_P \
+ __builtin_expect (THREAD_GETMEM (THREAD_SELF, \
+ header.multiple_threads) == 0, 1)
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/sysdep.c b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/sysdep.c
new file mode 100644
index 0000000000..1e7c19343e
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/sysdep.c
@@ -0,0 +1,29 @@
+/* Copyright (C) 1997-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <stdarg.h>
+#include <sysdep.h>
+#include <errno.h>
+
+/* This routine is jumped to by all the syscall handlers, to stash
+ an error number into errno. */
+int
+__syscall_error (int err_no)
+{
+ __set_errno (err_no);
+ return -1;
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/sysdep.h b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/sysdep.h
new file mode 100644
index 0000000000..d8dd0431a4
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/sysdep.h
@@ -0,0 +1,512 @@
+/* Assembler macros for PA-RISC.
+ Copyright (C) 1999-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper, <drepper@cygnus.com>, August 1999.
+ Linux/PA-RISC changes by Philipp Rumpf, <prumpf@tux.org>, March 2000.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _LINUX_HPPA_SYSDEP_H
+#define _LINUX_HPPA_SYSDEP_H 1
+
+#include <sysdeps/unix/sysdep.h>
+#include <sysdeps/unix/sysv/linux/sysdep.h>
+#include <sysdeps/hppa/sysdep.h>
+
+/* Defines RTLD_PRIVATE_ERRNO. */
+#include <dl-sysdep.h>
+
+/* In order to get __set_errno() definition in INLINE_SYSCALL. */
+#ifndef __ASSEMBLER__
+#include <errno.h>
+#endif
+
+#undef ASM_LINE_SEP
+#define ASM_LINE_SEP !
+
+#undef SYS_ify
+#define SYS_ify(syscall_name) (__NR_##syscall_name)
+
+/* The vfork, fork, and clone syscalls clobber r19
+ * and r21. We list r21 as either clobbered or as an
+ * input to a 6-argument syscall. We must save and
+ * restore r19 in both PIC and non-PIC cases.
+ */
+/* WARNING: TREG must be a callee saves register so
+ that it doesn't have to be restored after a call
+ to another function */
+#define TREG 4
+#define SAVE_PIC(SREG) \
+ copy %r19, SREG ASM_LINE_SEP \
+ .cfi_register 19, SREG
+#define LOAD_PIC(LREG) \
+ copy LREG , %r19 ASM_LINE_SEP \
+ .cfi_restore 19
+/* Inline assembly defines */
+#define TREG_ASM "%r4" /* Cant clobber r3, it holds framemarker */
+#define SAVE_ASM_PIC " copy %%r19, %" TREG_ASM "\n"
+#define LOAD_ASM_PIC " copy %" TREG_ASM ", %%r19\n"
+#define CLOB_TREG TREG_ASM ,
+#define PIC_REG_DEF register unsigned long __r19 asm("r19");
+#define PIC_REG_USE , "r" (__r19)
+
+#ifdef __ASSEMBLER__
+
+/* Syntactic details of assembler. */
+
+#define ALIGNARG(log2) log2
+
+/* For Linux we can use the system call table in the header file
+ /usr/include/asm/unistd.h
+ of the kernel. But these symbols do not follow the SYS_* syntax
+ so we have to redefine the `SYS_ify' macro here. */
+#undef SYS_ify
+#define SYS_ify(syscall_name) __NR_##syscall_name
+
+/* ELF-like local names start with `.L'. */
+#undef L
+#define L(name) .L##name
+
+/* Linux uses a negative return value to indicate syscall errors,
+ unlike most Unices, which use the condition codes' carry flag.
+
+ Since version 2.1 the return value of a system call might be
+ negative even if the call succeeded. E.g., the `lseek' system call
+ might return a large offset. Therefore we must not anymore test
+ for < 0, but test for a real error by making sure the value in %eax
+ is a real error number. Linus said he will make sure the no syscall
+ returns a value in -1 .. -4095 as a valid result so we can safely
+ test with -4095. */
+
+/* We don't want the label for the error handle to be global when we define
+ it here. */
+/*#ifdef PIC
+# define SYSCALL_ERROR_LABEL 0f
+#else
+# define SYSCALL_ERROR_LABEL syscall_error
+#endif*/
+
+/* Argument manipulation from the stack for preparing to
+ make a syscall */
+
+#define DOARGS_0 /* nothing */
+#define DOARGS_1 /* nothing */
+#define DOARGS_2 /* nothing */
+#define DOARGS_3 /* nothing */
+#define DOARGS_4 /* nothing */
+#define DOARGS_5 ldw -52(%sp), %r22 ASM_LINE_SEP
+#define DOARGS_6 DOARGS_5 ldw -56(%sp), %r21 ASM_LINE_SEP
+
+#define UNDOARGS_0 /* nothing */
+#define UNDOARGS_1 /* nothing */
+#define UNDOARGS_2 /* nothing */
+#define UNDOARGS_3 /* nothing */
+#define UNDOARGS_4 /* nothing */
+#define UNDOARGS_5 /* nothing */
+#define UNDOARGS_6 /* nothing */
+
+/* Define an entry point visible from C.
+
+ There is currently a bug in gdb which prevents us from specifying
+ incomplete stabs information. Fake some entries here which specify
+ the current source file. */
+#undef ENTRY
+#define ENTRY(name) \
+ .text ASM_LINE_SEP \
+ .align ALIGNARG(4) ASM_LINE_SEP \
+ .export C_SYMBOL_NAME(name) ASM_LINE_SEP \
+ .type C_SYMBOL_NAME(name),@function ASM_LINE_SEP \
+ cfi_startproc ASM_LINE_SEP \
+ C_LABEL(name) ASM_LINE_SEP \
+ .PROC ASM_LINE_SEP \
+ .CALLINFO FRAME=64,CALLS,SAVE_RP,ENTRY_GR=3 ASM_LINE_SEP \
+ .ENTRY ASM_LINE_SEP \
+ /* SAVE_RP says we do */ ASM_LINE_SEP \
+ stw %rp, -20(%sr0,%sp) ASM_LINE_SEP \
+ .cfi_offset 2, -20 ASM_LINE_SEP \
+ /*FIXME: Call mcount? (carefull with stack!) */
+
+/* Some syscall wrappers do not call other functions, and
+ hence are classified as leaf, so add NO_CALLS for gdb */
+#define ENTRY_LEAF(name) \
+ .text ASM_LINE_SEP \
+ .align ALIGNARG(4) ASM_LINE_SEP \
+ .export C_SYMBOL_NAME(name) ASM_LINE_SEP \
+ .type C_SYMBOL_NAME(name),@function ASM_LINE_SEP \
+ cfi_startproc ASM_LINE_SEP \
+ C_LABEL(name) ASM_LINE_SEP \
+ .PROC ASM_LINE_SEP \
+ .CALLINFO FRAME=64,NO_CALLS,SAVE_RP,ENTRY_GR=3 ASM_LINE_SEP \
+ .ENTRY ASM_LINE_SEP \
+ /* SAVE_RP says we do */ ASM_LINE_SEP \
+ stw %rp, -20(%sr0,%sp) ASM_LINE_SEP \
+ .cfi_offset 2, -20 ASM_LINE_SEP \
+ /*FIXME: Call mcount? (carefull with stack!) */
+
+#undef END
+#define END(name) \
+ .EXIT ASM_LINE_SEP \
+ .PROCEND ASM_LINE_SEP \
+ cfi_endproc ASM_LINE_SEP \
+.size C_SYMBOL_NAME(name), .-C_SYMBOL_NAME(name) ASM_LINE_SEP
+
+/* If compiled for profiling, call `mcount' at the start
+ of each function. No, don't bother. gcc will put the
+ call in for us. */
+#define CALL_MCOUNT /* Do nothing. */
+
+/* syscall wrappers consist of
+ #include <sysdep.h>
+ PSEUDO(...)
+ ret
+ PSEUDO_END(...)
+
+ which means
+ ENTRY(name)
+ DO_CALL(...)
+ bv,n 0(2)
+*/
+
+#undef PSEUDO
+#define PSEUDO(name, syscall_name, args) \
+ ENTRY (name) ASM_LINE_SEP \
+ /* If necc. load args from stack */ ASM_LINE_SEP \
+ DOARGS_##args ASM_LINE_SEP \
+ DO_CALL (syscall_name, args) ASM_LINE_SEP \
+ UNDOARGS_##args ASM_LINE_SEP
+
+#define ret \
+ /* Return value set by ERRNO code */ ASM_LINE_SEP \
+ bv,n 0(2) ASM_LINE_SEP
+
+#undef PSEUDO_END
+#define PSEUDO_END(name) \
+ END (name)
+
+/* We don't set the errno on the return from the syscall */
+#define PSEUDO_NOERRNO(name, syscall_name, args) \
+ ENTRY_LEAF (name) ASM_LINE_SEP \
+ DOARGS_##args ASM_LINE_SEP \
+ DO_CALL_NOERRNO (syscall_name, args) ASM_LINE_SEP \
+ UNDOARGS_##args ASM_LINE_SEP
+
+#define ret_NOERRNO ret
+
+#undef PSEUDO_END_NOERRNO
+#define PSEUDO_END_NOERRNO(name) \
+ END (name)
+
+/* This has to return the error value */
+#undef PSEUDO_ERRVAL
+#define PSEUDO_ERRVAL(name, syscall_name, args) \
+ ENTRY_LEAF (name) ASM_LINE_SEP \
+ DOARGS_##args ASM_LINE_SEP \
+ DO_CALL_ERRVAL (syscall_name, args) ASM_LINE_SEP \
+ UNDOARGS_##args ASM_LINE_SEP
+
+#define ret_ERRVAL ret
+
+#undef PSEUDO_END_ERRVAL
+#define PSEUDO_END_ERRVAL(name) \
+ END(name)
+
+#undef JUMPTARGET
+#define JUMPTARGET(name) name
+#define SYSCALL_PIC_SETUP /* Nothing. */
+
+
+/* FIXME: This comment is not true.
+ * All the syscall assembly macros rely on finding the appropriate
+ SYSCALL_ERROR_LABEL or rather HANDLER. */
+
+/* int * __errno_location(void) so you have to store your value
+ into the return address! */
+#define DEFAULT_SYSCALL_ERROR_HANDLER \
+ .import __errno_location,code ASM_LINE_SEP \
+ /* branch to errno handler */ ASM_LINE_SEP \
+ bl __errno_location,%rp ASM_LINE_SEP
+
+/* Here are the myriad of configuration options that the above can
+ work for... what we've done is provide the framework for future
+ changes if required to each section */
+
+#ifdef PIC
+# if RTLD_PRIVATE_ERRNO
+# define SYSCALL_ERROR_HANDLER DEFAULT_SYSCALL_ERROR_HANDLER
+# else /* !RTLD_PRIVATE_ERRNO */
+# if defined _LIBC_REENTRANT
+# define SYSCALL_ERROR_HANDLER DEFAULT_SYSCALL_ERROR_HANDLER
+# else /* !_LIBC_REENTRANT */
+# define SYSCALL_ERROR_HANDLER DEFAULT_SYSCALL_ERROR_HANDLER
+# endif /* _LIBC_REENTRANT */
+# endif /* RTLD_PRIVATE_ERRNO */
+#else
+# ifndef _LIBC_REENTRANT
+# define SYSCALL_ERROR_HANDLER DEFAULT_SYSCALL_ERROR_HANDLER
+# else
+# define SYSCALL_ERROR_HANDLER DEFAULT_SYSCALL_ERROR_HANDLER
+# endif
+#endif
+
+
+/* Linux takes system call arguments in registers:
+ syscall number gr20
+ arg 1 gr26
+ arg 2 gr25
+ arg 3 gr24
+ arg 4 gr23
+ arg 5 gr22
+ arg 6 gr21
+
+ The compiler calls us by the C convention:
+ syscall number in the DO_CALL macro
+ arg 1 gr26
+ arg 2 gr25
+ arg 3 gr24
+ arg 4 gr23
+ arg 5 -52(sp)
+ arg 6 -56(sp)
+
+ gr22 and gr21 are caller-saves, so we can just load the arguments
+ there and generally be happy. */
+
+/* the cmpb...no_error code below inside DO_CALL
+ * is intended to mimic the if (__sys_res...)
+ * code inside INLINE_SYSCALL
+ */
+#define NO_ERROR -0x1000
+
+#undef DO_CALL
+#define DO_CALL(syscall_name, args) \
+ /* Create a frame */ ASM_LINE_SEP \
+ stwm TREG, 64(%sp) ASM_LINE_SEP \
+ .cfi_offset TREG, 0 ASM_LINE_SEP \
+ .cfi_adjust_cfa_offset 64 ASM_LINE_SEP \
+ stw %sp, -4(%sp) ASM_LINE_SEP \
+ .cfi_offset 30, -4 ASM_LINE_SEP \
+ stw %r19, -32(%sp) ASM_LINE_SEP \
+ .cfi_offset 19, -32 ASM_LINE_SEP \
+ /* Save r19 */ ASM_LINE_SEP \
+ SAVE_PIC(TREG) ASM_LINE_SEP \
+ /* Do syscall, delay loads # */ ASM_LINE_SEP \
+ ble 0x100(%sr2,%r0) ASM_LINE_SEP \
+ ldi SYS_ify (syscall_name), %r20 ASM_LINE_SEP \
+ ldi NO_ERROR,%r1 ASM_LINE_SEP \
+ cmpb,>>=,n %r1,%ret0,L(pre_end) ASM_LINE_SEP \
+ /* Restore r19 from TREG */ ASM_LINE_SEP \
+ LOAD_PIC(TREG) /* delay */ ASM_LINE_SEP \
+ SYSCALL_ERROR_HANDLER ASM_LINE_SEP \
+ /* Use TREG for temp storage */ ASM_LINE_SEP \
+ copy %ret0, TREG /* delay */ ASM_LINE_SEP \
+ /* OPTIMIZE: Don't reload r19 */ ASM_LINE_SEP \
+ /* do a -1*syscall_ret0 */ ASM_LINE_SEP \
+ sub %r0, TREG, TREG ASM_LINE_SEP \
+ /* Store into errno location */ ASM_LINE_SEP \
+ stw TREG, 0(%sr0,%ret0) ASM_LINE_SEP \
+ /* return -1 as error */ ASM_LINE_SEP \
+ ldo -1(%r0), %ret0 ASM_LINE_SEP \
+L(pre_end): ASM_LINE_SEP \
+ /* Restore our frame, restoring TREG */ ASM_LINE_SEP \
+ ldwm -64(%sp), TREG ASM_LINE_SEP \
+ .cfi_adjust_cfa_offset -64 ASM_LINE_SEP \
+ /* Restore return pointer */ ASM_LINE_SEP \
+ ldw -20(%sp),%rp ASM_LINE_SEP \
+ .cfi_restore 2 ASM_LINE_SEP
+
+/* We do nothing with the return, except hand it back to someone else */
+#undef DO_CALL_NOERRNO
+#define DO_CALL_NOERRNO(syscall_name, args) \
+ /* No need to store r19 */ ASM_LINE_SEP \
+ ble 0x100(%sr2,%r0) ASM_LINE_SEP \
+ ldi SYS_ify (syscall_name), %r20 ASM_LINE_SEP \
+ /* Caller will restore r19 */ ASM_LINE_SEP
+
+/* Here, we return the ERRVAL in assembly, note we don't call the
+ error handler function, but we do 'negate' the return _IF_
+ it's an error. Not sure if this is the right semantic. */
+
+#undef DO_CALL_ERRVAL
+#define DO_CALL_ERRVAL(syscall_name, args) \
+ /* No need to store r19 */ ASM_LINE_SEP \
+ ble 0x100(%sr2,%r0) ASM_LINE_SEP \
+ ldi SYS_ify (syscall_name), %r20 ASM_LINE_SEP \
+ /* Caller will restore r19 */ ASM_LINE_SEP \
+ ldi NO_ERROR,%r1 ASM_LINE_SEP \
+ cmpb,>>=,n %r1,%ret0,0f ASM_LINE_SEP \
+ sub %r0, %ret0, %ret0 ASM_LINE_SEP \
+0: ASM_LINE_SEP
+
+
+#else
+
+/* GCC has to be warned that a syscall may clobber all the ABI
+ registers listed as "caller-saves", see page 8, Table 2
+ in section 2.2.6 of the PA-RISC RUN-TIME architecture
+ document. However! r28 is the result and will conflict with
+ the clobber list so it is left out. Also the input arguments
+ registers r20 -> r26 will conflict with the list so they
+ are treated specially. Although r19 is clobbered by the syscall
+ we cannot say this because it would violate ABI, thus we say
+ TREG is clobbered and use that register to save/restore r19
+ across the syscall. */
+
+#define CALL_CLOB_REGS "%r1", "%r2", CLOB_TREG \
+ "%r20", "%r29", "%r31"
+
+#undef INLINE_SYSCALL
+#define INLINE_SYSCALL(name, nr, args...) \
+({ \
+ long __sys_res = INTERNAL_SYSCALL (name, , nr, args); \
+ if (__glibc_unlikely (INTERNAL_SYSCALL_ERROR_P (__sys_res, ))) \
+ { \
+ __set_errno (INTERNAL_SYSCALL_ERRNO (__sys_res, )); \
+ __sys_res = -1; \
+ } \
+ __sys_res; \
+})
+
+/* INTERNAL_SYSCALL_DECL - Allows us to setup some function static
+ value to use within the context of the syscall
+ INTERNAL_SYSCALL_ERROR_P - Returns 0 if it wasn't an error, 1 otherwise
+ You are allowed to use the syscall result (val) and the DECL error
+ variable to determine what went wrong.
+ INTERLAL_SYSCALL_ERRNO - Munges the val/err pair into the error number.
+ In our case we just flip the sign. */
+
+#undef INTERNAL_SYSCALL_DECL
+#define INTERNAL_SYSCALL_DECL(err)
+
+#undef INTERNAL_SYSCALL_ERROR_P
+#define INTERNAL_SYSCALL_ERROR_P(val, err) \
+ ((val < 0) && (val > -4095))
+
+#undef INTERNAL_SYSCALL_ERRNO
+#define INTERNAL_SYSCALL_ERRNO(val, err) (-(val))
+
+/* Similar to INLINE_SYSCALL but we don't set errno */
+#undef INTERNAL_SYSCALL
+#define INTERNAL_SYSCALL(name, err, nr, args...) \
+({ \
+ long __sys_res; \
+ { \
+ LOAD_ARGS_##nr(args) \
+ register unsigned long __res asm("r28"); \
+ PIC_REG_DEF \
+ LOAD_REGS_##nr \
+ /* FIXME: HACK save/load r19 around syscall */ \
+ asm volatile( \
+ SAVE_ASM_PIC \
+ " ble 0x100(%%sr2, %%r0)\n" \
+ " ldi %1, %%r20\n" \
+ LOAD_ASM_PIC \
+ : "=r" (__res) \
+ : "i" (SYS_ify(name)) PIC_REG_USE ASM_ARGS_##nr \
+ : "memory", CALL_CLOB_REGS CLOB_ARGS_##nr \
+ ); \
+ __sys_res = (long)__res; \
+ } \
+ __sys_res; \
+ })
+
+
+/* The _NCS variant allows non-constant syscall numbers. */
+#undef INTERNAL_SYSCALL_NCS
+#define INTERNAL_SYSCALL_NCS(name, err, nr, args...) \
+({ \
+ long __sys_res; \
+ { \
+ LOAD_ARGS_##nr(args) \
+ register unsigned long __res asm("r28"); \
+ PIC_REG_DEF \
+ LOAD_REGS_##nr \
+ /* FIXME: HACK save/load r19 around syscall */ \
+ asm volatile( \
+ SAVE_ASM_PIC \
+ " ble 0x100(%%sr2, %%r0)\n" \
+ " copy %1, %%r20\n" \
+ LOAD_ASM_PIC \
+ : "=r" (__res) \
+ : "r" (name) PIC_REG_USE ASM_ARGS_##nr \
+ : "memory", CALL_CLOB_REGS CLOB_ARGS_##nr \
+ ); \
+ __sys_res = (long)__res; \
+ } \
+ __sys_res; \
+ })
+
+#define LOAD_ARGS_0()
+#define LOAD_REGS_0
+#define LOAD_ARGS_1(a1) \
+ register unsigned long __x26 = (unsigned long)(a1); \
+ LOAD_ARGS_0()
+#define LOAD_REGS_1 \
+ register unsigned long __r26 __asm__("r26") = __x26; \
+ LOAD_REGS_0
+#define LOAD_ARGS_2(a1,a2) \
+ register unsigned long __x25 = (unsigned long)(a2); \
+ LOAD_ARGS_1(a1)
+#define LOAD_REGS_2 \
+ register unsigned long __r25 __asm__("r25") = __x25; \
+ LOAD_REGS_1
+#define LOAD_ARGS_3(a1,a2,a3) \
+ register unsigned long __x24 = (unsigned long)(a3); \
+ LOAD_ARGS_2(a1,a2)
+#define LOAD_REGS_3 \
+ register unsigned long __r24 __asm__("r24") = __x24; \
+ LOAD_REGS_2
+#define LOAD_ARGS_4(a1,a2,a3,a4) \
+ register unsigned long __x23 = (unsigned long)(a4); \
+ LOAD_ARGS_3(a1,a2,a3)
+#define LOAD_REGS_4 \
+ register unsigned long __r23 __asm__("r23") = __x23; \
+ LOAD_REGS_3
+#define LOAD_ARGS_5(a1,a2,a3,a4,a5) \
+ register unsigned long __x22 = (unsigned long)(a5); \
+ LOAD_ARGS_4(a1,a2,a3,a4)
+#define LOAD_REGS_5 \
+ register unsigned long __r22 __asm__("r22") = __x22; \
+ LOAD_REGS_4
+#define LOAD_ARGS_6(a1,a2,a3,a4,a5,a6) \
+ register unsigned long __x21 = (unsigned long)(a6); \
+ LOAD_ARGS_5(a1,a2,a3,a4,a5)
+#define LOAD_REGS_6 \
+ register unsigned long __r21 __asm__("r21") = __x21; \
+ LOAD_REGS_5
+
+/* Even with zero args we use r20 for the syscall number */
+#define ASM_ARGS_0
+#define ASM_ARGS_1 ASM_ARGS_0, "r" (__r26)
+#define ASM_ARGS_2 ASM_ARGS_1, "r" (__r25)
+#define ASM_ARGS_3 ASM_ARGS_2, "r" (__r24)
+#define ASM_ARGS_4 ASM_ARGS_3, "r" (__r23)
+#define ASM_ARGS_5 ASM_ARGS_4, "r" (__r22)
+#define ASM_ARGS_6 ASM_ARGS_5, "r" (__r21)
+
+/* The registers not listed as inputs but clobbered */
+#define CLOB_ARGS_6
+#define CLOB_ARGS_5 CLOB_ARGS_6, "%r21"
+#define CLOB_ARGS_4 CLOB_ARGS_5, "%r22"
+#define CLOB_ARGS_3 CLOB_ARGS_4, "%r23"
+#define CLOB_ARGS_2 CLOB_ARGS_3, "%r24"
+#define CLOB_ARGS_1 CLOB_ARGS_2, "%r25"
+#define CLOB_ARGS_0 CLOB_ARGS_1, "%r26"
+
+#endif /* __ASSEMBLER__ */
+
+/* Pointer mangling is not yet supported for HPPA. */
+#define PTR_MANGLE(var) (void) (var)
+#define PTR_DEMANGLE(var) (void) (var)
+
+#endif /* _LINUX_HPPA_SYSDEP_H */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/ucontext_i.sym b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/ucontext_i.sym
new file mode 100644
index 0000000000..ee33029a07
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/ucontext_i.sym
@@ -0,0 +1,59 @@
+#include <stddef.h>
+#include <signal.h>
+#include <sys/ucontext.h>
+
+--
+
+SIG_BLOCK
+SIG_SETMASK
+
+#define ucontext(member) offsetof (ucontext_t, member)
+#define mcontext(member) ucontext (uc_mcontext.member)
+#define mreg(reg) mcontext (sc_gr[reg])
+
+oUC_FLAGS ucontext (uc_flags)
+oUC_LINK ucontext (uc_link)
+oSS_SP ucontext (uc_stack.ss_sp)
+oSS_FLAGS ucontext (uc_stack.ss_flags)
+oSS_SIZE ucontext (uc_stack.ss_size)
+oSC_FLAGS mcontext (sc_flags)
+oR0 mreg (0)
+oR1 mreg (1)
+oR2 mreg (2)
+oR3 mreg (3)
+oR4 mreg (4)
+oR5 mreg (5)
+oR6 mreg (6)
+oR7 mreg (7)
+oR8 mreg (8)
+oR9 mreg (9)
+oR10 mreg (10)
+oR11 mreg (11)
+oR12 mreg (12)
+oR13 mreg (13)
+oR14 mreg (14)
+oR15 mreg (15)
+oR16 mreg (16)
+oR17 mreg (17)
+oR18 mreg (18)
+oR19 mreg (19)
+oR20 mreg (20)
+oR21 mreg (21)
+oR22 mreg (22)
+oR23 mreg (23)
+oR24 mreg (24)
+oR25 mreg (25)
+oR26 mreg (26)
+oR27 mreg (27)
+oR28 mreg (28)
+oR29 mreg (29)
+oR30 mreg (30)
+oR31 mreg (31)
+oFPREGS0 mcontext (sc_fr[0])
+oFPREGS31 mcontext (sc_fr[31])
+oIASQ0 mcontext (sc_iasq[0])
+oIASQ1 mcontext (sc_iasq[1])
+oIAOQ0 mcontext (sc_iaoq[0])
+oIAOQ1 mcontext (sc_iaoq[1])
+oSAR mcontext (sc_sar)
+oSIGMASK ucontext (uc_sigmask)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/umount.c b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/umount.c
new file mode 100644
index 0000000000..208fbec994
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/umount.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/mips/mips64/umount.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/utimes.c b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/utimes.c
new file mode 100644
index 0000000000..63e0c8c9cb
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/utimes.c
@@ -0,0 +1,30 @@
+/* Implement utimes for hppa.
+ Copyright (C) 2014-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+/* hppa has the utimensat syscall in all supported kernel versions but
+ gained the utimes syscall later, so use the linux-generic
+ implementation of utimes in terms of the utimensat syscall unless
+ the utimes syscall is known to be available. */
+
+#include <kernel-features.h>
+
+#ifdef __ASSUME_UTIMES
+# include <sysdeps/unix/sysv/linux/utimes.c>
+#else
+# include <sysdeps/unix/sysv/linux/generic/utimes.c>
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/hppa/xstat.c b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/xstat.c
new file mode 100644
index 0000000000..e9869f5508
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/hppa/xstat.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/i386/xstat.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/i386/Implies b/REORG.TODO/sysdeps/unix/sysv/linux/i386/Implies
new file mode 100644
index 0000000000..4bf5f8b520
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/i386/Implies
@@ -0,0 +1,2 @@
+unix/sysv/linux/x86
+i386/nptl
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/i386/Makefile b/REORG.TODO/sysdeps/unix/sysv/linux/i386/Makefile
new file mode 100644
index 0000000000..4080b8c966
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/i386/Makefile
@@ -0,0 +1,46 @@
+# The default ABI is 32.
+default-abi := 32
+
+ifeq ($(subdir),misc)
+sysdep_routines += ioperm iopl vm86
+endif
+
+ifeq ($(subdir),elf)
+sysdep-dl-routines += libc-do-syscall
+sysdep-others += lddlibc4
+install-bin += lddlibc4
+endif
+
+ifeq ($(subdir),io)
+sysdep_routines += libc-do-syscall
+endif
+
+ifeq ($(subdir),nptl)
+libpthread-sysdep_routines += libc-do-syscall
+libpthread-shared-only-routines += libc-do-syscall
+endif
+
+ifeq ($(subdir),stdlib)
+gen-as-const-headers += ucontext_i.sym
+endif
+
+ifeq ($(subdir),csu)
+sysdep-dl-routines += sysdep
+ifeq (yes,$(build-shared))
+sysdep_routines += divdi3
+shared-only-routines += divdi3
+CPPFLAGS-divdi3.c = -Din_divdi3_c
+endif
+endif
+
+ifeq ($(subdir),nptl)
+# pull in __syscall_error routine
+libpthread-routines += sysdep
+libpthread-shared-only-routines += sysdep
+endif
+
+ifeq ($(subdir),rt)
+# pull in __syscall_error routine
+librt-routines += sysdep
+librt-shared-only-routines += sysdep
+endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/i386/Versions b/REORG.TODO/sysdeps/unix/sysv/linux/i386/Versions
new file mode 100644
index 0000000000..f3544acb75
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/i386/Versions
@@ -0,0 +1,51 @@
+libc {
+ GLIBC_2.0 {
+ # Exception handling support functions from libgcc
+ __register_frame; __register_frame_table; __deregister_frame;
+ __frame_state_for; __register_frame_info_table;
+
+ ioperm; iopl;
+
+ vm86;
+ }
+ GLIBC_2.1 {
+ modify_ldt;
+ }
+ GLIBC_2.2 {
+ # functions used in other libraries
+ __xstat64; __fxstat64; __lxstat64;
+
+ # a*
+ alphasort64;
+
+ # g*
+ glob64;
+
+ # New rlimit interface
+ getrlimit; setrlimit; getrlimit64;
+
+ # r*
+ readdir64; readdir64_r;
+
+ # s*
+ scandir64;
+
+ # v*
+ versionsort64;
+ }
+ GLIBC_2.3.3 {
+ # p*
+ posix_fadvise64; posix_fallocate64;
+ }
+ GLIBC_2.3.4 {
+ # v*
+ vm86;
+ }
+ GLIBC_2.11 {
+ # f*
+ fallocate64;
+ }
+ GLIBC_PRIVATE {
+ __modify_ldt;
+ }
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/i386/____longjmp_chk.S b/REORG.TODO/sysdeps/unix/sysv/linux/i386/____longjmp_chk.S
new file mode 100644
index 0000000000..d46ea84e30
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/i386/____longjmp_chk.S
@@ -0,0 +1,109 @@
+/* Copyright (C) 2001-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#include <jmpbuf-offsets.h>
+#include <asm-syntax.h>
+#include <stap-probe.h>
+
+
+ .section .rodata.str1.1,"aMS",@progbits,1
+ .type longjmp_msg,@object
+longjmp_msg:
+ .string "longjmp causes uninitialized stack frame"
+ .size longjmp_msg, .-longjmp_msg
+
+
+#ifdef PIC
+# define CALL_FAIL movl %ebx, %ecx; \
+ cfi_register(%ebx,%ecx); \
+ LOAD_PIC_REG (bx); \
+ leal longjmp_msg@GOTOFF(%ebx), %eax; \
+ call HIDDEN_JUMPTARGET(__fortify_fail)
+#else
+# define CALL_FAIL movl $longjmp_msg, %eax; \
+ call HIDDEN_JUMPTARGET(__fortify_fail)
+#endif
+
+
+ .text
+ENTRY (____longjmp_chk)
+ movl 4(%esp), %ecx /* User's jmp_buf in %ecx. */
+
+ /* Save the return address now. */
+ movl (JB_PC*4)(%ecx), %edx
+ /* Get the stack pointer. */
+ movl (JB_SP*4)(%ecx), %edi
+ cfi_undefined(%edi)
+ PTR_DEMANGLE (%edx)
+ PTR_DEMANGLE (%edi)
+
+ cmpl %edi, %esp
+ jbe .Lok
+
+ subl $12, %esp
+ cfi_adjust_cfa_offset(12)
+ xorl %ebx, %ebx
+ movl %esp, %ecx
+ movl $__NR_sigaltstack, %eax
+ ENTER_KERNEL
+ /* Without working sigaltstack we cannot perform the test. */
+ test %eax, %eax
+ jne .Lok2
+ testl $1, 4(%esp)
+ jz .Lfail
+
+ movl (%esp), %eax
+ addl 8(%esp), %eax
+ subl %edi, %eax
+ cmpl 8(%esp), %eax
+ jae .Lok2
+
+.Lfail: CALL_FAIL
+
+.Lok2: addl $12, %esp
+ cfi_adjust_cfa_offset(-12)
+ movl 4(%esp), %ecx
+
+.Lok:
+ LIBC_PROBE (longjmp, 3, 4@%ecx, -4@8(%esp), 4@%edx)
+ /* We add unwind information for the target here. */
+ cfi_def_cfa(%ecx, 0)
+ cfi_register(%eip, %edx)
+ cfi_register(%esp, %edi)
+ cfi_offset(%ebx, JB_BX*4)
+ cfi_offset(%esi, JB_SI*4)
+ cfi_offset(%edi, JB_DI*4)
+ cfi_offset(%ebp, JB_BP*4)
+
+ movl 8(%esp), %eax /* Second argument is return value. */
+ movl %edi, %esp
+
+ /* Restore registers. */
+ movl (JB_BX*4)(%ecx), %ebx
+ movl (JB_SI*4)(%ecx), %esi
+ movl (JB_DI*4)(%ecx), %edi
+ movl (JB_BP*4)(%ecx), %ebp
+ cfi_restore(%ebx)
+ cfi_restore(%esi)
+ cfi_restore(%edi)
+ cfi_restore(%ebp)
+
+ /* Jump to saved PC. */
+ LIBC_PROBE (longjmp_target, 3, 4@%ecx, -4@%eax, 4@%edx)
+ jmp *%edx
+END (____longjmp_chk)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/i386/_exit.S b/REORG.TODO/sysdeps/unix/sysv/linux/i386/_exit.S
new file mode 100644
index 0000000000..0ba2231998
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/i386/_exit.S
@@ -0,0 +1,44 @@
+/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+
+ .text
+ .type _exit,@function
+ .global _exit
+_exit:
+ movl 4(%esp), %ebx
+
+ /* Try the new syscall first. */
+#ifdef __NR_exit_group
+ movl $__NR_exit_group, %eax
+ ENTER_KERNEL
+#endif
+
+ /* Not available. Now the old one. */
+ movl $__NR_exit, %eax
+ /* Don't bother using ENTER_KERNEL here. If the exit_group
+ syscall is not available AT_SYSINFO isn't either. */
+ int $0x80
+
+ /* This must not fail. Be sure we don't return. */
+ hlt
+ .size _exit,.-_exit
+
+libc_hidden_def (_exit)
+rtld_hidden_def (_exit)
+weak_alias (_exit, _Exit)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/i386/alphasort64.c b/REORG.TODO/sysdeps/unix/sysv/linux/i386/alphasort64.c
new file mode 100644
index 0000000000..d5fd47a9ae
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/i386/alphasort64.c
@@ -0,0 +1,48 @@
+/* Copyright (C) 1992-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 <dirent.h>
+#include <string.h>
+
+int
+__alphasort64 (const struct dirent64 **a, const struct dirent64 **b)
+{
+ return strcoll ((*a)->d_name, (*b)->d_name);
+}
+
+#include <shlib-compat.h>
+
+versioned_symbol (libc, __alphasort64, alphasort64, GLIBC_2_2);
+
+#if SHLIB_COMPAT(libc, GLIBC_2_1, GLIBC_2_2)
+
+#include <sysdeps/unix/sysv/linux/i386/olddirent.h>
+
+int
+__old_alphasort64 (const struct __old_dirent64 **a,
+ const struct __old_dirent64 **b);
+
+int
+attribute_compat_text_section
+__old_alphasort64 (const struct __old_dirent64 **a,
+ const struct __old_dirent64 **b)
+{
+ return strcoll ((*a)->d_name, (*b)->d_name);
+}
+
+compat_symbol (libc, __old_alphasort64, alphasort64, GLIBC_2_1);
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/i386/arch-fork.h b/REORG.TODO/sysdeps/unix/sysv/linux/i386/arch-fork.h
new file mode 100644
index 0000000000..9a2465b58e
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/i386/arch-fork.h
@@ -0,0 +1,27 @@
+/* Internal definitions for thread-friendly fork implementation. Linux/i386.
+ Copyright (C) 2002-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sched.h>
+#include <sysdep.h>
+#include <tls.h>
+
+#define ARCH_FORK() \
+ INLINE_SYSCALL (clone, 5, \
+ CLONE_CHILD_SETTID | CLONE_CHILD_CLEARTID | SIGCHLD, 0, \
+ NULL, NULL, &THREAD_SELF->tid)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/i386/brk.c b/REORG.TODO/sysdeps/unix/sysv/linux/i386/brk.c
new file mode 100644
index 0000000000..25ab1015d3
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/i386/brk.c
@@ -0,0 +1,41 @@
+/* brk system call for Linux/i386.
+ Copyright (C) 1995-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <unistd.h>
+#include <sysdep.h>
+
+/* This must be initialized data because commons can't have aliases. */
+void *__curbrk = 0;
+
+/* Old braindamage in GCC's crtstuff.c requires this symbol in an attempt
+ to work around different old braindamage in the old Linux ELF dynamic
+ linker. */
+weak_alias (__curbrk, ___brk_addr)
+
+int
+__brk (void *addr)
+{
+ INTERNAL_SYSCALL_DECL (err);
+ void *newbrk = (void *) INTERNAL_SYSCALL (brk, err, 1, addr);
+ __curbrk = newbrk;
+ if (newbrk < addr)
+ return INLINE_SYSCALL_ERROR_RETURN_VALUE (ENOMEM);
+ return 0;
+}
+weak_alias (__brk, brk)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/i386/c++-types.data b/REORG.TODO/sysdeps/unix/sysv/linux/i386/c++-types.data
new file mode 100644
index 0000000000..fde53bf337
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/i386/c++-types.data
@@ -0,0 +1,67 @@
+blkcnt64_t:x
+blkcnt_t:l
+blksize_t:l
+caddr_t:Pc
+clockid_t:i
+clock_t:l
+daddr_t:i
+dev_t:y
+fd_mask:l
+fsblkcnt64_t:y
+fsblkcnt_t:m
+fsfilcnt64_t:y
+fsfilcnt_t:m
+fsid_t:8__fsid_t
+gid_t:j
+id_t:j
+ino64_t:y
+ino_t:m
+int16_t:s
+int32_t:i
+int64_t:x
+int8_t:a
+intptr_t:i
+key_t:i
+loff_t:x
+mode_t:j
+nlink_t:j
+off64_t:x
+off_t:l
+pid_t:i
+pthread_attr_t:14pthread_attr_t
+pthread_barrier_t:17pthread_barrier_t
+pthread_barrierattr_t:21pthread_barrierattr_t
+pthread_cond_t:14pthread_cond_t
+pthread_condattr_t:18pthread_condattr_t
+pthread_key_t:j
+pthread_mutex_t:15pthread_mutex_t
+pthread_mutexattr_t:19pthread_mutexattr_t
+pthread_once_t:i
+pthread_rwlock_t:16pthread_rwlock_t
+pthread_rwlockattr_t:20pthread_rwlockattr_t
+pthread_spinlock_t:i
+pthread_t:m
+quad_t:x
+register_t:i
+rlim64_t:y
+rlim_t:m
+sigset_t:10__sigset_t
+size_t:j
+socklen_t:j
+ssize_t:i
+suseconds_t:l
+time_t:l
+u_char:h
+uid_t:j
+uint:j
+u_int:j
+u_int16_t:t
+u_int32_t:j
+u_int64_t:y
+u_int8_t:h
+ulong:m
+u_long:m
+u_quad_t:y
+useconds_t:j
+ushort:t
+u_short:t
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/i386/clone.S b/REORG.TODO/sysdeps/unix/sysv/linux/i386/clone.S
new file mode 100644
index 0000000000..a4ba3e20ff
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/i386/clone.S
@@ -0,0 +1,124 @@
+/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Richard Henderson (rth@tamu.edu)
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+/* clone() is even more special than fork() as it mucks with stacks
+ and invokes a function in the right context after its all over. */
+
+#include <sysdep.h>
+#define _ERRNO_H 1
+#include <bits/errno.h>
+#include <asm-syntax.h>
+
+/* int clone(int (*fn)(void *arg), void *child_stack, int flags, void *arg,
+ pid_t *ptid, struct user_desc *tls, pid_t *ctid); */
+
+#define PARMS 4 /* no space for saved regs */
+#define FUNC PARMS
+#define STACK FUNC+4
+#define FLAGS STACK+4
+#define ARG FLAGS+4
+#define PTID ARG+4
+#define TLS PTID+4
+#define CTID TLS+4
+
+#define __NR_clone 120
+#define SYS_clone 120
+
+#define CLONE_VM 0x00000100
+
+ .text
+ENTRY (__clone)
+ /* Sanity check arguments. */
+ movl $-EINVAL,%eax
+ movl FUNC(%esp),%ecx /* no NULL function pointers */
+ testl %ecx,%ecx
+ jz SYSCALL_ERROR_LABEL
+ movl STACK(%esp),%ecx /* no NULL stack pointers */
+ testl %ecx,%ecx
+ jz SYSCALL_ERROR_LABEL
+
+ /* Insert the argument onto the new stack. Make sure the new
+ thread is started with an alignment of (mod 16). */
+ andl $0xfffffff0, %ecx
+ subl $28,%ecx
+ movl ARG(%esp),%eax /* no negative argument counts */
+ movl %eax,12(%ecx)
+
+ /* Save the function pointer as the zeroth argument.
+ It will be popped off in the child in the ebx frobbing below. */
+ movl FUNC(%esp),%eax
+ movl %eax,8(%ecx)
+ /* Don't leak any information. */
+ movl $0,4(%ecx)
+
+ /* Do the system call */
+ pushl %ebx
+ cfi_adjust_cfa_offset (4)
+ pushl %esi
+ cfi_adjust_cfa_offset (4)
+ pushl %edi
+ cfi_adjust_cfa_offset (4)
+
+ movl TLS+12(%esp),%esi
+ cfi_rel_offset (esi, 4)
+ movl PTID+12(%esp),%edx
+ movl FLAGS+12(%esp),%ebx
+ cfi_rel_offset (ebx, 8)
+ movl CTID+12(%esp),%edi
+ cfi_rel_offset (edi, 0)
+ movl $SYS_ify(clone),%eax
+
+ /* Remember the flag value. */
+ movl %ebx, (%ecx)
+
+ /* End FDE now, because in the child the unwind info will be
+ wrong. */
+ cfi_endproc
+
+ int $0x80
+ popl %edi
+ popl %esi
+ popl %ebx
+
+ test %eax,%eax
+ jl SYSCALL_ERROR_LABEL
+ jz L(thread_start)
+
+ ret
+
+L(thread_start):
+ cfi_startproc;
+ /* Clearing frame pointer is insufficient, use CFI. */
+ cfi_undefined (eip);
+ /* Note: %esi is zero. */
+ movl %esi,%ebp /* terminate the stack frame */
+ call *%ebx
+#ifdef PIC
+ call L(here)
+L(here):
+ popl %ebx
+ addl $_GLOBAL_OFFSET_TABLE_+[.-L(here)], %ebx
+#endif
+ movl %eax, %ebx
+ movl $SYS_ify(exit), %eax
+ ENTER_KERNEL
+
+PSEUDO_END (__clone)
+
+libc_hidden_def (__clone)
+weak_alias (__clone, clone)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/i386/configure b/REORG.TODO/sysdeps/unix/sysv/linux/i386/configure
new file mode 100644
index 0000000000..0327590486
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/i386/configure
@@ -0,0 +1,44 @@
+# This file is generated from configure.ac by Autoconf. DO NOT EDIT!
+ # Local configure fragment for sysdeps/unix/sysv/linux/i386.
+
+# Check if CFLAGS allows compiler to use ebp register in inline assembly.
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if compiler flags allows ebp in inline assembly" >&5
+$as_echo_n "checking if compiler flags allows ebp in inline assembly... " >&6; }
+if ${libc_cv_can_use_register_asm_ebp+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+ void foo (int i)
+ {
+ register int reg asm ("ebp") = i;
+ asm ("# %0" : : "r" (reg));
+ }
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ libc_cv_can_use_register_asm_ebp=yes
+else
+ libc_cv_can_use_register_asm_ebp=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_can_use_register_asm_ebp" >&5
+$as_echo "$libc_cv_can_use_register_asm_ebp" >&6; }
+if test $libc_cv_can_use_register_asm_ebp = yes; then
+ $as_echo "#define CAN_USE_REGISTER_ASM_EBP 1" >>confdefs.h
+
+fi
+
+libc_cv_gcc_unwind_find_fde=yes
+ldd_rewrite_script=sysdeps/unix/sysv/linux/ldd-rewrite.sed
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/i386/configure.ac b/REORG.TODO/sysdeps/unix/sysv/linux/i386/configure.ac
new file mode 100644
index 0000000000..9e980784bb
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/i386/configure.ac
@@ -0,0 +1,22 @@
+GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
+# Local configure fragment for sysdeps/unix/sysv/linux/i386.
+
+# Check if CFLAGS allows compiler to use ebp register in inline assembly.
+AC_CACHE_CHECK([if compiler flags allows ebp in inline assembly],
+ libc_cv_can_use_register_asm_ebp, [
+AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM([
+ void foo (int i)
+ {
+ register int reg asm ("ebp") = i;
+ asm ("# %0" : : "r" (reg));
+ }])],
+ [libc_cv_can_use_register_asm_ebp=yes],
+ [libc_cv_can_use_register_asm_ebp=no])
+])
+if test $libc_cv_can_use_register_asm_ebp = yes; then
+ AC_DEFINE(CAN_USE_REGISTER_ASM_EBP)
+fi
+
+libc_cv_gcc_unwind_find_fde=yes
+ldd_rewrite_script=sysdeps/unix/sysv/linux/ldd-rewrite.sed
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/i386/dl-librecon.h b/REORG.TODO/sysdeps/unix/sysv/linux/i386/dl-librecon.h
new file mode 100644
index 0000000000..5f91009a4c
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/i386/dl-librecon.h
@@ -0,0 +1,62 @@
+/* Optional code to distinguish library flavours.
+ Copyright (C) 1998-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _DL_LIBRECON_H
+
+#include <sysdeps/unix/sysv/linux/dl-librecon.h>
+
+#define DISTINGUISH_LIB_VERSIONS \
+ do \
+ { \
+ /* We have to find out whether the binary is linked against \
+ libc 5 or glibc. We do this by looking at all the DT_NEEDED \
+ entries. If one is libc.so.5 this is a libc 5 linked binary. */ \
+ if (main_map->l_info[DT_NEEDED]) \
+ { \
+ /* We have dependencies. */ \
+ const ElfW(Dyn) *d; \
+ const char *strtab; \
+ \
+ strtab = (const char *) D_PTR (main_map, l_info[DT_STRTAB]); \
+ \
+ for (d = main_map->l_ld; d->d_tag != DT_NULL; ++d) \
+ if (d->d_tag == DT_NEEDED \
+ && strcmp (strtab + d->d_un.d_val, "libc.so.5") == 0) \
+ break; \
+ \
+ /* We print a `5' or `6' depending on the outcome. */ \
+ _dl_printf (d->d_tag != DT_NULL ? "5\n" : "6\n"); \
+ } \
+ } \
+ while (0)
+
+/* Recognizing extra environment variables. */
+#define EXTRA_LD_ENVVARS \
+ case 15: \
+ if (memcmp (envline, "LIBRARY_VERSION", 15) == 0) \
+ GLRO(dl_correct_cache_id) = envline[16] == '5' ? 2 : 3; \
+ break; \
+
+/* Extra unsecure variables. The names are all stuffed in a single
+ string which means they have to be terminated with a '\0' explicitly. */
+#define EXTRA_UNSECURE_ENVVARS \
+ "LD_AOUT_LIBRARY_PATH\0" \
+ "LD_AOUT_PRELOAD\0"
+
+#endif /* dl-librecon.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/i386/dl-procinfo.h b/REORG.TODO/sysdeps/unix/sysv/linux/i386/dl-procinfo.h
new file mode 100644
index 0000000000..c590896ddf
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/i386/dl-procinfo.h
@@ -0,0 +1,47 @@
+/* Linux/i386 version of processor capability information handling macros.
+ Copyright (C) 1998-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _DL_I386_PROCINFO_H
+#define _DL_I386_PROCINFO_H 1
+#include <sysdeps/x86/dl-procinfo.h>
+
+#undef _dl_procinfo
+static inline int
+__attribute__ ((unused))
+_dl_procinfo (unsigned int type, unsigned long int word)
+{
+ /* This table should match the information from arch/i386/kernel/setup.c
+ in the kernel sources. */
+ int i;
+
+ /* Fallback to unknown output mechanism. */
+ if (type == AT_HWCAP2)
+ return -1;
+
+ _dl_printf ("AT_HWCAP: ");
+
+ for (i = 0; i < 32; ++i)
+ if (word & (1 << i))
+ _dl_printf (" %s", GLRO(dl_x86_cap_flags)[i]);
+
+ _dl_printf ("\n");
+
+ return 0;
+}
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/i386/dl-sysdep.h b/REORG.TODO/sysdeps/unix/sysv/linux/i386/dl-sysdep.h
new file mode 100644
index 0000000000..8a3af5e27b
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/i386/dl-sysdep.h
@@ -0,0 +1,46 @@
+/* System-specific settings for dynamic linker code. i386 version.
+ Copyright (C) 2002-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU 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_I386_DL_SYSDEP_H
+
+#include_next <dl-sysdep.h>
+
+/* Traditionally system calls have been made using int $0x80. A
+ second method was introduced which, if possible, will use the
+ sysenter/syscall instructions. To signal the presence and where to
+ find the code the kernel passes an AT_SYSINFO value in the
+ auxiliary vector to the application. */
+#define NEED_DL_SYSINFO 1
+
+#ifndef __ASSEMBLER__
+extern void _dl_sysinfo_int80 (void) attribute_hidden;
+# define DL_SYSINFO_DEFAULT (uintptr_t) _dl_sysinfo_int80
+# define DL_SYSINFO_IMPLEMENTATION \
+ asm (".text\n\t" \
+ ".type _dl_sysinfo_int80,@function\n\t" \
+ ".hidden _dl_sysinfo_int80\n" \
+ CFI_STARTPROC "\n" \
+ "_dl_sysinfo_int80:\n\t" \
+ "int $0x80;\n\t" \
+ "ret;\n\t" \
+ CFI_ENDPROC "\n" \
+ ".size _dl_sysinfo_int80,.-_dl_sysinfo_int80\n\t" \
+ ".previous");
+#endif
+
+#endif /* dl-sysdep.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/i386/fcntl.c b/REORG.TODO/sysdeps/unix/sysv/linux/i386/fcntl.c
new file mode 100644
index 0000000000..b0a5783a8a
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/i386/fcntl.c
@@ -0,0 +1,61 @@
+/* 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 <assert.h>
+#include <errno.h>
+#include <sysdep-cancel.h> /* Must come before <fcntl.h>. */
+#include <fcntl.h>
+#include <stdarg.h>
+
+#include <sys/syscall.h>
+
+#ifndef NO_CANCELLATION
+int
+__fcntl_nocancel (int fd, int cmd, ...)
+{
+ va_list ap;
+ void *arg;
+
+ va_start (ap, cmd);
+ arg = va_arg (ap, void *);
+ va_end (ap);
+
+ return INLINE_SYSCALL (fcntl64, 3, fd, cmd, arg);
+}
+#endif /* NO_CANCELLATION */
+
+
+int
+__libc_fcntl (int fd, int cmd, ...)
+{
+ va_list ap;
+ void *arg;
+
+ va_start (ap, cmd);
+ arg = va_arg (ap, void *);
+ va_end (ap);
+
+ if ((cmd != F_SETLKW) && (cmd != F_SETLKW64))
+ return INLINE_SYSCALL (fcntl64, 3, fd, cmd, arg);
+
+ return SYSCALL_CANCEL (fcntl64, fd, cmd, arg);
+}
+libc_hidden_def (__libc_fcntl)
+
+weak_alias (__libc_fcntl, __fcntl)
+libc_hidden_weak (__fcntl)
+weak_alias (__libc_fcntl, fcntl)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/i386/fxstat.c b/REORG.TODO/sysdeps/unix/sysv/linux/i386/fxstat.c
new file mode 100644
index 0000000000..c4cdbf54c0
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/i386/fxstat.c
@@ -0,0 +1,61 @@
+/* fxstat using old-style Unix fstat system call.
+ Copyright (C) 1991-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+/* Ho hum, if xstat == xstat64 we must get rid of the prototype or gcc
+ will complain since they don't strictly match. */
+#define __fxstat64 __fxstat64_disable
+
+#include <errno.h>
+#include <stddef.h>
+#include <sys/stat.h>
+#include <kernel_stat.h>
+
+#include <sysdep.h>
+#include <sys/syscall.h>
+
+#include <xstatconv.h>
+
+/* Get information about the file FD in BUF. */
+int
+__fxstat (int vers, int fd, struct stat *buf)
+{
+ int result;
+
+ if (vers == _STAT_VER_KERNEL)
+ return INLINE_SYSCALL (fstat, 2, fd, buf);
+
+ {
+ struct stat64 buf64;
+
+ INTERNAL_SYSCALL_DECL (err);
+ result = INTERNAL_SYSCALL (fstat64, err, 2, fd, &buf64);
+ if (__glibc_unlikely (INTERNAL_SYSCALL_ERROR_P (result, err)))
+ return INLINE_SYSCALL_ERROR_RETURN_VALUE (INTERNAL_SYSCALL_ERRNO (result,
+ err));
+ else
+ return __xstat32_conv (vers, &buf64, buf);
+ }
+}
+
+hidden_def (__fxstat)
+weak_alias (__fxstat, _fxstat);
+#if XSTAT_IS_XSTAT64
+#undef __fxstat64
+strong_alias (__fxstat, __fxstat64);
+hidden_ver (__fxstat, __fxstat64)
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/i386/fxstatat.c b/REORG.TODO/sysdeps/unix/sysv/linux/i386/fxstatat.c
new file mode 100644
index 0000000000..7980c9bbe0
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/i386/fxstatat.c
@@ -0,0 +1,56 @@
+/* Copyright (C) 2005-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+/* Ho hum, if fxstatat == fxstatat64 we must get rid of the prototype or gcc
+ will complain since they don't strictly match. */
+#define __fxstatat64 __fxstatat64_disable
+
+#include <errno.h>
+#include <fcntl.h>
+#include <stddef.h>
+#include <stdio.h>
+#include <string.h>
+#include <sys/stat.h>
+#include <kernel_stat.h>
+
+#include <sysdep.h>
+#include <sys/syscall.h>
+
+#include <xstatconv.h>
+
+
+/* Get information about the file NAME relative to FD in ST. */
+int
+__fxstatat (int vers, int fd, const char *file, struct stat *st, int flag)
+{
+ int result;
+ INTERNAL_SYSCALL_DECL (err);
+ struct stat64 st64;
+
+ result = INTERNAL_SYSCALL (fstatat64, err, 4, fd, file, &st64, flag);
+ if (__glibc_unlikely (INTERNAL_SYSCALL_ERROR_P (result, err)))
+ return INLINE_SYSCALL_ERROR_RETURN_VALUE (INTERNAL_SYSCALL_ERRNO (result,
+ err));
+ else
+ return __xstat32_conv (vers, &st64, st);
+}
+libc_hidden_def (__fxstatat)
+#if XSTAT_IS_XSTAT64
+# undef __fxstatat64
+strong_alias (__fxstatat, __fxstatat64);
+libc_hidden_ver (__fxstatat, __fxstatat64)
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/i386/get_clockfreq.c b/REORG.TODO/sysdeps/unix/sysv/linux/i386/get_clockfreq.c
new file mode 100644
index 0000000000..88e14b5f04
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/i386/get_clockfreq.c
@@ -0,0 +1,88 @@
+/* Get frequency of the system processor. i386/Linux 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 <ctype.h>
+#include <fcntl.h>
+#include <string.h>
+#include <unistd.h>
+
+hp_timing_t
+__get_clockfreq (void)
+{
+ /* We read the information from the /proc filesystem. It contains at
+ least one line like
+ cpu MHz : 497.840237
+ or also
+ cpu MHz : 497.841
+ We search for this line and convert the number in an integer. */
+ static hp_timing_t result;
+ int fd;
+
+ /* If this function was called before, we know the result. */
+ if (result != 0)
+ return result;
+
+ fd = __open ("/proc/cpuinfo", O_RDONLY);
+ if (__glibc_likely (fd != -1))
+ {
+ /* XXX AFAIK the /proc filesystem can generate "files" only up
+ to a size of 4096 bytes. */
+ char buf[4096];
+ ssize_t n;
+
+ n = __read (fd, buf, sizeof buf);
+ if (__builtin_expect (n, 1) > 0)
+ {
+ char *mhz = memmem (buf, n, "cpu MHz", 7);
+
+ if (__glibc_likely (mhz != NULL))
+ {
+ char *endp = buf + n;
+ int seen_decpoint = 0;
+ int ndigits = 0;
+
+ /* Search for the beginning of the string. */
+ while (mhz < endp && (*mhz < '0' || *mhz > '9') && *mhz != '\n')
+ ++mhz;
+
+ while (mhz < endp && *mhz != '\n')
+ {
+ if (*mhz >= '0' && *mhz <= '9')
+ {
+ result *= 10;
+ result += *mhz - '0';
+ if (seen_decpoint)
+ ++ndigits;
+ }
+ else if (*mhz == '.')
+ seen_decpoint = 1;
+
+ ++mhz;
+ }
+
+ /* Compensate for missing digits at the end. */
+ while (ndigits++ < 6)
+ result *= 10;
+ }
+ }
+
+ __close (fd);
+ }
+
+ return result;
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/i386/getcontext.S b/REORG.TODO/sysdeps/unix/sysv/linux/i386/getcontext.S
new file mode 100644
index 0000000000..591c3885a5
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/i386/getcontext.S
@@ -0,0 +1,83 @@
+/* Save current context.
+ Copyright (C) 2001-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@redhat.com>, 2001.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+
+#include "ucontext_i.h"
+
+
+ENTRY(__getcontext)
+ /* Load address of the context data structure. */
+ movl 4(%esp), %eax
+
+ /* Return value of getcontext. EAX is the only register whose
+ value is not preserved. */
+ movl $0, oEAX(%eax)
+
+ /* Save the 32-bit register values and the return address. */
+ movl %ecx, oECX(%eax)
+ movl %edx, oEDX(%eax)
+ movl %edi, oEDI(%eax)
+ movl %esi, oESI(%eax)
+ movl %ebp, oEBP(%eax)
+ movl (%esp), %ecx
+ movl %ecx, oEIP(%eax)
+ leal 4(%esp), %ecx /* Exclude the return address. */
+ movl %ecx, oESP(%eax)
+ movl %ebx, oEBX(%eax)
+
+ /* Save the FS segment register. We don't touch the GS register
+ since it is used for threads. */
+ xorl %edx, %edx
+ movw %fs, %dx
+ movl %edx, oFS(%eax)
+
+ /* We have separate floating-point register content memory on the
+ stack. We use the __fpregs_mem block in the context. Set the
+ links up correctly. */
+ leal oFPREGSMEM(%eax), %ecx
+ movl %ecx, oFPREGS(%eax)
+ /* Save the floating-point context. */
+ fnstenv (%ecx)
+ /* And load it right back since the processor changes the mask.
+ Intel thought this opcode to be used in interrupt handlers which
+ would block all exceptions. */
+ fldenv (%ecx)
+
+ /* Save the current signal mask. */
+ pushl %ebx
+ cfi_adjust_cfa_offset (4)
+ cfi_rel_offset (ebx, 0)
+ leal oSIGMASK(%eax), %edx
+ xorl %ecx, %ecx
+ movl $SIG_BLOCK, %ebx
+ movl $__NR_sigprocmask, %eax
+ ENTER_KERNEL
+ popl %ebx
+ cfi_adjust_cfa_offset (-4)
+ cfi_restore (ebx)
+ cmpl $-4095, %eax /* Check %eax for error. */
+ jae SYSCALL_ERROR_LABEL /* Jump to error handler if error. */
+
+ /* All done, return 0 for success. */
+ xorl %eax, %eax
+ ret
+PSEUDO_END(__getcontext)
+
+weak_alias (__getcontext, getcontext)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/i386/getdents64.c b/REORG.TODO/sysdeps/unix/sysv/linux/i386/getdents64.c
new file mode 100644
index 0000000000..e8b257f059
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/i386/getdents64.c
@@ -0,0 +1,39 @@
+/* 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/>. */
+
+#define __GETDENTS __getdents64
+#define DIRENT_TYPE struct dirent64
+
+#include <sysdeps/unix/sysv/linux/getdents.c>
+
+#include <shlib-compat.h>
+
+#undef __READDIR
+#undef __GETDENTS
+#undef DIRENT_TYPE
+
+#if SHLIB_COMPAT(libc, GLIBC_2_1, GLIBC_2_2)
+
+#include <sysdeps/unix/sysv/linux/i386/olddirent.h>
+
+#define __GETDENTS __old_getdents64
+#define DIRENT_TYPE struct __old_dirent64
+#define kernel_dirent old_kernel_dirent
+#define kernel_dirent64 old_kernel_dirent64
+
+#include <sysdeps/unix/sysv/linux/getdents.c>
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/i386/getmsg.c b/REORG.TODO/sysdeps/unix/sysv/linux/i386/getmsg.c
new file mode 100644
index 0000000000..5bf1e255c5
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/i386/getmsg.c
@@ -0,0 +1,33 @@
+/* Copyright (C) 1998-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <stddef.h>
+#include <stropts.h>
+
+#include <sysdep.h>
+#include <sys/syscall.h>
+
+#ifdef __NR_getpmsg
+int
+getmsg (int fildes, struct strbuf *ctlptr, struct strbuf *dataptr, int *flagsp)
+{
+ return INLINE_SYSCALL (getpmsg, 5, fildes, ctlptr, dataptr, NULL, flagsp);
+}
+#else
+# include <streams/getmsg.c>
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/i386/gettimeofday.c b/REORG.TODO/sysdeps/unix/sysv/linux/i386/gettimeofday.c
new file mode 100644
index 0000000000..b6116e91ba
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/i386/gettimeofday.c
@@ -0,0 +1,35 @@
+/* gettimeofday - get the time. Linux/i386 version.
+ Copyright (C) 2015-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifdef SHARED
+# define __gettimeofday __redirect___gettimeofday
+#endif
+
+#include <sys/time.h>
+
+#ifdef SHARED
+# undef __gettimeofday
+# define __gettimeofday_type __redirect___gettimeofday
+
+# undef libc_hidden_def
+# define libc_hidden_def(name) \
+ __hidden_ver1 (__gettimeofday_syscall, __GI___gettimeofday, \
+ __gettimeofday_syscall);
+#endif
+
+#include <sysdeps/unix/sysv/linux/x86/gettimeofday.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/i386/glob64.c b/REORG.TODO/sysdeps/unix/sysv/linux/i386/glob64.c
new file mode 100644
index 0000000000..f68195137e
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/i386/glob64.c
@@ -0,0 +1,76 @@
+/* Two glob variants with 64-bit support, for dirent64 and __olddirent64.
+ Copyright (C) 1998-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <dirent.h>
+#include <glob.h>
+#include <sys/stat.h>
+
+#define dirent dirent64
+#define __readdir(dirp) __readdir64 (dirp)
+
+#define glob_t glob64_t
+#define glob(pattern, flags, errfunc, pglob) \
+ __glob64 (pattern, flags, errfunc, pglob)
+#define globfree(pglob) globfree64 (pglob)
+
+#undef stat
+#define stat stat64
+#undef __stat
+#define __stat(file, buf) __xstat64 (_STAT_VER, file, buf)
+
+#define NO_GLOB_PATTERN_P 1
+
+#define COMPILE_GLOB64 1
+
+#include <posix/glob.c>
+
+#include "shlib-compat.h"
+
+libc_hidden_def (globfree64)
+
+versioned_symbol (libc, __glob64, glob64, GLIBC_2_2);
+libc_hidden_ver (__glob64, glob64)
+
+#if SHLIB_COMPAT(libc, GLIBC_2_1, GLIBC_2_2)
+
+#include <sysdeps/unix/sysv/linux/i386/olddirent.h>
+
+int __old_glob64 (const char *__pattern, int __flags,
+ int (*__errfunc) (const char *, int),
+ glob64_t *__pglob);
+
+#undef dirent
+#define dirent __old_dirent64
+#undef GL_READDIR
+# define GL_READDIR(pglob, stream) \
+ ((struct __old_dirent64 *) (pglob)->gl_readdir (stream))
+#undef __readdir
+#define __readdir(dirp) __old_readdir64 (dirp)
+#undef glob
+#define glob(pattern, flags, errfunc, pglob) \
+ __old_glob64 (pattern, flags, errfunc, pglob)
+#define convert_dirent __old_convert_dirent
+#define glob_in_dir __old_glob_in_dir
+#define GLOB_ATTRIBUTE attribute_compat_text_section
+
+#define GLOB_ONLY_P 1
+
+#include <posix/glob.c>
+
+compat_symbol (libc, __old_glob64, glob64, GLIBC_2_1);
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/i386/i686/Implies b/REORG.TODO/sysdeps/unix/sysv/linux/i386/i686/Implies
new file mode 100644
index 0000000000..8948a800bb
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/i386/i686/Implies
@@ -0,0 +1 @@
+i386/i686/nptl
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/i386/i686/dl-sysdep.h b/REORG.TODO/sysdeps/unix/sysv/linux/i386/i686/dl-sysdep.h
new file mode 100644
index 0000000000..ad90853864
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/i386/i686/dl-sysdep.h
@@ -0,0 +1,29 @@
+/* System-specific settings for dynamic linker code. IA-32 version.
+ Copyright (C) 2002-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU 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_I686_DL_SYSDEP_H
+#define _LINUX_I686_DL_SYSDEP_H 1
+
+/* The i386 file does most of the work. */
+#include_next <dl-sysdep.h>
+
+/* Actually use the vDSO entry point for syscalls.
+ i386/dl-sysdep.h arranges to support it, but not use it. */
+#define USE_DL_SYSINFO 1
+
+#endif /* dl-sysdep.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/i386/i786/Implies b/REORG.TODO/sysdeps/unix/sysv/linux/i386/i786/Implies
new file mode 100644
index 0000000000..7cb7d9a678
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/i386/i786/Implies
@@ -0,0 +1,2 @@
+# The PPro and PII cores are mostly the same.
+unix/sysv/linux/i386/i686
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/i386/init-first.c b/REORG.TODO/sysdeps/unix/sysv/linux/i386/init-first.c
new file mode 100644
index 0000000000..bbbecdd41f
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/i386/init-first.c
@@ -0,0 +1,50 @@
+/* Initialization code run first thing by the ELF startup code. Linux/i386.
+ Copyright (C) 2015-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifdef SHARED
+# include <time.h>
+# include <sysdep.h>
+# include <dl-vdso.h>
+# include <sysdep-vdso.h>
+
+long int (*VDSO_SYMBOL (clock_gettime)) (clockid_t, struct timespec *)
+ attribute_hidden;
+
+static long int
+clock_gettime_syscall (clockid_t id, struct timespec *tp)
+{
+ INTERNAL_SYSCALL_DECL (err);
+ return INTERNAL_SYSCALL (clock_gettime, err, 2, id, tp);
+}
+
+static inline void
+__vdso_platform_setup (void)
+{
+ PREPARE_VERSION_KNOWN (linux26, LINUX_2_6);
+
+ void *p = _dl_vdso_vsym ("__vdso_clock_gettime", &linux26);
+ if (p == NULL)
+ p = clock_gettime_syscall;
+ PTR_MANGLE (p);
+ VDSO_SYMBOL (clock_gettime) = p;
+}
+
+# define VDSO_SETUP __vdso_platform_setup
+#endif
+
+#include <csu/init-first.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/i386/kernel-features.h b/REORG.TODO/sysdeps/unix/sysv/linux/i386/kernel-features.h
new file mode 100644
index 0000000000..c6eb20f360
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/i386/kernel-features.h
@@ -0,0 +1,50 @@
+/* Set flags signalling availability of kernel features based on given
+ kernel version number. i386 version.
+ Copyright (C) 1999-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+/* i386 uses socketcall. */
+#define __ASSUME_SOCKETCALL 1
+
+/* Direct socketcalls available with kernel 4.3. */
+#if __LINUX_KERNEL_VERSION >= 0x040300
+# define __ASSUME_SOCKET_SYSCALL 1
+# define __ASSUME_SOCKETPAIR_SYSCALL 1
+# define __ASSUME_BIND_SYSCALL 1
+# define __ASSUME_LISTEN_SYSCALL 1
+# define __ASSUME_GETSOCKOPT_SYSCALL 1
+# define __ASSUME_SETSOCKOPT_SYSCALL 1
+# define __ASSUME_GETSOCKNAME_SYSCALL 1
+# define __ASSUME_GETPEERNAME_SYSCALL 1
+# define __ASSUME_SHUTDOWN_SYSCALL 1
+#endif
+
+#include_next <kernel-features.h>
+
+#undef __ASSUME_ACCEPT_SYSCALL
+
+#if __LINUX_KERNEL_VERSION < 0x040300
+# undef __ASSUME_ACCEPT4_SYSCALL
+# undef __ASSUME_SENDMSG_SYSCALL
+# undef __ASSUME_RECVMSG_SYSCALL
+# undef __ASSUME_CONNECT_SYSCALL
+# undef __ASSUME_RECVFROM_SYSCALL
+# undef __ASSUME_SENDTO_SYSCALL
+#endif
+
+/* i686 only supports ipc syscall. */
+#undef __ASSUME_DIRECT_SYSVIPC_SYSCALLS
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/i386/ld.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/i386/ld.abilist
new file mode 100644
index 0000000000..ddf9e78ec2
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/i386/ld.abilist
@@ -0,0 +1,13 @@
+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_addr F
+GLIBC_2.3 __tls_get_addr F
+GLIBC_2.4 GLIBC_2.4 A
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/i386/ldconfig.h b/REORG.TODO/sysdeps/unix/sysv/linux/i386/ldconfig.h
new file mode 100644
index 0000000000..7112cb275d
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/i386/ldconfig.h
@@ -0,0 +1,24 @@
+/* Copyright (C) 2001-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdeps/generic/ldconfig.h>
+
+#define SYSDEP_KNOWN_INTERPRETER_NAMES \
+ { "/lib/ld-linux.so.1", FLAG_ELF_LIBC5 },
+#define SYSDEP_KNOWN_LIBRARY_NAMES \
+ { "libc.so.5", FLAG_ELF_LIBC5 }, \
+ { "libm.so.5", FLAG_ELF_LIBC5 },
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/i386/libBrokenLocale.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/i386/libBrokenLocale.abilist
new file mode 100644
index 0000000000..4a56bb68a3
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/i386/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/i386/libanl.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/i386/libanl.abilist
new file mode 100644
index 0000000000..edabfb436e
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/i386/libanl.abilist
@@ -0,0 +1,5 @@
+GLIBC_2.2.3 GLIBC_2.2.3 A
+GLIBC_2.2.3 gai_cancel F
+GLIBC_2.2.3 gai_error F
+GLIBC_2.2.3 gai_suspend F
+GLIBC_2.2.3 getaddrinfo_a F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/i386/libc-do-syscall.S b/REORG.TODO/sysdeps/unix/sysv/linux/i386/libc-do-syscall.S
new file mode 100644
index 0000000000..f706c6da57
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/i386/libc-do-syscall.S
@@ -0,0 +1,53 @@
+/* Out-of-line syscall stub for six-argument syscalls from C.
+ Copyright (C) 2015-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+
+#ifndef OPTIMIZE_FOR_GCC_5
+
+/* %eax, %ecx, %edx and %esi contain the values expected by the kernel.
+ %edi points to a structure with the values of %ebx, %edi and %ebp. */
+
+ .hidden __libc_do_syscall
+
+ENTRY (__libc_do_syscall)
+ pushl %ebx
+ cfi_adjust_cfa_offset (4)
+ cfi_rel_offset (ebx, 0)
+ pushl %edi
+ cfi_adjust_cfa_offset (4)
+ cfi_rel_offset (edi, 0)
+ pushl %ebp
+ cfi_adjust_cfa_offset (4)
+ cfi_rel_offset (ebp, 0)
+ movl 0(%edi), %ebx
+ movl 8(%edi), %ebp
+ movl 4(%edi), %edi
+ ENTER_KERNEL
+ popl %ebp
+ cfi_adjust_cfa_offset (-4)
+ cfi_restore (ebp)
+ popl %edi
+ cfi_adjust_cfa_offset (-4)
+ cfi_restore (edi)
+ popl %ebx
+ cfi_adjust_cfa_offset (-4)
+ cfi_restore (ebx)
+ ret
+END (__libc_do_syscall)
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/i386/libc-lowlevellock.S b/REORG.TODO/sysdeps/unix/sysv/linux/i386/libc-lowlevellock.S
new file mode 100644
index 0000000000..1e5e150aa7
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/i386/libc-lowlevellock.S
@@ -0,0 +1,19 @@
+/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include "lowlevellock.S"
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/i386/libc.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/i386/libc.abilist
new file mode 100644
index 0000000000..2ff1998ac9
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/i386/libc.abilist
@@ -0,0 +1,2333 @@
+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 0x2
+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 ioperm F
+GLIBC_2.0 iopl 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 vm86 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 0x98
+GLIBC_2.1 _IO_2_1_stdin_ D 0x98
+GLIBC_2.1 _IO_2_1_stdout_ D 0x98
+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 __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 __signbitl 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 modify_ldt 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 scalbln F
+GLIBC_2.1 scalblnf F
+GLIBC_2.1 scalblnl 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 __memcpy_by2 F
+GLIBC_2.1.1 __memcpy_by4 F
+GLIBC_2.1.1 __memcpy_c F
+GLIBC_2.1.1 __memcpy_g F
+GLIBC_2.1.1 __mempcpy_by2 F
+GLIBC_2.1.1 __mempcpy_by4 F
+GLIBC_2.1.1 __mempcpy_byn F
+GLIBC_2.1.1 __mempcpy_small F
+GLIBC_2.1.1 __memset_cc F
+GLIBC_2.1.1 __memset_ccn_by2 F
+GLIBC_2.1.1 __memset_ccn_by4 F
+GLIBC_2.1.1 __memset_cg F
+GLIBC_2.1.1 __memset_gcn_by2 F
+GLIBC_2.1.1 __memset_gcn_by4 F
+GLIBC_2.1.1 __memset_gg F
+GLIBC_2.1.1 __stpcpy_g F
+GLIBC_2.1.1 __stpcpy_small F
+GLIBC_2.1.1 __strcat_c F
+GLIBC_2.1.1 __strcat_g F
+GLIBC_2.1.1 __strchr_c F
+GLIBC_2.1.1 __strchr_g F
+GLIBC_2.1.1 __strchrnul_c F
+GLIBC_2.1.1 __strchrnul_g F
+GLIBC_2.1.1 __strcmp_gg F
+GLIBC_2.1.1 __strcpy_g 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 __strcspn_cg F
+GLIBC_2.1.1 __strcspn_g F
+GLIBC_2.1.1 __strlen_g F
+GLIBC_2.1.1 __strncat_g F
+GLIBC_2.1.1 __strncmp_g F
+GLIBC_2.1.1 __strncpy_by2 F
+GLIBC_2.1.1 __strncpy_by4 F
+GLIBC_2.1.1 __strncpy_byn F
+GLIBC_2.1.1 __strncpy_gg F
+GLIBC_2.1.1 __strpbrk_c2 F
+GLIBC_2.1.1 __strpbrk_c3 F
+GLIBC_2.1.1 __strpbrk_cg F
+GLIBC_2.1.1 __strpbrk_g F
+GLIBC_2.1.1 __strrchr_c F
+GLIBC_2.1.1 __strrchr_g 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 __strspn_cg F
+GLIBC_2.1.1 __strspn_g F
+GLIBC_2.1.1 __strstr_cg F
+GLIBC_2.1.1 __strstr_g 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 __fentry__ F
+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.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 glob64 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 vm86 F
+GLIBC_2.3.4 xdr_quad_t F
+GLIBC_2.3.4 xdr_u_quad_t F
+GLIBC_2.4 GLIBC_2.4 A
+GLIBC_2.4 __confstr_chk F
+GLIBC_2.4 __fgets_chk F
+GLIBC_2.4 __fgets_unlocked_chk F
+GLIBC_2.4 __fgetws_chk F
+GLIBC_2.4 __fgetws_unlocked_chk F
+GLIBC_2.4 __fwprintf_chk F
+GLIBC_2.4 __fxstatat F
+GLIBC_2.4 __fxstatat64 F
+GLIBC_2.4 __getcwd_chk F
+GLIBC_2.4 __getdomainname_chk F
+GLIBC_2.4 __getgroups_chk F
+GLIBC_2.4 __gethostname_chk F
+GLIBC_2.4 __getlogin_r_chk F
+GLIBC_2.4 __getwd_chk F
+GLIBC_2.4 __mbsnrtowcs_chk F
+GLIBC_2.4 __mbsrtowcs_chk F
+GLIBC_2.4 __mbstowcs_chk F
+GLIBC_2.4 __pread64_chk F
+GLIBC_2.4 __pread_chk F
+GLIBC_2.4 __ptsname_r_chk F
+GLIBC_2.4 __read_chk F
+GLIBC_2.4 __readlink_chk F
+GLIBC_2.4 __realpath_chk F
+GLIBC_2.4 __recv_chk F
+GLIBC_2.4 __recvfrom_chk F
+GLIBC_2.4 __stack_chk_fail F
+GLIBC_2.4 __stpncpy_chk F
+GLIBC_2.4 __swprintf_chk F
+GLIBC_2.4 __syslog_chk F
+GLIBC_2.4 __ttyname_r_chk F
+GLIBC_2.4 __vfwprintf_chk F
+GLIBC_2.4 __vswprintf_chk F
+GLIBC_2.4 __vsyslog_chk F
+GLIBC_2.4 __vwprintf_chk F
+GLIBC_2.4 __wcpcpy_chk F
+GLIBC_2.4 __wcpncpy_chk F
+GLIBC_2.4 __wcrtomb_chk F
+GLIBC_2.4 __wcscat_chk F
+GLIBC_2.4 __wcscpy_chk F
+GLIBC_2.4 __wcsncat_chk F
+GLIBC_2.4 __wcsncpy_chk F
+GLIBC_2.4 __wcsnrtombs_chk F
+GLIBC_2.4 __wcsrtombs_chk F
+GLIBC_2.4 __wcstombs_chk F
+GLIBC_2.4 __wctomb_chk F
+GLIBC_2.4 __wmemcpy_chk F
+GLIBC_2.4 __wmemmove_chk F
+GLIBC_2.4 __wmempcpy_chk F
+GLIBC_2.4 __wmemset_chk F
+GLIBC_2.4 __wprintf_chk F
+GLIBC_2.4 __xmknodat F
+GLIBC_2.4 _sys_errlist D 0x210
+GLIBC_2.4 _sys_nerr D 0x4
+GLIBC_2.4 eaccess F
+GLIBC_2.4 faccessat F
+GLIBC_2.4 fchmodat F
+GLIBC_2.4 fchownat F
+GLIBC_2.4 fdopendir F
+GLIBC_2.4 futimesat F
+GLIBC_2.4 inotify_add_watch F
+GLIBC_2.4 inotify_init F
+GLIBC_2.4 inotify_rm_watch F
+GLIBC_2.4 linkat F
+GLIBC_2.4 mkdirat F
+GLIBC_2.4 mkfifoat F
+GLIBC_2.4 open_wmemstream F
+GLIBC_2.4 openat F
+GLIBC_2.4 openat64 F
+GLIBC_2.4 ppoll F
+GLIBC_2.4 readlinkat F
+GLIBC_2.4 renameat F
+GLIBC_2.4 symlinkat F
+GLIBC_2.4 sys_errlist D 0x210
+GLIBC_2.4 sys_nerr D 0x4
+GLIBC_2.4 unlinkat F
+GLIBC_2.4 unshare F
+GLIBC_2.5 GLIBC_2.5 A
+GLIBC_2.5 __readlinkat_chk F
+GLIBC_2.5 inet6_opt_append F
+GLIBC_2.5 inet6_opt_find F
+GLIBC_2.5 inet6_opt_finish F
+GLIBC_2.5 inet6_opt_get_val F
+GLIBC_2.5 inet6_opt_init F
+GLIBC_2.5 inet6_opt_next F
+GLIBC_2.5 inet6_opt_set_val F
+GLIBC_2.5 inet6_rth_add F
+GLIBC_2.5 inet6_rth_getaddr F
+GLIBC_2.5 inet6_rth_init F
+GLIBC_2.5 inet6_rth_reverse F
+GLIBC_2.5 inet6_rth_segments F
+GLIBC_2.5 inet6_rth_space F
+GLIBC_2.5 splice F
+GLIBC_2.5 tee F
+GLIBC_2.5 vmsplice F
+GLIBC_2.6 GLIBC_2.6 A
+GLIBC_2.6 __sched_cpucount F
+GLIBC_2.6 epoll_pwait F
+GLIBC_2.6 futimens F
+GLIBC_2.6 sched_getcpu F
+GLIBC_2.6 strerror_l F
+GLIBC_2.6 sync_file_range F
+GLIBC_2.6 utimensat F
+GLIBC_2.7 GLIBC_2.7 A
+GLIBC_2.7 __fread_chk F
+GLIBC_2.7 __fread_unlocked_chk F
+GLIBC_2.7 __isoc99_fscanf F
+GLIBC_2.7 __isoc99_fwscanf F
+GLIBC_2.7 __isoc99_scanf F
+GLIBC_2.7 __isoc99_sscanf F
+GLIBC_2.7 __isoc99_swscanf F
+GLIBC_2.7 __isoc99_vfscanf F
+GLIBC_2.7 __isoc99_vfwscanf F
+GLIBC_2.7 __isoc99_vscanf F
+GLIBC_2.7 __isoc99_vsscanf F
+GLIBC_2.7 __isoc99_vswscanf F
+GLIBC_2.7 __isoc99_vwscanf F
+GLIBC_2.7 __isoc99_wscanf F
+GLIBC_2.7 __open64_2 F
+GLIBC_2.7 __open_2 F
+GLIBC_2.7 __openat64_2 F
+GLIBC_2.7 __openat_2 F
+GLIBC_2.7 __sched_cpualloc F
+GLIBC_2.7 __sched_cpufree F
+GLIBC_2.7 eventfd F
+GLIBC_2.7 eventfd_read F
+GLIBC_2.7 eventfd_write F
+GLIBC_2.7 mkostemp F
+GLIBC_2.7 mkostemp64 F
+GLIBC_2.7 signalfd F
+GLIBC_2.8 GLIBC_2.8 A
+GLIBC_2.8 __asprintf_chk F
+GLIBC_2.8 __dprintf_chk F
+GLIBC_2.8 __obstack_printf_chk F
+GLIBC_2.8 __obstack_vprintf_chk F
+GLIBC_2.8 __vasprintf_chk F
+GLIBC_2.8 __vdprintf_chk F
+GLIBC_2.8 qsort_r F
+GLIBC_2.8 timerfd_create F
+GLIBC_2.8 timerfd_gettime F
+GLIBC_2.8 timerfd_settime F
+GLIBC_2.9 GLIBC_2.9 A
+GLIBC_2.9 dup3 F
+GLIBC_2.9 epoll_create1 F
+GLIBC_2.9 inotify_init1 F
+GLIBC_2.9 pipe2 F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/i386/libcrypt.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/i386/libcrypt.abilist
new file mode 100644
index 0000000000..4db2639336
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/i386/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/i386/libdl.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/i386/libdl.abilist
new file mode 100644
index 0000000000..5536f6e0a9
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/i386/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/i386/libm.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/i386/libm.abilist
new file mode 100644
index 0000000000..761e4420f9
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/i386/libm.abilist
@@ -0,0 +1,476 @@
+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 __fpclassifyl F
+GLIBC_2.1 __signbit F
+GLIBC_2.1 __signbitf F
+GLIBC_2.1 __signbitl 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 exp2l 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 __expl F
+GLIBC_2.2 __expm1l F
+GLIBC_2.2 feclearexcept F
+GLIBC_2.2 fedisableexcept F
+GLIBC_2.2 feenableexcept F
+GLIBC_2.2 fegetenv F
+GLIBC_2.2 fegetexcept F
+GLIBC_2.2 fegetexceptflag F
+GLIBC_2.2 feraiseexcept F
+GLIBC_2.2 fesetenv F
+GLIBC_2.2 fesetexceptflag F
+GLIBC_2.2 feupdateenv 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 __iscanonicall F
+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
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/i386/libnsl.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/i386/libnsl.abilist
new file mode 100644
index 0000000000..a23db2aeaf
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/i386/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/i386/libpthread.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/i386/libpthread.abilist
new file mode 100644
index 0000000000..8f9c3254be
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/i386/libpthread.abilist
@@ -0,0 +1,257 @@
+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.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/i386/libresolv.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/i386/libresolv.abilist
new file mode 100644
index 0000000000..4d50e7c8c6
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/i386/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/i386/librt.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/i386/librt.abilist
new file mode 100644
index 0000000000..15e4418863
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/i386/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/i386/libthread_db.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/i386/libthread_db.abilist
new file mode 100644
index 0000000000..a8a8c2c68d
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/i386/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/i386/libutil.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/i386/libutil.abilist
new file mode 100644
index 0000000000..89c67755c4
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/i386/libutil.abilist
@@ -0,0 +1,7 @@
+GLIBC_2.0 GLIBC_2.0 A
+GLIBC_2.0 forkpty F
+GLIBC_2.0 login F
+GLIBC_2.0 login_tty F
+GLIBC_2.0 logout F
+GLIBC_2.0 logwtmp F
+GLIBC_2.0 openpty F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/i386/lll_timedlock_wait.c b/REORG.TODO/sysdeps/unix/sysv/linux/i386/lll_timedlock_wait.c
new file mode 100644
index 0000000000..f6875b8f89
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/i386/lll_timedlock_wait.c
@@ -0,0 +1 @@
+/* __lll_timedlock_wait is in lowlevellock.S. */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/i386/lll_timedwait_tid.c b/REORG.TODO/sysdeps/unix/sysv/linux/i386/lll_timedwait_tid.c
new file mode 100644
index 0000000000..43900c6294
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/i386/lll_timedwait_tid.c
@@ -0,0 +1 @@
+/* __lll_timedwait_tid is in lowlevellock.S. */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/i386/localplt.data b/REORG.TODO/sysdeps/unix/sysv/linux/i386/localplt.data
new file mode 100644
index 0000000000..8ea4333846
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/i386/localplt.data
@@ -0,0 +1,18 @@
+# Linker in binutils 2.26 and newer consolidates R_X86_64_JUMP_SLOT
+# relocation with R_386_GLOB_DAT relocation against the same symbol.
+libc.so: _Unwind_Find_FDE + REL R_386_GLOB_DAT
+libc.so: calloc + REL R_386_GLOB_DAT
+libc.so: free + REL R_386_GLOB_DAT
+libc.so: malloc + REL R_386_GLOB_DAT
+libc.so: memalign + REL R_386_GLOB_DAT
+libc.so: realloc + REL R_386_GLOB_DAT
+libm.so: matherr + REL R_386_GLOB_DAT
+# The main malloc is interposed into the dynamic linker, for
+# allocations after the initial link (when dlopen is used).
+ld.so: malloc + REL R_386_GLOB_DAT
+ld.so: calloc + REL R_386_GLOB_DAT
+ld.so: realloc + REL R_386_GLOB_DAT
+ld.so: free + REL R_386_GLOB_DAT
+# The TLS-enabled version of these functions is interposed from libc.so.
+ld.so: _dl_signal_error + REL R_386_GLOB_DAT
+ld.so: _dl_catch_error + REL R_386_GLOB_DAT
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/i386/lockf64.c b/REORG.TODO/sysdeps/unix/sysv/linux/i386/lockf64.c
new file mode 100644
index 0000000000..23b99f8f22
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/i386/lockf64.c
@@ -0,0 +1,70 @@
+/* Copyright (C) 1994-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sys/types.h>
+#include <unistd.h>
+#include <fcntl.h>
+#include <errno.h>
+#include <string.h>
+#include <sysdep.h>
+
+/* lockf is a simplified interface to fcntl's locking facilities. */
+
+int
+lockf64 (int fd, int cmd, off64_t len64)
+{
+ struct flock64 fl64;
+ int cmd64;
+ int result;
+
+ memset ((char *) &fl64, '\0', sizeof (fl64));
+ fl64.l_whence = SEEK_CUR;
+ fl64.l_start = 0;
+ fl64.l_len = len64;
+
+ switch (cmd)
+ {
+ case F_TEST:
+ /* Test the lock: return 0 if FD is unlocked or locked by this process;
+ return -1, set errno to EACCES, if another process holds the lock. */
+ fl64.l_type = F_RDLCK;
+ INTERNAL_SYSCALL_DECL (err);
+ result = INTERNAL_SYSCALL (fcntl64, err, 3, fd, F_GETLK64, &fl64);
+ if (__glibc_unlikely (INTERNAL_SYSCALL_ERROR_P (result, err)))
+ return INLINE_SYSCALL_ERROR_RETURN_VALUE (INTERNAL_SYSCALL_ERRNO (result,
+ err));
+ if (fl64.l_type == F_UNLCK || fl64.l_pid == __getpid ())
+ return 0;
+ return INLINE_SYSCALL_ERROR_RETURN_VALUE (EACCES);
+ case F_ULOCK:
+ fl64.l_type = F_UNLCK;
+ cmd64 = F_SETLK64;
+ break;
+ case F_LOCK:
+ fl64.l_type = F_WRLCK;
+ cmd64 = F_SETLKW64;
+ break;
+ case F_TLOCK:
+ fl64.l_type = F_WRLCK;
+ cmd64 = F_SETLK64;
+ break;
+
+ default:
+ return INLINE_SYSCALL_ERROR_RETURN_VALUE (EINVAL);
+ }
+ return INLINE_SYSCALL (fcntl64, 3, fd, cmd64, &fl64);
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/i386/lowlevellock.S b/REORG.TODO/sysdeps/unix/sysv/linux/i386/lowlevellock.S
new file mode 100644
index 0000000000..8fcca5be99
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/i386/lowlevellock.S
@@ -0,0 +1,466 @@
+/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#include <pthread-errnos.h>
+#include <kernel-features.h>
+#include <lowlevellock.h>
+
+#include <stap-probe.h>
+
+ .text
+
+#ifdef __ASSUME_PRIVATE_FUTEX
+# define LOAD_PRIVATE_FUTEX_WAIT(reg) \
+ movl $(FUTEX_WAIT | FUTEX_PRIVATE_FLAG), reg
+# define LOAD_PRIVATE_FUTEX_WAKE(reg) \
+ movl $(FUTEX_WAKE | FUTEX_PRIVATE_FLAG), reg
+# define LOAD_FUTEX_WAIT(reg) \
+ xorl $(FUTEX_WAIT | FUTEX_PRIVATE_FLAG), reg
+# define LOAD_FUTEX_WAIT_ABS(reg) \
+ xorl $(FUTEX_WAIT_BITSET | FUTEX_PRIVATE_FLAG | FUTEX_CLOCK_REALTIME), reg
+# define LOAD_FUTEX_WAKE(reg) \
+ xorl $(FUTEX_WAKE | FUTEX_PRIVATE_FLAG), reg
+#else
+# if FUTEX_WAIT == 0
+# define LOAD_PRIVATE_FUTEX_WAIT(reg) \
+ movl %gs:PRIVATE_FUTEX, reg
+# else
+# define LOAD_PRIVATE_FUTEX_WAIT(reg) \
+ movl %gs:PRIVATE_FUTEX, reg ; \
+ orl $FUTEX_WAIT, reg
+# endif
+# define LOAD_PRIVATE_FUTEX_WAKE(reg) \
+ movl %gs:PRIVATE_FUTEX, reg ; \
+ orl $FUTEX_WAKE, reg
+# if FUTEX_WAIT == 0
+# define LOAD_FUTEX_WAIT(reg) \
+ xorl $FUTEX_PRIVATE_FLAG, reg ; \
+ andl %gs:PRIVATE_FUTEX, reg
+# else
+# define LOAD_FUTEX_WAIT(reg) \
+ xorl $FUTEX_PRIVATE_FLAG, reg ; \
+ andl %gs:PRIVATE_FUTEX, reg ; \
+ orl $FUTEX_WAIT, reg
+# endif
+# define LOAD_FUTEX_WAIT_ABS(reg) \
+ xorl $FUTEX_PRIVATE_FLAG, reg ; \
+ andl %gs:PRIVATE_FUTEX, reg ; \
+ orl $FUTEX_WAIT_BITSET | FUTEX_CLOCK_REALTIME, reg
+# define LOAD_FUTEX_WAKE(reg) \
+ xorl $FUTEX_PRIVATE_FLAG, reg ; \
+ andl %gs:PRIVATE_FUTEX, reg ; \
+ orl $FUTEX_WAKE, reg
+#endif
+
+ .globl __lll_lock_wait_private
+ .type __lll_lock_wait_private,@function
+ .hidden __lll_lock_wait_private
+ .align 16
+__lll_lock_wait_private:
+ cfi_startproc
+ pushl %edx
+ cfi_adjust_cfa_offset(4)
+ pushl %ebx
+ cfi_adjust_cfa_offset(4)
+ pushl %esi
+ cfi_adjust_cfa_offset(4)
+ cfi_offset(%edx, -8)
+ cfi_offset(%ebx, -12)
+ cfi_offset(%esi, -16)
+
+ movl $2, %edx
+ movl %ecx, %ebx
+ xorl %esi, %esi /* No timeout. */
+ LOAD_PRIVATE_FUTEX_WAIT (%ecx)
+
+ cmpl %edx, %eax /* NB: %edx == 2 */
+ jne 2f
+
+1: LIBC_PROBE (lll_lock_wait_private, 1, %ebx)
+ movl $SYS_futex, %eax
+ ENTER_KERNEL
+
+2: movl %edx, %eax
+ xchgl %eax, (%ebx) /* NB: lock is implied */
+
+ testl %eax, %eax
+ jnz 1b
+
+ popl %esi
+ cfi_adjust_cfa_offset(-4)
+ cfi_restore(%esi)
+ popl %ebx
+ cfi_adjust_cfa_offset(-4)
+ cfi_restore(%ebx)
+ popl %edx
+ cfi_adjust_cfa_offset(-4)
+ cfi_restore(%edx)
+ ret
+ cfi_endproc
+ .size __lll_lock_wait_private,.-__lll_lock_wait_private
+
+#if !IS_IN (libc)
+ .globl __lll_lock_wait
+ .type __lll_lock_wait,@function
+ .hidden __lll_lock_wait
+ .align 16
+__lll_lock_wait:
+ cfi_startproc
+ pushl %edx
+ cfi_adjust_cfa_offset(4)
+ pushl %ebx
+ cfi_adjust_cfa_offset(4)
+ pushl %esi
+ cfi_adjust_cfa_offset(4)
+ cfi_offset(%edx, -8)
+ cfi_offset(%ebx, -12)
+ cfi_offset(%esi, -16)
+
+ movl %edx, %ebx
+ movl $2, %edx
+ xorl %esi, %esi /* No timeout. */
+ LOAD_FUTEX_WAIT (%ecx)
+
+ cmpl %edx, %eax /* NB: %edx == 2 */
+ jne 2f
+
+1: movl $SYS_futex, %eax
+ ENTER_KERNEL
+
+2: movl %edx, %eax
+ xchgl %eax, (%ebx) /* NB: lock is implied */
+
+ testl %eax, %eax
+ jnz 1b
+
+ popl %esi
+ cfi_adjust_cfa_offset(-4)
+ cfi_restore(%esi)
+ popl %ebx
+ cfi_adjust_cfa_offset(-4)
+ cfi_restore(%ebx)
+ popl %edx
+ cfi_adjust_cfa_offset(-4)
+ cfi_restore(%edx)
+ ret
+ cfi_endproc
+ .size __lll_lock_wait,.-__lll_lock_wait
+
+ /* %ecx: futex
+ %esi: flags
+ %edx: timeout
+ %eax: futex value
+ */
+ .globl __lll_timedlock_wait
+ .type __lll_timedlock_wait,@function
+ .hidden __lll_timedlock_wait
+ .align 16
+__lll_timedlock_wait:
+ cfi_startproc
+ pushl %ebp
+ cfi_adjust_cfa_offset(4)
+ cfi_rel_offset(%ebp, 0)
+ pushl %ebx
+ cfi_adjust_cfa_offset(4)
+ cfi_rel_offset(%ebx, 0)
+
+# ifndef __ASSUME_FUTEX_CLOCK_REALTIME
+# ifdef PIC
+ LOAD_PIC_REG (bx)
+ cmpl $0, __have_futex_clock_realtime@GOTOFF(%ebx)
+# else
+ cmpl $0, __have_futex_clock_realtime
+# endif
+ je .Lreltmo
+# endif
+
+ cmpl $0, (%edx)
+ js 8f
+
+ movl %ecx, %ebx
+ movl %esi, %ecx
+ movl %edx, %esi
+ movl $0xffffffff, %ebp
+ LOAD_FUTEX_WAIT_ABS (%ecx)
+
+ movl $2, %edx
+ cmpl %edx, %eax
+ jne 2f
+
+1: movl $SYS_futex, %eax
+ movl $2, %edx
+ ENTER_KERNEL
+
+2: xchgl %edx, (%ebx) /* NB: lock is implied */
+
+ testl %edx, %edx
+ jz 3f
+
+ cmpl $-ETIMEDOUT, %eax
+ je 4f
+ cmpl $-EINVAL, %eax
+ jne 1b
+4: movl %eax, %edx
+ negl %edx
+
+3: movl %edx, %eax
+7: popl %ebx
+ cfi_adjust_cfa_offset(-4)
+ cfi_restore(%ebx)
+ popl %ebp
+ cfi_adjust_cfa_offset(-4)
+ cfi_restore(%ebp)
+ ret
+
+8: movl $ETIMEDOUT, %eax
+ jmp 7b
+
+# ifndef __ASSUME_FUTEX_CLOCK_REALTIME
+.Lreltmo:
+ /* Check for a valid timeout value. */
+ cmpl $1000000000, 4(%edx)
+ jae 3f
+
+ pushl %esi
+ cfi_adjust_cfa_offset(4)
+ cfi_rel_offset(%esi, 0)
+ pushl %edi
+ cfi_adjust_cfa_offset(4)
+ cfi_rel_offset(%edi, 0)
+
+ /* Stack frame for the timespec and timeval structs. */
+ subl $8, %esp
+ cfi_adjust_cfa_offset(8)
+
+ movl %ecx, %ebp
+ movl %edx, %edi
+
+ movl $2, %edx
+ xchgl %edx, (%ebp)
+
+ test %edx, %edx
+ je 6f
+
+1:
+ /* Get current time. */
+ movl %esp, %ebx
+ xorl %ecx, %ecx
+ movl $__NR_gettimeofday, %eax
+ ENTER_KERNEL
+
+ /* Compute relative timeout. */
+ movl 4(%esp), %eax
+ movl $1000, %edx
+ mul %edx /* Milli seconds to nano seconds. */
+ movl (%edi), %ecx
+ movl 4(%edi), %edx
+ subl (%esp), %ecx
+ subl %eax, %edx
+ jns 4f
+ addl $1000000000, %edx
+ subl $1, %ecx
+4: testl %ecx, %ecx
+ js 2f /* Time is already up. */
+
+ /* Store relative timeout. */
+ movl %ecx, (%esp)
+ movl %edx, 4(%esp)
+
+ /* Futex call. */
+ movl %ebp, %ebx
+ movl $2, %edx
+ movl %esp, %esi
+ movl 16(%esp), %ecx
+ LOAD_FUTEX_WAIT (%ecx)
+ movl $SYS_futex, %eax
+ ENTER_KERNEL
+
+ /* NB: %edx == 2 */
+ xchgl %edx, (%ebp)
+
+ testl %edx, %edx
+ je 6f
+
+ cmpl $-ETIMEDOUT, %eax
+ jne 1b
+2: movl $ETIMEDOUT, %edx
+
+6: addl $8, %esp
+ cfi_adjust_cfa_offset(-8)
+ popl %edi
+ cfi_adjust_cfa_offset(-4)
+ cfi_restore(%edi)
+ popl %esi
+ cfi_adjust_cfa_offset(-4)
+ cfi_restore(%esi)
+7: popl %ebx
+ cfi_adjust_cfa_offset(-4)
+ cfi_restore(%ebx)
+ popl %ebp
+ cfi_adjust_cfa_offset(-4)
+ cfi_restore(%ebp)
+ movl %edx, %eax
+ ret
+
+3: movl $EINVAL, %edx
+ jmp 7b
+# endif
+ cfi_endproc
+ .size __lll_timedlock_wait,.-__lll_timedlock_wait
+#endif
+
+ .globl __lll_unlock_wake_private
+ .type __lll_unlock_wake_private,@function
+ .hidden __lll_unlock_wake_private
+ .align 16
+__lll_unlock_wake_private:
+ cfi_startproc
+ pushl %ebx
+ cfi_adjust_cfa_offset(4)
+ pushl %ecx
+ cfi_adjust_cfa_offset(4)
+ pushl %edx
+ cfi_adjust_cfa_offset(4)
+ cfi_offset(%ebx, -8)
+ cfi_offset(%ecx, -12)
+ cfi_offset(%edx, -16)
+
+ movl %eax, %ebx
+ movl $0, (%eax)
+ LOAD_PRIVATE_FUTEX_WAKE (%ecx)
+ movl $1, %edx /* Wake one thread. */
+ movl $SYS_futex, %eax
+ ENTER_KERNEL
+
+ popl %edx
+ cfi_adjust_cfa_offset(-4)
+ cfi_restore(%edx)
+ popl %ecx
+ cfi_adjust_cfa_offset(-4)
+ cfi_restore(%ecx)
+ popl %ebx
+ cfi_adjust_cfa_offset(-4)
+ cfi_restore(%ebx)
+ ret
+ cfi_endproc
+ .size __lll_unlock_wake_private,.-__lll_unlock_wake_private
+
+#if !IS_IN (libc)
+ .globl __lll_unlock_wake
+ .type __lll_unlock_wake,@function
+ .hidden __lll_unlock_wake
+ .align 16
+__lll_unlock_wake:
+ cfi_startproc
+ pushl %ebx
+ cfi_adjust_cfa_offset(4)
+ pushl %ecx
+ cfi_adjust_cfa_offset(4)
+ pushl %edx
+ cfi_adjust_cfa_offset(4)
+ cfi_offset(%ebx, -8)
+ cfi_offset(%ecx, -12)
+ cfi_offset(%edx, -16)
+
+ movl %eax, %ebx
+ movl $0, (%eax)
+ LOAD_FUTEX_WAKE (%ecx)
+ movl $1, %edx /* Wake one thread. */
+ movl $SYS_futex, %eax
+ ENTER_KERNEL
+
+ popl %edx
+ cfi_adjust_cfa_offset(-4)
+ cfi_restore(%edx)
+ popl %ecx
+ cfi_adjust_cfa_offset(-4)
+ cfi_restore(%ecx)
+ popl %ebx
+ cfi_adjust_cfa_offset(-4)
+ cfi_restore(%ebx)
+ ret
+ cfi_endproc
+ .size __lll_unlock_wake,.-__lll_unlock_wake
+
+ .globl __lll_timedwait_tid
+ .type __lll_timedwait_tid,@function
+ .hidden __lll_timedwait_tid
+ .align 16
+__lll_timedwait_tid:
+ pushl %edi
+ pushl %esi
+ pushl %ebx
+ pushl %ebp
+
+ movl %eax, %ebp
+ movl %edx, %edi
+ subl $8, %esp
+
+ /* Get current time. */
+2: movl %esp, %ebx
+ xorl %ecx, %ecx
+ movl $__NR_gettimeofday, %eax
+ ENTER_KERNEL
+
+ /* Compute relative timeout. */
+ movl 4(%esp), %eax
+ movl $1000, %edx
+ mul %edx /* Milli seconds to nano seconds. */
+ movl (%edi), %ecx
+ movl 4(%edi), %edx
+ subl (%esp), %ecx
+ subl %eax, %edx
+ jns 5f
+ addl $1000000000, %edx
+ subl $1, %ecx
+5: testl %ecx, %ecx
+ js 6f /* Time is already up. */
+
+ movl %ecx, (%esp) /* Store relative timeout. */
+ movl %edx, 4(%esp)
+
+ movl (%ebp), %edx
+ testl %edx, %edx
+ jz 4f
+
+ movl %esp, %esi
+ /* XXX The kernel so far uses global futex for the wakeup at
+ all times. */
+ xorl %ecx, %ecx /* movl $FUTEX_WAIT, %ecx */
+ movl %ebp, %ebx
+ movl $SYS_futex, %eax
+ ENTER_KERNEL
+
+ cmpl $0, (%ebx)
+ jne 1f
+4: xorl %eax, %eax
+
+3: addl $8, %esp
+ popl %ebp
+ popl %ebx
+ popl %esi
+ popl %edi
+ ret
+
+1: cmpl $-ETIMEDOUT, %eax
+ jne 2b
+6: movl $ETIMEDOUT, %eax
+ jmp 3b
+ .size __lll_timedwait_tid,.-__lll_timedwait_tid
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/i386/lowlevellock.h b/REORG.TODO/sysdeps/unix/sysv/linux/i386/lowlevellock.h
new file mode 100644
index 0000000000..197bb1fcd9
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/i386/lowlevellock.h
@@ -0,0 +1,267 @@
+/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _LOWLEVELLOCK_H
+#define _LOWLEVELLOCK_H 1
+
+#include <stap-probe.h>
+
+#ifndef __ASSEMBLER__
+# include <time.h>
+# include <sys/param.h>
+# include <bits/pthreadtypes.h>
+# include <kernel-features.h>
+# include <tcb-offsets.h>
+
+# ifndef LOCK_INSTR
+# ifdef UP
+# define LOCK_INSTR /* nothing */
+# else
+# define LOCK_INSTR "lock;"
+# endif
+# endif
+#else
+# ifndef LOCK
+# ifdef UP
+# define LOCK
+# else
+# define LOCK lock
+# endif
+# endif
+#endif
+
+#include <lowlevellock-futex.h>
+
+/* XXX Remove when no assembler code uses futexes anymore. */
+#define SYS_futex __NR_futex
+
+#ifndef __ASSEMBLER__
+
+/* Initializer for compatibility lock. */
+#define LLL_LOCK_INITIALIZER (0)
+#define LLL_LOCK_INITIALIZER_LOCKED (1)
+#define LLL_LOCK_INITIALIZER_WAITERS (2)
+
+
+/* NB: in the lll_trylock macro we simply return the value in %eax
+ after the cmpxchg instruction. In case the operation succeded this
+ value is zero. In case the operation failed, the cmpxchg instruction
+ has loaded the current value of the memory work which is guaranteed
+ to be nonzero. */
+#if !IS_IN (libc) || defined UP
+# define __lll_trylock_asm LOCK_INSTR "cmpxchgl %2, %1"
+#else
+# define __lll_trylock_asm "cmpl $0, %%gs:%P5\n\t" \
+ "je 0f\n\t" \
+ "lock\n" \
+ "0:\tcmpxchgl %2, %1"
+#endif
+
+#define lll_trylock(futex) \
+ ({ int ret; \
+ __asm __volatile (__lll_trylock_asm \
+ : "=a" (ret), "=m" (futex) \
+ : "r" (LLL_LOCK_INITIALIZER_LOCKED), "m" (futex), \
+ "0" (LLL_LOCK_INITIALIZER), \
+ "i" (MULTIPLE_THREADS_OFFSET) \
+ : "memory"); \
+ ret; })
+
+
+#define lll_cond_trylock(futex) \
+ ({ int ret; \
+ __asm __volatile (LOCK_INSTR "cmpxchgl %2, %1" \
+ : "=a" (ret), "=m" (futex) \
+ : "r" (LLL_LOCK_INITIALIZER_WAITERS), \
+ "m" (futex), "0" (LLL_LOCK_INITIALIZER) \
+ : "memory"); \
+ ret; })
+
+#if !IS_IN (libc) || defined UP
+# define __lll_lock_asm_start LOCK_INSTR "cmpxchgl %1, %2\n\t"
+#else
+# define __lll_lock_asm_start "cmpl $0, %%gs:%P6\n\t" \
+ "je 0f\n\t" \
+ "lock\n" \
+ "0:\tcmpxchgl %1, %2\n\t"
+#endif
+
+#define lll_lock(futex, private) \
+ (void) \
+ ({ int ignore1, ignore2; \
+ if (__builtin_constant_p (private) && (private) == LLL_PRIVATE) \
+ __asm __volatile (__lll_lock_asm_start \
+ "jz 18f\n\t" \
+ "1:\tleal %2, %%ecx\n" \
+ "2:\tcall __lll_lock_wait_private\n" \
+ "18:" \
+ : "=a" (ignore1), "=c" (ignore2), "=m" (futex) \
+ : "0" (0), "1" (1), "m" (futex), \
+ "i" (MULTIPLE_THREADS_OFFSET) \
+ : "memory"); \
+ else \
+ { \
+ int ignore3; \
+ __asm __volatile (__lll_lock_asm_start \
+ "jz 18f\n\t" \
+ "1:\tleal %2, %%edx\n" \
+ "0:\tmovl %8, %%ecx\n" \
+ "2:\tcall __lll_lock_wait\n" \
+ "18:" \
+ : "=a" (ignore1), "=c" (ignore2), \
+ "=m" (futex), "=&d" (ignore3) \
+ : "1" (1), "m" (futex), \
+ "i" (MULTIPLE_THREADS_OFFSET), "0" (0), \
+ "g" ((int) (private)) \
+ : "memory"); \
+ } \
+ })
+
+
+/* Special version of lll_lock which causes the unlock function to
+ always wakeup waiters. */
+#define lll_cond_lock(futex, private) \
+ (void) \
+ ({ int ignore1, ignore2, ignore3; \
+ __asm __volatile (LOCK_INSTR "cmpxchgl %1, %2\n\t" \
+ "jz 18f\n\t" \
+ "1:\tleal %2, %%edx\n" \
+ "0:\tmovl %7, %%ecx\n" \
+ "2:\tcall __lll_lock_wait\n" \
+ "18:" \
+ : "=a" (ignore1), "=c" (ignore2), "=m" (futex), \
+ "=&d" (ignore3) \
+ : "0" (0), "1" (2), "m" (futex), "g" ((int) (private))\
+ : "memory"); \
+ })
+
+
+#define lll_timedlock(futex, timeout, private) \
+ ({ int result, ignore1, ignore2, ignore3; \
+ __asm __volatile (LOCK_INSTR "cmpxchgl %1, %3\n\t" \
+ "jz 18f\n\t" \
+ "1:\tleal %3, %%ecx\n" \
+ "0:\tmovl %8, %%edx\n" \
+ "2:\tcall __lll_timedlock_wait\n" \
+ "18:" \
+ : "=a" (result), "=c" (ignore1), "=&d" (ignore2), \
+ "=m" (futex), "=S" (ignore3) \
+ : "0" (0), "1" (1), "m" (futex), "m" (timeout), \
+ "4" ((int) (private)) \
+ : "memory"); \
+ result; })
+
+extern int __lll_timedlock_elision (int *futex, short *adapt_count,
+ const struct timespec *timeout,
+ int private) attribute_hidden;
+
+#define lll_timedlock_elision(futex, adapt_count, timeout, private) \
+ __lll_timedlock_elision(&(futex), &(adapt_count), timeout, private)
+
+#if !IS_IN (libc) || defined UP
+# define __lll_unlock_asm LOCK_INSTR "subl $1, %0\n\t"
+#else
+# define __lll_unlock_asm "cmpl $0, %%gs:%P3\n\t" \
+ "je 0f\n\t" \
+ "lock\n" \
+ "0:\tsubl $1,%0\n\t"
+#endif
+
+#define lll_unlock(futex, private) \
+ (void) \
+ ({ int ignore; \
+ if (__builtin_constant_p (private) && (private) == LLL_PRIVATE) \
+ __asm __volatile (__lll_unlock_asm \
+ "je 18f\n\t" \
+ "1:\tleal %0, %%eax\n" \
+ "2:\tcall __lll_unlock_wake_private\n" \
+ "18:" \
+ : "=m" (futex), "=&a" (ignore) \
+ : "m" (futex), "i" (MULTIPLE_THREADS_OFFSET) \
+ : "memory"); \
+ else \
+ { \
+ int ignore2; \
+ __asm __volatile (__lll_unlock_asm \
+ "je 18f\n\t" \
+ "1:\tleal %0, %%eax\n" \
+ "0:\tmovl %5, %%ecx\n" \
+ "2:\tcall __lll_unlock_wake\n" \
+ "18:" \
+ : "=m" (futex), "=&a" (ignore), "=&c" (ignore2) \
+ : "i" (MULTIPLE_THREADS_OFFSET), "m" (futex), \
+ "g" ((int) (private)) \
+ : "memory"); \
+ } \
+ })
+
+
+#define lll_islocked(futex) \
+ (futex != LLL_LOCK_INITIALIZER)
+
+/* The kernel notifies a process which uses CLONE_CHILD_CLEARTID via futex
+ wake-up when the clone terminates. The memory location contains the
+ thread ID while the clone is running and is reset to zero by the kernel
+ afterwards. The kernel up to version 3.16.3 does not use the private futex
+ operations for futex wake-up when the clone terminates. */
+#define lll_wait_tid(tid) \
+ do { \
+ __typeof (tid) __tid; \
+ while ((__tid = (tid)) != 0) \
+ lll_futex_wait (&(tid), __tid, LLL_SHARED);\
+ } while (0)
+
+extern int __lll_timedwait_tid (int *tid, const struct timespec *abstime)
+ __attribute__ ((regparm (2))) attribute_hidden;
+
+/* As lll_wait_tid, but with a timeout. If the timeout occurs then return
+ ETIMEDOUT. If ABSTIME is invalid, return EINVAL.
+ XXX Note that this differs from the generic version in that we do the
+ error checking here and not in __lll_timedwait_tid. */
+#define lll_timedwait_tid(tid, abstime) \
+ ({ \
+ int __result = 0; \
+ if ((tid) != 0) \
+ { \
+ if ((abstime)->tv_nsec < 0 || (abstime)->tv_nsec >= 1000000000) \
+ __result = EINVAL; \
+ else \
+ __result = __lll_timedwait_tid (&(tid), (abstime)); \
+ } \
+ __result; })
+
+
+extern int __lll_lock_elision (int *futex, short *adapt_count, int private)
+ attribute_hidden;
+
+extern int __lll_unlock_elision(int *lock, int private)
+ attribute_hidden;
+
+extern int __lll_trylock_elision(int *lock, short *adapt_count)
+ attribute_hidden;
+
+#define lll_lock_elision(futex, adapt_count, private) \
+ __lll_lock_elision (&(futex), &(adapt_count), private)
+#define lll_unlock_elision(futex, adapt_count, private) \
+ __lll_unlock_elision (&(futex), private)
+#define lll_trylock_elision(futex, adapt_count) \
+ __lll_trylock_elision(&(futex), &(adapt_count))
+
+#endif /* !__ASSEMBLER__ */
+
+#endif /* lowlevellock.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/i386/lxstat.c b/REORG.TODO/sysdeps/unix/sysv/linux/i386/lxstat.c
new file mode 100644
index 0000000000..fc9d2f234a
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/i386/lxstat.c
@@ -0,0 +1,62 @@
+/* lxstat using old-style Unix lstat system call.
+ Copyright (C) 1991-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+/* Ho hum, if xstat == xstat64 we must get rid of the prototype or gcc
+ will complain since they don't strictly match. */
+#define __lxstat64 __lxstat64_disable
+
+#include <errno.h>
+#include <stddef.h>
+#include <sys/stat.h>
+#include <kernel_stat.h>
+
+#include <sysdep.h>
+#include <sys/syscall.h>
+
+#include <xstatconv.h>
+
+
+/* Get information about the file NAME in BUF. */
+int
+__lxstat (int vers, const char *name, struct stat *buf)
+{
+ int result;
+
+ if (vers == _STAT_VER_KERNEL)
+ return INLINE_SYSCALL (lstat, 2, name, buf);
+
+ {
+ struct stat64 buf64;
+
+ INTERNAL_SYSCALL_DECL (err);
+ result = INTERNAL_SYSCALL (lstat64, err, 2, name, &buf64);
+ if (__glibc_unlikely (INTERNAL_SYSCALL_ERROR_P (result, err)))
+ return INLINE_SYSCALL_ERROR_RETURN_VALUE (INTERNAL_SYSCALL_ERRNO (result,
+ err));
+ else
+ return __xstat32_conv (vers, &buf64, buf);
+ }
+}
+
+hidden_def (__lxstat)
+weak_alias (__lxstat, _lxstat);
+#if XSTAT_IS_XSTAT64
+#undef __lxstat64
+strong_alias (__lxstat, __lxstat64);
+hidden_ver (__lxstat, __lxstat64)
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/i386/makecontext.S b/REORG.TODO/sysdeps/unix/sysv/linux/i386/makecontext.S
new file mode 100644
index 0000000000..6d396dd328
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/i386/makecontext.S
@@ -0,0 +1,120 @@
+/* Create new context.
+ Copyright (C) 2001-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@redhat.com>, 2001.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+
+#include "ucontext_i.h"
+
+
+ENTRY(__makecontext)
+ movl 4(%esp), %eax
+
+ /* Load the address of the function we are supposed to run. */
+ movl 8(%esp), %ecx
+
+ /* Compute the address of the stack. The information comes from
+ to us_stack element. */
+ movl oSS_SP(%eax), %edx
+ movl %ecx, oEIP(%eax)
+ addl oSS_SIZE(%eax), %edx
+
+ /* Remember the number of parameters for the exit handler since
+ it has to remove them. We store the number in the EBX register
+ which the function we will call must preserve. */
+ movl 12(%esp), %ecx
+ movl %ecx, oEBX(%eax)
+
+ /* Make room on the new stack for the parameters.
+ Room for the arguments, return address (== L(exitcode)) and
+ oLINK pointer is needed. One of the pointer sizes is subtracted
+ after aligning the stack. */
+ negl %ecx
+ leal -4(%edx,%ecx,4), %edx
+ negl %ecx
+
+ /* Align the stack. */
+ andl $0xfffffff0, %edx
+ subl $4, %edx
+
+ /* Store the future stack pointer. */
+ movl %edx, oESP(%eax)
+
+ /* Put the next context on the new stack (from the uc_link
+ element). */
+ movl oLINK(%eax), %eax
+ movl %eax, 4(%edx,%ecx,4)
+
+ /* Copy all the parameters. */
+ jecxz 2f
+1: movl 12(%esp,%ecx,4), %eax
+ movl %eax, (%edx,%ecx,4)
+ decl %ecx
+ jnz 1b
+2:
+
+ /* If the function we call returns we must continue with the
+ context which is given in the uc_link element. To do this
+ set the return address for the function the user provides
+ to a little bit of helper code which does the magic (see
+ below). */
+#ifdef PIC
+ call 1f
+ cfi_adjust_cfa_offset (4)
+1: popl %ecx
+ cfi_adjust_cfa_offset (-4)
+ addl $L(exitcode)-1b, %ecx
+ movl %ecx, (%edx)
+#else
+ movl $L(exitcode), (%edx)
+#endif
+ /* We need to terminate the FDE here instead of after ret because
+ the unwinder looks at ra-1 for unwind information. */
+ cfi_endproc
+
+ /* 'makecontext' returns no value. */
+ ret
+
+ /* This is the helper code which gets called if a function which
+ is registered with 'makecontext' returns. In this case we
+ have to install the context listed in the uc_link element of
+ the context 'makecontext' manipulated at the time of the
+ 'makecontext' call. If the pointer is NULL the process must
+ terminate. */
+L(exitcode):
+ /* This removes the parameters passed to the function given to
+ 'makecontext' from the stack. EBX contains the number of
+ parameters (see above). */
+ leal (%esp,%ebx,4), %esp
+
+ cmpl $0, (%esp) /* Check the next context. */
+ je 2f /* If it is zero exit. */
+
+ call HIDDEN_JUMPTARGET(__setcontext)
+ /* If this returns (which can happen if the syscall fails) we'll
+ exit the program with the return error value (-1). */
+
+ movl %eax, (%esp)
+2: call HIDDEN_JUMPTARGET(exit)
+ /* The 'exit' call should never return. In case it does cause
+ the process to terminate. */
+ hlt
+ cfi_startproc
+END(__makecontext)
+
+weak_alias (__makecontext, makecontext)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/i386/olddirent.h b/REORG.TODO/sysdeps/unix/sysv/linux/i386/olddirent.h
new file mode 100644
index 0000000000..413f78d108
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/i386/olddirent.h
@@ -0,0 +1,44 @@
+/* Copyright (C) 2000-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef __OLD_DIRENT_H
+#define __OLD_DIRENT_H 1
+
+#include <dirent.h>
+
+struct __old_dirent64
+ {
+ __ino_t d_ino;
+ __off64_t d_off;
+ unsigned short int d_reclen;
+ unsigned char d_type;
+ char d_name[256]; /* We must not include limits.h! */
+ };
+
+/* Now define the internal interfaces. */
+extern struct __old_dirent64 *__old_readdir64 (DIR *__dirp);
+extern int __old_readdir64_r (DIR *__dirp, struct __old_dirent64 *__entry,
+ struct __old_dirent64 **__result);
+extern __ssize_t __old_getdents64 (int __fd, char *__buf, size_t __nbytes)
+ internal_function;
+int __old_scandir64 (const char * __dir,
+ struct __old_dirent64 *** __namelist,
+ int (*__selector) (const struct __old_dirent64 *),
+ int (*__cmp) (const struct __old_dirent64 **,
+ const struct __old_dirent64 **));
+
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/i386/profil-counter.h b/REORG.TODO/sysdeps/unix/sysv/linux/i386/profil-counter.h
new file mode 100644
index 0000000000..3e7f75d525
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/i386/profil-counter.h
@@ -0,0 +1,31 @@
+/* Low-level statistical profiling support function. Linux/i386 version.
+ Copyright (C) 1996-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <signal.h>
+#include <sigcontextinfo.h>
+
+static void
+__profil_counter (int signo, const SIGCONTEXT scp)
+{
+ profil_count ((void *) GET_PC (scp));
+
+ /* This is a hack to prevent the compiler from implementing the
+ above function call as a sibcall. The sibcall would overwrite
+ the signal context. */
+ asm volatile ("");
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/i386/putmsg.c b/REORG.TODO/sysdeps/unix/sysv/linux/i386/putmsg.c
new file mode 100644
index 0000000000..7270eb07ab
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/i386/putmsg.c
@@ -0,0 +1,34 @@
+/* Copyright (C) 1998-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <stddef.h>
+#include <stropts.h>
+
+#include <sysdep.h>
+#include <sys/syscall.h>
+
+#ifdef __NR_putpmsg
+int
+putmsg (int fildes, const struct strbuf *ctlptr, const struct strbuf *dataptr,
+ int flags)
+{
+ return INLINE_SYSCALL (putpmsg, 5, fildes, ctlptr, dataptr, -1, flags);
+}
+#else
+# include <streams/putmsg.c>
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/i386/readdir64.c b/REORG.TODO/sysdeps/unix/sysv/linux/i386/readdir64.c
new file mode 100644
index 0000000000..f80b6a7ba2
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/i386/readdir64.c
@@ -0,0 +1,43 @@
+/* Copyright (C) 2000-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#define __READDIR __readdir64
+#define __GETDENTS __getdents64
+#define DIRENT_TYPE struct dirent64
+
+#include <sysdeps/posix/readdir.c>
+
+#include <shlib-compat.h>
+
+#undef __READDIR
+#undef __GETDENTS
+#undef DIRENT_TYPE
+
+versioned_symbol (libc, __readdir64, readdir64, GLIBC_2_2);
+
+#if SHLIB_COMPAT(libc, GLIBC_2_1, GLIBC_2_2)
+
+#include <sysdeps/unix/sysv/linux/i386/olddirent.h>
+
+#define __READDIR attribute_compat_text_section __old_readdir64
+#define __GETDENTS __old_getdents64
+#define DIRENT_TYPE struct __old_dirent64
+
+#include <sysdeps/posix/readdir.c>
+
+compat_symbol (libc, __old_readdir64, readdir64, GLIBC_2_1);
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/i386/readdir64_r.c b/REORG.TODO/sysdeps/unix/sysv/linux/i386/readdir64_r.c
new file mode 100644
index 0000000000..344fd53d02
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/i386/readdir64_r.c
@@ -0,0 +1,43 @@
+/* Copyright (C) 2000-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#define __READDIR_R __readdir64_r
+#define __GETDENTS __getdents64
+#define DIRENT_TYPE struct dirent64
+
+#include <sysdeps/posix/readdir_r.c>
+
+#undef __READDIR_R
+#undef __GETDENTS
+#undef DIRENT_TYPE
+
+#include <shlib-compat.h>
+
+versioned_symbol (libc, __readdir64_r, readdir64_r, GLIBC_2_2);
+
+#if SHLIB_COMPAT(libc, GLIBC_2_1, GLIBC_2_2)
+
+#include <sysdeps/unix/sysv/linux/i386/olddirent.h>
+
+#define __READDIR_R attribute_compat_text_section __old_readdir64_r
+#define __GETDENTS __old_getdents64
+#define DIRENT_TYPE struct __old_dirent64
+
+#include <sysdeps/posix/readdir_r.c>
+
+compat_symbol (libc, __old_readdir64_r, readdir64_r, GLIBC_2_1);
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/i386/readelflib.c b/REORG.TODO/sysdeps/unix/sysv/linux/i386/readelflib.c
new file mode 100644
index 0000000000..5312007eb1
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/i386/readelflib.c
@@ -0,0 +1,93 @@
+/* Copyright (C) 1999-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Andreas Jaeger <aj@suse.de>, 1999 and
+ Jakub Jelinek <jakub@redhat.com>, 2000.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+
+int process_elf32_file (const char *file_name, const char *lib, int *flag,
+ unsigned int *osversion, char **soname,
+ void *file_contents, size_t file_length);
+int process_elf64_file (const char *file_name, const char *lib, int *flag,
+ unsigned int *osversion, char **soname,
+ void *file_contents, size_t file_length);
+
+/* Returns 0 if everything is ok, != 0 in case of error. */
+int
+process_elf_file (const char *file_name, const char *lib, int *flag,
+ unsigned int *osversion, char **soname, void *file_contents,
+ size_t file_length)
+{
+ ElfW(Ehdr) *elf_header = (ElfW(Ehdr) *) file_contents;
+ int ret, file_flag = 0;
+
+ switch (elf_header->e_machine)
+ {
+ case EM_X86_64:
+ if (elf_header->e_ident[EI_CLASS] == ELFCLASS64)
+ /* X86-64 64bit libraries are always libc.so.6+. */
+ file_flag = FLAG_X8664_LIB64|FLAG_ELF_LIBC6;
+ else
+ /* X32 libraries are always libc.so.6+. */
+ file_flag = FLAG_X8664_LIBX32|FLAG_ELF_LIBC6;
+ break;
+#ifndef SKIP_EM_IA_64
+ case EM_IA_64:
+ if (elf_header->e_ident[EI_CLASS] == ELFCLASS64)
+ {
+ /* IA64 64bit libraries are always libc.so.6+. */
+ file_flag = FLAG_IA64_LIB64|FLAG_ELF_LIBC6;
+ break;
+ }
+ goto failed;
+#endif
+ case EM_386:
+ if (elf_header->e_ident[EI_CLASS] == ELFCLASS32)
+ break;
+ /* Fall through. */
+ default:
+#ifndef SKIP_EM_IA_64
+failed:
+#endif
+ error (0, 0, _("%s is for unknown machine %d.\n"),
+ file_name, elf_header->e_machine);
+ return 1;
+ }
+
+ if (elf_header->e_ident[EI_CLASS] == ELFCLASS32)
+ ret = process_elf32_file (file_name, lib, flag, osversion, soname,
+ file_contents, file_length);
+ else
+ ret = process_elf64_file (file_name, lib, flag, osversion, soname,
+ file_contents, file_length);
+
+ if (!ret && file_flag)
+ *flag = file_flag;
+
+ return ret;
+}
+
+#undef __ELF_NATIVE_CLASS
+#undef process_elf_file
+#define process_elf_file process_elf32_file
+#define __ELF_NATIVE_CLASS 32
+#include "elf/readelflib.c"
+
+#undef __ELF_NATIVE_CLASS
+#undef process_elf_file
+#define process_elf_file process_elf64_file
+#define __ELF_NATIVE_CLASS 64
+#include "elf/readelflib.c"
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/i386/register-dump.h b/REORG.TODO/sysdeps/unix/sysv/linux/i386/register-dump.h
new file mode 100644
index 0000000000..0ca0866d47
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/i386/register-dump.h
@@ -0,0 +1,255 @@
+/* Dump registers.
+ Copyright (C) 1998-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
+
+ 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:
+
+ EAX: XXXXXXXX EBX: XXXXXXXX ECX: XXXXXXXX EDX: XXXXXXXX
+ ESI: XXXXXXXX EDI: XXXXXXXX EBP: XXXXXXXX ESP: XXXXXXXX
+
+ EIP: XXXXXXXX EFLAGS: XXXXXXXX
+
+ CS: XXXX DS: XXXX ES: XXXX FS: XXXX GS: XXXX SS: XXXX
+
+ Trap: XXXXXXXX Error: XXXXXXXX OldMask: XXXXXXXX
+ ESP/SIGNAL: XXXXXXXX CR2: XXXXXXXX
+
+ FPUCW: XXXXXXXX FPUSW: XXXXXXXX TAG: XXXXXXXX
+ IPOFF: XXXXXXXX CSSEL: XXXX DATAOFF: XXXXXXXX DATASEL: XXXX
+
+ 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[21][8];
+ char fpregs[31][8];
+ struct iovec iov[97];
+ 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->eax, regs[0], 8);
+ hexvalue (ctx->ebx, regs[1], 8);
+ hexvalue (ctx->ecx, regs[2], 8);
+ hexvalue (ctx->edx, regs[3], 8);
+ hexvalue (ctx->esi, regs[4], 8);
+ hexvalue (ctx->edi, regs[5], 8);
+ hexvalue (ctx->ebp, regs[6], 8);
+ hexvalue (ctx->esp, regs[7], 8);
+ hexvalue (ctx->eip, regs[8], 8);
+ hexvalue (ctx->eflags, regs[9], 8);
+ hexvalue (ctx->cs, regs[10], 4);
+ hexvalue (ctx->ds, regs[11], 4);
+ hexvalue (ctx->es, regs[12], 4);
+ hexvalue (ctx->fs, regs[13], 4);
+ hexvalue (ctx->gs, regs[14], 4);
+ hexvalue (ctx->ss, regs[15], 4);
+ hexvalue (ctx->trapno, regs[16], 8);
+ hexvalue (ctx->err, regs[17], 8);
+ hexvalue (ctx->oldmask, regs[18], 8);
+ hexvalue (ctx->esp_at_signal, regs[19], 8);
+ hexvalue (ctx->cr2, regs[20], 8);
+
+ /* Generate the output. */
+ ADD_STRING ("Register dump:\n\n EAX: ");
+ ADD_MEM (regs[0], 8);
+ ADD_STRING (" EBX: ");
+ ADD_MEM (regs[1], 8);
+ ADD_STRING (" ECX: ");
+ ADD_MEM (regs[2], 8);
+ ADD_STRING (" EDX: ");
+ ADD_MEM (regs[3], 8);
+ ADD_STRING ("\n ESI: ");
+ ADD_MEM (regs[4], 8);
+ ADD_STRING (" EDI: ");
+ ADD_MEM (regs[5], 8);
+ ADD_STRING (" EBP: ");
+ ADD_MEM (regs[6], 8);
+ ADD_STRING (" ESP: ");
+ ADD_MEM (regs[7], 8);
+ ADD_STRING ("\n\n EIP: ");
+ ADD_MEM (regs[8], 8);
+ ADD_STRING (" EFLAGS: ");
+ ADD_MEM (regs[9], 8);
+ ADD_STRING ("\n\n CS: ");
+ ADD_MEM (regs[10], 4);
+ ADD_STRING (" DS: ");
+ ADD_MEM (regs[11], 4);
+ ADD_STRING (" ES: ");
+ ADD_MEM (regs[12], 4);
+ ADD_STRING (" FS: ");
+ ADD_MEM (regs[13], 4);
+ ADD_STRING (" GS: ");
+ ADD_MEM (regs[14], 4);
+ ADD_STRING (" SS: ");
+ ADD_MEM (regs[15], 4);
+ ADD_STRING ("\n\n Trap: ");
+ ADD_MEM (regs[16], 8);
+ ADD_STRING (" Error: ");
+ ADD_MEM (regs[17], 8);
+ ADD_STRING (" OldMask: ");
+ ADD_MEM (regs[18], 8);
+ ADD_STRING ("\n ESP/signal: ");
+ ADD_MEM (regs[19], 8);
+ ADD_STRING (" CR2: ");
+ ADD_MEM (regs[20], 8);
+
+ if (ctx->fpstate != NULL)
+ {
+
+ /* Generate output for the FPU control/status registers. */
+ hexvalue (ctx->fpstate->cw, fpregs[0], 8);
+ hexvalue (ctx->fpstate->sw, fpregs[1], 8);
+ hexvalue (ctx->fpstate->tag, fpregs[2], 8);
+ hexvalue (ctx->fpstate->ipoff, fpregs[3], 8);
+ hexvalue (ctx->fpstate->cssel, fpregs[4], 4);
+ hexvalue (ctx->fpstate->dataoff, fpregs[5], 8);
+ hexvalue (ctx->fpstate->datasel, fpregs[6], 4);
+
+ ADD_STRING ("\n\n FPUCW: ");
+ ADD_MEM (fpregs[0], 8);
+ ADD_STRING (" FPUSW: ");
+ ADD_MEM (fpregs[1], 8);
+ ADD_STRING (" TAG: ");
+ ADD_MEM (fpregs[2], 8);
+ ADD_STRING ("\n IPOFF: ");
+ ADD_MEM (fpregs[3], 8);
+ ADD_STRING (" CSSEL: ");
+ ADD_MEM (fpregs[4], 4);
+ ADD_STRING (" DATAOFF: ");
+ ADD_MEM (fpregs[5], 8);
+ ADD_STRING (" DATASEL: ");
+ ADD_MEM (fpregs[6], 4);
+
+ /* Now the real FPU registers. */
+ hexvalue (ctx->fpstate->_st[0].exponent, fpregs[7], 8);
+ hexvalue (ctx->fpstate->_st[0].significand[3] << 16
+ | ctx->fpstate->_st[0].significand[2], fpregs[8], 8);
+ hexvalue (ctx->fpstate->_st[0].significand[1] << 16
+ | ctx->fpstate->_st[0].significand[0], fpregs[9], 8);
+ hexvalue (ctx->fpstate->_st[1].exponent, fpregs[10], 8);
+ hexvalue (ctx->fpstate->_st[1].significand[3] << 16
+ | ctx->fpstate->_st[1].significand[2], fpregs[11], 8);
+ hexvalue (ctx->fpstate->_st[1].significand[1] << 16
+ | ctx->fpstate->_st[1].significand[0], fpregs[12], 8);
+ hexvalue (ctx->fpstate->_st[2].exponent, fpregs[13], 8);
+ hexvalue (ctx->fpstate->_st[2].significand[3] << 16
+ | ctx->fpstate->_st[2].significand[2], fpregs[14], 8);
+ hexvalue (ctx->fpstate->_st[2].significand[1] << 16
+ | ctx->fpstate->_st[2].significand[0], fpregs[15], 8);
+ hexvalue (ctx->fpstate->_st[3].exponent, fpregs[16], 8);
+ hexvalue (ctx->fpstate->_st[3].significand[3] << 16
+ | ctx->fpstate->_st[3].significand[2], fpregs[17], 8);
+ hexvalue (ctx->fpstate->_st[3].significand[1] << 16
+ | ctx->fpstate->_st[3].significand[0], fpregs[18], 8);
+ hexvalue (ctx->fpstate->_st[4].exponent, fpregs[19], 8);
+ hexvalue (ctx->fpstate->_st[4].significand[3] << 16
+ | ctx->fpstate->_st[4].significand[2], fpregs[20], 8);
+ hexvalue (ctx->fpstate->_st[4].significand[1] << 16
+ | ctx->fpstate->_st[4].significand[0], fpregs[21], 8);
+ hexvalue (ctx->fpstate->_st[5].exponent, fpregs[22], 8);
+ hexvalue (ctx->fpstate->_st[5].significand[3] << 16
+ | ctx->fpstate->_st[5].significand[2], fpregs[23], 8);
+ hexvalue (ctx->fpstate->_st[5].significand[1] << 16
+ | ctx->fpstate->_st[5].significand[0], fpregs[24], 8);
+ hexvalue (ctx->fpstate->_st[6].exponent, fpregs[25], 8);
+ hexvalue (ctx->fpstate->_st[6].significand[3] << 16
+ | ctx->fpstate->_st[6].significand[2], fpregs[26], 8);
+ hexvalue (ctx->fpstate->_st[6].significand[1] << 16
+ | ctx->fpstate->_st[6].significand[0], fpregs[27], 8);
+ hexvalue (ctx->fpstate->_st[7].exponent, fpregs[28], 8);
+ hexvalue (ctx->fpstate->_st[7].significand[3] << 16
+ | ctx->fpstate->_st[7].significand[2], fpregs[29], 8);
+ hexvalue (ctx->fpstate->_st[7].significand[1] << 16
+ | ctx->fpstate->_st[7].significand[0], fpregs[30], 8);
+
+ ADD_STRING ("\n\n ST(0) ");
+ ADD_MEM (fpregs[7], 4);
+ ADD_STRING (" ");
+ ADD_MEM (fpregs[8], 8);
+ ADD_MEM (fpregs[9], 8);
+ ADD_STRING (" ST(1) ");
+ ADD_MEM (fpregs[10], 4);
+ ADD_STRING (" ");
+ ADD_MEM (fpregs[11], 8);
+ ADD_MEM (fpregs[12], 8);
+ ADD_STRING ("\n ST(2) ");
+ ADD_MEM (fpregs[13], 4);
+ ADD_STRING (" ");
+ ADD_MEM (fpregs[14], 8);
+ ADD_MEM (fpregs[15], 8);
+ ADD_STRING (" ST(3) ");
+ ADD_MEM (fpregs[16], 4);
+ ADD_STRING (" ");
+ ADD_MEM (fpregs[17], 8);
+ ADD_MEM (fpregs[18], 8);
+ ADD_STRING ("\n ST(4) ");
+ ADD_MEM (fpregs[19], 4);
+ ADD_STRING (" ");
+ ADD_MEM (fpregs[20], 8);
+ ADD_MEM (fpregs[21], 8);
+ ADD_STRING (" ST(5) ");
+ ADD_MEM (fpregs[22], 4);
+ ADD_STRING (" ");
+ ADD_MEM (fpregs[23], 8);
+ ADD_MEM (fpregs[24], 8);
+ ADD_STRING ("\n ST(6) ");
+ ADD_MEM (fpregs[25], 4);
+ ADD_STRING (" ");
+ ADD_MEM (fpregs[26], 8);
+ ADD_MEM (fpregs[27], 8);
+ ADD_STRING (" ST(7) ");
+ ADD_MEM (fpregs[28], 4);
+ ADD_STRING (" ");
+ ADD_MEM (fpregs[29], 8);
+ ADD_MEM (fpregs[30], 8);
+ }
+
+ ADD_STRING ("\n");
+
+ /* Write the stuff out. */
+ writev (fd, iov, nr);
+}
+
+
+#define REGISTER_DUMP register_dump (fd, &ctx)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/i386/scandir64.c b/REORG.TODO/sysdeps/unix/sysv/linux/i386/scandir64.c
new file mode 100644
index 0000000000..5089a2f1a5
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/i386/scandir64.c
@@ -0,0 +1,136 @@
+/* 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 <dirent.h>
+
+#define SCANDIR __scandir64
+#define SCANDIR_TAIL __scandir64_tail
+#define DIRENT_TYPE struct dirent64
+
+#include <dirent/scandir.c>
+
+#undef SCANDIR
+#undef SCANDIR_TAIL
+#undef DIRENT_TYPE
+
+#include <shlib-compat.h>
+
+versioned_symbol (libc, __scandir64, scandir64, GLIBC_2_2);
+
+#if SHLIB_COMPAT (libc, GLIBC_2_1, GLIBC_2_2)
+# include <string.h>
+# include <errno.h>
+# include "olddirent.h"
+
+int
+__old_scandir64 (const char *dir, struct __old_dirent64 ***namelist,
+ int (*select) (const struct __old_dirent64 *),
+ int (*cmp) (const struct __old_dirent64 **,
+ const struct __old_dirent64 **))
+{
+ DIR *dp = __opendir (dir);
+ struct __old_dirent64 **v = NULL;
+ size_t vsize = 0;
+ struct scandir_cancel_struct c;
+ struct __old_dirent64 *d;
+ int save;
+
+ if (dp == NULL)
+ return -1;
+
+ save = errno;
+ __set_errno (0);
+
+ c.dp = dp;
+ c.v = NULL;
+ c.cnt = 0;
+ __libc_cleanup_push (__scandir_cancel_handler, &c);
+
+ while ((d = __old_readdir64 (dp)) != NULL)
+ {
+ int use_it = select == NULL;
+
+ if (! use_it)
+ {
+ use_it = select (d);
+ /* The select function might have changed errno. It was
+ zero before and it need to be again to make the latter
+ tests work. */
+ __set_errno (0);
+ }
+
+ if (use_it)
+ {
+ struct __old_dirent64 *vnew;
+ size_t dsize;
+
+ /* Ignore errors from select or readdir */
+ __set_errno (0);
+
+ if (__glibc_unlikely (c.cnt == vsize))
+ {
+ struct __old_dirent64 **new;
+ if (vsize == 0)
+ vsize = 10;
+ else
+ vsize *= 2;
+ new = (struct __old_dirent64 **) realloc (v,
+ vsize * sizeof (*v));
+ if (new == NULL)
+ break;
+ v = new;
+ c.v = (void *) v;
+ }
+
+ dsize = &d->d_name[_D_ALLOC_NAMLEN (d)] - (char *) d;
+ vnew = (struct __old_dirent64 *) malloc (dsize);
+ if (vnew == NULL)
+ break;
+
+ v[c.cnt++] = (struct __old_dirent64 *) memcpy (vnew, d, dsize);
+ }
+ }
+
+ if (__builtin_expect (errno, 0) != 0)
+ {
+ save = errno;
+
+ while (c.cnt > 0)
+ free (v[--c.cnt]);
+ free (v);
+ c.cnt = -1;
+ }
+ else
+ {
+ /* Sort the list if we have a comparison function to sort with. */
+ if (cmp != NULL)
+ qsort (v, c.cnt, sizeof (*v),
+ (int (*) (const void *, const void *)) cmp);
+
+ *namelist = v;
+ }
+
+ __libc_cleanup_pop (0);
+
+ (void) __closedir (dp);
+ __set_errno (save);
+
+ return c.cnt;
+}
+compat_symbol (libc, __old_scandir64, scandir64, GLIBC_2_1);
+
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/i386/setcontext.S b/REORG.TODO/sysdeps/unix/sysv/linux/i386/setcontext.S
new file mode 100644
index 0000000000..c6fa618a01
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/i386/setcontext.S
@@ -0,0 +1,96 @@
+/* Install given context.
+ Copyright (C) 2001-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@redhat.com>, 2001.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+
+#include "ucontext_i.h"
+
+
+ENTRY(__setcontext)
+ /* Load address of the context data structure. */
+ movl 4(%esp), %eax
+
+ /* Get the current signal mask. Note that we preserve EBX in case
+ the system call fails and we return from the function with an
+ error. */
+ pushl %ebx
+ cfi_adjust_cfa_offset (4)
+ xorl %edx, %edx
+ leal oSIGMASK(%eax), %ecx
+ movl $SIG_SETMASK, %ebx
+ cfi_rel_offset (ebx, 0)
+ movl $__NR_sigprocmask, %eax
+ ENTER_KERNEL
+ popl %ebx
+ cfi_adjust_cfa_offset (-4)
+ cfi_restore (ebx)
+ cmpl $-4095, %eax /* Check %eax for error. */
+ jae SYSCALL_ERROR_LABEL /* Jump to error handler if error. */
+
+ /* EAX was modified, reload it. */
+ movl 4(%esp), %eax
+
+ /* Restore the floating-point context. Not the registers, only the
+ rest. */
+ movl oFPREGS(%eax), %ecx
+ fldenv (%ecx)
+
+ /* Restore the FS segment register. We don't touch the GS register
+ since it is used for threads. */
+ movl oFS(%eax), %ecx
+ movw %cx, %fs
+
+ /* Fetch the address to return to. */
+ movl oEIP(%eax), %ecx
+
+ /* Load the new stack pointer. */
+ cfi_def_cfa (eax, 0)
+ cfi_offset (edi, oEDI)
+ cfi_offset (esi, oESI)
+ cfi_offset (ebp, oEBP)
+ cfi_offset (ebx, oEBX)
+ cfi_offset (edx, oEDX)
+ cfi_offset (ecx, oECX)
+ movl oESP(%eax), %esp
+
+ /* Push the return address on the new stack so we can return there. */
+ pushl %ecx
+
+ /* Load the values of all the 32-bit registers (except ESP).
+ Since we are loading from EAX, it must be last. */
+ movl oEDI(%eax), %edi
+ movl oESI(%eax), %esi
+ movl oEBP(%eax), %ebp
+ movl oEBX(%eax), %ebx
+ movl oEDX(%eax), %edx
+ movl oECX(%eax), %ecx
+ movl oEAX(%eax), %eax
+
+ /* End FDE here, we fall into another context. */
+ cfi_endproc
+ cfi_startproc
+
+ /* The following 'ret' will pop the address of the code and jump
+ to it. */
+
+ ret
+PSEUDO_END(__setcontext)
+libc_hidden_def (__setcontext)
+
+weak_alias (__setcontext, setcontext)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/i386/shlib-versions b/REORG.TODO/sysdeps/unix/sysv/linux/i386/shlib-versions
new file mode 100644
index 0000000000..ca5d15b1df
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/i386/shlib-versions
@@ -0,0 +1 @@
+ld=ld-linux.so.2
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/i386/sigaction.c b/REORG.TODO/sysdeps/unix/sysv/linux/i386/sigaction.c
new file mode 100644
index 0000000000..0cc9d67ad9
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/i386/sigaction.c
@@ -0,0 +1,129 @@
+/* POSIX.1 `sigaction' call for Linux/i386.
+ Copyright (C) 1991-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#include <errno.h>
+#include <stddef.h>
+#include <signal.h>
+#include <string.h>
+
+#include <sysdep.h>
+#include <sys/syscall.h>
+#include <ldsodefs.h>
+
+/* The difference here is that the sigaction structure used in the
+ kernel is not the same as we use in the libc. Therefore we must
+ translate it here. */
+#include <kernel_sigaction.h>
+
+/* We do not globally define the SA_RESTORER flag so do it here. */
+#define SA_RESTORER 0x04000000
+
+
+/* Using the hidden attribute here does not change the code but it
+ helps to avoid warnings. */
+#ifdef __NR_rt_sigaction
+extern void restore_rt (void) asm ("__restore_rt") attribute_hidden;
+#endif
+extern void restore (void) asm ("__restore") attribute_hidden;
+
+
+/* If ACT is not NULL, change the action for SIG to *ACT.
+ If OACT is not NULL, put the old action for SIG in *OACT. */
+int
+__libc_sigaction (int sig, const struct sigaction *act, struct sigaction *oact)
+{
+ int result;
+
+ struct kernel_sigaction kact, koact;
+
+ if (act)
+ {
+ kact.k_sa_handler = act->sa_handler;
+ kact.sa_flags = act->sa_flags;
+ memcpy (&kact.sa_mask, &act->sa_mask, sizeof (sigset_t));
+
+ if (GLRO(dl_sysinfo_dso) == NULL)
+ {
+ kact.sa_flags |= SA_RESTORER;
+
+ kact.sa_restorer = ((act->sa_flags & SA_SIGINFO)
+ ? &restore_rt : &restore);
+ }
+ }
+
+ /* XXX The size argument hopefully will have to be changed to the
+ real size of the user-level sigset_t. */
+ INTERNAL_SYSCALL_DECL (err);
+ result = INTERNAL_SYSCALL (rt_sigaction, err, 4,
+ sig, act ? &kact : NULL,
+ oact ? &koact : NULL, _NSIG / 8);
+ if (__glibc_unlikely (INTERNAL_SYSCALL_ERROR_P (result, err)))
+ return INLINE_SYSCALL_ERROR_RETURN_VALUE (INTERNAL_SYSCALL_ERRNO (result,
+ err));
+ else if (oact && result >= 0)
+ {
+ oact->sa_handler = koact.k_sa_handler;
+ memcpy (&oact->sa_mask, &koact.sa_mask, sizeof (sigset_t));
+ oact->sa_flags = koact.sa_flags;
+ oact->sa_restorer = koact.sa_restorer;
+ }
+ return result;
+}
+libc_hidden_def (__libc_sigaction)
+
+#include <nptl/sigaction.c>
+
+/* NOTE: Please think twice before making any changes to the bits of
+ code below. GDB needs some intimate knowledge about it to
+ recognize them as signal trampolines, and make backtraces through
+ signal handlers work right. Important are both the names
+ (__restore and __restore_rt) and the exact instruction sequence.
+ If you ever feel the need to make any changes, please notify the
+ appropriate GDB maintainer. */
+
+#define RESTORE(name, syscall) RESTORE2 (name, syscall)
+#define RESTORE2(name, syscall) \
+asm \
+ ( \
+ ".text\n" \
+ " .align 16\n" \
+ "__" #name ":\n" \
+ " movl $" #syscall ", %eax\n" \
+ " int $0x80" \
+ );
+
+#ifdef __NR_rt_sigaction
+/* The return code for realtime-signals. */
+RESTORE (restore_rt, __NR_rt_sigreturn)
+#endif
+
+/* For the boring old signals. */
+#undef RESTORE2
+#define RESTORE2(name, syscall) \
+asm \
+ ( \
+ ".text\n" \
+ " .align 8\n" \
+ "__" #name ":\n" \
+ " popl %eax\n" \
+ " movl $" #syscall ", %eax\n" \
+ " int $0x80" \
+ );
+
+RESTORE (restore, __NR_sigreturn)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/i386/sigcontextinfo.h b/REORG.TODO/sysdeps/unix/sysv/linux/i386/sigcontextinfo.h
new file mode 100644
index 0000000000..7e2764eb65
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/i386/sigcontextinfo.h
@@ -0,0 +1,50 @@
+/* Copyright (C) 1998-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#define SIGCONTEXT struct sigcontext
+#define SIGCONTEXT_EXTRA_ARGS
+#define GET_PC(ctx) ((void *) ctx.eip)
+#define GET_FRAME(ctx) ((void *) ctx.ebp)
+#define GET_STACK(ctx) ((void *) ctx.esp_at_signal)
+#define CALL_SIGHANDLER(handler, signo, ctx) \
+do { \
+ int __tmp1, __tmp2, __tmp3, __tmp4; \
+ __asm __volatile ("movl\t%%esp, %%edi\n\t" \
+ "andl\t$-16, %%esp\n\t" \
+ "subl\t%8, %%esp\n\t" \
+ "movl\t%%edi, %c8-4(%%esp)\n\t" \
+ "movl\t%1, 0(%%esp)\n\t" \
+ "leal\t4(%%esp), %%edi\n\t" \
+ "cld\n\t" \
+ "rep\tmovsl\n\t" \
+ "call\t*%0\n\t" \
+ "cld\n\t" \
+ "movl\t%9, %%ecx\n\t" \
+ "subl\t%%edi, %%esi\n\t" \
+ "leal\t4(%%esp,%%esi,1), %%edi\n\t" \
+ "leal\t4(%%esp), %%esi\n\t" \
+ "rep\tmovsl\n\t" \
+ "movl\t%c8-4(%%esp), %%esp\n\t" \
+ : "=a" (__tmp1), "=d" (__tmp2), "=S" (__tmp3), \
+ "=c" (__tmp4) \
+ : "0" (handler), "1" (signo), "2" (&ctx), \
+ "3" (sizeof (struct sigcontext) / 4), \
+ "n" ((sizeof (struct sigcontext) + 19) & ~15), \
+ "i" (sizeof (struct sigcontext) / 4) \
+ : "cc", "edi"); \
+} while (0)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/i386/smp.h b/REORG.TODO/sysdeps/unix/sysv/linux/i386/smp.h
new file mode 100644
index 0000000000..7d1a7f201b
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/i386/smp.h
@@ -0,0 +1,55 @@
+/* Determine whether the host has multiple processors. Linux version.
+ Copyright (C) 1996-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public License as
+ published by the Free Software Foundation; either version 2 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with the GNU C Library; see the file COPYING.LIB. If
+ not, see <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <fcntl.h>
+#include <string.h>
+#include <sys/utsname.h>
+#include <not-cancel.h>
+
+/* Test whether the machine has more than one processor. This is not the
+ best test but good enough. More complicated tests would require `malloc'
+ which is not available at that time. */
+static inline int
+is_smp_system (void)
+{
+ union
+ {
+ struct utsname uts;
+ char buf[512];
+ } u;
+ char *cp;
+
+ /* Try reading the number using `sysctl' first. */
+ if (uname (&u.uts) == 0)
+ cp = u.uts.version;
+ else
+ {
+ /* This was not successful. Now try reading the /proc filesystem. */
+ int fd = open_not_cancel_2 ("/proc/sys/kernel/version", O_RDONLY);
+ if (__builtin_expect (fd, 0) == -1
+ || read_not_cancel (fd, u.buf, sizeof (u.buf)) <= 0)
+ /* This also didn't work. We give up and say it's a UP machine. */
+ u.buf[0] = '\0';
+
+ close_not_cancel_no_status (fd);
+ cp = u.buf;
+ }
+
+ return strstr (cp, "SMP") != NULL;
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/i386/swapcontext.S b/REORG.TODO/sysdeps/unix/sysv/linux/i386/swapcontext.S
new file mode 100644
index 0000000000..cfdb1f0ad1
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/i386/swapcontext.S
@@ -0,0 +1,109 @@
+/* Save current context and install the given one.
+ Copyright (C) 2001-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@redhat.com>, 2001.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+
+#include "ucontext_i.h"
+
+
+ENTRY(__swapcontext)
+ /* Load address of the context data structure we save in. */
+ movl 4(%esp), %eax
+
+ /* Return value of swapcontext. EAX is the only register whose
+ value is not preserved. */
+ movl $0, oEAX(%eax)
+
+ /* Save the 32-bit register values and the return address. */
+ movl %ecx, oECX(%eax)
+ movl %edx, oEDX(%eax)
+ movl %edi, oEDI(%eax)
+ movl %esi, oESI(%eax)
+ movl %ebp, oEBP(%eax)
+ movl (%esp), %ecx
+ movl %ecx, oEIP(%eax)
+ leal 4(%esp), %ecx
+ movl %ecx, oESP(%eax)
+ movl %ebx, oEBX(%eax)
+
+ /* Save the FS segment register. */
+ xorl %edx, %edx
+ movw %fs, %dx
+ movl %edx, oFS(%eax)
+
+ /* We have separate floating-point register content memory on the
+ stack. We use the __fpregs_mem block in the context. Set the
+ links up correctly. */
+ leal oFPREGSMEM(%eax), %ecx
+ movl %ecx, oFPREGS(%eax)
+ /* Save the floating-point context. */
+ fnstenv (%ecx)
+
+ /* Load address of the context data structure we have to load. */
+ movl 8(%esp), %ecx
+
+ /* Save the current signal mask and install the new one. */
+ pushl %ebx
+ leal oSIGMASK(%eax), %edx
+ leal oSIGMASK(%ecx), %ecx
+ movl $SIG_SETMASK, %ebx
+ movl $__NR_sigprocmask, %eax
+ ENTER_KERNEL
+ popl %ebx
+ cmpl $-4095, %eax /* Check %eax for error. */
+ jae SYSCALL_ERROR_LABEL /* Jump to error handler if error. */
+
+ /* EAX was modified, reload it. */
+ movl 8(%esp), %eax
+
+ /* Restore the floating-point context. Not the registers, only the
+ rest. */
+ movl oFPREGS(%eax), %ecx
+ fldenv (%ecx)
+
+ /* Restore the FS segment register. We don't touch the GS register
+ since it is used for threads. */
+ movl oFS(%eax), %edx
+ movw %dx, %fs
+
+ /* Fetch the address to return to. */
+ movl oEIP(%eax), %ecx
+
+ /* Load the new stack pointer. */
+ movl oESP(%eax), %esp
+
+ /* Push the return address on the new stack so we can return there. */
+ pushl %ecx
+
+ /* Load the values of all the 32-bit registers (except ESP).
+ Since we are loading from EAX, it must be last. */
+ movl oEDI(%eax), %edi
+ movl oESI(%eax), %esi
+ movl oEBP(%eax), %ebp
+ movl oEBX(%eax), %ebx
+ movl oEDX(%eax), %edx
+ movl oECX(%eax), %ecx
+ movl oEAX(%eax), %eax
+
+ /* The following 'ret' will pop the address of the code and jump
+ to it. */
+ ret
+PSEUDO_END(__swapcontext)
+
+weak_alias (__swapcontext, swapcontext)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/i386/syscall.S b/REORG.TODO/sysdeps/unix/sysv/linux/i386/syscall.S
new file mode 100644
index 0000000000..9d2f176ad4
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/i386/syscall.S
@@ -0,0 +1,35 @@
+/* Copyright (C) 1995-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+
+/* Please consult the file sysdeps/unix/sysv/linux/i386/sysdep.h for
+ more information about the value -4095 used below.*/
+
+ .text
+ENTRY (syscall)
+
+ PUSHARGS_6 /* Save register contents. */
+ _DOARGS_6(44) /* Load arguments. */
+ movl 20(%esp), %eax /* Load syscall number into %eax. */
+ ENTER_KERNEL /* Do the system call. */
+ POPARGS_6 /* Restore register contents. */
+ cmpl $-4095, %eax /* Check %eax for error. */
+ jae SYSCALL_ERROR_LABEL /* Jump to error handler if error. */
+ ret /* Return to caller. */
+
+PSEUDO_END (syscall)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/i386/syscalls.list b/REORG.TODO/sysdeps/unix/sysv/linux/i386/syscalls.list
new file mode 100644
index 0000000000..58020dfae5
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/i386/syscalls.list
@@ -0,0 +1,26 @@
+# 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
+
+modify_ldt EXTRA modify_ldt i:ipi __modify_ldt modify_ldt
+vm86old EXTRA vm86old i:p __vm86old vm86@GLIBC_2.0
+vm86 - vm86 i:ip __vm86 vm86@@GLIBC_2.3.4
+
+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/i386/sysdep-cancel.h b/REORG.TODO/sysdeps/unix/sysv/linux/i386/sysdep-cancel.h
new file mode 100644
index 0000000000..ebf601918f
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/i386/sysdep-cancel.h
@@ -0,0 +1,153 @@
+/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Jakub Jelinek <jakub@redhat.com>, 2002.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#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; \
+ ENTRY (name) \
+ cmpl $0, %gs:MULTIPLE_THREADS_OFFSET; \
+ jne L(pseudo_cancel); \
+ .type __##syscall_name##_nocancel,@function; \
+ .globl __##syscall_name##_nocancel; \
+ __##syscall_name##_nocancel: \
+ DO_CALL (syscall_name, args); \
+ cmpl $-4095, %eax; \
+ jae SYSCALL_ERROR_LABEL; \
+ ret; \
+ .size __##syscall_name##_nocancel,.-__##syscall_name##_nocancel; \
+ L(pseudo_cancel): \
+ CENABLE \
+ SAVE_OLDTYPE_##args \
+ PUSHCARGS_##args \
+ DOCARGS_##args \
+ movl $SYS_ify (syscall_name), %eax; \
+ ENTER_KERNEL; \
+ POPCARGS_##args; \
+ POPSTATE_##args \
+ cmpl $-4095, %eax; \
+ jae SYSCALL_ERROR_LABEL
+
+# define SAVE_OLDTYPE_0 movl %eax, %ecx;
+# define SAVE_OLDTYPE_1 SAVE_OLDTYPE_0
+# define SAVE_OLDTYPE_2 pushl %eax; cfi_adjust_cfa_offset (4);
+# define SAVE_OLDTYPE_3 SAVE_OLDTYPE_2
+# define SAVE_OLDTYPE_4 SAVE_OLDTYPE_2
+# define SAVE_OLDTYPE_5 SAVE_OLDTYPE_2
+# define SAVE_OLDTYPE_6 SAVE_OLDTYPE_2
+
+# define PUSHCARGS_0 /* No arguments to push. */
+# define DOCARGS_0 /* No arguments to frob. */
+# define POPCARGS_0 /* No arguments to pop. */
+# define _PUSHCARGS_0 /* No arguments to push. */
+# define _POPCARGS_0 /* No arguments to pop. */
+
+# define PUSHCARGS_1 movl %ebx, %edx; cfi_register (ebx, edx); PUSHCARGS_0
+# define DOCARGS_1 _DOARGS_1 (4)
+# define POPCARGS_1 POPCARGS_0; movl %edx, %ebx; cfi_restore (ebx);
+# define _PUSHCARGS_1 pushl %ebx; cfi_adjust_cfa_offset (4); \
+ cfi_rel_offset (ebx, 0); _PUSHCARGS_0
+# define _POPCARGS_1 _POPCARGS_0; popl %ebx; \
+ cfi_adjust_cfa_offset (-4); cfi_restore (ebx);
+
+# define PUSHCARGS_2 PUSHCARGS_1
+# define DOCARGS_2 _DOARGS_2 (12)
+# define POPCARGS_2 POPCARGS_1
+# define _PUSHCARGS_2 _PUSHCARGS_1
+# define _POPCARGS_2 _POPCARGS_1
+
+# define PUSHCARGS_3 _PUSHCARGS_2
+# define DOCARGS_3 _DOARGS_3 (20)
+# define POPCARGS_3 _POPCARGS_3
+# define _PUSHCARGS_3 _PUSHCARGS_2
+# define _POPCARGS_3 _POPCARGS_2
+
+# define PUSHCARGS_4 _PUSHCARGS_4
+# define DOCARGS_4 _DOARGS_4 (28)
+# define POPCARGS_4 _POPCARGS_4
+# define _PUSHCARGS_4 pushl %esi; cfi_adjust_cfa_offset (4); \
+ cfi_rel_offset (esi, 0); _PUSHCARGS_3
+# define _POPCARGS_4 _POPCARGS_3; popl %esi; \
+ cfi_adjust_cfa_offset (-4); cfi_restore (esi);
+
+# define PUSHCARGS_5 _PUSHCARGS_5
+# define DOCARGS_5 _DOARGS_5 (36)
+# define POPCARGS_5 _POPCARGS_5
+# define _PUSHCARGS_5 pushl %edi; cfi_adjust_cfa_offset (4); \
+ cfi_rel_offset (edi, 0); _PUSHCARGS_4
+# define _POPCARGS_5 _POPCARGS_4; popl %edi; \
+ cfi_adjust_cfa_offset (-4); cfi_restore (edi);
+
+# define PUSHCARGS_6 _PUSHCARGS_6
+# define DOCARGS_6 _DOARGS_6 (44)
+# define POPCARGS_6 _POPCARGS_6
+# define _PUSHCARGS_6 pushl %ebp; cfi_adjust_cfa_offset (4); \
+ cfi_rel_offset (ebp, 0); _PUSHCARGS_5
+# define _POPCARGS_6 _POPCARGS_5; popl %ebp; \
+ cfi_adjust_cfa_offset (-4); cfi_restore (ebp);
+
+# if IS_IN (libpthread)
+# define CENABLE call __pthread_enable_asynccancel;
+# define CDISABLE call __pthread_disable_asynccancel
+# elif IS_IN (libc)
+# define CENABLE call __libc_enable_asynccancel;
+# define CDISABLE call __libc_disable_asynccancel
+# elif IS_IN (librt)
+# define CENABLE call __librt_enable_asynccancel;
+# define CDISABLE call __librt_disable_asynccancel
+# else
+# error Unsupported library
+# endif
+# define POPSTATE_0 \
+ pushl %eax; cfi_adjust_cfa_offset (4); movl %ecx, %eax; \
+ CDISABLE; popl %eax; cfi_adjust_cfa_offset (-4);
+# define POPSTATE_1 POPSTATE_0
+# define POPSTATE_2 xchgl (%esp), %eax; CDISABLE; popl %eax; \
+ cfi_adjust_cfa_offset (-4);
+# define POPSTATE_3 POPSTATE_2
+# define POPSTATE_4 POPSTATE_3
+# define POPSTATE_5 POPSTATE_4
+# define POPSTATE_6 POPSTATE_5
+
+# ifndef __ASSEMBLER__
+# define SINGLE_THREAD_P \
+ __builtin_expect (THREAD_GETMEM (THREAD_SELF, \
+ header.multiple_threads) == 0, 1)
+# else
+# define SINGLE_THREAD_P cmpl $0, %gs:MULTIPLE_THREADS_OFFSET
+# 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/i386/sysdep.c b/REORG.TODO/sysdeps/unix/sysv/linux/i386/sysdep.c
new file mode 100644
index 0000000000..7d65ad3518
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/i386/sysdep.c
@@ -0,0 +1,30 @@
+/* Copyright (C) 2015-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <sysdep.h>
+
+/* This routine is jumped to by all the syscall handlers, to stash
+ an error number into errno. ERROR is the negative error number
+ returned from the x86 kernel. */
+int
+__attribute__ ((__regparm__ (1)))
+__syscall_error (int error)
+{
+ __set_errno (-error);
+ return -1;
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/i386/sysdep.h b/REORG.TODO/sysdeps/unix/sysv/linux/i386/sysdep.h
new file mode 100644
index 0000000000..449b23e49b
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/i386/sysdep.h
@@ -0,0 +1,657 @@
+/* Copyright (C) 1992-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper, <drepper@gnu.org>, August 1995.
+
+ 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_I386_SYSDEP_H
+#define _LINUX_I386_SYSDEP_H 1
+
+/* There is some commonality. */
+#include <sysdeps/unix/sysv/linux/sysdep.h>
+#include <sysdeps/unix/i386/sysdep.h>
+/* Defines RTLD_PRIVATE_ERRNO and USE_DL_SYSINFO. */
+#include <dl-sysdep.h>
+#include <tls.h>
+
+
+/* For Linux we can use the system call table in the header file
+ /usr/include/asm/unistd.h
+ of the kernel. But these symbols do not follow the SYS_* syntax
+ so we have to redefine the `SYS_ify' macro here. */
+#undef SYS_ify
+#define SYS_ify(syscall_name) __NR_##syscall_name
+
+#if defined USE_DL_SYSINFO \
+ && (IS_IN (libc) || IS_IN (libpthread))
+# define I386_USE_SYSENTER 1
+#else
+# undef I386_USE_SYSENTER
+#endif
+
+/* Since GCC 5 and above can properly spill %ebx with PIC when needed,
+ we can inline syscalls with 6 arguments if GCC 5 or above is used
+ to compile glibc. Disable GCC 5 optimization when compiling for
+ profiling or when -fno-omit-frame-pointer is used since asm ("ebp")
+ can't be used to put the 6th argument in %ebp for syscall. */
+#if __GNUC_PREREQ (5,0) && !defined PROF && CAN_USE_REGISTER_ASM_EBP
+# define OPTIMIZE_FOR_GCC_5
+#endif
+
+#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 %eax
+ is a real error number. Linus said he will make sure the no syscall
+ returns a value in -1 .. -4095 as a valid result so we can savely
+ test with -4095. */
+
+/* We don't want the label for the error handle to be global when we define
+ it here. */
+#define SYSCALL_ERROR_LABEL __syscall_error
+
+#undef PSEUDO
+#define PSEUDO(name, syscall_name, args) \
+ .text; \
+ ENTRY (name) \
+ DO_CALL (syscall_name, args); \
+ cmpl $-4095, %eax; \
+ jae 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)
+
+#define ret_NOERRNO ret
+
+/* The function has to return the error code. */
+#undef PSEUDO_ERRVAL
+#define PSEUDO_ERRVAL(name, syscall_name, args) \
+ .text; \
+ ENTRY (name) \
+ DO_CALL (syscall_name, args); \
+ negl %eax
+
+#undef PSEUDO_END_ERRVAL
+#define PSEUDO_END_ERRVAL(name) \
+ END (name)
+
+#define ret_ERRVAL ret
+
+#define SYSCALL_ERROR_HANDLER /* Nothing here; code in sysdep.c is used. */
+
+/* The original calling convention for system calls on Linux/i386 is
+ to use int $0x80. */
+#ifdef I386_USE_SYSENTER
+# ifdef SHARED
+# define ENTER_KERNEL call *%gs:SYSINFO_OFFSET
+# else
+# define ENTER_KERNEL call *_dl_sysinfo
+# endif
+#else
+# define ENTER_KERNEL int $0x80
+#endif
+
+/* Linux takes system call arguments in registers:
+
+ syscall number %eax call-clobbered
+ arg 1 %ebx call-saved
+ arg 2 %ecx call-clobbered
+ arg 3 %edx call-clobbered
+ arg 4 %esi call-saved
+ arg 5 %edi call-saved
+ arg 6 %ebp call-saved
+
+ The stack layout upon entering the function is:
+
+ 24(%esp) Arg# 6
+ 20(%esp) Arg# 5
+ 16(%esp) Arg# 4
+ 12(%esp) Arg# 3
+ 8(%esp) Arg# 2
+ 4(%esp) Arg# 1
+ (%esp) Return address
+
+ (Of course a function with say 3 arguments does not have entries for
+ arguments 4, 5, and 6.)
+
+ The following code tries hard to be optimal. A general assumption
+ (which is true according to the data books I have) is that
+
+ 2 * xchg is more expensive than pushl + movl + popl
+
+ Beside this a neat trick is used. The calling conventions for Linux
+ tell that among the registers used for parameters %ecx and %edx need
+ not be saved. Beside this we may clobber this registers even when
+ they are not used for parameter passing.
+
+ As a result one can see below that we save the content of the %ebx
+ register in the %edx register when we have less than 3 arguments
+ (2 * movl is less expensive than pushl + popl).
+
+ Second unlike for the other registers we don't save the content of
+ %ecx and %edx when we have more than 1 and 2 registers resp.
+
+ The code below might look a bit long but we have to take care for
+ the pipelined processors (i586). Here the `pushl' and `popl'
+ instructions are marked as NP (not pairable) but the exception is
+ two consecutive of these instruction. This gives no penalty on
+ other processors though. */
+
+#undef DO_CALL
+#define DO_CALL(syscall_name, args) \
+ PUSHARGS_##args \
+ DOARGS_##args \
+ movl $SYS_ify (syscall_name), %eax; \
+ ENTER_KERNEL \
+ POPARGS_##args
+
+#define PUSHARGS_0 /* No arguments to push. */
+#define DOARGS_0 /* No arguments to frob. */
+#define POPARGS_0 /* No arguments to pop. */
+#define _PUSHARGS_0 /* No arguments to push. */
+#define _DOARGS_0(n) /* No arguments to frob. */
+#define _POPARGS_0 /* No arguments to pop. */
+
+#define PUSHARGS_1 movl %ebx, %edx; L(SAVEBX1): PUSHARGS_0
+#define DOARGS_1 _DOARGS_1 (4)
+#define POPARGS_1 POPARGS_0; movl %edx, %ebx; L(RESTBX1):
+#define _PUSHARGS_1 pushl %ebx; cfi_adjust_cfa_offset (4); \
+ cfi_rel_offset (ebx, 0); L(PUSHBX1): _PUSHARGS_0
+#define _DOARGS_1(n) movl n(%esp), %ebx; _DOARGS_0(n-4)
+#define _POPARGS_1 _POPARGS_0; popl %ebx; cfi_adjust_cfa_offset (-4); \
+ cfi_restore (ebx); L(POPBX1):
+
+#define PUSHARGS_2 PUSHARGS_1
+#define DOARGS_2 _DOARGS_2 (8)
+#define POPARGS_2 POPARGS_1
+#define _PUSHARGS_2 _PUSHARGS_1
+#define _DOARGS_2(n) movl n(%esp), %ecx; _DOARGS_1 (n-4)
+#define _POPARGS_2 _POPARGS_1
+
+#define PUSHARGS_3 _PUSHARGS_2
+#define DOARGS_3 _DOARGS_3 (16)
+#define POPARGS_3 _POPARGS_3
+#define _PUSHARGS_3 _PUSHARGS_2
+#define _DOARGS_3(n) movl n(%esp), %edx; _DOARGS_2 (n-4)
+#define _POPARGS_3 _POPARGS_2
+
+#define PUSHARGS_4 _PUSHARGS_4
+#define DOARGS_4 _DOARGS_4 (24)
+#define POPARGS_4 _POPARGS_4
+#define _PUSHARGS_4 pushl %esi; cfi_adjust_cfa_offset (4); \
+ cfi_rel_offset (esi, 0); L(PUSHSI1): _PUSHARGS_3
+#define _DOARGS_4(n) movl n(%esp), %esi; _DOARGS_3 (n-4)
+#define _POPARGS_4 _POPARGS_3; popl %esi; cfi_adjust_cfa_offset (-4); \
+ cfi_restore (esi); L(POPSI1):
+
+#define PUSHARGS_5 _PUSHARGS_5
+#define DOARGS_5 _DOARGS_5 (32)
+#define POPARGS_5 _POPARGS_5
+#define _PUSHARGS_5 pushl %edi; cfi_adjust_cfa_offset (4); \
+ cfi_rel_offset (edi, 0); L(PUSHDI1): _PUSHARGS_4
+#define _DOARGS_5(n) movl n(%esp), %edi; _DOARGS_4 (n-4)
+#define _POPARGS_5 _POPARGS_4; popl %edi; cfi_adjust_cfa_offset (-4); \
+ cfi_restore (edi); L(POPDI1):
+
+#define PUSHARGS_6 _PUSHARGS_6
+#define DOARGS_6 _DOARGS_6 (40)
+#define POPARGS_6 _POPARGS_6
+#define _PUSHARGS_6 pushl %ebp; cfi_adjust_cfa_offset (4); \
+ cfi_rel_offset (ebp, 0); L(PUSHBP1): _PUSHARGS_5
+#define _DOARGS_6(n) movl n(%esp), %ebp; _DOARGS_5 (n-4)
+#define _POPARGS_6 _POPARGS_5; popl %ebp; cfi_adjust_cfa_offset (-4); \
+ cfi_restore (ebp); L(POPBP1):
+
+#else /* !__ASSEMBLER__ */
+
+extern int __syscall_error (int)
+ attribute_hidden __attribute__ ((__regparm__ (1)));
+
+#ifndef OPTIMIZE_FOR_GCC_5
+/* We need some help from the assembler to generate optimal code. We
+ define some macros here which later will be used. */
+asm (".L__X'%ebx = 1\n\t"
+ ".L__X'%ecx = 2\n\t"
+ ".L__X'%edx = 2\n\t"
+ ".L__X'%eax = 3\n\t"
+ ".L__X'%esi = 3\n\t"
+ ".L__X'%edi = 3\n\t"
+ ".L__X'%ebp = 3\n\t"
+ ".L__X'%esp = 3\n\t"
+ ".macro bpushl name reg\n\t"
+ ".if 1 - \\name\n\t"
+ ".if 2 - \\name\n\t"
+ "error\n\t"
+ ".else\n\t"
+ "xchgl \\reg, %ebx\n\t"
+ ".endif\n\t"
+ ".endif\n\t"
+ ".endm\n\t"
+ ".macro bpopl name reg\n\t"
+ ".if 1 - \\name\n\t"
+ ".if 2 - \\name\n\t"
+ "error\n\t"
+ ".else\n\t"
+ "xchgl \\reg, %ebx\n\t"
+ ".endif\n\t"
+ ".endif\n\t"
+ ".endm\n\t");
+
+/* Six-argument syscalls use an out-of-line helper, because an inline
+ asm using all registers apart from %esp cannot work reliably and
+ the assembler does not support describing an asm that saves and
+ restores %ebp itself as a separate stack frame. This structure
+ stores the arguments not passed in registers; %edi is passed with a
+ pointer to this structure. */
+struct libc_do_syscall_args
+{
+ int ebx, edi, ebp;
+};
+#endif
+
+/* Define a macro which expands inline into the wrapper code for a system
+ call. */
+#undef INLINE_SYSCALL
+#if IS_IN (libc)
+# define INLINE_SYSCALL(name, nr, args...) \
+ ({ \
+ unsigned int resultvar = INTERNAL_SYSCALL (name, , nr, args); \
+ __glibc_unlikely (INTERNAL_SYSCALL_ERROR_P (resultvar, )) \
+ ? __syscall_error (-INTERNAL_SYSCALL_ERRNO (resultvar, )) \
+ : (int) resultvar; })
+#else
+# define INLINE_SYSCALL(name, nr, args...) \
+ ({ \
+ unsigned int resultvar = INTERNAL_SYSCALL (name, , nr, args); \
+ if (__glibc_unlikely (INTERNAL_SYSCALL_ERROR_P (resultvar, ))) \
+ { \
+ __set_errno (INTERNAL_SYSCALL_ERRNO (resultvar, )); \
+ resultvar = 0xffffffff; \
+ } \
+ (int) resultvar; })
+#endif
+
+/* Set error number and return -1. Return the internal function,
+ __syscall_error, which sets errno from the negative error number
+ and returns -1, to avoid PIC. */
+#undef INLINE_SYSCALL_ERROR_RETURN_VALUE
+#define INLINE_SYSCALL_ERROR_RETURN_VALUE(resultvar) \
+ __syscall_error (-(resultvar))
+
+/* List of system calls which are supported as vsyscalls. */
+# define HAVE_CLOCK_GETTIME_VSYSCALL 1
+# define HAVE_GETTIMEOFDAY_VSYSCALL 1
+
+/* Define a macro which expands inline into the wrapper code for a system
+ call. This use is for internal calls that do not need to handle errors
+ normally. It will never touch errno. This returns just what the kernel
+ gave back.
+
+ The _NCS variant allows non-constant syscall numbers but it is not
+ possible to use more than four parameters. */
+#undef INTERNAL_SYSCALL
+#define INTERNAL_SYSCALL_MAIN_0(name, err, args...) \
+ INTERNAL_SYSCALL_MAIN_INLINE(name, err, 0, args)
+#define INTERNAL_SYSCALL_MAIN_1(name, err, args...) \
+ INTERNAL_SYSCALL_MAIN_INLINE(name, err, 1, args)
+#define INTERNAL_SYSCALL_MAIN_2(name, err, args...) \
+ INTERNAL_SYSCALL_MAIN_INLINE(name, err, 2, args)
+#define INTERNAL_SYSCALL_MAIN_3(name, err, args...) \
+ INTERNAL_SYSCALL_MAIN_INLINE(name, err, 3, args)
+#define INTERNAL_SYSCALL_MAIN_4(name, err, args...) \
+ INTERNAL_SYSCALL_MAIN_INLINE(name, err, 4, args)
+#define INTERNAL_SYSCALL_MAIN_5(name, err, args...) \
+ INTERNAL_SYSCALL_MAIN_INLINE(name, err, 5, args)
+/* Each object using 6-argument inline syscalls must include a
+ definition of __libc_do_syscall. */
+#ifdef OPTIMIZE_FOR_GCC_5
+# define INTERNAL_SYSCALL_MAIN_6(name, err, args...) \
+ INTERNAL_SYSCALL_MAIN_INLINE(name, err, 6, args)
+#else /* GCC 5 */
+# define INTERNAL_SYSCALL_MAIN_6(name, err, arg1, arg2, arg3, \
+ arg4, arg5, arg6) \
+ struct libc_do_syscall_args _xv = \
+ { \
+ (int) (arg1), \
+ (int) (arg5), \
+ (int) (arg6) \
+ }; \
+ asm volatile ( \
+ "movl %1, %%eax\n\t" \
+ "call __libc_do_syscall" \
+ : "=a" (resultvar) \
+ : "i" (__NR_##name), "c" (arg2), "d" (arg3), "S" (arg4), "D" (&_xv) \
+ : "memory", "cc")
+#endif /* GCC 5 */
+#define INTERNAL_SYSCALL(name, err, nr, args...) \
+ ({ \
+ register unsigned int resultvar; \
+ INTERNAL_SYSCALL_MAIN_##nr (name, err, args); \
+ (int) resultvar; })
+#ifdef I386_USE_SYSENTER
+# ifdef OPTIMIZE_FOR_GCC_5
+# ifdef SHARED
+# define INTERNAL_SYSCALL_MAIN_INLINE(name, err, nr, args...) \
+ LOADREGS_##nr(args) \
+ asm volatile ( \
+ "call *%%gs:%P2" \
+ : "=a" (resultvar) \
+ : "a" (__NR_##name), "i" (offsetof (tcbhead_t, sysinfo)) \
+ ASMARGS_##nr(args) : "memory", "cc")
+# define INTERNAL_SYSCALL_NCS(name, err, nr, args...) \
+ ({ \
+ register unsigned int resultvar; \
+ LOADREGS_##nr(args) \
+ asm volatile ( \
+ "call *%%gs:%P2" \
+ : "=a" (resultvar) \
+ : "a" (name), "i" (offsetof (tcbhead_t, sysinfo)) \
+ ASMARGS_##nr(args) : "memory", "cc"); \
+ (int) resultvar; })
+# else
+# define INTERNAL_SYSCALL_MAIN_INLINE(name, err, nr, args...) \
+ LOADREGS_##nr(args) \
+ asm volatile ( \
+ "call *_dl_sysinfo" \
+ : "=a" (resultvar) \
+ : "a" (__NR_##name) ASMARGS_##nr(args) : "memory", "cc")
+# define INTERNAL_SYSCALL_NCS(name, err, nr, args...) \
+ ({ \
+ register unsigned int resultvar; \
+ LOADREGS_##nr(args) \
+ asm volatile ( \
+ "call *_dl_sysinfo" \
+ : "=a" (resultvar) \
+ : "a" (name) ASMARGS_##nr(args) : "memory", "cc"); \
+ (int) resultvar; })
+# endif
+# else /* GCC 5 */
+# ifdef SHARED
+# define INTERNAL_SYSCALL_MAIN_INLINE(name, err, nr, args...) \
+ EXTRAVAR_##nr \
+ asm volatile ( \
+ LOADARGS_##nr \
+ "movl %1, %%eax\n\t" \
+ "call *%%gs:%P2\n\t" \
+ RESTOREARGS_##nr \
+ : "=a" (resultvar) \
+ : "i" (__NR_##name), "i" (offsetof (tcbhead_t, sysinfo)) \
+ ASMFMT_##nr(args) : "memory", "cc")
+# define INTERNAL_SYSCALL_NCS(name, err, nr, args...) \
+ ({ \
+ register unsigned int resultvar; \
+ EXTRAVAR_##nr \
+ asm volatile ( \
+ LOADARGS_##nr \
+ "call *%%gs:%P2\n\t" \
+ RESTOREARGS_##nr \
+ : "=a" (resultvar) \
+ : "0" (name), "i" (offsetof (tcbhead_t, sysinfo)) \
+ ASMFMT_##nr(args) : "memory", "cc"); \
+ (int) resultvar; })
+# else
+# define INTERNAL_SYSCALL_MAIN_INLINE(name, err, nr, args...) \
+ EXTRAVAR_##nr \
+ asm volatile ( \
+ LOADARGS_##nr \
+ "movl %1, %%eax\n\t" \
+ "call *_dl_sysinfo\n\t" \
+ RESTOREARGS_##nr \
+ : "=a" (resultvar) \
+ : "i" (__NR_##name) ASMFMT_##nr(args) : "memory", "cc")
+# define INTERNAL_SYSCALL_NCS(name, err, nr, args...) \
+ ({ \
+ register unsigned int resultvar; \
+ EXTRAVAR_##nr \
+ asm volatile ( \
+ LOADARGS_##nr \
+ "call *_dl_sysinfo\n\t" \
+ RESTOREARGS_##nr \
+ : "=a" (resultvar) \
+ : "0" (name) ASMFMT_##nr(args) : "memory", "cc"); \
+ (int) resultvar; })
+# endif
+# endif /* GCC 5 */
+#else
+# ifdef OPTIMIZE_FOR_GCC_5
+# define INTERNAL_SYSCALL_MAIN_INLINE(name, err, nr, args...) \
+ LOADREGS_##nr(args) \
+ asm volatile ( \
+ "int $0x80" \
+ : "=a" (resultvar) \
+ : "a" (__NR_##name) ASMARGS_##nr(args) : "memory", "cc")
+# define INTERNAL_SYSCALL_NCS(name, err, nr, args...) \
+ ({ \
+ register unsigned int resultvar; \
+ LOADREGS_##nr(args) \
+ asm volatile ( \
+ "int $0x80" \
+ : "=a" (resultvar) \
+ : "a" (name) ASMARGS_##nr(args) : "memory", "cc"); \
+ (int) resultvar; })
+# else /* GCC 5 */
+# define INTERNAL_SYSCALL_MAIN_INLINE(name, err, nr, args...) \
+ EXTRAVAR_##nr \
+ asm volatile ( \
+ LOADARGS_##nr \
+ "movl %1, %%eax\n\t" \
+ "int $0x80\n\t" \
+ RESTOREARGS_##nr \
+ : "=a" (resultvar) \
+ : "i" (__NR_##name) ASMFMT_##nr(args) : "memory", "cc")
+# define INTERNAL_SYSCALL_NCS(name, err, nr, args...) \
+ ({ \
+ register unsigned int resultvar; \
+ EXTRAVAR_##nr \
+ asm volatile ( \
+ LOADARGS_##nr \
+ "int $0x80\n\t" \
+ RESTOREARGS_##nr \
+ : "=a" (resultvar) \
+ : "0" (name) ASMFMT_##nr(args) : "memory", "cc"); \
+ (int) resultvar; })
+# endif /* GCC 5 */
+#endif
+
+#undef INTERNAL_SYSCALL_DECL
+#define INTERNAL_SYSCALL_DECL(err) do { } while (0)
+
+#undef INTERNAL_SYSCALL_ERROR_P
+#define INTERNAL_SYSCALL_ERROR_P(val, err) \
+ ((unsigned int) (val) >= 0xfffff001u)
+
+#undef INTERNAL_SYSCALL_ERRNO
+#define INTERNAL_SYSCALL_ERRNO(val, err) (-(val))
+
+#define LOADARGS_0
+#ifdef __PIC__
+# if defined I386_USE_SYSENTER && defined SHARED
+# define LOADARGS_1 \
+ "bpushl .L__X'%k3, %k3\n\t"
+# define LOADARGS_5 \
+ "movl %%ebx, %4\n\t" \
+ "movl %3, %%ebx\n\t"
+# else
+# define LOADARGS_1 \
+ "bpushl .L__X'%k2, %k2\n\t"
+# define LOADARGS_5 \
+ "movl %%ebx, %3\n\t" \
+ "movl %2, %%ebx\n\t"
+# endif
+# define LOADARGS_2 LOADARGS_1
+# define LOADARGS_3 \
+ "xchgl %%ebx, %%edi\n\t"
+# define LOADARGS_4 LOADARGS_3
+#else
+# define LOADARGS_1
+# define LOADARGS_2
+# define LOADARGS_3
+# define LOADARGS_4
+# define LOADARGS_5
+#endif
+
+#define RESTOREARGS_0
+#ifdef __PIC__
+# if defined I386_USE_SYSENTER && defined SHARED
+# define RESTOREARGS_1 \
+ "bpopl .L__X'%k3, %k3\n\t"
+# define RESTOREARGS_5 \
+ "movl %4, %%ebx"
+# else
+# define RESTOREARGS_1 \
+ "bpopl .L__X'%k2, %k2\n\t"
+# define RESTOREARGS_5 \
+ "movl %3, %%ebx"
+# endif
+# define RESTOREARGS_2 RESTOREARGS_1
+# define RESTOREARGS_3 \
+ "xchgl %%edi, %%ebx\n\t"
+# define RESTOREARGS_4 RESTOREARGS_3
+#else
+# define RESTOREARGS_1
+# define RESTOREARGS_2
+# define RESTOREARGS_3
+# define RESTOREARGS_4
+# define RESTOREARGS_5
+#endif
+
+#ifdef OPTIMIZE_FOR_GCC_5
+# define LOADREGS_0()
+# define ASMARGS_0()
+# define LOADREGS_1(arg1) \
+ LOADREGS_0 ()
+# define ASMARGS_1(arg1) \
+ ASMARGS_0 (), "b" ((unsigned int) (arg1))
+# define LOADREGS_2(arg1, arg2) \
+ LOADREGS_1 (arg1)
+# define ASMARGS_2(arg1, arg2) \
+ ASMARGS_1 (arg1), "c" ((unsigned int) (arg2))
+# define LOADREGS_3(arg1, arg2, arg3) \
+ LOADREGS_2 (arg1, arg2)
+# define ASMARGS_3(arg1, arg2, arg3) \
+ ASMARGS_2 (arg1, arg2), "d" ((unsigned int) (arg3))
+# define LOADREGS_4(arg1, arg2, arg3, arg4) \
+ LOADREGS_3 (arg1, arg2, arg3)
+# define ASMARGS_4(arg1, arg2, arg3, arg4) \
+ ASMARGS_3 (arg1, arg2, arg3), "S" ((unsigned int) (arg4))
+# define LOADREGS_5(arg1, arg2, arg3, arg4, arg5) \
+ LOADREGS_4 (arg1, arg2, arg3, arg4)
+# define ASMARGS_5(arg1, arg2, arg3, arg4, arg5) \
+ ASMARGS_4 (arg1, arg2, arg3, arg4), "D" ((unsigned int) (arg5))
+# define LOADREGS_6(arg1, arg2, arg3, arg4, arg5, arg6) \
+ register unsigned int _a6 asm ("ebp") = (unsigned int) (arg6); \
+ LOADREGS_5 (arg1, arg2, arg3, arg4, arg5)
+# define ASMARGS_6(arg1, arg2, arg3, arg4, arg5, arg6) \
+ ASMARGS_5 (arg1, arg2, arg3, arg4, arg5), "r" (_a6)
+#endif /* GCC 5 */
+
+#define ASMFMT_0()
+#ifdef __PIC__
+# define ASMFMT_1(arg1) \
+ , "cd" (arg1)
+# define ASMFMT_2(arg1, arg2) \
+ , "d" (arg1), "c" (arg2)
+# define ASMFMT_3(arg1, arg2, arg3) \
+ , "D" (arg1), "c" (arg2), "d" (arg3)
+# define ASMFMT_4(arg1, arg2, arg3, arg4) \
+ , "D" (arg1), "c" (arg2), "d" (arg3), "S" (arg4)
+# define ASMFMT_5(arg1, arg2, arg3, arg4, arg5) \
+ , "0" (arg1), "m" (_xv), "c" (arg2), "d" (arg3), "S" (arg4), "D" (arg5)
+#else
+# define ASMFMT_1(arg1) \
+ , "b" (arg1)
+# define ASMFMT_2(arg1, arg2) \
+ , "b" (arg1), "c" (arg2)
+# define ASMFMT_3(arg1, arg2, arg3) \
+ , "b" (arg1), "c" (arg2), "d" (arg3)
+# define ASMFMT_4(arg1, arg2, arg3, arg4) \
+ , "b" (arg1), "c" (arg2), "d" (arg3), "S" (arg4)
+# define ASMFMT_5(arg1, arg2, arg3, arg4, arg5) \
+ , "b" (arg1), "c" (arg2), "d" (arg3), "S" (arg4), "D" (arg5)
+#endif
+
+#define EXTRAVAR_0
+#define EXTRAVAR_1
+#define EXTRAVAR_2
+#define EXTRAVAR_3
+#define EXTRAVAR_4
+#ifdef __PIC__
+# define EXTRAVAR_5 int _xv;
+#else
+# define EXTRAVAR_5
+#endif
+
+/* Consistency check for position-independent code. */
+#if defined __PIC__ && !defined OPTIMIZE_FOR_GCC_5
+# define check_consistency() \
+ ({ int __res; \
+ __asm__ __volatile__ \
+ (LOAD_PIC_REG_STR (cx) ";" \
+ "subl %%ebx, %%ecx;" \
+ "je 1f;" \
+ "ud2;" \
+ "1:\n" \
+ : "=c" (__res)); \
+ __res; })
+#endif
+
+#endif /* __ASSEMBLER__ */
+
+
+/* Pointer mangling support. */
+#if IS_IN (rtld)
+/* We cannot use the thread descriptor because in ld.so we use setjmp
+ earlier than the descriptor is initialized. Using a global variable
+ is too complicated here since we have no PC-relative addressing mode. */
+#else
+# ifdef __ASSEMBLER__
+# define PTR_MANGLE(reg) xorl %gs:POINTER_GUARD, reg; \
+ roll $9, reg
+# define PTR_DEMANGLE(reg) rorl $9, reg; \
+ xorl %gs:POINTER_GUARD, reg
+# else
+# define PTR_MANGLE(var) asm ("xorl %%gs:%c2, %0\n" \
+ "roll $9, %0" \
+ : "=r" (var) \
+ : "0" (var), \
+ "i" (offsetof (tcbhead_t, \
+ pointer_guard)))
+# define PTR_DEMANGLE(var) asm ("rorl $9, %0\n" \
+ "xorl %%gs:%c2, %0" \
+ : "=r" (var) \
+ : "0" (var), \
+ "i" (offsetof (tcbhead_t, \
+ pointer_guard)))
+# endif
+#endif
+
+#endif /* linux/i386/sysdep.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/i386/time.c b/REORG.TODO/sysdeps/unix/sysv/linux/i386/time.c
new file mode 100644
index 0000000000..f614a2d73b
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/i386/time.c
@@ -0,0 +1,34 @@
+/* time -- Get number of seconds since Epoch. Linux/i386 version.
+ Copyright (C) 2015-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifdef SHARED
+# define time __redirect_time
+#endif
+
+#include <time.h>
+
+#ifdef SHARED
+# undef time
+# define time_type __redirect_time
+
+# undef libc_hidden_def
+# define libc_hidden_def(name) \
+ __hidden_ver1 (__time_syscall, __GI_time, __time_syscall);
+#endif
+
+#include <sysdeps/unix/sysv/linux/x86/time.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/i386/ucontext_i.sym b/REORG.TODO/sysdeps/unix/sysv/linux/i386/ucontext_i.sym
new file mode 100644
index 0000000000..b11a5509cd
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/i386/ucontext_i.sym
@@ -0,0 +1,30 @@
+#include <stddef.h>
+#include <signal.h>
+#include <sys/ucontext.h>
+
+--
+
+SIG_BLOCK
+SIG_SETMASK
+
+#define ucontext(member) offsetof (ucontext_t, member)
+#define mcontext(member) ucontext (uc_mcontext.member)
+#define mreg(reg) mcontext (gregs[REG_##reg])
+
+oLINK ucontext (uc_link)
+oSS_SP ucontext (uc_stack.ss_sp)
+oSS_SIZE ucontext (uc_stack.ss_size)
+oGS mreg (GS)
+oFS mreg (FS)
+oEDI mreg (EDI)
+oESI mreg (ESI)
+oEBP mreg (EBP)
+oESP mreg (ESP)
+oEBX mreg (EBX)
+oEDX mreg (EDX)
+oECX mreg (ECX)
+oEAX mreg (EAX)
+oEIP mreg (EIP)
+oFPREGS mcontext (fpregs)
+oSIGMASK ucontext (uc_sigmask)
+oFPREGSMEM ucontext (__fpregs_mem)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/i386/versionsort64.c b/REORG.TODO/sysdeps/unix/sysv/linux/i386/versionsort64.c
new file mode 100644
index 0000000000..3e1c6ea35b
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/i386/versionsort64.c
@@ -0,0 +1,48 @@
+/* Copyright (C) 1992-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 <dirent.h>
+#include <string.h>
+
+int
+__versionsort64 (const struct dirent64 **a, const struct dirent64 **b)
+{
+ return __strverscmp ((*a)->d_name, (*b)->d_name);
+}
+
+#include <shlib-compat.h>
+
+versioned_symbol (libc, __versionsort64, versionsort64, GLIBC_2_2);
+
+#if SHLIB_COMPAT(libc, GLIBC_2_1, GLIBC_2_2)
+
+#include <sysdeps/unix/sysv/linux/i386/olddirent.h>
+
+int
+__old_versionsort64 (const struct __old_dirent64 **a,
+ const struct __old_dirent64 **b);
+
+int
+attribute_compat_text_section
+__old_versionsort64 (const struct __old_dirent64 **a,
+ const struct __old_dirent64 **b)
+{
+ return __strverscmp ((*a)->d_name, (*b)->d_name);
+}
+
+compat_symbol (libc, __old_versionsort64, versionsort64, GLIBC_2_1);
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/i386/vfork.S b/REORG.TODO/sysdeps/unix/sysv/linux/i386/vfork.S
new file mode 100644
index 0000000000..92ceca74c7
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/i386/vfork.S
@@ -0,0 +1,57 @@
+/* Copyright (C) 1999-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Andreas Schwab <schwab@gnu.org>.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#define _ERRNO_H 1
+#include <bits/errno.h>
+#include <tcb-offsets.h>
+
+
+/* Clone the calling process, but without copying the whole address space.
+ The calling process is suspended until the new process exits or is
+ replaced by a call to `execve'. Return -1 for errors, 0 to the new process,
+ and the process ID of the new process to the old process. */
+
+ENTRY (__vfork)
+
+ /* Pop the return PC value into ECX. */
+ popl %ecx
+ cfi_adjust_cfa_offset (-4)
+ cfi_register (%eip, %ecx)
+
+ /* Stuff the syscall number in EAX and enter into the kernel. */
+ movl $SYS_ify (vfork), %eax
+ int $0x80
+
+ /* Jump to the return PC. Don't jump directly since this
+ disturbs the branch target cache. Instead push the return
+ address back on the stack. */
+ pushl %ecx
+ cfi_adjust_cfa_offset (4)
+
+ cmpl $-4095, %eax
+ /* Branch forward if it failed. */
+ jae SYSCALL_ERROR_LABEL
+
+ ret
+
+PSEUDO_END (__vfork)
+libc_hidden_def (__vfork)
+
+weak_alias (__vfork, vfork)
+strong_alias (__vfork, __libc_vfork)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/i386/xstat.c b/REORG.TODO/sysdeps/unix/sysv/linux/i386/xstat.c
new file mode 100644
index 0000000000..6b8b1ce3e7
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/i386/xstat.c
@@ -0,0 +1,61 @@
+/* xstat using old-style Unix stat system call.
+ Copyright (C) 1991-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+/* Ho hum, if xstat == xstat64 we must get rid of the prototype or gcc
+ will complain since they don't strictly match. */
+#define __xstat64 __xstat64_disable
+
+#include <errno.h>
+#include <stddef.h>
+#include <sys/stat.h>
+#include <kernel_stat.h>
+
+#include <sysdep.h>
+#include <sys/syscall.h>
+
+#include <xstatconv.h>
+
+
+/* Get information about the file NAME in BUF. */
+int
+__xstat (int vers, const char *name, struct stat *buf)
+{
+ int result;
+
+ if (vers == _STAT_VER_KERNEL)
+ return INLINE_SYSCALL (stat, 2, name, buf);
+
+ {
+ struct stat64 buf64;
+
+ INTERNAL_SYSCALL_DECL (err);
+ result = INTERNAL_SYSCALL (stat64, err, 2, name, &buf64);
+ if (__glibc_unlikely (INTERNAL_SYSCALL_ERROR_P (result, err)))
+ return INLINE_SYSCALL_ERROR_RETURN_VALUE (INTERNAL_SYSCALL_ERRNO (result,
+ err));
+ else
+ return __xstat32_conv (vers, &buf64, buf);
+ }
+}
+hidden_def (__xstat)
+weak_alias (__xstat, _xstat);
+#if XSTAT_IS_XSTAT64
+# undef __xstat64
+strong_alias (__xstat, __xstat64);
+hidden_ver (__xstat, __xstat64)
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/ia64/Implies b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/Implies
new file mode 100644
index 0000000000..9762539f9c
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/Implies
@@ -0,0 +1,2 @@
+ia64/nptl
+unix/sysv/linux/wordsize-64
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/ia64/Makefile b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/Makefile
new file mode 100644
index 0000000000..4d6766db5e
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/Makefile
@@ -0,0 +1,27 @@
+ifeq ($(subdir),misc)
+sysdep_headers += sys/rse.h
+endif
+
+ifeq ($(subdir),stdlib)
+sysdep_routines += __start_context
+gen-as-const-headers += sigcontext-offsets.sym
+endif
+
+ifeq ($(subdir),misc)
+sysdep_headers += sys/io.h
+sysdep_routines += ioperm clone2
+gen-as-const-headers += sigaltstack-offsets.sym
+endif
+
+ifeq ($(subdir),elf)
+sysdep-dl-routines += dl-static
+endif
+
+ifeq ($(subdir),rt)
+librt-routines += rt-sysdep
+librt-shared-only-routines += rt-sysdep
+endif
+
+ifeq ($(subdir),nptl)
+libpthread-sysdep_routines += __ia64_longjmp unwind_longjmp __sigstack_longjmp
+endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/ia64/Versions b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/Versions
new file mode 100644
index 0000000000..116f4e8503
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/Versions
@@ -0,0 +1,41 @@
+ld {
+ GLIBC_PRIVATE {
+ _dl_var_init;
+ }
+}
+libc {
+ GLIBC_2.2 {
+ ioperm; iopl;
+ inb; inw; inl;
+ _inb; _inw; _inl;
+ outb; outw; _outl;
+ _outb; _outw; _outl;
+ pciconfig_read; pciconfig_write;
+
+ # linuxthreads
+ __clone2;
+ }
+ GLIBC_2.2.2 {
+ # w*
+ wordexp;
+ }
+ GLIBC_2.2.6 {
+ getunwind;
+ }
+ GLIBC_2.24 {
+ recvmsg; sendmsg;
+ }
+}
+libpthread {
+ GLIBC_2.3.3 {
+ # Changed PTHREAD_STACK_MIN.
+ pthread_attr_setstack; pthread_attr_setstacksize;
+ }
+}
+librt {
+ GLIBC_2.3.3 {
+ # Changed timer_t.
+ timer_create; timer_delete; timer_getoverrun; timer_gettime;
+ timer_settime;
+ }
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/ia64/____longjmp_chk.S b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/____longjmp_chk.S
new file mode 100644
index 0000000000..52104a92ac
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/____longjmp_chk.S
@@ -0,0 +1,88 @@
+/* Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sigaltstack-offsets.h>
+
+ .section .rodata.str1.8,"aMS",@progbits,1
+ .align 8
+.LC0:
+ .string "longjmp causes uninitialized stack frame"
+
+ .section .sdata,"aws",@progbits
+ .align 8
+ .type longjmp_msg,@object
+longjmp_msg:
+ data8 .LC0
+ .size longjmp_msg, .-longjmp_msg
+
+#define __longjmp ____longjmp_chk
+
+/* We use 32 bytes (rather than sizeof(stack_t)) so that we keep the stack
+ properly aligned. But we still want a sanity check to make sure 32 is
+ actually enough. */
+#define STACK_SPACE ((sizeSS + 31) & -32)
+
+/* Check the stack pointer held in the jumpbuf. Make sure it's in either the
+ current stack (r12) or in the signal stack. */
+#define CHECK_RSP \
+ ld8 loc0 = [in0]; \
+ ;; \
+ /* First see if target stack is within current one. */ \
+ cmp.ltu p0, p8 = loc0, r12; \
+(p8) br.cond.dptk.many .Lok; \
+ \
+ /* Check if it's an alternative signal stack. */ \
+ mov out0 = r0; \
+ add out1 = -STACK_SPACE, r12; \
+ ;; \
+ mov r12 = out1; \
+ DO_CALL_VIA_BREAK (SYS_ify (sigaltstack)); \
+ ;; \
+ /* If the syscall failed, then assume it's OK. */ \
+ cmp.eq p8, p0 = -1, r10; \
+(p8) br.cond.spnt .Lok; \
+ /* Move stack_t into regs. */ \
+ add r14 = oSS_FLAGS, r12; /* ss_flags */ \
+ add r15 = oSS_SIZE, r12; /* ss_size */ \
+ ld8 r16 = [r12]; /* ss_sp */ \
+ ;; \
+ ld4 r17 = [r14]; /* ss_flags */ \
+ ld8 r18 = [r15]; /* ss_size */ \
+ ;; \
+ sub r19 = r16, r18; /* sp - size */ \
+ /* See if we're currently on the altstack. */ \
+ tbit.nz p0, p8 = r17, 0; /* SS_ONSTACK */ \
+(p8) br.cond.spnt .Lfail; \
+ /* Verify target is within alternative stack. */ \
+ cmp.gtu p7, p0 = loc0, r16; \
+(p7) br.cond.spnt .Lfail; \
+ ;; \
+ cmp.ltu p0, p8 = loc0, r19; \
+(p8) br.cond.sptk.many .Lok; \
+ ;; \
+ \
+ /* Still here? Abort! */ \
+.Lfail: \
+ add r12 = STACK_SPACE, r12; \
+ addl loc0 = @ltoffx(longjmp_msg#), r1;; \
+ ld8.mov loc0 = [loc0], longjmp_msg#;; \
+ ld8 out0 = [loc0]; \
+ br.call.sptk.many b0 = HIDDEN_JUMPTARGET(__fortify_fail)#;; \
+.Lok: \
+ add r12 = STACK_SPACE, r12;
+
+#include "__longjmp.S"
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/ia64/__ia64_longjmp.S b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/__ia64_longjmp.S
new file mode 100644
index 0000000000..61299bdff1
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/__ia64_longjmp.S
@@ -0,0 +1,158 @@
+/* Copyright (C) 1999-2017 Free Software Foundation, Inc.
+ Contributed by David Mosberger-Tang <davidm@hpl.hp.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>
+
+LEAF(__ia64_flush_rbs)
+ flushrs
+ mov r9 = ar.rsc // 12 cyc latency
+ ;;
+ mov r8 = ar.bsp // 12 cyc latency
+ ;;
+ and r16 = ~0x3, r9 // clear ar.rsc.mode
+ ;;
+ mov ar.rsc = r16 // put RSE into enforced-lazy mode
+ ;;
+ mov r10 = ar.rnat // 5 cyc latency
+ ret
+END(__ia64_flush_rbs)
+
+
+# define pPos p6 /* is rotate count positive? */
+# define pNeg p7 /* is rotate count negative? */
+
+/* __ia64_longjmp(__jmp_buf buf, int val, long rnat, long rsc) */
+
+
+LEAF(__ia64_longjmp)
+ alloc r8=ar.pfs,4,0,0,0
+ add r2=0x98,in0 // r2 <- &jmpbuf.orig_jmp_buf_addr
+ add r3=0x88,in0 // r3 <- &jmpbuf.ar_bsp
+ ;;
+ ld8 r8=[r2] // r8 <- orig_jmp_buf_addr
+ ld8 r23=[r3],8 // r23 <- jmpbuf.ar_bsp
+ mov r2=in0
+ ;;
+ //
+ // Note: we need to redo the "flushrs" here even though it's
+ // already been done by __ia64_flush_rbs. It is needed to
+ // ensure that ar.bspstore == ar.bsp.
+ //
+ flushrs // flush dirty regs to backing store
+ ld8 r25=[r3] // r25 <- jmpbuf.ar_unat
+ sub r8=r8,in0 // r8 <- &orig_jmpbuf - &jmpbuf
+ ;;
+ add r3=8,in0 // r3 <- &jmpbuf.r1
+ extr.u r8=r8,3,6 // r8 <- (&orig_jmpbuf - &jmpbuf)/8 & 0x3f
+ ;;
+ cmp.lt pNeg,pPos=r8,r0
+ ;;
+(pPos) mov r16=r8
+(pNeg) add r16=64,r8
+(pPos) sub r17=64,r8
+(pNeg) sub r17=r0,r8
+ ;;
+ shr.u r8=r25,r16
+ shl r9=r25,r17
+ ;;
+ or r25=r8,r9
+ ;;
+ mov ar.unat=r25 // setup ar.unat (NaT bits for r1, r4-r7, and r12)
+ ;;
+ ld8.fill.nta sp=[r2],16 // r12 (sp)
+ ld8.fill.nta gp=[r3],32 // r1 (gp)
+ dep r11=-1,r23,3,6 // r11 <- ia64_rse_rnat_addr(jmpbuf.ar_bsp)
+ ;;
+ ld8.nta r16=[r2],16 // caller's unat
+// ld8.nta r17=[r3],16 // fpsr
+ ;;
+ ld8.fill.nta r4=[r2],16 // r4
+ ld8.fill.nta r5=[r3],16 // r5 (gp)
+ ;;
+ ld8.fill.nta r6=[r2],16 // r6
+ ld8.fill.nta r7=[r3],16 // r7
+ ;;
+ mov ar.unat=r16 // restore caller's unat
+// mov ar.fpsr=r17 // restore fpsr
+ ;;
+ ld8.nta r16=[r2],16 // b0
+ ld8.nta r17=[r3],16 // b1
+ ;;
+ mov ar.bspstore=r23 // restore ar.bspstore
+ ld8.nta r18=[r2],16 // b2
+ ;;
+ mov ar.rnat=in2 // restore ar.rnat
+ ld8.nta r19=[r3],16 // b3
+ ;;
+ ld8.nta r20=[r2],16 // b4
+ ld8.nta r21=[r3],16 // b5
+#ifdef PTR_DEMANGLE
+ PTR_DEMANGLE (r16, r24)
+#endif
+ ;;
+ ld8.nta r11=[r2],16 // ar.pfs
+ ld8.nta r22=[r3],56 // ar.lc
+ ;;
+ ld8.nta r24=[r2],32 // pr
+ mov ar.rsc=in3 // restore ar.rsc
+ mov b0=r16
+ ;;
+ ldf.fill.nta f2=[r2],32
+ ldf.fill.nta f3=[r3],32
+ mov b1=r17
+ ;;
+ ldf.fill.nta f4=[r2],32
+ ldf.fill.nta f5=[r3],32
+ mov b2=r18
+ ;;
+ ldf.fill.nta f16=[r2],32
+ ldf.fill.nta f17=[r3],32
+ mov b3=r19
+ ;;
+ ldf.fill.nta f18=[r2],32
+ ldf.fill.nta f19=[r3],32
+ mov b4=r20
+ ;;
+ ldf.fill.nta f20=[r2],32
+ ldf.fill.nta f21=[r3],32
+ mov b5=r21
+ ;;
+ ldf.fill.nta f22=[r2],32
+ ldf.fill.nta f23=[r3],32
+ mov ar.lc=r22
+ ;;
+ ldf.fill.nta f24=[r2],32
+ ldf.fill.nta f25=[r3],32
+ cmp.eq p8,p9=0,in1
+ ;;
+ ldf.fill.nta f26=[r2],32
+ ldf.fill.nta f27=[r3],32
+ mov ar.pfs=r11
+ ;;
+ ldf.fill.nta f28=[r2],32
+ ldf.fill.nta f29=[r3],32
+(p8) mov r8=1
+ ;;
+ ldf.fill.nta f30=[r2]
+ ldf.fill.nta f31=[r3]
+(p9) mov r8=in1
+
+ invala // virt. -> phys. regnum mapping may change
+ mov pr=r24,-1
+ ret
+END(__ia64_longjmp)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/ia64/__longjmp.S b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/__longjmp.S
new file mode 100644
index 0000000000..975acbaf2a
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/__longjmp.S
@@ -0,0 +1,168 @@
+/* Copyright (C) 1999-2017 Free Software Foundation, Inc.
+ Contributed by David Mosberger-Tang <davidm@hpl.hp.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/>.
+
+ Note that __sigsetjmp() did NOT flush the register stack. Instead,
+ we do it here since __longjmp() is usually much less frequently
+ invoked than __sigsetjmp(). The only difficulty is that __sigsetjmp()
+ didn't (and wouldn't be able to) save ar.rnat either. This is a problem
+ because if we're not careful, we could end up loading random NaT bits.
+ There are two cases:
+
+ (i) ar.bsp < ia64_rse_rnat_addr(jmpbuf.ar_bsp)
+ ar.rnat contains the desired bits---preserve ar.rnat
+ across loadrs and write to ar.bspstore
+
+ (ii) ar.bsp >= ia64_rse_rnat_addr(jmpbuf.ar_bsp)
+ The desired ar.rnat is stored in
+ ia64_rse_rnat_addr(jmpbuf.ar_bsp). Load those
+ bits into ar.rnat after setting ar.bspstore. */
+
+#include <sysdep.h>
+#include <features.h>
+
+# define pPos p6 /* is rotate count positive? */
+# define pNeg p7 /* is rotate count negative? */
+
+
+ /* __longjmp(__jmp_buf buf, int val) */
+
+LEAF(__longjmp)
+#ifdef CHECK_RSP
+ alloc r8=ar.pfs,2,1,3,0
+ CHECK_RSP
+#else
+ alloc r8=ar.pfs,2,0,0,0
+#endif
+ mov r27=ar.rsc
+ add r2=0x98,in0 // r2 <- &jmpbuf.orig_jmp_buf_addr
+ ;;
+ ld8 r8=[r2],-16 // r8 <- orig_jmp_buf_addr
+ mov r10=ar.bsp
+ and r11=~0x3,r27 // clear ar.rsc.mode
+ ;;
+ flushrs // flush dirty regs to backing store (must be first in insn grp)
+ ld8 r23=[r2],8 // r23 <- jmpbuf.ar_bsp
+ sub r8=r8,in0 // r8 <- &orig_jmpbuf - &jmpbuf
+ ;;
+ ld8 r25=[r2] // r25 <- jmpbuf.ar_unat
+ extr.u r8=r8,3,6 // r8 <- (&orig_jmpbuf - &jmpbuf)/8 & 0x3f
+ ;;
+ cmp.lt pNeg,pPos=r8,r0
+ mov r2=in0
+ ;;
+(pPos) mov r16=r8
+(pNeg) add r16=64,r8
+(pPos) sub r17=64,r8
+(pNeg) sub r17=r0,r8
+ ;;
+ mov ar.rsc=r11 // put RSE in enforced lazy mode
+ shr.u r8=r25,r16
+ add r3=8,in0 // r3 <- &jmpbuf.r1
+ shl r9=r25,r17
+ ;;
+ ld8.fill.nta r28=[r2],16 // r28 <- jmpbuf.sp
+ or r25=r8,r9
+ ;;
+ mov r26=ar.rnat
+ mov ar.unat=r25 // setup ar.unat (NaT bits for r1, r4-r7, and r12)
+ ;;
+ ld8.fill.nta gp=[r3],32 // r1 (gp)
+ dep r11=-1,r23,3,6 // r11 <- ia64_rse_rnat_addr(jmpbuf.ar_bsp)
+ mov sp=r28 // r12 (sp)
+ ;;
+ ld8.nta r16=[r2],16 // caller's unat
+// ld8.nta r17=[r3],16 // fpsr
+ ;;
+ ld8.fill.nta r4=[r2],16 // r4
+ ld8.fill.nta r5=[r3],16 // r5 (gp)
+ cmp.geu p8,p0=r10,r11 // p8 <- (ar.bsp >= jmpbuf.ar_bsp)
+ ;;
+ ld8.fill.nta r6=[r2],16 // r6
+ ld8.fill.nta r7=[r3],16 // r7
+ ;;
+ mov ar.unat=r16 // restore caller's unat
+// mov ar.fpsr=r17 // restore fpsr
+ ;;
+ ld8.nta r16=[r2],16 // b0
+ ld8.nta r17=[r3],16 // b1
+ ;;
+(p8) ld8 r26=[r11] // r26 <- *ia64_rse_rnat_addr(jmpbuf.ar_bsp)
+ mov ar.bspstore=r23 // restore ar.bspstore
+ ;;
+ ld8.nta r18=[r2],16 // b2
+ ld8.nta r19=[r3],16 // b3
+ ;;
+#ifdef PTR_DEMANGLE
+ PTR_DEMANGLE (r16, r24)
+#endif
+ ld8.nta r20=[r2],16 // b4
+ ld8.nta r21=[r3],16 // b5
+ ;;
+ ld8.nta r11=[r2],16 // ar.pfs
+ ld8.nta r22=[r3],56 // ar.lc
+ ;;
+ ld8.nta r24=[r2],32 // pr
+ mov b0=r16
+ ;;
+ ldf.fill.nta f2=[r2],32
+ ldf.fill.nta f3=[r3],32
+ mov b1=r17
+ ;;
+ ldf.fill.nta f4=[r2],32
+ ldf.fill.nta f5=[r3],32
+ mov b2=r18
+ ;;
+ ldf.fill.nta f16=[r2],32
+ ldf.fill.nta f17=[r3],32
+ mov b3=r19
+ ;;
+ ldf.fill.nta f18=[r2],32
+ ldf.fill.nta f19=[r3],32
+ mov b4=r20
+ ;;
+ ldf.fill.nta f20=[r2],32
+ ldf.fill.nta f21=[r3],32
+ mov b5=r21
+ ;;
+ ldf.fill.nta f22=[r2],32
+ ldf.fill.nta f23=[r3],32
+ mov ar.lc=r22
+ ;;
+ ldf.fill.nta f24=[r2],32
+ ldf.fill.nta f25=[r3],32
+ cmp.eq p8,p9=0,in1
+ ;;
+ ldf.fill.nta f26=[r2],32
+ ldf.fill.nta f27=[r3],32
+ mov ar.pfs=r11
+ ;;
+ ldf.fill.nta f28=[r2],32
+ ldf.fill.nta f29=[r3],32
+ ;;
+ ldf.fill.nta f30=[r2]
+ ldf.fill.nta f31=[r3]
+(p8) mov r8=1
+
+ mov ar.rnat=r26 // restore ar.rnat
+ ;;
+ mov ar.rsc=r27 // restore ar.rsc
+(p9) mov r8=in1
+
+ invala // virt. -> phys. regnum mapping may change
+ mov pr=r24,-1
+ ret
+END(__longjmp)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/ia64/__sigstack_longjmp.c b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/__sigstack_longjmp.c
new file mode 100644
index 0000000000..918bc3a6f8
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/__sigstack_longjmp.c
@@ -0,0 +1,167 @@
+/* Copyright (C) 2004-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by David Mosberger-Tang <davidm@hpl.hp.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/>. */
+
+/* The public __longjmp() implementation is limited to jumping within
+ the same stack. That is, in general it is not possible to use this
+ __longjmp() implementation to cross from one stack to another.
+ In contrast, the __sigstack_longjmp() implemented here allows
+ crossing from the alternate signal stack to the normal stack
+ as a special case. */
+
+#include <assert.h>
+#include <setjmp.h>
+#include <signal.h>
+#include <stdint.h>
+#include <stdlib.h>
+
+#include <sysdep.h>
+#include <sys/rse.h>
+
+#define JB_SP 0
+#define JB_BSP 17
+
+struct rbs_flush_values
+ {
+ unsigned long bsp;
+ unsigned long rsc;
+ unsigned long rnat;
+ };
+
+extern struct rbs_flush_values __ia64_flush_rbs (void);
+extern void __ia64_longjmp (__jmp_buf buf, int val, long rnat, long rsc)
+ __attribute__ ((__noreturn__));
+
+static void
+copy_rbs (unsigned long *dst, unsigned long *dst_end, unsigned long dst_rnat,
+ unsigned long *src, unsigned long *src_end,
+ unsigned long current_rnat)
+{
+ unsigned long dst_slot, src_rnat = 0, src_slot, *src_rnat_addr, nat_bit;
+ int first_time = 1;
+
+ while (dst < dst_end)
+ {
+ dst_slot = ia64_rse_slot_num (dst);
+ if (dst_slot == 63)
+ {
+ *dst++ = dst_rnat;
+ dst_rnat = 0;
+ }
+ else
+ {
+ /* read source value, including NaT bit: */
+ src_slot = ia64_rse_slot_num (src);
+ if (src_slot == 63)
+ {
+ /* skip src RNaT slot */
+ ++src;
+ src_slot = 0;
+ }
+ if (first_time || src_slot == 0)
+ {
+ first_time = 0;
+ src_rnat_addr = ia64_rse_rnat_addr (src);
+ if (src_rnat_addr < src_end)
+ src_rnat = *src_rnat_addr;
+ else
+ src_rnat = current_rnat;
+ }
+ nat_bit = (src_rnat >> src_slot) & 1;
+
+ assert (src < src_end);
+
+ *dst++ = *src++;
+ if (nat_bit)
+ dst_rnat |= (1UL << dst_slot);
+ else
+ dst_rnat &= ~(1UL << dst_slot);
+ }
+ }
+ dst_slot = ia64_rse_slot_num (dst);
+ if (dst_slot > 0)
+ *ia64_rse_rnat_addr (dst) = dst_rnat;
+}
+
+void
+__sigstack_longjmp (__jmp_buf buf, int val)
+{
+ unsigned long *rbs_base, *bsp, *bspstore, *jb_bsp, jb_sp, ss_sp;
+ unsigned long ndirty, rnat, load_rnat, *jb_rnat_addr;
+ struct sigcontext *sc;
+ stack_t stk;
+ struct rbs_flush_values c;
+
+ /* put RSE into enforced-lazy mode and return current bsp/rsc/rnat: */
+ c = __ia64_flush_rbs ();
+
+ jb_sp = ((unsigned long *) buf)[JB_SP];
+ jb_bsp = ((unsigned long **) buf)[JB_BSP];
+
+ INTERNAL_SYSCALL_DECL (err);
+ (void) INTERNAL_SYSCALL (sigaltstack, err, 2, NULL, &stk);
+
+ ss_sp = (unsigned long) stk.ss_sp;
+ jb_rnat_addr = ia64_rse_rnat_addr (jb_bsp);
+
+ if ((stk.ss_flags & SS_ONSTACK) == 0 || jb_sp - ss_sp < stk.ss_size)
+ /* Normal non-stack-crossing longjmp; if the RNaT slot for the bsp
+ saved in the jump-buffer is the same as the one for the current
+ BSP, use the current AR.RNAT value, otherwise, load it from the
+ jump-buffer's RNaT-slot. */
+ load_rnat = (ia64_rse_rnat_addr ((unsigned long *) c.bsp) != jb_rnat_addr);
+ else
+ {
+ /* If we are on the alternate signal-stack and the jump-buffer
+ lies outside the signal-stack, we may need to copy back the
+ dirty partition which was torn off and saved on the
+ signal-stack when the signal was delivered.
+
+ Caveat: we assume that the top of the alternate signal-stack
+ stores the sigcontext structure of the signal that
+ caused the switch to the signal-stack. This should
+ be a fairly safe assumption but the kernel _could_
+ do things differently.. */
+ sc = ((struct sigcontext *) ((ss_sp + stk.ss_size) & -16) - 1);
+
+ /* As a sanity-check, verify that the register-backing-store base
+ of the alternate signal-stack is where we expect it. */
+ rbs_base = (unsigned long *)
+ ((ss_sp + sizeof (long) - 1) & -sizeof (long));
+
+ assert ((unsigned long) rbs_base == sc->sc_rbs_base);
+
+ ndirty = ia64_rse_num_regs (rbs_base, rbs_base + (sc->sc_loadrs >> 19));
+ bsp = (unsigned long *) sc->sc_ar_bsp;
+ bspstore = ia64_rse_skip_regs (bsp, -ndirty);
+
+ if (bspstore < jb_bsp)
+ /* AR.BSPSTORE at the time of the signal was below the value
+ of AR.BSP saved in the jump-buffer => copy the missing
+ portion from the torn off dirty partition which got saved
+ on the alternate signal-stack. */
+ copy_rbs (bspstore, jb_bsp, sc->sc_ar_rnat,
+ rbs_base, (unsigned long *) c.bsp, c.rnat);
+
+ load_rnat = 1;
+ }
+ if (load_rnat)
+ rnat = *jb_rnat_addr;
+ else
+ rnat = c.rnat;
+ __ia64_longjmp (buf, val, rnat, c.rsc);
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/ia64/__start_context.S b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/__start_context.S
new file mode 100644
index 0000000000..862b7ab024
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/__start_context.S
@@ -0,0 +1,51 @@
+/* Copyright (C) 2001-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by David Mosberger-Tang <davidm@hpl.hp.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>
+
+/* When a context set up by __makecontext() is activated, control
+ transfers to __start_context. When we get here:
+
+ b1 = entry point of function to call
+ in0 = address of UCP to resume after function returns
+ in1 = global pointer for __start_context
+ out0 .. outN = arguments for function */
+
+ENTRY(__start_context)
+ .prologue
+ alloc r2 = ar.pfs, 2, 0, 8, 0
+
+ .save rp, r4 // terminate call chain with a NULL rp
+ mov r4 = r0
+ ;;
+
+ .body
+ br.call.sptk rp = b1
+1:
+ mov gp = in1 // restore gp
+ cmp.ne p6,p0 = in0, r0 // uc_link != 0 ?
+ ;;
+(p6) mov out0 = in0
+(p6) br.call.sptk rp = __setcontext
+.Lexit:
+ mov out0 = 0
+ br.call.sptk rp = HIDDEN_JUMPTARGET(exit)
+
+1: br.cond.sptk .Lexit
+END(__start_context)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/ia64/arch-fork.h b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/arch-fork.h
new file mode 100644
index 0000000000..7e784d3232
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/arch-fork.h
@@ -0,0 +1,31 @@
+/* ARCH_FORK definition for Linux fork implementation. IA64 version.
+ 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 <sched.h>
+#include <signal.h>
+#include <sysdep.h>
+#include <tls.h>
+
+
+#define ARCH_FORK() \
+ INLINE_SYSCALL (clone2, 6, \
+ CLONE_CHILD_SETTID | CLONE_CHILD_CLEARTID | SIGCHLD, \
+ NULL, 0, NULL, &THREAD_SELF->tid, NULL)
+
+#define ARCH_CLONE __clone2
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/ia64/bits/endian.h b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/bits/endian.h
new file mode 100644
index 0000000000..98a5e23991
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/bits/endian.h
@@ -0,0 +1,7 @@
+/* Linux/ia64 is little-endian. */
+
+#ifndef _ENDIAN_H
+# error "Never use <bits/endian.h> directly; include <endian.h> instead."
+#endif
+
+#define __BYTE_ORDER __LITTLE_ENDIAN
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/ia64/bits/fcntl.h b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/bits/fcntl.h
new file mode 100644
index 0000000000..37d431d290
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/bits/fcntl.h
@@ -0,0 +1,53 @@
+/* O_*, F_*, FD_* bit values for Linux/IA64.
+ Copyright (C) 1999-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _FCNTL_H
+# error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
+#endif
+
+/* Not necessary, files are always with 64bit off_t. */
+#define __O_LARGEFILE 0
+
+/* Not necessary, we always have 64-bit offsets. */
+#define F_GETLK64 5 /* Get record locking info. */
+#define F_SETLK64 6 /* Set record locking info (non-blocking). */
+#define F_SETLKW64 7 /* Set record locking info (blocking). */
+
+/* We don't need to support __USE_FILE_OFFSET64. */
+struct flock
+ {
+ short int l_type; /* Type of lock: F_RDLCK, F_WRLCK, or F_UNLCK. */
+ short int l_whence; /* Where `l_start' is relative to (like `lseek'). */
+ __off_t l_start; /* Offset where the lock begins. */
+ __off_t l_len; /* Size of the locked area; zero means until EOF. */
+ __pid_t l_pid; /* Process holding the lock. */
+ };
+
+#ifdef __USE_LARGEFILE64
+struct flock64
+ {
+ short int l_type; /* Type of lock: F_RDLCK, F_WRLCK, or F_UNLCK. */
+ short int l_whence; /* Where `l_start' is relative to (like `lseek'). */
+ __off64_t l_start; /* Offset where the lock begins. */
+ __off64_t l_len; /* Size of the locked area; zero means until EOF. */
+ __pid_t l_pid; /* Process holding the lock. */
+ };
+#endif
+
+/* Include generic Linux declarations. */
+#include <bits/fcntl-linux.h>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/ia64/bits/ipc.h b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/bits/ipc.h
new file mode 100644
index 0000000000..ef25e2c44f
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/bits/ipc.h
@@ -0,0 +1,53 @@
+/* Copyright (C) 2000-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by David Mosberger-Tang <davidm@hpl.hp.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/>. */
+
+#ifndef _SYS_IPC_H
+# error "Never use <bits/ipc.h> directly; include <sys/ipc.h> instead."
+#endif
+
+#include <sys/types.h>
+
+/* Mode bits for `msgget', `semget', and `shmget'. */
+#define IPC_CREAT 01000 /* Create key if key does not exist. */
+#define IPC_EXCL 02000 /* Fail if key exists. */
+#define IPC_NOWAIT 04000 /* Return error on wait. */
+
+/* Control commands for `msgctl', `semctl', and `shmctl'. */
+#define IPC_RMID 0 /* Remove identifier. */
+#define IPC_SET 1 /* Set `ipc_perm' options. */
+#define IPC_STAT 2 /* Get `ipc_perm' options. */
+#define IPC_INFO 3 /* See ipcs. */
+
+/* Special key values. */
+#define IPC_PRIVATE ((__key_t) 0) /* Private key. */
+
+
+/* Data structure used to pass permission information to IPC operations. */
+struct ipc_perm
+ {
+ __key_t __key; /* Key. */
+ __uid_t uid; /* Owner's user ID. */
+ __gid_t gid; /* Owner's group ID. */
+ __uid_t cuid; /* Creator's user ID. */
+ __gid_t cgid; /* Creator's group ID. */
+ __mode_t mode; /* Read/write permission. */
+ unsigned short int __seq; /* Sequence number. */
+ unsigned short int __pad1;
+ unsigned long int __glibc_reserved1;
+ unsigned long int __glibc_reserved2;
+ };
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/ia64/bits/local_lim.h b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/bits/local_lim.h
new file mode 100644
index 0000000000..d1fab61d48
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/bits/local_lim.h
@@ -0,0 +1,99 @@
+/* Minimum guaranteed maximum values for system limits. Linux/IA-64 version.
+ Copyright (C) 1993-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+/* The kernel header pollutes the namespace with the NR_OPEN symbol
+ and defines LINK_MAX although filesystems have different maxima. A
+ similar thing is true for OPEN_MAX: the limit can be changed at
+ runtime and therefore the macro must not be defined. Remove this
+ after including the header if necessary. */
+#ifndef NR_OPEN
+# define __undef_NR_OPEN
+#endif
+#ifndef LINK_MAX
+# define __undef_LINK_MAX
+#endif
+#ifndef OPEN_MAX
+# define __undef_OPEN_MAX
+#endif
+#ifndef ARG_MAX
+# define __undef_ARG_MAX
+#endif
+
+/* The kernel sources contain a file with all the needed information. */
+#include <linux/limits.h>
+
+/* Have to remove NR_OPEN? */
+#ifdef __undef_NR_OPEN
+# undef NR_OPEN
+# undef __undef_NR_OPEN
+#endif
+/* Have to remove LINK_MAX? */
+#ifdef __undef_LINK_MAX
+# undef LINK_MAX
+# undef __undef_LINK_MAX
+#endif
+/* Have to remove OPEN_MAX? */
+#ifdef __undef_OPEN_MAX
+# undef OPEN_MAX
+# undef __undef_OPEN_MAX
+#endif
+/* Have to remove ARG_MAX? */
+#ifdef __undef_ARG_MAX
+# undef ARG_MAX
+# undef __undef_ARG_MAX
+#endif
+
+/* The number of data keys per process. */
+#define _POSIX_THREAD_KEYS_MAX 128
+/* This is the value this implementation supports. */
+#define PTHREAD_KEYS_MAX 1024
+
+/* Controlling the iterations of destructors for thread-specific data. */
+#define _POSIX_THREAD_DESTRUCTOR_ITERATIONS 4
+/* Number of iterations this implementation does. */
+#define PTHREAD_DESTRUCTOR_ITERATIONS _POSIX_THREAD_DESTRUCTOR_ITERATIONS
+
+/* The number of threads per process. */
+#define _POSIX_THREAD_THREADS_MAX 64
+/* We have no predefined limit on the number of threads. */
+#undef PTHREAD_THREADS_MAX
+
+/* Maximum amount by which a process can descrease its asynchronous I/O
+ priority level. */
+#define AIO_PRIO_DELTA_MAX 20
+
+/* Minimum size for a thread. We are free to choose a reasonable value. */
+#define PTHREAD_STACK_MIN 196608
+
+/* Maximum number of timer expiration overruns. */
+#define DELAYTIMER_MAX 2147483647
+
+/* Maximum tty name length. */
+#define TTY_NAME_MAX 32
+
+/* Maximum login name length. This is arbitrary. */
+#define LOGIN_NAME_MAX 256
+
+/* Maximum host name length. */
+#define HOST_NAME_MAX 64
+
+/* Maximum message queue priority level. */
+#define MQ_PRIO_MAX 32768
+
+/* Maximum value the semaphore can have. */
+#define SEM_VALUE_MAX (2147483647)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/ia64/bits/mman.h b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/bits/mman.h
new file mode 100644
index 0000000000..914644d88c
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/bits/mman.h
@@ -0,0 +1,41 @@
+/* Definitions for POSIX memory map interface. Linux/ia64 version.
+ Copyright (C) 1997-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_MMAN_H
+# error "Never use <bits/mman.h> directly; include <sys/mman.h> instead."
+#endif
+
+/* The following definitions basically come from the kernel headers.
+ But the kernel header is not namespace clean. */
+
+/* These are Linux-specific. */
+#ifdef __USE_MISC
+# define MAP_GROWSDOWN 0x00100 /* Stack-like segment. */
+# define MAP_GROWSUP 0x00200 /* Register stack-like segment */
+# define MAP_DENYWRITE 0x00800 /* ETXTBSY */
+# define MAP_EXECUTABLE 0x01000 /* Mark it as an executable. */
+# define MAP_LOCKED 0x02000 /* Lock the mapping. */
+# define MAP_NORESERVE 0x04000 /* Don't check for reservations. */
+# define MAP_POPULATE 0x08000 /* Populate (prefault) pagetables. */
+# define MAP_NONBLOCK 0x10000 /* Do not block on IO. */
+# define MAP_STACK 0x20000 /* Allocation is for a stack. */
+# define MAP_HUGETLB 0x40000 /* Create huge page mapping. */
+#endif
+
+/* Include generic Linux declarations. */
+#include <bits/mman-linux.h>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/ia64/bits/msq.h b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/bits/msq.h
new file mode 100644
index 0000000000..4ecbf36b57
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/bits/msq.h
@@ -0,0 +1,75 @@
+/* Copyright (C) 2000-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contribute by David Mosberger-Tang <davidm@hpl.hp.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/>. */
+
+#ifndef _SYS_MSG_H
+#error "Never use <bits/msq.h> directly; include <sys/msg.h> instead."
+#endif
+
+#include <bits/types.h>
+
+/* Define options for message queue functions. */
+#define MSG_NOERROR 010000 /* no error if message is too big */
+#ifdef __USE_GNU
+# define MSG_EXCEPT 020000 /* recv any msg except of specified type */
+# define MSG_COPY 040000 /* copy (not remove) all queue messages */
+#endif
+
+/* Types used in the structure definition. */
+typedef unsigned long int msgqnum_t;
+typedef unsigned long int msglen_t;
+
+
+/* Structure of record for one message inside the kernel.
+ The type `struct msg' is opaque. */
+struct msqid_ds
+{
+ struct ipc_perm msg_perm; /* structure describing operation permission */
+ __time_t msg_stime; /* time of last msgsnd command */
+ __time_t msg_rtime; /* time of last msgrcv command */
+ __time_t msg_ctime; /* time of last change */
+ unsigned long int __msg_cbytes; /* current number of bytes on queue */
+ msgqnum_t msg_qnum; /* number of messages currently on queue */
+ msglen_t msg_qbytes; /* max number of bytes allowed on queue */
+ __pid_t msg_lspid; /* pid of last msgsnd() */
+ __pid_t msg_lrpid; /* pid of last msgrcv() */
+ unsigned long int __glibc_reserved1;
+ unsigned long int __glibc_reserved2;
+};
+
+#ifdef __USE_MISC
+
+# define msg_cbytes __msg_cbytes
+
+/* ipcs ctl commands */
+# define MSG_STAT 11
+# define MSG_INFO 12
+
+/* buffer for msgctl calls IPC_INFO, MSG_INFO */
+struct msginfo
+ {
+ int msgpool;
+ int msgmap;
+ int msgmax;
+ int msgmnb;
+ int msgmni;
+ int msgssz;
+ int msgtql;
+ unsigned short int msgseg;
+ };
+
+#endif /* __USE_MISC */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/ia64/bits/sem.h b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/bits/sem.h
new file mode 100644
index 0000000000..16a69771bf
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/bits/sem.h
@@ -0,0 +1,85 @@
+/* Copyright (C) 2000-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by David Mosberger-Tang <davidm@hpl.hp.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/>. */
+
+#ifndef _SYS_SEM_H
+# error "Never include <bits/sem.h> directly; use <sys/sem.h> instead."
+#endif
+
+#include <sys/types.h>
+
+/* Flags for `semop'. */
+#define SEM_UNDO 0x1000 /* undo the operation on exit */
+
+/* Commands for `semctl'. */
+#define GETPID 11 /* get sempid */
+#define GETVAL 12 /* get semval */
+#define GETALL 13 /* get all semval's */
+#define GETNCNT 14 /* get semncnt */
+#define GETZCNT 15 /* get semzcnt */
+#define SETVAL 16 /* set semval */
+#define SETALL 17 /* set all semval's */
+
+
+/* Data structure describing a set of semaphores. */
+struct semid_ds
+{
+ struct ipc_perm sem_perm; /* operation permission struct */
+ __time_t sem_otime; /* last semop() time */
+ __time_t sem_ctime; /* last time changed by semctl() */
+ unsigned long int sem_nsems; /* number of semaphores in set */
+ unsigned long int __glibc_reserved1;
+ unsigned long int __glibc_reserved2;
+};
+
+/* The user should define a union like the following to use it for arguments
+ for `semctl'.
+
+ union semun
+ {
+ int val; <= value for SETVAL
+ struct semid_ds *buf; <= buffer for IPC_STAT & IPC_SET
+ unsigned short int *array; <= array for GETALL & SETALL
+ struct seminfo *__buf; <= buffer for IPC_INFO
+ };
+
+ Previous versions of this file used to define this union but this is
+ incorrect. One can test the macro _SEM_SEMUN_UNDEFINED to see whether
+ one must define the union or not. */
+#define _SEM_SEMUN_UNDEFINED 1
+
+#ifdef __USE_MISC
+
+/* ipcs ctl cmds */
+# define SEM_STAT 18
+# define SEM_INFO 19
+
+struct seminfo
+{
+ int semmap;
+ int semmni;
+ int semmns;
+ int semmnu;
+ int semmsl;
+ int semopm;
+ int semume;
+ int semusz;
+ int semvmx;
+ int semaem;
+};
+
+#endif /* __USE_MISC */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/ia64/bits/setjmp.h b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/bits/setjmp.h
new file mode 100644
index 0000000000..5f2025d2ff
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/bits/setjmp.h
@@ -0,0 +1,34 @@
+/* Define the machine-dependent type `jmp_buf'. Linux/IA-64 version.
+ Copyright (C) 1999-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by David Mosberger-Tang <davidm@hpl.hp.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/>. */
+
+#ifndef _BITS_SETJMP_H
+#define _BITS_SETJMP_H 1
+
+#if !defined _SETJMP_H && !defined _PTHREAD_H
+# error "Never include <bits/setjmp.h> directly; use <setjmp.h> instead."
+#endif
+
+/* User code must not depend on the internal representation of jmp_buf. */
+
+#define _JBLEN 70
+
+/* the __jmp_buf element type should be __float80 per ABI... */
+typedef long __jmp_buf[_JBLEN] __attribute__ ((__aligned__ (16))); /* guarantees 128-bit alignment! */
+
+#endif /* bits/setjmp.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/ia64/bits/shm.h b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/bits/shm.h
new file mode 100644
index 0000000000..add8a60f5a
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/bits/shm.h
@@ -0,0 +1,94 @@
+/* Copyright (C) 2000-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_SHM_H
+# error "Never include <bits/shm.h> directly; use <sys/shm.h> instead."
+#endif
+
+#include <sys/types.h>
+
+/* Permission flag for shmget. */
+#define SHM_R 0400 /* or S_IRUGO from <linux/stat.h> */
+#define SHM_W 0200 /* or S_IWUGO from <linux/stat.h> */
+
+/* Flags for `shmat'. */
+#define SHM_RDONLY 010000 /* attach read-only else read-write */
+#define SHM_RND 020000 /* round attach address to SHMLBA */
+#define SHM_REMAP 040000 /* take-over region on attach */
+#define SHM_EXEC 0100000 /* execution access */
+
+/* Commands for `shmctl'. */
+#define SHM_LOCK 11 /* lock segment (root only) */
+#define SHM_UNLOCK 12 /* unlock segment (root only) */
+
+/* Segment low boundary address multiple. */
+#define SHMLBA (1024 * 1024)
+
+/* Type to count number of attaches. */
+typedef unsigned long int shmatt_t;
+
+/* Data structure describing a shared memory segment. */
+struct shmid_ds
+ {
+ struct ipc_perm shm_perm; /* operation permission struct */
+ size_t shm_segsz; /* size of segment in bytes */
+ __time_t shm_atime; /* time of last shmat() */
+ __time_t shm_dtime; /* time of last shmdt() */
+ __time_t shm_ctime; /* time of last change by shmctl() */
+ __pid_t shm_cpid; /* pid of creator */
+ __pid_t shm_lpid; /* pid of last shmop */
+ shmatt_t shm_nattch; /* number of current attaches */
+ unsigned long int __glibc_reserved1;
+ unsigned long int __glibc_reserved2;
+ };
+
+#ifdef __USE_MISC
+
+/* ipcs ctl commands */
+# define SHM_STAT 13
+# define SHM_INFO 14
+
+/* shm_mode upper byte flags */
+# define SHM_DEST 01000 /* segment will be destroyed on last detach */
+# define SHM_LOCKED 02000 /* segment will not be swapped */
+# define SHM_HUGETLB 04000 /* segment is mapped via hugetlb */
+# define SHM_NORESERVE 010000 /* don't check for reservations */
+
+struct shminfo
+ {
+ unsigned long int shmmax;
+ unsigned long int shmmin;
+ unsigned long int shmmni;
+ unsigned long int shmseg;
+ unsigned long int shmall;
+ unsigned long int __glibc_reserved1;
+ unsigned long int __glibc_reserved2;
+ unsigned long int __glibc_reserved3;
+ unsigned long int __glibc_reserved4;
+ };
+
+struct shm_info
+ {
+ int used_ids;
+ unsigned long int shm_tot; /* total allocated shm */
+ unsigned long int shm_rss; /* total resident shm */
+ unsigned long int shm_swp; /* total swapped shm */
+ unsigned long int swap_attempts;
+ unsigned long int swap_successes;
+ };
+
+#endif /* __USE_MISC */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/ia64/bits/sigaction.h b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/bits/sigaction.h
new file mode 100644
index 0000000000..099fbf55c9
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/bits/sigaction.h
@@ -0,0 +1,75 @@
+/* Definitions for Linux/ia64 sigaction.
+ Copyright (C) 1996-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SIGNAL_H
+# error "Never include <bits/sigaction.h> directly; use <signal.h> instead."
+#endif
+
+/* Structure describing the action to be taken when a signal arrives. */
+struct sigaction
+ {
+ /* Signal handler. */
+#ifdef __USE_POSIX199309
+ union
+ {
+ /* Used if SA_SIGINFO is not set. */
+ __sighandler_t sa_handler;
+ /* Used if SA_SIGINFO is set. */
+ void (*sa_sigaction) (int, siginfo_t *, void *);
+ }
+ __sigaction_handler;
+# define sa_handler __sigaction_handler.sa_handler
+# define sa_sigaction __sigaction_handler.sa_sigaction
+#else
+ __sighandler_t sa_handler;
+#endif
+
+ /* Special flags. */
+ int sa_flags;
+ int __glibc_reserved0;
+
+ /* Additional set of signals to be blocked. */
+ __sigset_t sa_mask;
+ };
+
+/* Bits in `sa_flags'. */
+#define SA_NOCLDSTOP 0x00000001 /* Don't send SIGCHLD when children stop. */
+#define SA_NOCLDWAIT 0x00000002 /* Don't create zombie on child death. */
+#define SA_SIGINFO 0x00000004
+#if defined __USE_UNIX98 || defined __USE_MISC
+# define SA_ONSTACK 0x08000000 /* Use signal stack by using `sa_restorer'. */
+#endif
+#if defined __USE_UNIX98 || defined __USE_XOPEN2K8
+# define SA_RESTART 0x10000000 /* Restart syscall on signal return. */
+# define SA_NODEFER 0x40000000 /* Don't automatically block the signal
+ when its handler is being executed. */
+# define SA_RESETHAND 0x80000000 /* Reset to SIG_DFL on entry to handler. */
+#endif
+#ifdef __USE_MISC
+# define SA_INTERRUPT 0x20000000 /* Historic no-op. */
+
+/* Some aliases for the SA_ constants. */
+# define SA_NOMASK SA_NODEFER
+# define SA_ONESHOT SA_RESETHAND
+# define SA_STACK SA_ONSTACK
+#endif
+
+/* Values for the HOW argument to `sigprocmask'. */
+#define SIG_BLOCK 0 /* for blocking signals */
+#define SIG_UNBLOCK 1 /* for unblocking signals */
+#define SIG_SETMASK 2 /* for setting the signal mask */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/ia64/bits/sigcontext.h b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/bits/sigcontext.h
new file mode 100644
index 0000000000..c81463d809
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/bits/sigcontext.h
@@ -0,0 +1,82 @@
+/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Jes Sorensen <jes@linuxcare.com>, July 2000
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _BITS_SIGCONTEXT_H
+#define _BITS_SIGCONTEXT_H 1
+
+#if !defined _SIGNAL_H && !defined _SYS_UCONTEXT_H
+# error "Never use <bits/sigcontext.h> directly; include <signal.h> instead."
+#endif
+
+#define __need_size_t
+#include <stddef.h>
+#include <bits/sigstack.h>
+#include <bits/types/struct_sigstack.h>
+#include <bits/types/stack_t.h>
+#include <bits/ss_flags.h>
+
+struct __ia64_fpreg
+ {
+ union
+ {
+ unsigned long bits[2];
+ } u;
+ } __attribute__ ((__aligned__ (16)));
+
+struct sigcontext
+{
+ unsigned long int sc_flags; /* see manifest constants below */
+ unsigned long int sc_nat; /* bit i == 1 iff scratch reg gr[i] is a NaT */
+ stack_t sc_stack; /* previously active stack */
+
+ unsigned long int sc_ip; /* instruction pointer */
+ unsigned long int sc_cfm; /* current frame marker */
+ unsigned long int sc_um; /* user mask bits */
+ unsigned long int sc_ar_rsc; /* register stack configuration register */
+ unsigned long int sc_ar_bsp; /* backing store pointer */
+ unsigned long int sc_ar_rnat; /* RSE NaT collection register */
+ unsigned long int sc_ar_ccv; /* compare & exchange compare value register */
+ unsigned long int sc_ar_unat; /* ar.unat of interrupted context */
+ unsigned long int sc_ar_fpsr; /* floating-point status register */
+ unsigned long int sc_ar_pfs; /* previous function state */
+ unsigned long int sc_ar_lc; /* loop count register */
+ unsigned long int sc_pr; /* predicate registers */
+ unsigned long int sc_br[8]; /* branch registers */
+ unsigned long int sc_gr[32]; /* general registers (static partition) */
+ struct __ia64_fpreg sc_fr[128]; /* floating-point registers */
+ unsigned long int sc_rbs_base;/* NULL or new base of sighandler's rbs */
+ unsigned long int sc_loadrs; /* see description above */
+ unsigned long int sc_ar25; /* cmp8xchg16 uses this */
+ unsigned long int sc_ar26; /* rsvd for scratch use */
+ unsigned long int sc_rsvd[12];/* reserved for future use */
+
+ /* sc_mask is actually an sigset_t but we don't want to
+ * include the kernel headers here. */
+ unsigned long int sc_mask; /* signal mask to restore after handler returns */
+};
+
+/* sc_flag bit definitions. */
+#define IA64_SC_FLAG_ONSTACK_BIT 0 /* is handler running on signal stack? */
+#define IA64_SC_FLAG_IN_SYSCALL_BIT 1 /* did signal interrupt a syscall? */
+#define IA64_SC_FLAG_FPH_VALID_BIT 2 /* is state in f[32]-f[127] valid? */
+
+#define IA64_SC_FLAG_ONSTACK (1 << IA64_SC_FLAG_ONSTACK_BIT)
+#define IA64_SC_FLAG_IN_SYSCALL (1 << IA64_SC_FLAG_IN_SYSCALL_BIT)
+#define IA64_SC_FLAG_FPH_VALID (1 << IA64_SC_FLAG_FPH_VALID_BIT)
+
+#endif /* _BITS_SIGCONTEXT_H */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/ia64/bits/siginfo-arch.h b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/bits/siginfo-arch.h
new file mode 100644
index 0000000000..8b5647062c
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/bits/siginfo-arch.h
@@ -0,0 +1,17 @@
+/* Architecture-specific adjustments to siginfo_t. ia64 version. */
+#ifndef _BITS_SIGINFO_ARCH_H
+
+#define __SI_HAVE_SIGSYS 0
+
+#define __SI_SIGFAULT_ADDL \
+ int _si_imm; \
+ unsigned int _si_flags; \
+ unsigned long int _si_isr;
+
+#ifdef __USE_GNU
+# define si_imm _sifields._sigfault._si_imm
+# define si_segvflags _sifields._sigfault._si_flags
+# define si_isr _sifields._sigfault._si_isr
+#endif
+
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/ia64/bits/siginfo-consts-arch.h b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/bits/siginfo-consts-arch.h
new file mode 100644
index 0000000000..4c5c4da516
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/bits/siginfo-consts-arch.h
@@ -0,0 +1,45 @@
+/* Architecture-specific additional siginfo constants. ia64 version. */
+#ifndef _BITS_SIGINFO_CONSTS_ARCH_H
+#define _BITS_SIGINFO_CONSTS_ARCH_H 1
+
+/* `si_code' values for SIGILL signal. */
+enum
+{
+ ILL_BADIADDR = ILL_BADSTK + 1, /* Unimplemented instruction address. */
+#define ILL_BADIADDR ILL_BADIADDR
+ ILL_BREAK
+#define ILL_BREAK ILL_BREAK
+};
+
+/* `si_code' values for SIGFPE signal. */
+enum
+{
+ FPE_DECOVF = FPE_FLTSUB + 1,
+#define FPE_DECOVF FPE_DECOVF
+ FPE_DECDIV,
+#define FPE_DECDIV FPE_DECDIV
+ FPE_DECERR,
+#define FPE_DECERR FPE_DECERR
+ FPE_INVASC,
+#define FPE_INVASC FPE_INVASC
+ FPE_INVDEC
+#define FPE_INVDEC FPE_INVDEC
+};
+
+/* `si_code' values for SIGSEGV signal. */
+enum
+{
+ SEGV_PSTKOVF = SEGV_ACCERR + 1
+#define SEGV_PSTKOVF SEGV_PSTKOVF
+};
+
+/* `si_code' values for SIGTRAP signal. */
+enum
+{
+ TRAP_BRANCH = TRAP_TRACE + 1,
+#define TRAP_BRANCH TRAP_BRANCH
+ TRAP_HWBKPT
+#define TRAP_HWBKPT TRAP_HWBKPT
+};
+
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/ia64/bits/sigstack.h b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/bits/sigstack.h
new file mode 100644
index 0000000000..aabefbb1e3
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/bits/sigstack.h
@@ -0,0 +1,36 @@
+/* sigstack, sigaltstack definitions.
+ Copyright (C) 1998-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _BITS_SIGSTACK_H
+#define _BITS_SIGSTACK_H 1
+
+#if !defined _SIGNAL_H && !defined _SYS_UCONTEXT_H
+# error "Never include this file directly. Use <signal.h> instead"
+#endif
+
+/* Minimum stack size for a signal handler.
+
+ Yes, this should be 131072 but the constant got defined incorrectly
+ in the kernel and we have to live with it. Users should in any case
+ use SIGSTKSZ as the size user-supplied buffers should have. */
+#define MINSIGSTKSZ 131027
+
+/* System default stack size. */
+#define SIGSTKSZ 262144
+
+#endif /* bits/sigstack.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/ia64/bits/stat.h b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/bits/stat.h
new file mode 100644
index 0000000000..0e0b939b56
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/bits/stat.h
@@ -0,0 +1,149 @@
+/* Copyright (C) 1999-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#if !defined _SYS_STAT_H && !defined _FCNTL_H
+# error "Never include <bits/stat.h> directly; use <sys/stat.h> instead."
+#endif
+
+#ifndef _BITS_STAT_H
+#define _BITS_STAT_H 1
+
+/* Versions of the `struct stat' data structure. */
+#define _STAT_VER_KERNEL 0
+#define _STAT_VER_LINUX 1
+#define _STAT_VER _STAT_VER_LINUX
+
+/* Versions of the `xmknod' interface. */
+#define _MKNOD_VER_LINUX 0
+
+struct stat
+ {
+ __dev_t st_dev; /* Device. */
+ __ino_t st_ino; /* File serial number. */
+ __nlink_t st_nlink; /* Link count. */
+ __mode_t st_mode; /* File mode. */
+ __uid_t st_uid; /* User ID of the file's owner. */
+ __gid_t st_gid; /* Group ID of the file's group.*/
+ int __glibc_reserved0;
+ __dev_t st_rdev; /* Device number, if device. */
+ __off_t st_size; /* Size of file, in bytes. */
+#ifdef __USE_XOPEN2K8
+ /* Nanosecond resolution timestamps are stored in a format
+ equivalent to 'struct timespec'. This is the type used
+ whenever possible but the Unix namespace rules do not allow the
+ identifier 'timespec' to appear in the <sys/stat.h> header.
+ Therefore we have to handle the use of this header in strictly
+ standard-compliant sources special. */
+ struct timespec st_atim; /* Time of last access. */
+ struct timespec st_mtim; /* Time of last modification. */
+ struct timespec st_ctim; /* Time of last status change. */
+# define st_atime st_atim.tv_sec /* Backward compatibility. */
+# define st_mtime st_mtim.tv_sec
+# define st_ctime st_ctim.tv_sec
+#else
+ __time_t st_atime; /* Time of last access. */
+ unsigned long int st_atimensec; /* Nscecs of last access. */
+ __time_t st_mtime; /* Time of last modification. */
+ unsigned long int st_mtimensec; /* Nsecs of last modification. */
+ __time_t st_ctime; /* Time of last status change. */
+ unsigned long int st_ctimensec; /* Nsecs of last status change. */
+#endif
+ __blksize_t st_blksize; /* Optimal block size for I/O. */
+ __blkcnt_t st_blocks; /* Nr. 512-byte blocks allocated. */
+ long int __glibc_reserved[3];
+ };
+
+#ifdef __USE_LARGEFILE64
+/* Note stat64 is the same shape as stat. */
+struct stat64
+ {
+ __dev_t st_dev; /* Device. */
+ __ino64_t st_ino; /* File serial number. */
+ __nlink_t st_nlink; /* Link count. */
+ __mode_t st_mode; /* File mode. */
+ __uid_t st_uid; /* User ID of the file's owner. */
+ __gid_t st_gid; /* Group ID of the file's group.*/
+ int __glibc_reserved0;
+ __dev_t st_rdev; /* Device number, if device. */
+ __off_t st_size; /* Size of file, in bytes. */
+#ifdef __USE_XOPEN2K8
+ /* Nanosecond resolution timestamps are stored in a format
+ equivalent to 'struct timespec'. This is the type used
+ whenever possible but the Unix namespace rules do not allow the
+ identifier 'timespec' to appear in the <sys/stat.h> header.
+ Therefore we have to handle the use of this header in strictly
+ standard-compliant sources special. */
+ struct timespec st_atim; /* Time of last access. */
+ struct timespec st_mtim; /* Time of last modification. */
+ struct timespec st_ctim; /* Time of last status change. */
+# define st_atime st_atim.tv_sec /* Backward compatibility. */
+# define st_mtime st_mtim.tv_sec
+# define st_ctime st_ctim.tv_sec
+#else
+ __time_t st_atime; /* Time of last access. */
+ unsigned long int st_atimensec; /* Nscecs of last access. */
+ __time_t st_mtime; /* Time of last modification. */
+ unsigned long int st_mtimensec; /* Nsecs of last modification. */
+ __time_t st_ctime; /* Time of last status change. */
+ unsigned long int st_ctimensec; /* Nsecs of last status change. */
+#endif
+ __blksize_t st_blksize; /* Optimal block size for I/O. */
+ __blkcnt64_t st_blocks; /* Nr. 512-byte blocks allocated. */
+ long int __glibc_reserved[3];
+ };
+#endif
+
+/* Tell code we have these members. */
+#define _STATBUF_ST_BLKSIZE
+#define _STATBUF_ST_RDEV
+/* Nanosecond resolution time values are supported. */
+#define _STATBUF_ST_NSEC
+
+/* Encoding of the file mode. */
+
+#define __S_IFMT 0170000 /* These bits determine file type. */
+
+/* File types. */
+#define __S_IFDIR 0040000 /* Directory. */
+#define __S_IFCHR 0020000 /* Character device. */
+#define __S_IFBLK 0060000 /* Block device. */
+#define __S_IFREG 0100000 /* Regular file. */
+#define __S_IFIFO 0010000 /* FIFO. */
+#define __S_IFLNK 0120000 /* Symbolic link. */
+#define __S_IFSOCK 0140000 /* Socket. */
+
+/* POSIX.1b objects. Note that these macros always evaluate to zero. But
+ they do it by enforcing the correct use of the macros. */
+#define __S_TYPEISMQ(buf) ((buf)->st_mode - (buf)->st_mode)
+#define __S_TYPEISSEM(buf) ((buf)->st_mode - (buf)->st_mode)
+#define __S_TYPEISSHM(buf) ((buf)->st_mode - (buf)->st_mode)
+
+/* Protection bits. */
+
+#define __S_ISUID 04000 /* Set user ID on execution. */
+#define __S_ISGID 02000 /* Set group ID on execution. */
+#define __S_ISVTX 01000 /* Save swapped text after use (sticky). */
+#define __S_IREAD 0400 /* Read by owner. */
+#define __S_IWRITE 0200 /* Write by owner. */
+#define __S_IEXEC 0100 /* Execute by owner. */
+
+#ifdef __USE_ATFILE
+# define UTIME_NOW ((1l << 30) - 1l)
+# define UTIME_OMIT ((1l << 30) - 2l)
+#endif
+
+#endif /* bits//stat.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/ia64/brk.S b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/brk.S
new file mode 100644
index 0000000000..cc7650b78c
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/brk.S
@@ -0,0 +1,51 @@
+/* brk system call for Linux/ia64
+ Copyright (C) 1999-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Written by Stephane Eranian <eranian@hpl.hp.com> and
+ Jes Sorensen, <Jes.Sorensen@cern.ch>, April 1999.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+
+#include <asm/unistd.h>
+#include <asm/errno.h>
+
+ .global __curbrk
+ .type __curbrk,@object
+ .size __curbrk,8
+ .data
+ .align 8
+__curbrk:
+ data8 0
+
+weak_alias (__curbrk, ___brk_addr)
+
+LEAF(__brk)
+ .regstk 1, 0, 0, 0
+ DO_CALL(__NR_brk)
+ cmp.ltu p6, p0 = ret0, in0
+ addl r9 = @ltoff(__curbrk), gp
+ ;;
+ ld8 r9 = [r9]
+(p6) mov ret0 = ENOMEM
+(p6) br.cond.spnt.few __syscall_error
+ ;;
+ st8 [r9] = ret0
+ mov ret0 = 0
+ ret
+END(__brk)
+
+weak_alias (__brk, brk)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/ia64/bsd-_setjmp.S b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/bsd-_setjmp.S
new file mode 100644
index 0000000000..4e6a2da560
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/bsd-_setjmp.S
@@ -0,0 +1 @@
+/* _setjmp is in setjmp.S */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/ia64/bsd-setjmp.S b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/bsd-setjmp.S
new file mode 100644
index 0000000000..1da848d2f1
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/bsd-setjmp.S
@@ -0,0 +1 @@
+/* setjmp is in setjmp.S */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/ia64/c++-types.data b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/c++-types.data
new file mode 100644
index 0000000000..23c11dc41b
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/c++-types.data
@@ -0,0 +1,67 @@
+blkcnt64_t:l
+blkcnt_t:l
+blksize_t:l
+caddr_t:Pc
+clockid_t:i
+clock_t:l
+daddr_t:i
+dev_t:m
+fd_mask:l
+fsblkcnt64_t:m
+fsblkcnt_t:m
+fsfilcnt64_t:m
+fsfilcnt_t:m
+fsid_t:8__fsid_t
+gid_t:j
+id_t:j
+ino64_t:m
+ino_t:m
+int16_t:s
+int32_t:i
+int64_t:l
+int8_t:a
+intptr_t:l
+key_t:i
+loff_t:l
+mode_t:j
+nlink_t:m
+off64_t:l
+off_t:l
+pid_t:i
+pthread_attr_t:14pthread_attr_t
+pthread_barrier_t:17pthread_barrier_t
+pthread_barrierattr_t:21pthread_barrierattr_t
+pthread_cond_t:14pthread_cond_t
+pthread_condattr_t:18pthread_condattr_t
+pthread_key_t:j
+pthread_mutex_t:15pthread_mutex_t
+pthread_mutexattr_t:19pthread_mutexattr_t
+pthread_once_t:i
+pthread_rwlock_t:16pthread_rwlock_t
+pthread_rwlockattr_t:20pthread_rwlockattr_t
+pthread_spinlock_t:i
+pthread_t:m
+quad_t:l
+register_t:l
+rlim64_t:m
+rlim_t:m
+sigset_t:10__sigset_t
+size_t:m
+socklen_t:j
+ssize_t:l
+suseconds_t:l
+time_t:l
+u_char:h
+uid_t:j
+uint:j
+u_int:j
+u_int16_t:t
+u_int32_t:j
+u_int64_t:m
+u_int8_t:h
+ulong:m
+u_long:m
+u_quad_t:m
+useconds_t:j
+ushort:t
+u_short:t
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/ia64/clone.S b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/clone.S
new file mode 100644
index 0000000000..0cfaeab64e
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/clone.S
@@ -0,0 +1 @@
+/* clone is not supported under Linux/ia64, use clone2. */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/ia64/clone2.S b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/clone2.S
new file mode 100644
index 0000000000..9b59473c80
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/clone2.S
@@ -0,0 +1,91 @@
+/* Copyright (C) 2000-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+
+#include <sysdep.h>
+#include <asm/errno.h>
+
+
+/* int __clone2(int (*fn) (void *arg), void *child_stack_base, */
+/* size_t child_stack_size, int flags, void *arg, */
+/* pid_t *parent_tid, void *tls, pid_t *child_tid) */
+
+#define CHILD p8
+#define PARENT p9
+
+ENTRY(__clone2)
+ .prologue
+ alloc r2=ar.pfs,8,1,6,0
+ cmp.eq p6,p0=0,in0
+ cmp.eq p7,p0=0,in1
+ mov r8=EINVAL
+ mov out0=in3 /* Flags are first syscall argument. */
+ mov out1=in1 /* Stack address. */
+(p6) br.cond.spnt.many __syscall_error /* no NULL function pointers */
+(p7) br.cond.spnt.many __syscall_error /* no NULL stack pointers */
+ ;;
+ mov out2=in2 /* Stack size. */
+ mov out3=in5 /* Parent TID Pointer */
+ mov out4=in7 /* Child TID Pointer */
+ mov out5=in6 /* TLS pointer */
+ /*
+ * clone2() is special: the child cannot execute br.ret right
+ * after the system call returns, because it starts out
+ * executing on an empty stack. Because of this, we can't use
+ * the new (lightweight) syscall convention here. Instead, we
+ * just fall back on always using "break".
+ *
+ * Furthermore, since the child starts with an empty stack, we
+ * need to avoid unwinding past invalid memory. To that end,
+ * we'll pretend now that __clone2() is the end of the
+ * call-chain. This is wrong for the parent, but only until
+ * it returns from clone2() but it's better than the
+ * alternative.
+ */
+ mov r15=SYS_ify (clone2)
+ .save rp, r0
+ break __BREAK_SYSCALL
+ .body
+ cmp.eq p6,p0=-1,r10
+ cmp.eq CHILD,PARENT=0,r8 /* Are we the child? */
+(p6) br.cond.spnt.many __syscall_error
+ ;;
+(CHILD) mov loc0=gp
+(PARENT) ret
+ ;;
+ ld8 out1=[in0],8 /* Retrieve code pointer. */
+ mov out0=in4 /* Pass proper argument to fn */
+ ;;
+ ld8 gp=[in0] /* Load function gp. */
+ mov b6=out1
+ br.call.dptk.many rp=b6 /* Call fn(arg) in the child */
+ ;;
+ mov out0=r8 /* Argument to _exit */
+ mov gp=loc0
+ .globl HIDDEN_JUMPTARGET(_exit)
+ br.call.dpnt.many rp=HIDDEN_JUMPTARGET(_exit)
+ /* call _exit with result from fn. */
+ ret /* Not reached. */
+PSEUDO_END(__clone2)
+
+libc_hidden_def (__clone2)
+
+/* For now we leave __clone undefined. This is unlikely to be a */
+/* problem, since at least the i386 __clone in glibc always failed */
+/* with a 0 sp (eventhough the kernel explicitly handled it). */
+/* Thus all such calls needed to pass an explicit sp, and as a result, */
+/* would be unlikely to work on ia64. */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/ia64/configure b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/configure
new file mode 100644
index 0000000000..3cf72371ef
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/configure
@@ -0,0 +1,8 @@
+# This file is generated from configure.ac by Autoconf. DO NOT EDIT!
+ # Local configure fragment for sysdeps/unix/sysv/linux/ia64
+
+ldd_rewrite_script=$dir/ldd-rewrite.sed
+
+# First version with support for the accept4 system call.
+# Linux 3.3 includes it as well.
+arch_minimum_kernel=3.2.18
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/ia64/configure.ac b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/configure.ac
new file mode 100644
index 0000000000..94a578c12d
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/configure.ac
@@ -0,0 +1,8 @@
+GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
+# Local configure fragment for sysdeps/unix/sysv/linux/ia64
+
+ldd_rewrite_script=$dir/ldd-rewrite.sed
+
+# First version with support for the accept4 system call.
+# Linux 3.3 includes it as well.
+arch_minimum_kernel=3.2.18
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/ia64/dl-brk.S b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/dl-brk.S
new file mode 100644
index 0000000000..eeb96544e3
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/dl-brk.S
@@ -0,0 +1 @@
+#include <brk.S>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/ia64/dl-cache.h b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/dl-cache.h
new file mode 100644
index 0000000000..79cbfff408
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/dl-cache.h
@@ -0,0 +1,24 @@
+/* Support for reading /etc/ld.so.cache files written by Linux ldconfig.
+ 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/>. */
+
+#define _DL_CACHE_DEFAULT_ID 0x203
+
+#define _dl_cache_check_flags(flags) \
+ ((flags) == _DL_CACHE_DEFAULT_ID)
+
+#include_next <dl-cache.h>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/ia64/dl-static.c b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/dl-static.c
new file mode 100644
index 0000000000..25e5c7e152
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/dl-static.c
@@ -0,0 +1,61 @@
+/* Variable initialization. IA-64 version.
+ Copyright (C) 2001-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <ldsodefs.h>
+
+#ifdef SHARED
+
+void
+_dl_var_init (void *array[])
+{
+ /* It has to match "variables" below. */
+ enum
+ {
+ DL_PAGESIZE = 0,
+ DL_CLKTCK
+ };
+
+ GLRO(dl_pagesize) = *((size_t *) array[DL_PAGESIZE]);
+ GLRO(dl_clktck) = *((int *) array[DL_CLKTCK]);
+}
+
+#else
+
+static void *variables[] =
+{
+ &GLRO(dl_pagesize),
+ &GLRO(dl_clktck)
+};
+
+void
+_dl_static_init (struct link_map *map)
+{
+ const ElfW(Sym) *ref = NULL;
+ lookup_t loadbase;
+ void (*f) (void *[]);
+
+ loadbase = _dl_lookup_symbol_x ("_dl_var_init", map, &ref,
+ map->l_local_scope, NULL, 0, 1, NULL);
+ if (ref != NULL)
+ {
+ f = (void (*) (void *[])) DL_SYMBOL_ADDRESS (loadbase, ref);
+ f (variables);
+ }
+}
+
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/ia64/dl-sysdep.h b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/dl-sysdep.h
new file mode 100644
index 0000000000..7a18385cf4
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/dl-sysdep.h
@@ -0,0 +1,55 @@
+/* System-specific settings for dynamic linker code. IA-64 version.
+ Copyright (C) 2003-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _LINUX_IA64_DL_SYSDEP_H
+#define _LINUX_IA64_DL_SYSDEP_H 1
+
+#include_next <dl-sysdep.h>
+
+/* Traditionally system calls have been made using break 0x100000. A
+ second method was introduced which, if possible, will use the EPC
+ instruction. To signal the presence and where to find the code the
+ kernel passes an AT_SYSINFO_EHDR pointer in the auxiliary vector to
+ the application. */
+#define NEED_DL_SYSINFO 1
+#define USE_DL_SYSINFO 1
+
+#ifndef __ASSEMBLER__
+/* Don't declare this as a function---we want it's entry-point, not
+ it's function descriptor... */
+extern int _dl_sysinfo_break attribute_hidden;
+# define DL_SYSINFO_DEFAULT ((uintptr_t) &_dl_sysinfo_break)
+# define DL_SYSINFO_IMPLEMENTATION \
+ asm (".text\n\t" \
+ ".hidden _dl_sysinfo_break\n\t" \
+ ".proc _dl_sysinfo_break\n\t" \
+ "_dl_sysinfo_break:\n\t" \
+ ".prologue\n\t" \
+ ".altrp b6\n\t" \
+ ".body\n\t" \
+ "break 0x100000;\n\t" \
+ "br.ret.sptk.many b6;\n\t" \
+ ".endp _dl_sysinfo_break\n\t" \
+ ".previous");
+#endif
+
+/* _dl_argv cannot be attribute_relro, because _dl_start_user
+ might write into it after _dl_start returns. */
+#define DL_ARGV_NOT_RELRO 1
+
+#endif /* dl-sysdep.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/ia64/get_clockfreq.c b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/get_clockfreq.c
new file mode 100644
index 0000000000..603c7d516e
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/get_clockfreq.c
@@ -0,0 +1,87 @@
+/* Get frequency of the system processor. IA-64/Linux version.
+ Copyright (C) 2001-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <ctype.h>
+#include <fcntl.h>
+#include <string.h>
+#include <unistd.h>
+
+
+hp_timing_t
+__get_clockfreq (void)
+{
+ /* We read the information from the /proc filesystem. It contains at
+ least one line like
+ itc MHz : 733.390988
+ We search for this line and convert the number in an integer. */
+ static hp_timing_t result;
+ int fd;
+
+ /* If this function was called before, we know the result. */
+ if (result != 0)
+ return result;
+
+ fd = __open ("/proc/cpuinfo", O_RDONLY);
+ if (__builtin_expect (fd != -1, 1))
+ {
+ /* XXX AFAIK the /proc filesystem can generate "files" only up
+ to a size of 4096 bytes. */
+ char buf[4096];
+ ssize_t n;
+
+ n = __read (fd, buf, sizeof buf);
+ if (__builtin_expect (n, 1) > 0)
+ {
+ char *mhz = memmem (buf, n, "itc MHz", 7);
+
+ if (__builtin_expect (mhz != NULL, 1))
+ {
+ char *endp = buf + n;
+ int seen_decpoint = 0;
+ int ndigits = 0;
+
+ /* Search for the beginning of the string. */
+ while (mhz < endp && (*mhz < '0' || *mhz > '9') && *mhz != '\n')
+ ++mhz;
+
+ while (mhz < endp && *mhz != '\n')
+ {
+ if (*mhz >= '0' && *mhz <= '9')
+ {
+ result *= 10;
+ result += *mhz - '0';
+ if (seen_decpoint)
+ ++ndigits;
+ }
+ else if (*mhz == '.')
+ seen_decpoint = 1;
+
+ ++mhz;
+ }
+
+ /* Compensate for missing digits at the end. */
+ while (ndigits++ < 6)
+ result *= 10;
+ }
+ }
+
+ __close (fd);
+ }
+
+ return result;
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/ia64/getclktck.c b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/getclktck.c
new file mode 100644
index 0000000000..6636bbe689
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/getclktck.c
@@ -0,0 +1,2 @@
+#define SYSTEM_CLK_TCK 1024
+#include <sysdeps/unix/sysv/linux/getclktck.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/ia64/getcontext.S b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/getcontext.S
new file mode 100644
index 0000000000..c3b20c7624
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/getcontext.S
@@ -0,0 +1,157 @@
+/* Copyright (C) 2001-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by David Mosberger-Tang <davidm@hpl.hp.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"
+
+/* __getcontext (ucontext_t *ucp)
+
+ Saves the machine context in UCP such that when it is activated,
+ it appears as if __getcontext() returned again. The only difference
+ is that on a first return, r9 contains 1 and on a subsequent
+ return, it contains 0.
+
+ This implementation in intended to be used for *synchronous* context
+ switches only. Therefore, it does not have to save anything
+ other than the PRESERVED state. */
+
+ENTRY(__getcontext)
+ .prologue
+ .body
+ alloc r11 = ar.pfs, 1, 0, 4, 0
+
+ // sigprocmask (SIG_BLOCK, NULL, &sc->sc_mask):
+
+ mov r3 = SC_MASK
+ mov out0 = SIG_BLOCK
+
+ flushrs // save dirty partition on rbs
+ mov out1 = 0
+ add out2 = r3, in0
+
+ mov out3 = 8 // sizeof kernel sigset_t
+ DO_CALL(__NR_rt_sigprocmask)
+
+ mov.m rFPSR = ar.fpsr
+ mov.m rRSC = ar.rsc
+ add r2 = SC_GR+1*8, r32
+ ;;
+ mov.m rBSP = ar.bsp
+ .prologue
+ .save ar.unat, rUNAT
+ mov.m rUNAT = ar.unat
+ .body
+ add r3 = SC_GR+4*8, r32
+ ;;
+
+.mem.offset 0,0; st8.spill [r2] = r1, (5*8 - 1*8)
+.mem.offset 8,0; st8.spill [r3] = r4, 16
+ mov rPFS = r11
+ ;;
+.mem.offset 0,0; st8.spill [r2] = r5, 16
+.mem.offset 8,0; st8.spill [r3] = r6, 48
+ and rTMP = ~0x3, rRSC
+ ;;
+.mem.offset 0,0; st8.spill [r2] = r7, (SC_FR+2*16-(SC_GR+7*8))
+.mem.offset 8,0; st8.spill [r3] = sp, (SC_FR+3*16-(SC_GR+12*8))
+ ;;
+ mov.m ar.rsc = rTMP // put RSE into enforced lazy mode
+ mov.m rNAT = ar.unat
+ mov.i rLC = ar.lc
+ ;;
+ mov.m rRNAT = ar.rnat
+ mov.m ar.rsc = rRSC // restore RSE mode
+ mov rPR = pr
+
+ /*
+ * Rotate NaT bits by rPOS positions to the right:
+ */
+ stf.spill [r2] = f2, 32
+ stf.spill [r3] = f3, 32
+ add rPOS = SC_GR, r32 // rPOS <- &sc_gr[0]
+ ;;
+ stf.spill [r2] = f4, (16*16-4*16)
+ stf.spill [r3] = f5, (17*16-5*16)
+ extr.u rPOS = rPOS, 3, 6 // get NaT bit number for r0
+ ;;
+ stf.spill [r2] = f16, 32
+ stf.spill [r3] = f17, 32
+ sub rCPOS = 64, rPOS
+ ;;
+ stf.spill [r2] = f18, 32
+ stf.spill [r3] = f19, 32
+ shr.u rTMP = rNAT, rPOS
+ ;;
+ stf.spill [r2] = f20, 32
+ stf.spill [r3] = f21, 32
+ shl rNAT = rNAT, rCPOS
+ ;;
+ stf.spill [r2] = f22, 32
+ stf.spill [r3] = f23, 32
+ or rNAT = rNAT, rTMP
+ ;;
+ stf.spill [r2] = f24, 32
+ stf.spill [r3] = f25, 32
+ mov r8 = 0
+ ;;
+ stf.spill [r2] = f26, 32
+ stf.spill [r3] = f27, 32
+ mov r9 = 1
+ ;;
+ stf.spill [r2] = f28, 32
+ stf.spill [r3] = f29, 32
+ mov rB0 = b0
+ ;;
+ stf.spill [r2] = f30, 32
+ stf.spill [r3] = f31, 32
+ mov rB1 = b1
+ ;;
+ mov ar.unat = rUNAT // we're done spilling integer regs; restore caller's UNaT
+ add r2 = SC_NAT, r32
+ add r3 = SC_BSP, r32
+ ;;
+ st8 [r2] = rNAT, (SC_RNAT-SC_NAT)
+ st8 [r3] = rBSP, (SC_UNAT-SC_BSP)
+ mov rB2 = b2
+ ;;
+ st8 [r2] = rRNAT, (SC_FPSR-SC_RNAT)
+ st8 [r3] = rUNAT, (SC_PFS-SC_UNAT)
+ mov rB3 = b3
+ ;;
+ st8 [r2] = rFPSR, (SC_LC-SC_FPSR)
+ st8 [r3] = rPFS, (SC_PR-SC_PFS)
+ mov rB4 = b4
+ ;;
+ st8 [r2] = rLC, (SC_BR+0*8-SC_LC)
+ st8 [r3] = rPR, (SC_BR+1*8-SC_PR)
+ mov rB5 = b5
+ ;;
+ st8 [r2] = rB0, 16
+ st8 [r3] = rB1, 16
+ ;;
+ st8 [r2] = rB2, 16
+ st8 [r3] = rB3, 16
+ ;;
+ st8 [r2] = rB4
+ st8 [r3] = rB5
+ ret
+END(__getcontext)
+
+weak_alias (__getcontext, getcontext)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/ia64/has_cpuclock.c b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/has_cpuclock.c
new file mode 100644
index 0000000000..2207c88c47
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/has_cpuclock.c
@@ -0,0 +1,51 @@
+/* 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 <errno.h>
+#include <fcntl.h>
+#include <unistd.h>
+#include <sys/stat.h>
+#include <sys/types.h>
+#include <not-cancel.h>
+
+static int itc_usable;
+
+static int
+has_cpuclock (void)
+{
+ if (__builtin_expect (itc_usable == 0, 0))
+ {
+ int newval = 1;
+ int fd = open_not_cancel_2 ("/proc/sal/itc_drift", O_RDONLY);
+ if (__builtin_expect (fd != -1, 1))
+ {
+ char buf[16];
+ /* We expect the file to contain a single digit followed by
+ a newline. If the format changes we better not rely on
+ the file content. */
+ if (read_not_cancel (fd, buf, sizeof buf) != 2
+ || buf[0] != '0' || buf[1] != '\n')
+ newval = -1;
+
+ close_not_cancel_no_status (fd);
+ }
+
+ itc_usable = newval;
+ }
+
+ return itc_usable;
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/ia64/ioperm.c b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/ioperm.c
new file mode 100644
index 0000000000..daaba28f09
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/ioperm.c
@@ -0,0 +1,201 @@
+/* Copyright (C) 1999-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by David Mosberger-Tang <davidm@hpl.hp.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/>. */
+
+/* I/O access is restricted to ISA port space (ports 0..65535).
+ Modern devices hopefully are sane enough not to put any performance
+ critical registers in i/o space.
+
+ On the first call to ioperm() or iopl(), the entire (E)ISA port
+ space is mapped into the virtual address space at address io.base.
+ mprotect() calls are then used to enable/disable access to ports.
+ Per 4KB page, there are 4 I/O ports. */
+
+#include <errno.h>
+#include <fcntl.h>
+#include <ctype.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+
+#include <sys/types.h>
+#include <sys/mman.h>
+
+#define MAX_PORT 0x10000
+
+/*
+ * Memory fence w/accept. This should never be used in code that is
+ * not IA-64 specific.
+ */
+#define __ia64_mf_a() __asm__ __volatile__ ("mf.a" ::: "memory")
+
+static struct
+ {
+ unsigned long int base;
+ unsigned long int page_mask;
+ }
+io;
+
+__inline__ unsigned long int
+io_offset (unsigned long int port)
+{
+ return ((port >> 2) << 12) | (port & 0xfff);
+}
+
+int
+_ioperm (unsigned long int from, unsigned long int num, int turn_on)
+{
+ unsigned long int base;
+
+ /* this test isn't as silly as it may look like; consider overflows! */
+ if (from >= MAX_PORT || from + num > MAX_PORT)
+ {
+ __set_errno (EINVAL);
+ return -1;
+ }
+
+ if (turn_on)
+ {
+ if (!io.base)
+ {
+ unsigned long phys_io_base, len;
+ int fd;
+
+ io.page_mask = ~(__getpagesize() - 1);
+
+ /* get I/O base physical address from ar.k0 as per PRM: */
+ __asm__ ("mov %0=ar.k0" : "=r"(phys_io_base));
+
+ /* The O_SYNC flag tells the /dev/mem driver to map the
+ memory uncached: */
+ fd = __open ("/dev/mem", O_RDWR | O_SYNC);
+ if (fd < 0)
+ return -1;
+
+ len = io_offset (MAX_PORT);
+ /* see comment below */
+ base = (unsigned long int) __mmap (0, len, PROT_READ | PROT_WRITE, MAP_SHARED,
+ fd, phys_io_base);
+ __close (fd);
+
+ if ((long) base == -1)
+ return -1;
+
+ io.base = base;
+ }
+ }
+ else
+ {
+ if (!io.base)
+ return 0; /* never was turned on... */
+ }
+
+ /* We can't do mprotect because that would cause us to lose the
+ uncached flag that the /dev/mem driver turned on. A MAP_UNCACHED
+ flag seems so much cleaner...
+
+ See the history of this file for a version that tried mprotect. */
+ return 0;
+}
+
+int
+_iopl (unsigned int level)
+{
+ if (level > 3)
+ {
+ __set_errno (EINVAL);
+ return -1;
+ }
+ if (level)
+ {
+ int retval = _ioperm (0, MAX_PORT, 1);
+ /* Match the documented error returns of the x86 version. */
+ if (retval < 0 && errno == EACCES)
+ __set_errno (EPERM);
+ return retval;
+ }
+ return 0;
+}
+
+unsigned int
+_inb (unsigned long int port)
+{
+ volatile unsigned char *addr = (void *) io.base + io_offset (port);
+ unsigned char ret;
+
+ ret = *addr;
+ __ia64_mf_a();
+ return ret;
+}
+
+unsigned int
+_inw (unsigned long int port)
+{
+ volatile unsigned short *addr = (void *) io.base + io_offset (port);
+ unsigned short ret;
+
+ ret = *addr;
+ __ia64_mf_a();
+ return ret;
+}
+
+unsigned int
+_inl (unsigned long int port)
+{
+ volatile unsigned int *addr = (void *) io.base + io_offset (port);
+ unsigned int ret;
+
+ ret = *addr;
+ __ia64_mf_a();
+ return ret;
+}
+
+void
+_outb (unsigned char val, unsigned long int port)
+{
+ volatile unsigned char *addr = (void *) io.base + io_offset (port);
+
+ *addr = val;
+ __ia64_mf_a();
+}
+
+void
+_outw (unsigned short val, unsigned long int port)
+{
+ volatile unsigned short *addr = (void *) io.base + io_offset (port);
+
+ *addr = val;
+ __ia64_mf_a();
+}
+
+void
+_outl (unsigned int val, unsigned long int port)
+{
+ volatile unsigned int *addr = (void *) io.base + io_offset (port);
+
+ *addr = val;
+ __ia64_mf_a();
+}
+
+weak_alias (_ioperm, ioperm);
+weak_alias (_iopl, iopl);
+weak_alias (_inb, inb);
+weak_alias (_inw, inw);
+weak_alias (_inl, inl);
+weak_alias (_outb, outb);
+weak_alias (_outw, outw);
+weak_alias (_outl, outl);
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/ia64/kernel-features.h b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/kernel-features.h
new file mode 100644
index 0000000000..cda0ad6150
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/kernel-features.h
@@ -0,0 +1,29 @@
+/* Set flags signalling availability of kernel features based on given
+ kernel version number.
+ Copyright (C) 2010-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _KERNEL_FEATURES_H
+#define _KERNEL_FEATURES_H 1
+
+#include_next <kernel-features.h>
+
+#define __ASSUME_RECV_SYSCALL 1
+#define __ASSUME_SEND_SYSCALL 1
+#define __ASSUME_ACCEPT4_SYSCALL 1
+
+#endif /* _KERNEL_FEATURES_H */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/ia64/kernel_stat.h b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/kernel_stat.h
new file mode 100644
index 0000000000..945c02930c
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/kernel_stat.h
@@ -0,0 +1,21 @@
+/* Definition of `struct stat' used in the kernel.
+ 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/>. */
+
+#define STAT_IS_KERNEL_STAT 1
+#define XSTAT_IS_XSTAT64 1
+#define STATFS_IS_STATFS64 0
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/ia64/ld.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/ld.abilist
new file mode 100644
index 0000000000..9b45d5e90c
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/ld.abilist
@@ -0,0 +1,11 @@
+GLIBC_2.2 GLIBC_2.2 A
+GLIBC_2.2 __libc_stack_end D 0x8
+GLIBC_2.2 _dl_mcount F
+GLIBC_2.2 _r_debug D 0x28
+GLIBC_2.2 calloc F
+GLIBC_2.2 free F
+GLIBC_2.2 malloc F
+GLIBC_2.2 realloc F
+GLIBC_2.3 GLIBC_2.3 A
+GLIBC_2.3 __tls_get_addr F
+GLIBC_2.4 GLIBC_2.4 A
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/ia64/ldconfig.h b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/ldconfig.h
new file mode 100644
index 0000000000..e3a3eecfda
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/ldconfig.h
@@ -0,0 +1,24 @@
+/* Copyright (C) 2001-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdeps/generic/ldconfig.h>
+
+#define SYSDEP_KNOWN_INTERPRETER_NAMES \
+ { "/lib/ld-linux.so.2", FLAG_ELF_LIBC6 },
+#define SYSDEP_KNOWN_LIBRARY_NAMES \
+ { "libc.so.6", FLAG_ELF_LIBC6 }, \
+ { "libm.so.6", FLAG_ELF_LIBC6 },
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/ia64/ldd-rewrite.sed b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/ldd-rewrite.sed
new file mode 100644
index 0000000000..535d1671e3
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/ldd-rewrite.sed
@@ -0,0 +1 @@
+s_^\(RTLDLIST=\)\([^ ]*\)-ia64\(\.so\.[0-9.]*\)[ ]*$_\1"\2-ia64\3 \2\3"_
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/ia64/ldsodefs.h b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/ldsodefs.h
new file mode 100644
index 0000000000..b8d82dd7c5
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/ldsodefs.h
@@ -0,0 +1,32 @@
+/* Run-time dynamic linker data structures for loaded ELF shared objects. IA64.
+ Copyright (C) 2001-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _LDSODEFS_H
+
+/* Get the real definitions. */
+#include_next <ldsodefs.h>
+
+/* Now define our stuff. */
+
+/* We need special support to initialize DSO loaded for statically linked
+ binaries. */
+extern void _dl_static_init (struct link_map *map);
+#undef DL_STATIC_INIT
+#define DL_STATIC_INIT(map) _dl_static_init (map)
+
+#endif /* ldsodefs.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/ia64/libBrokenLocale.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/libBrokenLocale.abilist
new file mode 100644
index 0000000000..21343df781
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/libBrokenLocale.abilist
@@ -0,0 +1,2 @@
+GLIBC_2.2 GLIBC_2.2 A
+GLIBC_2.2 __ctype_get_mb_cur_max F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/ia64/libanl.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/libanl.abilist
new file mode 100644
index 0000000000..edabfb436e
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/libanl.abilist
@@ -0,0 +1,5 @@
+GLIBC_2.2.3 GLIBC_2.2.3 A
+GLIBC_2.2.3 gai_cancel F
+GLIBC_2.2.3 gai_error F
+GLIBC_2.2.3 gai_suspend F
+GLIBC_2.2.3 getaddrinfo_a F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/ia64/libc.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/libc.abilist
new file mode 100644
index 0000000000..39ccf2b5ee
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/libc.abilist
@@ -0,0 +1,2194 @@
+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 fallocate64 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 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 0x438
+GLIBC_2.12 _sys_nerr D 0x4
+GLIBC_2.12 ntp_gettimex F
+GLIBC_2.12 recvmmsg F
+GLIBC_2.12 sys_errlist D 0x438
+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.2 GLIBC_2.2 A
+GLIBC_2.2 _Exit F
+GLIBC_2.2 _IO_2_1_stderr_ D 0xe0
+GLIBC_2.2 _IO_2_1_stdin_ D 0xe0
+GLIBC_2.2 _IO_2_1_stdout_ D 0xe0
+GLIBC_2.2 _IO_adjust_column F
+GLIBC_2.2 _IO_adjust_wcolumn F
+GLIBC_2.2 _IO_default_doallocate F
+GLIBC_2.2 _IO_default_finish F
+GLIBC_2.2 _IO_default_pbackfail F
+GLIBC_2.2 _IO_default_uflow F
+GLIBC_2.2 _IO_default_xsgetn F
+GLIBC_2.2 _IO_default_xsputn F
+GLIBC_2.2 _IO_do_write F
+GLIBC_2.2 _IO_doallocbuf F
+GLIBC_2.2 _IO_fclose F
+GLIBC_2.2 _IO_fdopen F
+GLIBC_2.2 _IO_feof F
+GLIBC_2.2 _IO_ferror F
+GLIBC_2.2 _IO_fflush F
+GLIBC_2.2 _IO_fgetpos F
+GLIBC_2.2 _IO_fgetpos64 F
+GLIBC_2.2 _IO_fgets F
+GLIBC_2.2 _IO_file_attach F
+GLIBC_2.2 _IO_file_close F
+GLIBC_2.2 _IO_file_close_it F
+GLIBC_2.2 _IO_file_doallocate F
+GLIBC_2.2 _IO_file_finish F
+GLIBC_2.2 _IO_file_fopen F
+GLIBC_2.2 _IO_file_init F
+GLIBC_2.2 _IO_file_jumps D 0xa8
+GLIBC_2.2 _IO_file_open F
+GLIBC_2.2 _IO_file_overflow F
+GLIBC_2.2 _IO_file_read F
+GLIBC_2.2 _IO_file_seek F
+GLIBC_2.2 _IO_file_seekoff F
+GLIBC_2.2 _IO_file_setbuf F
+GLIBC_2.2 _IO_file_stat F
+GLIBC_2.2 _IO_file_sync F
+GLIBC_2.2 _IO_file_underflow F
+GLIBC_2.2 _IO_file_write F
+GLIBC_2.2 _IO_file_xsputn F
+GLIBC_2.2 _IO_flockfile F
+GLIBC_2.2 _IO_flush_all F
+GLIBC_2.2 _IO_flush_all_linebuffered F
+GLIBC_2.2 _IO_fopen F
+GLIBC_2.2 _IO_fprintf F
+GLIBC_2.2 _IO_fputs F
+GLIBC_2.2 _IO_fread F
+GLIBC_2.2 _IO_free_backup_area F
+GLIBC_2.2 _IO_free_wbackup_area F
+GLIBC_2.2 _IO_fsetpos F
+GLIBC_2.2 _IO_fsetpos64 F
+GLIBC_2.2 _IO_ftell F
+GLIBC_2.2 _IO_ftrylockfile F
+GLIBC_2.2 _IO_funlockfile F
+GLIBC_2.2 _IO_fwrite F
+GLIBC_2.2 _IO_getc F
+GLIBC_2.2 _IO_getline F
+GLIBC_2.2 _IO_getline_info F
+GLIBC_2.2 _IO_gets F
+GLIBC_2.2 _IO_init F
+GLIBC_2.2 _IO_init_marker F
+GLIBC_2.2 _IO_init_wmarker F
+GLIBC_2.2 _IO_iter_begin F
+GLIBC_2.2 _IO_iter_end F
+GLIBC_2.2 _IO_iter_file F
+GLIBC_2.2 _IO_iter_next F
+GLIBC_2.2 _IO_least_wmarker F
+GLIBC_2.2 _IO_link_in F
+GLIBC_2.2 _IO_list_all D 0x8
+GLIBC_2.2 _IO_list_lock F
+GLIBC_2.2 _IO_list_resetlock F
+GLIBC_2.2 _IO_list_unlock F
+GLIBC_2.2 _IO_marker_delta F
+GLIBC_2.2 _IO_marker_difference F
+GLIBC_2.2 _IO_padn F
+GLIBC_2.2 _IO_peekc_locked F
+GLIBC_2.2 _IO_popen F
+GLIBC_2.2 _IO_printf F
+GLIBC_2.2 _IO_proc_close F
+GLIBC_2.2 _IO_proc_open F
+GLIBC_2.2 _IO_putc F
+GLIBC_2.2 _IO_puts F
+GLIBC_2.2 _IO_remove_marker F
+GLIBC_2.2 _IO_seekmark F
+GLIBC_2.2 _IO_seekoff F
+GLIBC_2.2 _IO_seekpos F
+GLIBC_2.2 _IO_seekwmark F
+GLIBC_2.2 _IO_setb F
+GLIBC_2.2 _IO_setbuffer F
+GLIBC_2.2 _IO_setvbuf F
+GLIBC_2.2 _IO_sgetn F
+GLIBC_2.2 _IO_sprintf F
+GLIBC_2.2 _IO_sputbackc F
+GLIBC_2.2 _IO_sputbackwc F
+GLIBC_2.2 _IO_sscanf F
+GLIBC_2.2 _IO_str_init_readonly F
+GLIBC_2.2 _IO_str_init_static F
+GLIBC_2.2 _IO_str_overflow F
+GLIBC_2.2 _IO_str_pbackfail F
+GLIBC_2.2 _IO_str_seekoff F
+GLIBC_2.2 _IO_str_underflow F
+GLIBC_2.2 _IO_sungetc F
+GLIBC_2.2 _IO_sungetwc F
+GLIBC_2.2 _IO_switch_to_get_mode F
+GLIBC_2.2 _IO_switch_to_main_wget_area F
+GLIBC_2.2 _IO_switch_to_wbackup_area F
+GLIBC_2.2 _IO_switch_to_wget_mode F
+GLIBC_2.2 _IO_un_link F
+GLIBC_2.2 _IO_ungetc F
+GLIBC_2.2 _IO_unsave_markers F
+GLIBC_2.2 _IO_unsave_wmarkers F
+GLIBC_2.2 _IO_vfprintf F
+GLIBC_2.2 _IO_vfscanf F
+GLIBC_2.2 _IO_vsprintf F
+GLIBC_2.2 _IO_wdefault_doallocate F
+GLIBC_2.2 _IO_wdefault_finish F
+GLIBC_2.2 _IO_wdefault_pbackfail F
+GLIBC_2.2 _IO_wdefault_uflow F
+GLIBC_2.2 _IO_wdefault_xsgetn F
+GLIBC_2.2 _IO_wdefault_xsputn F
+GLIBC_2.2 _IO_wdo_write F
+GLIBC_2.2 _IO_wdoallocbuf F
+GLIBC_2.2 _IO_wfile_jumps D 0xa8
+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 ___brk_addr D 0x8
+GLIBC_2.2 __adjtimex F
+GLIBC_2.2 __after_morecore_hook D 0x8
+GLIBC_2.2 __argz_count F
+GLIBC_2.2 __argz_next F
+GLIBC_2.2 __argz_stringify F
+GLIBC_2.2 __asprintf F
+GLIBC_2.2 __assert F
+GLIBC_2.2 __assert_fail F
+GLIBC_2.2 __assert_perror_fail F
+GLIBC_2.2 __backtrace F
+GLIBC_2.2 __backtrace_symbols F
+GLIBC_2.2 __backtrace_symbols_fd F
+GLIBC_2.2 __bsd_getpgrp F
+GLIBC_2.2 __check_rhosts_file D 0x4
+GLIBC_2.2 __clone2 F
+GLIBC_2.2 __close F
+GLIBC_2.2 __cmsg_nxthdr F
+GLIBC_2.2 __connect F
+GLIBC_2.2 __ctype32_b D 0x8
+GLIBC_2.2 __ctype32_tolower D 0x8
+GLIBC_2.2 __ctype32_toupper D 0x8
+GLIBC_2.2 __ctype_b D 0x8
+GLIBC_2.2 __ctype_get_mb_cur_max F
+GLIBC_2.2 __ctype_tolower D 0x8
+GLIBC_2.2 __ctype_toupper D 0x8
+GLIBC_2.2 __curbrk D 0x8
+GLIBC_2.2 __cxa_atexit F
+GLIBC_2.2 __cxa_finalize F
+GLIBC_2.2 __cyg_profile_func_enter F
+GLIBC_2.2 __cyg_profile_func_exit F
+GLIBC_2.2 __daylight D 0x4
+GLIBC_2.2 __dcgettext F
+GLIBC_2.2 __default_morecore F
+GLIBC_2.2 __dgettext F
+GLIBC_2.2 __divdf3 F
+GLIBC_2.2 __divdi3 F
+GLIBC_2.2 __divsf3 F
+GLIBC_2.2 __divtf3 F
+GLIBC_2.2 __dup2 F
+GLIBC_2.2 __duplocale F
+GLIBC_2.2 __endmntent F
+GLIBC_2.2 __environ D 0x8
+GLIBC_2.2 __errno_location F
+GLIBC_2.2 __fbufsize F
+GLIBC_2.2 __fcntl F
+GLIBC_2.2 __ffs F
+GLIBC_2.2 __finite F
+GLIBC_2.2 __finitef F
+GLIBC_2.2 __finitel F
+GLIBC_2.2 __flbf F
+GLIBC_2.2 __fork F
+GLIBC_2.2 __fpending F
+GLIBC_2.2 __fpu_control D 0x4
+GLIBC_2.2 __fpurge F
+GLIBC_2.2 __freadable F
+GLIBC_2.2 __freading F
+GLIBC_2.2 __free_hook D 0x8
+GLIBC_2.2 __freelocale F
+GLIBC_2.2 __fsetlocking F
+GLIBC_2.2 __fwritable F
+GLIBC_2.2 __fwriting F
+GLIBC_2.2 __fxstat F
+GLIBC_2.2 __fxstat64 F
+GLIBC_2.2 __getdelim F
+GLIBC_2.2 __getmntent_r F
+GLIBC_2.2 __getpagesize F
+GLIBC_2.2 __getpgid F
+GLIBC_2.2 __getpid F
+GLIBC_2.2 __gettimeofday F
+GLIBC_2.2 __gmtime_r F
+GLIBC_2.2 __h_errno_location F
+GLIBC_2.2 __isalnum_l F
+GLIBC_2.2 __isalpha_l F
+GLIBC_2.2 __isascii_l F
+GLIBC_2.2 __isblank_l F
+GLIBC_2.2 __iscntrl_l F
+GLIBC_2.2 __isdigit_l F
+GLIBC_2.2 __isgraph_l F
+GLIBC_2.2 __isinf F
+GLIBC_2.2 __isinff F
+GLIBC_2.2 __isinfl F
+GLIBC_2.2 __islower_l F
+GLIBC_2.2 __isnan F
+GLIBC_2.2 __isnanf F
+GLIBC_2.2 __isnanl F
+GLIBC_2.2 __isprint_l F
+GLIBC_2.2 __ispunct_l F
+GLIBC_2.2 __isspace_l F
+GLIBC_2.2 __isupper_l F
+GLIBC_2.2 __iswalnum_l F
+GLIBC_2.2 __iswalpha_l F
+GLIBC_2.2 __iswblank_l F
+GLIBC_2.2 __iswcntrl_l F
+GLIBC_2.2 __iswctype F
+GLIBC_2.2 __iswctype_l F
+GLIBC_2.2 __iswdigit_l F
+GLIBC_2.2 __iswgraph_l F
+GLIBC_2.2 __iswlower_l F
+GLIBC_2.2 __iswprint_l F
+GLIBC_2.2 __iswpunct_l F
+GLIBC_2.2 __iswspace_l F
+GLIBC_2.2 __iswupper_l F
+GLIBC_2.2 __iswxdigit_l F
+GLIBC_2.2 __isxdigit_l F
+GLIBC_2.2 __ivaliduser F
+GLIBC_2.2 __key_decryptsession_pk_LOCAL D 0x8
+GLIBC_2.2 __key_encryptsession_pk_LOCAL D 0x8
+GLIBC_2.2 __key_gendes_LOCAL D 0x8
+GLIBC_2.2 __libc_allocate_rtsig F
+GLIBC_2.2 __libc_calloc F
+GLIBC_2.2 __libc_current_sigrtmax F
+GLIBC_2.2 __libc_current_sigrtmin F
+GLIBC_2.2 __libc_free F
+GLIBC_2.2 __libc_freeres F
+GLIBC_2.2 __libc_init_first F
+GLIBC_2.2 __libc_mallinfo F
+GLIBC_2.2 __libc_malloc F
+GLIBC_2.2 __libc_mallopt F
+GLIBC_2.2 __libc_memalign F
+GLIBC_2.2 __libc_pvalloc F
+GLIBC_2.2 __libc_realloc F
+GLIBC_2.2 __libc_sa_len F
+GLIBC_2.2 __libc_start_main F
+GLIBC_2.2 __libc_valloc F
+GLIBC_2.2 __lseek F
+GLIBC_2.2 __lxstat F
+GLIBC_2.2 __lxstat64 F
+GLIBC_2.2 __malloc_hook D 0x8
+GLIBC_2.2 __malloc_initialize_hook D 0x8
+GLIBC_2.2 __mbrlen F
+GLIBC_2.2 __mbrtowc F
+GLIBC_2.2 __memalign_hook D 0x8
+GLIBC_2.2 __mempcpy F
+GLIBC_2.2 __mempcpy_small F
+GLIBC_2.2 __moddi3 F
+GLIBC_2.2 __monstartup F
+GLIBC_2.2 __morecore D 0x8
+GLIBC_2.2 __multi3 F
+GLIBC_2.2 __newlocale F
+GLIBC_2.2 __nl_langinfo_l F
+GLIBC_2.2 __nss_configure_lookup F
+GLIBC_2.2 __nss_database_lookup F
+GLIBC_2.2 __nss_group_lookup F
+GLIBC_2.2 __nss_hosts_lookup F
+GLIBC_2.2 __nss_next F
+GLIBC_2.2 __nss_passwd_lookup F
+GLIBC_2.2 __open F
+GLIBC_2.2 __open64 F
+GLIBC_2.2 __overflow F
+GLIBC_2.2 __pipe F
+GLIBC_2.2 __poll F
+GLIBC_2.2 __pread64 F
+GLIBC_2.2 __printf_fp F
+GLIBC_2.2 __profile_frequency F
+GLIBC_2.2 __progname D 0x8
+GLIBC_2.2 __progname_full D 0x8
+GLIBC_2.2 __pwrite64 F
+GLIBC_2.2 __rawmemchr F
+GLIBC_2.2 __rcmd_errstr D 0x8
+GLIBC_2.2 __read F
+GLIBC_2.2 __realloc_hook D 0x8
+GLIBC_2.2 __res_init F
+GLIBC_2.2 __res_nclose F
+GLIBC_2.2 __res_ninit F
+GLIBC_2.2 __res_randomid F
+GLIBC_2.2 __res_state F
+GLIBC_2.2 __sbrk F
+GLIBC_2.2 __sched_get_priority_max F
+GLIBC_2.2 __sched_get_priority_min F
+GLIBC_2.2 __sched_getparam F
+GLIBC_2.2 __sched_getscheduler F
+GLIBC_2.2 __sched_setscheduler F
+GLIBC_2.2 __sched_yield F
+GLIBC_2.2 __secure_getenv F
+GLIBC_2.2 __select F
+GLIBC_2.2 __send F
+GLIBC_2.2 __setmntent F
+GLIBC_2.2 __setpgid F
+GLIBC_2.2 __sigaction F
+GLIBC_2.2 __sigaddset F
+GLIBC_2.2 __sigdelset F
+GLIBC_2.2 __sigismember F
+GLIBC_2.2 __signbit F
+GLIBC_2.2 __signbitf F
+GLIBC_2.2 __signbitl F
+GLIBC_2.2 __sigpause F
+GLIBC_2.2 __sigsetjmp F
+GLIBC_2.2 __sigsuspend F
+GLIBC_2.2 __statfs F
+GLIBC_2.2 __stpcpy F
+GLIBC_2.2 __stpcpy_small F
+GLIBC_2.2 __stpncpy F
+GLIBC_2.2 __strcasecmp F
+GLIBC_2.2 __strcasecmp_l F
+GLIBC_2.2 __strcasestr F
+GLIBC_2.2 __strcoll_l F
+GLIBC_2.2 __strcpy_small F
+GLIBC_2.2 __strcspn_c1 F
+GLIBC_2.2 __strcspn_c2 F
+GLIBC_2.2 __strcspn_c3 F
+GLIBC_2.2 __strdup F
+GLIBC_2.2 __strerror_r F
+GLIBC_2.2 __strfmon_l F
+GLIBC_2.2 __strncasecmp_l F
+GLIBC_2.2 __strndup F
+GLIBC_2.2 __strpbrk_c2 F
+GLIBC_2.2 __strpbrk_c3 F
+GLIBC_2.2 __strsep_1c F
+GLIBC_2.2 __strsep_2c F
+GLIBC_2.2 __strsep_3c F
+GLIBC_2.2 __strsep_g F
+GLIBC_2.2 __strspn_c1 F
+GLIBC_2.2 __strspn_c2 F
+GLIBC_2.2 __strspn_c3 F
+GLIBC_2.2 __strtod_internal F
+GLIBC_2.2 __strtod_l F
+GLIBC_2.2 __strtof_internal F
+GLIBC_2.2 __strtof_l F
+GLIBC_2.2 __strtok_r F
+GLIBC_2.2 __strtok_r_1c F
+GLIBC_2.2 __strtol_internal F
+GLIBC_2.2 __strtol_l F
+GLIBC_2.2 __strtold_internal F
+GLIBC_2.2 __strtold_l F
+GLIBC_2.2 __strtoll_internal F
+GLIBC_2.2 __strtoll_l F
+GLIBC_2.2 __strtoul_internal F
+GLIBC_2.2 __strtoul_l F
+GLIBC_2.2 __strtoull_internal F
+GLIBC_2.2 __strtoull_l F
+GLIBC_2.2 __strverscmp F
+GLIBC_2.2 __strxfrm_l F
+GLIBC_2.2 __sysconf F
+GLIBC_2.2 __sysctl F
+GLIBC_2.2 __sysv_signal F
+GLIBC_2.2 __timezone D 0x8
+GLIBC_2.2 __toascii_l F
+GLIBC_2.2 __tolower_l F
+GLIBC_2.2 __toupper_l F
+GLIBC_2.2 __towctrans F
+GLIBC_2.2 __towctrans_l F
+GLIBC_2.2 __towlower_l F
+GLIBC_2.2 __towupper_l F
+GLIBC_2.2 __tzname D 0x10
+GLIBC_2.2 __udivdi3 F
+GLIBC_2.2 __uflow F
+GLIBC_2.2 __umoddi3 F
+GLIBC_2.2 __underflow F
+GLIBC_2.2 __vfork F
+GLIBC_2.2 __vfscanf F
+GLIBC_2.2 __vsnprintf F
+GLIBC_2.2 __vsscanf F
+GLIBC_2.2 __wait F
+GLIBC_2.2 __waitpid F
+GLIBC_2.2 __wcscasecmp_l F
+GLIBC_2.2 __wcscoll_l F
+GLIBC_2.2 __wcsncasecmp_l F
+GLIBC_2.2 __wcstod_internal F
+GLIBC_2.2 __wcstod_l F
+GLIBC_2.2 __wcstof_internal F
+GLIBC_2.2 __wcstof_l F
+GLIBC_2.2 __wcstol_internal F
+GLIBC_2.2 __wcstol_l F
+GLIBC_2.2 __wcstold_internal F
+GLIBC_2.2 __wcstold_l F
+GLIBC_2.2 __wcstoll_internal F
+GLIBC_2.2 __wcstoll_l F
+GLIBC_2.2 __wcstoul_internal F
+GLIBC_2.2 __wcstoul_l F
+GLIBC_2.2 __wcstoull_internal F
+GLIBC_2.2 __wcstoull_l F
+GLIBC_2.2 __wcsxfrm_l F
+GLIBC_2.2 __wctrans_l F
+GLIBC_2.2 __wctype_l F
+GLIBC_2.2 __woverflow F
+GLIBC_2.2 __write F
+GLIBC_2.2 __wuflow F
+GLIBC_2.2 __wunderflow F
+GLIBC_2.2 __xmknod F
+GLIBC_2.2 __xpg_basename F
+GLIBC_2.2 __xpg_sigpause F
+GLIBC_2.2 __xstat F
+GLIBC_2.2 __xstat64 F
+GLIBC_2.2 _authenticate F
+GLIBC_2.2 _dl_mcount_wrapper F
+GLIBC_2.2 _dl_mcount_wrapper_check F
+GLIBC_2.2 _environ D 0x8
+GLIBC_2.2 _exit F
+GLIBC_2.2 _flushlbf F
+GLIBC_2.2 _inb F
+GLIBC_2.2 _inl F
+GLIBC_2.2 _inw F
+GLIBC_2.2 _libc_intl_domainname D 0x5
+GLIBC_2.2 _longjmp F
+GLIBC_2.2 _mcleanup F
+GLIBC_2.2 _mcount F
+GLIBC_2.2 _nl_default_dirname D 0x12
+GLIBC_2.2 _nl_domain_bindings D 0x8
+GLIBC_2.2 _nl_msg_cat_cntr D 0x4
+GLIBC_2.2 _null_auth D 0x18
+GLIBC_2.2 _obstack D 0x8
+GLIBC_2.2 _obstack_allocated_p F
+GLIBC_2.2 _obstack_begin F
+GLIBC_2.2 _obstack_begin_1 F
+GLIBC_2.2 _obstack_free F
+GLIBC_2.2 _obstack_memory_used F
+GLIBC_2.2 _obstack_newchunk F
+GLIBC_2.2 _outb F
+GLIBC_2.2 _outl F
+GLIBC_2.2 _outw F
+GLIBC_2.2 _res D 0x238
+GLIBC_2.2 _res_hconf D 0x48
+GLIBC_2.2 _rpc_dtablesize F
+GLIBC_2.2 _seterr_reply F
+GLIBC_2.2 _setjmp F
+GLIBC_2.2 _sys_errlist D 0x3e8
+GLIBC_2.2 _sys_nerr D 0x4
+GLIBC_2.2 _sys_siglist D 0x200
+GLIBC_2.2 _tolower F
+GLIBC_2.2 _toupper F
+GLIBC_2.2 a64l F
+GLIBC_2.2 abort F
+GLIBC_2.2 abs F
+GLIBC_2.2 accept F
+GLIBC_2.2 access F
+GLIBC_2.2 acct F
+GLIBC_2.2 addmntent F
+GLIBC_2.2 addseverity F
+GLIBC_2.2 adjtime F
+GLIBC_2.2 adjtimex F
+GLIBC_2.2 advance F
+GLIBC_2.2 alarm F
+GLIBC_2.2 alphasort F
+GLIBC_2.2 alphasort64 F
+GLIBC_2.2 argp_err_exit_status D 0x4
+GLIBC_2.2 argp_error F
+GLIBC_2.2 argp_failure F
+GLIBC_2.2 argp_help F
+GLIBC_2.2 argp_parse F
+GLIBC_2.2 argp_program_bug_address D 0x8
+GLIBC_2.2 argp_program_version D 0x8
+GLIBC_2.2 argp_program_version_hook D 0x8
+GLIBC_2.2 argp_state_help F
+GLIBC_2.2 argp_usage F
+GLIBC_2.2 argz_add F
+GLIBC_2.2 argz_add_sep F
+GLIBC_2.2 argz_append F
+GLIBC_2.2 argz_count F
+GLIBC_2.2 argz_create F
+GLIBC_2.2 argz_create_sep F
+GLIBC_2.2 argz_delete F
+GLIBC_2.2 argz_extract F
+GLIBC_2.2 argz_insert F
+GLIBC_2.2 argz_next F
+GLIBC_2.2 argz_replace F
+GLIBC_2.2 argz_stringify F
+GLIBC_2.2 asctime F
+GLIBC_2.2 asctime_r F
+GLIBC_2.2 asprintf F
+GLIBC_2.2 atexit F
+GLIBC_2.2 atof F
+GLIBC_2.2 atoi F
+GLIBC_2.2 atol F
+GLIBC_2.2 atoll F
+GLIBC_2.2 authdes_create F
+GLIBC_2.2 authdes_getucred F
+GLIBC_2.2 authdes_pk_create F
+GLIBC_2.2 authnone_create F
+GLIBC_2.2 authunix_create F
+GLIBC_2.2 authunix_create_default F
+GLIBC_2.2 backtrace F
+GLIBC_2.2 backtrace_symbols F
+GLIBC_2.2 backtrace_symbols_fd F
+GLIBC_2.2 basename F
+GLIBC_2.2 bcmp F
+GLIBC_2.2 bcopy F
+GLIBC_2.2 bdflush F
+GLIBC_2.2 bind F
+GLIBC_2.2 bind_textdomain_codeset F
+GLIBC_2.2 bindresvport F
+GLIBC_2.2 bindtextdomain F
+GLIBC_2.2 brk F
+GLIBC_2.2 bsd_signal F
+GLIBC_2.2 bsearch F
+GLIBC_2.2 btowc F
+GLIBC_2.2 bzero F
+GLIBC_2.2 calloc F
+GLIBC_2.2 callrpc F
+GLIBC_2.2 canonicalize_file_name F
+GLIBC_2.2 capget F
+GLIBC_2.2 capset F
+GLIBC_2.2 catclose F
+GLIBC_2.2 catgets F
+GLIBC_2.2 catopen F
+GLIBC_2.2 cbc_crypt F
+GLIBC_2.2 cfgetispeed F
+GLIBC_2.2 cfgetospeed F
+GLIBC_2.2 cfmakeraw F
+GLIBC_2.2 cfree F
+GLIBC_2.2 cfsetispeed F
+GLIBC_2.2 cfsetospeed F
+GLIBC_2.2 cfsetspeed F
+GLIBC_2.2 chdir F
+GLIBC_2.2 chflags F
+GLIBC_2.2 chmod F
+GLIBC_2.2 chown F
+GLIBC_2.2 chroot F
+GLIBC_2.2 clearenv F
+GLIBC_2.2 clearerr F
+GLIBC_2.2 clearerr_unlocked F
+GLIBC_2.2 clnt_broadcast F
+GLIBC_2.2 clnt_create F
+GLIBC_2.2 clnt_pcreateerror F
+GLIBC_2.2 clnt_perrno F
+GLIBC_2.2 clnt_perror F
+GLIBC_2.2 clnt_spcreateerror F
+GLIBC_2.2 clnt_sperrno F
+GLIBC_2.2 clnt_sperror F
+GLIBC_2.2 clntraw_create F
+GLIBC_2.2 clnttcp_create F
+GLIBC_2.2 clntudp_bufcreate F
+GLIBC_2.2 clntudp_create F
+GLIBC_2.2 clntunix_create F
+GLIBC_2.2 clock F
+GLIBC_2.2 close F
+GLIBC_2.2 closedir F
+GLIBC_2.2 closelog F
+GLIBC_2.2 confstr F
+GLIBC_2.2 connect F
+GLIBC_2.2 copysign F
+GLIBC_2.2 copysignf F
+GLIBC_2.2 copysignl F
+GLIBC_2.2 creat F
+GLIBC_2.2 creat64 F
+GLIBC_2.2 create_module F
+GLIBC_2.2 ctermid F
+GLIBC_2.2 ctime F
+GLIBC_2.2 ctime_r F
+GLIBC_2.2 cuserid F
+GLIBC_2.2 daemon F
+GLIBC_2.2 daylight D 0x4
+GLIBC_2.2 dcgettext F
+GLIBC_2.2 dcngettext F
+GLIBC_2.2 delete_module F
+GLIBC_2.2 des_setparity F
+GLIBC_2.2 dgettext F
+GLIBC_2.2 difftime F
+GLIBC_2.2 dirfd F
+GLIBC_2.2 dirname F
+GLIBC_2.2 div F
+GLIBC_2.2 dngettext F
+GLIBC_2.2 dprintf F
+GLIBC_2.2 drand48 F
+GLIBC_2.2 drand48_r F
+GLIBC_2.2 dup F
+GLIBC_2.2 dup2 F
+GLIBC_2.2 dysize F
+GLIBC_2.2 ecb_crypt F
+GLIBC_2.2 ecvt F
+GLIBC_2.2 ecvt_r F
+GLIBC_2.2 endaliasent F
+GLIBC_2.2 endfsent F
+GLIBC_2.2 endgrent F
+GLIBC_2.2 endhostent F
+GLIBC_2.2 endmntent F
+GLIBC_2.2 endnetent F
+GLIBC_2.2 endnetgrent F
+GLIBC_2.2 endprotoent F
+GLIBC_2.2 endpwent F
+GLIBC_2.2 endrpcent F
+GLIBC_2.2 endservent F
+GLIBC_2.2 endspent F
+GLIBC_2.2 endttyent F
+GLIBC_2.2 endusershell F
+GLIBC_2.2 endutent F
+GLIBC_2.2 endutxent F
+GLIBC_2.2 environ D 0x8
+GLIBC_2.2 envz_add F
+GLIBC_2.2 envz_entry F
+GLIBC_2.2 envz_get F
+GLIBC_2.2 envz_merge F
+GLIBC_2.2 envz_remove F
+GLIBC_2.2 envz_strip F
+GLIBC_2.2 erand48 F
+GLIBC_2.2 erand48_r F
+GLIBC_2.2 err F
+GLIBC_2.2 error F
+GLIBC_2.2 error_at_line F
+GLIBC_2.2 error_message_count D 0x4
+GLIBC_2.2 error_one_per_line D 0x4
+GLIBC_2.2 error_print_progname D 0x8
+GLIBC_2.2 errx F
+GLIBC_2.2 ether_aton F
+GLIBC_2.2 ether_aton_r F
+GLIBC_2.2 ether_hostton F
+GLIBC_2.2 ether_line F
+GLIBC_2.2 ether_ntoa F
+GLIBC_2.2 ether_ntoa_r F
+GLIBC_2.2 ether_ntohost F
+GLIBC_2.2 euidaccess F
+GLIBC_2.2 execl F
+GLIBC_2.2 execle F
+GLIBC_2.2 execlp F
+GLIBC_2.2 execv F
+GLIBC_2.2 execve F
+GLIBC_2.2 execvp F
+GLIBC_2.2 exit F
+GLIBC_2.2 fattach F
+GLIBC_2.2 fchdir F
+GLIBC_2.2 fchflags F
+GLIBC_2.2 fchmod F
+GLIBC_2.2 fchown F
+GLIBC_2.2 fclose F
+GLIBC_2.2 fcloseall F
+GLIBC_2.2 fcntl F
+GLIBC_2.2 fcvt F
+GLIBC_2.2 fcvt_r F
+GLIBC_2.2 fdatasync F
+GLIBC_2.2 fdetach F
+GLIBC_2.2 fdopen F
+GLIBC_2.2 feof F
+GLIBC_2.2 feof_unlocked F
+GLIBC_2.2 ferror F
+GLIBC_2.2 ferror_unlocked F
+GLIBC_2.2 fexecve F
+GLIBC_2.2 fflush F
+GLIBC_2.2 fflush_unlocked F
+GLIBC_2.2 ffs F
+GLIBC_2.2 ffsl F
+GLIBC_2.2 ffsll F
+GLIBC_2.2 fgetc F
+GLIBC_2.2 fgetc_unlocked F
+GLIBC_2.2 fgetgrent F
+GLIBC_2.2 fgetgrent_r F
+GLIBC_2.2 fgetpos F
+GLIBC_2.2 fgetpos64 F
+GLIBC_2.2 fgetpwent F
+GLIBC_2.2 fgetpwent_r F
+GLIBC_2.2 fgets F
+GLIBC_2.2 fgets_unlocked F
+GLIBC_2.2 fgetspent F
+GLIBC_2.2 fgetspent_r F
+GLIBC_2.2 fgetwc F
+GLIBC_2.2 fgetwc_unlocked F
+GLIBC_2.2 fgetws F
+GLIBC_2.2 fgetws_unlocked F
+GLIBC_2.2 fileno F
+GLIBC_2.2 fileno_unlocked F
+GLIBC_2.2 finite F
+GLIBC_2.2 finitef F
+GLIBC_2.2 finitel F
+GLIBC_2.2 flock F
+GLIBC_2.2 flockfile F
+GLIBC_2.2 fmemopen F
+GLIBC_2.2 fmtmsg F
+GLIBC_2.2 fnmatch F
+GLIBC_2.2 fopen F
+GLIBC_2.2 fopen64 F
+GLIBC_2.2 fopencookie F
+GLIBC_2.2 fork F
+GLIBC_2.2 fpathconf F
+GLIBC_2.2 fprintf F
+GLIBC_2.2 fputc F
+GLIBC_2.2 fputc_unlocked F
+GLIBC_2.2 fputs F
+GLIBC_2.2 fputs_unlocked F
+GLIBC_2.2 fputwc F
+GLIBC_2.2 fputwc_unlocked F
+GLIBC_2.2 fputws F
+GLIBC_2.2 fputws_unlocked F
+GLIBC_2.2 fread F
+GLIBC_2.2 fread_unlocked F
+GLIBC_2.2 free F
+GLIBC_2.2 freeaddrinfo F
+GLIBC_2.2 freopen F
+GLIBC_2.2 freopen64 F
+GLIBC_2.2 frexp F
+GLIBC_2.2 frexpf F
+GLIBC_2.2 frexpl F
+GLIBC_2.2 fscanf F
+GLIBC_2.2 fseek F
+GLIBC_2.2 fseeko F
+GLIBC_2.2 fseeko64 F
+GLIBC_2.2 fsetpos F
+GLIBC_2.2 fsetpos64 F
+GLIBC_2.2 fstatfs F
+GLIBC_2.2 fstatfs64 F
+GLIBC_2.2 fstatvfs F
+GLIBC_2.2 fstatvfs64 F
+GLIBC_2.2 fsync F
+GLIBC_2.2 ftell F
+GLIBC_2.2 ftello F
+GLIBC_2.2 ftello64 F
+GLIBC_2.2 ftime F
+GLIBC_2.2 ftok F
+GLIBC_2.2 ftruncate F
+GLIBC_2.2 ftruncate64 F
+GLIBC_2.2 ftrylockfile F
+GLIBC_2.2 fts_children F
+GLIBC_2.2 fts_close F
+GLIBC_2.2 fts_open F
+GLIBC_2.2 fts_read F
+GLIBC_2.2 fts_set F
+GLIBC_2.2 ftw F
+GLIBC_2.2 ftw64 F
+GLIBC_2.2 funlockfile F
+GLIBC_2.2 fwide F
+GLIBC_2.2 fwprintf F
+GLIBC_2.2 fwrite F
+GLIBC_2.2 fwrite_unlocked F
+GLIBC_2.2 fwscanf F
+GLIBC_2.2 gai_strerror F
+GLIBC_2.2 gcvt F
+GLIBC_2.2 get_avphys_pages F
+GLIBC_2.2 get_current_dir_name F
+GLIBC_2.2 get_kernel_syms F
+GLIBC_2.2 get_myaddress F
+GLIBC_2.2 get_nprocs F
+GLIBC_2.2 get_nprocs_conf F
+GLIBC_2.2 get_phys_pages F
+GLIBC_2.2 getaddrinfo F
+GLIBC_2.2 getaliasbyname F
+GLIBC_2.2 getaliasbyname_r F
+GLIBC_2.2 getaliasent F
+GLIBC_2.2 getaliasent_r F
+GLIBC_2.2 getc F
+GLIBC_2.2 getc_unlocked F
+GLIBC_2.2 getchar F
+GLIBC_2.2 getchar_unlocked F
+GLIBC_2.2 getcontext F
+GLIBC_2.2 getcwd F
+GLIBC_2.2 getdate F
+GLIBC_2.2 getdate_err D 0x4
+GLIBC_2.2 getdate_r F
+GLIBC_2.2 getdelim F
+GLIBC_2.2 getdirentries F
+GLIBC_2.2 getdirentries64 F
+GLIBC_2.2 getdomainname F
+GLIBC_2.2 getdtablesize F
+GLIBC_2.2 getegid F
+GLIBC_2.2 getenv F
+GLIBC_2.2 geteuid F
+GLIBC_2.2 getfsent F
+GLIBC_2.2 getfsfile F
+GLIBC_2.2 getfsspec F
+GLIBC_2.2 getgid F
+GLIBC_2.2 getgrent F
+GLIBC_2.2 getgrent_r F
+GLIBC_2.2 getgrgid F
+GLIBC_2.2 getgrgid_r F
+GLIBC_2.2 getgrnam F
+GLIBC_2.2 getgrnam_r F
+GLIBC_2.2 getgroups F
+GLIBC_2.2 gethostbyaddr F
+GLIBC_2.2 gethostbyaddr_r F
+GLIBC_2.2 gethostbyname F
+GLIBC_2.2 gethostbyname2 F
+GLIBC_2.2 gethostbyname2_r F
+GLIBC_2.2 gethostbyname_r F
+GLIBC_2.2 gethostent F
+GLIBC_2.2 gethostent_r F
+GLIBC_2.2 gethostid F
+GLIBC_2.2 gethostname F
+GLIBC_2.2 getitimer F
+GLIBC_2.2 getline F
+GLIBC_2.2 getloadavg F
+GLIBC_2.2 getlogin F
+GLIBC_2.2 getlogin_r F
+GLIBC_2.2 getmntent F
+GLIBC_2.2 getmntent_r F
+GLIBC_2.2 getmsg F
+GLIBC_2.2 getnameinfo F
+GLIBC_2.2 getnetbyaddr F
+GLIBC_2.2 getnetbyaddr_r F
+GLIBC_2.2 getnetbyname F
+GLIBC_2.2 getnetbyname_r F
+GLIBC_2.2 getnetent F
+GLIBC_2.2 getnetent_r F
+GLIBC_2.2 getnetgrent F
+GLIBC_2.2 getnetgrent_r F
+GLIBC_2.2 getnetname F
+GLIBC_2.2 getopt F
+GLIBC_2.2 getopt_long F
+GLIBC_2.2 getopt_long_only F
+GLIBC_2.2 getpagesize F
+GLIBC_2.2 getpass F
+GLIBC_2.2 getpeername F
+GLIBC_2.2 getpgid F
+GLIBC_2.2 getpgrp F
+GLIBC_2.2 getpid F
+GLIBC_2.2 getpmsg F
+GLIBC_2.2 getppid F
+GLIBC_2.2 getpriority F
+GLIBC_2.2 getprotobyname F
+GLIBC_2.2 getprotobyname_r F
+GLIBC_2.2 getprotobynumber F
+GLIBC_2.2 getprotobynumber_r F
+GLIBC_2.2 getprotoent F
+GLIBC_2.2 getprotoent_r F
+GLIBC_2.2 getpt F
+GLIBC_2.2 getpublickey F
+GLIBC_2.2 getpw F
+GLIBC_2.2 getpwent F
+GLIBC_2.2 getpwent_r F
+GLIBC_2.2 getpwnam F
+GLIBC_2.2 getpwnam_r F
+GLIBC_2.2 getpwuid F
+GLIBC_2.2 getpwuid_r F
+GLIBC_2.2 getresgid F
+GLIBC_2.2 getresuid F
+GLIBC_2.2 getrlimit F
+GLIBC_2.2 getrlimit64 F
+GLIBC_2.2 getrpcbyname F
+GLIBC_2.2 getrpcbyname_r F
+GLIBC_2.2 getrpcbynumber F
+GLIBC_2.2 getrpcbynumber_r F
+GLIBC_2.2 getrpcent F
+GLIBC_2.2 getrpcent_r F
+GLIBC_2.2 getrpcport F
+GLIBC_2.2 getrusage F
+GLIBC_2.2 gets F
+GLIBC_2.2 getsecretkey F
+GLIBC_2.2 getservbyname F
+GLIBC_2.2 getservbyname_r F
+GLIBC_2.2 getservbyport F
+GLIBC_2.2 getservbyport_r F
+GLIBC_2.2 getservent F
+GLIBC_2.2 getservent_r F
+GLIBC_2.2 getsid F
+GLIBC_2.2 getsockname F
+GLIBC_2.2 getsockopt F
+GLIBC_2.2 getspent F
+GLIBC_2.2 getspent_r F
+GLIBC_2.2 getspnam F
+GLIBC_2.2 getspnam_r F
+GLIBC_2.2 getsubopt F
+GLIBC_2.2 gettext F
+GLIBC_2.2 gettimeofday F
+GLIBC_2.2 getttyent F
+GLIBC_2.2 getttynam F
+GLIBC_2.2 getuid F
+GLIBC_2.2 getusershell F
+GLIBC_2.2 getutent F
+GLIBC_2.2 getutent_r F
+GLIBC_2.2 getutid F
+GLIBC_2.2 getutid_r F
+GLIBC_2.2 getutline F
+GLIBC_2.2 getutline_r F
+GLIBC_2.2 getutmp F
+GLIBC_2.2 getutmpx F
+GLIBC_2.2 getutxent F
+GLIBC_2.2 getutxid F
+GLIBC_2.2 getutxline F
+GLIBC_2.2 getw F
+GLIBC_2.2 getwc F
+GLIBC_2.2 getwc_unlocked F
+GLIBC_2.2 getwchar F
+GLIBC_2.2 getwchar_unlocked F
+GLIBC_2.2 getwd F
+GLIBC_2.2 glob F
+GLIBC_2.2 glob64 F
+GLIBC_2.2 glob_pattern_p F
+GLIBC_2.2 globfree F
+GLIBC_2.2 globfree64 F
+GLIBC_2.2 gmtime F
+GLIBC_2.2 gmtime_r F
+GLIBC_2.2 gnu_get_libc_release F
+GLIBC_2.2 gnu_get_libc_version F
+GLIBC_2.2 grantpt F
+GLIBC_2.2 group_member F
+GLIBC_2.2 gsignal F
+GLIBC_2.2 gtty F
+GLIBC_2.2 h_errlist D 0x28
+GLIBC_2.2 h_nerr D 0x4
+GLIBC_2.2 hasmntopt F
+GLIBC_2.2 hcreate F
+GLIBC_2.2 hcreate_r F
+GLIBC_2.2 hdestroy F
+GLIBC_2.2 hdestroy_r F
+GLIBC_2.2 herror F
+GLIBC_2.2 host2netname F
+GLIBC_2.2 hsearch F
+GLIBC_2.2 hsearch_r F
+GLIBC_2.2 hstrerror F
+GLIBC_2.2 htonl F
+GLIBC_2.2 htons F
+GLIBC_2.2 iconv F
+GLIBC_2.2 iconv_close F
+GLIBC_2.2 iconv_open F
+GLIBC_2.2 if_freenameindex F
+GLIBC_2.2 if_indextoname F
+GLIBC_2.2 if_nameindex F
+GLIBC_2.2 if_nametoindex F
+GLIBC_2.2 imaxabs F
+GLIBC_2.2 imaxdiv F
+GLIBC_2.2 in6addr_any D 0x10
+GLIBC_2.2 in6addr_loopback D 0x10
+GLIBC_2.2 inb F
+GLIBC_2.2 index F
+GLIBC_2.2 inet_addr F
+GLIBC_2.2 inet_aton F
+GLIBC_2.2 inet_lnaof F
+GLIBC_2.2 inet_makeaddr F
+GLIBC_2.2 inet_netof F
+GLIBC_2.2 inet_network F
+GLIBC_2.2 inet_nsap_addr F
+GLIBC_2.2 inet_nsap_ntoa F
+GLIBC_2.2 inet_ntoa F
+GLIBC_2.2 inet_ntop F
+GLIBC_2.2 inet_pton F
+GLIBC_2.2 init_module F
+GLIBC_2.2 initgroups F
+GLIBC_2.2 initstate F
+GLIBC_2.2 initstate_r F
+GLIBC_2.2 inl F
+GLIBC_2.2 innetgr F
+GLIBC_2.2 insque F
+GLIBC_2.2 inw F
+GLIBC_2.2 ioctl F
+GLIBC_2.2 ioperm F
+GLIBC_2.2 iopl F
+GLIBC_2.2 iruserok F
+GLIBC_2.2 iruserok_af F
+GLIBC_2.2 isalnum F
+GLIBC_2.2 isalpha F
+GLIBC_2.2 isascii F
+GLIBC_2.2 isastream F
+GLIBC_2.2 isatty F
+GLIBC_2.2 isblank F
+GLIBC_2.2 iscntrl F
+GLIBC_2.2 isdigit F
+GLIBC_2.2 isfdtype F
+GLIBC_2.2 isgraph F
+GLIBC_2.2 isinf F
+GLIBC_2.2 isinff F
+GLIBC_2.2 isinfl F
+GLIBC_2.2 islower F
+GLIBC_2.2 isnan F
+GLIBC_2.2 isnanf F
+GLIBC_2.2 isnanl F
+GLIBC_2.2 isprint F
+GLIBC_2.2 ispunct F
+GLIBC_2.2 isspace F
+GLIBC_2.2 isupper F
+GLIBC_2.2 iswalnum F
+GLIBC_2.2 iswalpha F
+GLIBC_2.2 iswblank F
+GLIBC_2.2 iswcntrl F
+GLIBC_2.2 iswctype F
+GLIBC_2.2 iswdigit F
+GLIBC_2.2 iswgraph F
+GLIBC_2.2 iswlower F
+GLIBC_2.2 iswprint F
+GLIBC_2.2 iswpunct F
+GLIBC_2.2 iswspace F
+GLIBC_2.2 iswupper F
+GLIBC_2.2 iswxdigit F
+GLIBC_2.2 isxdigit F
+GLIBC_2.2 jrand48 F
+GLIBC_2.2 jrand48_r F
+GLIBC_2.2 key_decryptsession F
+GLIBC_2.2 key_decryptsession_pk F
+GLIBC_2.2 key_encryptsession F
+GLIBC_2.2 key_encryptsession_pk F
+GLIBC_2.2 key_gendes F
+GLIBC_2.2 key_get_conv F
+GLIBC_2.2 key_secretkey_is_set F
+GLIBC_2.2 key_setnet F
+GLIBC_2.2 key_setsecret F
+GLIBC_2.2 kill F
+GLIBC_2.2 killpg F
+GLIBC_2.2 klogctl F
+GLIBC_2.2 l64a F
+GLIBC_2.2 labs F
+GLIBC_2.2 lchown F
+GLIBC_2.2 lckpwdf F
+GLIBC_2.2 lcong48 F
+GLIBC_2.2 lcong48_r F
+GLIBC_2.2 ldexp F
+GLIBC_2.2 ldexpf F
+GLIBC_2.2 ldexpl F
+GLIBC_2.2 ldiv F
+GLIBC_2.2 lfind F
+GLIBC_2.2 link F
+GLIBC_2.2 listen F
+GLIBC_2.2 llabs F
+GLIBC_2.2 lldiv F
+GLIBC_2.2 llseek F
+GLIBC_2.2 loc1 D 0x8
+GLIBC_2.2 loc2 D 0x8
+GLIBC_2.2 localeconv F
+GLIBC_2.2 localtime F
+GLIBC_2.2 localtime_r F
+GLIBC_2.2 lockf F
+GLIBC_2.2 lockf64 F
+GLIBC_2.2 locs D 0x8
+GLIBC_2.2 longjmp F
+GLIBC_2.2 lrand48 F
+GLIBC_2.2 lrand48_r F
+GLIBC_2.2 lsearch F
+GLIBC_2.2 lseek F
+GLIBC_2.2 lseek64 F
+GLIBC_2.2 madvise F
+GLIBC_2.2 makecontext F
+GLIBC_2.2 mallinfo F
+GLIBC_2.2 malloc F
+GLIBC_2.2 malloc_get_state F
+GLIBC_2.2 malloc_set_state F
+GLIBC_2.2 malloc_stats F
+GLIBC_2.2 malloc_trim F
+GLIBC_2.2 malloc_usable_size F
+GLIBC_2.2 mallopt F
+GLIBC_2.2 mallwatch D 0x8
+GLIBC_2.2 mblen F
+GLIBC_2.2 mbrlen F
+GLIBC_2.2 mbrtowc F
+GLIBC_2.2 mbsinit F
+GLIBC_2.2 mbsnrtowcs F
+GLIBC_2.2 mbsrtowcs F
+GLIBC_2.2 mbstowcs F
+GLIBC_2.2 mbtowc F
+GLIBC_2.2 mcheck F
+GLIBC_2.2 mcheck_check_all F
+GLIBC_2.2 mcheck_pedantic F
+GLIBC_2.2 mcount F
+GLIBC_2.2 memalign F
+GLIBC_2.2 memccpy F
+GLIBC_2.2 memchr F
+GLIBC_2.2 memcmp F
+GLIBC_2.2 memcpy F
+GLIBC_2.2 memfrob F
+GLIBC_2.2 memmem F
+GLIBC_2.2 memmove F
+GLIBC_2.2 mempcpy F
+GLIBC_2.2 memrchr F
+GLIBC_2.2 memset F
+GLIBC_2.2 mincore F
+GLIBC_2.2 mkdir F
+GLIBC_2.2 mkdtemp F
+GLIBC_2.2 mkfifo F
+GLIBC_2.2 mkstemp F
+GLIBC_2.2 mkstemp64 F
+GLIBC_2.2 mktemp F
+GLIBC_2.2 mktime F
+GLIBC_2.2 mlock F
+GLIBC_2.2 mlockall F
+GLIBC_2.2 mmap F
+GLIBC_2.2 mmap64 F
+GLIBC_2.2 modf F
+GLIBC_2.2 modff F
+GLIBC_2.2 modfl F
+GLIBC_2.2 moncontrol F
+GLIBC_2.2 monstartup F
+GLIBC_2.2 mount F
+GLIBC_2.2 mprobe F
+GLIBC_2.2 mprotect F
+GLIBC_2.2 mrand48 F
+GLIBC_2.2 mrand48_r F
+GLIBC_2.2 mremap F
+GLIBC_2.2 msgctl F
+GLIBC_2.2 msgget F
+GLIBC_2.2 msgrcv F
+GLIBC_2.2 msgsnd F
+GLIBC_2.2 msync F
+GLIBC_2.2 mtrace F
+GLIBC_2.2 munlock F
+GLIBC_2.2 munlockall F
+GLIBC_2.2 munmap F
+GLIBC_2.2 muntrace F
+GLIBC_2.2 nanosleep F
+GLIBC_2.2 netname2host F
+GLIBC_2.2 netname2user F
+GLIBC_2.2 nfsservctl F
+GLIBC_2.2 nftw F
+GLIBC_2.2 nftw64 F
+GLIBC_2.2 ngettext F
+GLIBC_2.2 nice F
+GLIBC_2.2 nl_langinfo F
+GLIBC_2.2 nrand48 F
+GLIBC_2.2 nrand48_r F
+GLIBC_2.2 ntohl F
+GLIBC_2.2 ntohs F
+GLIBC_2.2 ntp_adjtime F
+GLIBC_2.2 ntp_gettime F
+GLIBC_2.2 obstack_alloc_failed_handler D 0x8
+GLIBC_2.2 obstack_exit_failure D 0x4
+GLIBC_2.2 obstack_free F
+GLIBC_2.2 obstack_printf F
+GLIBC_2.2 obstack_vprintf F
+GLIBC_2.2 on_exit F
+GLIBC_2.2 open F
+GLIBC_2.2 open64 F
+GLIBC_2.2 open_memstream F
+GLIBC_2.2 opendir F
+GLIBC_2.2 openlog F
+GLIBC_2.2 optarg D 0x8
+GLIBC_2.2 opterr D 0x4
+GLIBC_2.2 optind D 0x4
+GLIBC_2.2 optopt D 0x4
+GLIBC_2.2 outb F
+GLIBC_2.2 outw F
+GLIBC_2.2 parse_printf_format F
+GLIBC_2.2 passwd2des F
+GLIBC_2.2 pathconf F
+GLIBC_2.2 pause F
+GLIBC_2.2 pciconfig_read F
+GLIBC_2.2 pciconfig_write F
+GLIBC_2.2 pclose F
+GLIBC_2.2 perror F
+GLIBC_2.2 personality F
+GLIBC_2.2 pipe F
+GLIBC_2.2 pmap_getmaps F
+GLIBC_2.2 pmap_getport F
+GLIBC_2.2 pmap_rmtcall F
+GLIBC_2.2 pmap_set F
+GLIBC_2.2 pmap_unset F
+GLIBC_2.2 poll F
+GLIBC_2.2 popen F
+GLIBC_2.2 posix_fadvise F
+GLIBC_2.2 posix_fadvise64 F
+GLIBC_2.2 posix_fallocate F
+GLIBC_2.2 posix_fallocate64 F
+GLIBC_2.2 posix_madvise F
+GLIBC_2.2 posix_memalign F
+GLIBC_2.2 posix_spawn F
+GLIBC_2.2 posix_spawn_file_actions_addclose F
+GLIBC_2.2 posix_spawn_file_actions_adddup2 F
+GLIBC_2.2 posix_spawn_file_actions_addopen F
+GLIBC_2.2 posix_spawn_file_actions_destroy F
+GLIBC_2.2 posix_spawn_file_actions_init F
+GLIBC_2.2 posix_spawnattr_destroy F
+GLIBC_2.2 posix_spawnattr_getflags F
+GLIBC_2.2 posix_spawnattr_getpgroup F
+GLIBC_2.2 posix_spawnattr_getschedparam F
+GLIBC_2.2 posix_spawnattr_getschedpolicy F
+GLIBC_2.2 posix_spawnattr_getsigdefault F
+GLIBC_2.2 posix_spawnattr_getsigmask F
+GLIBC_2.2 posix_spawnattr_init F
+GLIBC_2.2 posix_spawnattr_setflags F
+GLIBC_2.2 posix_spawnattr_setpgroup F
+GLIBC_2.2 posix_spawnattr_setschedparam F
+GLIBC_2.2 posix_spawnattr_setschedpolicy F
+GLIBC_2.2 posix_spawnattr_setsigdefault F
+GLIBC_2.2 posix_spawnattr_setsigmask F
+GLIBC_2.2 posix_spawnp F
+GLIBC_2.2 prctl F
+GLIBC_2.2 pread F
+GLIBC_2.2 pread64 F
+GLIBC_2.2 printf F
+GLIBC_2.2 printf_size F
+GLIBC_2.2 printf_size_info F
+GLIBC_2.2 profil F
+GLIBC_2.2 program_invocation_name D 0x8
+GLIBC_2.2 program_invocation_short_name D 0x8
+GLIBC_2.2 pselect F
+GLIBC_2.2 psignal F
+GLIBC_2.2 pthread_attr_destroy F
+GLIBC_2.2 pthread_attr_getdetachstate F
+GLIBC_2.2 pthread_attr_getinheritsched F
+GLIBC_2.2 pthread_attr_getschedparam F
+GLIBC_2.2 pthread_attr_getschedpolicy F
+GLIBC_2.2 pthread_attr_getscope F
+GLIBC_2.2 pthread_attr_init F
+GLIBC_2.2 pthread_attr_setdetachstate F
+GLIBC_2.2 pthread_attr_setinheritsched F
+GLIBC_2.2 pthread_attr_setschedparam F
+GLIBC_2.2 pthread_attr_setschedpolicy F
+GLIBC_2.2 pthread_attr_setscope F
+GLIBC_2.2 pthread_cond_broadcast F
+GLIBC_2.2 pthread_cond_destroy F
+GLIBC_2.2 pthread_cond_init F
+GLIBC_2.2 pthread_cond_signal F
+GLIBC_2.2 pthread_cond_timedwait F
+GLIBC_2.2 pthread_cond_wait F
+GLIBC_2.2 pthread_condattr_destroy F
+GLIBC_2.2 pthread_condattr_init F
+GLIBC_2.2 pthread_equal F
+GLIBC_2.2 pthread_exit F
+GLIBC_2.2 pthread_getschedparam F
+GLIBC_2.2 pthread_mutex_destroy F
+GLIBC_2.2 pthread_mutex_init F
+GLIBC_2.2 pthread_mutex_lock F
+GLIBC_2.2 pthread_mutex_unlock F
+GLIBC_2.2 pthread_self F
+GLIBC_2.2 pthread_setcancelstate F
+GLIBC_2.2 pthread_setcanceltype F
+GLIBC_2.2 pthread_setschedparam F
+GLIBC_2.2 ptrace F
+GLIBC_2.2 ptsname F
+GLIBC_2.2 ptsname_r F
+GLIBC_2.2 putc F
+GLIBC_2.2 putc_unlocked F
+GLIBC_2.2 putchar F
+GLIBC_2.2 putchar_unlocked F
+GLIBC_2.2 putenv F
+GLIBC_2.2 putgrent F
+GLIBC_2.2 putmsg F
+GLIBC_2.2 putpmsg F
+GLIBC_2.2 putpwent F
+GLIBC_2.2 puts F
+GLIBC_2.2 putspent F
+GLIBC_2.2 pututline F
+GLIBC_2.2 pututxline F
+GLIBC_2.2 putw F
+GLIBC_2.2 putwc F
+GLIBC_2.2 putwc_unlocked F
+GLIBC_2.2 putwchar F
+GLIBC_2.2 putwchar_unlocked F
+GLIBC_2.2 pvalloc F
+GLIBC_2.2 pwrite F
+GLIBC_2.2 pwrite64 F
+GLIBC_2.2 qecvt F
+GLIBC_2.2 qecvt_r F
+GLIBC_2.2 qfcvt F
+GLIBC_2.2 qfcvt_r F
+GLIBC_2.2 qgcvt F
+GLIBC_2.2 qsort F
+GLIBC_2.2 query_module F
+GLIBC_2.2 quotactl F
+GLIBC_2.2 raise F
+GLIBC_2.2 rand F
+GLIBC_2.2 rand_r F
+GLIBC_2.2 random F
+GLIBC_2.2 random_r F
+GLIBC_2.2 rawmemchr F
+GLIBC_2.2 rcmd F
+GLIBC_2.2 rcmd_af F
+GLIBC_2.2 re_comp F
+GLIBC_2.2 re_compile_fastmap F
+GLIBC_2.2 re_compile_pattern F
+GLIBC_2.2 re_exec F
+GLIBC_2.2 re_match F
+GLIBC_2.2 re_match_2 F
+GLIBC_2.2 re_max_failures D 0x4
+GLIBC_2.2 re_search F
+GLIBC_2.2 re_search_2 F
+GLIBC_2.2 re_set_registers F
+GLIBC_2.2 re_set_syntax F
+GLIBC_2.2 re_syntax_options D 0x8
+GLIBC_2.2 read F
+GLIBC_2.2 readdir F
+GLIBC_2.2 readdir64 F
+GLIBC_2.2 readdir64_r F
+GLIBC_2.2 readdir_r F
+GLIBC_2.2 readlink F
+GLIBC_2.2 readv F
+GLIBC_2.2 realloc F
+GLIBC_2.2 realpath F
+GLIBC_2.2 reboot F
+GLIBC_2.2 recv F
+GLIBC_2.2 recvfrom F
+GLIBC_2.2 recvmsg F
+GLIBC_2.2 regcomp F
+GLIBC_2.2 regerror F
+GLIBC_2.2 regexec F
+GLIBC_2.2 regfree F
+GLIBC_2.2 register_printf_function F
+GLIBC_2.2 registerrpc F
+GLIBC_2.2 remove F
+GLIBC_2.2 remque F
+GLIBC_2.2 rename F
+GLIBC_2.2 revoke F
+GLIBC_2.2 rewind F
+GLIBC_2.2 rewinddir F
+GLIBC_2.2 rexec F
+GLIBC_2.2 rexec_af F
+GLIBC_2.2 rexecoptions D 0x4
+GLIBC_2.2 rindex F
+GLIBC_2.2 rmdir F
+GLIBC_2.2 rpc_createerr D 0x20
+GLIBC_2.2 rpmatch F
+GLIBC_2.2 rresvport F
+GLIBC_2.2 rresvport_af F
+GLIBC_2.2 rtime F
+GLIBC_2.2 ruserok F
+GLIBC_2.2 ruserok_af F
+GLIBC_2.2 ruserpass F
+GLIBC_2.2 sbrk F
+GLIBC_2.2 scalbn F
+GLIBC_2.2 scalbnf F
+GLIBC_2.2 scalbnl F
+GLIBC_2.2 scandir F
+GLIBC_2.2 scandir64 F
+GLIBC_2.2 scanf F
+GLIBC_2.2 sched_get_priority_max F
+GLIBC_2.2 sched_get_priority_min F
+GLIBC_2.2 sched_getparam F
+GLIBC_2.2 sched_getscheduler F
+GLIBC_2.2 sched_rr_get_interval F
+GLIBC_2.2 sched_setparam F
+GLIBC_2.2 sched_setscheduler F
+GLIBC_2.2 sched_yield F
+GLIBC_2.2 seed48 F
+GLIBC_2.2 seed48_r F
+GLIBC_2.2 seekdir F
+GLIBC_2.2 select F
+GLIBC_2.2 semctl F
+GLIBC_2.2 semget F
+GLIBC_2.2 semop F
+GLIBC_2.2 send F
+GLIBC_2.2 sendfile F
+GLIBC_2.2 sendmsg F
+GLIBC_2.2 sendto F
+GLIBC_2.2 setaliasent F
+GLIBC_2.2 setbuf F
+GLIBC_2.2 setbuffer F
+GLIBC_2.2 setcontext F
+GLIBC_2.2 setdomainname F
+GLIBC_2.2 setegid F
+GLIBC_2.2 setenv F
+GLIBC_2.2 seteuid F
+GLIBC_2.2 setfsent F
+GLIBC_2.2 setfsgid F
+GLIBC_2.2 setfsuid F
+GLIBC_2.2 setgid F
+GLIBC_2.2 setgrent F
+GLIBC_2.2 setgroups F
+GLIBC_2.2 sethostent F
+GLIBC_2.2 sethostid F
+GLIBC_2.2 sethostname F
+GLIBC_2.2 setitimer F
+GLIBC_2.2 setjmp F
+GLIBC_2.2 setlinebuf F
+GLIBC_2.2 setlocale F
+GLIBC_2.2 setlogin F
+GLIBC_2.2 setlogmask F
+GLIBC_2.2 setmntent F
+GLIBC_2.2 setnetent F
+GLIBC_2.2 setnetgrent F
+GLIBC_2.2 setpgid F
+GLIBC_2.2 setpgrp F
+GLIBC_2.2 setpriority F
+GLIBC_2.2 setprotoent F
+GLIBC_2.2 setpwent F
+GLIBC_2.2 setregid F
+GLIBC_2.2 setresgid F
+GLIBC_2.2 setresuid F
+GLIBC_2.2 setreuid F
+GLIBC_2.2 setrlimit F
+GLIBC_2.2 setrlimit64 F
+GLIBC_2.2 setrpcent F
+GLIBC_2.2 setservent F
+GLIBC_2.2 setsid F
+GLIBC_2.2 setsockopt F
+GLIBC_2.2 setspent F
+GLIBC_2.2 setstate F
+GLIBC_2.2 setstate_r F
+GLIBC_2.2 settimeofday F
+GLIBC_2.2 setttyent F
+GLIBC_2.2 setuid F
+GLIBC_2.2 setusershell F
+GLIBC_2.2 setutent F
+GLIBC_2.2 setutxent F
+GLIBC_2.2 setvbuf F
+GLIBC_2.2 sgetspent F
+GLIBC_2.2 sgetspent_r F
+GLIBC_2.2 shmat F
+GLIBC_2.2 shmctl F
+GLIBC_2.2 shmdt F
+GLIBC_2.2 shmget F
+GLIBC_2.2 shutdown F
+GLIBC_2.2 sigaction F
+GLIBC_2.2 sigaddset F
+GLIBC_2.2 sigaltstack F
+GLIBC_2.2 sigandset F
+GLIBC_2.2 sigblock F
+GLIBC_2.2 sigdelset F
+GLIBC_2.2 sigemptyset F
+GLIBC_2.2 sigfillset F
+GLIBC_2.2 siggetmask F
+GLIBC_2.2 sighold F
+GLIBC_2.2 sigignore F
+GLIBC_2.2 siginterrupt F
+GLIBC_2.2 sigisemptyset F
+GLIBC_2.2 sigismember F
+GLIBC_2.2 siglongjmp F
+GLIBC_2.2 signal F
+GLIBC_2.2 sigorset F
+GLIBC_2.2 sigpause F
+GLIBC_2.2 sigpending F
+GLIBC_2.2 sigprocmask F
+GLIBC_2.2 sigqueue F
+GLIBC_2.2 sigrelse F
+GLIBC_2.2 sigreturn F
+GLIBC_2.2 sigset F
+GLIBC_2.2 sigsetmask F
+GLIBC_2.2 sigstack F
+GLIBC_2.2 sigsuspend F
+GLIBC_2.2 sigtimedwait F
+GLIBC_2.2 sigvec F
+GLIBC_2.2 sigwait F
+GLIBC_2.2 sigwaitinfo F
+GLIBC_2.2 sleep F
+GLIBC_2.2 snprintf F
+GLIBC_2.2 socket F
+GLIBC_2.2 socketpair F
+GLIBC_2.2 sprintf F
+GLIBC_2.2 srand F
+GLIBC_2.2 srand48 F
+GLIBC_2.2 srand48_r F
+GLIBC_2.2 srandom F
+GLIBC_2.2 srandom_r F
+GLIBC_2.2 sscanf F
+GLIBC_2.2 ssignal F
+GLIBC_2.2 sstk F
+GLIBC_2.2 statfs F
+GLIBC_2.2 statfs64 F
+GLIBC_2.2 statvfs F
+GLIBC_2.2 statvfs64 F
+GLIBC_2.2 stderr D 0x8
+GLIBC_2.2 stdin D 0x8
+GLIBC_2.2 stdout D 0x8
+GLIBC_2.2 step F
+GLIBC_2.2 stime F
+GLIBC_2.2 stpcpy F
+GLIBC_2.2 stpncpy F
+GLIBC_2.2 strcasecmp F
+GLIBC_2.2 strcasestr F
+GLIBC_2.2 strcat F
+GLIBC_2.2 strchr F
+GLIBC_2.2 strchrnul F
+GLIBC_2.2 strcmp F
+GLIBC_2.2 strcoll F
+GLIBC_2.2 strcpy F
+GLIBC_2.2 strcspn F
+GLIBC_2.2 strdup F
+GLIBC_2.2 strerror F
+GLIBC_2.2 strerror_r F
+GLIBC_2.2 strfmon F
+GLIBC_2.2 strfry F
+GLIBC_2.2 strftime F
+GLIBC_2.2 strlen F
+GLIBC_2.2 strncasecmp F
+GLIBC_2.2 strncat F
+GLIBC_2.2 strncmp F
+GLIBC_2.2 strncpy F
+GLIBC_2.2 strndup F
+GLIBC_2.2 strnlen F
+GLIBC_2.2 strpbrk F
+GLIBC_2.2 strptime F
+GLIBC_2.2 strrchr F
+GLIBC_2.2 strsep F
+GLIBC_2.2 strsignal F
+GLIBC_2.2 strspn F
+GLIBC_2.2 strstr F
+GLIBC_2.2 strtod F
+GLIBC_2.2 strtof F
+GLIBC_2.2 strtoimax F
+GLIBC_2.2 strtok F
+GLIBC_2.2 strtok_r F
+GLIBC_2.2 strtol F
+GLIBC_2.2 strtold F
+GLIBC_2.2 strtoll F
+GLIBC_2.2 strtoq F
+GLIBC_2.2 strtoul F
+GLIBC_2.2 strtoull F
+GLIBC_2.2 strtoumax F
+GLIBC_2.2 strtouq F
+GLIBC_2.2 strverscmp F
+GLIBC_2.2 strxfrm F
+GLIBC_2.2 stty F
+GLIBC_2.2 svc_exit F
+GLIBC_2.2 svc_fdset D 0x80
+GLIBC_2.2 svc_getreq F
+GLIBC_2.2 svc_getreq_common F
+GLIBC_2.2 svc_getreq_poll F
+GLIBC_2.2 svc_getreqset F
+GLIBC_2.2 svc_max_pollfd D 0x4
+GLIBC_2.2 svc_pollfd D 0x8
+GLIBC_2.2 svc_register F
+GLIBC_2.2 svc_run F
+GLIBC_2.2 svc_sendreply F
+GLIBC_2.2 svc_unregister F
+GLIBC_2.2 svcauthdes_stats D 0x18
+GLIBC_2.2 svcerr_auth F
+GLIBC_2.2 svcerr_decode F
+GLIBC_2.2 svcerr_noproc F
+GLIBC_2.2 svcerr_noprog F
+GLIBC_2.2 svcerr_progvers F
+GLIBC_2.2 svcerr_systemerr F
+GLIBC_2.2 svcerr_weakauth F
+GLIBC_2.2 svcfd_create F
+GLIBC_2.2 svcraw_create F
+GLIBC_2.2 svctcp_create F
+GLIBC_2.2 svcudp_bufcreate F
+GLIBC_2.2 svcudp_create F
+GLIBC_2.2 svcudp_enablecache F
+GLIBC_2.2 svcunix_create F
+GLIBC_2.2 svcunixfd_create F
+GLIBC_2.2 swab F
+GLIBC_2.2 swapcontext F
+GLIBC_2.2 swapoff F
+GLIBC_2.2 swapon F
+GLIBC_2.2 swprintf F
+GLIBC_2.2 swscanf F
+GLIBC_2.2 symlink F
+GLIBC_2.2 sync F
+GLIBC_2.2 sys_errlist D 0x3e8
+GLIBC_2.2 sys_nerr D 0x4
+GLIBC_2.2 sys_sigabbrev D 0x200
+GLIBC_2.2 sys_siglist D 0x200
+GLIBC_2.2 syscall F
+GLIBC_2.2 sysconf F
+GLIBC_2.2 sysctl F
+GLIBC_2.2 sysinfo F
+GLIBC_2.2 syslog F
+GLIBC_2.2 system F
+GLIBC_2.2 sysv_signal F
+GLIBC_2.2 tcdrain F
+GLIBC_2.2 tcflow F
+GLIBC_2.2 tcflush F
+GLIBC_2.2 tcgetattr F
+GLIBC_2.2 tcgetpgrp F
+GLIBC_2.2 tcgetsid F
+GLIBC_2.2 tcsendbreak F
+GLIBC_2.2 tcsetattr F
+GLIBC_2.2 tcsetpgrp F
+GLIBC_2.2 tdelete F
+GLIBC_2.2 tdestroy F
+GLIBC_2.2 telldir F
+GLIBC_2.2 tempnam F
+GLIBC_2.2 textdomain F
+GLIBC_2.2 tfind F
+GLIBC_2.2 time F
+GLIBC_2.2 timegm F
+GLIBC_2.2 timelocal F
+GLIBC_2.2 times F
+GLIBC_2.2 timezone D 0x8
+GLIBC_2.2 tmpfile F
+GLIBC_2.2 tmpfile64 F
+GLIBC_2.2 tmpnam F
+GLIBC_2.2 tmpnam_r F
+GLIBC_2.2 toascii F
+GLIBC_2.2 tolower F
+GLIBC_2.2 toupper F
+GLIBC_2.2 towctrans F
+GLIBC_2.2 towlower F
+GLIBC_2.2 towupper F
+GLIBC_2.2 tr_break F
+GLIBC_2.2 truncate F
+GLIBC_2.2 truncate64 F
+GLIBC_2.2 tsearch F
+GLIBC_2.2 ttyname F
+GLIBC_2.2 ttyname_r F
+GLIBC_2.2 ttyslot F
+GLIBC_2.2 twalk F
+GLIBC_2.2 tzname D 0x10
+GLIBC_2.2 tzset F
+GLIBC_2.2 ualarm F
+GLIBC_2.2 ulckpwdf F
+GLIBC_2.2 ulimit F
+GLIBC_2.2 umask F
+GLIBC_2.2 umount F
+GLIBC_2.2 umount2 F
+GLIBC_2.2 uname F
+GLIBC_2.2 ungetc F
+GLIBC_2.2 ungetwc F
+GLIBC_2.2 unlink F
+GLIBC_2.2 unlockpt F
+GLIBC_2.2 unsetenv F
+GLIBC_2.2 updwtmp F
+GLIBC_2.2 updwtmpx F
+GLIBC_2.2 uselib F
+GLIBC_2.2 user2netname F
+GLIBC_2.2 usleep F
+GLIBC_2.2 ustat F
+GLIBC_2.2 utime F
+GLIBC_2.2 utimes F
+GLIBC_2.2 utmpname F
+GLIBC_2.2 utmpxname F
+GLIBC_2.2 valloc F
+GLIBC_2.2 vasprintf F
+GLIBC_2.2 vdprintf F
+GLIBC_2.2 verr F
+GLIBC_2.2 verrx F
+GLIBC_2.2 versionsort F
+GLIBC_2.2 versionsort64 F
+GLIBC_2.2 vfork F
+GLIBC_2.2 vfprintf F
+GLIBC_2.2 vfscanf F
+GLIBC_2.2 vfwprintf F
+GLIBC_2.2 vfwscanf F
+GLIBC_2.2 vhangup F
+GLIBC_2.2 vlimit F
+GLIBC_2.2 vprintf F
+GLIBC_2.2 vscanf F
+GLIBC_2.2 vsnprintf F
+GLIBC_2.2 vsprintf F
+GLIBC_2.2 vsscanf F
+GLIBC_2.2 vswprintf F
+GLIBC_2.2 vswscanf F
+GLIBC_2.2 vsyslog F
+GLIBC_2.2 vtimes F
+GLIBC_2.2 vwarn F
+GLIBC_2.2 vwarnx F
+GLIBC_2.2 vwprintf F
+GLIBC_2.2 vwscanf F
+GLIBC_2.2 wait F
+GLIBC_2.2 wait3 F
+GLIBC_2.2 wait4 F
+GLIBC_2.2 waitid F
+GLIBC_2.2 waitpid F
+GLIBC_2.2 warn F
+GLIBC_2.2 warnx F
+GLIBC_2.2 wcpcpy F
+GLIBC_2.2 wcpncpy F
+GLIBC_2.2 wcrtomb F
+GLIBC_2.2 wcscasecmp F
+GLIBC_2.2 wcscat F
+GLIBC_2.2 wcschr F
+GLIBC_2.2 wcschrnul F
+GLIBC_2.2 wcscmp F
+GLIBC_2.2 wcscoll F
+GLIBC_2.2 wcscpy F
+GLIBC_2.2 wcscspn F
+GLIBC_2.2 wcsdup F
+GLIBC_2.2 wcsftime F
+GLIBC_2.2 wcslen F
+GLIBC_2.2 wcsncasecmp F
+GLIBC_2.2 wcsncat F
+GLIBC_2.2 wcsncmp F
+GLIBC_2.2 wcsncpy F
+GLIBC_2.2 wcsnlen F
+GLIBC_2.2 wcsnrtombs F
+GLIBC_2.2 wcspbrk F
+GLIBC_2.2 wcsrchr F
+GLIBC_2.2 wcsrtombs F
+GLIBC_2.2 wcsspn F
+GLIBC_2.2 wcsstr F
+GLIBC_2.2 wcstod F
+GLIBC_2.2 wcstof F
+GLIBC_2.2 wcstoimax F
+GLIBC_2.2 wcstok F
+GLIBC_2.2 wcstol F
+GLIBC_2.2 wcstold F
+GLIBC_2.2 wcstoll F
+GLIBC_2.2 wcstombs F
+GLIBC_2.2 wcstoq F
+GLIBC_2.2 wcstoul F
+GLIBC_2.2 wcstoull F
+GLIBC_2.2 wcstoumax F
+GLIBC_2.2 wcstouq F
+GLIBC_2.2 wcswcs F
+GLIBC_2.2 wcswidth F
+GLIBC_2.2 wcsxfrm F
+GLIBC_2.2 wctob F
+GLIBC_2.2 wctomb F
+GLIBC_2.2 wctrans F
+GLIBC_2.2 wctype F
+GLIBC_2.2 wcwidth F
+GLIBC_2.2 wmemchr F
+GLIBC_2.2 wmemcmp F
+GLIBC_2.2 wmemcpy F
+GLIBC_2.2 wmemmove F
+GLIBC_2.2 wmempcpy F
+GLIBC_2.2 wmemset F
+GLIBC_2.2 wordexp F
+GLIBC_2.2 wordfree F
+GLIBC_2.2 wprintf F
+GLIBC_2.2 write F
+GLIBC_2.2 writev F
+GLIBC_2.2 wscanf F
+GLIBC_2.2 xdecrypt F
+GLIBC_2.2 xdr_accepted_reply F
+GLIBC_2.2 xdr_array F
+GLIBC_2.2 xdr_authdes_cred F
+GLIBC_2.2 xdr_authdes_verf F
+GLIBC_2.2 xdr_authunix_parms F
+GLIBC_2.2 xdr_bool F
+GLIBC_2.2 xdr_bytes F
+GLIBC_2.2 xdr_callhdr F
+GLIBC_2.2 xdr_callmsg F
+GLIBC_2.2 xdr_char F
+GLIBC_2.2 xdr_cryptkeyarg F
+GLIBC_2.2 xdr_cryptkeyarg2 F
+GLIBC_2.2 xdr_cryptkeyres F
+GLIBC_2.2 xdr_des_block F
+GLIBC_2.2 xdr_double F
+GLIBC_2.2 xdr_enum F
+GLIBC_2.2 xdr_float F
+GLIBC_2.2 xdr_free F
+GLIBC_2.2 xdr_getcredres F
+GLIBC_2.2 xdr_hyper F
+GLIBC_2.2 xdr_int F
+GLIBC_2.2 xdr_int16_t F
+GLIBC_2.2 xdr_int32_t F
+GLIBC_2.2 xdr_int64_t F
+GLIBC_2.2 xdr_int8_t F
+GLIBC_2.2 xdr_key_netstarg F
+GLIBC_2.2 xdr_key_netstres F
+GLIBC_2.2 xdr_keybuf F
+GLIBC_2.2 xdr_keystatus F
+GLIBC_2.2 xdr_long F
+GLIBC_2.2 xdr_longlong_t F
+GLIBC_2.2 xdr_netnamestr F
+GLIBC_2.2 xdr_netobj F
+GLIBC_2.2 xdr_opaque F
+GLIBC_2.2 xdr_opaque_auth F
+GLIBC_2.2 xdr_pmap F
+GLIBC_2.2 xdr_pmaplist F
+GLIBC_2.2 xdr_pointer F
+GLIBC_2.2 xdr_reference F
+GLIBC_2.2 xdr_rejected_reply F
+GLIBC_2.2 xdr_replymsg F
+GLIBC_2.2 xdr_rmtcall_args F
+GLIBC_2.2 xdr_rmtcallres F
+GLIBC_2.2 xdr_short F
+GLIBC_2.2 xdr_sizeof F
+GLIBC_2.2 xdr_string F
+GLIBC_2.2 xdr_u_char F
+GLIBC_2.2 xdr_u_hyper F
+GLIBC_2.2 xdr_u_int F
+GLIBC_2.2 xdr_u_long F
+GLIBC_2.2 xdr_u_longlong_t F
+GLIBC_2.2 xdr_u_short F
+GLIBC_2.2 xdr_uint16_t F
+GLIBC_2.2 xdr_uint32_t F
+GLIBC_2.2 xdr_uint64_t F
+GLIBC_2.2 xdr_uint8_t F
+GLIBC_2.2 xdr_union F
+GLIBC_2.2 xdr_unixcred F
+GLIBC_2.2 xdr_vector F
+GLIBC_2.2 xdr_void F
+GLIBC_2.2 xdr_wrapstring F
+GLIBC_2.2 xdrmem_create F
+GLIBC_2.2 xdrrec_create F
+GLIBC_2.2 xdrrec_endofrecord F
+GLIBC_2.2 xdrrec_eof F
+GLIBC_2.2 xdrrec_skiprecord F
+GLIBC_2.2 xdrstdio_create F
+GLIBC_2.2 xencrypt F
+GLIBC_2.2 xprt_register F
+GLIBC_2.2 xprt_unregister F
+GLIBC_2.2.1 GLIBC_2.2.1 A
+GLIBC_2.2.1 pivot_root F
+GLIBC_2.2.1 posix_openpt F
+GLIBC_2.2.2 GLIBC_2.2.2 A
+GLIBC_2.2.2 __nss_hostname_digits_dots F
+GLIBC_2.2.2 wordexp 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.2.6 getunwind 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 0x3f0
+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 strtoul_l F
+GLIBC_2.3 strxfrm_l F
+GLIBC_2.3 sys_errlist D 0x3f0
+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 0x208
+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 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 strtoll_l F
+GLIBC_2.3.3 strtoull_l F
+GLIBC_2.3.3 sys_sigabbrev D 0x208
+GLIBC_2.3.3 sys_siglist D 0x208
+GLIBC_2.3.4 GLIBC_2.3.4 A
+GLIBC_2.3.4 __chk_fail F
+GLIBC_2.3.4 __fprintf_chk F
+GLIBC_2.3.4 __gets_chk F
+GLIBC_2.3.4 __memcpy_chk F
+GLIBC_2.3.4 __memmove_chk F
+GLIBC_2.3.4 __mempcpy_chk F
+GLIBC_2.3.4 __memset_chk F
+GLIBC_2.3.4 __printf_chk F
+GLIBC_2.3.4 __snprintf_chk F
+GLIBC_2.3.4 __sprintf_chk F
+GLIBC_2.3.4 __stpcpy_chk F
+GLIBC_2.3.4 __strcat_chk F
+GLIBC_2.3.4 __strcpy_chk F
+GLIBC_2.3.4 __strncat_chk F
+GLIBC_2.3.4 __strncpy_chk F
+GLIBC_2.3.4 __vfprintf_chk F
+GLIBC_2.3.4 __vprintf_chk F
+GLIBC_2.3.4 __vsnprintf_chk F
+GLIBC_2.3.4 __vsprintf_chk F
+GLIBC_2.3.4 __xpg_strerror_r F
+GLIBC_2.3.4 getipv4sourcefilter F
+GLIBC_2.3.4 getsourcefilter F
+GLIBC_2.3.4 regexec F
+GLIBC_2.3.4 sched_getaffinity F
+GLIBC_2.3.4 sched_setaffinity F
+GLIBC_2.3.4 setipv4sourcefilter F
+GLIBC_2.3.4 setsourcefilter F
+GLIBC_2.3.4 xdr_quad_t F
+GLIBC_2.3.4 xdr_u_quad_t F
+GLIBC_2.4 GLIBC_2.4 A
+GLIBC_2.4 __confstr_chk F
+GLIBC_2.4 __fgets_chk F
+GLIBC_2.4 __fgets_unlocked_chk F
+GLIBC_2.4 __fgetws_chk F
+GLIBC_2.4 __fgetws_unlocked_chk F
+GLIBC_2.4 __fwprintf_chk F
+GLIBC_2.4 __fxstatat F
+GLIBC_2.4 __fxstatat64 F
+GLIBC_2.4 __getcwd_chk F
+GLIBC_2.4 __getdomainname_chk F
+GLIBC_2.4 __getgroups_chk F
+GLIBC_2.4 __gethostname_chk F
+GLIBC_2.4 __getlogin_r_chk F
+GLIBC_2.4 __getwd_chk F
+GLIBC_2.4 __mbsnrtowcs_chk F
+GLIBC_2.4 __mbsrtowcs_chk F
+GLIBC_2.4 __mbstowcs_chk F
+GLIBC_2.4 __pread64_chk F
+GLIBC_2.4 __pread_chk F
+GLIBC_2.4 __ptsname_r_chk F
+GLIBC_2.4 __read_chk F
+GLIBC_2.4 __readlink_chk F
+GLIBC_2.4 __realpath_chk F
+GLIBC_2.4 __recv_chk F
+GLIBC_2.4 __recvfrom_chk F
+GLIBC_2.4 __stack_chk_fail F
+GLIBC_2.4 __stpncpy_chk F
+GLIBC_2.4 __swprintf_chk F
+GLIBC_2.4 __syslog_chk F
+GLIBC_2.4 __ttyname_r_chk F
+GLIBC_2.4 __vfwprintf_chk F
+GLIBC_2.4 __vswprintf_chk F
+GLIBC_2.4 __vsyslog_chk F
+GLIBC_2.4 __vwprintf_chk F
+GLIBC_2.4 __wcpcpy_chk F
+GLIBC_2.4 __wcpncpy_chk F
+GLIBC_2.4 __wcrtomb_chk F
+GLIBC_2.4 __wcscat_chk F
+GLIBC_2.4 __wcscpy_chk F
+GLIBC_2.4 __wcsncat_chk F
+GLIBC_2.4 __wcsncpy_chk F
+GLIBC_2.4 __wcsnrtombs_chk F
+GLIBC_2.4 __wcsrtombs_chk F
+GLIBC_2.4 __wcstombs_chk F
+GLIBC_2.4 __wctomb_chk F
+GLIBC_2.4 __wmemcpy_chk F
+GLIBC_2.4 __wmemmove_chk F
+GLIBC_2.4 __wmempcpy_chk F
+GLIBC_2.4 __wmemset_chk F
+GLIBC_2.4 __wprintf_chk F
+GLIBC_2.4 __xmknodat F
+GLIBC_2.4 _sys_errlist D 0x420
+GLIBC_2.4 _sys_nerr D 0x4
+GLIBC_2.4 eaccess F
+GLIBC_2.4 faccessat F
+GLIBC_2.4 fchmodat F
+GLIBC_2.4 fchownat F
+GLIBC_2.4 fdopendir F
+GLIBC_2.4 futimesat F
+GLIBC_2.4 inotify_add_watch F
+GLIBC_2.4 inotify_init F
+GLIBC_2.4 inotify_rm_watch F
+GLIBC_2.4 linkat F
+GLIBC_2.4 mkdirat F
+GLIBC_2.4 mkfifoat F
+GLIBC_2.4 open_wmemstream F
+GLIBC_2.4 openat F
+GLIBC_2.4 openat64 F
+GLIBC_2.4 ppoll F
+GLIBC_2.4 readlinkat F
+GLIBC_2.4 renameat F
+GLIBC_2.4 symlinkat F
+GLIBC_2.4 sys_errlist D 0x420
+GLIBC_2.4 sys_nerr D 0x4
+GLIBC_2.4 unlinkat F
+GLIBC_2.4 unshare F
+GLIBC_2.5 GLIBC_2.5 A
+GLIBC_2.5 __readlinkat_chk F
+GLIBC_2.5 inet6_opt_append F
+GLIBC_2.5 inet6_opt_find F
+GLIBC_2.5 inet6_opt_finish F
+GLIBC_2.5 inet6_opt_get_val F
+GLIBC_2.5 inet6_opt_init F
+GLIBC_2.5 inet6_opt_next F
+GLIBC_2.5 inet6_opt_set_val F
+GLIBC_2.5 inet6_rth_add F
+GLIBC_2.5 inet6_rth_getaddr F
+GLIBC_2.5 inet6_rth_init F
+GLIBC_2.5 inet6_rth_reverse F
+GLIBC_2.5 inet6_rth_segments F
+GLIBC_2.5 inet6_rth_space F
+GLIBC_2.5 splice F
+GLIBC_2.5 tee F
+GLIBC_2.5 vmsplice F
+GLIBC_2.6 GLIBC_2.6 A
+GLIBC_2.6 __sched_cpucount F
+GLIBC_2.6 epoll_pwait F
+GLIBC_2.6 futimens F
+GLIBC_2.6 sched_getcpu F
+GLIBC_2.6 strerror_l F
+GLIBC_2.6 sync_file_range F
+GLIBC_2.6 utimensat F
+GLIBC_2.7 GLIBC_2.7 A
+GLIBC_2.7 __fread_chk F
+GLIBC_2.7 __fread_unlocked_chk F
+GLIBC_2.7 __isoc99_fscanf F
+GLIBC_2.7 __isoc99_fwscanf F
+GLIBC_2.7 __isoc99_scanf F
+GLIBC_2.7 __isoc99_sscanf F
+GLIBC_2.7 __isoc99_swscanf F
+GLIBC_2.7 __isoc99_vfscanf F
+GLIBC_2.7 __isoc99_vfwscanf F
+GLIBC_2.7 __isoc99_vscanf F
+GLIBC_2.7 __isoc99_vsscanf F
+GLIBC_2.7 __isoc99_vswscanf F
+GLIBC_2.7 __isoc99_vwscanf F
+GLIBC_2.7 __isoc99_wscanf F
+GLIBC_2.7 __open64_2 F
+GLIBC_2.7 __open_2 F
+GLIBC_2.7 __openat64_2 F
+GLIBC_2.7 __openat_2 F
+GLIBC_2.7 __sched_cpualloc F
+GLIBC_2.7 __sched_cpufree F
+GLIBC_2.7 eventfd F
+GLIBC_2.7 eventfd_read F
+GLIBC_2.7 eventfd_write F
+GLIBC_2.7 mkostemp F
+GLIBC_2.7 mkostemp64 F
+GLIBC_2.7 signalfd F
+GLIBC_2.8 GLIBC_2.8 A
+GLIBC_2.8 __asprintf_chk F
+GLIBC_2.8 __dprintf_chk F
+GLIBC_2.8 __obstack_printf_chk F
+GLIBC_2.8 __obstack_vprintf_chk F
+GLIBC_2.8 __vasprintf_chk F
+GLIBC_2.8 __vdprintf_chk F
+GLIBC_2.8 qsort_r F
+GLIBC_2.8 timerfd_create F
+GLIBC_2.8 timerfd_gettime F
+GLIBC_2.8 timerfd_settime F
+GLIBC_2.9 GLIBC_2.9 A
+GLIBC_2.9 dup3 F
+GLIBC_2.9 epoll_create1 F
+GLIBC_2.9 inotify_init1 F
+GLIBC_2.9 pipe2 F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/ia64/libcrypt.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/libcrypt.abilist
new file mode 100644
index 0000000000..4db2639336
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/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/ia64/libdl.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/libdl.abilist
new file mode 100644
index 0000000000..5536f6e0a9
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/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/ia64/libm.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/libm.abilist
new file mode 100644
index 0000000000..d7d80065fb
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/libm.abilist
@@ -0,0 +1,405 @@
+GLIBC_2.15 GLIBC_2.15 A
+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 __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 _LIB_VERSION D 0x4
+GLIBC_2.2 __clog10 F
+GLIBC_2.2 __clog10f F
+GLIBC_2.2 __clog10l F
+GLIBC_2.2 __finite F
+GLIBC_2.2 __finitef F
+GLIBC_2.2 __finitel F
+GLIBC_2.2 __fpclassify F
+GLIBC_2.2 __fpclassifyf F
+GLIBC_2.2 __fpclassifyl F
+GLIBC_2.2 __signbit F
+GLIBC_2.2 __signbitf F
+GLIBC_2.2 __signbitl F
+GLIBC_2.2 acos F
+GLIBC_2.2 acosf F
+GLIBC_2.2 acosh F
+GLIBC_2.2 acoshf F
+GLIBC_2.2 acoshl F
+GLIBC_2.2 acosl F
+GLIBC_2.2 asin F
+GLIBC_2.2 asinf F
+GLIBC_2.2 asinh F
+GLIBC_2.2 asinhf F
+GLIBC_2.2 asinhl F
+GLIBC_2.2 asinl F
+GLIBC_2.2 atan F
+GLIBC_2.2 atan2 F
+GLIBC_2.2 atan2f F
+GLIBC_2.2 atan2l F
+GLIBC_2.2 atanf F
+GLIBC_2.2 atanh F
+GLIBC_2.2 atanhf F
+GLIBC_2.2 atanhl F
+GLIBC_2.2 atanl F
+GLIBC_2.2 cabs F
+GLIBC_2.2 cabsf F
+GLIBC_2.2 cabsl F
+GLIBC_2.2 cacos F
+GLIBC_2.2 cacosf F
+GLIBC_2.2 cacosh F
+GLIBC_2.2 cacoshf F
+GLIBC_2.2 cacoshl F
+GLIBC_2.2 cacosl F
+GLIBC_2.2 carg F
+GLIBC_2.2 cargf F
+GLIBC_2.2 cargl F
+GLIBC_2.2 casin F
+GLIBC_2.2 casinf F
+GLIBC_2.2 casinh F
+GLIBC_2.2 casinhf F
+GLIBC_2.2 casinhl F
+GLIBC_2.2 casinl F
+GLIBC_2.2 catan F
+GLIBC_2.2 catanf F
+GLIBC_2.2 catanh F
+GLIBC_2.2 catanhf F
+GLIBC_2.2 catanhl F
+GLIBC_2.2 catanl F
+GLIBC_2.2 cbrt F
+GLIBC_2.2 cbrtf F
+GLIBC_2.2 cbrtl F
+GLIBC_2.2 ccos F
+GLIBC_2.2 ccosf F
+GLIBC_2.2 ccosh F
+GLIBC_2.2 ccoshf F
+GLIBC_2.2 ccoshl F
+GLIBC_2.2 ccosl F
+GLIBC_2.2 ceil F
+GLIBC_2.2 ceilf F
+GLIBC_2.2 ceill F
+GLIBC_2.2 cexp F
+GLIBC_2.2 cexpf F
+GLIBC_2.2 cexpl F
+GLIBC_2.2 cimag F
+GLIBC_2.2 cimagf F
+GLIBC_2.2 cimagl F
+GLIBC_2.2 clog F
+GLIBC_2.2 clog10 F
+GLIBC_2.2 clog10f F
+GLIBC_2.2 clog10l F
+GLIBC_2.2 clogf F
+GLIBC_2.2 clogl F
+GLIBC_2.2 conj F
+GLIBC_2.2 conjf F
+GLIBC_2.2 conjl F
+GLIBC_2.2 copysign F
+GLIBC_2.2 copysignf F
+GLIBC_2.2 copysignl F
+GLIBC_2.2 cos F
+GLIBC_2.2 cosf F
+GLIBC_2.2 cosh F
+GLIBC_2.2 coshf F
+GLIBC_2.2 coshl F
+GLIBC_2.2 cosl F
+GLIBC_2.2 cpow F
+GLIBC_2.2 cpowf F
+GLIBC_2.2 cpowl F
+GLIBC_2.2 cproj F
+GLIBC_2.2 cprojf F
+GLIBC_2.2 cprojl F
+GLIBC_2.2 creal F
+GLIBC_2.2 crealf F
+GLIBC_2.2 creall F
+GLIBC_2.2 csin F
+GLIBC_2.2 csinf F
+GLIBC_2.2 csinh F
+GLIBC_2.2 csinhf F
+GLIBC_2.2 csinhl F
+GLIBC_2.2 csinl F
+GLIBC_2.2 csqrt F
+GLIBC_2.2 csqrtf F
+GLIBC_2.2 csqrtl F
+GLIBC_2.2 ctan F
+GLIBC_2.2 ctanf F
+GLIBC_2.2 ctanh F
+GLIBC_2.2 ctanhf F
+GLIBC_2.2 ctanhl F
+GLIBC_2.2 ctanl F
+GLIBC_2.2 drem F
+GLIBC_2.2 dremf F
+GLIBC_2.2 dreml F
+GLIBC_2.2 erf F
+GLIBC_2.2 erfc F
+GLIBC_2.2 erfcf F
+GLIBC_2.2 erfcl F
+GLIBC_2.2 erff F
+GLIBC_2.2 erfl F
+GLIBC_2.2 exp F
+GLIBC_2.2 exp10 F
+GLIBC_2.2 exp10f F
+GLIBC_2.2 exp10l F
+GLIBC_2.2 exp2 F
+GLIBC_2.2 exp2f F
+GLIBC_2.2 exp2l F
+GLIBC_2.2 expf F
+GLIBC_2.2 expl F
+GLIBC_2.2 expm1 F
+GLIBC_2.2 expm1f F
+GLIBC_2.2 expm1l F
+GLIBC_2.2 fabs F
+GLIBC_2.2 fabsf F
+GLIBC_2.2 fabsl F
+GLIBC_2.2 fdim F
+GLIBC_2.2 fdimf F
+GLIBC_2.2 fdiml F
+GLIBC_2.2 feclearexcept F
+GLIBC_2.2 fedisableexcept F
+GLIBC_2.2 feenableexcept F
+GLIBC_2.2 fegetenv F
+GLIBC_2.2 fegetexcept F
+GLIBC_2.2 fegetexceptflag F
+GLIBC_2.2 fegetround F
+GLIBC_2.2 feholdexcept F
+GLIBC_2.2 feraiseexcept F
+GLIBC_2.2 fesetenv F
+GLIBC_2.2 fesetexceptflag F
+GLIBC_2.2 fesetround F
+GLIBC_2.2 fetestexcept F
+GLIBC_2.2 feupdateenv F
+GLIBC_2.2 finite F
+GLIBC_2.2 finitef F
+GLIBC_2.2 finitel F
+GLIBC_2.2 floor F
+GLIBC_2.2 floorf F
+GLIBC_2.2 floorl F
+GLIBC_2.2 fma F
+GLIBC_2.2 fmaf F
+GLIBC_2.2 fmal F
+GLIBC_2.2 fmax F
+GLIBC_2.2 fmaxf F
+GLIBC_2.2 fmaxl F
+GLIBC_2.2 fmin F
+GLIBC_2.2 fminf F
+GLIBC_2.2 fminl F
+GLIBC_2.2 fmod F
+GLIBC_2.2 fmodf F
+GLIBC_2.2 fmodl F
+GLIBC_2.2 frexp F
+GLIBC_2.2 frexpf F
+GLIBC_2.2 frexpl F
+GLIBC_2.2 gamma F
+GLIBC_2.2 gammaf F
+GLIBC_2.2 gammal F
+GLIBC_2.2 hypot F
+GLIBC_2.2 hypotf F
+GLIBC_2.2 hypotl F
+GLIBC_2.2 ilogb F
+GLIBC_2.2 ilogbf F
+GLIBC_2.2 ilogbl F
+GLIBC_2.2 j0 F
+GLIBC_2.2 j0f F
+GLIBC_2.2 j0l F
+GLIBC_2.2 j1 F
+GLIBC_2.2 j1f F
+GLIBC_2.2 j1l F
+GLIBC_2.2 jn F
+GLIBC_2.2 jnf F
+GLIBC_2.2 jnl F
+GLIBC_2.2 ldexp F
+GLIBC_2.2 ldexpf F
+GLIBC_2.2 ldexpl F
+GLIBC_2.2 lgamma F
+GLIBC_2.2 lgamma_r F
+GLIBC_2.2 lgammaf F
+GLIBC_2.2 lgammaf_r F
+GLIBC_2.2 lgammal F
+GLIBC_2.2 lgammal_r F
+GLIBC_2.2 llrint F
+GLIBC_2.2 llrintf F
+GLIBC_2.2 llrintl F
+GLIBC_2.2 llround F
+GLIBC_2.2 llroundf F
+GLIBC_2.2 llroundl F
+GLIBC_2.2 log F
+GLIBC_2.2 log10 F
+GLIBC_2.2 log10f F
+GLIBC_2.2 log10l F
+GLIBC_2.2 log1p F
+GLIBC_2.2 log1pf F
+GLIBC_2.2 log1pl F
+GLIBC_2.2 log2 F
+GLIBC_2.2 log2f F
+GLIBC_2.2 log2l F
+GLIBC_2.2 logb F
+GLIBC_2.2 logbf F
+GLIBC_2.2 logbl F
+GLIBC_2.2 logf F
+GLIBC_2.2 logl F
+GLIBC_2.2 lrint F
+GLIBC_2.2 lrintf F
+GLIBC_2.2 lrintl F
+GLIBC_2.2 lround F
+GLIBC_2.2 lroundf F
+GLIBC_2.2 lroundl F
+GLIBC_2.2 matherr F
+GLIBC_2.2 modf F
+GLIBC_2.2 modff F
+GLIBC_2.2 modfl F
+GLIBC_2.2 nan F
+GLIBC_2.2 nanf F
+GLIBC_2.2 nanl F
+GLIBC_2.2 nearbyint F
+GLIBC_2.2 nearbyintf F
+GLIBC_2.2 nearbyintl F
+GLIBC_2.2 nextafter F
+GLIBC_2.2 nextafterf F
+GLIBC_2.2 nextafterl F
+GLIBC_2.2 nexttoward F
+GLIBC_2.2 nexttowardf F
+GLIBC_2.2 nexttowardl F
+GLIBC_2.2 pow F
+GLIBC_2.2 pow10 F
+GLIBC_2.2 pow10f F
+GLIBC_2.2 pow10l F
+GLIBC_2.2 powf F
+GLIBC_2.2 powl F
+GLIBC_2.2 remainder F
+GLIBC_2.2 remainderf F
+GLIBC_2.2 remainderl F
+GLIBC_2.2 remquo F
+GLIBC_2.2 remquof F
+GLIBC_2.2 remquol F
+GLIBC_2.2 rint F
+GLIBC_2.2 rintf F
+GLIBC_2.2 rintl F
+GLIBC_2.2 round F
+GLIBC_2.2 roundf F
+GLIBC_2.2 roundl F
+GLIBC_2.2 scalb F
+GLIBC_2.2 scalbf F
+GLIBC_2.2 scalbl F
+GLIBC_2.2 scalbln F
+GLIBC_2.2 scalblnf F
+GLIBC_2.2 scalblnl F
+GLIBC_2.2 scalbn F
+GLIBC_2.2 scalbnf F
+GLIBC_2.2 scalbnl F
+GLIBC_2.2 signgam D 0x4
+GLIBC_2.2 significand F
+GLIBC_2.2 significandf F
+GLIBC_2.2 significandl F
+GLIBC_2.2 sin F
+GLIBC_2.2 sincos F
+GLIBC_2.2 sincosf F
+GLIBC_2.2 sincosl F
+GLIBC_2.2 sinf F
+GLIBC_2.2 sinh F
+GLIBC_2.2 sinhf F
+GLIBC_2.2 sinhl F
+GLIBC_2.2 sinl F
+GLIBC_2.2 sqrt F
+GLIBC_2.2 sqrtf F
+GLIBC_2.2 sqrtl F
+GLIBC_2.2 tan F
+GLIBC_2.2 tanf F
+GLIBC_2.2 tanh F
+GLIBC_2.2 tanhf F
+GLIBC_2.2 tanhl F
+GLIBC_2.2 tanl F
+GLIBC_2.2 tgamma F
+GLIBC_2.2 tgammaf F
+GLIBC_2.2 tgammal F
+GLIBC_2.2 trunc F
+GLIBC_2.2 truncf F
+GLIBC_2.2 truncl F
+GLIBC_2.2 y0 F
+GLIBC_2.2 y0f F
+GLIBC_2.2 y0l F
+GLIBC_2.2 y1 F
+GLIBC_2.2 y1f F
+GLIBC_2.2 y1l F
+GLIBC_2.2 yn F
+GLIBC_2.2 ynf F
+GLIBC_2.2 ynl F
+GLIBC_2.2.3 GLIBC_2.2.3 A
+GLIBC_2.2.3 matherrf F
+GLIBC_2.2.3 matherrl 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 __iscanonicall F
+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
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/ia64/libnsl.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/libnsl.abilist
new file mode 100644
index 0000000000..a23db2aeaf
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/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/ia64/libpthread.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
new file mode 100644
index 0000000000..d4c8dedd6c
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
@@ -0,0 +1,247 @@
+GLIBC_2.11 GLIBC_2.11 A
+GLIBC_2.11 pthread_sigqueue F
+GLIBC_2.12 GLIBC_2.12 A
+GLIBC_2.12 pthread_getname_np F
+GLIBC_2.12 pthread_mutex_consistent F
+GLIBC_2.12 pthread_mutexattr_getrobust F
+GLIBC_2.12 pthread_mutexattr_setrobust F
+GLIBC_2.12 pthread_setname_np F
+GLIBC_2.18 GLIBC_2.18 A
+GLIBC_2.18 pthread_getattr_default_np F
+GLIBC_2.18 pthread_setattr_default_np F
+GLIBC_2.2 GLIBC_2.2 A
+GLIBC_2.2 _IO_flockfile F
+GLIBC_2.2 _IO_ftrylockfile F
+GLIBC_2.2 _IO_funlockfile F
+GLIBC_2.2 __close F
+GLIBC_2.2 __connect F
+GLIBC_2.2 __errno_location F
+GLIBC_2.2 __fcntl F
+GLIBC_2.2 __fork F
+GLIBC_2.2 __h_errno_location F
+GLIBC_2.2 __libc_allocate_rtsig F
+GLIBC_2.2 __libc_current_sigrtmax F
+GLIBC_2.2 __libc_current_sigrtmin F
+GLIBC_2.2 __lseek F
+GLIBC_2.2 __open F
+GLIBC_2.2 __open64 F
+GLIBC_2.2 __pread64 F
+GLIBC_2.2 __pthread_getspecific F
+GLIBC_2.2 __pthread_key_create F
+GLIBC_2.2 __pthread_mutex_destroy F
+GLIBC_2.2 __pthread_mutex_init F
+GLIBC_2.2 __pthread_mutex_lock F
+GLIBC_2.2 __pthread_mutex_trylock F
+GLIBC_2.2 __pthread_mutex_unlock F
+GLIBC_2.2 __pthread_mutexattr_destroy F
+GLIBC_2.2 __pthread_mutexattr_init F
+GLIBC_2.2 __pthread_mutexattr_settype F
+GLIBC_2.2 __pthread_once F
+GLIBC_2.2 __pthread_rwlock_destroy F
+GLIBC_2.2 __pthread_rwlock_init F
+GLIBC_2.2 __pthread_rwlock_rdlock F
+GLIBC_2.2 __pthread_rwlock_tryrdlock F
+GLIBC_2.2 __pthread_rwlock_trywrlock F
+GLIBC_2.2 __pthread_rwlock_unlock F
+GLIBC_2.2 __pthread_rwlock_wrlock F
+GLIBC_2.2 __pthread_setspecific F
+GLIBC_2.2 __pwrite64 F
+GLIBC_2.2 __read F
+GLIBC_2.2 __res_state F
+GLIBC_2.2 __send F
+GLIBC_2.2 __sigaction F
+GLIBC_2.2 __vfork F
+GLIBC_2.2 __wait F
+GLIBC_2.2 __write F
+GLIBC_2.2 _pthread_cleanup_pop F
+GLIBC_2.2 _pthread_cleanup_pop_restore F
+GLIBC_2.2 _pthread_cleanup_push F
+GLIBC_2.2 _pthread_cleanup_push_defer F
+GLIBC_2.2 accept F
+GLIBC_2.2 close F
+GLIBC_2.2 connect F
+GLIBC_2.2 fcntl F
+GLIBC_2.2 flockfile F
+GLIBC_2.2 fork F
+GLIBC_2.2 fsync F
+GLIBC_2.2 ftrylockfile F
+GLIBC_2.2 funlockfile F
+GLIBC_2.2 longjmp F
+GLIBC_2.2 lseek F
+GLIBC_2.2 lseek64 F
+GLIBC_2.2 msync F
+GLIBC_2.2 nanosleep F
+GLIBC_2.2 open F
+GLIBC_2.2 open64 F
+GLIBC_2.2 pause F
+GLIBC_2.2 pread F
+GLIBC_2.2 pread64 F
+GLIBC_2.2 pthread_atfork F
+GLIBC_2.2 pthread_attr_destroy F
+GLIBC_2.2 pthread_attr_getdetachstate F
+GLIBC_2.2 pthread_attr_getguardsize F
+GLIBC_2.2 pthread_attr_getinheritsched F
+GLIBC_2.2 pthread_attr_getschedparam F
+GLIBC_2.2 pthread_attr_getschedpolicy F
+GLIBC_2.2 pthread_attr_getscope F
+GLIBC_2.2 pthread_attr_getstack F
+GLIBC_2.2 pthread_attr_getstackaddr F
+GLIBC_2.2 pthread_attr_getstacksize F
+GLIBC_2.2 pthread_attr_init F
+GLIBC_2.2 pthread_attr_setdetachstate F
+GLIBC_2.2 pthread_attr_setguardsize F
+GLIBC_2.2 pthread_attr_setinheritsched F
+GLIBC_2.2 pthread_attr_setschedparam F
+GLIBC_2.2 pthread_attr_setschedpolicy F
+GLIBC_2.2 pthread_attr_setscope F
+GLIBC_2.2 pthread_attr_setstack F
+GLIBC_2.2 pthread_attr_setstackaddr F
+GLIBC_2.2 pthread_attr_setstacksize F
+GLIBC_2.2 pthread_barrier_destroy F
+GLIBC_2.2 pthread_barrier_init F
+GLIBC_2.2 pthread_barrier_wait F
+GLIBC_2.2 pthread_barrierattr_destroy F
+GLIBC_2.2 pthread_barrierattr_init F
+GLIBC_2.2 pthread_barrierattr_setpshared F
+GLIBC_2.2 pthread_cancel F
+GLIBC_2.2 pthread_cond_broadcast F
+GLIBC_2.2 pthread_cond_destroy F
+GLIBC_2.2 pthread_cond_init F
+GLIBC_2.2 pthread_cond_signal F
+GLIBC_2.2 pthread_cond_timedwait F
+GLIBC_2.2 pthread_cond_wait F
+GLIBC_2.2 pthread_condattr_destroy F
+GLIBC_2.2 pthread_condattr_getpshared F
+GLIBC_2.2 pthread_condattr_init F
+GLIBC_2.2 pthread_condattr_setpshared F
+GLIBC_2.2 pthread_create F
+GLIBC_2.2 pthread_detach F
+GLIBC_2.2 pthread_equal F
+GLIBC_2.2 pthread_exit F
+GLIBC_2.2 pthread_getconcurrency F
+GLIBC_2.2 pthread_getcpuclockid F
+GLIBC_2.2 pthread_getschedparam F
+GLIBC_2.2 pthread_getspecific F
+GLIBC_2.2 pthread_join F
+GLIBC_2.2 pthread_key_create F
+GLIBC_2.2 pthread_key_delete F
+GLIBC_2.2 pthread_kill F
+GLIBC_2.2 pthread_kill_other_threads_np F
+GLIBC_2.2 pthread_mutex_destroy F
+GLIBC_2.2 pthread_mutex_init F
+GLIBC_2.2 pthread_mutex_lock F
+GLIBC_2.2 pthread_mutex_timedlock F
+GLIBC_2.2 pthread_mutex_trylock F
+GLIBC_2.2 pthread_mutex_unlock F
+GLIBC_2.2 pthread_mutexattr_destroy F
+GLIBC_2.2 pthread_mutexattr_getkind_np F
+GLIBC_2.2 pthread_mutexattr_getpshared F
+GLIBC_2.2 pthread_mutexattr_gettype F
+GLIBC_2.2 pthread_mutexattr_init F
+GLIBC_2.2 pthread_mutexattr_setkind_np F
+GLIBC_2.2 pthread_mutexattr_setpshared F
+GLIBC_2.2 pthread_mutexattr_settype F
+GLIBC_2.2 pthread_once F
+GLIBC_2.2 pthread_rwlock_destroy F
+GLIBC_2.2 pthread_rwlock_init F
+GLIBC_2.2 pthread_rwlock_rdlock F
+GLIBC_2.2 pthread_rwlock_timedrdlock F
+GLIBC_2.2 pthread_rwlock_timedwrlock F
+GLIBC_2.2 pthread_rwlock_tryrdlock F
+GLIBC_2.2 pthread_rwlock_trywrlock F
+GLIBC_2.2 pthread_rwlock_unlock F
+GLIBC_2.2 pthread_rwlock_wrlock F
+GLIBC_2.2 pthread_rwlockattr_destroy F
+GLIBC_2.2 pthread_rwlockattr_getkind_np F
+GLIBC_2.2 pthread_rwlockattr_getpshared F
+GLIBC_2.2 pthread_rwlockattr_init F
+GLIBC_2.2 pthread_rwlockattr_setkind_np F
+GLIBC_2.2 pthread_rwlockattr_setpshared F
+GLIBC_2.2 pthread_self F
+GLIBC_2.2 pthread_setcancelstate F
+GLIBC_2.2 pthread_setcanceltype F
+GLIBC_2.2 pthread_setconcurrency F
+GLIBC_2.2 pthread_setschedparam F
+GLIBC_2.2 pthread_setspecific F
+GLIBC_2.2 pthread_sigmask F
+GLIBC_2.2 pthread_spin_destroy F
+GLIBC_2.2 pthread_spin_init F
+GLIBC_2.2 pthread_spin_lock F
+GLIBC_2.2 pthread_spin_trylock F
+GLIBC_2.2 pthread_spin_unlock F
+GLIBC_2.2 pthread_testcancel F
+GLIBC_2.2 pthread_yield F
+GLIBC_2.2 pwrite F
+GLIBC_2.2 pwrite64 F
+GLIBC_2.2 raise F
+GLIBC_2.2 read F
+GLIBC_2.2 recv F
+GLIBC_2.2 recvfrom F
+GLIBC_2.2 recvmsg F
+GLIBC_2.2 sem_close F
+GLIBC_2.2 sem_destroy F
+GLIBC_2.2 sem_getvalue F
+GLIBC_2.2 sem_init F
+GLIBC_2.2 sem_open F
+GLIBC_2.2 sem_post F
+GLIBC_2.2 sem_timedwait F
+GLIBC_2.2 sem_trywait F
+GLIBC_2.2 sem_unlink F
+GLIBC_2.2 sem_wait F
+GLIBC_2.2 send F
+GLIBC_2.2 sendmsg F
+GLIBC_2.2 sendto F
+GLIBC_2.2 sigaction F
+GLIBC_2.2 siglongjmp F
+GLIBC_2.2 sigwait F
+GLIBC_2.2 system F
+GLIBC_2.2 tcdrain F
+GLIBC_2.2 vfork F
+GLIBC_2.2 wait F
+GLIBC_2.2 waitpid F
+GLIBC_2.2 write F
+GLIBC_2.2.3 GLIBC_2.2.3 A
+GLIBC_2.2.3 pthread_getattr_np F
+GLIBC_2.2.6 GLIBC_2.2.6 A
+GLIBC_2.2.6 __nanosleep F
+GLIBC_2.3.2 GLIBC_2.3.2 A
+GLIBC_2.3.2 pthread_cond_broadcast F
+GLIBC_2.3.2 pthread_cond_destroy F
+GLIBC_2.3.2 pthread_cond_init F
+GLIBC_2.3.2 pthread_cond_signal F
+GLIBC_2.3.2 pthread_cond_timedwait F
+GLIBC_2.3.2 pthread_cond_wait F
+GLIBC_2.3.3 GLIBC_2.3.3 A
+GLIBC_2.3.3 __pthread_cleanup_routine F
+GLIBC_2.3.3 __pthread_register_cancel F
+GLIBC_2.3.3 __pthread_register_cancel_defer F
+GLIBC_2.3.3 __pthread_unregister_cancel F
+GLIBC_2.3.3 __pthread_unregister_cancel_restore F
+GLIBC_2.3.3 __pthread_unwind_next F
+GLIBC_2.3.3 pthread_attr_getaffinity_np F
+GLIBC_2.3.3 pthread_attr_setaffinity_np F
+GLIBC_2.3.3 pthread_attr_setstack F
+GLIBC_2.3.3 pthread_attr_setstacksize 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/ia64/libresolv.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/libresolv.abilist
new file mode 100644
index 0000000000..2d92a35e81
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/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 0xa8
+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 0x450
+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 0x80
+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/ia64/librt.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/librt.abilist
new file mode 100644
index 0000000000..aa32ef3be0
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/librt.abilist
@@ -0,0 +1,53 @@
+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.3 GLIBC_2.3.3 A
+GLIBC_2.3.3 timer_create F
+GLIBC_2.3.3 timer_delete F
+GLIBC_2.3.3 timer_getoverrun F
+GLIBC_2.3.3 timer_gettime F
+GLIBC_2.3.3 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/ia64/libthread_db.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/libthread_db.abilist
new file mode 100644
index 0000000000..a8a8c2c68d
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/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/ia64/libutil.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/libutil.abilist
new file mode 100644
index 0000000000..89c67755c4
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/libutil.abilist
@@ -0,0 +1,7 @@
+GLIBC_2.0 GLIBC_2.0 A
+GLIBC_2.0 forkpty F
+GLIBC_2.0 login F
+GLIBC_2.0 login_tty F
+GLIBC_2.0 logout F
+GLIBC_2.0 logwtmp F
+GLIBC_2.0 openpty F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/ia64/localplt.data b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/localplt.data
new file mode 100644
index 0000000000..fd2b98c8b6
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/localplt.data
@@ -0,0 +1,17 @@
+libc.so: calloc
+libc.so: free
+libc.so: malloc
+libc.so: memalign
+libc.so: realloc
+libm.so: matherr
+libm.so: matherrf
+libm.so: matherrl
+# The main malloc is interposed into the dynamic linker, for
+# allocations after the initial link (when dlopen is used).
+ld.so: malloc
+ld.so: calloc
+ld.so: realloc
+ld.so: free
+# The TLS-enabled version of these functions is interposed from libc.so.
+ld.so: _dl_signal_error
+ld.so: _dl_catch_error
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/ia64/makecontext.c b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/makecontext.c
new file mode 100644
index 0000000000..299f9a85ae
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/makecontext.c
@@ -0,0 +1,88 @@
+/* Copyright (C) 2001-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by David Mosberger-Tang <davidm@hpl.hp.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>
+#include <sys/rse.h>
+#include <link.h>
+#include <dl-fptr.h>
+
+
+#define PUSH(val) \
+do { \
+ if (ia64_rse_is_rnat_slot (rbs)) \
+ *rbs++ = 0; \
+ *rbs++ = (val); \
+} while (0)
+
+
+/* This implementation can handle an ARGC value of at most 8 and
+ values can be passed only in integer registers (r32-r39). */
+
+void
+__makecontext (ucontext_t *ucp, void (*func) (void), int argc, ...)
+{
+ struct sigcontext *sc = &ucp->uc_mcontext;
+ extern void __start_context (ucontext_t *link, long gp, ...);
+ unsigned long stack_start, stack_end;
+ va_list ap;
+ unsigned long *rbs;
+ int i;
+
+ stack_start = (long) sc->sc_stack.ss_sp;
+ stack_end = (long) sc->sc_stack.ss_sp + sc->sc_stack.ss_size;
+
+ stack_start = (stack_start + 7) & -8;
+ stack_end = stack_end & -16;
+
+ if (argc > 8)
+ {
+ fprintf (stderr, _("\
+makecontext: does not know how to handle more than 8 arguments\n"));
+ exit (-1);
+ }
+
+ /* set the entry point and global pointer: */
+ sc->sc_br[0] = ELF_PTR_TO_FDESC (&__start_context)->ip;
+ sc->sc_br[1] = ELF_PTR_TO_FDESC (func)->ip;
+ sc->sc_gr[1] = ELF_PTR_TO_FDESC (func)->gp;
+
+ /* set up the call frame: */
+ sc->sc_ar_pfs = ((sc->sc_ar_pfs & ~0x3fffffffffUL)
+ | (argc + 2) | ((argc + 2) << 7));
+ rbs = (unsigned long *) stack_start;
+ PUSH((long) ucp->uc_link);
+ PUSH(ELF_PTR_TO_FDESC (&__start_context)->gp);
+ va_start (ap, argc);
+ for (i = 0; i < argc; ++i)
+ PUSH(va_arg (ap, long));
+ va_end (ap);
+
+ /* set the memory and register stack pointers: */
+ sc->sc_ar_bsp = (long) rbs;
+ sc->sc_gr[12] = stack_end - 16;
+
+ /* clear the NaT bits for r1 and r12: */
+ sc->sc_nat &= ~((1 << 1) | (1 << 12));
+ sc->sc_ar_rnat = 0;
+}
+
+weak_alias (__makecontext, makecontext)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/ia64/pipe.S b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/pipe.S
new file mode 100644
index 0000000000..1fd75da8c6
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/pipe.S
@@ -0,0 +1,37 @@
+/* Copyright (C) 1999-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by David Mosberger <davidm@hpl.hp.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/>. */
+
+/* __pipe is a special syscall since it returns two values. */
+
+#include <sysdep.h>
+
+ENTRY(__pipe)
+ .regstk 1,0,0,0
+ DO_CALL (SYS_ify (pipe))
+ cmp.ne p6,p0=-1,r10
+ ;;
+(p6) st4 [in0]=r8,4
+(p6) mov ret0=0
+ ;;
+(p6) st4 [in0]=r9
+(p6) ret
+ br.cond.spnt.few __syscall_error
+PSEUDO_END(__pipe)
+
+libc_hidden_def (__pipe)
+weak_alias (__pipe, pipe)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/ia64/profil-counter.h b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/profil-counter.h
new file mode 100644
index 0000000000..546079d9fc
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/profil-counter.h
@@ -0,0 +1,31 @@
+/* Machine-dependent SIGPROF signal handler. IA-64 version.
+ Copyright (C) 1996-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+/* In many Unix systems signal handlers are called like this
+ and the interrupted PC is easily findable in the `struct sigcontext'. */
+
+static void
+__profil_counter (int signr, siginfo_t *si, struct sigcontext *scp)
+{
+ unsigned long ip = scp->sc_ip & ~0X3ULL, slot = scp->sc_ip & 0x3ull;
+
+ /* Note: Linux/ia64 encodes the slot number in bits 0 and 1. We
+ want to multiply the slot number by four so we can use bins of
+ width 4 to get accurate instruction-level profiling. */
+ profil_count ((void *) (ip + 4*slot));
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/ia64/pt-vfork.S b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/pt-vfork.S
new file mode 100644
index 0000000000..8e2eccdca1
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/pt-vfork.S
@@ -0,0 +1,48 @@
+/* vfork ABI-compatibility entry points for libpthread. IA64 version.
+ Copyright (C) 2014-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#include <shlib-compat.h>
+
+/* libpthread used to have its own vfork implementation that differed
+ from libc's only in having a pointless micro-optimization. There
+ is no longer any use to having a separate copy in libpthread, but
+ the historical ABI requires it. For static linking, there is no
+ need to provide anything here--the libc version will be linked in.
+ For shared library ABI compatibility, there must be __vfork and
+ vfork symbols in libpthread.so. */
+
+#if (SHLIB_COMPAT (libpthread, GLIBC_2_0, GLIBC_2_20) \
+ || SHLIB_COMPAT (libpthread, GLIBC_2_1_2, GLIBC_2_20))
+
+LOCAL_LEAF (vfork_compat)
+ br __libc_vfork
+ ;;
+END (vfork_compat)
+
+#endif
+
+#if SHLIB_COMPAT (libpthread, GLIBC_2_0, GLIBC_2_20)
+weak_alias (vfork_compat, vfork)
+compat_symbol (libpthread, vfork_compat, vfork, GLIBC_2_0);
+#endif
+
+#if SHLIB_COMPAT (libpthread, GLIBC_2_1_2, GLIBC_2_20)
+strong_alias (vfork_compat, __vfork_compat)
+compat_symbol (libpthread, __vfork_compat, __vfork, GLIBC_2_1_2);
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/ia64/readelflib.c b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/readelflib.c
new file mode 100644
index 0000000000..7ef74c0fc3
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/readelflib.c
@@ -0,0 +1,59 @@
+/* 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/>. */
+
+
+int process_elf32_file (const char *file_name, const char *lib, int *flag,
+ unsigned int *osversion, char **soname,
+ void *file_contents, size_t file_length);
+int process_elf64_file (const char *file_name, const char *lib, int *flag,
+ unsigned int *osversion, char **soname,
+ void *file_contents, size_t file_length);
+
+/* Returns 0 if everything is ok, != 0 in case of error. */
+int
+process_elf_file (const char *file_name, const char *lib, int *flag,
+ unsigned int *osversion, char **soname,
+ void *file_contents, size_t file_length)
+{
+ ElfW(Ehdr) *elf_header = (ElfW(Ehdr) *) file_contents;
+ int ret;
+
+ if (elf_header->e_ident [EI_CLASS] == ELFCLASS32)
+ return process_elf32_file (file_name, lib, flag, osversion, soname,
+ file_contents, file_length);
+ else
+ {
+ ret = process_elf64_file (file_name, lib, flag, osversion, soname,
+ file_contents, file_length);
+ /* Intel 64bit libraries are always libc.so.6+. */
+ if (!ret)
+ *flag = FLAG_IA64_LIB64|FLAG_ELF_LIBC6;
+ return ret;
+ }
+}
+
+#undef __ELF_NATIVE_CLASS
+#undef process_elf_file
+#define process_elf_file process_elf32_file
+#define __ELF_NATIVE_CLASS 32
+#include "elf/readelflib.c"
+
+#undef __ELF_NATIVE_CLASS
+#undef process_elf_file
+#define process_elf_file process_elf64_file
+#define __ELF_NATIVE_CLASS 64
+#include "elf/readelflib.c"
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/ia64/register-dump.h b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/register-dump.h
new file mode 100644
index 0000000000..4d0886c92a
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/register-dump.h
@@ -0,0 +1,181 @@
+/* Dump registers.
+ 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 <string.h>
+#include <sys/uio.h>
+#include <_itoa.h>
+
+/* We will print the register dump in this format:
+
+ GP: XXXXXXXXXXXXXXXX R2: XXXXXXXXXXXXXXXX R3: XXXXXXXXXXXXXXXX
+ R8: XXXXXXXXXXXXXXXX R9: XXXXXXXXXXXXXXXX R10: XXXXXXXXXXXXXXXX
+ R11: XXXXXXXXXXXXXXXX SP: XXXXXXXXXXXXXXXX TP: XXXXXXXXXXXXXXXX
+ R14: XXXXXXXXXXXXXXXX R15: XXXXXXXXXXXXXXXX R16: XXXXXXXXXXXXXXXX
+ R17: XXXXXXXXXXXXXXXX R18: XXXXXXXXXXXXXXXX R19: XXXXXXXXXXXXXXXX
+ R20: XXXXXXXXXXXXXXXX R21: XXXXXXXXXXXXXXXX R22: XXXXXXXXXXXXXXXX
+ R23: XXXXXXXXXXXXXXXX R24: XXXXXXXXXXXXXXXX R25: XXXXXXXXXXXXXXXX
+ R26: XXXXXXXXXXXXXXXX R27: XXXXXXXXXXXXXXXX R28: XXXXXXXXXXXXXXXX
+ R29: XXXXXXXXXXXXXXXX R30: XXXXXXXXXXXXXXXX R31: XXXXXXXXXXXXXXXX
+
+ RP: XXXXXXXXXXXXXXXX B6: XXXXXXXXXXXXXXXX B7: XXXXXXXXXXXXXXXX
+
+ IP: XXXXXXXXXXXXXXXX RSC: XXXXXXXXXXXXXXXX PR: XXXXXXXXXXXXXXXX
+ PFS: XXXXXXXXXXXXXXXX UNAT: XXXXXXXXXXXXXXXX CFM: XXXXXXXXXXXXXXXX
+ CCV: XXXXXXXXXXXXXXXX FPSR: XXXXXXXXXXXXXXXX
+
+ F32: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX F33: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+ F34: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX F35: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+...
+ F124: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX F125: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+ F126: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX F127: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+ */
+
+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
+regvalue (unsigned long int *value, char letter, int regno, char *buf)
+{
+ int n = regno >= 100 ? 3 : regno >= 10 ? 2 : 1;
+ buf[0] = ' ';
+ buf[1] = letter;
+ _itoa_word (regno, buf + 2 + n, 10, 0);
+ buf[2 + n] = ':';
+ for (++n; n <= 4; ++n)
+ buf[2 + n] = ' ';
+ hexvalue (value[0], buf + 7, 16);
+ if (letter == 'F')
+ {
+ hexvalue (value[1], buf + 7 + 16, 16);
+ buf[7 + 32] = '\n';
+ }
+ else
+ buf[7 + 16] = '\n';
+}
+
+static void
+register_dump (int fd, struct sigcontext *ctx)
+{
+ char gpregs[32 - 5][8 + 16];
+ char fpregs[128 - 32][8 + 32];
+ char bpregs[3][8 + 16];
+ char spregs[8][16];
+ struct iovec iov[146];
+ size_t nr = 0;
+ int i;
+
+#define ADD_STRING(str) \
+ do \
+ { \
+ iov[nr].iov_base = (char *) str; \
+ iov[nr].iov_len = strlen (str); \
+ ++nr; \
+ } \
+ while (0)
+#define ADD_MEM(str, len) \
+ do \
+ { \
+ iov[nr].iov_base = str; \
+ iov[nr].iov_len = len; \
+ ++nr; \
+ } \
+ while (0)
+
+ /* Generate strings of register contents. */
+ for (i = 1; i < 4; ++i)
+ {
+ regvalue (&ctx->sc_gr[i], 'R', i, gpregs[i - 1]);
+ if (ctx->sc_nat & (1L << i))
+ memcpy (gpregs[i - 1] + 7, "NaT ", 16);
+ }
+ for (i = 8; i < 32; ++i)
+ {
+ regvalue (&ctx->sc_gr[i], 'R', i, gpregs[i - 5]);
+ if (ctx->sc_nat & (1L << i))
+ memcpy (gpregs[i - 1] + 7, "NaT ", 16);
+ }
+ memcpy (gpregs[0] + 1, "GP:", 3);
+ memcpy (gpregs[7] + 1, "SP: ", 4);
+ memcpy (gpregs[8] + 1, "TP: ", 4);
+
+ regvalue (&ctx->sc_br[0], 'B', 0, bpregs[0]);
+ regvalue (&ctx->sc_br[6], 'B', 6, bpregs[1]);
+ regvalue (&ctx->sc_br[7], 'B', 7, bpregs[2]);
+ memcpy (bpregs[0] + 1, "RP:", 3);
+
+ if (ctx->sc_flags & IA64_SC_FLAG_FPH_VALID)
+ for (i = 32; i < 128; ++i)
+ regvalue (&ctx->sc_fr[i].u.bits[0], 'F', i, fpregs[i - 32]);
+
+ hexvalue (ctx->sc_ip, spregs[0], sizeof (spregs[0]));
+ hexvalue (ctx->sc_ar_rsc, spregs[1], sizeof (spregs[1]));
+ hexvalue (ctx->sc_pr, spregs[2], sizeof (spregs[2]));
+ hexvalue (ctx->sc_ar_pfs, spregs[3], sizeof (spregs[3]));
+ hexvalue (ctx->sc_ar_unat, spregs[4], sizeof (spregs[4]));
+ hexvalue (ctx->sc_cfm, spregs[5], sizeof (spregs[5]));
+ hexvalue (ctx->sc_ar_ccv, spregs[6], sizeof (spregs[6]));
+ hexvalue (ctx->sc_ar_fpsr, spregs[7], sizeof (spregs[7]));
+
+ /* Generate the output. */
+ ADD_STRING ("Register dump:\n\n");
+
+ for (i = 0; i < 32 - 5; ++i)
+ ADD_MEM (gpregs[i], sizeof (gpregs[0]) - 1 + ((i % 3) == 2));
+ ADD_STRING ("\n");
+
+ for (i = 0; i < 3; ++i)
+ ADD_MEM (bpregs[i], sizeof (bpregs[0]) - 1);
+
+ ADD_STRING ("\n\n IP: ");
+ ADD_MEM (spregs[0], sizeof (spregs[0]));
+ ADD_STRING (" RSC: ");
+ ADD_MEM (spregs[1], sizeof (spregs[0]));
+ ADD_STRING (" PR: ");
+ ADD_MEM (spregs[2], sizeof (spregs[0]));
+ ADD_STRING ("\n PFS: ");
+ ADD_MEM (spregs[3], sizeof (spregs[0]));
+ ADD_STRING (" UNAT: ");
+ ADD_MEM (spregs[4], sizeof (spregs[0]));
+ ADD_STRING (" CFM: ");
+ ADD_MEM (spregs[5], sizeof (spregs[0]));
+ ADD_STRING ("\n CCV: ");
+ ADD_MEM (spregs[6], sizeof (spregs[0]));
+ ADD_STRING (" FPSR: ");
+ ADD_MEM (spregs[7], sizeof (spregs[0]));
+ ADD_STRING ("\n");
+
+ if (ctx->sc_flags & IA64_SC_FLAG_FPH_VALID)
+ {
+ ADD_STRING ("\n");
+
+ for (i = 0; i < 128 - 32; ++i)
+ ADD_MEM (fpregs[i], sizeof (fpregs[0]) - 1 + (i & 1));
+ }
+
+ /* Write the stuff out. */
+ writev (fd, iov, nr);
+}
+
+
+#define REGISTER_DUMP register_dump (fd, ctx)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/ia64/rt-sysdep.S b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/rt-sysdep.S
new file mode 100644
index 0000000000..f966bf1e59
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/rt-sysdep.S
@@ -0,0 +1 @@
+#include <sysdep.S>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/ia64/setcontext.S b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/setcontext.S
new file mode 100644
index 0000000000..15a689e1e7
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/setcontext.S
@@ -0,0 +1,152 @@
+/* Copyright (C) 2001-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by David Mosberger-Tang <davidm@hpl.hp.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 in intended to be used for *synchronous* context
+ switches only. Therefore, it does not have to restore anything
+ other than the PRESERVED state. */
+
+ENTRY(__setcontext)
+ .prologue
+ .body
+ alloc r11 = ar.pfs, 1, 0, 4, 0
+
+ // sigprocmask (SIG_SETMASK, &sc->sc_mask, NULL):
+
+ mov r3 = SC_MASK
+ mov out0 = SIG_SETMASK
+ ;;
+ add out1 = r3, in0
+ mov out2 = 0
+ mov out3 = 8 // sizeof kernel sigset_t
+
+ invala
+ DO_CALL(__NR_rt_sigprocmask)
+ add r2 = SC_NAT, r32
+
+ add r3 = SC_RNAT, r32 // r3 <- &sc_ar_rnat
+ add rPOS = SC_GR, r32 // rPOS <- &sc_gr[0]
+ ;;
+ ld8 rNAT = [r2], (SC_BSP-SC_NAT)
+ extr.u rPOS = rPOS, 3, 6 // get NaT bit number for r0
+ ;;
+ ld8 rBSP = [r2], (SC_UNAT-SC_BSP)
+ ld8 rRNAT = [r3], (SC_FPSR-SC_RNAT)
+ /*
+ * Rotate NaT bits by rPOS positions to the left:
+ */
+ sub rCPOS = 64, rPOS
+ ;;
+ ld8 rUNAT = [r2], (SC_PFS-SC_UNAT)
+ ld8 rFPSR = [r3], (SC_LC-SC_FPSR)
+ shl rTMP = rNAT, rPOS
+ ;;
+ ld8 rPFS = [r2], (SC_PR-SC_PFS)
+ ld8 rLC = [r3], (SC_BR+0*8-SC_LC)
+ shr.u rNAT = rNAT, rCPOS
+ ;;
+ ld8 rPR = [r2], (SC_BR+1*8-SC_PR)
+ ld8 rB0 = [r3], 16
+ or rNAT = rNAT, rTMP
+ ;;
+ ld8 rB1 = [r2], 16
+ ld8 rB2 = [r3], 16
+ ;;
+ mov.m ar.unat = rNAT
+ mov.m rRSC = ar.rsc
+ ;;
+ ld8 rB3 = [r2], 16
+ ld8 rB4 = [r3], (SC_GR+1*8-(SC_BR+4*8))
+ ;;
+ ld8 rB5 = [r2], (SC_GR+4*8-(SC_BR+5*8))
+ ld8.fill r1 = [r3], (5*8 - 1*8)
+ ;;
+ ld8.fill r4 = [r2], 16
+ ld8.fill r5 = [r3], 16
+ mov b0 = rB0
+ ;;
+ ld8.fill r6 = [r2], 48
+ ld8.fill r7 = [r3], (SC_FR+2*16-(SC_GR+7*8))
+ ;;
+ ld8.fill sp = [r2], (SC_FR+3*16-(SC_GR+12*8))
+ mov.m ar.fpsr = rFPSR
+ mov.i ar.pfs = rPFS
+ ;;
+ ldf.fill f3 = [r2], 16
+ ldf.fill f2 = [r3], 48
+ mov b1 = rB1
+ ;;
+ ldf.fill f4 = [r2], (16*16-4*16)
+ ldf.fill f5 = [r3], (17*16-5*16)
+ mov b2 = rB2
+ ;;
+ ldf.fill f16 = [r2], 32
+ ldf.fill f17 = [r3], 32
+ mov b3 = rB3
+ ;;
+ ldf.fill f18 = [r2], 32
+ ldf.fill f19 = [r3], 32
+ mov b4 = rB4
+ ;;
+ ldf.fill f20 = [r2], 32
+ ldf.fill f21 = [r3], 32
+ mov b5 = rB5
+ ;;
+ ldf.fill f22 = [r2], 32
+ ldf.fill f23 = [r3], 32
+ mov r8 = 0
+ ;;
+ ldf.fill f24 = [r2], 32
+ ldf.fill f25 = [r3], 32
+ mov r9 = 0
+ ;;
+ ldf.fill f26 = [r2], 32
+ ldf.fill f27 = [r3], 32
+ dep rTMP = 0, rRSC, 16, 14 // clear ar.rsc.loadrs
+ ;;
+ ldf.fill f28 = [r2], 32
+ ldf.fill f29 = [r3], 32
+ and rTMP = ~0x3, rTMP // clear ar.rsc.mode
+ ;;
+ ldf.fill f30 = [r2], 32
+ ldf.fill f31 = [r3], 32
+ mov pr = rPR, -1
+ ;;
+ mov.m ar.rsc = rTMP // put RSE into enforced lazy mode
+ ;;
+ loadrs // drop dirty partition
+ ;;
+ mov.m ar.bspstore = rBSP
+ mov.m ar.unat = rUNAT
+ mov.i ar.lc = rLC
+ ;;
+ mov.m ar.rnat = rRNAT
+ mov.m ar.rsc = rRSC
+ ret
+END(__setcontext)
+
+weak_alias (__setcontext, setcontext)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/ia64/setjmp.S b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/setjmp.S
new file mode 100644
index 0000000000..15767e3016
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/setjmp.S
@@ -0,0 +1,198 @@
+/* Copyright (C) 1999-2017 Free Software Foundation, Inc.
+ Contributed by David Mosberger-Tang <davidm@hpl.hp.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/>.
+
+ The layout of the jmp_buf is as follows. This is subject to change
+ and user-code should never depend on the particular layout of
+ jmp_buf!
+
+
+ offset: description:
+ ------- ------------
+ 0x000 stack pointer (r12) ; unchangeable (see _JMPBUF_UNWINDS)
+ 0x008 r1 (gp)
+ 0x010 caller's unat
+ 0x018 fpsr ; disabled per the C standard; BZ 16379
+ 0x020 r4
+ 0x028 r5
+ 0x030 r6
+ 0x038 r7
+ 0x040 rp (b0)
+ 0x048 b1
+ 0x050 b2
+ 0x058 b3
+ 0x060 b4
+ 0x068 b5
+ 0x070 ar.pfs
+ 0x078 ar.lc
+ 0x080 pr
+ 0x088 ar.bsp ; unchangeable (see __longjmp.S)
+ 0x090 ar.unat
+ 0x098 &__jmp_buf ; address of the jmpbuf (needed to locate NaT bits in unat)
+ 0x0a0 f2
+ 0x0b0 f3
+ 0x0c0 f4
+ 0x0d0 f5
+ 0x0e0 f16
+ 0x0f0 f17
+ 0x100 f18
+ 0x110 f19
+ 0x120 f20
+ 0x130 f21
+ 0x130 f22
+ 0x140 f23
+ 0x150 f24
+ 0x160 f25
+ 0x170 f26
+ 0x180 f27
+ 0x190 f28
+ 0x1a0 f29
+ 0x1b0 f30
+ 0x1c0 f31 */
+
+#include <sysdep.h>
+#include <features.h>
+
+ /* The following two entry points are the traditional entry points: */
+
+LEAF(setjmp)
+ alloc r8=ar.pfs,2,0,0,0
+ mov in1=1
+ br.cond.sptk.many HIDDEN_JUMPTARGET(__sigsetjmp)
+END(setjmp)
+
+LEAF(_setjmp)
+ alloc r8=ar.pfs,2,0,0,0
+ mov in1=0
+ br.cond.sptk.many HIDDEN_JUMPTARGET(__sigsetjmp)
+END(_setjmp)
+libc_hidden_def (_setjmp)
+
+ /* __sigsetjmp(__jmp_buf buf, int savemask) */
+
+ENTRY(__sigsetjmp)
+ .prologue ASM_UNW_PRLG_RP|ASM_UNW_PRLG_PFS, ASM_UNW_PRLG_GRSAVE(2)
+ alloc loc1=ar.pfs,2,5,2,0
+ .save ar.unat, loc2
+ mov loc2=ar.unat
+ ;;
+// mov r17=ar.fpsr
+ mov r2=in0
+ add r3=8,in0
+ ;;
+.mem.offset 8,0; st8.spill.nta [r2]=sp,16 // r12 (sp)
+.mem.offset 0,0; st8.spill.nta [r3]=gp,32 // r1 (gp)
+ ;;
+ st8.nta [r2]=loc2,16 // save caller's unat
+// st8.nta [r3]=r17,16 // save fpsr
+ add r8=0xa0,in0
+ ;;
+.mem.offset 8,0; st8.spill.nta [r2]=r4,16 // r4
+.mem.offset 0,0; st8.spill.nta [r3]=r5,16 // r5
+ add r9=0xb0,in0
+ ;;
+ stf.spill.nta [r8]=f2,32
+ stf.spill.nta [r9]=f3,32
+ mov loc0=rp
+ .body
+ ;;
+ stf.spill.nta [r8]=f4,32
+ stf.spill.nta [r9]=f5,32
+ mov r17=b1
+ ;;
+ stf.spill.nta [r8]=f16,32
+ stf.spill.nta [r9]=f17,32
+ mov r18=b2
+ ;;
+ stf.spill.nta [r8]=f18,32
+ stf.spill.nta [r9]=f19,32
+ mov r19=b3
+ ;;
+ stf.spill.nta [r8]=f20,32
+ stf.spill.nta [r9]=f21,32
+ mov r20=b4
+ ;;
+ stf.spill.nta [r8]=f22,32
+ stf.spill.nta [r9]=f23,32
+ mov r21=b5
+ ;;
+ stf.spill.nta [r8]=f24,32
+ stf.spill.nta [r9]=f25,32
+ mov r22=ar.lc
+ ;;
+ stf.spill.nta [r8]=f26,32
+ stf.spill.nta [r9]=f27,32
+ mov r24=pr
+ ;;
+ stf.spill.nta [r8]=f28,32
+ stf.spill.nta [r9]=f29,32
+#ifdef PTR_MANGLE
+ mov loc3=loc0
+ ;;
+ PTR_MANGLE (loc3, loc4)
+#else
+ ;;
+#endif
+ stf.spill.nta [r8]=f30
+ stf.spill.nta [r9]=f31
+
+.mem.offset 8,0; st8.spill.nta [r2]=r6,16 // r6
+.mem.offset 0,0; st8.spill.nta [r3]=r7,16 // r7
+ ;;
+ mov r23=ar.bsp
+ mov r25=ar.unat
+ mov out0=in0
+
+#ifdef PTR_MANGLE
+ st8.nta [r2]=loc3,16 // b0
+#else
+ st8.nta [r2]=loc0,16 // b0
+#endif
+ st8.nta [r3]=r17,16 // b1
+ mov out1=in1
+ ;;
+ st8.nta [r2]=r18,16 // b2
+ st8.nta [r3]=r19,16 // b3
+ ;;
+ st8.nta [r2]=r20,16 // b4
+ st8.nta [r3]=r21,16 // b5
+ ;;
+ st8.nta [r2]=loc1,16 // ar.pfs
+ st8.nta [r3]=r22,16 // ar.lc
+ ;;
+ st8.nta [r2]=r24,16 // pr
+ st8.nta [r3]=r23,16 // ar.bsp
+ ;;
+ st8.nta [r2]=r25 // ar.unat
+ st8.nta [r3]=in0 // &__jmp_buf
+#if IS_IN (rtld)
+ /* In ld.so we never save the signal mask. */
+ ;;
+#else
+ br.call.dpnt.few rp=__sigjmp_save
+#endif
+.ret0: // force a new bundle ::q
+ mov.m ar.unat=loc2 // restore caller's unat
+ mov rp=loc0
+ mov ar.pfs=loc1
+ mov r8=0
+ ret
+END(__sigsetjmp)
+libc_hidden_def (__sigsetjmp)
+rtld_hidden_def (__sigsetjmp)
+
+weak_extern(_setjmp)
+weak_extern(setjmp)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/ia64/shlib-versions b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/shlib-versions
new file mode 100644
index 0000000000..37374c0e20
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/shlib-versions
@@ -0,0 +1,8 @@
+libc=6.1 GLIBC_2.2
+libm=6.1 GLIBC_2.2
+
+ld=ld-linux-ia64.so.2 GLIBC_2.2
+
+libBrokenLocale=1 GLIBC_2.2
+
+libpthread=0 GLIBC_2.2
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/ia64/sigaction.c b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/sigaction.c
new file mode 100644
index 0000000000..125ce446bb
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/sigaction.c
@@ -0,0 +1,45 @@
+/* Copyright (C) 1997-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Linux/IA64 specific sigaction
+ Written by Jes Sorensen, <Jes.Sorensen@cern.ch>, April 1999.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+/* Linux/ia64 only has rt signals, thus we do not even want to try falling
+ back to the old style signals as the default Linux handler does. */
+
+#include <errno.h>
+#include <signal.h>
+#include <string.h>
+
+#include <sysdep.h>
+#include <sys/syscall.h>
+
+/* The variable is shared between all wrappers around signal handling
+ functions which have RT equivalents. This is the definition. */
+
+
+/* If ACT is not NULL, change the action for SIG to *ACT.
+ If OACT is not NULL, put the old action for SIG in *OACT. */
+int
+__libc_sigaction (int sig, const struct sigaction *act, struct sigaction *oact)
+{
+ /* XXX The size argument hopefully will have to be changed to the
+ real size of the user-level sigset_t. */
+ return INLINE_SYSCALL (rt_sigaction, 4, sig, act, oact, _NSIG / 8);
+}
+libc_hidden_def (__libc_sigaction)
+
+#include <nptl/sigaction.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/ia64/sigaltstack-offsets.sym b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/sigaltstack-offsets.sym
new file mode 100644
index 0000000000..f73446941a
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/sigaltstack-offsets.sym
@@ -0,0 +1,13 @@
+#include <stddef.h>
+#include <signal.h>
+
+--
+
+#define sigaltstack(member) offsetof (stack_t, member)
+
+sizeSS sizeof (stack_t)
+oSS_SP sigaltstack (ss_sp)
+oSS_FLAGS sigaltstack (ss_flags)
+oSS_SIZE sigaltstack (ss_size)
+
+SS_ONSTACK
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/ia64/sigcontext-offsets.sym b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/sigcontext-offsets.sym
new file mode 100644
index 0000000000..943e68a667
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/sigcontext-offsets.sym
@@ -0,0 +1,16 @@
+#include <stddef.h>
+#include <sys/ucontext.h>
+
+--
+SC_NAT offsetof (struct sigcontext, sc_nat)
+SC_BSP offsetof (struct sigcontext, sc_ar_bsp)
+SC_RNAT offsetof (struct sigcontext, sc_ar_rnat)
+SC_UNAT offsetof (struct sigcontext, sc_ar_unat)
+SC_FPSR offsetof (struct sigcontext, sc_ar_fpsr)
+SC_PFS offsetof (struct sigcontext, sc_ar_pfs)
+SC_LC offsetof (struct sigcontext, sc_ar_lc)
+SC_PR offsetof (struct sigcontext, sc_pr)
+SC_BR offsetof (struct sigcontext, sc_br)
+SC_GR offsetof (struct sigcontext, sc_gr)
+SC_FR offsetof (struct sigcontext, sc_fr)
+SC_MASK offsetof (struct sigcontext, sc_mask)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/ia64/sigcontextinfo.h b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/sigcontextinfo.h
new file mode 100644
index 0000000000..37a619090b
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/sigcontextinfo.h
@@ -0,0 +1,25 @@
+/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#define SIGCONTEXT siginfo_t *_si, struct sigcontext *
+#define SIGCONTEXT_EXTRA_ARGS _si,
+#define GET_PC(ctx) ((ctx)->sc_ip)
+#define GET_FRAME(ctx) ((void *) 0)
+#define GET_STACK(ctx) ((void *) 0)
+
+#define CALL_SIGHANDLER(handler, signo, ctx) \
+ (handler)((signo), SIGCONTEXT_EXTRA_ARGS (ctx))
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/ia64/sigpending.c b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/sigpending.c
new file mode 100644
index 0000000000..b1653231de
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/sigpending.c
@@ -0,0 +1,36 @@
+/* Copyright (C) 1997-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+/* Linux/ia64 only has rt signals, thus we do not even want to try falling
+ back to the old style signals as the default Linux handler does. */
+
+#include <errno.h>
+#include <signal.h>
+#include <unistd.h>
+
+#include <sysdep.h>
+#include <sys/syscall.h>
+
+/* Change the set of blocked signals to SET,
+ wait until a signal arrives, and restore the set of blocked signals. */
+int
+sigpending (sigset_t *set)
+{
+ /* XXX The size argument hopefully will have to be changed to the
+ real size of the user-level sigset_t. */
+ return INLINE_SYSCALL (rt_sigpending, 2, set, _NSIG / 8);
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/ia64/sigprocmask.c b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/sigprocmask.c
new file mode 100644
index 0000000000..7e62438b03
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/sigprocmask.c
@@ -0,0 +1,39 @@
+/* Copyright (C) 1997-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Linux/IA64 specific sigprocmask
+ Written by Jes Sorensen, <Jes.Sorensen@cern.ch>, April 1999.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+/* Linux/ia64 only has rt signals, thus we do not even want to try falling
+ back to the old style signals as the default Linux handler does. */
+
+#include <errno.h>
+#include <signal.h>
+#include <unistd.h>
+
+#include <sysdep.h>
+#include <sys/syscall.h>
+
+/* Get and/or change the set of blocked signals. */
+int
+__sigprocmask (int how, const sigset_t *set, sigset_t *oset)
+{
+
+ /* XXX The size argument hopefully will have to be changed to the
+ real size of the user-level sigset_t. */
+ return INLINE_SYSCALL (rt_sigprocmask, 4, how, set, oset, _NSIG / 8);
+}
+weak_alias (__sigprocmask, sigprocmask)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/ia64/swapcontext.c b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/swapcontext.c
new file mode 100644
index 0000000000..6f0d7d5f51
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/swapcontext.c
@@ -0,0 +1,39 @@
+/* Copyright (C) 2001-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by David Mosberger-Tang <davidm@hpl.hp.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 <ucontext.h>
+
+struct rv
+ {
+ long retval;
+ long first_return;
+ };
+
+extern struct rv __getcontext (ucontext_t *__ucp) __THROW;
+extern int __setcontext (const ucontext_t *__ucp) __THROW;
+
+int
+__swapcontext (ucontext_t *oucp, const ucontext_t *ucp)
+{
+ struct rv rv = __getcontext (oucp);
+ if (rv.first_return)
+ __setcontext (ucp);
+ return 0;
+}
+
+weak_alias (__swapcontext, swapcontext)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/ia64/sys/io.h b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/sys/io.h
new file mode 100644
index 0000000000..338367ee48
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/sys/io.h
@@ -0,0 +1,67 @@
+/* Copyright (C) 1999-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by David Mosberger-Tang <davidm@hpl.hp.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/>. */
+
+#ifndef _SYS_IO_H
+#define _SYS_IO_H 1
+
+#include <features.h>
+
+__BEGIN_DECLS
+
+/* If TURN_ON is TRUE, request for permission to do direct i/o on the
+ port numbers in the range [FROM,FROM+NUM-1]. Otherwise, turn I/O
+ permission off for that range. This call requires root privileges.
+
+ Portability note: not all Linux platforms support this call. Most
+ platforms based on the PC I/O architecture probably will, however.
+ E.g., Linux/Alpha for Alpha PCs supports this. */
+extern int ioperm (unsigned long int __from, unsigned long int __num,
+ int __turn_on);
+
+/* Set the I/O privilege level to LEVEL. If LEVEL>3, permission to
+ access any I/O port is granted. This call requires root
+ privileges. */
+extern int iopl (int __level);
+
+extern unsigned int _inb (unsigned long int __port);
+extern unsigned int _inb (unsigned long int __port);
+extern unsigned int _inw (unsigned long int __port);
+extern unsigned int _inl (unsigned long int __port);
+extern void _outb (unsigned char __val, unsigned long int __port);
+extern void _outw (unsigned short __val, unsigned long int __port);
+extern void _outl (unsigned int __val, unsigned long int __port);
+
+#define inb _inb
+#define inw _inw
+#define inl _inl
+#define outb _outb
+#define outw _outw
+#define outl _outl
+
+/* Access PCI space protected from machine checks. */
+extern int pciconfig_read (unsigned long int __bus, unsigned long int __dfn,
+ unsigned long int __off, unsigned long int __len,
+ unsigned char *__buf);
+
+extern int pciconfig_write (unsigned long int __bus, unsigned long int __dfn,
+ unsigned long int __off, unsigned long int __len,
+ unsigned char *__buf);
+
+__END_DECLS
+
+#endif /* _SYS_IO_H */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/ia64/sys/procfs.h b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/sys/procfs.h
new file mode 100644
index 0000000000..afe54fbd53
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/sys/procfs.h
@@ -0,0 +1,129 @@
+/* Copyright (C) 1999-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_PROCFS_H
+#define _SYS_PROCFS_H 1
+
+/* This is somehow modelled after the file of the same name on SysVr4
+ systems. It provides a definition of the core file format for ELF
+ used on Linux. */
+
+#include <features.h>
+#include <signal.h>
+#include <sys/time.h>
+#include <sys/types.h>
+#include <sys/ucontext.h>
+#include <sys/user.h>
+
+__BEGIN_DECLS
+
+struct elf_siginfo
+ {
+ int si_signo; /* Signal number. */
+ int si_code; /* Extra code. */
+ int si_errno; /* Errno. */
+ };
+
+/* We really need just 72 but let's leave some headroom... */
+#define ELF_NGREG 128
+/* f0 and f1 could be omitted, but so what... */
+#define ELF_NFPREG 128
+
+typedef unsigned long elf_greg_t;
+typedef elf_greg_t elf_gregset_t[ELF_NGREG];
+
+typedef struct __ia64_fpreg elf_fpreg_t;
+typedef elf_fpreg_t elf_fpregset_t[ELF_NFPREG];
+
+typedef elf_greg_t greg_t;
+typedef elf_gregset_t gregset_t;
+typedef elf_fpregset_t fpregset_t;
+#define NGREG ELF_NGREG
+
+/* Definitions to generate Intel SVR4-like core files. These mostly
+ have the same names as the SVR4 types with "elf_" tacked on the
+ front to prevent clashes with linux definitions, and the typedef
+ forms have been avoided. This is mostly like the SVR4 structure,
+ but more Linuxy, with things that Linux does not support and which
+ gdb doesn't really use excluded. Fields present but not used are
+ marked with "XXX". */
+struct elf_prstatus
+ {
+#if 0
+ long int pr_flags; /* XXX Process flags. */
+ short int pr_why; /* XXX Reason for process halt. */
+ short int pr_what; /* XXX More detailed reason. */
+#endif
+ struct elf_siginfo pr_info; /* Info associated with signal. */
+ short int pr_cursig; /* Current signal. */
+ unsigned long int pr_sigpend; /* Set of pending signals. */
+ unsigned long int pr_sighold; /* Set of held signals. */
+#if 0
+ stack_t pr_altstack; /* Alternate stack info. */
+ struct sigaction pr_action; /* Signal action for current sig. */
+#endif
+ __pid_t pr_pid;
+ __pid_t pr_ppid;
+ __pid_t pr_pgrp;
+ __pid_t pr_sid;
+ struct timeval pr_utime; /* User time. */
+ struct timeval pr_stime; /* System time. */
+ struct timeval pr_cutime; /* Cumulative user time. */
+ struct timeval pr_cstime; /* Cumulative system time. */
+#if 0
+ long int pr_instr; /* Current instruction. */
+#endif
+ elf_gregset_t pr_reg; /* GP registers. */
+ int pr_fpvalid; /* True if math copro being used. */
+ };
+
+
+#define ELF_PRARGSZ (80) /* Number of chars for args */
+
+struct elf_prpsinfo
+ {
+ char pr_state; /* Numeric process state. */
+ char pr_sname; /* Char for pr_state. */
+ char pr_zomb; /* Zombie. */
+ char pr_nice; /* Nice val. */
+ unsigned long int pr_flag; /* Flags. */
+ unsigned int pr_uid;
+ unsigned int pr_gid;
+ int pr_pid, pr_ppid, pr_pgrp, pr_sid;
+ /* Lots missing */
+ char pr_fname[16]; /* Filename of executable. */
+ char pr_psargs[ELF_PRARGSZ]; /* Initial part of arg list. */
+ };
+
+/* Addresses. */
+typedef void *psaddr_t;
+
+/* Register sets. Linux has different names. */
+typedef gregset_t prgregset_t;
+typedef fpregset_t prfpregset_t;
+
+/* We don't have any differences between processes and threads,
+ therefore habe only ine PID type. */
+typedef __pid_t lwpid_t;
+
+
+typedef struct elf_prstatus prstatus_t;
+typedef struct elf_prpsinfo prpsinfo_t;
+
+__END_DECLS
+
+#endif /* sys/procfs.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/ia64/sys/ptrace.h b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/sys/ptrace.h
new file mode 100644
index 0000000000..c77e6dc683
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/sys/ptrace.h
@@ -0,0 +1,227 @@
+/* `ptrace' debugger support interface. Linux/ia64 version.
+ Copyright (C) 2001-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_PTRACE_H
+#define _SYS_PTRACE_H 1
+
+#include <features.h>
+#include <sys/ucontext.h>
+#include <bits/types.h>
+
+__BEGIN_DECLS
+
+/* Type of the REQUEST argument to `ptrace.' */
+enum __ptrace_request
+{
+ /* Indicate that the process making this request should be traced.
+ All signals received by this process can be intercepted by its
+ parent, and its parent can use the other `ptrace' requests. */
+ PTRACE_TRACEME = 0,
+#define PT_TRACE_ME PTRACE_TRACEME
+
+ /* Return the word in the process's text space at address ADDR. */
+ PTRACE_PEEKTEXT = 1,
+#define PT_READ_I PTRACE_PEEKTEXT
+
+ /* Return the word in the process's data space at address ADDR. */
+ PTRACE_PEEKDATA = 2,
+#define PT_READ_D PTRACE_PEEKDATA
+
+ /* Return the word in the process's user area at offset ADDR. */
+ PTRACE_PEEKUSER = 3,
+#define PT_READ_U PTRACE_PEEKUSER
+
+ /* Write the word DATA into the process's text space at address ADDR. */
+ PTRACE_POKETEXT = 4,
+#define PT_WRITE_I PTRACE_POKETEXT
+
+ /* Write the word DATA into the process's data space at address ADDR. */
+ PTRACE_POKEDATA = 5,
+#define PT_WRITE_D PTRACE_POKEDATA
+
+ /* Write the word DATA into the process's user area at offset ADDR. */
+ PTRACE_POKEUSER = 6,
+#define PT_WRITE_U PTRACE_POKEUSER
+
+ /* Continue the process. */
+ PTRACE_CONT = 7,
+#define PT_CONTINUE PTRACE_CONT
+
+ /* Kill the process. */
+ PTRACE_KILL = 8,
+#define PT_KILL PTRACE_KILL
+
+ /* Single step the process.
+ This is not supported on all machines. */
+ PTRACE_SINGLESTEP = 9,
+#define PT_STEP PTRACE_SINGLESTEP
+
+ /* Execute process until next taken branch. */
+ PTRACE_SINGLEBLOCK = 12,
+#define PT_STEPBLOCK PTRACE_SINGLEBLOCK
+
+ /* Attach to a process that is already running. */
+ PTRACE_ATTACH = 16,
+#define PT_ATTACH PTRACE_ATTACH
+
+ /* Detach from a process attached to with PTRACE_ATTACH. */
+ PTRACE_DETACH = 17,
+#define PT_DETACH PTRACE_DETACH
+
+ /* Get all registers (pt_all_user_regs) in one shot */
+ PTRACE_GETREGS = 18,
+#define PT_GETREGS PTRACE_GETREGS
+
+ /* Set all registers (pt_all_user_regs) in one shot */
+ PTRACE_SETREGS = 19,
+#define PT_SETREGS PTRACE_SETREGS
+
+ /* Continue and stop at the next (return from) syscall. */
+ PTRACE_SYSCALL = 24,
+#define PT_SYSCALL PTRACE_SYSCALL
+
+ /* Set ptrace filter options. */
+ PTRACE_SETOPTIONS = 0x4200,
+#define PT_SETOPTIONS PTRACE_SETOPTIONS
+
+ /* Get last ptrace message. */
+ PTRACE_GETEVENTMSG = 0x4201,
+#define PT_GETEVENTMSG PTRACE_GETEVENTMSG
+
+ /* Get siginfo for process. */
+ PTRACE_GETSIGINFO = 0x4202,
+#define PT_GETSIGINFO PTRACE_GETSIGINFO
+
+ /* Set new siginfo for process. */
+ PTRACE_SETSIGINFO = 0x4203,
+#define PT_SETSIGINFO PTRACE_SETSIGINFO
+
+ /* Get register content. */
+ PTRACE_GETREGSET = 0x4204,
+#define PTRACE_GETREGSET PTRACE_GETREGSET
+
+ /* Set register content. */
+ PTRACE_SETREGSET = 0x4205,
+#define PTRACE_SETREGSET PTRACE_SETREGSET
+
+ /* Like PTRACE_ATTACH, but do not force tracee to trap and do not affect
+ signal or group stop state. */
+ PTRACE_SEIZE = 0x4206,
+#define PTRACE_SEIZE PTRACE_SEIZE
+
+ /* Trap seized tracee. */
+ PTRACE_INTERRUPT = 0x4207,
+#define PTRACE_INTERRUPT PTRACE_INTERRUPT
+
+ /* Wait for next group event. */
+ PTRACE_LISTEN = 0x4208,
+#define PTRACE_LISTEN PTRACE_LISTEN
+
+ PTRACE_PEEKSIGINFO = 0x4209,
+#define PTRACE_PEEKSIGINFO PTRACE_PEEKSIGINFO
+
+ PTRACE_GETSIGMASK = 0x420a,
+#define PTRACE_GETSIGMASK PTRACE_GETSIGMASK
+
+ PTRACE_SETSIGMASK = 0x420b,
+#define PTRACE_SETSIGMASK PTRACE_SETSIGMASK
+
+ PTRACE_SECCOMP_GET_FILTER = 0x420c
+#define PTRACE_SECCOMP_GET_FILTER PTRACE_SECCOMP_GET_FILTER
+};
+
+
+/* Flag for PTRACE_LISTEN. */
+enum __ptrace_flags
+{
+ PTRACE_SEIZE_DEVEL = 0x80000000
+};
+
+/* pt_all_user_regs is used for PTRACE_GETREGS/PTRACE_SETREGS. */
+struct __pt_all_user_regs
+ {
+ unsigned long nat;
+ unsigned long cr_iip;
+ unsigned long cfm;
+ unsigned long cr_ipsr;
+ unsigned long pr;
+
+ unsigned long gr[32];
+ unsigned long br[8];
+ unsigned long ar[128];
+ struct __ia64_fpreg fr[128];
+ };
+
+/* Options set using PTRACE_SETOPTIONS. */
+enum __ptrace_setoptions
+{
+ PTRACE_O_TRACESYSGOOD = 0x00000001,
+ PTRACE_O_TRACEFORK = 0x00000002,
+ PTRACE_O_TRACEVFORK = 0x00000004,
+ PTRACE_O_TRACECLONE = 0x00000008,
+ PTRACE_O_TRACEEXEC = 0x00000010,
+ PTRACE_O_TRACEVFORKDONE = 0x00000020,
+ PTRACE_O_TRACEEXIT = 0x00000040,
+ PTRACE_O_TRACESECCOMP = 0x00000080,
+ PTRACE_O_EXITKILL = 0x00100000,
+ PTRACE_O_SUSPEND_SECCOMP = 0x00200000,
+ PTRACE_O_MASK = 0x003000ff
+};
+
+enum __ptrace_eventcodes
+{
+/* Wait extended result codes for the above trace options. */
+ PTRACE_EVENT_FORK = 1,
+ PTRACE_EVENT_VFORK = 2,
+ PTRACE_EVENT_CLONE = 3,
+ PTRACE_EVENT_EXEC = 4,
+ PTRACE_EVENT_VFORK_DONE = 5,
+ PTRACE_EVENT_EXIT = 6,
+ PTRACE_EVENT_SECCOMP = 7,
+/* Extended result codes enabled by means other than options. */
+ PTRACE_EVENT_STOP = 128
+};
+
+/* Arguments for PTRACE_PEEKSIGINFO. */
+struct __ptrace_peeksiginfo_args
+{
+ __uint64_t off; /* From which siginfo to start. */
+ __uint32_t flags; /* Flags for peeksiginfo. */
+ __int32_t nr; /* How many siginfos to take. */
+};
+
+enum __ptrace_peeksiginfo_flags
+{
+ /* Read signals from a shared (process wide) queue. */
+ PTRACE_PEEKSIGINFO_SHARED = (1 << 0)
+};
+
+/* Perform process tracing functions. REQUEST is one of the values
+ above, and determines the action to be taken.
+ For all requests except PTRACE_TRACEME, PID specifies the process to be
+ traced.
+
+ PID and the other arguments described above for the various requests should
+ appear (those that are used for the particular request) as:
+ pid_t PID, void *ADDR, int DATA, void *ADDR2
+ after REQUEST. */
+extern long int ptrace (enum __ptrace_request __request, ...) __THROW;
+
+__END_DECLS
+
+#endif /* _SYS_PTRACE_H */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/ia64/sys/rse.h b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/sys/rse.h
new file mode 100644
index 0000000000..644f5d3c87
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/sys/rse.h
@@ -0,0 +1,77 @@
+/* Copyright (C) 2001-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by David Mosberger-Tang <davidm@hpl.hp.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/>. */
+
+#ifndef _ia64_rse_h
+#define _ia64_rse_h
+
+#include <features.h>
+
+/* Register stack engine related helper functions. This file may be
+ used in applications, so be careful about the name-space and give
+ some consideration to non-GNU C compilers (though __inline is
+ fine). */
+
+static __inline unsigned long
+ia64_rse_slot_num (unsigned long *addr)
+{
+ return (((unsigned long) addr) >> 3) & 0x3f;
+}
+
+/* Return TRUE if ADDR is the address of an RNAT slot. */
+
+static __inline unsigned long
+ia64_rse_is_rnat_slot (unsigned long *addr)
+{
+ return ia64_rse_slot_num (addr) == 0x3f;
+}
+
+/* Returns the address of the RNAT slot that covers the slot at
+ address SLOT_ADDR. */
+
+static __inline unsigned long *
+ia64_rse_rnat_addr (unsigned long *slot_addr)
+{
+ return (unsigned long *) ((unsigned long) slot_addr | (0x3f << 3));
+}
+
+/* Calcuate the number of registers in the dirty partition starting at
+ BSPSTORE with a size of DIRTY bytes. This isn't simply DIRTY
+ divided by eight because the 64th slot is used to store ar.rnat. */
+
+static __inline unsigned long
+ia64_rse_num_regs (unsigned long *bspstore, unsigned long *bsp)
+{
+ unsigned long slots = (bsp - bspstore);
+
+ return slots - (ia64_rse_slot_num(bspstore) + slots)/0x40;
+}
+
+/* The inverse of the above: given bspstore and the number of
+ registers, calculate ar.bsp. */
+
+static __inline unsigned long *
+ia64_rse_skip_regs (unsigned long *addr, long num_regs)
+{
+ long delta = ia64_rse_slot_num(addr) + num_regs;
+
+ if (num_regs < 0)
+ delta -= 0x3e;
+ return addr + num_regs + delta/0x3f;
+}
+
+#endif /* _ia64_rse_h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/ia64/sys/ucontext.h b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/sys/ucontext.h
new file mode 100644
index 0000000000..5ed6929af4
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/sys/ucontext.h
@@ -0,0 +1,67 @@
+/* Copyright (C) 1998-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_UCONTEXT_H
+#define _SYS_UCONTEXT_H 1
+
+#include <features.h>
+
+#include <bits/types/sigset_t.h>
+#include <bits/sigcontext.h>
+#include <bits/types/stack_t.h>
+
+
+/*
+ * These are here mostly for backwards compatibility with older Unices.
+ * IA-64 Linux does not distinguish between "struct sigcontext" and
+ * "ucontext_t" as all the necessary info is inside the former.
+ */
+
+typedef struct sigcontext mcontext_t;
+
+#if __GNUC_PREREQ (3, 5)
+# define _SC_GR0_OFFSET \
+ __builtin_offsetof (struct sigcontext, sc_gr[0])
+#elif defined __GNUC__
+# define _SC_GR0_OFFSET \
+ (((char *) &((struct sigcontext *) 0)->sc_gr[0]) - (char *) 0)
+#else
+# define _SC_GR0_OFFSET 0xc8 /* pray that this is correct... */
+#endif
+
+typedef struct ucontext
+ {
+ union
+ {
+ mcontext_t _mc;
+ struct
+ {
+ unsigned long _pad[_SC_GR0_OFFSET/8];
+ struct ucontext *_link; /* this should overlay sc_gr[0] */
+ }
+ _uc;
+ }
+ _u;
+ }
+ucontext_t;
+
+#define uc_mcontext _u._mc
+#define uc_sigmask _u._mc.sc_mask
+#define uc_stack _u._mc.sc_stack
+#define uc_link _u._uc._link
+
+#endif /* sys/ucontext.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/ia64/sys/user.h b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/sys/user.h
new file mode 100644
index 0000000000..859fe9ea39
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/sys/user.h
@@ -0,0 +1,47 @@
+/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_USER_H
+#define _SYS_USER_H 1
+
+#include <features.h>
+#include <sys/types.h>
+
+/* This definition comes directly from the kernel headers. If
+ anything changes in them this header has to be changed, too. */
+
+
+/* The definition in the kernel has the comment "XXX fix me". */
+#define EF_SIZE 3072
+
+
+struct user
+{
+ unsigned long int regs[EF_SIZE / 8 + 32]; /* Integer and fp regs. */
+ size_t u_tsize; /* Text size (pages). */
+ size_t u_dsize; /* Data size (pages). */
+ size_t u_ssize; /* Stack size (pages). */
+ unsigned long int start_code; /* Text starting address. */
+ unsigned long int start_data; /* Data starting address. */
+ unsigned long int start_stack; /* Stack starting address. */
+ long int signal; /* Signal causing core dump. */
+ struct regs *u_ar0; /* Help gdb find registers. */
+ unsigned long int magic; /* Identifies a core file. */
+ char u_comm[32]; /* User command name. */
+};
+
+#endif /* sys/user.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/ia64/syscall.S b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/syscall.S
new file mode 100644
index 0000000000..efe50dd2b1
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/syscall.S
@@ -0,0 +1,33 @@
+/* Copyright (C) 1999-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Jes Sorensen <Jes.Sorensen@cern.ch>.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+
+ENTRY(syscall)
+ /* We are called like so:
+ {out0,out1,...,out6} registers -> {NR, arg1, ..., arg6}
+ Shift the register window so that {out1...out6} are available
+ in {out0...out5} like the kernel syscall handler expects. */
+ alloc r2=ar.pfs,1,0,8,0
+ mov r15=r32 /* syscall number */
+ break __BREAK_SYSCALL
+ ;;
+ cmp.ne p6,p0=-1,r10 /* r10 = -1 on error */
+(p6) ret
+ br.cond.spnt.few __syscall_error
+PSEUDO_END(syscall)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/ia64/syscalls.list b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/syscalls.list
new file mode 100644
index 0000000000..56f4138c43
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/syscalls.list
@@ -0,0 +1,28 @@
+# File name Caller Syscall name # args Strong name Weak names
+
+umount2 - umount 2 __umount2 umount2
+
+getpriority - getpriority i:ii __getpriority getpriority
+
+# proper socket implementations:
+bind - bind i:ipi __bind bind
+getpeername - getpeername i:ipp __getpeername getpeername
+getsockname - getsockname i:ipp __getsockname getsockname
+getsockopt - getsockopt i:iiiBN __getsockopt getsockopt
+listen - listen i:ii __listen listen
+setsockopt - setsockopt i:iiibn __setsockopt setsockopt
+shutdown - shutdown i:ii __shutdown shutdown
+socket - socket i:iii __socket socket
+socketpair - socketpair i:iiif __socketpair socketpair
+
+# DIG-compliant access to PCI configuration space:
+pciconfig_read EXTRA pciconfig_read 5 pciconfig_read
+pciconfig_write EXTRA pciconfig_write 5 pciconfig_write
+
+ptrace - ptrace 4 __ptrace ptrace
+
+
+# System calls with wrappers.
+
+# IA-64 specific
+getunwind EXTRA getunwind i:pi getunwind
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/ia64/sysconf.c b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/sysconf.c
new file mode 100644
index 0000000000..88705c0bfb
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/sysconf.c
@@ -0,0 +1,30 @@
+/* Get file-specific information about a file. Linux/ia64 version.
+ Copyright (C) 2003-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <assert.h>
+#include <stdbool.h>
+#include <stdlib.h>
+#include <unistd.h>
+
+
+#include "has_cpuclock.c"
+#define HAS_CPUCLOCK(name) (has_cpuclock () ? _POSIX_VERSION : -1)
+
+
+/* Now the generic Linux version. */
+#include <sysdeps/unix/sysv/linux/sysconf.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h
new file mode 100644
index 0000000000..7c7f619edc
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h
@@ -0,0 +1,223 @@
+/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Jakub Jelinek <jakub@redhat.com>, 2002.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#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
+
+# if IS_IN (libc)
+# define SYSDEP_CANCEL_ERRNO __libc_errno
+# else
+# define SYSDEP_CANCEL_ERRNO errno
+# endif
+# define SYSDEP_CANCEL_ERROR(args) \
+.section .gnu.linkonce.t.__syscall_error_##args, "ax"; \
+ .align 32; \
+ .proc __syscall_error_##args; \
+ .global __syscall_error_##args; \
+ .hidden __syscall_error_##args; \
+ .size __syscall_error_##args, 64; \
+__syscall_error_##args: \
+ .prologue; \
+ .regstk args, 5, args, 0; \
+ .save ar.pfs, loc0; \
+ .save rp, loc1; \
+ .body; \
+ addl loc4 = @ltoff(@tprel(SYSDEP_CANCEL_ERRNO)), gp;; \
+ ld8 loc4 = [loc4]; \
+ mov rp = loc1;; \
+ mov r8 = -1; \
+ add loc4 = loc4, r13;; \
+ st4 [loc4] = loc3; \
+ mov ar.pfs = loc0
+
+# ifndef USE_DL_SYSINFO
+
+# define PSEUDO(name, syscall_name, args) \
+.text; \
+ENTRY (name) \
+ adds r14 = MULTIPLE_THREADS_OFFSET, r13;; \
+ ld4 r14 = [r14]; \
+ mov r15 = SYS_ify(syscall_name);; \
+ cmp4.ne p6, p7 = 0, r14; \
+(p6) br.cond.spnt .Lpseudo_cancel;; \
+ break __BREAK_SYSCALL;; \
+ cmp.eq p6,p0=-1,r10; \
+(p6) br.cond.spnt.few __syscall_error; \
+ ret;; \
+ .endp name; \
+ .proc __GC_##name; \
+ .globl __GC_##name; \
+ .hidden __GC_##name; \
+__GC_##name: \
+.Lpseudo_cancel: \
+ .prologue; \
+ .regstk args, 5, args, 0; \
+ .save ar.pfs, loc0; \
+ alloc loc0 = ar.pfs, args, 5, args, 0; \
+ .save rp, loc1; \
+ mov loc1 = rp;; \
+ .body; \
+ CENABLE;; \
+ mov loc2 = r8; \
+ COPY_ARGS_##args \
+ mov r15 = SYS_ify(syscall_name); \
+ break __BREAK_SYSCALL;; \
+ mov loc3 = r8; \
+ mov loc4 = r10; \
+ mov out0 = loc2; \
+ CDISABLE;; \
+ cmp.eq p6,p0=-1,loc4; \
+(p6) br.cond.spnt.few __syscall_error_##args; \
+ mov r8 = loc3; \
+ mov rp = loc1; \
+ mov ar.pfs = loc0; \
+.Lpseudo_end: \
+ ret; \
+ .endp __GC_##name; \
+ SYSDEP_CANCEL_ERROR(args)
+
+# else /* USE_DL_SYSINFO */
+
+# define PSEUDO(name, syscall_name, args) \
+.text; \
+ENTRY (name) \
+ .prologue; \
+ adds r2 = SYSINFO_OFFSET, r13; \
+ adds r14 = MULTIPLE_THREADS_OFFSET, r13; \
+ .save ar.pfs, r11; \
+ mov r11 = ar.pfs;; \
+ .body; \
+ ld4 r14 = [r14]; \
+ ld8 r2 = [r2]; \
+ mov r15 = SYS_ify(syscall_name);; \
+ cmp4.ne p6, p7 = 0, r14; \
+ mov b7 = r2; \
+(p6) br.cond.spnt .Lpseudo_cancel; \
+ br.call.sptk.many b6 = b7;; \
+ mov ar.pfs = r11; \
+ cmp.eq p6,p0 = -1, r10; \
+(p6) br.cond.spnt.few __syscall_error; \
+ ret;; \
+ .endp name; \
+ \
+ .proc __##syscall_name##_nocancel; \
+ .globl __##syscall_name##_nocancel; \
+__##syscall_name##_nocancel: \
+ .prologue; \
+ adds r2 = SYSINFO_OFFSET, r13; \
+ .save ar.pfs, r11; \
+ mov r11 = ar.pfs;; \
+ .body; \
+ ld8 r2 = [r2]; \
+ mov r15 = SYS_ify(syscall_name);; \
+ mov b7 = r2; \
+ br.call.sptk.many b6 = b7;; \
+ mov ar.pfs = r11; \
+ cmp.eq p6,p0 = -1, r10; \
+(p6) br.cond.spnt.few __syscall_error; \
+ ret;; \
+ .endp __##syscall_name##_nocancel; \
+ \
+ .proc __GC_##name; \
+ .globl __GC_##name; \
+ .hidden __GC_##name; \
+__GC_##name: \
+.Lpseudo_cancel: \
+ .prologue; \
+ .regstk args, 5, args, 0; \
+ .save ar.pfs, loc0; \
+ alloc loc0 = ar.pfs, args, 5, args, 0; \
+ adds loc4 = SYSINFO_OFFSET, r13; \
+ .save rp, loc1; \
+ mov loc1 = rp;; \
+ .body; \
+ ld8 loc4 = [loc4]; \
+ CENABLE;; \
+ mov loc2 = r8; \
+ mov b7 = loc4; \
+ COPY_ARGS_##args \
+ mov r15 = SYS_ify(syscall_name); \
+ br.call.sptk.many b6 = b7;; \
+ mov loc3 = r8; \
+ mov loc4 = r10; \
+ mov out0 = loc2; \
+ CDISABLE;; \
+ cmp.eq p6,p0=-1,loc4; \
+(p6) br.cond.spnt.few __syscall_error_##args; \
+ mov r8 = loc3; \
+ mov rp = loc1; \
+ mov ar.pfs = loc0; \
+.Lpseudo_end: \
+ ret; \
+ .endp __GC_##name; \
+ SYSDEP_CANCEL_ERROR(args)
+
+# endif /* USE_DL_SYSINFO */
+
+# undef PSEUDO_END
+# define PSEUDO_END(name) .endp
+
+# if IS_IN (libpthread)
+# define CENABLE br.call.sptk.many b0 = __pthread_enable_asynccancel
+# define CDISABLE br.call.sptk.many b0 = __pthread_disable_asynccancel
+# elif IS_IN (libc)
+# define CENABLE br.call.sptk.many b0 = __libc_enable_asynccancel
+# define CDISABLE br.call.sptk.many b0 = __libc_disable_asynccancel
+# elif IS_IN (librt)
+# define CENABLE br.call.sptk.many b0 = __librt_enable_asynccancel
+# define CDISABLE br.call.sptk.many b0 = __librt_disable_asynccancel
+# else
+# error Unsupported library
+# endif
+
+# define COPY_ARGS_0 /* Nothing */
+# define COPY_ARGS_1 COPY_ARGS_0 mov out0 = in0;
+# define COPY_ARGS_2 COPY_ARGS_1 mov out1 = in1;
+# define COPY_ARGS_3 COPY_ARGS_2 mov out2 = in2;
+# define COPY_ARGS_4 COPY_ARGS_3 mov out3 = in3;
+# define COPY_ARGS_5 COPY_ARGS_4 mov out4 = in4;
+# define COPY_ARGS_6 COPY_ARGS_5 mov out5 = in5;
+# define COPY_ARGS_7 COPY_ARGS_6 mov out6 = in6;
+
+# ifndef __ASSEMBLER__
+# define SINGLE_THREAD_P \
+ __builtin_expect (THREAD_GETMEM (THREAD_SELF, header.multiple_threads) == 0, 1)
+# else
+# define SINGLE_THREAD_P \
+ adds r14 = MULTIPLE_THREADS_OFFSET, r13 ;; ld4 r14 = [r14] ;; cmp4.ne p6, p7 = 0, r14
+# 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/ia64/sysdep.S b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/sysdep.S
new file mode 100644
index 0000000000..a3004adc00
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/sysdep.S
@@ -0,0 +1,58 @@
+/* Copyright (C) 1999-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by David Mosberger-Tang <davidm@hpl.hp.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 <tls.h>
+
+ENTRY(__syscall_error)
+#if RTLD_PRIVATE_ERRNO
+ /*
+ * Note that the gp has to be set properly for this to work.
+ * As long as all syscalls are in the same load unit
+ * (executable or shared library) as this routine, we should
+ * be fine. Otherwise, we would have to first load the global
+ * pointer register from __gp.
+ */
+ addl r2=@gprel(rtld_errno),gp
+ ;;
+ st4 [r2]=r8
+ mov r8=-1
+#else
+# if IS_IN (libc)
+# define SYSCALL_ERROR_ERRNO __libc_errno
+# else
+# define SYSCALL_ERROR_ERRNO errno
+# endif
+ addl r2=@ltoff(@tprel(SYSCALL_ERROR_ERRNO)), gp;;
+ ld8 r2=[r2]
+ mov r3=r8;;
+ mov r8=-1
+ add r2=r2,r13;;
+ st4 [r2]=r3
+#endif
+ ret // ret is #define'd in syscall.h!
+END(__syscall_error)
+
+ENTRY(__ia64_syscall)
+ mov r15=r37 /* syscall number */
+ break __BREAK_SYSCALL
+ cmp.eq p6,p0=-1,r10 /* r10 = -1 on error */
+(p6) br.cond.spnt.few __syscall_error
+ ret
+PSEUDO_END(__ia64_syscall)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/ia64/sysdep.h b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/sysdep.h
new file mode 100644
index 0000000000..c7665bae4e
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/sysdep.h
@@ -0,0 +1,387 @@
+/* Copyright (C) 1999-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Written by Jes Sorensen, <Jes.Sorensen@cern.ch>, April 1999.
+ Based on code originally written by David Mosberger-Tang
+
+ 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_IA64_SYSDEP_H
+#define _LINUX_IA64_SYSDEP_H 1
+
+#include <sysdeps/unix/sysdep.h>
+#include <sysdeps/unix/sysv/linux/sysdep.h>
+#include <sysdeps/ia64/sysdep.h>
+#include <dl-sysdep.h>
+#include <tls.h>
+
+/* In order to get __set_errno() definition in INLINE_SYSCALL. */
+#ifndef __ASSEMBLER__
+#include <errno.h>
+#endif
+
+/* As of GAS v2.4.90.0.7, including a ".align" directive inside a
+ function will cause bad unwind info to be emitted (GAS doesn't know
+ how to account for the padding introduced by the .align directive).
+ Turning on this macro will work around this bug by introducing the
+ necessary padding explicitly. */
+#define GAS_ALIGN_BREAKS_UNWIND_INFO
+
+/* For Linux we can use the system call table in the header file
+ /usr/include/asm/unistd.h
+ of the kernel. But these symbols do not follow the SYS_* syntax
+ so we have to redefine the `SYS_ify' macro here. */
+#undef SYS_ify
+#define SYS_ify(syscall_name) __NR_##syscall_name
+
+/* This is a kludge to make syscalls.list find these under the names
+ pread and pwrite, since some kernel headers define those names
+ and some define the *64 names for the same system calls. */
+#if !defined __NR_pread && defined __NR_pread64
+# define __NR_pread __NR_pread64
+#endif
+#if !defined __NR_pwrite && defined __NR_pwrite64
+# define __NR_pwrite __NR_pwrite64
+#endif
+
+/* This is to help the old kernel headers where __NR_semtimedop is not
+ available. */
+#ifndef __NR_semtimedop
+# define __NR_semtimedop 1247
+#endif
+
+#if defined USE_DL_SYSINFO \
+ && (IS_IN (libc) \
+ || IS_IN (libpthread) || IS_IN (librt))
+# define IA64_USE_NEW_STUB
+#else
+# undef IA64_USE_NEW_STUB
+#endif
+
+#ifdef __ASSEMBLER__
+
+#undef CALL_MCOUNT
+#ifdef PROF
+# define CALL_MCOUNT \
+ .data; \
+1: data8 0; /* XXX fixme: use .xdata8 once labels work */ \
+ .previous; \
+ .prologue; \
+ .save ar.pfs, r40; \
+ alloc out0 = ar.pfs, 8, 0, 4, 0; \
+ mov out1 = gp; \
+ .save rp, out2; \
+ mov out2 = rp; \
+ .body; \
+ ;; \
+ addl out3 = @ltoff(1b), gp; \
+ br.call.sptk.many rp = _mcount \
+ ;;
+#else
+# define CALL_MCOUNT /* Do nothing. */
+#endif
+
+/* 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 %d0 is a real error
+ number. Linus said he will make sure the no syscall returns a value
+ in -1 .. -4095 as a valid result so we can savely test with -4095. */
+
+/* We don't want the label for the error handler to be visible in the symbol
+ table when we define it here. */
+#define SYSCALL_ERROR_LABEL __syscall_error
+
+#undef PSEUDO
+#define PSEUDO(name, syscall_name, args) \
+ ENTRY(name) \
+ DO_CALL (SYS_ify(syscall_name)); \
+ cmp.eq p6,p0=-1,r10; \
+(p6) br.cond.spnt.few __syscall_error;
+
+#define DO_CALL_VIA_BREAK(num) \
+ mov r15=num; \
+ break __BREAK_SYSCALL
+
+#ifdef IA64_USE_NEW_STUB
+# ifdef SHARED
+# define DO_CALL(num) \
+ .prologue; \
+ adds r2 = SYSINFO_OFFSET, r13;; \
+ ld8 r2 = [r2]; \
+ .save ar.pfs, r11; \
+ mov r11 = ar.pfs;; \
+ .body; \
+ mov r15 = num; \
+ mov b7 = r2; \
+ br.call.sptk.many b6 = b7;; \
+ .restore sp; \
+ mov ar.pfs = r11; \
+ .prologue; \
+ .body
+# else /* !SHARED */
+# define DO_CALL(num) \
+ .prologue; \
+ mov r15 = num; \
+ movl r2 = _dl_sysinfo;; \
+ ld8 r2 = [r2]; \
+ .save ar.pfs, r11; \
+ mov r11 = ar.pfs;; \
+ .body; \
+ mov b7 = r2; \
+ br.call.sptk.many b6 = b7;; \
+ .restore sp; \
+ mov ar.pfs = r11; \
+ .prologue; \
+ .body
+# endif
+#else
+# define DO_CALL(num) DO_CALL_VIA_BREAK(num)
+#endif
+
+#undef PSEUDO_END
+#define PSEUDO_END(name) .endp C_SYMBOL_NAME(name);
+
+#undef PSEUDO_NOERRNO
+#define PSEUDO_NOERRNO(name, syscall_name, args) \
+ ENTRY(name) \
+ DO_CALL (SYS_ify(syscall_name));
+
+#undef PSEUDO_END_NOERRNO
+#define PSEUDO_END_NOERRNO(name) .endp C_SYMBOL_NAME(name);
+
+#undef PSEUDO_ERRVAL
+#define PSEUDO_ERRVAL(name, syscall_name, args) \
+ ENTRY(name) \
+ DO_CALL (SYS_ify(syscall_name)); \
+ cmp.eq p6,p0=-1,r10; \
+(p6) mov r10=r8;
+
+
+#undef PSEUDO_END_ERRVAL
+#define PSEUDO_END_ERRVAL(name) .endp C_SYMBOL_NAME(name);
+
+#undef END
+#define END(name) \
+ .size C_SYMBOL_NAME(name), . - C_SYMBOL_NAME(name) ; \
+ .endp C_SYMBOL_NAME(name)
+
+#define ret br.ret.sptk.few b0
+#define ret_NOERRNO ret
+#define ret_ERRVAL ret
+
+#else /* not __ASSEMBLER__ */
+
+#define BREAK_INSN_1(num) "break " #num ";;\n\t"
+#define BREAK_INSN(num) BREAK_INSN_1(num)
+
+/* On IA-64 we have stacked registers for passing arguments. The
+ "out" registers end up being the called function's "in"
+ registers.
+
+ Also, since we have plenty of registers we have two return values
+ from a syscall. r10 is set to -1 on error, whilst r8 contains the
+ (non-negative) errno on error or the return value on success.
+ */
+
+#ifdef IA64_USE_NEW_STUB
+
+# define DO_INLINE_SYSCALL_NCS(name, nr, args...) \
+ LOAD_ARGS_##nr (args) \
+ register long _r8 __asm ("r8"); \
+ register long _r10 __asm ("r10"); \
+ register long _r15 __asm ("r15") = name; \
+ register void *_b7 __asm ("b7") = ((tcbhead_t *)__thread_self)->__private;\
+ long _retval; \
+ LOAD_REGS_##nr \
+ /* \
+ * Don't specify any unwind info here. We mark ar.pfs as \
+ * clobbered. This will force the compiler to save ar.pfs \
+ * somewhere and emit appropriate unwind info for that save. \
+ */ \
+ __asm __volatile ("br.call.sptk.many b6=%0;;\n" \
+ : "=b"(_b7), "=r" (_r8), "=r" (_r10), "=r" (_r15) \
+ ASM_OUTARGS_##nr \
+ : "0" (_b7), "3" (_r15) ASM_ARGS_##nr \
+ : "memory", "ar.pfs" ASM_CLOBBERS_##nr); \
+ _retval = _r8;
+
+#else /* !IA64_USE_NEW_STUB */
+
+# define DO_INLINE_SYSCALL_NCS(name, nr, args...) \
+ LOAD_ARGS_##nr (args) \
+ register long _r8 asm ("r8"); \
+ register long _r10 asm ("r10"); \
+ register long _r15 asm ("r15") = name; \
+ long _retval; \
+ LOAD_REGS_##nr \
+ __asm __volatile (BREAK_INSN (__BREAK_SYSCALL) \
+ : "=r" (_r8), "=r" (_r10), "=r" (_r15) \
+ ASM_OUTARGS_##nr \
+ : "2" (_r15) ASM_ARGS_##nr \
+ : "memory" ASM_CLOBBERS_##nr); \
+ _retval = _r8;
+
+#endif /* !IA64_USE_NEW_STUB */
+
+#define DO_INLINE_SYSCALL(name, nr, args...) \
+ DO_INLINE_SYSCALL_NCS (__NR_##name, nr, ##args)
+
+#undef INLINE_SYSCALL
+#define INLINE_SYSCALL(name, nr, args...) \
+ ({ \
+ DO_INLINE_SYSCALL_NCS (__NR_##name, nr, args) \
+ if (_r10 == -1) \
+ { \
+ __set_errno (_retval); \
+ _retval = -1; \
+ } \
+ _retval; })
+
+#undef INTERNAL_SYSCALL_DECL
+#define INTERNAL_SYSCALL_DECL(err) long int err __attribute__ ((unused))
+
+#undef INTERNAL_SYSCALL
+#define INTERNAL_SYSCALL_NCS(name, err, nr, args...) \
+ ({ \
+ DO_INLINE_SYSCALL_NCS (name, nr, args) \
+ err = _r10; \
+ _retval; })
+#define INTERNAL_SYSCALL(name, err, nr, args...) \
+ INTERNAL_SYSCALL_NCS (__NR_##name, err, nr, ##args)
+
+#undef INTERNAL_SYSCALL_ERROR_P
+#define INTERNAL_SYSCALL_ERROR_P(val, err) \
+ ({ (void) (val); \
+ (err == -1); \
+ })
+
+#undef INTERNAL_SYSCALL_ERRNO
+#define INTERNAL_SYSCALL_ERRNO(val, err) (val)
+
+#define LOAD_ARGS_0()
+#define LOAD_REGS_0
+#define LOAD_ARGS_1(a1) \
+ long _arg1 = (long) (a1); \
+ LOAD_ARGS_0 ()
+#define LOAD_REGS_1 \
+ register long _out0 asm ("out0") = _arg1; \
+ LOAD_REGS_0
+#define LOAD_ARGS_2(a1, a2) \
+ long _arg2 = (long) (a2); \
+ LOAD_ARGS_1 (a1)
+#define LOAD_REGS_2 \
+ register long _out1 asm ("out1") = _arg2; \
+ LOAD_REGS_1
+#define LOAD_ARGS_3(a1, a2, a3) \
+ long _arg3 = (long) (a3); \
+ LOAD_ARGS_2 (a1, a2)
+#define LOAD_REGS_3 \
+ register long _out2 asm ("out2") = _arg3; \
+ LOAD_REGS_2
+#define LOAD_ARGS_4(a1, a2, a3, a4) \
+ long _arg4 = (long) (a4); \
+ LOAD_ARGS_3 (a1, a2, a3)
+#define LOAD_REGS_4 \
+ register long _out3 asm ("out3") = _arg4; \
+ LOAD_REGS_3
+#define LOAD_ARGS_5(a1, a2, a3, a4, a5) \
+ long _arg5 = (long) (a5); \
+ LOAD_ARGS_4 (a1, a2, a3, a4)
+#define LOAD_REGS_5 \
+ register long _out4 asm ("out4") = _arg5; \
+ LOAD_REGS_4
+#define LOAD_ARGS_6(a1, a2, a3, a4, a5, a6) \
+ long _arg6 = (long) (a6); \
+ LOAD_ARGS_5 (a1, a2, a3, a4, a5)
+#define LOAD_REGS_6 \
+ register long _out5 asm ("out5") = _arg6; \
+ LOAD_REGS_5
+
+#define ASM_OUTARGS_0
+#define ASM_OUTARGS_1 ASM_OUTARGS_0, "=r" (_out0)
+#define ASM_OUTARGS_2 ASM_OUTARGS_1, "=r" (_out1)
+#define ASM_OUTARGS_3 ASM_OUTARGS_2, "=r" (_out2)
+#define ASM_OUTARGS_4 ASM_OUTARGS_3, "=r" (_out3)
+#define ASM_OUTARGS_5 ASM_OUTARGS_4, "=r" (_out4)
+#define ASM_OUTARGS_6 ASM_OUTARGS_5, "=r" (_out5)
+
+#ifdef IA64_USE_NEW_STUB
+#define ASM_ARGS_0
+#define ASM_ARGS_1 ASM_ARGS_0, "4" (_out0)
+#define ASM_ARGS_2 ASM_ARGS_1, "5" (_out1)
+#define ASM_ARGS_3 ASM_ARGS_2, "6" (_out2)
+#define ASM_ARGS_4 ASM_ARGS_3, "7" (_out3)
+#define ASM_ARGS_5 ASM_ARGS_4, "8" (_out4)
+#define ASM_ARGS_6 ASM_ARGS_5, "9" (_out5)
+#else
+#define ASM_ARGS_0
+#define ASM_ARGS_1 ASM_ARGS_0, "3" (_out0)
+#define ASM_ARGS_2 ASM_ARGS_1, "4" (_out1)
+#define ASM_ARGS_3 ASM_ARGS_2, "5" (_out2)
+#define ASM_ARGS_4 ASM_ARGS_3, "6" (_out3)
+#define ASM_ARGS_5 ASM_ARGS_4, "7" (_out4)
+#define ASM_ARGS_6 ASM_ARGS_5, "8" (_out5)
+#endif
+
+#define ASM_CLOBBERS_0 ASM_CLOBBERS_1, "out0"
+#define ASM_CLOBBERS_1 ASM_CLOBBERS_2, "out1"
+#define ASM_CLOBBERS_2 ASM_CLOBBERS_3, "out2"
+#define ASM_CLOBBERS_3 ASM_CLOBBERS_4, "out3"
+#define ASM_CLOBBERS_4 ASM_CLOBBERS_5, "out4"
+#define ASM_CLOBBERS_5 ASM_CLOBBERS_6, "out5"
+#define ASM_CLOBBERS_6_COMMON , "out6", "out7", \
+ /* Non-stacked integer registers, minus r8, r10, r15. */ \
+ "r2", "r3", "r9", "r11", "r12", "r13", "r14", "r16", "r17", "r18", \
+ "r19", "r20", "r21", "r22", "r23", "r24", "r25", "r26", "r27", \
+ "r28", "r29", "r30", "r31", \
+ /* Predicate registers. */ \
+ "p6", "p7", "p8", "p9", "p10", "p11", "p12", "p13", "p14", "p15", \
+ /* Non-rotating fp registers. */ \
+ "f6", "f7", "f8", "f9", "f10", "f11", "f12", "f13", "f14", "f15", \
+ /* Branch registers. */ \
+ "b6"
+
+#ifdef IA64_USE_NEW_STUB
+# define ASM_CLOBBERS_6 ASM_CLOBBERS_6_COMMON
+#else
+# define ASM_CLOBBERS_6 ASM_CLOBBERS_6_COMMON , "b7"
+#endif
+
+#endif /* not __ASSEMBLER__ */
+
+/* Pointer mangling support. */
+#if IS_IN (rtld)
+/* We cannot use the thread descriptor because in ld.so we use setjmp
+ earlier than the descriptor is initialized. */
+#else
+# ifdef __ASSEMBLER__
+# define PTR_MANGLE(reg, tmpreg) \
+ add tmpreg=-16,r13 \
+ ;; \
+ ld8 tmpreg=[tmpreg] \
+ ;; \
+ xor reg=reg, 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/ia64/sysdep.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/ia64/system.c b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/system.c
new file mode 100644
index 0000000000..7fd5c18864
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/system.c
@@ -0,0 +1,30 @@
+/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+/* We have to and actually can handle cancelable system(). The big
+ problem: we have to kill the child process if necessary. To do
+ this a cleanup handler has to be registered and is has to be able
+ to find the PID of the child. The main problem is to reliable have
+ the PID when needed. It is not necessary for the parent thread to
+ return. It might still be in the kernel when the cancellation
+ request comes. Therefore we have to use the clone() calls ability
+ to have the kernel write the PID into the user-level variable. */
+#define FORK() \
+ INLINE_SYSCALL (clone2, 6, CLONE_PARENT_SETTID | SIGCHLD, NULL, 0, \
+ &pid, NULL, NULL)
+
+#include <sysdeps/unix/sysv/linux/system.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/ia64/timer_create.c b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/timer_create.c
new file mode 100644
index 0000000000..d307135003
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/timer_create.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/x86_64/timer_create.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/ia64/timer_delete.c b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/timer_delete.c
new file mode 100644
index 0000000000..2dd94f5c7a
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/timer_delete.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/x86_64/timer_delete.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/ia64/timer_getoverr.c b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/timer_getoverr.c
new file mode 100644
index 0000000000..22eaff5cda
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/timer_getoverr.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/x86_64/timer_getoverr.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/ia64/timer_gettime.c b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/timer_gettime.c
new file mode 100644
index 0000000000..cea524bae5
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/timer_gettime.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/x86_64/timer_gettime.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/ia64/timer_settime.c b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/timer_settime.c
new file mode 100644
index 0000000000..fa231149d5
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/timer_settime.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/x86_64/timer_settime.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/ia64/tst-setcontext2.c b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/tst-setcontext2.c
new file mode 100644
index 0000000000..c2a3fa9797
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/tst-setcontext2.c
@@ -0,0 +1,24 @@
+/* Work around incorrect type of IA64 uc_sigmask.
+ Copyright (C) 2016-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <signal.h>
+
+#undef sigismember
+#define sigismember(set, signo) sigismember ((const sigset_t *) (set), (signo))
+
+#include <stdlib/tst-setcontext2.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/ia64/ucontext_i.h b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/ucontext_i.h
new file mode 100644
index 0000000000..507a1d8f01
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/ucontext_i.h
@@ -0,0 +1,46 @@
+/* Copyright (C) 2001-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by David Mosberger-Tang <davidm@hpl.hp.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/>. */
+
+/* Constants shared between setcontext() and getcontext(). Don't
+ install this header file. */
+
+#define SIG_BLOCK 0
+#define SIG_UNBLOCK 1
+#define SIG_SETMASK 2
+
+#include <sigcontext-offsets.h>
+
+#define rTMP r16
+#define rPOS r16
+#define rCPOS r17
+#define rNAT r18
+
+#define rB5 r18
+#define rB4 r19
+#define rB3 r20
+#define rB2 r21
+#define rB1 r22
+#define rB0 r23
+#define rRSC r24
+#define rBSP r25
+#define rRNAT r26
+#define rUNAT r27
+#define rFPSR r28
+#define rPFS r29
+#define rLC r30
+#define rPR r31
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/ia64/umount.c b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/umount.c
new file mode 100644
index 0000000000..82022410a0
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/umount.c
@@ -0,0 +1,29 @@
+/* umount system call for Linux/ia64.
+ 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 <sys/mount.h>
+#include <errno.h>
+
+#include <sysdep.h>
+
+/* Unmount a filesystem. */
+int
+umount (const char *special_file)
+{
+ return INLINE_SYSCALL (umount, 2, special_file, 0);
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/ia64/unwind-dw2-fde.c b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/unwind-dw2-fde.c
new file mode 100644
index 0000000000..15d12abfce
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/unwind-dw2-fde.c
@@ -0,0 +1 @@
+/* Linux/ia64 does not need unwind table registry. */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/ia64/unwind-forcedunwind.c b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/unwind-forcedunwind.c
new file mode 100644
index 0000000000..982e5fe057
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/unwind-forcedunwind.c
@@ -0,0 +1,38 @@
+/* Copyright (C) 2003-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 <dlfcn.h>
+#include <stdio.h>
+#include <unwind.h>
+#include <pthreadP.h>
+
+static _Unwind_Word (*libgcc_s_getbsp) (struct _Unwind_Context *);
+
+#define ARCH_CANCEL_INIT(handle) \
+ ((libgcc_s_getbsp = __libc_dlsym (handle, "_Unwind_GetBSP")) == NULL)
+
+#include <sysdeps/nptl/unwind-forcedunwind.c>
+
+_Unwind_Word
+_Unwind_GetBSP (struct _Unwind_Context *context)
+{
+ if (__builtin_expect (libgcc_s_getbsp == NULL, 0))
+ pthread_cancel_init ();
+
+ return libgcc_s_getbsp (context);
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/ia64/unwind_longjmp.c b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/unwind_longjmp.c
new file mode 100644
index 0000000000..874ed18d6b
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/unwind_longjmp.c
@@ -0,0 +1,43 @@
+/* Copyright (C) 1991-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <stddef.h>
+#include <setjmp.h>
+#include <signal.h>
+#include <pthreadP.h>
+#include <jmpbuf-unwind.h>
+
+extern void __sigstack_longjmp (__jmp_buf, int)
+ __attribute__ ((noreturn));
+
+/* Like __libc_siglongjmp(), but safe for crossing from alternate
+ signal stack to normal stack. Needed by NPTL. */
+void
+__libc_unwind_longjmp (sigjmp_buf env, int val)
+{
+ /* Perform any cleanups needed by the frames being unwound. */
+ __pthread_cleanup_upto (env->__jmpbuf, CURRENT_STACK_FRAME);
+
+ if (env[0].__mask_was_saved)
+ /* Restore the saved signal mask. */
+ (void) __sigprocmask (SIG_SETMASK, &env[0].__saved_mask,
+ (sigset_t *) NULL);
+
+ /* Call the machine-dependent function to restore machine state. */
+ __sigstack_longjmp (env[0].__jmpbuf, val ?: 1);
+}
+hidden_def (__libc_unwind_longjmp)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/ia64/vfork.S b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/vfork.S
new file mode 100644
index 0000000000..64fca5912f
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/vfork.S
@@ -0,0 +1,50 @@
+/* Copyright (C) 2000-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+
+#include <sysdep.h>
+#define _SIGNAL_H
+#include <bits/signum.h>
+#include <tcb-offsets.h>
+
+/* The following are defined in linux/sched.h, which unfortunately */
+/* is not safe for inclusion in an assembly file. */
+#define CLONE_VM 0x00000100 /* set if VM shared between processes */
+#define CLONE_VFORK 0x00004000 /* set if the parent wants the child to wake it up on mm_release */
+
+/* pid_t vfork(void); */
+/* Implemented as __clone_syscall(CLONE_VFORK | CLONE_VM | SIGCHLD, 0) */
+
+ENTRY (__libc_vfork)
+ .prologue // work around a GAS bug which triggers if
+ .body // first .prologue is not at the beginning of proc.
+ alloc r2=ar.pfs,0,0,2,0
+ mov out0=CLONE_VM+CLONE_VFORK+SIGCHLD
+ mov out1=0 /* Standard sp value. */
+ ;;
+ DO_CALL (SYS_ify (clone))
+ cmp.eq p6,p0=0,r8
+(p6) br.cond.dptk 1f
+1:
+ cmp.eq p6,p0=-1,r10
+(p6) br.cond.spnt.few __syscall_error
+ ret
+PSEUDO_END (__libc_vfork)
+
+strong_alias (__libc_vfork, __vfork)
+libc_hidden_def (__vfork)
+weak_alias (__vfork, vfork)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/ia64/wordexp.c b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/wordexp.c
new file mode 100644
index 0000000000..eaf3a670b2
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/ia64/wordexp.c
@@ -0,0 +1,59 @@
+/* Copyright (C) 2001-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <shlib-compat.h>
+
+/* For Linux/Alpha we have to make the wordexp symbols versioned. */
+#define wordexp(words, pwordexp, flags) \
+ __new_wordexp (words, pwordexp, flags)
+
+#include <posix/wordexp.c>
+
+versioned_symbol (libc, __new_wordexp, wordexp, GLIBC_2_2_2);
+
+
+#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_2_2)
+/* The old, incorrect wordexp_t definition. */
+typedef struct
+ {
+ int we_wordc; /* Count of words matched. */
+ char **we_wordv; /* List of expanded words. */
+ int we_offs; /* Slots to reserve in `we_wordv'. */
+ } old_wordexp_t;
+
+
+int
+attribute_compat_text_section
+__old_wordexp (const char *words, old_wordexp_t *pwordexp, int flags)
+{
+ wordexp_t we;
+ int result;
+
+ we.we_wordc = pwordexp->we_wordc;
+ we.we_wordv = pwordexp->we_wordv;
+ we.we_offs = pwordexp->we_offs;
+
+ result = __new_wordexp (words, &we, flags);
+
+ pwordexp->we_wordc = we.we_wordc;
+ pwordexp->we_wordv = we.we_wordv;
+ pwordexp->we_offs = we.we_offs;
+
+ return result;
+}
+compat_symbol (libc, __old_wordexp, wordexp, GLIBC_2_1);
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/if_index.c b/REORG.TODO/sysdeps/unix/sysv/linux/if_index.c
new file mode 100644
index 0000000000..8ba5eae781
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/if_index.c
@@ -0,0 +1,241 @@
+/* Copyright (C) 1997-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <alloca.h>
+#include <errno.h>
+#include <string.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <net/if.h>
+#include <sys/socket.h>
+#include <sys/ioctl.h>
+#include <libc-lock.h>
+#include <not-cancel.h>
+
+#include "netlinkaccess.h"
+
+
+unsigned int
+__if_nametoindex (const char *ifname)
+{
+#ifndef SIOCGIFINDEX
+ __set_errno (ENOSYS);
+ return 0;
+#else
+ struct ifreq ifr;
+ int fd = __opensock ();
+
+ if (fd < 0)
+ return 0;
+
+ strncpy (ifr.ifr_name, ifname, sizeof (ifr.ifr_name));
+ if (__ioctl (fd, SIOCGIFINDEX, &ifr) < 0)
+ {
+ int saved_errno = errno;
+ close_not_cancel_no_status (fd);
+ if (saved_errno == EINVAL)
+ __set_errno (ENOSYS);
+ return 0;
+ }
+ close_not_cancel_no_status (fd);
+ return ifr.ifr_ifindex;
+#endif
+}
+libc_hidden_def (__if_nametoindex)
+weak_alias (__if_nametoindex, if_nametoindex)
+libc_hidden_weak (if_nametoindex)
+
+
+void
+__if_freenameindex (struct if_nameindex *ifn)
+{
+ struct if_nameindex *ptr = ifn;
+ while (ptr->if_name || ptr->if_index)
+ {
+ free (ptr->if_name);
+ ++ptr;
+ }
+ free (ifn);
+}
+libc_hidden_def (__if_freenameindex)
+weak_alias (__if_freenameindex, if_freenameindex)
+libc_hidden_weak (if_freenameindex)
+
+
+static struct if_nameindex *
+if_nameindex_netlink (void)
+{
+ struct netlink_handle nh = { 0, 0, 0, NULL, NULL };
+ struct if_nameindex *idx = NULL;
+
+ if (__netlink_open (&nh) < 0)
+ return NULL;
+
+
+ /* Tell the kernel that we wish to get a list of all
+ active interfaces. Collect all data for every interface. */
+ if (__netlink_request (&nh, RTM_GETLINK) < 0)
+ goto exit_free;
+
+ /* Count the interfaces. */
+ unsigned int nifs = 0;
+ for (struct netlink_res *nlp = nh.nlm_list; nlp; nlp = nlp->next)
+ {
+ struct nlmsghdr *nlh;
+ size_t size = nlp->size;
+
+ if (nlp->nlh == NULL)
+ continue;
+
+ /* Walk through all entries we got from the kernel and look, which
+ message type they contain. */
+ for (nlh = nlp->nlh; NLMSG_OK (nlh, size); nlh = NLMSG_NEXT (nlh, size))
+ {
+ /* Check if the message is what we want. */
+ if ((pid_t) nlh->nlmsg_pid != nh.pid || nlh->nlmsg_seq != nlp->seq)
+ continue;
+
+ if (nlh->nlmsg_type == NLMSG_DONE)
+ break; /* ok */
+
+ if (nlh->nlmsg_type == RTM_NEWLINK)
+ ++nifs;
+ }
+ }
+
+ idx = malloc ((nifs + 1) * sizeof (struct if_nameindex));
+ if (idx == NULL)
+ {
+ nomem:
+ __set_errno (ENOBUFS);
+ goto exit_free;
+ }
+
+ /* Add the interfaces. */
+ nifs = 0;
+ for (struct netlink_res *nlp = nh.nlm_list; nlp; nlp = nlp->next)
+ {
+ struct nlmsghdr *nlh;
+ size_t size = nlp->size;
+
+ if (nlp->nlh == NULL)
+ continue;
+
+ /* Walk through all entries we got from the kernel and look, which
+ message type they contain. */
+ for (nlh = nlp->nlh; NLMSG_OK (nlh, size); nlh = NLMSG_NEXT (nlh, size))
+ {
+ /* Check if the message is what we want. */
+ if ((pid_t) nlh->nlmsg_pid != nh.pid || nlh->nlmsg_seq != nlp->seq)
+ continue;
+
+ if (nlh->nlmsg_type == NLMSG_DONE)
+ break; /* ok */
+
+ if (nlh->nlmsg_type == RTM_NEWLINK)
+ {
+ struct ifinfomsg *ifim = (struct ifinfomsg *) NLMSG_DATA (nlh);
+ struct rtattr *rta = IFLA_RTA (ifim);
+ size_t rtasize = IFLA_PAYLOAD (nlh);
+
+ idx[nifs].if_index = ifim->ifi_index;
+
+ while (RTA_OK (rta, rtasize))
+ {
+ char *rta_data = RTA_DATA (rta);
+ size_t rta_payload = RTA_PAYLOAD (rta);
+
+ if (rta->rta_type == IFLA_IFNAME)
+ {
+ idx[nifs].if_name = __strndup (rta_data, rta_payload);
+ if (idx[nifs].if_name == NULL)
+ {
+ idx[nifs].if_index = 0;
+ __if_freenameindex (idx);
+ idx = NULL;
+ goto nomem;
+ }
+ break;
+ }
+
+ rta = RTA_NEXT (rta, rtasize);
+ }
+
+ ++nifs;
+ }
+ }
+ }
+
+ idx[nifs].if_index = 0;
+ idx[nifs].if_name = NULL;
+
+ exit_free:
+ __netlink_free_handle (&nh);
+ __netlink_close (&nh);
+
+ return idx;
+}
+
+
+struct if_nameindex *
+__if_nameindex (void)
+{
+#ifndef SIOCGIFINDEX
+ __set_errno (ENOSYS);
+ return NULL;
+#else
+ struct if_nameindex *result = if_nameindex_netlink ();
+ return result;
+#endif
+}
+weak_alias (__if_nameindex, if_nameindex)
+libc_hidden_weak (if_nameindex)
+
+
+char *
+__if_indextoname (unsigned int ifindex, char *ifname)
+{
+ /* We may be able to do the conversion directly, rather than searching a
+ list. This ioctl is not present in kernels before version 2.1.50. */
+ struct ifreq ifr;
+ int fd;
+ int status;
+
+ fd = __opensock ();
+
+ if (fd < 0)
+ return NULL;
+
+ ifr.ifr_ifindex = ifindex;
+ status = __ioctl (fd, SIOCGIFNAME, &ifr);
+
+ close_not_cancel_no_status (fd);
+
+ if (status < 0)
+ {
+ if (errno == ENODEV)
+ /* POSIX requires ENXIO. */
+ __set_errno (ENXIO);
+
+ return NULL;
+ }
+ else
+ return strncpy (ifname, ifr.ifr_name, IFNAMSIZ);
+}
+weak_alias (__if_indextoname, if_indextoname)
+libc_hidden_weak (if_indextoname)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/ifaddrs.c b/REORG.TODO/sysdeps/unix/sysv/linux/ifaddrs.c
new file mode 100644
index 0000000000..3bc9902863
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/ifaddrs.c
@@ -0,0 +1,846 @@
+/* getifaddrs -- get names and addresses of all network interfaces
+ 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 <alloca.h>
+#include <assert.h>
+#include <errno.h>
+#include <ifaddrs.h>
+#include <net/if.h>
+#include <netinet/in.h>
+#include <netpacket/packet.h>
+#include <stdbool.h>
+#include <stdint.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/ioctl.h>
+#include <sys/socket.h>
+#include <sysdep.h>
+#include <time.h>
+#include <unistd.h>
+
+#include "netlinkaccess.h"
+
+
+/* There is a problem with this type. The address length for
+ Infiniband sockets is much longer than the 8 bytes allocated in the
+ sockaddr_ll definition. Hence we use here a special
+ definition. */
+struct sockaddr_ll_max
+ {
+ unsigned short int sll_family;
+ unsigned short int sll_protocol;
+ int sll_ifindex;
+ unsigned short int sll_hatype;
+ unsigned char sll_pkttype;
+ unsigned char sll_halen;
+ unsigned char sll_addr[24];
+ };
+
+
+/* struct to hold the data for one ifaddrs entry, so we can allocate
+ everything at once. */
+struct ifaddrs_storage
+{
+ struct ifaddrs ifa;
+ union
+ {
+ /* Save space for the biggest of the four used sockaddr types and
+ avoid a lot of casts. */
+ struct sockaddr sa;
+ struct sockaddr_ll_max sl;
+ struct sockaddr_in s4;
+ struct sockaddr_in6 s6;
+ } addr, netmask, broadaddr;
+ char name[IF_NAMESIZE + 1];
+};
+
+
+void
+__netlink_free_handle (struct netlink_handle *h)
+{
+ struct netlink_res *ptr;
+ int saved_errno = errno;
+
+ ptr = h->nlm_list;
+ while (ptr != NULL)
+ {
+ struct netlink_res *tmpptr;
+
+ tmpptr = ptr->next;
+ free (ptr);
+ ptr = tmpptr;
+ }
+
+ __set_errno (saved_errno);
+}
+
+
+static int
+__netlink_sendreq (struct netlink_handle *h, int type)
+{
+ struct req
+ {
+ struct nlmsghdr nlh;
+ struct rtgenmsg g;
+ char pad[0];
+ } req;
+ struct sockaddr_nl nladdr;
+
+ if (h->seq == 0)
+ h->seq = time (NULL);
+
+ req.nlh.nlmsg_len = sizeof (req);
+ req.nlh.nlmsg_type = type;
+ req.nlh.nlmsg_flags = NLM_F_ROOT | NLM_F_MATCH | NLM_F_REQUEST;
+ req.nlh.nlmsg_pid = 0;
+ req.nlh.nlmsg_seq = h->seq;
+ req.g.rtgen_family = AF_UNSPEC;
+ if (sizeof (req) != offsetof (struct req, pad))
+ memset (req.pad, '\0', sizeof (req) - offsetof (struct req, pad));
+
+ memset (&nladdr, '\0', sizeof (nladdr));
+ nladdr.nl_family = AF_NETLINK;
+
+ return TEMP_FAILURE_RETRY (__sendto (h->fd, (void *) &req, sizeof (req), 0,
+ (struct sockaddr *) &nladdr,
+ sizeof (nladdr)));
+}
+
+
+int
+__netlink_request (struct netlink_handle *h, int type)
+{
+ struct netlink_res *nlm_next;
+ struct sockaddr_nl nladdr;
+ struct nlmsghdr *nlmh;
+ ssize_t read_len;
+ bool done = false;
+
+#ifdef PAGE_SIZE
+ /* Help the compiler optimize out the malloc call if PAGE_SIZE
+ is constant and smaller or equal to PTHREAD_STACK_MIN/4. */
+ const size_t buf_size = PAGE_SIZE;
+#else
+ const size_t buf_size = __getpagesize ();
+#endif
+ bool use_malloc = false;
+ char *buf;
+
+ if (__libc_use_alloca (buf_size))
+ buf = alloca (buf_size);
+ else
+ {
+ buf = malloc (buf_size);
+ if (buf != NULL)
+ use_malloc = true;
+ else
+ goto out_fail;
+ }
+
+ struct iovec iov = { buf, buf_size };
+
+ if (__netlink_sendreq (h, type) < 0)
+ goto out_fail;
+
+ while (! done)
+ {
+ struct msghdr msg =
+ {
+ .msg_name = (void *) &nladdr,
+ .msg_namelen = sizeof (nladdr),
+ .msg_iov = &iov,
+ .msg_iovlen = 1,
+ .msg_control = NULL,
+ .msg_controllen = 0,
+ .msg_flags = 0
+ };
+
+ read_len = TEMP_FAILURE_RETRY (__recvmsg (h->fd, &msg, 0));
+ __netlink_assert_response (h->fd, read_len);
+ if (read_len < 0)
+ goto out_fail;
+
+ if (nladdr.nl_pid != 0)
+ continue;
+
+ if (__glibc_unlikely (msg.msg_flags & MSG_TRUNC))
+ goto out_fail;
+
+ size_t count = 0;
+ size_t remaining_len = read_len;
+ for (nlmh = (struct nlmsghdr *) buf;
+ NLMSG_OK (nlmh, remaining_len);
+ nlmh = (struct nlmsghdr *) NLMSG_NEXT (nlmh, remaining_len))
+ {
+ if ((pid_t) nlmh->nlmsg_pid != h->pid
+ || nlmh->nlmsg_seq != h->seq)
+ continue;
+
+ ++count;
+ if (nlmh->nlmsg_type == NLMSG_DONE)
+ {
+ /* We found the end, leave the loop. */
+ done = true;
+ break;
+ }
+ if (nlmh->nlmsg_type == NLMSG_ERROR)
+ {
+ struct nlmsgerr *nlerr = (struct nlmsgerr *) NLMSG_DATA (nlmh);
+ if (nlmh->nlmsg_len < NLMSG_LENGTH (sizeof (struct nlmsgerr)))
+ errno = EIO;
+ else
+ errno = -nlerr->error;
+ goto out_fail;
+ }
+ }
+
+ /* If there was nothing with the expected nlmsg_pid and nlmsg_seq,
+ there is no point to record it. */
+ if (count == 0)
+ continue;
+
+ nlm_next = (struct netlink_res *) malloc (sizeof (struct netlink_res)
+ + read_len);
+ if (nlm_next == NULL)
+ goto out_fail;
+ nlm_next->next = NULL;
+ nlm_next->nlh = memcpy (nlm_next + 1, buf, read_len);
+ nlm_next->size = read_len;
+ nlm_next->seq = h->seq;
+ if (h->nlm_list == NULL)
+ h->nlm_list = nlm_next;
+ else
+ h->end_ptr->next = nlm_next;
+ h->end_ptr = nlm_next;
+ }
+
+ if (use_malloc)
+ free (buf);
+ return 0;
+
+out_fail:
+ if (use_malloc)
+ free (buf);
+ return -1;
+}
+
+
+void
+__netlink_close (struct netlink_handle *h)
+{
+ /* Don't modify errno. */
+ INTERNAL_SYSCALL_DECL (err);
+ (void) INTERNAL_SYSCALL (close, err, 1, h->fd);
+}
+
+
+/* Open a NETLINK socket. */
+int
+__netlink_open (struct netlink_handle *h)
+{
+ struct sockaddr_nl nladdr;
+
+ h->fd = __socket (PF_NETLINK, SOCK_RAW | SOCK_CLOEXEC, NETLINK_ROUTE);
+ if (h->fd < 0)
+ goto out;
+
+ memset (&nladdr, '\0', sizeof (nladdr));
+ nladdr.nl_family = AF_NETLINK;
+ if (__bind (h->fd, (struct sockaddr *) &nladdr, sizeof (nladdr)) < 0)
+ {
+ close_and_out:
+ __netlink_close (h);
+ out:
+ return -1;
+ }
+ /* Determine the ID the kernel assigned for this netlink connection.
+ It is not necessarily the PID if there is more than one socket
+ open. */
+ socklen_t addr_len = sizeof (nladdr);
+ if (__getsockname (h->fd, (struct sockaddr *) &nladdr, &addr_len) < 0)
+ goto close_and_out;
+ h->pid = nladdr.nl_pid;
+ return 0;
+}
+
+
+/* We know the number of RTM_NEWLINK entries, so we reserve the first
+ # of entries for this type. All RTM_NEWADDR entries have an index
+ pointer to the RTM_NEWLINK entry. To find the entry, create
+ a table to map kernel index entries to our index numbers.
+ Since we get at first all RTM_NEWLINK entries, it can never happen
+ that a RTM_NEWADDR index is not known to this map. */
+static int
+internal_function
+map_newlink (int index, struct ifaddrs_storage *ifas, int *map, int max)
+{
+ int i;
+
+ for (i = 0; i < max; i++)
+ {
+ if (map[i] == -1)
+ {
+ map[i] = index;
+ if (i > 0)
+ ifas[i - 1].ifa.ifa_next = &ifas[i].ifa;
+ return i;
+ }
+ else if (map[i] == index)
+ return i;
+ }
+
+ /* This means interfaces changed between the reading of the
+ RTM_GETLINK and RTM_GETADDR information. We have to repeat
+ everything. */
+ return -1;
+}
+
+
+/* Create a linked list of `struct ifaddrs' structures, one for each
+ network interface on the host machine. If successful, store the
+ list in *IFAP and return 0. On errors, return -1 and set `errno'. */
+static int
+getifaddrs_internal (struct ifaddrs **ifap)
+{
+ struct netlink_handle nh = { 0, 0, 0, NULL, NULL };
+ struct netlink_res *nlp;
+ struct ifaddrs_storage *ifas;
+ unsigned int i, newlink, newaddr, newaddr_idx;
+ int *map_newlink_data;
+ size_t ifa_data_size = 0; /* Size to allocate for all ifa_data. */
+ char *ifa_data_ptr; /* Pointer to the unused part of memory for
+ ifa_data. */
+ int result = 0;
+
+ *ifap = NULL;
+
+ if (__netlink_open (&nh) < 0)
+ return -1;
+
+ /* Tell the kernel that we wish to get a list of all
+ active interfaces, collect all data for every interface. */
+ if (__netlink_request (&nh, RTM_GETLINK) < 0)
+ {
+ result = -1;
+ goto exit_free;
+ }
+
+ /* Now ask the kernel for all addresses which are assigned
+ to an interface and collect all data for every interface.
+ Since we store the addresses after the interfaces in the
+ list, we will later always find the interface before the
+ corresponding addresses. */
+ ++nh.seq;
+ if (__netlink_request (&nh, RTM_GETADDR) < 0)
+ {
+ result = -1;
+ goto exit_free;
+ }
+
+ /* Count all RTM_NEWLINK and RTM_NEWADDR entries to allocate
+ enough memory. */
+ newlink = newaddr = 0;
+ for (nlp = nh.nlm_list; nlp; nlp = nlp->next)
+ {
+ struct nlmsghdr *nlh;
+ size_t size = nlp->size;
+
+ if (nlp->nlh == NULL)
+ continue;
+
+ /* Walk through all entries we got from the kernel and look, which
+ message type they contain. */
+ for (nlh = nlp->nlh; NLMSG_OK (nlh, size); nlh = NLMSG_NEXT (nlh, size))
+ {
+ /* Check if the message is what we want. */
+ if ((pid_t) nlh->nlmsg_pid != nh.pid || nlh->nlmsg_seq != nlp->seq)
+ continue;
+
+ if (nlh->nlmsg_type == NLMSG_DONE)
+ break; /* ok */
+
+ if (nlh->nlmsg_type == RTM_NEWLINK)
+ {
+ /* A RTM_NEWLINK message can have IFLA_STATS data. We need to
+ know the size before creating the list to allocate enough
+ memory. */
+ struct ifinfomsg *ifim = (struct ifinfomsg *) NLMSG_DATA (nlh);
+ struct rtattr *rta = IFLA_RTA (ifim);
+ size_t rtasize = IFLA_PAYLOAD (nlh);
+
+ while (RTA_OK (rta, rtasize))
+ {
+ size_t rta_payload = RTA_PAYLOAD (rta);
+
+ if (rta->rta_type == IFLA_STATS)
+ {
+ ifa_data_size += rta_payload;
+ break;
+ }
+ else
+ rta = RTA_NEXT (rta, rtasize);
+ }
+ ++newlink;
+ }
+ else if (nlh->nlmsg_type == RTM_NEWADDR)
+ ++newaddr;
+ }
+ }
+
+ /* Return if no interface is up. */
+ if ((newlink + newaddr) == 0)
+ goto exit_free;
+
+ /* Allocate memory for all entries we have and initialize next
+ pointer. */
+ ifas = (struct ifaddrs_storage *) calloc (1,
+ (newlink + newaddr)
+ * sizeof (struct ifaddrs_storage)
+ + ifa_data_size);
+ if (ifas == NULL)
+ {
+ result = -1;
+ goto exit_free;
+ }
+
+ /* Table for mapping kernel index to entry in our list. */
+ map_newlink_data = alloca (newlink * sizeof (int));
+ memset (map_newlink_data, '\xff', newlink * sizeof (int));
+
+ ifa_data_ptr = (char *) &ifas[newlink + newaddr];
+ newaddr_idx = 0; /* Counter for newaddr index. */
+
+ /* Walk through the list of data we got from the kernel. */
+ for (nlp = nh.nlm_list; nlp; nlp = nlp->next)
+ {
+ struct nlmsghdr *nlh;
+ size_t size = nlp->size;
+
+ if (nlp->nlh == NULL)
+ continue;
+
+ /* Walk through one message and look at the type: If it is our
+ message, we need RTM_NEWLINK/RTM_NEWADDR and stop if we reach
+ the end or we find the end marker (in this case we ignore the
+ following data. */
+ for (nlh = nlp->nlh; NLMSG_OK (nlh, size); nlh = NLMSG_NEXT (nlh, size))
+ {
+ int ifa_index = 0;
+
+ /* Check if the message is the one we want */
+ if ((pid_t) nlh->nlmsg_pid != nh.pid || nlh->nlmsg_seq != nlp->seq)
+ continue;
+
+ if (nlh->nlmsg_type == NLMSG_DONE)
+ break; /* ok */
+
+ if (nlh->nlmsg_type == RTM_NEWLINK)
+ {
+ /* We found a new interface. Now extract everything from the
+ interface data we got and need. */
+ struct ifinfomsg *ifim = (struct ifinfomsg *) NLMSG_DATA (nlh);
+ struct rtattr *rta = IFLA_RTA (ifim);
+ size_t rtasize = IFLA_PAYLOAD (nlh);
+
+ /* Interfaces are stored in the first "newlink" entries
+ of our list, starting in the order as we got from the
+ kernel. */
+ ifa_index = map_newlink (ifim->ifi_index - 1, ifas,
+ map_newlink_data, newlink);
+ if (__glibc_unlikely (ifa_index == -1))
+ {
+ try_again:
+ result = -EAGAIN;
+ free (ifas);
+ goto exit_free;
+ }
+ ifas[ifa_index].ifa.ifa_flags = ifim->ifi_flags;
+
+ while (RTA_OK (rta, rtasize))
+ {
+ char *rta_data = RTA_DATA (rta);
+ size_t rta_payload = RTA_PAYLOAD (rta);
+
+ switch (rta->rta_type)
+ {
+ case IFLA_ADDRESS:
+ if (rta_payload <= sizeof (ifas[ifa_index].addr))
+ {
+ ifas[ifa_index].addr.sl.sll_family = AF_PACKET;
+ memcpy (ifas[ifa_index].addr.sl.sll_addr,
+ (char *) rta_data, rta_payload);
+ ifas[ifa_index].addr.sl.sll_halen = rta_payload;
+ ifas[ifa_index].addr.sl.sll_ifindex
+ = ifim->ifi_index;
+ ifas[ifa_index].addr.sl.sll_hatype = ifim->ifi_type;
+
+ ifas[ifa_index].ifa.ifa_addr
+ = &ifas[ifa_index].addr.sa;
+ }
+ break;
+
+ case IFLA_BROADCAST:
+ if (rta_payload <= sizeof (ifas[ifa_index].broadaddr))
+ {
+ ifas[ifa_index].broadaddr.sl.sll_family = AF_PACKET;
+ memcpy (ifas[ifa_index].broadaddr.sl.sll_addr,
+ (char *) rta_data, rta_payload);
+ ifas[ifa_index].broadaddr.sl.sll_halen = rta_payload;
+ ifas[ifa_index].broadaddr.sl.sll_ifindex
+ = ifim->ifi_index;
+ ifas[ifa_index].broadaddr.sl.sll_hatype
+ = ifim->ifi_type;
+
+ ifas[ifa_index].ifa.ifa_broadaddr
+ = &ifas[ifa_index].broadaddr.sa;
+ }
+ break;
+
+ case IFLA_IFNAME: /* Name of Interface */
+ if ((rta_payload + 1) <= sizeof (ifas[ifa_index].name))
+ {
+ ifas[ifa_index].ifa.ifa_name = ifas[ifa_index].name;
+ *(char *) __mempcpy (ifas[ifa_index].name, rta_data,
+ rta_payload) = '\0';
+ }
+ break;
+
+ case IFLA_STATS: /* Statistics of Interface */
+ ifas[ifa_index].ifa.ifa_data = ifa_data_ptr;
+ ifa_data_ptr += rta_payload;
+ memcpy (ifas[ifa_index].ifa.ifa_data, rta_data,
+ rta_payload);
+ break;
+
+ case IFLA_UNSPEC:
+ break;
+ case IFLA_MTU:
+ break;
+ case IFLA_LINK:
+ break;
+ case IFLA_QDISC:
+ break;
+ default:
+ break;
+ }
+
+ rta = RTA_NEXT (rta, rtasize);
+ }
+ }
+ else if (nlh->nlmsg_type == RTM_NEWADDR)
+ {
+ struct ifaddrmsg *ifam = (struct ifaddrmsg *) NLMSG_DATA (nlh);
+ struct rtattr *rta = IFA_RTA (ifam);
+ size_t rtasize = IFA_PAYLOAD (nlh);
+
+ /* New Addresses are stored in the order we got them from
+ the kernel after the interfaces. Theoretically it is possible
+ that we have holes in the interface part of the list,
+ but we always have already the interface for this address. */
+ ifa_index = newlink + newaddr_idx;
+ int idx = map_newlink (ifam->ifa_index - 1, ifas,
+ map_newlink_data, newlink);
+ if (__glibc_unlikely (idx == -1))
+ goto try_again;
+ ifas[ifa_index].ifa.ifa_flags = ifas[idx].ifa.ifa_flags;
+ if (ifa_index > 0)
+ ifas[ifa_index - 1].ifa.ifa_next = &ifas[ifa_index].ifa;
+ ++newaddr_idx;
+
+ while (RTA_OK (rta, rtasize))
+ {
+ char *rta_data = RTA_DATA (rta);
+ size_t rta_payload = RTA_PAYLOAD (rta);
+
+ switch (rta->rta_type)
+ {
+ case IFA_ADDRESS:
+ {
+ struct sockaddr *sa;
+
+ if (ifas[ifa_index].ifa.ifa_addr != NULL)
+ {
+ /* In a point-to-poing network IFA_ADDRESS
+ contains the destination address, local
+ address is supplied in IFA_LOCAL attribute.
+ destination address and broadcast address
+ are stored in an union, so it doesn't matter
+ which name we use. */
+ ifas[ifa_index].ifa.ifa_broadaddr
+ = &ifas[ifa_index].broadaddr.sa;
+ sa = &ifas[ifa_index].broadaddr.sa;
+ }
+ else
+ {
+ ifas[ifa_index].ifa.ifa_addr
+ = &ifas[ifa_index].addr.sa;
+ sa = &ifas[ifa_index].addr.sa;
+ }
+
+ sa->sa_family = ifam->ifa_family;
+
+ switch (ifam->ifa_family)
+ {
+ case AF_INET:
+ /* Size must match that of an address for IPv4. */
+ if (rta_payload == 4)
+ memcpy (&((struct sockaddr_in *) sa)->sin_addr,
+ rta_data, rta_payload);
+ break;
+
+ case AF_INET6:
+ /* Size must match that of an address for IPv6. */
+ if (rta_payload == 16)
+ {
+ memcpy (&((struct sockaddr_in6 *) sa)->sin6_addr,
+ rta_data, rta_payload);
+ if (IN6_IS_ADDR_LINKLOCAL (rta_data)
+ || IN6_IS_ADDR_MC_LINKLOCAL (rta_data))
+ ((struct sockaddr_in6 *) sa)->sin6_scope_id
+ = ifam->ifa_index;
+ }
+ break;
+
+ default:
+ if (rta_payload <= sizeof (ifas[ifa_index].addr))
+ memcpy (sa->sa_data, rta_data, rta_payload);
+ break;
+ }
+ }
+ break;
+
+ case IFA_LOCAL:
+ if (ifas[ifa_index].ifa.ifa_addr != NULL)
+ {
+ /* If ifa_addr is set and we get IFA_LOCAL,
+ assume we have a point-to-point network.
+ Move address to correct field. */
+ ifas[ifa_index].broadaddr = ifas[ifa_index].addr;
+ ifas[ifa_index].ifa.ifa_broadaddr
+ = &ifas[ifa_index].broadaddr.sa;
+ memset (&ifas[ifa_index].addr, '\0',
+ sizeof (ifas[ifa_index].addr));
+ }
+
+ ifas[ifa_index].ifa.ifa_addr = &ifas[ifa_index].addr.sa;
+ ifas[ifa_index].ifa.ifa_addr->sa_family
+ = ifam->ifa_family;
+
+ switch (ifam->ifa_family)
+ {
+ case AF_INET:
+ /* Size must match that of an address for IPv4. */
+ if (rta_payload == 4)
+ memcpy (&ifas[ifa_index].addr.s4.sin_addr,
+ rta_data, rta_payload);
+ break;
+
+ case AF_INET6:
+ /* Size must match that of an address for IPv6. */
+ if (rta_payload == 16)
+ {
+ memcpy (&ifas[ifa_index].addr.s6.sin6_addr,
+ rta_data, rta_payload);
+ if (IN6_IS_ADDR_LINKLOCAL (rta_data)
+ || IN6_IS_ADDR_MC_LINKLOCAL (rta_data))
+ ifas[ifa_index].addr.s6.sin6_scope_id =
+ ifam->ifa_index;
+ }
+ break;
+
+ default:
+ if (rta_payload <= sizeof (ifas[ifa_index].addr))
+ memcpy (ifas[ifa_index].addr.sa.sa_data,
+ rta_data, rta_payload);
+ break;
+ }
+ break;
+
+ case IFA_BROADCAST:
+ /* We get IFA_BROADCAST, so IFA_LOCAL was too much. */
+ if (ifas[ifa_index].ifa.ifa_broadaddr != NULL)
+ memset (&ifas[ifa_index].broadaddr, '\0',
+ sizeof (ifas[ifa_index].broadaddr));
+
+ ifas[ifa_index].ifa.ifa_broadaddr
+ = &ifas[ifa_index].broadaddr.sa;
+ ifas[ifa_index].ifa.ifa_broadaddr->sa_family
+ = ifam->ifa_family;
+
+ switch (ifam->ifa_family)
+ {
+ case AF_INET:
+ /* Size must match that of an address for IPv4. */
+ if (rta_payload == 4)
+ memcpy (&ifas[ifa_index].broadaddr.s4.sin_addr,
+ rta_data, rta_payload);
+ break;
+
+ case AF_INET6:
+ /* Size must match that of an address for IPv6. */
+ if (rta_payload == 16)
+ {
+ memcpy (&ifas[ifa_index].broadaddr.s6.sin6_addr,
+ rta_data, rta_payload);
+ if (IN6_IS_ADDR_LINKLOCAL (rta_data)
+ || IN6_IS_ADDR_MC_LINKLOCAL (rta_data))
+ ifas[ifa_index].broadaddr.s6.sin6_scope_id
+ = ifam->ifa_index;
+ }
+ break;
+
+ default:
+ if (rta_payload <= sizeof (ifas[ifa_index].addr))
+ memcpy (&ifas[ifa_index].broadaddr.sa.sa_data,
+ rta_data, rta_payload);
+ break;
+ }
+ break;
+
+ case IFA_LABEL:
+ if (rta_payload + 1 <= sizeof (ifas[ifa_index].name))
+ {
+ ifas[ifa_index].ifa.ifa_name = ifas[ifa_index].name;
+ *(char *) __mempcpy (ifas[ifa_index].name, rta_data,
+ rta_payload) = '\0';
+ }
+ else
+ abort ();
+ break;
+
+ case IFA_UNSPEC:
+ break;
+ case IFA_CACHEINFO:
+ break;
+ default:
+ break;
+ }
+
+ rta = RTA_NEXT (rta, rtasize);
+ }
+
+ /* If we didn't get the interface name with the
+ address, use the name from the interface entry. */
+ if (ifas[ifa_index].ifa.ifa_name == NULL)
+ {
+ int idx = map_newlink (ifam->ifa_index - 1, ifas,
+ map_newlink_data, newlink);
+ if (__glibc_unlikely (idx == -1))
+ goto try_again;
+ ifas[ifa_index].ifa.ifa_name = ifas[idx].ifa.ifa_name;
+ }
+
+ /* Calculate the netmask. */
+ if (ifas[ifa_index].ifa.ifa_addr
+ && ifas[ifa_index].ifa.ifa_addr->sa_family != AF_UNSPEC
+ && ifas[ifa_index].ifa.ifa_addr->sa_family != AF_PACKET)
+ {
+ uint32_t max_prefixlen = 0;
+ char *cp = NULL;
+
+ ifas[ifa_index].ifa.ifa_netmask
+ = &ifas[ifa_index].netmask.sa;
+
+ switch (ifas[ifa_index].ifa.ifa_addr->sa_family)
+ {
+ case AF_INET:
+ cp = (char *) &ifas[ifa_index].netmask.s4.sin_addr;
+ max_prefixlen = 32;
+ break;
+
+ case AF_INET6:
+ cp = (char *) &ifas[ifa_index].netmask.s6.sin6_addr;
+ max_prefixlen = 128;
+ break;
+ }
+
+ ifas[ifa_index].ifa.ifa_netmask->sa_family
+ = ifas[ifa_index].ifa.ifa_addr->sa_family;
+
+ if (cp != NULL)
+ {
+ unsigned int preflen;
+
+ if (ifam->ifa_prefixlen > max_prefixlen)
+ preflen = max_prefixlen;
+ else
+ preflen = ifam->ifa_prefixlen;
+
+ for (i = 0; i < preflen / 8; i++)
+ *cp++ = 0xff;
+ if (preflen % 8)
+ *cp = 0xff << (8 - preflen % 8);
+ }
+ }
+ }
+ }
+ }
+
+ assert (ifa_data_ptr <= (char *) &ifas[newlink + newaddr] + ifa_data_size);
+
+ if (newaddr_idx > 0)
+ {
+ for (i = 0; i < newlink; ++i)
+ if (map_newlink_data[i] == -1)
+ {
+ /* We have fewer links then we anticipated. Adjust the
+ forward pointer to the first address entry. */
+ ifas[i - 1].ifa.ifa_next = &ifas[newlink].ifa;
+ }
+
+ if (i == 0 && newlink > 0)
+ /* No valid link, but we allocated memory. We have to
+ populate the first entry. */
+ memmove (ifas, &ifas[newlink], sizeof (struct ifaddrs_storage));
+ }
+
+ *ifap = &ifas[0].ifa;
+
+ exit_free:
+ __netlink_free_handle (&nh);
+ __netlink_close (&nh);
+
+ return result;
+}
+
+
+/* Create a linked list of `struct ifaddrs' structures, one for each
+ network interface on the host machine. If successful, store the
+ list in *IFAP and return 0. On errors, return -1 and set `errno'. */
+int
+__getifaddrs (struct ifaddrs **ifap)
+{
+ int res;
+
+ do
+ res = getifaddrs_internal (ifap);
+ while (res == -EAGAIN);
+
+ return res;
+}
+weak_alias (__getifaddrs, getifaddrs)
+libc_hidden_weak (getifaddrs)
+
+
+void
+__freeifaddrs (struct ifaddrs *ifa)
+{
+ free (ifa);
+}
+weak_alias (__freeifaddrs, freeifaddrs)
+libc_hidden_weak (freeifaddrs)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/ifreq.c b/REORG.TODO/sysdeps/unix/sysv/linux/ifreq.c
new file mode 100644
index 0000000000..d941ba1a93
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/ifreq.c
@@ -0,0 +1,74 @@
+/* Copyright (C) 1999-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Andreas Jaeger <aj@suse.de>.
+
+ 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 "ifreq.h"
+
+
+void
+__ifreq (struct ifreq **ifreqs, int *num_ifs, int sockfd)
+{
+ int fd = sockfd;
+ struct ifconf ifc;
+ int rq_len;
+ int nifs;
+# define RQ_IFS 4
+
+ if (fd < 0)
+ fd = __opensock ();
+ if (fd < 0)
+ {
+ *num_ifs = 0;
+ *ifreqs = NULL;
+ return;
+ }
+
+ ifc.ifc_buf = NULL;
+
+ /* We may be able to get the needed buffer size directly, rather than
+ guessing. */
+ ifc.ifc_buf = NULL;
+ ifc.ifc_len = 0;
+ if (__ioctl (fd, SIOCGIFCONF, &ifc) < 0 || ifc.ifc_len == 0)
+ rq_len = RQ_IFS * sizeof (struct ifreq);
+ else
+ rq_len = ifc.ifc_len;
+
+ /* Read all the interfaces out of the kernel. */
+ ifc.ifc_len = rq_len;
+ void *newp = realloc (ifc.ifc_buf, ifc.ifc_len);
+ if (newp == NULL
+ || (ifc.ifc_buf = newp, __ioctl (fd, SIOCGIFCONF, &ifc)) < 0)
+ {
+ free (ifc.ifc_buf);
+
+ if (fd != sockfd)
+ __close (fd);
+
+ *num_ifs = 0;
+ *ifreqs = NULL;
+ return;
+ }
+
+ nifs = ifc.ifc_len / sizeof (struct ifreq);
+
+ if (fd != sockfd)
+ __close (fd);
+
+ *num_ifs = nifs;
+ *ifreqs = realloc (ifc.ifc_buf, nifs * sizeof (struct ifreq));
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/include/bits/syscall.h b/REORG.TODO/sysdeps/unix/sysv/linux/include/bits/syscall.h
new file mode 100644
index 0000000000..3e60262486
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/include/bits/syscall.h
@@ -0,0 +1,3 @@
+/* The real bits/syscall.h is generated during the build, in
+ $(objdir)/misc/bits. */
+#include <misc/bits/syscall.h>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/include/sys/sysinfo.h b/REORG.TODO/sysdeps/unix/sysv/linux/include/sys/sysinfo.h
new file mode 100644
index 0000000000..1fa4969ef8
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/include/sys/sysinfo.h
@@ -0,0 +1,29 @@
+/* Internal declarations for sys/sysinfo.h.
+ Copyright (C) 2015-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _INCLUDE_SYS_SYSINFO_H
+#define _INCLUDE_SYS_SYSINFO_H 1
+
+#include_next <sys/sysinfo.h>
+
+# ifndef _ISOMAC
+
+extern __typeof (sysinfo) __sysinfo __THROW;
+
+# endif /* _ISOMAC */
+#endif /* sys/sysinfo.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/include/sys/timex.h b/REORG.TODO/sysdeps/unix/sysv/linux/include/sys/timex.h
new file mode 100644
index 0000000000..28580aef4a
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/include/sys/timex.h
@@ -0,0 +1,29 @@
+/* Internal declarations for sys/timex.h.
+ Copyright (C) 2014-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _INCLUDE_SYS_TIMEX_H
+#define _INCLUDE_SYS_TIMEX_H 1
+
+#include_next <sys/timex.h>
+
+# ifndef _ISOMAC
+
+libc_hidden_proto (__adjtimex)
+
+# endif /* _ISOMAC */
+#endif /* sys/timex.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/internal_statvfs.c b/REORG.TODO/sysdeps/unix/sysv/linux/internal_statvfs.c
new file mode 100644
index 0000000000..9a17ca5c17
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/internal_statvfs.c
@@ -0,0 +1,87 @@
+/* Copyright (C) 1998-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
+
+ 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 <mntent.h>
+#include <paths.h>
+#include <stdbool.h>
+#include <stdio_ext.h>
+#include <string.h>
+#include <sys/mount.h>
+#include <sys/stat.h>
+#include <sys/statfs.h>
+#include <sys/statvfs.h>
+#include "linux_fsinfo.h"
+#include <kernel-features.h>
+
+
+/* Special internal-only bit value. */
+#define ST_VALID 0x0020
+
+
+#ifndef STATFS
+# define STATFS statfs
+# define STATVFS statvfs
+# define INTERNAL_STATVFS __internal_statvfs
+#else
+extern int __statvfs_getflags (const char *name, int fstype, int fd);
+#endif
+
+
+void
+INTERNAL_STATVFS (const char *name, struct STATVFS *buf,
+ struct STATFS *fsbuf, int fd)
+{
+ /* Now fill in the fields we have information for. */
+ buf->f_bsize = fsbuf->f_bsize;
+ /* Linux has the f_frsize size only in later version of the kernel.
+ If the value is not filled in use f_bsize. */
+ buf->f_frsize = fsbuf->f_frsize ?: fsbuf->f_bsize;
+ buf->f_blocks = fsbuf->f_blocks;
+ buf->f_bfree = fsbuf->f_bfree;
+ buf->f_bavail = fsbuf->f_bavail;
+ buf->f_files = fsbuf->f_files;
+ buf->f_ffree = fsbuf->f_ffree;
+ if (sizeof (buf->f_fsid) == sizeof (fsbuf->f_fsid))
+ /* The shifting uses 'unsigned long long int' even though the target
+ field might only have 32 bits. This is OK since the 'if' branch
+ is not used in this case but the compiler would still generate
+ warnings. */
+ buf->f_fsid = ((fsbuf->f_fsid.__val[0]
+ & ((1ULL << (8 * sizeof (fsbuf->f_fsid.__val[0]))) - 1))
+ | ((unsigned long long int) fsbuf->f_fsid.__val[1]
+ << (8 * (sizeof (buf->f_fsid)
+ - sizeof (fsbuf->f_fsid.__val[0])))));
+ else
+ /* We cannot help here. The statvfs element is not large enough to
+ contain both words of the statfs f_fsid field. */
+ buf->f_fsid = fsbuf->f_fsid.__val[0];
+#ifdef _STATVFSBUF_F_UNUSED
+ buf->__f_unused = 0;
+#endif
+ buf->f_namemax = fsbuf->f_namelen;
+ memset (buf->__f_spare, '\0', sizeof (buf->__f_spare));
+
+ /* What remains to do is to fill the fields f_favail and f_flag. */
+
+ /* XXX I have no idea how to compute f_favail. Any idea??? */
+ buf->f_favail = buf->f_ffree;
+
+ buf->f_flag = fsbuf->f_flags ^ ST_VALID;
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/internal_statvfs64.c b/REORG.TODO/sysdeps/unix/sysv/linux/internal_statvfs64.c
new file mode 100644
index 0000000000..49e7689f8b
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/internal_statvfs64.c
@@ -0,0 +1,4 @@
+#define STATFS statfs64
+#define STATVFS statvfs64
+#define INTERNAL_STATVFS __internal_statvfs64
+#include "internal_statvfs.c"
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/ipc_ops.h b/REORG.TODO/sysdeps/unix/sysv/linux/ipc_ops.h
new file mode 100644
index 0000000000..078736088a
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/ipc_ops.h
@@ -0,0 +1,30 @@
+/* The codes for the functions to use the ipc syscall multiplexer.
+ Copyright (C) 2016-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#define IPCOP_semop 1
+#define IPCOP_semget 2
+#define IPCOP_semctl 3
+#define IPCOP_semtimedop 4
+#define IPCOP_msgsnd 11
+#define IPCOP_msgrcv 12
+#define IPCOP_msgget 13
+#define IPCOP_msgctl 14
+#define IPCOP_shmat 21
+#define IPCOP_shmdt 22
+#define IPCOP_shmget 23
+#define IPCOP_shmctl 24
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/ipc_priv.h b/REORG.TODO/sysdeps/unix/sysv/linux/ipc_priv.h
new file mode 100644
index 0000000000..79315b9da6
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/ipc_priv.h
@@ -0,0 +1,39 @@
+/* Old SysV permission definition for Linux. Default version.
+ Copyright (C) 1995-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sys/ipc.h> /* For __key_t */
+
+#define __IPC_64 0x100
+
+struct __old_ipc_perm
+{
+ __key_t __key; /* Key. */
+ unsigned short int uid; /* Owner's user ID. */
+ unsigned short int gid; /* Owner's group ID. */
+ unsigned short int cuid; /* Creator's user ID. */
+ unsigned short int cgid; /* Creator's group ID. */
+ unsigned short int mode; /* Read/write permission. */
+ unsigned short int __seq; /* Sequence number. */
+};
+
+#define SEMCTL_ARG_ADDRESS(__arg) &__arg.array
+
+#define MSGRCV_ARGS(__msgp, __msgtyp) \
+ ((long int []){ (long int) __msgp, __msgtyp })
+
+#include <ipc_ops.h>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/kernel-features.h b/REORG.TODO/sysdeps/unix/sysv/linux/kernel-features.h
new file mode 100644
index 0000000000..9495db4fef
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/kernel-features.h
@@ -0,0 +1,104 @@
+/* Set flags signalling availability of kernel features based on given
+ kernel version number.
+ Copyright (C) 1999-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+/* This file must not contain any C code. At least it must be protected
+ to allow using the file also in assembler files. */
+
+#ifndef __LINUX_KERNEL_VERSION
+/* We assume the worst; all kernels should be supported. */
+# define __LINUX_KERNEL_VERSION 0
+#endif
+
+/* We assume for __LINUX_KERNEL_VERSION the same encoding used in
+ linux/version.h. I.e., the major, minor, and subminor all get a
+ byte with the major number being in the highest byte. This means
+ we can do numeric comparisons.
+
+ In the following we will define certain symbols depending on
+ whether the describes kernel feature is available in the kernel
+ version given by __LINUX_KERNEL_VERSION. We are not always exactly
+ recording the correct versions in which the features were
+ introduced. If somebody cares these values can afterwards be
+ corrected. */
+
+/* The sendfile syscall was introduced in 2.2.0. */
+#define __ASSUME_SENDFILE 1
+
+/* Some architectures use the socketcall multiplexer for some or all
+ socket-related operations instead of separate syscalls.
+ __ASSUME_SOCKETCALL is defined for such architectures. */
+
+/* The changed st_ino field appeared in 2.4.0-test6. However, SH is lame,
+ and still does not have a 64-bit inode field. */
+#define __ASSUME_ST_INO_64_BIT 1
+
+/* The statfs64 syscalls are available in 2.5.74 (but not for alpha). */
+#define __ASSUME_STATFS64 1
+
+/* pselect/ppoll were introduced just after 2.6.16-rc1. On x86_64 and
+ SH this appeared first in 2.6.19-rc1, on ia64 in 2.6.22-rc1. */
+#define __ASSUME_PSELECT 1
+
+/* The *at syscalls were introduced just after 2.6.16-rc1. On PPC
+ they were introduced in 2.6.17-rc1, on SH in 2.6.19-rc1. */
+#define __ASSUME_ATFCTS 1
+
+/* Support for inter-process robust mutexes was added in 2.6.17 (but
+ some architectures lack futex_atomic_cmpxchg_inatomic in some
+ configurations). */
+#define __ASSUME_SET_ROBUST_LIST 1
+
+/* Support for private futexes was added in 2.6.22. */
+#define __ASSUME_PRIVATE_FUTEX 1
+
+/* Support for various CLOEXEC and NONBLOCK flags was added in
+ 2.6.27. */
+#define __ASSUME_IN_NONBLOCK 1
+
+/* Support for the FUTEX_CLOCK_REALTIME flag was added in 2.6.29. */
+#define __ASSUME_FUTEX_CLOCK_REALTIME 1
+
+/* Support for preadv and pwritev was added in 2.6.30. */
+#define __ASSUME_PREADV 1
+#define __ASSUME_PWRITEV 1
+
+/* Support for sendmmsg functionality was added in 3.0. */
+#define __ASSUME_SENDMMSG 1
+
+/* On most architectures, most socket syscalls are supported for all
+ supported kernel versions, but on some socketcall architectures
+ separate syscalls were only added later. */
+#define __ASSUME_SENDMSG_SYSCALL 1
+#define __ASSUME_RECVMSG_SYSCALL 1
+#define __ASSUME_ACCEPT_SYSCALL 1
+#define __ASSUME_CONNECT_SYSCALL 1
+#define __ASSUME_RECVFROM_SYSCALL 1
+#define __ASSUME_SENDTO_SYSCALL 1
+#define __ASSUME_ACCEPT4_SYSCALL 1
+#define __ASSUME_RECVMMSG_SYSCALL 1
+#define __ASSUME_SENDMMSG_SYSCALL 1
+
+/* Support for SysV IPC through wired syscalls. All supported architectures
+ either support ipc syscall and/or all the ipc correspondent syscalls. */
+#define __ASSUME_DIRECT_SYSVIPC_SYSCALLS 1
+
+/* Support for p{read,write}v2 was added in 4.6. However Linux default
+ implementation does not assume the __ASSUME_* and instead use a fallback
+ implementation based on p{read,write}v and returning an error for
+ non supported flags. */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/kernel-posix-cpu-timers.h b/REORG.TODO/sysdeps/unix/sysv/linux/kernel-posix-cpu-timers.h
new file mode 100644
index 0000000000..164a90ddeb
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/kernel-posix-cpu-timers.h
@@ -0,0 +1,18 @@
+/* Parameters for the Linux kernel ABI for CPU clocks. */
+
+#define CPUCLOCK_PID(clock) ((pid_t) ~((clock) >> 3))
+#define CPUCLOCK_PERTHREAD(clock) \
+ (((clock) & (clockid_t) CPUCLOCK_PERTHREAD_MASK) != 0)
+#define CPUCLOCK_PID_MASK 7
+#define CPUCLOCK_PERTHREAD_MASK 4
+#define CPUCLOCK_WHICH(clock) ((clock) & (clockid_t) CPUCLOCK_CLOCK_MASK)
+#define CPUCLOCK_CLOCK_MASK 3
+#define CPUCLOCK_PROF 0
+#define CPUCLOCK_VIRT 1
+#define CPUCLOCK_SCHED 2
+#define CPUCLOCK_MAX 3
+
+#define MAKE_PROCESS_CPUCLOCK(pid, clock) \
+ ((~(clockid_t) (pid) << 3) | (clockid_t) (clock))
+#define MAKE_THREAD_CPUCLOCK(tid, clock) \
+ MAKE_PROCESS_CPUCLOCK((tid), (clock) | CPUCLOCK_PERTHREAD_MASK)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/kernel-posix-timers.h b/REORG.TODO/sysdeps/unix/sysv/linux/kernel-posix-timers.h
new file mode 100644
index 0000000000..5f4192bd1f
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/kernel-posix-timers.h
@@ -0,0 +1,67 @@
+/* Copyright (C) 2003-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@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; see the file COPYING.LIB. If
+ not, see <http://www.gnu.org/licenses/>. */
+
+#include <pthread.h>
+#include <setjmp.h>
+#include <signal.h>
+#include <sys/types.h>
+
+
+/* Nonzero if the system calls are not available. */
+extern int __no_posix_timers attribute_hidden;
+
+/* Callback to start helper thread. */
+extern void __start_helper_thread (void) attribute_hidden;
+
+/* Control variable for helper thread creation. */
+extern pthread_once_t __helper_once attribute_hidden;
+
+/* TID of the helper thread. */
+extern pid_t __helper_tid attribute_hidden;
+
+/* List of active SIGEV_THREAD timers. */
+extern struct timer *__active_timer_sigev_thread attribute_hidden;
+/* Lock for the __active_timer_sigev_thread. */
+extern pthread_mutex_t __active_timer_sigev_thread_lock attribute_hidden;
+
+
+/* Type of timers in the kernel. */
+typedef int kernel_timer_t;
+
+
+/* Internal representation of timer. */
+struct timer
+{
+ /* Notification mechanism. */
+ int sigev_notify;
+
+ /* Timer ID returned by the kernel. */
+ kernel_timer_t ktimerid;
+
+ /* All new elements must be added after ktimerid. And if the thrfunc
+ element is not the third element anymore the memory allocation in
+ timer_create needs to be changed. */
+
+ /* Parameters for the thread to be started for SIGEV_THREAD. */
+ void (*thrfunc) (sigval_t);
+ sigval_t sival;
+ pthread_attr_t attr;
+
+ /* Next element in list of active SIGEV_THREAD timers. */
+ struct timer *next;
+};
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/kernel_sigaction.h b/REORG.TODO/sysdeps/unix/sysv/linux/kernel_sigaction.h
new file mode 100644
index 0000000000..d005cbce98
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/kernel_sigaction.h
@@ -0,0 +1,19 @@
+/* This is the sigaction structure from the Linux 2.1.20 kernel. */
+
+#define HAVE_SA_RESTORER
+
+struct old_kernel_sigaction {
+ __sighandler_t k_sa_handler;
+ unsigned long sa_mask;
+ unsigned long sa_flags;
+ void (*sa_restorer) (void);
+};
+
+/* This is the sigaction structure from the Linux 2.1.68 kernel. */
+
+struct kernel_sigaction {
+ __sighandler_t k_sa_handler;
+ unsigned long sa_flags;
+ void (*sa_restorer) (void);
+ sigset_t sa_mask;
+};
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/kernel_stat.h b/REORG.TODO/sysdeps/unix/sysv/linux/kernel_stat.h
new file mode 100644
index 0000000000..eecc962de3
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/kernel_stat.h
@@ -0,0 +1,38 @@
+/* Definition of `struct stat' used in the kernel.. */
+struct kernel_stat
+ {
+ unsigned short int st_dev;
+ unsigned short int __pad1;
+#define _HAVE___PAD1
+ unsigned long int st_ino;
+ unsigned short int st_mode;
+ unsigned short int st_nlink;
+ unsigned short int st_uid;
+ unsigned short int st_gid;
+ unsigned short int st_rdev;
+ unsigned short int __pad2;
+#define _HAVE___PAD2
+ unsigned long int st_size;
+ unsigned long int st_blksize;
+ unsigned long int st_blocks;
+ struct timespec st_atim;
+ struct timespec st_mtim;
+ struct timespec st_ctim;
+ unsigned long int __glibc_reserved4;
+#define _HAVE___UNUSED4
+ unsigned long int __glibc_reserved5;
+#define _HAVE___UNUSED5
+ };
+
+#define _HAVE_STAT___UNUSED4
+#define _HAVE_STAT___UNUSED5
+#define _HAVE_STAT___PAD1
+#define _HAVE_STAT___PAD2
+#define _HAVE_STAT_NSEC
+#define _HAVE_STAT64___PAD1
+#define _HAVE_STAT64___PAD2
+#define _HAVE_STAT64___ST_INO
+#define _HAVE_STAT64_NSEC
+
+#define XSTAT_IS_XSTAT64 0
+#define STATFS_IS_STATFS64 0
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/kernel_termios.h b/REORG.TODO/sysdeps/unix/sysv/linux/kernel_termios.h
new file mode 100644
index 0000000000..9defa56d64
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/kernel_termios.h
@@ -0,0 +1,34 @@
+/* Copyright (C) 1997-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _KERNEL_TERMIOS_H
+#define _KERNEL_TERMIOS_H 1
+/* The following corresponds to the values from the Linux 2.1.20 kernel. */
+
+#define __KERNEL_NCCS 19
+
+struct __kernel_termios
+ {
+ tcflag_t c_iflag; /* input mode flags */
+ tcflag_t c_oflag; /* output mode flags */
+ tcflag_t c_cflag; /* control mode flags */
+ tcflag_t c_lflag; /* local mode flags */
+ cc_t c_line; /* line discipline */
+ cc_t c_cc[__KERNEL_NCCS]; /* control characters */
+ };
+
+#endif /* kernel_termios.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/ldd-rewrite.sed b/REORG.TODO/sysdeps/unix/sysv/linux/ldd-rewrite.sed
new file mode 100644
index 0000000000..7b8b6bdee0
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/ldd-rewrite.sed
@@ -0,0 +1,11 @@
+/Maybe extra code for non-ELF binaries/a\
+ file=$1\
+ # Run the ldd stub.\
+ lddlibc4 "$file"\
+ # Test the result.\
+ if test $? -lt 3; then\
+ return 0;\
+ fi\
+ # In case of an error punt.
+/LD_TRACE_LOADED_OBJECTS=1/a\
+add_env="$add_env LD_LIBRARY_VERSION=\\$verify_out"
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/lddlibc4.c b/REORG.TODO/sysdeps/unix/sysv/linux/lddlibc4.c
new file mode 100644
index 0000000000..25c4cb960a
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/lddlibc4.c
@@ -0,0 +1,105 @@
+/* Stub for ldd script to print Linux libc4 dependencies.
+ Copyright (C) 1998-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
+
+ 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 code is based on the `ldd' program code from the Linux ld.so
+ package. */
+
+#include <a.out.h>
+#include <errno.h>
+#include <error.h>
+#include <libintl.h>
+#include <locale.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+
+/* Get libc version number. */
+#include "../version.h"
+
+#define PACKAGE _libc_intl_domainname
+
+
+int
+main (int argc, char *argv[])
+{
+ const char *filename;
+ size_t filename_len;
+ struct exec exec;
+ char *buf;
+ FILE *fp;
+
+ /* Set locale via LC_ALL. */
+ setlocale (LC_ALL, "");
+
+ /* Set the text message domain. */
+ textdomain (PACKAGE);
+
+ /* We expect exactly one argument. */
+ if (argc != 2)
+ return 1;
+
+ if (strcmp (argv[1], "--help") == 0)
+ {
+ printf (gettext ("Usage: lddlibc4 FILE\n\n"));
+ printf (gettext ("For bug reporting instructions, please see:\n\
+%s.\n"), REPORT_BUGS_TO);
+ return 0;
+ }
+ else if (strcmp (argv[1], "--version") == 0)
+ {
+ printf ("lddlibc4 %s%s\n", PKGVERSION, VERSION);
+ printf (gettext ("\
+Copyright (C) %s Free Software Foundation, Inc.\n\
+This is free software; see the source for copying conditions. There is NO\n\
+warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\
+"), "2017");
+ return 0;
+ }
+
+ filename = argv[1];
+
+ /* First see whether this is really an a.out binary. */
+ fp = fopen (filename, "rb");
+ if (fp == NULL)
+ error (2, errno, gettext ("cannot open `%s'"), filename);
+
+ /* Read the program header. */
+ if (fread (&exec, sizeof exec, 1, fp) < 1)
+ error (2, errno, gettext ("cannot read header from `%s'"), filename);
+
+ /* Test for the magic numbers. */
+ if (N_MAGIC (exec) != ZMAGIC && N_MAGIC (exec) != QMAGIC
+ && N_MAGIC (exec) != OMAGIC)
+ exit (3);
+
+ /* We don't need the file open anymore. */
+ fclose (fp);
+
+ /* We must put `__LDD_ARGV0=<program-name>' in the environment. */
+ filename_len = strlen (filename);
+ buf = (char *) alloca (sizeof "__LDD_ARGV0=" + filename_len);
+ mempcpy (mempcpy (buf, "__LDD_ARGV0=", sizeof "__LDD_ARGV0=" - 1),
+ filename, filename_len + 1);
+ /* ...and put the value in the environment. */
+ putenv (buf);
+
+ /* Now we can execute the binary. */
+ return execv (filename, &argv[argc]) ? 4 : 0;
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/ldsodefs.h b/REORG.TODO/sysdeps/unix/sysv/linux/ldsodefs.h
new file mode 100644
index 0000000000..2f1c13ffc4
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/ldsodefs.h
@@ -0,0 +1,39 @@
+/* Run-time dynamic linker data structures for loaded ELF shared objects.
+ Copyright (C) 2001-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _LDSODEFS_H
+
+/* We have the auxiliary vector. */
+#define HAVE_AUX_VECTOR
+
+/* Get the real definitions. */
+#include_next <ldsodefs.h>
+
+/* We can assume that the kernel always provides the AT_UID, AT_EUID,
+ AT_GID, and AT_EGID values in the auxiliary vector from 2.4.0 or so on. */
+#define HAVE_AUX_XID
+
+/* We can assume that the kernel always provides the AT_SECURE value
+ in the auxiliary vector from 2.5.74 or so on. */
+#define HAVE_AUX_SECURE
+
+/* Starting with one of the 2.4.0 pre-releases the Linux kernel passes
+ up the page size information. */
+#define HAVE_AUX_PAGESIZE
+
+#endif /* ldsodefs.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/libc_fatal.c b/REORG.TODO/sysdeps/unix/sysv/linux/libc_fatal.c
new file mode 100644
index 0000000000..d22bfdcc67
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/libc_fatal.c
@@ -0,0 +1,68 @@
+/* Catastrophic failure reports. Linux version.
+ Copyright (C) 1993-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <execinfo.h>
+#include <fcntl.h>
+#include <not-cancel.h>
+#include <string.h>
+#include <sys/mman.h>
+#include <sys/uio.h>
+
+static bool
+writev_for_fatal (int fd, const struct iovec *iov, size_t niov, size_t total)
+{
+ INTERNAL_SYSCALL_DECL (err);
+ ssize_t cnt;
+ do
+ cnt = INTERNAL_SYSCALL (writev, err, 3, fd, iov, niov);
+ while (INTERNAL_SYSCALL_ERROR_P (cnt, err)
+ && INTERNAL_SYSCALL_ERRNO (cnt, err) == EINTR);
+ return cnt == total;
+}
+#define WRITEV_FOR_FATAL writev_for_fatal
+
+static void
+backtrace_and_maps (int do_abort, bool written, int fd)
+{
+ if (do_abort > 1 && written)
+ {
+ void *addrs[64];
+#define naddrs (sizeof (addrs) / sizeof (addrs[0]))
+ int n = __backtrace (addrs, naddrs);
+ if (n > 2)
+ {
+#define strnsize(str) str, strlen (str)
+#define writestr(str) write_not_cancel (fd, str)
+ writestr (strnsize ("======= Backtrace: =========\n"));
+ __backtrace_symbols_fd (addrs + 1, n - 1, fd);
+
+ writestr (strnsize ("======= Memory map: ========\n"));
+ int fd2 = open_not_cancel_2 ("/proc/self/maps", O_RDONLY);
+ char buf[1024];
+ ssize_t n2;
+ while ((n2 = read_not_cancel (fd2, buf, sizeof (buf))) > 0)
+ if (write_not_cancel (fd, buf, n2) != n2)
+ break;
+ close_not_cancel_no_status (fd2);
+ }
+ }
+}
+#define BEFORE_ABORT backtrace_and_maps
+
+#include <sysdeps/posix/libc_fatal.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/linux_fsinfo.h b/REORG.TODO/sysdeps/unix/sysv/linux/linux_fsinfo.h
new file mode 100644
index 0000000000..3a71aeae89
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/linux_fsinfo.h
@@ -0,0 +1,271 @@
+/* Constants from kernel header for various FSes.
+ Copyright (C) 1998-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _LINUX_FSINFO_H
+#define _LINUX_FSINFO_H 1
+
+/* These definitions come from the kernel headers. But we cannot
+ include the headers here because of type clashes. If new
+ filesystem types will become available we have to add the
+ appropriate definitions here. */
+
+/* Constant that identifies the `adfs' filesystem. */
+#define ADFS_SUPER_MAGIC 0xadf5
+
+/* Constant that identifies the `affs' filesystem. */
+#define AFFS_SUPER_MAGIC 0xadff
+
+/* Constant that identifies the `afs' filesystem. */
+#define AFS_SUPER_MAGIC 0x5346414F
+
+/* Constant that identifies the `anon_inodefs' filesystem. */
+#define ANON_INODE_FS_MAGIC 0x09041934
+
+/* Constant that identifies the `autofs' filesystem. */
+#define AUTOFS_SUPER_MAGIC 0x187
+
+/* Constant that identifies the `bdev' filesystem. */
+#define BDEVFS_MAGIC 0x62646576
+
+/* Constant that identifies the `bfs' filesystem. */
+#define BFS_MAGIC 0x1badface
+
+/* Constant that identifies the `binfmt_misc' filesystem. */
+#define BINFMTFS_MAGIC 0x42494e4d
+
+/* Constant that identifies the `btrfs' filesystem. */
+#define BTRFS_SUPER_MAGIC 0x9123683e
+
+/* Constant that identifies the `btrfs_test_fs' filesystem. */
+#define BTRFS_TEST_MAGIC 0x73727279
+
+/* Constant that identifies the `cgroup' filesystem. */
+#define CGROUP_SUPER_MAGIC 0x27e0eb
+
+/* Constant that identifies the `coda' filesystem. */
+#define CODA_SUPER_MAGIC 0x73757245
+
+/* Constant that identifies the `coherent' filesystem. */
+#define COH_SUPER_MAGIC 0x012ff7b7
+
+/* Constant that identifies the `cramfs' filesystem. */
+#define CRAMFS_MAGIC 0x28cd3d45
+
+/* Constant that identifies the `cramfs' filesystem w/opposite endianness. */
+#define CRAMFS_MAGIC_WEND 0x453dcd28
+
+/* Constant that identifies the `debugfs' filesystem. */
+#define DEBUGFS_MAGIC 0x64626720
+
+/* Constant that identifies the `devfs' filesystem. */
+#define DEVFS_SUPER_MAGIC 0x1373
+
+/* Constant that identifies the `devpts' filesystem. */
+#define DEVPTS_SUPER_MAGIC 0x1cd1
+
+/* Constants that identifies the `ecryptfs' filesystem. */
+#define ECRYPTFS_SUPER_MAGIC 0xf15f
+
+/* Constants that identifies the `efs' filesystem. */
+#define EFS_SUPER_MAGIC 0x414a53
+#define EFS_MAGIC 0x072959
+
+/* Constants that identifies the `evivar' filesystem. */
+#define EFIVARFS_MAGIC 0xde5e81e4
+
+/* Constant that identifies the `ext2' filesystem. */
+#define EXT2_SUPER_MAGIC 0xef53
+
+/* Constant that identifies the `ext3' filesystem. */
+#define EXT3_SUPER_MAGIC 0xef53
+
+/* Constant that identifies the `ext3' filesystem. */
+#define EXT4_SUPER_MAGIC 0xef53
+
+/* Constant that identifies the `f2fs' filesystem. */
+#define F2FS_SUPER_MAGIC 0xf2f52010
+
+/* Constant that identifies the `futexfs' filesystem. */
+#define FUTEXFS_SUPER_MAGIC 0xBAD1DEA
+
+/* Constant that identifies the `hostfs' filesystem. */
+#define HOSTFS_SUPER_MAGIC 0x00c0ffee
+
+/* Constant that identifies the `hpfs' filesystem. */
+#define HPFS_SUPER_MAGIC 0xf995e849
+
+/* Constant that identifies the `hugetlbfs' filesystem. */
+#define HUGETLBFS_MAGIC 0x958458f6
+
+/* Constant that identifies the `iso9660' filesystem. */
+#define ISOFS_SUPER_MAGIC 0x9660
+
+/* Constant that identifies the `jffs' filesystem. */
+#define JFFS_SUPER_MAGIC 0x07c0
+
+/* Constant that identifies the `jffs2' filesystem. */
+#define JFFS2_SUPER_MAGIC 0x72b6
+
+/* Constant that identifies the `jfs' filesystem. */
+#define JFS_SUPER_MAGIC 0x3153464a
+
+/* Constant that identifies the `logfs' filesystem. */
+#define LOGFS_MAGIC_U32 0xc97e8168u
+
+/* Constant that identifies the `lustre' filesystem. */
+#define LUSTRE_SUPER_MAGIC 0x0BD00BD0
+
+/* Constants that identify the `minix2' filesystem. */
+#define MINIX2_SUPER_MAGIC 0x2468
+#define MINIX2_SUPER_MAGIC2 0x2478
+
+/* Constants that identify the `minix3' filesystem. */
+#define MINIX3_SUPER_MAGIC 0x4d5a
+
+/* Constants that identify the `minix' filesystem. */
+#define MINIX_SUPER_MAGIC 0x137f
+#define MINIX_SUPER_MAGIC2 0x138F
+
+/* Constant that identifies the `msdos' filesystem. */
+#define MSDOS_SUPER_MAGIC 0x4d44
+
+/* Constant that identifies the `mtd_inodefs' filesystem. */
+#define MTD_INODE_FS_MAGIC 0x11307854
+
+/* Constant that identifies the `ncp' filesystem. */
+#define NCP_SUPER_MAGIC 0x564c
+
+/* Constant that identifies the `nilfs' filesystem. */
+#define NILFS_SUPER_MAGIC 0x3434
+
+/* Constant that identifies the `nfs' filesystem. */
+#define NFS_SUPER_MAGIC 0x6969
+
+/* Constant that identifies the `ntfs' filesystem. */
+#define NTFS_SUPER_MAGIC 0x5346544e
+
+/* Constant that identifies the `openpromfs' filesystem. */
+#define OPENPROM_SUPER_MAGIC 0x9fa1
+
+/* Constant that identifies the `pipefs' filesystem. */
+#define PIPEFS_MAGIC 0x50495045
+
+/* Constant that identifies the `proc' filesystem. */
+#define PROC_SUPER_MAGIC 0x9fa0
+
+/* Constant that identifies the `pstorefs' filesystem. */
+#define PSTOREFS_MAGIC 0x6165676C
+
+/* Constant that identifies the `qnx4' filesystem. */
+#define QNX4_SUPER_MAGIC 0x002f
+
+/* Constant that identifies the `qnx6' filesystem. */
+#define QNX6_SUPER_MAGIC 0x68191122
+
+/* Constant that identifies the `ramfs' filesystem. */
+#define RAMFS_MAGIC 0x858458f6
+
+/* Constant that identifies the `reiser' filesystem. */
+#define REISERFS_SUPER_MAGIC 0x52654973
+
+#define REISERFS_SUPER_MAGIC_STRING "ReIsErFs"
+#define REISER2FS_SUPER_MAGIC_STRING "ReIsEr2Fs"
+#define REISER2FS_JR_SUPER_MAGIC_STRING "ReIsEr3Fs"
+
+/* Constant that identifies the `romfs' filesystem. */
+#define ROMFS_SUPER_MAGIC 0x7275
+
+/* Constant that identifies the `securityfs' filesystem. */
+#define SECURITYFS_MAGIC 0x73636673
+
+/* Constant that identifies the `selinuxfs' filesystem. */
+#define SELINUX_MAGIC 0xf97cff8c
+
+/* Constant that identifies the `smackfs' filesystem. */
+#define SMACK_MAGIC 0x43415d53 /* "SMAC" */
+
+/* Constant that identifies the `shm' filesystem. */
+#define SHMFS_SUPER_MAGIC 0x01021994
+
+/* Constant that identifies the `smb' filesystem. */
+#define SMB_SUPER_MAGIC 0x517b
+
+/* Constant that identifies the `sockfs' filesystem. */
+#define SOCKFS_MAGIC 0x534F434B
+
+/* Constant that identifies the `squashfs' filesystem. */
+#define SQUASHFS_MAGIC 0x73717368
+
+/* Constant that identifies the end of stacks allocated by the kernel. */
+#define STACK_END_MAGIC 0x57AC6E9D
+
+/* Constant that identifies the `sysfs' filesystem. */
+#define SYSFS_MAGIC 0x62656572
+
+/* Constants that identify the `sysV' filesystem. */
+#define SYSV2_SUPER_MAGIC 0x012ff7b6
+#define SYSV4_SUPER_MAGIC 0x012ff7b5
+
+/* Constant that identifies the `tmpfs' filesystem. */
+#define TMPFS_MAGIC 0x01021994
+
+/* Constant that identifies the `udf' filesystem. */
+#define UDF_SUPER_MAGIC 0x15013346
+
+/* Constant that identify the `ufs' filesystem. */
+#define UFS_MAGIC 0x00011954
+#define UFS_CIGAM 0x54190100 /* byteswapped MAGIC */
+
+/* Constant that identifies the `usbdevfs' filesystem. */
+#define USBDEVFS_SUPER_MAGIC 0x9fa2
+#define USBDEVICE_SUPER_MAGIC 0x9fa2
+
+/* Constant that identifies the `9p' filesystem. */
+#define V9FS_MAGIC 0x01021997
+
+/* Constant that identifies the `vxfs' filesystem. */
+#define VXFS_SUPER_MAGIC 0xa501fcf5
+
+/* Constant that identifies the `xenfs' filesystem. */
+#define XENFS_SUPER_MAGIC 0xabba1974
+
+/* Constant that identifies the `xenix' filesystem. */
+#define XENIX_SUPER_MAGIC 0x012ff7b4
+
+/* Constant that identifies the `xfs' filesystem. */
+#define XFS_SUPER_MAGIC 0x58465342
+
+/* Maximum link counts. */
+#define COH_LINK_MAX 10000
+#define EXT2_LINK_MAX 32000
+#define EXT4_LINK_MAX 65000
+#define F2FS_LINK_MAX 32000
+#define LUSTRE_LINK_MAX EXT4_LINK_MAX
+#define MINIX2_LINK_MAX 65530
+#define MINIX_LINK_MAX 250
+#define REISERFS_LINK_MAX 64535
+#define SYSV_LINK_MAX 126 /* 127? 251? */
+#define UFS_LINK_MAX EXT2_LINK_MAX
+#define XENIX_LINK_MAX 126 /* ?? */
+#define XFS_LINK_MAX 2147483647
+
+/* The Linux kernel header mentioned this as a kind of generic value. */
+#define LINUX_LINK_MAX 127
+
+
+#endif /* linux_fsinfo.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/listen.c b/REORG.TODO/sysdeps/unix/sysv/linux/listen.c
new file mode 100644
index 0000000000..789f43899c
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/listen.c
@@ -0,0 +1,35 @@
+/* Copyright (C) 2015-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <signal.h>
+#include <sys/socket.h>
+
+#include <socketcall.h>
+#include <kernel-features.h>
+#include <sys/syscall.h>
+
+int
+listen (int fd, int backlog)
+{
+#ifdef __ASSUME_LISTEN_SYSCALL
+ return INLINE_SYSCALL (listen, 2, fd, backlog);
+#else
+ return SOCKETCALL (listen, fd, backlog);
+#endif
+}
+weak_alias (listen, __listen);
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/local-setxid.h b/REORG.TODO/sysdeps/unix/sysv/linux/local-setxid.h
new file mode 100644
index 0000000000..97d787d942
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/local-setxid.h
@@ -0,0 +1,16 @@
+/* SETxID functions which only have to change the local thread and
+ none of the possible other threads. */
+#include <sysdep.h>
+
+#ifdef __NR_setresuid32
+# define local_seteuid(id) INLINE_SYSCALL (setresuid32, 3, -1, id, -1)
+#else
+# define local_seteuid(id) INLINE_SYSCALL (setresuid, 3, -1, id, -1)
+#endif
+
+
+#ifdef __NR_setresgid32
+# define local_setegid(id) INLINE_SYSCALL (setresgid32, 3, -1, id, -1)
+#else
+# define local_setegid(id) INLINE_SYSCALL (setresgid, 3, -1, id, -1)
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/lowlevellock-futex.h b/REORG.TODO/sysdeps/unix/sysv/linux/lowlevellock-futex.h
new file mode 100644
index 0000000000..bb4fbae13b
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/lowlevellock-futex.h
@@ -0,0 +1,145 @@
+/* Low-level locking access to futex facilities. Linux version.
+ Copyright (C) 2005-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _LOWLEVELLOCK_FUTEX_H
+#define _LOWLEVELLOCK_FUTEX_H 1
+
+#ifndef __ASSEMBLER__
+#include <sysdep.h>
+#include <tls.h>
+#include <kernel-features.h>
+#endif
+
+#define FUTEX_WAIT 0
+#define FUTEX_WAKE 1
+#define FUTEX_REQUEUE 3
+#define FUTEX_CMP_REQUEUE 4
+#define FUTEX_WAKE_OP 5
+#define FUTEX_OP_CLEAR_WAKE_IF_GT_ONE ((4 << 24) | 1)
+#define FUTEX_LOCK_PI 6
+#define FUTEX_UNLOCK_PI 7
+#define FUTEX_TRYLOCK_PI 8
+#define FUTEX_WAIT_BITSET 9
+#define FUTEX_WAKE_BITSET 10
+#define FUTEX_WAIT_REQUEUE_PI 11
+#define FUTEX_CMP_REQUEUE_PI 12
+#define FUTEX_PRIVATE_FLAG 128
+#define FUTEX_CLOCK_REALTIME 256
+
+#define FUTEX_BITSET_MATCH_ANY 0xffffffff
+
+/* Values for 'private' parameter of locking macros. Yes, the
+ definition seems to be backwards. But it is not. The bit will be
+ reversed before passing to the system call. */
+#define LLL_PRIVATE 0
+#define LLL_SHARED FUTEX_PRIVATE_FLAG
+
+#ifndef __ASSEMBLER__
+
+#if IS_IN (libc) || IS_IN (rtld)
+/* In libc.so or ld.so all futexes are private. */
+# ifdef __ASSUME_PRIVATE_FUTEX
+# define __lll_private_flag(fl, private) \
+ ({ \
+ /* Prevent warnings in callers of this macro. */ \
+ int __lll_private_flag_priv __attribute__ ((unused)); \
+ __lll_private_flag_priv = (private); \
+ ((fl) | FUTEX_PRIVATE_FLAG); \
+ })
+# else
+# define __lll_private_flag(fl, private) \
+ ((fl) | THREAD_GETMEM (THREAD_SELF, header.private_futex))
+# endif
+#else
+# ifdef __ASSUME_PRIVATE_FUTEX
+# define __lll_private_flag(fl, private) \
+ (((fl) | FUTEX_PRIVATE_FLAG) ^ (private))
+# else
+# define __lll_private_flag(fl, private) \
+ (__builtin_constant_p (private) \
+ ? ((private) == 0 \
+ ? ((fl) | THREAD_GETMEM (THREAD_SELF, header.private_futex)) \
+ : (fl)) \
+ : ((fl) | (((private) ^ FUTEX_PRIVATE_FLAG) \
+ & THREAD_GETMEM (THREAD_SELF, header.private_futex))))
+# endif
+#endif
+
+#define lll_futex_syscall(nargs, futexp, op, ...) \
+ ({ \
+ INTERNAL_SYSCALL_DECL (__err); \
+ long int __ret = INTERNAL_SYSCALL (futex, __err, nargs, futexp, op, \
+ __VA_ARGS__); \
+ (__glibc_unlikely (INTERNAL_SYSCALL_ERROR_P (__ret, __err)) \
+ ? -INTERNAL_SYSCALL_ERRNO (__ret, __err) : 0); \
+ })
+
+#define lll_futex_wait(futexp, val, private) \
+ lll_futex_timed_wait (futexp, val, NULL, private)
+
+#define lll_futex_timed_wait(futexp, val, timeout, private) \
+ lll_futex_syscall (4, futexp, \
+ __lll_private_flag (FUTEX_WAIT, private), \
+ val, timeout)
+
+#define lll_futex_timed_wait_bitset(futexp, val, timeout, clockbit, private) \
+ lll_futex_syscall (6, futexp, \
+ __lll_private_flag (FUTEX_WAIT_BITSET | (clockbit), \
+ private), \
+ val, timeout, NULL /* Unused. */, \
+ FUTEX_BITSET_MATCH_ANY)
+
+#define lll_futex_wake(futexp, nr, private) \
+ lll_futex_syscall (4, futexp, \
+ __lll_private_flag (FUTEX_WAKE, private), nr, 0)
+
+/* Returns non-zero if error happened, zero if success. */
+#define lll_futex_requeue(futexp, nr_wake, nr_move, mutex, val, private) \
+ lll_futex_syscall (6, futexp, \
+ __lll_private_flag (FUTEX_CMP_REQUEUE, private), \
+ nr_wake, nr_move, mutex, val)
+
+/* Returns non-zero if error happened, zero if success. */
+#define lll_futex_wake_unlock(futexp, nr_wake, nr_wake2, futexp2, private) \
+ lll_futex_syscall (6, futexp, \
+ __lll_private_flag (FUTEX_WAKE_OP, private), \
+ nr_wake, nr_wake2, futexp2, \
+ FUTEX_OP_CLEAR_WAKE_IF_GT_ONE)
+
+/* Priority Inheritance support. */
+#define lll_futex_wait_requeue_pi(futexp, val, mutex, private) \
+ lll_futex_timed_wait_requeue_pi (futexp, val, NULL, 0, mutex, private)
+
+#define lll_futex_timed_wait_requeue_pi(futexp, val, timeout, clockbit, \
+ mutex, private) \
+ lll_futex_syscall (5, futexp, \
+ __lll_private_flag (FUTEX_WAIT_REQUEUE_PI \
+ | (clockbit), private), \
+ val, timeout, mutex)
+
+
+#define lll_futex_cmp_requeue_pi(futexp, nr_wake, nr_move, mutex, \
+ val, private) \
+ lll_futex_syscall (6, futexp, \
+ __lll_private_flag (FUTEX_CMP_REQUEUE_PI, \
+ private), \
+ nr_wake, nr_move, mutex, val)
+
+#endif /* !__ASSEMBLER__ */
+
+#endif /* lowlevellock-futex.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/lseek.c b/REORG.TODO/sysdeps/unix/sysv/linux/lseek.c
new file mode 100644
index 0000000000..3f5ddd71fb
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/lseek.c
@@ -0,0 +1,57 @@
+/* Linux lseek implementation, 32 bits off_t.
+ Copyright (C) 2016-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <unistd.h>
+#include <stdint.h>
+#include <sys/types.h>
+#include <sysdep.h>
+#include <errno.h>
+
+#ifndef __OFF_T_MATCHES_OFF64_T
+
+/* Test for overflows of structures where we ask the kernel to fill them
+ in with standard 64-bit syscalls but return them through APIs that
+ only expose the low 32 bits of some fields. */
+
+static inline off_t lseek_overflow (loff_t res)
+{
+ off_t retval = (off_t) res;
+ if (retval == res)
+ return retval;
+
+ __set_errno (EOVERFLOW);
+ return (off_t) -1;
+}
+
+off_t
+__lseek (int fd, off_t offset, int whence)
+{
+# ifdef __NR__llseek
+ loff_t res;
+ int rc = INLINE_SYSCALL_CALL (_llseek, fd,
+ (long) (((uint64_t) (offset)) >> 32),
+ (long) offset, &res, whence);
+ return rc ?: lseek_overflow (res);
+# else
+ return INLINE_SYSCALL_CALL (lseek, fd, offset, whence);
+# endif
+}
+libc_hidden_def (__lseek)
+weak_alias (__lseek, lseek)
+strong_alias (__lseek, __libc_lseek)
+#endif /* __OFF_T_MATCHES_OFF64_T */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/lseek64.c b/REORG.TODO/sysdeps/unix/sysv/linux/lseek64.c
new file mode 100644
index 0000000000..a13908a2a0
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/lseek64.c
@@ -0,0 +1,54 @@
+/* Linux lseek implementation, 64 bits off_t.
+ Copyright (C) 2016-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <unistd.h>
+#include <stdint.h>
+#include <sys/types.h>
+#include <sysdep.h>
+#include <errno.h>
+
+off64_t
+__lseek64 (int fd, off64_t offset, int whence)
+{
+#ifdef __NR__llseek
+ loff_t res;
+ int rc = INLINE_SYSCALL_CALL (_llseek, fd,
+ (long) (((uint64_t) (offset)) >> 32),
+ (long) offset, &res, whence);
+ return rc ?: res;
+#else
+ return INLINE_SYSCALL_CALL (lseek, fd, offset, whence);
+#endif
+}
+
+#ifdef __OFF_T_MATCHES_OFF64_T
+weak_alias (__lseek64, lseek)
+weak_alias (__lseek64, __lseek)
+strong_alias (__lseek64, __libc_lseek)
+libc_hidden_def (__lseek)
+#endif
+
+strong_alias (__lseek64, __libc_lseek64)
+weak_alias (__lseek64, lseek64)
+
+/* llseek doesn't have a prototype. Since the second parameter is a
+ 64bit type, this results in wrong behaviour if no prototype is
+ provided. */
+weak_alias (__lseek64, llseek)
+link_warning (llseek, "\
+the `llseek' function may be dangerous; use `lseek64' instead.")
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/lutimes.c b/REORG.TODO/sysdeps/unix/sysv/linux/lutimes.c
new file mode 100644
index 0000000000..433fb06701
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/lutimes.c
@@ -0,0 +1,44 @@
+/* Change access and/or modification date of file. Do not follow symbolic
+ links.
+ Copyright (C) 2007-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <fcntl.h>
+#include <time.h>
+#include <sys/time.h>
+#include <sysdep.h>
+
+
+int
+lutimes (const char *file, const struct timeval tvp[2])
+{
+ /* The system call espects timespec, not timeval. */
+ struct timespec ts[2];
+ if (tvp != NULL)
+ {
+ if (tvp[0].tv_usec < 0 || tvp[0].tv_usec >= 1000000
+ || tvp[1].tv_usec < 0 || tvp[1].tv_usec >= 1000000)
+ return INLINE_SYSCALL_ERROR_RETURN_VALUE (EINVAL);
+
+ TIMEVAL_TO_TIMESPEC (&tvp[0], &ts[0]);
+ TIMEVAL_TO_TIMESPEC (&tvp[1], &ts[1]);
+ }
+
+ return INLINE_SYSCALL (utimensat, 4, AT_FDCWD, file, tvp ? ts : NULL,
+ AT_SYMLINK_NOFOLLOW);
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/lxstat.c b/REORG.TODO/sysdeps/unix/sysv/linux/lxstat.c
new file mode 100644
index 0000000000..6e091d02cf
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/lxstat.c
@@ -0,0 +1,60 @@
+/* lxstat using old-style Unix lstat system call.
+ Copyright (C) 1991-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+/* Ho hum, if xstat == xstat64 we must get rid of the prototype or gcc
+ will complain since they don't strictly match. */
+#define __lxstat64 __lxstat64_disable
+
+#include <errno.h>
+#include <stddef.h>
+#include <sys/stat.h>
+#include <kernel_stat.h>
+
+#include <sysdep.h>
+#include <sys/syscall.h>
+
+#include <xstatconv.h>
+
+/* Get information about the file NAME in BUF. */
+int
+__lxstat (int vers, const char *name, struct stat *buf)
+{
+ if (vers == _STAT_VER_KERNEL)
+ return INLINE_SYSCALL (lstat, 2, name, buf);
+
+#ifdef STAT_IS_KERNEL_STAT
+ return INLINE_SYSCALL_ERROR_RETURN_VALUE (EINVAL);
+#else
+ struct kernel_stat kbuf;
+ int result;
+
+ result = INLINE_SYSCALL (lstat, 2, name, &kbuf);
+ if (result == 0)
+ result = __xstat_conv (vers, &kbuf, buf);
+
+ return result;
+#endif
+}
+
+hidden_def (__lxstat)
+weak_alias (__lxstat, _lxstat);
+#if XSTAT_IS_XSTAT64
+#undef __lxstat64
+strong_alias (__lxstat, __lxstat64);
+hidden_ver (__lxstat, __lxstat64)
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/lxstat64.c b/REORG.TODO/sysdeps/unix/sysv/linux/lxstat64.c
new file mode 100644
index 0000000000..9bc548f91c
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/lxstat64.c
@@ -0,0 +1,52 @@
+/* lxstat64 using Linux lstat64 system call.
+ Copyright (C) 1997-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <stddef.h>
+#include <sys/stat.h>
+#include <kernel_stat.h>
+
+#include <sysdep.h>
+#include <sys/syscall.h>
+
+#include <kernel-features.h>
+
+/* Get information about the file NAME in BUF. */
+int
+___lxstat64 (int vers, const char *name, struct stat64 *buf)
+{
+ int result;
+ result = INLINE_SYSCALL (lstat64, 2, name, buf);
+#if defined _HAVE_STAT64___ST_INO && !__ASSUME_ST_INO_64_BIT
+ if (__builtin_expect (!result, 1) && buf->__st_ino != (__ino_t) buf->st_ino)
+ buf->st_ino = buf->__st_ino;
+#endif
+ return result;
+}
+
+#include <shlib-compat.h>
+
+#if SHLIB_COMPAT(libc, GLIBC_2_1, GLIBC_2_2)
+versioned_symbol (libc, ___lxstat64, __lxstat64, GLIBC_2_2);
+strong_alias (___lxstat64, __old__lxstat64)
+compat_symbol (libc, __old__lxstat64, __lxstat64, GLIBC_2_1);
+hidden_ver (___lxstat64, __lxstat64)
+#else
+strong_alias (___lxstat64, __lxstat64);
+hidden_def (__lxstat64)
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/m68k/Implies b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/Implies
new file mode 100644
index 0000000000..77f1f7dd2b
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/Implies
@@ -0,0 +1 @@
+m68k/nptl
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/m68k/Makefile b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/Makefile
new file mode 100644
index 0000000000..ce1f696a6f
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/Makefile
@@ -0,0 +1,25 @@
+# Linux/m68k uses Motorola asm syntax and the ELF format.
+
+m68k-syntax-flag = -DMOTOROLA_SYNTAX
+
+ifeq ($(subdir),csu)
+sysdep_routines += m68k-helpers
+ifeq (yes,$(build-shared))
+sysdep_routines += divdi3
+shared-only-routines += divdi3
+CPPFLAGS-divdi3.c = -Din_divdi3_c
+endif
+endif
+
+ifeq ($(subdir),misc)
+sysdep_routines += mremap
+sysdep_headers += sys/reg.h
+endif
+
+ifeq ($(subdir),elf)
+sysdep-dl-routines += dl-static
+sysdep_routines += dl-vdso libc-m68k-vdso
+sysdep-rtld-routines += m68k-vdso
+sysdep-others += lddlibc4
+install-bin += lddlibc4
+endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/m68k/Versions b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/Versions
new file mode 100644
index 0000000000..7ecc96ea97
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/Versions
@@ -0,0 +1,54 @@
+ld {
+ GLIBC_PRIVATE {
+ _dl_var_init;
+ }
+}
+libc {
+ GLIBC_2.0 {
+ # Exception handling support functions from libgcc
+ __register_frame; __register_frame_table; __deregister_frame;
+ __frame_state_for; __register_frame_info_table;
+
+ # c*
+ cacheflush;
+ }
+ GLIBC_2.2 {
+ # functions used in other libraries
+ __xstat64; __fxstat64; __lxstat64;
+
+ # a*
+ alphasort64;
+
+ # g*
+ glob64;
+
+ # New rlimit interface
+ getrlimit; setrlimit; getrlimit64;
+
+ # r*
+ readdir64; readdir64_r;
+
+ # s*
+ scandir64;
+
+ # v*
+ versionsort64;
+ }
+ GLIBC_2.11 {
+ fallocate64;
+ }
+ GLIBC_2.12 {
+ __m68k_read_tp;
+ }
+ GLIBC_PRIVATE {
+ __vdso_atomic_cmpxchg_32; __vdso_atomic_barrier;
+ }
+}
+
+ld {
+ GLIBC_PRIVATE {
+ __rtld___vdso_read_tp;
+ __rtld___vdso_atomic_cmpxchg_32;
+ __rtld___vdso_atomic_barrier;
+ }
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/m68k/____longjmp_chk.c b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/____longjmp_chk.c
new file mode 100644
index 0000000000..030e46389e
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/____longjmp_chk.c
@@ -0,0 +1,38 @@
+/* Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <stdio.h>
+#include <signal.h>
+#include <sysdep.h>
+#define __longjmp ____longjmp_chk
+#define CHECK_SP(sp) \
+ do { \
+ register unsigned long this_sp asm ("sp"); \
+ if ((unsigned long) (sp) < this_sp) \
+ { \
+ stack_t oss; \
+ INTERNAL_SYSCALL_DECL (err); \
+ int result = INTERNAL_SYSCALL (sigaltstack, err, 2, NULL, &oss); \
+ if (!INTERNAL_SYSCALL_ERROR_P (result, err) \
+ && ((oss.ss_flags & SS_ONSTACK) == 0 \
+ || ((unsigned long) oss.ss_sp + oss.ss_size \
+ - (unsigned long) (sp)) < oss.ss_size)) \
+ __fortify_fail ("longjmp causes uninitialized stack frame"); \
+ } \
+ } while (0)
+
+#include <__longjmp.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/m68k/alphasort64.c b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/alphasort64.c
new file mode 100644
index 0000000000..0b5ae47d2f
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/alphasort64.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/i386/alphasort64.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/m68k/arch-fork.h b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/arch-fork.h
new file mode 100644
index 0000000000..d1f5664975
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/arch-fork.h
@@ -0,0 +1,28 @@
+/* ARCH_FORK definition for Linux fork implementation. m68k version.
+ Copyright (C) 2010-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Maxim Kuvyrkov <maxim@codesourcery.com>, 2010.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sched.h>
+#include <signal.h>
+#include <sysdep.h>
+#include <tls.h>
+
+#define ARCH_FORK() \
+ INLINE_SYSCALL (clone, 5, \
+ CLONE_CHILD_SETTID | CLONE_CHILD_CLEARTID | SIGCHLD, 0, \
+ NULL, &THREAD_SELF->tid, NULL)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/m68k/bits/a.out.h b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/bits/a.out.h
new file mode 100644
index 0000000000..0fb52c3815
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/bits/a.out.h
@@ -0,0 +1,3 @@
+#ifndef __A_OUT_GNU_H__
+# error "Never use <bits/a.out.h> directly; include <a.out.h> instead."
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/m68k/bits/fcntl.h b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/bits/fcntl.h
new file mode 100644
index 0000000000..0f4574eb2c
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/bits/fcntl.h
@@ -0,0 +1,54 @@
+/* O_*, F_*, FD_* bit values for Linux.
+ Copyright (C) 2000-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _FCNTL_H
+# error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
+#endif
+
+#define __O_DIRECTORY 040000 /* Must be a directory. */
+#define __O_NOFOLLOW 0100000 /* Do not follow links. */
+#define __O_DIRECT 0200000 /* Direct disk access. */
+#define __O_LARGEFILE 0400000
+
+struct flock
+ {
+ short int l_type; /* Type of lock: F_RDLCK, F_WRLCK, or F_UNLCK. */
+ short int l_whence; /* Where `l_start' is relative to (like `lseek'). */
+#ifndef __USE_FILE_OFFSET64
+ __off_t l_start; /* Offset where the lock begins. */
+ __off_t l_len; /* Size of the locked area; zero means until EOF. */
+#else
+ __off64_t l_start; /* Offset where the lock begins. */
+ __off64_t l_len; /* Size of the locked area; zero means until EOF. */
+#endif
+ __pid_t l_pid; /* Process holding the lock. */
+ };
+
+#ifdef __USE_LARGEFILE64
+struct flock64
+ {
+ short int l_type; /* Type of lock: F_RDLCK, F_WRLCK, or F_UNLCK. */
+ short int l_whence; /* Where `l_start' is relative to (like `lseek'). */
+ __off64_t l_start; /* Offset where the lock begins. */
+ __off64_t l_len; /* Size of the locked area; zero means until EOF. */
+ __pid_t l_pid; /* Process holding the lock. */
+ };
+#endif
+
+/* Include generic Linux declarations. */
+#include <bits/fcntl-linux.h>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/m68k/bits/mman.h b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/bits/mman.h
new file mode 100644
index 0000000000..cb28d033ee
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/bits/mman.h
@@ -0,0 +1,40 @@
+/* Definitions for POSIX memory map interface. Linux/m68k version.
+ Copyright (C) 1997-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_MMAN_H
+# error "Never use <bits/mman.h> directly; include <sys/mman.h> instead."
+#endif
+
+/* The following definitions basically come from the kernel headers.
+ But the kernel header is not namespace clean. */
+
+/* These are Linux-specific. */
+#ifdef __USE_MISC
+# define MAP_GROWSDOWN 0x00100 /* Stack-like segment. */
+# define MAP_DENYWRITE 0x00800 /* ETXTBSY */
+# define MAP_EXECUTABLE 0x01000 /* Mark it as an executable. */
+# define MAP_LOCKED 0x02000 /* Lock the mapping. */
+# define MAP_NORESERVE 0x04000 /* Don't check for reservations. */
+# define MAP_POPULATE 0x08000 /* Populate (prefault) pagetables. */
+# define MAP_NONBLOCK 0x10000 /* Do not block on IO. */
+# define MAP_STACK 0x20000 /* Allocation is for a stack. */
+# define MAP_HUGETLB 0x40000 /* Create huge page mapping. */
+#endif
+
+/* Include generic Linux declarations. */
+#include <bits/mman-linux.h>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/m68k/bits/poll.h b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/bits/poll.h
new file mode 100644
index 0000000000..0f92f34d79
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/bits/poll.h
@@ -0,0 +1,49 @@
+/* Copyright (C) 1997-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_POLL_H
+# error "Never use <bits/poll.h> directly; include <sys/poll.h> instead."
+#endif
+
+/* Event types that can be polled for. These bits may be set in `events'
+ to indicate the interesting event types; they will appear in `revents'
+ to indicate the status of the file descriptor. */
+#define POLLIN 0x001 /* There is data to read. */
+#define POLLPRI 0x002 /* There is urgent data to read. */
+#define POLLOUT 0x004 /* Writing now will not block. */
+
+#if defined __USE_XOPEN || defined __USE_XOPEN2K8
+/* These values are defined in XPG4.2. */
+# define POLLRDNORM 0x040 /* Normal data may be read. */
+# define POLLRDBAND 0x080 /* Priority data may be read. */
+# define POLLWRNORM POLLOUT /* Writing now will not block. */
+# define POLLWRBAND 0x100 /* Priority data may be written. */
+#endif
+
+#ifdef __USE_GNU
+/* These are extensions for Linux. */
+# define POLLMSG 0x400
+# define POLLREMOVE 0x1000
+# define POLLRDHUP 0x2000
+#endif
+
+/* Event types always implicitly polled for. These bits need not be set in
+ `events', but they will appear in `revents' to indicate the status of
+ the file descriptor. */
+#define POLLERR 0x008 /* Error condition. */
+#define POLLHUP 0x010 /* Hung up. */
+#define POLLNVAL 0x020 /* Invalid polling request. */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/m68k/bits/sockaddr.h b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/bits/sockaddr.h
new file mode 100644
index 0000000000..dc7dc39562
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/bits/sockaddr.h
@@ -0,0 +1,42 @@
+/* Definition of struct sockaddr_* members and sizes, Linux/m68k version.
+ Copyright (C) 1995-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+/*
+ * Never include this file directly; use <sys/socket.h> instead.
+ */
+
+#ifndef _BITS_SOCKADDR_H
+#define _BITS_SOCKADDR_H 1
+
+
+/* POSIX.1g specifies this type name for the `sa_family' member. */
+typedef unsigned short int sa_family_t;
+
+/* This macro is used to declare the initial common members
+ of the data types used for socket addresses, `struct sockaddr',
+ `struct sockaddr_in', `struct sockaddr_un', etc. */
+
+#define __SOCKADDR_COMMON(sa_prefix) \
+ sa_family_t sa_prefix##family
+
+#define __SOCKADDR_COMMON_SIZE (sizeof (unsigned short int))
+
+/* Size of struct sockaddr_storage. */
+#define _SS_SIZE 126
+
+#endif /* bits/sockaddr.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/m68k/bits/stat.h b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/bits/stat.h
new file mode 100644
index 0000000000..9394d97158
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/bits/stat.h
@@ -0,0 +1,172 @@
+/* Copyright (C) 1992-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#if !defined _SYS_STAT_H && !defined _FCNTL_H
+# error "Never include <bits/stat.h> directly; use <sys/stat.h> instead."
+#endif
+
+#ifndef _BITS_STAT_H
+#define _BITS_STAT_H 1
+
+/* Versions of the `struct stat' data structure. */
+#define _STAT_VER_LINUX_OLD 1
+#define _STAT_VER_KERNEL 1
+#define _STAT_VER_SVR4 2
+#define _STAT_VER_LINUX 3
+#define _STAT_VER _STAT_VER_LINUX /* The one defined below. */
+
+/* Versions of the `xmknod' interface. */
+#define _MKNOD_VER_LINUX 1
+#define _MKNOD_VER_SVR4 2
+#define _MKNOD_VER _MKNOD_VER_LINUX /* The bits defined below. */
+
+
+struct stat
+ {
+ __dev_t st_dev; /* Device. */
+ unsigned short int __pad1;
+#ifndef __USE_FILE_OFFSET64
+ __ino_t st_ino; /* File serial number. */
+#else
+ __ino_t __st_ino; /* 32bit file serial number. */
+#endif
+ __mode_t st_mode; /* File mode. */
+ __nlink_t st_nlink; /* Link count. */
+ __uid_t st_uid; /* User ID of the file's owner. */
+ __gid_t st_gid; /* Group ID of the file's group.*/
+ __dev_t st_rdev; /* Device number, if device. */
+ unsigned short int __pad2;
+#ifndef __USE_FILE_OFFSET64
+ __off_t st_size; /* Size of file, in bytes. */
+#else
+ __off64_t st_size; /* Size of file, in bytes. */
+#endif
+ __blksize_t st_blksize; /* Optimal block size for I/O. */
+
+#ifndef __USE_FILE_OFFSET64
+ __blkcnt_t st_blocks; /* Number 512-byte blocks allocated. */
+#else
+ __blkcnt64_t st_blocks; /* Number 512-byte blocks allocated. */
+#endif
+#ifdef __USE_XOPEN2K8
+ /* Nanosecond resolution timestamps are stored in a format
+ equivalent to 'struct timespec'. This is the type used
+ whenever possible but the Unix namespace rules do not allow the
+ identifier 'timespec' to appear in the <sys/stat.h> header.
+ Therefore we have to handle the use of this header in strictly
+ standard-compliant sources special. */
+ struct timespec st_atim; /* Time of last access. */
+ struct timespec st_mtim; /* Time of last modification. */
+ struct timespec st_ctim; /* Time of last status change. */
+# define st_atime st_atim.tv_sec /* Backward compatibility. */
+# define st_mtime st_mtim.tv_sec
+# define st_ctime st_ctim.tv_sec
+#else
+ __time_t st_atime; /* Time of last access. */
+ unsigned long int st_atimensec; /* Nscecs of last access. */
+ __time_t st_mtime; /* Time of last modification. */
+ unsigned long int st_mtimensec; /* Nsecs of last modification. */
+ __time_t st_ctime; /* Time of last status change. */
+ unsigned long int st_ctimensec; /* Nsecs of last status change. */
+#endif
+#ifndef __USE_FILE_OFFSET64
+ unsigned long int __glibc_reserved4;
+ unsigned long int __glibc_reserved5;
+#else
+ __ino64_t st_ino; /* File serial number. */
+#endif
+ };
+
+#ifdef __USE_LARGEFILE64
+struct stat64
+ {
+ __dev_t st_dev; /* Device. */
+ unsigned short int __pad1;
+
+ __ino_t __st_ino; /* 32bit file serial number. */
+ __mode_t st_mode; /* File mode. */
+ __nlink_t st_nlink; /* Link count. */
+ __uid_t st_uid; /* User ID of the file's owner. */
+ __gid_t st_gid; /* Group ID of the file's group.*/
+ __dev_t st_rdev; /* Device number, if device. */
+ unsigned short int __pad2;
+ __off64_t st_size; /* Size of file, in bytes. */
+ __blksize_t st_blksize; /* Optimal block size for I/O. */
+
+ __blkcnt64_t st_blocks; /* Number 512-byte blocks allocated. */
+# ifdef __USE_XOPEN2K8
+ /* Nanosecond resolution timestamps are stored in a format
+ equivalent to 'struct timespec'. This is the type used
+ whenever possible but the Unix namespace rules do not allow the
+ identifier 'timespec' to appear in the <sys/stat.h> header.
+ Therefore we have to handle the use of this header in strictly
+ standard-compliant sources special. */
+ struct timespec st_atim; /* Time of last access. */
+ struct timespec st_mtim; /* Time of last modification. */
+ struct timespec st_ctim; /* Time of last status change. */
+# else
+ __time_t st_atime; /* Time of last access. */
+ unsigned long int st_atimensec; /* Nscecs of last access. */
+ __time_t st_mtime; /* Time of last modification. */
+ unsigned long int st_mtimensec; /* Nsecs of last modification. */
+ __time_t st_ctime; /* Time of last status change. */
+ unsigned long int st_ctimensec; /* Nsecs of last status change. */
+# endif
+ __ino64_t st_ino; /* File serial number. */
+ };
+#endif
+
+/* Tell code we have these members. */
+#define _STATBUF_ST_BLKSIZE
+#define _STATBUF_ST_RDEV
+/* Nanosecond resolution time values are supported. */
+#define _STATBUF_ST_NSEC
+
+/* Encoding of the file mode. */
+
+#define __S_IFMT 0170000 /* These bits determine file type. */
+
+/* File types. */
+#define __S_IFDIR 0040000 /* Directory. */
+#define __S_IFCHR 0020000 /* Character device. */
+#define __S_IFBLK 0060000 /* Block device. */
+#define __S_IFREG 0100000 /* Regular file. */
+#define __S_IFIFO 0010000 /* FIFO. */
+#define __S_IFLNK 0120000 /* Symbolic link. */
+#define __S_IFSOCK 0140000 /* Socket. */
+
+/* POSIX.1b objects. Note that these macros always evaluate to zero. But
+ they do it by enforcing the correct use of the macros. */
+#define __S_TYPEISMQ(buf) ((buf)->st_mode - (buf)->st_mode)
+#define __S_TYPEISSEM(buf) ((buf)->st_mode - (buf)->st_mode)
+#define __S_TYPEISSHM(buf) ((buf)->st_mode - (buf)->st_mode)
+
+/* Protection bits. */
+
+#define __S_ISUID 04000 /* Set user ID on execution. */
+#define __S_ISGID 02000 /* Set group ID on execution. */
+#define __S_ISVTX 01000 /* Save swapped text after use (sticky). */
+#define __S_IREAD 0400 /* Read by owner. */
+#define __S_IWRITE 0200 /* Write by owner. */
+#define __S_IEXEC 0100 /* Execute by owner. */
+
+#ifdef __USE_ATFILE
+# define UTIME_NOW ((1l << 30) - 1l)
+# define UTIME_OMIT ((1l << 30) - 2l)
+#endif
+
+#endif /* bits/stat.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/m68k/brk.c b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/brk.c
new file mode 100644
index 0000000000..6ce9d512bd
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/brk.c
@@ -0,0 +1,47 @@
+/* brk system call for Linux/m68k.
+ Copyright (C) 1996-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <unistd.h>
+#include <sysdep.h>
+
+void *__curbrk = 0;
+
+/* Old braindamage in GCC's crtstuff.c requires this symbol in an attempt
+ to work around different old braindamage in the old Linux/x86 ELF
+ dynamic linker. Sigh. */
+weak_alias (__curbrk, ___brk_addr)
+
+int
+__brk (void *addr)
+{
+ void *newbrk;
+
+ INTERNAL_SYSCALL_DECL (err);
+ newbrk = (void *) INTERNAL_SYSCALL (brk, err, 1, addr);
+ __curbrk = newbrk;
+
+ if (newbrk < addr)
+ {
+ __set_errno (ENOMEM);
+ return -1;
+ }
+
+ return 0;
+}
+weak_alias (__brk, brk)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/m68k/c++-types.data b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/c++-types.data
new file mode 100644
index 0000000000..fde53bf337
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/c++-types.data
@@ -0,0 +1,67 @@
+blkcnt64_t:x
+blkcnt_t:l
+blksize_t:l
+caddr_t:Pc
+clockid_t:i
+clock_t:l
+daddr_t:i
+dev_t:y
+fd_mask:l
+fsblkcnt64_t:y
+fsblkcnt_t:m
+fsfilcnt64_t:y
+fsfilcnt_t:m
+fsid_t:8__fsid_t
+gid_t:j
+id_t:j
+ino64_t:y
+ino_t:m
+int16_t:s
+int32_t:i
+int64_t:x
+int8_t:a
+intptr_t:i
+key_t:i
+loff_t:x
+mode_t:j
+nlink_t:j
+off64_t:x
+off_t:l
+pid_t:i
+pthread_attr_t:14pthread_attr_t
+pthread_barrier_t:17pthread_barrier_t
+pthread_barrierattr_t:21pthread_barrierattr_t
+pthread_cond_t:14pthread_cond_t
+pthread_condattr_t:18pthread_condattr_t
+pthread_key_t:j
+pthread_mutex_t:15pthread_mutex_t
+pthread_mutexattr_t:19pthread_mutexattr_t
+pthread_once_t:i
+pthread_rwlock_t:16pthread_rwlock_t
+pthread_rwlockattr_t:20pthread_rwlockattr_t
+pthread_spinlock_t:i
+pthread_t:m
+quad_t:x
+register_t:i
+rlim64_t:y
+rlim_t:m
+sigset_t:10__sigset_t
+size_t:j
+socklen_t:j
+ssize_t:i
+suseconds_t:l
+time_t:l
+u_char:h
+uid_t:j
+uint:j
+u_int:j
+u_int16_t:t
+u_int32_t:j
+u_int64_t:y
+u_int8_t:h
+ulong:m
+u_long:m
+u_quad_t:y
+useconds_t:j
+ushort:t
+u_short:t
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/m68k/clone.S b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/clone.S
new file mode 100644
index 0000000000..a680191765
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/clone.S
@@ -0,0 +1,111 @@
+/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Andreas Schwab (schwab@issan.informatik.uni-dortmund.de)
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+/* clone() is even more special than fork() as it mucks with stacks
+ and invokes a function in the right context after its all over. */
+
+#include <sysdep.h>
+#define _ERRNO_H 1
+#include <bits/errno.h>
+#include <tls.h>
+
+#define CLONE_VM 0x00000100
+
+/* int clone(int (*fn)(void *arg), void *child_stack, int flags, void *arg,
+ void *parent_tidptr, void *tls, void *child_tidptr) */
+
+ .text
+ENTRY (__clone)
+
+ /* Sanity check arguments. */
+ movel #-EINVAL, %d0
+ movel 4(%sp), %a0 /* no NULL function pointers */
+ tstl %a0
+ jeq SYSCALL_ERROR_LABEL
+ movel 8(%sp), %a1 /* no NULL stack pointers */
+ tstl %a1
+ jeq SYSCALL_ERROR_LABEL
+
+ /* Allocate space and copy the argument onto the new stack. */
+ movel 16(%sp), -(%a1)
+
+ /* Do the system call */
+ movel 12+0(%sp), %d1 /* get flags */
+ movel %d3, -(%a1) /* save %d3 and get parent_tidptr */
+ movel %d3, -(%sp)
+ cfi_adjust_cfa_offset (4)
+ cfi_rel_offset (%d3, 0)
+ movel 20+4(%sp), %d3
+ movel %d4, -(%a1) /* save %d4 and get child_tidptr */
+ movel %d4, -(%sp)
+ cfi_adjust_cfa_offset (4)
+ cfi_rel_offset (%d4, 0)
+ movel 28+8(%sp), %d4
+ movel %d5, -(%a1) /* save %d5 and get tls */
+ movel %d5, -(%sp)
+ cfi_adjust_cfa_offset (4)
+ cfi_rel_offset (%d5, 0)
+ movel 24+12(%sp), %d5
+ /* save %d2 and get stack pointer */
+#ifdef __mcoldfire__
+ movel %d2, -(%a1)
+ movel %d2, -(%sp)
+ cfi_adjust_cfa_offset (4)
+ cfi_rel_offset (%d2, 0)
+ movel %a1, %d2
+#else
+ exg %d2, %a1 /* save %d2 and get stack pointer */
+ cfi_register (%d2, %a1)
+#endif
+ movel #SYS_ify (clone), %d0
+
+ /* End FDE now, because in the child the unwind info will be
+ wrong. */
+ cfi_endproc
+
+ trap #0
+#ifdef __mcoldfire__
+ movel (%sp)+, %d2
+#else
+ exg %d2, %a1 /* restore %d2 */
+#endif
+ movel (%sp)+, %d5 /* restore %d5, %d4 and %d3 */
+ movel (%sp)+, %d4
+ movel (%sp)+, %d3
+
+ tstl %d0
+ jmi SYSCALL_ERROR_LABEL
+ jeq 1f
+
+ rts
+
+1:
+ cfi_startproc
+ cfi_undefined (pc) /* Mark end of stack */
+ subl %fp, %fp /* terminate the stack frame */
+ jsr (%a0)
+ movel %d0, %d1
+ movel #SYS_ify (exit), %d0
+ trap #0
+ cfi_endproc
+
+ cfi_startproc
+PSEUDO_END (__clone)
+
+libc_hidden_def (__clone)
+weak_alias (__clone, clone)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/m68k/coldfire/atomic-machine.h b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/coldfire/atomic-machine.h
new file mode 100644
index 0000000000..1daac514a9
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/coldfire/atomic-machine.h
@@ -0,0 +1,109 @@
+/* Copyright (C) 2010-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Maxim Kuvyrkov <maxim@codesourcery.com>, 2010.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _ATOMIC_MACHINE_H
+#define _ATOMIC_MACHINE_H 1
+
+#include <stdint.h>
+#include <sysdep.h>
+#include <m68k-vdso.h>
+
+/* Coldfire has no atomic compare-and-exchange operation, but the
+ kernel provides userspace atomicity operations. Use them. */
+
+typedef int32_t atomic32_t;
+typedef uint32_t uatomic32_t;
+typedef int_fast32_t atomic_fast32_t;
+typedef uint_fast32_t uatomic_fast32_t;
+
+typedef intptr_t atomicptr_t;
+typedef uintptr_t uatomicptr_t;
+typedef intmax_t atomic_max_t;
+typedef uintmax_t uatomic_max_t;
+
+#define __HAVE_64B_ATOMICS 0
+#define USE_ATOMIC_COMPILER_BUILTINS 0
+
+/* XXX Is this actually correct? */
+#define ATOMIC_EXCHANGE_USES_CAS 1
+
+/* The only basic operation needed is compare and exchange. */
+/* For ColdFire we'll have to trap into the kernel mode anyway,
+ so trap from the library rather then from the kernel wrapper. */
+#ifdef SHARED
+# define atomic_compare_and_exchange_val_acq(mem, newval, oldval) \
+ ({ \
+ /* Use temporary variables to workaround call-clobberness of \
+ the registers. */ \
+ __typeof (mem) _mem = mem; \
+ __typeof (oldval) _oldval = oldval; \
+ __typeof (newval) _newval = newval; \
+ register uint32_t *_a0 asm ("a0") = (uint32_t *) _mem; \
+ register uint32_t _d0 asm ("d0") = (uint32_t) _oldval; \
+ register uint32_t _d1 asm ("d1") = (uint32_t) _newval; \
+ void *tmp; \
+ \
+ asm ("movel #_GLOBAL_OFFSET_TABLE_@GOTPC, %2\n\t" \
+ "lea (-6, %%pc, %2), %2\n\t" \
+ "movel " STR_M68K_VDSO_SYMBOL (__vdso_atomic_cmpxchg_32) \
+ "@GOT(%2), %2\n\t" \
+ "movel (%2), %2\n\t" \
+ "jsr (%2)\n\t" \
+ : "+d" (_d0), "+m" (*_a0), "=&a" (tmp) \
+ : "a" (_a0), "d" (_d1)); \
+ (__typeof (oldval)) _d0; \
+ })
+#else
+# define atomic_compare_and_exchange_val_acq(mem, newval, oldval) \
+ ({ \
+ /* Use temporary variables to workaround call-clobberness of \
+ the registers. */ \
+ __typeof (mem) _mem = mem; \
+ __typeof (oldval) _oldval = oldval; \
+ __typeof (newval) _newval = newval; \
+ register uint32_t _d0 asm ("d0") = SYS_ify (atomic_cmpxchg_32); \
+ register uint32_t *_a0 asm ("a0") = (uint32_t *) _mem; \
+ register uint32_t _d2 asm ("d2") = (uint32_t) _oldval; \
+ register uint32_t _d1 asm ("d1") = (uint32_t) _newval; \
+ \
+ asm ("trap #0" \
+ : "+d" (_d0), "+m" (*_a0) \
+ : "a" (_a0), "d" (_d2), "d" (_d1)); \
+ (__typeof (oldval)) _d0; \
+ })
+#endif
+
+#ifdef SHARED
+# define atomic_full_barrier() \
+ ({ \
+ void *tmp; \
+ \
+ asm ("movel #_GLOBAL_OFFSET_TABLE_@GOTPC, %0\n\t" \
+ "lea (-6, %pc, %0), %0\n\t" \
+ "movel " STR_M68K_VDSO_SYMBOL (__vdso_atomic_barrier) \
+ "@GOT(%0), %0\n\t" \
+ "movel (%0), %0\n\t" \
+ "jsr (%0)\n\t" \
+ : "=&a" (tmp)); \
+ })
+#else
+# define atomic_full_barrier() \
+ (INTERNAL_SYSCALL (atomic_barrier, , 0), (void) 0)
+#endif
+
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/m68k/coldfire/ld.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/coldfire/ld.abilist
new file mode 100644
index 0000000000..cbf3a3cb2e
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/coldfire/ld.abilist
@@ -0,0 +1,10 @@
+GLIBC_2.4 GLIBC_2.4 A
+GLIBC_2.4 __libc_stack_end D 0x4
+GLIBC_2.4 __stack_chk_guard D 0x4
+GLIBC_2.4 __tls_get_addr F
+GLIBC_2.4 _dl_mcount F
+GLIBC_2.4 _r_debug D 0x14
+GLIBC_2.4 calloc F
+GLIBC_2.4 free F
+GLIBC_2.4 malloc F
+GLIBC_2.4 realloc F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/m68k/coldfire/libBrokenLocale.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/coldfire/libBrokenLocale.abilist
new file mode 100644
index 0000000000..e80f213955
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/coldfire/libBrokenLocale.abilist
@@ -0,0 +1,2 @@
+GLIBC_2.4 GLIBC_2.4 A
+GLIBC_2.4 __ctype_get_mb_cur_max F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/m68k/coldfire/libanl.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/coldfire/libanl.abilist
new file mode 100644
index 0000000000..df0c397ddc
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/coldfire/libanl.abilist
@@ -0,0 +1,5 @@
+GLIBC_2.4 GLIBC_2.4 A
+GLIBC_2.4 gai_cancel F
+GLIBC_2.4 gai_error F
+GLIBC_2.4 gai_suspend F
+GLIBC_2.4 getaddrinfo_a F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
new file mode 100644
index 0000000000..b594ebd7c6
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
@@ -0,0 +1,2133 @@
+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 __m68k_read_tp F
+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.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.4 GLIBC_2.4 A
+GLIBC_2.4 _Exit F
+GLIBC_2.4 _IO_2_1_stderr_ D 0x98
+GLIBC_2.4 _IO_2_1_stdin_ D 0x98
+GLIBC_2.4 _IO_2_1_stdout_ D 0x98
+GLIBC_2.4 _IO_adjust_column F
+GLIBC_2.4 _IO_adjust_wcolumn F
+GLIBC_2.4 _IO_default_doallocate F
+GLIBC_2.4 _IO_default_finish F
+GLIBC_2.4 _IO_default_pbackfail F
+GLIBC_2.4 _IO_default_uflow F
+GLIBC_2.4 _IO_default_xsgetn F
+GLIBC_2.4 _IO_default_xsputn F
+GLIBC_2.4 _IO_do_write F
+GLIBC_2.4 _IO_doallocbuf F
+GLIBC_2.4 _IO_fclose F
+GLIBC_2.4 _IO_fdopen F
+GLIBC_2.4 _IO_feof F
+GLIBC_2.4 _IO_ferror F
+GLIBC_2.4 _IO_fflush F
+GLIBC_2.4 _IO_fgetpos F
+GLIBC_2.4 _IO_fgetpos64 F
+GLIBC_2.4 _IO_fgets F
+GLIBC_2.4 _IO_file_attach F
+GLIBC_2.4 _IO_file_close F
+GLIBC_2.4 _IO_file_close_it F
+GLIBC_2.4 _IO_file_doallocate F
+GLIBC_2.4 _IO_file_finish F
+GLIBC_2.4 _IO_file_fopen F
+GLIBC_2.4 _IO_file_init F
+GLIBC_2.4 _IO_file_jumps D 0x54
+GLIBC_2.4 _IO_file_open F
+GLIBC_2.4 _IO_file_overflow F
+GLIBC_2.4 _IO_file_read F
+GLIBC_2.4 _IO_file_seek F
+GLIBC_2.4 _IO_file_seekoff F
+GLIBC_2.4 _IO_file_setbuf F
+GLIBC_2.4 _IO_file_stat F
+GLIBC_2.4 _IO_file_sync F
+GLIBC_2.4 _IO_file_underflow F
+GLIBC_2.4 _IO_file_write F
+GLIBC_2.4 _IO_file_xsputn F
+GLIBC_2.4 _IO_flockfile F
+GLIBC_2.4 _IO_flush_all F
+GLIBC_2.4 _IO_flush_all_linebuffered F
+GLIBC_2.4 _IO_fopen F
+GLIBC_2.4 _IO_fprintf F
+GLIBC_2.4 _IO_fputs F
+GLIBC_2.4 _IO_fread F
+GLIBC_2.4 _IO_free_backup_area F
+GLIBC_2.4 _IO_free_wbackup_area F
+GLIBC_2.4 _IO_fsetpos F
+GLIBC_2.4 _IO_fsetpos64 F
+GLIBC_2.4 _IO_ftell F
+GLIBC_2.4 _IO_ftrylockfile F
+GLIBC_2.4 _IO_funlockfile F
+GLIBC_2.4 _IO_fwrite F
+GLIBC_2.4 _IO_getc F
+GLIBC_2.4 _IO_getline F
+GLIBC_2.4 _IO_getline_info F
+GLIBC_2.4 _IO_gets F
+GLIBC_2.4 _IO_init F
+GLIBC_2.4 _IO_init_marker F
+GLIBC_2.4 _IO_init_wmarker F
+GLIBC_2.4 _IO_iter_begin F
+GLIBC_2.4 _IO_iter_end F
+GLIBC_2.4 _IO_iter_file F
+GLIBC_2.4 _IO_iter_next F
+GLIBC_2.4 _IO_least_wmarker F
+GLIBC_2.4 _IO_link_in F
+GLIBC_2.4 _IO_list_all D 0x4
+GLIBC_2.4 _IO_list_lock F
+GLIBC_2.4 _IO_list_resetlock F
+GLIBC_2.4 _IO_list_unlock F
+GLIBC_2.4 _IO_marker_delta F
+GLIBC_2.4 _IO_marker_difference F
+GLIBC_2.4 _IO_padn F
+GLIBC_2.4 _IO_peekc_locked F
+GLIBC_2.4 _IO_popen F
+GLIBC_2.4 _IO_printf F
+GLIBC_2.4 _IO_proc_close F
+GLIBC_2.4 _IO_proc_open F
+GLIBC_2.4 _IO_putc F
+GLIBC_2.4 _IO_puts F
+GLIBC_2.4 _IO_remove_marker F
+GLIBC_2.4 _IO_seekmark F
+GLIBC_2.4 _IO_seekoff F
+GLIBC_2.4 _IO_seekpos F
+GLIBC_2.4 _IO_seekwmark F
+GLIBC_2.4 _IO_setb F
+GLIBC_2.4 _IO_setbuffer F
+GLIBC_2.4 _IO_setvbuf F
+GLIBC_2.4 _IO_sgetn F
+GLIBC_2.4 _IO_sprintf F
+GLIBC_2.4 _IO_sputbackc F
+GLIBC_2.4 _IO_sputbackwc F
+GLIBC_2.4 _IO_sscanf F
+GLIBC_2.4 _IO_str_init_readonly F
+GLIBC_2.4 _IO_str_init_static F
+GLIBC_2.4 _IO_str_overflow F
+GLIBC_2.4 _IO_str_pbackfail F
+GLIBC_2.4 _IO_str_seekoff F
+GLIBC_2.4 _IO_str_underflow F
+GLIBC_2.4 _IO_sungetc F
+GLIBC_2.4 _IO_sungetwc F
+GLIBC_2.4 _IO_switch_to_get_mode F
+GLIBC_2.4 _IO_switch_to_main_wget_area F
+GLIBC_2.4 _IO_switch_to_wbackup_area F
+GLIBC_2.4 _IO_switch_to_wget_mode F
+GLIBC_2.4 _IO_un_link F
+GLIBC_2.4 _IO_ungetc F
+GLIBC_2.4 _IO_unsave_markers F
+GLIBC_2.4 _IO_unsave_wmarkers F
+GLIBC_2.4 _IO_vfprintf F
+GLIBC_2.4 _IO_vfscanf F
+GLIBC_2.4 _IO_vsprintf F
+GLIBC_2.4 _IO_wdefault_doallocate F
+GLIBC_2.4 _IO_wdefault_finish F
+GLIBC_2.4 _IO_wdefault_pbackfail F
+GLIBC_2.4 _IO_wdefault_uflow F
+GLIBC_2.4 _IO_wdefault_xsgetn F
+GLIBC_2.4 _IO_wdefault_xsputn F
+GLIBC_2.4 _IO_wdo_write F
+GLIBC_2.4 _IO_wdoallocbuf F
+GLIBC_2.4 _IO_wfile_jumps D 0x54
+GLIBC_2.4 _IO_wfile_overflow F
+GLIBC_2.4 _IO_wfile_seekoff F
+GLIBC_2.4 _IO_wfile_sync F
+GLIBC_2.4 _IO_wfile_underflow F
+GLIBC_2.4 _IO_wfile_xsputn F
+GLIBC_2.4 _IO_wmarker_delta F
+GLIBC_2.4 _IO_wsetb F
+GLIBC_2.4 ___brk_addr D 0x4
+GLIBC_2.4 __adjtimex F
+GLIBC_2.4 __after_morecore_hook D 0x4
+GLIBC_2.4 __argz_count F
+GLIBC_2.4 __argz_next F
+GLIBC_2.4 __argz_stringify F
+GLIBC_2.4 __asprintf F
+GLIBC_2.4 __assert F
+GLIBC_2.4 __assert_fail F
+GLIBC_2.4 __assert_perror_fail F
+GLIBC_2.4 __backtrace F
+GLIBC_2.4 __backtrace_symbols F
+GLIBC_2.4 __backtrace_symbols_fd F
+GLIBC_2.4 __bsd_getpgrp F
+GLIBC_2.4 __bzero F
+GLIBC_2.4 __check_rhosts_file D 0x4
+GLIBC_2.4 __chk_fail F
+GLIBC_2.4 __clone F
+GLIBC_2.4 __close F
+GLIBC_2.4 __cmsg_nxthdr F
+GLIBC_2.4 __confstr_chk F
+GLIBC_2.4 __connect F
+GLIBC_2.4 __ctype_b_loc F
+GLIBC_2.4 __ctype_get_mb_cur_max F
+GLIBC_2.4 __ctype_tolower_loc F
+GLIBC_2.4 __ctype_toupper_loc F
+GLIBC_2.4 __curbrk D 0x4
+GLIBC_2.4 __cxa_atexit F
+GLIBC_2.4 __cxa_finalize F
+GLIBC_2.4 __cyg_profile_func_enter F
+GLIBC_2.4 __cyg_profile_func_exit F
+GLIBC_2.4 __daylight D 0x4
+GLIBC_2.4 __dcgettext F
+GLIBC_2.4 __default_morecore F
+GLIBC_2.4 __dgettext F
+GLIBC_2.4 __divdi3 F
+GLIBC_2.4 __dup2 F
+GLIBC_2.4 __duplocale F
+GLIBC_2.4 __endmntent F
+GLIBC_2.4 __environ D 0x4
+GLIBC_2.4 __errno_location F
+GLIBC_2.4 __fbufsize F
+GLIBC_2.4 __fcntl F
+GLIBC_2.4 __ffs 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 __finite F
+GLIBC_2.4 __finitef F
+GLIBC_2.4 __finitel F
+GLIBC_2.4 __flbf F
+GLIBC_2.4 __fork F
+GLIBC_2.4 __fpending F
+GLIBC_2.4 __fprintf_chk F
+GLIBC_2.4 __fpu_control D 0x4
+GLIBC_2.4 __fpurge F
+GLIBC_2.4 __freadable F
+GLIBC_2.4 __freading F
+GLIBC_2.4 __free_hook D 0x4
+GLIBC_2.4 __freelocale F
+GLIBC_2.4 __fsetlocking F
+GLIBC_2.4 __fwprintf_chk F
+GLIBC_2.4 __fwritable F
+GLIBC_2.4 __fwriting F
+GLIBC_2.4 __fxstat F
+GLIBC_2.4 __fxstat64 F
+GLIBC_2.4 __fxstatat F
+GLIBC_2.4 __fxstatat64 F
+GLIBC_2.4 __getcwd_chk F
+GLIBC_2.4 __getdelim 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 __getmntent_r F
+GLIBC_2.4 __getpagesize F
+GLIBC_2.4 __getpgid F
+GLIBC_2.4 __getpid F
+GLIBC_2.4 __gets_chk F
+GLIBC_2.4 __gettimeofday F
+GLIBC_2.4 __getwd_chk F
+GLIBC_2.4 __gmtime_r F
+GLIBC_2.4 __h_errno_location F
+GLIBC_2.4 __isalnum_l F
+GLIBC_2.4 __isalpha_l F
+GLIBC_2.4 __isascii_l F
+GLIBC_2.4 __isblank_l F
+GLIBC_2.4 __iscntrl_l F
+GLIBC_2.4 __isctype F
+GLIBC_2.4 __isdigit_l F
+GLIBC_2.4 __isgraph_l F
+GLIBC_2.4 __isinf F
+GLIBC_2.4 __isinff F
+GLIBC_2.4 __isinfl F
+GLIBC_2.4 __islower_l F
+GLIBC_2.4 __isnan F
+GLIBC_2.4 __isnanf F
+GLIBC_2.4 __isnanl F
+GLIBC_2.4 __isprint_l F
+GLIBC_2.4 __ispunct_l F
+GLIBC_2.4 __isspace_l F
+GLIBC_2.4 __isupper_l F
+GLIBC_2.4 __iswalnum_l F
+GLIBC_2.4 __iswalpha_l F
+GLIBC_2.4 __iswblank_l F
+GLIBC_2.4 __iswcntrl_l F
+GLIBC_2.4 __iswctype F
+GLIBC_2.4 __iswctype_l F
+GLIBC_2.4 __iswdigit_l F
+GLIBC_2.4 __iswgraph_l F
+GLIBC_2.4 __iswlower_l F
+GLIBC_2.4 __iswprint_l F
+GLIBC_2.4 __iswpunct_l F
+GLIBC_2.4 __iswspace_l F
+GLIBC_2.4 __iswupper_l F
+GLIBC_2.4 __iswxdigit_l F
+GLIBC_2.4 __isxdigit_l F
+GLIBC_2.4 __ivaliduser F
+GLIBC_2.4 __key_decryptsession_pk_LOCAL D 0x4
+GLIBC_2.4 __key_encryptsession_pk_LOCAL D 0x4
+GLIBC_2.4 __key_gendes_LOCAL D 0x4
+GLIBC_2.4 __libc_allocate_rtsig F
+GLIBC_2.4 __libc_calloc F
+GLIBC_2.4 __libc_current_sigrtmax F
+GLIBC_2.4 __libc_current_sigrtmin F
+GLIBC_2.4 __libc_free F
+GLIBC_2.4 __libc_freeres F
+GLIBC_2.4 __libc_init_first F
+GLIBC_2.4 __libc_mallinfo F
+GLIBC_2.4 __libc_malloc F
+GLIBC_2.4 __libc_mallopt F
+GLIBC_2.4 __libc_memalign F
+GLIBC_2.4 __libc_pvalloc F
+GLIBC_2.4 __libc_realloc F
+GLIBC_2.4 __libc_sa_len F
+GLIBC_2.4 __libc_start_main F
+GLIBC_2.4 __libc_valloc F
+GLIBC_2.4 __lseek F
+GLIBC_2.4 __lxstat F
+GLIBC_2.4 __lxstat64 F
+GLIBC_2.4 __malloc_hook D 0x4
+GLIBC_2.4 __malloc_initialize_hook D 0x4
+GLIBC_2.4 __mbrlen F
+GLIBC_2.4 __mbrtowc F
+GLIBC_2.4 __mbsnrtowcs_chk F
+GLIBC_2.4 __mbsrtowcs_chk F
+GLIBC_2.4 __mbstowcs_chk F
+GLIBC_2.4 __memalign_hook D 0x4
+GLIBC_2.4 __memcpy_chk F
+GLIBC_2.4 __memmove_chk F
+GLIBC_2.4 __mempcpy F
+GLIBC_2.4 __mempcpy_chk F
+GLIBC_2.4 __mempcpy_small F
+GLIBC_2.4 __memset_chk F
+GLIBC_2.4 __moddi3 F
+GLIBC_2.4 __monstartup F
+GLIBC_2.4 __morecore D 0x4
+GLIBC_2.4 __nanosleep F
+GLIBC_2.4 __newlocale F
+GLIBC_2.4 __nl_langinfo_l F
+GLIBC_2.4 __nss_configure_lookup F
+GLIBC_2.4 __nss_database_lookup F
+GLIBC_2.4 __nss_group_lookup F
+GLIBC_2.4 __nss_hostname_digits_dots F
+GLIBC_2.4 __nss_hosts_lookup F
+GLIBC_2.4 __nss_next F
+GLIBC_2.4 __nss_passwd_lookup F
+GLIBC_2.4 __open F
+GLIBC_2.4 __open64 F
+GLIBC_2.4 __overflow F
+GLIBC_2.4 __pipe F
+GLIBC_2.4 __poll F
+GLIBC_2.4 __pread64 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 __profile_frequency F
+GLIBC_2.4 __progname D 0x4
+GLIBC_2.4 __progname_full D 0x4
+GLIBC_2.4 __ptsname_r_chk F
+GLIBC_2.4 __pwrite64 F
+GLIBC_2.4 __rawmemchr F
+GLIBC_2.4 __rcmd_errstr D 0x4
+GLIBC_2.4 __read F
+GLIBC_2.4 __read_chk F
+GLIBC_2.4 __readlink_chk F
+GLIBC_2.4 __realloc_hook D 0x4
+GLIBC_2.4 __realpath_chk F
+GLIBC_2.4 __recv_chk F
+GLIBC_2.4 __recvfrom_chk F
+GLIBC_2.4 __register_atfork F
+GLIBC_2.4 __res_init F
+GLIBC_2.4 __res_nclose F
+GLIBC_2.4 __res_ninit F
+GLIBC_2.4 __res_randomid F
+GLIBC_2.4 __res_state F
+GLIBC_2.4 __rpc_thread_createerr F
+GLIBC_2.4 __rpc_thread_svc_fdset F
+GLIBC_2.4 __rpc_thread_svc_max_pollfd F
+GLIBC_2.4 __rpc_thread_svc_pollfd F
+GLIBC_2.4 __sbrk F
+GLIBC_2.4 __sched_get_priority_max F
+GLIBC_2.4 __sched_get_priority_min F
+GLIBC_2.4 __sched_getparam F
+GLIBC_2.4 __sched_getscheduler F
+GLIBC_2.4 __sched_setscheduler F
+GLIBC_2.4 __sched_yield F
+GLIBC_2.4 __secure_getenv F
+GLIBC_2.4 __select F
+GLIBC_2.4 __send F
+GLIBC_2.4 __setmntent F
+GLIBC_2.4 __setpgid F
+GLIBC_2.4 __sigaction F
+GLIBC_2.4 __sigaddset F
+GLIBC_2.4 __sigdelset F
+GLIBC_2.4 __sigismember F
+GLIBC_2.4 __signbit F
+GLIBC_2.4 __signbitf F
+GLIBC_2.4 __sigpause F
+GLIBC_2.4 __sigsetjmp F
+GLIBC_2.4 __sigsuspend F
+GLIBC_2.4 __snprintf_chk F
+GLIBC_2.4 __sprintf_chk F
+GLIBC_2.4 __stack_chk_fail F
+GLIBC_2.4 __statfs F
+GLIBC_2.4 __stpcpy F
+GLIBC_2.4 __stpcpy_chk F
+GLIBC_2.4 __stpcpy_small F
+GLIBC_2.4 __stpncpy F
+GLIBC_2.4 __stpncpy_chk F
+GLIBC_2.4 __strcasecmp F
+GLIBC_2.4 __strcasecmp_l F
+GLIBC_2.4 __strcasestr F
+GLIBC_2.4 __strcat_chk F
+GLIBC_2.4 __strcoll_l F
+GLIBC_2.4 __strcpy_chk F
+GLIBC_2.4 __strcpy_small F
+GLIBC_2.4 __strcspn_c1 F
+GLIBC_2.4 __strcspn_c2 F
+GLIBC_2.4 __strcspn_c3 F
+GLIBC_2.4 __strdup F
+GLIBC_2.4 __strerror_r F
+GLIBC_2.4 __strfmon_l F
+GLIBC_2.4 __strftime_l F
+GLIBC_2.4 __strncasecmp_l F
+GLIBC_2.4 __strncat_chk F
+GLIBC_2.4 __strncpy_chk F
+GLIBC_2.4 __strndup F
+GLIBC_2.4 __strpbrk_c2 F
+GLIBC_2.4 __strpbrk_c3 F
+GLIBC_2.4 __strsep_1c F
+GLIBC_2.4 __strsep_2c F
+GLIBC_2.4 __strsep_3c F
+GLIBC_2.4 __strsep_g F
+GLIBC_2.4 __strspn_c1 F
+GLIBC_2.4 __strspn_c2 F
+GLIBC_2.4 __strspn_c3 F
+GLIBC_2.4 __strtod_internal F
+GLIBC_2.4 __strtod_l F
+GLIBC_2.4 __strtof_internal F
+GLIBC_2.4 __strtof_l F
+GLIBC_2.4 __strtok_r F
+GLIBC_2.4 __strtok_r_1c F
+GLIBC_2.4 __strtol_internal F
+GLIBC_2.4 __strtol_l F
+GLIBC_2.4 __strtold_internal F
+GLIBC_2.4 __strtold_l F
+GLIBC_2.4 __strtoll_internal F
+GLIBC_2.4 __strtoll_l F
+GLIBC_2.4 __strtoul_internal F
+GLIBC_2.4 __strtoul_l F
+GLIBC_2.4 __strtoull_internal F
+GLIBC_2.4 __strtoull_l F
+GLIBC_2.4 __strverscmp F
+GLIBC_2.4 __strxfrm_l F
+GLIBC_2.4 __swprintf_chk F
+GLIBC_2.4 __sysconf F
+GLIBC_2.4 __sysctl F
+GLIBC_2.4 __syslog_chk F
+GLIBC_2.4 __sysv_signal F
+GLIBC_2.4 __timezone D 0x4
+GLIBC_2.4 __toascii_l F
+GLIBC_2.4 __tolower_l F
+GLIBC_2.4 __toupper_l F
+GLIBC_2.4 __towctrans F
+GLIBC_2.4 __towctrans_l F
+GLIBC_2.4 __towlower_l F
+GLIBC_2.4 __towupper_l F
+GLIBC_2.4 __ttyname_r_chk F
+GLIBC_2.4 __tzname D 0x8
+GLIBC_2.4 __udivdi3 F
+GLIBC_2.4 __uflow F
+GLIBC_2.4 __umoddi3 F
+GLIBC_2.4 __underflow F
+GLIBC_2.4 __uselocale F
+GLIBC_2.4 __vfork 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 __wait F
+GLIBC_2.4 __waitpid F
+GLIBC_2.4 __wcpcpy_chk F
+GLIBC_2.4 __wcpncpy_chk F
+GLIBC_2.4 __wcrtomb_chk F
+GLIBC_2.4 __wcscasecmp_l F
+GLIBC_2.4 __wcscat_chk F
+GLIBC_2.4 __wcscoll_l F
+GLIBC_2.4 __wcscpy_chk F
+GLIBC_2.4 __wcsftime_l F
+GLIBC_2.4 __wcsncasecmp_l 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 __wcstod_internal F
+GLIBC_2.4 __wcstod_l F
+GLIBC_2.4 __wcstof_internal F
+GLIBC_2.4 __wcstof_l F
+GLIBC_2.4 __wcstol_internal F
+GLIBC_2.4 __wcstol_l F
+GLIBC_2.4 __wcstold_internal F
+GLIBC_2.4 __wcstold_l F
+GLIBC_2.4 __wcstoll_internal F
+GLIBC_2.4 __wcstoll_l F
+GLIBC_2.4 __wcstombs_chk F
+GLIBC_2.4 __wcstoul_internal F
+GLIBC_2.4 __wcstoul_l F
+GLIBC_2.4 __wcstoull_internal F
+GLIBC_2.4 __wcstoull_l F
+GLIBC_2.4 __wcsxfrm_l F
+GLIBC_2.4 __wctomb_chk F
+GLIBC_2.4 __wctrans_l F
+GLIBC_2.4 __wctype_l 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 __woverflow F
+GLIBC_2.4 __wprintf_chk F
+GLIBC_2.4 __write F
+GLIBC_2.4 __wuflow F
+GLIBC_2.4 __wunderflow F
+GLIBC_2.4 __xmknod F
+GLIBC_2.4 __xmknodat F
+GLIBC_2.4 __xpg_basename F
+GLIBC_2.4 __xpg_sigpause F
+GLIBC_2.4 __xpg_strerror_r F
+GLIBC_2.4 __xstat F
+GLIBC_2.4 __xstat64 F
+GLIBC_2.4 _authenticate F
+GLIBC_2.4 _dl_mcount_wrapper F
+GLIBC_2.4 _dl_mcount_wrapper_check F
+GLIBC_2.4 _environ D 0x4
+GLIBC_2.4 _exit F
+GLIBC_2.4 _flushlbf F
+GLIBC_2.4 _libc_intl_domainname D 0x5
+GLIBC_2.4 _longjmp F
+GLIBC_2.4 _mcleanup F
+GLIBC_2.4 _mcount F
+GLIBC_2.4 _nl_default_dirname D 0x12
+GLIBC_2.4 _nl_domain_bindings D 0x4
+GLIBC_2.4 _nl_msg_cat_cntr D 0x4
+GLIBC_2.4 _null_auth D 0xc
+GLIBC_2.4 _obstack_allocated_p F
+GLIBC_2.4 _obstack_begin F
+GLIBC_2.4 _obstack_begin_1 F
+GLIBC_2.4 _obstack_free F
+GLIBC_2.4 _obstack_memory_used F
+GLIBC_2.4 _obstack_newchunk F
+GLIBC_2.4 _res D 0x1fe
+GLIBC_2.4 _res_hconf D 0x30
+GLIBC_2.4 _rpc_dtablesize F
+GLIBC_2.4 _seterr_reply F
+GLIBC_2.4 _setjmp F
+GLIBC_2.4 _sys_errlist D 0x210
+GLIBC_2.4 _sys_nerr D 0x4
+GLIBC_2.4 _sys_siglist D 0x104
+GLIBC_2.4 _tolower F
+GLIBC_2.4 _toupper F
+GLIBC_2.4 a64l F
+GLIBC_2.4 abort F
+GLIBC_2.4 abs F
+GLIBC_2.4 accept F
+GLIBC_2.4 access F
+GLIBC_2.4 acct F
+GLIBC_2.4 addmntent F
+GLIBC_2.4 addseverity F
+GLIBC_2.4 adjtime F
+GLIBC_2.4 adjtimex F
+GLIBC_2.4 advance F
+GLIBC_2.4 alarm F
+GLIBC_2.4 alphasort F
+GLIBC_2.4 alphasort64 F
+GLIBC_2.4 argp_err_exit_status D 0x4
+GLIBC_2.4 argp_error F
+GLIBC_2.4 argp_failure F
+GLIBC_2.4 argp_help F
+GLIBC_2.4 argp_parse F
+GLIBC_2.4 argp_program_bug_address D 0x4
+GLIBC_2.4 argp_program_version D 0x4
+GLIBC_2.4 argp_program_version_hook D 0x4
+GLIBC_2.4 argp_state_help F
+GLIBC_2.4 argp_usage F
+GLIBC_2.4 argz_add F
+GLIBC_2.4 argz_add_sep F
+GLIBC_2.4 argz_append F
+GLIBC_2.4 argz_count F
+GLIBC_2.4 argz_create F
+GLIBC_2.4 argz_create_sep F
+GLIBC_2.4 argz_delete F
+GLIBC_2.4 argz_extract F
+GLIBC_2.4 argz_insert F
+GLIBC_2.4 argz_next F
+GLIBC_2.4 argz_replace F
+GLIBC_2.4 argz_stringify F
+GLIBC_2.4 asctime F
+GLIBC_2.4 asctime_r F
+GLIBC_2.4 asprintf F
+GLIBC_2.4 atof F
+GLIBC_2.4 atoi F
+GLIBC_2.4 atol F
+GLIBC_2.4 atoll F
+GLIBC_2.4 authdes_create F
+GLIBC_2.4 authdes_getucred F
+GLIBC_2.4 authdes_pk_create F
+GLIBC_2.4 authnone_create F
+GLIBC_2.4 authunix_create F
+GLIBC_2.4 authunix_create_default F
+GLIBC_2.4 backtrace F
+GLIBC_2.4 backtrace_symbols F
+GLIBC_2.4 backtrace_symbols_fd F
+GLIBC_2.4 basename F
+GLIBC_2.4 bcmp F
+GLIBC_2.4 bcopy F
+GLIBC_2.4 bdflush F
+GLIBC_2.4 bind F
+GLIBC_2.4 bind_textdomain_codeset F
+GLIBC_2.4 bindresvport F
+GLIBC_2.4 bindtextdomain F
+GLIBC_2.4 brk F
+GLIBC_2.4 bsd_signal F
+GLIBC_2.4 bsearch F
+GLIBC_2.4 btowc F
+GLIBC_2.4 bzero F
+GLIBC_2.4 cacheflush F
+GLIBC_2.4 calloc F
+GLIBC_2.4 callrpc F
+GLIBC_2.4 canonicalize_file_name F
+GLIBC_2.4 capget F
+GLIBC_2.4 capset F
+GLIBC_2.4 catclose F
+GLIBC_2.4 catgets F
+GLIBC_2.4 catopen F
+GLIBC_2.4 cbc_crypt F
+GLIBC_2.4 cfgetispeed F
+GLIBC_2.4 cfgetospeed F
+GLIBC_2.4 cfmakeraw F
+GLIBC_2.4 cfree F
+GLIBC_2.4 cfsetispeed F
+GLIBC_2.4 cfsetospeed F
+GLIBC_2.4 cfsetspeed F
+GLIBC_2.4 chdir F
+GLIBC_2.4 chflags F
+GLIBC_2.4 chmod F
+GLIBC_2.4 chown F
+GLIBC_2.4 chroot F
+GLIBC_2.4 clearenv F
+GLIBC_2.4 clearerr F
+GLIBC_2.4 clearerr_unlocked F
+GLIBC_2.4 clnt_broadcast F
+GLIBC_2.4 clnt_create F
+GLIBC_2.4 clnt_pcreateerror F
+GLIBC_2.4 clnt_perrno F
+GLIBC_2.4 clnt_perror F
+GLIBC_2.4 clnt_spcreateerror F
+GLIBC_2.4 clnt_sperrno F
+GLIBC_2.4 clnt_sperror F
+GLIBC_2.4 clntraw_create F
+GLIBC_2.4 clnttcp_create F
+GLIBC_2.4 clntudp_bufcreate F
+GLIBC_2.4 clntudp_create F
+GLIBC_2.4 clntunix_create F
+GLIBC_2.4 clock F
+GLIBC_2.4 clone F
+GLIBC_2.4 close F
+GLIBC_2.4 closedir F
+GLIBC_2.4 closelog F
+GLIBC_2.4 confstr F
+GLIBC_2.4 connect F
+GLIBC_2.4 copysign F
+GLIBC_2.4 copysignf F
+GLIBC_2.4 copysignl F
+GLIBC_2.4 creat F
+GLIBC_2.4 creat64 F
+GLIBC_2.4 create_module F
+GLIBC_2.4 ctermid F
+GLIBC_2.4 ctime F
+GLIBC_2.4 ctime_r F
+GLIBC_2.4 cuserid F
+GLIBC_2.4 daemon F
+GLIBC_2.4 daylight D 0x4
+GLIBC_2.4 dcgettext F
+GLIBC_2.4 dcngettext F
+GLIBC_2.4 delete_module F
+GLIBC_2.4 des_setparity F
+GLIBC_2.4 dgettext F
+GLIBC_2.4 difftime F
+GLIBC_2.4 dirfd F
+GLIBC_2.4 dirname F
+GLIBC_2.4 div F
+GLIBC_2.4 dl_iterate_phdr F
+GLIBC_2.4 dngettext F
+GLIBC_2.4 dprintf F
+GLIBC_2.4 drand48 F
+GLIBC_2.4 drand48_r F
+GLIBC_2.4 dup F
+GLIBC_2.4 dup2 F
+GLIBC_2.4 duplocale F
+GLIBC_2.4 dysize F
+GLIBC_2.4 eaccess F
+GLIBC_2.4 ecb_crypt F
+GLIBC_2.4 ecvt F
+GLIBC_2.4 ecvt_r F
+GLIBC_2.4 endaliasent F
+GLIBC_2.4 endfsent F
+GLIBC_2.4 endgrent F
+GLIBC_2.4 endhostent F
+GLIBC_2.4 endmntent F
+GLIBC_2.4 endnetent F
+GLIBC_2.4 endnetgrent F
+GLIBC_2.4 endprotoent F
+GLIBC_2.4 endpwent F
+GLIBC_2.4 endrpcent F
+GLIBC_2.4 endservent F
+GLIBC_2.4 endspent F
+GLIBC_2.4 endttyent F
+GLIBC_2.4 endusershell F
+GLIBC_2.4 endutent F
+GLIBC_2.4 endutxent F
+GLIBC_2.4 environ D 0x4
+GLIBC_2.4 envz_add F
+GLIBC_2.4 envz_entry F
+GLIBC_2.4 envz_get F
+GLIBC_2.4 envz_merge F
+GLIBC_2.4 envz_remove F
+GLIBC_2.4 envz_strip F
+GLIBC_2.4 epoll_create F
+GLIBC_2.4 epoll_ctl F
+GLIBC_2.4 epoll_wait F
+GLIBC_2.4 erand48 F
+GLIBC_2.4 erand48_r F
+GLIBC_2.4 err F
+GLIBC_2.4 error F
+GLIBC_2.4 error_at_line F
+GLIBC_2.4 error_message_count D 0x4
+GLIBC_2.4 error_one_per_line D 0x4
+GLIBC_2.4 error_print_progname D 0x4
+GLIBC_2.4 errx F
+GLIBC_2.4 ether_aton F
+GLIBC_2.4 ether_aton_r F
+GLIBC_2.4 ether_hostton F
+GLIBC_2.4 ether_line F
+GLIBC_2.4 ether_ntoa F
+GLIBC_2.4 ether_ntoa_r F
+GLIBC_2.4 ether_ntohost F
+GLIBC_2.4 euidaccess F
+GLIBC_2.4 execl F
+GLIBC_2.4 execle F
+GLIBC_2.4 execlp F
+GLIBC_2.4 execv F
+GLIBC_2.4 execve F
+GLIBC_2.4 execvp F
+GLIBC_2.4 exit F
+GLIBC_2.4 faccessat F
+GLIBC_2.4 fattach F
+GLIBC_2.4 fchdir F
+GLIBC_2.4 fchflags F
+GLIBC_2.4 fchmod F
+GLIBC_2.4 fchmodat F
+GLIBC_2.4 fchown F
+GLIBC_2.4 fchownat F
+GLIBC_2.4 fclose F
+GLIBC_2.4 fcloseall F
+GLIBC_2.4 fcntl F
+GLIBC_2.4 fcvt F
+GLIBC_2.4 fcvt_r F
+GLIBC_2.4 fdatasync F
+GLIBC_2.4 fdetach F
+GLIBC_2.4 fdopen F
+GLIBC_2.4 fdopendir F
+GLIBC_2.4 feof F
+GLIBC_2.4 feof_unlocked F
+GLIBC_2.4 ferror F
+GLIBC_2.4 ferror_unlocked F
+GLIBC_2.4 fexecve F
+GLIBC_2.4 fflush F
+GLIBC_2.4 fflush_unlocked F
+GLIBC_2.4 ffs F
+GLIBC_2.4 ffsl F
+GLIBC_2.4 ffsll F
+GLIBC_2.4 fgetc F
+GLIBC_2.4 fgetc_unlocked F
+GLIBC_2.4 fgetgrent F
+GLIBC_2.4 fgetgrent_r F
+GLIBC_2.4 fgetpos F
+GLIBC_2.4 fgetpos64 F
+GLIBC_2.4 fgetpwent F
+GLIBC_2.4 fgetpwent_r F
+GLIBC_2.4 fgets F
+GLIBC_2.4 fgets_unlocked F
+GLIBC_2.4 fgetspent F
+GLIBC_2.4 fgetspent_r F
+GLIBC_2.4 fgetwc F
+GLIBC_2.4 fgetwc_unlocked F
+GLIBC_2.4 fgetws F
+GLIBC_2.4 fgetws_unlocked F
+GLIBC_2.4 fgetxattr F
+GLIBC_2.4 fileno F
+GLIBC_2.4 fileno_unlocked F
+GLIBC_2.4 finite F
+GLIBC_2.4 finitef F
+GLIBC_2.4 finitel F
+GLIBC_2.4 flistxattr F
+GLIBC_2.4 flock F
+GLIBC_2.4 flockfile F
+GLIBC_2.4 fmemopen F
+GLIBC_2.4 fmtmsg F
+GLIBC_2.4 fnmatch F
+GLIBC_2.4 fopen F
+GLIBC_2.4 fopen64 F
+GLIBC_2.4 fopencookie F
+GLIBC_2.4 fork F
+GLIBC_2.4 fpathconf F
+GLIBC_2.4 fprintf F
+GLIBC_2.4 fputc F
+GLIBC_2.4 fputc_unlocked F
+GLIBC_2.4 fputs F
+GLIBC_2.4 fputs_unlocked F
+GLIBC_2.4 fputwc F
+GLIBC_2.4 fputwc_unlocked F
+GLIBC_2.4 fputws F
+GLIBC_2.4 fputws_unlocked F
+GLIBC_2.4 fread F
+GLIBC_2.4 fread_unlocked F
+GLIBC_2.4 free F
+GLIBC_2.4 freeaddrinfo F
+GLIBC_2.4 freeifaddrs F
+GLIBC_2.4 freelocale F
+GLIBC_2.4 fremovexattr F
+GLIBC_2.4 freopen F
+GLIBC_2.4 freopen64 F
+GLIBC_2.4 frexp F
+GLIBC_2.4 frexpf F
+GLIBC_2.4 frexpl F
+GLIBC_2.4 fscanf F
+GLIBC_2.4 fseek F
+GLIBC_2.4 fseeko F
+GLIBC_2.4 fseeko64 F
+GLIBC_2.4 fsetpos F
+GLIBC_2.4 fsetpos64 F
+GLIBC_2.4 fsetxattr F
+GLIBC_2.4 fstatfs F
+GLIBC_2.4 fstatfs64 F
+GLIBC_2.4 fstatvfs F
+GLIBC_2.4 fstatvfs64 F
+GLIBC_2.4 fsync F
+GLIBC_2.4 ftell F
+GLIBC_2.4 ftello F
+GLIBC_2.4 ftello64 F
+GLIBC_2.4 ftime F
+GLIBC_2.4 ftok F
+GLIBC_2.4 ftruncate F
+GLIBC_2.4 ftruncate64 F
+GLIBC_2.4 ftrylockfile F
+GLIBC_2.4 fts_children F
+GLIBC_2.4 fts_close F
+GLIBC_2.4 fts_open F
+GLIBC_2.4 fts_read F
+GLIBC_2.4 fts_set F
+GLIBC_2.4 ftw F
+GLIBC_2.4 ftw64 F
+GLIBC_2.4 funlockfile F
+GLIBC_2.4 futimes F
+GLIBC_2.4 futimesat F
+GLIBC_2.4 fwide F
+GLIBC_2.4 fwprintf F
+GLIBC_2.4 fwrite F
+GLIBC_2.4 fwrite_unlocked F
+GLIBC_2.4 fwscanf F
+GLIBC_2.4 gai_strerror F
+GLIBC_2.4 gcvt F
+GLIBC_2.4 get_avphys_pages F
+GLIBC_2.4 get_current_dir_name F
+GLIBC_2.4 get_kernel_syms F
+GLIBC_2.4 get_myaddress F
+GLIBC_2.4 get_nprocs F
+GLIBC_2.4 get_nprocs_conf F
+GLIBC_2.4 get_phys_pages F
+GLIBC_2.4 getaddrinfo F
+GLIBC_2.4 getaliasbyname F
+GLIBC_2.4 getaliasbyname_r F
+GLIBC_2.4 getaliasent F
+GLIBC_2.4 getaliasent_r F
+GLIBC_2.4 getc F
+GLIBC_2.4 getc_unlocked F
+GLIBC_2.4 getchar F
+GLIBC_2.4 getchar_unlocked F
+GLIBC_2.4 getcontext F
+GLIBC_2.4 getcwd F
+GLIBC_2.4 getdate F
+GLIBC_2.4 getdate_err D 0x4
+GLIBC_2.4 getdate_r F
+GLIBC_2.4 getdelim F
+GLIBC_2.4 getdirentries F
+GLIBC_2.4 getdirentries64 F
+GLIBC_2.4 getdomainname F
+GLIBC_2.4 getdtablesize F
+GLIBC_2.4 getegid F
+GLIBC_2.4 getenv F
+GLIBC_2.4 geteuid F
+GLIBC_2.4 getfsent F
+GLIBC_2.4 getfsfile F
+GLIBC_2.4 getfsspec F
+GLIBC_2.4 getgid F
+GLIBC_2.4 getgrent F
+GLIBC_2.4 getgrent_r F
+GLIBC_2.4 getgrgid F
+GLIBC_2.4 getgrgid_r F
+GLIBC_2.4 getgrnam F
+GLIBC_2.4 getgrnam_r F
+GLIBC_2.4 getgrouplist F
+GLIBC_2.4 getgroups F
+GLIBC_2.4 gethostbyaddr F
+GLIBC_2.4 gethostbyaddr_r F
+GLIBC_2.4 gethostbyname F
+GLIBC_2.4 gethostbyname2 F
+GLIBC_2.4 gethostbyname2_r F
+GLIBC_2.4 gethostbyname_r F
+GLIBC_2.4 gethostent F
+GLIBC_2.4 gethostent_r F
+GLIBC_2.4 gethostid F
+GLIBC_2.4 gethostname F
+GLIBC_2.4 getifaddrs F
+GLIBC_2.4 getipv4sourcefilter F
+GLIBC_2.4 getitimer F
+GLIBC_2.4 getline F
+GLIBC_2.4 getloadavg F
+GLIBC_2.4 getlogin F
+GLIBC_2.4 getlogin_r F
+GLIBC_2.4 getmntent F
+GLIBC_2.4 getmntent_r F
+GLIBC_2.4 getmsg F
+GLIBC_2.4 getnameinfo F
+GLIBC_2.4 getnetbyaddr F
+GLIBC_2.4 getnetbyaddr_r F
+GLIBC_2.4 getnetbyname F
+GLIBC_2.4 getnetbyname_r F
+GLIBC_2.4 getnetent F
+GLIBC_2.4 getnetent_r F
+GLIBC_2.4 getnetgrent F
+GLIBC_2.4 getnetgrent_r F
+GLIBC_2.4 getnetname F
+GLIBC_2.4 getopt F
+GLIBC_2.4 getopt_long F
+GLIBC_2.4 getopt_long_only F
+GLIBC_2.4 getpagesize F
+GLIBC_2.4 getpass F
+GLIBC_2.4 getpeername F
+GLIBC_2.4 getpgid F
+GLIBC_2.4 getpgrp F
+GLIBC_2.4 getpid F
+GLIBC_2.4 getpmsg F
+GLIBC_2.4 getppid F
+GLIBC_2.4 getpriority F
+GLIBC_2.4 getprotobyname F
+GLIBC_2.4 getprotobyname_r F
+GLIBC_2.4 getprotobynumber F
+GLIBC_2.4 getprotobynumber_r F
+GLIBC_2.4 getprotoent F
+GLIBC_2.4 getprotoent_r F
+GLIBC_2.4 getpt F
+GLIBC_2.4 getpublickey F
+GLIBC_2.4 getpw F
+GLIBC_2.4 getpwent F
+GLIBC_2.4 getpwent_r F
+GLIBC_2.4 getpwnam F
+GLIBC_2.4 getpwnam_r F
+GLIBC_2.4 getpwuid F
+GLIBC_2.4 getpwuid_r F
+GLIBC_2.4 getresgid F
+GLIBC_2.4 getresuid F
+GLIBC_2.4 getrlimit F
+GLIBC_2.4 getrlimit64 F
+GLIBC_2.4 getrpcbyname F
+GLIBC_2.4 getrpcbyname_r F
+GLIBC_2.4 getrpcbynumber F
+GLIBC_2.4 getrpcbynumber_r F
+GLIBC_2.4 getrpcent F
+GLIBC_2.4 getrpcent_r F
+GLIBC_2.4 getrpcport F
+GLIBC_2.4 getrusage F
+GLIBC_2.4 gets F
+GLIBC_2.4 getsecretkey F
+GLIBC_2.4 getservbyname F
+GLIBC_2.4 getservbyname_r F
+GLIBC_2.4 getservbyport F
+GLIBC_2.4 getservbyport_r F
+GLIBC_2.4 getservent F
+GLIBC_2.4 getservent_r F
+GLIBC_2.4 getsid F
+GLIBC_2.4 getsockname F
+GLIBC_2.4 getsockopt F
+GLIBC_2.4 getsourcefilter F
+GLIBC_2.4 getspent F
+GLIBC_2.4 getspent_r F
+GLIBC_2.4 getspnam F
+GLIBC_2.4 getspnam_r F
+GLIBC_2.4 getsubopt F
+GLIBC_2.4 gettext F
+GLIBC_2.4 gettimeofday F
+GLIBC_2.4 getttyent F
+GLIBC_2.4 getttynam F
+GLIBC_2.4 getuid F
+GLIBC_2.4 getusershell F
+GLIBC_2.4 getutent F
+GLIBC_2.4 getutent_r F
+GLIBC_2.4 getutid F
+GLIBC_2.4 getutid_r F
+GLIBC_2.4 getutline F
+GLIBC_2.4 getutline_r F
+GLIBC_2.4 getutmp F
+GLIBC_2.4 getutmpx F
+GLIBC_2.4 getutxent F
+GLIBC_2.4 getutxid F
+GLIBC_2.4 getutxline F
+GLIBC_2.4 getw F
+GLIBC_2.4 getwc F
+GLIBC_2.4 getwc_unlocked F
+GLIBC_2.4 getwchar F
+GLIBC_2.4 getwchar_unlocked F
+GLIBC_2.4 getwd F
+GLIBC_2.4 getxattr F
+GLIBC_2.4 glob F
+GLIBC_2.4 glob64 F
+GLIBC_2.4 glob_pattern_p F
+GLIBC_2.4 globfree F
+GLIBC_2.4 globfree64 F
+GLIBC_2.4 gmtime F
+GLIBC_2.4 gmtime_r F
+GLIBC_2.4 gnu_dev_major F
+GLIBC_2.4 gnu_dev_makedev F
+GLIBC_2.4 gnu_dev_minor F
+GLIBC_2.4 gnu_get_libc_release F
+GLIBC_2.4 gnu_get_libc_version F
+GLIBC_2.4 grantpt F
+GLIBC_2.4 group_member F
+GLIBC_2.4 gsignal F
+GLIBC_2.4 gtty F
+GLIBC_2.4 h_errlist D 0x14
+GLIBC_2.4 h_nerr D 0x4
+GLIBC_2.4 hasmntopt F
+GLIBC_2.4 hcreate F
+GLIBC_2.4 hcreate_r F
+GLIBC_2.4 hdestroy F
+GLIBC_2.4 hdestroy_r F
+GLIBC_2.4 herror F
+GLIBC_2.4 host2netname F
+GLIBC_2.4 hsearch F
+GLIBC_2.4 hsearch_r F
+GLIBC_2.4 hstrerror F
+GLIBC_2.4 htonl F
+GLIBC_2.4 htons F
+GLIBC_2.4 iconv F
+GLIBC_2.4 iconv_close F
+GLIBC_2.4 iconv_open F
+GLIBC_2.4 if_freenameindex F
+GLIBC_2.4 if_indextoname F
+GLIBC_2.4 if_nameindex F
+GLIBC_2.4 if_nametoindex F
+GLIBC_2.4 imaxabs F
+GLIBC_2.4 imaxdiv F
+GLIBC_2.4 in6addr_any D 0x10
+GLIBC_2.4 in6addr_loopback D 0x10
+GLIBC_2.4 index F
+GLIBC_2.4 inet6_option_alloc F
+GLIBC_2.4 inet6_option_append F
+GLIBC_2.4 inet6_option_find F
+GLIBC_2.4 inet6_option_init F
+GLIBC_2.4 inet6_option_next F
+GLIBC_2.4 inet6_option_space F
+GLIBC_2.4 inet_addr F
+GLIBC_2.4 inet_aton F
+GLIBC_2.4 inet_lnaof F
+GLIBC_2.4 inet_makeaddr F
+GLIBC_2.4 inet_netof F
+GLIBC_2.4 inet_network F
+GLIBC_2.4 inet_nsap_addr F
+GLIBC_2.4 inet_nsap_ntoa F
+GLIBC_2.4 inet_ntoa F
+GLIBC_2.4 inet_ntop F
+GLIBC_2.4 inet_pton F
+GLIBC_2.4 init_module F
+GLIBC_2.4 initgroups F
+GLIBC_2.4 initstate F
+GLIBC_2.4 initstate_r F
+GLIBC_2.4 innetgr F
+GLIBC_2.4 inotify_add_watch F
+GLIBC_2.4 inotify_init F
+GLIBC_2.4 inotify_rm_watch F
+GLIBC_2.4 insque F
+GLIBC_2.4 ioctl F
+GLIBC_2.4 iruserok F
+GLIBC_2.4 iruserok_af F
+GLIBC_2.4 isalnum F
+GLIBC_2.4 isalnum_l F
+GLIBC_2.4 isalpha F
+GLIBC_2.4 isalpha_l F
+GLIBC_2.4 isascii F
+GLIBC_2.4 isastream F
+GLIBC_2.4 isatty F
+GLIBC_2.4 isblank F
+GLIBC_2.4 isblank_l F
+GLIBC_2.4 iscntrl F
+GLIBC_2.4 iscntrl_l F
+GLIBC_2.4 isctype F
+GLIBC_2.4 isdigit F
+GLIBC_2.4 isdigit_l F
+GLIBC_2.4 isfdtype F
+GLIBC_2.4 isgraph F
+GLIBC_2.4 isgraph_l F
+GLIBC_2.4 isinf F
+GLIBC_2.4 isinff F
+GLIBC_2.4 isinfl F
+GLIBC_2.4 islower F
+GLIBC_2.4 islower_l F
+GLIBC_2.4 isnan F
+GLIBC_2.4 isnanf F
+GLIBC_2.4 isnanl F
+GLIBC_2.4 isprint F
+GLIBC_2.4 isprint_l F
+GLIBC_2.4 ispunct F
+GLIBC_2.4 ispunct_l F
+GLIBC_2.4 isspace F
+GLIBC_2.4 isspace_l F
+GLIBC_2.4 isupper F
+GLIBC_2.4 isupper_l F
+GLIBC_2.4 iswalnum F
+GLIBC_2.4 iswalnum_l F
+GLIBC_2.4 iswalpha F
+GLIBC_2.4 iswalpha_l F
+GLIBC_2.4 iswblank F
+GLIBC_2.4 iswblank_l F
+GLIBC_2.4 iswcntrl F
+GLIBC_2.4 iswcntrl_l F
+GLIBC_2.4 iswctype F
+GLIBC_2.4 iswctype_l F
+GLIBC_2.4 iswdigit F
+GLIBC_2.4 iswdigit_l F
+GLIBC_2.4 iswgraph F
+GLIBC_2.4 iswgraph_l F
+GLIBC_2.4 iswlower F
+GLIBC_2.4 iswlower_l F
+GLIBC_2.4 iswprint F
+GLIBC_2.4 iswprint_l F
+GLIBC_2.4 iswpunct F
+GLIBC_2.4 iswpunct_l F
+GLIBC_2.4 iswspace F
+GLIBC_2.4 iswspace_l F
+GLIBC_2.4 iswupper F
+GLIBC_2.4 iswupper_l F
+GLIBC_2.4 iswxdigit F
+GLIBC_2.4 iswxdigit_l F
+GLIBC_2.4 isxdigit F
+GLIBC_2.4 isxdigit_l F
+GLIBC_2.4 jrand48 F
+GLIBC_2.4 jrand48_r F
+GLIBC_2.4 key_decryptsession F
+GLIBC_2.4 key_decryptsession_pk F
+GLIBC_2.4 key_encryptsession F
+GLIBC_2.4 key_encryptsession_pk F
+GLIBC_2.4 key_gendes F
+GLIBC_2.4 key_get_conv F
+GLIBC_2.4 key_secretkey_is_set F
+GLIBC_2.4 key_setnet F
+GLIBC_2.4 key_setsecret F
+GLIBC_2.4 kill F
+GLIBC_2.4 killpg F
+GLIBC_2.4 klogctl F
+GLIBC_2.4 l64a F
+GLIBC_2.4 labs F
+GLIBC_2.4 lchmod F
+GLIBC_2.4 lchown F
+GLIBC_2.4 lckpwdf F
+GLIBC_2.4 lcong48 F
+GLIBC_2.4 lcong48_r F
+GLIBC_2.4 ldexp F
+GLIBC_2.4 ldexpf F
+GLIBC_2.4 ldexpl F
+GLIBC_2.4 ldiv F
+GLIBC_2.4 lfind F
+GLIBC_2.4 lgetxattr F
+GLIBC_2.4 link F
+GLIBC_2.4 linkat F
+GLIBC_2.4 listen F
+GLIBC_2.4 listxattr F
+GLIBC_2.4 llabs F
+GLIBC_2.4 lldiv F
+GLIBC_2.4 llistxattr F
+GLIBC_2.4 llseek F
+GLIBC_2.4 loc1 D 0x4
+GLIBC_2.4 loc2 D 0x4
+GLIBC_2.4 localeconv F
+GLIBC_2.4 localtime F
+GLIBC_2.4 localtime_r F
+GLIBC_2.4 lockf F
+GLIBC_2.4 lockf64 F
+GLIBC_2.4 locs D 0x4
+GLIBC_2.4 longjmp F
+GLIBC_2.4 lrand48 F
+GLIBC_2.4 lrand48_r F
+GLIBC_2.4 lremovexattr F
+GLIBC_2.4 lsearch F
+GLIBC_2.4 lseek F
+GLIBC_2.4 lseek64 F
+GLIBC_2.4 lsetxattr F
+GLIBC_2.4 lutimes F
+GLIBC_2.4 madvise F
+GLIBC_2.4 makecontext F
+GLIBC_2.4 mallinfo F
+GLIBC_2.4 malloc F
+GLIBC_2.4 malloc_get_state F
+GLIBC_2.4 malloc_set_state F
+GLIBC_2.4 malloc_stats F
+GLIBC_2.4 malloc_trim F
+GLIBC_2.4 malloc_usable_size F
+GLIBC_2.4 mallopt F
+GLIBC_2.4 mallwatch D 0x4
+GLIBC_2.4 mblen F
+GLIBC_2.4 mbrlen F
+GLIBC_2.4 mbrtowc F
+GLIBC_2.4 mbsinit F
+GLIBC_2.4 mbsnrtowcs F
+GLIBC_2.4 mbsrtowcs F
+GLIBC_2.4 mbstowcs F
+GLIBC_2.4 mbtowc F
+GLIBC_2.4 mcheck F
+GLIBC_2.4 mcheck_check_all F
+GLIBC_2.4 mcheck_pedantic F
+GLIBC_2.4 mcount F
+GLIBC_2.4 memalign F
+GLIBC_2.4 memccpy F
+GLIBC_2.4 memchr F
+GLIBC_2.4 memcmp F
+GLIBC_2.4 memcpy F
+GLIBC_2.4 memfrob F
+GLIBC_2.4 memmem F
+GLIBC_2.4 memmove F
+GLIBC_2.4 mempcpy F
+GLIBC_2.4 memrchr F
+GLIBC_2.4 memset F
+GLIBC_2.4 mincore F
+GLIBC_2.4 mkdir F
+GLIBC_2.4 mkdirat F
+GLIBC_2.4 mkdtemp F
+GLIBC_2.4 mkfifo F
+GLIBC_2.4 mkfifoat F
+GLIBC_2.4 mkstemp F
+GLIBC_2.4 mkstemp64 F
+GLIBC_2.4 mktemp F
+GLIBC_2.4 mktime F
+GLIBC_2.4 mlock F
+GLIBC_2.4 mlockall F
+GLIBC_2.4 mmap F
+GLIBC_2.4 mmap64 F
+GLIBC_2.4 modf F
+GLIBC_2.4 modff F
+GLIBC_2.4 modfl F
+GLIBC_2.4 moncontrol F
+GLIBC_2.4 monstartup F
+GLIBC_2.4 mount F
+GLIBC_2.4 mprobe F
+GLIBC_2.4 mprotect F
+GLIBC_2.4 mrand48 F
+GLIBC_2.4 mrand48_r F
+GLIBC_2.4 mremap F
+GLIBC_2.4 msgctl F
+GLIBC_2.4 msgget F
+GLIBC_2.4 msgrcv F
+GLIBC_2.4 msgsnd F
+GLIBC_2.4 msync F
+GLIBC_2.4 mtrace F
+GLIBC_2.4 munlock F
+GLIBC_2.4 munlockall F
+GLIBC_2.4 munmap F
+GLIBC_2.4 muntrace F
+GLIBC_2.4 nanosleep F
+GLIBC_2.4 netname2host F
+GLIBC_2.4 netname2user F
+GLIBC_2.4 newlocale F
+GLIBC_2.4 nfsservctl F
+GLIBC_2.4 nftw F
+GLIBC_2.4 nftw64 F
+GLIBC_2.4 ngettext F
+GLIBC_2.4 nice F
+GLIBC_2.4 nl_langinfo F
+GLIBC_2.4 nl_langinfo_l F
+GLIBC_2.4 nrand48 F
+GLIBC_2.4 nrand48_r F
+GLIBC_2.4 ntohl F
+GLIBC_2.4 ntohs F
+GLIBC_2.4 ntp_adjtime F
+GLIBC_2.4 ntp_gettime F
+GLIBC_2.4 obstack_alloc_failed_handler D 0x4
+GLIBC_2.4 obstack_exit_failure D 0x4
+GLIBC_2.4 obstack_free F
+GLIBC_2.4 obstack_printf F
+GLIBC_2.4 obstack_vprintf F
+GLIBC_2.4 on_exit F
+GLIBC_2.4 open F
+GLIBC_2.4 open64 F
+GLIBC_2.4 open_memstream F
+GLIBC_2.4 open_wmemstream F
+GLIBC_2.4 openat F
+GLIBC_2.4 openat64 F
+GLIBC_2.4 opendir F
+GLIBC_2.4 openlog F
+GLIBC_2.4 optarg D 0x4
+GLIBC_2.4 opterr D 0x4
+GLIBC_2.4 optind D 0x4
+GLIBC_2.4 optopt D 0x4
+GLIBC_2.4 parse_printf_format F
+GLIBC_2.4 passwd2des F
+GLIBC_2.4 pathconf F
+GLIBC_2.4 pause F
+GLIBC_2.4 pclose F
+GLIBC_2.4 perror F
+GLIBC_2.4 personality F
+GLIBC_2.4 pipe F
+GLIBC_2.4 pivot_root F
+GLIBC_2.4 pmap_getmaps F
+GLIBC_2.4 pmap_getport F
+GLIBC_2.4 pmap_rmtcall F
+GLIBC_2.4 pmap_set F
+GLIBC_2.4 pmap_unset F
+GLIBC_2.4 poll F
+GLIBC_2.4 popen F
+GLIBC_2.4 posix_fadvise F
+GLIBC_2.4 posix_fadvise64 F
+GLIBC_2.4 posix_fallocate F
+GLIBC_2.4 posix_fallocate64 F
+GLIBC_2.4 posix_madvise F
+GLIBC_2.4 posix_memalign F
+GLIBC_2.4 posix_openpt F
+GLIBC_2.4 posix_spawn F
+GLIBC_2.4 posix_spawn_file_actions_addclose F
+GLIBC_2.4 posix_spawn_file_actions_adddup2 F
+GLIBC_2.4 posix_spawn_file_actions_addopen F
+GLIBC_2.4 posix_spawn_file_actions_destroy F
+GLIBC_2.4 posix_spawn_file_actions_init F
+GLIBC_2.4 posix_spawnattr_destroy F
+GLIBC_2.4 posix_spawnattr_getflags F
+GLIBC_2.4 posix_spawnattr_getpgroup F
+GLIBC_2.4 posix_spawnattr_getschedparam F
+GLIBC_2.4 posix_spawnattr_getschedpolicy F
+GLIBC_2.4 posix_spawnattr_getsigdefault F
+GLIBC_2.4 posix_spawnattr_getsigmask F
+GLIBC_2.4 posix_spawnattr_init F
+GLIBC_2.4 posix_spawnattr_setflags F
+GLIBC_2.4 posix_spawnattr_setpgroup F
+GLIBC_2.4 posix_spawnattr_setschedparam F
+GLIBC_2.4 posix_spawnattr_setschedpolicy F
+GLIBC_2.4 posix_spawnattr_setsigdefault F
+GLIBC_2.4 posix_spawnattr_setsigmask F
+GLIBC_2.4 posix_spawnp F
+GLIBC_2.4 ppoll F
+GLIBC_2.4 prctl F
+GLIBC_2.4 pread F
+GLIBC_2.4 pread64 F
+GLIBC_2.4 printf F
+GLIBC_2.4 printf_size F
+GLIBC_2.4 printf_size_info F
+GLIBC_2.4 profil F
+GLIBC_2.4 program_invocation_name D 0x4
+GLIBC_2.4 program_invocation_short_name D 0x4
+GLIBC_2.4 pselect F
+GLIBC_2.4 psignal F
+GLIBC_2.4 pthread_attr_destroy F
+GLIBC_2.4 pthread_attr_getdetachstate F
+GLIBC_2.4 pthread_attr_getinheritsched F
+GLIBC_2.4 pthread_attr_getschedparam F
+GLIBC_2.4 pthread_attr_getschedpolicy F
+GLIBC_2.4 pthread_attr_getscope F
+GLIBC_2.4 pthread_attr_init F
+GLIBC_2.4 pthread_attr_setdetachstate F
+GLIBC_2.4 pthread_attr_setinheritsched F
+GLIBC_2.4 pthread_attr_setschedparam F
+GLIBC_2.4 pthread_attr_setschedpolicy F
+GLIBC_2.4 pthread_attr_setscope F
+GLIBC_2.4 pthread_cond_broadcast F
+GLIBC_2.4 pthread_cond_destroy F
+GLIBC_2.4 pthread_cond_init F
+GLIBC_2.4 pthread_cond_signal F
+GLIBC_2.4 pthread_cond_timedwait F
+GLIBC_2.4 pthread_cond_wait F
+GLIBC_2.4 pthread_condattr_destroy F
+GLIBC_2.4 pthread_condattr_init F
+GLIBC_2.4 pthread_equal F
+GLIBC_2.4 pthread_exit F
+GLIBC_2.4 pthread_getschedparam F
+GLIBC_2.4 pthread_mutex_destroy F
+GLIBC_2.4 pthread_mutex_init F
+GLIBC_2.4 pthread_mutex_lock F
+GLIBC_2.4 pthread_mutex_unlock F
+GLIBC_2.4 pthread_self F
+GLIBC_2.4 pthread_setcancelstate F
+GLIBC_2.4 pthread_setcanceltype F
+GLIBC_2.4 pthread_setschedparam F
+GLIBC_2.4 ptrace F
+GLIBC_2.4 ptsname F
+GLIBC_2.4 ptsname_r F
+GLIBC_2.4 putc F
+GLIBC_2.4 putc_unlocked F
+GLIBC_2.4 putchar F
+GLIBC_2.4 putchar_unlocked F
+GLIBC_2.4 putenv F
+GLIBC_2.4 putgrent F
+GLIBC_2.4 putmsg F
+GLIBC_2.4 putpmsg F
+GLIBC_2.4 putpwent F
+GLIBC_2.4 puts F
+GLIBC_2.4 putspent F
+GLIBC_2.4 pututline F
+GLIBC_2.4 pututxline F
+GLIBC_2.4 putw F
+GLIBC_2.4 putwc F
+GLIBC_2.4 putwc_unlocked F
+GLIBC_2.4 putwchar F
+GLIBC_2.4 putwchar_unlocked F
+GLIBC_2.4 pvalloc F
+GLIBC_2.4 pwrite F
+GLIBC_2.4 pwrite64 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 qsort F
+GLIBC_2.4 query_module F
+GLIBC_2.4 quotactl F
+GLIBC_2.4 raise F
+GLIBC_2.4 rand F
+GLIBC_2.4 rand_r F
+GLIBC_2.4 random F
+GLIBC_2.4 random_r F
+GLIBC_2.4 rawmemchr F
+GLIBC_2.4 rcmd F
+GLIBC_2.4 rcmd_af F
+GLIBC_2.4 re_comp F
+GLIBC_2.4 re_compile_fastmap F
+GLIBC_2.4 re_compile_pattern F
+GLIBC_2.4 re_exec F
+GLIBC_2.4 re_match F
+GLIBC_2.4 re_match_2 F
+GLIBC_2.4 re_search F
+GLIBC_2.4 re_search_2 F
+GLIBC_2.4 re_set_registers F
+GLIBC_2.4 re_set_syntax F
+GLIBC_2.4 re_syntax_options D 0x4
+GLIBC_2.4 read F
+GLIBC_2.4 readahead F
+GLIBC_2.4 readdir F
+GLIBC_2.4 readdir64 F
+GLIBC_2.4 readdir64_r F
+GLIBC_2.4 readdir_r F
+GLIBC_2.4 readlink F
+GLIBC_2.4 readlinkat F
+GLIBC_2.4 readv F
+GLIBC_2.4 realloc F
+GLIBC_2.4 realpath F
+GLIBC_2.4 reboot F
+GLIBC_2.4 recv F
+GLIBC_2.4 recvfrom F
+GLIBC_2.4 recvmsg F
+GLIBC_2.4 regcomp F
+GLIBC_2.4 regerror F
+GLIBC_2.4 regexec F
+GLIBC_2.4 regfree F
+GLIBC_2.4 register_printf_function F
+GLIBC_2.4 registerrpc F
+GLIBC_2.4 remap_file_pages F
+GLIBC_2.4 remove F
+GLIBC_2.4 removexattr F
+GLIBC_2.4 remque F
+GLIBC_2.4 rename F
+GLIBC_2.4 renameat F
+GLIBC_2.4 revoke F
+GLIBC_2.4 rewind F
+GLIBC_2.4 rewinddir F
+GLIBC_2.4 rexec F
+GLIBC_2.4 rexec_af F
+GLIBC_2.4 rexecoptions D 0x4
+GLIBC_2.4 rindex F
+GLIBC_2.4 rmdir F
+GLIBC_2.4 rpc_createerr D 0x10
+GLIBC_2.4 rpmatch F
+GLIBC_2.4 rresvport F
+GLIBC_2.4 rresvport_af F
+GLIBC_2.4 rtime F
+GLIBC_2.4 ruserok F
+GLIBC_2.4 ruserok_af F
+GLIBC_2.4 ruserpass F
+GLIBC_2.4 sbrk F
+GLIBC_2.4 scalbn F
+GLIBC_2.4 scalbnf F
+GLIBC_2.4 scalbnl F
+GLIBC_2.4 scandir F
+GLIBC_2.4 scandir64 F
+GLIBC_2.4 scanf F
+GLIBC_2.4 sched_get_priority_max F
+GLIBC_2.4 sched_get_priority_min F
+GLIBC_2.4 sched_getaffinity F
+GLIBC_2.4 sched_getparam F
+GLIBC_2.4 sched_getscheduler F
+GLIBC_2.4 sched_rr_get_interval F
+GLIBC_2.4 sched_setaffinity F
+GLIBC_2.4 sched_setparam F
+GLIBC_2.4 sched_setscheduler F
+GLIBC_2.4 sched_yield F
+GLIBC_2.4 seed48 F
+GLIBC_2.4 seed48_r F
+GLIBC_2.4 seekdir F
+GLIBC_2.4 select F
+GLIBC_2.4 semctl F
+GLIBC_2.4 semget F
+GLIBC_2.4 semop F
+GLIBC_2.4 semtimedop F
+GLIBC_2.4 send F
+GLIBC_2.4 sendfile F
+GLIBC_2.4 sendfile64 F
+GLIBC_2.4 sendmsg F
+GLIBC_2.4 sendto F
+GLIBC_2.4 setaliasent F
+GLIBC_2.4 setbuf F
+GLIBC_2.4 setbuffer F
+GLIBC_2.4 setcontext F
+GLIBC_2.4 setdomainname F
+GLIBC_2.4 setegid F
+GLIBC_2.4 setenv F
+GLIBC_2.4 seteuid F
+GLIBC_2.4 setfsent F
+GLIBC_2.4 setfsgid F
+GLIBC_2.4 setfsuid F
+GLIBC_2.4 setgid F
+GLIBC_2.4 setgrent F
+GLIBC_2.4 setgroups F
+GLIBC_2.4 sethostent F
+GLIBC_2.4 sethostid F
+GLIBC_2.4 sethostname F
+GLIBC_2.4 setipv4sourcefilter F
+GLIBC_2.4 setitimer F
+GLIBC_2.4 setjmp F
+GLIBC_2.4 setlinebuf F
+GLIBC_2.4 setlocale F
+GLIBC_2.4 setlogin F
+GLIBC_2.4 setlogmask F
+GLIBC_2.4 setmntent F
+GLIBC_2.4 setnetent F
+GLIBC_2.4 setnetgrent F
+GLIBC_2.4 setpgid F
+GLIBC_2.4 setpgrp F
+GLIBC_2.4 setpriority F
+GLIBC_2.4 setprotoent F
+GLIBC_2.4 setpwent F
+GLIBC_2.4 setregid F
+GLIBC_2.4 setresgid F
+GLIBC_2.4 setresuid F
+GLIBC_2.4 setreuid F
+GLIBC_2.4 setrlimit F
+GLIBC_2.4 setrlimit64 F
+GLIBC_2.4 setrpcent F
+GLIBC_2.4 setservent F
+GLIBC_2.4 setsid F
+GLIBC_2.4 setsockopt F
+GLIBC_2.4 setsourcefilter F
+GLIBC_2.4 setspent F
+GLIBC_2.4 setstate F
+GLIBC_2.4 setstate_r F
+GLIBC_2.4 settimeofday F
+GLIBC_2.4 setttyent F
+GLIBC_2.4 setuid F
+GLIBC_2.4 setusershell F
+GLIBC_2.4 setutent F
+GLIBC_2.4 setutxent F
+GLIBC_2.4 setvbuf F
+GLIBC_2.4 setxattr F
+GLIBC_2.4 sgetspent F
+GLIBC_2.4 sgetspent_r F
+GLIBC_2.4 shmat F
+GLIBC_2.4 shmctl F
+GLIBC_2.4 shmdt F
+GLIBC_2.4 shmget F
+GLIBC_2.4 shutdown F
+GLIBC_2.4 sigaction F
+GLIBC_2.4 sigaddset F
+GLIBC_2.4 sigaltstack F
+GLIBC_2.4 sigandset F
+GLIBC_2.4 sigblock F
+GLIBC_2.4 sigdelset F
+GLIBC_2.4 sigemptyset F
+GLIBC_2.4 sigfillset F
+GLIBC_2.4 siggetmask F
+GLIBC_2.4 sighold F
+GLIBC_2.4 sigignore F
+GLIBC_2.4 siginterrupt F
+GLIBC_2.4 sigisemptyset F
+GLIBC_2.4 sigismember F
+GLIBC_2.4 siglongjmp F
+GLIBC_2.4 signal F
+GLIBC_2.4 sigorset F
+GLIBC_2.4 sigpause F
+GLIBC_2.4 sigpending F
+GLIBC_2.4 sigprocmask F
+GLIBC_2.4 sigqueue F
+GLIBC_2.4 sigrelse F
+GLIBC_2.4 sigreturn F
+GLIBC_2.4 sigset F
+GLIBC_2.4 sigsetmask F
+GLIBC_2.4 sigstack F
+GLIBC_2.4 sigsuspend F
+GLIBC_2.4 sigtimedwait F
+GLIBC_2.4 sigvec F
+GLIBC_2.4 sigwait F
+GLIBC_2.4 sigwaitinfo F
+GLIBC_2.4 sleep F
+GLIBC_2.4 snprintf F
+GLIBC_2.4 sockatmark F
+GLIBC_2.4 socket F
+GLIBC_2.4 socketpair F
+GLIBC_2.4 sprintf F
+GLIBC_2.4 sprofil F
+GLIBC_2.4 srand F
+GLIBC_2.4 srand48 F
+GLIBC_2.4 srand48_r F
+GLIBC_2.4 srandom F
+GLIBC_2.4 srandom_r F
+GLIBC_2.4 sscanf F
+GLIBC_2.4 ssignal F
+GLIBC_2.4 sstk F
+GLIBC_2.4 statfs F
+GLIBC_2.4 statfs64 F
+GLIBC_2.4 statvfs F
+GLIBC_2.4 statvfs64 F
+GLIBC_2.4 stderr D 0x4
+GLIBC_2.4 stdin D 0x4
+GLIBC_2.4 stdout D 0x4
+GLIBC_2.4 step F
+GLIBC_2.4 stime F
+GLIBC_2.4 stpcpy F
+GLIBC_2.4 stpncpy F
+GLIBC_2.4 strcasecmp F
+GLIBC_2.4 strcasecmp_l F
+GLIBC_2.4 strcasestr F
+GLIBC_2.4 strcat F
+GLIBC_2.4 strchr F
+GLIBC_2.4 strchrnul F
+GLIBC_2.4 strcmp F
+GLIBC_2.4 strcoll F
+GLIBC_2.4 strcoll_l F
+GLIBC_2.4 strcpy F
+GLIBC_2.4 strcspn F
+GLIBC_2.4 strdup F
+GLIBC_2.4 strerror F
+GLIBC_2.4 strerror_r F
+GLIBC_2.4 strfmon F
+GLIBC_2.4 strfmon_l F
+GLIBC_2.4 strfry F
+GLIBC_2.4 strftime F
+GLIBC_2.4 strftime_l F
+GLIBC_2.4 strlen F
+GLIBC_2.4 strncasecmp F
+GLIBC_2.4 strncasecmp_l F
+GLIBC_2.4 strncat F
+GLIBC_2.4 strncmp F
+GLIBC_2.4 strncpy F
+GLIBC_2.4 strndup F
+GLIBC_2.4 strnlen F
+GLIBC_2.4 strpbrk F
+GLIBC_2.4 strptime F
+GLIBC_2.4 strptime_l F
+GLIBC_2.4 strrchr F
+GLIBC_2.4 strsep F
+GLIBC_2.4 strsignal F
+GLIBC_2.4 strspn F
+GLIBC_2.4 strstr F
+GLIBC_2.4 strtod F
+GLIBC_2.4 strtod_l F
+GLIBC_2.4 strtof F
+GLIBC_2.4 strtof_l F
+GLIBC_2.4 strtoimax F
+GLIBC_2.4 strtok F
+GLIBC_2.4 strtok_r F
+GLIBC_2.4 strtol F
+GLIBC_2.4 strtol_l F
+GLIBC_2.4 strtold F
+GLIBC_2.4 strtold_l F
+GLIBC_2.4 strtoll F
+GLIBC_2.4 strtoll_l F
+GLIBC_2.4 strtoq F
+GLIBC_2.4 strtoul F
+GLIBC_2.4 strtoul_l F
+GLIBC_2.4 strtoull F
+GLIBC_2.4 strtoull_l F
+GLIBC_2.4 strtoumax F
+GLIBC_2.4 strtouq F
+GLIBC_2.4 strverscmp F
+GLIBC_2.4 strxfrm F
+GLIBC_2.4 strxfrm_l F
+GLIBC_2.4 stty F
+GLIBC_2.4 svc_exit F
+GLIBC_2.4 svc_fdset D 0x80
+GLIBC_2.4 svc_getreq F
+GLIBC_2.4 svc_getreq_common F
+GLIBC_2.4 svc_getreq_poll F
+GLIBC_2.4 svc_getreqset F
+GLIBC_2.4 svc_max_pollfd D 0x4
+GLIBC_2.4 svc_pollfd D 0x4
+GLIBC_2.4 svc_register F
+GLIBC_2.4 svc_run F
+GLIBC_2.4 svc_sendreply F
+GLIBC_2.4 svc_unregister F
+GLIBC_2.4 svcauthdes_stats D 0xc
+GLIBC_2.4 svcerr_auth F
+GLIBC_2.4 svcerr_decode F
+GLIBC_2.4 svcerr_noproc F
+GLIBC_2.4 svcerr_noprog F
+GLIBC_2.4 svcerr_progvers F
+GLIBC_2.4 svcerr_systemerr F
+GLIBC_2.4 svcerr_weakauth F
+GLIBC_2.4 svcfd_create F
+GLIBC_2.4 svcraw_create F
+GLIBC_2.4 svctcp_create F
+GLIBC_2.4 svcudp_bufcreate F
+GLIBC_2.4 svcudp_create F
+GLIBC_2.4 svcudp_enablecache F
+GLIBC_2.4 svcunix_create F
+GLIBC_2.4 svcunixfd_create F
+GLIBC_2.4 swab F
+GLIBC_2.4 swapcontext F
+GLIBC_2.4 swapoff F
+GLIBC_2.4 swapon F
+GLIBC_2.4 swprintf F
+GLIBC_2.4 swscanf F
+GLIBC_2.4 symlink F
+GLIBC_2.4 symlinkat F
+GLIBC_2.4 sync F
+GLIBC_2.4 sys_errlist D 0x210
+GLIBC_2.4 sys_nerr D 0x4
+GLIBC_2.4 sys_sigabbrev D 0x104
+GLIBC_2.4 sys_siglist D 0x104
+GLIBC_2.4 syscall F
+GLIBC_2.4 sysconf F
+GLIBC_2.4 sysctl F
+GLIBC_2.4 sysinfo F
+GLIBC_2.4 syslog F
+GLIBC_2.4 system F
+GLIBC_2.4 sysv_signal F
+GLIBC_2.4 tcdrain F
+GLIBC_2.4 tcflow F
+GLIBC_2.4 tcflush F
+GLIBC_2.4 tcgetattr F
+GLIBC_2.4 tcgetpgrp F
+GLIBC_2.4 tcgetsid F
+GLIBC_2.4 tcsendbreak F
+GLIBC_2.4 tcsetattr F
+GLIBC_2.4 tcsetpgrp F
+GLIBC_2.4 tdelete F
+GLIBC_2.4 tdestroy F
+GLIBC_2.4 telldir F
+GLIBC_2.4 tempnam F
+GLIBC_2.4 textdomain F
+GLIBC_2.4 tfind F
+GLIBC_2.4 time F
+GLIBC_2.4 timegm F
+GLIBC_2.4 timelocal F
+GLIBC_2.4 times F
+GLIBC_2.4 timezone D 0x4
+GLIBC_2.4 tmpfile F
+GLIBC_2.4 tmpfile64 F
+GLIBC_2.4 tmpnam F
+GLIBC_2.4 tmpnam_r F
+GLIBC_2.4 toascii F
+GLIBC_2.4 tolower F
+GLIBC_2.4 tolower_l F
+GLIBC_2.4 toupper F
+GLIBC_2.4 toupper_l F
+GLIBC_2.4 towctrans F
+GLIBC_2.4 towctrans_l F
+GLIBC_2.4 towlower F
+GLIBC_2.4 towlower_l F
+GLIBC_2.4 towupper F
+GLIBC_2.4 towupper_l F
+GLIBC_2.4 tr_break F
+GLIBC_2.4 truncate F
+GLIBC_2.4 truncate64 F
+GLIBC_2.4 tsearch F
+GLIBC_2.4 ttyname F
+GLIBC_2.4 ttyname_r F
+GLIBC_2.4 ttyslot F
+GLIBC_2.4 twalk F
+GLIBC_2.4 tzname D 0x8
+GLIBC_2.4 tzset F
+GLIBC_2.4 ualarm F
+GLIBC_2.4 ulckpwdf F
+GLIBC_2.4 ulimit F
+GLIBC_2.4 umask F
+GLIBC_2.4 umount F
+GLIBC_2.4 umount2 F
+GLIBC_2.4 uname F
+GLIBC_2.4 ungetc F
+GLIBC_2.4 ungetwc F
+GLIBC_2.4 unlink F
+GLIBC_2.4 unlinkat F
+GLIBC_2.4 unlockpt F
+GLIBC_2.4 unsetenv F
+GLIBC_2.4 unshare F
+GLIBC_2.4 updwtmp F
+GLIBC_2.4 updwtmpx F
+GLIBC_2.4 uselib F
+GLIBC_2.4 uselocale F
+GLIBC_2.4 user2netname F
+GLIBC_2.4 usleep F
+GLIBC_2.4 ustat F
+GLIBC_2.4 utime F
+GLIBC_2.4 utimes F
+GLIBC_2.4 utmpname F
+GLIBC_2.4 utmpxname F
+GLIBC_2.4 valloc F
+GLIBC_2.4 vasprintf F
+GLIBC_2.4 vdprintf F
+GLIBC_2.4 verr F
+GLIBC_2.4 verrx F
+GLIBC_2.4 versionsort F
+GLIBC_2.4 versionsort64 F
+GLIBC_2.4 vfork F
+GLIBC_2.4 vfprintf F
+GLIBC_2.4 vfscanf F
+GLIBC_2.4 vfwprintf F
+GLIBC_2.4 vfwscanf F
+GLIBC_2.4 vhangup F
+GLIBC_2.4 vlimit 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 vtimes F
+GLIBC_2.4 vwarn F
+GLIBC_2.4 vwarnx F
+GLIBC_2.4 vwprintf F
+GLIBC_2.4 vwscanf F
+GLIBC_2.4 wait F
+GLIBC_2.4 wait3 F
+GLIBC_2.4 wait4 F
+GLIBC_2.4 waitid F
+GLIBC_2.4 waitpid F
+GLIBC_2.4 warn F
+GLIBC_2.4 warnx F
+GLIBC_2.4 wcpcpy F
+GLIBC_2.4 wcpncpy F
+GLIBC_2.4 wcrtomb F
+GLIBC_2.4 wcscasecmp F
+GLIBC_2.4 wcscasecmp_l F
+GLIBC_2.4 wcscat F
+GLIBC_2.4 wcschr F
+GLIBC_2.4 wcschrnul F
+GLIBC_2.4 wcscmp F
+GLIBC_2.4 wcscoll F
+GLIBC_2.4 wcscoll_l F
+GLIBC_2.4 wcscpy F
+GLIBC_2.4 wcscspn F
+GLIBC_2.4 wcsdup F
+GLIBC_2.4 wcsftime F
+GLIBC_2.4 wcsftime_l F
+GLIBC_2.4 wcslen F
+GLIBC_2.4 wcsncasecmp F
+GLIBC_2.4 wcsncasecmp_l F
+GLIBC_2.4 wcsncat F
+GLIBC_2.4 wcsncmp F
+GLIBC_2.4 wcsncpy F
+GLIBC_2.4 wcsnlen F
+GLIBC_2.4 wcsnrtombs F
+GLIBC_2.4 wcspbrk F
+GLIBC_2.4 wcsrchr F
+GLIBC_2.4 wcsrtombs F
+GLIBC_2.4 wcsspn F
+GLIBC_2.4 wcsstr F
+GLIBC_2.4 wcstod F
+GLIBC_2.4 wcstod_l F
+GLIBC_2.4 wcstof F
+GLIBC_2.4 wcstof_l F
+GLIBC_2.4 wcstoimax F
+GLIBC_2.4 wcstok F
+GLIBC_2.4 wcstol F
+GLIBC_2.4 wcstol_l F
+GLIBC_2.4 wcstold F
+GLIBC_2.4 wcstold_l F
+GLIBC_2.4 wcstoll F
+GLIBC_2.4 wcstoll_l F
+GLIBC_2.4 wcstombs F
+GLIBC_2.4 wcstoq F
+GLIBC_2.4 wcstoul F
+GLIBC_2.4 wcstoul_l F
+GLIBC_2.4 wcstoull F
+GLIBC_2.4 wcstoull_l F
+GLIBC_2.4 wcstoumax F
+GLIBC_2.4 wcstouq F
+GLIBC_2.4 wcswcs F
+GLIBC_2.4 wcswidth F
+GLIBC_2.4 wcsxfrm F
+GLIBC_2.4 wcsxfrm_l F
+GLIBC_2.4 wctob F
+GLIBC_2.4 wctomb F
+GLIBC_2.4 wctrans F
+GLIBC_2.4 wctrans_l F
+GLIBC_2.4 wctype F
+GLIBC_2.4 wctype_l F
+GLIBC_2.4 wcwidth F
+GLIBC_2.4 wmemchr F
+GLIBC_2.4 wmemcmp F
+GLIBC_2.4 wmemcpy F
+GLIBC_2.4 wmemmove F
+GLIBC_2.4 wmempcpy F
+GLIBC_2.4 wmemset F
+GLIBC_2.4 wordexp F
+GLIBC_2.4 wordfree F
+GLIBC_2.4 wprintf F
+GLIBC_2.4 write F
+GLIBC_2.4 writev F
+GLIBC_2.4 wscanf F
+GLIBC_2.4 xdecrypt F
+GLIBC_2.4 xdr_accepted_reply F
+GLIBC_2.4 xdr_array F
+GLIBC_2.4 xdr_authdes_cred F
+GLIBC_2.4 xdr_authdes_verf F
+GLIBC_2.4 xdr_authunix_parms F
+GLIBC_2.4 xdr_bool F
+GLIBC_2.4 xdr_bytes F
+GLIBC_2.4 xdr_callhdr F
+GLIBC_2.4 xdr_callmsg F
+GLIBC_2.4 xdr_char F
+GLIBC_2.4 xdr_cryptkeyarg F
+GLIBC_2.4 xdr_cryptkeyarg2 F
+GLIBC_2.4 xdr_cryptkeyres F
+GLIBC_2.4 xdr_des_block F
+GLIBC_2.4 xdr_double F
+GLIBC_2.4 xdr_enum F
+GLIBC_2.4 xdr_float F
+GLIBC_2.4 xdr_free F
+GLIBC_2.4 xdr_getcredres F
+GLIBC_2.4 xdr_hyper F
+GLIBC_2.4 xdr_int F
+GLIBC_2.4 xdr_int16_t F
+GLIBC_2.4 xdr_int32_t F
+GLIBC_2.4 xdr_int64_t F
+GLIBC_2.4 xdr_int8_t F
+GLIBC_2.4 xdr_key_netstarg F
+GLIBC_2.4 xdr_key_netstres F
+GLIBC_2.4 xdr_keybuf F
+GLIBC_2.4 xdr_keystatus F
+GLIBC_2.4 xdr_long F
+GLIBC_2.4 xdr_longlong_t F
+GLIBC_2.4 xdr_netnamestr F
+GLIBC_2.4 xdr_netobj F
+GLIBC_2.4 xdr_opaque F
+GLIBC_2.4 xdr_opaque_auth F
+GLIBC_2.4 xdr_pmap F
+GLIBC_2.4 xdr_pmaplist F
+GLIBC_2.4 xdr_pointer F
+GLIBC_2.4 xdr_quad_t F
+GLIBC_2.4 xdr_reference F
+GLIBC_2.4 xdr_rejected_reply F
+GLIBC_2.4 xdr_replymsg F
+GLIBC_2.4 xdr_rmtcall_args F
+GLIBC_2.4 xdr_rmtcallres F
+GLIBC_2.4 xdr_short F
+GLIBC_2.4 xdr_sizeof F
+GLIBC_2.4 xdr_string F
+GLIBC_2.4 xdr_u_char F
+GLIBC_2.4 xdr_u_hyper F
+GLIBC_2.4 xdr_u_int F
+GLIBC_2.4 xdr_u_long F
+GLIBC_2.4 xdr_u_longlong_t F
+GLIBC_2.4 xdr_u_quad_t F
+GLIBC_2.4 xdr_u_short F
+GLIBC_2.4 xdr_uint16_t F
+GLIBC_2.4 xdr_uint32_t F
+GLIBC_2.4 xdr_uint64_t F
+GLIBC_2.4 xdr_uint8_t F
+GLIBC_2.4 xdr_union F
+GLIBC_2.4 xdr_unixcred F
+GLIBC_2.4 xdr_vector F
+GLIBC_2.4 xdr_void F
+GLIBC_2.4 xdr_wrapstring F
+GLIBC_2.4 xdrmem_create F
+GLIBC_2.4 xdrrec_create F
+GLIBC_2.4 xdrrec_endofrecord F
+GLIBC_2.4 xdrrec_eof F
+GLIBC_2.4 xdrrec_skiprecord F
+GLIBC_2.4 xdrstdio_create F
+GLIBC_2.4 xencrypt F
+GLIBC_2.4 xprt_register F
+GLIBC_2.4 xprt_unregister F
+GLIBC_2.5 GLIBC_2.5 A
+GLIBC_2.5 __readlinkat_chk F
+GLIBC_2.5 inet6_opt_append F
+GLIBC_2.5 inet6_opt_find F
+GLIBC_2.5 inet6_opt_finish F
+GLIBC_2.5 inet6_opt_get_val F
+GLIBC_2.5 inet6_opt_init F
+GLIBC_2.5 inet6_opt_next F
+GLIBC_2.5 inet6_opt_set_val F
+GLIBC_2.5 inet6_rth_add F
+GLIBC_2.5 inet6_rth_getaddr F
+GLIBC_2.5 inet6_rth_init F
+GLIBC_2.5 inet6_rth_reverse F
+GLIBC_2.5 inet6_rth_segments F
+GLIBC_2.5 inet6_rth_space F
+GLIBC_2.5 splice F
+GLIBC_2.5 tee F
+GLIBC_2.5 vmsplice F
+GLIBC_2.6 GLIBC_2.6 A
+GLIBC_2.6 __sched_cpucount F
+GLIBC_2.6 epoll_pwait F
+GLIBC_2.6 futimens F
+GLIBC_2.6 sched_getcpu F
+GLIBC_2.6 strerror_l F
+GLIBC_2.6 sync_file_range F
+GLIBC_2.6 utimensat F
+GLIBC_2.7 GLIBC_2.7 A
+GLIBC_2.7 __fread_chk F
+GLIBC_2.7 __fread_unlocked_chk F
+GLIBC_2.7 __isoc99_fscanf F
+GLIBC_2.7 __isoc99_fwscanf F
+GLIBC_2.7 __isoc99_scanf F
+GLIBC_2.7 __isoc99_sscanf F
+GLIBC_2.7 __isoc99_swscanf F
+GLIBC_2.7 __isoc99_vfscanf F
+GLIBC_2.7 __isoc99_vfwscanf F
+GLIBC_2.7 __isoc99_vscanf F
+GLIBC_2.7 __isoc99_vsscanf F
+GLIBC_2.7 __isoc99_vswscanf F
+GLIBC_2.7 __isoc99_vwscanf F
+GLIBC_2.7 __isoc99_wscanf F
+GLIBC_2.7 __open64_2 F
+GLIBC_2.7 __open_2 F
+GLIBC_2.7 __openat64_2 F
+GLIBC_2.7 __openat_2 F
+GLIBC_2.7 __sched_cpualloc F
+GLIBC_2.7 __sched_cpufree F
+GLIBC_2.7 eventfd F
+GLIBC_2.7 eventfd_read F
+GLIBC_2.7 eventfd_write F
+GLIBC_2.7 mkostemp F
+GLIBC_2.7 mkostemp64 F
+GLIBC_2.7 signalfd F
+GLIBC_2.8 GLIBC_2.8 A
+GLIBC_2.8 __asprintf_chk F
+GLIBC_2.8 __dprintf_chk F
+GLIBC_2.8 __obstack_printf_chk F
+GLIBC_2.8 __obstack_vprintf_chk F
+GLIBC_2.8 __vasprintf_chk F
+GLIBC_2.8 __vdprintf_chk F
+GLIBC_2.8 qsort_r F
+GLIBC_2.8 timerfd_create F
+GLIBC_2.8 timerfd_gettime F
+GLIBC_2.8 timerfd_settime F
+GLIBC_2.9 GLIBC_2.9 A
+GLIBC_2.9 dup3 F
+GLIBC_2.9 epoll_create1 F
+GLIBC_2.9 inotify_init1 F
+GLIBC_2.9 pipe2 F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/m68k/coldfire/libcrypt.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/coldfire/libcrypt.abilist
new file mode 100644
index 0000000000..04f1f02fa3
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/coldfire/libcrypt.abilist
@@ -0,0 +1,8 @@
+GLIBC_2.4 GLIBC_2.4 A
+GLIBC_2.4 crypt F
+GLIBC_2.4 crypt_r F
+GLIBC_2.4 encrypt F
+GLIBC_2.4 encrypt_r F
+GLIBC_2.4 fcrypt F
+GLIBC_2.4 setkey F
+GLIBC_2.4 setkey_r F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/m68k/coldfire/libdl.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/coldfire/libdl.abilist
new file mode 100644
index 0000000000..89a750a0a3
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/coldfire/libdl.abilist
@@ -0,0 +1,10 @@
+GLIBC_2.4 GLIBC_2.4 A
+GLIBC_2.4 dladdr F
+GLIBC_2.4 dladdr1 F
+GLIBC_2.4 dlclose F
+GLIBC_2.4 dlerror F
+GLIBC_2.4 dlinfo F
+GLIBC_2.4 dlmopen F
+GLIBC_2.4 dlopen F
+GLIBC_2.4 dlsym F
+GLIBC_2.4 dlvsym F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist
new file mode 100644
index 0000000000..d0c33d2a11
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist
@@ -0,0 +1,432 @@
+GLIBC_2.15 GLIBC_2.15 A
+GLIBC_2.15 __acos_finite F
+GLIBC_2.15 __acosf_finite F
+GLIBC_2.15 __acosh_finite F
+GLIBC_2.15 __acoshf_finite F
+GLIBC_2.15 __asin_finite F
+GLIBC_2.15 __asinf_finite F
+GLIBC_2.15 __atan2_finite F
+GLIBC_2.15 __atan2f_finite F
+GLIBC_2.15 __atanh_finite F
+GLIBC_2.15 __atanhf_finite F
+GLIBC_2.15 __cosh_finite F
+GLIBC_2.15 __coshf_finite F
+GLIBC_2.15 __exp10_finite F
+GLIBC_2.15 __exp10f_finite F
+GLIBC_2.15 __exp2_finite F
+GLIBC_2.15 __exp2f_finite F
+GLIBC_2.15 __exp_finite F
+GLIBC_2.15 __expf_finite F
+GLIBC_2.15 __fmod_finite F
+GLIBC_2.15 __fmodf_finite F
+GLIBC_2.15 __gamma_r_finite F
+GLIBC_2.15 __gammaf_r_finite F
+GLIBC_2.15 __hypot_finite F
+GLIBC_2.15 __hypotf_finite F
+GLIBC_2.15 __j0_finite F
+GLIBC_2.15 __j0f_finite F
+GLIBC_2.15 __j1_finite F
+GLIBC_2.15 __j1f_finite F
+GLIBC_2.15 __jn_finite F
+GLIBC_2.15 __jnf_finite F
+GLIBC_2.15 __lgamma_r_finite F
+GLIBC_2.15 __lgammaf_r_finite F
+GLIBC_2.15 __log10_finite F
+GLIBC_2.15 __log10f_finite F
+GLIBC_2.15 __log2_finite F
+GLIBC_2.15 __log2f_finite F
+GLIBC_2.15 __log_finite F
+GLIBC_2.15 __logf_finite F
+GLIBC_2.15 __pow_finite F
+GLIBC_2.15 __powf_finite F
+GLIBC_2.15 __remainder_finite F
+GLIBC_2.15 __remainderf_finite F
+GLIBC_2.15 __scalb_finite F
+GLIBC_2.15 __scalbf_finite F
+GLIBC_2.15 __sinh_finite F
+GLIBC_2.15 __sinhf_finite F
+GLIBC_2.15 __sqrt_finite F
+GLIBC_2.15 __sqrtf_finite F
+GLIBC_2.15 __y0_finite F
+GLIBC_2.15 __y0f_finite F
+GLIBC_2.15 __y1_finite F
+GLIBC_2.15 __y1f_finite F
+GLIBC_2.15 __yn_finite F
+GLIBC_2.15 __ynf_finite F
+GLIBC_2.18 GLIBC_2.18 A
+GLIBC_2.18 __issignaling F
+GLIBC_2.18 __issignalingf F
+GLIBC_2.23 GLIBC_2.23 A
+GLIBC_2.23 __signgam D 0x4
+GLIBC_2.23 lgamma F
+GLIBC_2.23 lgammaf F
+GLIBC_2.23 lgammal F
+GLIBC_2.24 GLIBC_2.24 A
+GLIBC_2.24 nextdown F
+GLIBC_2.24 nextdownf F
+GLIBC_2.24 nextdownl F
+GLIBC_2.24 nextup F
+GLIBC_2.24 nextupf F
+GLIBC_2.24 nextupl F
+GLIBC_2.25 GLIBC_2.25 A
+GLIBC_2.25 __iseqsig F
+GLIBC_2.25 __iseqsigf F
+GLIBC_2.25 canonicalize F
+GLIBC_2.25 canonicalizef F
+GLIBC_2.25 canonicalizel F
+GLIBC_2.25 fegetmode F
+GLIBC_2.25 fesetexcept F
+GLIBC_2.25 fesetmode F
+GLIBC_2.25 fetestexceptflag F
+GLIBC_2.25 fmaxmag F
+GLIBC_2.25 fmaxmagf F
+GLIBC_2.25 fmaxmagl F
+GLIBC_2.25 fminmag F
+GLIBC_2.25 fminmagf F
+GLIBC_2.25 fminmagl F
+GLIBC_2.25 fromfp F
+GLIBC_2.25 fromfpf F
+GLIBC_2.25 fromfpl F
+GLIBC_2.25 fromfpx F
+GLIBC_2.25 fromfpxf F
+GLIBC_2.25 fromfpxl F
+GLIBC_2.25 getpayload F
+GLIBC_2.25 getpayloadf F
+GLIBC_2.25 getpayloadl F
+GLIBC_2.25 llogb F
+GLIBC_2.25 llogbf F
+GLIBC_2.25 llogbl F
+GLIBC_2.25 roundeven F
+GLIBC_2.25 roundevenf F
+GLIBC_2.25 roundevenl F
+GLIBC_2.25 setpayload F
+GLIBC_2.25 setpayloadf F
+GLIBC_2.25 setpayloadl F
+GLIBC_2.25 setpayloadsig F
+GLIBC_2.25 setpayloadsigf F
+GLIBC_2.25 setpayloadsigl F
+GLIBC_2.25 totalorder F
+GLIBC_2.25 totalorderf F
+GLIBC_2.25 totalorderl F
+GLIBC_2.25 totalordermag F
+GLIBC_2.25 totalordermagf F
+GLIBC_2.25 totalordermagl F
+GLIBC_2.25 ufromfp F
+GLIBC_2.25 ufromfpf F
+GLIBC_2.25 ufromfpl F
+GLIBC_2.25 ufromfpx F
+GLIBC_2.25 ufromfpxf F
+GLIBC_2.25 ufromfpxl F
+GLIBC_2.4 GLIBC_2.4 A
+GLIBC_2.4 _LIB_VERSION D 0x4
+GLIBC_2.4 __clog10 F
+GLIBC_2.4 __clog10f F
+GLIBC_2.4 __clog10l F
+GLIBC_2.4 __finite F
+GLIBC_2.4 __finitef F
+GLIBC_2.4 __finitel F
+GLIBC_2.4 __fpclassify F
+GLIBC_2.4 __fpclassifyf F
+GLIBC_2.4 __signbit F
+GLIBC_2.4 __signbitf F
+GLIBC_2.4 acos F
+GLIBC_2.4 acosf F
+GLIBC_2.4 acosh F
+GLIBC_2.4 acoshf F
+GLIBC_2.4 acoshl F
+GLIBC_2.4 acosl F
+GLIBC_2.4 asin F
+GLIBC_2.4 asinf F
+GLIBC_2.4 asinh F
+GLIBC_2.4 asinhf F
+GLIBC_2.4 asinhl F
+GLIBC_2.4 asinl F
+GLIBC_2.4 atan F
+GLIBC_2.4 atan2 F
+GLIBC_2.4 atan2f F
+GLIBC_2.4 atan2l F
+GLIBC_2.4 atanf F
+GLIBC_2.4 atanh F
+GLIBC_2.4 atanhf F
+GLIBC_2.4 atanhl F
+GLIBC_2.4 atanl F
+GLIBC_2.4 cabs F
+GLIBC_2.4 cabsf F
+GLIBC_2.4 cabsl F
+GLIBC_2.4 cacos F
+GLIBC_2.4 cacosf F
+GLIBC_2.4 cacosh F
+GLIBC_2.4 cacoshf F
+GLIBC_2.4 cacoshl F
+GLIBC_2.4 cacosl F
+GLIBC_2.4 carg F
+GLIBC_2.4 cargf F
+GLIBC_2.4 cargl F
+GLIBC_2.4 casin F
+GLIBC_2.4 casinf F
+GLIBC_2.4 casinh F
+GLIBC_2.4 casinhf F
+GLIBC_2.4 casinhl F
+GLIBC_2.4 casinl F
+GLIBC_2.4 catan F
+GLIBC_2.4 catanf F
+GLIBC_2.4 catanh F
+GLIBC_2.4 catanhf F
+GLIBC_2.4 catanhl F
+GLIBC_2.4 catanl F
+GLIBC_2.4 cbrt F
+GLIBC_2.4 cbrtf F
+GLIBC_2.4 cbrtl F
+GLIBC_2.4 ccos F
+GLIBC_2.4 ccosf F
+GLIBC_2.4 ccosh F
+GLIBC_2.4 ccoshf F
+GLIBC_2.4 ccoshl F
+GLIBC_2.4 ccosl F
+GLIBC_2.4 ceil F
+GLIBC_2.4 ceilf F
+GLIBC_2.4 ceill F
+GLIBC_2.4 cexp F
+GLIBC_2.4 cexpf F
+GLIBC_2.4 cexpl F
+GLIBC_2.4 cimag F
+GLIBC_2.4 cimagf F
+GLIBC_2.4 cimagl F
+GLIBC_2.4 clog F
+GLIBC_2.4 clog10 F
+GLIBC_2.4 clog10f F
+GLIBC_2.4 clog10l F
+GLIBC_2.4 clogf F
+GLIBC_2.4 clogl F
+GLIBC_2.4 conj F
+GLIBC_2.4 conjf F
+GLIBC_2.4 conjl F
+GLIBC_2.4 copysign F
+GLIBC_2.4 copysignf F
+GLIBC_2.4 copysignl F
+GLIBC_2.4 cos F
+GLIBC_2.4 cosf F
+GLIBC_2.4 cosh F
+GLIBC_2.4 coshf F
+GLIBC_2.4 coshl F
+GLIBC_2.4 cosl F
+GLIBC_2.4 cpow F
+GLIBC_2.4 cpowf F
+GLIBC_2.4 cpowl F
+GLIBC_2.4 cproj F
+GLIBC_2.4 cprojf F
+GLIBC_2.4 cprojl F
+GLIBC_2.4 creal F
+GLIBC_2.4 crealf F
+GLIBC_2.4 creall F
+GLIBC_2.4 csin F
+GLIBC_2.4 csinf F
+GLIBC_2.4 csinh F
+GLIBC_2.4 csinhf F
+GLIBC_2.4 csinhl F
+GLIBC_2.4 csinl F
+GLIBC_2.4 csqrt F
+GLIBC_2.4 csqrtf F
+GLIBC_2.4 csqrtl F
+GLIBC_2.4 ctan F
+GLIBC_2.4 ctanf F
+GLIBC_2.4 ctanh F
+GLIBC_2.4 ctanhf F
+GLIBC_2.4 ctanhl F
+GLIBC_2.4 ctanl F
+GLIBC_2.4 drem F
+GLIBC_2.4 dremf F
+GLIBC_2.4 dreml F
+GLIBC_2.4 erf F
+GLIBC_2.4 erfc F
+GLIBC_2.4 erfcf F
+GLIBC_2.4 erfcl F
+GLIBC_2.4 erff F
+GLIBC_2.4 erfl F
+GLIBC_2.4 exp F
+GLIBC_2.4 exp10 F
+GLIBC_2.4 exp10f F
+GLIBC_2.4 exp10l F
+GLIBC_2.4 exp2 F
+GLIBC_2.4 exp2f F
+GLIBC_2.4 exp2l F
+GLIBC_2.4 expf F
+GLIBC_2.4 expl F
+GLIBC_2.4 expm1 F
+GLIBC_2.4 expm1f F
+GLIBC_2.4 expm1l F
+GLIBC_2.4 fabs F
+GLIBC_2.4 fabsf F
+GLIBC_2.4 fabsl F
+GLIBC_2.4 fdim F
+GLIBC_2.4 fdimf F
+GLIBC_2.4 fdiml F
+GLIBC_2.4 feclearexcept F
+GLIBC_2.4 fedisableexcept F
+GLIBC_2.4 feenableexcept F
+GLIBC_2.4 fegetenv F
+GLIBC_2.4 fegetexcept F
+GLIBC_2.4 fegetexceptflag F
+GLIBC_2.4 fegetround F
+GLIBC_2.4 feholdexcept F
+GLIBC_2.4 feraiseexcept F
+GLIBC_2.4 fesetenv F
+GLIBC_2.4 fesetexceptflag F
+GLIBC_2.4 fesetround F
+GLIBC_2.4 fetestexcept F
+GLIBC_2.4 feupdateenv F
+GLIBC_2.4 finite F
+GLIBC_2.4 finitef F
+GLIBC_2.4 finitel F
+GLIBC_2.4 floor F
+GLIBC_2.4 floorf F
+GLIBC_2.4 floorl F
+GLIBC_2.4 fma F
+GLIBC_2.4 fmaf F
+GLIBC_2.4 fmal F
+GLIBC_2.4 fmax F
+GLIBC_2.4 fmaxf F
+GLIBC_2.4 fmaxl F
+GLIBC_2.4 fmin F
+GLIBC_2.4 fminf F
+GLIBC_2.4 fminl F
+GLIBC_2.4 fmod F
+GLIBC_2.4 fmodf F
+GLIBC_2.4 fmodl F
+GLIBC_2.4 frexp F
+GLIBC_2.4 frexpf F
+GLIBC_2.4 frexpl F
+GLIBC_2.4 gamma F
+GLIBC_2.4 gammaf F
+GLIBC_2.4 gammal F
+GLIBC_2.4 hypot F
+GLIBC_2.4 hypotf F
+GLIBC_2.4 hypotl F
+GLIBC_2.4 ilogb F
+GLIBC_2.4 ilogbf F
+GLIBC_2.4 ilogbl F
+GLIBC_2.4 j0 F
+GLIBC_2.4 j0f F
+GLIBC_2.4 j0l F
+GLIBC_2.4 j1 F
+GLIBC_2.4 j1f F
+GLIBC_2.4 j1l F
+GLIBC_2.4 jn F
+GLIBC_2.4 jnf F
+GLIBC_2.4 jnl F
+GLIBC_2.4 ldexp F
+GLIBC_2.4 ldexpf F
+GLIBC_2.4 ldexpl F
+GLIBC_2.4 lgamma F
+GLIBC_2.4 lgamma_r F
+GLIBC_2.4 lgammaf F
+GLIBC_2.4 lgammaf_r F
+GLIBC_2.4 lgammal F
+GLIBC_2.4 lgammal_r F
+GLIBC_2.4 llrint F
+GLIBC_2.4 llrintf F
+GLIBC_2.4 llrintl F
+GLIBC_2.4 llround F
+GLIBC_2.4 llroundf F
+GLIBC_2.4 llroundl F
+GLIBC_2.4 log F
+GLIBC_2.4 log10 F
+GLIBC_2.4 log10f F
+GLIBC_2.4 log10l F
+GLIBC_2.4 log1p F
+GLIBC_2.4 log1pf F
+GLIBC_2.4 log1pl F
+GLIBC_2.4 log2 F
+GLIBC_2.4 log2f F
+GLIBC_2.4 log2l F
+GLIBC_2.4 logb F
+GLIBC_2.4 logbf F
+GLIBC_2.4 logbl F
+GLIBC_2.4 logf F
+GLIBC_2.4 logl F
+GLIBC_2.4 lrint F
+GLIBC_2.4 lrintf F
+GLIBC_2.4 lrintl F
+GLIBC_2.4 lround F
+GLIBC_2.4 lroundf F
+GLIBC_2.4 lroundl F
+GLIBC_2.4 matherr F
+GLIBC_2.4 modf F
+GLIBC_2.4 modff F
+GLIBC_2.4 modfl F
+GLIBC_2.4 nan F
+GLIBC_2.4 nanf F
+GLIBC_2.4 nanl F
+GLIBC_2.4 nearbyint F
+GLIBC_2.4 nearbyintf F
+GLIBC_2.4 nearbyintl F
+GLIBC_2.4 nextafter F
+GLIBC_2.4 nextafterf F
+GLIBC_2.4 nextafterl F
+GLIBC_2.4 nexttoward F
+GLIBC_2.4 nexttowardf F
+GLIBC_2.4 nexttowardl F
+GLIBC_2.4 pow F
+GLIBC_2.4 pow10 F
+GLIBC_2.4 pow10f F
+GLIBC_2.4 pow10l F
+GLIBC_2.4 powf F
+GLIBC_2.4 powl F
+GLIBC_2.4 remainder F
+GLIBC_2.4 remainderf F
+GLIBC_2.4 remainderl F
+GLIBC_2.4 remquo F
+GLIBC_2.4 remquof F
+GLIBC_2.4 remquol F
+GLIBC_2.4 rint F
+GLIBC_2.4 rintf F
+GLIBC_2.4 rintl F
+GLIBC_2.4 round F
+GLIBC_2.4 roundf F
+GLIBC_2.4 roundl F
+GLIBC_2.4 scalb F
+GLIBC_2.4 scalbf F
+GLIBC_2.4 scalbl F
+GLIBC_2.4 scalbln F
+GLIBC_2.4 scalblnf F
+GLIBC_2.4 scalblnl F
+GLIBC_2.4 scalbn F
+GLIBC_2.4 scalbnf F
+GLIBC_2.4 scalbnl F
+GLIBC_2.4 signgam D 0x4
+GLIBC_2.4 significand F
+GLIBC_2.4 significandf F
+GLIBC_2.4 significandl F
+GLIBC_2.4 sin F
+GLIBC_2.4 sincos F
+GLIBC_2.4 sincosf F
+GLIBC_2.4 sincosl F
+GLIBC_2.4 sinf F
+GLIBC_2.4 sinh F
+GLIBC_2.4 sinhf F
+GLIBC_2.4 sinhl F
+GLIBC_2.4 sinl F
+GLIBC_2.4 sqrt F
+GLIBC_2.4 sqrtf F
+GLIBC_2.4 sqrtl F
+GLIBC_2.4 tan F
+GLIBC_2.4 tanf F
+GLIBC_2.4 tanh F
+GLIBC_2.4 tanhf F
+GLIBC_2.4 tanhl F
+GLIBC_2.4 tanl F
+GLIBC_2.4 tgamma F
+GLIBC_2.4 tgammaf F
+GLIBC_2.4 tgammal F
+GLIBC_2.4 trunc F
+GLIBC_2.4 truncf F
+GLIBC_2.4 truncl F
+GLIBC_2.4 y0 F
+GLIBC_2.4 y0f F
+GLIBC_2.4 y0l F
+GLIBC_2.4 y1 F
+GLIBC_2.4 y1f F
+GLIBC_2.4 y1l F
+GLIBC_2.4 yn F
+GLIBC_2.4 ynf F
+GLIBC_2.4 ynl F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/m68k/coldfire/libnsl.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/coldfire/libnsl.abilist
new file mode 100644
index 0000000000..2b2e49e6a1
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/coldfire/libnsl.abilist
@@ -0,0 +1,122 @@
+GLIBC_2.4 GLIBC_2.4 A
+GLIBC_2.4 __free_fdresult F
+GLIBC_2.4 __nis_default_access F
+GLIBC_2.4 __nis_default_group F
+GLIBC_2.4 __nis_default_owner F
+GLIBC_2.4 __nis_default_ttl F
+GLIBC_2.4 __nis_finddirectory F
+GLIBC_2.4 __nis_hash F
+GLIBC_2.4 __nisbind_connect F
+GLIBC_2.4 __nisbind_create F
+GLIBC_2.4 __nisbind_destroy F
+GLIBC_2.4 __nisbind_next F
+GLIBC_2.4 __yp_check F
+GLIBC_2.4 nis_add F
+GLIBC_2.4 nis_add_entry F
+GLIBC_2.4 nis_addmember F
+GLIBC_2.4 nis_checkpoint F
+GLIBC_2.4 nis_clone_directory F
+GLIBC_2.4 nis_clone_object F
+GLIBC_2.4 nis_clone_result F
+GLIBC_2.4 nis_creategroup F
+GLIBC_2.4 nis_destroy_object F
+GLIBC_2.4 nis_destroygroup F
+GLIBC_2.4 nis_dir_cmp F
+GLIBC_2.4 nis_domain_of F
+GLIBC_2.4 nis_domain_of_r F
+GLIBC_2.4 nis_first_entry F
+GLIBC_2.4 nis_free_directory F
+GLIBC_2.4 nis_free_object F
+GLIBC_2.4 nis_free_request F
+GLIBC_2.4 nis_freenames F
+GLIBC_2.4 nis_freeresult F
+GLIBC_2.4 nis_freeservlist F
+GLIBC_2.4 nis_freetags F
+GLIBC_2.4 nis_getnames F
+GLIBC_2.4 nis_getservlist F
+GLIBC_2.4 nis_ismember F
+GLIBC_2.4 nis_leaf_of F
+GLIBC_2.4 nis_leaf_of_r F
+GLIBC_2.4 nis_lerror F
+GLIBC_2.4 nis_list F
+GLIBC_2.4 nis_local_directory F
+GLIBC_2.4 nis_local_group F
+GLIBC_2.4 nis_local_host F
+GLIBC_2.4 nis_local_principal F
+GLIBC_2.4 nis_lookup F
+GLIBC_2.4 nis_mkdir F
+GLIBC_2.4 nis_modify F
+GLIBC_2.4 nis_modify_entry F
+GLIBC_2.4 nis_name_of F
+GLIBC_2.4 nis_name_of_r F
+GLIBC_2.4 nis_next_entry F
+GLIBC_2.4 nis_perror F
+GLIBC_2.4 nis_ping F
+GLIBC_2.4 nis_print_directory F
+GLIBC_2.4 nis_print_entry F
+GLIBC_2.4 nis_print_group F
+GLIBC_2.4 nis_print_group_entry F
+GLIBC_2.4 nis_print_link F
+GLIBC_2.4 nis_print_object F
+GLIBC_2.4 nis_print_result F
+GLIBC_2.4 nis_print_rights F
+GLIBC_2.4 nis_print_table F
+GLIBC_2.4 nis_read_obj F
+GLIBC_2.4 nis_remove F
+GLIBC_2.4 nis_remove_entry F
+GLIBC_2.4 nis_removemember F
+GLIBC_2.4 nis_rmdir F
+GLIBC_2.4 nis_servstate F
+GLIBC_2.4 nis_sperrno F
+GLIBC_2.4 nis_sperror F
+GLIBC_2.4 nis_sperror_r F
+GLIBC_2.4 nis_stats F
+GLIBC_2.4 nis_verifygroup F
+GLIBC_2.4 nis_write_obj F
+GLIBC_2.4 readColdStartFile F
+GLIBC_2.4 writeColdStartFile F
+GLIBC_2.4 xdr_cback_data F
+GLIBC_2.4 xdr_domainname F
+GLIBC_2.4 xdr_keydat F
+GLIBC_2.4 xdr_mapname F
+GLIBC_2.4 xdr_obj_p F
+GLIBC_2.4 xdr_peername F
+GLIBC_2.4 xdr_valdat F
+GLIBC_2.4 xdr_yp_buf F
+GLIBC_2.4 xdr_ypall F
+GLIBC_2.4 xdr_ypbind_binding F
+GLIBC_2.4 xdr_ypbind_resp F
+GLIBC_2.4 xdr_ypbind_resptype F
+GLIBC_2.4 xdr_ypbind_setdom F
+GLIBC_2.4 xdr_ypdelete_args F
+GLIBC_2.4 xdr_ypmap_parms F
+GLIBC_2.4 xdr_ypmaplist F
+GLIBC_2.4 xdr_yppush_status F
+GLIBC_2.4 xdr_yppushresp_xfr F
+GLIBC_2.4 xdr_ypreq_key F
+GLIBC_2.4 xdr_ypreq_nokey F
+GLIBC_2.4 xdr_ypreq_xfr F
+GLIBC_2.4 xdr_ypresp_all F
+GLIBC_2.4 xdr_ypresp_key_val F
+GLIBC_2.4 xdr_ypresp_maplist F
+GLIBC_2.4 xdr_ypresp_master F
+GLIBC_2.4 xdr_ypresp_order F
+GLIBC_2.4 xdr_ypresp_val F
+GLIBC_2.4 xdr_ypresp_xfr F
+GLIBC_2.4 xdr_ypstat F
+GLIBC_2.4 xdr_ypupdate_args F
+GLIBC_2.4 xdr_ypxfrstat F
+GLIBC_2.4 yp_all F
+GLIBC_2.4 yp_bind F
+GLIBC_2.4 yp_first F
+GLIBC_2.4 yp_get_default_domain F
+GLIBC_2.4 yp_maplist F
+GLIBC_2.4 yp_master F
+GLIBC_2.4 yp_match F
+GLIBC_2.4 yp_next F
+GLIBC_2.4 yp_order F
+GLIBC_2.4 yp_unbind F
+GLIBC_2.4 yp_update F
+GLIBC_2.4 ypbinderr_string F
+GLIBC_2.4 yperr_string F
+GLIBC_2.4 ypprot_err F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
new file mode 100644
index 0000000000..91545c1542
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
@@ -0,0 +1,228 @@
+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.4 GLIBC_2.4 A
+GLIBC_2.4 _IO_flockfile F
+GLIBC_2.4 _IO_ftrylockfile F
+GLIBC_2.4 _IO_funlockfile F
+GLIBC_2.4 __close F
+GLIBC_2.4 __connect F
+GLIBC_2.4 __errno_location F
+GLIBC_2.4 __fcntl F
+GLIBC_2.4 __fork F
+GLIBC_2.4 __h_errno_location F
+GLIBC_2.4 __libc_allocate_rtsig F
+GLIBC_2.4 __libc_current_sigrtmax F
+GLIBC_2.4 __libc_current_sigrtmin F
+GLIBC_2.4 __lseek F
+GLIBC_2.4 __nanosleep F
+GLIBC_2.4 __open F
+GLIBC_2.4 __open64 F
+GLIBC_2.4 __pread64 F
+GLIBC_2.4 __pthread_cleanup_routine F
+GLIBC_2.4 __pthread_getspecific F
+GLIBC_2.4 __pthread_key_create F
+GLIBC_2.4 __pthread_mutex_destroy F
+GLIBC_2.4 __pthread_mutex_init F
+GLIBC_2.4 __pthread_mutex_lock F
+GLIBC_2.4 __pthread_mutex_trylock F
+GLIBC_2.4 __pthread_mutex_unlock F
+GLIBC_2.4 __pthread_mutexattr_destroy F
+GLIBC_2.4 __pthread_mutexattr_init F
+GLIBC_2.4 __pthread_mutexattr_settype F
+GLIBC_2.4 __pthread_once F
+GLIBC_2.4 __pthread_register_cancel F
+GLIBC_2.4 __pthread_register_cancel_defer F
+GLIBC_2.4 __pthread_rwlock_destroy F
+GLIBC_2.4 __pthread_rwlock_init F
+GLIBC_2.4 __pthread_rwlock_rdlock F
+GLIBC_2.4 __pthread_rwlock_tryrdlock F
+GLIBC_2.4 __pthread_rwlock_trywrlock F
+GLIBC_2.4 __pthread_rwlock_unlock F
+GLIBC_2.4 __pthread_rwlock_wrlock F
+GLIBC_2.4 __pthread_setspecific F
+GLIBC_2.4 __pthread_unregister_cancel F
+GLIBC_2.4 __pthread_unregister_cancel_restore F
+GLIBC_2.4 __pthread_unwind_next F
+GLIBC_2.4 __pwrite64 F
+GLIBC_2.4 __read F
+GLIBC_2.4 __res_state F
+GLIBC_2.4 __send F
+GLIBC_2.4 __sigaction F
+GLIBC_2.4 __vfork F
+GLIBC_2.4 __wait F
+GLIBC_2.4 __write F
+GLIBC_2.4 _pthread_cleanup_pop F
+GLIBC_2.4 _pthread_cleanup_pop_restore F
+GLIBC_2.4 _pthread_cleanup_push F
+GLIBC_2.4 _pthread_cleanup_push_defer F
+GLIBC_2.4 accept F
+GLIBC_2.4 close F
+GLIBC_2.4 connect F
+GLIBC_2.4 fcntl F
+GLIBC_2.4 flockfile F
+GLIBC_2.4 fork F
+GLIBC_2.4 fsync F
+GLIBC_2.4 ftrylockfile F
+GLIBC_2.4 funlockfile F
+GLIBC_2.4 longjmp F
+GLIBC_2.4 lseek F
+GLIBC_2.4 lseek64 F
+GLIBC_2.4 msync F
+GLIBC_2.4 nanosleep F
+GLIBC_2.4 open F
+GLIBC_2.4 open64 F
+GLIBC_2.4 pause F
+GLIBC_2.4 pread F
+GLIBC_2.4 pread64 F
+GLIBC_2.4 pthread_attr_destroy F
+GLIBC_2.4 pthread_attr_getaffinity_np F
+GLIBC_2.4 pthread_attr_getdetachstate F
+GLIBC_2.4 pthread_attr_getguardsize F
+GLIBC_2.4 pthread_attr_getinheritsched F
+GLIBC_2.4 pthread_attr_getschedparam F
+GLIBC_2.4 pthread_attr_getschedpolicy F
+GLIBC_2.4 pthread_attr_getscope F
+GLIBC_2.4 pthread_attr_getstack F
+GLIBC_2.4 pthread_attr_getstackaddr F
+GLIBC_2.4 pthread_attr_getstacksize F
+GLIBC_2.4 pthread_attr_init F
+GLIBC_2.4 pthread_attr_setaffinity_np F
+GLIBC_2.4 pthread_attr_setdetachstate F
+GLIBC_2.4 pthread_attr_setguardsize F
+GLIBC_2.4 pthread_attr_setinheritsched F
+GLIBC_2.4 pthread_attr_setschedparam F
+GLIBC_2.4 pthread_attr_setschedpolicy F
+GLIBC_2.4 pthread_attr_setscope F
+GLIBC_2.4 pthread_attr_setstack F
+GLIBC_2.4 pthread_attr_setstackaddr F
+GLIBC_2.4 pthread_attr_setstacksize F
+GLIBC_2.4 pthread_barrier_destroy F
+GLIBC_2.4 pthread_barrier_init F
+GLIBC_2.4 pthread_barrier_wait F
+GLIBC_2.4 pthread_barrierattr_destroy F
+GLIBC_2.4 pthread_barrierattr_getpshared F
+GLIBC_2.4 pthread_barrierattr_init F
+GLIBC_2.4 pthread_barrierattr_setpshared F
+GLIBC_2.4 pthread_cancel F
+GLIBC_2.4 pthread_cond_broadcast F
+GLIBC_2.4 pthread_cond_destroy F
+GLIBC_2.4 pthread_cond_init F
+GLIBC_2.4 pthread_cond_signal F
+GLIBC_2.4 pthread_cond_timedwait F
+GLIBC_2.4 pthread_cond_wait F
+GLIBC_2.4 pthread_condattr_destroy F
+GLIBC_2.4 pthread_condattr_getclock F
+GLIBC_2.4 pthread_condattr_getpshared F
+GLIBC_2.4 pthread_condattr_init F
+GLIBC_2.4 pthread_condattr_setclock F
+GLIBC_2.4 pthread_condattr_setpshared F
+GLIBC_2.4 pthread_create F
+GLIBC_2.4 pthread_detach F
+GLIBC_2.4 pthread_equal F
+GLIBC_2.4 pthread_exit F
+GLIBC_2.4 pthread_getaffinity_np F
+GLIBC_2.4 pthread_getattr_np F
+GLIBC_2.4 pthread_getconcurrency F
+GLIBC_2.4 pthread_getcpuclockid F
+GLIBC_2.4 pthread_getschedparam F
+GLIBC_2.4 pthread_getspecific F
+GLIBC_2.4 pthread_join F
+GLIBC_2.4 pthread_key_create F
+GLIBC_2.4 pthread_key_delete F
+GLIBC_2.4 pthread_kill F
+GLIBC_2.4 pthread_kill_other_threads_np F
+GLIBC_2.4 pthread_mutex_consistent_np F
+GLIBC_2.4 pthread_mutex_destroy F
+GLIBC_2.4 pthread_mutex_getprioceiling F
+GLIBC_2.4 pthread_mutex_init F
+GLIBC_2.4 pthread_mutex_lock F
+GLIBC_2.4 pthread_mutex_setprioceiling F
+GLIBC_2.4 pthread_mutex_timedlock F
+GLIBC_2.4 pthread_mutex_trylock F
+GLIBC_2.4 pthread_mutex_unlock F
+GLIBC_2.4 pthread_mutexattr_destroy F
+GLIBC_2.4 pthread_mutexattr_getkind_np F
+GLIBC_2.4 pthread_mutexattr_getprioceiling F
+GLIBC_2.4 pthread_mutexattr_getprotocol F
+GLIBC_2.4 pthread_mutexattr_getpshared F
+GLIBC_2.4 pthread_mutexattr_getrobust_np F
+GLIBC_2.4 pthread_mutexattr_gettype F
+GLIBC_2.4 pthread_mutexattr_init F
+GLIBC_2.4 pthread_mutexattr_setkind_np F
+GLIBC_2.4 pthread_mutexattr_setprioceiling F
+GLIBC_2.4 pthread_mutexattr_setprotocol F
+GLIBC_2.4 pthread_mutexattr_setpshared F
+GLIBC_2.4 pthread_mutexattr_setrobust_np F
+GLIBC_2.4 pthread_mutexattr_settype F
+GLIBC_2.4 pthread_once F
+GLIBC_2.4 pthread_rwlock_destroy F
+GLIBC_2.4 pthread_rwlock_init F
+GLIBC_2.4 pthread_rwlock_rdlock F
+GLIBC_2.4 pthread_rwlock_timedrdlock F
+GLIBC_2.4 pthread_rwlock_timedwrlock F
+GLIBC_2.4 pthread_rwlock_tryrdlock F
+GLIBC_2.4 pthread_rwlock_trywrlock F
+GLIBC_2.4 pthread_rwlock_unlock F
+GLIBC_2.4 pthread_rwlock_wrlock F
+GLIBC_2.4 pthread_rwlockattr_destroy F
+GLIBC_2.4 pthread_rwlockattr_getkind_np F
+GLIBC_2.4 pthread_rwlockattr_getpshared F
+GLIBC_2.4 pthread_rwlockattr_init F
+GLIBC_2.4 pthread_rwlockattr_setkind_np F
+GLIBC_2.4 pthread_rwlockattr_setpshared F
+GLIBC_2.4 pthread_self F
+GLIBC_2.4 pthread_setaffinity_np F
+GLIBC_2.4 pthread_setcancelstate F
+GLIBC_2.4 pthread_setcanceltype F
+GLIBC_2.4 pthread_setconcurrency F
+GLIBC_2.4 pthread_setschedparam F
+GLIBC_2.4 pthread_setschedprio F
+GLIBC_2.4 pthread_setspecific F
+GLIBC_2.4 pthread_sigmask F
+GLIBC_2.4 pthread_spin_destroy F
+GLIBC_2.4 pthread_spin_init F
+GLIBC_2.4 pthread_spin_lock F
+GLIBC_2.4 pthread_spin_trylock F
+GLIBC_2.4 pthread_spin_unlock F
+GLIBC_2.4 pthread_testcancel F
+GLIBC_2.4 pthread_timedjoin_np F
+GLIBC_2.4 pthread_tryjoin_np F
+GLIBC_2.4 pthread_yield F
+GLIBC_2.4 pwrite F
+GLIBC_2.4 pwrite64 F
+GLIBC_2.4 raise F
+GLIBC_2.4 read F
+GLIBC_2.4 recv F
+GLIBC_2.4 recvfrom F
+GLIBC_2.4 recvmsg F
+GLIBC_2.4 sem_close F
+GLIBC_2.4 sem_destroy F
+GLIBC_2.4 sem_getvalue F
+GLIBC_2.4 sem_init F
+GLIBC_2.4 sem_open F
+GLIBC_2.4 sem_post F
+GLIBC_2.4 sem_timedwait F
+GLIBC_2.4 sem_trywait F
+GLIBC_2.4 sem_unlink F
+GLIBC_2.4 sem_wait F
+GLIBC_2.4 send F
+GLIBC_2.4 sendmsg F
+GLIBC_2.4 sendto F
+GLIBC_2.4 sigaction F
+GLIBC_2.4 siglongjmp F
+GLIBC_2.4 sigwait F
+GLIBC_2.4 system F
+GLIBC_2.4 tcdrain F
+GLIBC_2.4 vfork F
+GLIBC_2.4 wait F
+GLIBC_2.4 waitpid F
+GLIBC_2.4 write F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/m68k/coldfire/libresolv.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/coldfire/libresolv.abilist
new file mode 100644
index 0000000000..c7023be532
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/coldfire/libresolv.abilist
@@ -0,0 +1,93 @@
+GLIBC_2.4 GLIBC_2.4 A
+GLIBC_2.4 __b64_ntop F
+GLIBC_2.4 __b64_pton F
+GLIBC_2.4 __dn_comp F
+GLIBC_2.4 __dn_count_labels F
+GLIBC_2.4 __dn_expand F
+GLIBC_2.4 __dn_skipname F
+GLIBC_2.4 __fp_nquery F
+GLIBC_2.4 __fp_query F
+GLIBC_2.4 __fp_resstat F
+GLIBC_2.4 __hostalias F
+GLIBC_2.4 __loc_aton F
+GLIBC_2.4 __loc_ntoa F
+GLIBC_2.4 __p_cdname F
+GLIBC_2.4 __p_cdnname F
+GLIBC_2.4 __p_class F
+GLIBC_2.4 __p_class_syms D 0x54
+GLIBC_2.4 __p_fqname F
+GLIBC_2.4 __p_fqnname F
+GLIBC_2.4 __p_option F
+GLIBC_2.4 __p_query F
+GLIBC_2.4 __p_rcode F
+GLIBC_2.4 __p_secstodate F
+GLIBC_2.4 __p_time F
+GLIBC_2.4 __p_type F
+GLIBC_2.4 __p_type_syms D 0x228
+GLIBC_2.4 __putlong F
+GLIBC_2.4 __putshort F
+GLIBC_2.4 __res_close F
+GLIBC_2.4 __res_dnok F
+GLIBC_2.4 __res_hnok F
+GLIBC_2.4 __res_hostalias F
+GLIBC_2.4 __res_isourserver F
+GLIBC_2.4 __res_mailok F
+GLIBC_2.4 __res_mkquery F
+GLIBC_2.4 __res_nameinquery F
+GLIBC_2.4 __res_nmkquery F
+GLIBC_2.4 __res_nquery F
+GLIBC_2.4 __res_nquerydomain F
+GLIBC_2.4 __res_nsearch F
+GLIBC_2.4 __res_nsend F
+GLIBC_2.4 __res_ownok F
+GLIBC_2.4 __res_queriesmatch F
+GLIBC_2.4 __res_query F
+GLIBC_2.4 __res_querydomain F
+GLIBC_2.4 __res_search F
+GLIBC_2.4 __res_send F
+GLIBC_2.4 __sym_ntop F
+GLIBC_2.4 __sym_ntos F
+GLIBC_2.4 __sym_ston F
+GLIBC_2.4 _gethtbyaddr F
+GLIBC_2.4 _gethtbyname F
+GLIBC_2.4 _gethtbyname2 F
+GLIBC_2.4 _gethtent F
+GLIBC_2.4 _getlong F
+GLIBC_2.4 _getshort F
+GLIBC_2.4 _res_opcodes D 0x40
+GLIBC_2.4 _sethtent F
+GLIBC_2.4 inet_net_ntop F
+GLIBC_2.4 inet_net_pton F
+GLIBC_2.4 inet_neta F
+GLIBC_2.4 res_gethostbyaddr F
+GLIBC_2.4 res_gethostbyname F
+GLIBC_2.4 res_gethostbyname2 F
+GLIBC_2.4 res_send_setqhook F
+GLIBC_2.4 res_send_setrhook 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/m68k/coldfire/librt.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
new file mode 100644
index 0000000000..b47aa0cc9c
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist
@@ -0,0 +1,42 @@
+GLIBC_2.4 GLIBC_2.4 A
+GLIBC_2.4 aio_cancel F
+GLIBC_2.4 aio_cancel64 F
+GLIBC_2.4 aio_error F
+GLIBC_2.4 aio_error64 F
+GLIBC_2.4 aio_fsync F
+GLIBC_2.4 aio_fsync64 F
+GLIBC_2.4 aio_init F
+GLIBC_2.4 aio_read F
+GLIBC_2.4 aio_read64 F
+GLIBC_2.4 aio_return F
+GLIBC_2.4 aio_return64 F
+GLIBC_2.4 aio_suspend F
+GLIBC_2.4 aio_suspend64 F
+GLIBC_2.4 aio_write F
+GLIBC_2.4 aio_write64 F
+GLIBC_2.4 clock_getcpuclockid F
+GLIBC_2.4 clock_getres F
+GLIBC_2.4 clock_gettime F
+GLIBC_2.4 clock_nanosleep F
+GLIBC_2.4 clock_settime F
+GLIBC_2.4 lio_listio F
+GLIBC_2.4 lio_listio64 F
+GLIBC_2.4 mq_close F
+GLIBC_2.4 mq_getattr F
+GLIBC_2.4 mq_notify F
+GLIBC_2.4 mq_open F
+GLIBC_2.4 mq_receive F
+GLIBC_2.4 mq_send F
+GLIBC_2.4 mq_setattr F
+GLIBC_2.4 mq_timedreceive F
+GLIBC_2.4 mq_timedsend F
+GLIBC_2.4 mq_unlink F
+GLIBC_2.4 shm_open F
+GLIBC_2.4 shm_unlink F
+GLIBC_2.4 timer_create F
+GLIBC_2.4 timer_delete F
+GLIBC_2.4 timer_getoverrun F
+GLIBC_2.4 timer_gettime F
+GLIBC_2.4 timer_settime F
+GLIBC_2.7 GLIBC_2.7 A
+GLIBC_2.7 __mq_open_2 F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/m68k/coldfire/libthread_db.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/coldfire/libthread_db.abilist
new file mode 100644
index 0000000000..4cffcd2238
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/coldfire/libthread_db.abilist
@@ -0,0 +1,41 @@
+GLIBC_2.4 GLIBC_2.4 A
+GLIBC_2.4 td_init F
+GLIBC_2.4 td_log F
+GLIBC_2.4 td_symbol_list F
+GLIBC_2.4 td_ta_clear_event F
+GLIBC_2.4 td_ta_delete F
+GLIBC_2.4 td_ta_enable_stats F
+GLIBC_2.4 td_ta_event_addr F
+GLIBC_2.4 td_ta_event_getmsg F
+GLIBC_2.4 td_ta_get_nthreads F
+GLIBC_2.4 td_ta_get_ph F
+GLIBC_2.4 td_ta_get_stats F
+GLIBC_2.4 td_ta_map_id2thr F
+GLIBC_2.4 td_ta_map_lwp2thr F
+GLIBC_2.4 td_ta_new F
+GLIBC_2.4 td_ta_reset_stats F
+GLIBC_2.4 td_ta_set_event F
+GLIBC_2.4 td_ta_setconcurrency F
+GLIBC_2.4 td_ta_thr_iter F
+GLIBC_2.4 td_ta_tsd_iter F
+GLIBC_2.4 td_thr_clear_event F
+GLIBC_2.4 td_thr_dbresume F
+GLIBC_2.4 td_thr_dbsuspend F
+GLIBC_2.4 td_thr_event_enable F
+GLIBC_2.4 td_thr_event_getmsg F
+GLIBC_2.4 td_thr_get_info F
+GLIBC_2.4 td_thr_getfpregs F
+GLIBC_2.4 td_thr_getgregs F
+GLIBC_2.4 td_thr_getxregs F
+GLIBC_2.4 td_thr_getxregsize F
+GLIBC_2.4 td_thr_set_event F
+GLIBC_2.4 td_thr_setfpregs F
+GLIBC_2.4 td_thr_setgregs F
+GLIBC_2.4 td_thr_setprio F
+GLIBC_2.4 td_thr_setsigpending F
+GLIBC_2.4 td_thr_setxregs F
+GLIBC_2.4 td_thr_sigsetmask F
+GLIBC_2.4 td_thr_tls_get_addr F
+GLIBC_2.4 td_thr_tlsbase F
+GLIBC_2.4 td_thr_tsd F
+GLIBC_2.4 td_thr_validate F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/m68k/coldfire/libutil.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/coldfire/libutil.abilist
new file mode 100644
index 0000000000..0b4f746094
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/coldfire/libutil.abilist
@@ -0,0 +1,7 @@
+GLIBC_2.4 GLIBC_2.4 A
+GLIBC_2.4 forkpty F
+GLIBC_2.4 login F
+GLIBC_2.4 login_tty F
+GLIBC_2.4 logout F
+GLIBC_2.4 logwtmp F
+GLIBC_2.4 openpty F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/m68k/coldfire/shlib-versions b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/coldfire/shlib-versions
new file mode 100644
index 0000000000..4309e4a368
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/coldfire/shlib-versions
@@ -0,0 +1 @@
+DEFAULT GLIBC_2.4
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/m68k/coldfire/sysdep.h b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/coldfire/sysdep.h
new file mode 100644
index 0000000000..e55e650cc9
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/coldfire/sysdep.h
@@ -0,0 +1,29 @@
+/* Copyright (C) 2010-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _LINUX_M68K_COLDFIRE_SYSDEP_H
+#define _LINUX_M68K_COLDFIRE_SYSDEP_H 1
+
+#include <sysdeps/unix/sysdep.h>
+#include <sysdeps/m68k/coldfire/sysdep.h>
+#include <sysdeps/unix/sysv/linux/m68k/sysdep.h>
+
+#define SYSCALL_ERROR_LOAD_GOT(reg) \
+ move.l &_GLOBAL_OFFSET_TABLE_@GOTPC, reg; \
+ lea (-6, %pc, reg), reg
+
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/m68k/configure b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/configure
new file mode 100644
index 0000000000..8e955387b7
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/configure
@@ -0,0 +1,9 @@
+# This file is generated from configure.ac by Autoconf. DO NOT EDIT!
+ case $machine in
+m68k/coldfire)
+ ;;
+*)
+ libc_cv_gcc_unwind_find_fde=yes
+ ;;
+esac
+ldd_rewrite_script=sysdeps/unix/sysv/linux/ldd-rewrite.sed
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/m68k/configure.ac b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/configure.ac
new file mode 100644
index 0000000000..c21ca9dd47
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/configure.ac
@@ -0,0 +1,10 @@
+sinclude(./aclocal.m4)dnl Autoconf lossage
+GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
+case $machine in
+m68k/coldfire)
+ ;;
+*)
+ libc_cv_gcc_unwind_find_fde=yes
+ ;;
+esac
+ldd_rewrite_script=sysdeps/unix/sysv/linux/ldd-rewrite.sed
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/m68k/dl-librecon.h b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/dl-librecon.h
new file mode 100644
index 0000000000..dbb4e75712
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/dl-librecon.h
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/i386/dl-librecon.h>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/m68k/dl-static.c b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/dl-static.c
new file mode 100644
index 0000000000..048572df7f
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/dl-static.c
@@ -0,0 +1,84 @@
+/* Variable initialization. M68K version.
+ Copyright (C) 2013-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <ldsodefs.h>
+
+#ifdef SHARED
+
+void
+_dl_var_init (void *array[])
+{
+ /* It has to match "variables" below. */
+ enum
+ {
+ DL_PAGESIZE = 0,
+ };
+
+ GLRO(dl_pagesize) = *(size_t *) array[DL_PAGESIZE];
+}
+
+#else
+
+static void *variables[] =
+{
+ &GLRO(dl_pagesize)
+};
+
+static void
+_dl_unprotect_relro (struct link_map *l)
+{
+ ElfW(Addr) start = ((l->l_addr + l->l_relro_addr)
+ & ~(GLRO(dl_pagesize) - 1));
+ ElfW(Addr) end = ((l->l_addr + l->l_relro_addr + l->l_relro_size)
+ & ~(GLRO(dl_pagesize) - 1));
+
+ if (start != end)
+ __mprotect ((void *) start, end - start, PROT_READ | PROT_WRITE);
+}
+
+void
+_dl_static_init (struct link_map *l)
+{
+ struct link_map *rtld_map = l;
+ struct r_scope_elem **scope;
+ const ElfW(Sym) *ref = NULL;
+ lookup_t loadbase;
+ void (*f) (void *[]);
+ size_t i;
+
+ loadbase = _dl_lookup_symbol_x ("_dl_var_init", l, &ref, l->l_local_scope,
+ NULL, 0, 1, NULL);
+
+ for (scope = l->l_local_scope; *scope != NULL; scope++)
+ for (i = 0; i < (*scope)->r_nlist; i++)
+ if ((*scope)->r_list[i] == loadbase)
+ {
+ rtld_map = (*scope)->r_list[i];
+ break;
+ }
+
+ if (ref != NULL)
+ {
+ f = (void (*) (void *[])) DL_SYMBOL_ADDRESS (loadbase, ref);
+ _dl_unprotect_relro (rtld_map);
+ f (variables);
+ _dl_protect_relro (rtld_map);
+ }
+}
+
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/m68k/fcntl.c b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/fcntl.c
new file mode 100644
index 0000000000..ea951bc4f9
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/fcntl.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/i386/fcntl.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/m68k/fxstat.c b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/fxstat.c
new file mode 100644
index 0000000000..4f219f0b9d
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/fxstat.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/i386/fxstat.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/m68k/fxstatat.c b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/fxstatat.c
new file mode 100644
index 0000000000..0f8b3135d8
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/fxstatat.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/i386/fxstatat.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/m68k/getdents64.c b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/getdents64.c
new file mode 100644
index 0000000000..0c75fb5a06
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/getdents64.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/i386/getdents64.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/m68k/getmsg.c b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/getmsg.c
new file mode 100644
index 0000000000..3a1fa08525
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/getmsg.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/i386/getmsg.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/m68k/getpagesize.c b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/getpagesize.c
new file mode 100644
index 0000000000..2233253793
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/getpagesize.c
@@ -0,0 +1,49 @@
+/* Copyright (C) 2000-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Andreas Schwab <schwab@suse.de>.
+
+ 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 <unistd.h>
+#include <sys/param.h>
+#include <errno.h>
+
+#include <ldsodefs.h>
+#include <sysdep.h>
+#include <sys/syscall.h>
+
+/* Return the system page size. */
+int
+__getpagesize (void)
+{
+#ifdef __NR_getpagesize
+ int result;
+#endif
+
+ if (GLRO(dl_pagesize) != 0)
+ return GLRO(dl_pagesize);
+
+#ifdef __NR_getpagesize
+ INTERNAL_SYSCALL_DECL (err);
+ result = INTERNAL_SYSCALL (getpagesize, err, 0);
+ /* The only possible error is ENOSYS. */
+ if (!INTERNAL_SYSCALL_ERROR_P (result, err))
+ return result;
+#endif
+
+ return 4096;
+}
+libc_hidden_def (__getpagesize)
+weak_alias (__getpagesize, getpagesize)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/m68k/getsysstats.c b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/getsysstats.c
new file mode 100644
index 0000000000..b919b1fe3e
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/getsysstats.c
@@ -0,0 +1,37 @@
+/* Determine various system internal values, Linux/m68k version.
+ Copyright (C) 2003-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Andreas Schwab <schwab@suse.de>
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+
+/* We need to define a special parser for /proc/cpuinfo. */
+#define GET_NPROCS_PARSER(FD, BUFFER, CP, RE, BUFFER_END, RESULT) \
+ do \
+ { \
+ (RESULT) = 0; \
+ /* Read all lines and count the lines starting with the string \
+ "CPU:". We don't have to fear extremely long lines since \
+ the kernel will not generate them. 8192 bytes are really \
+ enough. */ \
+ char *l; \
+ while ((l = next_line (FD, BUFFER, &CP, &RE, BUFFER_END)) != NULL) \
+ if (strncmp (l, "CPU:", 4) == 0) \
+ ++(RESULT); \
+ } \
+ while (0)
+
+#include <sysdeps/unix/sysv/linux/getsysstats.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/m68k/glob64.c b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/glob64.c
new file mode 100644
index 0000000000..82a9a296a7
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/glob64.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/i386/glob64.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/m68k/init-first.c b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/init-first.c
new file mode 100644
index 0000000000..227dead30e
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/init-first.c
@@ -0,0 +1,74 @@
+/* Initialization code run first thing by the ELF startup code. Linux/m68k.
+ Copyright (C) 2010-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Maxim Kuvyrkov <maxim@codesourcery.com>, 2010.
+
+ 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/>. */
+
+/* Note: linking in vDSO to a static binary requires changes to
+ the main GLIBC proper. Not yet implemented. */
+#ifdef SHARED
+
+#include <dl-vdso.h>
+#include <m68k-vdso.h>
+
+static inline void
+_libc_vdso_platform_setup (void)
+{
+ void *p;
+
+ PREPARE_VERSION (linux26, "LINUX_2.6", 61765110);
+
+ /* It may happen that rtld didn't initialize the vDSO, so fallback
+ to the syscall implementations if _dl_vdso_vsym returns NULL.
+ This may happen when a static executable dlopen's a dynamic library.
+ This really is nothing more than a workaround for rtld/csu
+ deficiency. Ideally, init code would setup the vDSO for static
+ binaries too. */
+
+ p = _dl_vdso_vsym ("__kernel_read_tp", &linux26);
+ if (p != NULL)
+ {
+ __vdso_read_tp = p;
+ __rtld___vdso_read_tp = p;
+ }
+ else
+ assert (__vdso_read_tp == (void *) __vdso_read_tp_stub);
+
+ p = _dl_vdso_vsym ("__kernel_atomic_cmpxchg_32", &linux26);
+ if (p != NULL)
+ {
+ __vdso_atomic_cmpxchg_32 = p;
+ __rtld___vdso_atomic_cmpxchg_32 = p;
+ }
+ else
+ assert (__vdso_atomic_cmpxchg_32
+ == (void *) __vdso_atomic_cmpxchg_32_stub);
+
+ p = _dl_vdso_vsym ("__kernel_atomic_barrier", &linux26);
+ if (p != NULL)
+ {
+ __vdso_atomic_barrier = p;
+ __rtld___vdso_atomic_barrier = p;
+ }
+ else
+ assert (__vdso_atomic_barrier == (void *) __vdso_atomic_barrier_stub);
+}
+
+#define VDSO_SETUP _libc_vdso_platform_setup
+
+#endif /* SHARED */
+
+#include <csu/init-first.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/m68k/kernel-features.h b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/kernel-features.h
new file mode 100644
index 0000000000..cdd5e6c935
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/kernel-features.h
@@ -0,0 +1,57 @@
+/* Set flags signalling availability of kernel features based on given
+ kernel version number.
+ Copyright (C) 2008-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+/* m68k uses socketcall. */
+#define __ASSUME_SOCKETCALL 1
+
+/* Direct socketcalls available with kernel 4.3. */
+#if __LINUX_KERNEL_VERSION >= 0x040300
+# define __ASSUME_SOCKET_SYSCALL 1
+# define __ASSUME_SOCKETPAIR_SYSCALL 1
+# define __ASSUME_BIND_SYSCALL 1
+# define __ASSUME_LISTEN_SYSCALL 1
+# define __ASSUME_GETSOCKOPT_SYSCALL 1
+# define __ASSUME_SETSOCKOPT_SYSCALL 1
+# define __ASSUME_GETSOCKNAME_SYSCALL 1
+# define __ASSUME_GETPEERNAME_SYSCALL 1
+# define __ASSUME_SHUTDOWN_SYSCALL 1
+#endif
+
+#include_next <kernel-features.h>
+
+#undef __ASSUME_ACCEPT_SYSCALL
+
+#if __LINUX_KERNEL_VERSION < 0x040300
+# undef __ASSUME_ACCEPT4_SYSCALL
+# undef __ASSUME_RECVMMSG_SYSCALL
+# undef __ASSUME_SENDMMSG_SYSCALL
+# undef __ASSUME_SENDMSG_SYSCALL
+# undef __ASSUME_RECVMSG_SYSCALL
+# undef __ASSUME_CONNECT_SYSCALL
+# undef __ASSUME_RECVFROM_SYSCALL
+# undef __ASSUME_SENDTO_SYSCALL
+#endif
+
+/* No support for PI futexes or robust mutexes before 3.10 for m68k. */
+#if __LINUX_KERNEL_VERSION < 0x030a00
+# undef __ASSUME_SET_ROBUST_LIST
+#endif
+
+/* m68k only supports ipc syscall. */
+#undef __ASSUME_DIRECT_SYSVIPC_SYSCALLS
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/m68k/ldconfig.h b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/ldconfig.h
new file mode 100644
index 0000000000..953f192bcd
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/ldconfig.h
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/i386/ldconfig.h>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/m68k/ldsodefs.h b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/ldsodefs.h
new file mode 100644
index 0000000000..93a18bd18b
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/ldsodefs.h
@@ -0,0 +1,32 @@
+/* Run-time dynamic linker data structures for loaded ELF shared objects. M68K.
+ Copyright (C) 2013-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _LDSODEFS_H
+
+/* Get the real definitions. */
+#include_next <ldsodefs.h>
+
+/* Now define our stuff. */
+
+/* We need special support to initialize DSO loaded for statically linked
+ binaries. */
+extern void _dl_static_init (struct link_map *map);
+#undef DL_STATIC_INIT
+#define DL_STATIC_INIT(map) _dl_static_init (map)
+
+#endif /* ldsodefs.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/m68k/libc-m68k-vdso.c b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/libc-m68k-vdso.c
new file mode 100644
index 0000000000..45982e99b9
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/libc-m68k-vdso.c
@@ -0,0 +1 @@
+#include "m68k-vdso.c"
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/m68k/localplt.data b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/localplt.data
new file mode 100644
index 0000000000..1a2acfdb93
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/localplt.data
@@ -0,0 +1,17 @@
+libc.so: _Unwind_Find_FDE
+libc.so: __m68k_read_tp
+libc.so: calloc
+libc.so: free
+libc.so: malloc
+libc.so: memalign
+libc.so: realloc
+libm.so: matherr
+# The main malloc is interposed into the dynamic linker, for
+# allocations after the initial link (when dlopen is used).
+ld.so: malloc
+ld.so: calloc
+ld.so: realloc
+ld.so: free
+# The TLS-enabled version of these functions is interposed from libc.so.
+ld.so: _dl_signal_error
+ld.so: _dl_catch_error
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/m68k/lockf64.c b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/lockf64.c
new file mode 100644
index 0000000000..a88f5a784a
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/lockf64.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/i386/lockf64.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/m68k/lxstat.c b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/lxstat.c
new file mode 100644
index 0000000000..0efa0aea49
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/lxstat.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/i386/lxstat.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/m68k/m680x0/Makefile b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/m680x0/Makefile
new file mode 100644
index 0000000000..91bd35800a
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/m680x0/Makefile
@@ -0,0 +1,3 @@
+ifeq ($(subdir),stdlib)
+gen-as-const-headers += ucontext_i.sym
+endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/m68k/m680x0/getcontext.S b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/m680x0/getcontext.S
new file mode 100644
index 0000000000..d8a0cc7e91
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/m680x0/getcontext.S
@@ -0,0 +1,63 @@
+/* Save current context.
+ 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>
+
+#include "ucontext_i.h"
+
+
+ENTRY(__getcontext)
+ /* Load address of the context data structure. */
+ move.l 4(%sp), %a0
+
+ /* Save the preserved registers and the return address. */
+ movem.l %d2-%d7, oGREGS+2*4(%a0)
+ movem.l %a2-%a6, oGREGS+10*4(%a0)
+ lea 4(%sp), %a1
+ move.l %a1, oSP(%a0)
+ move.l (%sp), oPC(%a0)
+ fmovem.l %fpsr/%fpcr/%fpiar, oFPREGS(%a0)
+ fmovem.x %fp2-%fp7, oFP2(%a0)
+ cfi_def_cfa (%a0, 0)
+ cfi_offset (%d2, oGREGS+2*4)
+ cfi_offset (%d3, oGREGS+3*4)
+ cfi_offset (%pc, oPC)
+
+ /* Save the current signal mask. */
+ lea oSIGMASK(%a0), %a1
+ move.l %a1, %d3
+ clr.l %d2
+ move.l #SIG_SETMASK, %d1
+ move.l #__NR_sigprocmask, %d0
+ trap #0
+ /* Restore registers. */
+ move.l oGREGS+2*4(%a0), %d2
+ cfi_restore (%d2)
+ move.l oGREGS+3*4(%a0), %d3
+ cfi_restore (%d3)
+ cfi_def_cfa (%sp, 4)
+ cfi_offset (%pc, -4)
+ cmp.l #-4095, %d0 /* Check %d0 for error. */
+ jcc SYSCALL_ERROR_LABEL /* Jump to error handler. */
+
+0: /* All done, return 0 for success. */
+ clr.l %d0
+ rts
+PSEUDO_END(__getcontext)
+
+weak_alias (__getcontext, getcontext)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/m68k/m680x0/ld.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/m680x0/ld.abilist
new file mode 100644
index 0000000000..3907c9da33
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/m680x0/ld.abilist
@@ -0,0 +1,13 @@
+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_addr F
+GLIBC_2.4 GLIBC_2.4 A
+GLIBC_2.4 __stack_chk_guard D 0x4
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/m68k/m680x0/libBrokenLocale.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/m680x0/libBrokenLocale.abilist
new file mode 100644
index 0000000000..4a56bb68a3
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/m680x0/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/m68k/m680x0/libanl.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/m680x0/libanl.abilist
new file mode 100644
index 0000000000..edabfb436e
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/m680x0/libanl.abilist
@@ -0,0 +1,5 @@
+GLIBC_2.2.3 GLIBC_2.2.3 A
+GLIBC_2.2.3 gai_cancel F
+GLIBC_2.2.3 gai_error F
+GLIBC_2.2.3 gai_suspend F
+GLIBC_2.2.3 getaddrinfo_a F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
new file mode 100644
index 0000000000..a36739d41c
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
@@ -0,0 +1,2288 @@
+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 0x1fe
+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 cacheflush 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 0x98
+GLIBC_2.1 _IO_2_1_stdin_ D 0x98
+GLIBC_2.1 _IO_2_1_stdout_ D 0x98
+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 __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 __signbitl 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 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 scalbln F
+GLIBC_2.1 scalblnf F
+GLIBC_2.1 scalblnl 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 __m68k_read_tp F
+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.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 glob64 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 __confstr_chk F
+GLIBC_2.4 __fgets_chk F
+GLIBC_2.4 __fgets_unlocked_chk F
+GLIBC_2.4 __fgetws_chk F
+GLIBC_2.4 __fgetws_unlocked_chk F
+GLIBC_2.4 __fwprintf_chk F
+GLIBC_2.4 __fxstatat F
+GLIBC_2.4 __fxstatat64 F
+GLIBC_2.4 __getcwd_chk F
+GLIBC_2.4 __getdomainname_chk F
+GLIBC_2.4 __getgroups_chk F
+GLIBC_2.4 __gethostname_chk F
+GLIBC_2.4 __getlogin_r_chk F
+GLIBC_2.4 __getwd_chk F
+GLIBC_2.4 __mbsnrtowcs_chk F
+GLIBC_2.4 __mbsrtowcs_chk F
+GLIBC_2.4 __mbstowcs_chk F
+GLIBC_2.4 __pread64_chk F
+GLIBC_2.4 __pread_chk F
+GLIBC_2.4 __ptsname_r_chk F
+GLIBC_2.4 __read_chk F
+GLIBC_2.4 __readlink_chk F
+GLIBC_2.4 __realpath_chk F
+GLIBC_2.4 __recv_chk F
+GLIBC_2.4 __recvfrom_chk F
+GLIBC_2.4 __stack_chk_fail F
+GLIBC_2.4 __stpncpy_chk F
+GLIBC_2.4 __swprintf_chk F
+GLIBC_2.4 __syslog_chk F
+GLIBC_2.4 __ttyname_r_chk F
+GLIBC_2.4 __vfwprintf_chk F
+GLIBC_2.4 __vswprintf_chk F
+GLIBC_2.4 __vsyslog_chk F
+GLIBC_2.4 __vwprintf_chk F
+GLIBC_2.4 __wcpcpy_chk F
+GLIBC_2.4 __wcpncpy_chk F
+GLIBC_2.4 __wcrtomb_chk F
+GLIBC_2.4 __wcscat_chk F
+GLIBC_2.4 __wcscpy_chk F
+GLIBC_2.4 __wcsncat_chk F
+GLIBC_2.4 __wcsncpy_chk F
+GLIBC_2.4 __wcsnrtombs_chk F
+GLIBC_2.4 __wcsrtombs_chk F
+GLIBC_2.4 __wcstombs_chk F
+GLIBC_2.4 __wctomb_chk F
+GLIBC_2.4 __wmemcpy_chk F
+GLIBC_2.4 __wmemmove_chk F
+GLIBC_2.4 __wmempcpy_chk F
+GLIBC_2.4 __wmemset_chk F
+GLIBC_2.4 __wprintf_chk F
+GLIBC_2.4 __xmknodat F
+GLIBC_2.4 _sys_errlist D 0x210
+GLIBC_2.4 _sys_nerr D 0x4
+GLIBC_2.4 eaccess F
+GLIBC_2.4 faccessat F
+GLIBC_2.4 fchmodat F
+GLIBC_2.4 fchownat F
+GLIBC_2.4 fdopendir F
+GLIBC_2.4 futimesat F
+GLIBC_2.4 inotify_add_watch F
+GLIBC_2.4 inotify_init F
+GLIBC_2.4 inotify_rm_watch F
+GLIBC_2.4 linkat F
+GLIBC_2.4 mkdirat F
+GLIBC_2.4 mkfifoat F
+GLIBC_2.4 open_wmemstream F
+GLIBC_2.4 openat F
+GLIBC_2.4 openat64 F
+GLIBC_2.4 ppoll F
+GLIBC_2.4 readlinkat F
+GLIBC_2.4 renameat F
+GLIBC_2.4 symlinkat F
+GLIBC_2.4 sys_errlist D 0x210
+GLIBC_2.4 sys_nerr D 0x4
+GLIBC_2.4 unlinkat F
+GLIBC_2.4 unshare F
+GLIBC_2.5 GLIBC_2.5 A
+GLIBC_2.5 __readlinkat_chk F
+GLIBC_2.5 inet6_opt_append F
+GLIBC_2.5 inet6_opt_find F
+GLIBC_2.5 inet6_opt_finish F
+GLIBC_2.5 inet6_opt_get_val F
+GLIBC_2.5 inet6_opt_init F
+GLIBC_2.5 inet6_opt_next F
+GLIBC_2.5 inet6_opt_set_val F
+GLIBC_2.5 inet6_rth_add F
+GLIBC_2.5 inet6_rth_getaddr F
+GLIBC_2.5 inet6_rth_init F
+GLIBC_2.5 inet6_rth_reverse F
+GLIBC_2.5 inet6_rth_segments F
+GLIBC_2.5 inet6_rth_space F
+GLIBC_2.5 splice F
+GLIBC_2.5 tee F
+GLIBC_2.5 vmsplice F
+GLIBC_2.6 GLIBC_2.6 A
+GLIBC_2.6 __sched_cpucount F
+GLIBC_2.6 epoll_pwait F
+GLIBC_2.6 futimens F
+GLIBC_2.6 sched_getcpu F
+GLIBC_2.6 strerror_l F
+GLIBC_2.6 sync_file_range F
+GLIBC_2.6 utimensat F
+GLIBC_2.7 GLIBC_2.7 A
+GLIBC_2.7 __fread_chk F
+GLIBC_2.7 __fread_unlocked_chk F
+GLIBC_2.7 __isoc99_fscanf F
+GLIBC_2.7 __isoc99_fwscanf F
+GLIBC_2.7 __isoc99_scanf F
+GLIBC_2.7 __isoc99_sscanf F
+GLIBC_2.7 __isoc99_swscanf F
+GLIBC_2.7 __isoc99_vfscanf F
+GLIBC_2.7 __isoc99_vfwscanf F
+GLIBC_2.7 __isoc99_vscanf F
+GLIBC_2.7 __isoc99_vsscanf F
+GLIBC_2.7 __isoc99_vswscanf F
+GLIBC_2.7 __isoc99_vwscanf F
+GLIBC_2.7 __isoc99_wscanf F
+GLIBC_2.7 __open64_2 F
+GLIBC_2.7 __open_2 F
+GLIBC_2.7 __openat64_2 F
+GLIBC_2.7 __openat_2 F
+GLIBC_2.7 __sched_cpualloc F
+GLIBC_2.7 __sched_cpufree F
+GLIBC_2.7 eventfd F
+GLIBC_2.7 eventfd_read F
+GLIBC_2.7 eventfd_write F
+GLIBC_2.7 mkostemp F
+GLIBC_2.7 mkostemp64 F
+GLIBC_2.7 signalfd F
+GLIBC_2.8 GLIBC_2.8 A
+GLIBC_2.8 __asprintf_chk F
+GLIBC_2.8 __dprintf_chk F
+GLIBC_2.8 __obstack_printf_chk F
+GLIBC_2.8 __obstack_vprintf_chk F
+GLIBC_2.8 __vasprintf_chk F
+GLIBC_2.8 __vdprintf_chk F
+GLIBC_2.8 qsort_r F
+GLIBC_2.8 timerfd_create F
+GLIBC_2.8 timerfd_gettime F
+GLIBC_2.8 timerfd_settime F
+GLIBC_2.9 GLIBC_2.9 A
+GLIBC_2.9 dup3 F
+GLIBC_2.9 epoll_create1 F
+GLIBC_2.9 inotify_init1 F
+GLIBC_2.9 pipe2 F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/m68k/m680x0/libcrypt.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/m680x0/libcrypt.abilist
new file mode 100644
index 0000000000..4db2639336
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/m680x0/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/m68k/m680x0/libdl.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/m680x0/libdl.abilist
new file mode 100644
index 0000000000..5536f6e0a9
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/m680x0/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/m68k/m680x0/libm.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist
new file mode 100644
index 0000000000..f3de018cd9
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist
@@ -0,0 +1,474 @@
+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 __fpclassifyl F
+GLIBC_2.1 __signbit F
+GLIBC_2.1 __signbitf F
+GLIBC_2.1 __signbitl 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 exp2l 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 feclearexcept F
+GLIBC_2.2 fedisableexcept F
+GLIBC_2.2 feenableexcept F
+GLIBC_2.2 fegetenv F
+GLIBC_2.2 fegetexcept F
+GLIBC_2.2 fegetexceptflag F
+GLIBC_2.2 feraiseexcept F
+GLIBC_2.2 fesetenv F
+GLIBC_2.2 fesetexceptflag F
+GLIBC_2.2 feupdateenv 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 __iscanonicall F
+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
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/m68k/m680x0/libnsl.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/m680x0/libnsl.abilist
new file mode 100644
index 0000000000..a23db2aeaf
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/m680x0/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/m68k/m680x0/libpthread.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
new file mode 100644
index 0000000000..8f9c3254be
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
@@ -0,0 +1,257 @@
+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.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/m68k/m680x0/libresolv.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/m680x0/libresolv.abilist
new file mode 100644
index 0000000000..4d50e7c8c6
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/m680x0/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/m68k/m680x0/librt.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist
new file mode 100644
index 0000000000..15e4418863
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/m680x0/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/m68k/m680x0/libthread_db.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/m680x0/libthread_db.abilist
new file mode 100644
index 0000000000..a8a8c2c68d
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/m680x0/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/m68k/m680x0/libutil.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/m680x0/libutil.abilist
new file mode 100644
index 0000000000..89c67755c4
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/m680x0/libutil.abilist
@@ -0,0 +1,7 @@
+GLIBC_2.0 GLIBC_2.0 A
+GLIBC_2.0 forkpty F
+GLIBC_2.0 login F
+GLIBC_2.0 login_tty F
+GLIBC_2.0 logout F
+GLIBC_2.0 logwtmp F
+GLIBC_2.0 openpty F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/m68k/m680x0/makecontext.S b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/m680x0/makecontext.S
new file mode 100644
index 0000000000..59fe3a3b2d
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/m680x0/makecontext.S
@@ -0,0 +1,103 @@
+/* Create new context.
+ 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>
+
+#include "ucontext_i.h"
+
+
+ENTRY(__makecontext)
+ move.l 4(%sp), %a0
+
+ /* Get the address of the function we are supposed to run. */
+ move.l 8(%sp), oPC(%a0)
+
+ /* Compute the address of the stack. The information comes from
+ to us_stack element. */
+ move.l oSS_SP(%a0), %a1
+ add.l oSS_SIZE(%a0), %a1
+
+ /* Remember the number of parameters for the exit handler since
+ it has to remove them. We store the number in the D7 register
+ which the function we will call must preserve. */
+ move.l 12(%sp), %d1
+ move.l %d1, oGREGS+7*4(%a0)
+
+ /* Make room on the new stack for the parameters.
+ Room for the arguments, return address (== 1f) and
+ oLINK pointer is needed. */
+ neg.l %d1
+ lea -8(%a1,%d1.l*4), %a1
+ neg.l %d1
+
+ /* Store the future stack pointer. */
+ move.l %a1, oSP(%a0)
+
+ /* Put the next context on the new stack (from the uc_link
+ element). */
+ move.l oLINK(%a0), 4(%a1,%d1.l*4)
+
+ /* Copy all the parameters. */
+1: subq.l #1,%d1
+ jmi 2f
+ move.l 16(%sp,%d1.l*4), 4(%a1,%d1.l*4)
+ jra 1b
+2:
+
+ /* If the function we call returns we must continue with the
+ context which is given in the uc_link element. To do this
+ set the return address for the function the user provides
+ to a little bit of helper code which does the magic (see
+ below). */
+ lea 1f(%pc), %a0
+ move.l %a0, (%a1)
+ /* 'makecontext' returns no value. */
+ rts
+
+ /* This is the helper code which gets called if a function which
+ is registered with 'makecontext' returns. In this case we
+ have to install the context listed in the uc_link element of
+ the context 'makecontext' manipulated at the time of the
+ 'makecontext' call. If the pointer is NULL the process must
+ terminate.
+ Make sure to separate the return label from the previous unwind
+ region, because the unwinder uses ra-1 to find the FDE. */
+ cfi_endproc
+ nop
+1:
+ /* This removes the parameters passed to the function given to
+ 'makecontext' from the stack. D7 contains the number of
+ parameters (see above). */
+ lea (%sp,%d7.l*4), %sp
+
+ tst.l (%sp) /* Check the next context. */
+ jeq 2f /* If it is zero exit. */
+
+ jbsr JUMPTARGET(__setcontext)
+ /* If this returns (which can happen if the syscall fails) we'll
+ exit the program with the return error value (-1). */
+
+ move.l %d0, (%sp)
+2: jbsr HIDDEN_JUMPTARGET(exit)
+ /* The 'exit' call should never return. In case it does cause
+ the process to terminate. */
+ illegal
+ cfi_startproc
+END(__makecontext)
+
+weak_alias (__makecontext, makecontext)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/m68k/m680x0/setcontext.S b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/m680x0/setcontext.S
new file mode 100644
index 0000000000..29ac7df9b3
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/m680x0/setcontext.S
@@ -0,0 +1,94 @@
+/* Install given context.
+ 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>
+
+#include "ucontext_i.h"
+
+ENTRY(__setcontext)
+ /* Load address of the context data structure. */
+ move.l 4(%sp), %a0
+
+ /* Get the current signal mask. Note that we preserve D2/D3 in case
+ the system call fails and we return from the function with an
+ error. */
+ move.l %d3, -(%sp)
+ cfi_adjust_cfa_offset (4)
+ cfi_rel_offset (%d3, 0)
+ move.l %d2, -(%sp)
+ cfi_adjust_cfa_offset (4)
+ cfi_rel_offset (%d2, 0)
+ clr.l %d3
+ lea oSIGMASK(%a0), %a1
+ move.l %a1, %d2
+ move.l #SIG_SETMASK, %d1
+ move.l #__NR_sigprocmask, %d0
+ trap #0
+ cmp.l #-4095, %d0 /* Check %d0 for error. */
+ jcs 0f
+ move.l (%sp)+, %d2
+ cfi_adjust_cfa_offset (-4)
+ cfi_restore (d2)
+ move.l (%sp)+, %d3
+ cfi_adjust_cfa_offset (-4)
+ cfi_restore (d3)
+ jra SYSCALL_ERROR_LABEL /* Jump to error handler if error. */
+
+0: /* Load the new stack pointer. */
+ move.l oSP(%a0), %sp
+ cfi_def_cfa (%a0, 0)
+ cfi_offset (%d2, oGREGS+2*4)
+ cfi_offset (%d3, oGREGS+3*4)
+ cfi_offset (%d4, oGREGS+4*4)
+ cfi_offset (%d5, oGREGS+5*4)
+ cfi_offset (%d6, oGREGS+6*4)
+ cfi_offset (%d7, oGREGS+7*4)
+ cfi_offset (%a2, oGREGS+10*4)
+ cfi_offset (%a3, oGREGS+11*4)
+ cfi_offset (%a4, oGREGS+12*4)
+ cfi_offset (%a5, oGREGS+13*4)
+ cfi_offset (%a6, oGREGS+14*4)
+ cfi_offset (%fp2, oFP2+0*12)
+ cfi_offset (%fp3, oFP2+1*12)
+ cfi_offset (%fp4, oFP2+2*12)
+ cfi_offset (%fp5, oFP2+3*12)
+ cfi_offset (%fp6, oFP2+4*12)
+ cfi_offset (%fp7, oFP2+5*12)
+ cfi_offset (%pc, oPC)
+
+ /* Load the values of all the preserved registers (except SP). */
+ movem.l oGREGS+2*4(%a0), %d2-%d7
+ movem.l oGREGS+10*4(%a0), %a2-%a6
+ fmovem.l oFPREGS(%a0), %fpsr/%fpcr/%fpiar
+ fmovem.x oFP2(%a0), %fp2-%fp7
+ clr.l %d0
+
+ /* Fetch the address to return to. */
+ movl oPC(%a0), %a1
+
+ /* End FDE here, we fall into another context. */
+ cfi_endproc
+ cfi_startproc
+ cfi_register (%pc, %a1)
+
+ jmp (%a1)
+
+ cfi_offset (%pc, -4)
+PSEUDO_END(__setcontext)
+
+weak_alias (__setcontext, setcontext)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/m68k/m680x0/swapcontext.S b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/m680x0/swapcontext.S
new file mode 100644
index 0000000000..b36a5db21c
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/m680x0/swapcontext.S
@@ -0,0 +1,108 @@
+/* Save current context and install the given one.
+ 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>
+
+#include "ucontext_i.h"
+
+
+ENTRY(__swapcontext)
+ /* Load address of the context data structure we save in. */
+ move.l 4(%sp), %a0
+
+ /* Save the preserved registers and the return address. */
+ movem.l %d2-%d7, oGREGS+2*4(%a0)
+ movem.l %a2-%a6, oGREGS+10*4(%a0)
+ lea 4(%sp), %a1
+ move.l %a1, oSP(%a0)
+ move.l (%sp), oPC(%a0)
+ fmovem.l %fpsr/%fpcr/%fpiar, oFPREGS(%a0)
+ fmovem.x %fp2-%fp7, oFP2(%a0)
+ cfi_def_cfa (%a0, 0)
+ cfi_offset (%d2, oGREGS+2*4)
+ cfi_offset (%d3, oGREGS+3*4)
+ cfi_offset (%a2, oGREGS+10*4)
+ cfi_offset (%pc, oPC)
+
+ /* Load address of the context data structure we have to load. */
+ move.l 8(%sp), %a1
+
+ /* Save the current signal mask and install the new one. */
+ lea oSIGMASK(%a0), %a2
+ move.l %a2, %d3
+ lea oSIGMASK(%a1), %a2
+ move.l %a2, %d2
+ move.l #SIG_SETMASK, %d1
+ move.l #__NR_sigprocmask, %d0
+ trap #0
+ cmp.l #-4095, %d0 /* Check %d0 for error. */
+ jcs 0f
+ /* Restore registers. */
+ move.l oGREGS+2*4(%a0), %d2
+ cfi_restore (%d2)
+ move.l oGREGS+3*4(%a0), %d3
+ cfi_restore (%d3)
+ move.l oGREGS+10*4(%a0), %a2
+ cfi_restore (%a2)
+ jra SYSCALL_ERROR_LABEL /* Jump to error handler. */
+
+0: /* Load the new stack pointer. */
+ move.l oSP(%a1), %sp
+ cfi_def_cfa (%a1, 0)
+ cfi_offset (%d2, oGREGS+2*4)
+ cfi_offset (%d3, oGREGS+3*4)
+ cfi_offset (%d4, oGREGS+4*4)
+ cfi_offset (%d5, oGREGS+5*4)
+ cfi_offset (%d6, oGREGS+6*4)
+ cfi_offset (%d7, oGREGS+7*4)
+ cfi_offset (%a2, oGREGS+10*4)
+ cfi_offset (%a3, oGREGS+11*4)
+ cfi_offset (%a4, oGREGS+12*4)
+ cfi_offset (%a5, oGREGS+13*4)
+ cfi_offset (%a6, oGREGS+14*4)
+ cfi_offset (%fp2, oFP2+0*12)
+ cfi_offset (%fp3, oFP2+1*12)
+ cfi_offset (%fp4, oFP2+2*12)
+ cfi_offset (%fp5, oFP2+3*12)
+ cfi_offset (%fp6, oFP2+4*12)
+ cfi_offset (%fp7, oFP2+5*12)
+ cfi_offset (%pc, oPC)
+
+ /* Load the values of all the preserved registers (except SP). */
+ movem.l oGREGS+2*4(%a1), %d2-%d7
+ movem.l oGREGS+10*4(%a1), %a2-%a6
+ fmovem.l oFPREGS(%a1), %fpsr/%fpcr/%fpiar
+ fmovem.x oFP2(%a1), %fp2-%fp7
+
+ /* Clear D0 to indicate success. */
+ clr.l %d0
+
+ /* Fetch the address to return to. */
+ move.l oPC(%a1), %a0
+
+ /* End FDE here, we fall into another context. */
+ cfi_endproc
+ cfi_startproc
+ cfi_register (%pc, %a0)
+
+ jmp (%a0)
+
+ cfi_offset (%pc, -4)
+PSEUDO_END(__swapcontext)
+
+weak_alias (__swapcontext, swapcontext)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/m68k/m680x0/sysdep.h b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/m680x0/sysdep.h
new file mode 100644
index 0000000000..e3848f684b
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/m680x0/sysdep.h
@@ -0,0 +1,28 @@
+/* Copyright (C) 2010-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _LINUX_M68K_M680X0_SYSDEP_H
+#define _LINUX_M68K_M680X0_SYSDEP_H 1
+
+#include <sysdeps/unix/sysdep.h>
+#include <sysdeps/m68k/m680x0/sysdep.h>
+#include <sysdeps/unix/sysv/linux/m68k/sysdep.h>
+
+#define SYSCALL_ERROR_LOAD_GOT(reg) \
+ lea (_GLOBAL_OFFSET_TABLE_@GOTPC, %pc), reg
+
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/m68k/m680x0/ucontext_i.sym b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/m680x0/ucontext_i.sym
new file mode 100644
index 0000000000..46bd4bf15f
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/m680x0/ucontext_i.sym
@@ -0,0 +1,20 @@
+#include <stddef.h>
+#include <signal.h>
+#include <sys/ucontext.h>
+
+--
+
+SIG_SETMASK
+
+#define ucontext(member) offsetof (ucontext_t, member)
+#define mcontext(member) ucontext (uc_mcontext.member)
+
+oLINK ucontext (uc_link)
+oSS_SP ucontext (uc_stack.ss_sp)
+oSS_SIZE ucontext (uc_stack.ss_size)
+oGREGS mcontext (gregs)
+oSP mcontext (gregs[R_SP])
+oPC mcontext (gregs[R_PC])
+oFPREGS mcontext (fpregs)
+oFP2 mcontext (fpregs.f_fpregs[2])
+oSIGMASK ucontext (uc_sigmask)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/m68k/m68k-helpers.S b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/m68k-helpers.S
new file mode 100644
index 0000000000..8752f1c632
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/m68k-helpers.S
@@ -0,0 +1,95 @@
+/* Copyright (C) 2010-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Maxim Kuvyrkov <maxim@codesourcery.com>, 2010.
+
+ 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.
+
+ In addition to the permissions in the GNU Lesser General Public
+ License, the Free Software Foundation gives you unlimited
+ permission to link the compiled version of this file with other
+ programs, and to distribute those programs without any restriction
+ coming from the use of this file. (The GNU Lesser General Public
+ License restrictions do apply in other respects; for example, they
+ cover modification of the file, and distribution when not linked
+ into another program.)
+
+ Note that people who make modified versions of this file are not
+ obligated to grant this special exception for their modified
+ versions; it is their choice whether to do so. The GNU Lesser
+ General Public License gives permission to release a modified
+ version without this exception; this exception also makes it
+ possible to release a modified version which carries forward this
+ exception.
+
+ 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 <m68k-vdso.h>
+
+ .text
+
+ .hidden __vdso_read_tp_stub
+ENTRY (__vdso_read_tp_stub)
+ move.l #__NR_get_thread_area, %d0
+ trap #0
+ move.l %d0, %a0
+ rts
+END (__vdso_read_tp_stub)
+
+# ifdef SHARED
+/* GCC will emit calls to this routine. Linux has an
+ equivalent helper function (which clobbers fewer registers than
+ a normal function call) in a vdso; tail call to the
+ helper. */
+# if IS_IN (rtld)
+/* rtld gets a hidden copy of __m68k_read_tp. */
+ .hidden __m68k_read_tp
+# endif
+ENTRY (__m68k_read_tp)
+ LOAD_GOT (%a0)
+ move.l M68K_VDSO_SYMBOL (__vdso_read_tp)@GOT(%a0), %a0
+ move.l (%a0), %a0
+ jmp (%a0)
+END (__m68k_read_tp)
+
+/* The following two stubs are for macros in atomic.h, they can't
+ clobber anything. */
+
+ .hidden __vdso_atomic_cmpxchg_32_stub
+ENTRY (__vdso_atomic_cmpxchg_32_stub)
+ move.l %d2, -(%sp)
+ cfi_adjust_cfa_offset (4)
+ cfi_rel_offset (%d2, 0)
+ move.l %d0, %d2
+ move.l #SYS_ify (atomic_cmpxchg_32), %d0
+ trap #0
+ move.l (%sp)+, %d2
+ cfi_adjust_cfa_offset (-4)
+ cfi_restore (%d2)
+ rts
+END (__vdso_atomic_cmpxchg_32_stub)
+
+ .hidden __vdso_atomic_barrier_stub
+ENTRY (__vdso_atomic_barrier_stub)
+ move.l %d0, -(%sp)
+ cfi_adjust_cfa_offset (4)
+ move.l #SYS_ify (atomic_barrier), %d0
+ trap #0
+ move.l (%sp)+, %d0
+ cfi_adjust_cfa_offset (-4)
+ rts
+END (__vdso_atomic_barrier_stub)
+# else /* !SHARED */
+/* If the vDSO is not available, use a syscall to get TP. */
+ strong_alias (__vdso_read_tp_stub, __m68k_read_tp)
+# endif /* SHARED */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/m68k/m68k-vdso.c b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/m68k-vdso.c
new file mode 100644
index 0000000000..f346dac077
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/m68k-vdso.c
@@ -0,0 +1,34 @@
+/* Copyright (C) 2010-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Maxim Kuvyrkov <maxim@codesourcery.com>, 2010.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifdef SHARED
+
+#include <m68k-vdso.h>
+
+/* Because these pointers are used from other libraries than libc,
+ they are exported at GLIBC_PRIVATE version.
+ We initialize them to syscall implementation so that they will be ready
+ to use from the very beginning. */
+void * M68K_VDSO_SYMBOL (__vdso_read_tp)
+= (void *) __vdso_read_tp_stub;
+void * M68K_VDSO_SYMBOL (__vdso_atomic_cmpxchg_32)
+= (void *) __vdso_atomic_cmpxchg_32_stub;
+void * M68K_VDSO_SYMBOL (__vdso_atomic_barrier)
+= (void *) __vdso_atomic_barrier_stub;
+
+#endif /* SHARED */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/m68k/m68k-vdso.h b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/m68k-vdso.h
new file mode 100644
index 0000000000..cf67af7dc2
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/m68k-vdso.h
@@ -0,0 +1,60 @@
+/* Resolve function pointers to VDSO functions.
+ Copyright (C) 2010-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Maxim Kuvyrkov <maxim@codesourcery.com>, 2010.
+
+ 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 _M68K_VDSO_H
+#define _M68K_VDSO_H
+
+#ifdef SHARED
+
+# if IS_IN (rtld)
+# define M68K_VDSO_SYMBOL(name) __rtld_##name
+# define STR_M68K_VDSO_SYMBOL(name) "__rtld_" #name
+# else
+# define M68K_VDSO_SYMBOL(name) name
+# define STR_M68K_VDSO_SYMBOL(name) #name
+# endif
+
+# ifndef __ASSEMBLER__
+
+/* We define __rtld_* copies for rtld.
+ We need them visible in libc to initialize. */
+# if IS_IN (rtld) || IS_IN (libc)
+extern void *__rtld___vdso_read_tp;
+extern void *__rtld___vdso_atomic_cmpxchg_32;
+extern void *__rtld___vdso_atomic_barrier;
+
+/* These stubs are meant to be invoked only from the assembly. */
+extern void __vdso_read_tp_stub (void);
+extern void __vdso_atomic_cmpxchg_32_stub (void);
+extern void __vdso_atomic_barrier_stub (void);
+# endif /* IS_IN (rtld) || IS_IN (libc) */
+
+/* RTLD should only use its own copies. */
+# if !IS_IN (rtld)
+extern void *__vdso_read_tp;
+extern void *__vdso_atomic_cmpxchg_32;
+extern void *__vdso_atomic_barrier;
+# endif /* !IS_IN (rtld) */
+
+# endif /* !__ASSEMBLER__ */
+
+#endif /* SHARED */
+
+#endif /* _M68K_VDSO_H */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/m68k/mmap_internal.h b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/mmap_internal.h
new file mode 100644
index 0000000000..bd8bd3843b
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/mmap_internal.h
@@ -0,0 +1,29 @@
+/* Common mmap definition for Linux implementation. Linux/m68k version.
+ Copyright (C) 2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef MMAP_M68K_INTERNAL_LINUX_H
+#define MMAP_M68K_INTERNAL_LINUX_H
+
+/* ColdFire and Sun 3 kernels have PAGE_SHIFT set to 13 and expect
+ mmap2 offset to be provided in 8K pages. Determine the shift
+ dynamically with getpagesize. */
+#define MMAP2_PAGE_SHIFT -1
+
+#include_next <mmap_internal.h>
+
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/m68k/mremap.S b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/mremap.S
new file mode 100644
index 0000000000..01be848f45
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/mremap.S
@@ -0,0 +1,28 @@
+/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+
+/* The mremap system call is special because it needs to return
+ its value in register %a0. */
+
+ .text
+PSEUDO (__mremap, mremap, 5)
+ move.l %d0, %a0
+ rts
+PSEUDO_END (__mremap)
+weak_alias (__mremap, mremap)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/m68k/pt-vfork.c b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/pt-vfork.c
new file mode 100644
index 0000000000..5fbc6526aa
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/pt-vfork.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/aarch64/pt-vfork.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/m68k/putmsg.c b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/putmsg.c
new file mode 100644
index 0000000000..ebc1680ca7
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/putmsg.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/i386/putmsg.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/m68k/readdir64.c b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/readdir64.c
new file mode 100644
index 0000000000..2ea26dd409
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/readdir64.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/i386/readdir64.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/m68k/readdir64_r.c b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/readdir64_r.c
new file mode 100644
index 0000000000..9f54f897e3
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/readdir64_r.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/i386/readdir64_r.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/m68k/register-dump.h b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/register-dump.h
new file mode 100644
index 0000000000..d1818c35d6
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/register-dump.h
@@ -0,0 +1,207 @@
+/* Dump registers.
+ Copyright (C) 1998-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Andreas Schwab <schwab@gnu.org>.
+
+ 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 <stddef.h>
+#include <sys/uio.h>
+#include <_itoa.h>
+
+/* We will print the register dump in this format:
+
+ D0: XXXXXXXX D1: XXXXXXXX D2: XXXXXXXX D3: XXXXXXXX
+ D4: XXXXXXXX D5: XXXXXXXX D6: XXXXXXXX D7: XXXXXXXX
+ A0: XXXXXXXX A1: XXXXXXXX A2: XXXXXXXX A3: XXXXXXXX
+ A4: XXXXXXXX A5: XXXXXXXX A6: XXXXXXXX A7: XXXXXXXX
+ PC: XXXXXXXX SR: XXXX
+
+ OldMask: XXXXXXXX Vector: XXXX
+
+ FP0: XXXXXXXXXXXXXXXXXXXXXXXX FP1: XXXXXXXXXXXXXXXXXXXXXXXX
+ FP2: XXXXXXXXXXXXXXXXXXXXXXXX FP3: XXXXXXXXXXXXXXXXXXXXXXXX
+ FP4: XXXXXXXXXXXXXXXXXXXXXXXX FP5: XXXXXXXXXXXXXXXXXXXXXXXX
+ FP6: XXXXXXXXXXXXXXXXXXXXXXXX FP7: XXXXXXXXXXXXXXXXXXXXXXXX
+ FPCR: XXXXXXXX FPSR: XXXXXXXX FPIAR: XXXXXXXX
+
+*/
+
+/* Linux saves only the call-clobbered registers in the sigcontext. We
+ need to use a trampoline that saves the rest so that the C code can
+ access them. We use the sc_fpstate field, since the handler is not
+ supposed to return anyway, thus it doesn't matter that it's clobbered. */
+
+/* static */ void catch_segfault (int, int, struct sigcontext *);
+
+/* Dummy function so that we can use asm with arguments. */
+static void __attribute_used__
+__dummy__ (void)
+{
+ asm ("\n\
+catch_segfault:\n\
+ move.l 12(%%sp),%%a0\n\
+ lea %c0(%%a0),%%a0\n\
+ /* Clear the first 4 bytes to make it a null fp state, just\n\
+ in case the handler does return. */\n\
+ clr.l (%%a0)+\n\
+ movem.l %%d2-%%d7/%%a2-%%a6,(%%a0)\n"
+#ifndef __mcoldfire__
+ "fmovem.x %%fp2-%%fp7,11*4(%%a0)\n"
+#elif defined __mcffpu__
+ "fmovem.d %%fp2-%%fp7,11*4(%%a0)\n"
+#endif
+ "jra real_catch_segfault"
+ : : "n" (offsetof (struct sigcontext, sc_fpstate)));
+}
+#define catch_segfault(a,b) \
+ __attribute_used__ real_catch_segfault(a,b)
+
+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[20][8];
+ char fpregs[11][24];
+ struct iovec iov[63], *next_iov = iov;
+ unsigned long *p = (unsigned long *) ctx->sc_fpstate + 1;
+ unsigned long *pfp = (unsigned long *) ctx->sc_fpregs;
+ int i, j, fpreg_size;
+
+#define ADD_STRING(str) \
+ next_iov->iov_base = (char *) (str); \
+ next_iov->iov_len = strlen (str); \
+ ++next_iov
+#define ADD_MEM(str, len) \
+ next_iov->iov_base = (str); \
+ next_iov->iov_len = (len); \
+ ++next_iov
+
+#ifdef __mcoldfire__
+ fpreg_size = 16;
+#else
+ fpreg_size = 24;
+#endif
+
+ /* Generate strings of register contents. */
+ hexvalue (ctx->sc_d0, regs[0], 8);
+ hexvalue (ctx->sc_d1, regs[1], 8);
+ hexvalue (*p++, regs[2], 8);
+ hexvalue (*p++, regs[3], 8);
+ hexvalue (*p++, regs[4], 8);
+ hexvalue (*p++, regs[5], 8);
+ hexvalue (*p++, regs[6], 8);
+ hexvalue (*p++, regs[7], 8);
+ hexvalue (ctx->sc_a0, regs[8], 8);
+ hexvalue (ctx->sc_a1, regs[9], 8);
+ hexvalue (*p++, regs[10], 8);
+ hexvalue (*p++, regs[11], 8);
+ hexvalue (*p++, regs[12], 8);
+ hexvalue (*p++, regs[13], 8);
+ hexvalue (*p++, regs[14], 8);
+ hexvalue (ctx->sc_usp, regs[15], 8);
+ hexvalue (ctx->sc_pc, regs[16], 8);
+ hexvalue (ctx->sc_sr, regs[17], 4);
+ hexvalue (ctx->sc_mask, regs[18], 8);
+ hexvalue (ctx->sc_formatvec & 0xfff, regs[19], 4);
+ for (i = 0; i < 2; i++)
+ for (j = 0; j < fpreg_size; j += 8)
+ hexvalue (*pfp++, fpregs[i] + j, 8);
+ for (i = 2; i < 8; i++)
+ for (j = 0; j < fpreg_size; j += 8)
+ hexvalue (*p++, fpregs[i] + j, 8);
+ hexvalue (ctx->sc_fpcntl[0], fpregs[8], 8);
+ hexvalue (ctx->sc_fpcntl[1], fpregs[9], 8);
+ hexvalue (ctx->sc_fpcntl[2], fpregs[10], 8);
+
+ /* Generate the output. */
+ ADD_STRING ("Register dump:\n\n D0: ");
+ ADD_MEM (regs[0], 8);
+ ADD_STRING (" D1: ");
+ ADD_MEM (regs[1], 8);
+ ADD_STRING (" D2: ");
+ ADD_MEM (regs[2], 8);
+ ADD_STRING (" D3: ");
+ ADD_MEM (regs[3], 8);
+ ADD_STRING ("\n D4: ");
+ ADD_MEM (regs[4], 8);
+ ADD_STRING (" D5: ");
+ ADD_MEM (regs[5], 8);
+ ADD_STRING (" D6: ");
+ ADD_MEM (regs[6], 8);
+ ADD_STRING (" D7: ");
+ ADD_MEM (regs[7], 8);
+ ADD_STRING ("\n A0: ");
+ ADD_MEM (regs[8], 8);
+ ADD_STRING (" A1: ");
+ ADD_MEM (regs[9], 8);
+ ADD_STRING (" A2: ");
+ ADD_MEM (regs[10], 8);
+ ADD_STRING (" A3: ");
+ ADD_MEM (regs[11], 8);
+ ADD_STRING ("\n A4: ");
+ ADD_MEM (regs[12], 8);
+ ADD_STRING (" A5: ");
+ ADD_MEM (regs[13], 8);
+ ADD_STRING (" A6: ");
+ ADD_MEM (regs[14], 8);
+ ADD_STRING (" A7: ");
+ ADD_MEM (regs[15], 8);
+ ADD_STRING ("\n PC: ");
+ ADD_MEM (regs[16], 8);
+ ADD_STRING (" SR: ");
+ ADD_MEM (regs[17], 4);
+
+ ADD_STRING ("\n\n OldMask: ");
+ ADD_MEM (regs[18], 8);
+ ADD_STRING (" Vector: ");
+ ADD_MEM (regs[19], 4);
+
+ ADD_STRING ("\n\n FP0: ");
+ ADD_MEM (fpregs[0], fpreg_size);
+ ADD_STRING (" FP1: ");
+ ADD_MEM (fpregs[1], fpreg_size);
+ ADD_STRING ("\n FP2: ");
+ ADD_MEM (fpregs[2], fpreg_size);
+ ADD_STRING (" FP3: ");
+ ADD_MEM (fpregs[3], fpreg_size);
+ ADD_STRING ("\n FP4: ");
+ ADD_MEM (fpregs[4], fpreg_size);
+ ADD_STRING (" FP5: ");
+ ADD_MEM (fpregs[5], fpreg_size);
+ ADD_STRING ("\n FP6: ");
+ ADD_MEM (fpregs[6], fpreg_size);
+ ADD_STRING (" FP7: ");
+ ADD_MEM (fpregs[7], fpreg_size);
+ ADD_STRING ("\n FPCR: ");
+ ADD_MEM (fpregs[8], 8);
+ ADD_STRING (" FPSR: ");
+ ADD_MEM (fpregs[9], 8);
+ ADD_STRING (" FPIAR: ");
+ ADD_MEM (fpregs[10], 8);
+ ADD_STRING ("\n");
+
+ /* Write the stuff out. */
+ writev (fd, iov, next_iov - iov);
+}
+
+#define REGISTER_DUMP register_dump (fd, ctx)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/m68k/scandir64.c b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/scandir64.c
new file mode 100644
index 0000000000..506fd8877c
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/scandir64.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/i386/scandir64.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/m68k/sigcontextinfo.h b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/sigcontextinfo.h
new file mode 100644
index 0000000000..3c43e55cae
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/sigcontextinfo.h
@@ -0,0 +1,25 @@
+/* Copyright (C) 1998-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>, 1998.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#define SIGCONTEXT int _code, struct sigcontext *
+#define SIGCONTEXT_EXTRA_ARGS _code,
+#define GET_PC(ctx) ((void *) (ctx)->sc_pc)
+#define GET_FRAME(ctx) ((void *) __builtin_frame_address (1))
+#define GET_STACK(ctx) ((void *) (ctx)->sc_usp)
+#define CALL_SIGHANDLER(handler, signo, ctx) \
+ (handler)((signo), SIGCONTEXT_EXTRA_ARGS (ctx))
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/m68k/sys/procfs.h b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/sys/procfs.h
new file mode 100644
index 0000000000..f2d63d52e1
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/sys/procfs.h
@@ -0,0 +1,125 @@
+/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_PROCFS_H
+#define _SYS_PROCFS_H 1
+
+/* This is somewhat modelled after the file of the same name on SVR4
+ systems. It provides a definition of the core file format for ELF
+ used on Linux. It doesn't have anything to do with the /proc file
+ system, even though Linux has one.
+
+ Anyway, the whole purpose of this file is for GDB and GDB only.
+ Don't read too much into it. Don't use it for anything other than
+ GDB unless you know what you are doing. */
+
+#include <features.h>
+#include <sys/time.h>
+#include <sys/types.h>
+#include <sys/user.h>
+
+__BEGIN_DECLS
+
+/* Type for a general-purpose register. */
+typedef unsigned long elf_greg_t;
+
+/* And the whole bunch of them. We could have used `struct
+ user_regs_struct' directly in the typedef, but tradition says that
+ the register set is an array, which does have some peculiar
+ semantics, so leave it that way. */
+#define ELF_NGREG (sizeof (struct user_regs_struct) / sizeof(elf_greg_t))
+typedef elf_greg_t elf_gregset_t[ELF_NGREG];
+
+/* Register set for the floating-point registers. */
+typedef struct user_m68kfp_struct elf_fpregset_t;
+
+
+/* Signal info. */
+struct elf_siginfo
+ {
+ int si_signo; /* Signal number. */
+ int si_code; /* Extra code. */
+ int si_errno; /* Errno. */
+ };
+
+
+/* Definitions to generate Intel SVR4-like core files. These mostly
+ have the same names as the SVR4 types with "elf_" tacked on the
+ front to prevent clashes with Linux definitions, and the typedef
+ forms have been avoided. This is mostly like the SVR4 structure,
+ but more Linuxy, with things that Linux does not support and which
+ GDB doesn't really use excluded. */
+
+struct elf_prstatus
+ {
+ struct elf_siginfo pr_info; /* Info associated with signal. */
+ short int pr_cursig; /* Current signal. */
+ unsigned long int pr_sigpend; /* Set of pending signals. */
+ unsigned long int pr_sighold; /* Set of held signals. */
+ __pid_t pr_pid;
+ __pid_t pr_ppid;
+ __pid_t pr_pgrp;
+ __pid_t pr_sid;
+ struct timeval pr_utime; /* User time. */
+ struct timeval pr_stime; /* System time. */
+ struct timeval pr_cutime; /* Cumulative user time. */
+ struct timeval pr_cstime; /* Cumulative system time. */
+ elf_gregset_t pr_reg; /* GP registers. */
+ int pr_fpvalid; /* True if math copro being used. */
+ };
+
+
+#define ELF_PRARGSZ (80) /* Number of chars for args. */
+
+struct elf_prpsinfo
+ {
+ char pr_state; /* Numeric process state. */
+ char pr_sname; /* Char for pr_state. */
+ char pr_zomb; /* Zombie. */
+ char pr_nice; /* Nice val. */
+ unsigned long int pr_flag; /* Flags. */
+ unsigned short int pr_uid;
+ unsigned short int pr_gid;
+ int pr_pid, pr_ppid, pr_pgrp, pr_sid;
+ /* Lots missing */
+ char pr_fname[16]; /* Filename of executable. */
+ char pr_psargs[ELF_PRARGSZ]; /* Initial part of arg list. */
+ };
+
+
+/* The rest of this file provides the types for emulation of the
+ Solaris <proc_service.h> interfaces that should be implemented by
+ users of libthread_db. */
+
+/* Addresses. */
+typedef void *psaddr_t;
+
+/* Register sets. Linux has different names. */
+typedef elf_gregset_t prgregset_t;
+typedef elf_fpregset_t prfpregset_t;
+
+/* We don't have any differences between processes and threads,
+ therefore have only one PID type. */
+typedef __pid_t lwpid_t;
+
+/* Process status and info. In the end we do provide typedefs for them. */
+typedef struct elf_prstatus prstatus_t;
+typedef struct elf_prpsinfo prpsinfo_t;
+
+__END_DECLS
+
+#endif /* sys/procfs.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/m68k/sys/reg.h b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/sys/reg.h
new file mode 100644
index 0000000000..133c862b49
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/sys/reg.h
@@ -0,0 +1,101 @@
+/* Copyright (C) 1998-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_REG_H
+#define _SYS_REG_H 1
+
+/* Index into an array of 4 byte integers returned from ptrace for
+ location of the users' stored general purpose registers. */
+
+enum
+{
+ PT_D1 = 0,
+#define PT_D1 PT_D1
+ PT_D2 = 1,
+#define PT_D2 PT_D2
+ PT_D3 = 2,
+#define PT_D3 PT_D3
+ PT_D4 = 3,
+#define PT_D4 PT_D4
+ PT_D5 = 4,
+#define PT_D5 PT_D5
+ PT_D6 = 5,
+#define PT_D6 PT_D6
+ PT_D7 = 6,
+#define PT_D7 PT_D7
+ PT_A0 = 7,
+#define PT_A0 PT_A0
+ PT_A1 = 8,
+#define PT_A1 PT_A1
+ PT_A2 = 9,
+#define PT_A2 PT_A2
+ PT_A3 = 10,
+#define PT_A3 PT_A3
+ PT_A4 = 11,
+#define PT_A4 PT_A4
+ PT_A5 = 12,
+#define PT_A5 PT_A5
+ PT_A6 = 13,
+#define PT_A6 PT_A6
+ PT_D0 = 14,
+#define PT_D0 PT_D0
+ PT_USP = 15,
+#define PT_USP PT_USP
+ PT_ORIG_D0 = 16,
+#define PT_ORIG_D0 PT_ORIG_D0
+ PT_SR = 17,
+#define PT_SR PT_SR
+ PT_PC = 18,
+#define PT_PC PT_PC
+
+#ifdef __mcoldfire__
+ PT_FP0 = 21,
+ PT_FP1 = 23,
+ PT_FP2 = 25,
+ PT_FP3 = 27,
+ PT_FP4 = 29,
+ PT_FP5 = 31,
+ PT_FP6 = 33,
+ PT_FP7 = 35,
+#else
+ PT_FP0 = 21,
+ PT_FP1 = 24,
+ PT_FP2 = 27,
+ PT_FP3 = 30,
+ PT_FP4 = 33,
+ PT_FP5 = 36,
+ PT_FP6 = 39,
+ PT_FP7 = 42,
+#endif
+#define PT_FP0 PT_FP0
+#define PT_FP1 PT_FP1
+#define PT_FP2 PT_FP2
+#define PT_FP3 PT_FP3
+#define PT_FP4 PT_FP4
+#define PT_FP5 PT_FP5
+#define PT_FP6 PT_FP6
+#define PT_FP7 PT_FP7
+
+ PT_FPCR = 45,
+#define PT_FPCR PT_FPCR
+ PT_FPSR = 46,
+#define PT_FPSR PT_FPSR
+ PT_FPIAR = 47
+#define PT_FPIAR PT_FPIAR
+};
+
+#endif /* _SYS_REG_H */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/m68k/sys/ucontext.h b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/sys/ucontext.h
new file mode 100644
index 0000000000..e6ecbe6ab5
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/sys/ucontext.h
@@ -0,0 +1,131 @@
+/* Copyright (C) 1997-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+/* System V/m68k ABI compliant context switching support. */
+
+#ifndef _SYS_UCONTEXT_H
+#define _SYS_UCONTEXT_H 1
+
+#include <features.h>
+
+#include <bits/types/sigset_t.h>
+#include <bits/sigcontext.h>
+#include <bits/types/stack_t.h>
+
+
+/* Type for general register. */
+typedef int greg_t;
+
+/* Number of general registers. */
+#define __NGREG 18
+#ifdef __USE_MISC
+# define NGREG __NGREG
+#endif
+
+/* Container for all general registers. */
+typedef greg_t gregset_t[__NGREG];
+
+#ifdef __USE_MISC
+/* Number of each register is the `gregset_t' array. */
+enum
+{
+ R_D0 = 0,
+# define R_D0 R_D0
+ R_D1 = 1,
+# define R_D1 R_D1
+ R_D2 = 2,
+# define R_D2 R_D2
+ R_D3 = 3,
+# define R_D3 R_D3
+ R_D4 = 4,
+# define R_D4 R_D4
+ R_D5 = 5,
+# define R_D5 R_D5
+ R_D6 = 6,
+# define R_D6 R_D6
+ R_D7 = 7,
+# define R_D7 R_D7
+ R_A0 = 8,
+# define R_A0 R_A0
+ R_A1 = 9,
+# define R_A1 R_A1
+ R_A2 = 10,
+# define R_A2 R_A2
+ R_A3 = 11,
+# define R_A3 R_A3
+ R_A4 = 12,
+# define R_A4 R_A4
+ R_A5 = 13,
+# define R_A5 R_A5
+ R_A6 = 14,
+# define R_A6 R_A6
+ R_A7 = 15,
+# define R_A7 R_A7
+ R_SP = 15,
+# define R_SP R_SP
+ R_PC = 16,
+# define R_PC R_PC
+ R_PS = 17
+# define R_PS R_PS
+};
+#endif
+
+#ifdef __USE_MISC
+# define __ctx(fld) fld
+#else
+# define __ctx(fld) __ ## fld
+#endif
+
+/* Structure to describe FPU registers. */
+typedef struct fpregset
+{
+ int __ctx(f_pcr);
+ int __ctx(f_psr);
+ int __ctx(f_fpiaddr);
+#ifdef __mcoldfire__
+ int __ctx(f_fpregs)[8][2];
+#else
+ int __ctx(f_fpregs)[8][3];
+#endif
+} fpregset_t;
+
+/* Context to describe whole processor state. */
+typedef struct
+{
+ int __ctx(version);
+ gregset_t __ctx(gregs);
+ fpregset_t __ctx(fpregs);
+} mcontext_t;
+
+#undef __ctx
+
+#ifdef __USE_MISC
+# define MCONTEXT_VERSION 2
+#endif
+
+/* Userlevel context. */
+typedef struct ucontext
+{
+ unsigned long uc_flags;
+ struct ucontext *uc_link;
+ stack_t uc_stack;
+ mcontext_t uc_mcontext;
+ unsigned long uc_filler[80];
+ sigset_t uc_sigmask;
+} ucontext_t;
+
+#endif /* sys/ucontext.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/m68k/sys/user.h b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/sys/user.h
new file mode 100644
index 0000000000..123e7e7ba6
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/sys/user.h
@@ -0,0 +1,65 @@
+/* Copyright (C) 2008-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_USER_H
+#define _SYS_USER_H 1
+
+/* The whole purpose of this file is for GDB and GDB only. Don't read
+ too much into it. Don't use it for anything other than GDB unless
+ you know what you are doing. */
+
+struct user_m68kfp_struct {
+ unsigned long fpregs[8*3];
+ unsigned long fpcntl[3];
+};
+
+struct user_regs_struct {
+ long d1, d2, d3, d4, d5, d6, d7;
+ long a0, a1, a2, a3, a4, a5, a6;
+ long d0;
+ long usp;
+ long orig_d0;
+ short stkadj;
+ short sr;
+ long pc;
+ short fmtvec;
+ short __fill;
+};
+
+struct user {
+ struct user_regs_struct regs;
+ int u_fpvalid;
+ struct user_m68kfp_struct m68kfp;
+ unsigned long int u_tsize;
+ unsigned long int u_dsize;
+ unsigned long int u_ssize;
+ unsigned long start_code;
+ unsigned long start_stack;
+ long int signal;
+ int reserved;
+ unsigned long u_ar0;
+ struct user_m68kfp_struct *u_fpstate;
+ unsigned long magic;
+ char u_comm[32];
+};
+
+#define NBPG 4096
+#define UPAGES 1
+#define HOST_TEXT_START_ADDR u.start_code
+#define HOST_STACK_END_ADDR (u.start_stack + u.u_ssize * NBPG)
+
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/m68k/syscall.S b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/syscall.S
new file mode 100644
index 0000000000..e4a8e9e293
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/syscall.S
@@ -0,0 +1,32 @@
+/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+
+/* Please consult the file sysdeps/unix/sysv/linux/m68k/sysdep.h for
+ more information about the value -4095 used below.*/
+
+ .text
+ENTRY (syscall)
+ move.l 4(%sp), %d0 /* Load syscall number. */
+ _DOARGS_6 (28) /* Frob arguments. */
+ trap &0 /* Do the system call. */
+ UNDOARGS_6 /* Unfrob arguments. */
+ cmp.l &-4095, %d0 /* Check %d0 for error. */
+ jcc SYSCALL_ERROR_LABEL /* Jump to error handler if negative. */
+ rts /* Return to caller. */
+PSEUDO_END (syscall)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/m68k/syscalls.list b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/syscalls.list
new file mode 100644
index 0000000000..55a377b841
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/syscalls.list
@@ -0,0 +1,21 @@
+# File name Caller Syscall name Args Strong name Weak names
+
+chown - chown32 i:sii __chown chown
+lchown - lchown32 i:sii __lchown lchown
+fchown - fchown32 i:iii __fchown fchown
+
+getegid - getegid32 Ei: __getegid getegid
+geteuid - geteuid32 Ei: __geteuid geteuid
+getgid - getgid32 Ei: __getgid getgid
+getuid - getuid32 Ei: __getuid getuid
+getresgid - getresgid32 i:ppp __getresgid getresgid
+getresuid - getresuid32 i:ppp __getresuid getresuid
+getgroups - getgroups32 i:ip __getgroups getgroups
+
+setfsgid - setfsgid32 Ei:i setfsgid
+setfsuid - setfsuid32 Ei:i setfsuid
+
+cacheflush EXTRA cacheflush i:iiii __cacheflush cacheflush
+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/m68k/sysdep-cancel.h b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/sysdep-cancel.h
new file mode 100644
index 0000000000..9bc9e1356e
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/sysdep-cancel.h
@@ -0,0 +1,138 @@
+/* Copyright (C) 2010-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Maxim Kuvyrkov <maxim@codesourcery.com>, 2010.
+
+ 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; \
+ ENTRY (name) \
+ SINGLE_THREAD_P; \
+ jne .Lpseudo_cancel; \
+ .type __##syscall_name##_nocancel,@function; \
+ .globl __##syscall_name##_nocancel; \
+ __##syscall_name##_nocancel: \
+ DO_CALL (syscall_name, args); \
+ cmp.l &-4095, %d0; \
+ jcc SYSCALL_ERROR_LABEL; \
+ rts; \
+ .size __##syscall_name##_nocancel,.-__##syscall_name##_nocancel; \
+ .Lpseudo_cancel: \
+ CENABLE; \
+ DOCARGS_##args \
+ move.l %d0, -(%sp); /* Save result of CENABLE. */ \
+ cfi_adjust_cfa_offset (4); \
+ move.l &SYS_ify (syscall_name), %d0; \
+ trap &0; \
+ move.l %d0, %d2; \
+ CDISABLE; \
+ addq.l &4, %sp; /* Remove result of CENABLE from the stack. */ \
+ cfi_adjust_cfa_offset (-4); \
+ move.l %d2, %d0; \
+ UNDOCARGS_##args \
+ cmp.l &-4095, %d0; \
+ jcc SYSCALL_ERROR_LABEL
+
+/* Note: we use D2 to save syscall's return value as D0 will be clobbered in
+ CDISABLE. */
+# define DOCARGS_0 move.l %d2, -(%sp); \
+ cfi_adjust_cfa_offset (4); cfi_rel_offset (%d2, 0);
+# define UNDOCARGS_0 move.l (%sp)+, %d2; \
+ cfi_adjust_cfa_offset (-4); cfi_restore (%d2);
+
+# define DOCARGS_1 _DOCARGS_1 (4); DOCARGS_0
+# define _DOCARGS_1(n) move.l n(%sp), %d1;
+# define UNDOCARGS_1 UNDOCARGS_0
+
+# define DOCARGS_2 _DOCARGS_2 (8)
+# define _DOCARGS_2(n) DOCARGS_0 move.l n+4(%sp), %d2; _DOCARGS_1 (n)
+# define UNDOCARGS_2 UNDOCARGS_0
+
+# define DOCARGS_3 _DOCARGS_3 (12)
+# define _DOCARGS_3(n) move.l %d3, -(%sp); \
+ cfi_adjust_cfa_offset (4); cfi_rel_offset (%d3, 0); \
+ move.l n+4(%sp), %d3; _DOCARGS_2 (n)
+# define UNDOCARGS_3 UNDOCARGS_2 move.l (%sp)+, %d3; \
+ cfi_adjust_cfa_offset (-4); cfi_restore (%d3);
+
+# define DOCARGS_4 _DOCARGS_4 (16)
+# define _DOCARGS_4(n) move.l %d4, -(%sp); \
+ cfi_adjust_cfa_offset (4); cfi_rel_offset (%d4, 0); \
+ move.l n+4(%sp), %d4; _DOCARGS_3 (n)
+# define UNDOCARGS_4 UNDOCARGS_3 move.l (%sp)+, %d4; \
+ cfi_adjust_cfa_offset (-4); cfi_restore (%d4);
+
+# define DOCARGS_5 _DOCARGS_5 (20)
+# define _DOCARGS_5(n) move.l %d5, -(%sp); \
+ cfi_adjust_cfa_offset (4); cfi_rel_offset (%d5, 0); \
+ move.l n+4(%sp), %d5; _DOCARGS_4 (n)
+# define UNDOCARGS_5 UNDOCARGS_4 move.l (%sp)+, %d5; \
+ cfi_adjust_cfa_offset (-4); cfi_restore (%d5);
+
+# define DOCARGS_6 _DOCARGS_6 (24)
+# define _DOCARGS_6(n) move.l n(%sp), %a0; _DOCARGS_5 (n-4)
+# define UNDOCARGS_6 UNDOCARGS_5
+
+# ifdef PIC
+# define PSEUDO_JMP(sym) jbsr sym ## @PLTPC
+# else
+# define PSEUDO_JMP(sym) jbsr sym
+# endif
+
+# if IS_IN (libpthread)
+# define CENABLE PSEUDO_JMP (__pthread_enable_asynccancel)
+# define CDISABLE PSEUDO_JMP (__pthread_disable_asynccancel)
+# elif IS_IN (libc)
+# define CENABLE PSEUDO_JMP (__libc_enable_asynccancel)
+# define CDISABLE PSEUDO_JMP (__libc_disable_asynccancel)
+# elif IS_IN (librt)
+# define CENABLE PSEUDO_JMP (__librt_enable_asynccancel)
+# define CDISABLE PSEUDO_JMP (__librt_disable_asynccancel)
+# else
+# error Unsupported library
+# endif
+
+# ifndef __ASSEMBLER__
+# define SINGLE_THREAD_P \
+ __builtin_expect (THREAD_GETMEM (THREAD_SELF, \
+ header.multiple_threads) == 0, 1)
+# else
+# define SINGLE_THREAD_P \
+ PSEUDO_JMP (__m68k_read_tp); \
+ tst.l MULTIPLE_THREADS_OFFSET(%a0)
+# 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/m68k/sysdep.S b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/sysdep.S
new file mode 100644
index 0000000000..5ade56efc2
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/sysdep.S
@@ -0,0 +1,50 @@
+/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.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. */
+
+#ifndef PIC
+
+/* The syscall stubs jump here when they detect an error. */
+
+#undef CALL_MCOUNT
+#define CALL_MCOUNT /* Don't insert the profiling call, it clobbers %d0. */
+
+ .text
+ENTRY (__syscall_error)
+ neg.l %d0
+#ifndef _LIBC_REENTRANT
+ move.l %d0, errno
+#else
+ move.l %d0, -(%sp)
+ cfi_adjust_cfa_offset (4)
+ jbsr __errno_location
+ move.l (%sp)+, (%a0)
+ cfi_adjust_cfa_offset (-4)
+#endif
+ move.l #-1, %d0
+ /* Copy return value to %a0 for syscalls that are declared to
+ return a pointer. */
+ move.l %d0, %a0
+ rts
+END (__syscall_error)
+#endif /* PIC */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/m68k/sysdep.h b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/sysdep.h
new file mode 100644
index 0000000000..dfa6f85d20
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/sysdep.h
@@ -0,0 +1,326 @@
+/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Written by Andreas Schwab, <schwab@issan.informatik.uni-dortmund.de>,
+ December 1995.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdeps/unix/sysv/linux/sysdep.h>
+#include <tls.h>
+
+/* Defines RTLD_PRIVATE_ERRNO. */
+#include <dl-sysdep.h>
+
+/* For Linux we can use the system call table in the header file
+ /usr/include/asm/unistd.h
+ of the kernel. But these symbols do not follow the SYS_* syntax
+ so we have to redefine the `SYS_ify' macro here. */
+#undef SYS_ify
+#define SYS_ify(syscall_name) __NR_##syscall_name
+
+#ifdef __ASSEMBLER__
+
+/* Linux uses a negative return value to indicate syscall errors, unlike
+ most Unices, which use the condition codes' carry flag.
+
+ Since version 2.1 the return value of a system call might be negative
+ even if the call succeeded. E.g., the `lseek' system call might return
+ a large offset. Therefore we must not anymore test for < 0, but test
+ for a real error by making sure the value in %d0 is a real error
+ number. Linus said he will make sure the no syscall returns a value
+ in -1 .. -4095 as a valid result so we can savely test with -4095. */
+
+/* We don't want the label for the error handler to be visible in the symbol
+ table when we define it here. */
+#ifdef PIC
+#define SYSCALL_ERROR_LABEL .Lsyscall_error
+#else
+#define SYSCALL_ERROR_LABEL __syscall_error
+#endif
+
+#undef PSEUDO
+#define PSEUDO(name, syscall_name, args) \
+ .text; \
+ ENTRY (name) \
+ DO_CALL (syscall_name, args); \
+ cmp.l &-4095, %d0; \
+ jcc 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)
+
+#define ret_NOERRNO rts
+
+/* The function has to return the error code. */
+#undef PSEUDO_ERRVAL
+#define PSEUDO_ERRVAL(name, syscall_name, args) \
+ .text; \
+ ENTRY (name) \
+ DO_CALL (syscall_name, args); \
+ negl %d0
+
+#undef PSEUDO_END_ERRVAL
+#define PSEUDO_END_ERRVAL(name) \
+ END (name)
+
+#define ret_ERRVAL rts
+
+#ifdef PIC
+# if RTLD_PRIVATE_ERRNO
+# define SYSCALL_ERROR_HANDLER \
+SYSCALL_ERROR_LABEL: \
+ PCREL_OP (lea, rtld_errno, %a0, %a0); \
+ neg.l %d0; \
+ move.l %d0, (%a0); \
+ move.l &-1, %d0; \
+ /* Copy return value to %a0 for syscalls that are declared to return \
+ a pointer (e.g., mmap). */ \
+ move.l %d0, %a0; \
+ rts;
+# elif defined _LIBC_REENTRANT
+# if IS_IN (libc)
+# define SYSCALL_ERROR_ERRNO __libc_errno
+# else
+# define SYSCALL_ERROR_ERRNO errno
+# endif
+# define SYSCALL_ERROR_HANDLER \
+SYSCALL_ERROR_LABEL: \
+ neg.l %d0; \
+ move.l %d0, -(%sp); \
+ cfi_adjust_cfa_offset (4); \
+ jbsr __m68k_read_tp@PLTPC; \
+ SYSCALL_ERROR_LOAD_GOT (%a1); \
+ add.l (SYSCALL_ERROR_ERRNO@TLSIE, %a1), %a0; \
+ move.l (%sp)+, (%a0); \
+ cfi_adjust_cfa_offset (-4); \
+ move.l &-1, %d0; \
+ /* Copy return value to %a0 for syscalls that are declared to return \
+ a pointer (e.g., mmap). */ \
+ move.l %d0, %a0; \
+ rts;
+# else /* !_LIBC_REENTRANT */
+/* Store (- %d0) into errno through the GOT. */
+# define SYSCALL_ERROR_HANDLER \
+SYSCALL_ERROR_LABEL: \
+ move.l (errno@GOTPC, %pc), %a0; \
+ neg.l %d0; \
+ move.l %d0, (%a0); \
+ move.l &-1, %d0; \
+ /* Copy return value to %a0 for syscalls that are declared to return \
+ a pointer (e.g., mmap). */ \
+ move.l %d0, %a0; \
+ rts;
+# endif /* _LIBC_REENTRANT */
+#else
+# define SYSCALL_ERROR_HANDLER /* Nothing here; code in sysdep.S is used. */
+#endif /* PIC */
+
+/* Linux takes system call arguments in registers:
+
+ syscall number %d0 call-clobbered
+ arg 1 %d1 call-clobbered
+ arg 2 %d2 call-saved
+ arg 3 %d3 call-saved
+ arg 4 %d4 call-saved
+ arg 5 %d5 call-saved
+ arg 6 %a0 call-clobbered
+
+ The stack layout upon entering the function is:
+
+ 24(%sp) Arg# 6
+ 20(%sp) Arg# 5
+ 16(%sp) Arg# 4
+ 12(%sp) Arg# 3
+ 8(%sp) Arg# 2
+ 4(%sp) Arg# 1
+ (%sp) Return address
+
+ (Of course a function with say 3 arguments does not have entries for
+ arguments 4 and 5.)
+
+ Separate move's are faster than movem, but need more space. Since
+ speed is more important, we don't use movem. Since %a0 and %a1 are
+ scratch registers, we can use them for saving as well. */
+
+#define DO_CALL(syscall_name, args) \
+ move.l &SYS_ify(syscall_name), %d0; \
+ DOARGS_##args \
+ trap &0; \
+ UNDOARGS_##args
+
+#define DOARGS_0 /* No arguments to frob. */
+#define UNDOARGS_0 /* No arguments to unfrob. */
+#define _DOARGS_0(n) /* No arguments to frob. */
+
+#define DOARGS_1 _DOARGS_1 (4)
+#define _DOARGS_1(n) move.l n(%sp), %d1; _DOARGS_0 (n)
+#define UNDOARGS_1 UNDOARGS_0
+
+#define DOARGS_2 _DOARGS_2 (8)
+#define _DOARGS_2(n) move.l %d2, %a0; cfi_register (%d2, %a0); \
+ move.l n(%sp), %d2; _DOARGS_1 (n-4)
+#define UNDOARGS_2 UNDOARGS_1; move.l %a0, %d2; cfi_restore (%d2)
+
+#define DOARGS_3 _DOARGS_3 (12)
+#define _DOARGS_3(n) move.l %d3, %a1; cfi_register (%d3, %a1); \
+ move.l n(%sp), %d3; _DOARGS_2 (n-4)
+#define UNDOARGS_3 UNDOARGS_2; move.l %a1, %d3; cfi_restore (%d3)
+
+#define DOARGS_4 _DOARGS_4 (16)
+#define _DOARGS_4(n) move.l %d4, -(%sp); \
+ cfi_adjust_cfa_offset (4); cfi_rel_offset (%d4, 0); \
+ move.l n+4(%sp), %d4; _DOARGS_3 (n)
+#define UNDOARGS_4 UNDOARGS_3; move.l (%sp)+, %d4; \
+ cfi_adjust_cfa_offset (-4); cfi_restore (%d4)
+
+#define DOARGS_5 _DOARGS_5 (20)
+#define _DOARGS_5(n) move.l %d5, -(%sp); \
+ cfi_adjust_cfa_offset (4); cfi_rel_offset (%d5, 0); \
+ move.l n+4(%sp), %d5; _DOARGS_4 (n)
+#define UNDOARGS_5 UNDOARGS_4; move.l (%sp)+, %d5; \
+ cfi_adjust_cfa_offset (-4); cfi_restore (%d5)
+
+#define DOARGS_6 _DOARGS_6 (24)
+#define _DOARGS_6(n) _DOARGS_5 (n-4); move.l %a0, -(%sp); \
+ cfi_adjust_cfa_offset (4); \
+ move.l n+12(%sp), %a0;
+#define UNDOARGS_6 move.l (%sp)+, %a0; cfi_adjust_cfa_offset (-4); \
+ UNDOARGS_5
+
+
+#define ret rts
+#if 0 /* Not used by Linux */
+#define r0 %d0
+#define r1 %d1
+#define MOVE(x,y) movel x , y
+#endif
+
+#else /* not __ASSEMBLER__ */
+
+/* Define a macro which expands into the inline wrapper code for a system
+ call. */
+#undef INLINE_SYSCALL
+#define INLINE_SYSCALL(name, nr, args...) \
+ ({ unsigned int _sys_result = INTERNAL_SYSCALL (name, , nr, args); \
+ if (__builtin_expect (INTERNAL_SYSCALL_ERROR_P (_sys_result, ), 0))\
+ { \
+ __set_errno (INTERNAL_SYSCALL_ERRNO (_sys_result, )); \
+ _sys_result = (unsigned int) -1; \
+ } \
+ (int) _sys_result; })
+
+#undef INTERNAL_SYSCALL_DECL
+#define INTERNAL_SYSCALL_DECL(err) do { } while (0)
+
+/* Define a macro which expands inline into the wrapper code for a system
+ call. This use is for internal calls that do not need to handle errors
+ normally. It will never touch errno. This returns just what the kernel
+ gave back. */
+#undef INTERNAL_SYSCALL
+#define INTERNAL_SYSCALL_NCS(name, err, nr, args...) \
+ ({ unsigned int _sys_result; \
+ { \
+ /* Load argument values in temporary variables
+ to perform side effects like function calls
+ before the call used registers are set. */ \
+ LOAD_ARGS_##nr (args) \
+ LOAD_REGS_##nr \
+ register int _d0 asm ("%d0") = name; \
+ asm volatile ("trap #0" \
+ : "=d" (_d0) \
+ : "0" (_d0) ASM_ARGS_##nr \
+ : "memory"); \
+ _sys_result = _d0; \
+ } \
+ (int) _sys_result; })
+#define INTERNAL_SYSCALL(name, err, nr, args...) \
+ INTERNAL_SYSCALL_NCS (__NR_##name, err, nr, ##args)
+
+#undef INTERNAL_SYSCALL_ERROR_P
+#define INTERNAL_SYSCALL_ERROR_P(val, err) \
+ ((unsigned int) (val) >= -4095U)
+
+#undef INTERNAL_SYSCALL_ERRNO
+#define INTERNAL_SYSCALL_ERRNO(val, err) (-(val))
+
+#define LOAD_ARGS_0()
+#define LOAD_REGS_0
+#define ASM_ARGS_0
+#define LOAD_ARGS_1(a1) \
+ LOAD_ARGS_0 () \
+ int __arg1 = (int) (a1);
+#define LOAD_REGS_1 \
+ register int _d1 asm ("d1") = __arg1; \
+ LOAD_REGS_0
+#define ASM_ARGS_1 ASM_ARGS_0, "d" (_d1)
+#define LOAD_ARGS_2(a1, a2) \
+ LOAD_ARGS_1 (a1) \
+ int __arg2 = (int) (a2);
+#define LOAD_REGS_2 \
+ register int _d2 asm ("d2") = __arg2; \
+ LOAD_REGS_1
+#define ASM_ARGS_2 ASM_ARGS_1, "d" (_d2)
+#define LOAD_ARGS_3(a1, a2, a3) \
+ LOAD_ARGS_2 (a1, a2) \
+ int __arg3 = (int) (a3);
+#define LOAD_REGS_3 \
+ register int _d3 asm ("d3") = __arg3; \
+ LOAD_REGS_2
+#define ASM_ARGS_3 ASM_ARGS_2, "d" (_d3)
+#define LOAD_ARGS_4(a1, a2, a3, a4) \
+ LOAD_ARGS_3 (a1, a2, a3) \
+ int __arg4 = (int) (a4);
+#define LOAD_REGS_4 \
+ register int _d4 asm ("d4") = __arg4; \
+ LOAD_REGS_3
+#define ASM_ARGS_4 ASM_ARGS_3, "d" (_d4)
+#define LOAD_ARGS_5(a1, a2, a3, a4, a5) \
+ LOAD_ARGS_4 (a1, a2, a3, a4) \
+ int __arg5 = (int) (a5);
+#define LOAD_REGS_5 \
+ register int _d5 asm ("d5") = __arg5; \
+ LOAD_REGS_4
+#define ASM_ARGS_5 ASM_ARGS_4, "d" (_d5)
+#define LOAD_ARGS_6(a1, a2, a3, a4, a5, a6) \
+ LOAD_ARGS_5 (a1, a2, a3, a4, a5) \
+ int __arg6 = (int) (a6);
+#define LOAD_REGS_6 \
+ register int _a0 asm ("a0") = __arg6; \
+ LOAD_REGS_5
+#define ASM_ARGS_6 ASM_ARGS_5, "a" (_a0)
+
+#endif /* not __ASSEMBLER__ */
+
+/* Pointer mangling is not yet supported for M68K. */
+#define PTR_MANGLE(var) (void) (var)
+#define PTR_DEMANGLE(var) (void) (var)
+
+#if defined NEED_DL_SYSINFO || defined NEED_DL_SYSINFO_DSO
+/* M68K needs system-supplied DSO to access TLS helpers
+ even when statically linked. */
+# define NEED_STATIC_SYSINFO_DSO 1
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/m68k/versionsort64.c b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/versionsort64.c
new file mode 100644
index 0000000000..144b691e56
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/versionsort64.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/i386/versionsort64.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/m68k/vfork.S b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/vfork.S
new file mode 100644
index 0000000000..2dee7166f7
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/vfork.S
@@ -0,0 +1,60 @@
+/* Copyright (C) 1999-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Andreas Schwab <schwab@gnu.org>.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#define _ERRNO_H 1
+#include <bits/errno.h>
+#include <tcb-offsets.h>
+
+/* Clone the calling process, but without copying the whole address space.
+ The calling process is suspended until the new process exits or is
+ replaced by a call to `execve'. Return -1 for errors, 0 to the new process,
+ and the process ID of the new process to the old process. */
+
+ENTRY (__vfork)
+
+ /* Pop the return PC value into A0. */
+ movel %sp@+, %a0
+ cfi_adjust_cfa_offset (-4)
+ cfi_register (%pc, %a0)
+
+ /* Stuff the syscall number in D0 and trap into the kernel. */
+ movel #SYS_ify (vfork), %d0
+ trap #0
+
+ tstl %d0
+ jmi .Lerror /* Branch forward if it failed. */
+
+ /* Jump to the return PC. */
+ jmp %a0@
+
+.Lerror:
+ /* Push back the return PC. */
+ movel %a0,%sp@-
+ cfi_adjust_cfa_offset (4)
+ cfi_rel_offset (%pc, 0)
+
+#ifndef PIC
+ jbra SYSCALL_ERROR_LABEL
+#endif
+
+PSEUDO_END (__vfork)
+libc_hidden_def (__vfork)
+
+weak_alias (__vfork, vfork)
+strong_alias (__vfork, __libc_vfork)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/m68k/xstat.c b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/xstat.c
new file mode 100644
index 0000000000..e9869f5508
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/xstat.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/i386/xstat.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/malloc-sysdep.h b/REORG.TODO/sysdeps/unix/sysv/linux/malloc-sysdep.h
new file mode 100644
index 0000000000..48cf7c157c
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/malloc-sysdep.h
@@ -0,0 +1,59 @@
+/* System-specific malloc support functions. Linux version.
+ 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 <fcntl.h>
+#include <not-cancel.h>
+
+/* The Linux kernel overcommits address space by default and if there is not
+ enough memory available, it uses various parameters to decide the process to
+ kill. It is however possible to disable or curb this overcommit behavior
+ by setting the proc sysctl vm.overcommit_memory to the value '2' and with
+ that, a process is only allowed to use the maximum of a pre-determined
+ fraction of the total address space. In such a case, we want to make sure
+ that we are judicious with our heap usage as well, and explicitly give away
+ the freed top of the heap to reduce our commit charge. See the proc(5) man
+ page to know more about overcommit behavior.
+
+ Other than that, we also force an unmap in a secure exec. */
+static inline bool
+check_may_shrink_heap (void)
+{
+ static int may_shrink_heap = -1;
+
+ if (__builtin_expect (may_shrink_heap >= 0, 1))
+ return may_shrink_heap;
+
+ may_shrink_heap = __libc_enable_secure;
+
+ if (__builtin_expect (may_shrink_heap == 0, 1))
+ {
+ int fd = open_not_cancel_2 ("/proc/sys/vm/overcommit_memory",
+ O_RDONLY | O_CLOEXEC);
+ if (fd >= 0)
+ {
+ char val;
+ ssize_t n = read_not_cancel (fd, &val, 1);
+ may_shrink_heap = n > 0 && val == '2';
+ close_not_cancel_no_status (fd);
+ }
+ }
+
+ return may_shrink_heap;
+}
+
+#define HAVE_MREMAP 1
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/microblaze/Implies b/REORG.TODO/sysdeps/unix/sysv/linux/microblaze/Implies
new file mode 100644
index 0000000000..469a141418
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/microblaze/Implies
@@ -0,0 +1 @@
+microblaze/nptl
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/microblaze/Makefile b/REORG.TODO/sysdeps/unix/sysv/linux/microblaze/Makefile
new file mode 100644
index 0000000000..d178bc6f34
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/microblaze/Makefile
@@ -0,0 +1,9 @@
+ifeq ($(subdir),resource)
+sysdep_routines += backtrace_linux
+endif
+
+ifeq ($(subdir),nptl)
+# pull in __syscall_error routine
+libpthread-routines += sysdep
+libpthread-shared-only-routines += sysdep
+endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/microblaze/Versions b/REORG.TODO/sysdeps/unix/sysv/linux/microblaze/Versions
new file mode 100644
index 0000000000..aa48a3c155
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/microblaze/Versions
@@ -0,0 +1,5 @@
+libc {
+ GLIBC_2.18 {
+ fallocate64;
+ }
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/microblaze/____longjmp_chk.S b/REORG.TODO/sysdeps/unix/sysv/linux/microblaze/____longjmp_chk.S
new file mode 100644
index 0000000000..7191ab3faa
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/microblaze/____longjmp_chk.S
@@ -0,0 +1,29 @@
+/* Copyright (C) 1997-2017 Free Software Foundation, Inc.
+
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation; either version 2.1 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+
+ .text
+ENTRY (__revisit_longjmp_chk)
+ rtsd r15,0
+ nop
+PSEUDO_END (__revisit_longjmp_chk)
+ENTRY (____longjmp_chk)
+ rtsd r15,0
+ nop
+PSEUDO_END (____longjmp_chk)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/microblaze/arch-fork.h b/REORG.TODO/sysdeps/unix/sysv/linux/microblaze/arch-fork.h
new file mode 100644
index 0000000000..8d72485556
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/microblaze/arch-fork.h
@@ -0,0 +1,27 @@
+/* ARCH_FORK definition for Linux fork implementation. MicroBlaze version.
+ Copyright (C) 2014-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sched.h>
+#include <signal.h>
+#include <sysdep.h>
+#include <tls.h>
+
+#define ARCH_FORK() \
+ INLINE_SYSCALL (clone, 5, \
+ CLONE_CHILD_SETTID | CLONE_CHILD_CLEARTID | SIGCHLD, 0, \
+ NULL, NULL, &THREAD_SELF->tid)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/microblaze/bits/fcntl.h b/REORG.TODO/sysdeps/unix/sysv/linux/microblaze/bits/fcntl.h
new file mode 100644
index 0000000000..50982def27
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/microblaze/bits/fcntl.h
@@ -0,0 +1,86 @@
+/* O_*, F_*, FD_* bit values for Linux.
+ Copyright (C) 1995-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _FCNTL_H
+# error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
+#endif
+
+#define O_CREAT 00000100 /* not fcntl. */
+#define O_TRUNC 00001000 /* not fcntl. */
+#define O_EXCL 00000200 /* not fcntl. */
+#define O_NOCTTY 00000400 /* not fcntl. */
+
+#define O_NONBLOCK 00004000
+#define O_APPEND 00002000
+#define O_SYNC 04000000
+
+#define __O_DIRECTORY 00200000 /* Must be a directory. */
+#define __O_NOFOLLOW 00400000 /* Do not follow links. */
+#define __O_CLOEXEC 02000000 /* Set close_on_exec. */
+
+#define __O_DIRECT 00040000 /* Direct disk access. */
+#define __O_NOATIME 01000000 /* Do not set atime. */
+#define __O_PATH 010000000 /* Resolve pathname but do not open file. */
+
+/* Not necessary, files are always with 64bit off_t. */
+#define __O_LARGEFILE 00100000
+
+#define __O_DSYNC 00010000 /* Synchronize data. */
+
+#define F_GETLK 5 /* Get record locking info. */
+#define F_SETLK 6 /* Set record locking info (non-blocking). */
+#define F_SETLKW 7 /* Set record locking info (blocking). */
+#define F_GETLK64 12 /* Get record locking info. */
+#define F_SETLK64 13 /* Set record locking info (non-blocking). */
+#define F_SETLKW64 14 /* Set record locking info (blocking). */
+
+#define __F_SETOWN 8 /* Get owner of socket (receiver of SIGIO). */
+#define __F_GETOWN 9 /* Set owner of socket (receiver of SIGIO). */
+
+/* For posix fcntl() and `l_type' field of a `struct flock' for lockf(). */
+#define F_RDLCK 0 /* Read lock. */
+#define F_WRLCK 1 /* Write lock. */
+#define F_UNLCK 2 /* Remove lock. */
+
+/* for old implementation of bsd flock (). */
+#define F_EXLCK 4 /* or 3. */
+#define F_SHLCK 8 /* or 4. */
+
+/* We don't need to support __USE_FILE_OFFSET64. */
+struct flock
+ {
+ short int l_type; /* Type of lock: F_RDLCK, F_WRLCK, or F_UNLCK. */
+ short int l_whence; /* Where `l_start' is relative to (like `lseek'). */
+ __off_t l_start; /* Offset where the lock begins. */
+ __off_t l_len; /* Size of the locked area; zero means until EOF. */
+ __pid_t l_pid; /* Process holding the lock. */
+ };
+
+#ifdef __USE_LARGEFILE64
+struct flock64
+ {
+ short int l_type; /* Type of lock: F_RDLCK, F_WRLCK, or F_UNLCK. */
+ short int l_whence; /* Where `l_start' is relative to (like `lseek'). */
+ __off64_t l_start; /* Offset where the lock begins. */
+ __off64_t l_len; /* Size of the locked area; zero means until EOF. */
+ __pid_t l_pid; /* Process holding the lock. */
+ };
+#endif
+
+/* Include generic Linux declarations. */
+#include <bits/fcntl-linux.h>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/microblaze/bits/mman.h b/REORG.TODO/sysdeps/unix/sysv/linux/microblaze/bits/mman.h
new file mode 100644
index 0000000000..c82e7977cc
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/microblaze/bits/mman.h
@@ -0,0 +1,42 @@
+/* Definitions for POSIX memory map interface. Linux/MicroBlaze version.
+
+ Copyright (C) 1997-2017 Free Software Foundation, Inc.
+
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation; either version 2.1 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_MMAN_H
+# error "Never use <bits/mman.h> directly; include <sys/mman.h> instead."
+#endif
+
+/* The following definitions basically come from the kernel headers.
+ But the kernel header is not namespace clean. */
+
+#ifdef __USE_MISC
+/* These are Linux-specific. */
+# define MAP_GROWSDOWN 0x00100 /* Stack-like segment. */
+# define MAP_DENYWRITE 0x00800 /* ETXTBSY. */
+# define MAP_EXECUTABLE 0x01000 /* Mark it as an executable. */
+# define MAP_LOCKED 0x02000 /* Lock the mapping. */
+# define MAP_NORESERVE 0x04000 /* Don't check for reservations. */
+# define MAP_POPULATE 0x08000 /* Populate (prefault) pagetables. */
+# define MAP_NONBLOCK 0x10000 /* Do not block on IO. */
+# define MAP_STACK 0x20000 /* Allocation is for a stack. */
+# define MAP_HUGETLB 0x40000 /* Create huge page mapping. */
+#endif
+
+/* Include generic Linux declarations. */
+#include <bits/mman-linux.h>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/microblaze/bits/stat.h b/REORG.TODO/sysdeps/unix/sysv/linux/microblaze/bits/stat.h
new file mode 100644
index 0000000000..47fc8cacbd
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/microblaze/bits/stat.h
@@ -0,0 +1,203 @@
+/* Copyright (C) 1997-2017 Free Software Foundation, Inc.
+
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation; either version 2.1 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#if !defined _SYS_STAT_H && !defined _FCNTL_H
+# error "Never include <bits/stat.h> directly; use <sys/stat.h> instead."
+#endif
+
+#ifndef _BITS_STAT_H
+#define _BITS_STAT_H 1
+
+/* Versions of the `struct stat' data structure. */
+#define _STAT_VER_LINUX_OLD 1
+#define _STAT_VER_KERNEL 1
+#define _STAT_VER_SVR4 2
+#define _STAT_VER_LINUX 3
+#define _STAT_VER _STAT_VER_LINUX /* The one defined below. */
+
+/* Versions of the `xmknod' interface. */
+#define _MKNOD_VER_LINUX 1
+#define _MKNOD_VER_SVR4 2
+#define _MKNOD_VER _MKNOD_VER_LINUX /* The bits defined below. */
+
+#ifndef __USE_FILE_OFFSET64
+struct stat
+{
+ __dev_t st_dev; /* Device. */
+ __ino_t st_ino; /* File serial number. */
+ __mode_t st_mode; /* File mode. */
+ __nlink_t st_nlink; /* Link count. */
+ __uid_t st_uid; /* User ID of the file's owner. */
+ __gid_t st_gid; /* Group ID of the file's group. */
+ __dev_t st_rdev; /* Device number, if device. */
+ unsigned long __pad2;
+ __off_t st_size; /* Size of file, in bytes. */
+ __blksize_t st_blksize; /* Optimal block size for I/O. */
+ int __pad3;
+ __blkcnt_t st_blocks; /* Number 512-byte blocks allocated. */
+#ifdef __USE_XOPEN2K8
+ /* Nanosecond resolution timestamps are stored in a format
+ * equivalent to 'struct timespec'. This is the type used
+ * whenever possible but the Unix namespace rules do not allow the
+ * identifier 'timespec' to appear in the <sys/stat.h> header.
+ * Therefore we have to handle the use of this header in strictly
+ * standard-compliant sources special. */
+ struct timespec st_atim; /* Time of last access. */
+ struct timespec st_mtim; /* Time of last modification. */
+ struct timespec st_ctim; /* Time of last status change. */
+# define st_atime st_atim.tv_sec /* Backward compatibility. */
+# define st_mtime st_mtim.tv_sec
+# define st_ctime st_ctim.tv_sec
+#else
+ __time_t st_atime; /* Time of last access. */
+ unsigned long int st_atimensec; /* Nscecs of last access. */
+ __time_t st_mtime; /* Time of last modification. */
+ unsigned long int st_mtimensec; /* Nsecs of last modification. */
+ __time_t st_ctime; /* Time of last status change. */
+ unsigned long int st_ctimensec; /* Nsecs of last status change. */
+#endif
+ unsigned int __glibc_reserved4;
+ unsigned int __glibc_reserved5;
+};
+#else /* __USE_FILE_OFFSET64 */
+/* MS: If __USE_FILE_OFFSET64 is setup then struct stat should match stat64
+ * structure. Glibc has no type __dev64_t that's why I had to use standard
+ * type for st_dev and st_rdev. Several architectures uses pads after st_dev
+ * but this approach covers BIG and LITTLE endian. I think it is better to
+ * create one ifdef to separate stats structures. */
+struct stat
+{
+ unsigned long long st_dev; /* Device. */
+ __ino64_t st_ino; /* 32bit file serial number. */
+ __mode_t st_mode; /* File mode. */
+ __nlink_t st_nlink; /* Link count. */
+ __uid_t st_uid; /* User ID of the file's owner. */
+ __gid_t st_gid; /* Group ID of the file's group. */
+ unsigned long long st_rdev; /* Device number, if device. */
+ unsigned long long __pad2;
+ __off64_t st_size; /* Size of file, in bytes. */
+ __blksize_t st_blksize; /* Optimal block size for I/O. */
+ int __pad3;
+ __blkcnt64_t st_blocks; /* Number 512-byte blocks allocated. */
+#ifdef __USE_MISC
+ /* Nanosecond resolution timestamps are stored in a format
+ * equivalent to 'struct timespec'. This is the type used
+ * whenever possible but the Unix namespace rules do not allow the
+ * identifier 'timespec' to appear in the <sys/stat.h> header.
+ * Therefore we have to handle the use of this header in strictly
+ * standard-compliant sources special. */
+ struct timespec st_atim; /* Time of last access. */
+ struct timespec st_mtim; /* Time of last modification. */
+ struct timespec st_ctim; /* Time of last status change. */
+# define st_atime st_atim.tv_sec /* Backward compatibility. */
+# define st_mtime st_mtim.tv_sec
+# define st_ctime st_ctim.tv_sec
+#else
+ __time_t st_atime; /* Time of last access. */
+ unsigned long int st_atimensec; /* Nscecs of last access. */
+ __time_t st_mtime; /* Time of last modification. */
+ unsigned long int st_mtimensec; /* Nsecs of last modification. */
+ __time_t st_ctime; /* Time of last status change. */
+ unsigned long int st_ctimensec; /* Nsecs of last status change. */
+#endif
+ unsigned int __glibc_reserved4;
+ unsigned int __glibc_reserved5;
+};
+#endif /* __USE_FILE_OFFSET64 */
+
+#ifdef __USE_LARGEFILE64
+struct stat64
+{
+ unsigned long long st_dev; /* Device. */
+ __ino64_t st_ino; /* 32bit file serial number. */
+ __mode_t st_mode; /* File mode. */
+ __nlink_t st_nlink; /* Link count. */
+ __uid_t st_uid; /* User ID of the file's owner. */
+ __gid_t st_gid; /* Group ID of the file's group. */
+ unsigned long long st_rdev; /* Device number, if device. */
+ unsigned long long __pad2;
+ __off64_t st_size; /* Size of file, in bytes. */
+ __blksize_t st_blksize; /* Optimal block size for I/O. */
+ int __pad3;
+ __blkcnt64_t st_blocks; /* Number 512-byte blocks allocated. */
+#ifdef __USE_XOPEN2K8
+ /* Nanosecond resolution timestamps are stored in a format
+ * equivalent to 'struct timespec'. This is the type used
+ * whenever possible but the Unix namespace rules do not allow the
+ * identifier 'timespec' to appear in the <sys/stat.h> header.
+ * Therefore we have to handle the use of this header in strictly
+ * standard-compliant sources special. */
+ struct timespec st_atim; /* Time of last access. */
+ struct timespec st_mtim; /* Time of last modification. */
+ struct timespec st_ctim; /* Time of last status change. */
+# define st_atime st_atim.tv_sec /* Backward compatibility. */
+# define st_mtime st_mtim.tv_sec
+# define st_ctime st_ctim.tv_sec
+#else
+ __time_t st_atime; /* Time of last access. */
+ unsigned long int st_atimensec; /* Nscecs of last access. */
+ __time_t st_mtime; /* Time of last modification. */
+ unsigned long int st_mtimensec; /* Nsecs of last modification. */
+ __time_t st_ctime; /* Time of last status change. */
+ unsigned long int st_ctimensec; /* Nsecs of last status change. */
+#endif
+ unsigned int __glibc_reserved4;
+ unsigned int __glibc_reserved5;
+};
+#endif
+
+/* Tell code we have these members. */
+#define _STATBUF_ST_BLKSIZE
+#define _STATBUF_ST_RDEV
+/* Nanosecond resolution time values are supported. */
+#define _STATBUF_ST_NSEC
+
+/* Encoding of the file mode. */
+
+#define __S_IFMT 0170000 /* These bits determine file type. */
+
+/* File types. */
+#define __S_IFDIR 0040000 /* Directory. */
+#define __S_IFCHR 0020000 /* Character device. */
+#define __S_IFBLK 0060000 /* Block device. */
+#define __S_IFREG 0100000 /* Regular file. */
+#define __S_IFIFO 0010000 /* FIFO. */
+#define __S_IFLNK 0120000 /* Symbolic link. */
+#define __S_IFSOCK 0140000 /* Socket. */
+
+/* POSIX.1b objects. Note that these macros always evaluate to zero. But
+ they do it by enforcing the correct use of the macros. */
+#define __S_TYPEISMQ(buf) ((buf)->st_mode - (buf)->st_mode)
+#define __S_TYPEISSEM(buf) ((buf)->st_mode - (buf)->st_mode)
+#define __S_TYPEISSHM(buf) ((buf)->st_mode - (buf)->st_mode)
+
+/* Protection bits. */
+
+#define __S_ISUID 04000 /* Set user ID on execution. */
+#define __S_ISGID 02000 /* Set group ID on execution. */
+#define __S_ISVTX 01000 /* Save swapped text after use (sticky). */
+#define __S_IREAD 0400 /* Read by owner. */
+#define __S_IWRITE 0200 /* Write by owner. */
+#define __S_IEXEC 0100 /* Execute by owner. */
+
+#ifdef __USE_ATFILE
+# define UTIME_NOW ((1l << 30) - 1l)
+# define UTIME_OMIT ((1l << 30) - 2l)
+#endif
+
+#endif /* bits/stat.h. */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/microblaze/brk.c b/REORG.TODO/sysdeps/unix/sysv/linux/microblaze/brk.c
new file mode 100644
index 0000000000..2f71fbc7e8
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/microblaze/brk.c
@@ -0,0 +1,44 @@
+/* Copyright (C) 2011-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <unistd.h>
+#include <sysdep.h>
+
+/* This must be initialized data because commons can't have aliases. */
+void *__curbrk = 0;
+
+/* Old braindamage in GCC's crtstuff.c requires this symbol in an attempt
+ to work around different old braindamage in the old Linux ELF dynamic
+ linker. */
+weak_alias (__curbrk, ___brk_addr)
+
+int
+__brk (void *addr)
+{
+ INTERNAL_SYSCALL_DECL (err);
+
+ __curbrk = (void *) INTERNAL_SYSCALL (brk, err, 1, addr);
+ if (__curbrk < addr)
+ {
+ __set_errno (ENOMEM);
+ return -1;
+ }
+
+ return 0;
+}
+weak_alias (__brk, brk)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/microblaze/c++-types.data b/REORG.TODO/sysdeps/unix/sysv/linux/microblaze/c++-types.data
new file mode 100644
index 0000000000..fde53bf337
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/microblaze/c++-types.data
@@ -0,0 +1,67 @@
+blkcnt64_t:x
+blkcnt_t:l
+blksize_t:l
+caddr_t:Pc
+clockid_t:i
+clock_t:l
+daddr_t:i
+dev_t:y
+fd_mask:l
+fsblkcnt64_t:y
+fsblkcnt_t:m
+fsfilcnt64_t:y
+fsfilcnt_t:m
+fsid_t:8__fsid_t
+gid_t:j
+id_t:j
+ino64_t:y
+ino_t:m
+int16_t:s
+int32_t:i
+int64_t:x
+int8_t:a
+intptr_t:i
+key_t:i
+loff_t:x
+mode_t:j
+nlink_t:j
+off64_t:x
+off_t:l
+pid_t:i
+pthread_attr_t:14pthread_attr_t
+pthread_barrier_t:17pthread_barrier_t
+pthread_barrierattr_t:21pthread_barrierattr_t
+pthread_cond_t:14pthread_cond_t
+pthread_condattr_t:18pthread_condattr_t
+pthread_key_t:j
+pthread_mutex_t:15pthread_mutex_t
+pthread_mutexattr_t:19pthread_mutexattr_t
+pthread_once_t:i
+pthread_rwlock_t:16pthread_rwlock_t
+pthread_rwlockattr_t:20pthread_rwlockattr_t
+pthread_spinlock_t:i
+pthread_t:m
+quad_t:x
+register_t:i
+rlim64_t:y
+rlim_t:m
+sigset_t:10__sigset_t
+size_t:j
+socklen_t:j
+ssize_t:i
+suseconds_t:l
+time_t:l
+u_char:h
+uid_t:j
+uint:j
+u_int:j
+u_int16_t:t
+u_int32_t:j
+u_int64_t:y
+u_int8_t:h
+ulong:m
+u_long:m
+u_quad_t:y
+useconds_t:j
+ushort:t
+u_short:t
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/microblaze/clock-compat.c b/REORG.TODO/sysdeps/unix/sysv/linux/microblaze/clock-compat.c
new file mode 100644
index 0000000000..e5959d5c74
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/microblaze/clock-compat.c
@@ -0,0 +1,31 @@
+/* ABI compatibility redirects for clock_* symbols in librt.
+ MicroBlaze version.
+ Copyright (C) 2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <shlib-compat.h>
+
+/* These symbols were accidentally included in librt for MicroBlaze
+ despite the first release coming after the general obsoletion in
+ librt, so ensure they remain as part of the ABI. */
+
+#ifdef SHARED
+# undef SHLIB_COMPAT
+# define SHLIB_COMPAT(lib, introduced, obsoleted) 1
+#endif
+
+#include <rt/clock-compat.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/microblaze/clone.S b/REORG.TODO/sysdeps/unix/sysv/linux/microblaze/clone.S
new file mode 100644
index 0000000000..55d78dfee4
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/microblaze/clone.S
@@ -0,0 +1,73 @@
+/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
+
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+/* clone() is even more special than fork() as it mucks with stacks
+ and invokes a function in the right context after its all over. */
+
+#include <sysdep.h>
+#define _ERRNO_H 1
+#include <bits/errno.h>
+
+/* int clone (int (*fn)(void *arg), void *child_stack, int flags, void *arg,
+ pid_t *ptid, struct user_desc *tls, pid_t *ctid);
+
+ INCOMING: r5 (fn), r6 (child_stack), r7 (flags), r8 (arg), r9 (ptid)
+ r10 (tls), 28 (r1) ctid
+
+ OUTGOING:
+
+ linux: arch/microblaze/entry.S: sys_clone expects
+ r5 (flags) r6 (child stack) r7 (stack_size) r8 (ptid)r9 (ctid)
+ r10 (tls)
+*/
+
+ .text
+ENTRY (__clone)
+ addik r3,r0,-EINVAL
+ beqi r5,SYSCALL_ERROR_LABEL ; // Invalid func
+ beqi r6,SYSCALL_ERROR_LABEL ; // Invalid stack
+ addik r6,r6,-8
+ swi r5,r6,0 ; // Push fn onto child's stack
+ swi r8,r6,4 ; // Push arg for child
+ addk r5,r0,r7 ; // flags for clone() syscall
+ addk r7,r0,r0
+ addk r8,r0,r9 ; // parent tid ptr
+ lwi r9,r1,28 ; // child tid ptr
+ addik r12,r0,SYS_ify(clone)
+ brki r14,8
+ addk r0,r0,r0
+ addik r4,r0,-4095
+ cmpu r4,r4,r3
+ bgei r4,SYSCALL_ERROR_LABEL
+ beqi r3,L(thread_start)
+ rtsd r15,8
+ nop
+
+L(thread_start):
+ lwi r12,r1,0 ; // fn
+ lwi r5,r1,4 ; // arg
+ brald r15,r12
+ nop
+ addk r5,r0,r3
+ addik r12,r0,SYS_ify(exit)
+ brki r14,8
+ nop
+PSEUDO_END(__clone)
+
+libc_hidden_def (__clone)
+weak_alias (__clone,clone)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/microblaze/fcntl.c b/REORG.TODO/sysdeps/unix/sysv/linux/microblaze/fcntl.c
new file mode 100644
index 0000000000..ea951bc4f9
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/microblaze/fcntl.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/i386/fcntl.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/microblaze/fxstat.c b/REORG.TODO/sysdeps/unix/sysv/linux/microblaze/fxstat.c
new file mode 100644
index 0000000000..4f219f0b9d
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/microblaze/fxstat.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/i386/fxstat.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/microblaze/fxstatat.c b/REORG.TODO/sysdeps/unix/sysv/linux/microblaze/fxstatat.c
new file mode 100644
index 0000000000..0f8b3135d8
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/microblaze/fxstatat.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/i386/fxstatat.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/microblaze/getsysstats.c b/REORG.TODO/sysdeps/unix/sysv/linux/microblaze/getsysstats.c
new file mode 100644
index 0000000000..31f8b09e46
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/microblaze/getsysstats.c
@@ -0,0 +1,34 @@
+/* Copyright (C) 1997-2017 Free Software Foundation, Inc.
+
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation; either version 2.1 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+/* We need to define a special parser for /proc/cpuinfo. */
+#define GET_NPROCS_PARSER(FD, BUFFER, CP, RE, BUFFER_END, RESULT) \
+ do \
+ { \
+ (RESULT) = 0; \
+ /* Read all lines and count the lines starting with the string \
+ "CPU-Family:". We don't have to fear extremely long lines since \
+ the kernel will not generate them. 8192 bytes are really enough. */ \
+ char *l; \
+ while ((l = next_line (FD, BUFFER, &CP, &RE, BUFFER_END)) != NULL) \
+ if (strncmp (l, "CPU-Family:", 11) == 0) \
+ ++(RESULT); \
+ } \
+ while (0)
+
+#include <sysdeps/unix/sysv/linux/getsysstats.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/microblaze/kernel-features.h b/REORG.TODO/sysdeps/unix/sysv/linux/microblaze/kernel-features.h
new file mode 100644
index 0000000000..0257524777
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/microblaze/kernel-features.h
@@ -0,0 +1,49 @@
+/* Copyright (C) 2011-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+
+/* MicroBlaze uses socketcall. */
+#define __ASSUME_SOCKETCALL 1
+
+/* All supported kernel versions for MicroBlaze have these syscalls. */
+#define __ASSUME_SOCKET_SYSCALL 1
+#define __ASSUME_BIND_SYSCALL 1
+#define __ASSUME_CONNECT_SYSCALL 1
+#define __ASSUME_LISTEN_SYSCALL 1
+#define __ASSUME_GETSOCKNAME_SYSCALL 1
+#define __ASSUME_GETPEERNAME_SYSCALL 1
+#define __ASSUME_SOCKETPAIR_SYSCALL 1
+#define __ASSUME_SEND_SYSCALL 1
+#define __ASSUME_RECV_SYSCALL 1
+#define __ASSUME_SHUTDOWN_SYSCALL 1
+#define __ASSUME_GETSOCKOPT_SYSCALL 1
+#define __ASSUME_SETSOCKOPT_SYSCALL 1
+
+#include_next <kernel-features.h>
+
+/* Support for the pselect6, preadv and pwritev syscalls was added in
+ 3.15. */
+#if __LINUX_KERNEL_VERSION < 0x030f00
+# undef __ASSUME_PSELECT
+# undef __ASSUME_PREADV
+# undef __ASSUME_PWRITEV
+#endif
+
+/* Support for the sendmmsg syscall was added in 3.3. */
+#if __LINUX_KERNEL_VERSION < 0x030300
+# undef __ASSUME_SENDMMSG_SYSCALL
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/microblaze/kernel_stat.h b/REORG.TODO/sysdeps/unix/sysv/linux/microblaze/kernel_stat.h
new file mode 100644
index 0000000000..d885d151ec
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/microblaze/kernel_stat.h
@@ -0,0 +1,52 @@
+/* Definition of `struct stat' used in the kernel
+ Copyright (C) 2013-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/>. */
+
+struct kernel_stat
+{
+ unsigned long st_dev; /* Device. */
+ unsigned long st_ino; /* File serial number. */
+ unsigned int st_mode; /* File mode. */
+ unsigned int st_nlink; /* Link count. */
+ unsigned int st_uid; /* User ID of the file's owner. */
+ unsigned int st_gid; /* Group ID of the file's group. */
+ unsigned long st_rdev; /* Device number, if device. */
+ unsigned long __pad2;
+#define _HAVE_STAT___PAD2
+#define _HAVE_STAT64___PAD2
+ long st_size; /* Size of file, in bytes. */
+ int st_blksize; /* Optimal block size for I/O. */
+ int __pad3;
+#define _HAVE_STAT___PAD3
+#define _HAVE_STAT64___PAD3
+ long st_blocks; /* Number 512-byte blocks allocated. */
+ struct timespec st_atim;
+ struct timespec st_mtim;
+ struct timespec st_ctim;
+#define _HAVE_STAT_NSEC
+#define _HAVE_STAT64_NSEC
+ unsigned int __glibc_reserved4;
+#define _HAVE_STAT___UNUSED4
+#define _HAVE_STAT64___UNUSED4
+ unsigned int __glibc_reserved5;
+#define _HAVE_STAT___UNUSED5
+#define _HAVE_STAT64___UNUSED5
+};
+
+#define XSTAT_IS_XSTAT64 0
+#define STATFS_IS_STATFS64 0
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/microblaze/ld.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/microblaze/ld.abilist
new file mode 100644
index 0000000000..265085edc8
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/microblaze/ld.abilist
@@ -0,0 +1,10 @@
+GLIBC_2.18 GLIBC_2.18 A
+GLIBC_2.18 __libc_stack_end D 0x4
+GLIBC_2.18 __stack_chk_guard D 0x4
+GLIBC_2.18 __tls_get_addr F
+GLIBC_2.18 _dl_mcount F
+GLIBC_2.18 _r_debug D 0x14
+GLIBC_2.18 calloc F
+GLIBC_2.18 free F
+GLIBC_2.18 malloc F
+GLIBC_2.18 realloc F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/microblaze/libBrokenLocale.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/microblaze/libBrokenLocale.abilist
new file mode 100644
index 0000000000..76d989d468
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/microblaze/libBrokenLocale.abilist
@@ -0,0 +1,2 @@
+GLIBC_2.18 GLIBC_2.18 A
+GLIBC_2.18 __ctype_get_mb_cur_max F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/microblaze/libanl.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/microblaze/libanl.abilist
new file mode 100644
index 0000000000..cb616b1c3e
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/microblaze/libanl.abilist
@@ -0,0 +1,5 @@
+GLIBC_2.18 GLIBC_2.18 A
+GLIBC_2.18 gai_cancel F
+GLIBC_2.18 gai_error F
+GLIBC_2.18 gai_suspend F
+GLIBC_2.18 getaddrinfo_a F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/microblaze/libc.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/microblaze/libc.abilist
new file mode 100644
index 0000000000..16aa25485f
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/microblaze/libc.abilist
@@ -0,0 +1,2105 @@
+GLIBC_2.18 GLIBC_2.18 A
+GLIBC_2.18 _Exit F
+GLIBC_2.18 _IO_2_1_stderr_ D 0x98
+GLIBC_2.18 _IO_2_1_stdin_ D 0x98
+GLIBC_2.18 _IO_2_1_stdout_ D 0x98
+GLIBC_2.18 _IO_adjust_column F
+GLIBC_2.18 _IO_adjust_wcolumn F
+GLIBC_2.18 _IO_default_doallocate F
+GLIBC_2.18 _IO_default_finish F
+GLIBC_2.18 _IO_default_pbackfail F
+GLIBC_2.18 _IO_default_uflow F
+GLIBC_2.18 _IO_default_xsgetn F
+GLIBC_2.18 _IO_default_xsputn F
+GLIBC_2.18 _IO_do_write F
+GLIBC_2.18 _IO_doallocbuf F
+GLIBC_2.18 _IO_fclose F
+GLIBC_2.18 _IO_fdopen F
+GLIBC_2.18 _IO_feof F
+GLIBC_2.18 _IO_ferror F
+GLIBC_2.18 _IO_fflush F
+GLIBC_2.18 _IO_fgetpos F
+GLIBC_2.18 _IO_fgetpos64 F
+GLIBC_2.18 _IO_fgets F
+GLIBC_2.18 _IO_file_attach F
+GLIBC_2.18 _IO_file_close F
+GLIBC_2.18 _IO_file_close_it F
+GLIBC_2.18 _IO_file_doallocate F
+GLIBC_2.18 _IO_file_finish F
+GLIBC_2.18 _IO_file_fopen F
+GLIBC_2.18 _IO_file_init F
+GLIBC_2.18 _IO_file_jumps D 0x54
+GLIBC_2.18 _IO_file_open F
+GLIBC_2.18 _IO_file_overflow F
+GLIBC_2.18 _IO_file_read F
+GLIBC_2.18 _IO_file_seek F
+GLIBC_2.18 _IO_file_seekoff F
+GLIBC_2.18 _IO_file_setbuf F
+GLIBC_2.18 _IO_file_stat F
+GLIBC_2.18 _IO_file_sync F
+GLIBC_2.18 _IO_file_underflow F
+GLIBC_2.18 _IO_file_write F
+GLIBC_2.18 _IO_file_xsputn F
+GLIBC_2.18 _IO_flockfile F
+GLIBC_2.18 _IO_flush_all F
+GLIBC_2.18 _IO_flush_all_linebuffered F
+GLIBC_2.18 _IO_fopen F
+GLIBC_2.18 _IO_fprintf F
+GLIBC_2.18 _IO_fputs F
+GLIBC_2.18 _IO_fread F
+GLIBC_2.18 _IO_free_backup_area F
+GLIBC_2.18 _IO_free_wbackup_area F
+GLIBC_2.18 _IO_fsetpos F
+GLIBC_2.18 _IO_fsetpos64 F
+GLIBC_2.18 _IO_ftell F
+GLIBC_2.18 _IO_ftrylockfile F
+GLIBC_2.18 _IO_funlockfile F
+GLIBC_2.18 _IO_fwrite F
+GLIBC_2.18 _IO_getc F
+GLIBC_2.18 _IO_getline F
+GLIBC_2.18 _IO_getline_info F
+GLIBC_2.18 _IO_gets F
+GLIBC_2.18 _IO_init F
+GLIBC_2.18 _IO_init_marker F
+GLIBC_2.18 _IO_init_wmarker F
+GLIBC_2.18 _IO_iter_begin F
+GLIBC_2.18 _IO_iter_end F
+GLIBC_2.18 _IO_iter_file F
+GLIBC_2.18 _IO_iter_next F
+GLIBC_2.18 _IO_least_wmarker F
+GLIBC_2.18 _IO_link_in F
+GLIBC_2.18 _IO_list_all D 0x4
+GLIBC_2.18 _IO_list_lock F
+GLIBC_2.18 _IO_list_resetlock F
+GLIBC_2.18 _IO_list_unlock F
+GLIBC_2.18 _IO_marker_delta F
+GLIBC_2.18 _IO_marker_difference F
+GLIBC_2.18 _IO_padn F
+GLIBC_2.18 _IO_peekc_locked F
+GLIBC_2.18 _IO_popen F
+GLIBC_2.18 _IO_printf F
+GLIBC_2.18 _IO_proc_close F
+GLIBC_2.18 _IO_proc_open F
+GLIBC_2.18 _IO_putc F
+GLIBC_2.18 _IO_puts F
+GLIBC_2.18 _IO_remove_marker F
+GLIBC_2.18 _IO_seekmark F
+GLIBC_2.18 _IO_seekoff F
+GLIBC_2.18 _IO_seekpos F
+GLIBC_2.18 _IO_seekwmark F
+GLIBC_2.18 _IO_setb F
+GLIBC_2.18 _IO_setbuffer F
+GLIBC_2.18 _IO_setvbuf F
+GLIBC_2.18 _IO_sgetn F
+GLIBC_2.18 _IO_sprintf F
+GLIBC_2.18 _IO_sputbackc F
+GLIBC_2.18 _IO_sputbackwc F
+GLIBC_2.18 _IO_sscanf F
+GLIBC_2.18 _IO_str_init_readonly F
+GLIBC_2.18 _IO_str_init_static F
+GLIBC_2.18 _IO_str_overflow F
+GLIBC_2.18 _IO_str_pbackfail F
+GLIBC_2.18 _IO_str_seekoff F
+GLIBC_2.18 _IO_str_underflow F
+GLIBC_2.18 _IO_sungetc F
+GLIBC_2.18 _IO_sungetwc F
+GLIBC_2.18 _IO_switch_to_get_mode F
+GLIBC_2.18 _IO_switch_to_main_wget_area F
+GLIBC_2.18 _IO_switch_to_wbackup_area F
+GLIBC_2.18 _IO_switch_to_wget_mode F
+GLIBC_2.18 _IO_un_link F
+GLIBC_2.18 _IO_ungetc F
+GLIBC_2.18 _IO_unsave_markers F
+GLIBC_2.18 _IO_unsave_wmarkers F
+GLIBC_2.18 _IO_vfprintf F
+GLIBC_2.18 _IO_vfscanf F
+GLIBC_2.18 _IO_vsprintf F
+GLIBC_2.18 _IO_wdefault_doallocate F
+GLIBC_2.18 _IO_wdefault_finish F
+GLIBC_2.18 _IO_wdefault_pbackfail F
+GLIBC_2.18 _IO_wdefault_uflow F
+GLIBC_2.18 _IO_wdefault_xsgetn F
+GLIBC_2.18 _IO_wdefault_xsputn F
+GLIBC_2.18 _IO_wdo_write F
+GLIBC_2.18 _IO_wdoallocbuf F
+GLIBC_2.18 _IO_wfile_jumps D 0x54
+GLIBC_2.18 _IO_wfile_overflow F
+GLIBC_2.18 _IO_wfile_seekoff F
+GLIBC_2.18 _IO_wfile_sync F
+GLIBC_2.18 _IO_wfile_underflow F
+GLIBC_2.18 _IO_wfile_xsputn F
+GLIBC_2.18 _IO_wmarker_delta F
+GLIBC_2.18 _IO_wsetb F
+GLIBC_2.18 ___brk_addr D 0x4
+GLIBC_2.18 __adjtimex F
+GLIBC_2.18 __after_morecore_hook D 0x4
+GLIBC_2.18 __argz_count F
+GLIBC_2.18 __argz_next F
+GLIBC_2.18 __argz_stringify F
+GLIBC_2.18 __asprintf F
+GLIBC_2.18 __asprintf_chk F
+GLIBC_2.18 __assert F
+GLIBC_2.18 __assert_fail F
+GLIBC_2.18 __assert_perror_fail F
+GLIBC_2.18 __backtrace F
+GLIBC_2.18 __backtrace_symbols F
+GLIBC_2.18 __backtrace_symbols_fd F
+GLIBC_2.18 __bsd_getpgrp F
+GLIBC_2.18 __bzero F
+GLIBC_2.18 __check_rhosts_file D 0x4
+GLIBC_2.18 __chk_fail F
+GLIBC_2.18 __clone F
+GLIBC_2.18 __close F
+GLIBC_2.18 __cmsg_nxthdr F
+GLIBC_2.18 __confstr_chk F
+GLIBC_2.18 __connect F
+GLIBC_2.18 __ctype_b_loc F
+GLIBC_2.18 __ctype_get_mb_cur_max F
+GLIBC_2.18 __ctype_tolower_loc F
+GLIBC_2.18 __ctype_toupper_loc F
+GLIBC_2.18 __curbrk D 0x4
+GLIBC_2.18 __cxa_at_quick_exit F
+GLIBC_2.18 __cxa_atexit F
+GLIBC_2.18 __cxa_finalize F
+GLIBC_2.18 __cxa_thread_atexit_impl F
+GLIBC_2.18 __cyg_profile_func_enter F
+GLIBC_2.18 __cyg_profile_func_exit F
+GLIBC_2.18 __daylight D 0x4
+GLIBC_2.18 __dcgettext F
+GLIBC_2.18 __default_morecore F
+GLIBC_2.18 __dgettext F
+GLIBC_2.18 __dprintf_chk F
+GLIBC_2.18 __dup2 F
+GLIBC_2.18 __duplocale F
+GLIBC_2.18 __endmntent F
+GLIBC_2.18 __environ D 0x4
+GLIBC_2.18 __errno_location F
+GLIBC_2.18 __fbufsize F
+GLIBC_2.18 __fcntl F
+GLIBC_2.18 __fdelt_chk F
+GLIBC_2.18 __fdelt_warn F
+GLIBC_2.18 __ffs F
+GLIBC_2.18 __fgets_chk F
+GLIBC_2.18 __fgets_unlocked_chk F
+GLIBC_2.18 __fgetws_chk F
+GLIBC_2.18 __fgetws_unlocked_chk F
+GLIBC_2.18 __finite F
+GLIBC_2.18 __finitef F
+GLIBC_2.18 __finitel F
+GLIBC_2.18 __flbf F
+GLIBC_2.18 __fork F
+GLIBC_2.18 __fpending F
+GLIBC_2.18 __fprintf_chk F
+GLIBC_2.18 __fpu_control D 0x4
+GLIBC_2.18 __fpurge F
+GLIBC_2.18 __fread_chk F
+GLIBC_2.18 __fread_unlocked_chk F
+GLIBC_2.18 __freadable F
+GLIBC_2.18 __freading F
+GLIBC_2.18 __free_hook D 0x4
+GLIBC_2.18 __freelocale F
+GLIBC_2.18 __fsetlocking F
+GLIBC_2.18 __fwprintf_chk F
+GLIBC_2.18 __fwritable F
+GLIBC_2.18 __fwriting F
+GLIBC_2.18 __fxstat F
+GLIBC_2.18 __fxstat64 F
+GLIBC_2.18 __fxstatat F
+GLIBC_2.18 __fxstatat64 F
+GLIBC_2.18 __getauxval F
+GLIBC_2.18 __getcwd_chk F
+GLIBC_2.18 __getdelim F
+GLIBC_2.18 __getdomainname_chk F
+GLIBC_2.18 __getgroups_chk F
+GLIBC_2.18 __gethostname_chk F
+GLIBC_2.18 __getlogin_r_chk F
+GLIBC_2.18 __getmntent_r F
+GLIBC_2.18 __getpagesize F
+GLIBC_2.18 __getpgid F
+GLIBC_2.18 __getpid F
+GLIBC_2.18 __gets_chk F
+GLIBC_2.18 __gettimeofday F
+GLIBC_2.18 __getwd_chk F
+GLIBC_2.18 __gmtime_r F
+GLIBC_2.18 __h_errno_location F
+GLIBC_2.18 __isalnum_l F
+GLIBC_2.18 __isalpha_l F
+GLIBC_2.18 __isascii_l F
+GLIBC_2.18 __isblank_l F
+GLIBC_2.18 __iscntrl_l F
+GLIBC_2.18 __isctype F
+GLIBC_2.18 __isdigit_l F
+GLIBC_2.18 __isgraph_l F
+GLIBC_2.18 __isinf F
+GLIBC_2.18 __isinff F
+GLIBC_2.18 __isinfl F
+GLIBC_2.18 __islower_l F
+GLIBC_2.18 __isnan F
+GLIBC_2.18 __isnanf F
+GLIBC_2.18 __isnanl F
+GLIBC_2.18 __isoc99_fscanf F
+GLIBC_2.18 __isoc99_fwscanf F
+GLIBC_2.18 __isoc99_scanf F
+GLIBC_2.18 __isoc99_sscanf F
+GLIBC_2.18 __isoc99_swscanf F
+GLIBC_2.18 __isoc99_vfscanf F
+GLIBC_2.18 __isoc99_vfwscanf F
+GLIBC_2.18 __isoc99_vscanf F
+GLIBC_2.18 __isoc99_vsscanf F
+GLIBC_2.18 __isoc99_vswscanf F
+GLIBC_2.18 __isoc99_vwscanf F
+GLIBC_2.18 __isoc99_wscanf F
+GLIBC_2.18 __isprint_l F
+GLIBC_2.18 __ispunct_l F
+GLIBC_2.18 __isspace_l F
+GLIBC_2.18 __isupper_l F
+GLIBC_2.18 __iswalnum_l F
+GLIBC_2.18 __iswalpha_l F
+GLIBC_2.18 __iswblank_l F
+GLIBC_2.18 __iswcntrl_l F
+GLIBC_2.18 __iswctype F
+GLIBC_2.18 __iswctype_l F
+GLIBC_2.18 __iswdigit_l F
+GLIBC_2.18 __iswgraph_l F
+GLIBC_2.18 __iswlower_l F
+GLIBC_2.18 __iswprint_l F
+GLIBC_2.18 __iswpunct_l F
+GLIBC_2.18 __iswspace_l F
+GLIBC_2.18 __iswupper_l F
+GLIBC_2.18 __iswxdigit_l F
+GLIBC_2.18 __isxdigit_l F
+GLIBC_2.18 __ivaliduser F
+GLIBC_2.18 __key_decryptsession_pk_LOCAL D 0x4
+GLIBC_2.18 __key_encryptsession_pk_LOCAL D 0x4
+GLIBC_2.18 __key_gendes_LOCAL D 0x4
+GLIBC_2.18 __libc_allocate_rtsig F
+GLIBC_2.18 __libc_calloc F
+GLIBC_2.18 __libc_current_sigrtmax F
+GLIBC_2.18 __libc_current_sigrtmin F
+GLIBC_2.18 __libc_free F
+GLIBC_2.18 __libc_freeres F
+GLIBC_2.18 __libc_init_first F
+GLIBC_2.18 __libc_mallinfo F
+GLIBC_2.18 __libc_malloc F
+GLIBC_2.18 __libc_mallopt F
+GLIBC_2.18 __libc_memalign F
+GLIBC_2.18 __libc_pvalloc F
+GLIBC_2.18 __libc_realloc F
+GLIBC_2.18 __libc_sa_len F
+GLIBC_2.18 __libc_start_main F
+GLIBC_2.18 __libc_valloc F
+GLIBC_2.18 __longjmp_chk F
+GLIBC_2.18 __lseek F
+GLIBC_2.18 __lxstat F
+GLIBC_2.18 __lxstat64 F
+GLIBC_2.18 __malloc_hook D 0x4
+GLIBC_2.18 __malloc_initialize_hook D 0x4
+GLIBC_2.18 __mbrlen F
+GLIBC_2.18 __mbrtowc F
+GLIBC_2.18 __mbsnrtowcs_chk F
+GLIBC_2.18 __mbsrtowcs_chk F
+GLIBC_2.18 __mbstowcs_chk F
+GLIBC_2.18 __memalign_hook D 0x4
+GLIBC_2.18 __memcpy_chk F
+GLIBC_2.18 __memmove_chk F
+GLIBC_2.18 __mempcpy F
+GLIBC_2.18 __mempcpy_chk F
+GLIBC_2.18 __mempcpy_small F
+GLIBC_2.18 __memset_chk F
+GLIBC_2.18 __monstartup F
+GLIBC_2.18 __morecore D 0x4
+GLIBC_2.18 __nanosleep F
+GLIBC_2.18 __newlocale F
+GLIBC_2.18 __nl_langinfo_l F
+GLIBC_2.18 __nss_configure_lookup F
+GLIBC_2.18 __nss_database_lookup F
+GLIBC_2.18 __nss_group_lookup F
+GLIBC_2.18 __nss_hostname_digits_dots F
+GLIBC_2.18 __nss_hosts_lookup F
+GLIBC_2.18 __nss_next F
+GLIBC_2.18 __nss_passwd_lookup F
+GLIBC_2.18 __obstack_printf_chk F
+GLIBC_2.18 __obstack_vprintf_chk F
+GLIBC_2.18 __open F
+GLIBC_2.18 __open64 F
+GLIBC_2.18 __open64_2 F
+GLIBC_2.18 __open_2 F
+GLIBC_2.18 __openat64_2 F
+GLIBC_2.18 __openat_2 F
+GLIBC_2.18 __overflow F
+GLIBC_2.18 __pipe F
+GLIBC_2.18 __poll F
+GLIBC_2.18 __poll_chk F
+GLIBC_2.18 __posix_getopt F
+GLIBC_2.18 __ppoll_chk F
+GLIBC_2.18 __pread64 F
+GLIBC_2.18 __pread64_chk F
+GLIBC_2.18 __pread_chk F
+GLIBC_2.18 __printf_chk F
+GLIBC_2.18 __printf_fp F
+GLIBC_2.18 __profile_frequency F
+GLIBC_2.18 __progname D 0x4
+GLIBC_2.18 __progname_full D 0x4
+GLIBC_2.18 __ptsname_r_chk F
+GLIBC_2.18 __pwrite64 F
+GLIBC_2.18 __rawmemchr F
+GLIBC_2.18 __rcmd_errstr D 0x4
+GLIBC_2.18 __read F
+GLIBC_2.18 __read_chk F
+GLIBC_2.18 __readlink_chk F
+GLIBC_2.18 __readlinkat_chk F
+GLIBC_2.18 __realloc_hook D 0x4
+GLIBC_2.18 __realpath_chk F
+GLIBC_2.18 __recv_chk F
+GLIBC_2.18 __recvfrom_chk F
+GLIBC_2.18 __register_atfork F
+GLIBC_2.18 __res_init F
+GLIBC_2.18 __res_nclose F
+GLIBC_2.18 __res_ninit F
+GLIBC_2.18 __res_randomid F
+GLIBC_2.18 __res_state F
+GLIBC_2.18 __rpc_thread_createerr F
+GLIBC_2.18 __rpc_thread_svc_fdset F
+GLIBC_2.18 __rpc_thread_svc_max_pollfd F
+GLIBC_2.18 __rpc_thread_svc_pollfd F
+GLIBC_2.18 __sbrk F
+GLIBC_2.18 __sched_cpualloc F
+GLIBC_2.18 __sched_cpucount F
+GLIBC_2.18 __sched_cpufree F
+GLIBC_2.18 __sched_get_priority_max F
+GLIBC_2.18 __sched_get_priority_min F
+GLIBC_2.18 __sched_getparam F
+GLIBC_2.18 __sched_getscheduler F
+GLIBC_2.18 __sched_setscheduler F
+GLIBC_2.18 __sched_yield F
+GLIBC_2.18 __select F
+GLIBC_2.18 __send F
+GLIBC_2.18 __setmntent F
+GLIBC_2.18 __setpgid F
+GLIBC_2.18 __sigaction F
+GLIBC_2.18 __sigaddset F
+GLIBC_2.18 __sigdelset F
+GLIBC_2.18 __sigismember F
+GLIBC_2.18 __signbit F
+GLIBC_2.18 __signbitf F
+GLIBC_2.18 __sigpause F
+GLIBC_2.18 __sigsetjmp F
+GLIBC_2.18 __sigsuspend F
+GLIBC_2.18 __snprintf_chk F
+GLIBC_2.18 __sprintf_chk F
+GLIBC_2.18 __stack_chk_fail F
+GLIBC_2.18 __statfs F
+GLIBC_2.18 __stpcpy F
+GLIBC_2.18 __stpcpy_chk F
+GLIBC_2.18 __stpcpy_small F
+GLIBC_2.18 __stpncpy F
+GLIBC_2.18 __stpncpy_chk F
+GLIBC_2.18 __strcasecmp F
+GLIBC_2.18 __strcasecmp_l F
+GLIBC_2.18 __strcasestr F
+GLIBC_2.18 __strcat_chk F
+GLIBC_2.18 __strcoll_l F
+GLIBC_2.18 __strcpy_chk F
+GLIBC_2.18 __strcpy_small F
+GLIBC_2.18 __strcspn_c1 F
+GLIBC_2.18 __strcspn_c2 F
+GLIBC_2.18 __strcspn_c3 F
+GLIBC_2.18 __strdup F
+GLIBC_2.18 __strerror_r F
+GLIBC_2.18 __strfmon_l F
+GLIBC_2.18 __strftime_l F
+GLIBC_2.18 __strncasecmp_l F
+GLIBC_2.18 __strncat_chk F
+GLIBC_2.18 __strncpy_chk F
+GLIBC_2.18 __strndup F
+GLIBC_2.18 __strpbrk_c2 F
+GLIBC_2.18 __strpbrk_c3 F
+GLIBC_2.18 __strsep_1c F
+GLIBC_2.18 __strsep_2c F
+GLIBC_2.18 __strsep_3c F
+GLIBC_2.18 __strsep_g F
+GLIBC_2.18 __strspn_c1 F
+GLIBC_2.18 __strspn_c2 F
+GLIBC_2.18 __strspn_c3 F
+GLIBC_2.18 __strtod_internal F
+GLIBC_2.18 __strtod_l F
+GLIBC_2.18 __strtof_internal F
+GLIBC_2.18 __strtof_l F
+GLIBC_2.18 __strtok_r F
+GLIBC_2.18 __strtok_r_1c F
+GLIBC_2.18 __strtol_internal F
+GLIBC_2.18 __strtol_l F
+GLIBC_2.18 __strtold_internal F
+GLIBC_2.18 __strtold_l F
+GLIBC_2.18 __strtoll_internal F
+GLIBC_2.18 __strtoll_l F
+GLIBC_2.18 __strtoul_internal F
+GLIBC_2.18 __strtoul_l F
+GLIBC_2.18 __strtoull_internal F
+GLIBC_2.18 __strtoull_l F
+GLIBC_2.18 __strverscmp F
+GLIBC_2.18 __strxfrm_l F
+GLIBC_2.18 __swprintf_chk F
+GLIBC_2.18 __sysconf F
+GLIBC_2.18 __sysctl F
+GLIBC_2.18 __syslog_chk F
+GLIBC_2.18 __sysv_signal F
+GLIBC_2.18 __timezone D 0x4
+GLIBC_2.18 __toascii_l F
+GLIBC_2.18 __tolower_l F
+GLIBC_2.18 __toupper_l F
+GLIBC_2.18 __towctrans F
+GLIBC_2.18 __towctrans_l F
+GLIBC_2.18 __towlower_l F
+GLIBC_2.18 __towupper_l F
+GLIBC_2.18 __ttyname_r_chk F
+GLIBC_2.18 __tzname D 0x8
+GLIBC_2.18 __uflow F
+GLIBC_2.18 __underflow F
+GLIBC_2.18 __uselocale F
+GLIBC_2.18 __vasprintf_chk F
+GLIBC_2.18 __vdprintf_chk F
+GLIBC_2.18 __vfork F
+GLIBC_2.18 __vfprintf_chk F
+GLIBC_2.18 __vfscanf F
+GLIBC_2.18 __vfwprintf_chk F
+GLIBC_2.18 __vprintf_chk F
+GLIBC_2.18 __vsnprintf F
+GLIBC_2.18 __vsnprintf_chk F
+GLIBC_2.18 __vsprintf_chk F
+GLIBC_2.18 __vsscanf F
+GLIBC_2.18 __vswprintf_chk F
+GLIBC_2.18 __vsyslog_chk F
+GLIBC_2.18 __vwprintf_chk F
+GLIBC_2.18 __wait F
+GLIBC_2.18 __waitpid F
+GLIBC_2.18 __wcpcpy_chk F
+GLIBC_2.18 __wcpncpy_chk F
+GLIBC_2.18 __wcrtomb_chk F
+GLIBC_2.18 __wcscasecmp_l F
+GLIBC_2.18 __wcscat_chk F
+GLIBC_2.18 __wcscoll_l F
+GLIBC_2.18 __wcscpy_chk F
+GLIBC_2.18 __wcsftime_l F
+GLIBC_2.18 __wcsncasecmp_l F
+GLIBC_2.18 __wcsncat_chk F
+GLIBC_2.18 __wcsncpy_chk F
+GLIBC_2.18 __wcsnrtombs_chk F
+GLIBC_2.18 __wcsrtombs_chk F
+GLIBC_2.18 __wcstod_internal F
+GLIBC_2.18 __wcstod_l F
+GLIBC_2.18 __wcstof_internal F
+GLIBC_2.18 __wcstof_l F
+GLIBC_2.18 __wcstol_internal F
+GLIBC_2.18 __wcstol_l F
+GLIBC_2.18 __wcstold_internal F
+GLIBC_2.18 __wcstold_l F
+GLIBC_2.18 __wcstoll_internal F
+GLIBC_2.18 __wcstoll_l F
+GLIBC_2.18 __wcstombs_chk F
+GLIBC_2.18 __wcstoul_internal F
+GLIBC_2.18 __wcstoul_l F
+GLIBC_2.18 __wcstoull_internal F
+GLIBC_2.18 __wcstoull_l F
+GLIBC_2.18 __wcsxfrm_l F
+GLIBC_2.18 __wctomb_chk F
+GLIBC_2.18 __wctrans_l F
+GLIBC_2.18 __wctype_l F
+GLIBC_2.18 __wmemcpy_chk F
+GLIBC_2.18 __wmemmove_chk F
+GLIBC_2.18 __wmempcpy_chk F
+GLIBC_2.18 __wmemset_chk F
+GLIBC_2.18 __woverflow F
+GLIBC_2.18 __wprintf_chk F
+GLIBC_2.18 __write F
+GLIBC_2.18 __wuflow F
+GLIBC_2.18 __wunderflow F
+GLIBC_2.18 __xmknod F
+GLIBC_2.18 __xmknodat F
+GLIBC_2.18 __xpg_basename F
+GLIBC_2.18 __xpg_sigpause F
+GLIBC_2.18 __xpg_strerror_r F
+GLIBC_2.18 __xstat F
+GLIBC_2.18 __xstat64 F
+GLIBC_2.18 _authenticate F
+GLIBC_2.18 _dl_mcount_wrapper F
+GLIBC_2.18 _dl_mcount_wrapper_check F
+GLIBC_2.18 _environ D 0x4
+GLIBC_2.18 _exit F
+GLIBC_2.18 _flushlbf F
+GLIBC_2.18 _libc_intl_domainname D 0x5
+GLIBC_2.18 _longjmp F
+GLIBC_2.18 _mcleanup F
+GLIBC_2.18 _mcount F
+GLIBC_2.18 _nl_default_dirname D 0x12
+GLIBC_2.18 _nl_domain_bindings D 0x4
+GLIBC_2.18 _nl_msg_cat_cntr D 0x4
+GLIBC_2.18 _null_auth D 0xc
+GLIBC_2.18 _obstack_allocated_p F
+GLIBC_2.18 _obstack_begin F
+GLIBC_2.18 _obstack_begin_1 F
+GLIBC_2.18 _obstack_free F
+GLIBC_2.18 _obstack_memory_used F
+GLIBC_2.18 _obstack_newchunk F
+GLIBC_2.18 _res D 0x200
+GLIBC_2.18 _res_hconf D 0x30
+GLIBC_2.18 _rpc_dtablesize F
+GLIBC_2.18 _seterr_reply F
+GLIBC_2.18 _setjmp F
+GLIBC_2.18 _sys_errlist D 0x21c
+GLIBC_2.18 _sys_nerr D 0x4
+GLIBC_2.18 _sys_siglist D 0x104
+GLIBC_2.18 _tolower F
+GLIBC_2.18 _toupper F
+GLIBC_2.18 a64l F
+GLIBC_2.18 abort F
+GLIBC_2.18 abs F
+GLIBC_2.18 accept F
+GLIBC_2.18 accept4 F
+GLIBC_2.18 access F
+GLIBC_2.18 acct F
+GLIBC_2.18 addmntent F
+GLIBC_2.18 addseverity F
+GLIBC_2.18 adjtime F
+GLIBC_2.18 adjtimex F
+GLIBC_2.18 advance F
+GLIBC_2.18 alarm F
+GLIBC_2.18 aligned_alloc F
+GLIBC_2.18 alphasort F
+GLIBC_2.18 alphasort64 F
+GLIBC_2.18 argp_err_exit_status D 0x4
+GLIBC_2.18 argp_error F
+GLIBC_2.18 argp_failure F
+GLIBC_2.18 argp_help F
+GLIBC_2.18 argp_parse F
+GLIBC_2.18 argp_program_bug_address D 0x4
+GLIBC_2.18 argp_program_version D 0x4
+GLIBC_2.18 argp_program_version_hook D 0x4
+GLIBC_2.18 argp_state_help F
+GLIBC_2.18 argp_usage F
+GLIBC_2.18 argz_add F
+GLIBC_2.18 argz_add_sep F
+GLIBC_2.18 argz_append F
+GLIBC_2.18 argz_count F
+GLIBC_2.18 argz_create F
+GLIBC_2.18 argz_create_sep F
+GLIBC_2.18 argz_delete F
+GLIBC_2.18 argz_extract F
+GLIBC_2.18 argz_insert F
+GLIBC_2.18 argz_next F
+GLIBC_2.18 argz_replace F
+GLIBC_2.18 argz_stringify F
+GLIBC_2.18 asctime F
+GLIBC_2.18 asctime_r F
+GLIBC_2.18 asprintf F
+GLIBC_2.18 atof F
+GLIBC_2.18 atoi F
+GLIBC_2.18 atol F
+GLIBC_2.18 atoll F
+GLIBC_2.18 authdes_create F
+GLIBC_2.18 authdes_getucred F
+GLIBC_2.18 authdes_pk_create F
+GLIBC_2.18 authnone_create F
+GLIBC_2.18 authunix_create F
+GLIBC_2.18 authunix_create_default F
+GLIBC_2.18 backtrace F
+GLIBC_2.18 backtrace_symbols F
+GLIBC_2.18 backtrace_symbols_fd F
+GLIBC_2.18 basename F
+GLIBC_2.18 bcmp F
+GLIBC_2.18 bcopy F
+GLIBC_2.18 bdflush F
+GLIBC_2.18 bind F
+GLIBC_2.18 bind_textdomain_codeset F
+GLIBC_2.18 bindresvport F
+GLIBC_2.18 bindtextdomain F
+GLIBC_2.18 brk F
+GLIBC_2.18 bsd_signal F
+GLIBC_2.18 bsearch F
+GLIBC_2.18 btowc F
+GLIBC_2.18 bzero F
+GLIBC_2.18 c16rtomb F
+GLIBC_2.18 c32rtomb F
+GLIBC_2.18 calloc F
+GLIBC_2.18 callrpc F
+GLIBC_2.18 canonicalize_file_name F
+GLIBC_2.18 capget F
+GLIBC_2.18 capset F
+GLIBC_2.18 catclose F
+GLIBC_2.18 catgets F
+GLIBC_2.18 catopen F
+GLIBC_2.18 cbc_crypt F
+GLIBC_2.18 cfgetispeed F
+GLIBC_2.18 cfgetospeed F
+GLIBC_2.18 cfmakeraw F
+GLIBC_2.18 cfree F
+GLIBC_2.18 cfsetispeed F
+GLIBC_2.18 cfsetospeed F
+GLIBC_2.18 cfsetspeed F
+GLIBC_2.18 chdir F
+GLIBC_2.18 chflags F
+GLIBC_2.18 chmod F
+GLIBC_2.18 chown F
+GLIBC_2.18 chroot F
+GLIBC_2.18 clearenv F
+GLIBC_2.18 clearerr F
+GLIBC_2.18 clearerr_unlocked F
+GLIBC_2.18 clnt_broadcast F
+GLIBC_2.18 clnt_create F
+GLIBC_2.18 clnt_pcreateerror F
+GLIBC_2.18 clnt_perrno F
+GLIBC_2.18 clnt_perror F
+GLIBC_2.18 clnt_spcreateerror F
+GLIBC_2.18 clnt_sperrno F
+GLIBC_2.18 clnt_sperror F
+GLIBC_2.18 clntraw_create F
+GLIBC_2.18 clnttcp_create F
+GLIBC_2.18 clntudp_bufcreate F
+GLIBC_2.18 clntudp_create F
+GLIBC_2.18 clntunix_create F
+GLIBC_2.18 clock F
+GLIBC_2.18 clock_adjtime F
+GLIBC_2.18 clock_getcpuclockid F
+GLIBC_2.18 clock_getres F
+GLIBC_2.18 clock_gettime F
+GLIBC_2.18 clock_nanosleep F
+GLIBC_2.18 clock_settime F
+GLIBC_2.18 clone F
+GLIBC_2.18 close F
+GLIBC_2.18 closedir F
+GLIBC_2.18 closelog F
+GLIBC_2.18 confstr F
+GLIBC_2.18 connect F
+GLIBC_2.18 copysign F
+GLIBC_2.18 copysignf F
+GLIBC_2.18 copysignl F
+GLIBC_2.18 creat F
+GLIBC_2.18 creat64 F
+GLIBC_2.18 create_module F
+GLIBC_2.18 ctermid F
+GLIBC_2.18 ctime F
+GLIBC_2.18 ctime_r F
+GLIBC_2.18 cuserid F
+GLIBC_2.18 daemon F
+GLIBC_2.18 daylight D 0x4
+GLIBC_2.18 dcgettext F
+GLIBC_2.18 dcngettext F
+GLIBC_2.18 delete_module F
+GLIBC_2.18 des_setparity F
+GLIBC_2.18 dgettext F
+GLIBC_2.18 difftime F
+GLIBC_2.18 dirfd F
+GLIBC_2.18 dirname F
+GLIBC_2.18 div F
+GLIBC_2.18 dl_iterate_phdr F
+GLIBC_2.18 dngettext F
+GLIBC_2.18 dprintf F
+GLIBC_2.18 drand48 F
+GLIBC_2.18 drand48_r F
+GLIBC_2.18 dup F
+GLIBC_2.18 dup2 F
+GLIBC_2.18 dup3 F
+GLIBC_2.18 duplocale F
+GLIBC_2.18 dysize F
+GLIBC_2.18 eaccess F
+GLIBC_2.18 ecb_crypt F
+GLIBC_2.18 ecvt F
+GLIBC_2.18 ecvt_r F
+GLIBC_2.18 endaliasent F
+GLIBC_2.18 endfsent F
+GLIBC_2.18 endgrent F
+GLIBC_2.18 endhostent F
+GLIBC_2.18 endmntent F
+GLIBC_2.18 endnetent F
+GLIBC_2.18 endnetgrent F
+GLIBC_2.18 endprotoent F
+GLIBC_2.18 endpwent F
+GLIBC_2.18 endrpcent F
+GLIBC_2.18 endservent F
+GLIBC_2.18 endsgent F
+GLIBC_2.18 endspent F
+GLIBC_2.18 endttyent F
+GLIBC_2.18 endusershell F
+GLIBC_2.18 endutent F
+GLIBC_2.18 endutxent F
+GLIBC_2.18 environ D 0x4
+GLIBC_2.18 envz_add F
+GLIBC_2.18 envz_entry F
+GLIBC_2.18 envz_get F
+GLIBC_2.18 envz_merge F
+GLIBC_2.18 envz_remove F
+GLIBC_2.18 envz_strip F
+GLIBC_2.18 epoll_create F
+GLIBC_2.18 epoll_create1 F
+GLIBC_2.18 epoll_ctl F
+GLIBC_2.18 epoll_pwait F
+GLIBC_2.18 epoll_wait F
+GLIBC_2.18 erand48 F
+GLIBC_2.18 erand48_r F
+GLIBC_2.18 err F
+GLIBC_2.18 error F
+GLIBC_2.18 error_at_line F
+GLIBC_2.18 error_message_count D 0x4
+GLIBC_2.18 error_one_per_line D 0x4
+GLIBC_2.18 error_print_progname D 0x4
+GLIBC_2.18 errx F
+GLIBC_2.18 ether_aton F
+GLIBC_2.18 ether_aton_r F
+GLIBC_2.18 ether_hostton F
+GLIBC_2.18 ether_line F
+GLIBC_2.18 ether_ntoa F
+GLIBC_2.18 ether_ntoa_r F
+GLIBC_2.18 ether_ntohost F
+GLIBC_2.18 euidaccess F
+GLIBC_2.18 eventfd F
+GLIBC_2.18 eventfd_read F
+GLIBC_2.18 eventfd_write F
+GLIBC_2.18 execl F
+GLIBC_2.18 execle F
+GLIBC_2.18 execlp F
+GLIBC_2.18 execv F
+GLIBC_2.18 execve F
+GLIBC_2.18 execvp F
+GLIBC_2.18 execvpe F
+GLIBC_2.18 exit F
+GLIBC_2.18 faccessat F
+GLIBC_2.18 fallocate F
+GLIBC_2.18 fallocate64 F
+GLIBC_2.18 fanotify_init F
+GLIBC_2.18 fanotify_mark F
+GLIBC_2.18 fattach F
+GLIBC_2.18 fchdir F
+GLIBC_2.18 fchflags F
+GLIBC_2.18 fchmod F
+GLIBC_2.18 fchmodat F
+GLIBC_2.18 fchown F
+GLIBC_2.18 fchownat F
+GLIBC_2.18 fclose F
+GLIBC_2.18 fcloseall F
+GLIBC_2.18 fcntl F
+GLIBC_2.18 fcvt F
+GLIBC_2.18 fcvt_r F
+GLIBC_2.18 fdatasync F
+GLIBC_2.18 fdetach F
+GLIBC_2.18 fdopen F
+GLIBC_2.18 fdopendir F
+GLIBC_2.18 feof F
+GLIBC_2.18 feof_unlocked F
+GLIBC_2.18 ferror F
+GLIBC_2.18 ferror_unlocked F
+GLIBC_2.18 fexecve F
+GLIBC_2.18 fflush F
+GLIBC_2.18 fflush_unlocked F
+GLIBC_2.18 ffs F
+GLIBC_2.18 ffsl F
+GLIBC_2.18 ffsll F
+GLIBC_2.18 fgetc F
+GLIBC_2.18 fgetc_unlocked F
+GLIBC_2.18 fgetgrent F
+GLIBC_2.18 fgetgrent_r F
+GLIBC_2.18 fgetpos F
+GLIBC_2.18 fgetpos64 F
+GLIBC_2.18 fgetpwent F
+GLIBC_2.18 fgetpwent_r F
+GLIBC_2.18 fgets F
+GLIBC_2.18 fgets_unlocked F
+GLIBC_2.18 fgetsgent F
+GLIBC_2.18 fgetsgent_r F
+GLIBC_2.18 fgetspent F
+GLIBC_2.18 fgetspent_r F
+GLIBC_2.18 fgetwc F
+GLIBC_2.18 fgetwc_unlocked F
+GLIBC_2.18 fgetws F
+GLIBC_2.18 fgetws_unlocked F
+GLIBC_2.18 fgetxattr F
+GLIBC_2.18 fileno F
+GLIBC_2.18 fileno_unlocked F
+GLIBC_2.18 finite F
+GLIBC_2.18 finitef F
+GLIBC_2.18 finitel F
+GLIBC_2.18 flistxattr F
+GLIBC_2.18 flock F
+GLIBC_2.18 flockfile F
+GLIBC_2.18 fmemopen F
+GLIBC_2.18 fmtmsg F
+GLIBC_2.18 fnmatch F
+GLIBC_2.18 fopen F
+GLIBC_2.18 fopen64 F
+GLIBC_2.18 fopencookie F
+GLIBC_2.18 fork F
+GLIBC_2.18 fpathconf F
+GLIBC_2.18 fprintf F
+GLIBC_2.18 fputc F
+GLIBC_2.18 fputc_unlocked F
+GLIBC_2.18 fputs F
+GLIBC_2.18 fputs_unlocked F
+GLIBC_2.18 fputwc F
+GLIBC_2.18 fputwc_unlocked F
+GLIBC_2.18 fputws F
+GLIBC_2.18 fputws_unlocked F
+GLIBC_2.18 fread F
+GLIBC_2.18 fread_unlocked F
+GLIBC_2.18 free F
+GLIBC_2.18 freeaddrinfo F
+GLIBC_2.18 freeifaddrs F
+GLIBC_2.18 freelocale F
+GLIBC_2.18 fremovexattr F
+GLIBC_2.18 freopen F
+GLIBC_2.18 freopen64 F
+GLIBC_2.18 frexp F
+GLIBC_2.18 frexpf F
+GLIBC_2.18 frexpl F
+GLIBC_2.18 fscanf F
+GLIBC_2.18 fseek F
+GLIBC_2.18 fseeko F
+GLIBC_2.18 fseeko64 F
+GLIBC_2.18 fsetpos F
+GLIBC_2.18 fsetpos64 F
+GLIBC_2.18 fsetxattr F
+GLIBC_2.18 fstatfs F
+GLIBC_2.18 fstatfs64 F
+GLIBC_2.18 fstatvfs F
+GLIBC_2.18 fstatvfs64 F
+GLIBC_2.18 fsync F
+GLIBC_2.18 ftell F
+GLIBC_2.18 ftello F
+GLIBC_2.18 ftello64 F
+GLIBC_2.18 ftime F
+GLIBC_2.18 ftok F
+GLIBC_2.18 ftruncate F
+GLIBC_2.18 ftruncate64 F
+GLIBC_2.18 ftrylockfile F
+GLIBC_2.18 fts_children F
+GLIBC_2.18 fts_close F
+GLIBC_2.18 fts_open F
+GLIBC_2.18 fts_read F
+GLIBC_2.18 fts_set F
+GLIBC_2.18 ftw F
+GLIBC_2.18 ftw64 F
+GLIBC_2.18 funlockfile F
+GLIBC_2.18 futimens F
+GLIBC_2.18 futimes F
+GLIBC_2.18 futimesat F
+GLIBC_2.18 fwide F
+GLIBC_2.18 fwprintf F
+GLIBC_2.18 fwrite F
+GLIBC_2.18 fwrite_unlocked F
+GLIBC_2.18 fwscanf F
+GLIBC_2.18 gai_strerror F
+GLIBC_2.18 gcvt F
+GLIBC_2.18 get_avphys_pages F
+GLIBC_2.18 get_current_dir_name F
+GLIBC_2.18 get_kernel_syms F
+GLIBC_2.18 get_myaddress F
+GLIBC_2.18 get_nprocs F
+GLIBC_2.18 get_nprocs_conf F
+GLIBC_2.18 get_phys_pages F
+GLIBC_2.18 getaddrinfo F
+GLIBC_2.18 getaliasbyname F
+GLIBC_2.18 getaliasbyname_r F
+GLIBC_2.18 getaliasent F
+GLIBC_2.18 getaliasent_r F
+GLIBC_2.18 getauxval F
+GLIBC_2.18 getc F
+GLIBC_2.18 getc_unlocked F
+GLIBC_2.18 getchar F
+GLIBC_2.18 getchar_unlocked F
+GLIBC_2.18 getcontext F
+GLIBC_2.18 getcwd F
+GLIBC_2.18 getdate F
+GLIBC_2.18 getdate_err D 0x4
+GLIBC_2.18 getdate_r F
+GLIBC_2.18 getdelim F
+GLIBC_2.18 getdirentries F
+GLIBC_2.18 getdirentries64 F
+GLIBC_2.18 getdomainname F
+GLIBC_2.18 getdtablesize F
+GLIBC_2.18 getegid F
+GLIBC_2.18 getenv F
+GLIBC_2.18 geteuid F
+GLIBC_2.18 getfsent F
+GLIBC_2.18 getfsfile F
+GLIBC_2.18 getfsspec F
+GLIBC_2.18 getgid F
+GLIBC_2.18 getgrent F
+GLIBC_2.18 getgrent_r F
+GLIBC_2.18 getgrgid F
+GLIBC_2.18 getgrgid_r F
+GLIBC_2.18 getgrnam F
+GLIBC_2.18 getgrnam_r F
+GLIBC_2.18 getgrouplist F
+GLIBC_2.18 getgroups F
+GLIBC_2.18 gethostbyaddr F
+GLIBC_2.18 gethostbyaddr_r F
+GLIBC_2.18 gethostbyname F
+GLIBC_2.18 gethostbyname2 F
+GLIBC_2.18 gethostbyname2_r F
+GLIBC_2.18 gethostbyname_r F
+GLIBC_2.18 gethostent F
+GLIBC_2.18 gethostent_r F
+GLIBC_2.18 gethostid F
+GLIBC_2.18 gethostname F
+GLIBC_2.18 getifaddrs F
+GLIBC_2.18 getipv4sourcefilter F
+GLIBC_2.18 getitimer F
+GLIBC_2.18 getline F
+GLIBC_2.18 getloadavg F
+GLIBC_2.18 getlogin F
+GLIBC_2.18 getlogin_r F
+GLIBC_2.18 getmntent F
+GLIBC_2.18 getmntent_r F
+GLIBC_2.18 getmsg F
+GLIBC_2.18 getnameinfo F
+GLIBC_2.18 getnetbyaddr F
+GLIBC_2.18 getnetbyaddr_r F
+GLIBC_2.18 getnetbyname F
+GLIBC_2.18 getnetbyname_r F
+GLIBC_2.18 getnetent F
+GLIBC_2.18 getnetent_r F
+GLIBC_2.18 getnetgrent F
+GLIBC_2.18 getnetgrent_r F
+GLIBC_2.18 getnetname F
+GLIBC_2.18 getopt F
+GLIBC_2.18 getopt_long F
+GLIBC_2.18 getopt_long_only F
+GLIBC_2.18 getpagesize F
+GLIBC_2.18 getpass F
+GLIBC_2.18 getpeername F
+GLIBC_2.18 getpgid F
+GLIBC_2.18 getpgrp F
+GLIBC_2.18 getpid F
+GLIBC_2.18 getpmsg F
+GLIBC_2.18 getppid F
+GLIBC_2.18 getpriority F
+GLIBC_2.18 getprotobyname F
+GLIBC_2.18 getprotobyname_r F
+GLIBC_2.18 getprotobynumber F
+GLIBC_2.18 getprotobynumber_r F
+GLIBC_2.18 getprotoent F
+GLIBC_2.18 getprotoent_r F
+GLIBC_2.18 getpt F
+GLIBC_2.18 getpublickey F
+GLIBC_2.18 getpw F
+GLIBC_2.18 getpwent F
+GLIBC_2.18 getpwent_r F
+GLIBC_2.18 getpwnam F
+GLIBC_2.18 getpwnam_r F
+GLIBC_2.18 getpwuid F
+GLIBC_2.18 getpwuid_r F
+GLIBC_2.18 getresgid F
+GLIBC_2.18 getresuid F
+GLIBC_2.18 getrlimit F
+GLIBC_2.18 getrlimit64 F
+GLIBC_2.18 getrpcbyname F
+GLIBC_2.18 getrpcbyname_r F
+GLIBC_2.18 getrpcbynumber F
+GLIBC_2.18 getrpcbynumber_r F
+GLIBC_2.18 getrpcent F
+GLIBC_2.18 getrpcent_r F
+GLIBC_2.18 getrpcport F
+GLIBC_2.18 getrusage F
+GLIBC_2.18 gets F
+GLIBC_2.18 getsecretkey F
+GLIBC_2.18 getservbyname F
+GLIBC_2.18 getservbyname_r F
+GLIBC_2.18 getservbyport F
+GLIBC_2.18 getservbyport_r F
+GLIBC_2.18 getservent F
+GLIBC_2.18 getservent_r F
+GLIBC_2.18 getsgent F
+GLIBC_2.18 getsgent_r F
+GLIBC_2.18 getsgnam F
+GLIBC_2.18 getsgnam_r F
+GLIBC_2.18 getsid F
+GLIBC_2.18 getsockname F
+GLIBC_2.18 getsockopt F
+GLIBC_2.18 getsourcefilter F
+GLIBC_2.18 getspent F
+GLIBC_2.18 getspent_r F
+GLIBC_2.18 getspnam F
+GLIBC_2.18 getspnam_r F
+GLIBC_2.18 getsubopt F
+GLIBC_2.18 gettext F
+GLIBC_2.18 gettimeofday F
+GLIBC_2.18 getttyent F
+GLIBC_2.18 getttynam F
+GLIBC_2.18 getuid F
+GLIBC_2.18 getusershell F
+GLIBC_2.18 getutent F
+GLIBC_2.18 getutent_r F
+GLIBC_2.18 getutid F
+GLIBC_2.18 getutid_r F
+GLIBC_2.18 getutline F
+GLIBC_2.18 getutline_r F
+GLIBC_2.18 getutmp F
+GLIBC_2.18 getutmpx F
+GLIBC_2.18 getutxent F
+GLIBC_2.18 getutxid F
+GLIBC_2.18 getutxline F
+GLIBC_2.18 getw F
+GLIBC_2.18 getwc F
+GLIBC_2.18 getwc_unlocked F
+GLIBC_2.18 getwchar F
+GLIBC_2.18 getwchar_unlocked F
+GLIBC_2.18 getwd F
+GLIBC_2.18 getxattr F
+GLIBC_2.18 glob F
+GLIBC_2.18 glob64 F
+GLIBC_2.18 glob_pattern_p F
+GLIBC_2.18 globfree F
+GLIBC_2.18 globfree64 F
+GLIBC_2.18 gmtime F
+GLIBC_2.18 gmtime_r F
+GLIBC_2.18 gnu_dev_major F
+GLIBC_2.18 gnu_dev_makedev F
+GLIBC_2.18 gnu_dev_minor F
+GLIBC_2.18 gnu_get_libc_release F
+GLIBC_2.18 gnu_get_libc_version F
+GLIBC_2.18 grantpt F
+GLIBC_2.18 group_member F
+GLIBC_2.18 gsignal F
+GLIBC_2.18 gtty F
+GLIBC_2.18 h_errlist D 0x14
+GLIBC_2.18 h_nerr D 0x4
+GLIBC_2.18 hasmntopt F
+GLIBC_2.18 hcreate F
+GLIBC_2.18 hcreate_r F
+GLIBC_2.18 hdestroy F
+GLIBC_2.18 hdestroy_r F
+GLIBC_2.18 herror F
+GLIBC_2.18 host2netname F
+GLIBC_2.18 hsearch F
+GLIBC_2.18 hsearch_r F
+GLIBC_2.18 hstrerror F
+GLIBC_2.18 htonl F
+GLIBC_2.18 htons F
+GLIBC_2.18 iconv F
+GLIBC_2.18 iconv_close F
+GLIBC_2.18 iconv_open F
+GLIBC_2.18 if_freenameindex F
+GLIBC_2.18 if_indextoname F
+GLIBC_2.18 if_nameindex F
+GLIBC_2.18 if_nametoindex F
+GLIBC_2.18 imaxabs F
+GLIBC_2.18 imaxdiv F
+GLIBC_2.18 in6addr_any D 0x10
+GLIBC_2.18 in6addr_loopback D 0x10
+GLIBC_2.18 index F
+GLIBC_2.18 inet6_opt_append F
+GLIBC_2.18 inet6_opt_find F
+GLIBC_2.18 inet6_opt_finish F
+GLIBC_2.18 inet6_opt_get_val F
+GLIBC_2.18 inet6_opt_init F
+GLIBC_2.18 inet6_opt_next F
+GLIBC_2.18 inet6_opt_set_val F
+GLIBC_2.18 inet6_option_alloc F
+GLIBC_2.18 inet6_option_append F
+GLIBC_2.18 inet6_option_find F
+GLIBC_2.18 inet6_option_init F
+GLIBC_2.18 inet6_option_next F
+GLIBC_2.18 inet6_option_space F
+GLIBC_2.18 inet6_rth_add F
+GLIBC_2.18 inet6_rth_getaddr F
+GLIBC_2.18 inet6_rth_init F
+GLIBC_2.18 inet6_rth_reverse F
+GLIBC_2.18 inet6_rth_segments F
+GLIBC_2.18 inet6_rth_space F
+GLIBC_2.18 inet_addr F
+GLIBC_2.18 inet_aton F
+GLIBC_2.18 inet_lnaof F
+GLIBC_2.18 inet_makeaddr F
+GLIBC_2.18 inet_netof F
+GLIBC_2.18 inet_network F
+GLIBC_2.18 inet_nsap_addr F
+GLIBC_2.18 inet_nsap_ntoa F
+GLIBC_2.18 inet_ntoa F
+GLIBC_2.18 inet_ntop F
+GLIBC_2.18 inet_pton F
+GLIBC_2.18 init_module F
+GLIBC_2.18 initgroups F
+GLIBC_2.18 initstate F
+GLIBC_2.18 initstate_r F
+GLIBC_2.18 innetgr F
+GLIBC_2.18 inotify_add_watch F
+GLIBC_2.18 inotify_init F
+GLIBC_2.18 inotify_init1 F
+GLIBC_2.18 inotify_rm_watch F
+GLIBC_2.18 insque F
+GLIBC_2.18 ioctl F
+GLIBC_2.18 iruserok F
+GLIBC_2.18 iruserok_af F
+GLIBC_2.18 isalnum F
+GLIBC_2.18 isalnum_l F
+GLIBC_2.18 isalpha F
+GLIBC_2.18 isalpha_l F
+GLIBC_2.18 isascii F
+GLIBC_2.18 isastream F
+GLIBC_2.18 isatty F
+GLIBC_2.18 isblank F
+GLIBC_2.18 isblank_l F
+GLIBC_2.18 iscntrl F
+GLIBC_2.18 iscntrl_l F
+GLIBC_2.18 isctype F
+GLIBC_2.18 isdigit F
+GLIBC_2.18 isdigit_l F
+GLIBC_2.18 isfdtype F
+GLIBC_2.18 isgraph F
+GLIBC_2.18 isgraph_l F
+GLIBC_2.18 isinf F
+GLIBC_2.18 isinff F
+GLIBC_2.18 isinfl F
+GLIBC_2.18 islower F
+GLIBC_2.18 islower_l F
+GLIBC_2.18 isnan F
+GLIBC_2.18 isnanf F
+GLIBC_2.18 isnanl F
+GLIBC_2.18 isprint F
+GLIBC_2.18 isprint_l F
+GLIBC_2.18 ispunct F
+GLIBC_2.18 ispunct_l F
+GLIBC_2.18 isspace F
+GLIBC_2.18 isspace_l F
+GLIBC_2.18 isupper F
+GLIBC_2.18 isupper_l F
+GLIBC_2.18 iswalnum F
+GLIBC_2.18 iswalnum_l F
+GLIBC_2.18 iswalpha F
+GLIBC_2.18 iswalpha_l F
+GLIBC_2.18 iswblank F
+GLIBC_2.18 iswblank_l F
+GLIBC_2.18 iswcntrl F
+GLIBC_2.18 iswcntrl_l F
+GLIBC_2.18 iswctype F
+GLIBC_2.18 iswctype_l F
+GLIBC_2.18 iswdigit F
+GLIBC_2.18 iswdigit_l F
+GLIBC_2.18 iswgraph F
+GLIBC_2.18 iswgraph_l F
+GLIBC_2.18 iswlower F
+GLIBC_2.18 iswlower_l F
+GLIBC_2.18 iswprint F
+GLIBC_2.18 iswprint_l F
+GLIBC_2.18 iswpunct F
+GLIBC_2.18 iswpunct_l F
+GLIBC_2.18 iswspace F
+GLIBC_2.18 iswspace_l F
+GLIBC_2.18 iswupper F
+GLIBC_2.18 iswupper_l F
+GLIBC_2.18 iswxdigit F
+GLIBC_2.18 iswxdigit_l F
+GLIBC_2.18 isxdigit F
+GLIBC_2.18 isxdigit_l F
+GLIBC_2.18 jrand48 F
+GLIBC_2.18 jrand48_r F
+GLIBC_2.18 key_decryptsession F
+GLIBC_2.18 key_decryptsession_pk F
+GLIBC_2.18 key_encryptsession F
+GLIBC_2.18 key_encryptsession_pk F
+GLIBC_2.18 key_gendes F
+GLIBC_2.18 key_get_conv F
+GLIBC_2.18 key_secretkey_is_set F
+GLIBC_2.18 key_setnet F
+GLIBC_2.18 key_setsecret F
+GLIBC_2.18 kill F
+GLIBC_2.18 killpg F
+GLIBC_2.18 klogctl F
+GLIBC_2.18 l64a F
+GLIBC_2.18 labs F
+GLIBC_2.18 lchmod F
+GLIBC_2.18 lchown F
+GLIBC_2.18 lckpwdf F
+GLIBC_2.18 lcong48 F
+GLIBC_2.18 lcong48_r F
+GLIBC_2.18 ldexp F
+GLIBC_2.18 ldexpf F
+GLIBC_2.18 ldexpl F
+GLIBC_2.18 ldiv F
+GLIBC_2.18 lfind F
+GLIBC_2.18 lgetxattr F
+GLIBC_2.18 link F
+GLIBC_2.18 linkat F
+GLIBC_2.18 listen F
+GLIBC_2.18 listxattr F
+GLIBC_2.18 llabs F
+GLIBC_2.18 lldiv F
+GLIBC_2.18 llistxattr F
+GLIBC_2.18 llseek F
+GLIBC_2.18 loc1 D 0x4
+GLIBC_2.18 loc2 D 0x4
+GLIBC_2.18 localeconv F
+GLIBC_2.18 localtime F
+GLIBC_2.18 localtime_r F
+GLIBC_2.18 lockf F
+GLIBC_2.18 lockf64 F
+GLIBC_2.18 locs D 0x4
+GLIBC_2.18 longjmp F
+GLIBC_2.18 lrand48 F
+GLIBC_2.18 lrand48_r F
+GLIBC_2.18 lremovexattr F
+GLIBC_2.18 lsearch F
+GLIBC_2.18 lseek F
+GLIBC_2.18 lseek64 F
+GLIBC_2.18 lsetxattr F
+GLIBC_2.18 lutimes F
+GLIBC_2.18 madvise F
+GLIBC_2.18 makecontext F
+GLIBC_2.18 mallinfo F
+GLIBC_2.18 malloc F
+GLIBC_2.18 malloc_get_state F
+GLIBC_2.18 malloc_info F
+GLIBC_2.18 malloc_set_state F
+GLIBC_2.18 malloc_stats F
+GLIBC_2.18 malloc_trim F
+GLIBC_2.18 malloc_usable_size F
+GLIBC_2.18 mallopt F
+GLIBC_2.18 mallwatch D 0x4
+GLIBC_2.18 mblen F
+GLIBC_2.18 mbrlen F
+GLIBC_2.18 mbrtoc16 F
+GLIBC_2.18 mbrtoc32 F
+GLIBC_2.18 mbrtowc F
+GLIBC_2.18 mbsinit F
+GLIBC_2.18 mbsnrtowcs F
+GLIBC_2.18 mbsrtowcs F
+GLIBC_2.18 mbstowcs F
+GLIBC_2.18 mbtowc F
+GLIBC_2.18 mcheck F
+GLIBC_2.18 mcheck_check_all F
+GLIBC_2.18 mcheck_pedantic F
+GLIBC_2.18 memalign F
+GLIBC_2.18 memccpy F
+GLIBC_2.18 memchr F
+GLIBC_2.18 memcmp F
+GLIBC_2.18 memcpy F
+GLIBC_2.18 memfrob F
+GLIBC_2.18 memmem F
+GLIBC_2.18 memmove F
+GLIBC_2.18 mempcpy F
+GLIBC_2.18 memrchr F
+GLIBC_2.18 memset F
+GLIBC_2.18 mincore F
+GLIBC_2.18 mkdir F
+GLIBC_2.18 mkdirat F
+GLIBC_2.18 mkdtemp F
+GLIBC_2.18 mkfifo F
+GLIBC_2.18 mkfifoat F
+GLIBC_2.18 mkostemp F
+GLIBC_2.18 mkostemp64 F
+GLIBC_2.18 mkostemps F
+GLIBC_2.18 mkostemps64 F
+GLIBC_2.18 mkstemp F
+GLIBC_2.18 mkstemp64 F
+GLIBC_2.18 mkstemps F
+GLIBC_2.18 mkstemps64 F
+GLIBC_2.18 mktemp F
+GLIBC_2.18 mktime F
+GLIBC_2.18 mlock F
+GLIBC_2.18 mlockall F
+GLIBC_2.18 mmap F
+GLIBC_2.18 mmap64 F
+GLIBC_2.18 modf F
+GLIBC_2.18 modff F
+GLIBC_2.18 modfl F
+GLIBC_2.18 moncontrol F
+GLIBC_2.18 monstartup F
+GLIBC_2.18 mount F
+GLIBC_2.18 mprobe F
+GLIBC_2.18 mprotect F
+GLIBC_2.18 mrand48 F
+GLIBC_2.18 mrand48_r F
+GLIBC_2.18 mremap F
+GLIBC_2.18 msgctl F
+GLIBC_2.18 msgget F
+GLIBC_2.18 msgrcv F
+GLIBC_2.18 msgsnd F
+GLIBC_2.18 msync F
+GLIBC_2.18 mtrace F
+GLIBC_2.18 munlock F
+GLIBC_2.18 munlockall F
+GLIBC_2.18 munmap F
+GLIBC_2.18 muntrace F
+GLIBC_2.18 name_to_handle_at F
+GLIBC_2.18 nanosleep F
+GLIBC_2.18 netname2host F
+GLIBC_2.18 netname2user F
+GLIBC_2.18 newlocale F
+GLIBC_2.18 nfsservctl F
+GLIBC_2.18 nftw F
+GLIBC_2.18 nftw64 F
+GLIBC_2.18 ngettext F
+GLIBC_2.18 nice F
+GLIBC_2.18 nl_langinfo F
+GLIBC_2.18 nl_langinfo_l F
+GLIBC_2.18 nrand48 F
+GLIBC_2.18 nrand48_r F
+GLIBC_2.18 ntohl F
+GLIBC_2.18 ntohs F
+GLIBC_2.18 ntp_adjtime F
+GLIBC_2.18 ntp_gettime F
+GLIBC_2.18 ntp_gettimex F
+GLIBC_2.18 obstack_alloc_failed_handler D 0x4
+GLIBC_2.18 obstack_exit_failure D 0x4
+GLIBC_2.18 obstack_free F
+GLIBC_2.18 obstack_printf F
+GLIBC_2.18 obstack_vprintf F
+GLIBC_2.18 on_exit F
+GLIBC_2.18 open F
+GLIBC_2.18 open64 F
+GLIBC_2.18 open_by_handle_at F
+GLIBC_2.18 open_memstream F
+GLIBC_2.18 open_wmemstream F
+GLIBC_2.18 openat F
+GLIBC_2.18 openat64 F
+GLIBC_2.18 opendir F
+GLIBC_2.18 openlog F
+GLIBC_2.18 optarg D 0x4
+GLIBC_2.18 opterr D 0x4
+GLIBC_2.18 optind D 0x4
+GLIBC_2.18 optopt D 0x4
+GLIBC_2.18 parse_printf_format F
+GLIBC_2.18 passwd2des F
+GLIBC_2.18 pathconf F
+GLIBC_2.18 pause F
+GLIBC_2.18 pclose F
+GLIBC_2.18 perror F
+GLIBC_2.18 personality F
+GLIBC_2.18 pipe F
+GLIBC_2.18 pipe2 F
+GLIBC_2.18 pivot_root F
+GLIBC_2.18 pmap_getmaps F
+GLIBC_2.18 pmap_getport F
+GLIBC_2.18 pmap_rmtcall F
+GLIBC_2.18 pmap_set F
+GLIBC_2.18 pmap_unset F
+GLIBC_2.18 poll F
+GLIBC_2.18 popen F
+GLIBC_2.18 posix_fadvise F
+GLIBC_2.18 posix_fadvise64 F
+GLIBC_2.18 posix_fallocate F
+GLIBC_2.18 posix_fallocate64 F
+GLIBC_2.18 posix_madvise F
+GLIBC_2.18 posix_memalign F
+GLIBC_2.18 posix_openpt F
+GLIBC_2.18 posix_spawn F
+GLIBC_2.18 posix_spawn_file_actions_addclose F
+GLIBC_2.18 posix_spawn_file_actions_adddup2 F
+GLIBC_2.18 posix_spawn_file_actions_addopen F
+GLIBC_2.18 posix_spawn_file_actions_destroy F
+GLIBC_2.18 posix_spawn_file_actions_init F
+GLIBC_2.18 posix_spawnattr_destroy F
+GLIBC_2.18 posix_spawnattr_getflags F
+GLIBC_2.18 posix_spawnattr_getpgroup F
+GLIBC_2.18 posix_spawnattr_getschedparam F
+GLIBC_2.18 posix_spawnattr_getschedpolicy F
+GLIBC_2.18 posix_spawnattr_getsigdefault F
+GLIBC_2.18 posix_spawnattr_getsigmask F
+GLIBC_2.18 posix_spawnattr_init F
+GLIBC_2.18 posix_spawnattr_setflags F
+GLIBC_2.18 posix_spawnattr_setpgroup F
+GLIBC_2.18 posix_spawnattr_setschedparam F
+GLIBC_2.18 posix_spawnattr_setschedpolicy F
+GLIBC_2.18 posix_spawnattr_setsigdefault F
+GLIBC_2.18 posix_spawnattr_setsigmask F
+GLIBC_2.18 posix_spawnp F
+GLIBC_2.18 ppoll F
+GLIBC_2.18 prctl F
+GLIBC_2.18 pread F
+GLIBC_2.18 pread64 F
+GLIBC_2.18 preadv F
+GLIBC_2.18 preadv64 F
+GLIBC_2.18 printf F
+GLIBC_2.18 printf_size F
+GLIBC_2.18 printf_size_info F
+GLIBC_2.18 prlimit F
+GLIBC_2.18 prlimit64 F
+GLIBC_2.18 process_vm_readv F
+GLIBC_2.18 process_vm_writev F
+GLIBC_2.18 profil F
+GLIBC_2.18 program_invocation_name D 0x4
+GLIBC_2.18 program_invocation_short_name D 0x4
+GLIBC_2.18 pselect F
+GLIBC_2.18 psiginfo F
+GLIBC_2.18 psignal F
+GLIBC_2.18 pthread_attr_destroy F
+GLIBC_2.18 pthread_attr_getdetachstate F
+GLIBC_2.18 pthread_attr_getinheritsched F
+GLIBC_2.18 pthread_attr_getschedparam F
+GLIBC_2.18 pthread_attr_getschedpolicy F
+GLIBC_2.18 pthread_attr_getscope F
+GLIBC_2.18 pthread_attr_init F
+GLIBC_2.18 pthread_attr_setdetachstate F
+GLIBC_2.18 pthread_attr_setinheritsched F
+GLIBC_2.18 pthread_attr_setschedparam F
+GLIBC_2.18 pthread_attr_setschedpolicy F
+GLIBC_2.18 pthread_attr_setscope F
+GLIBC_2.18 pthread_cond_broadcast F
+GLIBC_2.18 pthread_cond_destroy F
+GLIBC_2.18 pthread_cond_init F
+GLIBC_2.18 pthread_cond_signal F
+GLIBC_2.18 pthread_cond_timedwait F
+GLIBC_2.18 pthread_cond_wait F
+GLIBC_2.18 pthread_condattr_destroy F
+GLIBC_2.18 pthread_condattr_init F
+GLIBC_2.18 pthread_equal F
+GLIBC_2.18 pthread_exit F
+GLIBC_2.18 pthread_getschedparam F
+GLIBC_2.18 pthread_mutex_destroy F
+GLIBC_2.18 pthread_mutex_init F
+GLIBC_2.18 pthread_mutex_lock F
+GLIBC_2.18 pthread_mutex_unlock F
+GLIBC_2.18 pthread_self F
+GLIBC_2.18 pthread_setcancelstate F
+GLIBC_2.18 pthread_setcanceltype F
+GLIBC_2.18 pthread_setschedparam F
+GLIBC_2.18 ptrace F
+GLIBC_2.18 ptsname F
+GLIBC_2.18 ptsname_r F
+GLIBC_2.18 putc F
+GLIBC_2.18 putc_unlocked F
+GLIBC_2.18 putchar F
+GLIBC_2.18 putchar_unlocked F
+GLIBC_2.18 putenv F
+GLIBC_2.18 putgrent F
+GLIBC_2.18 putmsg F
+GLIBC_2.18 putpmsg F
+GLIBC_2.18 putpwent F
+GLIBC_2.18 puts F
+GLIBC_2.18 putsgent F
+GLIBC_2.18 putspent F
+GLIBC_2.18 pututline F
+GLIBC_2.18 pututxline F
+GLIBC_2.18 putw F
+GLIBC_2.18 putwc F
+GLIBC_2.18 putwc_unlocked F
+GLIBC_2.18 putwchar F
+GLIBC_2.18 putwchar_unlocked F
+GLIBC_2.18 pvalloc F
+GLIBC_2.18 pwrite F
+GLIBC_2.18 pwrite64 F
+GLIBC_2.18 pwritev F
+GLIBC_2.18 pwritev64 F
+GLIBC_2.18 qecvt F
+GLIBC_2.18 qecvt_r F
+GLIBC_2.18 qfcvt F
+GLIBC_2.18 qfcvt_r F
+GLIBC_2.18 qgcvt F
+GLIBC_2.18 qsort F
+GLIBC_2.18 qsort_r F
+GLIBC_2.18 query_module F
+GLIBC_2.18 quick_exit F
+GLIBC_2.18 quotactl F
+GLIBC_2.18 raise F
+GLIBC_2.18 rand F
+GLIBC_2.18 rand_r F
+GLIBC_2.18 random F
+GLIBC_2.18 random_r F
+GLIBC_2.18 rawmemchr F
+GLIBC_2.18 rcmd F
+GLIBC_2.18 rcmd_af F
+GLIBC_2.18 re_comp F
+GLIBC_2.18 re_compile_fastmap F
+GLIBC_2.18 re_compile_pattern F
+GLIBC_2.18 re_exec F
+GLIBC_2.18 re_match F
+GLIBC_2.18 re_match_2 F
+GLIBC_2.18 re_search F
+GLIBC_2.18 re_search_2 F
+GLIBC_2.18 re_set_registers F
+GLIBC_2.18 re_set_syntax F
+GLIBC_2.18 re_syntax_options D 0x4
+GLIBC_2.18 read F
+GLIBC_2.18 readahead F
+GLIBC_2.18 readdir F
+GLIBC_2.18 readdir64 F
+GLIBC_2.18 readdir64_r F
+GLIBC_2.18 readdir_r F
+GLIBC_2.18 readlink F
+GLIBC_2.18 readlinkat F
+GLIBC_2.18 readv F
+GLIBC_2.18 realloc F
+GLIBC_2.18 realpath F
+GLIBC_2.18 reboot F
+GLIBC_2.18 recv F
+GLIBC_2.18 recvfrom F
+GLIBC_2.18 recvmmsg F
+GLIBC_2.18 recvmsg F
+GLIBC_2.18 regcomp F
+GLIBC_2.18 regerror F
+GLIBC_2.18 regexec F
+GLIBC_2.18 regfree F
+GLIBC_2.18 register_printf_function F
+GLIBC_2.18 register_printf_modifier F
+GLIBC_2.18 register_printf_specifier F
+GLIBC_2.18 register_printf_type F
+GLIBC_2.18 registerrpc F
+GLIBC_2.18 remap_file_pages F
+GLIBC_2.18 remove F
+GLIBC_2.18 removexattr F
+GLIBC_2.18 remque F
+GLIBC_2.18 rename F
+GLIBC_2.18 renameat F
+GLIBC_2.18 revoke F
+GLIBC_2.18 rewind F
+GLIBC_2.18 rewinddir F
+GLIBC_2.18 rexec F
+GLIBC_2.18 rexec_af F
+GLIBC_2.18 rexecoptions D 0x4
+GLIBC_2.18 rindex F
+GLIBC_2.18 rmdir F
+GLIBC_2.18 rpc_createerr D 0x10
+GLIBC_2.18 rpmatch F
+GLIBC_2.18 rresvport F
+GLIBC_2.18 rresvport_af F
+GLIBC_2.18 rtime F
+GLIBC_2.18 ruserok F
+GLIBC_2.18 ruserok_af F
+GLIBC_2.18 ruserpass F
+GLIBC_2.18 sbrk F
+GLIBC_2.18 scalbn F
+GLIBC_2.18 scalbnf F
+GLIBC_2.18 scalbnl F
+GLIBC_2.18 scandir F
+GLIBC_2.18 scandir64 F
+GLIBC_2.18 scandirat F
+GLIBC_2.18 scandirat64 F
+GLIBC_2.18 scanf F
+GLIBC_2.18 sched_get_priority_max F
+GLIBC_2.18 sched_get_priority_min F
+GLIBC_2.18 sched_getaffinity F
+GLIBC_2.18 sched_getcpu F
+GLIBC_2.18 sched_getparam F
+GLIBC_2.18 sched_getscheduler F
+GLIBC_2.18 sched_rr_get_interval F
+GLIBC_2.18 sched_setaffinity F
+GLIBC_2.18 sched_setparam F
+GLIBC_2.18 sched_setscheduler F
+GLIBC_2.18 sched_yield F
+GLIBC_2.18 secure_getenv F
+GLIBC_2.18 seed48 F
+GLIBC_2.18 seed48_r F
+GLIBC_2.18 seekdir F
+GLIBC_2.18 select F
+GLIBC_2.18 semctl F
+GLIBC_2.18 semget F
+GLIBC_2.18 semop F
+GLIBC_2.18 semtimedop F
+GLIBC_2.18 send F
+GLIBC_2.18 sendfile F
+GLIBC_2.18 sendfile64 F
+GLIBC_2.18 sendmmsg F
+GLIBC_2.18 sendmsg F
+GLIBC_2.18 sendto F
+GLIBC_2.18 setaliasent F
+GLIBC_2.18 setbuf F
+GLIBC_2.18 setbuffer F
+GLIBC_2.18 setcontext F
+GLIBC_2.18 setdomainname F
+GLIBC_2.18 setegid F
+GLIBC_2.18 setenv F
+GLIBC_2.18 seteuid F
+GLIBC_2.18 setfsent F
+GLIBC_2.18 setfsgid F
+GLIBC_2.18 setfsuid F
+GLIBC_2.18 setgid F
+GLIBC_2.18 setgrent F
+GLIBC_2.18 setgroups F
+GLIBC_2.18 sethostent F
+GLIBC_2.18 sethostid F
+GLIBC_2.18 sethostname F
+GLIBC_2.18 setipv4sourcefilter F
+GLIBC_2.18 setitimer F
+GLIBC_2.18 setjmp F
+GLIBC_2.18 setlinebuf F
+GLIBC_2.18 setlocale F
+GLIBC_2.18 setlogin F
+GLIBC_2.18 setlogmask F
+GLIBC_2.18 setmntent F
+GLIBC_2.18 setnetent F
+GLIBC_2.18 setnetgrent F
+GLIBC_2.18 setns F
+GLIBC_2.18 setpgid F
+GLIBC_2.18 setpgrp F
+GLIBC_2.18 setpriority F
+GLIBC_2.18 setprotoent F
+GLIBC_2.18 setpwent F
+GLIBC_2.18 setregid F
+GLIBC_2.18 setresgid F
+GLIBC_2.18 setresuid F
+GLIBC_2.18 setreuid F
+GLIBC_2.18 setrlimit F
+GLIBC_2.18 setrlimit64 F
+GLIBC_2.18 setrpcent F
+GLIBC_2.18 setservent F
+GLIBC_2.18 setsgent F
+GLIBC_2.18 setsid F
+GLIBC_2.18 setsockopt F
+GLIBC_2.18 setsourcefilter F
+GLIBC_2.18 setspent F
+GLIBC_2.18 setstate F
+GLIBC_2.18 setstate_r F
+GLIBC_2.18 settimeofday F
+GLIBC_2.18 setttyent F
+GLIBC_2.18 setuid F
+GLIBC_2.18 setusershell F
+GLIBC_2.18 setutent F
+GLIBC_2.18 setutxent F
+GLIBC_2.18 setvbuf F
+GLIBC_2.18 setxattr F
+GLIBC_2.18 sgetsgent F
+GLIBC_2.18 sgetsgent_r F
+GLIBC_2.18 sgetspent F
+GLIBC_2.18 sgetspent_r F
+GLIBC_2.18 shmat F
+GLIBC_2.18 shmctl F
+GLIBC_2.18 shmdt F
+GLIBC_2.18 shmget F
+GLIBC_2.18 shutdown F
+GLIBC_2.18 sigaction F
+GLIBC_2.18 sigaddset F
+GLIBC_2.18 sigaltstack F
+GLIBC_2.18 sigandset F
+GLIBC_2.18 sigblock F
+GLIBC_2.18 sigdelset F
+GLIBC_2.18 sigemptyset F
+GLIBC_2.18 sigfillset F
+GLIBC_2.18 siggetmask F
+GLIBC_2.18 sighold F
+GLIBC_2.18 sigignore F
+GLIBC_2.18 siginterrupt F
+GLIBC_2.18 sigisemptyset F
+GLIBC_2.18 sigismember F
+GLIBC_2.18 siglongjmp F
+GLIBC_2.18 signal F
+GLIBC_2.18 signalfd F
+GLIBC_2.18 sigorset F
+GLIBC_2.18 sigpause F
+GLIBC_2.18 sigpending F
+GLIBC_2.18 sigprocmask F
+GLIBC_2.18 sigqueue F
+GLIBC_2.18 sigrelse F
+GLIBC_2.18 sigreturn F
+GLIBC_2.18 sigset F
+GLIBC_2.18 sigsetmask F
+GLIBC_2.18 sigstack F
+GLIBC_2.18 sigsuspend F
+GLIBC_2.18 sigtimedwait F
+GLIBC_2.18 sigvec F
+GLIBC_2.18 sigwait F
+GLIBC_2.18 sigwaitinfo F
+GLIBC_2.18 sleep F
+GLIBC_2.18 snprintf F
+GLIBC_2.18 sockatmark F
+GLIBC_2.18 socket F
+GLIBC_2.18 socketpair F
+GLIBC_2.18 splice F
+GLIBC_2.18 sprintf F
+GLIBC_2.18 sprofil F
+GLIBC_2.18 srand F
+GLIBC_2.18 srand48 F
+GLIBC_2.18 srand48_r F
+GLIBC_2.18 srandom F
+GLIBC_2.18 srandom_r F
+GLIBC_2.18 sscanf F
+GLIBC_2.18 ssignal F
+GLIBC_2.18 sstk F
+GLIBC_2.18 statfs F
+GLIBC_2.18 statfs64 F
+GLIBC_2.18 statvfs F
+GLIBC_2.18 statvfs64 F
+GLIBC_2.18 stderr D 0x4
+GLIBC_2.18 stdin D 0x4
+GLIBC_2.18 stdout D 0x4
+GLIBC_2.18 step F
+GLIBC_2.18 stime F
+GLIBC_2.18 stpcpy F
+GLIBC_2.18 stpncpy F
+GLIBC_2.18 strcasecmp F
+GLIBC_2.18 strcasecmp_l F
+GLIBC_2.18 strcasestr F
+GLIBC_2.18 strcat F
+GLIBC_2.18 strchr F
+GLIBC_2.18 strchrnul F
+GLIBC_2.18 strcmp F
+GLIBC_2.18 strcoll F
+GLIBC_2.18 strcoll_l F
+GLIBC_2.18 strcpy F
+GLIBC_2.18 strcspn F
+GLIBC_2.18 strdup F
+GLIBC_2.18 strerror F
+GLIBC_2.18 strerror_l F
+GLIBC_2.18 strerror_r F
+GLIBC_2.18 strfmon F
+GLIBC_2.18 strfmon_l F
+GLIBC_2.18 strfry F
+GLIBC_2.18 strftime F
+GLIBC_2.18 strftime_l F
+GLIBC_2.18 strlen F
+GLIBC_2.18 strncasecmp F
+GLIBC_2.18 strncasecmp_l F
+GLIBC_2.18 strncat F
+GLIBC_2.18 strncmp F
+GLIBC_2.18 strncpy F
+GLIBC_2.18 strndup F
+GLIBC_2.18 strnlen F
+GLIBC_2.18 strpbrk F
+GLIBC_2.18 strptime F
+GLIBC_2.18 strptime_l F
+GLIBC_2.18 strrchr F
+GLIBC_2.18 strsep F
+GLIBC_2.18 strsignal F
+GLIBC_2.18 strspn F
+GLIBC_2.18 strstr F
+GLIBC_2.18 strtod F
+GLIBC_2.18 strtod_l F
+GLIBC_2.18 strtof F
+GLIBC_2.18 strtof_l F
+GLIBC_2.18 strtoimax F
+GLIBC_2.18 strtok F
+GLIBC_2.18 strtok_r F
+GLIBC_2.18 strtol F
+GLIBC_2.18 strtol_l F
+GLIBC_2.18 strtold F
+GLIBC_2.18 strtold_l F
+GLIBC_2.18 strtoll F
+GLIBC_2.18 strtoll_l F
+GLIBC_2.18 strtoq F
+GLIBC_2.18 strtoul F
+GLIBC_2.18 strtoul_l F
+GLIBC_2.18 strtoull F
+GLIBC_2.18 strtoull_l F
+GLIBC_2.18 strtoumax F
+GLIBC_2.18 strtouq F
+GLIBC_2.18 strverscmp F
+GLIBC_2.18 strxfrm F
+GLIBC_2.18 strxfrm_l F
+GLIBC_2.18 stty F
+GLIBC_2.18 svc_exit F
+GLIBC_2.18 svc_fdset D 0x80
+GLIBC_2.18 svc_getreq F
+GLIBC_2.18 svc_getreq_common F
+GLIBC_2.18 svc_getreq_poll F
+GLIBC_2.18 svc_getreqset F
+GLIBC_2.18 svc_max_pollfd D 0x4
+GLIBC_2.18 svc_pollfd D 0x4
+GLIBC_2.18 svc_register F
+GLIBC_2.18 svc_run F
+GLIBC_2.18 svc_sendreply F
+GLIBC_2.18 svc_unregister F
+GLIBC_2.18 svcauthdes_stats D 0xc
+GLIBC_2.18 svcerr_auth F
+GLIBC_2.18 svcerr_decode F
+GLIBC_2.18 svcerr_noproc F
+GLIBC_2.18 svcerr_noprog F
+GLIBC_2.18 svcerr_progvers F
+GLIBC_2.18 svcerr_systemerr F
+GLIBC_2.18 svcerr_weakauth F
+GLIBC_2.18 svcfd_create F
+GLIBC_2.18 svcraw_create F
+GLIBC_2.18 svctcp_create F
+GLIBC_2.18 svcudp_bufcreate F
+GLIBC_2.18 svcudp_create F
+GLIBC_2.18 svcudp_enablecache F
+GLIBC_2.18 svcunix_create F
+GLIBC_2.18 svcunixfd_create F
+GLIBC_2.18 swab F
+GLIBC_2.18 swapcontext F
+GLIBC_2.18 swapoff F
+GLIBC_2.18 swapon F
+GLIBC_2.18 swprintf F
+GLIBC_2.18 swscanf F
+GLIBC_2.18 symlink F
+GLIBC_2.18 symlinkat F
+GLIBC_2.18 sync F
+GLIBC_2.18 sync_file_range F
+GLIBC_2.18 syncfs F
+GLIBC_2.18 sys_errlist D 0x21c
+GLIBC_2.18 sys_nerr D 0x4
+GLIBC_2.18 sys_sigabbrev D 0x104
+GLIBC_2.18 sys_siglist D 0x104
+GLIBC_2.18 syscall F
+GLIBC_2.18 sysconf F
+GLIBC_2.18 sysctl F
+GLIBC_2.18 sysinfo F
+GLIBC_2.18 syslog F
+GLIBC_2.18 system F
+GLIBC_2.18 sysv_signal F
+GLIBC_2.18 tcdrain F
+GLIBC_2.18 tcflow F
+GLIBC_2.18 tcflush F
+GLIBC_2.18 tcgetattr F
+GLIBC_2.18 tcgetpgrp F
+GLIBC_2.18 tcgetsid F
+GLIBC_2.18 tcsendbreak F
+GLIBC_2.18 tcsetattr F
+GLIBC_2.18 tcsetpgrp F
+GLIBC_2.18 tdelete F
+GLIBC_2.18 tdestroy F
+GLIBC_2.18 tee F
+GLIBC_2.18 telldir F
+GLIBC_2.18 tempnam F
+GLIBC_2.18 textdomain F
+GLIBC_2.18 tfind F
+GLIBC_2.18 time F
+GLIBC_2.18 timegm F
+GLIBC_2.18 timelocal F
+GLIBC_2.18 timerfd_create F
+GLIBC_2.18 timerfd_gettime F
+GLIBC_2.18 timerfd_settime F
+GLIBC_2.18 times F
+GLIBC_2.18 timespec_get F
+GLIBC_2.18 timezone D 0x4
+GLIBC_2.18 tmpfile F
+GLIBC_2.18 tmpfile64 F
+GLIBC_2.18 tmpnam F
+GLIBC_2.18 tmpnam_r F
+GLIBC_2.18 toascii F
+GLIBC_2.18 tolower F
+GLIBC_2.18 tolower_l F
+GLIBC_2.18 toupper F
+GLIBC_2.18 toupper_l F
+GLIBC_2.18 towctrans F
+GLIBC_2.18 towctrans_l F
+GLIBC_2.18 towlower F
+GLIBC_2.18 towlower_l F
+GLIBC_2.18 towupper F
+GLIBC_2.18 towupper_l F
+GLIBC_2.18 tr_break F
+GLIBC_2.18 truncate F
+GLIBC_2.18 truncate64 F
+GLIBC_2.18 tsearch F
+GLIBC_2.18 ttyname F
+GLIBC_2.18 ttyname_r F
+GLIBC_2.18 ttyslot F
+GLIBC_2.18 twalk F
+GLIBC_2.18 tzname D 0x8
+GLIBC_2.18 tzset F
+GLIBC_2.18 ualarm F
+GLIBC_2.18 ulckpwdf F
+GLIBC_2.18 ulimit F
+GLIBC_2.18 umask F
+GLIBC_2.18 umount F
+GLIBC_2.18 umount2 F
+GLIBC_2.18 uname F
+GLIBC_2.18 ungetc F
+GLIBC_2.18 ungetwc F
+GLIBC_2.18 unlink F
+GLIBC_2.18 unlinkat F
+GLIBC_2.18 unlockpt F
+GLIBC_2.18 unsetenv F
+GLIBC_2.18 unshare F
+GLIBC_2.18 updwtmp F
+GLIBC_2.18 updwtmpx F
+GLIBC_2.18 uselib F
+GLIBC_2.18 uselocale F
+GLIBC_2.18 user2netname F
+GLIBC_2.18 usleep F
+GLIBC_2.18 ustat F
+GLIBC_2.18 utime F
+GLIBC_2.18 utimensat F
+GLIBC_2.18 utimes F
+GLIBC_2.18 utmpname F
+GLIBC_2.18 utmpxname F
+GLIBC_2.18 valloc F
+GLIBC_2.18 vasprintf F
+GLIBC_2.18 vdprintf F
+GLIBC_2.18 verr F
+GLIBC_2.18 verrx F
+GLIBC_2.18 versionsort F
+GLIBC_2.18 versionsort64 F
+GLIBC_2.18 vfork F
+GLIBC_2.18 vfprintf F
+GLIBC_2.18 vfscanf F
+GLIBC_2.18 vfwprintf F
+GLIBC_2.18 vfwscanf F
+GLIBC_2.18 vhangup F
+GLIBC_2.18 vlimit F
+GLIBC_2.18 vmsplice F
+GLIBC_2.18 vprintf F
+GLIBC_2.18 vscanf F
+GLIBC_2.18 vsnprintf F
+GLIBC_2.18 vsprintf F
+GLIBC_2.18 vsscanf F
+GLIBC_2.18 vswprintf F
+GLIBC_2.18 vswscanf F
+GLIBC_2.18 vsyslog F
+GLIBC_2.18 vtimes F
+GLIBC_2.18 vwarn F
+GLIBC_2.18 vwarnx F
+GLIBC_2.18 vwprintf F
+GLIBC_2.18 vwscanf F
+GLIBC_2.18 wait F
+GLIBC_2.18 wait3 F
+GLIBC_2.18 wait4 F
+GLIBC_2.18 waitid F
+GLIBC_2.18 waitpid F
+GLIBC_2.18 warn F
+GLIBC_2.18 warnx F
+GLIBC_2.18 wcpcpy F
+GLIBC_2.18 wcpncpy F
+GLIBC_2.18 wcrtomb F
+GLIBC_2.18 wcscasecmp F
+GLIBC_2.18 wcscasecmp_l F
+GLIBC_2.18 wcscat F
+GLIBC_2.18 wcschr F
+GLIBC_2.18 wcschrnul F
+GLIBC_2.18 wcscmp F
+GLIBC_2.18 wcscoll F
+GLIBC_2.18 wcscoll_l F
+GLIBC_2.18 wcscpy F
+GLIBC_2.18 wcscspn F
+GLIBC_2.18 wcsdup F
+GLIBC_2.18 wcsftime F
+GLIBC_2.18 wcsftime_l F
+GLIBC_2.18 wcslen F
+GLIBC_2.18 wcsncasecmp F
+GLIBC_2.18 wcsncasecmp_l F
+GLIBC_2.18 wcsncat F
+GLIBC_2.18 wcsncmp F
+GLIBC_2.18 wcsncpy F
+GLIBC_2.18 wcsnlen F
+GLIBC_2.18 wcsnrtombs F
+GLIBC_2.18 wcspbrk F
+GLIBC_2.18 wcsrchr F
+GLIBC_2.18 wcsrtombs F
+GLIBC_2.18 wcsspn F
+GLIBC_2.18 wcsstr F
+GLIBC_2.18 wcstod F
+GLIBC_2.18 wcstod_l F
+GLIBC_2.18 wcstof F
+GLIBC_2.18 wcstof_l F
+GLIBC_2.18 wcstoimax F
+GLIBC_2.18 wcstok F
+GLIBC_2.18 wcstol F
+GLIBC_2.18 wcstol_l F
+GLIBC_2.18 wcstold F
+GLIBC_2.18 wcstold_l F
+GLIBC_2.18 wcstoll F
+GLIBC_2.18 wcstoll_l F
+GLIBC_2.18 wcstombs F
+GLIBC_2.18 wcstoq F
+GLIBC_2.18 wcstoul F
+GLIBC_2.18 wcstoul_l F
+GLIBC_2.18 wcstoull F
+GLIBC_2.18 wcstoull_l F
+GLIBC_2.18 wcstoumax F
+GLIBC_2.18 wcstouq F
+GLIBC_2.18 wcswcs F
+GLIBC_2.18 wcswidth F
+GLIBC_2.18 wcsxfrm F
+GLIBC_2.18 wcsxfrm_l F
+GLIBC_2.18 wctob F
+GLIBC_2.18 wctomb F
+GLIBC_2.18 wctrans F
+GLIBC_2.18 wctrans_l F
+GLIBC_2.18 wctype F
+GLIBC_2.18 wctype_l F
+GLIBC_2.18 wcwidth F
+GLIBC_2.18 wmemchr F
+GLIBC_2.18 wmemcmp F
+GLIBC_2.18 wmemcpy F
+GLIBC_2.18 wmemmove F
+GLIBC_2.18 wmempcpy F
+GLIBC_2.18 wmemset F
+GLIBC_2.18 wordexp F
+GLIBC_2.18 wordfree F
+GLIBC_2.18 wprintf F
+GLIBC_2.18 write F
+GLIBC_2.18 writev F
+GLIBC_2.18 wscanf F
+GLIBC_2.18 xdecrypt F
+GLIBC_2.18 xdr_accepted_reply F
+GLIBC_2.18 xdr_array F
+GLIBC_2.18 xdr_authdes_cred F
+GLIBC_2.18 xdr_authdes_verf F
+GLIBC_2.18 xdr_authunix_parms F
+GLIBC_2.18 xdr_bool F
+GLIBC_2.18 xdr_bytes F
+GLIBC_2.18 xdr_callhdr F
+GLIBC_2.18 xdr_callmsg F
+GLIBC_2.18 xdr_char F
+GLIBC_2.18 xdr_cryptkeyarg F
+GLIBC_2.18 xdr_cryptkeyarg2 F
+GLIBC_2.18 xdr_cryptkeyres F
+GLIBC_2.18 xdr_des_block F
+GLIBC_2.18 xdr_double F
+GLIBC_2.18 xdr_enum F
+GLIBC_2.18 xdr_float F
+GLIBC_2.18 xdr_free F
+GLIBC_2.18 xdr_getcredres F
+GLIBC_2.18 xdr_hyper F
+GLIBC_2.18 xdr_int F
+GLIBC_2.18 xdr_int16_t F
+GLIBC_2.18 xdr_int32_t F
+GLIBC_2.18 xdr_int64_t F
+GLIBC_2.18 xdr_int8_t F
+GLIBC_2.18 xdr_key_netstarg F
+GLIBC_2.18 xdr_key_netstres F
+GLIBC_2.18 xdr_keybuf F
+GLIBC_2.18 xdr_keystatus F
+GLIBC_2.18 xdr_long F
+GLIBC_2.18 xdr_longlong_t F
+GLIBC_2.18 xdr_netnamestr F
+GLIBC_2.18 xdr_netobj F
+GLIBC_2.18 xdr_opaque F
+GLIBC_2.18 xdr_opaque_auth F
+GLIBC_2.18 xdr_pmap F
+GLIBC_2.18 xdr_pmaplist F
+GLIBC_2.18 xdr_pointer F
+GLIBC_2.18 xdr_quad_t F
+GLIBC_2.18 xdr_reference F
+GLIBC_2.18 xdr_rejected_reply F
+GLIBC_2.18 xdr_replymsg F
+GLIBC_2.18 xdr_rmtcall_args F
+GLIBC_2.18 xdr_rmtcallres F
+GLIBC_2.18 xdr_short F
+GLIBC_2.18 xdr_sizeof F
+GLIBC_2.18 xdr_string F
+GLIBC_2.18 xdr_u_char F
+GLIBC_2.18 xdr_u_hyper F
+GLIBC_2.18 xdr_u_int F
+GLIBC_2.18 xdr_u_long F
+GLIBC_2.18 xdr_u_longlong_t F
+GLIBC_2.18 xdr_u_quad_t F
+GLIBC_2.18 xdr_u_short F
+GLIBC_2.18 xdr_uint16_t F
+GLIBC_2.18 xdr_uint32_t F
+GLIBC_2.18 xdr_uint64_t F
+GLIBC_2.18 xdr_uint8_t F
+GLIBC_2.18 xdr_union F
+GLIBC_2.18 xdr_unixcred F
+GLIBC_2.18 xdr_vector F
+GLIBC_2.18 xdr_void F
+GLIBC_2.18 xdr_wrapstring F
+GLIBC_2.18 xdrmem_create F
+GLIBC_2.18 xdrrec_create F
+GLIBC_2.18 xdrrec_endofrecord F
+GLIBC_2.18 xdrrec_eof F
+GLIBC_2.18 xdrrec_skiprecord F
+GLIBC_2.18 xdrstdio_create F
+GLIBC_2.18 xencrypt F
+GLIBC_2.18 xprt_register F
+GLIBC_2.18 xprt_unregister F
+GLIBC_2.22 GLIBC_2.22 A
+GLIBC_2.22 fmemopen F
+GLIBC_2.23 GLIBC_2.23 A
+GLIBC_2.23 fts64_children F
+GLIBC_2.23 fts64_close F
+GLIBC_2.23 fts64_open F
+GLIBC_2.23 fts64_read F
+GLIBC_2.23 fts64_set F
+GLIBC_2.24 GLIBC_2.24 A
+GLIBC_2.24 quick_exit F
+GLIBC_2.25 GLIBC_2.25 A
+GLIBC_2.25 __explicit_bzero_chk F
+GLIBC_2.25 explicit_bzero F
+GLIBC_2.25 getentropy F
+GLIBC_2.25 getrandom F
+GLIBC_2.25 strfromd F
+GLIBC_2.25 strfromf F
+GLIBC_2.25 strfroml F
+GLIBC_2.26 GLIBC_2.26 A
+GLIBC_2.26 preadv2 F
+GLIBC_2.26 preadv64v2 F
+GLIBC_2.26 pwritev2 F
+GLIBC_2.26 pwritev64v2 F
+GLIBC_2.26 reallocarray F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/microblaze/libcrypt.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/microblaze/libcrypt.abilist
new file mode 100644
index 0000000000..75fa78890a
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/microblaze/libcrypt.abilist
@@ -0,0 +1,8 @@
+GLIBC_2.18 GLIBC_2.18 A
+GLIBC_2.18 crypt F
+GLIBC_2.18 crypt_r F
+GLIBC_2.18 encrypt F
+GLIBC_2.18 encrypt_r F
+GLIBC_2.18 fcrypt F
+GLIBC_2.18 setkey F
+GLIBC_2.18 setkey_r F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/microblaze/libdl.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/microblaze/libdl.abilist
new file mode 100644
index 0000000000..7cad5061b0
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/microblaze/libdl.abilist
@@ -0,0 +1,10 @@
+GLIBC_2.18 GLIBC_2.18 A
+GLIBC_2.18 dladdr F
+GLIBC_2.18 dladdr1 F
+GLIBC_2.18 dlclose F
+GLIBC_2.18 dlerror F
+GLIBC_2.18 dlinfo F
+GLIBC_2.18 dlmopen F
+GLIBC_2.18 dlopen F
+GLIBC_2.18 dlsym F
+GLIBC_2.18 dlvsym F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/microblaze/libm.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/microblaze/libm.abilist
new file mode 100644
index 0000000000..bb872f292a
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/microblaze/libm.abilist
@@ -0,0 +1,430 @@
+GLIBC_2.18 GLIBC_2.18 A
+GLIBC_2.18 _LIB_VERSION D 0x4
+GLIBC_2.18 __acos_finite F
+GLIBC_2.18 __acosf_finite F
+GLIBC_2.18 __acosh_finite F
+GLIBC_2.18 __acoshf_finite F
+GLIBC_2.18 __asin_finite F
+GLIBC_2.18 __asinf_finite F
+GLIBC_2.18 __atan2_finite F
+GLIBC_2.18 __atan2f_finite F
+GLIBC_2.18 __atanh_finite F
+GLIBC_2.18 __atanhf_finite F
+GLIBC_2.18 __clog10 F
+GLIBC_2.18 __clog10f F
+GLIBC_2.18 __clog10l F
+GLIBC_2.18 __cosh_finite F
+GLIBC_2.18 __coshf_finite F
+GLIBC_2.18 __exp10_finite F
+GLIBC_2.18 __exp10f_finite F
+GLIBC_2.18 __exp2_finite F
+GLIBC_2.18 __exp2f_finite F
+GLIBC_2.18 __exp_finite F
+GLIBC_2.18 __expf_finite F
+GLIBC_2.18 __finite F
+GLIBC_2.18 __finitef F
+GLIBC_2.18 __finitel F
+GLIBC_2.18 __fmod_finite F
+GLIBC_2.18 __fmodf_finite F
+GLIBC_2.18 __fpclassify F
+GLIBC_2.18 __fpclassifyf F
+GLIBC_2.18 __gamma_r_finite F
+GLIBC_2.18 __gammaf_r_finite F
+GLIBC_2.18 __hypot_finite F
+GLIBC_2.18 __hypotf_finite F
+GLIBC_2.18 __issignaling F
+GLIBC_2.18 __issignalingf F
+GLIBC_2.18 __j0_finite F
+GLIBC_2.18 __j0f_finite F
+GLIBC_2.18 __j1_finite F
+GLIBC_2.18 __j1f_finite F
+GLIBC_2.18 __jn_finite F
+GLIBC_2.18 __jnf_finite F
+GLIBC_2.18 __lgamma_r_finite F
+GLIBC_2.18 __lgammaf_r_finite F
+GLIBC_2.18 __log10_finite F
+GLIBC_2.18 __log10f_finite F
+GLIBC_2.18 __log2_finite F
+GLIBC_2.18 __log2f_finite F
+GLIBC_2.18 __log_finite F
+GLIBC_2.18 __logf_finite F
+GLIBC_2.18 __pow_finite F
+GLIBC_2.18 __powf_finite F
+GLIBC_2.18 __remainder_finite F
+GLIBC_2.18 __remainderf_finite F
+GLIBC_2.18 __scalb_finite F
+GLIBC_2.18 __scalbf_finite F
+GLIBC_2.18 __signbit F
+GLIBC_2.18 __signbitf F
+GLIBC_2.18 __sinh_finite F
+GLIBC_2.18 __sinhf_finite F
+GLIBC_2.18 __sqrt_finite F
+GLIBC_2.18 __sqrtf_finite F
+GLIBC_2.18 __y0_finite F
+GLIBC_2.18 __y0f_finite F
+GLIBC_2.18 __y1_finite F
+GLIBC_2.18 __y1f_finite F
+GLIBC_2.18 __yn_finite F
+GLIBC_2.18 __ynf_finite F
+GLIBC_2.18 acos F
+GLIBC_2.18 acosf F
+GLIBC_2.18 acosh F
+GLIBC_2.18 acoshf F
+GLIBC_2.18 acoshl F
+GLIBC_2.18 acosl F
+GLIBC_2.18 asin F
+GLIBC_2.18 asinf F
+GLIBC_2.18 asinh F
+GLIBC_2.18 asinhf F
+GLIBC_2.18 asinhl F
+GLIBC_2.18 asinl F
+GLIBC_2.18 atan F
+GLIBC_2.18 atan2 F
+GLIBC_2.18 atan2f F
+GLIBC_2.18 atan2l F
+GLIBC_2.18 atanf F
+GLIBC_2.18 atanh F
+GLIBC_2.18 atanhf F
+GLIBC_2.18 atanhl F
+GLIBC_2.18 atanl F
+GLIBC_2.18 cabs F
+GLIBC_2.18 cabsf F
+GLIBC_2.18 cabsl F
+GLIBC_2.18 cacos F
+GLIBC_2.18 cacosf F
+GLIBC_2.18 cacosh F
+GLIBC_2.18 cacoshf F
+GLIBC_2.18 cacoshl F
+GLIBC_2.18 cacosl F
+GLIBC_2.18 carg F
+GLIBC_2.18 cargf F
+GLIBC_2.18 cargl F
+GLIBC_2.18 casin F
+GLIBC_2.18 casinf F
+GLIBC_2.18 casinh F
+GLIBC_2.18 casinhf F
+GLIBC_2.18 casinhl F
+GLIBC_2.18 casinl F
+GLIBC_2.18 catan F
+GLIBC_2.18 catanf F
+GLIBC_2.18 catanh F
+GLIBC_2.18 catanhf F
+GLIBC_2.18 catanhl F
+GLIBC_2.18 catanl F
+GLIBC_2.18 cbrt F
+GLIBC_2.18 cbrtf F
+GLIBC_2.18 cbrtl F
+GLIBC_2.18 ccos F
+GLIBC_2.18 ccosf F
+GLIBC_2.18 ccosh F
+GLIBC_2.18 ccoshf F
+GLIBC_2.18 ccoshl F
+GLIBC_2.18 ccosl F
+GLIBC_2.18 ceil F
+GLIBC_2.18 ceilf F
+GLIBC_2.18 ceill F
+GLIBC_2.18 cexp F
+GLIBC_2.18 cexpf F
+GLIBC_2.18 cexpl F
+GLIBC_2.18 cimag F
+GLIBC_2.18 cimagf F
+GLIBC_2.18 cimagl F
+GLIBC_2.18 clog F
+GLIBC_2.18 clog10 F
+GLIBC_2.18 clog10f F
+GLIBC_2.18 clog10l F
+GLIBC_2.18 clogf F
+GLIBC_2.18 clogl F
+GLIBC_2.18 conj F
+GLIBC_2.18 conjf F
+GLIBC_2.18 conjl F
+GLIBC_2.18 copysign F
+GLIBC_2.18 copysignf F
+GLIBC_2.18 copysignl F
+GLIBC_2.18 cos F
+GLIBC_2.18 cosf F
+GLIBC_2.18 cosh F
+GLIBC_2.18 coshf F
+GLIBC_2.18 coshl F
+GLIBC_2.18 cosl F
+GLIBC_2.18 cpow F
+GLIBC_2.18 cpowf F
+GLIBC_2.18 cpowl F
+GLIBC_2.18 cproj F
+GLIBC_2.18 cprojf F
+GLIBC_2.18 cprojl F
+GLIBC_2.18 creal F
+GLIBC_2.18 crealf F
+GLIBC_2.18 creall F
+GLIBC_2.18 csin F
+GLIBC_2.18 csinf F
+GLIBC_2.18 csinh F
+GLIBC_2.18 csinhf F
+GLIBC_2.18 csinhl F
+GLIBC_2.18 csinl F
+GLIBC_2.18 csqrt F
+GLIBC_2.18 csqrtf F
+GLIBC_2.18 csqrtl F
+GLIBC_2.18 ctan F
+GLIBC_2.18 ctanf F
+GLIBC_2.18 ctanh F
+GLIBC_2.18 ctanhf F
+GLIBC_2.18 ctanhl F
+GLIBC_2.18 ctanl F
+GLIBC_2.18 drem F
+GLIBC_2.18 dremf F
+GLIBC_2.18 dreml F
+GLIBC_2.18 erf F
+GLIBC_2.18 erfc F
+GLIBC_2.18 erfcf F
+GLIBC_2.18 erfcl F
+GLIBC_2.18 erff F
+GLIBC_2.18 erfl F
+GLIBC_2.18 exp F
+GLIBC_2.18 exp10 F
+GLIBC_2.18 exp10f F
+GLIBC_2.18 exp10l F
+GLIBC_2.18 exp2 F
+GLIBC_2.18 exp2f F
+GLIBC_2.18 exp2l F
+GLIBC_2.18 expf F
+GLIBC_2.18 expl F
+GLIBC_2.18 expm1 F
+GLIBC_2.18 expm1f F
+GLIBC_2.18 expm1l F
+GLIBC_2.18 fabs F
+GLIBC_2.18 fabsf F
+GLIBC_2.18 fabsl F
+GLIBC_2.18 fdim F
+GLIBC_2.18 fdimf F
+GLIBC_2.18 fdiml F
+GLIBC_2.18 feclearexcept F
+GLIBC_2.18 fedisableexcept F
+GLIBC_2.18 feenableexcept F
+GLIBC_2.18 fegetenv F
+GLIBC_2.18 fegetexcept F
+GLIBC_2.18 fegetexceptflag F
+GLIBC_2.18 fegetround F
+GLIBC_2.18 feholdexcept F
+GLIBC_2.18 feraiseexcept F
+GLIBC_2.18 fesetenv F
+GLIBC_2.18 fesetexceptflag F
+GLIBC_2.18 fesetround F
+GLIBC_2.18 fetestexcept F
+GLIBC_2.18 feupdateenv F
+GLIBC_2.18 finite F
+GLIBC_2.18 finitef F
+GLIBC_2.18 finitel F
+GLIBC_2.18 floor F
+GLIBC_2.18 floorf F
+GLIBC_2.18 floorl F
+GLIBC_2.18 fma F
+GLIBC_2.18 fmaf F
+GLIBC_2.18 fmal F
+GLIBC_2.18 fmax F
+GLIBC_2.18 fmaxf F
+GLIBC_2.18 fmaxl F
+GLIBC_2.18 fmin F
+GLIBC_2.18 fminf F
+GLIBC_2.18 fminl F
+GLIBC_2.18 fmod F
+GLIBC_2.18 fmodf F
+GLIBC_2.18 fmodl F
+GLIBC_2.18 frexp F
+GLIBC_2.18 frexpf F
+GLIBC_2.18 frexpl F
+GLIBC_2.18 gamma F
+GLIBC_2.18 gammaf F
+GLIBC_2.18 gammal F
+GLIBC_2.18 hypot F
+GLIBC_2.18 hypotf F
+GLIBC_2.18 hypotl F
+GLIBC_2.18 ilogb F
+GLIBC_2.18 ilogbf F
+GLIBC_2.18 ilogbl F
+GLIBC_2.18 j0 F
+GLIBC_2.18 j0f F
+GLIBC_2.18 j0l F
+GLIBC_2.18 j1 F
+GLIBC_2.18 j1f F
+GLIBC_2.18 j1l F
+GLIBC_2.18 jn F
+GLIBC_2.18 jnf F
+GLIBC_2.18 jnl F
+GLIBC_2.18 ldexp F
+GLIBC_2.18 ldexpf F
+GLIBC_2.18 ldexpl F
+GLIBC_2.18 lgamma F
+GLIBC_2.18 lgamma_r F
+GLIBC_2.18 lgammaf F
+GLIBC_2.18 lgammaf_r F
+GLIBC_2.18 lgammal F
+GLIBC_2.18 lgammal_r F
+GLIBC_2.18 llrint F
+GLIBC_2.18 llrintf F
+GLIBC_2.18 llrintl F
+GLIBC_2.18 llround F
+GLIBC_2.18 llroundf F
+GLIBC_2.18 llroundl F
+GLIBC_2.18 log F
+GLIBC_2.18 log10 F
+GLIBC_2.18 log10f F
+GLIBC_2.18 log10l F
+GLIBC_2.18 log1p F
+GLIBC_2.18 log1pf F
+GLIBC_2.18 log1pl F
+GLIBC_2.18 log2 F
+GLIBC_2.18 log2f F
+GLIBC_2.18 log2l F
+GLIBC_2.18 logb F
+GLIBC_2.18 logbf F
+GLIBC_2.18 logbl F
+GLIBC_2.18 logf F
+GLIBC_2.18 logl F
+GLIBC_2.18 lrint F
+GLIBC_2.18 lrintf F
+GLIBC_2.18 lrintl F
+GLIBC_2.18 lround F
+GLIBC_2.18 lroundf F
+GLIBC_2.18 lroundl F
+GLIBC_2.18 matherr F
+GLIBC_2.18 modf F
+GLIBC_2.18 modff F
+GLIBC_2.18 modfl F
+GLIBC_2.18 nan F
+GLIBC_2.18 nanf F
+GLIBC_2.18 nanl F
+GLIBC_2.18 nearbyint F
+GLIBC_2.18 nearbyintf F
+GLIBC_2.18 nearbyintl F
+GLIBC_2.18 nextafter F
+GLIBC_2.18 nextafterf F
+GLIBC_2.18 nextafterl F
+GLIBC_2.18 nexttoward F
+GLIBC_2.18 nexttowardf F
+GLIBC_2.18 nexttowardl F
+GLIBC_2.18 pow F
+GLIBC_2.18 pow10 F
+GLIBC_2.18 pow10f F
+GLIBC_2.18 pow10l F
+GLIBC_2.18 powf F
+GLIBC_2.18 powl F
+GLIBC_2.18 remainder F
+GLIBC_2.18 remainderf F
+GLIBC_2.18 remainderl F
+GLIBC_2.18 remquo F
+GLIBC_2.18 remquof F
+GLIBC_2.18 remquol F
+GLIBC_2.18 rint F
+GLIBC_2.18 rintf F
+GLIBC_2.18 rintl F
+GLIBC_2.18 round F
+GLIBC_2.18 roundf F
+GLIBC_2.18 roundl F
+GLIBC_2.18 scalb F
+GLIBC_2.18 scalbf F
+GLIBC_2.18 scalbl F
+GLIBC_2.18 scalbln F
+GLIBC_2.18 scalblnf F
+GLIBC_2.18 scalblnl F
+GLIBC_2.18 scalbn F
+GLIBC_2.18 scalbnf F
+GLIBC_2.18 scalbnl F
+GLIBC_2.18 signgam D 0x4
+GLIBC_2.18 significand F
+GLIBC_2.18 significandf F
+GLIBC_2.18 significandl F
+GLIBC_2.18 sin F
+GLIBC_2.18 sincos F
+GLIBC_2.18 sincosf F
+GLIBC_2.18 sincosl F
+GLIBC_2.18 sinf F
+GLIBC_2.18 sinh F
+GLIBC_2.18 sinhf F
+GLIBC_2.18 sinhl F
+GLIBC_2.18 sinl F
+GLIBC_2.18 sqrt F
+GLIBC_2.18 sqrtf F
+GLIBC_2.18 sqrtl F
+GLIBC_2.18 tan F
+GLIBC_2.18 tanf F
+GLIBC_2.18 tanh F
+GLIBC_2.18 tanhf F
+GLIBC_2.18 tanhl F
+GLIBC_2.18 tanl F
+GLIBC_2.18 tgamma F
+GLIBC_2.18 tgammaf F
+GLIBC_2.18 tgammal F
+GLIBC_2.18 trunc F
+GLIBC_2.18 truncf F
+GLIBC_2.18 truncl F
+GLIBC_2.18 y0 F
+GLIBC_2.18 y0f F
+GLIBC_2.18 y0l F
+GLIBC_2.18 y1 F
+GLIBC_2.18 y1f F
+GLIBC_2.18 y1l F
+GLIBC_2.18 yn F
+GLIBC_2.18 ynf F
+GLIBC_2.18 ynl F
+GLIBC_2.23 GLIBC_2.23 A
+GLIBC_2.23 __signgam D 0x4
+GLIBC_2.23 lgamma F
+GLIBC_2.23 lgammaf F
+GLIBC_2.23 lgammal F
+GLIBC_2.24 GLIBC_2.24 A
+GLIBC_2.24 nextdown F
+GLIBC_2.24 nextdownf F
+GLIBC_2.24 nextdownl F
+GLIBC_2.24 nextup F
+GLIBC_2.24 nextupf F
+GLIBC_2.24 nextupl F
+GLIBC_2.25 GLIBC_2.25 A
+GLIBC_2.25 __iseqsig F
+GLIBC_2.25 __iseqsigf F
+GLIBC_2.25 canonicalize F
+GLIBC_2.25 canonicalizef F
+GLIBC_2.25 canonicalizel F
+GLIBC_2.25 fegetmode F
+GLIBC_2.25 fesetexcept F
+GLIBC_2.25 fesetmode F
+GLIBC_2.25 fetestexceptflag F
+GLIBC_2.25 fmaxmag F
+GLIBC_2.25 fmaxmagf F
+GLIBC_2.25 fmaxmagl F
+GLIBC_2.25 fminmag F
+GLIBC_2.25 fminmagf F
+GLIBC_2.25 fminmagl F
+GLIBC_2.25 fromfp F
+GLIBC_2.25 fromfpf F
+GLIBC_2.25 fromfpl F
+GLIBC_2.25 fromfpx F
+GLIBC_2.25 fromfpxf F
+GLIBC_2.25 fromfpxl F
+GLIBC_2.25 getpayload F
+GLIBC_2.25 getpayloadf F
+GLIBC_2.25 getpayloadl F
+GLIBC_2.25 llogb F
+GLIBC_2.25 llogbf F
+GLIBC_2.25 llogbl F
+GLIBC_2.25 roundeven F
+GLIBC_2.25 roundevenf F
+GLIBC_2.25 roundevenl F
+GLIBC_2.25 setpayload F
+GLIBC_2.25 setpayloadf F
+GLIBC_2.25 setpayloadl F
+GLIBC_2.25 setpayloadsig F
+GLIBC_2.25 setpayloadsigf F
+GLIBC_2.25 setpayloadsigl F
+GLIBC_2.25 totalorder F
+GLIBC_2.25 totalorderf F
+GLIBC_2.25 totalorderl F
+GLIBC_2.25 totalordermag F
+GLIBC_2.25 totalordermagf F
+GLIBC_2.25 totalordermagl F
+GLIBC_2.25 ufromfp F
+GLIBC_2.25 ufromfpf F
+GLIBC_2.25 ufromfpl F
+GLIBC_2.25 ufromfpx F
+GLIBC_2.25 ufromfpxf F
+GLIBC_2.25 ufromfpxl F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/microblaze/libnsl.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/microblaze/libnsl.abilist
new file mode 100644
index 0000000000..959b74b90e
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/microblaze/libnsl.abilist
@@ -0,0 +1,122 @@
+GLIBC_2.18 GLIBC_2.18 A
+GLIBC_2.18 __free_fdresult F
+GLIBC_2.18 __nis_default_access F
+GLIBC_2.18 __nis_default_group F
+GLIBC_2.18 __nis_default_owner F
+GLIBC_2.18 __nis_default_ttl F
+GLIBC_2.18 __nis_finddirectory F
+GLIBC_2.18 __nis_hash F
+GLIBC_2.18 __nisbind_connect F
+GLIBC_2.18 __nisbind_create F
+GLIBC_2.18 __nisbind_destroy F
+GLIBC_2.18 __nisbind_next F
+GLIBC_2.18 __yp_check F
+GLIBC_2.18 nis_add F
+GLIBC_2.18 nis_add_entry F
+GLIBC_2.18 nis_addmember F
+GLIBC_2.18 nis_checkpoint F
+GLIBC_2.18 nis_clone_directory F
+GLIBC_2.18 nis_clone_object F
+GLIBC_2.18 nis_clone_result F
+GLIBC_2.18 nis_creategroup F
+GLIBC_2.18 nis_destroy_object F
+GLIBC_2.18 nis_destroygroup F
+GLIBC_2.18 nis_dir_cmp F
+GLIBC_2.18 nis_domain_of F
+GLIBC_2.18 nis_domain_of_r F
+GLIBC_2.18 nis_first_entry F
+GLIBC_2.18 nis_free_directory F
+GLIBC_2.18 nis_free_object F
+GLIBC_2.18 nis_free_request F
+GLIBC_2.18 nis_freenames F
+GLIBC_2.18 nis_freeresult F
+GLIBC_2.18 nis_freeservlist F
+GLIBC_2.18 nis_freetags F
+GLIBC_2.18 nis_getnames F
+GLIBC_2.18 nis_getservlist F
+GLIBC_2.18 nis_ismember F
+GLIBC_2.18 nis_leaf_of F
+GLIBC_2.18 nis_leaf_of_r F
+GLIBC_2.18 nis_lerror F
+GLIBC_2.18 nis_list F
+GLIBC_2.18 nis_local_directory F
+GLIBC_2.18 nis_local_group F
+GLIBC_2.18 nis_local_host F
+GLIBC_2.18 nis_local_principal F
+GLIBC_2.18 nis_lookup F
+GLIBC_2.18 nis_mkdir F
+GLIBC_2.18 nis_modify F
+GLIBC_2.18 nis_modify_entry F
+GLIBC_2.18 nis_name_of F
+GLIBC_2.18 nis_name_of_r F
+GLIBC_2.18 nis_next_entry F
+GLIBC_2.18 nis_perror F
+GLIBC_2.18 nis_ping F
+GLIBC_2.18 nis_print_directory F
+GLIBC_2.18 nis_print_entry F
+GLIBC_2.18 nis_print_group F
+GLIBC_2.18 nis_print_group_entry F
+GLIBC_2.18 nis_print_link F
+GLIBC_2.18 nis_print_object F
+GLIBC_2.18 nis_print_result F
+GLIBC_2.18 nis_print_rights F
+GLIBC_2.18 nis_print_table F
+GLIBC_2.18 nis_read_obj F
+GLIBC_2.18 nis_remove F
+GLIBC_2.18 nis_remove_entry F
+GLIBC_2.18 nis_removemember F
+GLIBC_2.18 nis_rmdir F
+GLIBC_2.18 nis_servstate F
+GLIBC_2.18 nis_sperrno F
+GLIBC_2.18 nis_sperror F
+GLIBC_2.18 nis_sperror_r F
+GLIBC_2.18 nis_stats F
+GLIBC_2.18 nis_verifygroup F
+GLIBC_2.18 nis_write_obj F
+GLIBC_2.18 readColdStartFile F
+GLIBC_2.18 writeColdStartFile F
+GLIBC_2.18 xdr_cback_data F
+GLIBC_2.18 xdr_domainname F
+GLIBC_2.18 xdr_keydat F
+GLIBC_2.18 xdr_mapname F
+GLIBC_2.18 xdr_obj_p F
+GLIBC_2.18 xdr_peername F
+GLIBC_2.18 xdr_valdat F
+GLIBC_2.18 xdr_yp_buf F
+GLIBC_2.18 xdr_ypall F
+GLIBC_2.18 xdr_ypbind_binding F
+GLIBC_2.18 xdr_ypbind_resp F
+GLIBC_2.18 xdr_ypbind_resptype F
+GLIBC_2.18 xdr_ypbind_setdom F
+GLIBC_2.18 xdr_ypdelete_args F
+GLIBC_2.18 xdr_ypmap_parms F
+GLIBC_2.18 xdr_ypmaplist F
+GLIBC_2.18 xdr_yppush_status F
+GLIBC_2.18 xdr_yppushresp_xfr F
+GLIBC_2.18 xdr_ypreq_key F
+GLIBC_2.18 xdr_ypreq_nokey F
+GLIBC_2.18 xdr_ypreq_xfr F
+GLIBC_2.18 xdr_ypresp_all F
+GLIBC_2.18 xdr_ypresp_key_val F
+GLIBC_2.18 xdr_ypresp_maplist F
+GLIBC_2.18 xdr_ypresp_master F
+GLIBC_2.18 xdr_ypresp_order F
+GLIBC_2.18 xdr_ypresp_val F
+GLIBC_2.18 xdr_ypresp_xfr F
+GLIBC_2.18 xdr_ypstat F
+GLIBC_2.18 xdr_ypupdate_args F
+GLIBC_2.18 xdr_ypxfrstat F
+GLIBC_2.18 yp_all F
+GLIBC_2.18 yp_bind F
+GLIBC_2.18 yp_first F
+GLIBC_2.18 yp_get_default_domain F
+GLIBC_2.18 yp_maplist F
+GLIBC_2.18 yp_master F
+GLIBC_2.18 yp_match F
+GLIBC_2.18 yp_next F
+GLIBC_2.18 yp_order F
+GLIBC_2.18 yp_unbind F
+GLIBC_2.18 yp_update F
+GLIBC_2.18 ypbinderr_string F
+GLIBC_2.18 yperr_string F
+GLIBC_2.18 ypprot_err F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/microblaze/libpthread.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/microblaze/libpthread.abilist
new file mode 100644
index 0000000000..00d948b60a
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/microblaze/libpthread.abilist
@@ -0,0 +1,225 @@
+GLIBC_2.18 GLIBC_2.18 A
+GLIBC_2.18 _IO_flockfile F
+GLIBC_2.18 _IO_ftrylockfile F
+GLIBC_2.18 _IO_funlockfile F
+GLIBC_2.18 __close F
+GLIBC_2.18 __connect F
+GLIBC_2.18 __errno_location F
+GLIBC_2.18 __fcntl F
+GLIBC_2.18 __fork F
+GLIBC_2.18 __h_errno_location F
+GLIBC_2.18 __libc_allocate_rtsig F
+GLIBC_2.18 __libc_current_sigrtmax F
+GLIBC_2.18 __libc_current_sigrtmin F
+GLIBC_2.18 __lseek F
+GLIBC_2.18 __nanosleep F
+GLIBC_2.18 __open F
+GLIBC_2.18 __open64 F
+GLIBC_2.18 __pread64 F
+GLIBC_2.18 __pthread_cleanup_routine F
+GLIBC_2.18 __pthread_getspecific F
+GLIBC_2.18 __pthread_key_create F
+GLIBC_2.18 __pthread_mutex_destroy F
+GLIBC_2.18 __pthread_mutex_init F
+GLIBC_2.18 __pthread_mutex_lock F
+GLIBC_2.18 __pthread_mutex_trylock F
+GLIBC_2.18 __pthread_mutex_unlock F
+GLIBC_2.18 __pthread_mutexattr_destroy F
+GLIBC_2.18 __pthread_mutexattr_init F
+GLIBC_2.18 __pthread_mutexattr_settype F
+GLIBC_2.18 __pthread_once F
+GLIBC_2.18 __pthread_register_cancel F
+GLIBC_2.18 __pthread_register_cancel_defer F
+GLIBC_2.18 __pthread_rwlock_destroy F
+GLIBC_2.18 __pthread_rwlock_init F
+GLIBC_2.18 __pthread_rwlock_rdlock F
+GLIBC_2.18 __pthread_rwlock_tryrdlock F
+GLIBC_2.18 __pthread_rwlock_trywrlock F
+GLIBC_2.18 __pthread_rwlock_unlock F
+GLIBC_2.18 __pthread_rwlock_wrlock F
+GLIBC_2.18 __pthread_setspecific F
+GLIBC_2.18 __pthread_unregister_cancel F
+GLIBC_2.18 __pthread_unregister_cancel_restore F
+GLIBC_2.18 __pthread_unwind_next F
+GLIBC_2.18 __pwrite64 F
+GLIBC_2.18 __read F
+GLIBC_2.18 __res_state F
+GLIBC_2.18 __send F
+GLIBC_2.18 __sigaction F
+GLIBC_2.18 __vfork F
+GLIBC_2.18 __wait F
+GLIBC_2.18 __write F
+GLIBC_2.18 _pthread_cleanup_pop F
+GLIBC_2.18 _pthread_cleanup_pop_restore F
+GLIBC_2.18 _pthread_cleanup_push F
+GLIBC_2.18 _pthread_cleanup_push_defer F
+GLIBC_2.18 accept F
+GLIBC_2.18 close F
+GLIBC_2.18 connect F
+GLIBC_2.18 fcntl F
+GLIBC_2.18 flockfile F
+GLIBC_2.18 fork F
+GLIBC_2.18 fsync F
+GLIBC_2.18 ftrylockfile F
+GLIBC_2.18 funlockfile F
+GLIBC_2.18 longjmp F
+GLIBC_2.18 lseek F
+GLIBC_2.18 lseek64 F
+GLIBC_2.18 msync F
+GLIBC_2.18 nanosleep F
+GLIBC_2.18 open F
+GLIBC_2.18 open64 F
+GLIBC_2.18 pause F
+GLIBC_2.18 pread F
+GLIBC_2.18 pread64 F
+GLIBC_2.18 pthread_attr_destroy F
+GLIBC_2.18 pthread_attr_getaffinity_np F
+GLIBC_2.18 pthread_attr_getdetachstate F
+GLIBC_2.18 pthread_attr_getguardsize F
+GLIBC_2.18 pthread_attr_getinheritsched F
+GLIBC_2.18 pthread_attr_getschedparam F
+GLIBC_2.18 pthread_attr_getschedpolicy F
+GLIBC_2.18 pthread_attr_getscope F
+GLIBC_2.18 pthread_attr_getstack F
+GLIBC_2.18 pthread_attr_getstackaddr F
+GLIBC_2.18 pthread_attr_getstacksize F
+GLIBC_2.18 pthread_attr_init F
+GLIBC_2.18 pthread_attr_setaffinity_np F
+GLIBC_2.18 pthread_attr_setdetachstate F
+GLIBC_2.18 pthread_attr_setguardsize F
+GLIBC_2.18 pthread_attr_setinheritsched F
+GLIBC_2.18 pthread_attr_setschedparam F
+GLIBC_2.18 pthread_attr_setschedpolicy F
+GLIBC_2.18 pthread_attr_setscope F
+GLIBC_2.18 pthread_attr_setstack F
+GLIBC_2.18 pthread_attr_setstackaddr F
+GLIBC_2.18 pthread_attr_setstacksize F
+GLIBC_2.18 pthread_barrier_destroy F
+GLIBC_2.18 pthread_barrier_init F
+GLIBC_2.18 pthread_barrier_wait F
+GLIBC_2.18 pthread_barrierattr_destroy F
+GLIBC_2.18 pthread_barrierattr_getpshared F
+GLIBC_2.18 pthread_barrierattr_init F
+GLIBC_2.18 pthread_barrierattr_setpshared F
+GLIBC_2.18 pthread_cancel F
+GLIBC_2.18 pthread_cond_broadcast F
+GLIBC_2.18 pthread_cond_destroy F
+GLIBC_2.18 pthread_cond_init F
+GLIBC_2.18 pthread_cond_signal F
+GLIBC_2.18 pthread_cond_timedwait F
+GLIBC_2.18 pthread_cond_wait F
+GLIBC_2.18 pthread_condattr_destroy F
+GLIBC_2.18 pthread_condattr_getclock F
+GLIBC_2.18 pthread_condattr_getpshared F
+GLIBC_2.18 pthread_condattr_init F
+GLIBC_2.18 pthread_condattr_setclock F
+GLIBC_2.18 pthread_condattr_setpshared F
+GLIBC_2.18 pthread_create F
+GLIBC_2.18 pthread_detach F
+GLIBC_2.18 pthread_equal F
+GLIBC_2.18 pthread_exit F
+GLIBC_2.18 pthread_getaffinity_np F
+GLIBC_2.18 pthread_getattr_default_np F
+GLIBC_2.18 pthread_getattr_np F
+GLIBC_2.18 pthread_getconcurrency F
+GLIBC_2.18 pthread_getcpuclockid F
+GLIBC_2.18 pthread_getname_np F
+GLIBC_2.18 pthread_getschedparam F
+GLIBC_2.18 pthread_getspecific F
+GLIBC_2.18 pthread_join F
+GLIBC_2.18 pthread_key_create F
+GLIBC_2.18 pthread_key_delete F
+GLIBC_2.18 pthread_kill F
+GLIBC_2.18 pthread_kill_other_threads_np F
+GLIBC_2.18 pthread_mutex_consistent F
+GLIBC_2.18 pthread_mutex_consistent_np F
+GLIBC_2.18 pthread_mutex_destroy F
+GLIBC_2.18 pthread_mutex_getprioceiling F
+GLIBC_2.18 pthread_mutex_init F
+GLIBC_2.18 pthread_mutex_lock F
+GLIBC_2.18 pthread_mutex_setprioceiling F
+GLIBC_2.18 pthread_mutex_timedlock F
+GLIBC_2.18 pthread_mutex_trylock F
+GLIBC_2.18 pthread_mutex_unlock F
+GLIBC_2.18 pthread_mutexattr_destroy F
+GLIBC_2.18 pthread_mutexattr_getkind_np F
+GLIBC_2.18 pthread_mutexattr_getprioceiling F
+GLIBC_2.18 pthread_mutexattr_getprotocol F
+GLIBC_2.18 pthread_mutexattr_getpshared F
+GLIBC_2.18 pthread_mutexattr_getrobust F
+GLIBC_2.18 pthread_mutexattr_getrobust_np F
+GLIBC_2.18 pthread_mutexattr_gettype F
+GLIBC_2.18 pthread_mutexattr_init F
+GLIBC_2.18 pthread_mutexattr_setkind_np F
+GLIBC_2.18 pthread_mutexattr_setprioceiling F
+GLIBC_2.18 pthread_mutexattr_setprotocol F
+GLIBC_2.18 pthread_mutexattr_setpshared F
+GLIBC_2.18 pthread_mutexattr_setrobust F
+GLIBC_2.18 pthread_mutexattr_setrobust_np F
+GLIBC_2.18 pthread_mutexattr_settype F
+GLIBC_2.18 pthread_once F
+GLIBC_2.18 pthread_rwlock_destroy F
+GLIBC_2.18 pthread_rwlock_init F
+GLIBC_2.18 pthread_rwlock_rdlock F
+GLIBC_2.18 pthread_rwlock_timedrdlock F
+GLIBC_2.18 pthread_rwlock_timedwrlock F
+GLIBC_2.18 pthread_rwlock_tryrdlock F
+GLIBC_2.18 pthread_rwlock_trywrlock F
+GLIBC_2.18 pthread_rwlock_unlock F
+GLIBC_2.18 pthread_rwlock_wrlock F
+GLIBC_2.18 pthread_rwlockattr_destroy F
+GLIBC_2.18 pthread_rwlockattr_getkind_np F
+GLIBC_2.18 pthread_rwlockattr_getpshared F
+GLIBC_2.18 pthread_rwlockattr_init F
+GLIBC_2.18 pthread_rwlockattr_setkind_np F
+GLIBC_2.18 pthread_rwlockattr_setpshared F
+GLIBC_2.18 pthread_self F
+GLIBC_2.18 pthread_setaffinity_np F
+GLIBC_2.18 pthread_setattr_default_np F
+GLIBC_2.18 pthread_setcancelstate F
+GLIBC_2.18 pthread_setcanceltype F
+GLIBC_2.18 pthread_setconcurrency F
+GLIBC_2.18 pthread_setname_np F
+GLIBC_2.18 pthread_setschedparam F
+GLIBC_2.18 pthread_setschedprio F
+GLIBC_2.18 pthread_setspecific F
+GLIBC_2.18 pthread_sigmask F
+GLIBC_2.18 pthread_sigqueue F
+GLIBC_2.18 pthread_spin_destroy F
+GLIBC_2.18 pthread_spin_init F
+GLIBC_2.18 pthread_spin_lock F
+GLIBC_2.18 pthread_spin_trylock F
+GLIBC_2.18 pthread_spin_unlock F
+GLIBC_2.18 pthread_testcancel F
+GLIBC_2.18 pthread_timedjoin_np F
+GLIBC_2.18 pthread_tryjoin_np F
+GLIBC_2.18 pthread_yield F
+GLIBC_2.18 pwrite F
+GLIBC_2.18 pwrite64 F
+GLIBC_2.18 raise F
+GLIBC_2.18 read F
+GLIBC_2.18 recv F
+GLIBC_2.18 recvfrom F
+GLIBC_2.18 recvmsg F
+GLIBC_2.18 sem_close F
+GLIBC_2.18 sem_destroy F
+GLIBC_2.18 sem_getvalue F
+GLIBC_2.18 sem_init F
+GLIBC_2.18 sem_open F
+GLIBC_2.18 sem_post F
+GLIBC_2.18 sem_timedwait F
+GLIBC_2.18 sem_trywait F
+GLIBC_2.18 sem_unlink F
+GLIBC_2.18 sem_wait F
+GLIBC_2.18 send F
+GLIBC_2.18 sendmsg F
+GLIBC_2.18 sendto F
+GLIBC_2.18 sigaction F
+GLIBC_2.18 siglongjmp F
+GLIBC_2.18 sigwait F
+GLIBC_2.18 system F
+GLIBC_2.18 tcdrain F
+GLIBC_2.18 vfork F
+GLIBC_2.18 wait F
+GLIBC_2.18 waitpid F
+GLIBC_2.18 write F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/microblaze/libresolv.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/microblaze/libresolv.abilist
new file mode 100644
index 0000000000..765bc12438
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/microblaze/libresolv.abilist
@@ -0,0 +1,92 @@
+GLIBC_2.18 GLIBC_2.18 A
+GLIBC_2.18 __b64_ntop F
+GLIBC_2.18 __b64_pton F
+GLIBC_2.18 __dn_comp F
+GLIBC_2.18 __dn_count_labels F
+GLIBC_2.18 __dn_expand F
+GLIBC_2.18 __dn_skipname F
+GLIBC_2.18 __fp_nquery F
+GLIBC_2.18 __fp_query F
+GLIBC_2.18 __fp_resstat F
+GLIBC_2.18 __hostalias F
+GLIBC_2.18 __loc_aton F
+GLIBC_2.18 __loc_ntoa F
+GLIBC_2.18 __p_cdname F
+GLIBC_2.18 __p_cdnname F
+GLIBC_2.18 __p_class F
+GLIBC_2.18 __p_class_syms D 0x54
+GLIBC_2.18 __p_fqname F
+GLIBC_2.18 __p_fqnname F
+GLIBC_2.18 __p_option F
+GLIBC_2.18 __p_query F
+GLIBC_2.18 __p_rcode F
+GLIBC_2.18 __p_secstodate F
+GLIBC_2.18 __p_time F
+GLIBC_2.18 __p_type F
+GLIBC_2.18 __p_type_syms D 0x228
+GLIBC_2.18 __putlong F
+GLIBC_2.18 __putshort F
+GLIBC_2.18 __res_close F
+GLIBC_2.18 __res_dnok F
+GLIBC_2.18 __res_hnok F
+GLIBC_2.18 __res_hostalias F
+GLIBC_2.18 __res_isourserver F
+GLIBC_2.18 __res_mailok F
+GLIBC_2.18 __res_mkquery F
+GLIBC_2.18 __res_nameinquery F
+GLIBC_2.18 __res_nmkquery F
+GLIBC_2.18 __res_nquery F
+GLIBC_2.18 __res_nquerydomain F
+GLIBC_2.18 __res_nsearch F
+GLIBC_2.18 __res_nsend F
+GLIBC_2.18 __res_ownok F
+GLIBC_2.18 __res_queriesmatch F
+GLIBC_2.18 __res_query F
+GLIBC_2.18 __res_querydomain F
+GLIBC_2.18 __res_search F
+GLIBC_2.18 __res_send F
+GLIBC_2.18 __sym_ntop F
+GLIBC_2.18 __sym_ntos F
+GLIBC_2.18 __sym_ston F
+GLIBC_2.18 _gethtbyaddr F
+GLIBC_2.18 _gethtbyname F
+GLIBC_2.18 _gethtbyname2 F
+GLIBC_2.18 _gethtent F
+GLIBC_2.18 _getlong F
+GLIBC_2.18 _getshort F
+GLIBC_2.18 _res_opcodes D 0x40
+GLIBC_2.18 _sethtent F
+GLIBC_2.18 inet_net_ntop F
+GLIBC_2.18 inet_net_pton F
+GLIBC_2.18 inet_neta F
+GLIBC_2.18 ns_datetosecs F
+GLIBC_2.18 ns_format_ttl F
+GLIBC_2.18 ns_get16 F
+GLIBC_2.18 ns_get32 F
+GLIBC_2.18 ns_initparse F
+GLIBC_2.18 ns_makecanon F
+GLIBC_2.18 ns_msg_getflag F
+GLIBC_2.18 ns_name_compress F
+GLIBC_2.18 ns_name_ntol F
+GLIBC_2.18 ns_name_ntop F
+GLIBC_2.18 ns_name_pack F
+GLIBC_2.18 ns_name_pton F
+GLIBC_2.18 ns_name_rollback F
+GLIBC_2.18 ns_name_skip F
+GLIBC_2.18 ns_name_uncompress F
+GLIBC_2.18 ns_name_unpack F
+GLIBC_2.18 ns_parse_ttl F
+GLIBC_2.18 ns_parserr F
+GLIBC_2.18 ns_put16 F
+GLIBC_2.18 ns_put32 F
+GLIBC_2.18 ns_samedomain F
+GLIBC_2.18 ns_samename F
+GLIBC_2.18 ns_skiprr F
+GLIBC_2.18 ns_sprintrr F
+GLIBC_2.18 ns_sprintrrf F
+GLIBC_2.18 ns_subdomain F
+GLIBC_2.18 res_gethostbyaddr F
+GLIBC_2.18 res_gethostbyname F
+GLIBC_2.18 res_gethostbyname2 F
+GLIBC_2.18 res_send_setqhook F
+GLIBC_2.18 res_send_setrhook F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/microblaze/librt.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/microblaze/librt.abilist
new file mode 100644
index 0000000000..9f6ecb0770
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/microblaze/librt.abilist
@@ -0,0 +1,41 @@
+GLIBC_2.18 GLIBC_2.18 A
+GLIBC_2.18 __mq_open_2 F
+GLIBC_2.18 aio_cancel F
+GLIBC_2.18 aio_cancel64 F
+GLIBC_2.18 aio_error F
+GLIBC_2.18 aio_error64 F
+GLIBC_2.18 aio_fsync F
+GLIBC_2.18 aio_fsync64 F
+GLIBC_2.18 aio_init F
+GLIBC_2.18 aio_read F
+GLIBC_2.18 aio_read64 F
+GLIBC_2.18 aio_return F
+GLIBC_2.18 aio_return64 F
+GLIBC_2.18 aio_suspend F
+GLIBC_2.18 aio_suspend64 F
+GLIBC_2.18 aio_write F
+GLIBC_2.18 aio_write64 F
+GLIBC_2.18 clock_getcpuclockid F
+GLIBC_2.18 clock_getres F
+GLIBC_2.18 clock_gettime F
+GLIBC_2.18 clock_nanosleep F
+GLIBC_2.18 clock_settime F
+GLIBC_2.18 lio_listio F
+GLIBC_2.18 lio_listio64 F
+GLIBC_2.18 mq_close F
+GLIBC_2.18 mq_getattr F
+GLIBC_2.18 mq_notify F
+GLIBC_2.18 mq_open F
+GLIBC_2.18 mq_receive F
+GLIBC_2.18 mq_send F
+GLIBC_2.18 mq_setattr F
+GLIBC_2.18 mq_timedreceive F
+GLIBC_2.18 mq_timedsend F
+GLIBC_2.18 mq_unlink F
+GLIBC_2.18 shm_open F
+GLIBC_2.18 shm_unlink F
+GLIBC_2.18 timer_create F
+GLIBC_2.18 timer_delete F
+GLIBC_2.18 timer_getoverrun F
+GLIBC_2.18 timer_gettime F
+GLIBC_2.18 timer_settime F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/microblaze/libthread_db.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/microblaze/libthread_db.abilist
new file mode 100644
index 0000000000..6387ad13a8
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/microblaze/libthread_db.abilist
@@ -0,0 +1,41 @@
+GLIBC_2.18 GLIBC_2.18 A
+GLIBC_2.18 td_init F
+GLIBC_2.18 td_log F
+GLIBC_2.18 td_symbol_list F
+GLIBC_2.18 td_ta_clear_event F
+GLIBC_2.18 td_ta_delete F
+GLIBC_2.18 td_ta_enable_stats F
+GLIBC_2.18 td_ta_event_addr F
+GLIBC_2.18 td_ta_event_getmsg F
+GLIBC_2.18 td_ta_get_nthreads F
+GLIBC_2.18 td_ta_get_ph F
+GLIBC_2.18 td_ta_get_stats F
+GLIBC_2.18 td_ta_map_id2thr F
+GLIBC_2.18 td_ta_map_lwp2thr F
+GLIBC_2.18 td_ta_new F
+GLIBC_2.18 td_ta_reset_stats F
+GLIBC_2.18 td_ta_set_event F
+GLIBC_2.18 td_ta_setconcurrency F
+GLIBC_2.18 td_ta_thr_iter F
+GLIBC_2.18 td_ta_tsd_iter F
+GLIBC_2.18 td_thr_clear_event F
+GLIBC_2.18 td_thr_dbresume F
+GLIBC_2.18 td_thr_dbsuspend F
+GLIBC_2.18 td_thr_event_enable F
+GLIBC_2.18 td_thr_event_getmsg F
+GLIBC_2.18 td_thr_get_info F
+GLIBC_2.18 td_thr_getfpregs F
+GLIBC_2.18 td_thr_getgregs F
+GLIBC_2.18 td_thr_getxregs F
+GLIBC_2.18 td_thr_getxregsize F
+GLIBC_2.18 td_thr_set_event F
+GLIBC_2.18 td_thr_setfpregs F
+GLIBC_2.18 td_thr_setgregs F
+GLIBC_2.18 td_thr_setprio F
+GLIBC_2.18 td_thr_setsigpending F
+GLIBC_2.18 td_thr_setxregs F
+GLIBC_2.18 td_thr_sigsetmask F
+GLIBC_2.18 td_thr_tls_get_addr F
+GLIBC_2.18 td_thr_tlsbase F
+GLIBC_2.18 td_thr_tsd F
+GLIBC_2.18 td_thr_validate F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/microblaze/libutil.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/microblaze/libutil.abilist
new file mode 100644
index 0000000000..af2c3048cc
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/microblaze/libutil.abilist
@@ -0,0 +1,7 @@
+GLIBC_2.18 GLIBC_2.18 A
+GLIBC_2.18 forkpty F
+GLIBC_2.18 login F
+GLIBC_2.18 login_tty F
+GLIBC_2.18 logout F
+GLIBC_2.18 logwtmp F
+GLIBC_2.18 openpty F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/microblaze/localplt.data b/REORG.TODO/sysdeps/unix/sysv/linux/microblaze/localplt.data
new file mode 100644
index 0000000000..ca476bedd8
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/microblaze/localplt.data
@@ -0,0 +1,18 @@
+libc.so: __errno_location
+libc.so: calloc
+libc.so: free
+libc.so: malloc
+libc.so: memalign
+libc.so: realloc
+libm.so: matherr
+# The dynamic loader needs __tls_get_addr for TLS.
+ld.so: __tls_get_addr ?
+# The main malloc is interposed into the dynamic linker, for
+# allocations after the initial link (when dlopen is used).
+ld.so: malloc
+ld.so: calloc
+ld.so: realloc
+ld.so: free
+# The TLS-enabled version of these functions is interposed from libc.so.
+ld.so: _dl_signal_error
+ld.so: _dl_catch_error
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/microblaze/lxstat.c b/REORG.TODO/sysdeps/unix/sysv/linux/microblaze/lxstat.c
new file mode 100644
index 0000000000..0efa0aea49
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/microblaze/lxstat.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/i386/lxstat.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/microblaze/profil-counter.h b/REORG.TODO/sysdeps/unix/sysv/linux/microblaze/profil-counter.h
new file mode 100644
index 0000000000..8a6a0bcf3d
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/microblaze/profil-counter.h
@@ -0,0 +1,2 @@
+/* We can use the ix86 version. */
+#include <sysdeps/unix/sysv/linux/i386/profil-counter.h>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/microblaze/pt-vfork.S b/REORG.TODO/sysdeps/unix/sysv/linux/microblaze/pt-vfork.S
new file mode 100644
index 0000000000..f201f0429f
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/microblaze/pt-vfork.S
@@ -0,0 +1,49 @@
+/* vfork ABI-compatibility entry points for libpthread.
+ Copyright (C) 2014-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#include <shlib-compat.h>
+
+/* libpthread used to have its own vfork implementation that differed
+ from libc's only in having a pointless micro-optimization. There
+ is no longer any use to having a separate copy in libpthread, but
+ the historical ABI requires it. For static linking, there is no
+ need to provide anything here--the libc version will be linked in.
+ For shared library ABI compatibility, there must be __vfork and
+ vfork symbols in libpthread.so.
+
+ As of GCC 7, microblaze can *not* rely on the compiler to generate
+ a tail call from this vfork to __libc_vfork. */
+
+#if (SHLIB_COMPAT (libpthread, GLIBC_2_0, GLIBC_2_20) \
+ || SHLIB_COMPAT (libpthread, GLIBC_2_1_2, GLIBC_2_20))
+
+ENTRY (vfork_compat)
+ bri __libc_vfork
+END (vfork_compat)
+
+#endif
+
+#if SHLIB_COMPAT (libpthread, GLIBC_2_0, GLIBC_2_20)
+compat_symbol (libpthread, vfork_compat, vfork, GLIBC_2_0)
+#endif
+
+#if SHLIB_COMPAT (libpthread, GLIBC_2_1_2, GLIBC_2_20)
+strong_alias (vfork_compat, vfork_compat2)
+compat_symbol (libpthread, vfork_compat2, __vfork, GLIBC_2_1_2)
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/microblaze/shlib-versions b/REORG.TODO/sysdeps/unix/sysv/linux/microblaze/shlib-versions
new file mode 100644
index 0000000000..eaf37a118e
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/microblaze/shlib-versions
@@ -0,0 +1 @@
+DEFAULT GLIBC_2.18
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/microblaze/sigcontextinfo.h b/REORG.TODO/sysdeps/unix/sysv/linux/microblaze/sigcontextinfo.h
new file mode 100644
index 0000000000..071ca9475e
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/microblaze/sigcontextinfo.h
@@ -0,0 +1,25 @@
+/* Copyright (C) 2009-2017 Free Software Foundation, Inc.
+
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation; either version 2.1 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#define SIGCONTEXT int _code, struct ucontext *
+#define SIGCONTEXT_EXTRA_ARGS _code,
+#define GET_PC(ctx) ((void *) (ctx)->uc_mcontext.regs.pc)
+#define GET_FRAME(ctx) ((void *) (ctx)->uc_mcontext.regs.sp)
+#define GET_STACK(ctx) ((void *) (ctx)->uc_mcontext.regs.sp)
+#define CALL_SIGHANDLER(handler, signo, ctx) \
+ (handler)((signo), SIGCONTEXT_EXTRA_ARGS (ctx))
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/microblaze/sys/procfs.h b/REORG.TODO/sysdeps/unix/sysv/linux/microblaze/sys/procfs.h
new file mode 100644
index 0000000000..dba6adb44a
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/microblaze/sys/procfs.h
@@ -0,0 +1,123 @@
+/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
+
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_PROCFS_H
+#define _SYS_PROCFS_H 1
+
+/* This is somewhat modelled after the file of the same name on SVR4
+ systems. It provides a definition of the core file format for ELF
+ used on Linux. It doesn't have anything to do with the /proc file
+ system, even though Linux has one.
+
+ Anyway, the whole purpose of this file is for GDB and GDB only.
+ Don't read too much into it. Don't use it for anything other than
+ GDB unless you know what you are doing. */
+
+#include <sys/time.h>
+#include <sys/types.h>
+#include <sys/user.h>
+
+__BEGIN_DECLS
+
+/* Type for a general-purpose register. */
+typedef unsigned long elf_greg_t;
+
+/* And the whole bunch of them. We could have used `struct
+ user_regs_struct' directly in the typedef, but tradition says that
+ the register set is an array, which does have some peculiar
+ semantics, so leave it that way. */
+#define ELF_NGREG (sizeof (struct user_regs_struct) / sizeof (elf_greg_t))
+typedef elf_greg_t elf_gregset_t[ELF_NGREG];
+
+/* Register set for the floating-point registers. */
+typedef struct user_fpregs_struct elf_fpregset_t;
+
+
+/* Signal info. */
+struct elf_siginfo
+ {
+ int si_signo; /* Signal number. */
+ int si_code; /* Extra code. */
+ int si_errno; /* Errno. */
+ };
+
+/* Definitions to generate Intel SVR4-like core files. These mostly
+ have the same names as the SVR4 types with "elf_" tacked on the
+ front to prevent clashes with Linux definitions, and the typedef
+ forms have been avoided. This is mostly like the SVR4 structure,
+ but more Linuxy, with things that Linux does not support and which
+ GDB doesn't really use excluded. */
+
+struct elf_prstatus
+ {
+ struct elf_siginfo pr_info; /* Info associated with signal. */
+ short int pr_cursig; /* Current signal. */
+ unsigned long int pr_sigpend; /* Set of pending signals. */
+ unsigned long int pr_sighold; /* Set of held signals. */
+ __pid_t pr_pid;
+ __pid_t pr_ppid;
+ __pid_t pr_pgrp;
+ __pid_t pr_sid;
+ struct timeval pr_utime; /* User time. */
+ struct timeval pr_stime; /* System time. */
+ struct timeval pr_cutime; /* Cumulative user time. */
+ struct timeval pr_cstime; /* Cumulative system time. */
+ elf_gregset_t pr_reg; /* GP registers. */
+ int pr_fpvalid; /* True if math copro being used. */
+ };
+
+
+#define ELF_PRARGSZ (80) /* Number of chars for args. */
+
+struct elf_prpsinfo
+ {
+ char pr_state; /* Numeric process state. */
+ char pr_sname; /* Char for pr_state. */
+ char pr_zomb; /* Zombie. */
+ char pr_nice; /* Nice val. */
+ unsigned long int pr_flag; /* Flags. */
+ unsigned short int pr_uid;
+ unsigned short int pr_gid;
+ int pr_pid, pr_ppid, pr_pgrp, pr_sid;
+ /* Lots missing. */
+ char pr_fname[16]; /* Filename of executable. */
+ char pr_psargs[ELF_PRARGSZ]; /* Initial part of arg list. */
+ };
+
+/* The rest of this file provides the types for emulation of the
+ Solaris <proc_service.h> interfaces that should be implemented by
+ users of libthread_db. */
+
+/* Addresses. */
+typedef void *psaddr_t;
+
+/* Register sets. Linux has different names. */
+typedef elf_gregset_t prgregset_t;
+typedef elf_fpregset_t prfpregset_t;
+
+/* We don't have any differences between processes and threads,
+ therefore have only one PID type. */
+typedef __pid_t lwpid_t;
+
+/* Process status and info. In the end we do provide typedefs for them. */
+typedef struct elf_prstatus prstatus_t;
+typedef struct elf_prpsinfo prpsinfo_t;
+
+__END_DECLS
+
+#endif /* sys/procfs.h. */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/microblaze/sys/user.h b/REORG.TODO/sysdeps/unix/sysv/linux/microblaze/sys/user.h
new file mode 100644
index 0000000000..94faf45191
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/microblaze/sys/user.h
@@ -0,0 +1,69 @@
+/* Copyright (C) 2009-2017 Free Software Foundation, Inc.
+
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation; either version 2.1 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_USER_H
+# define _SYS_USER_H 1
+
+/* The whole purpose of this file is for GDB and GDB only. Don't read
+ too much into it. Don't use it for anything other than GDB unless
+ you know what you are doing. */
+
+struct user_fpregs_struct
+{
+ long int cwd;
+ long int swd;
+ long int twd;
+ long int fip;
+ long int fcs;
+ long int foo;
+ long int fos;
+ long int st_space [20];
+};
+
+struct user_regs_struct
+{
+ unsigned int gpr[32];
+ unsigned int pc;
+ unsigned int msr;
+ unsigned int ear;
+ unsigned int esr;
+ unsigned int fsr;
+ unsigned int btr;
+ unsigned int pvr[12];
+};
+
+struct user
+{
+ struct user_regs_struct regs;
+ int u_fpvalid;
+ struct user_fpregs_struct elf_fpregset_t;
+ unsigned long int u_tsize;
+ unsigned long int u_dsize;
+ unsigned long int u_ssize;
+ unsigned long start_code;
+ unsigned long start_stack;
+ long int signal;
+ int reserved;
+ struct user_regs_struct* u_ar0;
+ struct user_fpregs_struct* u_fpstate;
+ unsigned long int magic;
+ char u_comm [32];
+ int u_debugreg [8];
+};
+
+#endif /* _SYS_USER_H */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/microblaze/syscall.S b/REORG.TODO/sysdeps/unix/sysv/linux/microblaze/syscall.S
new file mode 100644
index 0000000000..ca7b366cc2
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/microblaze/syscall.S
@@ -0,0 +1,37 @@
+/* Copyright (C) 2005-2017 Free Software Foundation, Inc.
+
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+
+ .text
+ENTRY (syscall)
+ addk r12,r0,r5
+ addk r5,r0,r6
+ addk r6,r0,r7
+ addk r7,r0,r8
+ addk r8,r0,r9
+ addk r9,r0,r10
+ lwi r10,r1,28
+ brki r14,8
+ addk r0,r0,r0
+ addik r4,r0,-4095
+ cmpu r4,r4,r3
+ bgei r4,SYSCALL_ERROR_LABEL
+ rtsd r15,8
+ nop
+PSEUDO_END (syscall)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/microblaze/syscalls.list b/REORG.TODO/sysdeps/unix/sysv/linux/microblaze/syscalls.list
new file mode 100644
index 0000000000..932c9cccc8
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/microblaze/syscalls.list
@@ -0,0 +1,7 @@
+# File name Caller Syscall name Args Strong name Weak names
+
+cacheflush EXTRA cacheflush i:iiii __cacheflush cacheflush
+
+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/microblaze/sysdep-cancel.h b/REORG.TODO/sysdeps/unix/sysv/linux/microblaze/sysdep-cancel.h
new file mode 100644
index 0000000000..dbcc2b2832
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/microblaze/sysdep-cancel.h
@@ -0,0 +1,158 @@
+/* Copyright (C) 2014-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#include <tls.h>
+#ifndef __ASSEMBLER__
+# include <nptl/pthreadP.h>
+#endif
+
+#if IS_IN (libc) || IS_IN (libpthread) || IS_IN (librt)
+
+# if !IS_IN (librt) || !defined(PIC)
+# define AC_STACK_SIZE 16 /* space for r15, async_cancel arg and 2 temp words */
+# define AC_SET_GOT /* empty */
+# define AC_RESTORE_GOT /* empty */
+# else
+# define AC_STACK_SIZE 20 /* extra 4 bytes for r20 */
+# define AC_SET_GOT \
+ swi r20, r1, AC_STACK_SIZE-4; \
+ mfs r20, rpc; \
+ addik r20, r20, _GLOBAL_OFFSET_TABLE_+8;
+# define AC_RESTORE_GOT \
+ lwi r20, r1, AC_STACK_SIZE-4;
+# endif
+
+# undef PSEUDO
+# define PSEUDO(name, syscall_name, args) \
+ .text; \
+ ENTRY (name) \
+ SINGLE_THREAD_P(r12); \
+ bnei r12, L(pseudo_cancel); \
+ .globl __##syscall_name##_nocancel; \
+ .type __##syscall_name##_nocancel,@function; \
+__##syscall_name##_nocancel: \
+ DO_CALL (syscall_name, args); \
+ addik r4, r0, -4095; \
+ cmpu r4, r4, r3; \
+ bgei r4, SYSCALL_ERROR_LABEL; \
+ rtsd r15, 8; \
+ nop; \
+ .size __##syscall_name##_nocancel, .-__##syscall_name##_nocancel; \
+L(pseudo_cancel): \
+ addik r1, r1, -AC_STACK_SIZE; \
+ swi r15, r1, 0; \
+ AC_SET_GOT \
+ DOCARGS_##args \
+ CENABLE; \
+ swi r3, r1, 8; \
+ UNDOCARGS_##args \
+ DO_CALL (syscall_name, args); \
+ swi r3, r1, 12; \
+ lwi r5, r1, 8; \
+ CDISABLE; \
+ lwi r3, r1, 12; \
+ lwi r15, r1, 0; \
+ AC_RESTORE_GOT \
+ addik r1, r1, AC_STACK_SIZE; \
+ addik r4, r0, -4095; \
+ cmpu r4, r4, r3; \
+ bgei r4, SYSCALL_ERROR_LABEL; \
+ rtsd r15, 8; \
+ nop;
+
+/*
+ * Macros to save/restore syscall arguments across CENABLE
+ * The arguments are saved into the caller's stack (original r1 + 4)
+ */
+
+# define DOCARGS_0
+# define DOCARGS_1 swi r5, r1, AC_STACK_SIZE + 4;
+# define DOCARGS_2 swi r6, r1, AC_STACK_SIZE + 8; DOCARGS_1
+# define DOCARGS_3 swi r7, r1, AC_STACK_SIZE + 12; DOCARGS_2
+# define DOCARGS_4 swi r8, r1, AC_STACK_SIZE + 16; DOCARGS_3
+# define DOCARGS_5 swi r9, r1, AC_STACK_SIZE + 20; DOCARGS_4
+# define DOCARGS_6 swi r10, r1, AC_STACK_SIZE + 24; DOCARGS_5
+
+# define UNDOCARGS_0
+# define UNDOCARGS_1 lwi r5, r1, AC_STACK_SIZE + 4;
+# define UNDOCARGS_2 UNDOCARGS_1 lwi r6, r1, AC_STACK_SIZE + 8;
+# define UNDOCARGS_3 UNDOCARGS_2 lwi r7, r1, AC_STACK_SIZE + 12;
+# define UNDOCARGS_4 UNDOCARGS_3 lwi r8, r1, AC_STACK_SIZE + 16;
+# define UNDOCARGS_5 UNDOCARGS_4 lwi r9, r1, AC_STACK_SIZE + 20;
+# define UNDOCARGS_6 UNDOCARGS_5 lwi r10, r1, AC_STACK_SIZE + 24;
+
+# ifdef PIC
+# define PSEUDO_JMP(sym) brlid r15, sym##@PLTPC; addk r0, r0, r0
+# else
+# define PSEUDO_JMP(sym) brlid r15, sym; addk r0, r0, r0
+# endif
+
+# if IS_IN (libpthread)
+# define CENABLE PSEUDO_JMP (__pthread_enable_asynccancel)
+# define CDISABLE PSEUDO_JMP (__pthread_disable_asynccancel)
+# define __local_multiple_threads __pthread_multiple_threads
+# elif IS_IN (libc)
+# define CENABLE PSEUDO_JMP (__libc_enable_asynccancel)
+# define CDISABLE PSEUDO_JMP (__libc_disable_asynccancel)
+# define __local_multiple_threads __libc_multiple_threads
+# elif IS_IN (librt)
+# define CENABLE PSEUDO_JMP (__librt_enable_asynccancel)
+# define CDISABLE PSEUDO_JMP (__librt_disable_asynccancel)
+# else
+# error Unsupported library
+# endif
+
+
+# if IS_IN (libpthread) || IS_IN (libc)
+# ifndef __ASSEMBLER__
+extern int __local_multiple_threads attribute_hidden;
+# define SINGLE_THREAD_P __builtin_expect (__local_multiple_threads == 0, 1)
+# else
+# if !defined PIC
+# define SINGLE_THREAD_P(reg) lwi reg, r0, __local_multiple_threads;
+# else
+# define SINGLE_THREAD_P(reg) \
+ mfs reg, rpc; \
+ addik reg, reg, _GLOBAL_OFFSET_TABLE_+8; \
+ lwi reg, reg, __local_multiple_threads@GOT; \
+ lwi reg, reg, 0;
+# endif
+# endif
+# else
+# ifndef __ASSEMBLER__
+# define SINGLE_THREAD_P \
+ __builtin_expect (THREAD_GETMEM (THREAD_SELF, \
+ header.multiple_threads) == 0, 1)
+# else
+# define SINGLE_THREAD_P(reg) \
+ lwi reg, r0, MULTIPLE_THREADS_OFFSET(reg)
+# endif
+# 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/microblaze/sysdep.S b/REORG.TODO/sysdeps/unix/sysv/linux/microblaze/sysdep.S
new file mode 100644
index 0000000000..251f493b5d
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/microblaze/sysdep.S
@@ -0,0 +1,39 @@
+/* Copyright (C) 2009-2017 Free Software Foundation, Inc.
+
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation; either version 2.1 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+
+
+/* The following code is only used in the shared library when we
+ compile the reentrant version. Otherwise each system call defines
+ each own version. */
+
+#ifndef PIC
+
+/* The syscall stubs jump here when they detect an error. */
+
+# undef CALL_MCOUNT
+# define CALL_MCOUNT /* Don't insert the profiling call, it clobbers %d0. */
+
+ .text
+ENTRY (__syscall_error)
+ rsubk r3,r3,r0
+ rtsd r15,8
+ addik r3,r0,-1 /* delay slot. */
+END (__syscall_error)
+#endif /* PIC. */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/microblaze/sysdep.h b/REORG.TODO/sysdeps/unix/sysv/linux/microblaze/sysdep.h
new file mode 100644
index 0000000000..1fbbc55de1
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/microblaze/sysdep.h
@@ -0,0 +1,313 @@
+/* Copyright (C) 2000-2017 Free Software Foundation, Inc.
+
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation; either version 2.1 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _LINUX_MICROBLAZE_SYSDEP_H
+#define _LINUX_MICROBLAZE_SYSDEP_H 1
+
+#include <sysdeps/unix/sysdep.h>
+#include <sysdeps/unix/sysv/linux/sysdep.h>
+#include <sysdeps/microblaze/sysdep.h>
+
+/* Defines RTLD_PRIVATE_ERRNO. */
+#include <dl-sysdep.h>
+
+/* In order to get __set_errno() definition in INLINE_SYSCALL. */
+#ifndef __ASSEMBLER__
+# include <errno.h>
+#endif
+
+/* For Linux we can use the system call table in the header file
+ /usr/include/asm/unistd.h
+ of the kernel. But these symbols do not follow the SYS_* syntax
+ so we have to redefine the `SYS_ify' macro here. */
+#undef SYS_ify
+#define SYS_ify(syscall_name) __NR_##syscall_name
+
+#ifdef __ASSEMBLER__
+
+/* In microblaze ABI function call arguments are passed in registers
+ r5...r10. The return value is stored in r3 (or r3:r4 regiters pair).
+ Linux syscall uses the same convention with the addition that the
+ syscall number is passed in r12. To enter the kernel "brki r14,8"
+ instruction is used.
+ None of the abovementioned registers are presumed across function call
+ or syscall.
+*/
+/* 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 %d0 is a real error
+ number. Linus said he will make sure the no syscall returns a value
+ in -1 .. -4095 as a valid result so we can savely test with -4095. */
+
+/* We don't want the label for the error handler to be visible in the symbol
+ table when we define it here. */
+# ifdef PIC
+# define SYSCALL_ERROR_LABEL 0f
+# else
+# define SYSCALL_ERROR_LABEL __syscall_error
+# endif
+
+# undef PSEUDO
+# define PSEUDO(name, syscall_name, args) \
+ .text; \
+ ENTRY (name) \
+ DO_CALL (syscall_name, args); \
+ addik r12,r0,-4095; \
+ cmpu r12,r12,r3; \
+ bgei r12,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)
+
+/* The function has to return the error code. */
+# undef PSEUDO_ERRVAL
+# define PSEUDO_ERRVAL(name, syscall_name, args) \
+ .text; \
+ ENTRY (name) \
+ DO_CALL (syscall_name, args); \
+
+# undef PSEUDO_END_ERRVAL
+# define PSEUDO_END_ERRVAL(name) \
+ END (name)
+
+# define ret_NOERRNO \
+ rtsd r15,8; addk r0,r0,r0;
+
+# define ret_ERRVAL \
+ rtsd r15,8; rsubk r3,r3,r0;
+
+# ifdef PIC
+# define SYSCALL_ERROR_LABEL_DCL 0
+# if RTLD_PRIVATE_ERRNO
+# define SYSCALL_ERROR_HANDLER \
+SYSCALL_ERROR_LABEL_DCL: \
+ mfs r12,rpc; \
+ addik r12,r12,_GLOBAL_OFFSET_TABLE_+8; \
+ lwi r12,r12,rtld_errno@GOT; \
+ rsubk r3,r3,r0; \
+ swi r3,r12,0; \
+ rtsd r15,8; \
+ addik r3,r0,-1;
+# else /* !RTLD_PRIVATE_ERRNO. */
+/* Store (-r3) into errno through the GOT. */
+# if defined _LIBC_REENTRANT
+# define SYSCALL_ERROR_HANDLER \
+SYSCALL_ERROR_LABEL_DCL: \
+ addik r1,r1,-16; \
+ swi r15,r1,0; \
+ swi r20,r1,8; \
+ rsubk r3,r3,r0; \
+ swi r3,r1,12; \
+ mfs r20,rpc; \
+ addik r20,r20,_GLOBAL_OFFSET_TABLE_+8; \
+ brlid r15,__errno_location@PLT; \
+ nop; \
+ lwi r4,r1,12; \
+ swi r4,r3,0; \
+ lwi r20,r1,8; \
+ lwi r15,r1,0; \
+ addik r1,r1,16; \
+ rtsd r15,8; \
+ addik r3,r0,-1;
+# else /* !_LIBC_REENTRANT. */
+# define SYSCALL_ERROR_HANDLER \
+SYSCALL_ERROR_LABEL_DCL: \
+ mfs r12,rpc; \
+ addik r12,r12,_GLOBAL_OFFSET_TABLE_+8; \
+ lwi r12,r12,errno@GOT; \
+ rsubk r3,r3,r0; \
+ swi r3,r12,0; \
+ rtsd r15,8; \
+ addik r3,r0,-1;
+# endif /* _LIBC_REENTRANT. */
+# endif /* RTLD_PRIVATE_ERRNO. */
+# else
+# define SYSCALL_ERROR_HANDLER /* Nothing here; code in sysdep.S is used. */
+# endif /* PIC. */
+
+# define DO_CALL(syscall_name, args) \
+ addik r12,r0,SYS_ify (syscall_name); \
+ brki r14,8; \
+ addk r0,r0,r0;
+
+#else /* not __ASSEMBLER__ */
+
+/* Define a macro which expands into the inline wrapper code for a system
+ call. */
+# undef INLINE_SYSCALL
+# define INLINE_SYSCALL(name, nr, args...) \
+({ INTERNAL_SYSCALL_DECL(err); \
+ unsigned long resultvar = INTERNAL_SYSCALL(name, err, nr, args); \
+ if (INTERNAL_SYSCALL_ERROR_P (resultvar, err)) \
+ { \
+ __set_errno (INTERNAL_SYSCALL_ERRNO (resultvar, err)); \
+ resultvar = (unsigned long) -1; \
+ } \
+ (long) resultvar; \
+})
+
+# undef INTERNAL_SYSCALL_DECL
+# define INTERNAL_SYSCALL_DECL(err) do { } while (0)
+
+/* Define a macro which expands inline into the wrapper code for a system
+ call. This use is for internal calls that do not need to handle errors
+ normally. It will never touch errno. This returns just what the kernel
+ gave back. */
+# undef INTERNAL_SYSCALL
+# define INTERNAL_SYSCALL(name, err, nr, args...) \
+ inline_syscall##nr(SYS_ify(name), args)
+
+# undef INTERNAL_SYSCALL_NCS
+# define INTERNAL_SYSCALL_NCS(name, err, nr, args...) \
+ inline_syscall##nr(name, args)
+
+# undef INTERNAL_SYSCALL_ERROR_P
+# define INTERNAL_SYSCALL_ERROR_P(val, err) \
+ ((unsigned int) (val) >= -4095U)
+
+# undef INTERNAL_SYSCALL_ERRNO
+# define INTERNAL_SYSCALL_ERRNO(val, err) (-(val))
+
+# define SYSCALL_CLOBBERS_6 "r11", "r4", "memory"
+# define SYSCALL_CLOBBERS_5 "r10", SYSCALL_CLOBBERS_6
+# define SYSCALL_CLOBBERS_4 "r9", SYSCALL_CLOBBERS_5
+# define SYSCALL_CLOBBERS_3 "r8", SYSCALL_CLOBBERS_4
+# define SYSCALL_CLOBBERS_2 "r7", SYSCALL_CLOBBERS_3
+# define SYSCALL_CLOBBERS_1 "r6", SYSCALL_CLOBBERS_2
+# define SYSCALL_CLOBBERS_0 "r5", SYSCALL_CLOBBERS_1
+
+# define inline_syscall0(name,dummy) \
+ ({ \
+ register long __ret __asm__("r3"); \
+ register long __r12 __asm__("r12") = name; \
+ __asm__ __volatile__( "brki r14,8; nop;" \
+ : "=r"(__ret) \
+ : "r"(__r12) \
+ : SYSCALL_CLOBBERS_0 ); __ret; \
+ })
+
+# define inline_syscall1(name,arg1) \
+ ({ \
+ register long __ret __asm__("r3"); \
+ register long __r12 __asm__("r12") = name; \
+ register long __r5 __asm__("r5") = (long)(arg1); \
+ __asm__ __volatile__( "brki r14,8; nop;" \
+ : "=r"(__ret) \
+ : "r"(__r5), "r"(__r12) \
+ : SYSCALL_CLOBBERS_1 ); __ret; \
+ })
+
+# define inline_syscall2(name,arg1,arg2) \
+ ({ \
+ register long __ret __asm__("r3"); \
+ register long __r12 __asm__("r12") = name; \
+ register long __r5 __asm__("r5") = (long)(arg1); \
+ register long __r6 __asm__("r6") = (long)(arg2); \
+ __asm__ __volatile__( "brki r14,8; nop;" \
+ : "=r"(__ret) \
+ : "r"(__r5), "r"(__r6), "r"(__r12) \
+ : SYSCALL_CLOBBERS_2 ); __ret; \
+ })
+
+
+# define inline_syscall3(name,arg1,arg2,arg3) \
+ ({ \
+ register long __ret __asm__("r3"); \
+ register long __r12 __asm__("r12") = name; \
+ register long __r5 __asm__("r5") = (long)(arg1); \
+ register long __r6 __asm__("r6") = (long)(arg2); \
+ register long __r7 __asm__("r7") = (long)(arg3); \
+ __asm__ __volatile__( "brki r14,8; nop;" \
+ : "=r"(__ret) \
+ : "r"(__r5), "r"(__r6), "r"(__r7), "r"(__r12) \
+ : SYSCALL_CLOBBERS_3 ); __ret; \
+ })
+
+
+# define inline_syscall4(name,arg1,arg2,arg3,arg4) \
+ ({ \
+ register long __ret __asm__("r3"); \
+ register long __r12 __asm__("r12") = name; \
+ register long __r5 __asm__("r5") = (long)(arg1); \
+ register long __r6 __asm__("r6") = (long)(arg2); \
+ register long __r7 __asm__("r7") = (long)(arg3); \
+ register long __r8 __asm__("r8") = (long)(arg4); \
+ __asm__ __volatile__( "brki r14,8; nop;" \
+ : "=r"(__ret) \
+ : "r"(__r5), "r"(__r6), "r"(__r7), "r"(__r8),"r"(__r12) \
+ : SYSCALL_CLOBBERS_4 ); __ret; \
+ })
+
+
+# define inline_syscall5(name,arg1,arg2,arg3,arg4,arg5) \
+ ({ \
+ register long __ret __asm__("r3"); \
+ register long __r12 __asm__("r12") = name; \
+ register long __r5 __asm__("r5") = (long)(arg1); \
+ register long __r6 __asm__("r6") = (long)(arg2); \
+ register long __r7 __asm__("r7") = (long)(arg3); \
+ register long __r8 __asm__("r8") = (long)(arg4); \
+ register long __r9 __asm__("r9") = (long)(arg5); \
+ __asm__ __volatile__( "brki r14,8; nop;" \
+ : "=r"(__ret) \
+ : "r"(__r5), "r"(__r6), "r"(__r7), "r"(__r8),"r"(__r9), "r"(__r12) \
+ : SYSCALL_CLOBBERS_5 ); __ret; \
+ })
+
+
+# define inline_syscall6(name,arg1,arg2,arg3,arg4,arg5,arg6) \
+ ({ \
+ register long __ret __asm__("r3"); \
+ register long __r12 __asm__("r12") = name; \
+ register long __r5 __asm__("r5") = (long)(arg1); \
+ register long __r6 __asm__("r6") = (long)(arg2); \
+ register long __r7 __asm__("r7") = (long)(arg3); \
+ register long __r8 __asm__("r8") = (long)(arg4); \
+ register long __r9 __asm__("r9") = (long)(arg5); \
+ register long __r10 __asm__("r10") = (long)(arg6); \
+ __asm__ __volatile__( "brki r14,8; nop;" \
+ : "=r"(__ret) \
+ : "r"(__r5), "r"(__r6), "r"(__r7), "r"(__r8),"r"(__r9), "r"(__r10), \
+ "r"(__r12) \
+ : SYSCALL_CLOBBERS_6 ); __ret; \
+ })
+
+
+/* Pointer mangling is not yet supported for Microblaze. */
+# define PTR_MANGLE(var) (void) (var)
+# define PTR_DEMANGLE(var) (void) (var)
+
+#endif /* not __ASSEMBLER__ */
+
+#endif /* _LINUX_MICROBLAZE_SYSDEP_H */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/microblaze/vfork.S b/REORG.TODO/sysdeps/unix/sysv/linux/microblaze/vfork.S
new file mode 100644
index 0000000000..f1e4508d20
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/microblaze/vfork.S
@@ -0,0 +1,46 @@
+/* Copyright (C) 2005-2017 Free Software Foundation, Inc.
+
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation; either version 2.1 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#define _ERRNO_H 1
+#include <bits/errno.h>
+#include <tcb-offsets.h>
+
+/* Clone the calling process, but without copying the whole address space.
+ The calling process is suspended until the new process exits or is
+ replaced by a call to `execve'. Return -1 for errors, 0 to the new process,
+ and the process ID of the new process to the old process. */
+
+ENTRY (__vfork)
+
+#ifdef __NR_vfork
+ DO_CALL (vfork, 0)
+#else
+ DO_CALL (fork, 0)
+#endif
+ addik r12,r0,-4095
+ cmpu r12,r12,r3
+ bgei r12,SYSCALL_ERROR_LABEL
+ rtsd r15,8
+ nop
+
+PSEUDO_END (__vfork)
+libc_hidden_def (__vfork)
+
+weak_alias (__vfork, vfork)
+strong_alias (__vfork, __libc_vfork)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/microblaze/xstat.c b/REORG.TODO/sysdeps/unix/sysv/linux/microblaze/xstat.c
new file mode 100644
index 0000000000..e9869f5508
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/microblaze/xstat.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/i386/xstat.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/Implies b/REORG.TODO/sysdeps/unix/sysv/linux/mips/Implies
new file mode 100644
index 0000000000..656fa77b63
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/Implies
@@ -0,0 +1 @@
+mips/nptl
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/Makefile b/REORG.TODO/sysdeps/unix/sysv/linux/mips/Makefile
new file mode 100644
index 0000000000..bca11d39e0
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/Makefile
@@ -0,0 +1,112 @@
+ifeq ($(subdir),signal)
+#sysdep_routines += sigsuspend
+endif
+
+ifeq ($(subdir),misc)
+sysdep_routines += cachectl cacheflush sysmips _test_and_set
+
+sysdep_headers += sys/cachectl.h sys/sysmips.h sys/tas.h
+endif
+
+abi-variants := o32_soft o32_hard o32_soft_2008 o32_hard_2008
+abi-variants += n32_soft n32_hard n32_soft_2008 n32_hard_2008
+abi-variants += n64_soft n64_hard n64_soft_2008 n64_hard_2008
+
+ifeq (,$(filter $(default-abi),$(abi-variants)))
+Unknown ABI, must be one of $(abi-variants)
+endif
+
+abi-includes := sgidefs.h
+
+# _MIPS_SIM_ABI32 == 1, _MIPS_SIM_NABI32 == 2, _MIPS_SIM_ABI64 == 3
+abi-o32_soft-options := -U_MIPS_SIM -D_MIPS_SIM=1 \
+ -D__mips_soft_float -U__mips_hard_float \
+ -U__mips_nan2008
+abi-o32_soft-condition := !defined(__mips_nan2008) \
+ && defined(__mips_soft_float) \
+ && (_MIPS_SIM == _MIPS_SIM_ABI32)
+abi-o32_hard-options := -U_MIPS_SIM -D_MIPS_SIM=1 \
+ -D__mips_hard_float -U__mips_soft_float \
+ -U__mips_nan2008
+abi-o32_hard-condition := !defined(__mips_nan2008) \
+ && defined(__mips_hard_float) \
+ && (_MIPS_SIM == _MIPS_SIM_ABI32)
+abi-o32_soft_2008-options := -U_MIPS_SIM -D_MIPS_SIM=1 \
+ -D__mips_soft_float -U__mips_hard_float \
+ -D__mips_nan2008
+abi-o32_soft_2008-condition := defined(__mips_nan2008) \
+ && defined(__mips_soft_float) \
+ && (_MIPS_SIM == _MIPS_SIM_ABI32)
+abi-o32_hard_2008-options := -U_MIPS_SIM -D_MIPS_SIM=1 \
+ -D__mips_hard_float -U__mips_soft_float \
+ -D__mips_nan2008
+abi-o32_hard_2008-condition := defined(__mips_nan2008) \
+ && defined(__mips_hard_float) \
+ && (_MIPS_SIM == _MIPS_SIM_ABI32)
+abi-n32_soft-options := -U_MIPS_SIM -D_MIPS_SIM=2 \
+ -D__mips_soft_float -U__mips_hard_float \
+ -U__mips_nan2008
+abi-n32_soft-condition := !defined(__mips_nan2008) \
+ && defined(__mips_soft_float) \
+ && (_MIPS_SIM == _MIPS_SIM_NABI32)
+abi-n32_hard-options := -U_MIPS_SIM -D_MIPS_SIM=2 \
+ -D__mips_hard_float -U__mips_soft_float \
+ -U__mips_nan2008
+abi-n32_hard-condition := !defined(__mips_nan2008) \
+ && defined(__mips_hard_float) \
+ && (_MIPS_SIM == _MIPS_SIM_NABI32)
+abi-n32_soft_2008-options := -U_MIPS_SIM -D_MIPS_SIM=2 \
+ -D__mips_soft_float -U__mips_hard_float \
+ -D__mips_nan2008
+abi-n32_soft_2008-condition := defined(__mips_nan2008) \
+ && defined(__mips_soft_float) \
+ && (_MIPS_SIM == _MIPS_SIM_NABI32)
+abi-n32_hard_2008-options := -U_MIPS_SIM -D_MIPS_SIM=2 \
+ -D__mips_hard_float -U__mips_soft_float \
+ -D__mips_nan2008
+abi-n32_hard_2008-condition := defined(__mips_nan2008) \
+ && defined(__mips_hard_float) \
+ && (_MIPS_SIM == _MIPS_SIM_NABI32)
+abi-n64_soft-options := -U_MIPS_SIM -D_MIPS_SIM=3 \
+ -D__mips_soft_float -U__mips_hard_float \
+ -U__mips_nan2008
+abi-n64_soft-condition := !defined(__mips_nan2008) \
+ && defined(__mips_soft_float) \
+ && (_MIPS_SIM == _MIPS_SIM_ABI64)
+abi-n64_hard-options := -U_MIPS_SIM -D_MIPS_SIM=3 \
+ -D__mips_hard_float -U__mips_soft_float \
+ -U__mips_nan2008
+abi-n64_hard-condition := !defined(__mips_nan2008) \
+ && defined(__mips_hard_float) \
+ && (_MIPS_SIM == _MIPS_SIM_ABI64)
+abi-n64_soft_2008-options := -U_MIPS_SIM -D_MIPS_SIM=3 \
+ -D__mips_soft_float -U__mips_hard_float \
+ -D__mips_nan2008
+abi-n64_soft_2008-condition := defined(__mips_nan2008) \
+ && defined(__mips_soft_float) \
+ && (_MIPS_SIM == _MIPS_SIM_ABI64)
+abi-n64_hard_2008-options := -U_MIPS_SIM -D_MIPS_SIM=3 \
+ -D__mips_hard_float -U__mips_soft_float \
+ -D__mips_nan2008
+abi-n64_hard_2008-condition := defined(__mips_nan2008) \
+ && defined(__mips_hard_float) \
+ && (_MIPS_SIM == _MIPS_SIM_ABI64)
+
+ifeq ($(subdir),elf)
+ifeq ($(build-shared),yes)
+# This is needed for DSO loading from static binaries.
+sysdep-dl-routines += dl-static
+
+sysdep_routines += dl-vdso
+endif
+
+# Supporting non-executable stacks on MIPS requires changes to both
+# the Linux kernel and glibc. See
+# <https://sourceware.org/ml/libc-alpha/2016-01/msg00567.html> and
+# <https://sourceware.org/ml/libc-alpha/2016-01/msg00719.html>.
+test-xfail-check-execstack = yes
+endif
+
+ifeq ($(subdir),stdlib)
+gen-as-const-headers += ucontext_i.sym
+endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/Versions b/REORG.TODO/sysdeps/unix/sysv/linux/mips/Versions
new file mode 100644
index 0000000000..453f276aad
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/Versions
@@ -0,0 +1,44 @@
+ld {
+ GLIBC_PRIVATE {
+ # used for loading by static libraries
+ _dl_var_init;
+ }
+}
+libc {
+ # The comment lines with "#errlist-compat" are magic; see errlist-compat.awk.
+ # When you get an error from errlist-compat.awk, you need to add a new
+ # version here. Don't do this blindly, since this means changing the ABI
+ # for all GNU/Linux configurations.
+
+ GLIBC_2.0 {
+ #errlist-compat 123
+ _sys_errlist; sys_errlist; _sys_nerr; sys_nerr;
+
+ # Exception handling support functions from libgcc
+ __register_frame; __register_frame_table; __deregister_frame;
+ __frame_state_for; __register_frame_info_table;
+
+ # Needed by gcc:
+ _flush_cache;
+
+ # c*
+ cachectl; cacheflush;
+
+ # s*
+ sysmips;
+ }
+ GLIBC_2.2 {
+ #errlist-compat 1134
+ _sys_errlist; sys_errlist; _sys_nerr; sys_nerr;
+
+ # _*
+ _test_and_set;
+ }
+ GLIBC_2.11 {
+ fallocate64;
+ }
+ GLIBC_PRIVATE {
+ # nptl/pthread_cond_timedwait.c uses INTERNAL_VSYSCALL(clock_gettime).
+ __vdso_clock_gettime;
+ }
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/____longjmp_chk.c b/REORG.TODO/sysdeps/unix/sysv/linux/mips/____longjmp_chk.c
new file mode 100644
index 0000000000..596b2af336
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/____longjmp_chk.c
@@ -0,0 +1,41 @@
+/* Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <signal.h>
+#include <stdio.h>
+#define __longjmp ____longjmp_chk
+#define CHECK_SP(saved_sp, cur_sp, sp_type) \
+ do { \
+ sp_type sp_saved = (sp_type) (saved_sp); \
+ if (sp_saved < (cur_sp)) \
+ { \
+ struct __jmp_buf_internal_tag *env_save = env_arg; \
+ int val_save = val_arg; \
+ stack_t ss; \
+ int ret = __sigaltstack (NULL, &ss); \
+ if (ret == 0 \
+ && (!(ss.ss_flags & SS_ONSTACK) \
+ || ((unsigned sp_type) ((sp_type) (long) ss.ss_sp \
+ + (sp_type) ss.ss_size \
+ - sp_saved) \
+ < ss.ss_size))) \
+ __fortify_fail ("longjmp causes uninitialized stack frame"); \
+ asm volatile ("move %0, %1" : "=r" (env) : "r" (env_save)); \
+ asm volatile ("move %0, %1" : "=r" (val) : "r" (val_save)); \
+ } \
+ } while (0)
+#include <__longjmp.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/_test_and_set.c b/REORG.TODO/sysdeps/unix/sysv/linux/mips/_test_and_set.c
new file mode 100644
index 0000000000..42b6a983a2
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/_test_and_set.c
@@ -0,0 +1,29 @@
+/* Copyright (C) 2000-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Maciej W. Rozycki <macro@ds2.pg.gda.pl>, 2000.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+/* Define the real-function versions of all inline functions
+ defined in sys/tas.h */
+
+#include <features.h>
+
+#define _EXTERN_INLINE
+#ifndef __USE_EXTERN_INLINES
+# define __USE_EXTERN_INLINES 1
+#endif
+
+#include "sys/tas.h"
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/arch-fork.h b/REORG.TODO/sysdeps/unix/sysv/linux/mips/arch-fork.h
new file mode 100644
index 0000000000..5f945378ee
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/arch-fork.h
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/i386/arch-fork.h>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/bits/epoll.h b/REORG.TODO/sysdeps/unix/sysv/linux/mips/bits/epoll.h
new file mode 100644
index 0000000000..904e9c3e1a
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/bits/epoll.h
@@ -0,0 +1,27 @@
+/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_EPOLL_H
+# error "Never use <bits/epoll.h> directly; include <sys/epoll.h> instead."
+#endif
+
+/* Flags to be passed to epoll_create1. */
+enum
+ {
+ EPOLL_CLOEXEC = 02000000
+#define EPOLL_CLOEXEC EPOLL_CLOEXEC
+ };
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/bits/errno.h b/REORG.TODO/sysdeps/unix/sysv/linux/mips/bits/errno.h
new file mode 100644
index 0000000000..fa62e1fc83
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/bits/errno.h
@@ -0,0 +1,65 @@
+/* Error constants. MIPS/Linux specific version.
+ Copyright (C) 1996-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifdef _ERRNO_H
+
+# undef EDOM
+# undef EILSEQ
+# undef ERANGE
+# include <linux/errno.h>
+
+/* Linux has no ENOTSUP error code. */
+# define ENOTSUP EOPNOTSUPP
+
+# ifndef ECANCELED
+# define ECANCELED 158
+# endif
+
+/* Support for error codes to support robust mutexes was added later, too. */
+# ifndef EOWNERDEAD
+# define EOWNERDEAD 165
+# define ENOTRECOVERABLE 166
+# endif
+
+# ifndef ERFKILL
+# define ERFKILL 167
+# endif
+
+# ifndef EHWPOISON
+# define EHWPOISON 168
+# endif
+
+# ifndef __ASSEMBLER__
+/* Function to get address of global `errno' variable. */
+extern int *__errno_location (void) __THROW __attribute__ ((__const__));
+
+# if !defined _LIBC || defined _LIBC_REENTRANT
+/* When using threads, errno is a per-thread value. */
+# define errno (*__errno_location ())
+# endif
+# endif /* !__ASSEMBLER__ */
+#endif /* _ERRNO_H */
+
+#if !defined _ERRNO_H && defined __need_Emath
+/* This is ugly but the kernel header is not clean enough. We must
+ define only the values EDOM, EILSEQ and ERANGE in case __need_Emath is
+ defined. */
+# define EDOM 33 /* Math argument out of domain of function. */
+# define EILSEQ 88 /* Illegal byte sequence. */
+# define ERANGE 34 /* Math result not representable. */
+#endif /* !_ERRNO_H && __need_Emath */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/bits/eventfd.h b/REORG.TODO/sysdeps/unix/sysv/linux/mips/bits/eventfd.h
new file mode 100644
index 0000000000..901cec7509
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/bits/eventfd.h
@@ -0,0 +1,31 @@
+/* Copyright (C) 2007-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_EVENTFD_H
+# error "Never use <bits/eventfd.h> directly; include <sys/eventfd.h> instead."
+#endif
+
+/* Flags for eventfd. */
+enum
+ {
+ EFD_SEMAPHORE = 00000001,
+#define EFD_SEMAPHORE EFD_SEMAPHORE
+ EFD_CLOEXEC = 02000000,
+#define EFD_CLOEXEC EFD_CLOEXEC
+ EFD_NONBLOCK = 00000200
+#define EFD_NONBLOCK EFD_NONBLOCK
+ };
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/bits/fcntl.h b/REORG.TODO/sysdeps/unix/sysv/linux/mips/bits/fcntl.h
new file mode 100644
index 0000000000..0e0c8cc0c1
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/bits/fcntl.h
@@ -0,0 +1,104 @@
+/* O_*, F_*, FD_* bit values for Linux.
+ Copyright (C) 1995-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _FCNTL_H
+# error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
+#endif
+
+#include <sgidefs.h>
+
+#define O_APPEND 0x0008
+#define O_SYNC 0x4010
+#define O_NONBLOCK 0x0080
+#define O_CREAT 0x0100 /* not fcntl */
+#define O_TRUNC 0x0200 /* not fcntl */
+#define O_EXCL 0x0400 /* not fcntl */
+#define O_NOCTTY 0x0800 /* not fcntl */
+#define O_ASYNC 0x1000
+
+#define __O_DIRECT 0x8000 /* Direct disk access hint. */
+#define __O_DSYNC 0x0010 /* Synchronize data. */
+
+#if _MIPS_SIM == _ABI64
+/* Not necessary, files are always with 64bit off_t. */
+# define __O_LARGEFILE 0
+#else
+# define __O_LARGEFILE 0x2000 /* Allow large file opens. */
+#endif
+
+#ifndef __USE_FILE_OFFSET64
+# define F_GETLK 14 /* Get record locking info. */
+# define F_SETLK 6 /* Set record locking info (non-blocking). */
+# define F_SETLKW 7 /* Set record locking info (blocking). */
+#else
+# define F_GETLK F_GETLK64 /* Get record locking info. */
+# define F_SETLK F_SETLK64 /* Set record locking info (non-blocking).*/
+# define F_SETLKW F_SETLKW64 /* Set record locking info (blocking). */
+#endif
+
+#if _MIPS_SIM != _ABI64
+# define F_GETLK64 33 /* Get record locking info. */
+# define F_SETLK64 34 /* Set record locking info (non-blocking). */
+# define F_SETLKW64 35 /* Set record locking info (blocking). */
+#else
+# define F_GETLK64 14 /* Get record locking info. */
+# define F_SETLK64 6 /* Set record locking info (non-blocking).*/
+# define F_SETLKW64 7 /* Set record locking info (blocking). */
+#endif
+
+#define __F_SETOWN 24 /* Get owner (process receiving SIGIO). */
+#define __F_GETOWN 23 /* Set owner (process receiving SIGIO). */
+
+struct flock
+ {
+ short int l_type; /* Type of lock: F_RDLCK, F_WRLCK, or F_UNLCK. */
+ short int l_whence; /* Where `l_start' is relative to (like `lseek'). */
+#ifndef __USE_FILE_OFFSET64
+ __off_t l_start; /* Offset where the lock begins. */
+ __off_t l_len; /* Size of the locked area; zero means until EOF. */
+#if _MIPS_SIM != _ABI64
+ /* The 64-bit flock structure, used by the n64 ABI, and for 64-bit
+ fcntls in o32 and n32, never has this field. */
+ long int l_sysid;
+#endif
+#else
+ __off64_t l_start; /* Offset where the lock begins. */
+ __off64_t l_len; /* Size of the locked area; zero means until EOF. */
+#endif
+ __pid_t l_pid; /* Process holding the lock. */
+#if ! defined __USE_FILE_OFFSET64 && _MIPS_SIM != _ABI64
+ /* The 64-bit flock structure, used by the n64 ABI, and for 64-bit
+ flock in o32 and n32, never has this field. */
+ long int __glibc_reserved0[4];
+#endif
+ };
+typedef struct flock flock_t;
+
+#ifdef __USE_LARGEFILE64
+struct flock64
+ {
+ short int l_type; /* Type of lock: F_RDLCK, F_WRLCK, or F_UNLCK. */
+ short int l_whence; /* Where `l_start' is relative to (like `lseek'). */
+ __off64_t l_start; /* Offset where the lock begins. */
+ __off64_t l_len; /* Size of the locked area; zero means until EOF. */
+ __pid_t l_pid; /* Process holding the lock. */
+ };
+#endif
+
+/* Include generic Linux declarations. */
+#include <bits/fcntl-linux.h>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/bits/inotify.h b/REORG.TODO/sysdeps/unix/sysv/linux/mips/bits/inotify.h
new file mode 100644
index 0000000000..00b899410e
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/bits/inotify.h
@@ -0,0 +1,29 @@
+/* Copyright (C) 2005-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_INOTIFY_H
+# error "Never use <bits/inotify.h> directly; include <sys/inotify.h> instead."
+#endif
+
+/* Flags for the parameter of inotify_init1. */
+enum
+ {
+ IN_CLOEXEC = 02000000,
+#define IN_CLOEXEC IN_CLOEXEC
+ IN_NONBLOCK = 00000200
+#define IN_NONBLOCK IN_NONBLOCK
+ };
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/bits/ioctl-types.h b/REORG.TODO/sysdeps/unix/sysv/linux/mips/bits/ioctl-types.h
new file mode 100644
index 0000000000..e5f33bb34e
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/bits/ioctl-types.h
@@ -0,0 +1,75 @@
+/* Structure types for pre-termios terminal ioctls. Linux/MIPS version.
+ Copyright (C) 1997-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_IOCTL_H
+# error "Never use <bits/ioctl-types.h> directly; include <sys/ioctl.h> instead."
+#endif
+
+/* Get definition of constants for use with `ioctl'. */
+#include <asm/ioctls.h>
+
+struct winsize
+ {
+ unsigned short int ws_row;
+ unsigned short int ws_col;
+ unsigned short int ws_xpixel;
+ unsigned short int ws_ypixel;
+ };
+
+#define NCC 8
+struct termio
+ {
+ unsigned short int c_iflag; /* input mode flags */
+ unsigned short int c_oflag; /* output mode flags */
+ unsigned short int c_cflag; /* control mode flags */
+ unsigned short int c_lflag; /* local mode flags */
+ char c_line; /* line discipline */
+ /* Yes, this is really NCCS. */
+ unsigned char c_cc[32 /* NCCS */]; /* control characters */
+ };
+
+/* modem lines */
+#define TIOCM_LE 0x001 /* line enable */
+#define TIOCM_DTR 0x002 /* data terminal ready */
+#define TIOCM_RTS 0x004 /* request to send */
+#define TIOCM_ST 0x010 /* secondary transmit */
+#define TIOCM_SR 0x020 /* secondary receive */
+#define TIOCM_CTS 0x040 /* clear to send */
+#define TIOCM_CAR 0x100 /* carrier detect */
+#define TIOCM_CD TIOCM_CAR
+#define TIOCM_RNG 0x200 /* ring */
+#define TIOCM_RI TIOCM_RNG
+#define TIOCM_DSR 0x400 /* data set ready */
+
+/* line disciplines */
+#define N_TTY 0
+#define N_SLIP 1
+#define N_MOUSE 2
+#define N_PPP 3
+#define N_STRIP 4
+#define N_AX25 5
+#define N_X25 6 /* X.25 async */
+#define N_6PACK 7
+#define N_MASC 8 /* Mobitex module */
+#define N_R3964 9 /* Simatic R3964 module */
+#define N_PROFIBUS_FDL 10 /* Profibus */
+#define N_IRDA 11 /* Linux IR */
+#define N_SMSBLOCK 12 /* SMS block mode */
+#define N_HDLC 13 /* synchronous HDLC */
+#define N_SYNC_PPP 14 /* synchronous PPP */
+#define N_HCI 15 /* Bluetooth HCI UART */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/bits/ipc.h b/REORG.TODO/sysdeps/unix/sysv/linux/mips/bits/ipc.h
new file mode 100644
index 0000000000..7d2712c36f
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/bits/ipc.h
@@ -0,0 +1,54 @@
+/* Copyright (C) 1995-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_IPC_H
+# error "Never use <bits/ipc.h> directly; include <sys/ipc.h> instead."
+#endif
+
+#include <bits/types.h>
+
+/* Mode bits for `msgget', `semget', and `shmget'. */
+#define IPC_CREAT 01000 /* Create key if key does not exist. */
+#define IPC_EXCL 02000 /* Fail if key exists. */
+#define IPC_NOWAIT 04000 /* Return error on wait. */
+
+/* Control commands for `msgctl', `semctl', and `shmctl'. */
+#define IPC_RMID 0 /* Remove identifier. */
+#define IPC_SET 1 /* Set `ipc_perm' options. */
+#define IPC_STAT 2 /* Get `ipc_perm' options. */
+#ifdef __USE_GNU
+# define IPC_INFO 3 /* See ipcs. */
+#endif
+
+/* Special key values. */
+#define IPC_PRIVATE ((__key_t) 0) /* Private key. */
+
+
+/* Data structure used to pass permission information to IPC operations. */
+struct ipc_perm
+ {
+ __key_t __key; /* Key. */
+ unsigned int uid; /* Owner's user ID. */
+ unsigned int gid; /* Owner's group ID. */
+ unsigned int cuid; /* Creator's user ID. */
+ unsigned int cgid; /* Creator's group ID. */
+ unsigned int mode; /* Read/write permission. */
+ unsigned short int __seq; /* Sequence number. */
+ unsigned short int __pad1;
+ unsigned long int __glibc_reserved1;
+ unsigned long int __glibc_reserved2;
+};
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/bits/local_lim.h b/REORG.TODO/sysdeps/unix/sysv/linux/mips/bits/local_lim.h
new file mode 100644
index 0000000000..b07b8afc3c
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/bits/local_lim.h
@@ -0,0 +1,99 @@
+/* Minimum guaranteed maximum values for system limits. MIPS Linux version.
+ Copyright (C) 1993-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation; either version 2.1 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+/* The kernel header pollutes the namespace with the NR_OPEN symbol
+ and defines LINK_MAX although filesystems have different maxima. A
+ similar thing is true for OPEN_MAX: the limit can be changed at
+ runtime and therefore the macro must not be defined. Remove this
+ after including the header if necessary. */
+#ifndef NR_OPEN
+# define __undef_NR_OPEN
+#endif
+#ifndef LINK_MAX
+# define __undef_LINK_MAX
+#endif
+#ifndef OPEN_MAX
+# define __undef_OPEN_MAX
+#endif
+#ifndef ARG_MAX
+# define __undef_ARG_MAX
+#endif
+
+/* The kernel sources contain a file with all the needed information. */
+#include <linux/limits.h>
+
+/* Have to remove NR_OPEN? */
+#ifdef __undef_NR_OPEN
+# undef NR_OPEN
+# undef __undef_NR_OPEN
+#endif
+/* Have to remove LINK_MAX? */
+#ifdef __undef_LINK_MAX
+# undef LINK_MAX
+# undef __undef_LINK_MAX
+#endif
+/* Have to remove OPEN_MAX? */
+#ifdef __undef_OPEN_MAX
+# undef OPEN_MAX
+# undef __undef_OPEN_MAX
+#endif
+/* Have to remove ARG_MAX? */
+#ifdef __undef_ARG_MAX
+# undef ARG_MAX
+# undef __undef_ARG_MAX
+#endif
+
+/* The number of data keys per process. */
+#define _POSIX_THREAD_KEYS_MAX 128
+/* This is the value this implementation supports. */
+#define PTHREAD_KEYS_MAX 1024
+
+/* Controlling the iterations of destructors for thread-specific data. */
+#define _POSIX_THREAD_DESTRUCTOR_ITERATIONS 4
+/* Number of iterations this implementation does. */
+#define PTHREAD_DESTRUCTOR_ITERATIONS _POSIX_THREAD_DESTRUCTOR_ITERATIONS
+
+/* The number of threads per process. */
+#define _POSIX_THREAD_THREADS_MAX 64
+/* We have no predefined limit on the number of threads. */
+#undef PTHREAD_THREADS_MAX
+
+/* Maximum amount by which a process can descrease its asynchronous I/O
+ priority level. */
+#define AIO_PRIO_DELTA_MAX 20
+
+/* Minimum size for a thread. At least two pages with 64k pages. */
+#define PTHREAD_STACK_MIN 131072
+
+/* Maximum number of timer expiration overruns. */
+#define DELAYTIMER_MAX 2147483647
+
+/* Maximum tty name length. */
+#define TTY_NAME_MAX 32
+
+/* Maximum login name length. This is arbitrary. */
+#define LOGIN_NAME_MAX 256
+
+/* Maximum host name length. */
+#define HOST_NAME_MAX 64
+
+/* Maximum message queue priority level. */
+#define MQ_PRIO_MAX 32768
+
+/* Maximum value the semaphore can have. */
+#define SEM_VALUE_MAX (2147483647)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/bits/mman.h b/REORG.TODO/sysdeps/unix/sysv/linux/mips/bits/mman.h
new file mode 100644
index 0000000000..7fcf630726
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/bits/mman.h
@@ -0,0 +1,46 @@
+/* Definitions for POSIX memory map interface. Linux/MIPS version.
+ Copyright (C) 1997-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_MMAN_H
+# error "Never use <bits/mman.h> directly; include <sys/mman.h> instead."
+#endif
+
+/* The following definitions basically come from the kernel headers.
+ But the kernel header is not namespace clean. */
+
+/* These are Linux-specific. */
+#ifdef __USE_MISC
+# define MAP_NORESERVE 0x0400 /* don't check for reservations */
+# define MAP_GROWSDOWN 0x1000 /* stack-like segment */
+# define MAP_DENYWRITE 0x2000 /* ETXTBSY */
+# define MAP_EXECUTABLE 0x4000 /* mark it as an executable */
+# define MAP_LOCKED 0x8000 /* pages are locked */
+# define MAP_POPULATE 0x10000 /* populate (prefault) pagetables */
+# define MAP_NONBLOCK 0x20000 /* do not block on IO */
+# define MAP_STACK 0x40000 /* Allocation is for a stack. */
+# define MAP_HUGETLB 0x80000 /* Create huge page mapping. */
+#endif
+
+#define __MAP_ANONYMOUS 0x0800
+
+/* Include generic Linux declarations. */
+#include <bits/mman-linux.h>
+
+#ifdef __USE_MISC
+# define MAP_RENAME MAP_ANONYMOUS
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/bits/msq.h b/REORG.TODO/sysdeps/unix/sysv/linux/mips/bits/msq.h
new file mode 100644
index 0000000000..648c71fbc2
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/bits/msq.h
@@ -0,0 +1,92 @@
+/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_MSG_H
+# error "Never use <bits/msq.h> directly; include <sys/msg.h> instead."
+#endif
+
+#include <bits/types.h>
+
+/* Define options for message queue functions. */
+#define MSG_NOERROR 010000 /* no error if message is too big */
+#ifdef __USE_GNU
+# define MSG_EXCEPT 020000 /* recv any msg except of specified type */
+# define MSG_COPY 040000 /* copy (not remove) all queue messages */
+#endif
+
+/* Types used in the structure definition. */
+typedef unsigned long int msgqnum_t;
+typedef unsigned long int msglen_t;
+
+
+/* Structure of record for one message inside the kernel.
+ The type `struct msg' is opaque. */
+struct msqid_ds
+{
+ struct ipc_perm msg_perm; /* structure describing operation permission */
+#if __WORDSIZE == 32 && defined (__MIPSEB__)
+ unsigned long int __glibc_reserved1;
+#endif
+ __time_t msg_stime; /* time of last msgsnd command */
+#if __WORDSIZE == 32 && defined (__MIPSEL__)
+ unsigned long int __glibc_reserved1;
+#endif
+#if __WORDSIZE == 32 && defined (__MIPSEB__)
+ unsigned long int __glibc_reserved2;
+#endif
+ __time_t msg_rtime; /* time of last msgrcv command */
+#if __WORDSIZE == 32 && defined (__MIPSEL__)
+ unsigned long int __glibc_reserved2;
+#endif
+#if __WORDSIZE == 32 && defined (__MIPSEB__)
+ unsigned long int __glibc_reserved3;
+#endif
+ __time_t msg_ctime; /* time of last change */
+#if __WORDSIZE == 32 && defined (__MIPSEL__)
+ unsigned long int __glibc_reserved3;
+#endif
+ unsigned long int __msg_cbytes; /* current number of bytes on queue */
+ msgqnum_t msg_qnum; /* number of messages currently on queue */
+ msglen_t msg_qbytes; /* max number of bytes allowed on queue */
+ __pid_t msg_lspid; /* pid of last msgsnd() */
+ __pid_t msg_lrpid; /* pid of last msgrcv() */
+ unsigned long int __glibc_reserved4;
+ unsigned long int __glibc_reserved5;
+};
+
+#ifdef __USE_MISC
+
+# define msg_cbytes __msg_cbytes
+
+/* ipcs ctl commands */
+# define MSG_STAT 11
+# define MSG_INFO 12
+
+/* buffer for msgctl calls IPC_INFO, MSG_INFO */
+struct msginfo
+ {
+ int msgpool;
+ int msgmap;
+ int msgmax;
+ int msgmnb;
+ int msgmni;
+ int msgssz;
+ int msgtql;
+ unsigned short int msgseg;
+ };
+
+#endif /* __USE_MISC */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/bits/poll.h b/REORG.TODO/sysdeps/unix/sysv/linux/mips/bits/poll.h
new file mode 100644
index 0000000000..0f92f34d79
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/bits/poll.h
@@ -0,0 +1,49 @@
+/* Copyright (C) 1997-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_POLL_H
+# error "Never use <bits/poll.h> directly; include <sys/poll.h> instead."
+#endif
+
+/* Event types that can be polled for. These bits may be set in `events'
+ to indicate the interesting event types; they will appear in `revents'
+ to indicate the status of the file descriptor. */
+#define POLLIN 0x001 /* There is data to read. */
+#define POLLPRI 0x002 /* There is urgent data to read. */
+#define POLLOUT 0x004 /* Writing now will not block. */
+
+#if defined __USE_XOPEN || defined __USE_XOPEN2K8
+/* These values are defined in XPG4.2. */
+# define POLLRDNORM 0x040 /* Normal data may be read. */
+# define POLLRDBAND 0x080 /* Priority data may be read. */
+# define POLLWRNORM POLLOUT /* Writing now will not block. */
+# define POLLWRBAND 0x100 /* Priority data may be written. */
+#endif
+
+#ifdef __USE_GNU
+/* These are extensions for Linux. */
+# define POLLMSG 0x400
+# define POLLREMOVE 0x1000
+# define POLLRDHUP 0x2000
+#endif
+
+/* Event types always implicitly polled for. These bits need not be set in
+ `events', but they will appear in `revents' to indicate the status of
+ the file descriptor. */
+#define POLLERR 0x008 /* Error condition. */
+#define POLLHUP 0x010 /* Hung up. */
+#define POLLNVAL 0x020 /* Invalid polling request. */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/bits/resource.h b/REORG.TODO/sysdeps/unix/sysv/linux/mips/bits/resource.h
new file mode 100644
index 0000000000..c59a92b258
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/bits/resource.h
@@ -0,0 +1,273 @@
+/* Bit values & structures for resource limits. Linux/MIPS version.
+ Copyright (C) 1994-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_RESOURCE_H
+# error "Never use <bits/resource.h> directly; include <sys/resource.h> instead."
+#endif
+
+#include <bits/types.h>
+
+/* Transmute defines to enumerations. The macro re-definitions are
+ necessary because some programs want to test for operating system
+ features with #ifdef RUSAGE_SELF. In ISO C the reflexive
+ definition is a no-op. */
+
+/* Kinds of resource limit. */
+enum __rlimit_resource
+{
+ /* Per-process CPU limit, in seconds. */
+ RLIMIT_CPU = 0,
+#define RLIMIT_CPU RLIMIT_CPU
+
+ /* Largest file that can be created, in bytes. */
+ RLIMIT_FSIZE = 1,
+#define RLIMIT_FSIZE RLIMIT_FSIZE
+
+ /* Maximum size of data segment, in bytes. */
+ RLIMIT_DATA = 2,
+#define RLIMIT_DATA RLIMIT_DATA
+
+ /* Maximum size of stack segment, in bytes. */
+ RLIMIT_STACK = 3,
+#define RLIMIT_STACK RLIMIT_STACK
+
+ /* Largest core file that can be created, in bytes. */
+ RLIMIT_CORE = 4,
+#define RLIMIT_CORE RLIMIT_CORE
+
+ /* Largest resident set size, in bytes.
+ This affects swapping; processes that are exceeding their
+ resident set size will be more likely to have physical memory
+ taken from them. */
+ __RLIMIT_RSS = 7,
+#define RLIMIT_RSS __RLIMIT_RSS
+
+ /* Number of open files. */
+ RLIMIT_NOFILE = 5,
+ __RLIMIT_OFILE = RLIMIT_NOFILE, /* BSD name for same. */
+#define RLIMIT_NOFILE RLIMIT_NOFILE
+#define RLIMIT_OFILE __RLIMIT_OFILE
+
+ /* Address space limit (?) */
+ RLIMIT_AS = 6,
+#define RLIMIT_AS RLIMIT_AS
+
+ /* Number of processes. */
+ __RLIMIT_NPROC = 8,
+#define RLIMIT_NPROC __RLIMIT_NPROC
+
+ /* Locked-in-memory address space. */
+ __RLIMIT_MEMLOCK = 9,
+#define RLIMIT_MEMLOCK __RLIMIT_MEMLOCK
+
+ /* Maximum number of file locks. */
+ __RLIMIT_LOCKS = 10,
+#define RLIMIT_LOCKS __RLIMIT_LOCKS
+
+ /* Maximum number of pending signals. */
+ __RLIMIT_SIGPENDING = 11,
+#define RLIMIT_SIGPENDING __RLIMIT_SIGPENDING
+
+ /* Maximum bytes in POSIX message queues. */
+ __RLIMIT_MSGQUEUE = 12,
+#define RLIMIT_MSGQUEUE __RLIMIT_MSGQUEUE
+
+ /* Maximum nice priority allowed to raise to.
+ Nice levels 19 .. -20 correspond to 0 .. 39
+ values of this resource limit. */
+ __RLIMIT_NICE = 13,
+#define RLIMIT_NICE __RLIMIT_NICE
+
+ /* Maximum realtime priority allowed for non-priviledged
+ processes. */
+ __RLIMIT_RTPRIO = 14,
+#define RLIMIT_RTPRIO __RLIMIT_RTPRIO
+
+ /* Maximum CPU time in µs that a process scheduled under a real-time
+ scheduling policy may consume without making a blocking system
+ call before being forcibly descheduled. */
+ __RLIMIT_RTTIME = 15,
+#define RLIMIT_RTTIME __RLIMIT_RTTIME
+
+ __RLIMIT_NLIMITS = 16,
+ __RLIM_NLIMITS = __RLIMIT_NLIMITS
+#define RLIMIT_NLIMITS __RLIMIT_NLIMITS
+#define RLIM_NLIMITS __RLIM_NLIMITS
+};
+
+/* Value to indicate that there is no limit. */
+#if _MIPS_SIM == _ABI64
+/* The N64 syscall uses this value. */
+# define RLIM_INFINITY 0xffffffffffffffffUL
+# ifdef __USE_LARGEFILE64
+# define RLIM64_INFINITY 0xffffffffffffffffUL
+# endif
+#else
+/* The O32 and N32 syscalls use 0x7fffffff. */
+# ifndef __USE_FILE_OFFSET64
+# define RLIM_INFINITY ((long int)(~0UL >> 1))
+# else
+# define RLIM_INFINITY 0xffffffffffffffffULL
+# endif
+# ifdef __USE_LARGEFILE64
+# define RLIM64_INFINITY 0xffffffffffffffffULL
+# endif
+#endif
+
+/* We can represent all limits. */
+#define RLIM_SAVED_MAX RLIM_INFINITY
+#define RLIM_SAVED_CUR RLIM_INFINITY
+
+
+/* Type for resource quantity measurement. */
+#ifndef __USE_FILE_OFFSET64
+typedef __rlim_t rlim_t;
+#else
+typedef __rlim64_t rlim_t;
+#endif
+#ifdef __USE_LARGEFILE64
+typedef __rlim64_t rlim64_t;
+#endif
+
+struct rlimit
+ {
+ /* The current (soft) limit. */
+ rlim_t rlim_cur;
+ /* The hard limit. */
+ rlim_t rlim_max;
+ };
+
+#ifdef __USE_LARGEFILE64
+struct rlimit64
+ {
+ /* The current (soft) limit. */
+ rlim64_t rlim_cur;
+ /* The hard limit. */
+ rlim64_t rlim_max;
+ };
+#endif
+
+/* Whose usage statistics do you want? */
+enum __rusage_who
+{
+ /* The calling process. */
+ RUSAGE_SELF = 0,
+#define RUSAGE_SELF RUSAGE_SELF
+
+ /* All of its terminated child processes. */
+ RUSAGE_CHILDREN = -1
+#define RUSAGE_CHILDREN RUSAGE_CHILDREN
+
+#ifdef __USE_GNU
+ ,
+ /* The calling thread. */
+ RUSAGE_THREAD = 1
+# define RUSAGE_THREAD RUSAGE_THREAD
+ /* Name for the same functionality on Solaris. */
+# define RUSAGE_LWP RUSAGE_THREAD
+#endif
+};
+
+#include <bits/types/struct_timeval.h>
+
+/* Structure which says how much of each resource has been used. */
+struct rusage
+ {
+ /* Total amount of user time used. */
+ struct timeval ru_utime;
+ /* Total amount of system time used. */
+ struct timeval ru_stime;
+ /* Maximum resident set size (in kilobytes). */
+ long int ru_maxrss;
+ /* Amount of sharing of text segment memory
+ with other processes (kilobyte-seconds). */
+ long int ru_ixrss;
+ /* Amount of data segment memory used (kilobyte-seconds). */
+ long int ru_idrss;
+ /* Amount of stack memory used (kilobyte-seconds). */
+ long int ru_isrss;
+ /* Number of soft page faults (i.e. those serviced by reclaiming
+ a page from the list of pages awaiting reallocation. */
+ long int ru_minflt;
+ /* Number of hard page faults (i.e. those that required I/O). */
+ long int ru_majflt;
+ /* Number of times a process was swapped out of physical memory. */
+ long int ru_nswap;
+ /* Number of input operations via the file system. Note: This
+ and `ru_oublock' do not include operations with the cache. */
+ long int ru_inblock;
+ /* Number of output operations via the file system. */
+ long int ru_oublock;
+ /* Number of IPC messages sent. */
+ long int ru_msgsnd;
+ /* Number of IPC messages received. */
+ long int ru_msgrcv;
+ /* Number of signals delivered. */
+ long int ru_nsignals;
+ /* Number of voluntary context switches, i.e. because the process
+ gave up the process before it had to (usually to wait for some
+ resource to be available). */
+ long int ru_nvcsw;
+ /* Number of involuntary context switches, i.e. a higher priority process
+ became runnable or the current process used up its time slice. */
+ long int ru_nivcsw;
+ };
+
+/* Priority limits. */
+#define PRIO_MIN -20 /* Minimum priority a process can have. */
+#define PRIO_MAX 20 /* Maximum priority a process can have. */
+
+/* The type of the WHICH argument to `getpriority' and `setpriority',
+ indicating what flavor of entity the WHO argument specifies. */
+enum __priority_which
+{
+ PRIO_PROCESS = 0, /* WHO is a process ID. */
+#define PRIO_PROCESS PRIO_PROCESS
+ PRIO_PGRP = 1, /* WHO is a process group ID. */
+#define PRIO_PGRP PRIO_PGRP
+ PRIO_USER = 2 /* WHO is a user ID. */
+#define PRIO_USER PRIO_USER
+};
+
+
+__BEGIN_DECLS
+
+#ifdef __USE_GNU
+/* Modify and return resource limits of a process atomically. */
+# ifndef __USE_FILE_OFFSET64
+extern int prlimit (__pid_t __pid, enum __rlimit_resource __resource,
+ const struct rlimit *__new_limit,
+ struct rlimit *__old_limit) __THROW;
+# else
+# ifdef __REDIRECT_NTH
+extern int __REDIRECT_NTH (prlimit, (__pid_t __pid,
+ enum __rlimit_resource __resource,
+ const struct rlimit *__new_limit,
+ struct rlimit *__old_limit), prlimit64);
+# else
+# define prlimit prlimit64
+# endif
+# endif
+# ifdef __USE_LARGEFILE64
+extern int prlimit64 (__pid_t __pid, enum __rlimit_resource __resource,
+ const struct rlimit64 *__new_limit,
+ struct rlimit64 *__old_limit) __THROW;
+# endif
+#endif
+
+__END_DECLS
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/bits/sem.h b/REORG.TODO/sysdeps/unix/sysv/linux/mips/bits/sem.h
new file mode 100644
index 0000000000..36de4390e8
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/bits/sem.h
@@ -0,0 +1,84 @@
+/* Copyright (C) 1995-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_SEM_H
+# error "Never include <bits/sem.h> directly; use <sys/sem.h> instead."
+#endif
+
+#include <sys/types.h>
+
+/* Flags for `semop'. */
+#define SEM_UNDO 0x1000 /* undo the operation on exit */
+
+/* Commands for `semctl'. */
+#define GETPID 11 /* get sempid */
+#define GETVAL 12 /* get semval */
+#define GETALL 13 /* get all semval's */
+#define GETNCNT 14 /* get semncnt */
+#define GETZCNT 15 /* get semzcnt */
+#define SETVAL 16 /* set semval */
+#define SETALL 17 /* set all semval's */
+
+
+/* Data structure describing a set of semaphores. */
+struct semid_ds
+{
+ struct ipc_perm sem_perm; /* operation permission struct */
+ __time_t sem_otime; /* last semop() time */
+ __time_t sem_ctime; /* last time changed by semctl() */
+ unsigned long int sem_nsems; /* number of semaphores in set */
+ unsigned long int __glibc_reserved1;
+ unsigned long int __glibc_reserved2;
+};
+
+/* The user should define a union like the following to use it for arguments
+ for `semctl'.
+
+ union semun
+ {
+ int val; <= value for SETVAL
+ struct semid_ds *buf; <= buffer for IPC_STAT & IPC_SET
+ unsigned short int *array; <= array for GETALL & SETALL
+ struct seminfo *__buf; <= buffer for IPC_INFO
+ };
+
+ Previous versions of this file used to define this union but this is
+ incorrect. One can test the macro _SEM_SEMUN_UNDEFINED to see whether
+ one must define the union or not. */
+#define _SEM_SEMUN_UNDEFINED 1
+
+#ifdef __USE_MISC
+
+/* ipcs ctl cmds */
+# define SEM_STAT 18
+# define SEM_INFO 19
+
+struct seminfo
+{
+ int semmap;
+ int semmni;
+ int semmns;
+ int semmnu;
+ int semmsl;
+ int semopm;
+ int semume;
+ int semusz;
+ int semvmx;
+ int semaem;
+};
+
+#endif /* __USE_MISC */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/bits/shm.h b/REORG.TODO/sysdeps/unix/sysv/linux/mips/bits/shm.h
new file mode 100644
index 0000000000..20a02ce9bb
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/bits/shm.h
@@ -0,0 +1,95 @@
+/* Copyright (C) 1995-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_SHM_H
+# error "Never include <bits/shm.h> directly; use <sys/shm.h> instead."
+#endif
+
+#include <bits/types.h>
+
+/* Permission flag for shmget. */
+#define SHM_R 0400 /* or S_IRUGO from <linux/stat.h> */
+#define SHM_W 0200 /* or S_IWUGO from <linux/stat.h> */
+
+/* Flags for `shmat'. */
+#define SHM_RDONLY 010000 /* attach read-only else read-write */
+#define SHM_RND 020000 /* round attach address to SHMLBA */
+#define SHM_REMAP 040000 /* take-over region on attach */
+#define SHM_EXEC 0100000 /* execution access */
+
+/* Commands for `shmctl'. */
+#define SHM_LOCK 11 /* lock segment (root only) */
+#define SHM_UNLOCK 12 /* unlock segment (root only) */
+
+/* Segment low boundary address multiple. */
+#define SHMLBA 0x40000
+
+
+/* Type to count number of attaches. */
+typedef unsigned long int shmatt_t;
+
+/* Data structure describing a shared memory segment. */
+struct shmid_ds
+ {
+ struct ipc_perm shm_perm; /* operation permission struct */
+ size_t shm_segsz; /* size of segment in bytes */
+ __time_t shm_atime; /* time of last shmat() */
+ __time_t shm_dtime; /* time of last shmdt() */
+ __time_t shm_ctime; /* time of last change by shmctl() */
+ __pid_t shm_cpid; /* pid of creator */
+ __pid_t shm_lpid; /* pid of last shmop */
+ shmatt_t shm_nattch; /* number of current attaches */
+ unsigned long int __glibc_reserved1;
+ unsigned long int __glibc_reserved2;
+ };
+
+#ifdef __USE_MISC
+
+/* ipcs ctl commands */
+# define SHM_STAT 13
+# define SHM_INFO 14
+
+/* shm_mode upper byte flags */
+# define SHM_DEST 01000 /* segment will be destroyed on last detach */
+# define SHM_LOCKED 02000 /* segment will not be swapped */
+# define SHM_HUGETLB 04000 /* segment is mapped via hugetlb */
+# define SHM_NORESERVE 010000 /* don't check for reservations */
+
+struct shminfo
+ {
+ unsigned long int shmmax;
+ unsigned long int shmmin;
+ unsigned long int shmmni;
+ unsigned long int shmseg;
+ unsigned long int shmall;
+ unsigned long int __glibc_reserved1;
+ unsigned long int __glibc_reserved2;
+ unsigned long int __glibc_reserved3;
+ unsigned long int __glibc_reserved4;
+ };
+
+struct shm_info
+ {
+ int used_ids;
+ unsigned long int shm_tot; /* total allocated shm */
+ unsigned long int shm_rss; /* total resident shm */
+ unsigned long int shm_swp; /* total swapped shm */
+ unsigned long int swap_attempts;
+ unsigned long int swap_successes;
+ };
+
+#endif /* __USE_MISC */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/bits/sigaction.h b/REORG.TODO/sysdeps/unix/sysv/linux/mips/bits/sigaction.h
new file mode 100644
index 0000000000..c61a49ef88
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/bits/sigaction.h
@@ -0,0 +1,89 @@
+/* The proper definitions for Linux/MIPS's sigaction.
+ 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 _SIGNAL_H
+# error "Never include <bits/sigaction.h> directly; use <signal.h> instead."
+#endif
+
+/* Structure describing the action to be taken when a signal arrives. */
+struct sigaction
+ {
+ /* Special flags. */
+ int sa_flags;
+
+ /* Signal handler. */
+#ifdef __USE_POSIX199309
+ union
+ {
+ /* Used if SA_SIGINFO is not set. */
+ __sighandler_t sa_handler;
+ /* Used if SA_SIGINFO is set. */
+ void (*sa_sigaction) (int, siginfo_t *, void *);
+ }
+ __sigaction_handler;
+# define sa_handler __sigaction_handler.sa_handler
+# define sa_sigaction __sigaction_handler.sa_sigaction
+#else
+ __sighandler_t sa_handler;
+#endif
+ /* Additional set of signals to be blocked. */
+ __sigset_t sa_mask;
+
+ /* The ABI says here are two unused ints following. */
+ /* Restore handler. */
+ void (*sa_restorer) (void);
+
+#if _MIPS_SZPTR < 64
+ int sa_resv[1];
+#endif
+ };
+
+/* Bits in `sa_flags'. */
+/* Please note that some Linux kernels versions use different values for these
+ flags which is a bug in those kernel versions. */
+#define SA_NOCLDSTOP 0x00000001 /* Don't send SIGCHLD when children stop. */
+#define SA_NOCLDWAIT 0x00010000 /* Don't create zombie on child death. */
+#define SA_SIGINFO 0x00000008 /* Invoke signal-catching function with
+ three arguments instead of one. */
+#if defined __USE_UNIX98 || defined __USE_MISC
+# define SA_ONSTACK 0x08000000 /* Use signal stack by using `sa_restorer'. */
+#endif
+#if defined __USE_UNIX98 || defined __USE_XOPEN2K8
+# define SA_RESETHAND 0x80000000 /* Reset to SIG_DFL on entry to handler. */
+# define SA_RESTART 0x10000000 /* Restart syscall on signal return. */
+# define SA_NODEFER 0x40000000 /* Don't automatically block the signal when
+ its handler is being executed. */
+#endif
+#ifdef __USE_MISC
+# define SA_INTERRUPT 0x20000000 /* Historical no-op. */
+
+/* Some aliases for the SA_ constants. */
+# define SA_NOMASK SA_NODEFER
+# define SA_ONESHOT SA_RESETHAND
+# define SA_STACK SA_ONSTACK
+#endif
+
+/* Values for the HOW argument to `sigprocmask'. */
+#define SIG_NOP 0 /* 0 is unused to catch errors */
+#define SIG_BLOCK 1 /* Block signals. */
+#define SIG_UNBLOCK 2 /* Unblock signals. */
+#define SIG_SETMASK 3 /* Set the set of blocked signals. */
+#ifdef __USE_MISC
+# define SIG_SETMASK32 256 /* Goodie from SGI for BSD compatibility:
+ set only the low 32 bit of the sigset. */
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/bits/sigcontext.h b/REORG.TODO/sysdeps/unix/sysv/linux/mips/bits/sigcontext.h
new file mode 100644
index 0000000000..0b3fda1fe1
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/bits/sigcontext.h
@@ -0,0 +1,82 @@
+/* Copyright (C) 1996-2017 Free Software Foundation, Inc. This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _BITS_SIGCONTEXT_H
+#define _BITS_SIGCONTEXT_H 1
+
+#if !defined _SIGNAL_H && !defined _SYS_UCONTEXT_H
+# error "Never use <bits/sigcontext.h> directly; include <signal.h> instead."
+#endif
+
+#include <sgidefs.h>
+
+#if _MIPS_SIM == _ABIO32
+
+/* Certain unused fields were replaced with new ones in 2.6.12-rc4.
+ The changes were as follows:
+
+ sc_cause -> sc_hi1
+ sc_badvaddr -> sc_lo1
+ sc_sigset[0] -> sc_hi2
+ sc_sigset[1] -> sc_lo2
+ sc_sigset[2] -> sc_hi3
+ sc_sigset[3] -> sc_lo3
+
+ sc_regmask, sc_ownedfp and sc_fpc_eir are not used. */
+struct sigcontext {
+ unsigned int sc_regmask;
+ unsigned int sc_status;
+ __extension__ unsigned long long sc_pc;
+ __extension__ unsigned long long sc_regs[32];
+ __extension__ unsigned long long sc_fpregs[32];
+ unsigned int sc_ownedfp;
+ unsigned int sc_fpc_csr;
+ unsigned int sc_fpc_eir;
+ unsigned int sc_used_math;
+ unsigned int sc_dsp;
+ __extension__ unsigned long long sc_mdhi;
+ __extension__ unsigned long long sc_mdlo;
+ unsigned long sc_hi1;
+ unsigned long sc_lo1;
+ unsigned long sc_hi2;
+ unsigned long sc_lo2;
+ unsigned long sc_hi3;
+ unsigned long sc_lo3;
+};
+
+#else
+
+/* This structure changed in 2.6.12-rc4 when DSP support was added. */
+struct sigcontext {
+ __extension__ unsigned long long sc_regs[32];
+ __extension__ unsigned long long sc_fpregs[32];
+ __extension__ unsigned long long sc_mdhi;
+ __extension__ unsigned long long sc_hi1;
+ __extension__ unsigned long long sc_hi2;
+ __extension__ unsigned long long sc_hi3;
+ __extension__ unsigned long long sc_mdlo;
+ __extension__ unsigned long long sc_lo1;
+ __extension__ unsigned long long sc_lo2;
+ __extension__ unsigned long long sc_lo3;
+ __extension__ unsigned long long sc_pc;
+ unsigned int sc_fpc_csr;
+ unsigned int sc_used_math;
+ unsigned int sc_dsp;
+ unsigned int sc_reserved;
+};
+
+#endif /* _MIPS_SIM != _ABIO32 */
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/bits/siginfo-arch.h b/REORG.TODO/sysdeps/unix/sysv/linux/mips/bits/siginfo-arch.h
new file mode 100644
index 0000000000..cd3af7db06
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/bits/siginfo-arch.h
@@ -0,0 +1,13 @@
+/* Architecture-specific adjustments to siginfo_t. MIPS version. */
+#ifndef _BITS_SIGINFO_ARCH_H
+#define _BITS_SIGINFO_ARCH_H 1
+
+/* MIPS has the si_code and si_errno fields in the opposite order from
+ all other architectures. */
+#define __SI_ERRNO_THEN_CODE 0
+
+/* MIPS also has different values for SI_ASYNCIO, SI_MESGQ, and SI_TIMER
+ than all other architectures. */
+#define __SI_ASYNCIO_AFTER_SIGIO 0
+
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/bits/signalfd.h b/REORG.TODO/sysdeps/unix/sysv/linux/mips/bits/signalfd.h
new file mode 100644
index 0000000000..7cc70153a3
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/bits/signalfd.h
@@ -0,0 +1,29 @@
+/* Copyright (C) 2007-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_SIGNALFD_H
+# error "Never use <bits/signalfd.h> directly; include <sys/signalfd.h> instead."
+#endif
+
+/* Flags for signalfd. */
+enum
+ {
+ SFD_CLOEXEC = 02000000,
+#define SFD_CLOEXEC SFD_CLOEXEC
+ SFD_NONBLOCK = 00000200
+#define SFD_NONBLOCK SFD_NONBLOCK
+ };
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/bits/signum.h b/REORG.TODO/sysdeps/unix/sysv/linux/mips/bits/signum.h
new file mode 100644
index 0000000000..6c31e01cd7
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/bits/signum.h
@@ -0,0 +1,78 @@
+/* Signal number definitions. Linux version.
+ Copyright (C) 1995-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifdef _SIGNAL_H
+
+/* Fake signal functions. */
+#define SIG_ERR ((__sighandler_t) -1) /* Error return. */
+#define SIG_DFL ((__sighandler_t) 0) /* Default action. */
+#define SIG_IGN ((__sighandler_t) 1) /* Ignore signal. */
+
+#ifdef __USE_XOPEN
+# define SIG_HOLD ((__sighandler_t) 2) /* Add signal to hold mask. */
+#endif
+
+
+#define SIGHUP 1 /* Hangup (POSIX). */
+#define SIGINT 2 /* Interrupt (ANSI). */
+#define SIGQUIT 3 /* Quit (POSIX). */
+#define SIGILL 4 /* Illegal instruction (ANSI). */
+#define SIGTRAP 5 /* Trace trap (POSIX). */
+#define SIGIOT 6 /* IOT trap (4.2 BSD). */
+#define SIGABRT SIGIOT /* Abort (ANSI). */
+#define SIGEMT 7
+#define SIGFPE 8 /* Floating-point exception (ANSI). */
+#define SIGKILL 9 /* Kill, unblockable (POSIX). */
+#define SIGBUS 10 /* BUS error (4.2 BSD). */
+#define SIGSEGV 11 /* Segmentation violation (ANSI). */
+#define SIGSYS 12
+#define SIGPIPE 13 /* Broken pipe (POSIX). */
+#define SIGALRM 14 /* Alarm clock (POSIX). */
+#define SIGTERM 15 /* Termination (ANSI). */
+#define SIGUSR1 16 /* User-defined signal 1 (POSIX). */
+#define SIGUSR2 17 /* User-defined signal 2 (POSIX). */
+#define SIGCHLD 18 /* Child status has changed (POSIX). */
+#define SIGCLD SIGCHLD /* Same as SIGCHLD (System V). */
+#define SIGPWR 19 /* Power failure restart (System V). */
+#define SIGWINCH 20 /* Window size change (4.3 BSD, Sun). */
+#define SIGURG 21 /* Urgent condition on socket (4.2 BSD). */
+#define SIGIO 22 /* I/O now possible (4.2 BSD). */
+#define SIGPOLL SIGIO /* Pollable event occurred (System V). */
+#define SIGSTOP 23 /* Stop, unblockable (POSIX). */
+#define SIGTSTP 24 /* Keyboard stop (POSIX). */
+#define SIGCONT 25 /* Continue (POSIX). */
+#define SIGTTIN 26 /* Background read from tty (POSIX). */
+#define SIGTTOU 27 /* Background write to tty (POSIX). */
+#define SIGVTALRM 28 /* Virtual alarm clock (4.2 BSD). */
+#define SIGPROF 29 /* Profiling alarm clock (4.2 BSD). */
+#define SIGXCPU 30 /* CPU limit exceeded (4.2 BSD). */
+#define SIGXFSZ 31 /* File size limit exceeded (4.2 BSD). */
+
+
+#define _NSIG 128 /* Biggest signal number + 1
+ (including real-time signals). */
+
+#define SIGRTMIN (__libc_current_sigrtmin ())
+#define SIGRTMAX (__libc_current_sigrtmax ())
+
+/* These are the hard limits of the kernel. These values should not be
+ used directly at user level. */
+#define __SIGRTMIN 32
+#define __SIGRTMAX (_NSIG - 1)
+
+#endif /* <signal.h> included. */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/bits/socket_type.h b/REORG.TODO/sysdeps/unix/sysv/linux/mips/bits/socket_type.h
new file mode 100644
index 0000000000..64b70c204b
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/bits/socket_type.h
@@ -0,0 +1,55 @@
+/* Define enum __socket_type for Linux/MIPS.
+ Copyright (C) 1991-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_SOCKET_H
+# error "Never include <bits/socket_type.h> directly; use <sys/socket.h> instead."
+#endif
+
+/* Types of sockets. */
+enum __socket_type
+{
+ SOCK_DGRAM = 1, /* Connectionless, unreliable datagrams
+ of fixed maximum length. */
+#define SOCK_DGRAM SOCK_DGRAM
+ SOCK_STREAM = 2, /* Sequenced, reliable, connection-based
+ byte streams. */
+#define SOCK_STREAM SOCK_STREAM
+ SOCK_RAW = 3, /* Raw protocol interface. */
+#define SOCK_RAW SOCK_RAW
+ SOCK_RDM = 4, /* Reliably-delivered messages. */
+#define SOCK_RDM SOCK_RDM
+ SOCK_SEQPACKET = 5, /* Sequenced, reliable, connection-based,
+ datagrams of fixed maximum length. */
+#define SOCK_SEQPACKET SOCK_SEQPACKET
+ SOCK_DCCP = 6,
+#define SOCK_DCCP SOCK_DCCP /* Datagram Congestion Control Protocol. */
+ SOCK_PACKET = 10, /* Linux specific way of getting packets
+ at the dev level. For writing rarp and
+ other similar things on the user level. */
+#define SOCK_PACKET SOCK_PACKET
+
+ /* Flags to be ORed into the type parameter of socket and socketpair and
+ used for the flags parameter of paccept. */
+
+ SOCK_CLOEXEC = 02000000, /* Atomically set close-on-exec flag for the
+ new descriptor(s). */
+#define SOCK_CLOEXEC SOCK_CLOEXEC
+ SOCK_NONBLOCK = 00000200 /* Atomically mark descriptor(s) as
+ non-blocking. */
+#define SOCK_NONBLOCK SOCK_NONBLOCK
+};
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/bits/stat.h b/REORG.TODO/sysdeps/unix/sysv/linux/mips/bits/stat.h
new file mode 100644
index 0000000000..07b6d7f615
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/bits/stat.h
@@ -0,0 +1,263 @@
+/* Copyright (C) 1992-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#if !defined _SYS_STAT_H && !defined _FCNTL_H
+# error "Never include <bits/stat.h> directly; use <sys/stat.h> instead."
+#endif
+
+#ifndef _BITS_STAT_H
+#define _BITS_STAT_H 1
+
+#include <sgidefs.h>
+
+/* Versions of the `struct stat' data structure. */
+#define _STAT_VER_LINUX_OLD 1
+#define _STAT_VER_KERNEL 1
+#define _STAT_VER_SVR4 2
+#define _STAT_VER_LINUX 3
+#define _STAT_VER _STAT_VER_LINUX /* The one defined below. */
+
+/* Versions of the `xmknod' interface. */
+#define _MKNOD_VER_LINUX 1
+#define _MKNOD_VER_SVR4 2
+#define _MKNOD_VER _MKNOD_VER_LINUX /* The bits defined below. */
+
+
+#if _MIPS_SIM == _ABIO32
+/* Structure describing file characteristics. */
+struct stat
+ {
+ unsigned long int st_dev;
+ long int st_pad1[3];
+#ifndef __USE_FILE_OFFSET64
+ __ino_t st_ino; /* File serial number. */
+#else
+ __ino64_t st_ino; /* File serial number. */
+#endif
+ __mode_t st_mode; /* File mode. */
+ __nlink_t st_nlink; /* Link count. */
+ __uid_t st_uid; /* User ID of the file's owner. */
+ __gid_t st_gid; /* Group ID of the file's group.*/
+ unsigned long int st_rdev; /* Device number, if device. */
+#ifndef __USE_FILE_OFFSET64
+ long int st_pad2[2];
+ __off_t st_size; /* Size of file, in bytes. */
+ /* SVR4 added this extra long to allow for expansion of off_t. */
+ long int st_pad3;
+#else
+ long int st_pad2[3];
+ __off64_t st_size; /* Size of file, in bytes. */
+#endif
+#ifdef __USE_XOPEN2K8
+ /* Nanosecond resolution timestamps are stored in a format
+ equivalent to 'struct timespec'. This is the type used
+ whenever possible but the Unix namespace rules do not allow the
+ identifier 'timespec' to appear in the <sys/stat.h> header.
+ Therefore we have to handle the use of this header in strictly
+ standard-compliant sources special. */
+ struct timespec st_atim; /* Time of last access. */
+ struct timespec st_mtim; /* Time of last modification. */
+ struct timespec st_ctim; /* Time of last status change. */
+# define st_atime st_atim.tv_sec /* Backward compatibility. */
+# define st_mtime st_mtim.tv_sec
+# define st_ctime st_ctim.tv_sec
+#else
+ __time_t st_atime; /* Time of last access. */
+ unsigned long int st_atimensec; /* Nscecs of last access. */
+ __time_t st_mtime; /* Time of last modification. */
+ unsigned long int st_mtimensec; /* Nsecs of last modification. */
+ __time_t st_ctime; /* Time of last status change. */
+ unsigned long int st_ctimensec; /* Nsecs of last status change. */
+#endif
+ __blksize_t st_blksize; /* Optimal block size for I/O. */
+#ifndef __USE_FILE_OFFSET64
+ __blkcnt_t st_blocks; /* Number of 512-byte blocks allocated. */
+#else
+ long int st_pad4;
+ __blkcnt64_t st_blocks; /* Number of 512-byte blocks allocated. */
+#endif
+ long int st_pad5[14];
+ };
+
+#ifdef __USE_LARGEFILE64
+struct stat64
+ {
+ unsigned long int st_dev;
+ long int st_pad1[3];
+ __ino64_t st_ino; /* File serial number. */
+ __mode_t st_mode; /* File mode. */
+ __nlink_t st_nlink; /* Link count. */
+ __uid_t st_uid; /* User ID of the file's owner. */
+ __gid_t st_gid; /* Group ID of the file's group.*/
+ unsigned long int st_rdev; /* Device number, if device. */
+ long int st_pad2[3];
+ __off64_t st_size; /* Size of file, in bytes. */
+# ifdef __USE_XOPEN2K8
+ /* Nanosecond resolution timestamps are stored in a format
+ equivalent to 'struct timespec'. This is the type used
+ whenever possible but the Unix namespace rules do not allow the
+ identifier 'timespec' to appear in the <sys/stat.h> header.
+ Therefore we have to handle the use of this header in strictly
+ standard-compliant sources special. */
+ struct timespec st_atim; /* Time of last access. */
+ struct timespec st_mtim; /* Time of last modification. */
+ struct timespec st_ctim; /* Time of last status change. */
+# else
+ __time_t st_atime; /* Time of last access. */
+ unsigned long int st_atimensec; /* Nscecs of last access. */
+ __time_t st_mtime; /* Time of last modification. */
+ unsigned long int st_mtimensec; /* Nsecs of last modification. */
+ __time_t st_ctime; /* Time of last status change. */
+ unsigned long int st_ctimensec; /* Nsecs of last status change. */
+# endif
+ __blksize_t st_blksize; /* Optimal block size for I/O. */
+ long int st_pad3;
+ __blkcnt64_t st_blocks; /* Number of 512-byte blocks allocated. */
+ long int st_pad4[14];
+ };
+#endif
+#else
+struct stat
+ {
+ __dev_t st_dev;
+ int st_pad1[3]; /* Reserved for st_dev expansion */
+#ifndef __USE_FILE_OFFSET64
+ __ino_t st_ino;
+#else
+ __ino64_t st_ino;
+#endif
+ __mode_t st_mode;
+ __nlink_t st_nlink;
+ __uid_t st_uid;
+ __gid_t st_gid;
+ __dev_t st_rdev;
+#if !defined __USE_FILE_OFFSET64
+ unsigned int st_pad2[2]; /* Reserved for st_rdev expansion */
+ __off_t st_size;
+ int st_pad3;
+#else
+ unsigned int st_pad2[3]; /* Reserved for st_rdev expansion */
+ __off64_t st_size;
+#endif
+#ifdef __USE_XOPEN2K8
+ /* Nanosecond resolution timestamps are stored in a format
+ equivalent to 'struct timespec'. This is the type used
+ whenever possible but the Unix namespace rules do not allow the
+ identifier 'timespec' to appear in the <sys/stat.h> header.
+ Therefore we have to handle the use of this header in strictly
+ standard-compliant sources special. */
+ struct timespec st_atim; /* Time of last access. */
+ struct timespec st_mtim; /* Time of last modification. */
+ struct timespec st_ctim; /* Time of last status change. */
+# define st_atime st_atim.tv_sec /* Backward compatibility. */
+# define st_mtime st_mtim.tv_sec
+# define st_ctime st_ctim.tv_sec
+#else
+ __time_t st_atime; /* Time of last access. */
+ unsigned long int st_atimensec; /* Nscecs of last access. */
+ __time_t st_mtime; /* Time of last modification. */
+ unsigned long int st_mtimensec; /* Nsecs of last modification. */
+ __time_t st_ctime; /* Time of last status change. */
+ unsigned long int st_ctimensec; /* Nsecs of last status change. */
+#endif
+ __blksize_t st_blksize;
+ unsigned int st_pad4;
+#ifndef __USE_FILE_OFFSET64
+ __blkcnt_t st_blocks;
+#else
+ __blkcnt64_t st_blocks;
+#endif
+ int st_pad5[14];
+ };
+
+#ifdef __USE_LARGEFILE64
+struct stat64
+ {
+ __dev_t st_dev;
+ unsigned int st_pad1[3]; /* Reserved for st_dev expansion */
+ __ino64_t st_ino;
+ __mode_t st_mode;
+ __nlink_t st_nlink;
+ __uid_t st_uid;
+ __gid_t st_gid;
+ __dev_t st_rdev;
+ unsigned int st_pad2[3]; /* Reserved for st_rdev expansion */
+ __off64_t st_size;
+# ifdef __USE_XOPEN2K8
+ /* Nanosecond resolution timestamps are stored in a format
+ equivalent to 'struct timespec'. This is the type used
+ whenever possible but the Unix namespace rules do not allow the
+ identifier 'timespec' to appear in the <sys/stat.h> header.
+ Therefore we have to handle the use of this header in strictly
+ standard-compliant sources special. */
+ struct timespec st_atim; /* Time of last access. */
+ struct timespec st_mtim; /* Time of last modification. */
+ struct timespec st_ctim; /* Time of last status change. */
+# else
+ __time_t st_atime; /* Time of last access. */
+ unsigned long int st_atimensec; /* Nscecs of last access. */
+ __time_t st_mtime; /* Time of last modification. */
+ unsigned long int st_mtimensec; /* Nsecs of last modification. */
+ __time_t st_ctime; /* Time of last status change. */
+ unsigned long int st_ctimensec; /* Nsecs of last status change. */
+# endif
+ __blksize_t st_blksize;
+ unsigned int st_pad3;
+ __blkcnt64_t st_blocks;
+ int st_pad4[14];
+};
+#endif
+#endif
+
+/* Tell code we have these members. */
+#define _STATBUF_ST_BLKSIZE
+#define _STATBUF_ST_RDEV
+
+/* Encoding of the file mode. */
+
+#define __S_IFMT 0170000 /* These bits determine file type. */
+
+/* File types. */
+#define __S_IFDIR 0040000 /* Directory. */
+#define __S_IFCHR 0020000 /* Character device. */
+#define __S_IFBLK 0060000 /* Block device. */
+#define __S_IFREG 0100000 /* Regular file. */
+#define __S_IFIFO 0010000 /* FIFO. */
+#define __S_IFLNK 0120000 /* Symbolic link. */
+#define __S_IFSOCK 0140000 /* Socket. */
+
+/* POSIX.1b objects. Note that these macros always evaluate to zero. But
+ they do it by enforcing the correct use of the macros. */
+#define __S_TYPEISMQ(buf) ((buf)->st_mode - (buf)->st_mode)
+#define __S_TYPEISSEM(buf) ((buf)->st_mode - (buf)->st_mode)
+#define __S_TYPEISSHM(buf) ((buf)->st_mode - (buf)->st_mode)
+
+/* Protection bits. */
+
+#define __S_ISUID 04000 /* Set user ID on execution. */
+#define __S_ISGID 02000 /* Set group ID on execution. */
+#define __S_ISVTX 01000 /* Save swapped text after use (sticky). */
+#define __S_IREAD 0400 /* Read by owner. */
+#define __S_IWRITE 0200 /* Write by owner. */
+#define __S_IEXEC 0100 /* Execute by owner. */
+
+#ifdef __USE_ATFILE
+# define UTIME_NOW ((1l << 30) - 1l)
+# define UTIME_OMIT ((1l << 30) - 2l)
+#endif
+
+#endif /* bits/stat.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/bits/statfs.h b/REORG.TODO/sysdeps/unix/sysv/linux/mips/bits/statfs.h
new file mode 100644
index 0000000000..a3ed8a363d
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/bits/statfs.h
@@ -0,0 +1,73 @@
+/* Copyright (C) 1997-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_STATFS_H
+# error "Never include <bits/statfs.h> directly; use <sys/statfs.h> instead."
+#endif
+
+#include <bits/types.h> /* for __fsid_t and __fsblkcnt_t*/
+
+struct statfs
+ {
+ long int f_type;
+#define f_fstyp f_type
+ long int f_bsize;
+ long int f_frsize; /* Fragment size - unsupported */
+#ifndef __USE_FILE_OFFSET64
+ __fsblkcnt_t f_blocks;
+ __fsblkcnt_t f_bfree;
+ __fsblkcnt_t f_files;
+ __fsblkcnt_t f_ffree;
+ __fsblkcnt_t f_bavail;
+#else
+ __fsblkcnt64_t f_blocks;
+ __fsblkcnt64_t f_bfree;
+ __fsblkcnt64_t f_files;
+ __fsblkcnt64_t f_ffree;
+ __fsblkcnt64_t f_bavail;
+#endif
+
+ /* Linux specials */
+ __fsid_t f_fsid;
+ long int f_namelen;
+ long int f_flags;
+ long int f_spare[5];
+ };
+
+#ifdef __USE_LARGEFILE64
+struct statfs64
+ {
+ long int f_type;
+#define f_fstyp f_type
+ long int f_bsize;
+ long int f_frsize; /* Fragment size - unsupported */
+ __fsblkcnt64_t f_blocks;
+ __fsblkcnt64_t f_bfree;
+ __fsblkcnt64_t f_files;
+ __fsblkcnt64_t f_ffree;
+ __fsblkcnt64_t f_bavail;
+
+ /* Linux specials */
+ __fsid_t f_fsid;
+ long int f_namelen;
+ long int f_flags;
+ long int f_spare[5];
+ };
+#endif
+
+/* Tell code we have these members. */
+#define _STATFS_F_NAMELEN
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/bits/termios.h b/REORG.TODO/sysdeps/unix/sysv/linux/mips/bits/termios.h
new file mode 100644
index 0000000000..ecf4b1378a
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/bits/termios.h
@@ -0,0 +1,222 @@
+/* termios type and macro definitions. Linux/MIPS 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 _TERMIOS_H
+# error "Never include <bits/termios.h> directly; use <termios.h> instead."
+#endif
+
+typedef unsigned char cc_t;
+typedef unsigned int speed_t;
+typedef unsigned int tcflag_t;
+
+#define NCCS 32
+struct termios
+ {
+ tcflag_t c_iflag; /* input mode flags */
+ tcflag_t c_oflag; /* output mode flags */
+ tcflag_t c_cflag; /* control mode flags */
+ tcflag_t c_lflag; /* local mode flags */
+ cc_t c_line; /* line discipline */
+ cc_t c_cc[NCCS]; /* control characters */
+ };
+
+/* c_cc characters */
+#define VINTR 0 /* Interrupt character [ISIG]. */
+#define VQUIT 1 /* Quit character [ISIG]. */
+#define VERASE 2 /* Erase character [ICANON]. */
+#define VKILL 3 /* Kill-line character [ICANON]. */
+#define VMIN 4 /* Minimum number of bytes read at once [!ICANON]. */
+#define VTIME 5 /* Time-out value (tenths of a second) [!ICANON]. */
+#define VEOL2 6 /* Second EOL character [ICANON]. */
+#define VSWTC 7
+#define VSWTCH VSWTC
+#define VSTART 8 /* Start (X-ON) character [IXON, IXOFF]. */
+#define VSTOP 9 /* Stop (X-OFF) character [IXON, IXOFF]. */
+#define VSUSP 10 /* Suspend character [ISIG]. */
+ /* VDSUSP is not supported on Linux. */
+/* #define VDSUSP 11 / * Delayed suspend character [ISIG]. */
+#define VREPRINT 12 /* Reprint-line character [ICANON]. */
+#define VDISCARD 13 /* Discard character [IEXTEN]. */
+#define VWERASE 14 /* Word-erase character [ICANON]. */
+#define VLNEXT 15 /* Literal-next character [IEXTEN]. */
+#define VEOF 16 /* End-of-file character [ICANON]. */
+#define VEOL 17 /* End-of-line character [ICANON]. */
+
+/* c_iflag bits */
+#define IGNBRK 0000001 /* Ignore break condition. */
+#define BRKINT 0000002 /* Signal interrupt on break. */
+#define IGNPAR 0000004 /* Ignore characters with parity errors. */
+#define PARMRK 0000010 /* Mark parity and framing errors. */
+#define INPCK 0000020 /* Enable input parity check. */
+#define ISTRIP 0000040 /* Strip 8th bit off characters. */
+#define INLCR 0000100 /* Map NL to CR on input. */
+#define IGNCR 0000200 /* Ignore CR. */
+#define ICRNL 0000400 /* Map CR to NL on input. */
+#define IUCLC 0001000 /* Map upper case to lower case on input. */
+#define IXON 0002000 /* Enable start/stop output control. */
+#define IXANY 0004000 /* Any character will restart after stop. */
+#define IXOFF 0010000 /* Enable start/stop input control. */
+#define IMAXBEL 0020000 /* Ring bell when input queue is full. */
+#define IUTF8 0040000 /* Input is UTF8. */
+
+/* c_oflag bits */
+#define OPOST 0000001 /* Perform output processing. */
+#define OLCUC 0000002 /* Map lower case to upper case on output. */
+#define ONLCR 0000004 /* Map NL to CR-NL on output. */
+#define OCRNL 0000010
+#define ONOCR 0000020
+#define ONLRET 0000040
+#define OFILL 0000100
+#define OFDEL 0000200
+#if defined __USE_MISC || defined __USE_XOPEN
+# define NLDLY 0000400
+# define NL0 0000000
+# define NL1 0000400
+# define CRDLY 0003000
+# define CR0 0000000
+# define CR1 0001000
+# define CR2 0002000
+# define CR3 0003000
+# define TABDLY 0014000
+# define TAB0 0000000
+# define TAB1 0004000
+# define TAB2 0010000
+# define TAB3 0014000
+# define BSDLY 0020000
+# define BS0 0000000
+# define BS1 0020000
+# define FFDLY 0100000
+# define FF0 0000000
+# define FF1 0100000
+#endif
+
+#define VTDLY 0040000
+#define VT0 0000000
+#define VT1 0040000
+
+#ifdef __USE_MISC
+# define XTABS 0014000
+#endif
+
+/* c_cflag bit meaning */
+#ifdef __USE_MISC
+# define CBAUD 0010017
+#endif
+#define B0 0000000 /* hang up */
+#define B50 0000001
+#define B75 0000002
+#define B110 0000003
+#define B134 0000004
+#define B150 0000005
+#define B200 0000006
+#define B300 0000007
+#define B600 0000010
+#define B1200 0000011
+#define B1800 0000012
+#define B2400 0000013
+#define B4800 0000014
+#define B9600 0000015
+#define B19200 0000016
+#define B38400 0000017
+#ifdef __USE_MISC
+# define EXTA B19200
+# define EXTB B38400
+#endif
+#define CSIZE 0000060 /* Number of bits per byte (mask). */
+#define CS5 0000000 /* 5 bits per byte. */
+#define CS6 0000020 /* 6 bits per byte. */
+#define CS7 0000040 /* 7 bits per byte. */
+#define CS8 0000060 /* 8 bits per byte. */
+#define CSTOPB 0000100 /* Two stop bits instead of one. */
+#define CREAD 0000200 /* Enable receiver. */
+#define PARENB 0000400 /* Parity enable. */
+#define PARODD 0001000 /* Odd parity instead of even. */
+#define HUPCL 0002000 /* Hang up on last close. */
+#define CLOCAL 0004000 /* Ignore modem status lines. */
+#ifdef __USE_MISC
+# define CBAUDEX 0010000
+#endif
+#define B57600 0010001
+#define B115200 0010002
+#define B230400 0010003
+#define B460800 0010004
+#define B500000 0010005
+#define B576000 0010006
+#define B921600 0010007
+#define B1000000 0010010
+#define B1152000 0010011
+#define B1500000 0010012
+#define B2000000 0010013
+#define B2500000 0010014
+#define B3000000 0010015
+#define B3500000 0010016
+#define B4000000 0010017
+#define __MAX_BAUD B4000000
+#ifdef __USE_MISC
+# define CIBAUD 002003600000 /* input baud rate (not used) */
+# define CRTSCTS 020000000000 /* flow control */
+#endif
+
+/* c_lflag bits */
+#define ISIG 0000001 /* Enable signals. */
+#define ICANON 0000002 /* Do erase and kill processing. */
+#if defined __USE_MISC || (defined __USE_XOPEN && !defined __USE_XOPEN2K)
+# define XCASE 0000004
+#endif
+#define ECHO 0000010 /* Enable echo. */
+#define ECHOE 0000020 /* Visual erase for ERASE. */
+#define ECHOK 0000040 /* Echo NL after KILL. */
+#define ECHONL 0000100 /* Echo NL even if ECHO is off. */
+#define NOFLSH 0000200 /* Disable flush after interrupt. */
+#define IEXTEN 0000400 /* Enable DISCARD and LNEXT. */
+#ifdef __USE_MISC
+# define ECHOCTL 0001000 /* Echo control characters as ^X. */
+# define ECHOPRT 0002000 /* Hardcopy visual erase. */
+# define ECHOKE 0004000 /* Visual erase for KILL. */
+# define FLUSHO 0020000
+# define PENDIN 0040000 /* Retype pending input (state). */
+#endif
+#define TOSTOP 0100000 /* Send SIGTTOU for background output. */
+#define ITOSTOP TOSTOP
+#ifdef __USE_MISC
+# define EXTPROC 0200000
+#endif
+
+#ifdef __USE_MISC
+/* ioctl (fd, TIOCSERGETLSR, &result) where result may be as below */
+# define TIOCSER_TEMT 0x01 /* Transmitter physically empty */
+#endif
+
+/* tcflow() and TCXONC use these */
+#define TCOOFF 0 /* Suspend output. */
+#define TCOON 1 /* Restart suspended output. */
+#define TCIOFF 2 /* Send a STOP character. */
+#define TCION 3 /* Send a START character. */
+
+/* tcflush() and TCFLSH use these */
+#define TCIFLUSH 0 /* Discard data received but not yet read. */
+#define TCOFLUSH 1 /* Discard data written but not yet sent. */
+#define TCIOFLUSH 2 /* Discard all pending data. */
+
+/* tcsetattr uses these */
+#define TCSANOW 0x540e /* Same as TCSETS; change immediately. */
+#define TCSADRAIN 0x540f /* Same as TCSETSW; change when pending output is written. */
+#define TCSAFLUSH 0x5410 /* Same as TCSETSF; flush pending input before changing. */
+
+#define _IOT_termios /* Hurd ioctl type field. */ \
+ _IOT (_IOTS (cflag_t), 4, _IOTS (cc_t), NCCS, _IOTS (speed_t), 2)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/bits/timerfd.h b/REORG.TODO/sysdeps/unix/sysv/linux/mips/bits/timerfd.h
new file mode 100644
index 0000000000..ebf2608d50
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/bits/timerfd.h
@@ -0,0 +1,29 @@
+/* Copyright (C) 2008-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_TIMERFD_H
+# error "Never use <bits/timerfd.h> directly; include <sys/timerfd.h> instead."
+#endif
+
+/* Bits to be set in the FLAGS parameter of `timerfd_create'. */
+enum
+ {
+ TFD_CLOEXEC = 02000000,
+#define TFD_CLOEXEC TFD_CLOEXEC
+ TFD_NONBLOCK = 00000200
+#define TFD_NONBLOCK TFD_NONBLOCK
+ };
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/bits/types/stack_t.h b/REORG.TODO/sysdeps/unix/sysv/linux/mips/bits/types/stack_t.h
new file mode 100644
index 0000000000..b9635ad18a
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/bits/types/stack_t.h
@@ -0,0 +1,33 @@
+/* Define stack_t. MIPS Linux version.
+ Copyright (C) 1998-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef __stack_t_defined
+#define __stack_t_defined 1
+
+#define __need_size_t
+#include <stddef.h>
+
+/* Structure describing a signal stack. */
+typedef struct
+ {
+ void *ss_sp;
+ size_t ss_size;
+ int ss_flags;
+ } stack_t;
+
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/brk.c b/REORG.TODO/sysdeps/unix/sysv/linux/mips/brk.c
new file mode 100644
index 0000000000..f91becffac
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/brk.c
@@ -0,0 +1,47 @@
+/* brk system call for Linux/MIPS.
+ 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 <errno.h>
+#include <unistd.h>
+#include <sysdep.h>
+
+void *__curbrk = 0;
+
+/* Old braindamage in GCC's crtstuff.c requires this symbol in an attempt
+ to work around different old braindamage in the old Linux/x86 ELF
+ dynamic linker. Sigh. */
+weak_alias (__curbrk, ___brk_addr)
+
+int
+__brk (void *addr)
+{
+ INTERNAL_SYSCALL_DECL (err);
+ void *newbrk;
+
+ newbrk = (void *) INTERNAL_SYSCALL (brk, err, 1, addr);
+ __curbrk = newbrk;
+
+ if (newbrk < addr)
+ {
+ __set_errno (ENOMEM);
+ return -1;
+ }
+
+ return 0;
+}
+weak_alias (__brk, brk)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/clone.S b/REORG.TODO/sysdeps/unix/sysv/linux/mips/clone.S
new file mode 100644
index 0000000000..8b79457b1f
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/clone.S
@@ -0,0 +1,152 @@
+/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ralf Baechle <ralf@linux-mips.org>, 1996.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+/* clone() is even more special than fork() as it mucks with stacks
+ and invokes a function in the right context after its all over. */
+
+#include <sys/asm.h>
+#include <sysdep.h>
+#define _ERRNO_H 1
+#include <bits/errno.h>
+#include <tls.h>
+
+#define CLONE_VM 0x00000100
+#define CLONE_THREAD 0x00010000
+
+/* int clone(int (*fn)(void *arg), void *child_stack, int flags, void *arg,
+ void *parent_tidptr, void *tls, void *child_tidptr) */
+
+ .text
+ .set nomips16
+#if _MIPS_SIM == _ABIO32
+# define EXTRA_LOCALS 1
+#else
+# define EXTRA_LOCALS 0
+#endif
+LOCALSZ= 4
+FRAMESZ= (((NARGSAVE+LOCALSZ)*SZREG)+ALSZ)&ALMASK
+GPOFF= FRAMESZ-(1*SZREG)
+NESTED(__clone,4*SZREG,sp)
+#ifdef __PIC__
+ SETUP_GP
+#endif
+ PTR_SUBU sp, FRAMESZ
+ cfi_adjust_cfa_offset (FRAMESZ)
+ SETUP_GP64_STACK (GPOFF, __clone)
+#ifdef __PIC__
+ SAVE_GP (GPOFF)
+#endif
+#ifdef PROF
+ .set noat
+ move $1,ra
+ jal _mcount
+ .set at
+#endif
+
+
+ /* Sanity check arguments. */
+ li v0,EINVAL
+ beqz a0,L(error) /* No NULL function pointers. */
+ beqz a1,L(error) /* No NULL stack pointers. */
+
+ PTR_SUBU a1,32 /* Reserve argument save space. */
+ PTR_S a0,0(a1) /* Save function pointer. */
+ PTR_S a3,PTRSIZE(a1) /* Save argument pointer. */
+ LONG_S a2,(PTRSIZE*2)(a1) /* Save clone flags. */
+
+ move a0,a2
+
+ /* Shuffle in the last three arguments - arguments 5, 6, and 7 to
+ this function, but arguments 3, 4, and 5 to the syscall. */
+#if _MIPS_SIM == _ABIO32
+ PTR_L a2,(FRAMESZ+PTRSIZE+PTRSIZE+16)(sp)
+ PTR_S a2,16(sp)
+ PTR_L a2,(FRAMESZ+16)(sp)
+ PTR_L a3,(FRAMESZ+PTRSIZE+16)(sp)
+#else
+ move a2,a4
+ move a3,a5
+ move a4,a6
+#endif
+
+ /* Do the system call */
+ li v0,__NR_clone
+ cfi_endproc
+ syscall
+
+ bnez a3,L(error)
+ beqz v0,L(thread_start)
+
+ /* Successful return from the parent */
+ cfi_startproc
+ cfi_adjust_cfa_offset (FRAMESZ)
+ SETUP_GP64_STACK_CFI (GPOFF)
+ cfi_remember_state
+ RESTORE_GP64_STACK
+ PTR_ADDU sp, FRAMESZ
+ cfi_adjust_cfa_offset (-FRAMESZ)
+ ret
+
+ /* Something bad happened -- no child created */
+L(error):
+ cfi_restore_state
+#ifdef __PIC__
+ PTR_LA t9,__syscall_error
+ RESTORE_GP64_STACK
+ PTR_ADDU sp, FRAMESZ
+ cfi_adjust_cfa_offset (-FRAMESZ)
+ jr t9
+#else
+ RESTORE_GP64_STACK
+ PTR_ADDU sp, FRAMESZ
+ cfi_adjust_cfa_offset (-FRAMESZ)
+ j __syscall_error
+#endif
+ END(__clone)
+
+/* Load up the arguments to the function. Put this block of code in
+ its own function so that we can terminate the stack trace with our
+ debug info. */
+
+ENTRY(__thread_start)
+L(thread_start):
+ cfi_undefined ($31)
+ /* cp is already loaded. */
+ SAVE_GP (GPOFF)
+ /* The stackframe has been created on entry of clone(). */
+
+ /* Restore the arg for user's function. */
+ PTR_L t9,0(sp) /* Function pointer. */
+ PTR_L a0,PTRSIZE(sp) /* Argument pointer. */
+
+ /* Call the user's function. */
+ jal t9
+
+ /* Call _exit rather than doing it inline for breakpoint purposes. */
+ move a0,v0
+#ifdef __PIC__
+ PTR_LA t9,_exit
+ jalr t9
+#else
+ jal _exit
+#endif
+
+ END(__thread_start)
+
+libc_hidden_def (__clone)
+weak_alias (__clone, clone)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/configure b/REORG.TODO/sysdeps/unix/sysv/linux/mips/configure
new file mode 100644
index 0000000000..a5513fad48
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/configure
@@ -0,0 +1,477 @@
+# This file is generated from configure.ac by Autoconf. DO NOT EDIT!
+ # Local configure fragment for sysdeps/unix/sysv/linux/mips.
+
+
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+ #if (_MIPS_SIM != _ABIO32)
+ #error Not O32 ABI
+ #endif
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ libc_mips_abi=o32
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+ #if (_MIPS_SIM != _ABIN32)
+ #error Not N32 ABI
+ #endif
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ libc_mips_abi=n32
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+ #if (_MIPS_SIM != _ABI64)
+ #error Not 64 ABI
+ #endif
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ libc_mips_abi=n64
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+if test -z "$libc_mips_abi"; then
+ as_fn_error $? "could not determine what ABI the compiler is using" "$LINENO" 5
+fi
+
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+ #if !defined(__mips_soft_float)
+ #error Not soft ABI
+ #endif
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ libc_mips_float=soft
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+ #if !defined(__mips_hard_float)
+ #error Not hard ABI
+ #endif
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ libc_mips_float=hard
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+if test -z "$libc_mips_float"; then
+ as_fn_error $? "could not determine if compiler is using hard or soft floating point ABI" "$LINENO" 5
+fi
+
+libc_mips_o32_fp=
+libc_cv_mips_fp64=
+libc_cv_mips_modd_spreg=
+
+if test x"$libc_mips_abi" = xo32 -a x"$libc_mips_float" = xhard; then
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+ #if !defined(__mips_fpr)
+ #error Missing FPR sizes
+ #endif
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+ #if (__mips_fpr != 32)
+ #error Not FP32
+ #endif
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ libc_mips_o32_fp=32
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+ #if (__mips_fpr != 0) || !defined(_MIPS_SPFPSET) || (_MIPS_SPFPSET != 16)
+ #error Not FPXX (without odd single-precision registers)
+ #endif
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ libc_mips_o32_fp=xx
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+ #if (__mips_fpr != 0)
+ #error Not FPXX (with odd single precision registers)
+ #endif
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ libc_mips_o32_fp=xxo
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+ #if (__mips_fpr != 64) || !defined(_MIPS_SPFPSET) || (_MIPS_SPFPSET != 16)
+ #error Not FP64A
+ #endif
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ libc_mips_o32_fp=64a
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+ #if (__mips_fpr != 64)
+ #error Not FP64
+ #endif
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ libc_mips_o32_fp=64
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+ if { ac_try='${CC-cc} -mfp64 -xc /dev/null -S -o /dev/null'
+ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; }; then :
+ libc_cv_mips_fp64=yes
+else
+ libc_cv_mips_fp64=no
+fi
+ if { ac_try='${CC-cc} -Werror -modd-spreg -xc /dev/null -S -o /dev/null'
+ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; }; then :
+ libc_cv_mips_modd_spreg=yes
+else
+ libc_cv_mips_modd_spreg=no
+fi
+fi
+config_vars="$config_vars
+o32-fpabi = ${libc_mips_o32_fp}"
+config_vars="$config_vars
+has-mpf64 = ${libc_cv_mips_fp64}"
+config_vars="$config_vars
+has-modd-spreg = ${libc_cv_mips_modd_spreg}"
+
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+ #include <linux/prctl.h>
+ #if !defined(PR_GET_FP_MODE) || !defined(PR_SET_FP_MODE)
+ #error New prctl support for setting FP modes not found
+ #endif
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ libc_mips_mode_switch=yes
+else
+ libc_mips_mode_switch=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+config_vars="$config_vars
+mips-mode-switch = ${libc_mips_mode_switch}"
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
+$as_echo_n "checking for grep that handles long lines and -e... " >&6; }
+if ${ac_cv_path_GREP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -z "$GREP"; then
+ ac_path_GREP_found=false
+ # Loop through the user's path and test for each of PROGNAME-LIST
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_prog in grep ggrep; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
+ as_fn_executable_p "$ac_path_GREP" || continue
+# Check for GNU ac_path_GREP and select it if it is found.
+ # Check for GNU $ac_path_GREP
+case `"$ac_path_GREP" --version 2>&1` in
+*GNU*)
+ ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;
+*)
+ ac_count=0
+ $as_echo_n 0123456789 >"conftest.in"
+ while :
+ do
+ cat "conftest.in" "conftest.in" >"conftest.tmp"
+ mv "conftest.tmp" "conftest.in"
+ cp "conftest.in" "conftest.nl"
+ $as_echo 'GREP' >> "conftest.nl"
+ "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
+ diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+ as_fn_arith $ac_count + 1 && ac_count=$as_val
+ if test $ac_count -gt ${ac_path_GREP_max-0}; then
+ # Best one so far, save it but keep looking for a better one
+ ac_cv_path_GREP="$ac_path_GREP"
+ ac_path_GREP_max=$ac_count
+ fi
+ # 10*(2^10) chars as input seems more than enough
+ test $ac_count -gt 10 && break
+ done
+ rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+ $ac_path_GREP_found && break 3
+ done
+ done
+ done
+IFS=$as_save_IFS
+ if test -z "$ac_cv_path_GREP"; then
+ as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+ fi
+else
+ ac_cv_path_GREP=$GREP
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5
+$as_echo "$ac_cv_path_GREP" >&6; }
+ GREP="$ac_cv_path_GREP"
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
+$as_echo_n "checking for egrep... " >&6; }
+if ${ac_cv_path_EGREP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
+ then ac_cv_path_EGREP="$GREP -E"
+ else
+ if test -z "$EGREP"; then
+ ac_path_EGREP_found=false
+ # Loop through the user's path and test for each of PROGNAME-LIST
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_prog in egrep; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
+ as_fn_executable_p "$ac_path_EGREP" || continue
+# Check for GNU ac_path_EGREP and select it if it is found.
+ # Check for GNU $ac_path_EGREP
+case `"$ac_path_EGREP" --version 2>&1` in
+*GNU*)
+ ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;;
+*)
+ ac_count=0
+ $as_echo_n 0123456789 >"conftest.in"
+ while :
+ do
+ cat "conftest.in" "conftest.in" >"conftest.tmp"
+ mv "conftest.tmp" "conftest.in"
+ cp "conftest.in" "conftest.nl"
+ $as_echo 'EGREP' >> "conftest.nl"
+ "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
+ diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+ as_fn_arith $ac_count + 1 && ac_count=$as_val
+ if test $ac_count -gt ${ac_path_EGREP_max-0}; then
+ # Best one so far, save it but keep looking for a better one
+ ac_cv_path_EGREP="$ac_path_EGREP"
+ ac_path_EGREP_max=$ac_count
+ fi
+ # 10*(2^10) chars as input seems more than enough
+ test $ac_count -gt 10 && break
+ done
+ rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+ $ac_path_EGREP_found && break 3
+ done
+ done
+ done
+IFS=$as_save_IFS
+ if test -z "$ac_cv_path_EGREP"; then
+ as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+ fi
+else
+ ac_cv_path_EGREP=$EGREP
+fi
+
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5
+$as_echo "$ac_cv_path_EGREP" >&6; }
+ EGREP="$ac_cv_path_EGREP"
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler is using the 2008 NaN encoding" >&5
+$as_echo_n "checking whether the compiler is using the 2008 NaN encoding... " >&6; }
+if ${libc_cv_mips_nan2008+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+dnl
+#ifdef __mips_nan2008
+yes
+#endif
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "yes" >/dev/null 2>&1; then :
+ libc_cv_mips_nan2008=yes
+else
+ libc_cv_mips_nan2008=no
+fi
+rm -f conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_mips_nan2008" >&5
+$as_echo "$libc_cv_mips_nan2008" >&6; }
+
+libc_mips_nan=
+if test x"$libc_cv_mips_nan2008" = xyes; then
+ libc_mips_nan=_2008
+fi
+
+config_vars="$config_vars
+default-abi = ${libc_mips_abi}_${libc_mips_float}${libc_mips_nan}"
+
+case $machine in
+mips/mips64/n64/*)
+ test -n "$libc_cv_slibdir" ||
+case "$prefix" in
+/usr | /usr/)
+ libc_cv_slibdir=/lib64
+ libc_cv_rtlddir=/lib64
+ if test "$libdir" = '${exec_prefix}/lib'; then
+ libdir='${exec_prefix}/lib64';
+ # Locale data can be shared between 32-bit and 64-bit libraries.
+ libc_cv_complocaledir='${exec_prefix}/lib/locale'
+ fi
+ ;;
+esac
+ ;;
+mips/mips64/n32/*)
+ test -n "$libc_cv_slibdir" ||
+case "$prefix" in
+/usr | /usr/)
+ libc_cv_slibdir=/lib32
+ libc_cv_rtlddir=/lib32
+ if test "$libdir" = '${exec_prefix}/lib'; then
+ libdir='${exec_prefix}/lib32';
+ # Locale data can be shared between 32-bit and 64-bit libraries.
+ libc_cv_complocaledir='${exec_prefix}/lib/locale'
+ fi
+ ;;
+esac
+ ;;
+esac
+
+libc_cv_gcc_unwind_find_fde=yes
+
+if test -z "$arch_minimum_kernel"; then
+ if test x$libc_cv_mips_nan2008 = xyes; then
+ arch_minimum_kernel=4.5.0
+ fi
+fi
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/configure.ac b/REORG.TODO/sysdeps/unix/sysv/linux/mips/configure.ac
new file mode 100644
index 0000000000..9147aa4582
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/configure.ac
@@ -0,0 +1,136 @@
+sinclude(./aclocal.m4)dnl Autoconf lossage
+GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
+# Local configure fragment for sysdeps/unix/sysv/linux/mips.
+
+AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM([
+ #if (_MIPS_SIM != _ABIO32)
+ #error Not O32 ABI
+ #endif])],
+ [libc_mips_abi=o32],
+ [AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM([
+ #if (_MIPS_SIM != _ABIN32)
+ #error Not N32 ABI
+ #endif])],
+ [libc_mips_abi=n32],
+ [AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM([
+ #if (_MIPS_SIM != _ABI64)
+ #error Not 64 ABI
+ #endif])],
+ [libc_mips_abi=n64],
+ [])])])
+
+if test -z "$libc_mips_abi"; then
+ AC_MSG_ERROR([could not determine what ABI the compiler is using])
+fi
+
+AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM([
+ #if !defined(__mips_soft_float)
+ #error Not soft ABI
+ #endif])],
+ [libc_mips_float=soft],
+ [AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM([
+ #if !defined(__mips_hard_float)
+ #error Not hard ABI
+ #endif])],
+ [libc_mips_float=hard],
+ [])])
+
+if test -z "$libc_mips_float"; then
+ AC_MSG_ERROR([could not determine if compiler is using hard or soft floating point ABI])
+fi
+
+libc_mips_o32_fp=
+libc_cv_mips_fp64=
+libc_cv_mips_modd_spreg=
+
+if test x"$libc_mips_abi" = xo32 -a x"$libc_mips_float" = xhard; then
+ AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM([
+ #if !defined(__mips_fpr)
+ #error Missing FPR sizes
+ #endif])],
+ [AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM([
+ #if (__mips_fpr != 32)
+ #error Not FP32
+ #endif])],
+ [libc_mips_o32_fp=32],
+ [AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM([
+ #if (__mips_fpr != 0) || !defined(_MIPS_SPFPSET) || (_MIPS_SPFPSET != 16)
+ #error Not FPXX (without odd single-precision registers)
+ #endif])],
+ [libc_mips_o32_fp=xx],
+ [AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM([
+ #if (__mips_fpr != 0)
+ #error Not FPXX (with odd single precision registers)
+ #endif])],
+ [libc_mips_o32_fp=xxo],
+ [AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM([
+ #if (__mips_fpr != 64) || !defined(_MIPS_SPFPSET) || (_MIPS_SPFPSET != 16)
+ #error Not FP64A
+ #endif])],
+ [libc_mips_o32_fp=64a],
+ [AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM([
+ #if (__mips_fpr != 64)
+ #error Not FP64
+ #endif])],
+ [libc_mips_o32_fp=64],
+ [])])])])])],
+ [])
+
+ LIBC_TRY_CC_OPTION([-mfp64], [libc_cv_mips_fp64=yes], [libc_cv_mips_fp64=no])
+ LIBC_TRY_CC_OPTION([-Werror -modd-spreg], [libc_cv_mips_modd_spreg=yes], [libc_cv_mips_modd_spreg=no])
+fi
+LIBC_CONFIG_VAR([o32-fpabi],[${libc_mips_o32_fp}])
+LIBC_CONFIG_VAR([has-mpf64],[${libc_cv_mips_fp64}])
+LIBC_CONFIG_VAR([has-modd-spreg],[${libc_cv_mips_modd_spreg}])
+
+AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM([
+ #include <linux/prctl.h>
+ #if !defined(PR_GET_FP_MODE) || !defined(PR_SET_FP_MODE)
+ #error New prctl support for setting FP modes not found
+ #endif])],
+ [libc_mips_mode_switch=yes],
+ [libc_mips_mode_switch=no])
+LIBC_CONFIG_VAR([mips-mode-switch],[${libc_mips_mode_switch}])
+
+AC_CACHE_CHECK([whether the compiler is using the 2008 NaN encoding],
+ libc_cv_mips_nan2008, [AC_EGREP_CPP(yes, [dnl
+#ifdef __mips_nan2008
+yes
+#endif], libc_cv_mips_nan2008=yes, libc_cv_mips_nan2008=no)])
+
+libc_mips_nan=
+if test x"$libc_cv_mips_nan2008" = xyes; then
+ libc_mips_nan=_2008
+fi
+
+LIBC_CONFIG_VAR([default-abi],
+ [${libc_mips_abi}_${libc_mips_float}${libc_mips_nan}])
+
+case $machine in
+mips/mips64/n64/*)
+ LIBC_SLIBDIR_RTLDDIR([lib64], [lib64])
+ ;;
+mips/mips64/n32/*)
+ LIBC_SLIBDIR_RTLDDIR([lib32], [lib32])
+ ;;
+esac
+
+libc_cv_gcc_unwind_find_fde=yes
+
+if test -z "$arch_minimum_kernel"; then
+ if test x$libc_cv_mips_nan2008 = xyes; then
+ arch_minimum_kernel=4.5.0
+ fi
+fi
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/dl-cache.h b/REORG.TODO/sysdeps/unix/sysv/linux/mips/dl-cache.h
new file mode 100644
index 0000000000..573a5dcb9f
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/dl-cache.h
@@ -0,0 +1,72 @@
+/* Support for reading /etc/ld.so.cache files written by Linux ldconfig.
+ Copyright (C) 2003-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <ldconfig.h>
+
+#if ((defined __mips_nan2008 && !defined HAVE_MIPS_NAN2008) \
+ || (!defined __mips_nan2008 && defined HAVE_MIPS_NAN2008))
+# error "Configuration inconsistency: __mips_nan2008 != HAVE_MIPS_NAN2008, overridden CFLAGS?"
+#endif
+
+/* Redefine the cache ID for new ABIs and 2008 NaN support; legacy o32
+ keeps using the generic check. */
+#ifdef __mips_nan2008
+# if _MIPS_SIM == _ABIO32
+# define _DL_CACHE_DEFAULT_ID (FLAG_MIPS_LIB32_NAN2008 | FLAG_ELF_LIBC6)
+# elif _MIPS_SIM == _ABI64
+# define _DL_CACHE_DEFAULT_ID (FLAG_MIPS64_LIBN64_NAN2008 | FLAG_ELF_LIBC6)
+# elif _MIPS_SIM == _ABIN32
+# define _DL_CACHE_DEFAULT_ID (FLAG_MIPS64_LIBN32_NAN2008 | FLAG_ELF_LIBC6)
+# endif
+#else
+# if _MIPS_SIM == _ABI64
+# define _DL_CACHE_DEFAULT_ID (FLAG_MIPS64_LIBN64 | FLAG_ELF_LIBC6)
+# elif _MIPS_SIM == _ABIN32
+# define _DL_CACHE_DEFAULT_ID (FLAG_MIPS64_LIBN32 | FLAG_ELF_LIBC6)
+# endif
+#endif
+
+#ifdef _DL_CACHE_DEFAULT_ID
+# define _dl_cache_check_flags(flags) \
+ ((flags) == _DL_CACHE_DEFAULT_ID)
+#endif
+
+#define add_system_dir(dir) \
+ do \
+ { \
+ size_t len = strlen (dir); \
+ char path[len + 3]; \
+ memcpy (path, dir, len + 1); \
+ if (len >= 6 \
+ && (! memcmp (path + len - 6, "/lib64", 6) \
+ || ! memcmp (path + len - 6, "/lib32", 6))) \
+ { \
+ len -= 2; \
+ path[len] = '\0'; \
+ } \
+ add_dir (path); \
+ if (len >= 4 && ! memcmp (path + len - 4, "/lib", 4)) \
+ { \
+ memcpy (path + len, "32", 3); \
+ add_dir (path); \
+ memcpy (path + len, "64", 3); \
+ add_dir (path); \
+ } \
+ } while (0)
+
+#include_next <dl-cache.h>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/dl-static.c b/REORG.TODO/sysdeps/unix/sysv/linux/mips/dl-static.c
new file mode 100644
index 0000000000..8884fadaf2
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/dl-static.c
@@ -0,0 +1,84 @@
+/* Variable initialization. MIPS version.
+ Copyright (C) 2001-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <ldsodefs.h>
+
+#ifdef SHARED
+
+void
+_dl_var_init (void *array[])
+{
+ /* It has to match "variables" below. */
+ enum
+ {
+ DL_PAGESIZE = 0
+ };
+
+ GLRO(dl_pagesize) = *((size_t *) array[DL_PAGESIZE]);
+}
+
+#else
+
+static void *variables[] =
+{
+ &GLRO(dl_pagesize)
+};
+
+static void
+_dl_unprotect_relro (struct link_map *l)
+{
+ ElfW(Addr) start = ((l->l_addr + l->l_relro_addr)
+ & ~(GLRO(dl_pagesize) - 1));
+ ElfW(Addr) end = ((l->l_addr + l->l_relro_addr + l->l_relro_size)
+ & ~(GLRO(dl_pagesize) - 1));
+
+ if (start != end)
+ __mprotect ((void *) start, end - start, PROT_READ | PROT_WRITE);
+}
+
+void
+_dl_static_init (struct link_map *l)
+{
+ struct link_map *rtld_map = l;
+ struct r_scope_elem **scope;
+ const ElfW(Sym) *ref = NULL;
+ lookup_t loadbase;
+ void (*f) (void *[]);
+ size_t i;
+
+ loadbase = _dl_lookup_symbol_x ("_dl_var_init", l, &ref, l->l_local_scope,
+ NULL, 0, 1, NULL);
+
+ for (scope = l->l_local_scope; *scope != NULL; scope++)
+ for (i = 0; i < (*scope)->r_nlist; i++)
+ if ((*scope)->r_list[i] == loadbase)
+ {
+ rtld_map = (*scope)->r_list[i];
+ break;
+ }
+
+ if (ref != NULL)
+ {
+ f = (void (*) (void *[])) DL_SYMBOL_ADDRESS (loadbase, ref);
+ _dl_unprotect_relro (rtld_map);
+ f (variables);
+ _dl_protect_relro (rtld_map);
+ }
+}
+
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/getcontext.S b/REORG.TODO/sysdeps/unix/sysv/linux/mips/getcontext.S
new file mode 100644
index 0000000000..64de2ebf2e
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/getcontext.S
@@ -0,0 +1,154 @@
+/* Save current context.
+ Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Maciej W. Rozycki <macro@codesourcery.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 <sys/asm.h>
+#include <sys/fpregdef.h>
+#include <sys/regdef.h>
+
+#include "ucontext_i.h"
+
+/* int getcontext (ucontext_t *ucp) */
+
+ .text
+ .set nomips16
+LOCALSZ = 0
+MASK = 0x00000000
+#ifdef __PIC__
+LOCALSZ = 1 /* save gp */
+# if _MIPS_SIM != _ABIO32
+MASK = 0x10000000
+# endif
+#endif
+FRAMESZ = ((LOCALSZ * SZREG) + ALSZ) & ALMASK
+GPOFF = FRAMESZ - (1 * SZREG)
+
+NESTED (__getcontext, FRAMESZ, ra)
+ .mask MASK, 0
+ .fmask 0x00000000, 0
+
+#ifdef __PIC__
+ SETUP_GP
+
+ move a2, sp
+# define _SP a2
+
+# if _MIPS_SIM != _ABIO32
+ move a3, gp
+# define _GP a3
+# endif
+
+ PTR_ADDIU sp, -FRAMESZ
+ cfi_adjust_cfa_offset (FRAMESZ)
+ SETUP_GP64_STACK (GPOFF, __getcontext)
+ SAVE_GP (GPOFF)
+
+#else /* ! __PIC__ */
+# define _SP sp
+# define _GP gp
+
+#endif /* ! __PIC__ */
+
+#ifdef PROF
+ .set noat
+ move AT, ra
+ jal _mcount
+ .set at
+#endif
+
+ /* Store a magic flag. */
+ li v1, 1
+ REG_S v1, (0 * SZREG + MCONTEXT_GREGS)(a0) /* zero */
+
+ REG_S s0, (16 * SZREG + MCONTEXT_GREGS)(a0)
+ REG_S s1, (17 * SZREG + MCONTEXT_GREGS)(a0)
+ REG_S s2, (18 * SZREG + MCONTEXT_GREGS)(a0)
+ REG_S s3, (19 * SZREG + MCONTEXT_GREGS)(a0)
+ REG_S s4, (20 * SZREG + MCONTEXT_GREGS)(a0)
+ REG_S s5, (21 * SZREG + MCONTEXT_GREGS)(a0)
+ REG_S s6, (22 * SZREG + MCONTEXT_GREGS)(a0)
+ REG_S s7, (23 * SZREG + MCONTEXT_GREGS)(a0)
+#if ! defined (__PIC__) || _MIPS_SIM != _ABIO32
+ REG_S _GP, (28 * SZREG + MCONTEXT_GREGS)(a0)
+#endif
+ REG_S _SP, (29 * SZREG + MCONTEXT_GREGS)(a0)
+ REG_S fp, (30 * SZREG + MCONTEXT_GREGS)(a0)
+ REG_S ra, (31 * SZREG + MCONTEXT_GREGS)(a0)
+ REG_S ra, MCONTEXT_PC(a0)
+
+#ifdef __mips_hard_float
+# if _MIPS_SIM == _ABI64
+ s.d fs0, (24 * SZREG + MCONTEXT_FPREGS)(a0)
+ s.d fs1, (25 * SZREG + MCONTEXT_FPREGS)(a0)
+ s.d fs2, (26 * SZREG + MCONTEXT_FPREGS)(a0)
+ s.d fs3, (27 * SZREG + MCONTEXT_FPREGS)(a0)
+ s.d fs4, (28 * SZREG + MCONTEXT_FPREGS)(a0)
+ s.d fs5, (29 * SZREG + MCONTEXT_FPREGS)(a0)
+ s.d fs6, (30 * SZREG + MCONTEXT_FPREGS)(a0)
+ s.d fs7, (31 * SZREG + MCONTEXT_FPREGS)(a0)
+
+# else /* _MIPS_SIM != _ABI64 */
+ s.d fs0, (20 * SZREG + MCONTEXT_FPREGS)(a0)
+ s.d fs1, (22 * SZREG + MCONTEXT_FPREGS)(a0)
+ s.d fs2, (24 * SZREG + MCONTEXT_FPREGS)(a0)
+ s.d fs3, (26 * SZREG + MCONTEXT_FPREGS)(a0)
+ s.d fs4, (28 * SZREG + MCONTEXT_FPREGS)(a0)
+ s.d fs5, (30 * SZREG + MCONTEXT_FPREGS)(a0)
+
+# endif /* _MIPS_SIM != _ABI64 */
+
+ cfc1 v1, fcr31
+ sw v1, MCONTEXT_FPC_CSR(a0)
+#endif /* __mips_hard_float */
+
+/* rt_sigprocmask (SIG_BLOCK, NULL, &ucp->uc_sigmask, _NSIG8) */
+ li a3, _NSIG8
+ PTR_ADDU a2, a0, UCONTEXT_SIGMASK
+ move a1, zero
+ li a0, SIG_BLOCK
+
+ li v0, SYS_ify (rt_sigprocmask)
+ syscall
+ bnez a3, 99f
+ cfi_remember_state
+
+#ifdef __PIC__
+ RESTORE_GP64_STACK
+ PTR_ADDIU sp, FRAMESZ
+ cfi_adjust_cfa_offset (-FRAMESZ)
+#endif
+ move v0, zero
+ jr ra
+
+99:
+ cfi_restore_state
+#ifdef __PIC__
+ PTR_LA t9, JUMPTARGET (__syscall_error)
+ RESTORE_GP64_STACK
+ PTR_ADDIU sp, FRAMESZ
+ cfi_adjust_cfa_offset (-FRAMESZ)
+ jr t9
+
+#else /* ! __PIC__ */
+
+ j JUMPTARGET (__syscall_error)
+#endif /* ! __PIC__ */
+PSEUDO_END (__getcontext)
+
+weak_alias (__getcontext, getcontext)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/getmsg.c b/REORG.TODO/sysdeps/unix/sysv/linux/mips/getmsg.c
new file mode 100644
index 0000000000..3a1fa08525
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/getmsg.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/i386/getmsg.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/getrlimit64.c b/REORG.TODO/sysdeps/unix/sysv/linux/mips/getrlimit64.c
new file mode 100644
index 0000000000..5193722bbc
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/getrlimit64.c
@@ -0,0 +1,68 @@
+/* Copyright (C) 2013-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 <sgidefs.h>
+
+#if _MIPS_SIM == _ABIO32 || _MIPS_SIM == _ABIN32
+
+# include <shlib-compat.h>
+
+# define getrlimit64 __new_getrlimit64
+# include <sysdeps/unix/sysv/linux/getrlimit64.c>
+# undef getrlimit64
+
+versioned_symbol (libc, __getrlimit64, getrlimit64, GLIBC_2_19);
+strong_alias (__getrlimit64, __GI_getrlimit64)
+
+# if SHLIB_COMPAT (libc, GLIBC_2_2, GLIBC_2_19)
+
+/* RLIM64_INFINITY was supposed to be a glibc convention rather than
+ anything seen by the kernel, but it ended being passed to the kernel
+ through the prlimit64 syscall. Given that a lot of binaries with
+ the wrong constant value are in the wild, provide a wrapper function
+ fixing the value after the syscall. */
+
+# define OLD_RLIM64_INFINITY 0x7fffffffffffffffULL
+
+int
+attribute_compat_text_section
+__old_getrlimit64 (enum __rlimit_resource resource,
+ struct rlimit64 *rlimits)
+{
+ struct rlimit64 krlimits;
+
+ if (__getrlimit64 (resource, &krlimits) < 0)
+ return -1;
+
+ if (krlimits.rlim_cur == RLIM64_INFINITY)
+ rlimits->rlim_cur = OLD_RLIM64_INFINITY;
+ else
+ rlimits->rlim_cur = krlimits.rlim_cur;
+ if (krlimits.rlim_max == RLIM64_INFINITY)
+ rlimits->rlim_max = OLD_RLIM64_INFINITY;
+ else
+ rlimits->rlim_max = krlimits.rlim_max;
+
+ return 0;
+}
+
+compat_symbol (libc, __old_getrlimit64, getrlimit64, GLIBC_2_2);
+# endif
+
+#else /* !_ABI_O32 && !_ABI_N32 */
+# include <sysdeps/unix/sysv/linux/getrlimit64.c>
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/getsysstats.c b/REORG.TODO/sysdeps/unix/sysv/linux/mips/getsysstats.c
new file mode 100644
index 0000000000..625df807c2
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/getsysstats.c
@@ -0,0 +1,36 @@
+/* Determine various system internal values, Linux/MIPS version.
+ Copyright (C) 2001-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+
+/* We need to define a special parser for /proc/cpuinfo. */
+#define GET_NPROCS_PARSER(FD, BUFFER, CP, RE, BUFFER_END, RESULT) \
+ do \
+ { \
+ (RESULT) = 0; \
+ /* Read all lines and count the lines starting with the string \
+ "cpu model". We don't have to fear extremely long lines since \
+ the kernel will not generate them. 8192 bytes are really \
+ enough. */ \
+ char *l; \
+ while ((l = next_line (FD, BUFFER, &CP, &RE, BUFFER_END)) != NULL) \
+ if (strncmp (l, "cpu model", 9) == 0) \
+ ++(RESULT); \
+ } \
+ while (0)
+
+#include <sysdeps/unix/sysv/linux/getsysstats.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/init-first.c b/REORG.TODO/sysdeps/unix/sysv/linux/mips/init-first.c
new file mode 100644
index 0000000000..7892c0afde
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/init-first.c
@@ -0,0 +1,44 @@
+/* Initialization code run first thing by the ELF startup code.
+ Copyright (C) 2016-2017 Free Software Foundation, Inc.
+
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation; either version 2.1 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifdef SHARED
+# include <dl-vdso.h>
+# include <libc-vdso.h>
+
+int (*VDSO_SYMBOL(gettimeofday)) (struct timeval *, void *) attribute_hidden;
+int (*VDSO_SYMBOL(clock_gettime)) (clockid_t, struct timespec *);
+
+static inline void
+_libc_vdso_platform_setup (void)
+{
+ PREPARE_VERSION_KNOWN (linux26, LINUX_2_6);
+
+ void *p = _dl_vdso_vsym ("__vdso_gettimeofday", &linux26);
+ PTR_MANGLE (p);
+ VDSO_SYMBOL (gettimeofday) = p;
+
+ p = _dl_vdso_vsym ("__vdso_clock_gettime", &linux26);
+ PTR_MANGLE (p);
+ VDSO_SYMBOL (clock_gettime) = p;
+}
+
+# define VDSO_SETUP _libc_vdso_platform_setup
+#endif
+
+#include <csu/init-first.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/kernel-features.h b/REORG.TODO/sysdeps/unix/sysv/linux/mips/kernel-features.h
new file mode 100644
index 0000000000..d5d35afa4d
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/kernel-features.h
@@ -0,0 +1,49 @@
+/* Set flags signalling availability of kernel features based on given
+ kernel version number.
+ Copyright (C) 1999-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sgidefs.h>
+
+#include_next <kernel-features.h>
+
+/* The MIPS kernel does not support futex_atomic_cmpxchg_inatomic if
+ emulating LL/SC. */
+#if __mips == 1 || defined _MIPS_ARCH_R5900
+# undef __ASSUME_SET_ROBUST_LIST
+#endif
+
+/* Define this if your 32-bit syscall API requires 64-bit register
+ pairs to start with an even-number register. */
+#if _MIPS_SIM == _ABIO32
+# define __ASSUME_ALIGNED_REGISTER_PAIRS 1
+/* mips32 only supports ipc syscall. */
+# undef __ASSUME_DIRECT_SYSVIPC_SYSCALLS
+
+/* The o32 MIPS fadvise64 syscall behaves as fadvise64_64. */
+# define __ASSUME_FADVISE64_AS_64_64 1
+
+/* mips32 support wire-up network syscalls. */
+# define __ASSUME_RECV_SYSCALL 1
+# define __ASSUME_SEND_SYSCALL 1
+#endif
+
+/* Define that mips64-n32 is a ILP32 ABI to set the correct interface to
+ pass 64-bits values through syscalls. */
+#if _MIPS_SIM == _ABIN32
+# define __ASSUME_WORDSIZE64_ILP32 1
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/kernel_rt_sigframe.h b/REORG.TODO/sysdeps/unix/sysv/linux/mips/kernel_rt_sigframe.h
new file mode 100644
index 0000000000..e870b207de
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/kernel_rt_sigframe.h
@@ -0,0 +1,12 @@
+#include <stdint.h>
+
+/* Linux kernel RT signal frame. */
+typedef struct kernel_rt_sigframe
+ {
+ uint32_t rs_ass[4];
+ uint32_t rs_code[2];
+ siginfo_t rs_info;
+ struct ucontext rs_uc;
+ uint32_t rs_altcode[8] __attribute__ ((__aligned__ (1 << 7)));
+ }
+kernel_rt_sigframe_t;
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/kernel_sigaction.h b/REORG.TODO/sysdeps/unix/sysv/linux/mips/kernel_sigaction.h
new file mode 100644
index 0000000000..b6f52cc9c9
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/kernel_sigaction.h
@@ -0,0 +1,40 @@
+/* This is the sigaction structure from the Linux 2.1.24 kernel. */
+
+#include <sgidefs.h>
+
+#define HAVE_SA_RESTORER
+
+struct old_kernel_sigaction {
+ unsigned int sa_flags;
+ __sighandler_t k_sa_handler;
+ unsigned long sa_mask;
+ unsigned int __pad0[3]; /* reserved, keep size constant */
+
+ /* Abi says here follows reserved int[2] */
+ void (*sa_restorer)(void);
+#if (_MIPS_SZPTR < 64)
+ /*
+ * For 32 bit code we have to pad struct sigaction to get
+ * constant size for the ABI
+ */
+ int pad1[1]; /* reserved */
+#endif
+};
+
+
+#define _KERNEL_NSIG 128
+#define _KERNEL_NSIG_BPW _MIPS_SZLONG
+#define _KERNEL_NSIG_WORDS (_KERNEL_NSIG / _KERNEL_NSIG_BPW)
+
+typedef struct {
+ unsigned long sig[_KERNEL_NSIG_WORDS];
+} kernel_sigset_t;
+
+/* This is the sigaction structure from the Linux 2.1.68 kernel. */
+struct kernel_sigaction {
+ unsigned int sa_flags;
+ __sighandler_t k_sa_handler;
+ kernel_sigset_t sa_mask;
+ void (*sa_restorer)(void);
+ int s_resv[1]; /* reserved */
+};
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/kernel_stat.h b/REORG.TODO/sysdeps/unix/sysv/linux/mips/kernel_stat.h
new file mode 100644
index 0000000000..388df1bfff
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/kernel_stat.h
@@ -0,0 +1,60 @@
+#include <sgidefs.h>
+/* As tempting as it is to define XSTAT_IS_XSTAT64 for n64, the
+ userland data structures are not identical, because of different
+ padding. */
+/* Definition of `struct stat' used in the kernel. */
+#if _MIPS_SIM != _ABIO32
+struct kernel_stat
+ {
+ unsigned int st_dev;
+ unsigned int __pad1[3];
+ unsigned long long st_ino;
+ unsigned int st_mode;
+ unsigned int st_nlink;
+ int st_uid;
+ int st_gid;
+ unsigned int st_rdev;
+ unsigned int __pad2[3];
+ long long st_size;
+ unsigned int st_atime_sec;
+ unsigned int st_atime_nsec;
+ unsigned int st_mtime_sec;
+ unsigned int st_mtime_nsec;
+ unsigned int st_ctime_sec;
+ unsigned int st_ctime_nsec;
+ unsigned int st_blksize;
+ unsigned int __pad3;
+ unsigned long long st_blocks;
+ };
+#else
+struct kernel_stat
+ {
+ unsigned long int st_dev;
+ long int __pad1[3]; /* Reserved for network id */
+ unsigned long int st_ino;
+ unsigned long int st_mode;
+ unsigned long int st_nlink;
+ long int st_uid;
+ long int st_gid;
+ unsigned long int st_rdev;
+ long int __pad2[2];
+ long int st_size;
+ long int __pad3;
+ unsigned int st_atime_sec;
+ unsigned int st_atime_nsec;
+ unsigned int st_mtime_sec;
+ unsigned int st_mtime_nsec;
+ unsigned int st_ctime_sec;
+ unsigned int st_ctime_nsec;
+ long int st_blksize;
+ long int st_blocks;
+ char st_fstype[16]; /* Filesystem type name, unsupported */
+ long st_pad4[8];
+ /* Linux specific fields */
+ unsigned int st_flags;
+ unsigned int st_gen;
+ };
+#endif
+
+#define XSTAT_IS_XSTAT64 0
+#define STATFS_IS_STATFS64 0
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/kernel_termios.h b/REORG.TODO/sysdeps/unix/sysv/linux/mips/kernel_termios.h
new file mode 100644
index 0000000000..7a0cbaec8a
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/kernel_termios.h
@@ -0,0 +1,34 @@
+/* Copyright (C) 1997-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _KERNEL_TERMIOS_H
+#define _KERNEL_TERMIOS_H 1
+/* The following corresponds to the values from the Linux 2.1.24 kernel. */
+
+#define __KERNEL_NCCS 23
+
+struct __kernel_termios
+ {
+ tcflag_t c_iflag; /* input mode flags */
+ tcflag_t c_oflag; /* output mode flags */
+ tcflag_t c_cflag; /* control mode flags */
+ tcflag_t c_lflag; /* local mode flags */
+ cc_t c_line; /* line discipline */
+ cc_t c_cc[__KERNEL_NCCS]; /* control characters */
+ };
+
+#endif /* kernel_termios.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/ldsodefs.h b/REORG.TODO/sysdeps/unix/sysv/linux/mips/ldsodefs.h
new file mode 100644
index 0000000000..daf37321c2
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/ldsodefs.h
@@ -0,0 +1,40 @@
+/* Run-time dynamic linker data structures for loaded ELF shared objects. MIPS.
+ Copyright (C) 2001-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _LDSODEFS_H
+
+/* Get the real definitions. */
+#include_next <ldsodefs.h>
+
+/* Now define our stuff. */
+
+/* We need special support to initialize DSO loaded for statically linked
+ binaries. */
+extern void _dl_static_init (struct link_map *map);
+#undef DL_STATIC_INIT
+#define DL_STATIC_INIT(map) _dl_static_init (map)
+
+/* Allow ABIVERSION == 1, meaning PLTs and copy relocations are
+ required, with ELFOSABI_SYSV, and ELFOSABI_GNU. */
+#undef VALID_ELF_ABIVERSION
+#define VALID_ELF_ABIVERSION(osabi,ver) \
+ (ver == 0 \
+ || (osabi == ELFOSABI_SYSV && ver < 4) \
+ || (osabi == ELFOSABI_GNU && ver < LIBC_ABI_MAX))
+
+#endif /* ldsodefs.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/libc-abis b/REORG.TODO/sysdeps/unix/sysv/linux/mips/libc-abis
new file mode 100644
index 0000000000..14ff60322a
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/libc-abis
@@ -0,0 +1,16 @@
+# See the copy of this file in libc for detailed explanations. This
+# copy needs to include all libc definitions applicable to MIPS; only
+# one copy will be used.
+#
+# Feature Name Configuration
+# ------------ -------------
+#
+# MIPS PLTs.
+MIPS_PLT mips*-*-linux*
+#
+# Unique symbol definitions for C++.
+# Architecture independent, all ELF targets (== all targets)
+UNIQUE
+#
+# MIPS O32 FP64
+MIPS_O32_FP64 mips*-*-linux*
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/libc-vdso.h b/REORG.TODO/sysdeps/unix/sysv/linux/mips/libc-vdso.h
new file mode 100644
index 0000000000..9792f397ac
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/libc-vdso.h
@@ -0,0 +1,33 @@
+/* VDSO function pointer declarations.
+ Copyright (C) 2016-2017 Free Software Foundation, Inc.
+
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _LIBC_VDSO_H
+#define _LIBC_VDSO_H
+
+#ifdef SHARED
+
+# include <sysdep-vdso.h>
+
+extern int (*VDSO_SYMBOL(gettimeofday)) (struct timeval *, void *)
+ attribute_hidden;
+extern int (*VDSO_SYMBOL(clock_gettime)) (clockid_t, struct timespec *);
+
+#endif
+
+#endif /* _LIBC_VDSO_H */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/makecontext.S b/REORG.TODO/sysdeps/unix/sysv/linux/mips/makecontext.S
new file mode 100644
index 0000000000..5c3af04491
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/makecontext.S
@@ -0,0 +1,198 @@
+/* Modify saved context.
+ Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Maciej W. Rozycki <macro@codesourcery.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 <sys/asm.h>
+#include <sys/fpregdef.h>
+#include <sys/regdef.h>
+
+#include "ucontext_i.h"
+
+/* int makecontext (ucontext_t *ucp, (void *func) (), int argc, ...) */
+
+ .text
+ .set nomips16
+LOCALSZ = 0
+ARGSZ = 0
+MASK = 0x00000000
+#ifdef __PIC__
+LOCALSZ = 1 /* save gp */
+#endif
+#if _MIPS_SIM != _ABIO32
+ARGSZ = 5 /* save a3-a7 */
+# ifdef __PIC__
+MASK = 0x10000000
+# endif
+#endif
+FRAMESZ = (((ARGSZ + LOCALSZ) * SZREG) + ALSZ) & ALMASK
+GPOFF = FRAMESZ - ((ARGSZ + 1) * SZREG)
+#if _MIPS_SIM != _ABIO32
+A3OFF = FRAMESZ - (5 * SZREG) /* callee-allocated */
+A4OFF = FRAMESZ - (4 * SZREG)
+A5OFF = FRAMESZ - (3 * SZREG)
+A6OFF = FRAMESZ - (2 * SZREG)
+A7OFF = FRAMESZ - (1 * SZREG)
+NARGREGS = 8
+#else
+A3OFF = FRAMESZ + (3 * SZREG) /* caller-allocated */
+NARGREGS = 4
+#endif
+
+NESTED (__makecontext, FRAMESZ, ra)
+ .mask MASK, -(ARGSZ * SZREG)
+ .fmask 0x00000000, 0
+
+98:
+#ifdef __PIC__
+ SETUP_GP
+#endif
+
+ PTR_ADDIU sp, -FRAMESZ
+ cfi_adjust_cfa_offset (FRAMESZ)
+
+#ifdef __PIC__
+ SETUP_GP64_STACK (GPOFF, __makecontext)
+ SAVE_GP (GPOFF)
+#endif
+
+#ifdef PROF
+ .set noat
+ move AT, ra
+ jal _mcount
+ .set at
+#endif
+
+ /* Store args to be passed. */
+ REG_S a3, A3OFF(sp)
+#if _MIPS_SIM != _ABIO32
+ REG_S a4, A4OFF(sp)
+ REG_S a5, A5OFF(sp)
+ REG_S a6, A6OFF(sp)
+ REG_S a7, A7OFF(sp)
+#endif
+
+ /* Store a magic flag. */
+ li v1, 1
+ REG_S v1, (0 * SZREG + MCONTEXT_GREGS)(a0) /* zero */
+
+ /* Set up the stack. */
+ PTR_L t0, STACK_SP(a0)
+ PTR_L t2, STACK_SIZE(a0)
+ PTR_ADDIU t1, sp, A3OFF
+ PTR_ADDU t0, t2
+ and t0, ALMASK
+ blez a2, 2f /* no arguments */
+
+ /* Store register arguments. */
+ PTR_ADDIU t2, a0, MCONTEXT_GREGS + 4 * SZREG
+ move t3, zero
+0:
+ addiu t3, 1
+ REG_L v1, (t1)
+ PTR_ADDIU t1, SZREG
+ REG_S v1, (t2)
+ PTR_ADDIU t2, SZREG
+ bgeu t3, a2, 2f /* all done */
+ bltu t3, NARGREGS, 0b /* next */
+
+ /* Make room for stack arguments. */
+ PTR_SUBU t2, a2, t3
+ PTR_SLL t2, 3
+ PTR_SUBU t0, t2
+ and t0, ALMASK
+
+ /* Store stack arguments. */
+ move t2, t0
+1:
+ addiu t3, 1
+ REG_L v1, (t1)
+ PTR_ADDIU t1, SZREG
+ REG_S v1, (t2)
+ PTR_ADDIU t2, SZREG
+ bltu t3, a2, 1b /* next */
+
+2:
+#if _MIPS_SIM == _ABIO32
+ /* Make room for a0-a3 storage. */
+ PTR_ADDIU t0, -(NARGSAVE * SZREG)
+#endif
+ PTR_L v1, UCONTEXT_LINK(a0)
+#ifdef __PIC__
+ PTR_ADDIU t9, 99f - 98b
+#else
+ PTR_LA t9, 99f
+#endif
+ REG_S t0, (29 * SZREG + MCONTEXT_GREGS)(a0) /* sp */
+ REG_S v1, (16 * SZREG + MCONTEXT_GREGS)(a0) /* s0 */
+#ifdef __PIC__
+ REG_S gp, (17 * SZREG + MCONTEXT_GREGS)(a0) /* s1 */
+#endif
+ REG_S t9, (31 * SZREG + MCONTEXT_GREGS)(a0) /* ra */
+ REG_S a1, MCONTEXT_PC(a0)
+
+#ifdef __PIC__
+ RESTORE_GP64_STACK
+ PTR_ADDIU sp, FRAMESZ
+ cfi_adjust_cfa_offset (-FRAMESZ)
+#endif
+ jr ra
+
+ /* We need to terminate the FDE to stop unwinding if backtrace was
+ called within a context created by makecontext. */
+ cfi_endproc
+ nop
+
+99:
+#ifdef __PIC__
+ move gp, s1
+#endif
+ move a0, zero
+ beqz s0, 0f
+
+ /* setcontext (ucp) */
+ move a0, s0
+#ifdef __PIC__
+ PTR_LA t9, JUMPTARGET (__setcontext)
+ jalr t9
+# if _MIPS_SIM == _ABIO32
+ move gp, s1
+# endif
+#else
+ jal JUMPTARGET (__setcontext)
+#endif
+ move a0, v0
+
+0:
+ /* exit (a0) */
+#ifdef __PIC__
+ PTR_LA t9, HIDDEN_JUMPTARGET (exit)
+ jalr t9
+#else
+ jal HIDDEN_JUMPTARGET (exit)
+#endif
+
+ /* You don't exist, you won't feel anything. */
+1:
+ lb zero, (zero)
+ b 1b
+
+ cfi_startproc
+PSEUDO_END (__makecontext)
+
+weak_alias (__makecontext, makecontext)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/Makefile b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/Makefile
new file mode 100644
index 0000000000..9439d29dea
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/Makefile
@@ -0,0 +1,4 @@
+ifeq ($(subdir),conform)
+# For bugs 17786 and 21278.
+conformtest-xfail-conds += mips-o32-linux
+endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/Versions b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/Versions
new file mode 100644
index 0000000000..9621fb5cae
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/Versions
@@ -0,0 +1,6 @@
+libc {
+ GLIBC_2.19 {
+ getrlimit64;
+ setrlimit64;
+ }
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/c++-types.data b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/c++-types.data
new file mode 100644
index 0000000000..fde53bf337
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/c++-types.data
@@ -0,0 +1,67 @@
+blkcnt64_t:x
+blkcnt_t:l
+blksize_t:l
+caddr_t:Pc
+clockid_t:i
+clock_t:l
+daddr_t:i
+dev_t:y
+fd_mask:l
+fsblkcnt64_t:y
+fsblkcnt_t:m
+fsfilcnt64_t:y
+fsfilcnt_t:m
+fsid_t:8__fsid_t
+gid_t:j
+id_t:j
+ino64_t:y
+ino_t:m
+int16_t:s
+int32_t:i
+int64_t:x
+int8_t:a
+intptr_t:i
+key_t:i
+loff_t:x
+mode_t:j
+nlink_t:j
+off64_t:x
+off_t:l
+pid_t:i
+pthread_attr_t:14pthread_attr_t
+pthread_barrier_t:17pthread_barrier_t
+pthread_barrierattr_t:21pthread_barrierattr_t
+pthread_cond_t:14pthread_cond_t
+pthread_condattr_t:18pthread_condattr_t
+pthread_key_t:j
+pthread_mutex_t:15pthread_mutex_t
+pthread_mutexattr_t:19pthread_mutexattr_t
+pthread_once_t:i
+pthread_rwlock_t:16pthread_rwlock_t
+pthread_rwlockattr_t:20pthread_rwlockattr_t
+pthread_spinlock_t:i
+pthread_t:m
+quad_t:x
+register_t:i
+rlim64_t:y
+rlim_t:m
+sigset_t:10__sigset_t
+size_t:j
+socklen_t:j
+ssize_t:i
+suseconds_t:l
+time_t:l
+u_char:h
+uid_t:j
+uint:j
+u_int:j
+u_int16_t:t
+u_int32_t:j
+u_int64_t:y
+u_int8_t:h
+ulong:m
+u_long:m
+u_quad_t:y
+useconds_t:j
+ushort:t
+u_short:t
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/fcntl.c b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/fcntl.c
new file mode 100644
index 0000000000..ea951bc4f9
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/fcntl.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/i386/fcntl.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
new file mode 100644
index 0000000000..907ab331f2
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
@@ -0,0 +1,2256 @@
+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 __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 __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 __uflow 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 _flush_cache 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 cachectl F
+GLIBC_2.0 cacheflush 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 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 sysmips 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.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 ntp_gettimex F
+GLIBC_2.12 recvmmsg F
+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.18 __mips_fpu_getcw F
+GLIBC_2.18 __mips_fpu_setcw F
+GLIBC_2.19 GLIBC_2.19 A
+GLIBC_2.19 getrlimit64 F
+GLIBC_2.19 setrlimit64 F
+GLIBC_2.2 GLIBC_2.2 A
+GLIBC_2.2 _Exit F
+GLIBC_2.2 _IO_2_1_stderr_ D 0xa0
+GLIBC_2.2 _IO_2_1_stdin_ D 0xa0
+GLIBC_2.2 _IO_2_1_stdout_ D 0xa0
+GLIBC_2.2 _IO_adjust_wcolumn F
+GLIBC_2.2 _IO_do_write F
+GLIBC_2.2 _IO_fclose F
+GLIBC_2.2 _IO_fdopen F
+GLIBC_2.2 _IO_fgetpos F
+GLIBC_2.2 _IO_fgetpos64 F
+GLIBC_2.2 _IO_file_attach F
+GLIBC_2.2 _IO_file_close_it F
+GLIBC_2.2 _IO_file_finish F
+GLIBC_2.2 _IO_file_fopen F
+GLIBC_2.2 _IO_file_init F
+GLIBC_2.2 _IO_file_overflow F
+GLIBC_2.2 _IO_file_seekoff F
+GLIBC_2.2 _IO_file_setbuf F
+GLIBC_2.2 _IO_file_sync F
+GLIBC_2.2 _IO_file_underflow F
+GLIBC_2.2 _IO_file_write F
+GLIBC_2.2 _IO_file_xsputn F
+GLIBC_2.2 _IO_fopen 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_getline_info 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_popen F
+GLIBC_2.2 _IO_proc_close F
+GLIBC_2.2 _IO_proc_open 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 __asprintf F
+GLIBC_2.2 __assert F
+GLIBC_2.2 __backtrace F
+GLIBC_2.2 __backtrace_symbols F
+GLIBC_2.2 __backtrace_symbols_fd F
+GLIBC_2.2 __ctype32_tolower D 0x4
+GLIBC_2.2 __ctype32_toupper D 0x4
+GLIBC_2.2 __cxa_atexit F
+GLIBC_2.2 __cxa_finalize F
+GLIBC_2.2 __cyg_profile_func_enter F
+GLIBC_2.2 __cyg_profile_func_exit F
+GLIBC_2.2 __duplocale 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 __freelocale 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 __isalnum_l F
+GLIBC_2.2 __isalpha_l F
+GLIBC_2.2 __isascii_l F
+GLIBC_2.2 __isblank_l F
+GLIBC_2.2 __iscntrl_l F
+GLIBC_2.2 __isdigit_l F
+GLIBC_2.2 __isgraph_l F
+GLIBC_2.2 __islower_l F
+GLIBC_2.2 __isprint_l F
+GLIBC_2.2 __ispunct_l F
+GLIBC_2.2 __isspace_l F
+GLIBC_2.2 __isupper_l F
+GLIBC_2.2 __iswalnum_l F
+GLIBC_2.2 __iswalpha_l F
+GLIBC_2.2 __iswblank_l F
+GLIBC_2.2 __iswcntrl_l F
+GLIBC_2.2 __iswctype_l F
+GLIBC_2.2 __iswdigit_l F
+GLIBC_2.2 __iswgraph_l F
+GLIBC_2.2 __iswlower_l F
+GLIBC_2.2 __iswprint_l F
+GLIBC_2.2 __iswpunct_l F
+GLIBC_2.2 __iswspace_l F
+GLIBC_2.2 __iswupper_l F
+GLIBC_2.2 __iswxdigit_l F
+GLIBC_2.2 __isxdigit_l F
+GLIBC_2.2 __key_decryptsession_pk_LOCAL D 0x4
+GLIBC_2.2 __key_encryptsession_pk_LOCAL D 0x4
+GLIBC_2.2 __key_gendes_LOCAL D 0x4
+GLIBC_2.2 __libc_allocate_rtsig F
+GLIBC_2.2 __libc_current_sigrtmax F
+GLIBC_2.2 __libc_current_sigrtmin F
+GLIBC_2.2 __libc_freeres F
+GLIBC_2.2 __libc_sa_len F
+GLIBC_2.2 __lxstat64 F
+GLIBC_2.2 __mempcpy_small F
+GLIBC_2.2 __newlocale F
+GLIBC_2.2 __nl_langinfo_l F
+GLIBC_2.2 __open64 F
+GLIBC_2.2 __poll F
+GLIBC_2.2 __pread64 F
+GLIBC_2.2 __pwrite64 F
+GLIBC_2.2 __rawmemchr 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 __signbit F
+GLIBC_2.2 __signbitf F
+GLIBC_2.2 __sigsuspend F
+GLIBC_2.2 __statfs F
+GLIBC_2.2 __stpcpy_small F
+GLIBC_2.2 __strcasecmp_l F
+GLIBC_2.2 __strcasestr F
+GLIBC_2.2 __strcoll_l F
+GLIBC_2.2 __strcpy_small F
+GLIBC_2.2 __strcspn_c1 F
+GLIBC_2.2 __strcspn_c2 F
+GLIBC_2.2 __strcspn_c3 F
+GLIBC_2.2 __strfmon_l F
+GLIBC_2.2 __strncasecmp_l F
+GLIBC_2.2 __strndup F
+GLIBC_2.2 __strpbrk_c2 F
+GLIBC_2.2 __strpbrk_c3 F
+GLIBC_2.2 __strsep_1c F
+GLIBC_2.2 __strsep_2c F
+GLIBC_2.2 __strsep_3c F
+GLIBC_2.2 __strsep_g F
+GLIBC_2.2 __strspn_c1 F
+GLIBC_2.2 __strspn_c2 F
+GLIBC_2.2 __strspn_c3 F
+GLIBC_2.2 __strtod_l F
+GLIBC_2.2 __strtof_l F
+GLIBC_2.2 __strtok_r_1c F
+GLIBC_2.2 __strtol_l F
+GLIBC_2.2 __strtold_l F
+GLIBC_2.2 __strtoll_l F
+GLIBC_2.2 __strtoul_l F
+GLIBC_2.2 __strtoull_l F
+GLIBC_2.2 __strverscmp F
+GLIBC_2.2 __strxfrm_l F
+GLIBC_2.2 __sysconf F
+GLIBC_2.2 __sysctl F
+GLIBC_2.2 __toascii_l F
+GLIBC_2.2 __tolower_l F
+GLIBC_2.2 __toupper_l F
+GLIBC_2.2 __towctrans F
+GLIBC_2.2 __towctrans_l F
+GLIBC_2.2 __towlower_l F
+GLIBC_2.2 __towupper_l F
+GLIBC_2.2 __vfork F
+GLIBC_2.2 __wcscasecmp_l F
+GLIBC_2.2 __wcscoll_l F
+GLIBC_2.2 __wcsncasecmp_l F
+GLIBC_2.2 __wcstod_l F
+GLIBC_2.2 __wcstof_l F
+GLIBC_2.2 __wcstol_l F
+GLIBC_2.2 __wcstold_l F
+GLIBC_2.2 __wcstoll_l F
+GLIBC_2.2 __wcstoul_l F
+GLIBC_2.2 __wcstoull_l F
+GLIBC_2.2 __wcsxfrm_l F
+GLIBC_2.2 __wctrans_l F
+GLIBC_2.2 __wctype_l F
+GLIBC_2.2 __woverflow F
+GLIBC_2.2 __wuflow F
+GLIBC_2.2 __wunderflow F
+GLIBC_2.2 __xpg_sigpause F
+GLIBC_2.2 __xstat64 F
+GLIBC_2.2 _authenticate F
+GLIBC_2.2 _dl_mcount_wrapper F
+GLIBC_2.2 _dl_mcount_wrapper_check F
+GLIBC_2.2 _flushlbf F
+GLIBC_2.2 _res_hconf D 0x30
+GLIBC_2.2 _sys_errlist D 0x11b8
+GLIBC_2.2 _sys_nerr D 0x4
+GLIBC_2.2 _sys_siglist D 0x100
+GLIBC_2.2 _test_and_set F
+GLIBC_2.2 addseverity F
+GLIBC_2.2 alphasort64 F
+GLIBC_2.2 argp_err_exit_status D 0x4
+GLIBC_2.2 argp_error F
+GLIBC_2.2 argp_failure F
+GLIBC_2.2 argp_help F
+GLIBC_2.2 argp_parse F
+GLIBC_2.2 argp_program_bug_address D 0x4
+GLIBC_2.2 argp_program_version D 0x4
+GLIBC_2.2 argp_program_version_hook D 0x4
+GLIBC_2.2 argp_state_help F
+GLIBC_2.2 argp_usage F
+GLIBC_2.2 authdes_create F
+GLIBC_2.2 authdes_getucred F
+GLIBC_2.2 authdes_pk_create F
+GLIBC_2.2 backtrace F
+GLIBC_2.2 backtrace_symbols F
+GLIBC_2.2 backtrace_symbols_fd F
+GLIBC_2.2 bind_textdomain_codeset F
+GLIBC_2.2 capget F
+GLIBC_2.2 capset F
+GLIBC_2.2 cbc_crypt F
+GLIBC_2.2 clntunix_create F
+GLIBC_2.2 creat64 F
+GLIBC_2.2 dcngettext F
+GLIBC_2.2 des_setparity F
+GLIBC_2.2 dngettext F
+GLIBC_2.2 ecb_crypt F
+GLIBC_2.2 endutxent F
+GLIBC_2.2 fattach F
+GLIBC_2.2 fclose F
+GLIBC_2.2 fdetach F
+GLIBC_2.2 fdopen F
+GLIBC_2.2 ffsl F
+GLIBC_2.2 ffsll F
+GLIBC_2.2 fgetc_unlocked F
+GLIBC_2.2 fgetpos F
+GLIBC_2.2 fgetpos64 F
+GLIBC_2.2 fgets_unlocked 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 fmtmsg F
+GLIBC_2.2 fopen F
+GLIBC_2.2 fopen64 F
+GLIBC_2.2 fopencookie F
+GLIBC_2.2 fputs_unlocked F
+GLIBC_2.2 fputwc F
+GLIBC_2.2 fputwc_unlocked F
+GLIBC_2.2 fputws F
+GLIBC_2.2 fputws_unlocked F
+GLIBC_2.2 fread_unlocked F
+GLIBC_2.2 freopen64 F
+GLIBC_2.2 fseeko F
+GLIBC_2.2 fseeko64 F
+GLIBC_2.2 fsetpos F
+GLIBC_2.2 fsetpos64 F
+GLIBC_2.2 fstatfs64 F
+GLIBC_2.2 fstatvfs F
+GLIBC_2.2 fstatvfs64 F
+GLIBC_2.2 ftello F
+GLIBC_2.2 ftello64 F
+GLIBC_2.2 ftruncate64 F
+GLIBC_2.2 ftw64 F
+GLIBC_2.2 fwide F
+GLIBC_2.2 fwprintf F
+GLIBC_2.2 fwrite_unlocked F
+GLIBC_2.2 fwscanf F
+GLIBC_2.2 gai_strerror F
+GLIBC_2.2 getaliasbyname_r F
+GLIBC_2.2 getaliasent_r F
+GLIBC_2.2 getcontext F
+GLIBC_2.2 getdate F
+GLIBC_2.2 getdate_err D 0x4
+GLIBC_2.2 getdate_r F
+GLIBC_2.2 getdirentries64 F
+GLIBC_2.2 getgrent_r F
+GLIBC_2.2 getgrgid_r F
+GLIBC_2.2 getgrnam_r F
+GLIBC_2.2 gethostbyaddr_r F
+GLIBC_2.2 gethostbyname2_r F
+GLIBC_2.2 gethostbyname_r F
+GLIBC_2.2 gethostent_r F
+GLIBC_2.2 getloadavg F
+GLIBC_2.2 getmsg F
+GLIBC_2.2 getnameinfo F
+GLIBC_2.2 getnetbyaddr_r F
+GLIBC_2.2 getnetbyname_r F
+GLIBC_2.2 getnetent_r F
+GLIBC_2.2 getnetname F
+GLIBC_2.2 getpmsg F
+GLIBC_2.2 getprotobyname_r F
+GLIBC_2.2 getprotobynumber_r F
+GLIBC_2.2 getprotoent_r F
+GLIBC_2.2 getpt F
+GLIBC_2.2 getpwent_r F
+GLIBC_2.2 getpwnam_r F
+GLIBC_2.2 getpwuid_r F
+GLIBC_2.2 getrlimit64 F
+GLIBC_2.2 getrpcbyname_r F
+GLIBC_2.2 getrpcbynumber_r F
+GLIBC_2.2 getrpcent_r F
+GLIBC_2.2 getservbyname_r F
+GLIBC_2.2 getservbyport_r F
+GLIBC_2.2 getservent_r F
+GLIBC_2.2 getspent_r F
+GLIBC_2.2 getspnam_r F
+GLIBC_2.2 getutmp F
+GLIBC_2.2 getutmpx F
+GLIBC_2.2 getutxent F
+GLIBC_2.2 getutxid F
+GLIBC_2.2 getutxline F
+GLIBC_2.2 getwc F
+GLIBC_2.2 getwc_unlocked F
+GLIBC_2.2 getwchar F
+GLIBC_2.2 getwchar_unlocked F
+GLIBC_2.2 glob64 F
+GLIBC_2.2 globfree64 F
+GLIBC_2.2 gnu_get_libc_release F
+GLIBC_2.2 gnu_get_libc_version F
+GLIBC_2.2 grantpt F
+GLIBC_2.2 host2netname F
+GLIBC_2.2 iconv F
+GLIBC_2.2 iconv_close F
+GLIBC_2.2 iconv_open F
+GLIBC_2.2 if_freenameindex F
+GLIBC_2.2 if_indextoname F
+GLIBC_2.2 if_nameindex F
+GLIBC_2.2 if_nametoindex F
+GLIBC_2.2 imaxabs F
+GLIBC_2.2 imaxdiv F
+GLIBC_2.2 in6addr_any D 0x10
+GLIBC_2.2 in6addr_loopback D 0x10
+GLIBC_2.2 iruserok_af F
+GLIBC_2.2 isastream F
+GLIBC_2.2 iswblank F
+GLIBC_2.2 key_decryptsession F
+GLIBC_2.2 key_decryptsession_pk F
+GLIBC_2.2 key_encryptsession F
+GLIBC_2.2 key_encryptsession_pk F
+GLIBC_2.2 key_gendes F
+GLIBC_2.2 key_get_conv F
+GLIBC_2.2 key_secretkey_is_set F
+GLIBC_2.2 key_setnet F
+GLIBC_2.2 key_setsecret F
+GLIBC_2.2 localeconv F
+GLIBC_2.2 lockf64 F
+GLIBC_2.2 lseek64 F
+GLIBC_2.2 makecontext F
+GLIBC_2.2 mcheck_check_all F
+GLIBC_2.2 mcheck_pedantic F
+GLIBC_2.2 mempcpy F
+GLIBC_2.2 memrchr F
+GLIBC_2.2 mincore F
+GLIBC_2.2 mkdtemp F
+GLIBC_2.2 mkstemp64 F
+GLIBC_2.2 mmap64 F
+GLIBC_2.2 moncontrol F
+GLIBC_2.2 msgctl F
+GLIBC_2.2 netname2host F
+GLIBC_2.2 netname2user F
+GLIBC_2.2 nftw F
+GLIBC_2.2 nftw64 F
+GLIBC_2.2 ngettext F
+GLIBC_2.2 ntp_adjtime F
+GLIBC_2.2 ntp_gettime F
+GLIBC_2.2 open64 F
+GLIBC_2.2 passwd2des F
+GLIBC_2.2 pclose F
+GLIBC_2.2 popen F
+GLIBC_2.2 posix_fadvise F
+GLIBC_2.2 posix_fadvise64 F
+GLIBC_2.2 posix_fallocate F
+GLIBC_2.2 posix_fallocate64 F
+GLIBC_2.2 posix_madvise F
+GLIBC_2.2 posix_memalign F
+GLIBC_2.2 posix_spawn F
+GLIBC_2.2 posix_spawn_file_actions_addclose F
+GLIBC_2.2 posix_spawn_file_actions_adddup2 F
+GLIBC_2.2 posix_spawn_file_actions_addopen F
+GLIBC_2.2 posix_spawn_file_actions_destroy F
+GLIBC_2.2 posix_spawn_file_actions_init F
+GLIBC_2.2 posix_spawnattr_destroy F
+GLIBC_2.2 posix_spawnattr_getflags F
+GLIBC_2.2 posix_spawnattr_getpgroup F
+GLIBC_2.2 posix_spawnattr_getschedparam F
+GLIBC_2.2 posix_spawnattr_getschedpolicy F
+GLIBC_2.2 posix_spawnattr_getsigdefault F
+GLIBC_2.2 posix_spawnattr_getsigmask F
+GLIBC_2.2 posix_spawnattr_init F
+GLIBC_2.2 posix_spawnattr_setflags F
+GLIBC_2.2 posix_spawnattr_setpgroup F
+GLIBC_2.2 posix_spawnattr_setschedparam F
+GLIBC_2.2 posix_spawnattr_setschedpolicy F
+GLIBC_2.2 posix_spawnattr_setsigdefault F
+GLIBC_2.2 posix_spawnattr_setsigmask F
+GLIBC_2.2 posix_spawnp F
+GLIBC_2.2 pread F
+GLIBC_2.2 pread64 F
+GLIBC_2.2 printf_size F
+GLIBC_2.2 printf_size_info F
+GLIBC_2.2 pthread_attr_init F
+GLIBC_2.2 ptsname F
+GLIBC_2.2 ptsname_r F
+GLIBC_2.2 putgrent F
+GLIBC_2.2 putmsg F
+GLIBC_2.2 putpmsg F
+GLIBC_2.2 pututxline 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 pwrite F
+GLIBC_2.2 pwrite64 F
+GLIBC_2.2 rawmemchr 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 rtime F
+GLIBC_2.2 ruserok_af F
+GLIBC_2.2 scandir64 F
+GLIBC_2.2 semctl F
+GLIBC_2.2 sendfile F
+GLIBC_2.2 setrlimit64 F
+GLIBC_2.2 setutxent F
+GLIBC_2.2 shmctl F
+GLIBC_2.2 sighold F
+GLIBC_2.2 sigignore F
+GLIBC_2.2 sigqueue F
+GLIBC_2.2 sigrelse F
+GLIBC_2.2 sigset F
+GLIBC_2.2 sigtimedwait F
+GLIBC_2.2 sigwaitinfo F
+GLIBC_2.2 statfs64 F
+GLIBC_2.2 statvfs F
+GLIBC_2.2 statvfs64 F
+GLIBC_2.2 strcasestr F
+GLIBC_2.2 strchrnul F
+GLIBC_2.2 strtoimax F
+GLIBC_2.2 strtoumax F
+GLIBC_2.2 strverscmp 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 svcunix_create F
+GLIBC_2.2 svcunixfd_create F
+GLIBC_2.2 swapcontext F
+GLIBC_2.2 swprintf F
+GLIBC_2.2 swscanf F
+GLIBC_2.2 sys_errlist D 0x11b8
+GLIBC_2.2 sys_nerr D 0x4
+GLIBC_2.2 sys_sigabbrev D 0x100
+GLIBC_2.2 sys_siglist D 0x100
+GLIBC_2.2 sysv_signal F
+GLIBC_2.2 tcgetsid F
+GLIBC_2.2 tdestroy F
+GLIBC_2.2 tmpfile F
+GLIBC_2.2 tmpfile64 F
+GLIBC_2.2 truncate64 F
+GLIBC_2.2 umount2 F
+GLIBC_2.2 ungetwc F
+GLIBC_2.2 unlockpt F
+GLIBC_2.2 updwtmpx F
+GLIBC_2.2 user2netname F
+GLIBC_2.2 utmpxname F
+GLIBC_2.2 versionsort 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 waitid F
+GLIBC_2.2 wcscasecmp F
+GLIBC_2.2 wcschrnul F
+GLIBC_2.2 wcsftime F
+GLIBC_2.2 wcsncasecmp F
+GLIBC_2.2 wcsnlen F
+GLIBC_2.2 wcstoimax F
+GLIBC_2.2 wcstoll F
+GLIBC_2.2 wcstoull F
+GLIBC_2.2 wcstoumax F
+GLIBC_2.2 wcswcs F
+GLIBC_2.2 wmempcpy F
+GLIBC_2.2 wordexp F
+GLIBC_2.2 wordfree F
+GLIBC_2.2 wprintf F
+GLIBC_2.2 wscanf F
+GLIBC_2.2 xdecrypt F
+GLIBC_2.2 xdr_authdes_cred F
+GLIBC_2.2 xdr_authdes_verf F
+GLIBC_2.2 xdr_getcredres F
+GLIBC_2.2 xdr_hyper F
+GLIBC_2.2 xdr_int16_t F
+GLIBC_2.2 xdr_int32_t F
+GLIBC_2.2 xdr_int64_t F
+GLIBC_2.2 xdr_int8_t F
+GLIBC_2.2 xdr_longlong_t F
+GLIBC_2.2 xdr_netnamestr F
+GLIBC_2.2 xdr_sizeof F
+GLIBC_2.2 xdr_u_hyper F
+GLIBC_2.2 xdr_u_longlong_t F
+GLIBC_2.2 xdr_uint16_t F
+GLIBC_2.2 xdr_uint32_t F
+GLIBC_2.2 xdr_uint64_t F
+GLIBC_2.2 xdr_uint8_t F
+GLIBC_2.2 xdr_unixcred 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 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 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 0x200
+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 0x200
+GLIBC_2.3.3 sys_siglist D 0x200
+GLIBC_2.3.4 GLIBC_2.3.4 A
+GLIBC_2.3.4 __chk_fail F
+GLIBC_2.3.4 __fprintf_chk F
+GLIBC_2.3.4 __gets_chk F
+GLIBC_2.3.4 __memcpy_chk F
+GLIBC_2.3.4 __memmove_chk F
+GLIBC_2.3.4 __mempcpy_chk F
+GLIBC_2.3.4 __memset_chk F
+GLIBC_2.3.4 __printf_chk F
+GLIBC_2.3.4 __snprintf_chk F
+GLIBC_2.3.4 __sprintf_chk F
+GLIBC_2.3.4 __stpcpy_chk F
+GLIBC_2.3.4 __strcat_chk F
+GLIBC_2.3.4 __strcpy_chk F
+GLIBC_2.3.4 __strncat_chk F
+GLIBC_2.3.4 __strncpy_chk F
+GLIBC_2.3.4 __vfprintf_chk F
+GLIBC_2.3.4 __vprintf_chk F
+GLIBC_2.3.4 __vsnprintf_chk F
+GLIBC_2.3.4 __vsprintf_chk F
+GLIBC_2.3.4 __xpg_strerror_r F
+GLIBC_2.3.4 getipv4sourcefilter F
+GLIBC_2.3.4 getsourcefilter F
+GLIBC_2.3.4 regexec F
+GLIBC_2.3.4 sched_getaffinity F
+GLIBC_2.3.4 sched_setaffinity F
+GLIBC_2.3.4 setipv4sourcefilter F
+GLIBC_2.3.4 setsourcefilter F
+GLIBC_2.3.4 xdr_quad_t F
+GLIBC_2.3.4 xdr_u_quad_t F
+GLIBC_2.4 GLIBC_2.4 A
+GLIBC_2.4 __confstr_chk F
+GLIBC_2.4 __fgets_chk F
+GLIBC_2.4 __fgets_unlocked_chk F
+GLIBC_2.4 __fgetws_chk F
+GLIBC_2.4 __fgetws_unlocked_chk F
+GLIBC_2.4 __fwprintf_chk F
+GLIBC_2.4 __fxstatat F
+GLIBC_2.4 __fxstatat64 F
+GLIBC_2.4 __getcwd_chk F
+GLIBC_2.4 __getdomainname_chk F
+GLIBC_2.4 __getgroups_chk F
+GLIBC_2.4 __gethostname_chk F
+GLIBC_2.4 __getlogin_r_chk F
+GLIBC_2.4 __getwd_chk F
+GLIBC_2.4 __mbsnrtowcs_chk F
+GLIBC_2.4 __mbsrtowcs_chk F
+GLIBC_2.4 __mbstowcs_chk F
+GLIBC_2.4 __pread64_chk F
+GLIBC_2.4 __pread_chk F
+GLIBC_2.4 __ptsname_r_chk F
+GLIBC_2.4 __read_chk F
+GLIBC_2.4 __readlink_chk F
+GLIBC_2.4 __realpath_chk F
+GLIBC_2.4 __recv_chk F
+GLIBC_2.4 __recvfrom_chk F
+GLIBC_2.4 __stack_chk_fail F
+GLIBC_2.4 __stpncpy_chk F
+GLIBC_2.4 __swprintf_chk F
+GLIBC_2.4 __syslog_chk F
+GLIBC_2.4 __ttyname_r_chk F
+GLIBC_2.4 __vfwprintf_chk F
+GLIBC_2.4 __vswprintf_chk F
+GLIBC_2.4 __vsyslog_chk F
+GLIBC_2.4 __vwprintf_chk F
+GLIBC_2.4 __wcpcpy_chk F
+GLIBC_2.4 __wcpncpy_chk F
+GLIBC_2.4 __wcrtomb_chk F
+GLIBC_2.4 __wcscat_chk F
+GLIBC_2.4 __wcscpy_chk F
+GLIBC_2.4 __wcsncat_chk F
+GLIBC_2.4 __wcsncpy_chk F
+GLIBC_2.4 __wcsnrtombs_chk F
+GLIBC_2.4 __wcsrtombs_chk F
+GLIBC_2.4 __wcstombs_chk F
+GLIBC_2.4 __wctomb_chk F
+GLIBC_2.4 __wmemcpy_chk F
+GLIBC_2.4 __wmemmove_chk F
+GLIBC_2.4 __wmempcpy_chk F
+GLIBC_2.4 __wmemset_chk F
+GLIBC_2.4 __wprintf_chk F
+GLIBC_2.4 __xmknodat F
+GLIBC_2.4 eaccess F
+GLIBC_2.4 faccessat F
+GLIBC_2.4 fchmodat F
+GLIBC_2.4 fchownat F
+GLIBC_2.4 fdopendir F
+GLIBC_2.4 futimesat F
+GLIBC_2.4 inotify_add_watch F
+GLIBC_2.4 inotify_init F
+GLIBC_2.4 inotify_rm_watch F
+GLIBC_2.4 linkat F
+GLIBC_2.4 mkdirat F
+GLIBC_2.4 mkfifoat F
+GLIBC_2.4 open_wmemstream F
+GLIBC_2.4 openat F
+GLIBC_2.4 openat64 F
+GLIBC_2.4 ppoll F
+GLIBC_2.4 readlinkat F
+GLIBC_2.4 renameat F
+GLIBC_2.4 symlinkat F
+GLIBC_2.4 unlinkat F
+GLIBC_2.4 unshare F
+GLIBC_2.5 GLIBC_2.5 A
+GLIBC_2.5 __readlinkat_chk F
+GLIBC_2.5 inet6_opt_append F
+GLIBC_2.5 inet6_opt_find F
+GLIBC_2.5 inet6_opt_finish F
+GLIBC_2.5 inet6_opt_get_val F
+GLIBC_2.5 inet6_opt_init F
+GLIBC_2.5 inet6_opt_next F
+GLIBC_2.5 inet6_opt_set_val F
+GLIBC_2.5 inet6_rth_add F
+GLIBC_2.5 inet6_rth_getaddr F
+GLIBC_2.5 inet6_rth_init F
+GLIBC_2.5 inet6_rth_reverse F
+GLIBC_2.5 inet6_rth_segments F
+GLIBC_2.5 inet6_rth_space F
+GLIBC_2.5 splice F
+GLIBC_2.5 tee F
+GLIBC_2.5 vmsplice F
+GLIBC_2.6 GLIBC_2.6 A
+GLIBC_2.6 __sched_cpucount F
+GLIBC_2.6 epoll_pwait F
+GLIBC_2.6 futimens F
+GLIBC_2.6 sched_getcpu F
+GLIBC_2.6 strerror_l F
+GLIBC_2.6 sync_file_range F
+GLIBC_2.6 utimensat F
+GLIBC_2.7 GLIBC_2.7 A
+GLIBC_2.7 __fread_chk F
+GLIBC_2.7 __fread_unlocked_chk F
+GLIBC_2.7 __isoc99_fscanf F
+GLIBC_2.7 __isoc99_fwscanf F
+GLIBC_2.7 __isoc99_scanf F
+GLIBC_2.7 __isoc99_sscanf F
+GLIBC_2.7 __isoc99_swscanf F
+GLIBC_2.7 __isoc99_vfscanf F
+GLIBC_2.7 __isoc99_vfwscanf F
+GLIBC_2.7 __isoc99_vscanf F
+GLIBC_2.7 __isoc99_vsscanf F
+GLIBC_2.7 __isoc99_vswscanf F
+GLIBC_2.7 __isoc99_vwscanf F
+GLIBC_2.7 __isoc99_wscanf F
+GLIBC_2.7 __open64_2 F
+GLIBC_2.7 __open_2 F
+GLIBC_2.7 __openat64_2 F
+GLIBC_2.7 __openat_2 F
+GLIBC_2.7 __sched_cpualloc F
+GLIBC_2.7 __sched_cpufree F
+GLIBC_2.7 eventfd F
+GLIBC_2.7 eventfd_read F
+GLIBC_2.7 eventfd_write F
+GLIBC_2.7 mkostemp F
+GLIBC_2.7 mkostemp64 F
+GLIBC_2.7 signalfd F
+GLIBC_2.8 GLIBC_2.8 A
+GLIBC_2.8 __asprintf_chk F
+GLIBC_2.8 __dprintf_chk F
+GLIBC_2.8 __obstack_printf_chk F
+GLIBC_2.8 __obstack_vprintf_chk F
+GLIBC_2.8 __vasprintf_chk F
+GLIBC_2.8 __vdprintf_chk F
+GLIBC_2.8 qsort_r F
+GLIBC_2.8 timerfd_create F
+GLIBC_2.8 timerfd_gettime F
+GLIBC_2.8 timerfd_settime F
+GLIBC_2.9 GLIBC_2.9 A
+GLIBC_2.9 dup3 F
+GLIBC_2.9 epoll_create1 F
+GLIBC_2.9 inotify_init1 F
+GLIBC_2.9 pipe2 F
+_gp_disp _gp_disp A
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/fxstatat.c b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/fxstatat.c
new file mode 100644
index 0000000000..0f8b3135d8
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/fxstatat.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/i386/fxstatat.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/ld.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/ld.abilist
new file mode 100644
index 0000000000..651b952524
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/ld.abilist
@@ -0,0 +1,14 @@
+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.2 GLIBC_2.2 A
+GLIBC_2.2 __libc_stack_end D 0x4
+GLIBC_2.2 _dl_mcount F
+GLIBC_2.3 GLIBC_2.3 A
+GLIBC_2.3 __tls_get_addr F
+GLIBC_2.4 GLIBC_2.4 A
+GLIBC_2.4 __stack_chk_guard D 0x4
+_gp_disp _gp_disp A
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/libBrokenLocale.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/libBrokenLocale.abilist
new file mode 100644
index 0000000000..8c497b477e
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/libBrokenLocale.abilist
@@ -0,0 +1,3 @@
+GLIBC_2.0 GLIBC_2.0 A
+GLIBC_2.0 __ctype_get_mb_cur_max F
+_gp_disp _gp_disp A
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/libanl.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/libanl.abilist
new file mode 100644
index 0000000000..bcfbf9e199
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/libanl.abilist
@@ -0,0 +1,6 @@
+GLIBC_2.2.3 GLIBC_2.2.3 A
+GLIBC_2.2.3 gai_cancel F
+GLIBC_2.2.3 gai_error F
+GLIBC_2.2.3 gai_suspend F
+GLIBC_2.2.3 getaddrinfo_a F
+_gp_disp _gp_disp A
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/libcidn.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/libcidn.abilist
new file mode 100644
index 0000000000..db6b02789d
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/libcidn.abilist
@@ -0,0 +1 @@
+_gp_disp _gp_disp A
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/libcrypt.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/libcrypt.abilist
new file mode 100644
index 0000000000..c9d2e54530
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/libcrypt.abilist
@@ -0,0 +1,9 @@
+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
+_gp_disp _gp_disp A
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/libdl.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/libdl.abilist
new file mode 100644
index 0000000000..55f8a1e5e9
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/libdl.abilist
@@ -0,0 +1,15 @@
+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.2 GLIBC_2.2 A
+GLIBC_2.2 dlopen F
+GLIBC_2.2 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
+_gp_disp _gp_disp A
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist
new file mode 100644
index 0000000000..000c011495
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist
@@ -0,0 +1,435 @@
+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.15 GLIBC_2.15 A
+GLIBC_2.15 __acos_finite F
+GLIBC_2.15 __acosf_finite F
+GLIBC_2.15 __acosh_finite F
+GLIBC_2.15 __acoshf_finite F
+GLIBC_2.15 __asin_finite F
+GLIBC_2.15 __asinf_finite F
+GLIBC_2.15 __atan2_finite F
+GLIBC_2.15 __atan2f_finite F
+GLIBC_2.15 __atanh_finite F
+GLIBC_2.15 __atanhf_finite F
+GLIBC_2.15 __cosh_finite F
+GLIBC_2.15 __coshf_finite F
+GLIBC_2.15 __exp10_finite F
+GLIBC_2.15 __exp10f_finite F
+GLIBC_2.15 __exp2_finite F
+GLIBC_2.15 __exp2f_finite F
+GLIBC_2.15 __exp_finite F
+GLIBC_2.15 __expf_finite F
+GLIBC_2.15 __fmod_finite F
+GLIBC_2.15 __fmodf_finite F
+GLIBC_2.15 __gamma_r_finite F
+GLIBC_2.15 __gammaf_r_finite F
+GLIBC_2.15 __hypot_finite F
+GLIBC_2.15 __hypotf_finite F
+GLIBC_2.15 __j0_finite F
+GLIBC_2.15 __j0f_finite F
+GLIBC_2.15 __j1_finite F
+GLIBC_2.15 __j1f_finite F
+GLIBC_2.15 __jn_finite F
+GLIBC_2.15 __jnf_finite F
+GLIBC_2.15 __lgamma_r_finite F
+GLIBC_2.15 __lgammaf_r_finite F
+GLIBC_2.15 __log10_finite F
+GLIBC_2.15 __log10f_finite F
+GLIBC_2.15 __log2_finite F
+GLIBC_2.15 __log2f_finite F
+GLIBC_2.15 __log_finite F
+GLIBC_2.15 __logf_finite F
+GLIBC_2.15 __pow_finite F
+GLIBC_2.15 __powf_finite F
+GLIBC_2.15 __remainder_finite F
+GLIBC_2.15 __remainderf_finite F
+GLIBC_2.15 __scalb_finite F
+GLIBC_2.15 __scalbf_finite F
+GLIBC_2.15 __sinh_finite F
+GLIBC_2.15 __sinhf_finite F
+GLIBC_2.15 __sqrt_finite F
+GLIBC_2.15 __sqrtf_finite F
+GLIBC_2.15 __y0_finite F
+GLIBC_2.15 __y0f_finite F
+GLIBC_2.15 __y1_finite F
+GLIBC_2.15 __y1f_finite F
+GLIBC_2.15 __yn_finite F
+GLIBC_2.15 __ynf_finite F
+GLIBC_2.18 GLIBC_2.18 A
+GLIBC_2.18 __issignaling F
+GLIBC_2.18 __issignalingf F
+GLIBC_2.2 GLIBC_2.2 A
+GLIBC_2.2 __clog10 F
+GLIBC_2.2 __clog10f F
+GLIBC_2.2 __clog10l F
+GLIBC_2.2 __finite F
+GLIBC_2.2 __finitef F
+GLIBC_2.2 __finitel F
+GLIBC_2.2 __fpclassify F
+GLIBC_2.2 __fpclassifyf F
+GLIBC_2.2 __signbit F
+GLIBC_2.2 __signbitf F
+GLIBC_2.2 cabs F
+GLIBC_2.2 cabsf F
+GLIBC_2.2 cabsl F
+GLIBC_2.2 cacos F
+GLIBC_2.2 cacosf F
+GLIBC_2.2 cacosh F
+GLIBC_2.2 cacoshf F
+GLIBC_2.2 cacoshl F
+GLIBC_2.2 cacosl F
+GLIBC_2.2 carg F
+GLIBC_2.2 cargf F
+GLIBC_2.2 cargl F
+GLIBC_2.2 casin F
+GLIBC_2.2 casinf F
+GLIBC_2.2 casinh F
+GLIBC_2.2 casinhf F
+GLIBC_2.2 casinhl F
+GLIBC_2.2 casinl F
+GLIBC_2.2 catan F
+GLIBC_2.2 catanf F
+GLIBC_2.2 catanh F
+GLIBC_2.2 catanhf F
+GLIBC_2.2 catanhl F
+GLIBC_2.2 catanl F
+GLIBC_2.2 ccos F
+GLIBC_2.2 ccosf F
+GLIBC_2.2 ccosh F
+GLIBC_2.2 ccoshf F
+GLIBC_2.2 ccoshl F
+GLIBC_2.2 ccosl F
+GLIBC_2.2 cexp F
+GLIBC_2.2 cexpf F
+GLIBC_2.2 cexpl F
+GLIBC_2.2 cimag F
+GLIBC_2.2 cimagf F
+GLIBC_2.2 cimagl F
+GLIBC_2.2 clog F
+GLIBC_2.2 clog10 F
+GLIBC_2.2 clog10f F
+GLIBC_2.2 clog10l F
+GLIBC_2.2 clogf F
+GLIBC_2.2 clogl F
+GLIBC_2.2 conj F
+GLIBC_2.2 conjf F
+GLIBC_2.2 conjl F
+GLIBC_2.2 cpow F
+GLIBC_2.2 cpowf F
+GLIBC_2.2 cpowl F
+GLIBC_2.2 cproj F
+GLIBC_2.2 cprojf F
+GLIBC_2.2 cprojl F
+GLIBC_2.2 creal F
+GLIBC_2.2 crealf F
+GLIBC_2.2 creall F
+GLIBC_2.2 csin F
+GLIBC_2.2 csinf F
+GLIBC_2.2 csinh F
+GLIBC_2.2 csinhf F
+GLIBC_2.2 csinhl F
+GLIBC_2.2 csinl F
+GLIBC_2.2 csqrt F
+GLIBC_2.2 csqrtf F
+GLIBC_2.2 csqrtl F
+GLIBC_2.2 ctan F
+GLIBC_2.2 ctanf F
+GLIBC_2.2 ctanh F
+GLIBC_2.2 ctanhf F
+GLIBC_2.2 ctanhl F
+GLIBC_2.2 ctanl F
+GLIBC_2.2 exp10 F
+GLIBC_2.2 exp10f F
+GLIBC_2.2 exp10l F
+GLIBC_2.2 exp2 F
+GLIBC_2.2 exp2f F
+GLIBC_2.2 fdim F
+GLIBC_2.2 fdimf F
+GLIBC_2.2 fdiml F
+GLIBC_2.2 feclearexcept F
+GLIBC_2.2 fedisableexcept F
+GLIBC_2.2 feenableexcept F
+GLIBC_2.2 fegetenv F
+GLIBC_2.2 fegetexcept F
+GLIBC_2.2 fegetexceptflag F
+GLIBC_2.2 fegetround F
+GLIBC_2.2 feholdexcept F
+GLIBC_2.2 feraiseexcept F
+GLIBC_2.2 fesetenv F
+GLIBC_2.2 fesetexceptflag F
+GLIBC_2.2 fesetround F
+GLIBC_2.2 fetestexcept F
+GLIBC_2.2 feupdateenv F
+GLIBC_2.2 fma F
+GLIBC_2.2 fmaf F
+GLIBC_2.2 fmal F
+GLIBC_2.2 fmax F
+GLIBC_2.2 fmaxf F
+GLIBC_2.2 fmaxl F
+GLIBC_2.2 fmin F
+GLIBC_2.2 fminf F
+GLIBC_2.2 fminl F
+GLIBC_2.2 llrint F
+GLIBC_2.2 llrintf F
+GLIBC_2.2 llrintl F
+GLIBC_2.2 llround F
+GLIBC_2.2 llroundf F
+GLIBC_2.2 llroundl F
+GLIBC_2.2 log2 F
+GLIBC_2.2 log2f F
+GLIBC_2.2 log2l F
+GLIBC_2.2 lrint F
+GLIBC_2.2 lrintf F
+GLIBC_2.2 lrintl F
+GLIBC_2.2 lround F
+GLIBC_2.2 lroundf F
+GLIBC_2.2 lroundl F
+GLIBC_2.2 nan F
+GLIBC_2.2 nanf F
+GLIBC_2.2 nanl F
+GLIBC_2.2 nearbyint F
+GLIBC_2.2 nearbyintf F
+GLIBC_2.2 nearbyintl F
+GLIBC_2.2 nexttoward F
+GLIBC_2.2 nexttowardf F
+GLIBC_2.2 nexttowardl F
+GLIBC_2.2 pow10 F
+GLIBC_2.2 pow10f F
+GLIBC_2.2 pow10l F
+GLIBC_2.2 remquo F
+GLIBC_2.2 remquof F
+GLIBC_2.2 remquol F
+GLIBC_2.2 round F
+GLIBC_2.2 roundf F
+GLIBC_2.2 roundl F
+GLIBC_2.2 scalbln F
+GLIBC_2.2 scalblnf F
+GLIBC_2.2 scalblnl F
+GLIBC_2.2 sincos F
+GLIBC_2.2 sincosf F
+GLIBC_2.2 sincosl F
+GLIBC_2.2 tgamma F
+GLIBC_2.2 tgammaf F
+GLIBC_2.2 tgammal F
+GLIBC_2.2 trunc F
+GLIBC_2.2 truncf F
+GLIBC_2.2 truncl F
+GLIBC_2.23 GLIBC_2.23 A
+GLIBC_2.23 __signgam D 0x4
+GLIBC_2.23 lgamma F
+GLIBC_2.23 lgammaf F
+GLIBC_2.23 lgammal F
+GLIBC_2.24 GLIBC_2.24 A
+GLIBC_2.24 nextdown F
+GLIBC_2.24 nextdownf F
+GLIBC_2.24 nextdownl F
+GLIBC_2.24 nextup F
+GLIBC_2.24 nextupf F
+GLIBC_2.24 nextupl F
+GLIBC_2.25 GLIBC_2.25 A
+GLIBC_2.25 __iseqsig F
+GLIBC_2.25 __iseqsigf F
+GLIBC_2.25 canonicalize F
+GLIBC_2.25 canonicalizef F
+GLIBC_2.25 canonicalizel F
+GLIBC_2.25 fegetmode F
+GLIBC_2.25 fesetexcept F
+GLIBC_2.25 fesetmode F
+GLIBC_2.25 fetestexceptflag F
+GLIBC_2.25 fmaxmag F
+GLIBC_2.25 fmaxmagf F
+GLIBC_2.25 fmaxmagl F
+GLIBC_2.25 fminmag F
+GLIBC_2.25 fminmagf F
+GLIBC_2.25 fminmagl F
+GLIBC_2.25 fromfp F
+GLIBC_2.25 fromfpf F
+GLIBC_2.25 fromfpl F
+GLIBC_2.25 fromfpx F
+GLIBC_2.25 fromfpxf F
+GLIBC_2.25 fromfpxl F
+GLIBC_2.25 getpayload F
+GLIBC_2.25 getpayloadf F
+GLIBC_2.25 getpayloadl F
+GLIBC_2.25 llogb F
+GLIBC_2.25 llogbf F
+GLIBC_2.25 llogbl F
+GLIBC_2.25 roundeven F
+GLIBC_2.25 roundevenf F
+GLIBC_2.25 roundevenl F
+GLIBC_2.25 setpayload F
+GLIBC_2.25 setpayloadf F
+GLIBC_2.25 setpayloadl F
+GLIBC_2.25 setpayloadsig F
+GLIBC_2.25 setpayloadsigf F
+GLIBC_2.25 setpayloadsigl F
+GLIBC_2.25 totalorder F
+GLIBC_2.25 totalorderf F
+GLIBC_2.25 totalorderl F
+GLIBC_2.25 totalordermag F
+GLIBC_2.25 totalordermagf F
+GLIBC_2.25 totalordermagl F
+GLIBC_2.25 ufromfp F
+GLIBC_2.25 ufromfpf F
+GLIBC_2.25 ufromfpl F
+GLIBC_2.25 ufromfpx F
+GLIBC_2.25 ufromfpxf F
+GLIBC_2.25 ufromfpxl F
+GLIBC_2.4 GLIBC_2.4 A
+GLIBC_2.4 exp2l F
+_gp_disp _gp_disp A
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/libnsl.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/libnsl.abilist
new file mode 100644
index 0000000000..53b4608235
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/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.2 GLIBC_2.2 A
+GLIBC_2.2 __free_fdresult F
+GLIBC_2.2 __nis_default_access F
+GLIBC_2.2 __nis_default_group F
+GLIBC_2.2 __nis_default_owner F
+GLIBC_2.2 __nis_default_ttl F
+GLIBC_2.2 __nis_finddirectory F
+GLIBC_2.2 __nis_hash F
+GLIBC_2.2 __nisbind_connect F
+GLIBC_2.2 __nisbind_create F
+GLIBC_2.2 __nisbind_destroy F
+GLIBC_2.2 __nisbind_next F
+GLIBC_2.2 nis_add F
+GLIBC_2.2 nis_add_entry F
+GLIBC_2.2 nis_addmember F
+GLIBC_2.2 nis_checkpoint F
+GLIBC_2.2 nis_clone_directory F
+GLIBC_2.2 nis_clone_object F
+GLIBC_2.2 nis_clone_result F
+GLIBC_2.2 nis_creategroup F
+GLIBC_2.2 nis_destroy_object F
+GLIBC_2.2 nis_destroygroup F
+GLIBC_2.2 nis_dir_cmp F
+GLIBC_2.2 nis_domain_of F
+GLIBC_2.2 nis_domain_of_r F
+GLIBC_2.2 nis_first_entry F
+GLIBC_2.2 nis_free_directory F
+GLIBC_2.2 nis_free_object F
+GLIBC_2.2 nis_free_request F
+GLIBC_2.2 nis_freenames F
+GLIBC_2.2 nis_freeresult F
+GLIBC_2.2 nis_freeservlist F
+GLIBC_2.2 nis_freetags F
+GLIBC_2.2 nis_getnames F
+GLIBC_2.2 nis_getservlist F
+GLIBC_2.2 nis_ismember F
+GLIBC_2.2 nis_leaf_of F
+GLIBC_2.2 nis_leaf_of_r F
+GLIBC_2.2 nis_lerror F
+GLIBC_2.2 nis_list F
+GLIBC_2.2 nis_local_directory F
+GLIBC_2.2 nis_local_group F
+GLIBC_2.2 nis_local_host F
+GLIBC_2.2 nis_local_principal F
+GLIBC_2.2 nis_lookup F
+GLIBC_2.2 nis_mkdir F
+GLIBC_2.2 nis_modify F
+GLIBC_2.2 nis_modify_entry F
+GLIBC_2.2 nis_name_of F
+GLIBC_2.2 nis_name_of_r F
+GLIBC_2.2 nis_next_entry F
+GLIBC_2.2 nis_perror F
+GLIBC_2.2 nis_ping F
+GLIBC_2.2 nis_print_directory F
+GLIBC_2.2 nis_print_entry F
+GLIBC_2.2 nis_print_group F
+GLIBC_2.2 nis_print_group_entry F
+GLIBC_2.2 nis_print_link F
+GLIBC_2.2 nis_print_object F
+GLIBC_2.2 nis_print_result F
+GLIBC_2.2 nis_print_rights F
+GLIBC_2.2 nis_print_table F
+GLIBC_2.2 nis_read_obj F
+GLIBC_2.2 nis_remove F
+GLIBC_2.2 nis_remove_entry F
+GLIBC_2.2 nis_removemember F
+GLIBC_2.2 nis_rmdir F
+GLIBC_2.2 nis_servstate F
+GLIBC_2.2 nis_sperrno F
+GLIBC_2.2 nis_sperror F
+GLIBC_2.2 nis_sperror_r F
+GLIBC_2.2 nis_stats F
+GLIBC_2.2 nis_verifygroup F
+GLIBC_2.2 nis_write_obj F
+GLIBC_2.2 readColdStartFile F
+GLIBC_2.2 writeColdStartFile F
+GLIBC_2.2 xdr_cback_data F
+GLIBC_2.2 xdr_obj_p F
+GLIBC_2.2 xdr_ypall F
+_gp_disp _gp_disp A
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/libnss_compat.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/libnss_compat.abilist
new file mode 100644
index 0000000000..db6b02789d
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/libnss_compat.abilist
@@ -0,0 +1 @@
+_gp_disp _gp_disp A
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/libnss_db.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/libnss_db.abilist
new file mode 100644
index 0000000000..db6b02789d
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/libnss_db.abilist
@@ -0,0 +1 @@
+_gp_disp _gp_disp A
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/libnss_dns.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/libnss_dns.abilist
new file mode 100644
index 0000000000..db6b02789d
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/libnss_dns.abilist
@@ -0,0 +1 @@
+_gp_disp _gp_disp A
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/libnss_files.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/libnss_files.abilist
new file mode 100644
index 0000000000..db6b02789d
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/libnss_files.abilist
@@ -0,0 +1 @@
+_gp_disp _gp_disp A
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/libnss_hesiod.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/libnss_hesiod.abilist
new file mode 100644
index 0000000000..db6b02789d
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/libnss_hesiod.abilist
@@ -0,0 +1 @@
+_gp_disp _gp_disp A
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/libnss_nis.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/libnss_nis.abilist
new file mode 100644
index 0000000000..db6b02789d
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/libnss_nis.abilist
@@ -0,0 +1 @@
+_gp_disp _gp_disp A
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/libnss_nisplus.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/libnss_nisplus.abilist
new file mode 100644
index 0000000000..db6b02789d
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/libnss_nisplus.abilist
@@ -0,0 +1 @@
+_gp_disp _gp_disp A
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
new file mode 100644
index 0000000000..280d99d974
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
@@ -0,0 +1,257 @@
+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.11 GLIBC_2.11 A
+GLIBC_2.11 pthread_sigqueue F
+GLIBC_2.12 GLIBC_2.12 A
+GLIBC_2.12 pthread_getname_np F
+GLIBC_2.12 pthread_mutex_consistent F
+GLIBC_2.12 pthread_mutexattr_getrobust F
+GLIBC_2.12 pthread_mutexattr_setrobust F
+GLIBC_2.12 pthread_setname_np F
+GLIBC_2.18 GLIBC_2.18 A
+GLIBC_2.18 pthread_getattr_default_np F
+GLIBC_2.18 pthread_setattr_default_np F
+GLIBC_2.2 GLIBC_2.2 A
+GLIBC_2.2 __libc_allocate_rtsig F
+GLIBC_2.2 __libc_current_sigrtmax F
+GLIBC_2.2 __libc_current_sigrtmin F
+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 __vfork 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_getguardsize F
+GLIBC_2.2 pthread_attr_getstack F
+GLIBC_2.2 pthread_attr_getstackaddr F
+GLIBC_2.2 pthread_attr_getstacksize F
+GLIBC_2.2 pthread_attr_init F
+GLIBC_2.2 pthread_attr_setguardsize F
+GLIBC_2.2 pthread_attr_setstack F
+GLIBC_2.2 pthread_attr_setstackaddr F
+GLIBC_2.2 pthread_attr_setstacksize F
+GLIBC_2.2 pthread_barrier_destroy F
+GLIBC_2.2 pthread_barrier_init F
+GLIBC_2.2 pthread_barrier_wait F
+GLIBC_2.2 pthread_barrierattr_destroy F
+GLIBC_2.2 pthread_barrierattr_init F
+GLIBC_2.2 pthread_barrierattr_setpshared F
+GLIBC_2.2 pthread_condattr_getpshared F
+GLIBC_2.2 pthread_condattr_setpshared F
+GLIBC_2.2 pthread_create F
+GLIBC_2.2 pthread_getconcurrency 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_gettype F
+GLIBC_2.2 pthread_mutexattr_setpshared F
+GLIBC_2.2 pthread_mutexattr_settype F
+GLIBC_2.2 pthread_rwlock_destroy F
+GLIBC_2.2 pthread_rwlock_init F
+GLIBC_2.2 pthread_rwlock_rdlock F
+GLIBC_2.2 pthread_rwlock_timedrdlock F
+GLIBC_2.2 pthread_rwlock_timedwrlock F
+GLIBC_2.2 pthread_rwlock_tryrdlock F
+GLIBC_2.2 pthread_rwlock_trywrlock F
+GLIBC_2.2 pthread_rwlock_unlock F
+GLIBC_2.2 pthread_rwlock_wrlock F
+GLIBC_2.2 pthread_rwlockattr_destroy F
+GLIBC_2.2 pthread_rwlockattr_getkind_np F
+GLIBC_2.2 pthread_rwlockattr_getpshared F
+GLIBC_2.2 pthread_rwlockattr_init F
+GLIBC_2.2 pthread_rwlockattr_setkind_np F
+GLIBC_2.2 pthread_rwlockattr_setpshared F
+GLIBC_2.2 pthread_setconcurrency 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_close F
+GLIBC_2.2 sem_destroy F
+GLIBC_2.2 sem_getvalue F
+GLIBC_2.2 sem_init F
+GLIBC_2.2 sem_open F
+GLIBC_2.2 sem_post F
+GLIBC_2.2 sem_timedwait F
+GLIBC_2.2 sem_trywait F
+GLIBC_2.2 sem_unlink F
+GLIBC_2.2 sem_wait F
+GLIBC_2.2.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_attr_setstack F
+GLIBC_2.3.3 pthread_attr_setstacksize 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
+_gp_disp _gp_disp A
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/libresolv.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/libresolv.abilist
new file mode 100644
index 0000000000..1f89eb6cd9
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/libresolv.abilist
@@ -0,0 +1,101 @@
+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
+_gp_disp _gp_disp A
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist
new file mode 100644
index 0000000000..61f63e1524
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/librt.abilist
@@ -0,0 +1,47 @@
+GLIBC_2.2 GLIBC_2.2 A
+GLIBC_2.2 aio_cancel F
+GLIBC_2.2 aio_cancel64 F
+GLIBC_2.2 aio_error F
+GLIBC_2.2 aio_error64 F
+GLIBC_2.2 aio_fsync F
+GLIBC_2.2 aio_fsync64 F
+GLIBC_2.2 aio_init F
+GLIBC_2.2 aio_read F
+GLIBC_2.2 aio_read64 F
+GLIBC_2.2 aio_return F
+GLIBC_2.2 aio_return64 F
+GLIBC_2.2 aio_suspend F
+GLIBC_2.2 aio_suspend64 F
+GLIBC_2.2 aio_write F
+GLIBC_2.2 aio_write64 F
+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 lio_listio F
+GLIBC_2.2 lio_listio64 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
+_gp_disp _gp_disp A
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/libthread_db.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/libthread_db.abilist
new file mode 100644
index 0000000000..e47140b61c
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/libthread_db.abilist
@@ -0,0 +1,45 @@
+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
+_gp_disp _gp_disp A
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/libutil.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/libutil.abilist
new file mode 100644
index 0000000000..ce712a238c
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/libutil.abilist
@@ -0,0 +1,8 @@
+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
+_gp_disp _gp_disp A
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/lockf64.c b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/lockf64.c
new file mode 100644
index 0000000000..a88f5a784a
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/lockf64.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/i386/lockf64.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/mips16/Makefile b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/mips16/Makefile
new file mode 100644
index 0000000000..fa9fcb7e6f
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/mips16/Makefile
@@ -0,0 +1,13 @@
+ifeq ($(subdir),misc)
+sysdep_routines += mips16-syscall0 mips16-syscall1 mips16-syscall2
+sysdep_routines += mips16-syscall3 mips16-syscall4 mips16-syscall5
+sysdep_routines += mips16-syscall6 mips16-syscall7
+CFLAGS-mips16-syscall0.c += -fexceptions
+CFLAGS-mips16-syscall1.c += -fexceptions
+CFLAGS-mips16-syscall2.c += -fexceptions
+CFLAGS-mips16-syscall3.c += -fexceptions
+CFLAGS-mips16-syscall4.c += -fexceptions
+CFLAGS-mips16-syscall5.c += -fexceptions
+CFLAGS-mips16-syscall6.c += -fexceptions
+CFLAGS-mips16-syscall7.c += -fexceptions
+endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/mips16/Versions b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/mips16/Versions
new file mode 100644
index 0000000000..73bcfb566c
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/mips16/Versions
@@ -0,0 +1,6 @@
+libc {
+ GLIBC_PRIVATE {
+ __mips16_syscall0; __mips16_syscall1; __mips16_syscall2; __mips16_syscall3;
+ __mips16_syscall4; __mips16_syscall5; __mips16_syscall6; __mips16_syscall7;
+ }
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall.h b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall.h
new file mode 100644
index 0000000000..880e9908e8
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall.h
@@ -0,0 +1,89 @@
+/* MIPS16 syscall wrappers.
+ Copyright (C) 2013-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 MIPS16_SYSCALL_H
+#define MIPS16_SYSCALL_H 1
+
+#define __nomips16 __attribute__ ((nomips16))
+
+union __mips16_syscall_return
+ {
+ long long val;
+ struct
+ {
+ long v0;
+ long v1;
+ }
+ reg;
+ };
+
+long long __nomips16 __mips16_syscall0 (long number);
+#define __mips16_syscall0(dummy, number) \
+ __mips16_syscall0 ((long) (number))
+
+long long __nomips16 __mips16_syscall1 (long a0,
+ long number);
+#define __mips16_syscall1(a0, number) \
+ __mips16_syscall1 ((long) (a0), \
+ (long) (number))
+
+long long __nomips16 __mips16_syscall2 (long a0, long a1,
+ long number);
+#define __mips16_syscall2(a0, a1, number) \
+ __mips16_syscall2 ((long) (a0), (long) (a1), \
+ (long) (number))
+
+long long __nomips16 __mips16_syscall3 (long a0, long a1, long a2,
+ long number);
+#define __mips16_syscall3(a0, a1, a2, number) \
+ __mips16_syscall3 ((long) (a0), (long) (a1), (long) (a2), \
+ (long) (number))
+
+long long __nomips16 __mips16_syscall4 (long a0, long a1, long a2, long a3,
+ long number);
+#define __mips16_syscall4(a0, a1, a2, a3, number) \
+ __mips16_syscall4 ((long) (a0), (long) (a1), (long) (a2), \
+ (long) (a3), \
+ (long) (number))
+
+long long __nomips16 __mips16_syscall5 (long a0, long a1, long a2, long a3,
+ long a4,
+ long number);
+#define __mips16_syscall5(a0, a1, a2, a3, a4, number) \
+ __mips16_syscall5 ((long) (a0), (long) (a1), (long) (a2), \
+ (long) (a3), (long) (a4), \
+ (long) (number))
+
+long long __nomips16 __mips16_syscall6 (long a0, long a1, long a2, long a3,
+ long a4, long a5,
+ long number);
+#define __mips16_syscall6(a0, a1, a2, a3, a4, a5, number) \
+ __mips16_syscall6 ((long) (a0), (long) (a1), (long) (a2), \
+ (long) (a3), (long) (a4), (long) (a5), \
+ (long) (number))
+
+long long __nomips16 __mips16_syscall7 (long a0, long a1, long a2, long a3,
+ long a4, long a5, long a6,
+ long number);
+#define __mips16_syscall7(a0, a1, a2, a3, a4, a5, a6, number) \
+ __mips16_syscall7 ((long) (a0), (long) (a1), (long) (a2), \
+ (long) (a3), (long) (a4), (long) (a5), \
+ (long) (a6), \
+ (long) (number))
+
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall0.c b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall0.c
new file mode 100644
index 0000000000..490245b34e
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall0.c
@@ -0,0 +1,30 @@
+/* MIPS16 syscall wrappers.
+ Copyright (C) 2013-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#include <mips16-syscall.h>
+
+#undef __mips16_syscall0
+
+long long __nomips16
+__mips16_syscall0 (long number)
+{
+ union __mips16_syscall_return ret;
+ ret.reg.v0 = INTERNAL_SYSCALL_MIPS16 (number, ret.reg.v1, 0);
+ return ret.val;
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall1.c b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall1.c
new file mode 100644
index 0000000000..3061e8accb
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall1.c
@@ -0,0 +1,32 @@
+/* MIPS16 syscall wrappers.
+ Copyright (C) 2013-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#include <mips16-syscall.h>
+
+#undef __mips16_syscall1
+
+long long __nomips16
+__mips16_syscall1 (long a0,
+ long number)
+{
+ union __mips16_syscall_return ret;
+ ret.reg.v0 = INTERNAL_SYSCALL_MIPS16 (number, ret.reg.v1, 1,
+ a0);
+ return ret.val;
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall2.c b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall2.c
new file mode 100644
index 0000000000..440a4ed285
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall2.c
@@ -0,0 +1,32 @@
+/* MIPS16 syscall wrappers.
+ Copyright (C) 2013-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#include <mips16-syscall.h>
+
+#undef __mips16_syscall2
+
+long long __nomips16
+__mips16_syscall2 (long a0, long a1,
+ long number)
+{
+ union __mips16_syscall_return ret;
+ ret.reg.v0 = INTERNAL_SYSCALL_MIPS16 (number, ret.reg.v1, 2,
+ a0, a1);
+ return ret.val;
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall3.c b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall3.c
new file mode 100644
index 0000000000..c3f83fc1f6
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall3.c
@@ -0,0 +1,32 @@
+/* MIPS16 syscall wrappers.
+ Copyright (C) 2013-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#include <mips16-syscall.h>
+
+#undef __mips16_syscall3
+
+long long __nomips16
+__mips16_syscall3 (long a0, long a1, long a2,
+ long number)
+{
+ union __mips16_syscall_return ret;
+ ret.reg.v0 = INTERNAL_SYSCALL_MIPS16 (number, ret.reg.v1, 3,
+ a0, a1, a2);
+ return ret.val;
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall4.c b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall4.c
new file mode 100644
index 0000000000..496297d296
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall4.c
@@ -0,0 +1,32 @@
+/* MIPS16 syscall wrappers.
+ Copyright (C) 2013-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#include <mips16-syscall.h>
+
+#undef __mips16_syscall4
+
+long long __nomips16
+__mips16_syscall4 (long a0, long a1, long a2, long a3,
+ long number)
+{
+ union __mips16_syscall_return ret;
+ ret.reg.v0 = INTERNAL_SYSCALL_MIPS16 (number, ret.reg.v1, 4,
+ a0, a1, a2, a3);
+ return ret.val;
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall5.c b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall5.c
new file mode 100644
index 0000000000..ad265d88e2
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall5.c
@@ -0,0 +1,33 @@
+/* MIPS16 syscall wrappers.
+ Copyright (C) 2013-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#include <mips16-syscall.h>
+
+#undef __mips16_syscall5
+
+long long __nomips16
+__mips16_syscall5 (long a0, long a1, long a2, long a3,
+ long a4,
+ long number)
+{
+ union __mips16_syscall_return ret;
+ ret.reg.v0 = INTERNAL_SYSCALL_MIPS16 (number, ret.reg.v1, 5,
+ a0, a1, a2, a3, a4);
+ return ret.val;
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall6.c b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall6.c
new file mode 100644
index 0000000000..bfbd395ed3
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall6.c
@@ -0,0 +1,33 @@
+/* MIPS16 syscall wrappers.
+ Copyright (C) 2013-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#include <mips16-syscall.h>
+
+#undef __mips16_syscall6
+
+long long __nomips16
+__mips16_syscall6 (long a0, long a1, long a2, long a3,
+ long a4, long a5,
+ long number)
+{
+ union __mips16_syscall_return ret;
+ ret.reg.v0 = INTERNAL_SYSCALL_MIPS16 (number, ret.reg.v1, 6,
+ a0, a1, a2, a3, a4, a5);
+ return ret.val;
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall7.c b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall7.c
new file mode 100644
index 0000000000..e1267616dc
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/mips16/mips16-syscall7.c
@@ -0,0 +1,33 @@
+/* MIPS16 syscall wrappers.
+ Copyright (C) 2013-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#include <mips16-syscall.h>
+
+#undef __mips16_syscall7
+
+long long __nomips16
+__mips16_syscall7 (long a0, long a1, long a2, long a3,
+ long a4, long a5, long a6,
+ long number)
+{
+ union __mips16_syscall_return ret;
+ ret.reg.v0 = INTERNAL_SYSCALL_MIPS16 (number, ret.reg.v1, 7,
+ a0, a1, a2, a3, a4, a5, a6);
+ return ret.val;
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
new file mode 100644
index 0000000000..36ee235d71
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
@@ -0,0 +1,2254 @@
+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 __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 __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 __uflow 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 _flush_cache 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 cachectl F
+GLIBC_2.0 cacheflush 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 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 sysmips 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.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 ntp_gettimex F
+GLIBC_2.12 recvmmsg F
+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 getrlimit64 F
+GLIBC_2.19 setrlimit64 F
+GLIBC_2.2 GLIBC_2.2 A
+GLIBC_2.2 _Exit F
+GLIBC_2.2 _IO_2_1_stderr_ D 0xa0
+GLIBC_2.2 _IO_2_1_stdin_ D 0xa0
+GLIBC_2.2 _IO_2_1_stdout_ D 0xa0
+GLIBC_2.2 _IO_adjust_wcolumn F
+GLIBC_2.2 _IO_do_write F
+GLIBC_2.2 _IO_fclose F
+GLIBC_2.2 _IO_fdopen F
+GLIBC_2.2 _IO_fgetpos F
+GLIBC_2.2 _IO_fgetpos64 F
+GLIBC_2.2 _IO_file_attach F
+GLIBC_2.2 _IO_file_close_it F
+GLIBC_2.2 _IO_file_finish F
+GLIBC_2.2 _IO_file_fopen F
+GLIBC_2.2 _IO_file_init F
+GLIBC_2.2 _IO_file_overflow F
+GLIBC_2.2 _IO_file_seekoff F
+GLIBC_2.2 _IO_file_setbuf F
+GLIBC_2.2 _IO_file_sync F
+GLIBC_2.2 _IO_file_underflow F
+GLIBC_2.2 _IO_file_write F
+GLIBC_2.2 _IO_file_xsputn F
+GLIBC_2.2 _IO_fopen 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_getline_info 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_popen F
+GLIBC_2.2 _IO_proc_close F
+GLIBC_2.2 _IO_proc_open 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 __asprintf F
+GLIBC_2.2 __assert F
+GLIBC_2.2 __backtrace F
+GLIBC_2.2 __backtrace_symbols F
+GLIBC_2.2 __backtrace_symbols_fd F
+GLIBC_2.2 __ctype32_tolower D 0x4
+GLIBC_2.2 __ctype32_toupper D 0x4
+GLIBC_2.2 __cxa_atexit F
+GLIBC_2.2 __cxa_finalize F
+GLIBC_2.2 __cyg_profile_func_enter F
+GLIBC_2.2 __cyg_profile_func_exit F
+GLIBC_2.2 __duplocale 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 __freelocale 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 __isalnum_l F
+GLIBC_2.2 __isalpha_l F
+GLIBC_2.2 __isascii_l F
+GLIBC_2.2 __isblank_l F
+GLIBC_2.2 __iscntrl_l F
+GLIBC_2.2 __isdigit_l F
+GLIBC_2.2 __isgraph_l F
+GLIBC_2.2 __islower_l F
+GLIBC_2.2 __isprint_l F
+GLIBC_2.2 __ispunct_l F
+GLIBC_2.2 __isspace_l F
+GLIBC_2.2 __isupper_l F
+GLIBC_2.2 __iswalnum_l F
+GLIBC_2.2 __iswalpha_l F
+GLIBC_2.2 __iswblank_l F
+GLIBC_2.2 __iswcntrl_l F
+GLIBC_2.2 __iswctype_l F
+GLIBC_2.2 __iswdigit_l F
+GLIBC_2.2 __iswgraph_l F
+GLIBC_2.2 __iswlower_l F
+GLIBC_2.2 __iswprint_l F
+GLIBC_2.2 __iswpunct_l F
+GLIBC_2.2 __iswspace_l F
+GLIBC_2.2 __iswupper_l F
+GLIBC_2.2 __iswxdigit_l F
+GLIBC_2.2 __isxdigit_l F
+GLIBC_2.2 __key_decryptsession_pk_LOCAL D 0x4
+GLIBC_2.2 __key_encryptsession_pk_LOCAL D 0x4
+GLIBC_2.2 __key_gendes_LOCAL D 0x4
+GLIBC_2.2 __libc_allocate_rtsig F
+GLIBC_2.2 __libc_current_sigrtmax F
+GLIBC_2.2 __libc_current_sigrtmin F
+GLIBC_2.2 __libc_freeres F
+GLIBC_2.2 __libc_sa_len F
+GLIBC_2.2 __lxstat64 F
+GLIBC_2.2 __mempcpy_small F
+GLIBC_2.2 __newlocale F
+GLIBC_2.2 __nl_langinfo_l F
+GLIBC_2.2 __open64 F
+GLIBC_2.2 __poll F
+GLIBC_2.2 __pread64 F
+GLIBC_2.2 __pwrite64 F
+GLIBC_2.2 __rawmemchr 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 __signbit F
+GLIBC_2.2 __signbitf F
+GLIBC_2.2 __sigsuspend F
+GLIBC_2.2 __statfs F
+GLIBC_2.2 __stpcpy_small F
+GLIBC_2.2 __strcasecmp_l F
+GLIBC_2.2 __strcasestr F
+GLIBC_2.2 __strcoll_l F
+GLIBC_2.2 __strcpy_small F
+GLIBC_2.2 __strcspn_c1 F
+GLIBC_2.2 __strcspn_c2 F
+GLIBC_2.2 __strcspn_c3 F
+GLIBC_2.2 __strfmon_l F
+GLIBC_2.2 __strncasecmp_l F
+GLIBC_2.2 __strndup F
+GLIBC_2.2 __strpbrk_c2 F
+GLIBC_2.2 __strpbrk_c3 F
+GLIBC_2.2 __strsep_1c F
+GLIBC_2.2 __strsep_2c F
+GLIBC_2.2 __strsep_3c F
+GLIBC_2.2 __strsep_g F
+GLIBC_2.2 __strspn_c1 F
+GLIBC_2.2 __strspn_c2 F
+GLIBC_2.2 __strspn_c3 F
+GLIBC_2.2 __strtod_l F
+GLIBC_2.2 __strtof_l F
+GLIBC_2.2 __strtok_r_1c F
+GLIBC_2.2 __strtol_l F
+GLIBC_2.2 __strtold_l F
+GLIBC_2.2 __strtoll_l F
+GLIBC_2.2 __strtoul_l F
+GLIBC_2.2 __strtoull_l F
+GLIBC_2.2 __strverscmp F
+GLIBC_2.2 __strxfrm_l F
+GLIBC_2.2 __sysconf F
+GLIBC_2.2 __sysctl F
+GLIBC_2.2 __toascii_l F
+GLIBC_2.2 __tolower_l F
+GLIBC_2.2 __toupper_l F
+GLIBC_2.2 __towctrans F
+GLIBC_2.2 __towctrans_l F
+GLIBC_2.2 __towlower_l F
+GLIBC_2.2 __towupper_l F
+GLIBC_2.2 __vfork F
+GLIBC_2.2 __wcscasecmp_l F
+GLIBC_2.2 __wcscoll_l F
+GLIBC_2.2 __wcsncasecmp_l F
+GLIBC_2.2 __wcstod_l F
+GLIBC_2.2 __wcstof_l F
+GLIBC_2.2 __wcstol_l F
+GLIBC_2.2 __wcstold_l F
+GLIBC_2.2 __wcstoll_l F
+GLIBC_2.2 __wcstoul_l F
+GLIBC_2.2 __wcstoull_l F
+GLIBC_2.2 __wcsxfrm_l F
+GLIBC_2.2 __wctrans_l F
+GLIBC_2.2 __wctype_l F
+GLIBC_2.2 __woverflow F
+GLIBC_2.2 __wuflow F
+GLIBC_2.2 __wunderflow F
+GLIBC_2.2 __xpg_sigpause F
+GLIBC_2.2 __xstat64 F
+GLIBC_2.2 _authenticate F
+GLIBC_2.2 _dl_mcount_wrapper F
+GLIBC_2.2 _dl_mcount_wrapper_check F
+GLIBC_2.2 _flushlbf F
+GLIBC_2.2 _res_hconf D 0x30
+GLIBC_2.2 _sys_errlist D 0x11b8
+GLIBC_2.2 _sys_nerr D 0x4
+GLIBC_2.2 _sys_siglist D 0x100
+GLIBC_2.2 _test_and_set F
+GLIBC_2.2 addseverity F
+GLIBC_2.2 alphasort64 F
+GLIBC_2.2 argp_err_exit_status D 0x4
+GLIBC_2.2 argp_error F
+GLIBC_2.2 argp_failure F
+GLIBC_2.2 argp_help F
+GLIBC_2.2 argp_parse F
+GLIBC_2.2 argp_program_bug_address D 0x4
+GLIBC_2.2 argp_program_version D 0x4
+GLIBC_2.2 argp_program_version_hook D 0x4
+GLIBC_2.2 argp_state_help F
+GLIBC_2.2 argp_usage F
+GLIBC_2.2 authdes_create F
+GLIBC_2.2 authdes_getucred F
+GLIBC_2.2 authdes_pk_create F
+GLIBC_2.2 backtrace F
+GLIBC_2.2 backtrace_symbols F
+GLIBC_2.2 backtrace_symbols_fd F
+GLIBC_2.2 bind_textdomain_codeset F
+GLIBC_2.2 capget F
+GLIBC_2.2 capset F
+GLIBC_2.2 cbc_crypt F
+GLIBC_2.2 clntunix_create F
+GLIBC_2.2 creat64 F
+GLIBC_2.2 dcngettext F
+GLIBC_2.2 des_setparity F
+GLIBC_2.2 dngettext F
+GLIBC_2.2 ecb_crypt F
+GLIBC_2.2 endutxent F
+GLIBC_2.2 fattach F
+GLIBC_2.2 fclose F
+GLIBC_2.2 fdetach F
+GLIBC_2.2 fdopen F
+GLIBC_2.2 ffsl F
+GLIBC_2.2 ffsll F
+GLIBC_2.2 fgetc_unlocked F
+GLIBC_2.2 fgetpos F
+GLIBC_2.2 fgetpos64 F
+GLIBC_2.2 fgets_unlocked 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 fmtmsg F
+GLIBC_2.2 fopen F
+GLIBC_2.2 fopen64 F
+GLIBC_2.2 fopencookie F
+GLIBC_2.2 fputs_unlocked F
+GLIBC_2.2 fputwc F
+GLIBC_2.2 fputwc_unlocked F
+GLIBC_2.2 fputws F
+GLIBC_2.2 fputws_unlocked F
+GLIBC_2.2 fread_unlocked F
+GLIBC_2.2 freopen64 F
+GLIBC_2.2 fseeko F
+GLIBC_2.2 fseeko64 F
+GLIBC_2.2 fsetpos F
+GLIBC_2.2 fsetpos64 F
+GLIBC_2.2 fstatfs64 F
+GLIBC_2.2 fstatvfs F
+GLIBC_2.2 fstatvfs64 F
+GLIBC_2.2 ftello F
+GLIBC_2.2 ftello64 F
+GLIBC_2.2 ftruncate64 F
+GLIBC_2.2 ftw64 F
+GLIBC_2.2 fwide F
+GLIBC_2.2 fwprintf F
+GLIBC_2.2 fwrite_unlocked F
+GLIBC_2.2 fwscanf F
+GLIBC_2.2 gai_strerror F
+GLIBC_2.2 getaliasbyname_r F
+GLIBC_2.2 getaliasent_r F
+GLIBC_2.2 getcontext F
+GLIBC_2.2 getdate F
+GLIBC_2.2 getdate_err D 0x4
+GLIBC_2.2 getdate_r F
+GLIBC_2.2 getdirentries64 F
+GLIBC_2.2 getgrent_r F
+GLIBC_2.2 getgrgid_r F
+GLIBC_2.2 getgrnam_r F
+GLIBC_2.2 gethostbyaddr_r F
+GLIBC_2.2 gethostbyname2_r F
+GLIBC_2.2 gethostbyname_r F
+GLIBC_2.2 gethostent_r F
+GLIBC_2.2 getloadavg F
+GLIBC_2.2 getmsg F
+GLIBC_2.2 getnameinfo F
+GLIBC_2.2 getnetbyaddr_r F
+GLIBC_2.2 getnetbyname_r F
+GLIBC_2.2 getnetent_r F
+GLIBC_2.2 getnetname F
+GLIBC_2.2 getpmsg F
+GLIBC_2.2 getprotobyname_r F
+GLIBC_2.2 getprotobynumber_r F
+GLIBC_2.2 getprotoent_r F
+GLIBC_2.2 getpt F
+GLIBC_2.2 getpwent_r F
+GLIBC_2.2 getpwnam_r F
+GLIBC_2.2 getpwuid_r F
+GLIBC_2.2 getrlimit64 F
+GLIBC_2.2 getrpcbyname_r F
+GLIBC_2.2 getrpcbynumber_r F
+GLIBC_2.2 getrpcent_r F
+GLIBC_2.2 getservbyname_r F
+GLIBC_2.2 getservbyport_r F
+GLIBC_2.2 getservent_r F
+GLIBC_2.2 getspent_r F
+GLIBC_2.2 getspnam_r F
+GLIBC_2.2 getutmp F
+GLIBC_2.2 getutmpx F
+GLIBC_2.2 getutxent F
+GLIBC_2.2 getutxid F
+GLIBC_2.2 getutxline F
+GLIBC_2.2 getwc F
+GLIBC_2.2 getwc_unlocked F
+GLIBC_2.2 getwchar F
+GLIBC_2.2 getwchar_unlocked F
+GLIBC_2.2 glob64 F
+GLIBC_2.2 globfree64 F
+GLIBC_2.2 gnu_get_libc_release F
+GLIBC_2.2 gnu_get_libc_version F
+GLIBC_2.2 grantpt F
+GLIBC_2.2 host2netname F
+GLIBC_2.2 iconv F
+GLIBC_2.2 iconv_close F
+GLIBC_2.2 iconv_open F
+GLIBC_2.2 if_freenameindex F
+GLIBC_2.2 if_indextoname F
+GLIBC_2.2 if_nameindex F
+GLIBC_2.2 if_nametoindex F
+GLIBC_2.2 imaxabs F
+GLIBC_2.2 imaxdiv F
+GLIBC_2.2 in6addr_any D 0x10
+GLIBC_2.2 in6addr_loopback D 0x10
+GLIBC_2.2 iruserok_af F
+GLIBC_2.2 isastream F
+GLIBC_2.2 iswblank F
+GLIBC_2.2 key_decryptsession F
+GLIBC_2.2 key_decryptsession_pk F
+GLIBC_2.2 key_encryptsession F
+GLIBC_2.2 key_encryptsession_pk F
+GLIBC_2.2 key_gendes F
+GLIBC_2.2 key_get_conv F
+GLIBC_2.2 key_secretkey_is_set F
+GLIBC_2.2 key_setnet F
+GLIBC_2.2 key_setsecret F
+GLIBC_2.2 localeconv F
+GLIBC_2.2 lockf64 F
+GLIBC_2.2 lseek64 F
+GLIBC_2.2 makecontext F
+GLIBC_2.2 mcheck_check_all F
+GLIBC_2.2 mcheck_pedantic F
+GLIBC_2.2 mempcpy F
+GLIBC_2.2 memrchr F
+GLIBC_2.2 mincore F
+GLIBC_2.2 mkdtemp F
+GLIBC_2.2 mkstemp64 F
+GLIBC_2.2 mmap64 F
+GLIBC_2.2 moncontrol F
+GLIBC_2.2 msgctl F
+GLIBC_2.2 netname2host F
+GLIBC_2.2 netname2user F
+GLIBC_2.2 nftw F
+GLIBC_2.2 nftw64 F
+GLIBC_2.2 ngettext F
+GLIBC_2.2 ntp_adjtime F
+GLIBC_2.2 ntp_gettime F
+GLIBC_2.2 open64 F
+GLIBC_2.2 passwd2des F
+GLIBC_2.2 pclose F
+GLIBC_2.2 popen F
+GLIBC_2.2 posix_fadvise F
+GLIBC_2.2 posix_fadvise64 F
+GLIBC_2.2 posix_fallocate F
+GLIBC_2.2 posix_fallocate64 F
+GLIBC_2.2 posix_madvise F
+GLIBC_2.2 posix_memalign F
+GLIBC_2.2 posix_spawn F
+GLIBC_2.2 posix_spawn_file_actions_addclose F
+GLIBC_2.2 posix_spawn_file_actions_adddup2 F
+GLIBC_2.2 posix_spawn_file_actions_addopen F
+GLIBC_2.2 posix_spawn_file_actions_destroy F
+GLIBC_2.2 posix_spawn_file_actions_init F
+GLIBC_2.2 posix_spawnattr_destroy F
+GLIBC_2.2 posix_spawnattr_getflags F
+GLIBC_2.2 posix_spawnattr_getpgroup F
+GLIBC_2.2 posix_spawnattr_getschedparam F
+GLIBC_2.2 posix_spawnattr_getschedpolicy F
+GLIBC_2.2 posix_spawnattr_getsigdefault F
+GLIBC_2.2 posix_spawnattr_getsigmask F
+GLIBC_2.2 posix_spawnattr_init F
+GLIBC_2.2 posix_spawnattr_setflags F
+GLIBC_2.2 posix_spawnattr_setpgroup F
+GLIBC_2.2 posix_spawnattr_setschedparam F
+GLIBC_2.2 posix_spawnattr_setschedpolicy F
+GLIBC_2.2 posix_spawnattr_setsigdefault F
+GLIBC_2.2 posix_spawnattr_setsigmask F
+GLIBC_2.2 posix_spawnp F
+GLIBC_2.2 pread F
+GLIBC_2.2 pread64 F
+GLIBC_2.2 printf_size F
+GLIBC_2.2 printf_size_info F
+GLIBC_2.2 pthread_attr_init F
+GLIBC_2.2 ptsname F
+GLIBC_2.2 ptsname_r F
+GLIBC_2.2 putgrent F
+GLIBC_2.2 putmsg F
+GLIBC_2.2 putpmsg F
+GLIBC_2.2 pututxline 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 pwrite F
+GLIBC_2.2 pwrite64 F
+GLIBC_2.2 rawmemchr 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 rtime F
+GLIBC_2.2 ruserok_af F
+GLIBC_2.2 scandir64 F
+GLIBC_2.2 semctl F
+GLIBC_2.2 sendfile F
+GLIBC_2.2 setrlimit64 F
+GLIBC_2.2 setutxent F
+GLIBC_2.2 shmctl F
+GLIBC_2.2 sighold F
+GLIBC_2.2 sigignore F
+GLIBC_2.2 sigqueue F
+GLIBC_2.2 sigrelse F
+GLIBC_2.2 sigset F
+GLIBC_2.2 sigtimedwait F
+GLIBC_2.2 sigwaitinfo F
+GLIBC_2.2 statfs64 F
+GLIBC_2.2 statvfs F
+GLIBC_2.2 statvfs64 F
+GLIBC_2.2 strcasestr F
+GLIBC_2.2 strchrnul F
+GLIBC_2.2 strtoimax F
+GLIBC_2.2 strtoumax F
+GLIBC_2.2 strverscmp 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 svcunix_create F
+GLIBC_2.2 svcunixfd_create F
+GLIBC_2.2 swapcontext F
+GLIBC_2.2 swprintf F
+GLIBC_2.2 swscanf F
+GLIBC_2.2 sys_errlist D 0x11b8
+GLIBC_2.2 sys_nerr D 0x4
+GLIBC_2.2 sys_sigabbrev D 0x100
+GLIBC_2.2 sys_siglist D 0x100
+GLIBC_2.2 sysv_signal F
+GLIBC_2.2 tcgetsid F
+GLIBC_2.2 tdestroy F
+GLIBC_2.2 tmpfile F
+GLIBC_2.2 tmpfile64 F
+GLIBC_2.2 truncate64 F
+GLIBC_2.2 umount2 F
+GLIBC_2.2 ungetwc F
+GLIBC_2.2 unlockpt F
+GLIBC_2.2 updwtmpx F
+GLIBC_2.2 user2netname F
+GLIBC_2.2 utmpxname F
+GLIBC_2.2 versionsort 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 waitid F
+GLIBC_2.2 wcscasecmp F
+GLIBC_2.2 wcschrnul F
+GLIBC_2.2 wcsftime F
+GLIBC_2.2 wcsncasecmp F
+GLIBC_2.2 wcsnlen F
+GLIBC_2.2 wcstoimax F
+GLIBC_2.2 wcstoll F
+GLIBC_2.2 wcstoull F
+GLIBC_2.2 wcstoumax F
+GLIBC_2.2 wcswcs F
+GLIBC_2.2 wmempcpy F
+GLIBC_2.2 wordexp F
+GLIBC_2.2 wordfree F
+GLIBC_2.2 wprintf F
+GLIBC_2.2 wscanf F
+GLIBC_2.2 xdecrypt F
+GLIBC_2.2 xdr_authdes_cred F
+GLIBC_2.2 xdr_authdes_verf F
+GLIBC_2.2 xdr_getcredres F
+GLIBC_2.2 xdr_hyper F
+GLIBC_2.2 xdr_int16_t F
+GLIBC_2.2 xdr_int32_t F
+GLIBC_2.2 xdr_int64_t F
+GLIBC_2.2 xdr_int8_t F
+GLIBC_2.2 xdr_longlong_t F
+GLIBC_2.2 xdr_netnamestr F
+GLIBC_2.2 xdr_sizeof F
+GLIBC_2.2 xdr_u_hyper F
+GLIBC_2.2 xdr_u_longlong_t F
+GLIBC_2.2 xdr_uint16_t F
+GLIBC_2.2 xdr_uint32_t F
+GLIBC_2.2 xdr_uint64_t F
+GLIBC_2.2 xdr_uint8_t F
+GLIBC_2.2 xdr_unixcred 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 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 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 0x200
+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 0x200
+GLIBC_2.3.3 sys_siglist D 0x200
+GLIBC_2.3.4 GLIBC_2.3.4 A
+GLIBC_2.3.4 __chk_fail F
+GLIBC_2.3.4 __fprintf_chk F
+GLIBC_2.3.4 __gets_chk F
+GLIBC_2.3.4 __memcpy_chk F
+GLIBC_2.3.4 __memmove_chk F
+GLIBC_2.3.4 __mempcpy_chk F
+GLIBC_2.3.4 __memset_chk F
+GLIBC_2.3.4 __printf_chk F
+GLIBC_2.3.4 __snprintf_chk F
+GLIBC_2.3.4 __sprintf_chk F
+GLIBC_2.3.4 __stpcpy_chk F
+GLIBC_2.3.4 __strcat_chk F
+GLIBC_2.3.4 __strcpy_chk F
+GLIBC_2.3.4 __strncat_chk F
+GLIBC_2.3.4 __strncpy_chk F
+GLIBC_2.3.4 __vfprintf_chk F
+GLIBC_2.3.4 __vprintf_chk F
+GLIBC_2.3.4 __vsnprintf_chk F
+GLIBC_2.3.4 __vsprintf_chk F
+GLIBC_2.3.4 __xpg_strerror_r F
+GLIBC_2.3.4 getipv4sourcefilter F
+GLIBC_2.3.4 getsourcefilter F
+GLIBC_2.3.4 regexec F
+GLIBC_2.3.4 sched_getaffinity F
+GLIBC_2.3.4 sched_setaffinity F
+GLIBC_2.3.4 setipv4sourcefilter F
+GLIBC_2.3.4 setsourcefilter F
+GLIBC_2.3.4 xdr_quad_t F
+GLIBC_2.3.4 xdr_u_quad_t F
+GLIBC_2.4 GLIBC_2.4 A
+GLIBC_2.4 __confstr_chk F
+GLIBC_2.4 __fgets_chk F
+GLIBC_2.4 __fgets_unlocked_chk F
+GLIBC_2.4 __fgetws_chk F
+GLIBC_2.4 __fgetws_unlocked_chk F
+GLIBC_2.4 __fwprintf_chk F
+GLIBC_2.4 __fxstatat F
+GLIBC_2.4 __fxstatat64 F
+GLIBC_2.4 __getcwd_chk F
+GLIBC_2.4 __getdomainname_chk F
+GLIBC_2.4 __getgroups_chk F
+GLIBC_2.4 __gethostname_chk F
+GLIBC_2.4 __getlogin_r_chk F
+GLIBC_2.4 __getwd_chk F
+GLIBC_2.4 __mbsnrtowcs_chk F
+GLIBC_2.4 __mbsrtowcs_chk F
+GLIBC_2.4 __mbstowcs_chk F
+GLIBC_2.4 __pread64_chk F
+GLIBC_2.4 __pread_chk F
+GLIBC_2.4 __ptsname_r_chk F
+GLIBC_2.4 __read_chk F
+GLIBC_2.4 __readlink_chk F
+GLIBC_2.4 __realpath_chk F
+GLIBC_2.4 __recv_chk F
+GLIBC_2.4 __recvfrom_chk F
+GLIBC_2.4 __stack_chk_fail F
+GLIBC_2.4 __stpncpy_chk F
+GLIBC_2.4 __swprintf_chk F
+GLIBC_2.4 __syslog_chk F
+GLIBC_2.4 __ttyname_r_chk F
+GLIBC_2.4 __vfwprintf_chk F
+GLIBC_2.4 __vswprintf_chk F
+GLIBC_2.4 __vsyslog_chk F
+GLIBC_2.4 __vwprintf_chk F
+GLIBC_2.4 __wcpcpy_chk F
+GLIBC_2.4 __wcpncpy_chk F
+GLIBC_2.4 __wcrtomb_chk F
+GLIBC_2.4 __wcscat_chk F
+GLIBC_2.4 __wcscpy_chk F
+GLIBC_2.4 __wcsncat_chk F
+GLIBC_2.4 __wcsncpy_chk F
+GLIBC_2.4 __wcsnrtombs_chk F
+GLIBC_2.4 __wcsrtombs_chk F
+GLIBC_2.4 __wcstombs_chk F
+GLIBC_2.4 __wctomb_chk F
+GLIBC_2.4 __wmemcpy_chk F
+GLIBC_2.4 __wmemmove_chk F
+GLIBC_2.4 __wmempcpy_chk F
+GLIBC_2.4 __wmemset_chk F
+GLIBC_2.4 __wprintf_chk F
+GLIBC_2.4 __xmknodat F
+GLIBC_2.4 eaccess F
+GLIBC_2.4 faccessat F
+GLIBC_2.4 fchmodat F
+GLIBC_2.4 fchownat F
+GLIBC_2.4 fdopendir F
+GLIBC_2.4 futimesat F
+GLIBC_2.4 inotify_add_watch F
+GLIBC_2.4 inotify_init F
+GLIBC_2.4 inotify_rm_watch F
+GLIBC_2.4 linkat F
+GLIBC_2.4 mkdirat F
+GLIBC_2.4 mkfifoat F
+GLIBC_2.4 open_wmemstream F
+GLIBC_2.4 openat F
+GLIBC_2.4 openat64 F
+GLIBC_2.4 ppoll F
+GLIBC_2.4 readlinkat F
+GLIBC_2.4 renameat F
+GLIBC_2.4 symlinkat F
+GLIBC_2.4 unlinkat F
+GLIBC_2.4 unshare F
+GLIBC_2.5 GLIBC_2.5 A
+GLIBC_2.5 __readlinkat_chk F
+GLIBC_2.5 inet6_opt_append F
+GLIBC_2.5 inet6_opt_find F
+GLIBC_2.5 inet6_opt_finish F
+GLIBC_2.5 inet6_opt_get_val F
+GLIBC_2.5 inet6_opt_init F
+GLIBC_2.5 inet6_opt_next F
+GLIBC_2.5 inet6_opt_set_val F
+GLIBC_2.5 inet6_rth_add F
+GLIBC_2.5 inet6_rth_getaddr F
+GLIBC_2.5 inet6_rth_init F
+GLIBC_2.5 inet6_rth_reverse F
+GLIBC_2.5 inet6_rth_segments F
+GLIBC_2.5 inet6_rth_space F
+GLIBC_2.5 splice F
+GLIBC_2.5 tee F
+GLIBC_2.5 vmsplice F
+GLIBC_2.6 GLIBC_2.6 A
+GLIBC_2.6 __sched_cpucount F
+GLIBC_2.6 epoll_pwait F
+GLIBC_2.6 futimens F
+GLIBC_2.6 sched_getcpu F
+GLIBC_2.6 strerror_l F
+GLIBC_2.6 sync_file_range F
+GLIBC_2.6 utimensat F
+GLIBC_2.7 GLIBC_2.7 A
+GLIBC_2.7 __fread_chk F
+GLIBC_2.7 __fread_unlocked_chk F
+GLIBC_2.7 __isoc99_fscanf F
+GLIBC_2.7 __isoc99_fwscanf F
+GLIBC_2.7 __isoc99_scanf F
+GLIBC_2.7 __isoc99_sscanf F
+GLIBC_2.7 __isoc99_swscanf F
+GLIBC_2.7 __isoc99_vfscanf F
+GLIBC_2.7 __isoc99_vfwscanf F
+GLIBC_2.7 __isoc99_vscanf F
+GLIBC_2.7 __isoc99_vsscanf F
+GLIBC_2.7 __isoc99_vswscanf F
+GLIBC_2.7 __isoc99_vwscanf F
+GLIBC_2.7 __isoc99_wscanf F
+GLIBC_2.7 __open64_2 F
+GLIBC_2.7 __open_2 F
+GLIBC_2.7 __openat64_2 F
+GLIBC_2.7 __openat_2 F
+GLIBC_2.7 __sched_cpualloc F
+GLIBC_2.7 __sched_cpufree F
+GLIBC_2.7 eventfd F
+GLIBC_2.7 eventfd_read F
+GLIBC_2.7 eventfd_write F
+GLIBC_2.7 mkostemp F
+GLIBC_2.7 mkostemp64 F
+GLIBC_2.7 signalfd F
+GLIBC_2.8 GLIBC_2.8 A
+GLIBC_2.8 __asprintf_chk F
+GLIBC_2.8 __dprintf_chk F
+GLIBC_2.8 __obstack_printf_chk F
+GLIBC_2.8 __obstack_vprintf_chk F
+GLIBC_2.8 __vasprintf_chk F
+GLIBC_2.8 __vdprintf_chk F
+GLIBC_2.8 qsort_r F
+GLIBC_2.8 timerfd_create F
+GLIBC_2.8 timerfd_gettime F
+GLIBC_2.8 timerfd_settime F
+GLIBC_2.9 GLIBC_2.9 A
+GLIBC_2.9 dup3 F
+GLIBC_2.9 epoll_create1 F
+GLIBC_2.9 inotify_init1 F
+GLIBC_2.9 pipe2 F
+_gp_disp _gp_disp A
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/readahead.c b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/readahead.c
new file mode 100644
index 0000000000..80170c3e8a
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/readahead.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/arm/readahead.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/syscalls.list b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/syscalls.list
new file mode 100644
index 0000000000..f357b5c918
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/syscalls.list
@@ -0,0 +1,5 @@
+# File name Caller Syscall name # args Strong name Weak names
+
+prlimit64 EXTRA prlimit64 i:iipp prlimit64
+
+fanotify_mark EXTRA fanotify_mark i:iiiiis fanotify_mark
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/sysdep.h b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/sysdep.h
new file mode 100644
index 0000000000..e9e3ee7e82
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips32/sysdep.h
@@ -0,0 +1,396 @@
+/* Copyright (C) 2000-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _LINUX_MIPS_MIPS32_SYSDEP_H
+#define _LINUX_MIPS_MIPS32_SYSDEP_H 1
+
+/* There is some commonality. */
+#include <sysdeps/unix/sysv/linux/sysdep.h>
+#include <sysdeps/unix/mips/mips32/sysdep.h>
+
+#include <tls.h>
+
+/* In order to get __set_errno() definition in INLINE_SYSCALL. */
+#ifndef __ASSEMBLER__
+#include <errno.h>
+#endif
+
+/* For Linux we can use the system call table in the header file
+ /usr/include/asm/unistd.h
+ of the kernel. But these symbols do not follow the SYS_* syntax
+ so we have to redefine the `SYS_ify' macro here. */
+#undef SYS_ify
+#define SYS_ify(syscall_name) __NR_##syscall_name
+
+#ifdef __ASSEMBLER__
+
+/* We don't want the label for the error handler to be visible in the symbol
+ table when we define it here. */
+#ifdef __PIC__
+# define SYSCALL_ERROR_LABEL 99b
+#endif
+
+#else /* ! __ASSEMBLER__ */
+
+/* Define a macro which expands into the inline wrapper code for a system
+ call. */
+#undef INLINE_SYSCALL
+#define INLINE_SYSCALL(name, nr, args...) \
+ ({ INTERNAL_SYSCALL_DECL (_sc_err); \
+ long result_var = INTERNAL_SYSCALL (name, _sc_err, nr, args); \
+ if ( INTERNAL_SYSCALL_ERROR_P (result_var, _sc_err) ) \
+ { \
+ __set_errno (INTERNAL_SYSCALL_ERRNO (result_var, _sc_err)); \
+ result_var = -1L; \
+ } \
+ result_var; })
+
+#undef INTERNAL_SYSCALL_DECL
+#define INTERNAL_SYSCALL_DECL(err) long err __attribute__ ((unused))
+
+#undef INTERNAL_SYSCALL_ERROR_P
+#define INTERNAL_SYSCALL_ERROR_P(val, err) ((void) (val), (long) (err))
+
+#undef INTERNAL_SYSCALL_ERRNO
+#define INTERNAL_SYSCALL_ERRNO(val, err) ((void) (err), val)
+
+/* Note that the original Linux syscall restart convention required the
+ instruction immediately preceding SYSCALL to initialize $v0 with the
+ syscall number. Then if a restart triggered, $v0 would have been
+ clobbered by the syscall interrupted, and needed to be reinititalized.
+ The kernel would decrement the PC by 4 before switching back to the
+ user mode so that $v0 had been reloaded before SYSCALL was executed
+ again. This implied the place $v0 was loaded from must have been
+ preserved across a syscall, e.g. an immediate, static register, stack
+ slot, etc.
+
+ The convention was relaxed in Linux with a change applied to the kernel
+ GIT repository as commit 96187fb0bc30cd7919759d371d810e928048249d, that
+ first appeared in the 2.6.36 release. Since then the kernel has had
+ code that reloads $v0 upon syscall restart and resumes right at the
+ SYSCALL instruction, so no special arrangement is needed anymore.
+
+ For backwards compatibility with existing kernel binaries we support
+ the old convention by choosing the instruction preceding SYSCALL
+ carefully. This also means we have to force a 32-bit encoding of the
+ microMIPS MOVE instruction if one is used. */
+
+#ifdef __mips_micromips
+# define MOVE32 "move32"
+#else
+# define MOVE32 "move"
+#endif
+
+#undef INTERNAL_SYSCALL
+#undef INTERNAL_SYSCALL_NCS
+
+#ifdef __mips16
+/* There's no MIPS16 syscall instruction, so we go through out-of-line
+ standard MIPS wrappers. These do use inline snippets below though,
+ through INTERNAL_SYSCALL_MIPS16. Spilling the syscall number to
+ memory gives the best code in that case, avoiding the need to save
+ and restore a static register. */
+
+# include <mips16-syscall.h>
+
+# define INTERNAL_SYSCALL(name, err, nr, args...) \
+ INTERNAL_SYSCALL_NCS (SYS_ify (name), err, nr, args)
+
+# define INTERNAL_SYSCALL_NCS(number, err, nr, args...) \
+({ \
+ union __mips16_syscall_return _sc_ret; \
+ _sc_ret.val = __mips16_syscall##nr (args, number); \
+ err = _sc_ret.reg.v1; \
+ _sc_ret.reg.v0; \
+})
+
+# define INTERNAL_SYSCALL_MIPS16(number, err, nr, args...) \
+ internal_syscall##nr ("lw\t%0, %2\n\t", \
+ "R" (number), \
+ 0, err, args)
+
+#else /* !__mips16 */
+# define INTERNAL_SYSCALL(name, err, nr, args...) \
+ internal_syscall##nr ("li\t%0, %2\t\t\t# " #name "\n\t", \
+ "IK" (SYS_ify (name)), \
+ 0, err, args)
+
+# define INTERNAL_SYSCALL_NCS(number, err, nr, args...) \
+ internal_syscall##nr (MOVE32 "\t%0, %2\n\t", \
+ "r" (__s0), \
+ number, err, args)
+
+#endif /* !__mips16 */
+
+#define internal_syscall0(v0_init, input, number, err, dummy...) \
+({ \
+ long _sys_result; \
+ \
+ { \
+ register long __s0 asm ("$16") __attribute__ ((unused)) \
+ = (number); \
+ register long __v0 asm ("$2"); \
+ register long __a3 asm ("$7"); \
+ __asm__ volatile ( \
+ ".set\tnoreorder\n\t" \
+ v0_init \
+ "syscall\n\t" \
+ ".set reorder" \
+ : "=r" (__v0), "=r" (__a3) \
+ : input \
+ : __SYSCALL_CLOBBERS); \
+ err = __a3; \
+ _sys_result = __v0; \
+ } \
+ _sys_result; \
+})
+
+#define internal_syscall1(v0_init, input, number, err, arg1) \
+({ \
+ long _sys_result; \
+ \
+ { \
+ register long __s0 asm ("$16") __attribute__ ((unused)) \
+ = (number); \
+ register long __v0 asm ("$2"); \
+ register long __a0 asm ("$4") = (long) (arg1); \
+ register long __a3 asm ("$7"); \
+ __asm__ volatile ( \
+ ".set\tnoreorder\n\t" \
+ v0_init \
+ "syscall\n\t" \
+ ".set reorder" \
+ : "=r" (__v0), "=r" (__a3) \
+ : input, "r" (__a0) \
+ : __SYSCALL_CLOBBERS); \
+ err = __a3; \
+ _sys_result = __v0; \
+ } \
+ _sys_result; \
+})
+
+#define internal_syscall2(v0_init, input, number, err, arg1, arg2) \
+({ \
+ long _sys_result; \
+ \
+ { \
+ register long __s0 asm ("$16") __attribute__ ((unused)) \
+ = (number); \
+ register long __v0 asm ("$2"); \
+ register long __a0 asm ("$4") = (long) (arg1); \
+ register long __a1 asm ("$5") = (long) (arg2); \
+ register long __a3 asm ("$7"); \
+ __asm__ volatile ( \
+ ".set\tnoreorder\n\t" \
+ v0_init \
+ "syscall\n\t" \
+ ".set\treorder" \
+ : "=r" (__v0), "=r" (__a3) \
+ : input, "r" (__a0), "r" (__a1) \
+ : __SYSCALL_CLOBBERS); \
+ err = __a3; \
+ _sys_result = __v0; \
+ } \
+ _sys_result; \
+})
+
+#define internal_syscall3(v0_init, input, number, err, \
+ arg1, arg2, arg3) \
+({ \
+ long _sys_result; \
+ \
+ { \
+ register long __s0 asm ("$16") __attribute__ ((unused)) \
+ = (number); \
+ register long __v0 asm ("$2"); \
+ register long __a0 asm ("$4") = (long) (arg1); \
+ register long __a1 asm ("$5") = (long) (arg2); \
+ register long __a2 asm ("$6") = (long) (arg3); \
+ register long __a3 asm ("$7"); \
+ __asm__ volatile ( \
+ ".set\tnoreorder\n\t" \
+ v0_init \
+ "syscall\n\t" \
+ ".set\treorder" \
+ : "=r" (__v0), "=r" (__a3) \
+ : input, "r" (__a0), "r" (__a1), "r" (__a2) \
+ : __SYSCALL_CLOBBERS); \
+ err = __a3; \
+ _sys_result = __v0; \
+ } \
+ _sys_result; \
+})
+
+#define internal_syscall4(v0_init, input, number, err, \
+ arg1, arg2, arg3, arg4) \
+({ \
+ long _sys_result; \
+ \
+ { \
+ register long __s0 asm ("$16") __attribute__ ((unused)) \
+ = (number); \
+ register long __v0 asm ("$2"); \
+ register long __a0 asm ("$4") = (long) (arg1); \
+ register long __a1 asm ("$5") = (long) (arg2); \
+ register long __a2 asm ("$6") = (long) (arg3); \
+ register long __a3 asm ("$7") = (long) (arg4); \
+ __asm__ volatile ( \
+ ".set\tnoreorder\n\t" \
+ v0_init \
+ "syscall\n\t" \
+ ".set\treorder" \
+ : "=r" (__v0), "+r" (__a3) \
+ : input, "r" (__a0), "r" (__a1), "r" (__a2) \
+ : __SYSCALL_CLOBBERS); \
+ err = __a3; \
+ _sys_result = __v0; \
+ } \
+ _sys_result; \
+})
+
+/* We need to use a frame pointer for the functions in which we
+ adjust $sp around the syscall, or debug information and unwind
+ information will be $sp relative and thus wrong during the syscall. As
+ of GCC 4.7, this is sufficient. */
+#define FORCE_FRAME_POINTER \
+ void *volatile __fp_force __attribute__ ((unused)) = alloca (4)
+
+#define internal_syscall5(v0_init, input, number, err, \
+ arg1, arg2, arg3, arg4, arg5) \
+({ \
+ long _sys_result; \
+ \
+ FORCE_FRAME_POINTER; \
+ { \
+ register long __s0 asm ("$16") __attribute__ ((unused)) \
+ = (number); \
+ register long __v0 asm ("$2"); \
+ register long __a0 asm ("$4") = (long) (arg1); \
+ register long __a1 asm ("$5") = (long) (arg2); \
+ register long __a2 asm ("$6") = (long) (arg3); \
+ register long __a3 asm ("$7") = (long) (arg4); \
+ __asm__ volatile ( \
+ ".set\tnoreorder\n\t" \
+ "subu\t$29, 32\n\t" \
+ "sw\t%6, 16($29)\n\t" \
+ v0_init \
+ "syscall\n\t" \
+ "addiu\t$29, 32\n\t" \
+ ".set\treorder" \
+ : "=r" (__v0), "+r" (__a3) \
+ : input, "r" (__a0), "r" (__a1), "r" (__a2), \
+ "r" ((long) (arg5)) \
+ : __SYSCALL_CLOBBERS); \
+ err = __a3; \
+ _sys_result = __v0; \
+ } \
+ _sys_result; \
+})
+
+#define internal_syscall6(v0_init, input, number, err, \
+ arg1, arg2, arg3, arg4, arg5, arg6) \
+({ \
+ long _sys_result; \
+ \
+ FORCE_FRAME_POINTER; \
+ { \
+ register long __s0 asm ("$16") __attribute__ ((unused)) \
+ = (number); \
+ register long __v0 asm ("$2"); \
+ register long __a0 asm ("$4") = (long) (arg1); \
+ register long __a1 asm ("$5") = (long) (arg2); \
+ register long __a2 asm ("$6") = (long) (arg3); \
+ register long __a3 asm ("$7") = (long) (arg4); \
+ __asm__ volatile ( \
+ ".set\tnoreorder\n\t" \
+ "subu\t$29, 32\n\t" \
+ "sw\t%6, 16($29)\n\t" \
+ "sw\t%7, 20($29)\n\t" \
+ v0_init \
+ "syscall\n\t" \
+ "addiu\t$29, 32\n\t" \
+ ".set\treorder" \
+ : "=r" (__v0), "+r" (__a3) \
+ : input, "r" (__a0), "r" (__a1), "r" (__a2), \
+ "r" ((long) (arg5)), "r" ((long) (arg6)) \
+ : __SYSCALL_CLOBBERS); \
+ err = __a3; \
+ _sys_result = __v0; \
+ } \
+ _sys_result; \
+})
+
+#define internal_syscall7(v0_init, input, number, err, \
+ arg1, arg2, arg3, arg4, arg5, arg6, arg7) \
+({ \
+ long _sys_result; \
+ \
+ FORCE_FRAME_POINTER; \
+ { \
+ register long __s0 asm ("$16") __attribute__ ((unused)) \
+ = (number); \
+ register long __v0 asm ("$2"); \
+ register long __a0 asm ("$4") = (long) (arg1); \
+ register long __a1 asm ("$5") = (long) (arg2); \
+ register long __a2 asm ("$6") = (long) (arg3); \
+ register long __a3 asm ("$7") = (long) (arg4); \
+ __asm__ volatile ( \
+ ".set\tnoreorder\n\t" \
+ "subu\t$29, 32\n\t" \
+ "sw\t%6, 16($29)\n\t" \
+ "sw\t%7, 20($29)\n\t" \
+ "sw\t%8, 24($29)\n\t" \
+ v0_init \
+ "syscall\n\t" \
+ "addiu\t$29, 32\n\t" \
+ ".set\treorder" \
+ : "=r" (__v0), "+r" (__a3) \
+ : input, "r" (__a0), "r" (__a1), "r" (__a2), \
+ "r" ((long) (arg5)), "r" ((long) (arg6)), "r" ((long) (arg7)) \
+ : __SYSCALL_CLOBBERS); \
+ err = __a3; \
+ _sys_result = __v0; \
+ } \
+ _sys_result; \
+})
+
+#define __SYSCALL_CLOBBERS "$1", "$3", "$8", "$9", "$10", "$11", "$12", "$13", \
+ "$14", "$15", "$24", "$25", "hi", "lo", "memory"
+
+/* Standard MIPS syscalls have an error flag, and return a positive errno
+ when the error flag is set. Emulate this behaviour for vsyscalls so that
+ the INTERNAL_SYSCALL_{ERROR_P,ERRNO} macros work correctly. */
+#define INTERNAL_VSYSCALL_CALL(funcptr, err, nr, args...) \
+ ({ \
+ long _ret = funcptr (args); \
+ err = ((unsigned long) (_ret) >= (unsigned long) -4095L); \
+ if (err) \
+ _ret = -_ret; \
+ _ret; \
+ })
+
+/* List of system calls which are supported as vsyscalls. */
+#define HAVE_CLOCK_GETTIME_VSYSCALL 1
+#define HAVE_GETTIMEOFDAY_VSYSCALL 1
+
+#endif /* __ASSEMBLER__ */
+
+/* Pointer mangling is not yet supported for MIPS. */
+#define PTR_MANGLE(var) (void) (var)
+#define PTR_DEMANGLE(var) (void) (var)
+
+#endif /* linux/mips/mips32/sysdep.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/Makefile b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/Makefile
new file mode 100644
index 0000000000..b4fb190bba
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/Makefile
@@ -0,0 +1,21 @@
+ifeq ($(subdir),socket)
+CFLAGS-recv.c += -fexceptions
+CFLAGS-send.c += -fexceptions
+endif
+
+ifeq ($(subdir),nptl)
+CFLAGS-recv.c += -fexceptions
+CFLAGS-send.c += -fexceptions
+endif
+
+ifeq ($(subdir),signal)
+# sigaction.c defines static functions in asms and refers to them from
+# C code, resulting in "'restore_rt' used but never defined" (which
+# has no corresponding warning option to allow it to be disabled with
+# diagnostic pragmas).
+CFLAGS-sigaction.c += -Wno-error
+endif
+
+ifeq ($(subdir),nptl)
+CFLAGS-sigaction.c += -Wno-error
+endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/configure b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/configure
new file mode 100644
index 0000000000..26bed649db
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/configure
@@ -0,0 +1,4 @@
+# This file is generated from configure.ac by Autoconf. DO NOT EDIT!
+ # Local configure fragment for sysdeps/unix/sysv/linux/mips/mips64.
+
+ldd_rewrite_script=$dir/ldd-rewrite.sed
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/configure.ac b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/configure.ac
new file mode 100644
index 0000000000..c137ec5552
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/configure.ac
@@ -0,0 +1,5 @@
+sinclude(./aclocal.m4)dnl Autoconf lossage
+GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
+# Local configure fragment for sysdeps/unix/sysv/linux/mips/mips64.
+
+ldd_rewrite_script=$dir/ldd-rewrite.sed
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/fxstat64.c b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/fxstat64.c
new file mode 100644
index 0000000000..5be899f2af
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/fxstat64.c
@@ -0,0 +1,44 @@
+/* fxstat64 using 64-bit MIPS fstat system call.
+ Copyright (C) 1997-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <stddef.h>
+#include <sys/stat.h>
+#include <kernel_stat.h>
+
+#include <sysdep.h>
+#include <sys/syscall.h>
+
+#include <xstatconv.h>
+
+/* Get information about the file FD in BUF. */
+
+int
+__fxstat64 (int vers, int fd, struct stat64 *buf)
+{
+ int result;
+ struct kernel_stat kbuf;
+
+ result = INLINE_SYSCALL (fstat, 2, fd, &kbuf);
+ if (result == 0)
+ result = __xstat64_conv (vers, &kbuf, buf);
+
+ return result;
+}
+
+hidden_def (__fxstat64)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/fxstatat64.c b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/fxstatat64.c
new file mode 100644
index 0000000000..0019359f72
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/fxstatat64.c
@@ -0,0 +1,55 @@
+/* Copyright (C) 2005-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <fcntl.h>
+#include <stddef.h>
+#include <stdio.h>
+#include <string.h>
+#include <sys/stat.h>
+#include <kernel_stat.h>
+
+#include <sysdep.h>
+#include <sys/syscall.h>
+
+#include <xstatconv.h>
+
+/* Get information about the file NAME in BUF. */
+
+int
+__fxstatat64 (int vers, int fd, const char *file, struct stat64 *st, int flag)
+{
+ if (__builtin_expect (vers != _STAT_VER_LINUX, 0))
+ {
+ __set_errno (EINVAL);
+ return -1;
+ }
+
+ int result;
+ INTERNAL_SYSCALL_DECL (err);
+ struct kernel_stat kst;
+
+ result = INTERNAL_SYSCALL (newfstatat, err, 4, fd, file, &kst, flag);
+ if (!__builtin_expect (INTERNAL_SYSCALL_ERROR_P (result, err), 1))
+ return __xstat64_conv (vers, &kst, st);
+ else
+ {
+ __set_errno (INTERNAL_SYSCALL_ERRNO (result, err));
+ return -1;
+ }
+}
+libc_hidden_def (__fxstatat64)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/ipc_priv.h b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/ipc_priv.h
new file mode 100644
index 0000000000..de7bb68b37
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/ipc_priv.h
@@ -0,0 +1,32 @@
+/* Old SysV permission definition for Linux. MIPS64 version.
+ Copyright (C) 2016-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sys/ipc.h>
+
+#define __IPC_64 0x100
+
+struct __old_ipc_perm
+{
+ __key_t __key; /* Key. */
+ int uid; /* Owner's user ID. */
+ int gid; /* Owner's group ID. */
+ int cuid; /* Creator's user ID. */
+ int cgid; /* Creator's group ID. */
+ int mode; /* Read/write permission. */
+ unsigned short int __seq; /* Sequence number. */
+};
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/ldconfig.h b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/ldconfig.h
new file mode 100644
index 0000000000..7430fb7718
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/ldconfig.h
@@ -0,0 +1,25 @@
+/* Copyright (C) 2001-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdeps/generic/ldconfig.h>
+
+#define SYSDEP_KNOWN_INTERPRETER_NAMES \
+ { "/lib32/ld.so.1", FLAG_ELF_LIBC6 }, \
+ { "/lib64/ld.so.1", FLAG_ELF_LIBC6 },
+#define SYSDEP_KNOWN_LIBRARY_NAMES \
+ { "libc.so.6", FLAG_ELF_LIBC6 }, \
+ { "libm.so.6", FLAG_ELF_LIBC6 },
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/ldd-rewrite.sed b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/ldd-rewrite.sed
new file mode 100644
index 0000000000..2c327327e0
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/ldd-rewrite.sed
@@ -0,0 +1 @@
+s_^\(RTLDLIST=\)\(.*lib\)\(\|32\|64\)\(/[^/]*\.so\.[0-9.]*\)[ ]*$_\1"\232\4 \264\4 \2\4"_
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/libBrokenLocale.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/libBrokenLocale.abilist
new file mode 100644
index 0000000000..4a56bb68a3
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/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/mips/mips64/libanl.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/libanl.abilist
new file mode 100644
index 0000000000..edabfb436e
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/libanl.abilist
@@ -0,0 +1,5 @@
+GLIBC_2.2.3 GLIBC_2.2.3 A
+GLIBC_2.2.3 gai_cancel F
+GLIBC_2.2.3 gai_error F
+GLIBC_2.2.3 gai_suspend F
+GLIBC_2.2.3 getaddrinfo_a F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/libcrypt.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/libcrypt.abilist
new file mode 100644
index 0000000000..4db2639336
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/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/mips/mips64/libdl.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/libdl.abilist
new file mode 100644
index 0000000000..b4c577e4a6
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/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.2 GLIBC_2.2 A
+GLIBC_2.2 dlopen F
+GLIBC_2.2 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/mips/mips64/libm.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist
new file mode 100644
index 0000000000..b9599fee34
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist
@@ -0,0 +1,465 @@
+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.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 __clog10 F
+GLIBC_2.2 __clog10f F
+GLIBC_2.2 __clog10l F
+GLIBC_2.2 __finite F
+GLIBC_2.2 __finitef F
+GLIBC_2.2 __finitel F
+GLIBC_2.2 __fpclassify F
+GLIBC_2.2 __fpclassifyf F
+GLIBC_2.2 __fpclassifyl F
+GLIBC_2.2 __signbit F
+GLIBC_2.2 __signbitf F
+GLIBC_2.2 __signbitl F
+GLIBC_2.2 cabs F
+GLIBC_2.2 cabsf F
+GLIBC_2.2 cabsl F
+GLIBC_2.2 cacos F
+GLIBC_2.2 cacosf F
+GLIBC_2.2 cacosh F
+GLIBC_2.2 cacoshf F
+GLIBC_2.2 cacoshl F
+GLIBC_2.2 cacosl F
+GLIBC_2.2 carg F
+GLIBC_2.2 cargf F
+GLIBC_2.2 cargl F
+GLIBC_2.2 casin F
+GLIBC_2.2 casinf F
+GLIBC_2.2 casinh F
+GLIBC_2.2 casinhf F
+GLIBC_2.2 casinhl F
+GLIBC_2.2 casinl F
+GLIBC_2.2 catan F
+GLIBC_2.2 catanf F
+GLIBC_2.2 catanh F
+GLIBC_2.2 catanhf F
+GLIBC_2.2 catanhl F
+GLIBC_2.2 catanl F
+GLIBC_2.2 ccos F
+GLIBC_2.2 ccosf F
+GLIBC_2.2 ccosh F
+GLIBC_2.2 ccoshf F
+GLIBC_2.2 ccoshl F
+GLIBC_2.2 ccosl F
+GLIBC_2.2 cexp F
+GLIBC_2.2 cexpf F
+GLIBC_2.2 cexpl F
+GLIBC_2.2 cimag F
+GLIBC_2.2 cimagf F
+GLIBC_2.2 cimagl F
+GLIBC_2.2 clog F
+GLIBC_2.2 clog10 F
+GLIBC_2.2 clog10f F
+GLIBC_2.2 clog10l F
+GLIBC_2.2 clogf F
+GLIBC_2.2 clogl F
+GLIBC_2.2 conj F
+GLIBC_2.2 conjf F
+GLIBC_2.2 conjl F
+GLIBC_2.2 cpow F
+GLIBC_2.2 cpowf F
+GLIBC_2.2 cpowl F
+GLIBC_2.2 cproj F
+GLIBC_2.2 cprojf F
+GLIBC_2.2 cprojl F
+GLIBC_2.2 creal F
+GLIBC_2.2 crealf F
+GLIBC_2.2 creall F
+GLIBC_2.2 csin F
+GLIBC_2.2 csinf F
+GLIBC_2.2 csinh F
+GLIBC_2.2 csinhf F
+GLIBC_2.2 csinhl F
+GLIBC_2.2 csinl F
+GLIBC_2.2 csqrt F
+GLIBC_2.2 csqrtf F
+GLIBC_2.2 csqrtl F
+GLIBC_2.2 ctan F
+GLIBC_2.2 ctanf F
+GLIBC_2.2 ctanh F
+GLIBC_2.2 ctanhf F
+GLIBC_2.2 ctanhl F
+GLIBC_2.2 ctanl F
+GLIBC_2.2 exp10 F
+GLIBC_2.2 exp10f F
+GLIBC_2.2 exp10l F
+GLIBC_2.2 exp2 F
+GLIBC_2.2 exp2f F
+GLIBC_2.2 exp2l F
+GLIBC_2.2 fdim F
+GLIBC_2.2 fdimf F
+GLIBC_2.2 fdiml F
+GLIBC_2.2 feclearexcept F
+GLIBC_2.2 fedisableexcept F
+GLIBC_2.2 feenableexcept F
+GLIBC_2.2 fegetenv F
+GLIBC_2.2 fegetexcept F
+GLIBC_2.2 fegetexceptflag F
+GLIBC_2.2 fegetround F
+GLIBC_2.2 feholdexcept F
+GLIBC_2.2 feraiseexcept F
+GLIBC_2.2 fesetenv F
+GLIBC_2.2 fesetexceptflag F
+GLIBC_2.2 fesetround F
+GLIBC_2.2 fetestexcept F
+GLIBC_2.2 feupdateenv F
+GLIBC_2.2 fma F
+GLIBC_2.2 fmaf F
+GLIBC_2.2 fmal F
+GLIBC_2.2 fmax F
+GLIBC_2.2 fmaxf F
+GLIBC_2.2 fmaxl F
+GLIBC_2.2 fmin F
+GLIBC_2.2 fminf F
+GLIBC_2.2 fminl F
+GLIBC_2.2 llrint F
+GLIBC_2.2 llrintf F
+GLIBC_2.2 llrintl F
+GLIBC_2.2 llround F
+GLIBC_2.2 llroundf F
+GLIBC_2.2 llroundl F
+GLIBC_2.2 log2 F
+GLIBC_2.2 log2f F
+GLIBC_2.2 log2l F
+GLIBC_2.2 lrint F
+GLIBC_2.2 lrintf F
+GLIBC_2.2 lrintl F
+GLIBC_2.2 lround F
+GLIBC_2.2 lroundf F
+GLIBC_2.2 lroundl F
+GLIBC_2.2 nan F
+GLIBC_2.2 nanf F
+GLIBC_2.2 nanl F
+GLIBC_2.2 nearbyint F
+GLIBC_2.2 nearbyintf F
+GLIBC_2.2 nearbyintl F
+GLIBC_2.2 nexttoward F
+GLIBC_2.2 nexttowardf F
+GLIBC_2.2 nexttowardl F
+GLIBC_2.2 pow10 F
+GLIBC_2.2 pow10f F
+GLIBC_2.2 pow10l F
+GLIBC_2.2 remquo F
+GLIBC_2.2 remquof F
+GLIBC_2.2 remquol F
+GLIBC_2.2 round F
+GLIBC_2.2 roundf F
+GLIBC_2.2 roundl F
+GLIBC_2.2 scalbln F
+GLIBC_2.2 scalblnf F
+GLIBC_2.2 scalblnl F
+GLIBC_2.2 sincos F
+GLIBC_2.2 sincosf F
+GLIBC_2.2 sincosl F
+GLIBC_2.2 tgamma F
+GLIBC_2.2 tgammaf F
+GLIBC_2.2 tgammal F
+GLIBC_2.2 trunc F
+GLIBC_2.2 truncf F
+GLIBC_2.2 truncl F
+GLIBC_2.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
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/libnsl.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/libnsl.abilist
new file mode 100644
index 0000000000..d5b6e6997d
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/libnsl.abilist
@@ -0,0 +1,123 @@
+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.2 GLIBC_2.2 A
+GLIBC_2.2 __free_fdresult F
+GLIBC_2.2 __nis_default_access F
+GLIBC_2.2 __nis_default_group F
+GLIBC_2.2 __nis_default_owner F
+GLIBC_2.2 __nis_default_ttl F
+GLIBC_2.2 __nis_finddirectory F
+GLIBC_2.2 __nis_hash F
+GLIBC_2.2 __nisbind_connect F
+GLIBC_2.2 __nisbind_create F
+GLIBC_2.2 __nisbind_destroy F
+GLIBC_2.2 __nisbind_next F
+GLIBC_2.2 nis_add F
+GLIBC_2.2 nis_add_entry F
+GLIBC_2.2 nis_addmember F
+GLIBC_2.2 nis_checkpoint F
+GLIBC_2.2 nis_clone_directory F
+GLIBC_2.2 nis_clone_object F
+GLIBC_2.2 nis_clone_result F
+GLIBC_2.2 nis_creategroup F
+GLIBC_2.2 nis_destroy_object F
+GLIBC_2.2 nis_destroygroup F
+GLIBC_2.2 nis_dir_cmp F
+GLIBC_2.2 nis_domain_of F
+GLIBC_2.2 nis_domain_of_r F
+GLIBC_2.2 nis_first_entry F
+GLIBC_2.2 nis_free_directory F
+GLIBC_2.2 nis_free_object F
+GLIBC_2.2 nis_free_request F
+GLIBC_2.2 nis_freenames F
+GLIBC_2.2 nis_freeresult F
+GLIBC_2.2 nis_freeservlist F
+GLIBC_2.2 nis_freetags F
+GLIBC_2.2 nis_getnames F
+GLIBC_2.2 nis_getservlist F
+GLIBC_2.2 nis_ismember F
+GLIBC_2.2 nis_leaf_of F
+GLIBC_2.2 nis_leaf_of_r F
+GLIBC_2.2 nis_lerror F
+GLIBC_2.2 nis_list F
+GLIBC_2.2 nis_local_directory F
+GLIBC_2.2 nis_local_group F
+GLIBC_2.2 nis_local_host F
+GLIBC_2.2 nis_local_principal F
+GLIBC_2.2 nis_lookup F
+GLIBC_2.2 nis_mkdir F
+GLIBC_2.2 nis_modify F
+GLIBC_2.2 nis_modify_entry F
+GLIBC_2.2 nis_name_of F
+GLIBC_2.2 nis_name_of_r F
+GLIBC_2.2 nis_next_entry F
+GLIBC_2.2 nis_perror F
+GLIBC_2.2 nis_ping F
+GLIBC_2.2 nis_print_directory F
+GLIBC_2.2 nis_print_entry F
+GLIBC_2.2 nis_print_group F
+GLIBC_2.2 nis_print_group_entry F
+GLIBC_2.2 nis_print_link F
+GLIBC_2.2 nis_print_object F
+GLIBC_2.2 nis_print_result F
+GLIBC_2.2 nis_print_rights F
+GLIBC_2.2 nis_print_table F
+GLIBC_2.2 nis_read_obj F
+GLIBC_2.2 nis_remove F
+GLIBC_2.2 nis_remove_entry F
+GLIBC_2.2 nis_removemember F
+GLIBC_2.2 nis_rmdir F
+GLIBC_2.2 nis_servstate F
+GLIBC_2.2 nis_sperrno F
+GLIBC_2.2 nis_sperror F
+GLIBC_2.2 nis_sperror_r F
+GLIBC_2.2 nis_stats F
+GLIBC_2.2 nis_verifygroup F
+GLIBC_2.2 nis_write_obj F
+GLIBC_2.2 readColdStartFile F
+GLIBC_2.2 writeColdStartFile F
+GLIBC_2.2 xdr_cback_data F
+GLIBC_2.2 xdr_obj_p F
+GLIBC_2.2 xdr_ypall F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
new file mode 100644
index 0000000000..ad55bdd0e2
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
@@ -0,0 +1,256 @@
+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.11 GLIBC_2.11 A
+GLIBC_2.11 pthread_sigqueue F
+GLIBC_2.12 GLIBC_2.12 A
+GLIBC_2.12 pthread_getname_np F
+GLIBC_2.12 pthread_mutex_consistent F
+GLIBC_2.12 pthread_mutexattr_getrobust F
+GLIBC_2.12 pthread_mutexattr_setrobust F
+GLIBC_2.12 pthread_setname_np F
+GLIBC_2.18 GLIBC_2.18 A
+GLIBC_2.18 pthread_getattr_default_np F
+GLIBC_2.18 pthread_setattr_default_np F
+GLIBC_2.2 GLIBC_2.2 A
+GLIBC_2.2 __libc_allocate_rtsig F
+GLIBC_2.2 __libc_current_sigrtmax F
+GLIBC_2.2 __libc_current_sigrtmin F
+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 __vfork 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_getguardsize F
+GLIBC_2.2 pthread_attr_getstack F
+GLIBC_2.2 pthread_attr_getstackaddr F
+GLIBC_2.2 pthread_attr_getstacksize F
+GLIBC_2.2 pthread_attr_init F
+GLIBC_2.2 pthread_attr_setguardsize F
+GLIBC_2.2 pthread_attr_setstack F
+GLIBC_2.2 pthread_attr_setstackaddr F
+GLIBC_2.2 pthread_attr_setstacksize F
+GLIBC_2.2 pthread_barrier_destroy F
+GLIBC_2.2 pthread_barrier_init F
+GLIBC_2.2 pthread_barrier_wait F
+GLIBC_2.2 pthread_barrierattr_destroy F
+GLIBC_2.2 pthread_barrierattr_init F
+GLIBC_2.2 pthread_barrierattr_setpshared F
+GLIBC_2.2 pthread_condattr_getpshared F
+GLIBC_2.2 pthread_condattr_setpshared F
+GLIBC_2.2 pthread_create F
+GLIBC_2.2 pthread_getconcurrency 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_gettype F
+GLIBC_2.2 pthread_mutexattr_setpshared F
+GLIBC_2.2 pthread_mutexattr_settype F
+GLIBC_2.2 pthread_rwlock_destroy F
+GLIBC_2.2 pthread_rwlock_init F
+GLIBC_2.2 pthread_rwlock_rdlock F
+GLIBC_2.2 pthread_rwlock_timedrdlock F
+GLIBC_2.2 pthread_rwlock_timedwrlock F
+GLIBC_2.2 pthread_rwlock_tryrdlock F
+GLIBC_2.2 pthread_rwlock_trywrlock F
+GLIBC_2.2 pthread_rwlock_unlock F
+GLIBC_2.2 pthread_rwlock_wrlock F
+GLIBC_2.2 pthread_rwlockattr_destroy F
+GLIBC_2.2 pthread_rwlockattr_getkind_np F
+GLIBC_2.2 pthread_rwlockattr_getpshared F
+GLIBC_2.2 pthread_rwlockattr_init F
+GLIBC_2.2 pthread_rwlockattr_setkind_np F
+GLIBC_2.2 pthread_rwlockattr_setpshared F
+GLIBC_2.2 pthread_setconcurrency 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_close F
+GLIBC_2.2 sem_destroy F
+GLIBC_2.2 sem_getvalue F
+GLIBC_2.2 sem_init F
+GLIBC_2.2 sem_open F
+GLIBC_2.2 sem_post F
+GLIBC_2.2 sem_timedwait F
+GLIBC_2.2 sem_trywait F
+GLIBC_2.2 sem_unlink F
+GLIBC_2.2 sem_wait F
+GLIBC_2.2.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_attr_setstack F
+GLIBC_2.3.3 pthread_attr_setstacksize 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/mips/mips64/librt.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/librt.abilist
new file mode 100644
index 0000000000..ff77db947e
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/librt.abilist
@@ -0,0 +1,46 @@
+GLIBC_2.2 GLIBC_2.2 A
+GLIBC_2.2 aio_cancel F
+GLIBC_2.2 aio_cancel64 F
+GLIBC_2.2 aio_error F
+GLIBC_2.2 aio_error64 F
+GLIBC_2.2 aio_fsync F
+GLIBC_2.2 aio_fsync64 F
+GLIBC_2.2 aio_init F
+GLIBC_2.2 aio_read F
+GLIBC_2.2 aio_read64 F
+GLIBC_2.2 aio_return F
+GLIBC_2.2 aio_return64 F
+GLIBC_2.2 aio_suspend F
+GLIBC_2.2 aio_suspend64 F
+GLIBC_2.2 aio_write F
+GLIBC_2.2 aio_write64 F
+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 lio_listio F
+GLIBC_2.2 lio_listio64 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/mips/mips64/libthread_db.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/libthread_db.abilist
new file mode 100644
index 0000000000..a8a8c2c68d
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/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/mips/mips64/libutil.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/libutil.abilist
new file mode 100644
index 0000000000..89c67755c4
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/libutil.abilist
@@ -0,0 +1,7 @@
+GLIBC_2.0 GLIBC_2.0 A
+GLIBC_2.0 forkpty F
+GLIBC_2.0 login F
+GLIBC_2.0 login_tty F
+GLIBC_2.0 logout F
+GLIBC_2.0 logwtmp F
+GLIBC_2.0 openpty F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/lxstat64.c b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/lxstat64.c
new file mode 100644
index 0000000000..1be716cc77
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/lxstat64.c
@@ -0,0 +1,43 @@
+/* lxstat64 using 64-bit MIPS lstat system call.
+ Copyright (C) 1997-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <stddef.h>
+#include <sys/stat.h>
+#include <kernel_stat.h>
+
+#include <sysdep.h>
+#include <sys/syscall.h>
+
+#include <xstatconv.h>
+
+/* Get information about the file NAME in BUF. */
+int
+__lxstat64 (int vers, const char *name, struct stat64 *buf)
+{
+ int result;
+ struct kernel_stat kbuf;
+
+ result = INLINE_SYSCALL (lstat, 2, name, &kbuf);
+ if (result == 0)
+ result = __xstat64_conv (vers, &kbuf, buf);
+
+ return result;
+}
+
+hidden_def (__lxstat64)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/msgctl.c b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/msgctl.c
new file mode 100644
index 0000000000..f379ecb7f5
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/msgctl.c
@@ -0,0 +1,25 @@
+/* Copyright (C) 2007-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <shlib-compat.h>
+
+#undef SHLIB_COMPAT
+#define SHLIB_COMPAT(a, b, c) 0
+
+#define DEFAULT_VERSION GLIBC_2_0
+
+#include <sysdeps/unix/sysv/linux/msgctl.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/n32/Versions b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/n32/Versions
new file mode 100644
index 0000000000..9621fb5cae
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/n32/Versions
@@ -0,0 +1,6 @@
+libc {
+ GLIBC_2.19 {
+ getrlimit64;
+ setrlimit64;
+ }
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/n32/c++-types.data b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/n32/c++-types.data
new file mode 100644
index 0000000000..39212e50bf
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/n32/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:x
+rlim64_t:y
+rlim_t:m
+sigset_t:10__sigset_t
+size_t:j
+socklen_t:j
+ssize_t:i
+suseconds_t:l
+time_t:l
+u_char:h
+uid_t:j
+uint:j
+u_int:j
+u_int16_t:t
+u_int32_t:j
+u_int64_t:y
+u_int8_t:h
+ulong:m
+u_long:m
+u_quad_t:y
+useconds_t:j
+ushort:t
+u_short:t
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/n32/fcntl.c b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/n32/fcntl.c
new file mode 100644
index 0000000000..ea951bc4f9
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/n32/fcntl.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/i386/fcntl.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/n32/ld.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/n32/ld.abilist
new file mode 100644
index 0000000000..bf55148c79
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/n32/ld.abilist
@@ -0,0 +1,13 @@
+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.2 GLIBC_2.2 A
+GLIBC_2.2 __libc_stack_end D 0x4
+GLIBC_2.2 _dl_mcount F
+GLIBC_2.3 GLIBC_2.3 A
+GLIBC_2.3 __tls_get_addr F
+GLIBC_2.4 GLIBC_2.4 A
+GLIBC_2.4 __stack_chk_guard D 0x4
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
new file mode 100644
index 0000000000..783aa73ab7
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
@@ -0,0 +1,2251 @@
+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 __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 __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 __uflow 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 _flush_cache 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 cachectl F
+GLIBC_2.0 cacheflush 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 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 sysmips 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.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 ntp_gettimex F
+GLIBC_2.12 recvmmsg F
+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 getrlimit64 F
+GLIBC_2.19 setrlimit64 F
+GLIBC_2.2 GLIBC_2.2 A
+GLIBC_2.2 _Exit F
+GLIBC_2.2 _IO_2_1_stderr_ D 0xa0
+GLIBC_2.2 _IO_2_1_stdin_ D 0xa0
+GLIBC_2.2 _IO_2_1_stdout_ D 0xa0
+GLIBC_2.2 _IO_adjust_wcolumn F
+GLIBC_2.2 _IO_do_write F
+GLIBC_2.2 _IO_fclose F
+GLIBC_2.2 _IO_fdopen F
+GLIBC_2.2 _IO_fgetpos F
+GLIBC_2.2 _IO_fgetpos64 F
+GLIBC_2.2 _IO_file_attach F
+GLIBC_2.2 _IO_file_close_it F
+GLIBC_2.2 _IO_file_finish F
+GLIBC_2.2 _IO_file_fopen F
+GLIBC_2.2 _IO_file_init F
+GLIBC_2.2 _IO_file_overflow F
+GLIBC_2.2 _IO_file_seekoff F
+GLIBC_2.2 _IO_file_setbuf F
+GLIBC_2.2 _IO_file_sync F
+GLIBC_2.2 _IO_file_underflow F
+GLIBC_2.2 _IO_file_write F
+GLIBC_2.2 _IO_file_xsputn F
+GLIBC_2.2 _IO_fopen 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_getline_info 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_popen F
+GLIBC_2.2 _IO_proc_close F
+GLIBC_2.2 _IO_proc_open 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 __asprintf F
+GLIBC_2.2 __assert F
+GLIBC_2.2 __backtrace F
+GLIBC_2.2 __backtrace_symbols F
+GLIBC_2.2 __backtrace_symbols_fd F
+GLIBC_2.2 __ctype32_tolower D 0x4
+GLIBC_2.2 __ctype32_toupper D 0x4
+GLIBC_2.2 __cxa_atexit F
+GLIBC_2.2 __cxa_finalize F
+GLIBC_2.2 __cyg_profile_func_enter F
+GLIBC_2.2 __cyg_profile_func_exit F
+GLIBC_2.2 __duplocale 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 __freelocale 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 __isalnum_l F
+GLIBC_2.2 __isalpha_l F
+GLIBC_2.2 __isascii_l F
+GLIBC_2.2 __isblank_l F
+GLIBC_2.2 __iscntrl_l F
+GLIBC_2.2 __isdigit_l F
+GLIBC_2.2 __isgraph_l F
+GLIBC_2.2 __islower_l F
+GLIBC_2.2 __isprint_l F
+GLIBC_2.2 __ispunct_l F
+GLIBC_2.2 __isspace_l F
+GLIBC_2.2 __isupper_l F
+GLIBC_2.2 __iswalnum_l F
+GLIBC_2.2 __iswalpha_l F
+GLIBC_2.2 __iswblank_l F
+GLIBC_2.2 __iswcntrl_l F
+GLIBC_2.2 __iswctype_l F
+GLIBC_2.2 __iswdigit_l F
+GLIBC_2.2 __iswgraph_l F
+GLIBC_2.2 __iswlower_l F
+GLIBC_2.2 __iswprint_l F
+GLIBC_2.2 __iswpunct_l F
+GLIBC_2.2 __iswspace_l F
+GLIBC_2.2 __iswupper_l F
+GLIBC_2.2 __iswxdigit_l F
+GLIBC_2.2 __isxdigit_l F
+GLIBC_2.2 __key_decryptsession_pk_LOCAL D 0x4
+GLIBC_2.2 __key_encryptsession_pk_LOCAL D 0x4
+GLIBC_2.2 __key_gendes_LOCAL D 0x4
+GLIBC_2.2 __libc_allocate_rtsig F
+GLIBC_2.2 __libc_current_sigrtmax F
+GLIBC_2.2 __libc_current_sigrtmin F
+GLIBC_2.2 __libc_freeres F
+GLIBC_2.2 __libc_sa_len F
+GLIBC_2.2 __lxstat64 F
+GLIBC_2.2 __mempcpy_small F
+GLIBC_2.2 __newlocale F
+GLIBC_2.2 __nl_langinfo_l F
+GLIBC_2.2 __open64 F
+GLIBC_2.2 __poll F
+GLIBC_2.2 __pread64 F
+GLIBC_2.2 __pwrite64 F
+GLIBC_2.2 __rawmemchr 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 __signbit F
+GLIBC_2.2 __signbitf F
+GLIBC_2.2 __signbitl F
+GLIBC_2.2 __sigsuspend F
+GLIBC_2.2 __statfs F
+GLIBC_2.2 __stpcpy_small F
+GLIBC_2.2 __strcasecmp_l F
+GLIBC_2.2 __strcasestr F
+GLIBC_2.2 __strcoll_l F
+GLIBC_2.2 __strcpy_small F
+GLIBC_2.2 __strcspn_c1 F
+GLIBC_2.2 __strcspn_c2 F
+GLIBC_2.2 __strcspn_c3 F
+GLIBC_2.2 __strfmon_l F
+GLIBC_2.2 __strncasecmp_l F
+GLIBC_2.2 __strndup F
+GLIBC_2.2 __strpbrk_c2 F
+GLIBC_2.2 __strpbrk_c3 F
+GLIBC_2.2 __strsep_1c F
+GLIBC_2.2 __strsep_2c F
+GLIBC_2.2 __strsep_3c F
+GLIBC_2.2 __strsep_g F
+GLIBC_2.2 __strspn_c1 F
+GLIBC_2.2 __strspn_c2 F
+GLIBC_2.2 __strspn_c3 F
+GLIBC_2.2 __strtod_l F
+GLIBC_2.2 __strtof_l F
+GLIBC_2.2 __strtok_r_1c F
+GLIBC_2.2 __strtol_l F
+GLIBC_2.2 __strtold_l F
+GLIBC_2.2 __strtoll_l F
+GLIBC_2.2 __strtoul_l F
+GLIBC_2.2 __strtoull_l F
+GLIBC_2.2 __strverscmp F
+GLIBC_2.2 __strxfrm_l F
+GLIBC_2.2 __sysconf F
+GLIBC_2.2 __sysctl F
+GLIBC_2.2 __toascii_l F
+GLIBC_2.2 __tolower_l F
+GLIBC_2.2 __toupper_l F
+GLIBC_2.2 __towctrans F
+GLIBC_2.2 __towctrans_l F
+GLIBC_2.2 __towlower_l F
+GLIBC_2.2 __towupper_l F
+GLIBC_2.2 __vfork F
+GLIBC_2.2 __wcscasecmp_l F
+GLIBC_2.2 __wcscoll_l F
+GLIBC_2.2 __wcsncasecmp_l F
+GLIBC_2.2 __wcstod_l F
+GLIBC_2.2 __wcstof_l F
+GLIBC_2.2 __wcstol_l F
+GLIBC_2.2 __wcstold_l F
+GLIBC_2.2 __wcstoll_l F
+GLIBC_2.2 __wcstoul_l F
+GLIBC_2.2 __wcstoull_l F
+GLIBC_2.2 __wcsxfrm_l F
+GLIBC_2.2 __wctrans_l F
+GLIBC_2.2 __wctype_l F
+GLIBC_2.2 __woverflow F
+GLIBC_2.2 __wuflow F
+GLIBC_2.2 __wunderflow F
+GLIBC_2.2 __xpg_sigpause F
+GLIBC_2.2 __xstat64 F
+GLIBC_2.2 _authenticate F
+GLIBC_2.2 _dl_mcount_wrapper F
+GLIBC_2.2 _dl_mcount_wrapper_check F
+GLIBC_2.2 _flushlbf F
+GLIBC_2.2 _res_hconf D 0x30
+GLIBC_2.2 _sys_errlist D 0x11b8
+GLIBC_2.2 _sys_nerr D 0x4
+GLIBC_2.2 _sys_siglist D 0x100
+GLIBC_2.2 _test_and_set F
+GLIBC_2.2 addseverity F
+GLIBC_2.2 alphasort64 F
+GLIBC_2.2 argp_err_exit_status D 0x4
+GLIBC_2.2 argp_error F
+GLIBC_2.2 argp_failure F
+GLIBC_2.2 argp_help F
+GLIBC_2.2 argp_parse F
+GLIBC_2.2 argp_program_bug_address D 0x4
+GLIBC_2.2 argp_program_version D 0x4
+GLIBC_2.2 argp_program_version_hook D 0x4
+GLIBC_2.2 argp_state_help F
+GLIBC_2.2 argp_usage F
+GLIBC_2.2 authdes_create F
+GLIBC_2.2 authdes_getucred F
+GLIBC_2.2 authdes_pk_create F
+GLIBC_2.2 backtrace F
+GLIBC_2.2 backtrace_symbols F
+GLIBC_2.2 backtrace_symbols_fd F
+GLIBC_2.2 bind_textdomain_codeset F
+GLIBC_2.2 capget F
+GLIBC_2.2 capset F
+GLIBC_2.2 cbc_crypt F
+GLIBC_2.2 clntunix_create F
+GLIBC_2.2 creat64 F
+GLIBC_2.2 dcngettext F
+GLIBC_2.2 des_setparity F
+GLIBC_2.2 dngettext F
+GLIBC_2.2 ecb_crypt F
+GLIBC_2.2 endutxent F
+GLIBC_2.2 fattach F
+GLIBC_2.2 fclose F
+GLIBC_2.2 fdetach F
+GLIBC_2.2 fdopen F
+GLIBC_2.2 ffsl F
+GLIBC_2.2 ffsll F
+GLIBC_2.2 fgetc_unlocked F
+GLIBC_2.2 fgetpos F
+GLIBC_2.2 fgetpos64 F
+GLIBC_2.2 fgets_unlocked 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 fmtmsg F
+GLIBC_2.2 fopen F
+GLIBC_2.2 fopen64 F
+GLIBC_2.2 fopencookie F
+GLIBC_2.2 fputs_unlocked F
+GLIBC_2.2 fputwc F
+GLIBC_2.2 fputwc_unlocked F
+GLIBC_2.2 fputws F
+GLIBC_2.2 fputws_unlocked F
+GLIBC_2.2 fread_unlocked F
+GLIBC_2.2 freopen64 F
+GLIBC_2.2 fseeko F
+GLIBC_2.2 fseeko64 F
+GLIBC_2.2 fsetpos F
+GLIBC_2.2 fsetpos64 F
+GLIBC_2.2 fstatfs64 F
+GLIBC_2.2 fstatvfs F
+GLIBC_2.2 fstatvfs64 F
+GLIBC_2.2 ftello F
+GLIBC_2.2 ftello64 F
+GLIBC_2.2 ftruncate64 F
+GLIBC_2.2 ftw64 F
+GLIBC_2.2 fwide F
+GLIBC_2.2 fwprintf F
+GLIBC_2.2 fwrite_unlocked F
+GLIBC_2.2 fwscanf F
+GLIBC_2.2 gai_strerror F
+GLIBC_2.2 getaliasbyname_r F
+GLIBC_2.2 getaliasent_r F
+GLIBC_2.2 getcontext F
+GLIBC_2.2 getdate F
+GLIBC_2.2 getdate_err D 0x4
+GLIBC_2.2 getdate_r F
+GLIBC_2.2 getdirentries64 F
+GLIBC_2.2 getgrent_r F
+GLIBC_2.2 getgrgid_r F
+GLIBC_2.2 getgrnam_r F
+GLIBC_2.2 gethostbyaddr_r F
+GLIBC_2.2 gethostbyname2_r F
+GLIBC_2.2 gethostbyname_r F
+GLIBC_2.2 gethostent_r F
+GLIBC_2.2 getloadavg F
+GLIBC_2.2 getmsg F
+GLIBC_2.2 getnameinfo F
+GLIBC_2.2 getnetbyaddr_r F
+GLIBC_2.2 getnetbyname_r F
+GLIBC_2.2 getnetent_r F
+GLIBC_2.2 getnetname F
+GLIBC_2.2 getpmsg F
+GLIBC_2.2 getprotobyname_r F
+GLIBC_2.2 getprotobynumber_r F
+GLIBC_2.2 getprotoent_r F
+GLIBC_2.2 getpt F
+GLIBC_2.2 getpwent_r F
+GLIBC_2.2 getpwnam_r F
+GLIBC_2.2 getpwuid_r F
+GLIBC_2.2 getrlimit64 F
+GLIBC_2.2 getrpcbyname_r F
+GLIBC_2.2 getrpcbynumber_r F
+GLIBC_2.2 getrpcent_r F
+GLIBC_2.2 getservbyname_r F
+GLIBC_2.2 getservbyport_r F
+GLIBC_2.2 getservent_r F
+GLIBC_2.2 getspent_r F
+GLIBC_2.2 getspnam_r F
+GLIBC_2.2 getutmp F
+GLIBC_2.2 getutmpx F
+GLIBC_2.2 getutxent F
+GLIBC_2.2 getutxid F
+GLIBC_2.2 getutxline F
+GLIBC_2.2 getwc F
+GLIBC_2.2 getwc_unlocked F
+GLIBC_2.2 getwchar F
+GLIBC_2.2 getwchar_unlocked F
+GLIBC_2.2 glob64 F
+GLIBC_2.2 globfree64 F
+GLIBC_2.2 gnu_get_libc_release F
+GLIBC_2.2 gnu_get_libc_version F
+GLIBC_2.2 grantpt F
+GLIBC_2.2 host2netname F
+GLIBC_2.2 iconv F
+GLIBC_2.2 iconv_close F
+GLIBC_2.2 iconv_open F
+GLIBC_2.2 if_freenameindex F
+GLIBC_2.2 if_indextoname F
+GLIBC_2.2 if_nameindex F
+GLIBC_2.2 if_nametoindex F
+GLIBC_2.2 imaxabs F
+GLIBC_2.2 imaxdiv F
+GLIBC_2.2 in6addr_any D 0x10
+GLIBC_2.2 in6addr_loopback D 0x10
+GLIBC_2.2 iruserok_af F
+GLIBC_2.2 isastream F
+GLIBC_2.2 iswblank F
+GLIBC_2.2 key_decryptsession F
+GLIBC_2.2 key_decryptsession_pk F
+GLIBC_2.2 key_encryptsession F
+GLIBC_2.2 key_encryptsession_pk F
+GLIBC_2.2 key_gendes F
+GLIBC_2.2 key_get_conv F
+GLIBC_2.2 key_secretkey_is_set F
+GLIBC_2.2 key_setnet F
+GLIBC_2.2 key_setsecret F
+GLIBC_2.2 localeconv F
+GLIBC_2.2 lockf64 F
+GLIBC_2.2 lseek64 F
+GLIBC_2.2 makecontext F
+GLIBC_2.2 mcheck_check_all F
+GLIBC_2.2 mcheck_pedantic F
+GLIBC_2.2 mempcpy F
+GLIBC_2.2 memrchr F
+GLIBC_2.2 mincore F
+GLIBC_2.2 mkdtemp F
+GLIBC_2.2 mkstemp64 F
+GLIBC_2.2 mmap64 F
+GLIBC_2.2 moncontrol F
+GLIBC_2.2 netname2host F
+GLIBC_2.2 netname2user F
+GLIBC_2.2 nftw F
+GLIBC_2.2 nftw64 F
+GLIBC_2.2 ngettext F
+GLIBC_2.2 ntp_adjtime F
+GLIBC_2.2 ntp_gettime F
+GLIBC_2.2 open64 F
+GLIBC_2.2 passwd2des F
+GLIBC_2.2 pclose F
+GLIBC_2.2 popen F
+GLIBC_2.2 posix_fadvise F
+GLIBC_2.2 posix_fadvise64 F
+GLIBC_2.2 posix_fallocate F
+GLIBC_2.2 posix_fallocate64 F
+GLIBC_2.2 posix_madvise F
+GLIBC_2.2 posix_memalign F
+GLIBC_2.2 posix_spawn F
+GLIBC_2.2 posix_spawn_file_actions_addclose F
+GLIBC_2.2 posix_spawn_file_actions_adddup2 F
+GLIBC_2.2 posix_spawn_file_actions_addopen F
+GLIBC_2.2 posix_spawn_file_actions_destroy F
+GLIBC_2.2 posix_spawn_file_actions_init F
+GLIBC_2.2 posix_spawnattr_destroy F
+GLIBC_2.2 posix_spawnattr_getflags F
+GLIBC_2.2 posix_spawnattr_getpgroup F
+GLIBC_2.2 posix_spawnattr_getschedparam F
+GLIBC_2.2 posix_spawnattr_getschedpolicy F
+GLIBC_2.2 posix_spawnattr_getsigdefault F
+GLIBC_2.2 posix_spawnattr_getsigmask F
+GLIBC_2.2 posix_spawnattr_init F
+GLIBC_2.2 posix_spawnattr_setflags F
+GLIBC_2.2 posix_spawnattr_setpgroup F
+GLIBC_2.2 posix_spawnattr_setschedparam F
+GLIBC_2.2 posix_spawnattr_setschedpolicy F
+GLIBC_2.2 posix_spawnattr_setsigdefault F
+GLIBC_2.2 posix_spawnattr_setsigmask F
+GLIBC_2.2 posix_spawnp F
+GLIBC_2.2 pread F
+GLIBC_2.2 pread64 F
+GLIBC_2.2 printf_size F
+GLIBC_2.2 printf_size_info F
+GLIBC_2.2 pthread_attr_init F
+GLIBC_2.2 ptsname F
+GLIBC_2.2 ptsname_r F
+GLIBC_2.2 putgrent F
+GLIBC_2.2 putmsg F
+GLIBC_2.2 putpmsg F
+GLIBC_2.2 pututxline 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 pwrite F
+GLIBC_2.2 pwrite64 F
+GLIBC_2.2 rawmemchr 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 rtime F
+GLIBC_2.2 ruserok_af F
+GLIBC_2.2 scandir64 F
+GLIBC_2.2 sendfile F
+GLIBC_2.2 setrlimit64 F
+GLIBC_2.2 setutxent F
+GLIBC_2.2 sighold F
+GLIBC_2.2 sigignore F
+GLIBC_2.2 sigqueue F
+GLIBC_2.2 sigrelse F
+GLIBC_2.2 sigset F
+GLIBC_2.2 sigtimedwait F
+GLIBC_2.2 sigwaitinfo F
+GLIBC_2.2 statfs64 F
+GLIBC_2.2 statvfs F
+GLIBC_2.2 statvfs64 F
+GLIBC_2.2 strcasestr F
+GLIBC_2.2 strchrnul F
+GLIBC_2.2 strtoimax F
+GLIBC_2.2 strtoumax F
+GLIBC_2.2 strverscmp 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 svcunix_create F
+GLIBC_2.2 svcunixfd_create F
+GLIBC_2.2 swapcontext F
+GLIBC_2.2 swprintf F
+GLIBC_2.2 swscanf F
+GLIBC_2.2 sys_errlist D 0x11b8
+GLIBC_2.2 sys_nerr D 0x4
+GLIBC_2.2 sys_sigabbrev D 0x100
+GLIBC_2.2 sys_siglist D 0x100
+GLIBC_2.2 sysv_signal F
+GLIBC_2.2 tcgetsid F
+GLIBC_2.2 tdestroy F
+GLIBC_2.2 tmpfile F
+GLIBC_2.2 tmpfile64 F
+GLIBC_2.2 truncate64 F
+GLIBC_2.2 umount2 F
+GLIBC_2.2 ungetwc F
+GLIBC_2.2 unlockpt F
+GLIBC_2.2 updwtmpx F
+GLIBC_2.2 user2netname F
+GLIBC_2.2 utmpxname F
+GLIBC_2.2 versionsort 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 waitid F
+GLIBC_2.2 wcscasecmp F
+GLIBC_2.2 wcschrnul F
+GLIBC_2.2 wcsftime F
+GLIBC_2.2 wcsncasecmp F
+GLIBC_2.2 wcsnlen F
+GLIBC_2.2 wcstoimax F
+GLIBC_2.2 wcstoll F
+GLIBC_2.2 wcstoull F
+GLIBC_2.2 wcstoumax F
+GLIBC_2.2 wcswcs F
+GLIBC_2.2 wmempcpy F
+GLIBC_2.2 wordexp F
+GLIBC_2.2 wordfree F
+GLIBC_2.2 wprintf F
+GLIBC_2.2 wscanf F
+GLIBC_2.2 xdecrypt F
+GLIBC_2.2 xdr_authdes_cred F
+GLIBC_2.2 xdr_authdes_verf F
+GLIBC_2.2 xdr_getcredres F
+GLIBC_2.2 xdr_hyper F
+GLIBC_2.2 xdr_int16_t F
+GLIBC_2.2 xdr_int32_t F
+GLIBC_2.2 xdr_int64_t F
+GLIBC_2.2 xdr_int8_t F
+GLIBC_2.2 xdr_longlong_t F
+GLIBC_2.2 xdr_netnamestr F
+GLIBC_2.2 xdr_sizeof F
+GLIBC_2.2 xdr_u_hyper F
+GLIBC_2.2 xdr_u_longlong_t F
+GLIBC_2.2 xdr_uint16_t F
+GLIBC_2.2 xdr_uint32_t F
+GLIBC_2.2 xdr_uint64_t F
+GLIBC_2.2 xdr_uint8_t F
+GLIBC_2.2 xdr_unixcred 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 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 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 0x200
+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 0x200
+GLIBC_2.3.3 sys_siglist D 0x200
+GLIBC_2.3.4 GLIBC_2.3.4 A
+GLIBC_2.3.4 __chk_fail F
+GLIBC_2.3.4 __fprintf_chk F
+GLIBC_2.3.4 __gets_chk F
+GLIBC_2.3.4 __memcpy_chk F
+GLIBC_2.3.4 __memmove_chk F
+GLIBC_2.3.4 __mempcpy_chk F
+GLIBC_2.3.4 __memset_chk F
+GLIBC_2.3.4 __printf_chk F
+GLIBC_2.3.4 __snprintf_chk F
+GLIBC_2.3.4 __sprintf_chk F
+GLIBC_2.3.4 __stpcpy_chk F
+GLIBC_2.3.4 __strcat_chk F
+GLIBC_2.3.4 __strcpy_chk F
+GLIBC_2.3.4 __strncat_chk F
+GLIBC_2.3.4 __strncpy_chk F
+GLIBC_2.3.4 __vfprintf_chk F
+GLIBC_2.3.4 __vprintf_chk F
+GLIBC_2.3.4 __vsnprintf_chk F
+GLIBC_2.3.4 __vsprintf_chk F
+GLIBC_2.3.4 __xpg_strerror_r F
+GLIBC_2.3.4 getipv4sourcefilter F
+GLIBC_2.3.4 getsourcefilter F
+GLIBC_2.3.4 regexec F
+GLIBC_2.3.4 sched_getaffinity F
+GLIBC_2.3.4 sched_setaffinity F
+GLIBC_2.3.4 setipv4sourcefilter F
+GLIBC_2.3.4 setsourcefilter F
+GLIBC_2.3.4 xdr_quad_t F
+GLIBC_2.3.4 xdr_u_quad_t F
+GLIBC_2.4 GLIBC_2.4 A
+GLIBC_2.4 __confstr_chk F
+GLIBC_2.4 __fgets_chk F
+GLIBC_2.4 __fgets_unlocked_chk F
+GLIBC_2.4 __fgetws_chk F
+GLIBC_2.4 __fgetws_unlocked_chk F
+GLIBC_2.4 __fwprintf_chk F
+GLIBC_2.4 __fxstatat F
+GLIBC_2.4 __fxstatat64 F
+GLIBC_2.4 __getcwd_chk F
+GLIBC_2.4 __getdomainname_chk F
+GLIBC_2.4 __getgroups_chk F
+GLIBC_2.4 __gethostname_chk F
+GLIBC_2.4 __getlogin_r_chk F
+GLIBC_2.4 __getwd_chk F
+GLIBC_2.4 __mbsnrtowcs_chk F
+GLIBC_2.4 __mbsrtowcs_chk F
+GLIBC_2.4 __mbstowcs_chk F
+GLIBC_2.4 __pread64_chk F
+GLIBC_2.4 __pread_chk F
+GLIBC_2.4 __ptsname_r_chk F
+GLIBC_2.4 __read_chk F
+GLIBC_2.4 __readlink_chk F
+GLIBC_2.4 __realpath_chk F
+GLIBC_2.4 __recv_chk F
+GLIBC_2.4 __recvfrom_chk F
+GLIBC_2.4 __stack_chk_fail F
+GLIBC_2.4 __stpncpy_chk F
+GLIBC_2.4 __swprintf_chk F
+GLIBC_2.4 __syslog_chk F
+GLIBC_2.4 __ttyname_r_chk F
+GLIBC_2.4 __vfwprintf_chk F
+GLIBC_2.4 __vswprintf_chk F
+GLIBC_2.4 __vsyslog_chk F
+GLIBC_2.4 __vwprintf_chk F
+GLIBC_2.4 __wcpcpy_chk F
+GLIBC_2.4 __wcpncpy_chk F
+GLIBC_2.4 __wcrtomb_chk F
+GLIBC_2.4 __wcscat_chk F
+GLIBC_2.4 __wcscpy_chk F
+GLIBC_2.4 __wcsncat_chk F
+GLIBC_2.4 __wcsncpy_chk F
+GLIBC_2.4 __wcsnrtombs_chk F
+GLIBC_2.4 __wcsrtombs_chk F
+GLIBC_2.4 __wcstombs_chk F
+GLIBC_2.4 __wctomb_chk F
+GLIBC_2.4 __wmemcpy_chk F
+GLIBC_2.4 __wmemmove_chk F
+GLIBC_2.4 __wmempcpy_chk F
+GLIBC_2.4 __wmemset_chk F
+GLIBC_2.4 __wprintf_chk F
+GLIBC_2.4 __xmknodat F
+GLIBC_2.4 eaccess F
+GLIBC_2.4 faccessat F
+GLIBC_2.4 fchmodat F
+GLIBC_2.4 fchownat F
+GLIBC_2.4 fdopendir F
+GLIBC_2.4 futimesat F
+GLIBC_2.4 inotify_add_watch F
+GLIBC_2.4 inotify_init F
+GLIBC_2.4 inotify_rm_watch F
+GLIBC_2.4 linkat F
+GLIBC_2.4 mkdirat F
+GLIBC_2.4 mkfifoat F
+GLIBC_2.4 open_wmemstream F
+GLIBC_2.4 openat F
+GLIBC_2.4 openat64 F
+GLIBC_2.4 ppoll F
+GLIBC_2.4 readlinkat F
+GLIBC_2.4 renameat F
+GLIBC_2.4 symlinkat F
+GLIBC_2.4 unlinkat F
+GLIBC_2.4 unshare F
+GLIBC_2.5 GLIBC_2.5 A
+GLIBC_2.5 __readlinkat_chk F
+GLIBC_2.5 inet6_opt_append F
+GLIBC_2.5 inet6_opt_find F
+GLIBC_2.5 inet6_opt_finish F
+GLIBC_2.5 inet6_opt_get_val F
+GLIBC_2.5 inet6_opt_init F
+GLIBC_2.5 inet6_opt_next F
+GLIBC_2.5 inet6_opt_set_val F
+GLIBC_2.5 inet6_rth_add F
+GLIBC_2.5 inet6_rth_getaddr F
+GLIBC_2.5 inet6_rth_init F
+GLIBC_2.5 inet6_rth_reverse F
+GLIBC_2.5 inet6_rth_segments F
+GLIBC_2.5 inet6_rth_space F
+GLIBC_2.5 splice F
+GLIBC_2.5 tee F
+GLIBC_2.5 vmsplice F
+GLIBC_2.6 GLIBC_2.6 A
+GLIBC_2.6 __sched_cpucount F
+GLIBC_2.6 epoll_pwait F
+GLIBC_2.6 futimens F
+GLIBC_2.6 sched_getcpu F
+GLIBC_2.6 strerror_l F
+GLIBC_2.6 sync_file_range F
+GLIBC_2.6 utimensat F
+GLIBC_2.7 GLIBC_2.7 A
+GLIBC_2.7 __fread_chk F
+GLIBC_2.7 __fread_unlocked_chk F
+GLIBC_2.7 __isoc99_fscanf F
+GLIBC_2.7 __isoc99_fwscanf F
+GLIBC_2.7 __isoc99_scanf F
+GLIBC_2.7 __isoc99_sscanf F
+GLIBC_2.7 __isoc99_swscanf F
+GLIBC_2.7 __isoc99_vfscanf F
+GLIBC_2.7 __isoc99_vfwscanf F
+GLIBC_2.7 __isoc99_vscanf F
+GLIBC_2.7 __isoc99_vsscanf F
+GLIBC_2.7 __isoc99_vswscanf F
+GLIBC_2.7 __isoc99_vwscanf F
+GLIBC_2.7 __isoc99_wscanf F
+GLIBC_2.7 __open64_2 F
+GLIBC_2.7 __open_2 F
+GLIBC_2.7 __openat64_2 F
+GLIBC_2.7 __openat_2 F
+GLIBC_2.7 __sched_cpualloc F
+GLIBC_2.7 __sched_cpufree F
+GLIBC_2.7 eventfd F
+GLIBC_2.7 eventfd_read F
+GLIBC_2.7 eventfd_write F
+GLIBC_2.7 mkostemp F
+GLIBC_2.7 mkostemp64 F
+GLIBC_2.7 signalfd F
+GLIBC_2.8 GLIBC_2.8 A
+GLIBC_2.8 __asprintf_chk F
+GLIBC_2.8 __dprintf_chk F
+GLIBC_2.8 __obstack_printf_chk F
+GLIBC_2.8 __obstack_vprintf_chk F
+GLIBC_2.8 __vasprintf_chk F
+GLIBC_2.8 __vdprintf_chk F
+GLIBC_2.8 qsort_r F
+GLIBC_2.8 timerfd_create F
+GLIBC_2.8 timerfd_gettime F
+GLIBC_2.8 timerfd_settime F
+GLIBC_2.9 GLIBC_2.9 A
+GLIBC_2.9 dup3 F
+GLIBC_2.9 epoll_create1 F
+GLIBC_2.9 inotify_init1 F
+GLIBC_2.9 pipe2 F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/n32/libresolv.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/n32/libresolv.abilist
new file mode 100644
index 0000000000..4d50e7c8c6
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/n32/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/mips/mips64/n32/lockf64.c b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/n32/lockf64.c
new file mode 100644
index 0000000000..a88f5a784a
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/n32/lockf64.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/i386/lockf64.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/n32/lseek.c b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/n32/lseek.c
new file mode 100644
index 0000000000..26d2e11e13
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/n32/lseek.c
@@ -0,0 +1,36 @@
+/* MIPS n32 lseek implementation.
+ Copyright (C) 2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <unistd.h>
+#include <sys/types.h>
+#include <errno.h>
+
+off_t
+__lseek (int fd, off_t offset, int whence)
+{
+ off64_t res = __lseek64 (fd, offset, whence);
+ if (res != (off_t) res)
+ {
+ __set_errno (EOVERFLOW);
+ return (off_t) -1;
+ }
+ return (off_t) res;
+}
+libc_hidden_def (__lseek)
+weak_alias (__lseek, lseek)
+strong_alias (__lseek, __libc_lseek)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/n32/mmap_internal.h b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/n32/mmap_internal.h
new file mode 100644
index 0000000000..4b65559ecb
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/n32/mmap_internal.h
@@ -0,0 +1,28 @@
+/* Common mmap definition for Linux implementation. MIPS n32 version.
+ Copyright (C) 2016-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef MMAP_MIPS_N32_INTERNAL_H
+#define MMAP_MIPS_N32_INTERNAL_H
+
+/* To handle negative offsets consistently with other architectures,
+ the offset must be zero-extended to 64-bit. */
+#define MMAP_ADJUST_OFFSET(offset) (uint64_t) (uint32_t) offset
+
+#include_next <mmap_internal.h>
+
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/n32/syscalls.list b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/n32/syscalls.list
new file mode 100644
index 0000000000..5f3d04728d
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/n32/syscalls.list
@@ -0,0 +1,13 @@
+# File name Caller Syscall name # args Strong name Weak names
+
+# C syscall macros cannot be used because this syscall has a 64-bit
+# return value.
+lseek64 - lseek i:iii __lseek64 __libc_lseek64 lseek64 llseek
+
+readahead - readahead i:iii __readahead readahead
+
+prlimit64 EXTRA prlimit64 i:iipp prlimit64
+
+fanotify_mark EXTRA fanotify_mark i:iiiis fanotify_mark
+
+personality EXTRA personality Ei:i __personality personality
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/n32/sysdep.h b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/n32/sysdep.h
new file mode 100644
index 0000000000..f27778bdf8
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/n32/sysdep.h
@@ -0,0 +1,321 @@
+/* Copyright (C) 2000-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _LINUX_MIPS_SYSDEP_H
+#define _LINUX_MIPS_SYSDEP_H 1
+
+/* There is some commonality. */
+#include <sysdeps/unix/sysv/linux/sysdep.h>
+#include <sysdeps/unix/mips/mips64/n32/sysdep.h>
+
+#include <tls.h>
+
+/* In order to get __set_errno() definition in INLINE_SYSCALL. */
+#ifndef __ASSEMBLER__
+#include <errno.h>
+#endif
+
+/* For Linux we can use the system call table in the header file
+ /usr/include/asm/unistd.h
+ of the kernel. But these symbols do not follow the SYS_* syntax
+ so we have to redefine the `SYS_ify' macro here. */
+#undef SYS_ify
+#define SYS_ify(syscall_name) __NR_##syscall_name
+
+#ifdef __ASSEMBLER__
+
+/* We don't want the label for the error handler to be visible in the symbol
+ table when we define it here. */
+# define SYSCALL_ERROR_LABEL 99b
+
+#else /* ! __ASSEMBLER__ */
+
+/* Convert X to a long long, without losing any bits if it is one
+ already or warning if it is a 32-bit pointer. */
+#define ARGIFY(X) ((long long) (__typeof__ ((X) - (X))) (X))
+
+/* Define a macro which expands into the inline wrapper code for a system
+ call. */
+#undef INLINE_SYSCALL
+#define INLINE_SYSCALL(name, nr, args...) \
+ ({ INTERNAL_SYSCALL_DECL (_sc_err); \
+ long result_var = INTERNAL_SYSCALL (name, _sc_err, nr, args); \
+ if ( INTERNAL_SYSCALL_ERROR_P (result_var, _sc_err) ) \
+ { \
+ __set_errno (INTERNAL_SYSCALL_ERRNO (result_var, _sc_err)); \
+ result_var = -1L; \
+ } \
+ result_var; })
+
+#undef INTERNAL_SYSCALL_DECL
+#define INTERNAL_SYSCALL_DECL(err) long err __attribute__ ((unused))
+
+#undef INTERNAL_SYSCALL_ERROR_P
+#define INTERNAL_SYSCALL_ERROR_P(val, err) ((void) (val), (long) (err))
+
+#undef INTERNAL_SYSCALL_ERRNO
+#define INTERNAL_SYSCALL_ERRNO(val, err) ((void) (err), val)
+
+/* Note that the original Linux syscall restart convention required the
+ instruction immediately preceding SYSCALL to initialize $v0 with the
+ syscall number. Then if a restart triggered, $v0 would have been
+ clobbered by the syscall interrupted, and needed to be reinititalized.
+ The kernel would decrement the PC by 4 before switching back to the
+ user mode so that $v0 had been reloaded before SYSCALL was executed
+ again. This implied the place $v0 was loaded from must have been
+ preserved across a syscall, e.g. an immediate, static register, stack
+ slot, etc.
+
+ The convention was relaxed in Linux with a change applied to the kernel
+ GIT repository as commit 96187fb0bc30cd7919759d371d810e928048249d, that
+ first appeared in the 2.6.36 release. Since then the kernel has had
+ code that reloads $v0 upon syscall restart and resumes right at the
+ SYSCALL instruction, so no special arrangement is needed anymore.
+
+ For backwards compatibility with existing kernel binaries we support
+ the old convention by choosing the instruction preceding SYSCALL
+ carefully. This also means we have to force a 32-bit encoding of the
+ microMIPS MOVE instruction if one is used. */
+
+#ifdef __mips_micromips
+# define MOVE32 "move32"
+#else
+# define MOVE32 "move"
+#endif
+
+#undef INTERNAL_SYSCALL
+#define INTERNAL_SYSCALL(name, err, nr, args...) \
+ internal_syscall##nr ("li\t%0, %2\t\t\t# " #name "\n\t", \
+ "IK" (SYS_ify (name)), \
+ 0, err, args)
+
+#undef INTERNAL_SYSCALL_NCS
+#define INTERNAL_SYSCALL_NCS(number, err, nr, args...) \
+ internal_syscall##nr (MOVE32 "\t%0, %2\n\t", \
+ "r" (__s0), \
+ number, err, args)
+
+#define internal_syscall0(v0_init, input, number, err, dummy...) \
+({ \
+ long _sys_result; \
+ \
+ { \
+ register long long __s0 asm ("$16") __attribute__ ((unused)) \
+ = (number); \
+ register long long __v0 asm ("$2"); \
+ register long long __a3 asm ("$7"); \
+ __asm__ volatile ( \
+ ".set\tnoreorder\n\t" \
+ v0_init \
+ "syscall\n\t" \
+ ".set reorder" \
+ : "=r" (__v0), "=r" (__a3) \
+ : input \
+ : __SYSCALL_CLOBBERS); \
+ err = __a3; \
+ _sys_result = __v0; \
+ } \
+ _sys_result; \
+})
+
+#define internal_syscall1(v0_init, input, number, err, arg1) \
+({ \
+ long _sys_result; \
+ \
+ { \
+ register long long __s0 asm ("$16") __attribute__ ((unused)) \
+ = (number); \
+ register long long __v0 asm ("$2"); \
+ register long long __a0 asm ("$4") = ARGIFY (arg1); \
+ register long long __a3 asm ("$7"); \
+ __asm__ volatile ( \
+ ".set\tnoreorder\n\t" \
+ v0_init \
+ "syscall\n\t" \
+ ".set reorder" \
+ : "=r" (__v0), "=r" (__a3) \
+ : input, "r" (__a0) \
+ : __SYSCALL_CLOBBERS); \
+ err = __a3; \
+ _sys_result = __v0; \
+ } \
+ _sys_result; \
+})
+
+#define internal_syscall2(v0_init, input, number, err, arg1, arg2) \
+({ \
+ long _sys_result; \
+ \
+ { \
+ register long long __s0 asm ("$16") __attribute__ ((unused)) \
+ = (number); \
+ register long long __v0 asm ("$2"); \
+ register long long __a0 asm ("$4") = ARGIFY (arg1); \
+ register long long __a1 asm ("$5") = ARGIFY (arg2); \
+ register long long __a3 asm ("$7"); \
+ __asm__ volatile ( \
+ ".set\tnoreorder\n\t" \
+ v0_init \
+ "syscall\n\t" \
+ ".set\treorder" \
+ : "=r" (__v0), "=r" (__a3) \
+ : input, "r" (__a0), "r" (__a1) \
+ : __SYSCALL_CLOBBERS); \
+ err = __a3; \
+ _sys_result = __v0; \
+ } \
+ _sys_result; \
+})
+
+#define internal_syscall3(v0_init, input, number, err, \
+ arg1, arg2, arg3) \
+({ \
+ long _sys_result; \
+ \
+ { \
+ register long long __s0 asm ("$16") __attribute__ ((unused)) \
+ = (number); \
+ register long long __v0 asm ("$2"); \
+ register long long __a0 asm ("$4") = ARGIFY (arg1); \
+ register long long __a1 asm ("$5") = ARGIFY (arg2); \
+ register long long __a2 asm ("$6") = ARGIFY (arg3); \
+ register long long __a3 asm ("$7"); \
+ __asm__ volatile ( \
+ ".set\tnoreorder\n\t" \
+ v0_init \
+ "syscall\n\t" \
+ ".set\treorder" \
+ : "=r" (__v0), "=r" (__a3) \
+ : input, "r" (__a0), "r" (__a1), "r" (__a2) \
+ : __SYSCALL_CLOBBERS); \
+ err = __a3; \
+ _sys_result = __v0; \
+ } \
+ _sys_result; \
+})
+
+#define internal_syscall4(v0_init, input, number, err, \
+ arg1, arg2, arg3, arg4) \
+({ \
+ long _sys_result; \
+ \
+ { \
+ register long long __s0 asm ("$16") __attribute__ ((unused)) \
+ = (number); \
+ register long long __v0 asm ("$2"); \
+ register long long __a0 asm ("$4") = ARGIFY (arg1); \
+ register long long __a1 asm ("$5") = ARGIFY (arg2); \
+ register long long __a2 asm ("$6") = ARGIFY (arg3); \
+ register long long __a3 asm ("$7") = ARGIFY (arg4); \
+ __asm__ volatile ( \
+ ".set\tnoreorder\n\t" \
+ v0_init \
+ "syscall\n\t" \
+ ".set\treorder" \
+ : "=r" (__v0), "+r" (__a3) \
+ : input, "r" (__a0), "r" (__a1), "r" (__a2) \
+ : __SYSCALL_CLOBBERS); \
+ err = __a3; \
+ _sys_result = __v0; \
+ } \
+ _sys_result; \
+})
+
+#define internal_syscall5(v0_init, input, number, err, \
+ arg1, arg2, arg3, arg4, arg5) \
+({ \
+ long _sys_result; \
+ \
+ { \
+ register long long __s0 asm ("$16") __attribute__ ((unused)) \
+ = (number); \
+ register long long __v0 asm ("$2"); \
+ register long long __a0 asm ("$4") = ARGIFY (arg1); \
+ register long long __a1 asm ("$5") = ARGIFY (arg2); \
+ register long long __a2 asm ("$6") = ARGIFY (arg3); \
+ register long long __a3 asm ("$7") = ARGIFY (arg4); \
+ register long long __a4 asm ("$8") = ARGIFY (arg5); \
+ __asm__ volatile ( \
+ ".set\tnoreorder\n\t" \
+ v0_init \
+ "syscall\n\t" \
+ ".set\treorder" \
+ : "=r" (__v0), "+r" (__a3) \
+ : input, "r" (__a0), "r" (__a1), "r" (__a2), "r" (__a4) \
+ : __SYSCALL_CLOBBERS); \
+ err = __a3; \
+ _sys_result = __v0; \
+ } \
+ _sys_result; \
+})
+
+#define internal_syscall6(v0_init, input, number, err, \
+ arg1, arg2, arg3, arg4, arg5, arg6) \
+({ \
+ long _sys_result; \
+ \
+ { \
+ register long long __s0 asm ("$16") __attribute__ ((unused)) \
+ = (number); \
+ register long long __v0 asm ("$2"); \
+ register long long __a0 asm ("$4") = ARGIFY (arg1); \
+ register long long __a1 asm ("$5") = ARGIFY (arg2); \
+ register long long __a2 asm ("$6") = ARGIFY (arg3); \
+ register long long __a3 asm ("$7") = ARGIFY (arg4); \
+ register long long __a4 asm ("$8") = ARGIFY (arg5); \
+ register long long __a5 asm ("$9") = ARGIFY (arg6); \
+ __asm__ volatile ( \
+ ".set\tnoreorder\n\t" \
+ v0_init \
+ "syscall\n\t" \
+ ".set\treorder" \
+ : "=r" (__v0), "+r" (__a3) \
+ : input, "r" (__a0), "r" (__a1), "r" (__a2), "r" (__a4), \
+ "r" (__a5) \
+ : __SYSCALL_CLOBBERS); \
+ err = __a3; \
+ _sys_result = __v0; \
+ } \
+ _sys_result; \
+})
+
+#define __SYSCALL_CLOBBERS "$1", "$3", "$10", "$11", "$12", "$13", \
+ "$14", "$15", "$24", "$25", "hi", "lo", "memory"
+
+/* Standard MIPS syscalls have an error flag, and return a positive errno
+ when the error flag is set. Emulate this behaviour for vsyscalls so that
+ the INTERNAL_SYSCALL_{ERROR_P,ERRNO} macros work correctly. */
+#define INTERNAL_VSYSCALL_CALL(funcptr, err, nr, args...) \
+ ({ \
+ long _ret = funcptr (args); \
+ err = ((unsigned long) (_ret) >= (unsigned long) -4095L); \
+ if (err) \
+ _ret = -_ret; \
+ _ret; \
+ })
+
+/* List of system calls which are supported as vsyscalls. */
+#define HAVE_CLOCK_GETTIME_VSYSCALL 1
+#define HAVE_GETTIMEOFDAY_VSYSCALL 1
+
+#endif /* __ASSEMBLER__ */
+
+/* Pointer mangling is not yet supported for MIPS. */
+#define PTR_MANGLE(var) (void) (var)
+#define PTR_DEMANGLE(var) (void) (var)
+
+#endif /* linux/mips/sysdep.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/n64/c++-types.data b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/n64/c++-types.data
new file mode 100644
index 0000000000..23c11dc41b
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/n64/c++-types.data
@@ -0,0 +1,67 @@
+blkcnt64_t:l
+blkcnt_t:l
+blksize_t:l
+caddr_t:Pc
+clockid_t:i
+clock_t:l
+daddr_t:i
+dev_t:m
+fd_mask:l
+fsblkcnt64_t:m
+fsblkcnt_t:m
+fsfilcnt64_t:m
+fsfilcnt_t:m
+fsid_t:8__fsid_t
+gid_t:j
+id_t:j
+ino64_t:m
+ino_t:m
+int16_t:s
+int32_t:i
+int64_t:l
+int8_t:a
+intptr_t:l
+key_t:i
+loff_t:l
+mode_t:j
+nlink_t:m
+off64_t:l
+off_t:l
+pid_t:i
+pthread_attr_t:14pthread_attr_t
+pthread_barrier_t:17pthread_barrier_t
+pthread_barrierattr_t:21pthread_barrierattr_t
+pthread_cond_t:14pthread_cond_t
+pthread_condattr_t:18pthread_condattr_t
+pthread_key_t:j
+pthread_mutex_t:15pthread_mutex_t
+pthread_mutexattr_t:19pthread_mutexattr_t
+pthread_once_t:i
+pthread_rwlock_t:16pthread_rwlock_t
+pthread_rwlockattr_t:20pthread_rwlockattr_t
+pthread_spinlock_t:i
+pthread_t:m
+quad_t:l
+register_t:l
+rlim64_t:m
+rlim_t:m
+sigset_t:10__sigset_t
+size_t:m
+socklen_t:j
+ssize_t:l
+suseconds_t:l
+time_t:l
+u_char:h
+uid_t:j
+uint:j
+u_int:j
+u_int16_t:t
+u_int32_t:j
+u_int64_t:m
+u_int8_t:h
+ulong:m
+u_long:m
+u_quad_t:m
+useconds_t:j
+ushort:t
+u_short:t
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/n64/fstatfs64.c b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/n64/fstatfs64.c
new file mode 100644
index 0000000000..6e25b021ab
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/n64/fstatfs64.c
@@ -0,0 +1 @@
+/* Empty. */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/n64/fts.c b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/n64/fts.c
new file mode 100644
index 0000000000..d0c62e6195
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/n64/fts.c
@@ -0,0 +1 @@
+#include <io/fts.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/n64/fts64.c b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/n64/fts64.c
new file mode 100644
index 0000000000..2472f8bf75
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/n64/fts64.c
@@ -0,0 +1 @@
+#include <io/fts64.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/n64/ftw.c b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/n64/ftw.c
new file mode 100644
index 0000000000..46389568b2
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/n64/ftw.c
@@ -0,0 +1 @@
+#include <io/ftw.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/n64/ftw64.c b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/n64/ftw64.c
new file mode 100644
index 0000000000..cb02172b3e
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/n64/ftw64.c
@@ -0,0 +1 @@
+#include <io/ftw64.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/n64/glob64.c b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/n64/glob64.c
new file mode 100644
index 0000000000..33918ea6a5
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/n64/glob64.c
@@ -0,0 +1 @@
+/* glob64 is in glob.c */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/n64/ioctl.S b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/n64/ioctl.S
new file mode 100644
index 0000000000..ee5d11d240
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/n64/ioctl.S
@@ -0,0 +1,41 @@
+/* Copyright 2003-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+
+#include <sys/asm.h>
+
+/* Sign-extend the ioctl number, since the kernel wants it as a
+ sign-extended 32-bit value, but our prototype is that of a long. */
+
+ .text
+ENTRY (__ioctl)
+ sll a1, a1, 0
+ li v0, __NR_ioctl
+ syscall /* Do the system call. */
+ bne a3, zero, L(error)
+ ret
+
+L(error):
+ SETUP_GP64_REG (a0, __ioctl)
+ PTR_LA t9, __syscall_error
+ RESTORE_GP64_REG
+ jr t9
+
+PSEUDO_END (__ioctl)
+
+weak_alias (__ioctl, ioctl)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/n64/ld.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/n64/ld.abilist
new file mode 100644
index 0000000000..f7ba5fd730
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/n64/ld.abilist
@@ -0,0 +1,13 @@
+GLIBC_2.0 GLIBC_2.0 A
+GLIBC_2.0 _r_debug D 0x28
+GLIBC_2.0 calloc F
+GLIBC_2.0 free F
+GLIBC_2.0 malloc F
+GLIBC_2.0 realloc F
+GLIBC_2.2 GLIBC_2.2 A
+GLIBC_2.2 __libc_stack_end D 0x8
+GLIBC_2.2 _dl_mcount F
+GLIBC_2.3 GLIBC_2.3 A
+GLIBC_2.3 __tls_get_addr F
+GLIBC_2.4 GLIBC_2.4 A
+GLIBC_2.4 __stack_chk_guard D 0x8
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
new file mode 100644
index 0000000000..e1275dfe28
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
@@ -0,0 +1,2245 @@
+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 0xa8
+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 0x8
+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 0x98
+GLIBC_2.0 _IO_stdin_ D 0x98
+GLIBC_2.0 _IO_stdout_ D 0x98
+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 0x8
+GLIBC_2.0 __adjtimex F
+GLIBC_2.0 __after_morecore_hook D 0x8
+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 0x8
+GLIBC_2.0 __ctype_b D 0x8
+GLIBC_2.0 __ctype_get_mb_cur_max F
+GLIBC_2.0 __ctype_tolower D 0x8
+GLIBC_2.0 __ctype_toupper D 0x8
+GLIBC_2.0 __curbrk D 0x8
+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 __dup2 F
+GLIBC_2.0 __environ D 0x8
+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 0x8
+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 0x8
+GLIBC_2.0 __malloc_initialize_hook D 0x8
+GLIBC_2.0 __mbrlen F
+GLIBC_2.0 __mbrtowc F
+GLIBC_2.0 __memalign_hook D 0x8
+GLIBC_2.0 __mempcpy F
+GLIBC_2.0 __monstartup F
+GLIBC_2.0 __morecore D 0x8
+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 0x8
+GLIBC_2.0 __progname_full D 0x8
+GLIBC_2.0 __rcmd_errstr D 0x8
+GLIBC_2.0 __read F
+GLIBC_2.0 __realloc_hook D 0x8
+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 __strtoul_internal F
+GLIBC_2.0 __strtoull_internal F
+GLIBC_2.0 __sysv_signal F
+GLIBC_2.0 __timezone D 0x8
+GLIBC_2.0 __tzname D 0x10
+GLIBC_2.0 __uflow 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 0x8
+GLIBC_2.0 _exit F
+GLIBC_2.0 _flush_cache 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 0x8
+GLIBC_2.0 _nl_msg_cat_cntr D 0x4
+GLIBC_2.0 _null_auth D 0x18
+GLIBC_2.0 _obstack D 0x8
+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 0x238
+GLIBC_2.0 _rpc_dtablesize F
+GLIBC_2.0 _seterr_reply F
+GLIBC_2.0 _setjmp F
+GLIBC_2.0 _sys_errlist D 0x3d8
+GLIBC_2.0 _sys_nerr D 0x4
+GLIBC_2.0 _sys_siglist D 0x100
+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 cachectl F
+GLIBC_2.0 cacheflush 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 0x8
+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 0x8
+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 0x28
+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 0x8
+GLIBC_2.0 loc2 D 0x8
+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 0x8
+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 0x8
+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 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 0x8
+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 0x8
+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 0x8
+GLIBC_2.0 program_invocation_short_name D 0x8
+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 0x8
+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 0x20
+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 0x8
+GLIBC_2.0 stdin D 0x8
+GLIBC_2.0 stdout D 0x8
+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 0x18
+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 0x3d8
+GLIBC_2.0 sys_nerr D 0x4
+GLIBC_2.0 sys_sigabbrev D 0x100
+GLIBC_2.0 sys_siglist D 0x100
+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 sysmips 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 0x8
+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 0x10
+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.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 ntp_gettimex F
+GLIBC_2.12 recvmmsg F
+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.2 GLIBC_2.2 A
+GLIBC_2.2 _Exit F
+GLIBC_2.2 _IO_2_1_stderr_ D 0xe0
+GLIBC_2.2 _IO_2_1_stdin_ D 0xe0
+GLIBC_2.2 _IO_2_1_stdout_ D 0xe0
+GLIBC_2.2 _IO_adjust_wcolumn F
+GLIBC_2.2 _IO_do_write F
+GLIBC_2.2 _IO_fclose F
+GLIBC_2.2 _IO_fdopen F
+GLIBC_2.2 _IO_fgetpos F
+GLIBC_2.2 _IO_fgetpos64 F
+GLIBC_2.2 _IO_file_attach F
+GLIBC_2.2 _IO_file_close_it F
+GLIBC_2.2 _IO_file_finish F
+GLIBC_2.2 _IO_file_fopen F
+GLIBC_2.2 _IO_file_init F
+GLIBC_2.2 _IO_file_overflow F
+GLIBC_2.2 _IO_file_seekoff F
+GLIBC_2.2 _IO_file_setbuf F
+GLIBC_2.2 _IO_file_sync F
+GLIBC_2.2 _IO_file_underflow F
+GLIBC_2.2 _IO_file_write F
+GLIBC_2.2 _IO_file_xsputn F
+GLIBC_2.2 _IO_fopen 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_getline_info 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_popen F
+GLIBC_2.2 _IO_proc_close F
+GLIBC_2.2 _IO_proc_open 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 0xa8
+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 __asprintf F
+GLIBC_2.2 __assert F
+GLIBC_2.2 __backtrace F
+GLIBC_2.2 __backtrace_symbols F
+GLIBC_2.2 __backtrace_symbols_fd F
+GLIBC_2.2 __ctype32_tolower D 0x8
+GLIBC_2.2 __ctype32_toupper D 0x8
+GLIBC_2.2 __cxa_atexit F
+GLIBC_2.2 __cxa_finalize F
+GLIBC_2.2 __cyg_profile_func_enter F
+GLIBC_2.2 __cyg_profile_func_exit F
+GLIBC_2.2 __duplocale 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 __freelocale 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 __isalnum_l F
+GLIBC_2.2 __isalpha_l F
+GLIBC_2.2 __isascii_l F
+GLIBC_2.2 __isblank_l F
+GLIBC_2.2 __iscntrl_l F
+GLIBC_2.2 __isdigit_l F
+GLIBC_2.2 __isgraph_l F
+GLIBC_2.2 __islower_l F
+GLIBC_2.2 __isprint_l F
+GLIBC_2.2 __ispunct_l F
+GLIBC_2.2 __isspace_l F
+GLIBC_2.2 __isupper_l F
+GLIBC_2.2 __iswalnum_l F
+GLIBC_2.2 __iswalpha_l F
+GLIBC_2.2 __iswblank_l F
+GLIBC_2.2 __iswcntrl_l F
+GLIBC_2.2 __iswctype_l F
+GLIBC_2.2 __iswdigit_l F
+GLIBC_2.2 __iswgraph_l F
+GLIBC_2.2 __iswlower_l F
+GLIBC_2.2 __iswprint_l F
+GLIBC_2.2 __iswpunct_l F
+GLIBC_2.2 __iswspace_l F
+GLIBC_2.2 __iswupper_l F
+GLIBC_2.2 __iswxdigit_l F
+GLIBC_2.2 __isxdigit_l F
+GLIBC_2.2 __key_decryptsession_pk_LOCAL D 0x8
+GLIBC_2.2 __key_encryptsession_pk_LOCAL D 0x8
+GLIBC_2.2 __key_gendes_LOCAL D 0x8
+GLIBC_2.2 __libc_allocate_rtsig F
+GLIBC_2.2 __libc_current_sigrtmax F
+GLIBC_2.2 __libc_current_sigrtmin F
+GLIBC_2.2 __libc_freeres F
+GLIBC_2.2 __libc_sa_len F
+GLIBC_2.2 __lxstat64 F
+GLIBC_2.2 __mempcpy_small F
+GLIBC_2.2 __newlocale F
+GLIBC_2.2 __nl_langinfo_l F
+GLIBC_2.2 __open64 F
+GLIBC_2.2 __poll F
+GLIBC_2.2 __pread64 F
+GLIBC_2.2 __pwrite64 F
+GLIBC_2.2 __rawmemchr 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 __signbit F
+GLIBC_2.2 __signbitf F
+GLIBC_2.2 __signbitl F
+GLIBC_2.2 __sigsuspend F
+GLIBC_2.2 __statfs F
+GLIBC_2.2 __stpcpy_small F
+GLIBC_2.2 __strcasecmp_l F
+GLIBC_2.2 __strcasestr F
+GLIBC_2.2 __strcoll_l F
+GLIBC_2.2 __strcpy_small F
+GLIBC_2.2 __strcspn_c1 F
+GLIBC_2.2 __strcspn_c2 F
+GLIBC_2.2 __strcspn_c3 F
+GLIBC_2.2 __strfmon_l F
+GLIBC_2.2 __strncasecmp_l F
+GLIBC_2.2 __strndup F
+GLIBC_2.2 __strpbrk_c2 F
+GLIBC_2.2 __strpbrk_c3 F
+GLIBC_2.2 __strsep_1c F
+GLIBC_2.2 __strsep_2c F
+GLIBC_2.2 __strsep_3c F
+GLIBC_2.2 __strsep_g F
+GLIBC_2.2 __strspn_c1 F
+GLIBC_2.2 __strspn_c2 F
+GLIBC_2.2 __strspn_c3 F
+GLIBC_2.2 __strtod_l F
+GLIBC_2.2 __strtof_l F
+GLIBC_2.2 __strtok_r_1c F
+GLIBC_2.2 __strtol_l F
+GLIBC_2.2 __strtold_l F
+GLIBC_2.2 __strtoll_l F
+GLIBC_2.2 __strtoul_l F
+GLIBC_2.2 __strtoull_l F
+GLIBC_2.2 __strverscmp F
+GLIBC_2.2 __strxfrm_l F
+GLIBC_2.2 __sysconf F
+GLIBC_2.2 __sysctl F
+GLIBC_2.2 __toascii_l F
+GLIBC_2.2 __tolower_l F
+GLIBC_2.2 __toupper_l F
+GLIBC_2.2 __towctrans F
+GLIBC_2.2 __towctrans_l F
+GLIBC_2.2 __towlower_l F
+GLIBC_2.2 __towupper_l F
+GLIBC_2.2 __vfork F
+GLIBC_2.2 __wcscasecmp_l F
+GLIBC_2.2 __wcscoll_l F
+GLIBC_2.2 __wcsncasecmp_l F
+GLIBC_2.2 __wcstod_l F
+GLIBC_2.2 __wcstof_l F
+GLIBC_2.2 __wcstol_l F
+GLIBC_2.2 __wcstold_l F
+GLIBC_2.2 __wcstoll_l F
+GLIBC_2.2 __wcstoul_l F
+GLIBC_2.2 __wcstoull_l F
+GLIBC_2.2 __wcsxfrm_l F
+GLIBC_2.2 __wctrans_l F
+GLIBC_2.2 __wctype_l F
+GLIBC_2.2 __woverflow F
+GLIBC_2.2 __wuflow F
+GLIBC_2.2 __wunderflow F
+GLIBC_2.2 __xpg_sigpause F
+GLIBC_2.2 __xstat64 F
+GLIBC_2.2 _authenticate F
+GLIBC_2.2 _dl_mcount_wrapper F
+GLIBC_2.2 _dl_mcount_wrapper_check F
+GLIBC_2.2 _flushlbf F
+GLIBC_2.2 _res_hconf D 0x48
+GLIBC_2.2 _sys_errlist D 0x2370
+GLIBC_2.2 _sys_nerr D 0x4
+GLIBC_2.2 _sys_siglist D 0x200
+GLIBC_2.2 _test_and_set F
+GLIBC_2.2 addseverity F
+GLIBC_2.2 alphasort64 F
+GLIBC_2.2 argp_err_exit_status D 0x4
+GLIBC_2.2 argp_error F
+GLIBC_2.2 argp_failure F
+GLIBC_2.2 argp_help F
+GLIBC_2.2 argp_parse F
+GLIBC_2.2 argp_program_bug_address D 0x8
+GLIBC_2.2 argp_program_version D 0x8
+GLIBC_2.2 argp_program_version_hook D 0x8
+GLIBC_2.2 argp_state_help F
+GLIBC_2.2 argp_usage F
+GLIBC_2.2 authdes_create F
+GLIBC_2.2 authdes_getucred F
+GLIBC_2.2 authdes_pk_create F
+GLIBC_2.2 backtrace F
+GLIBC_2.2 backtrace_symbols F
+GLIBC_2.2 backtrace_symbols_fd F
+GLIBC_2.2 bind_textdomain_codeset F
+GLIBC_2.2 capget F
+GLIBC_2.2 capset F
+GLIBC_2.2 cbc_crypt F
+GLIBC_2.2 clntunix_create F
+GLIBC_2.2 creat64 F
+GLIBC_2.2 dcngettext F
+GLIBC_2.2 des_setparity F
+GLIBC_2.2 dngettext F
+GLIBC_2.2 ecb_crypt F
+GLIBC_2.2 endutxent F
+GLIBC_2.2 fattach F
+GLIBC_2.2 fclose F
+GLIBC_2.2 fdetach F
+GLIBC_2.2 fdopen F
+GLIBC_2.2 ffsl F
+GLIBC_2.2 ffsll F
+GLIBC_2.2 fgetc_unlocked F
+GLIBC_2.2 fgetpos F
+GLIBC_2.2 fgetpos64 F
+GLIBC_2.2 fgets_unlocked 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 fmtmsg F
+GLIBC_2.2 fopen F
+GLIBC_2.2 fopen64 F
+GLIBC_2.2 fopencookie F
+GLIBC_2.2 fputs_unlocked F
+GLIBC_2.2 fputwc F
+GLIBC_2.2 fputwc_unlocked F
+GLIBC_2.2 fputws F
+GLIBC_2.2 fputws_unlocked F
+GLIBC_2.2 fread_unlocked F
+GLIBC_2.2 freopen64 F
+GLIBC_2.2 fseeko F
+GLIBC_2.2 fseeko64 F
+GLIBC_2.2 fsetpos F
+GLIBC_2.2 fsetpos64 F
+GLIBC_2.2 fstatfs64 F
+GLIBC_2.2 fstatvfs F
+GLIBC_2.2 fstatvfs64 F
+GLIBC_2.2 ftello F
+GLIBC_2.2 ftello64 F
+GLIBC_2.2 ftruncate64 F
+GLIBC_2.2 ftw64 F
+GLIBC_2.2 fwide F
+GLIBC_2.2 fwprintf F
+GLIBC_2.2 fwrite_unlocked F
+GLIBC_2.2 fwscanf F
+GLIBC_2.2 gai_strerror F
+GLIBC_2.2 getaliasbyname_r F
+GLIBC_2.2 getaliasent_r F
+GLIBC_2.2 getcontext F
+GLIBC_2.2 getdate F
+GLIBC_2.2 getdate_err D 0x4
+GLIBC_2.2 getdate_r F
+GLIBC_2.2 getdirentries64 F
+GLIBC_2.2 getgrent_r F
+GLIBC_2.2 getgrgid_r F
+GLIBC_2.2 getgrnam_r F
+GLIBC_2.2 gethostbyaddr_r F
+GLIBC_2.2 gethostbyname2_r F
+GLIBC_2.2 gethostbyname_r F
+GLIBC_2.2 gethostent_r F
+GLIBC_2.2 getloadavg F
+GLIBC_2.2 getmsg F
+GLIBC_2.2 getnameinfo F
+GLIBC_2.2 getnetbyaddr_r F
+GLIBC_2.2 getnetbyname_r F
+GLIBC_2.2 getnetent_r F
+GLIBC_2.2 getnetname F
+GLIBC_2.2 getpmsg F
+GLIBC_2.2 getprotobyname_r F
+GLIBC_2.2 getprotobynumber_r F
+GLIBC_2.2 getprotoent_r F
+GLIBC_2.2 getpt F
+GLIBC_2.2 getpwent_r F
+GLIBC_2.2 getpwnam_r F
+GLIBC_2.2 getpwuid_r F
+GLIBC_2.2 getrlimit64 F
+GLIBC_2.2 getrpcbyname_r F
+GLIBC_2.2 getrpcbynumber_r F
+GLIBC_2.2 getrpcent_r F
+GLIBC_2.2 getservbyname_r F
+GLIBC_2.2 getservbyport_r F
+GLIBC_2.2 getservent_r F
+GLIBC_2.2 getspent_r F
+GLIBC_2.2 getspnam_r F
+GLIBC_2.2 getutmp F
+GLIBC_2.2 getutmpx F
+GLIBC_2.2 getutxent F
+GLIBC_2.2 getutxid F
+GLIBC_2.2 getutxline F
+GLIBC_2.2 getwc F
+GLIBC_2.2 getwc_unlocked F
+GLIBC_2.2 getwchar F
+GLIBC_2.2 getwchar_unlocked F
+GLIBC_2.2 glob64 F
+GLIBC_2.2 globfree64 F
+GLIBC_2.2 gnu_get_libc_release F
+GLIBC_2.2 gnu_get_libc_version F
+GLIBC_2.2 grantpt F
+GLIBC_2.2 host2netname F
+GLIBC_2.2 iconv F
+GLIBC_2.2 iconv_close F
+GLIBC_2.2 iconv_open F
+GLIBC_2.2 if_freenameindex F
+GLIBC_2.2 if_indextoname F
+GLIBC_2.2 if_nameindex F
+GLIBC_2.2 if_nametoindex F
+GLIBC_2.2 imaxabs F
+GLIBC_2.2 imaxdiv F
+GLIBC_2.2 in6addr_any D 0x10
+GLIBC_2.2 in6addr_loopback D 0x10
+GLIBC_2.2 iruserok_af F
+GLIBC_2.2 isastream F
+GLIBC_2.2 iswblank F
+GLIBC_2.2 key_decryptsession F
+GLIBC_2.2 key_decryptsession_pk F
+GLIBC_2.2 key_encryptsession F
+GLIBC_2.2 key_encryptsession_pk F
+GLIBC_2.2 key_gendes F
+GLIBC_2.2 key_get_conv F
+GLIBC_2.2 key_secretkey_is_set F
+GLIBC_2.2 key_setnet F
+GLIBC_2.2 key_setsecret F
+GLIBC_2.2 localeconv F
+GLIBC_2.2 lockf64 F
+GLIBC_2.2 lseek64 F
+GLIBC_2.2 makecontext F
+GLIBC_2.2 mcheck_check_all F
+GLIBC_2.2 mcheck_pedantic F
+GLIBC_2.2 mempcpy F
+GLIBC_2.2 memrchr F
+GLIBC_2.2 mincore F
+GLIBC_2.2 mkdtemp F
+GLIBC_2.2 mkstemp64 F
+GLIBC_2.2 mmap64 F
+GLIBC_2.2 moncontrol F
+GLIBC_2.2 netname2host F
+GLIBC_2.2 netname2user F
+GLIBC_2.2 nftw F
+GLIBC_2.2 nftw64 F
+GLIBC_2.2 ngettext F
+GLIBC_2.2 ntp_adjtime F
+GLIBC_2.2 ntp_gettime F
+GLIBC_2.2 open64 F
+GLIBC_2.2 passwd2des F
+GLIBC_2.2 pclose F
+GLIBC_2.2 popen F
+GLIBC_2.2 posix_fadvise F
+GLIBC_2.2 posix_fadvise64 F
+GLIBC_2.2 posix_fallocate F
+GLIBC_2.2 posix_fallocate64 F
+GLIBC_2.2 posix_madvise F
+GLIBC_2.2 posix_memalign F
+GLIBC_2.2 posix_spawn F
+GLIBC_2.2 posix_spawn_file_actions_addclose F
+GLIBC_2.2 posix_spawn_file_actions_adddup2 F
+GLIBC_2.2 posix_spawn_file_actions_addopen F
+GLIBC_2.2 posix_spawn_file_actions_destroy F
+GLIBC_2.2 posix_spawn_file_actions_init F
+GLIBC_2.2 posix_spawnattr_destroy F
+GLIBC_2.2 posix_spawnattr_getflags F
+GLIBC_2.2 posix_spawnattr_getpgroup F
+GLIBC_2.2 posix_spawnattr_getschedparam F
+GLIBC_2.2 posix_spawnattr_getschedpolicy F
+GLIBC_2.2 posix_spawnattr_getsigdefault F
+GLIBC_2.2 posix_spawnattr_getsigmask F
+GLIBC_2.2 posix_spawnattr_init F
+GLIBC_2.2 posix_spawnattr_setflags F
+GLIBC_2.2 posix_spawnattr_setpgroup F
+GLIBC_2.2 posix_spawnattr_setschedparam F
+GLIBC_2.2 posix_spawnattr_setschedpolicy F
+GLIBC_2.2 posix_spawnattr_setsigdefault F
+GLIBC_2.2 posix_spawnattr_setsigmask F
+GLIBC_2.2 posix_spawnp F
+GLIBC_2.2 pread F
+GLIBC_2.2 pread64 F
+GLIBC_2.2 printf_size F
+GLIBC_2.2 printf_size_info F
+GLIBC_2.2 pthread_attr_init F
+GLIBC_2.2 ptsname F
+GLIBC_2.2 ptsname_r F
+GLIBC_2.2 putgrent F
+GLIBC_2.2 putmsg F
+GLIBC_2.2 putpmsg F
+GLIBC_2.2 pututxline 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 pwrite F
+GLIBC_2.2 pwrite64 F
+GLIBC_2.2 rawmemchr 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 rtime F
+GLIBC_2.2 ruserok_af F
+GLIBC_2.2 scandir64 F
+GLIBC_2.2 sendfile F
+GLIBC_2.2 setrlimit64 F
+GLIBC_2.2 setutxent F
+GLIBC_2.2 sighold F
+GLIBC_2.2 sigignore F
+GLIBC_2.2 sigqueue F
+GLIBC_2.2 sigrelse F
+GLIBC_2.2 sigset F
+GLIBC_2.2 sigtimedwait F
+GLIBC_2.2 sigwaitinfo F
+GLIBC_2.2 statfs64 F
+GLIBC_2.2 statvfs F
+GLIBC_2.2 statvfs64 F
+GLIBC_2.2 strcasestr F
+GLIBC_2.2 strchrnul F
+GLIBC_2.2 strtoimax F
+GLIBC_2.2 strtoumax F
+GLIBC_2.2 strverscmp 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 0x8
+GLIBC_2.2 svcunix_create F
+GLIBC_2.2 svcunixfd_create F
+GLIBC_2.2 swapcontext F
+GLIBC_2.2 swprintf F
+GLIBC_2.2 swscanf F
+GLIBC_2.2 sys_errlist D 0x2370
+GLIBC_2.2 sys_nerr D 0x4
+GLIBC_2.2 sys_sigabbrev D 0x200
+GLIBC_2.2 sys_siglist D 0x200
+GLIBC_2.2 sysv_signal F
+GLIBC_2.2 tcgetsid F
+GLIBC_2.2 tdestroy F
+GLIBC_2.2 tmpfile F
+GLIBC_2.2 tmpfile64 F
+GLIBC_2.2 truncate64 F
+GLIBC_2.2 umount2 F
+GLIBC_2.2 ungetwc F
+GLIBC_2.2 unlockpt F
+GLIBC_2.2 updwtmpx F
+GLIBC_2.2 user2netname F
+GLIBC_2.2 utmpxname F
+GLIBC_2.2 versionsort 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 waitid F
+GLIBC_2.2 wcscasecmp F
+GLIBC_2.2 wcschrnul F
+GLIBC_2.2 wcsftime F
+GLIBC_2.2 wcsncasecmp F
+GLIBC_2.2 wcsnlen F
+GLIBC_2.2 wcstoimax F
+GLIBC_2.2 wcstoll F
+GLIBC_2.2 wcstoull F
+GLIBC_2.2 wcstoumax F
+GLIBC_2.2 wcswcs F
+GLIBC_2.2 wmempcpy F
+GLIBC_2.2 wordexp F
+GLIBC_2.2 wordfree F
+GLIBC_2.2 wprintf F
+GLIBC_2.2 wscanf F
+GLIBC_2.2 xdecrypt F
+GLIBC_2.2 xdr_authdes_cred F
+GLIBC_2.2 xdr_authdes_verf F
+GLIBC_2.2 xdr_getcredres F
+GLIBC_2.2 xdr_hyper F
+GLIBC_2.2 xdr_int16_t F
+GLIBC_2.2 xdr_int32_t F
+GLIBC_2.2 xdr_int64_t F
+GLIBC_2.2 xdr_int8_t F
+GLIBC_2.2 xdr_longlong_t F
+GLIBC_2.2 xdr_netnamestr F
+GLIBC_2.2 xdr_sizeof F
+GLIBC_2.2 xdr_u_hyper F
+GLIBC_2.2 xdr_u_longlong_t F
+GLIBC_2.2 xdr_uint16_t F
+GLIBC_2.2 xdr_uint32_t F
+GLIBC_2.2 xdr_uint64_t F
+GLIBC_2.2 xdr_uint8_t F
+GLIBC_2.2 xdr_unixcred 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 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 strtoul_l F
+GLIBC_2.3 strxfrm_l F
+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 0x400
+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 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 strtoll_l F
+GLIBC_2.3.3 strtoull_l F
+GLIBC_2.3.3 sys_sigabbrev D 0x400
+GLIBC_2.3.3 sys_siglist D 0x400
+GLIBC_2.3.4 GLIBC_2.3.4 A
+GLIBC_2.3.4 __chk_fail F
+GLIBC_2.3.4 __fprintf_chk F
+GLIBC_2.3.4 __gets_chk F
+GLIBC_2.3.4 __memcpy_chk F
+GLIBC_2.3.4 __memmove_chk F
+GLIBC_2.3.4 __mempcpy_chk F
+GLIBC_2.3.4 __memset_chk F
+GLIBC_2.3.4 __printf_chk F
+GLIBC_2.3.4 __snprintf_chk F
+GLIBC_2.3.4 __sprintf_chk F
+GLIBC_2.3.4 __stpcpy_chk F
+GLIBC_2.3.4 __strcat_chk F
+GLIBC_2.3.4 __strcpy_chk F
+GLIBC_2.3.4 __strncat_chk F
+GLIBC_2.3.4 __strncpy_chk F
+GLIBC_2.3.4 __vfprintf_chk F
+GLIBC_2.3.4 __vprintf_chk F
+GLIBC_2.3.4 __vsnprintf_chk F
+GLIBC_2.3.4 __vsprintf_chk F
+GLIBC_2.3.4 __xpg_strerror_r F
+GLIBC_2.3.4 getipv4sourcefilter F
+GLIBC_2.3.4 getsourcefilter F
+GLIBC_2.3.4 regexec F
+GLIBC_2.3.4 sched_getaffinity F
+GLIBC_2.3.4 sched_setaffinity F
+GLIBC_2.3.4 setipv4sourcefilter F
+GLIBC_2.3.4 setsourcefilter F
+GLIBC_2.3.4 xdr_quad_t F
+GLIBC_2.3.4 xdr_u_quad_t F
+GLIBC_2.4 GLIBC_2.4 A
+GLIBC_2.4 __confstr_chk F
+GLIBC_2.4 __fgets_chk F
+GLIBC_2.4 __fgets_unlocked_chk F
+GLIBC_2.4 __fgetws_chk F
+GLIBC_2.4 __fgetws_unlocked_chk F
+GLIBC_2.4 __fwprintf_chk F
+GLIBC_2.4 __fxstatat F
+GLIBC_2.4 __fxstatat64 F
+GLIBC_2.4 __getcwd_chk F
+GLIBC_2.4 __getdomainname_chk F
+GLIBC_2.4 __getgroups_chk F
+GLIBC_2.4 __gethostname_chk F
+GLIBC_2.4 __getlogin_r_chk F
+GLIBC_2.4 __getwd_chk F
+GLIBC_2.4 __mbsnrtowcs_chk F
+GLIBC_2.4 __mbsrtowcs_chk F
+GLIBC_2.4 __mbstowcs_chk F
+GLIBC_2.4 __pread64_chk F
+GLIBC_2.4 __pread_chk F
+GLIBC_2.4 __ptsname_r_chk F
+GLIBC_2.4 __read_chk F
+GLIBC_2.4 __readlink_chk F
+GLIBC_2.4 __realpath_chk F
+GLIBC_2.4 __recv_chk F
+GLIBC_2.4 __recvfrom_chk F
+GLIBC_2.4 __stack_chk_fail F
+GLIBC_2.4 __stpncpy_chk F
+GLIBC_2.4 __swprintf_chk F
+GLIBC_2.4 __syslog_chk F
+GLIBC_2.4 __ttyname_r_chk F
+GLIBC_2.4 __vfwprintf_chk F
+GLIBC_2.4 __vswprintf_chk F
+GLIBC_2.4 __vsyslog_chk F
+GLIBC_2.4 __vwprintf_chk F
+GLIBC_2.4 __wcpcpy_chk F
+GLIBC_2.4 __wcpncpy_chk F
+GLIBC_2.4 __wcrtomb_chk F
+GLIBC_2.4 __wcscat_chk F
+GLIBC_2.4 __wcscpy_chk F
+GLIBC_2.4 __wcsncat_chk F
+GLIBC_2.4 __wcsncpy_chk F
+GLIBC_2.4 __wcsnrtombs_chk F
+GLIBC_2.4 __wcsrtombs_chk F
+GLIBC_2.4 __wcstombs_chk F
+GLIBC_2.4 __wctomb_chk F
+GLIBC_2.4 __wmemcpy_chk F
+GLIBC_2.4 __wmemmove_chk F
+GLIBC_2.4 __wmempcpy_chk F
+GLIBC_2.4 __wmemset_chk F
+GLIBC_2.4 __wprintf_chk F
+GLIBC_2.4 __xmknodat F
+GLIBC_2.4 eaccess F
+GLIBC_2.4 faccessat F
+GLIBC_2.4 fchmodat F
+GLIBC_2.4 fchownat F
+GLIBC_2.4 fdopendir F
+GLIBC_2.4 futimesat F
+GLIBC_2.4 inotify_add_watch F
+GLIBC_2.4 inotify_init F
+GLIBC_2.4 inotify_rm_watch F
+GLIBC_2.4 linkat F
+GLIBC_2.4 mkdirat F
+GLIBC_2.4 mkfifoat F
+GLIBC_2.4 open_wmemstream F
+GLIBC_2.4 openat F
+GLIBC_2.4 openat64 F
+GLIBC_2.4 ppoll F
+GLIBC_2.4 readlinkat F
+GLIBC_2.4 renameat F
+GLIBC_2.4 symlinkat F
+GLIBC_2.4 unlinkat F
+GLIBC_2.4 unshare F
+GLIBC_2.5 GLIBC_2.5 A
+GLIBC_2.5 __readlinkat_chk F
+GLIBC_2.5 inet6_opt_append F
+GLIBC_2.5 inet6_opt_find F
+GLIBC_2.5 inet6_opt_finish F
+GLIBC_2.5 inet6_opt_get_val F
+GLIBC_2.5 inet6_opt_init F
+GLIBC_2.5 inet6_opt_next F
+GLIBC_2.5 inet6_opt_set_val F
+GLIBC_2.5 inet6_rth_add F
+GLIBC_2.5 inet6_rth_getaddr F
+GLIBC_2.5 inet6_rth_init F
+GLIBC_2.5 inet6_rth_reverse F
+GLIBC_2.5 inet6_rth_segments F
+GLIBC_2.5 inet6_rth_space F
+GLIBC_2.5 splice F
+GLIBC_2.5 tee F
+GLIBC_2.5 vmsplice F
+GLIBC_2.6 GLIBC_2.6 A
+GLIBC_2.6 __sched_cpucount F
+GLIBC_2.6 epoll_pwait F
+GLIBC_2.6 futimens F
+GLIBC_2.6 sched_getcpu F
+GLIBC_2.6 strerror_l F
+GLIBC_2.6 sync_file_range F
+GLIBC_2.6 utimensat F
+GLIBC_2.7 GLIBC_2.7 A
+GLIBC_2.7 __fread_chk F
+GLIBC_2.7 __fread_unlocked_chk F
+GLIBC_2.7 __isoc99_fscanf F
+GLIBC_2.7 __isoc99_fwscanf F
+GLIBC_2.7 __isoc99_scanf F
+GLIBC_2.7 __isoc99_sscanf F
+GLIBC_2.7 __isoc99_swscanf F
+GLIBC_2.7 __isoc99_vfscanf F
+GLIBC_2.7 __isoc99_vfwscanf F
+GLIBC_2.7 __isoc99_vscanf F
+GLIBC_2.7 __isoc99_vsscanf F
+GLIBC_2.7 __isoc99_vswscanf F
+GLIBC_2.7 __isoc99_vwscanf F
+GLIBC_2.7 __isoc99_wscanf F
+GLIBC_2.7 __open64_2 F
+GLIBC_2.7 __open_2 F
+GLIBC_2.7 __openat64_2 F
+GLIBC_2.7 __openat_2 F
+GLIBC_2.7 __sched_cpualloc F
+GLIBC_2.7 __sched_cpufree F
+GLIBC_2.7 eventfd F
+GLIBC_2.7 eventfd_read F
+GLIBC_2.7 eventfd_write F
+GLIBC_2.7 mkostemp F
+GLIBC_2.7 mkostemp64 F
+GLIBC_2.7 signalfd F
+GLIBC_2.8 GLIBC_2.8 A
+GLIBC_2.8 __asprintf_chk F
+GLIBC_2.8 __dprintf_chk F
+GLIBC_2.8 __obstack_printf_chk F
+GLIBC_2.8 __obstack_vprintf_chk F
+GLIBC_2.8 __vasprintf_chk F
+GLIBC_2.8 __vdprintf_chk F
+GLIBC_2.8 qsort_r F
+GLIBC_2.8 timerfd_create F
+GLIBC_2.8 timerfd_gettime F
+GLIBC_2.8 timerfd_settime F
+GLIBC_2.9 GLIBC_2.9 A
+GLIBC_2.9 dup3 F
+GLIBC_2.9 epoll_create1 F
+GLIBC_2.9 inotify_init1 F
+GLIBC_2.9 pipe2 F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/n64/libresolv.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/n64/libresolv.abilist
new file mode 100644
index 0000000000..2d92a35e81
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/n64/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 0xa8
+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 0x450
+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 0x80
+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/mips/mips64/n64/posix_fadvise64.c b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/n64/posix_fadvise64.c
new file mode 100644
index 0000000000..5a6379613b
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/n64/posix_fadvise64.c
@@ -0,0 +1,35 @@
+/* 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/>. */
+
+#undef weak_alias
+#define weak_alias(a, b)
+#undef strong_alias
+#define strong_alias(a, b)
+
+#include <sysdeps/unix/sysv/linux/posix_fadvise64.c>
+
+/* Although both posix_fadvise and posix_fadvise64 has the same semantic
+ on mips64, there were were releases with both symbol versions (BZ#14044).
+ So we need to continue export them. */
+#if SHLIB_COMPAT(libc, GLIBC_2_2, GLIBC_2_3_3)
+_strong_alias (__posix_fadvise64_l64, __posix_fadvise64_l32);
+compat_symbol (libc, __posix_fadvise64_l32, posix_fadvise64, GLIBC_2_2);
+versioned_symbol (libc, __posix_fadvise64_l64, posix_fadvise64, GLIBC_2_3_3);
+#else
+_weak_alias (posix_fadvise, posix_fadvise64);
+#endif
+_strong_alias (__posix_fadvise64_l64, posix_fadvise);
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/n64/sendfile64.c b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/n64/sendfile64.c
new file mode 100644
index 0000000000..4c451bd093
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/n64/sendfile64.c
@@ -0,0 +1 @@
+/* sendfile64 is alias of sendfile syscall. */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/n64/statfs64.c b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/n64/statfs64.c
new file mode 100644
index 0000000000..6e25b021ab
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/n64/statfs64.c
@@ -0,0 +1 @@
+/* Empty. */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/n64/syscalls.list b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/n64/syscalls.list
new file mode 100644
index 0000000000..28664208d0
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/n64/syscalls.list
@@ -0,0 +1,12 @@
+# File name Caller Syscall name # args Strong name Weak names
+
+readahead - readahead i:iii __readahead readahead
+
+prlimit EXTRA prlimit64 i:iipp prlimit prlimit64
+
+fanotify_mark EXTRA fanotify_mark i:iiiis fanotify_mark
+
+fstatfs - fstatfs i:ip __fstatfs fstatfs fstatfs64 __fstatfs64
+statfs - statfs i:sp __statfs statfs statfs64 __statfs64
+
+sendfile - sendfile i:iipi sendfile sendfile64
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/n64/sysdep.h b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/n64/sysdep.h
new file mode 100644
index 0000000000..98283083b3
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/n64/sysdep.h
@@ -0,0 +1,317 @@
+/* Copyright (C) 2000-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _LINUX_MIPS_SYSDEP_H
+#define _LINUX_MIPS_SYSDEP_H 1
+
+/* There is some commonality. */
+#include <sysdeps/unix/sysv/linux/sysdep.h>
+#include <sysdeps/unix/mips/mips64/n64/sysdep.h>
+
+#include <tls.h>
+
+/* In order to get __set_errno() definition in INLINE_SYSCALL. */
+#ifndef __ASSEMBLER__
+#include <errno.h>
+#endif
+
+/* For Linux we can use the system call table in the header file
+ /usr/include/asm/unistd.h
+ of the kernel. But these symbols do not follow the SYS_* syntax
+ so we have to redefine the `SYS_ify' macro here. */
+#undef SYS_ify
+#define SYS_ify(syscall_name) __NR_##syscall_name
+
+#ifdef __ASSEMBLER__
+
+/* We don't want the label for the error handler to be visible in the symbol
+ table when we define it here. */
+# define SYSCALL_ERROR_LABEL 99b
+
+#else /* ! __ASSEMBLER__ */
+
+/* Define a macro which expands into the inline wrapper code for a system
+ call. */
+#undef INLINE_SYSCALL
+#define INLINE_SYSCALL(name, nr, args...) \
+ ({ INTERNAL_SYSCALL_DECL (_sc_err); \
+ long result_var = INTERNAL_SYSCALL (name, _sc_err, nr, args); \
+ if ( INTERNAL_SYSCALL_ERROR_P (result_var, _sc_err) ) \
+ { \
+ __set_errno (INTERNAL_SYSCALL_ERRNO (result_var, _sc_err)); \
+ result_var = -1L; \
+ } \
+ result_var; })
+
+#undef INTERNAL_SYSCALL_DECL
+#define INTERNAL_SYSCALL_DECL(err) long err __attribute__ ((unused))
+
+#undef INTERNAL_SYSCALL_ERROR_P
+#define INTERNAL_SYSCALL_ERROR_P(val, err) ((void) (val), (long) (err))
+
+#undef INTERNAL_SYSCALL_ERRNO
+#define INTERNAL_SYSCALL_ERRNO(val, err) ((void) (err), val)
+
+/* Note that the original Linux syscall restart convention required the
+ instruction immediately preceding SYSCALL to initialize $v0 with the
+ syscall number. Then if a restart triggered, $v0 would have been
+ clobbered by the syscall interrupted, and needed to be reinititalized.
+ The kernel would decrement the PC by 4 before switching back to the
+ user mode so that $v0 had been reloaded before SYSCALL was executed
+ again. This implied the place $v0 was loaded from must have been
+ preserved across a syscall, e.g. an immediate, static register, stack
+ slot, etc.
+
+ The convention was relaxed in Linux with a change applied to the kernel
+ GIT repository as commit 96187fb0bc30cd7919759d371d810e928048249d, that
+ first appeared in the 2.6.36 release. Since then the kernel has had
+ code that reloads $v0 upon syscall restart and resumes right at the
+ SYSCALL instruction, so no special arrangement is needed anymore.
+
+ For backwards compatibility with existing kernel binaries we support
+ the old convention by choosing the instruction preceding SYSCALL
+ carefully. This also means we have to force a 32-bit encoding of the
+ microMIPS MOVE instruction if one is used. */
+
+#ifdef __mips_micromips
+# define MOVE32 "move32"
+#else
+# define MOVE32 "move"
+#endif
+
+#undef INTERNAL_SYSCALL
+#define INTERNAL_SYSCALL(name, err, nr, args...) \
+ internal_syscall##nr ("li\t%0, %2\t\t\t# " #name "\n\t", \
+ "IK" (SYS_ify (name)), \
+ 0, err, args)
+
+#undef INTERNAL_SYSCALL_NCS
+#define INTERNAL_SYSCALL_NCS(number, err, nr, args...) \
+ internal_syscall##nr (MOVE32 "\t%0, %2\n\t", \
+ "r" (__s0), \
+ number, err, args)
+
+#define internal_syscall0(v0_init, input, number, err, dummy...) \
+({ \
+ long _sys_result; \
+ \
+ { \
+ register long __s0 asm ("$16") __attribute__ ((unused)) \
+ = (number); \
+ register long __v0 asm ("$2"); \
+ register long __a3 asm ("$7"); \
+ __asm__ volatile ( \
+ ".set\tnoreorder\n\t" \
+ v0_init \
+ "syscall\n\t" \
+ ".set reorder" \
+ : "=r" (__v0), "=r" (__a3) \
+ : input \
+ : __SYSCALL_CLOBBERS); \
+ err = __a3; \
+ _sys_result = __v0; \
+ } \
+ _sys_result; \
+})
+
+#define internal_syscall1(v0_init, input, number, err, arg1) \
+({ \
+ long _sys_result; \
+ \
+ { \
+ register long __s0 asm ("$16") __attribute__ ((unused)) \
+ = (number); \
+ register long __v0 asm ("$2"); \
+ register long __a0 asm ("$4") = (long) (arg1); \
+ register long __a3 asm ("$7"); \
+ __asm__ volatile ( \
+ ".set\tnoreorder\n\t" \
+ v0_init \
+ "syscall\n\t" \
+ ".set reorder" \
+ : "=r" (__v0), "=r" (__a3) \
+ : input, "r" (__a0) \
+ : __SYSCALL_CLOBBERS); \
+ err = __a3; \
+ _sys_result = __v0; \
+ } \
+ _sys_result; \
+})
+
+#define internal_syscall2(v0_init, input, number, err, arg1, arg2) \
+({ \
+ long _sys_result; \
+ \
+ { \
+ register long __s0 asm ("$16") __attribute__ ((unused)) \
+ = (number); \
+ register long __v0 asm ("$2"); \
+ register long __a0 asm ("$4") = (long) (arg1); \
+ register long __a1 asm ("$5") = (long) (arg2); \
+ register long __a3 asm ("$7"); \
+ __asm__ volatile ( \
+ ".set\tnoreorder\n\t" \
+ v0_init \
+ "syscall\n\t" \
+ ".set\treorder" \
+ : "=r" (__v0), "=r" (__a3) \
+ : input, "r" (__a0), "r" (__a1) \
+ : __SYSCALL_CLOBBERS); \
+ err = __a3; \
+ _sys_result = __v0; \
+ } \
+ _sys_result; \
+})
+
+#define internal_syscall3(v0_init, input, number, err, \
+ arg1, arg2, arg3) \
+({ \
+ long _sys_result; \
+ \
+ { \
+ register long __s0 asm ("$16") __attribute__ ((unused)) \
+ = (number); \
+ register long __v0 asm ("$2"); \
+ register long __a0 asm ("$4") = (long) (arg1); \
+ register long __a1 asm ("$5") = (long) (arg2); \
+ register long __a2 asm ("$6") = (long) (arg3); \
+ register long __a3 asm ("$7"); \
+ __asm__ volatile ( \
+ ".set\tnoreorder\n\t" \
+ v0_init \
+ "syscall\n\t" \
+ ".set\treorder" \
+ : "=r" (__v0), "=r" (__a3) \
+ : input, "r" (__a0), "r" (__a1), "r" (__a2) \
+ : __SYSCALL_CLOBBERS); \
+ err = __a3; \
+ _sys_result = __v0; \
+ } \
+ _sys_result; \
+})
+
+#define internal_syscall4(v0_init, input, number, err, \
+ arg1, arg2, arg3, arg4) \
+({ \
+ long _sys_result; \
+ \
+ { \
+ register long __s0 asm ("$16") __attribute__ ((unused)) \
+ = (number); \
+ register long __v0 asm ("$2"); \
+ register long __a0 asm ("$4") = (long) (arg1); \
+ register long __a1 asm ("$5") = (long) (arg2); \
+ register long __a2 asm ("$6") = (long) (arg3); \
+ register long __a3 asm ("$7") = (long) (arg4); \
+ __asm__ volatile ( \
+ ".set\tnoreorder\n\t" \
+ v0_init \
+ "syscall\n\t" \
+ ".set\treorder" \
+ : "=r" (__v0), "+r" (__a3) \
+ : input, "r" (__a0), "r" (__a1), "r" (__a2) \
+ : __SYSCALL_CLOBBERS); \
+ err = __a3; \
+ _sys_result = __v0; \
+ } \
+ _sys_result; \
+})
+
+#define internal_syscall5(v0_init, input, number, err, \
+ arg1, arg2, arg3, arg4, arg5) \
+({ \
+ long _sys_result; \
+ \
+ { \
+ register long __s0 asm ("$16") __attribute__ ((unused)) \
+ = (number); \
+ register long __v0 asm ("$2"); \
+ register long __a0 asm ("$4") = (long) (arg1); \
+ register long __a1 asm ("$5") = (long) (arg2); \
+ register long __a2 asm ("$6") = (long) (arg3); \
+ register long __a3 asm ("$7") = (long) (arg4); \
+ register long __a4 asm ("$8") = (long) (arg5); \
+ __asm__ volatile ( \
+ ".set\tnoreorder\n\t" \
+ v0_init \
+ "syscall\n\t" \
+ ".set\treorder" \
+ : "=r" (__v0), "+r" (__a3) \
+ : input, "r" (__a0), "r" (__a1), "r" (__a2), "r" (__a4) \
+ : __SYSCALL_CLOBBERS); \
+ err = __a3; \
+ _sys_result = __v0; \
+ } \
+ _sys_result; \
+})
+
+#define internal_syscall6(v0_init, input, number, err, \
+ arg1, arg2, arg3, arg4, arg5, arg6) \
+({ \
+ long _sys_result; \
+ \
+ { \
+ register long __s0 asm ("$16") __attribute__ ((unused)) \
+ = (number); \
+ register long __v0 asm ("$2"); \
+ register long __a0 asm ("$4") = (long) (arg1); \
+ register long __a1 asm ("$5") = (long) (arg2); \
+ register long __a2 asm ("$6") = (long) (arg3); \
+ register long __a3 asm ("$7") = (long) (arg4); \
+ register long __a4 asm ("$8") = (long) (arg5); \
+ register long __a5 asm ("$9") = (long) (arg6); \
+ __asm__ volatile ( \
+ ".set\tnoreorder\n\t" \
+ v0_init \
+ "syscall\n\t" \
+ ".set\treorder" \
+ : "=r" (__v0), "+r" (__a3) \
+ : input, "r" (__a0), "r" (__a1), "r" (__a2), "r" (__a4), \
+ "r" (__a5) \
+ : __SYSCALL_CLOBBERS); \
+ err = __a3; \
+ _sys_result = __v0; \
+ } \
+ _sys_result; \
+})
+
+#define __SYSCALL_CLOBBERS "$1", "$3", "$10", "$11", "$12", "$13", \
+ "$14", "$15", "$24", "$25", "hi", "lo", "memory"
+
+/* Standard MIPS syscalls have an error flag, and return a positive errno
+ when the error flag is set. Emulate this behaviour for vsyscalls so that
+ the INTERNAL_SYSCALL_{ERROR_P,ERRNO} macros work correctly. */
+#define INTERNAL_VSYSCALL_CALL(funcptr, err, nr, args...) \
+ ({ \
+ long _ret = funcptr (args); \
+ err = ((unsigned long) (_ret) >= (unsigned long) -4095L); \
+ if (err) \
+ _ret = -_ret; \
+ _ret; \
+ })
+
+/* List of system calls which are supported as vsyscalls. */
+#define HAVE_CLOCK_GETTIME_VSYSCALL 1
+#define HAVE_GETTIMEOFDAY_VSYSCALL 1
+
+#endif /* __ASSEMBLER__ */
+
+/* Pointer mangling is not yet supported for MIPS. */
+#define PTR_MANGLE(var) (void) (var)
+#define PTR_DEMANGLE(var) (void) (var)
+
+#endif /* linux/mips/sysdep.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/semctl.c b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/semctl.c
new file mode 100644
index 0000000000..2cd5d63af0
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/semctl.c
@@ -0,0 +1,25 @@
+/* Copyright (C) 2007-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <shlib-compat.h>
+
+#undef SHLIB_COMPAT
+#define SHLIB_COMPAT(a, b, c) 0
+
+#define DEFAULT_VERSION GLIBC_2_0
+
+#include <sysdeps/unix/sysv/linux/semctl.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/shmctl.c b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/shmctl.c
new file mode 100644
index 0000000000..f008110742
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/shmctl.c
@@ -0,0 +1,25 @@
+/* Copyright (C) 2007-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <shlib-compat.h>
+
+#undef SHLIB_COMPAT
+#define SHLIB_COMPAT(a, b, c) 0
+
+#define DEFAULT_VERSION GLIBC_2_0
+
+#include <./sysdeps/unix/sysv/linux/shmctl.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/syscall.S b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/syscall.S
new file mode 100644
index 0000000000..efaa4489c6
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/syscall.S
@@ -0,0 +1,63 @@
+/* Copyright (C) 2001-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+
+#include <sys/asm.h>
+
+/* Usage:
+ long syscall (syscall_number, arg1, arg2, arg3, arg4, arg5, arg6, arg7)
+
+ We need to do some arg shifting, syscall_number will be in v0. */
+
+
+ .text
+NESTED (syscall, SZREG, ra)
+ .mask 0x00010000, -SZREG
+ .fmask 0x00000000, 0
+ PTR_ADDIU sp, -SZREG
+ cfi_adjust_cfa_offset (SZREG)
+ REG_S s0, (sp)
+ cfi_rel_offset (s0, 0)
+
+ move s0, a0
+ move a0, a1 /* shift arg1 - arg7. */
+ move a1, a2
+ move a2, a3
+ move a3, a4
+ move a4, a5
+ move a5, a6
+ move a6, a7
+
+ move v0, s0 /* Syscall number -> v0 */
+ syscall /* Do the system call. */
+
+ REG_L s0, (sp)
+ cfi_restore (s0)
+ PTR_ADDIU sp, SZREG
+ cfi_adjust_cfa_offset (-SZREG)
+ bne a3, zero, L(error)
+
+ ret
+
+L(error):
+ SETUP_GP64_REG (a0, syscall)
+ PTR_LA t9, __syscall_error
+ RESTORE_GP64_REG
+ jr t9
+
+END (syscall)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/sysdep-cancel.h b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/sysdep-cancel.h
new file mode 100644
index 0000000000..0ed3e3d62c
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/sysdep-cancel.h
@@ -0,0 +1,249 @@
+/* Copyright (C) 2003-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#include <sysdeps/generic/sysdep.h>
+#include <tls.h>
+#ifndef __ASSEMBLER__
+# include <nptl/pthreadP.h>
+#endif
+#include <sys/asm.h>
+
+/* Gas will put the initial save of $gp into the CIE, because it appears to
+ happen before any instructions. So we use cfi_same_value instead of
+ cfi_restore. */
+
+#if IS_IN (libc) || IS_IN (libpthread) || IS_IN (librt)
+
+#ifdef __PIC__
+# undef PSEUDO
+# define PSEUDO(name, syscall_name, args) \
+ .align 2; \
+ L(pseudo_start): \
+ cfi_startproc; \
+ cfi_adjust_cfa_offset (STKSPACE); \
+ cfi_rel_offset (gp, STKOFF_GP); \
+ 99: PTR_LA t9,__syscall_error; \
+ /* manual cpreturn */ \
+ REG_L gp, STKOFF_GP(sp); \
+ cfi_same_value (gp); \
+ RESTORESTK; \
+ jr t9; \
+ .type __##syscall_name##_nocancel, @function; \
+ .globl __##syscall_name##_nocancel; \
+ __##syscall_name##_nocancel: \
+ SAVESTK; \
+ .cpsetup t9, STKOFF_GP, __##syscall_name##_nocancel; \
+ cfi_rel_offset (gp, STKOFF_GP); \
+ li v0, SYS_ify(syscall_name); \
+ syscall; \
+ bne a3, zero, SYSCALL_ERROR_LABEL; \
+ /* manual cpreturn */ \
+ REG_L gp, STKOFF_GP(sp); \
+ cfi_same_value (gp); \
+ RESTORESTK; \
+ ret; \
+ cfi_endproc; \
+ .size __##syscall_name##_nocancel,.-__##syscall_name##_nocancel; \
+ ENTRY (name) \
+ SAVESTK; \
+ .cpsetup t9, STKOFF_GP, name; \
+ cfi_rel_offset (gp, STKOFF_GP); \
+ SINGLE_THREAD_P(v1); \
+ bne zero, v1, L(pseudo_cancel); \
+ .set noreorder; \
+ li v0, SYS_ify(syscall_name); \
+ syscall; \
+ .set reorder; \
+ bne a3, zero, SYSCALL_ERROR_LABEL; \
+ /* manual cpreturn */ \
+ REG_L gp, STKOFF_GP(sp); \
+ cfi_same_value (gp); \
+ RESTORESTK; \
+ ret; \
+ L(pseudo_cancel): \
+ cfi_adjust_cfa_offset (STKSPACE); \
+ cfi_rel_offset (gp, STKOFF_GP); \
+ REG_S ra, STKOFF_RA(sp); \
+ cfi_rel_offset (ra, STKOFF_RA); \
+ PUSHARGS_##args; /* save syscall args */ \
+ CENABLE; \
+ REG_S v0, STKOFF_SVMSK(sp); /* save mask */ \
+ POPARGS_##args; /* restore syscall args */ \
+ .set noreorder; \
+ li v0, SYS_ify (syscall_name); \
+ syscall; \
+ .set reorder; \
+ REG_S v0, STKOFF_SC_V0(sp); /* save syscall result */ \
+ REG_S a3, STKOFF_SC_ERR(sp); /* save syscall error flag */ \
+ REG_L a0, STKOFF_SVMSK(sp); /* pass mask as arg1 */ \
+ CDISABLE; \
+ REG_L a3, STKOFF_SC_ERR(sp); /* restore syscall error flag */ \
+ REG_L ra, STKOFF_RA(sp); /* restore return address */ \
+ REG_L v0, STKOFF_SC_V0(sp); /* restore syscall result */ \
+ bne a3, zero, SYSCALL_ERROR_LABEL; \
+ /* manual cpreturn */ \
+ REG_L gp, STKOFF_GP(sp); \
+ cfi_same_value (gp); \
+ RESTORESTK; \
+ L(pseudo_end):
+#else
+# undef PSEUDO
+# define PSEUDO(name, syscall_name, args) \
+ .align 2; \
+ L(pseudo_start): \
+ cfi_startproc; \
+ cfi_adjust_cfa_offset (STKSPACE); \
+ 99: RESTORESTK; \
+ j __syscall_error; \
+ .type __##syscall_name##_nocancel, @function; \
+ .globl __##syscall_name##_nocancel; \
+ __##syscall_name##_nocancel: \
+ SAVESTK; \
+ li v0, SYS_ify(syscall_name); \
+ syscall; \
+ bne a3, zero, SYSCALL_ERROR_LABEL; \
+ RESTORESTK; \
+ ret; \
+ cfi_endproc; \
+ .size __##syscall_name##_nocancel,.-__##syscall_name##_nocancel; \
+ ENTRY (name) \
+ SAVESTK; \
+ SINGLE_THREAD_P(v1); \
+ bne zero, v1, L(pseudo_cancel); \
+ .set noreorder; \
+ li v0, SYS_ify(syscall_name); \
+ syscall; \
+ .set reorder; \
+ bne a3, zero, SYSCALL_ERROR_LABEL; \
+ RESTORESTK; \
+ ret; \
+ L(pseudo_cancel): \
+ cfi_adjust_cfa_offset (STKSPACE); \
+ REG_S ra, STKOFF_RA(sp); \
+ cfi_rel_offset (ra, STKOFF_RA); \
+ PUSHARGS_##args; /* save syscall args */ \
+ CENABLE; \
+ REG_S v0, STKOFF_SVMSK(sp); /* save mask */ \
+ POPARGS_##args; /* restore syscall args */ \
+ .set noreorder; \
+ li v0, SYS_ify (syscall_name); \
+ syscall; \
+ .set reorder; \
+ REG_S v0, STKOFF_SC_V0(sp); /* save syscall result */ \
+ REG_S a3, STKOFF_SC_ERR(sp); /* save syscall error flag */ \
+ REG_L a0, STKOFF_SVMSK(sp); /* pass mask as arg1 */ \
+ CDISABLE; \
+ REG_L a3, STKOFF_SC_ERR(sp); /* restore syscall error flag */ \
+ REG_L ra, STKOFF_RA(sp); /* restore return address */ \
+ REG_L v0, STKOFF_SC_V0(sp); /* restore syscall result */ \
+ bne a3, zero, SYSCALL_ERROR_LABEL; \
+ RESTORESTK; \
+ L(pseudo_end):
+#endif
+
+# undef PSEUDO_END
+# define PSEUDO_END(sym) cfi_endproc; .end sym; .size sym,.-sym
+
+# define PUSHARGS_0 /* nothing to do */
+# define PUSHARGS_1 PUSHARGS_0 REG_S a0, STKOFF_A0(sp); cfi_rel_offset (a0, STKOFF_A0);
+# define PUSHARGS_2 PUSHARGS_1 REG_S a1, STKOFF_A1(sp); cfi_rel_offset (a1, STKOFF_A1);
+# define PUSHARGS_3 PUSHARGS_2 REG_S a2, STKOFF_A2(sp); cfi_rel_offset (a2, STKOFF_A2);
+# define PUSHARGS_4 PUSHARGS_3 REG_S a3, STKOFF_A3(sp); cfi_rel_offset (a3, STKOFF_A3);
+# define PUSHARGS_5 PUSHARGS_4 REG_S a4, STKOFF_A4(sp); cfi_rel_offset (a3, STKOFF_A4);
+# define PUSHARGS_6 PUSHARGS_5 REG_S a5, STKOFF_A5(sp); cfi_rel_offset (a3, STKOFF_A5);
+
+# define POPARGS_0 /* nothing to do */
+# define POPARGS_1 POPARGS_0 REG_L a0, STKOFF_A0(sp);
+# define POPARGS_2 POPARGS_1 REG_L a1, STKOFF_A1(sp);
+# define POPARGS_3 POPARGS_2 REG_L a2, STKOFF_A2(sp);
+# define POPARGS_4 POPARGS_3 REG_L a3, STKOFF_A3(sp);
+# define POPARGS_5 POPARGS_4 REG_L a4, STKOFF_A4(sp);
+# define POPARGS_6 POPARGS_5 REG_L a5, STKOFF_A5(sp);
+
+/* Save an even number of slots. Should be 0 if an even number of slots
+ are used below, or SZREG if an odd number are used. */
+# ifdef __PIC__
+# define STK_PAD SZREG
+# else
+# define STK_PAD 0
+# endif
+
+/* Place values that we are more likely to use later in this sequence, i.e.
+ closer to the SP at function entry. If you do that, the are more
+ likely to already be in your d-cache. */
+# define STKOFF_A5 (STK_PAD)
+# define STKOFF_A4 (STKOFF_A5 + SZREG)
+# define STKOFF_A3 (STKOFF_A4 + SZREG)
+# define STKOFF_A2 (STKOFF_A3 + SZREG) /* MT and more args. */
+# define STKOFF_A1 (STKOFF_A2 + SZREG) /* MT and 2 args. */
+# define STKOFF_A0 (STKOFF_A1 + SZREG) /* MT and 1 arg. */
+# define STKOFF_RA (STKOFF_A0 + SZREG) /* Used if MT. */
+# define STKOFF_SC_V0 (STKOFF_RA + SZREG) /* Used if MT. */
+# define STKOFF_SC_ERR (STKOFF_SC_V0 + SZREG) /* Used if MT. */
+# define STKOFF_SVMSK (STKOFF_SC_ERR + SZREG) /* Used if MT. */
+
+# ifdef __PIC__
+# define STKOFF_GP (STKOFF_SVMSK + SZREG) /* Always used. */
+# define STKSPACE (STKOFF_GP + SZREG)
+# else
+# define STKSPACE (STKOFF_SVMSK + SZREG)
+# endif
+
+# define SAVESTK PTR_SUBU sp, STKSPACE; cfi_adjust_cfa_offset(STKSPACE)
+# define RESTORESTK PTR_ADDU sp, STKSPACE; cfi_adjust_cfa_offset(-STKSPACE)
+
+# ifdef __PIC__
+# define PSEUDO_JMP(sym) PTR_LA t9, sym; jalr t9
+# else
+# define PSEUDO_JMP(sym) jal sym
+# endif
+
+# if IS_IN (libpthread)
+# define CENABLE PSEUDO_JMP (__pthread_enable_asynccancel)
+# define CDISABLE PSEUDO_JMP (__pthread_disable_asynccancel)
+# elif IS_IN (librt)
+# define CENABLE PSEUDO_JMP (__librt_enable_asynccancel)
+# define CDISABLE PSEUDO_JMP (__librt_disable_asynccancel)
+# else
+# define CENABLE PSEUDO_JMP (__libc_enable_asynccancel)
+# define CDISABLE PSEUDO_JMP (__libc_disable_asynccancel)
+# endif
+
+# ifndef __ASSEMBLER__
+# define SINGLE_THREAD_P \
+ __builtin_expect (THREAD_GETMEM (THREAD_SELF, \
+ header.multiple_threads) \
+ == 0, 1)
+# else
+# define SINGLE_THREAD_P(reg) \
+ READ_THREAD_POINTER(reg); \
+ lw reg, 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/mips/mips64/umount.c b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/umount.c
new file mode 100644
index 0000000000..64487c7819
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/umount.c
@@ -0,0 +1,30 @@
+/* Copyright (C) 2000-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by David Huggins-Daines <dhd@debian.org>, 2000.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+/* Since we don't have an oldumount system call, do what the kernel
+ does down here. */
+
+extern long int __umount2 (const char *name, int flags);
+
+long int
+__umount (const char *name)
+{
+ return __umount2 (name, 0);
+}
+
+weak_alias (__umount, umount);
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/xstat64.c b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/xstat64.c
new file mode 100644
index 0000000000..332ede92b9
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/mips64/xstat64.c
@@ -0,0 +1,44 @@
+/* xstat64 using 64-bit MIPS stat system call.
+ Copyright (C) 1991-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <stddef.h>
+#include <sys/stat.h>
+#include <kernel_stat.h>
+
+#include <sysdep.h>
+#include <sys/syscall.h>
+
+#include <xstatconv.h>
+
+/* Get information about the file NAME in BUF. */
+
+int
+__xstat64 (int vers, const char *name, struct stat64 *buf)
+{
+ int result;
+ struct kernel_stat kbuf;
+
+ result = INLINE_SYSCALL (stat, 2, name, &kbuf);
+ if (result == 0)
+ result = __xstat64_conv (vers, &kbuf, buf);
+
+ return result;
+}
+
+hidden_def (__xstat64)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/pipe.S b/REORG.TODO/sysdeps/unix/sysv/linux/mips/pipe.S
new file mode 100644
index 0000000000..1708888da4
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/pipe.S
@@ -0,0 +1 @@
+#include <sysdeps/unix/mips/pipe.S>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/profil-counter.h b/REORG.TODO/sysdeps/unix/sysv/linux/mips/profil-counter.h
new file mode 100644
index 0000000000..8a6a0bcf3d
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/profil-counter.h
@@ -0,0 +1,2 @@
+/* We can use the ix86 version. */
+#include <sysdeps/unix/sysv/linux/i386/profil-counter.h>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/pt-vfork.S b/REORG.TODO/sysdeps/unix/sysv/linux/mips/pt-vfork.S
new file mode 100644
index 0000000000..65cc3823ac
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/pt-vfork.S
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/alpha/pt-vfork.S>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/putmsg.c b/REORG.TODO/sysdeps/unix/sysv/linux/mips/putmsg.c
new file mode 100644
index 0000000000..ebc1680ca7
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/putmsg.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/i386/putmsg.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/readelflib.c b/REORG.TODO/sysdeps/unix/sysv/linux/mips/readelflib.c
new file mode 100644
index 0000000000..243c85b69d
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/readelflib.c
@@ -0,0 +1,91 @@
+/* Copyright (C) 1999-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Alexandre Oliva <aoliva@redhat.com>
+ Based on work ../x86_64/readelflib.c,
+ contributed by Andreas Jaeger <aj@suse.de>, 1999 and
+ Jakub Jelinek <jakub@redhat.com>, 1999.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+
+int process_elf32_file (const char *file_name, const char *lib, int *flag,
+ unsigned int *osversion, char **soname,
+ void *file_contents, size_t file_length);
+int process_elf64_file (const char *file_name, const char *lib, int *flag,
+ unsigned int *osversion, char **soname,
+ void *file_contents, size_t file_length);
+
+/* Returns 0 if everything is ok, != 0 in case of error. */
+int
+process_elf_file (const char *file_name, const char *lib, int *flag,
+ unsigned int *osversion, char **soname, void *file_contents,
+ size_t file_length)
+{
+ union
+ {
+ Elf64_Ehdr *eh64;
+ Elf32_Ehdr *eh32;
+ ElfW(Ehdr) *eh;
+ }
+ elf_header;
+ int ret;
+
+ elf_header.eh = file_contents;
+ if (elf_header.eh->e_ident [EI_CLASS] == ELFCLASS32)
+ {
+ ret = process_elf32_file (file_name, lib, flag, osversion, soname,
+ file_contents, file_length);
+ if (!ret)
+ {
+ Elf32_Word flags = elf_header.eh32->e_flags;
+ int nan2008 = (flags & EF_MIPS_NAN2008) != 0;
+
+ /* n32 libraries are always libc.so.6+, o32 only if 2008 NaN. */
+ if ((flags & EF_MIPS_ABI2) != 0)
+ *flag = (nan2008 ? FLAG_MIPS64_LIBN32_NAN2008
+ : FLAG_MIPS64_LIBN32) | FLAG_ELF_LIBC6;
+ else if (nan2008)
+ *flag = FLAG_MIPS_LIB32_NAN2008 | FLAG_ELF_LIBC6;
+ }
+ }
+ else
+ {
+ ret = process_elf64_file (file_name, lib, flag, osversion, soname,
+ file_contents, file_length);
+ /* n64 libraries are always libc.so.6+. */
+ if (!ret)
+ {
+ Elf64_Word flags = elf_header.eh64->e_flags;
+ int nan2008 = (flags & EF_MIPS_NAN2008) != 0;
+
+ *flag = (nan2008 ? FLAG_MIPS64_LIBN64_NAN2008
+ : FLAG_MIPS64_LIBN64) | FLAG_ELF_LIBC6;
+ }
+ }
+
+ return ret;
+}
+
+#undef __ELF_NATIVE_CLASS
+#undef process_elf_file
+#define process_elf_file process_elf32_file
+#define __ELF_NATIVE_CLASS 32
+#include "elf/readelflib.c"
+
+#undef __ELF_NATIVE_CLASS
+#undef process_elf_file
+#define process_elf_file process_elf64_file
+#define __ELF_NATIVE_CLASS 64
+#include "elf/readelflib.c"
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/register-dump.h b/REORG.TODO/sysdeps/unix/sysv/linux/mips/register-dump.h
new file mode 100644
index 0000000000..803b9fdb5c
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/register-dump.h
@@ -0,0 +1,121 @@
+/* Dump registers.
+ Copyright (C) 2000-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Andreas Jaeger <aj@suse.de>, 2000.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sgidefs.h>
+#include <sys/uio.h>
+#include <_itoa.h>
+
+#if _MIPS_SIM == _ABIO32
+# define CTX_TYPE struct sigcontext *
+# define CTX_REG(ctx, i) ((ctx)->sc_regs[(i)])
+# define CTX_PC(ctx) ((ctx)->sc_pc)
+# define CTX_MDHI(ctx) ((ctx)->sc_mdhi)
+# define CTX_MDLO(ctx) ((ctx)->sc_mdlo)
+# define REG_HEX_SIZE 8
+#else
+# define CTX_TYPE ucontext_t *
+# define CTX_REG(ctx, i) ((ctx)->uc_mcontext.gregs[(i)])
+# define CTX_PC(ctx) ((ctx)->uc_mcontext.pc)
+# define CTX_MDHI(ctx) ((ctx)->uc_mcontext.mdhi)
+# define CTX_MDLO(ctx) ((ctx)->uc_mcontext.mdhi)
+# define REG_HEX_SIZE 16
+#endif
+
+/* We will print the register dump in this format:
+
+ R0 XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
+ R8 XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
+ R16 XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
+ R24 XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
+ pc lo hi
+ XXXXXXXX XXXXXXXX XXXXXXXX
+ The FPU registers will not be printed.
+*/
+
+static void
+hexvalue (_ITOA_WORD_TYPE 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, CTX_TYPE ctx)
+{
+ char regs[38][REG_HEX_SIZE];
+ struct iovec iov[38 * 2 + 10];
+ size_t nr = 0;
+ int i;
+
+#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. */
+ for (i = 0; i < 32; i++)
+ hexvalue (CTX_REG (ctx, i), regs[i], REG_HEX_SIZE);
+ hexvalue (CTX_PC (ctx), regs[32], REG_HEX_SIZE);
+ hexvalue (CTX_MDHI (ctx), regs[33], REG_HEX_SIZE);
+ hexvalue (CTX_MDLO (ctx), regs[34], REG_HEX_SIZE);
+
+ /* Generate the output. */
+ ADD_STRING ("Register dump:\n\n R0 ");
+ for (i = 0; i < 8; i++)
+ {
+ ADD_MEM (regs[i], REG_HEX_SIZE);
+ ADD_STRING (" ");
+ }
+ ADD_STRING ("\n R8 ");
+ for (i = 8; i < 16; i++)
+ {
+ ADD_MEM (regs[i], REG_HEX_SIZE);
+ ADD_STRING (" ");
+ }
+ ADD_STRING ("\n R16 ");
+ for (i = 16; i < 24; i++)
+ {
+ ADD_MEM (regs[i], REG_HEX_SIZE);
+ ADD_STRING (" ");
+ }
+ ADD_STRING ("\n R24 ");
+ for (i = 24; i < 32; i++)
+ {
+ ADD_MEM (regs[i], REG_HEX_SIZE);
+ ADD_STRING (" ");
+ }
+ ADD_STRING ("\n pc lo hi\n ");
+ for (i = 32; i < 35; i++)
+ {
+ ADD_MEM (regs[i], REG_HEX_SIZE);
+ ADD_STRING (" ");
+ }
+ 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/mips/setcontext.S b/REORG.TODO/sysdeps/unix/sysv/linux/mips/setcontext.S
new file mode 100644
index 0000000000..4e363d98d0
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/setcontext.S
@@ -0,0 +1,196 @@
+/* Set current context.
+ Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Maciej W. Rozycki <macro@codesourcery.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 <sys/asm.h>
+#include <sys/fpregdef.h>
+#include <sys/regdef.h>
+
+#include "ucontext_i.h"
+
+/* int setcontext (const ucontext_t *ucp) */
+
+ .text
+ .set nomips16
+LOCALSZ = 0
+ARGSZ = 0
+MASK = 0x00000000
+#ifdef __PIC__
+LOCALSZ = 1 /* save gp */
+#endif
+#if _MIPS_SIM != _ABIO32
+ARGSZ = 1 /* save a0 */
+# ifdef __PIC__
+MASK = 0x10000000
+# endif
+#endif
+FRAMESZ = (((ARGSZ + LOCALSZ) * SZREG) + ALSZ) & ALMASK
+GPOFF = FRAMESZ - ((ARGSZ + 1) * SZREG)
+#if _MIPS_SIM != _ABIO32
+A0OFF = FRAMESZ - (1 * SZREG) /* callee-allocated */
+#else
+A0OFF = FRAMESZ + (0 * SZREG) /* caller-allocated */
+#endif
+
+NESTED (__setcontext, FRAMESZ, ra)
+ .mask MASK, -(ARGSZ * SZREG)
+ .fmask 0x00000000, 0
+
+#ifdef __PIC__
+ SETUP_GP
+#endif
+
+ PTR_ADDIU sp, -FRAMESZ
+ cfi_adjust_cfa_offset (FRAMESZ)
+
+#ifdef __PIC__
+ SETUP_GP64_STACK (GPOFF, __setcontext)
+ SAVE_GP (GPOFF)
+#endif
+
+#ifdef PROF
+ .set noat
+ move AT, ra
+ jal _mcount
+ .set at
+#endif
+
+ /* Check for the magic flag. */
+ li v0, 1
+ REG_L v1, (0 * SZREG + MCONTEXT_GREGS)(a0) /* zero */
+ bne v0, v1, 98f
+
+ REG_S a0, A0OFF(sp)
+
+/* rt_sigprocmask (SIG_SETMASK, &ucp->uc_sigmask, NULL, _NSIG8) */
+ li a3, _NSIG8
+ move a2, zero
+ PTR_ADDU a1, a0, UCONTEXT_SIGMASK
+ li a0, SIG_SETMASK
+
+ li v0, SYS_ify (rt_sigprocmask)
+ syscall
+ bnez a3, 99f
+
+ REG_L v0, A0OFF(sp)
+
+#ifdef __mips_hard_float
+# if _MIPS_SIM == _ABI64
+ l.d fs0, (24 * SZREG + MCONTEXT_FPREGS)(v0)
+ l.d fs1, (25 * SZREG + MCONTEXT_FPREGS)(v0)
+ l.d fs2, (26 * SZREG + MCONTEXT_FPREGS)(v0)
+ l.d fs3, (27 * SZREG + MCONTEXT_FPREGS)(v0)
+ l.d fs4, (28 * SZREG + MCONTEXT_FPREGS)(v0)
+ l.d fs5, (29 * SZREG + MCONTEXT_FPREGS)(v0)
+ l.d fs6, (30 * SZREG + MCONTEXT_FPREGS)(v0)
+ l.d fs7, (31 * SZREG + MCONTEXT_FPREGS)(v0)
+
+# else /* _MIPS_SIM != _ABI64 */
+ l.d fs0, (20 * SZREG + MCONTEXT_FPREGS)(v0)
+ l.d fs1, (22 * SZREG + MCONTEXT_FPREGS)(v0)
+ l.d fs2, (24 * SZREG + MCONTEXT_FPREGS)(v0)
+ l.d fs3, (26 * SZREG + MCONTEXT_FPREGS)(v0)
+ l.d fs4, (28 * SZREG + MCONTEXT_FPREGS)(v0)
+ l.d fs5, (30 * SZREG + MCONTEXT_FPREGS)(v0)
+
+# endif /* _MIPS_SIM != _ABI64 */
+
+ lw v1, MCONTEXT_FPC_CSR(v0)
+ ctc1 v1, fcr31
+#endif /* __mips_hard_float */
+
+ /* Note the contents of argument registers will be random
+ unless makecontext() has been called. */
+ REG_L a0, (4 * SZREG + MCONTEXT_GREGS)(v0)
+ REG_L a1, (5 * SZREG + MCONTEXT_GREGS)(v0)
+ REG_L a2, (6 * SZREG + MCONTEXT_GREGS)(v0)
+ REG_L a3, (7 * SZREG + MCONTEXT_GREGS)(v0)
+#if _MIPS_SIM != _ABIO32
+ REG_L a4, (8 * SZREG + MCONTEXT_GREGS)(v0)
+ REG_L a5, (9 * SZREG + MCONTEXT_GREGS)(v0)
+ REG_L a6, (10 * SZREG + MCONTEXT_GREGS)(v0)
+ REG_L a7, (11 * SZREG + MCONTEXT_GREGS)(v0)
+#endif
+
+ REG_L s0, (16 * SZREG + MCONTEXT_GREGS)(v0)
+ REG_L s1, (17 * SZREG + MCONTEXT_GREGS)(v0)
+ REG_L s2, (18 * SZREG + MCONTEXT_GREGS)(v0)
+ REG_L s3, (19 * SZREG + MCONTEXT_GREGS)(v0)
+ REG_L s4, (20 * SZREG + MCONTEXT_GREGS)(v0)
+ REG_L s5, (21 * SZREG + MCONTEXT_GREGS)(v0)
+ REG_L s6, (22 * SZREG + MCONTEXT_GREGS)(v0)
+ REG_L s7, (23 * SZREG + MCONTEXT_GREGS)(v0)
+#if ! defined (__PIC__) || _MIPS_SIM != _ABIO32
+ REG_L gp, (28 * SZREG + MCONTEXT_GREGS)(v0)
+#endif
+ REG_L sp, (29 * SZREG + MCONTEXT_GREGS)(v0)
+ REG_L fp, (30 * SZREG + MCONTEXT_GREGS)(v0)
+ REG_L ra, (31 * SZREG + MCONTEXT_GREGS)(v0)
+ REG_L t9, MCONTEXT_PC(v0)
+
+ move v0, zero
+ jr t9
+
+98:
+ /* This is a context obtained from a signal handler.
+ Perform a full restore by pushing the context
+ passed onto a simulated signal frame on the stack
+ and call the signal return syscall as if a signal
+ handler exited normally. */
+ PTR_ADDIU sp, -((RT_SIGFRAME_SIZE + ALSZ) & ALMASK)
+ cfi_adjust_cfa_offset ((RT_SIGFRAME_SIZE + ALSZ) & ALMASK)
+
+ /* Only ucontext is referred to from rt_sigreturn,
+ copy it. */
+ PTR_ADDIU t1, sp, RT_SIGFRAME_UCONTEXT
+ li t3, ((UCONTEXT_SIZE + SZREG - 1) / SZREG) - 1
+0:
+ REG_L t2, (a0)
+ PTR_ADDIU a0, SZREG
+ REG_S t2, (t1)
+ PTR_ADDIU t1, SZREG
+ .set noreorder
+ bgtz t3, 0b
+ addiu t3, -1
+ .set reorder
+
+/* rt_sigreturn () -- no arguments, sp points to struct rt_sigframe. */
+ li v0, SYS_ify (rt_sigreturn)
+ syscall
+
+ /* Restore the stack and fall through to the error
+ path. Successful rt_sigreturn never returns to
+ its calling place. */
+ PTR_ADDIU sp, ((RT_SIGFRAME_SIZE + ALSZ) & ALMASK)
+ cfi_adjust_cfa_offset (-((RT_SIGFRAME_SIZE + ALSZ) & ALMASK))
+99:
+#ifdef __PIC__
+ PTR_LA t9, JUMPTARGET (__syscall_error)
+ RESTORE_GP64_STACK
+ PTR_ADDIU sp, FRAMESZ
+ cfi_adjust_cfa_offset (-FRAMESZ)
+ jr t9
+
+#else /* ! __PIC__ */
+
+ j JUMPTARGET (__syscall_error)
+#endif /* ! __PIC__ */
+PSEUDO_END (__setcontext)
+
+weak_alias (__setcontext, setcontext)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/setrlimit64.c b/REORG.TODO/sysdeps/unix/sysv/linux/mips/setrlimit64.c
new file mode 100644
index 0000000000..d6feb59b30
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/setrlimit64.c
@@ -0,0 +1,64 @@
+/* Copyright (C) 2013-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 <sgidefs.h>
+
+#if _MIPS_SIM == _ABIO32 || _MIPS_SIM == _ABIN32
+
+# include <shlib-compat.h>
+
+# define setrlimit64 __new_setrlimit64
+# include <sysdeps/unix/sysv/linux/setrlimit64.c>
+# undef setrlimit64
+
+versioned_symbol (libc, __new_setrlimit64, setrlimit64, GLIBC_2_19);
+
+# if SHLIB_COMPAT (libc, GLIBC_2_2, GLIBC_2_19)
+
+/* RLIM64_INFINITY was supposed to be a glibc convention rather than
+ anything seen by the kernel, but it ended being passed to the kernel
+ through the prlimit64 syscall. Given that a lot of binaries with
+ the wrong constant value are in the wild, provide a wrapper function
+ fixing the value before the syscall. */
+
+# define OLD_RLIM64_INFINITY 0x7fffffffffffffffULL
+
+int
+attribute_compat_text_section
+__old_setrlimit64 (enum __rlimit_resource resource,
+ const struct rlimit64 *rlimits)
+{
+ struct rlimit64 krlimits;
+
+ if (rlimits->rlim_cur == OLD_RLIM64_INFINITY)
+ krlimits.rlim_cur = RLIM64_INFINITY;
+ else
+ krlimits.rlim_cur = rlimits->rlim_cur;
+ if (rlimits->rlim_max == OLD_RLIM64_INFINITY)
+ krlimits.rlim_max = RLIM64_INFINITY;
+ else
+ krlimits.rlim_max = rlimits->rlim_max;
+
+ return __new_setrlimit64 (resource, &krlimits);
+}
+
+compat_symbol (libc, __old_setrlimit64, setrlimit64, GLIBC_2_2);
+# endif
+
+#else /* !_ABI_O32 && !_ABI_N32 */
+# include <sysdeps/unix/sysv/linux/setrlimit64.c>
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/shlib-versions b/REORG.TODO/sysdeps/unix/sysv/linux/mips/shlib-versions
new file mode 100644
index 0000000000..c5bd7db098
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/shlib-versions
@@ -0,0 +1,27 @@
+libm=6 GLIBC_2.0 GLIBC_2.2
+
+# Working mips versions were never released between 2.0 and 2.2.
+libc=6 GLIBC_2.0 GLIBC_2.2
+
+%ifdef HAVE_MIPS_NAN2008
+ld=ld-linux-mipsn8.so.1 GLIBC_2.0 GLIBC_2.2
+%else
+ld=ld.so.1 GLIBC_2.0 GLIBC_2.2
+%endif
+libdl=2 GLIBC_2.0 GLIBC_2.2
+
+libresolv=2 GLIBC_2.0 GLIBC_2.2
+
+libnss_files=2 GLIBC_2.0 GLIBC_2.2
+libnss_dns=2 GLIBC_2.0 GLIBC_2.2
+libnss_compat=2 GLIBC_2.0 GLIBC_2.2
+libnss_nis=2 GLIBC_2.0 GLIBC_2.2
+libnss_nisplus=2 GLIBC_2.0 GLIBC_2.2
+libnss_ldap=2 GLIBC_2.0 GLIBC_2.2
+libnss_hesiod=2 GLIBC_2.0 GLIBC_2.2
+
+libnsl=1 GLIBC_2.0 GLIBC_2.2
+
+librt=1 GLIBC_2.0 GLIBC_2.2
+
+libpthread=0 GLIBC_2.0 GLIBC_2.2
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/sigaction.c b/REORG.TODO/sysdeps/unix/sysv/linux/mips/sigaction.c
new file mode 100644
index 0000000000..f6be3f29b6
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/sigaction.c
@@ -0,0 +1,116 @@
+/* Copyright (C) 1997-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <sgidefs.h>
+#include <signal.h>
+#include <string.h>
+
+#include <sysdep.h>
+#include <sys/syscall.h>
+
+#include <sgidefs.h>
+
+/* The difference here is that the sigaction structure used in the
+ kernel is not the same as we use in the libc. Therefore we must
+ translate it here. */
+#include <kernel_sigaction.h>
+
+#if _MIPS_SIM != _ABIO32
+
+# ifdef __NR_rt_sigreturn
+static void restore_rt (void) asm ("__restore_rt");
+# endif
+# ifdef __NR_sigreturn
+static void restore (void) asm ("__restore");
+# endif
+#endif
+
+/* If ACT is not NULL, change the action for SIG to *ACT.
+ If OACT is not NULL, put the old action for SIG in *OACT. */
+int
+__libc_sigaction (int sig, const struct sigaction *act, struct sigaction *oact)
+{
+ int result;
+
+ struct kernel_sigaction kact, koact;
+
+ if (act)
+ {
+ kact.k_sa_handler = act->sa_handler;
+ memcpy (&kact.sa_mask, &act->sa_mask, sizeof (kernel_sigset_t));
+ kact.sa_flags = act->sa_flags;
+#ifdef HAVE_SA_RESTORER
+# if _MIPS_SIM == _ABIO32
+ kact.sa_restorer = act->sa_restorer;
+# else
+ kact.sa_restorer = &restore_rt;
+# endif
+#endif
+ }
+
+ /* XXX The size argument hopefully will have to be changed to the
+ real size of the user-level sigset_t. */
+ result = INLINE_SYSCALL (rt_sigaction, 4, sig,
+ act ? &kact : NULL,
+ oact ? &koact : NULL,
+ sizeof (kernel_sigset_t));
+
+ if (oact && result >= 0)
+ {
+ oact->sa_handler = koact.k_sa_handler;
+ memcpy (&oact->sa_mask, &koact.sa_mask,
+ sizeof (kernel_sigset_t));
+ oact->sa_flags = koact.sa_flags;
+#ifdef HAVE_SA_RESTORER
+ oact->sa_restorer = koact.sa_restorer;
+#endif
+ }
+ return result;
+}
+libc_hidden_def (__libc_sigaction)
+
+#include <nptl/sigaction.c>
+
+
+/* NOTE: Please think twice before making any changes to the bits of
+ code below. GDB needs some intimate knowledge about it to
+ recognize them as signal trampolines, and make backtraces through
+ signal handlers work right. Important are both the names
+ (__restore_rt) and the exact instruction sequence.
+ If you ever feel the need to make any changes, please notify the
+ appropriate GDB maintainer. */
+
+#define RESTORE(name, syscall) RESTORE2 (name, syscall)
+#define RESTORE2(name, syscall) \
+asm \
+ ( \
+ ".align 4\n" \
+ "__" #name ":\n" \
+ " li $2, " #syscall "\n" \
+ " syscall\n" \
+ );
+
+/* The return code for realtime-signals. */
+#if _MIPS_SIM != _ABIO32
+# ifdef __NR_rt_sigreturn
+RESTORE (restore_rt, __NR_rt_sigreturn)
+# endif
+# ifdef __NR_sigreturn
+RESTORE (restore, __NR_sigreturn)
+# endif
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/sigcontextinfo.h b/REORG.TODO/sysdeps/unix/sysv/linux/mips/sigcontextinfo.h
new file mode 100644
index 0000000000..c9bc08363c
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/sigcontextinfo.h
@@ -0,0 +1,42 @@
+/* Copyright (C) 2000-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Andreas Jaeger <aj@suse.de>, 2000.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+
+#include <sgidefs.h>
+
+#if _MIPS_SIM == _ABIO32
+
+#define SIGCONTEXT unsigned long _code, struct sigcontext *
+#define SIGCONTEXT_EXTRA_ARGS _code,
+#define GET_PC(ctx) ((void *) (unsigned long) ctx->sc_pc)
+#define GET_FRAME(ctx) ((void *) (unsigned long) ctx->sc_regs[30])
+#define GET_STACK(ctx) ((void *) (unsigned long) ctx->sc_regs[29])
+#define CALL_SIGHANDLER(handler, signo, ctx) \
+ (handler)((signo), SIGCONTEXT_EXTRA_ARGS (ctx))
+
+#else
+
+#define SIGCONTEXT unsigned long _code, ucontext_t *
+#define SIGCONTEXT_EXTRA_ARGS _code,
+#define GET_PC(ctx) ((void *) (unsigned long) ctx->uc_mcontext.pc)
+#define GET_FRAME(ctx) ((void *) (unsigned long) ctx->uc_mcontext.gregs[30])
+#define GET_STACK(ctx) ((void *) (unsigned long) ctx->uc_mcontext.gregs[29])
+#define CALL_SIGHANDLER(handler, signo, ctx) \
+ (handler)((signo), SIGCONTEXT_EXTRA_ARGS (ctx))
+
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/swapcontext.S b/REORG.TODO/sysdeps/unix/sysv/linux/mips/swapcontext.S
new file mode 100644
index 0000000000..fde6e5e48a
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/swapcontext.S
@@ -0,0 +1,214 @@
+/* Save and set current context.
+ Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Maciej W. Rozycki <macro@codesourcery.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 <sys/asm.h>
+#include <sys/fpregdef.h>
+#include <sys/regdef.h>
+
+#include "ucontext_i.h"
+
+/* int swapcontext (ucontext_t *oucp, const ucontext_t *ucp) */
+
+ .text
+ .set nomips16
+LOCALSZ = 0
+ARGSZ = 0
+MASK = 0x00000000
+#ifdef __PIC__
+LOCALSZ = 1 /* save gp */
+#endif
+#if _MIPS_SIM != _ABIO32
+ARGSZ = 1 /* save a1 */
+# ifdef __PIC__
+MASK = 0x10000000
+# endif
+#endif
+FRAMESZ = (((ARGSZ + LOCALSZ) * SZREG) + ALSZ) & ALMASK
+GPOFF = FRAMESZ - ((ARGSZ + 1) * SZREG)
+#if _MIPS_SIM != _ABIO32
+A1OFF = FRAMESZ - (1 * SZREG) /* callee-allocated */
+#else
+A1OFF = FRAMESZ + (1 * SZREG) /* caller-allocated */
+#endif
+
+NESTED (__swapcontext, FRAMESZ, ra)
+ .mask MASK, -(ARGSZ * SZREG)
+ .fmask 0x00000000, 0
+
+#ifdef __PIC__
+ SETUP_GP
+
+ move a2, sp
+# define _SP a2
+
+# if _MIPS_SIM != _ABIO32
+ move a3, gp
+# define _GP a3
+# endif
+
+ PTR_ADDIU sp, -FRAMESZ
+ cfi_adjust_cfa_offset (FRAMESZ)
+ SETUP_GP64_STACK (GPOFF, __swapcontext)
+ SAVE_GP (GPOFF)
+
+#else /* ! __PIC__ */
+# define _SP sp
+# define _GP gp
+
+#endif /* ! __PIC__ */
+
+#ifdef PROF
+ .set noat
+ move AT, ra
+ jal _mcount
+ .set at
+#endif
+
+ /* Store a magic flag. */
+ li v1, 1
+ REG_S v1, (0 * SZREG + MCONTEXT_GREGS)(a0) /* zero */
+
+ REG_S s0, (16 * SZREG + MCONTEXT_GREGS)(a0)
+ REG_S s1, (17 * SZREG + MCONTEXT_GREGS)(a0)
+ REG_S s2, (18 * SZREG + MCONTEXT_GREGS)(a0)
+ REG_S s3, (19 * SZREG + MCONTEXT_GREGS)(a0)
+ REG_S s4, (20 * SZREG + MCONTEXT_GREGS)(a0)
+ REG_S s5, (21 * SZREG + MCONTEXT_GREGS)(a0)
+ REG_S s6, (22 * SZREG + MCONTEXT_GREGS)(a0)
+ REG_S s7, (23 * SZREG + MCONTEXT_GREGS)(a0)
+#if ! defined (__PIC__) || _MIPS_SIM != _ABIO32
+ REG_S _GP, (28 * SZREG + MCONTEXT_GREGS)(a0)
+#endif
+ REG_S _SP, (29 * SZREG + MCONTEXT_GREGS)(a0)
+ REG_S fp, (30 * SZREG + MCONTEXT_GREGS)(a0)
+ REG_S ra, (31 * SZREG + MCONTEXT_GREGS)(a0)
+ REG_S ra, MCONTEXT_PC(a0)
+
+#ifdef __mips_hard_float
+# if _MIPS_SIM == _ABI64
+ s.d fs0, (24 * SZREG + MCONTEXT_FPREGS)(a0)
+ s.d fs1, (25 * SZREG + MCONTEXT_FPREGS)(a0)
+ s.d fs2, (26 * SZREG + MCONTEXT_FPREGS)(a0)
+ s.d fs3, (27 * SZREG + MCONTEXT_FPREGS)(a0)
+ s.d fs4, (28 * SZREG + MCONTEXT_FPREGS)(a0)
+ s.d fs5, (29 * SZREG + MCONTEXT_FPREGS)(a0)
+ s.d fs6, (30 * SZREG + MCONTEXT_FPREGS)(a0)
+ s.d fs7, (31 * SZREG + MCONTEXT_FPREGS)(a0)
+
+# else /* _MIPS_SIM != _ABI64 */
+ s.d fs0, (20 * SZREG + MCONTEXT_FPREGS)(a0)
+ s.d fs1, (22 * SZREG + MCONTEXT_FPREGS)(a0)
+ s.d fs2, (24 * SZREG + MCONTEXT_FPREGS)(a0)
+ s.d fs3, (26 * SZREG + MCONTEXT_FPREGS)(a0)
+ s.d fs4, (28 * SZREG + MCONTEXT_FPREGS)(a0)
+ s.d fs5, (30 * SZREG + MCONTEXT_FPREGS)(a0)
+
+# endif /* _MIPS_SIM != _ABI64 */
+
+ cfc1 v1, fcr31
+ sw v1, MCONTEXT_FPC_CSR(a0)
+#endif /* __mips_hard_float */
+
+ REG_S a1, A1OFF(sp)
+
+/* rt_sigprocmask (SIG_SETMASK, &ucp->uc_sigmask, &oucp->uc_sigmask, _NSIG8) */
+ li a3, _NSIG8
+ PTR_ADDU a2, a0, UCONTEXT_SIGMASK
+ PTR_ADDU a1, a1, UCONTEXT_SIGMASK
+ li a0, SIG_SETMASK
+
+ li v0, SYS_ify (rt_sigprocmask)
+ syscall
+ bnez a3, 99f
+
+ REG_L v0, A1OFF(sp)
+
+#ifdef __mips_hard_float
+# if _MIPS_SIM == _ABI64
+ l.d fs0, (24 * SZREG + MCONTEXT_FPREGS)(v0)
+ l.d fs1, (25 * SZREG + MCONTEXT_FPREGS)(v0)
+ l.d fs2, (26 * SZREG + MCONTEXT_FPREGS)(v0)
+ l.d fs3, (27 * SZREG + MCONTEXT_FPREGS)(v0)
+ l.d fs4, (28 * SZREG + MCONTEXT_FPREGS)(v0)
+ l.d fs5, (29 * SZREG + MCONTEXT_FPREGS)(v0)
+ l.d fs6, (30 * SZREG + MCONTEXT_FPREGS)(v0)
+ l.d fs7, (31 * SZREG + MCONTEXT_FPREGS)(v0)
+
+# else /* _MIPS_SIM != _ABI64 */
+ l.d fs0, (20 * SZREG + MCONTEXT_FPREGS)(v0)
+ l.d fs1, (22 * SZREG + MCONTEXT_FPREGS)(v0)
+ l.d fs2, (24 * SZREG + MCONTEXT_FPREGS)(v0)
+ l.d fs3, (26 * SZREG + MCONTEXT_FPREGS)(v0)
+ l.d fs4, (28 * SZREG + MCONTEXT_FPREGS)(v0)
+ l.d fs5, (30 * SZREG + MCONTEXT_FPREGS)(v0)
+
+# endif /* _MIPS_SIM != _ABI64 */
+
+ lw v1, MCONTEXT_FPC_CSR(v0)
+ ctc1 v1, fcr31
+#endif /* __mips_hard_float */
+
+ /* Note the contents of argument registers will be random
+ unless makecontext() has been called. */
+ REG_L a0, (4 * SZREG + MCONTEXT_GREGS)(v0)
+ REG_L a1, (5 * SZREG + MCONTEXT_GREGS)(v0)
+ REG_L a2, (6 * SZREG + MCONTEXT_GREGS)(v0)
+ REG_L a3, (7 * SZREG + MCONTEXT_GREGS)(v0)
+#if _MIPS_SIM != _ABIO32
+ REG_L a4, (8 * SZREG + MCONTEXT_GREGS)(v0)
+ REG_L a5, (9 * SZREG + MCONTEXT_GREGS)(v0)
+ REG_L a6, (10 * SZREG + MCONTEXT_GREGS)(v0)
+ REG_L a7, (11 * SZREG + MCONTEXT_GREGS)(v0)
+#endif
+
+ REG_L s0, (16 * SZREG + MCONTEXT_GREGS)(v0)
+ REG_L s1, (17 * SZREG + MCONTEXT_GREGS)(v0)
+ REG_L s2, (18 * SZREG + MCONTEXT_GREGS)(v0)
+ REG_L s3, (19 * SZREG + MCONTEXT_GREGS)(v0)
+ REG_L s4, (20 * SZREG + MCONTEXT_GREGS)(v0)
+ REG_L s5, (21 * SZREG + MCONTEXT_GREGS)(v0)
+ REG_L s6, (22 * SZREG + MCONTEXT_GREGS)(v0)
+ REG_L s7, (23 * SZREG + MCONTEXT_GREGS)(v0)
+#if ! defined (__PIC__) || _MIPS_SIM != _ABIO32
+ REG_L gp, (28 * SZREG + MCONTEXT_GREGS)(v0)
+#endif
+ REG_L sp, (29 * SZREG + MCONTEXT_GREGS)(v0)
+ REG_L fp, (30 * SZREG + MCONTEXT_GREGS)(v0)
+ REG_L ra, (31 * SZREG + MCONTEXT_GREGS)(v0)
+ REG_L t9, MCONTEXT_PC(v0)
+
+ move v0, zero
+ jr t9
+
+99:
+#ifdef __PIC__
+ PTR_LA t9, JUMPTARGET (__syscall_error)
+ RESTORE_GP64_STACK
+ PTR_ADDIU sp, FRAMESZ
+ cfi_adjust_cfa_offset (-FRAMESZ)
+ jr t9
+
+#else /* ! __PIC__ */
+
+ j JUMPTARGET (__syscall_error)
+#endif /* ! __PIC__ */
+PSEUDO_END (__swapcontext)
+
+weak_alias (__swapcontext, swapcontext)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/sys/cachectl.h b/REORG.TODO/sysdeps/unix/sysv/linux/mips/sys/cachectl.h
new file mode 100644
index 0000000000..4bad3754b2
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/sys/cachectl.h
@@ -0,0 +1,41 @@
+/* Copyright (C) 1995-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_CACHECTL_H
+#define _SYS_CACHECTL_H 1
+
+#include <features.h>
+
+/*
+ * Get the kernel definition for the op bits.
+ */
+#include <asm/cachectl.h>
+
+__BEGIN_DECLS
+
+#ifdef __USE_MISC
+extern int cachectl (void *__addr, const int __nbytes, const int __op) __THROW;
+#endif
+extern int __cachectl (void *__addr, const int __nbytes, const int __op) __THROW;
+#ifdef __USE_MISC
+extern int cacheflush (void *__addr, const int __nbytes, const int __op) __THROW;
+#endif
+extern int _flush_cache (char *__addr, const int __nbytes, const int __op) __THROW;
+
+__END_DECLS
+
+#endif /* sys/cachectl.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/sys/procfs.h b/REORG.TODO/sysdeps/unix/sysv/linux/mips/sys/procfs.h
new file mode 100644
index 0000000000..4c6001bd17
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/sys/procfs.h
@@ -0,0 +1,126 @@
+/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_PROCFS_H
+#define _SYS_PROCFS_H 1
+
+/* This is somehow modelled after the file of the same name on SysVr4
+ systems. It provides a definition of the core file format for ELF
+ used on Linux. */
+
+#include <features.h>
+#include <sgidefs.h>
+#include <sys/time.h>
+#include <sys/types.h>
+#include <sys/user.h>
+#include <sgidefs.h>
+
+/* ELF register definitions */
+#define ELF_NGREG 45
+#define ELF_NFPREG 33
+
+#if _MIPS_SIM == _ABIN32
+__extension__ typedef unsigned long long elf_greg_t;
+#else
+typedef unsigned long elf_greg_t;
+#endif
+typedef elf_greg_t elf_gregset_t[ELF_NGREG];
+
+typedef double elf_fpreg_t;
+typedef elf_fpreg_t elf_fpregset_t[ELF_NFPREG];
+
+__BEGIN_DECLS
+
+struct elf_siginfo
+ {
+ int si_signo; /* Signal number. */
+ int si_code; /* Extra code. */
+ int si_errno; /* Errno. */
+ };
+
+
+/* Definitions to generate Intel SVR4-like core files. These mostly
+ have the same names as the SVR4 types with "elf_" tacked on the
+ front to prevent clashes with linux definitions, and the typedef
+ forms have been avoided. This is mostly like the SVR4 structure,
+ but more Linuxy, with things that Linux does not support and which
+ gdb doesn't really use excluded. Fields present but not used are
+ marked with "XXX". */
+struct elf_prstatus
+ {
+ struct elf_siginfo pr_info; /* Info associated with signal. */
+ short int pr_cursig; /* Current signal. */
+#if _MIPS_SIM == _ABIN32
+ __extension__ unsigned long long int pr_sigpend;
+ __extension__ unsigned long long int pr_sighold;
+#else
+ unsigned long int pr_sigpend; /* Set of pending signals. */
+ unsigned long int pr_sighold; /* Set of held signals. */
+#endif
+ __pid_t pr_pid;
+ __pid_t pr_ppid;
+ __pid_t pr_pgrp;
+ __pid_t pr_sid;
+ struct timeval pr_utime; /* User time. */
+ struct timeval pr_stime; /* System time. */
+ struct timeval pr_cutime; /* Cumulative user time. */
+ struct timeval pr_cstime; /* Cumulative system time. */
+ elf_gregset_t pr_reg; /* GP registers. */
+ int pr_fpvalid; /* True if math copro being used. */
+ };
+
+
+#define ELF_PRARGSZ (80) /* Number of chars for args */
+
+struct elf_prpsinfo
+ {
+ char pr_state; /* Numeric process state. */
+ char pr_sname; /* Char for pr_state. */
+ char pr_zomb; /* Zombie. */
+ char pr_nice; /* Nice val. */
+#if _MIPS_SIM == _ABIN32
+ __extension__ unsigned long long int pr_flag;
+#else
+ unsigned long int pr_flag; /* Flags. */
+#endif
+ long pr_uid;
+ long pr_gid;
+ int pr_pid, pr_ppid, pr_pgrp, pr_sid;
+ /* Lots missing */
+ char pr_fname[16]; /* Filename of executable. */
+ char pr_psargs[ELF_PRARGSZ]; /* Initial part of arg list. */
+ };
+
+
+/* Addresses. */
+typedef void *psaddr_t;
+
+/* Register sets. Linux has different names. */
+typedef elf_gregset_t prgregset_t;
+typedef elf_fpregset_t prfpregset_t;
+
+/* We don't have any differences between processes and threads,
+ therefore habe only ine PID type. */
+typedef __pid_t lwpid_t;
+
+
+typedef struct elf_prstatus prstatus_t;
+typedef struct elf_prpsinfo prpsinfo_t;
+
+__END_DECLS
+
+#endif /* sys/procfs.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/sys/sysmips.h b/REORG.TODO/sysdeps/unix/sysv/linux/mips/sys/sysmips.h
new file mode 100644
index 0000000000..a059b7094d
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/sys/sysmips.h
@@ -0,0 +1,42 @@
+/* Copyright (C) 1995-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_SYSMIPS_H
+#define _SYS_SYSMIPS_H 1
+
+#include <features.h>
+
+/*
+ * Commands for the sysmips(2) call
+ *
+ * sysmips(2) is deprecated - though some existing software uses it.
+ * We only support the following commands. Sysmips exists for compatibility
+ * purposes only so new software should avoid it.
+ */
+#define SETNAME 1 /* set hostname */
+#define FLUSH_CACHE 3 /* writeback and invalidate caches */
+#define MIPS_FIXADE 7 /* control address error fixing */
+#define MIPS_RDNVRAM 10 /* read NVRAM */
+#define MIPS_ATOMIC_SET 2001 /* atomically set variable */
+
+__BEGIN_DECLS
+
+extern int sysmips (const int __cmd, ...) __THROW;
+
+__END_DECLS
+
+#endif /* sys/sysmips.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/sys/ucontext.h b/REORG.TODO/sysdeps/unix/sysv/linux/mips/sys/ucontext.h
new file mode 100644
index 0000000000..048e9a46b7
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/sys/ucontext.h
@@ -0,0 +1,125 @@
+/* Copyright (C) 1997-2017 Free Software Foundation, Inc. This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+/* Don't rely on this, the interface is currently messed up and may need to
+ be broken to be fixed. */
+#ifndef _SYS_UCONTEXT_H
+#define _SYS_UCONTEXT_H 1
+
+#include <features.h>
+
+#include <bits/types/sigset_t.h>
+#include <bits/sigcontext.h>
+#include <bits/types/stack_t.h>
+
+#include <sgidefs.h>
+
+
+/* Type for general register. Even in o32 we assume 64-bit registers,
+ like the kernel. */
+__extension__ typedef unsigned long long int greg_t;
+
+/* Number of general registers. */
+#define __NGREG 32
+#define __NFPREG 32
+#ifdef __USE_MISC
+# define NGREG __NGREG
+# define NFPREG __NFPREG
+#endif
+
+/* Container for all general registers. */
+typedef greg_t gregset_t[__NGREG];
+
+#ifdef __USE_MISC
+# define __ctx(fld) fld
+#else
+# define __ctx(fld) __ ## fld
+#endif
+
+/* Container for all FPU registers. */
+typedef struct fpregset {
+ union {
+ double __ctx(fp_dregs)[__NFPREG];
+ struct {
+ float _fp_fregs;
+ unsigned int _fp_pad;
+ } __ctx(fp_fregs)[__NFPREG];
+ } __ctx(fp_r);
+} fpregset_t;
+
+
+/* Context to describe whole processor state. */
+#if _MIPS_SIM == _ABIO32
+/* Earlier versions of glibc for mips had an entirely different
+ definition of mcontext_t, that didn't even resemble the
+ corresponding kernel data structure. Fortunately, makecontext,
+ [gs]etcontext et all were not implemented back then, so this can
+ still be rectified. */
+typedef struct
+ {
+ unsigned int __ctx(regmask);
+ unsigned int __ctx(status);
+ greg_t __ctx(pc);
+ gregset_t __ctx(gregs);
+ fpregset_t __ctx(fpregs);
+ unsigned int __ctx(fp_owned);
+ unsigned int __ctx(fpc_csr);
+ unsigned int __ctx(fpc_eir);
+ unsigned int __ctx(used_math);
+ unsigned int __ctx(dsp);
+ greg_t __ctx(mdhi);
+ greg_t __ctx(mdlo);
+ unsigned long __ctx(hi1);
+ unsigned long __ctx(lo1);
+ unsigned long __ctx(hi2);
+ unsigned long __ctx(lo2);
+ unsigned long __ctx(hi3);
+ unsigned long __ctx(lo3);
+ } mcontext_t;
+#else
+typedef struct
+ {
+ gregset_t __ctx(gregs);
+ fpregset_t __ctx(fpregs);
+ greg_t __ctx(mdhi);
+ greg_t __ctx(hi1);
+ greg_t __ctx(hi2);
+ greg_t __ctx(hi3);
+ greg_t __ctx(mdlo);
+ greg_t __ctx(lo1);
+ greg_t __ctx(lo2);
+ greg_t __ctx(lo3);
+ greg_t __ctx(pc);
+ unsigned int __ctx(fpc_csr);
+ unsigned int __ctx(used_math);
+ unsigned int __ctx(dsp);
+ unsigned int __glibc_reserved1;
+ } mcontext_t;
+#endif
+
+#undef __ctx
+
+/* Userlevel context. */
+typedef struct ucontext
+ {
+ unsigned long int uc_flags;
+ struct ucontext *uc_link;
+ stack_t uc_stack;
+ mcontext_t uc_mcontext;
+ sigset_t uc_sigmask;
+ } ucontext_t;
+
+#endif /* sys/ucontext.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/sys/user.h b/REORG.TODO/sysdeps/unix/sysv/linux/mips/sys/user.h
new file mode 100644
index 0000000000..9d11d65880
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/sys/user.h
@@ -0,0 +1,210 @@
+/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_USER_H
+#define _SYS_USER_H 1
+
+#include <sgidefs.h>
+#include <stddef.h>
+
+/* The whole purpose of this file is for GDB and GDB only. Don't read
+ too much into it. Don't use it for anything other than GDB unless
+ you know what you are doing. */
+
+/* #include <asm/reg.h> */
+/* Instead of including the kernel header, that will vary depending on
+ whether the 32- or the 64-bit kernel is installed, we paste its
+ contents here. Note that the fact that the file is inline here,
+ instead of included separately, doesn't change in any way the
+ licensing status of a program that includes user.h. Since this is
+ for gdb alone, and gdb is GPLed, no surprises here. */
+#if _MIPS_SIM == _ABIO32
+/*
+ * Various register offset definitions for debuggers, core file
+ * examiners and whatnot.
+ *
+ * This file is subject to the terms and conditions of the GNU General Public
+ * License. See the file "COPYING" in the main directory of this archive
+ * for more details.
+ *
+ * Copyright (C) 1995, 1999 by Ralf Baechle
+ */
+#ifndef __ASM_MIPS_REG_H
+#define __ASM_MIPS_REG_H
+
+/*
+ * This defines/structures correspond to the register layout on stack -
+ * if the order here is changed, it needs to be updated in
+ * include/asm-mips/stackframe.h
+ */
+#define EF_REG0 6
+#define EF_REG1 7
+#define EF_REG2 8
+#define EF_REG3 9
+#define EF_REG4 10
+#define EF_REG5 11
+#define EF_REG6 12
+#define EF_REG7 13
+#define EF_REG8 14
+#define EF_REG9 15
+#define EF_REG10 16
+#define EF_REG11 17
+#define EF_REG12 18
+#define EF_REG13 19
+#define EF_REG14 20
+#define EF_REG15 21
+#define EF_REG16 22
+#define EF_REG17 23
+#define EF_REG18 24
+#define EF_REG19 25
+#define EF_REG20 26
+#define EF_REG21 27
+#define EF_REG22 28
+#define EF_REG23 29
+#define EF_REG24 30
+#define EF_REG25 31
+/*
+ * k0/k1 unsaved
+ */
+#define EF_REG28 34
+#define EF_REG29 35
+#define EF_REG30 36
+#define EF_REG31 37
+
+/*
+ * Saved special registers
+ */
+#define EF_LO 38
+#define EF_HI 39
+
+#define EF_CP0_EPC 40
+#define EF_CP0_BADVADDR 41
+#define EF_CP0_STATUS 42
+#define EF_CP0_CAUSE 43
+
+#define EF_SIZE 180 /* size in bytes */
+
+#endif /* __ASM_MIPS_REG_H */
+
+#else /* _MIPS_SIM != _ABIO32 */
+
+/*
+ * Various register offset definitions for debuggers, core file
+ * examiners and whatnot.
+ *
+ * This file is subject to the terms and conditions of the GNU General Public
+ * License. See the file "COPYING" in the main directory of this archive
+ * for more details.
+ *
+ * Copyright (C) 1995, 1999 Ralf Baechle
+ * Copyright (C) 1995, 1999 Silicon Graphics
+ */
+#ifndef _ASM_REG_H
+#define _ASM_REG_H
+
+/*
+ * This defines/structures correspond to the register layout on stack -
+ * if the order here is changed, it needs to be updated in
+ * include/asm-mips/stackframe.h
+ */
+#define EF_REG0 0
+#define EF_REG1 1
+#define EF_REG2 2
+#define EF_REG3 3
+#define EF_REG4 4
+#define EF_REG5 5
+#define EF_REG6 6
+#define EF_REG7 7
+#define EF_REG8 8
+#define EF_REG9 9
+#define EF_REG10 10
+#define EF_REG11 11
+#define EF_REG12 12
+#define EF_REG13 13
+#define EF_REG14 14
+#define EF_REG15 15
+#define EF_REG16 16
+#define EF_REG17 17
+#define EF_REG18 18
+#define EF_REG19 19
+#define EF_REG20 20
+#define EF_REG21 21
+#define EF_REG22 22
+#define EF_REG23 23
+#define EF_REG24 24
+#define EF_REG25 25
+/*
+ * k0/k1 unsaved
+ */
+#define EF_REG28 28
+#define EF_REG29 29
+#define EF_REG30 30
+#define EF_REG31 31
+
+/*
+ * Saved special registers
+ */
+#define EF_LO 32
+#define EF_HI 33
+
+#define EF_CP0_EPC 34
+#define EF_CP0_BADVADDR 35
+#define EF_CP0_STATUS 36
+#define EF_CP0_CAUSE 37
+
+#define EF_SIZE 304 /* size in bytes */
+
+#endif /* _ASM_REG_H */
+
+#endif /* _MIPS_SIM != _ABIO32 */
+
+#if _MIPS_SIM == _ABIO32
+
+struct user
+{
+ unsigned long regs[EF_SIZE/4+64]; /* integer and fp regs */
+ size_t u_tsize; /* text size (pages) */
+ size_t u_dsize; /* data size (pages) */
+ size_t u_ssize; /* stack size (pages) */
+ unsigned long start_code; /* text starting address */
+ unsigned long start_data; /* data starting address */
+ unsigned long start_stack; /* stack starting address */
+ long int signal; /* signal causing core dump */
+ void* u_ar0; /* help gdb find registers */
+ unsigned long magic; /* identifies a core file */
+ char u_comm[32]; /* user command name */
+};
+
+#else
+
+struct user {
+ __extension__ unsigned long regs[EF_SIZE/8+64]; /* integer and fp regs */
+ __extension__ unsigned long u_tsize; /* text size (pages) */
+ __extension__ unsigned long u_dsize; /* data size (pages) */
+ __extension__ unsigned long u_ssize; /* stack size (pages) */
+ __extension__ unsigned long long start_code; /* text starting address */
+ __extension__ unsigned long long start_data; /* data starting address */
+ __extension__ unsigned long long start_stack; /* stack starting address */
+ __extension__ long long signal; /* signal causing core dump */
+ __extension__ unsigned long long u_ar0; /* help gdb find registers */
+ __extension__ unsigned long long magic; /* identifies a core file */
+ char u_comm[32]; /* user command name */
+};
+
+#endif
+
+#endif /* _SYS_USER_H */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/syscalls.list b/REORG.TODO/sysdeps/unix/sysv/linux/mips/syscalls.list
new file mode 100644
index 0000000000..f3621cdd51
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/syscalls.list
@@ -0,0 +1,23 @@
+# File name Caller Syscall name Args Strong name Weak names
+
+#
+# Calls for compatibility with existing MIPS OS implementations and
+# compilers.
+#
+cachectl - cachectl i:pii __cachectl cachectl
+cacheflush - cacheflush i:pii _flush_cache cacheflush
+sysmips - sysmips i:iiii __sysmips sysmips
+
+#
+# Socket functions; Linux/MIPS doesn't use the socketcall(2) wrapper;
+# it's provided for compatibility, though.
+#
+bind - bind i:ipi __bind bind
+getpeername - getpeername i:ipp __getpeername getpeername
+getsockname - getsockname i:ipp __getsockname getsockname
+getsockopt - getsockopt i:iiiBN __getsockopt getsockopt
+listen - listen i:ii __listen listen
+setsockopt - setsockopt i:iiibn __setsockopt setsockopt
+shutdown - shutdown i:ii __shutdown shutdown
+socket - socket i:iii __socket socket
+socketpair - socketpair i:iiif __socketpair socketpair
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/sysdep-cancel.h b/REORG.TODO/sysdeps/unix/sysv/linux/mips/sysdep-cancel.h
new file mode 100644
index 0000000000..0e45f00242
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/sysdep-cancel.h
@@ -0,0 +1,190 @@
+/* Copyright (C) 2003-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#include <sysdeps/generic/sysdep.h>
+#include <tls.h>
+#ifndef __ASSEMBLER__
+# include <nptl/pthreadP.h>
+#endif
+
+#if IS_IN (libc) || IS_IN (libpthread) || IS_IN (librt)
+
+# ifdef __PIC__
+# define PSEUDO_CPLOAD .cpload t9;
+# define PSEUDO_ERRJMP la t9, __syscall_error; jr t9;
+# define PSEUDO_SAVEGP sw gp, 32(sp); cfi_rel_offset (gp, 32);
+# define PSEUDO_LOADGP lw gp, 32(sp);
+# else
+# define PSEUDO_CPLOAD
+# define PSEUDO_ERRJMP j __syscall_error;
+# define PSEUDO_SAVEGP
+# define PSEUDO_LOADGP
+# endif
+
+# undef PSEUDO
+# define PSEUDO(name, syscall_name, args) \
+ .align 2; \
+ .set nomips16; \
+ L(pseudo_start): \
+ cfi_startproc; \
+ 99: PSEUDO_ERRJMP \
+ .type __##syscall_name##_nocancel, @function; \
+ .globl __##syscall_name##_nocancel; \
+ __##syscall_name##_nocancel: \
+ .set noreorder; \
+ PSEUDO_CPLOAD \
+ li v0, SYS_ify(syscall_name); \
+ syscall; \
+ .set reorder; \
+ bne a3, zero, 99b; \
+ ret; \
+ cfi_endproc; \
+ .size __##syscall_name##_nocancel,.-__##syscall_name##_nocancel; \
+ ENTRY (name) \
+ .set noreorder; \
+ PSEUDO_CPLOAD \
+ .set reorder; \
+ SINGLE_THREAD_P(v1); \
+ bne zero, v1, L(pseudo_cancel); \
+ .set noreorder; \
+ li v0, SYS_ify(syscall_name); \
+ syscall; \
+ .set reorder; \
+ bne a3, zero, 99b; \
+ ret; \
+ L(pseudo_cancel): \
+ SAVESTK_##args; \
+ sw ra, 28(sp); \
+ cfi_rel_offset (ra, 28); \
+ PSEUDO_SAVEGP \
+ PUSHARGS_##args; /* save syscall args */ \
+ CENABLE; \
+ PSEUDO_LOADGP \
+ sw v0, 44(sp); /* save mask */ \
+ POPARGS_##args; /* restore syscall args */ \
+ .set noreorder; \
+ li v0, SYS_ify (syscall_name); \
+ syscall; \
+ .set reorder; \
+ sw v0, 36(sp); /* save syscall result */ \
+ sw a3, 40(sp); /* save syscall error flag */ \
+ lw a0, 44(sp); /* pass mask as arg1 */ \
+ CDISABLE; \
+ PSEUDO_LOADGP \
+ lw v0, 36(sp); /* restore syscall result */ \
+ lw a3, 40(sp); /* restore syscall error flag */ \
+ lw ra, 28(sp); /* restore return address */ \
+ .set noreorder; \
+ bne a3, zero, 99b; \
+ RESTORESTK; \
+ L(pseudo_end): \
+ .set reorder;
+
+# undef PSEUDO_END
+# define PSEUDO_END(sym) cfi_endproc; .end sym; .size sym,.-sym
+
+# define PUSHARGS_0 /* nothing to do */
+# define PUSHARGS_1 PUSHARGS_0 sw a0, 0(sp); cfi_rel_offset (a0, 0);
+# define PUSHARGS_2 PUSHARGS_1 sw a1, 4(sp); cfi_rel_offset (a1, 4);
+# define PUSHARGS_3 PUSHARGS_2 sw a2, 8(sp); cfi_rel_offset (a2, 8);
+# define PUSHARGS_4 PUSHARGS_3 sw a3, 12(sp); cfi_rel_offset (a3, 12);
+# define PUSHARGS_5 PUSHARGS_4 /* handled by SAVESTK_## */
+# define PUSHARGS_6 PUSHARGS_5
+# define PUSHARGS_7 PUSHARGS_6
+
+# define POPARGS_0 /* nothing to do */
+# define POPARGS_1 POPARGS_0 lw a0, 0(sp);
+# define POPARGS_2 POPARGS_1 lw a1, 4(sp);
+# define POPARGS_3 POPARGS_2 lw a2, 8(sp);
+# define POPARGS_4 POPARGS_3 lw a3, 12(sp);
+# define POPARGS_5 POPARGS_4 /* args already in new stackframe */
+# define POPARGS_6 POPARGS_5
+# define POPARGS_7 POPARGS_6
+
+
+# define STKSPACE 48
+# define SAVESTK_0 subu sp, STKSPACE; cfi_adjust_cfa_offset(STKSPACE)
+# define SAVESTK_1 SAVESTK_0
+# define SAVESTK_2 SAVESTK_1
+# define SAVESTK_3 SAVESTK_2
+# define SAVESTK_4 SAVESTK_3
+# define SAVESTK_5 lw t0, 16(sp); \
+ SAVESTK_0; \
+ sw t0, 16(sp)
+
+# define SAVESTK_6 lw t0, 16(sp); \
+ lw t1, 20(sp); \
+ SAVESTK_0; \
+ sw t0, 16(sp); \
+ sw t1, 20(sp)
+
+# define SAVESTK_7 lw t0, 16(sp); \
+ lw t1, 20(sp); \
+ lw t2, 24(sp); \
+ SAVESTK_0; \
+ sw t0, 16(sp); \
+ sw t1, 20(sp); \
+ sw t2, 24(sp)
+
+# define RESTORESTK addu sp, STKSPACE; cfi_adjust_cfa_offset(-STKSPACE)
+
+
+# ifdef __PIC__
+/* We use jalr rather than jal. This means that the assembler will not
+ automatically restore $gp (in case libc has multiple GOTs) so we must
+ do it manually - which we have to do anyway since we don't use .cprestore.
+ It also shuts up the assembler warning about not using .cprestore. */
+# define PSEUDO_JMP(sym) la t9, sym; jalr t9;
+# else
+# define PSEUDO_JMP(sym) jal sym;
+# endif
+
+# if IS_IN (libpthread)
+# define CENABLE PSEUDO_JMP (__pthread_enable_asynccancel)
+# define CDISABLE PSEUDO_JMP (__pthread_disable_asynccancel)
+# elif IS_IN (librt)
+# define CENABLE PSEUDO_JMP (__librt_enable_asynccancel)
+# define CDISABLE PSEUDO_JMP (__librt_disable_asynccancel)
+# else
+# define CENABLE PSEUDO_JMP (__libc_enable_asynccancel)
+# define CDISABLE PSEUDO_JMP (__libc_disable_asynccancel)
+# endif
+
+# ifndef __ASSEMBLER__
+# define SINGLE_THREAD_P \
+ __builtin_expect (THREAD_GETMEM (THREAD_SELF, \
+ header.multiple_threads) \
+ == 0, 1)
+# else
+# define SINGLE_THREAD_P(reg) \
+ READ_THREAD_POINTER(reg); \
+ lw reg, 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/mips/ucontext_i.sym b/REORG.TODO/sysdeps/unix/sysv/linux/mips/ucontext_i.sym
new file mode 100644
index 0000000000..f14b886407
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/ucontext_i.sym
@@ -0,0 +1,52 @@
+#include <inttypes.h>
+#include <signal.h>
+#include <stddef.h>
+#include <sys/ucontext.h>
+
+#include <kernel_rt_sigframe.h>
+
+-- Constants used by the rt_sigprocmask call.
+
+SIG_BLOCK
+SIG_SETMASK
+
+_NSIG8 (_NSIG / 8)
+
+-- Offsets of the fields in the kernel rt_sigframe_t structure.
+#define rt_sigframe(member) offsetof (kernel_rt_sigframe_t, member)
+
+RT_SIGFRAME_UCONTEXT rt_sigframe (rs_uc)
+
+RT_SIGFRAME_SIZE sizeof (kernel_rt_sigframe_t)
+
+-- Offsets of the fields in the ucontext_t structure.
+#define ucontext(member) offsetof (ucontext_t, member)
+#define stack(member) ucontext (uc_stack.member)
+#define mcontext(member) ucontext (uc_mcontext.member)
+
+UCONTEXT_FLAGS ucontext (uc_flags)
+UCONTEXT_LINK ucontext (uc_link)
+UCONTEXT_STACK ucontext (uc_stack)
+UCONTEXT_MCONTEXT ucontext (uc_mcontext)
+UCONTEXT_SIGMASK ucontext (uc_sigmask)
+
+STACK_SP stack (ss_sp)
+STACK_SIZE stack (ss_size)
+STACK_FLAGS stack (ss_flags)
+
+MCONTEXT_GREGS mcontext (gregs)
+MCONTEXT_FPREGS mcontext (fpregs)
+MCONTEXT_MDHI mcontext (mdhi)
+MCONTEXT_HI1 mcontext (hi1)
+MCONTEXT_HI2 mcontext (hi2)
+MCONTEXT_HI3 mcontext (hi3)
+MCONTEXT_MDLO mcontext (mdlo)
+MCONTEXT_LO1 mcontext (lo1)
+MCONTEXT_LO2 mcontext (lo2)
+MCONTEXT_LO3 mcontext (lo3)
+MCONTEXT_PC mcontext (pc)
+MCONTEXT_FPC_CSR mcontext (fpc_csr)
+MCONTEXT_USED_MATH mcontext (used_math)
+MCONTEXT_DSP mcontext (dsp)
+
+UCONTEXT_SIZE sizeof (ucontext_t)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/ustat.c b/REORG.TODO/sysdeps/unix/sysv/linux/mips/ustat.c
new file mode 100644
index 0000000000..79e0736db0
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/ustat.c
@@ -0,0 +1,35 @@
+/* Copyright (C) 1997-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
+
+ 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 <sys/ustat.h>
+#include <sys/sysmacros.h>
+
+#include <sysdep.h>
+#include <sys/syscall.h>
+
+int
+ustat (dev_t dev, struct ustat *ubuf)
+{
+ unsigned long k_dev;
+
+ /* We must convert the value to dev_t type used by the kernel. */
+ k_dev = ((major (dev) & 0xff) << 8) | (minor (dev) & 0xff);
+
+ return INLINE_SYSCALL (ustat, 2, k_dev, ubuf);
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mips/vfork.S b/REORG.TODO/sysdeps/unix/sysv/linux/mips/vfork.S
new file mode 100644
index 0000000000..f9763ca615
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/vfork.S
@@ -0,0 +1,94 @@
+/* Copyright (C) 2005-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+/* vfork() is just a special case of clone(). */
+
+#include <sys/asm.h>
+#include <sysdep.h>
+#include <asm/unistd.h>
+#include <sgidefs.h>
+#include <tls.h>
+
+
+/* int vfork() */
+
+ .text
+ .set nomips16
+LOCALSZ= 1
+FRAMESZ= (((NARGSAVE+LOCALSZ)*SZREG)+ALSZ)&ALMASK
+GPOFF= FRAMESZ-(1*SZREG)
+NESTED(__libc_vfork,FRAMESZ,sp)
+#ifdef __PIC__
+ SETUP_GP
+#endif
+ PTR_SUBU sp, FRAMESZ
+ cfi_adjust_cfa_offset (FRAMESZ)
+ SETUP_GP64_REG (a5, __libc_vfork)
+#ifdef __PIC__
+ SAVE_GP (GPOFF)
+#endif
+#ifdef PROF
+# if (_MIPS_SIM != _ABIO32)
+ PTR_S a5, GPOFF(sp)
+# endif
+ .set noat
+ move $1, ra
+# if (_MIPS_SIM == _ABIO32)
+ subu sp,sp,8
+# endif
+ jal _mcount
+ .set at
+# if (_MIPS_SIM != _ABIO32)
+ PTR_L a5, GPOFF(sp)
+# endif
+#endif
+
+ PTR_ADDU sp, FRAMESZ
+ cfi_adjust_cfa_offset (-FRAMESZ)
+
+ li a0, 0x4112 /* CLONE_VM | CLONE_VFORK | SIGCHLD */
+ move a1, sp
+
+ /* Do the system call */
+ li v0,__NR_clone
+ syscall
+
+ cfi_remember_state
+ bnez a3,L(error)
+
+ /* Successful return from the parent or child. */
+ RESTORE_GP64_REG
+ ret
+
+ /* Something bad happened -- no child created. */
+L(error):
+ cfi_restore_state
+#ifdef __PIC__
+ PTR_LA t9, __syscall_error
+ RESTORE_GP64_REG
+ jr t9
+#else
+ RESTORE_GP64_REG
+ j __syscall_error
+#endif
+ 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/mips/xstatconv.c b/REORG.TODO/sysdeps/unix/sysv/linux/mips/xstatconv.c
new file mode 100644
index 0000000000..b609b3d4f6
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mips/xstatconv.c
@@ -0,0 +1,201 @@
+/* Convert between the kernel's `struct stat' format, and libc's.
+ Copyright (C) 1991-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <sys/stat.h>
+#include <kernel_stat.h>
+
+#include <string.h>
+
+int
+__xstat_conv (int vers, struct kernel_stat *kbuf, void *ubuf)
+{
+ switch (vers)
+ {
+ case _STAT_VER_KERNEL:
+ /* Nothing to do. The struct is in the form the kernel expects.
+ We should have short-circuted before we got here, but for
+ completeness... */
+ *(struct kernel_stat *) ubuf = *kbuf;
+ break;
+
+ case _STAT_VER_LINUX:
+ {
+ struct stat *buf = ubuf;
+
+ /* Convert to current kernel version of `struct stat'. */
+ buf->st_dev = kbuf->st_dev;
+ memset (&buf->st_pad1, 0, sizeof (buf->st_pad1));
+ buf->st_ino = kbuf->st_ino;
+ /* Check for overflow. */
+ if (buf->st_ino != kbuf->st_ino)
+ {
+ __set_errno (EOVERFLOW);
+ return -1;
+ }
+ buf->st_mode = kbuf->st_mode;
+ buf->st_nlink = kbuf->st_nlink;
+ buf->st_uid = kbuf->st_uid;
+ buf->st_gid = kbuf->st_gid;
+ buf->st_rdev = kbuf->st_rdev;
+ memset (&buf->st_pad2, 0, sizeof (buf->st_pad2));
+ buf->st_size = kbuf->st_size;
+ /* Check for overflow. */
+ if (buf->st_size != kbuf->st_size)
+ {
+ __set_errno (EOVERFLOW);
+ return -1;
+ }
+ buf->st_pad3 = 0;
+ buf->st_atim.tv_sec = kbuf->st_atime_sec;
+ buf->st_atim.tv_nsec = kbuf->st_atime_nsec;
+ buf->st_mtim.tv_sec = kbuf->st_mtime_sec;
+ buf->st_mtim.tv_nsec = kbuf->st_mtime_nsec;
+ buf->st_ctim.tv_sec = kbuf->st_ctime_sec;
+ buf->st_ctim.tv_nsec = kbuf->st_ctime_nsec;
+ buf->st_blksize = kbuf->st_blksize;
+ buf->st_blocks = kbuf->st_blocks;
+ /* Check for overflow. */
+ if (buf->st_blocks != kbuf->st_blocks)
+ {
+ __set_errno (EOVERFLOW);
+ return -1;
+ }
+ memset (&buf->st_pad5, 0, sizeof (buf->st_pad5));
+ }
+ break;
+
+ default:
+ __set_errno (EINVAL);
+ return -1;
+ }
+
+ return 0;
+}
+
+int
+__xstat64_conv (int vers, struct kernel_stat *kbuf, void *ubuf)
+{
+#if XSTAT_IS_XSTAT64
+ return xstat_conv (vers, kbuf, ubuf);
+#else
+ switch (vers)
+ {
+ case _STAT_VER_LINUX:
+ {
+ struct stat64 *buf = ubuf;
+
+ buf->st_dev = kbuf->st_dev;
+ memset (&buf->st_pad1, 0, sizeof (buf->st_pad1));
+ buf->st_ino = kbuf->st_ino;
+ buf->st_mode = kbuf->st_mode;
+ buf->st_nlink = kbuf->st_nlink;
+ buf->st_uid = kbuf->st_uid;
+ buf->st_gid = kbuf->st_gid;
+ buf->st_rdev = kbuf->st_rdev;
+ memset (&buf->st_pad2, 0, sizeof (buf->st_pad2));
+ buf->st_pad3 = 0;
+ buf->st_size = kbuf->st_size;
+ buf->st_blksize = kbuf->st_blksize;
+ buf->st_blocks = kbuf->st_blocks;
+
+ buf->st_atim.tv_sec = kbuf->st_atime_sec;
+ buf->st_atim.tv_nsec = kbuf->st_atime_nsec;
+ buf->st_mtim.tv_sec = kbuf->st_mtime_sec;
+ buf->st_mtim.tv_nsec = kbuf->st_mtime_nsec;
+ buf->st_ctim.tv_sec = kbuf->st_ctime_sec;
+ buf->st_ctim.tv_nsec = kbuf->st_ctime_nsec;
+
+ memset (&buf->st_pad4, 0, sizeof (buf->st_pad4));
+ }
+ break;
+
+ /* If struct stat64 is different from struct stat then
+ _STAT_VER_KERNEL does not make sense. */
+ case _STAT_VER_KERNEL:
+ default:
+ __set_errno (EINVAL);
+ return -1;
+ }
+
+ return 0;
+#endif
+}
+
+#if _MIPS_SIM == _ABIO32
+int
+__xstat32_conv (int vers, struct stat64 *kbuf, struct stat *buf)
+{
+ switch (vers)
+ {
+ case _STAT_VER_LINUX:
+ /* Convert current kernel version of `struct stat64' to
+ `struct stat'. The layout of the fields in the kernel's
+ stat64 is the same as that in the user stat64; the only
+ difference is that the latter has more trailing padding. */
+ buf->st_dev = kbuf->st_dev;
+ memset (&buf->st_pad1, 0, sizeof (buf->st_pad1));
+ buf->st_ino = kbuf->st_ino;
+ /* Check for overflow. */
+ if (buf->st_ino != kbuf->st_ino)
+ {
+ __set_errno (EOVERFLOW);
+ return -1;
+ }
+ buf->st_mode = kbuf->st_mode;
+ buf->st_nlink = kbuf->st_nlink;
+ buf->st_uid = kbuf->st_uid;
+ buf->st_gid = kbuf->st_gid;
+ buf->st_rdev = kbuf->st_rdev;
+ memset (&buf->st_pad2, 0, sizeof (buf->st_pad2));
+ buf->st_size = kbuf->st_size;
+ /* Check for overflow. */
+ if (buf->st_size != kbuf->st_size)
+ {
+ __set_errno (EOVERFLOW);
+ return -1;
+ }
+ buf->st_pad3 = 0;
+ buf->st_atim.tv_sec = kbuf->st_atim.tv_sec;
+ buf->st_atim.tv_nsec = kbuf->st_atim.tv_nsec;
+ buf->st_mtim.tv_sec = kbuf->st_mtim.tv_sec;
+ buf->st_mtim.tv_nsec = kbuf->st_mtim.tv_nsec;
+ buf->st_ctim.tv_sec = kbuf->st_ctim.tv_sec;
+ buf->st_ctim.tv_nsec = kbuf->st_ctim.tv_nsec;
+ buf->st_blksize = kbuf->st_blksize;
+ buf->st_blocks = kbuf->st_blocks;
+ /* Check for overflow. */
+ if (buf->st_blocks != kbuf->st_blocks)
+ {
+ __set_errno (EOVERFLOW);
+ return -1;
+ }
+ memset (&buf->st_pad5, 0, sizeof (buf->st_pad5));
+ break;
+
+ /* If struct stat64 is different from struct stat then
+ _STAT_VER_KERNEL does not make sense. */
+ case _STAT_VER_KERNEL:
+ default:
+ __set_errno (EINVAL);
+ return -1;
+ }
+
+ return 0;
+}
+#endif /* _MIPS_SIM == _ABIO32 */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mmap.c b/REORG.TODO/sysdeps/unix/sysv/linux/mmap.c
new file mode 100644
index 0000000000..b1f229f19c
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mmap.c
@@ -0,0 +1,51 @@
+/* mmap - map files or devices into memory. Linux version.
+ Copyright (C) 2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <unistd.h>
+#include <sys/mman.h>
+#include <sysdep.h>
+#include <stdint.h>
+#include <mmap_internal.h>
+
+#ifndef __OFF_T_MATCHES_OFF64_T
+
+/* An architecture may override this. */
+# ifndef MMAP_ADJUST_OFFSET
+# define MMAP_ADJUST_OFFSET(offset) offset
+# endif
+
+void *
+__mmap (void *addr, size_t len, int prot, int flags, int fd, off_t offset)
+{
+ MMAP_CHECK_PAGE_UNIT ();
+
+ if (offset & MMAP_OFF_LOW_MASK)
+ return (__ptr_t) INLINE_SYSCALL_ERROR_RETURN_VALUE (EINVAL);
+
+#ifdef __NR_mmap2
+ return (void *) MMAP_CALL (mmap2, addr, len, prot, flags, fd,
+ offset / (uint32_t) MMAP2_PAGE_UNIT);
+#else
+ return (void *) MMAP_CALL (mmap, addr, len, prot, flags, fd,
+ MMAP_ADJUST_OFFSET (offset));
+#endif
+}
+weak_alias (__mmap, mmap)
+
+#endif /* __OFF_T_MATCHES_OFF64_T */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mmap64.c b/REORG.TODO/sysdeps/unix/sysv/linux/mmap64.c
new file mode 100644
index 0000000000..d3ea279afe
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mmap64.c
@@ -0,0 +1,60 @@
+/* mmap - map files or devices into memory. Linux version.
+ Copyright (C) 1999-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Jakub Jelinek <jakub@redhat.com>, 1999.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <unistd.h>
+#include <sys/mman.h>
+#include <sysdep.h>
+#include <mmap_internal.h>
+
+/* To avoid silent truncation of offset when using mmap2, do not accept
+ offset larger than 1 << (page_shift + off_t bits). For archictures with
+ 32 bits off_t and page size of 4096 it would be 1^44. */
+#define MMAP_OFF_HIGH_MASK \
+ ((-(MMAP2_PAGE_UNIT << 1) << (8 * sizeof (off_t) - 1)))
+
+#define MMAP_OFF_MASK (MMAP_OFF_HIGH_MASK | MMAP_OFF_LOW_MASK)
+
+/* An architecture may override this. */
+#ifndef MMAP_PREPARE
+# define MMAP_PREPARE(addr, len, prot, flags, fd, offset)
+#endif
+
+void *
+__mmap64 (void *addr, size_t len, int prot, int flags, int fd, off64_t offset)
+{
+ MMAP_CHECK_PAGE_UNIT ();
+
+ if (offset & MMAP_OFF_MASK)
+ return (void *) INLINE_SYSCALL_ERROR_RETURN_VALUE (EINVAL);
+
+ MMAP_PREPARE (addr, len, prot, flags, fd, offset);
+#ifdef __NR_mmap2
+ return (void *) MMAP_CALL (mmap2, addr, len, prot, flags, fd,
+ (off_t) (offset / MMAP2_PAGE_UNIT));
+#else
+ return (void *) MMAP_CALL (mmap, addr, len, prot, flags, fd, offset);
+#endif
+}
+weak_alias (__mmap64, mmap64)
+
+#ifdef __OFF_T_MATCHES_OFF64_T
+weak_alias (__mmap64, mmap)
+weak_alias (__mmap64, __mmap)
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mmap_internal.h b/REORG.TODO/sysdeps/unix/sysv/linux/mmap_internal.h
new file mode 100644
index 0000000000..499e389605
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mmap_internal.h
@@ -0,0 +1,49 @@
+/* Common mmap definition for Linux implementation.
+ Copyright (C) 2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef MMAP_INTERNAL_LINUX_H
+#define MMAP_INTERNAL_LINUX_H 1
+
+/* This is the minimum mmap2 unit size accept by the kernel. An architecture
+ with multiple minimum page sizes (such as m68k) might define it as -1 and
+ thus it will queried at runtime. */
+#ifndef MMAP2_PAGE_UNIT
+# define MMAP2_PAGE_UNIT 4096ULL
+#endif
+
+#if MMAP2_PAGE_UNIT == -1
+static int page_unit;
+
+# define MMAP_CHECK_PAGE_UNIT() \
+ if (page_unit == 0) \
+ page_unit = __getpagesize ();
+#else
+# define page_unit MMAP2_PAGE_UNIT
+# define MMAP_CHECK_PAGE_UNIT()
+#endif
+
+/* Do not accept offset not multiple of page size. */
+#define MMAP_OFF_LOW_MASK (MMAP2_PAGE_UNIT - 1)
+
+/* An architecture may override this. */
+#ifndef MMAP_CALL
+# define MMAP_CALL(__nr, __addr, __len, __prot, __flags, __fd, __offset) \
+ INLINE_SYSCALL_CALL (__nr, __addr, __len, __prot, __flags, __fd, __offset)
+#endif
+
+#endif /* MMAP_INTERNAL_LINUX_H */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mq_close.c b/REORG.TODO/sysdeps/unix/sysv/linux/mq_close.c
new file mode 100644
index 0000000000..67ec2ce8cb
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mq_close.c
@@ -0,0 +1,34 @@
+/* Copyright (C) 2004-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <mqueue.h>
+#include <sysdep.h>
+
+#ifdef __NR_mq_open
+
+/* Removes the association between message queue descriptor MQDES and its
+ message queue. */
+int
+mq_close (mqd_t mqdes)
+{
+ return INLINE_SYSCALL (close, 1, mqdes);
+}
+
+#else
+# include <rt/mq_close.c>
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mq_getattr.c b/REORG.TODO/sysdeps/unix/sysv/linux/mq_getattr.c
new file mode 100644
index 0000000000..0b3a50500f
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mq_getattr.c
@@ -0,0 +1,34 @@
+/* Copyright (C) 2004-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <mqueue.h>
+#include <stddef.h>
+#include <sysdep.h>
+
+#ifdef __NR_mq_getsetattr
+
+/* Query status and attributes of message queue MQDES. */
+int
+mq_getattr (mqd_t mqdes, struct mq_attr *mqstat)
+{
+ return mq_setattr (mqdes, NULL, mqstat);
+}
+
+#else
+# include <rt/mq_getattr.c>
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mq_notify.c b/REORG.TODO/sysdeps/unix/sysv/linux/mq_notify.c
new file mode 100644
index 0000000000..626430ccc7
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mq_notify.c
@@ -0,0 +1,282 @@
+/* Copyright (C) 2004-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contribute by Ulrich Drepper <drepper@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 <assert.h>
+#include <errno.h>
+#include <fcntl.h>
+#include <mqueue.h>
+#include <pthread.h>
+#include <signal.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sysdep.h>
+#include <unistd.h>
+#include <sys/socket.h>
+#include <not-cancel.h>
+#include <nptl/pthreadP.h>
+
+
+#ifdef __NR_mq_notify
+
+/* Defined in the kernel headers: */
+#define NOTIFY_COOKIE_LEN 32 /* Length of the cookie used. */
+#define NOTIFY_WOKENUP 1 /* Code for notifcation. */
+#define NOTIFY_REMOVED 2 /* Code for closed message queue
+ of de-notifcation. */
+
+
+/* Data structure for the queued notification requests. */
+union notify_data
+{
+ struct
+ {
+ void (*fct) (union sigval); /* The function to run. */
+ union sigval param; /* The parameter to pass. */
+ pthread_attr_t *attr; /* Attributes to create the thread with. */
+ /* NB: on 64-bit machines the struct as a size of 24 bytes. Which means
+ byte 31 can still be used for returning the status. */
+ };
+ char raw[NOTIFY_COOKIE_LEN];
+};
+
+
+/* Keep track of the initialization. */
+static pthread_once_t once = PTHREAD_ONCE_INIT;
+
+
+/* The netlink socket. */
+static int netlink_socket = -1;
+
+
+/* Barrier used to make sure data passed to the new thread is not
+ resused by the parent. */
+static pthread_barrier_t notify_barrier;
+
+
+/* Modify the signal mask. We move this into a separate function so
+ that the stack space needed for sigset_t is not deducted from what
+ the thread can use. */
+static int
+__attribute__ ((noinline))
+change_sigmask (int how, sigset_t *oss)
+{
+ sigset_t ss;
+ sigfillset (&ss);
+ return pthread_sigmask (how, &ss, oss);
+}
+
+
+/* The function used for the notification. */
+static void *
+notification_function (void *arg)
+{
+ /* Copy the function and parameter so that the parent thread can go
+ on with its life. */
+ volatile union notify_data *data = (volatile union notify_data *) arg;
+ void (*fct) (union sigval) = data->fct;
+ union sigval param = data->param;
+
+ /* Let the parent go. */
+ (void) __pthread_barrier_wait (&notify_barrier);
+
+ /* Make the thread detached. */
+ (void) pthread_detach (pthread_self ());
+
+ /* The parent thread has all signals blocked. This is probably a
+ bit surprising for this thread. So we unblock all of them. */
+ (void) change_sigmask (SIG_UNBLOCK, NULL);
+
+ /* Now run the user code. */
+ fct (param);
+
+ /* And we are done. */
+ return NULL;
+}
+
+
+/* Helper thread. */
+static void *
+helper_thread (void *arg)
+{
+ while (1)
+ {
+ union notify_data data;
+
+ ssize_t n = __recv (netlink_socket, &data, sizeof (data),
+ MSG_NOSIGNAL | MSG_WAITALL);
+ if (n < NOTIFY_COOKIE_LEN)
+ continue;
+
+ if (data.raw[NOTIFY_COOKIE_LEN - 1] == NOTIFY_WOKENUP)
+ {
+ /* Just create the thread as instructed. There is no way to
+ report a problem with creating a thread. */
+ pthread_t th;
+ if (__builtin_expect (pthread_create (&th, data.attr,
+ notification_function, &data)
+ == 0, 0))
+ /* Since we passed a pointer to DATA to the new thread we have
+ to wait until it is done with it. */
+ (void) __pthread_barrier_wait (&notify_barrier);
+ }
+ else if (data.raw[NOTIFY_COOKIE_LEN - 1] == NOTIFY_REMOVED)
+ /* The only state we keep is the copy of the thread attributes. */
+ free (data.attr);
+ }
+ return NULL;
+}
+
+
+static void
+reset_once (void)
+{
+ once = PTHREAD_ONCE_INIT;
+}
+
+
+static void
+init_mq_netlink (void)
+{
+ /* This code might be called a second time after fork(). The file
+ descriptor is inherited from the parent. */
+ if (netlink_socket == -1)
+ {
+ /* Just a normal netlink socket, not bound. */
+ netlink_socket = __socket (AF_NETLINK, SOCK_RAW | SOCK_CLOEXEC, 0);
+ /* No need to do more if we have no socket. */
+ if (netlink_socket == -1)
+ return;
+ }
+
+ int err = 1;
+
+ /* Initialize the barrier. */
+ if (__builtin_expect (__pthread_barrier_init (&notify_barrier, NULL, 2) == 0,
+ 0))
+ {
+ /* Create the helper thread. */
+ pthread_attr_t attr;
+ (void) pthread_attr_init (&attr);
+ (void) pthread_attr_setdetachstate (&attr, PTHREAD_CREATE_DETACHED);
+ /* We do not need much stack space, the bare minimum will be enough. */
+ (void) pthread_attr_setstacksize (&attr, __pthread_get_minstack (&attr));
+
+ /* Temporarily block all signals so that the newly created
+ thread inherits the mask. */
+ sigset_t oss;
+ int have_no_oss = change_sigmask (SIG_BLOCK, &oss);
+
+ pthread_t th;
+ err = pthread_create (&th, &attr, helper_thread, NULL);
+
+ /* Reset the signal mask. */
+ if (!have_no_oss)
+ pthread_sigmask (SIG_SETMASK, &oss, NULL);
+
+ (void) pthread_attr_destroy (&attr);
+
+ if (err == 0)
+ {
+ static int added_atfork;
+
+ if (added_atfork == 0
+ && pthread_atfork (NULL, NULL, reset_once) != 0)
+ {
+ /* The child thread will call recv() which is a
+ cancellation point. */
+ (void) pthread_cancel (th);
+ err = 1;
+ }
+ else
+ added_atfork = 1;
+ }
+ }
+
+ if (err != 0)
+ {
+ close_not_cancel_no_status (netlink_socket);
+ netlink_socket = -1;
+ }
+}
+
+
+/* Register notification upon message arrival to an empty message queue
+ MQDES. */
+int
+mq_notify (mqd_t mqdes, const struct sigevent *notification)
+{
+ /* Make sure the type is correctly defined. */
+ assert (sizeof (union notify_data) == NOTIFY_COOKIE_LEN);
+
+ /* Special treatment needed for SIGEV_THREAD. */
+ if (notification == NULL || notification->sigev_notify != SIGEV_THREAD)
+ return INLINE_SYSCALL (mq_notify, 2, mqdes, notification);
+
+ /* The kernel cannot directly start threads. This will have to be
+ done at userlevel. Since we cannot start threads from signal
+ handlers we have to create a dedicated thread which waits for
+ notifications for arriving messages and creates threads in
+ response. */
+
+ /* Initialize only once. */
+ pthread_once (&once, init_mq_netlink);
+
+ /* If we cannot create the netlink socket we cannot provide
+ SIGEV_THREAD support. */
+ if (__glibc_unlikely (netlink_socket == -1))
+ {
+ __set_errno (ENOSYS);
+ return -1;
+ }
+
+ /* Create the cookie. It will hold almost all the state. */
+ union notify_data data;
+ memset (&data, '\0', sizeof (data));
+ data.fct = notification->sigev_notify_function;
+ data.param = notification->sigev_value;
+
+ if (notification->sigev_notify_attributes != NULL)
+ {
+ /* The thread attribute has to be allocated separately. */
+ data.attr = (pthread_attr_t *) malloc (sizeof (pthread_attr_t));
+ if (data.attr == NULL)
+ return -1;
+
+ memcpy (data.attr, notification->sigev_notify_attributes,
+ sizeof (pthread_attr_t));
+ }
+
+ /* Construct the new request. */
+ struct sigevent se;
+ se.sigev_notify = SIGEV_THREAD;
+ se.sigev_signo = netlink_socket;
+ se.sigev_value.sival_ptr = &data;
+
+ /* Tell the kernel. */
+ int retval = INLINE_SYSCALL (mq_notify, 2, mqdes, &se);
+
+ /* If it failed, free the allocated memory. */
+ if (__glibc_unlikely (retval != 0))
+ free (data.attr);
+
+ return retval;
+}
+
+#else
+# include <rt/mq_notify.c>
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mq_open.c b/REORG.TODO/sysdeps/unix/sysv/linux/mq_open.c
new file mode 100644
index 0000000000..760f2db342
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mq_open.c
@@ -0,0 +1,66 @@
+/* Copyright (C) 2004-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <mqueue.h>
+#include <stdarg.h>
+#include <stddef.h>
+#include <stdio.h>
+#include <sysdep.h>
+
+#ifdef __NR_mq_open
+
+/* Establish connection between a process and a message queue NAME and
+ return message queue descriptor or (mqd_t) -1 on error. OFLAG determines
+ the type of access used. If O_CREAT is on OFLAG, the third argument is
+ taken as a `mode_t', the mode of the created message queue, and the fourth
+ argument is taken as `struct mq_attr *', pointer to message queue
+ attributes. If the fourth argument is NULL, default attributes are
+ used. */
+mqd_t
+__mq_open (const char *name, int oflag, ...)
+{
+ if (name[0] != '/')
+ return INLINE_SYSCALL_ERROR_RETURN_VALUE (EINVAL);
+
+ mode_t mode = 0;
+ struct mq_attr *attr = NULL;
+ if (oflag & O_CREAT)
+ {
+ va_list ap;
+
+ va_start (ap, oflag);
+ mode = va_arg (ap, mode_t);
+ attr = va_arg (ap, struct mq_attr *);
+ va_end (ap);
+ }
+
+ return INLINE_SYSCALL (mq_open, 4, name + 1, oflag, mode, attr);
+}
+strong_alias (__mq_open, mq_open);
+
+mqd_t
+__mq_open_2 (const char *name, int oflag)
+{
+ if (oflag & O_CREAT)
+ __fortify_fail ("invalid mq_open call: O_CREAT without mode and attr");
+
+ return __mq_open (name, oflag);
+}
+#else
+# include <rt/mq_open.c>
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mq_receive.c b/REORG.TODO/sysdeps/unix/sysv/linux/mq_receive.c
new file mode 100644
index 0000000000..4c0c34a8ea
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mq_receive.c
@@ -0,0 +1,36 @@
+/* Copyright (C) 2004-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <mqueue.h>
+#include <stddef.h>
+#include <sysdep.h>
+
+#ifdef __NR_mq_timedreceive
+
+/* Receive the oldest from highest priority messages in message queue
+ MQDES. */
+ssize_t
+mq_receive (mqd_t mqdes, char *msg_ptr, size_t msg_len,
+ unsigned int *msg_prio)
+{
+ return __mq_timedreceive (mqdes, msg_ptr, msg_len, msg_prio, NULL);
+}
+
+#else
+# include <rt/mq_receive.c>
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mq_send.c b/REORG.TODO/sysdeps/unix/sysv/linux/mq_send.c
new file mode 100644
index 0000000000..0f8e407ac3
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mq_send.c
@@ -0,0 +1,35 @@
+/* Copyright (C) 2004-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <mqueue.h>
+#include <stddef.h>
+#include <sysdep.h>
+
+#ifdef __NR_mq_timedsend
+
+/* Add message pointed by MSG_PTR to message queue MQDES. */
+int
+mq_send (mqd_t mqdes, const char *msg_ptr, size_t msg_len,
+ unsigned int msg_prio)
+{
+ return __mq_timedsend (mqdes, msg_ptr, msg_len, msg_prio, NULL);
+}
+
+#else
+# include <rt/mq_send.c>
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mq_timedreceive.c b/REORG.TODO/sysdeps/unix/sysv/linux/mq_timedreceive.c
new file mode 100644
index 0000000000..6d1c145c24
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mq_timedreceive.c
@@ -0,0 +1,34 @@
+/* Receive a message from a message queue with a timeout. Linux version.
+ Copyright (C) 2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <mqueue.h>
+#include <sysdep-cancel.h>
+
+/* Receive the oldest from highest priority messages in message queue
+ MQDES, stop waiting if ABS_TIMEOUT expires. */
+ssize_t
+__mq_timedreceive (mqd_t mqdes, char *__restrict msg_ptr, size_t msg_len,
+ unsigned int *__restrict msg_prio,
+ const struct timespec *__restrict abs_timeout)
+{
+ return SYSCALL_CANCEL (mq_timedreceive, mqdes, msg_ptr, msg_len, msg_prio,
+ abs_timeout);
+}
+hidden_def (__mq_timedreceive)
+weak_alias (__mq_timedreceive, mq_timedreceive)
+hidden_weak (mq_timedreceive)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mq_timedsend.c b/REORG.TODO/sysdeps/unix/sysv/linux/mq_timedsend.c
new file mode 100644
index 0000000000..799555440e
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mq_timedsend.c
@@ -0,0 +1,33 @@
+/* Send a message to a message queue with a timeout. Linux version.
+ Copyright (C) 2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <mqueue.h>
+#include <sysdep-cancel.h>
+
+/* Add message pointed by MSG_PTR to message queue MQDES, stop blocking
+ on full message queue if ABS_TIMEOUT expires. */
+int
+__mq_timedsend (mqd_t mqdes, const char *msg_ptr, size_t msg_len,
+ unsigned int msg_prio, const struct timespec *abs_timeout)
+{
+ return SYSCALL_CANCEL (mq_timedsend, mqdes, msg_ptr, msg_len, msg_prio,
+ abs_timeout);
+}
+hidden_def (__mq_timedsend)
+weak_alias (__mq_timedsend, mq_timedsend)
+hidden_weak (mq_timedsend)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/mq_unlink.c b/REORG.TODO/sysdeps/unix/sysv/linux/mq_unlink.c
new file mode 100644
index 0000000000..f635293f8a
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/mq_unlink.c
@@ -0,0 +1,49 @@
+/* Copyright (C) 2004-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <mqueue.h>
+#include <sysdep.h>
+
+#ifdef __NR_mq_unlink
+
+/* Remove message queue named NAME. */
+int
+mq_unlink (const char *name)
+{
+ if (name[0] != '/')
+ return INLINE_SYSCALL_ERROR_RETURN_VALUE (EINVAL);
+
+ INTERNAL_SYSCALL_DECL (err);
+ int ret = INTERNAL_SYSCALL (mq_unlink, err, 1, name + 1);
+
+ /* While unlink can return either EPERM or EACCES, mq_unlink should
+ return just EACCES. */
+ if (__glibc_unlikely (INTERNAL_SYSCALL_ERROR_P (ret, err)))
+ {
+ ret = INTERNAL_SYSCALL_ERRNO (ret, err);
+ if (ret == EPERM)
+ ret = EACCES;
+ return INLINE_SYSCALL_ERROR_RETURN_VALUE (ret);
+ }
+
+ return ret;
+}
+
+#else
+# include <rt/mq_unlink.c>
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/msgctl.c b/REORG.TODO/sysdeps/unix/sysv/linux/msgctl.c
new file mode 100644
index 0000000000..e5ae621420
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/msgctl.c
@@ -0,0 +1,71 @@
+/* Copyright (C) 1995-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, August 1995.
+
+ 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/msg.h>
+#include <ipc_priv.h>
+#include <sysdep.h>
+#include <shlib-compat.h>
+#include <errno.h>
+
+#ifndef DEFAULT_VERSION
+# define DEFAULT_VERSION GLIBC_2_2
+#endif
+
+int
+__new_msgctl (int msqid, int cmd, struct msqid_ds *buf)
+{
+#ifdef __ASSUME_DIRECT_SYSVIPC_SYSCALLS
+ return INLINE_SYSCALL_CALL (msgctl, msqid, cmd | __IPC_64, buf);
+#else
+ return INLINE_SYSCALL_CALL (ipc, IPCOP_msgctl, msqid, cmd | __IPC_64, 0,
+ buf);
+#endif
+}
+versioned_symbol (libc, __new_msgctl, msgctl, DEFAULT_VERSION);
+
+
+#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_2)
+struct __old_msqid_ds
+{
+ struct __old_ipc_perm msg_perm; /* structure describing operation permission */
+ struct msg *__msg_first; /* pointer to first message on queue */
+ struct msg *__msg_last; /* pointer to last message on queue */
+ __time_t msg_stime; /* time of last msgsnd command */
+ __time_t msg_rtime; /* time of last msgrcv command */
+ __time_t msg_ctime; /* time of last change */
+ struct wait_queue *__wwait; /* ??? */
+ struct wait_queue *__rwait; /* ??? */
+ unsigned short int __msg_cbytes; /* current number of bytes on queue */
+ unsigned short int msg_qnum; /* number of messages currently on queue */
+ unsigned short int msg_qbytes; /* max number of bytes allowed on queue */
+ __ipc_pid_t msg_lspid; /* pid of last msgsnd() */
+ __ipc_pid_t msg_lrpid; /* pid of last msgrcv() */
+};
+
+int
+attribute_compat_text_section
+__old_msgctl (int msqid, int cmd, struct __old_msqid_ds *buf)
+{
+#ifdef __ASSUME_DIRECT_SYSVIPC_SYSCALLS
+ return INLINE_SYSCALL_CALL (msgctl, msqid, cmd | __IPC_64, buf);
+#else
+ return INLINE_SYSCALL_CALL (ipc, IPCOP_msgctl, msqid, cmd, 0, buf);
+#endif
+}
+compat_symbol (libc, __old_msgctl, msgctl, GLIBC_2_0);
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/msgget.c b/REORG.TODO/sysdeps/unix/sysv/linux/msgget.c
new file mode 100644
index 0000000000..91e71c208c
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/msgget.c
@@ -0,0 +1,35 @@
+/* Copyright (C) 1995-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, August 1995.
+
+ 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/msg.h>
+#include <ipc_priv.h>
+#include <sysdep.h>
+#include <errno.h>
+
+/* Return descriptor for message queue associated with KEY. The MSGFLG
+ parameter describes how to proceed with clashing of key values. */
+
+int
+msgget (key_t key, int msgflg)
+{
+#ifdef __ASSUME_DIRECT_SYSVIPC_SYSCALLS
+ return INLINE_SYSCALL_CALL (msgget, key, msgflg);
+#else
+ return INLINE_SYSCALL_CALL (ipc, IPCOP_msgget, key, msgflg, 0, NULL);
+#endif
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/msgrcv.c b/REORG.TODO/sysdeps/unix/sysv/linux/msgrcv.c
new file mode 100644
index 0000000000..630284fa3c
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/msgrcv.c
@@ -0,0 +1,34 @@
+/* Copyright (C) 1995-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, August 1995.
+
+ 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/msg.h>
+#include <ipc_priv.h>
+#include <sysdep-cancel.h>
+
+ssize_t
+__libc_msgrcv (int msqid, void *msgp, size_t msgsz, long int msgtyp,
+ int msgflg)
+{
+#ifdef __ASSUME_DIRECT_SYSVIPC_SYSCALLS
+ return SYSCALL_CANCEL (msgrcv, msqid, msgp, msgsz, msgtyp, msgflg);
+#else
+ return SYSCALL_CANCEL (ipc, IPCOP_msgrcv, msqid, msgsz, msgflg,
+ MSGRCV_ARGS (msgp, msgtyp));
+#endif
+}
+weak_alias (__libc_msgrcv, msgrcv)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/msgsnd.c b/REORG.TODO/sysdeps/unix/sysv/linux/msgsnd.c
new file mode 100644
index 0000000000..7884977908
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/msgsnd.c
@@ -0,0 +1,33 @@
+/* Copyright (C) 1995-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, August 1995.
+
+ 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/msg.h>
+#include <ipc_priv.h>
+#include <sysdep-cancel.h>
+
+int
+__libc_msgsnd (int msqid, const void *msgp, size_t msgsz, int msgflg)
+{
+#ifdef __ASSUME_DIRECT_SYSVIPC_SYSCALLS
+ return SYSCALL_CANCEL (msgsnd, msqid, msgp, msgsz, msgflg);
+#else
+ return SYSCALL_CANCEL (ipc, IPCOP_msgsnd, msqid, msgsz, msgflg,
+ msgp);
+#endif
+}
+weak_alias (__libc_msgsnd, msgsnd)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/msync.c b/REORG.TODO/sysdeps/unix/sysv/linux/msync.c
new file mode 100644
index 0000000000..28aba111e0
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/msync.c
@@ -0,0 +1,26 @@
+/* Linux synchronize a file with a memory map implementation.
+ Copyright (C) 2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sys/mman.h>
+#include <sysdep-cancel.h>
+
+int
+msync (void *addr, size_t length, int flags)
+{
+ return SYSCALL_CANCEL (msync, addr, length, flags);
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/nanosleep.c b/REORG.TODO/sysdeps/unix/sysv/linux/nanosleep.c
new file mode 100644
index 0000000000..b352f84344
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/nanosleep.c
@@ -0,0 +1,30 @@
+/* Linux high resolution nanosleep implementation.
+ Copyright (C) 2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <time.h>
+#include <sysdep-cancel.h>
+
+/* Pause execution for a number of nanoseconds. */
+int
+__nanosleep (const struct timespec *requested_time,
+ struct timespec *remaining)
+{
+ return SYSCALL_CANCEL (nanosleep, requested_time, remaining);
+}
+libc_hidden_def (__nanosleep)
+weak_alias (__nanosleep, nanosleep)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/net/ethernet.h b/REORG.TODO/sysdeps/unix/sysv/linux/net/ethernet.h
new file mode 100644
index 0000000000..ef89c7b123
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/net/ethernet.h
@@ -0,0 +1,84 @@
+/* Copyright (C) 1997-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+/* Based on the FreeBSD version of this file. Curiously, that file
+ lacks a copyright in the header. */
+
+#ifndef __NET_ETHERNET_H
+#define __NET_ETHERNET_H 1
+
+#include <sys/types.h>
+#include <stdint.h>
+
+#include <linux/if_ether.h> /* IEEE 802.3 Ethernet constants */
+
+__BEGIN_DECLS
+
+/* This is a name for the 48 bit ethernet address available on many
+ systems. */
+struct ether_addr
+{
+ uint8_t ether_addr_octet[ETH_ALEN];
+} __attribute__ ((__packed__));
+
+/* 10Mb/s ethernet header */
+struct ether_header
+{
+ uint8_t ether_dhost[ETH_ALEN]; /* destination eth addr */
+ uint8_t ether_shost[ETH_ALEN]; /* source ether addr */
+ uint16_t ether_type; /* packet type ID field */
+} __attribute__ ((__packed__));
+
+/* Ethernet protocol ID's */
+#define ETHERTYPE_PUP 0x0200 /* Xerox PUP */
+#define ETHERTYPE_SPRITE 0x0500 /* Sprite */
+#define ETHERTYPE_IP 0x0800 /* IP */
+#define ETHERTYPE_ARP 0x0806 /* Address resolution */
+#define ETHERTYPE_REVARP 0x8035 /* Reverse ARP */
+#define ETHERTYPE_AT 0x809B /* AppleTalk protocol */
+#define ETHERTYPE_AARP 0x80F3 /* AppleTalk ARP */
+#define ETHERTYPE_VLAN 0x8100 /* IEEE 802.1Q VLAN tagging */
+#define ETHERTYPE_IPX 0x8137 /* IPX */
+#define ETHERTYPE_IPV6 0x86dd /* IP protocol version 6 */
+#define ETHERTYPE_LOOPBACK 0x9000 /* used to test interfaces */
+
+
+#define ETHER_ADDR_LEN ETH_ALEN /* size of ethernet addr */
+#define ETHER_TYPE_LEN 2 /* bytes in type field */
+#define ETHER_CRC_LEN 4 /* bytes in CRC field */
+#define ETHER_HDR_LEN ETH_HLEN /* total octets in header */
+#define ETHER_MIN_LEN (ETH_ZLEN + ETHER_CRC_LEN) /* min packet length */
+#define ETHER_MAX_LEN (ETH_FRAME_LEN + ETHER_CRC_LEN) /* max packet length */
+
+/* make sure ethenet length is valid */
+#define ETHER_IS_VALID_LEN(foo) \
+ ((foo) >= ETHER_MIN_LEN && (foo) <= ETHER_MAX_LEN)
+
+/*
+ * The ETHERTYPE_NTRAILER packet types starting at ETHERTYPE_TRAIL have
+ * (type-ETHERTYPE_TRAIL)*512 bytes of data followed
+ * by an ETHER type (as given above) and then the (variable-length) header.
+ */
+#define ETHERTYPE_TRAIL 0x1000 /* Trailer packet */
+#define ETHERTYPE_NTRAILER 16
+
+#define ETHERMTU ETH_DATA_LEN
+#define ETHERMIN (ETHER_MIN_LEN - ETHER_HDR_LEN - ETHER_CRC_LEN)
+
+__END_DECLS
+
+#endif /* net/ethernet.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/net/if_arp.h b/REORG.TODO/sysdeps/unix/sysv/linux/net/if_arp.h
new file mode 100644
index 0000000000..9b00644c9d
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/net/if_arp.h
@@ -0,0 +1,182 @@
+/* Definitions for Address Resolution Protocol.
+ Copyright (C) 1997-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
+
+ 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/>. */
+
+/* Based on the 4.4BSD and Linux version of this file. */
+
+#ifndef _NET_IF_ARP_H
+#define _NET_IF_ARP_H 1
+
+#include <sys/types.h>
+#include <sys/socket.h>
+#include <stdint.h>
+
+__BEGIN_DECLS
+
+/* Some internals from deep down in the kernel. */
+#define MAX_ADDR_LEN 7
+
+
+/* This structure defines an ethernet arp header. */
+
+/* ARP protocol opcodes. */
+#define ARPOP_REQUEST 1 /* ARP request. */
+#define ARPOP_REPLY 2 /* ARP reply. */
+#define ARPOP_RREQUEST 3 /* RARP request. */
+#define ARPOP_RREPLY 4 /* RARP reply. */
+#define ARPOP_InREQUEST 8 /* InARP request. */
+#define ARPOP_InREPLY 9 /* InARP reply. */
+#define ARPOP_NAK 10 /* (ATM)ARP NAK. */
+
+/* See RFC 826 for protocol description. ARP packets are variable
+ in size; the arphdr structure defines the fixed-length portion.
+ Protocol type values are the same as those for 10 Mb/s Ethernet.
+ It is followed by the variable-sized fields ar_sha, arp_spa,
+ arp_tha and arp_tpa in that order, according to the lengths
+ specified. Field names used correspond to RFC 826. */
+
+struct arphdr
+ {
+ unsigned short int ar_hrd; /* Format of hardware address. */
+ unsigned short int ar_pro; /* Format of protocol address. */
+ unsigned char ar_hln; /* Length of hardware address. */
+ unsigned char ar_pln; /* Length of protocol address. */
+ unsigned short int ar_op; /* ARP opcode (command). */
+#if 0
+ /* Ethernet looks like this : This bit is variable sized
+ however... */
+ unsigned char __ar_sha[ETH_ALEN]; /* Sender hardware address. */
+ unsigned char __ar_sip[4]; /* Sender IP address. */
+ unsigned char __ar_tha[ETH_ALEN]; /* Target hardware address. */
+ unsigned char __ar_tip[4]; /* Target IP address. */
+#endif
+ };
+
+
+/* ARP protocol HARDWARE identifiers. */
+#define ARPHRD_NETROM 0 /* From KA9Q: NET/ROM pseudo. */
+#define ARPHRD_ETHER 1 /* Ethernet 10/100Mbps. */
+#define ARPHRD_EETHER 2 /* Experimental Ethernet. */
+#define ARPHRD_AX25 3 /* AX.25 Level 2. */
+#define ARPHRD_PRONET 4 /* PROnet token ring. */
+#define ARPHRD_CHAOS 5 /* Chaosnet. */
+#define ARPHRD_IEEE802 6 /* IEEE 802.2 Ethernet/TR/TB. */
+#define ARPHRD_ARCNET 7 /* ARCnet. */
+#define ARPHRD_APPLETLK 8 /* APPLEtalk. */
+#define ARPHRD_DLCI 15 /* Frame Relay DLCI. */
+#define ARPHRD_ATM 19 /* ATM. */
+#define ARPHRD_METRICOM 23 /* Metricom STRIP (new IANA id). */
+#define ARPHRD_IEEE1394 24 /* IEEE 1394 IPv4 - RFC 2734. */
+#define ARPHRD_EUI64 27 /* EUI-64. */
+#define ARPHRD_INFINIBAND 32 /* InfiniBand. */
+
+/* Dummy types for non ARP hardware */
+#define ARPHRD_SLIP 256
+#define ARPHRD_CSLIP 257
+#define ARPHRD_SLIP6 258
+#define ARPHRD_CSLIP6 259
+#define ARPHRD_RSRVD 260 /* Notional KISS type. */
+#define ARPHRD_ADAPT 264
+#define ARPHRD_ROSE 270
+#define ARPHRD_X25 271 /* CCITT X.25. */
+#define ARPHRD_HWX25 272 /* Boards with X.25 in firmware. */
+#define ARPHRD_PPP 512
+#define ARPHRD_CISCO 513 /* Cisco HDLC. */
+#define ARPHRD_HDLC ARPHRD_CISCO
+#define ARPHRD_LAPB 516 /* LAPB. */
+#define ARPHRD_DDCMP 517 /* Digital's DDCMP. */
+#define ARPHRD_RAWHDLC 518 /* Raw HDLC. */
+
+#define ARPHRD_TUNNEL 768 /* IPIP tunnel. */
+#define ARPHRD_TUNNEL6 769 /* IPIP6 tunnel. */
+#define ARPHRD_FRAD 770 /* Frame Relay Access Device. */
+#define ARPHRD_SKIP 771 /* SKIP vif. */
+#define ARPHRD_LOOPBACK 772 /* Loopback device. */
+#define ARPHRD_LOCALTLK 773 /* Localtalk device. */
+#define ARPHRD_FDDI 774 /* Fiber Distributed Data Interface. */
+#define ARPHRD_BIF 775 /* AP1000 BIF. */
+#define ARPHRD_SIT 776 /* sit0 device - IPv6-in-IPv4. */
+#define ARPHRD_IPDDP 777 /* IP-in-DDP tunnel. */
+#define ARPHRD_IPGRE 778 /* GRE over IP. */
+#define ARPHRD_PIMREG 779 /* PIMSM register interface. */
+#define ARPHRD_HIPPI 780 /* High Performance Parallel I'face. */
+#define ARPHRD_ASH 781 /* (Nexus Electronics) Ash. */
+#define ARPHRD_ECONET 782 /* Acorn Econet. */
+#define ARPHRD_IRDA 783 /* Linux-IrDA. */
+#define ARPHRD_FCPP 784 /* Point to point fibrechanel. */
+#define ARPHRD_FCAL 785 /* Fibrechanel arbitrated loop. */
+#define ARPHRD_FCPL 786 /* Fibrechanel public loop. */
+#define ARPHRD_FCFABRIC 787 /* Fibrechanel fabric. */
+#define ARPHRD_IEEE802_TR 800 /* Magic type ident for TR. */
+#define ARPHRD_IEEE80211 801 /* IEEE 802.11. */
+#define ARPHRD_IEEE80211_PRISM 802 /* IEEE 802.11 + Prism2 header. */
+#define ARPHRD_IEEE80211_RADIOTAP 803 /* IEEE 802.11 + radiotap header. */
+#define ARPHRD_IEEE802154 804 /* IEEE 802.15.4 header. */
+#define ARPHRD_IEEE802154_PHY 805 /* IEEE 802.15.4 PHY header. */
+
+#define ARPHRD_VOID 0xFFFF /* Void type, nothing is known. */
+#define ARPHRD_NONE 0xFFFE /* Zero header length. */
+
+
+/* ARP ioctl request. */
+struct arpreq
+ {
+ struct sockaddr arp_pa; /* Protocol address. */
+ struct sockaddr arp_ha; /* Hardware address. */
+ int arp_flags; /* Flags. */
+ struct sockaddr arp_netmask; /* Netmask (only for proxy arps). */
+ char arp_dev[16];
+ };
+
+struct arpreq_old
+ {
+ struct sockaddr arp_pa; /* Protocol address. */
+ struct sockaddr arp_ha; /* Hardware address. */
+ int arp_flags; /* Flags. */
+ struct sockaddr arp_netmask; /* Netmask (only for proxy arps). */
+ };
+
+/* ARP Flag values. */
+#define ATF_COM 0x02 /* Completed entry (ha valid). */
+#define ATF_PERM 0x04 /* Permanent entry. */
+#define ATF_PUBL 0x08 /* Publish entry. */
+#define ATF_USETRAILERS 0x10 /* Has requested trailers. */
+#define ATF_NETMASK 0x20 /* Want to use a netmask (only
+ for proxy entries). */
+#define ATF_DONTPUB 0x40 /* Don't answer this addresses. */
+#define ATF_MAGIC 0x80 /* Automatically added entry. */
+
+
+/* Support for the user space arp daemon, arpd. */
+#define ARPD_UPDATE 0x01
+#define ARPD_LOOKUP 0x02
+#define ARPD_FLUSH 0x03
+
+struct arpd_request
+ {
+ unsigned short int req; /* Request type. */
+ uint32_t ip; /* IP address of entry. */
+ unsigned long int dev; /* Device entry is tied to. */
+ unsigned long int stamp;
+ unsigned long int updated;
+ unsigned char ha[MAX_ADDR_LEN]; /* Hardware address. */
+ };
+
+__END_DECLS
+
+#endif /* net/if_arp.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/net/if_packet.h b/REORG.TODO/sysdeps/unix/sysv/linux/net/if_packet.h
new file mode 100644
index 0000000000..3895b4c957
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/net/if_packet.h
@@ -0,0 +1,36 @@
+/* Definitions for use with Linux SOCK_PACKET sockets.
+ Copyright (C) 1997-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef __IF_PACKET_H
+#define __IF_PACKET_H
+
+#include <features.h>
+#include <bits/sockaddr.h>
+
+/* This is the SOCK_PACKET address structure as used in Linux 2.0.
+ From Linux 2.1 the AF_PACKET interface is preferred and you should
+ consider using it in place of this one. */
+
+struct sockaddr_pkt
+ {
+ __SOCKADDR_COMMON (spkt_);
+ unsigned char spkt_device[14];
+ unsigned short spkt_protocol;
+ };
+
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/net/if_ppp.h b/REORG.TODO/sysdeps/unix/sysv/linux/net/if_ppp.h
new file mode 100644
index 0000000000..31a20766f0
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/net/if_ppp.h
@@ -0,0 +1,171 @@
+/* From: if_ppp.h,v 1.3 1995/06/12 11:36:50 paulus Exp */
+
+/*
+ * if_ppp.h - Point-to-Point Protocol definitions.
+ *
+ * Copyright (c) 1989 Carnegie Mellon University.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the University nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY CARNEGIE MELLON UNIVERSITY AND
+ * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE UNIVERSITY OR CONTRIBUTORS BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+ * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
+ * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+ * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+/*
+ * ==FILEVERSION 960926==
+ *
+ * NOTE TO MAINTAINERS:
+ * If you modify this file at all, please set the above date.
+ * if_ppp.h is shipped with a PPP distribution as well as with the kernel;
+ * if everyone increases the FILEVERSION number above, then scripts
+ * can do the right thing when deciding whether to install a new if_ppp.h
+ * file. Don't change the format of that line otherwise, so the
+ * installation script can recognize it.
+ */
+
+
+#ifndef __NET_IF_PPP_H
+#define __NET_IF_PPP_H 1
+
+#include <sys/types.h>
+#include <stdint.h>
+#include <net/if.h>
+#include <sys/ioctl.h>
+#include <net/ppp_defs.h>
+
+__BEGIN_DECLS
+
+/*
+ * Packet sizes
+ */
+
+#define PPP_MTU 1500 /* Default MTU (size of Info field) */
+#define PPP_MAXMRU 65000 /* Largest MRU we allow */
+#define PPP_VERSION "2.2.0"
+#define PPP_MAGIC 0x5002 /* Magic value for the ppp structure */
+#define PROTO_IPX 0x002b /* protocol numbers */
+#define PROTO_DNA_RT 0x0027 /* DNA Routing */
+
+
+/*
+ * Bit definitions for flags.
+ */
+
+#define SC_COMP_PROT 0x00000001 /* protocol compression (output) */
+#define SC_COMP_AC 0x00000002 /* header compression (output) */
+#define SC_COMP_TCP 0x00000004 /* TCP (VJ) compression (output) */
+#define SC_NO_TCP_CCID 0x00000008 /* disable VJ connection-id comp. */
+#define SC_REJ_COMP_AC 0x00000010 /* reject adrs/ctrl comp. on input */
+#define SC_REJ_COMP_TCP 0x00000020 /* reject TCP (VJ) comp. on input */
+#define SC_CCP_OPEN 0x00000040 /* Look at CCP packets */
+#define SC_CCP_UP 0x00000080 /* May send/recv compressed packets */
+#define SC_ENABLE_IP 0x00000100 /* IP packets may be exchanged */
+#define SC_COMP_RUN 0x00001000 /* compressor has been inited */
+#define SC_DECOMP_RUN 0x00002000 /* decompressor has been inited */
+#define SC_DEBUG 0x00010000 /* enable debug messages */
+#define SC_LOG_INPKT 0x00020000 /* log contents of good pkts recvd */
+#define SC_LOG_OUTPKT 0x00040000 /* log contents of pkts sent */
+#define SC_LOG_RAWIN 0x00080000 /* log all chars received */
+#define SC_LOG_FLUSH 0x00100000 /* log all chars flushed */
+#define SC_MASK 0x0fE0ffff /* bits that user can change */
+
+/* state bits */
+#define SC_ESCAPED 0x80000000 /* saw a PPP_ESCAPE */
+#define SC_FLUSH 0x40000000 /* flush input until next PPP_FLAG */
+#define SC_VJ_RESET 0x20000000 /* Need to reset the VJ decompressor */
+#define SC_XMIT_BUSY 0x10000000 /* ppp_write_wakeup is active */
+#define SC_RCV_ODDP 0x08000000 /* have rcvd char with odd parity */
+#define SC_RCV_EVNP 0x04000000 /* have rcvd char with even parity */
+#define SC_RCV_B7_1 0x02000000 /* have rcvd char with bit 7 = 1 */
+#define SC_RCV_B7_0 0x01000000 /* have rcvd char with bit 7 = 0 */
+#define SC_DC_FERROR 0x00800000 /* fatal decomp error detected */
+#define SC_DC_ERROR 0x00400000 /* non-fatal decomp error detected */
+
+/*
+ * Ioctl definitions.
+ */
+
+struct npioctl {
+ int protocol; /* PPP protocol, e.g. PPP_IP */
+ enum NPmode mode;
+};
+
+/* Structure describing a CCP configuration option, for PPPIOCSCOMPRESS */
+struct ppp_option_data {
+ uint8_t *ptr;
+ uint32_t length;
+ int transmit;
+};
+
+/* 'struct ifreq' is only available from net/if.h under __USE_MISC. */
+#ifdef __USE_MISC
+struct ifpppstatsreq {
+ struct ifreq b;
+ struct ppp_stats stats; /* statistic information */
+};
+
+struct ifpppcstatsreq {
+ struct ifreq b;
+ struct ppp_comp_stats stats;
+};
+
+#define ifr__name b.ifr_ifrn.ifrn_name
+#define stats_ptr b.ifr_ifru.ifru_data
+#endif
+
+/*
+ * Ioctl definitions.
+ */
+
+#define PPPIOCGFLAGS _IOR('t', 90, int) /* get configuration flags */
+#define PPPIOCSFLAGS _IOW('t', 89, int) /* set configuration flags */
+#define PPPIOCGASYNCMAP _IOR('t', 88, int) /* get async map */
+#define PPPIOCSASYNCMAP _IOW('t', 87, int) /* set async map */
+#define PPPIOCGUNIT _IOR('t', 86, int) /* get ppp unit number */
+#define PPPIOCGRASYNCMAP _IOR('t', 85, int) /* get receive async map */
+#define PPPIOCSRASYNCMAP _IOW('t', 84, int) /* set receive async map */
+#define PPPIOCGMRU _IOR('t', 83, int) /* get max receive unit */
+#define PPPIOCSMRU _IOW('t', 82, int) /* set max receive unit */
+#define PPPIOCSMAXCID _IOW('t', 81, int) /* set VJ max slot ID */
+#define PPPIOCGXASYNCMAP _IOR('t', 80, ext_accm) /* get extended ACCM */
+#define PPPIOCSXASYNCMAP _IOW('t', 79, ext_accm) /* set extended ACCM */
+#define PPPIOCXFERUNIT _IO('t', 78) /* transfer PPP unit */
+#define PPPIOCSCOMPRESS _IOW('t', 77, struct ppp_option_data)
+#define PPPIOCGNPMODE _IOWR('t', 76, struct npioctl) /* get NP mode */
+#define PPPIOCSNPMODE _IOW('t', 75, struct npioctl) /* set NP mode */
+#define PPPIOCGDEBUG _IOR('t', 65, int) /* Read debug level */
+#define PPPIOCSDEBUG _IOW('t', 64, int) /* Set debug level */
+#define PPPIOCGIDLE _IOR('t', 63, struct ppp_idle) /* get idle time */
+
+#define SIOCGPPPSTATS (SIOCDEVPRIVATE + 0)
+#define SIOCGPPPVER (SIOCDEVPRIVATE + 1) /* NEVER change this!! */
+#define SIOCGPPPCSTATS (SIOCDEVPRIVATE + 2)
+
+#if !defined(ifr_mtu)
+#define ifr_mtu ifr_ifru.ifru_metric
+#endif
+
+__END_DECLS
+
+#endif /* net/if_ppp.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/net/if_shaper.h b/REORG.TODO/sysdeps/unix/sysv/linux/net/if_shaper.h
new file mode 100644
index 0000000000..cc01ce3955
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/net/if_shaper.h
@@ -0,0 +1,58 @@
+/* Copyright (C) 1998-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _NET_IF_SHAPER_H
+#define _NET_IF_SHAPER_H 1
+
+#include <sys/types.h>
+#include <stdint.h>
+#include <net/if.h>
+#include <sys/ioctl.h>
+
+__BEGIN_DECLS
+
+#define SHAPER_QLEN 10
+/*
+ * This is a bit speed dependant (read it shouldnt be a constant!)
+ *
+ * 5 is about right for 28.8 upwards. Below that double for every
+ * halving of speed or so. - ie about 20 for 9600 baud.
+ */
+#define SHAPER_LATENCY (5 * HZ)
+#define SHAPER_MAXSLIP 2
+#define SHAPER_BURST (HZ / 50) /* Good for >128K then */
+
+#define SHAPER_SET_DEV 0x0001
+#define SHAPER_SET_SPEED 0x0002
+#define SHAPER_GET_DEV 0x0003
+#define SHAPER_GET_SPEED 0x0004
+
+struct shaperconf
+{
+ uint16_t ss_cmd;
+ union
+ {
+ char ssu_name[14];
+ uint32_t ssu_speed;
+ } ss_u;
+#define ss_speed ss_u.ssu_speed
+#define ss_name ss_u.ssu_name
+};
+
+__END_DECLS
+
+#endif /* net/if_shaper.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/net/if_slip.h b/REORG.TODO/sysdeps/unix/sysv/linux/net/if_slip.h
new file mode 100644
index 0000000000..0a293dcc2d
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/net/if_slip.h
@@ -0,0 +1,24 @@
+/* Copyright (C) 1997-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _NET_IF_SLIP_H
+#define _NET_IF_SLIP_H 1
+
+/* We can use the kernel header. */
+#include <linux/if_slip.h>
+
+#endif /* net/if_slip.h. */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/net/ppp-comp.h b/REORG.TODO/sysdeps/unix/sysv/linux/net/ppp-comp.h
new file mode 100644
index 0000000000..4a992d5422
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/net/ppp-comp.h
@@ -0,0 +1 @@
+#include <linux/ppp-comp.h>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/net/ppp_defs.h b/REORG.TODO/sysdeps/unix/sysv/linux/net/ppp_defs.h
new file mode 100644
index 0000000000..5e492e9dbf
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/net/ppp_defs.h
@@ -0,0 +1,8 @@
+#ifndef _NET_PPP_DEFS_H
+#define _NET_PPP_DEFS_H 1
+
+#include <bits/types/time_t.h>
+#include <asm/types.h>
+#include <linux/ppp_defs.h>
+
+#endif /* net/ppp_defs.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/net/route.h b/REORG.TODO/sysdeps/unix/sysv/linux/net/route.h
new file mode 100644
index 0000000000..f9e1739937
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/net/route.h
@@ -0,0 +1,144 @@
+/* Copyright (C) 1997-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+/* Based on the 4.4BSD and Linux version of this file. */
+
+#ifndef _NET_ROUTE_H
+#define _NET_ROUTE_H 1
+
+#include <features.h>
+#include <sys/socket.h>
+#include <sys/types.h>
+#include <netinet/in.h>
+#include <bits/wordsize.h>
+
+
+/* This structure gets passed by the SIOCADDRT and SIOCDELRT calls. */
+struct rtentry
+ {
+ unsigned long int rt_pad1;
+ struct sockaddr rt_dst; /* Target address. */
+ struct sockaddr rt_gateway; /* Gateway addr (RTF_GATEWAY). */
+ struct sockaddr rt_genmask; /* Target network mask (IP). */
+ unsigned short int rt_flags;
+ short int rt_pad2;
+ unsigned long int rt_pad3;
+ unsigned char rt_tos;
+ unsigned char rt_class;
+#if __WORDSIZE == 64
+ short int rt_pad4[3];
+#else
+ short int rt_pad4;
+#endif
+ short int rt_metric; /* +1 for binary compatibility! */
+ char *rt_dev; /* Forcing the device at add. */
+ unsigned long int rt_mtu; /* Per route MTU/Window. */
+ unsigned long int rt_window; /* Window clamping. */
+ unsigned short int rt_irtt; /* Initial RTT. */
+ };
+/* Compatibility hack. */
+#define rt_mss rt_mtu
+
+
+struct in6_rtmsg
+ {
+ struct in6_addr rtmsg_dst;
+ struct in6_addr rtmsg_src;
+ struct in6_addr rtmsg_gateway;
+ uint32_t rtmsg_type;
+ uint16_t rtmsg_dst_len;
+ uint16_t rtmsg_src_len;
+ uint32_t rtmsg_metric;
+ unsigned long int rtmsg_info;
+ uint32_t rtmsg_flags;
+ int rtmsg_ifindex;
+ };
+
+
+#define RTF_UP 0x0001 /* Route usable. */
+#define RTF_GATEWAY 0x0002 /* Destination is a gateway. */
+
+#define RTF_HOST 0x0004 /* Host entry (net otherwise). */
+#define RTF_REINSTATE 0x0008 /* Reinstate route after timeout. */
+#define RTF_DYNAMIC 0x0010 /* Created dyn. (by redirect). */
+#define RTF_MODIFIED 0x0020 /* Modified dyn. (by redirect). */
+#define RTF_MTU 0x0040 /* Specific MTU for this route. */
+#define RTF_MSS RTF_MTU /* Compatibility. */
+#define RTF_WINDOW 0x0080 /* Per route window clamping. */
+#define RTF_IRTT 0x0100 /* Initial round trip time. */
+#define RTF_REJECT 0x0200 /* Reject route. */
+#define RTF_STATIC 0x0400 /* Manually injected route. */
+#define RTF_XRESOLVE 0x0800 /* External resolver. */
+#define RTF_NOFORWARD 0x1000 /* Forwarding inhibited. */
+#define RTF_THROW 0x2000 /* Go to next class. */
+#define RTF_NOPMTUDISC 0x4000 /* Do not send packets with DF. */
+
+/* for IPv6 */
+#define RTF_DEFAULT 0x00010000 /* default - learned via ND */
+#define RTF_ALLONLINK 0x00020000 /* fallback, no routers on link */
+#define RTF_ADDRCONF 0x00040000 /* addrconf route - RA */
+
+#define RTF_LINKRT 0x00100000 /* link specific - device match */
+#define RTF_NONEXTHOP 0x00200000 /* route with no nexthop */
+
+#define RTF_CACHE 0x01000000 /* cache entry */
+#define RTF_FLOW 0x02000000 /* flow significant route */
+#define RTF_POLICY 0x04000000 /* policy route */
+
+#define RTCF_VALVE 0x00200000
+#define RTCF_MASQ 0x00400000
+#define RTCF_NAT 0x00800000
+#define RTCF_DOREDIRECT 0x01000000
+#define RTCF_LOG 0x02000000
+#define RTCF_DIRECTSRC 0x04000000
+
+#define RTF_LOCAL 0x80000000
+#define RTF_INTERFACE 0x40000000
+#define RTF_MULTICAST 0x20000000
+#define RTF_BROADCAST 0x10000000
+#define RTF_NAT 0x08000000
+
+#define RTF_ADDRCLASSMASK 0xF8000000
+#define RT_ADDRCLASS(flags) ((uint32_t) flags >> 23)
+
+#define RT_TOS(tos) ((tos) & IPTOS_TOS_MASK)
+
+#define RT_LOCALADDR(flags) ((flags & RTF_ADDRCLASSMASK) \
+ == (RTF_LOCAL|RTF_INTERFACE))
+
+#define RT_CLASS_UNSPEC 0
+#define RT_CLASS_DEFAULT 253
+
+#define RT_CLASS_MAIN 254
+#define RT_CLASS_LOCAL 255
+#define RT_CLASS_MAX 255
+
+
+#define RTMSG_ACK NLMSG_ACK
+#define RTMSG_OVERRUN NLMSG_OVERRUN
+
+#define RTMSG_NEWDEVICE 0x11
+#define RTMSG_DELDEVICE 0x12
+#define RTMSG_NEWROUTE 0x21
+#define RTMSG_DELROUTE 0x22
+#define RTMSG_NEWRULE 0x31
+#define RTMSG_DELRULE 0x32
+#define RTMSG_CONTROL 0x40
+
+#define RTMSG_AR_FAILED 0x51 /* Address Resolution failed. */
+
+#endif /* net/route.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/netash/ash.h b/REORG.TODO/sysdeps/unix/sysv/linux/netash/ash.h
new file mode 100644
index 0000000000..8068deb0d5
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/netash/ash.h
@@ -0,0 +1,39 @@
+/* Definitions for use with Linux AF_ASH sockets.
+ Copyright (C) 1998-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _NETASH_ASH_H
+#define _NETASH_ASH_H 1
+
+#include <features.h>
+#include <bits/sockaddr.h>
+
+struct sockaddr_ash
+ {
+ __SOCKADDR_COMMON (sash_); /* Common data: address family etc. */
+ int sash_ifindex; /* Interface to use. */
+ unsigned char sash_channel; /* Realtime or control. */
+ unsigned int sash_plen;
+ unsigned char sash_prefix[16];
+ };
+
+/* Values for `channel' member. */
+#define ASH_CHANNEL_ANY 0
+#define ASH_CHANNEL_CONTROL 1
+#define ASH_CHANNEL_REALTIME 2
+
+#endif /* netash/ash.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/netatalk/at.h b/REORG.TODO/sysdeps/unix/sysv/linux/netatalk/at.h
new file mode 100644
index 0000000000..9b92147fff
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/netatalk/at.h
@@ -0,0 +1,28 @@
+/* Copyright (C) 1991-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _NETATALK_AT_H
+#define _NETATALK_AT_H 1
+
+#include <asm/types.h>
+#include <bits/sockaddr.h>
+#include <linux/atalk.h>
+#include <sys/socket.h>
+
+#define SOL_ATALK 258 /* sockopt level for atalk */
+
+#endif /* netatalk/at.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/netax25/ax25.h b/REORG.TODO/sysdeps/unix/sysv/linux/netax25/ax25.h
new file mode 100644
index 0000000000..fce032477f
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/netax25/ax25.h
@@ -0,0 +1,170 @@
+/* Copyright (C) 1997-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _NETAX25_AX25_H
+#define _NETAX25_AX25_H 1
+
+#include <features.h>
+#include <bits/sockaddr.h>
+
+/* Setsockoptions(2) level. Thanks to BSD these must match IPPROTO_xxx. */
+#define SOL_AX25 257
+
+/* AX.25 flags: */
+#define AX25_WINDOW 1
+#define AX25_T1 2
+#define AX25_T2 5
+#define AX25_T3 4
+#define AX25_N2 3
+#define AX25_BACKOFF 6
+#define AX25_EXTSEQ 7
+#define AX25_PIDINCL 8
+#define AX25_IDLE 9
+#define AX25_PACLEN 10
+#define AX25_IPMAXQUEUE 11
+#define AX25_IAMDIGI 12
+#define AX25_KILL 99
+
+/* AX.25 socket ioctls: */
+#define SIOCAX25GETUID (SIOCPROTOPRIVATE)
+#define SIOCAX25ADDUID (SIOCPROTOPRIVATE+1)
+#define SIOCAX25DELUID (SIOCPROTOPRIVATE+2)
+#define SIOCAX25NOUID (SIOCPROTOPRIVATE+3)
+#define SIOCAX25BPQADDR (SIOCPROTOPRIVATE+4)
+#define SIOCAX25GETPARMS (SIOCPROTOPRIVATE+5)
+#define SIOCAX25SETPARMS (SIOCPROTOPRIVATE+6)
+#define SIOCAX25OPTRT (SIOCPROTOPRIVATE+7)
+#define SIOCAX25CTLCON (SIOCPROTOPRIVATE+8)
+#define SIOCAX25GETINFO (SIOCPROTOPRIVATE+9)
+#define SIOCAX25ADDFWD (SIOCPROTOPRIVATE+10)
+#define SIOCAX25DELFWD (SIOCPROTOPRIVATE+11)
+
+/* unknown: */
+#define AX25_NOUID_DEFAULT 0
+#define AX25_NOUID_BLOCK 1
+#define AX25_SET_RT_IPMODE 2
+
+/* Digipeating flags: */
+#define AX25_DIGI_INBAND 0x01 /* Allow digipeating within port */
+#define AX25_DIGI_XBAND 0x02 /* Allow digipeating across ports */
+
+/* Maximim number of digipeaters: */
+#define AX25_MAX_DIGIS 8
+
+
+typedef struct
+ {
+ char ax25_call[7]; /* 6 call + SSID (shifted ascii) */
+ }
+ax25_address;
+
+struct sockaddr_ax25
+ {
+ sa_family_t sax25_family;
+ ax25_address sax25_call;
+ int sax25_ndigis;
+ };
+
+/*
+ * The sockaddr struct with the digipeater adresses:
+ */
+struct full_sockaddr_ax25
+ {
+ struct sockaddr_ax25 fsa_ax25;
+ ax25_address fsa_digipeater[AX25_MAX_DIGIS];
+ };
+#define sax25_uid sax25_ndigis
+
+struct ax25_routes_struct
+ {
+ ax25_address port_addr;
+ ax25_address dest_addr;
+ unsigned char digi_count;
+ ax25_address digi_addr[AX25_MAX_DIGIS];
+ };
+
+/* The AX.25 ioctl structure: */
+struct ax25_ctl_struct
+ {
+ ax25_address port_addr;
+ ax25_address source_addr;
+ ax25_address dest_addr;
+ unsigned int cmd;
+ unsigned long arg;
+ unsigned char digi_count;
+ ax25_address digi_addr[AX25_MAX_DIGIS];
+ };
+
+struct ax25_info_struct
+ {
+ unsigned int n2, n2count;
+ unsigned int t1, t1timer;
+ unsigned int t2, t2timer;
+ unsigned int t3, t3timer;
+ unsigned int idle, idletimer;
+ unsigned int state;
+ unsigned int rcv_q, snd_q;
+ };
+
+struct ax25_fwd_struct
+ {
+ ax25_address port_from;
+ ax25_address port_to;
+ };
+
+/* AX.25 route structure: */
+struct ax25_route_opt_struct
+ {
+ ax25_address port_addr;
+ ax25_address dest_addr;
+ int cmd;
+ int arg;
+ };
+
+/* AX.25 BPQ stuff: */
+struct ax25_bpqaddr_struct
+ {
+ char dev[16];
+ ax25_address addr;
+ };
+
+/* Definitions for the AX.25 `values' fields: */
+#define AX25_VALUES_IPDEFMODE 0 /* 'D'=DG 'V'=VC */
+#define AX25_VALUES_AXDEFMODE 1 /* 8=Normal 128=Extended Seq Nos */
+#define AX25_VALUES_NETROM 2 /* Allow NET/ROM - 0=No 1=Yes */
+#define AX25_VALUES_TEXT 3 /* Allow PID=Text - 0=No 1=Yes */
+#define AX25_VALUES_BACKOFF 4 /* 'E'=Exponential 'L'=Linear */
+#define AX25_VALUES_CONMODE 5 /* Allow connected modes - 0=No 1=Yes */
+#define AX25_VALUES_WINDOW 6 /* Default window size for standard AX.25 */
+#define AX25_VALUES_EWINDOW 7 /* Default window size for extended AX.25 */
+#define AX25_VALUES_T1 8 /* Default T1 timeout value */
+#define AX25_VALUES_T2 9 /* Default T2 timeout value */
+#define AX25_VALUES_T3 10 /* Default T3 timeout value */
+#define AX25_VALUES_N2 11 /* Default N2 value */
+#define AX25_VALUES_DIGI 12 /* Digipeat mode */
+#define AX25_VALUES_IDLE 13 /* mode vc idle timer */
+#define AX25_VALUES_PACLEN 14 /* AX.25 MTU */
+#define AX25_VALUES_IPMAXQUEUE 15 /* Maximum number of buffers enqueued */
+#define AX25_MAX_VALUES 20
+
+struct ax25_parms_struct
+ {
+ ax25_address port_addr;
+ unsigned short values[AX25_MAX_VALUES];
+ };
+
+#endif /* netax25/ax25.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/neteconet/ec.h b/REORG.TODO/sysdeps/unix/sysv/linux/neteconet/ec.h
new file mode 100644
index 0000000000..d1bc5638d6
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/neteconet/ec.h
@@ -0,0 +1,51 @@
+/* Definitions for use with Linux AF_ECONET sockets.
+ Copyright (C) 1998-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _NETECONET_EC_H
+#define _NETECONET_EC_H 1
+
+#include <features.h>
+#include <bits/sockaddr.h>
+
+struct ec_addr
+ {
+ unsigned char station; /* Station number. */
+ unsigned char net; /* Network number. */
+ };
+
+struct sockaddr_ec
+ {
+ __SOCKADDR_COMMON (sec_);
+ unsigned char port; /* Port number. */
+ unsigned char cb; /* Control/flag byte. */
+ unsigned char type; /* Type of message. */
+ struct ec_addr addr;
+ unsigned long cookie;
+ };
+
+#define ECTYPE_PACKET_RECEIVED 0 /* Packet received */
+#define ECTYPE_TRANSMIT_STATUS 0x10 /* Transmit completed */
+
+#define ECTYPE_TRANSMIT_OK 1
+#define ECTYPE_TRANSMIT_NOT_LISTENING 2
+#define ECTYPE_TRANSMIT_NET_ERROR 3
+#define ECTYPE_TRANSMIT_NO_CLOCK 4
+#define ECTYPE_TRANSMIT_LINE_JAMMED 5
+#define ECTYPE_TRANSMIT_NOT_PRESENT 6
+
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/netinet/if_ether.h b/REORG.TODO/sysdeps/unix/sysv/linux/netinet/if_ether.h
new file mode 100644
index 0000000000..9977903a50
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/netinet/if_ether.h
@@ -0,0 +1,104 @@
+/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef __NETINET_IF_ETHER_H
+
+#define __NETINET_IF_ETHER_H 1
+#include <features.h>
+#include <sys/types.h>
+
+/* Get definitions from kernel header file. */
+#include <linux/if_ether.h>
+
+#ifdef __USE_MISC
+/*
+ * Copyright (c) 1982, 1986, 1993
+ * The Regents of the University of California. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 4. Neither the name of the University nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ * @(#)if_ether.h 8.3 (Berkeley) 5/2/95
+ * $FreeBSD$
+ */
+
+#include <net/ethernet.h>
+#include <net/if_arp.h>
+
+__BEGIN_DECLS
+/*
+ * Ethernet Address Resolution Protocol.
+ *
+ * See RFC 826 for protocol description. Structure below is adapted
+ * to resolving internet addresses. Field names used correspond to
+ * RFC 826.
+ */
+struct ether_arp {
+ struct arphdr ea_hdr; /* fixed-size header */
+ uint8_t arp_sha[ETH_ALEN]; /* sender hardware address */
+ uint8_t arp_spa[4]; /* sender protocol address */
+ uint8_t arp_tha[ETH_ALEN]; /* target hardware address */
+ uint8_t arp_tpa[4]; /* target protocol address */
+};
+#define arp_hrd ea_hdr.ar_hrd
+#define arp_pro ea_hdr.ar_pro
+#define arp_hln ea_hdr.ar_hln
+#define arp_pln ea_hdr.ar_pln
+#define arp_op ea_hdr.ar_op
+
+/*
+ * Macro to map an IP multicast address to an Ethernet multicast address.
+ * The high-order 25 bits of the Ethernet address are statically assigned,
+ * and the low-order 23 bits are taken from the low end of the IP address.
+ */
+#define ETHER_MAP_IP_MULTICAST(ipaddr, enaddr) \
+ /* struct in_addr *ipaddr; */ \
+ /* uint8_t enaddr[ETH_ALEN]; */ \
+{ \
+ (enaddr)[0] = 0x01; \
+ (enaddr)[1] = 0x00; \
+ (enaddr)[2] = 0x5e; \
+ (enaddr)[3] = ((uint8_t *)ipaddr)[1] & 0x7f; \
+ (enaddr)[4] = ((uint8_t *)ipaddr)[2]; \
+ (enaddr)[5] = ((uint8_t *)ipaddr)[3]; \
+}
+
+__END_DECLS
+#endif /* __USE_MISC */
+
+#endif /* netinet/if_ether.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/netinet/if_fddi.h b/REORG.TODO/sysdeps/unix/sysv/linux/netinet/if_fddi.h
new file mode 100644
index 0000000000..af0c8e76a9
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/netinet/if_fddi.h
@@ -0,0 +1,34 @@
+/* Copyright (C) 1997-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _NETINET_IF_FDDI_H
+#define _NETINET_IF_FDDI_H 1
+
+#include <sys/types.h>
+#include <stdint.h>
+#include <linux/if_fddi.h>
+
+#ifdef __USE_MISC
+
+struct fddi_header {
+ uint8_t fddi_fc; /* Frame Control (FC) value */
+ uint8_t fddi_dhost[FDDI_K_ALEN]; /* Destination host */
+ uint8_t fddi_shost[FDDI_K_ALEN]; /* Source host */
+};
+#endif
+
+#endif /* netinet/if_fddi.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/netinet/if_tr.h b/REORG.TODO/sysdeps/unix/sysv/linux/netinet/if_tr.h
new file mode 100644
index 0000000000..779a510b4b
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/netinet/if_tr.h
@@ -0,0 +1,110 @@
+/* Copyright (C) 1997-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _NETINET_IF_TR_H
+#define _NETINET_IF_TR_H 1
+
+#include <sys/types.h>
+#include <stdint.h>
+
+/* IEEE 802.5 Token-Ring magic constants. The frame sizes omit the preamble
+ and FCS/CRC (frame check sequence). */
+#define TR_ALEN 6 /* Octets in one token-ring addr */
+#define TR_HLEN (sizeof (struct trh_hdr) + sizeof (struct trllc))
+#define AC 0x10
+#define LLC_FRAME 0x40
+
+/* LLC and SNAP constants */
+#define EXTENDED_SAP 0xAA
+#define UI_CMD 0x03
+
+/* This is an Token-Ring frame header. */
+struct trh_hdr
+{
+ uint8_t ac; /* access control field */
+ uint8_t fc; /* frame control field */
+ uint8_t daddr[TR_ALEN]; /* destination address */
+ uint8_t saddr[TR_ALEN]; /* source address */
+ uint16_t rcf; /* route control field */
+ uint16_t rseg[8]; /* routing registers */
+};
+
+/* This is an Token-Ring LLC structure */
+struct trllc
+{
+ uint8_t dsap; /* destination SAP */
+ uint8_t ssap; /* source SAP */
+ uint8_t llc; /* LLC control field */
+ uint8_t protid[3]; /* protocol id */
+ uint16_t ethertype; /* ether type field */
+};
+
+/* Token-Ring statistics collection data. */
+struct tr_statistics
+{
+ unsigned long rx_packets; /* total packets received */
+ unsigned long tx_packets; /* total packets transmitted */
+ unsigned long rx_bytes; /* total bytes received */
+ unsigned long tx_bytes; /* total bytes transmitted */
+ unsigned long rx_errors; /* bad packets received */
+ unsigned long tx_errors; /* packet transmit problems */
+ unsigned long rx_dropped; /* no space in linux buffers */
+ unsigned long tx_dropped; /* no space available in linux */
+ unsigned long multicast; /* multicast packets received */
+ unsigned long transmit_collision;
+
+ /* detailed Token-Ring errors. See IBM Token-Ring Network
+ Architecture for more info */
+
+ unsigned long line_errors;
+ unsigned long internal_errors;
+ unsigned long burst_errors;
+ unsigned long A_C_errors;
+ unsigned long abort_delimiters;
+ unsigned long lost_frames;
+ unsigned long recv_congest_count;
+ unsigned long frame_copied_errors;
+ unsigned long frequency_errors;
+ unsigned long token_errors;
+ unsigned long dummy1;
+};
+
+/* source routing stuff */
+#define TR_RII 0x80
+#define TR_RCF_DIR_BIT 0x80
+#define TR_RCF_LEN_MASK 0x1f00
+#define TR_RCF_BROADCAST 0x8000 /* all-routes broadcast */
+#define TR_RCF_LIMITED_BROADCAST 0xC000 /* single-route broadcast */
+#define TR_RCF_FRAME2K 0x20
+#define TR_RCF_BROADCAST_MASK 0xC000
+#define TR_MAXRIFLEN 18
+
+#ifdef __USE_MISC
+
+struct trn_hdr
+{
+ uint8_t trn_ac; /* access control field */
+ uint8_t trn_fc; /* field control field */
+ uint8_t trn_dhost[TR_ALEN]; /* destination host */
+ uint8_t trn_shost[TR_ALEN]; /* source host */
+ uint16_t trn_rcf; /* route control field */
+ uint16_t trn_rseg[8]; /* routing registers */
+};
+
+#endif
+
+#endif /* netinet/if_tr.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/netipx/ipx.h b/REORG.TODO/sysdeps/unix/sysv/linux/netipx/ipx.h
new file mode 100644
index 0000000000..f5a91c5398
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/netipx/ipx.h
@@ -0,0 +1,111 @@
+/* Copyright (C) 1991-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef __NETIPX_IPX_H
+#define __NETIPX_IPX_H 1
+
+#include <sys/types.h>
+#include <stdint.h>
+#include <bits/sockaddr.h>
+
+__BEGIN_DECLS
+
+#define SOL_IPX 256 /* sockopt level */
+
+#define IPX_TYPE 1
+#define IPX_NODE_LEN 6
+#define IPX_MTU 576
+
+struct sockaddr_ipx
+ {
+ sa_family_t sipx_family;
+ uint16_t sipx_port;
+ uint32_t sipx_network;
+ unsigned char sipx_node[IPX_NODE_LEN];
+ uint8_t sipx_type;
+ unsigned char sipx_zero; /* 16 byte fill */
+ };
+
+/*
+ * So we can fit the extra info for SIOCSIFADDR into the address nicely
+ */
+
+#define sipx_special sipx_port
+#define sipx_action sipx_zero
+#define IPX_DLTITF 0
+#define IPX_CRTITF 1
+
+typedef struct ipx_route_definition
+ {
+ unsigned long ipx_network;
+ unsigned long ipx_router_network;
+ unsigned char ipx_router_node[IPX_NODE_LEN];
+ }
+ipx_route_definition;
+
+typedef struct ipx_interface_definition
+ {
+ unsigned long ipx_network;
+ unsigned char ipx_device[16];
+ unsigned char ipx_dlink_type;
+#define IPX_FRAME_NONE 0
+#define IPX_FRAME_SNAP 1
+#define IPX_FRAME_8022 2
+#define IPX_FRAME_ETHERII 3
+#define IPX_FRAME_8023 4
+#define IPX_FRAME_TR_8022 5
+ unsigned char ipx_special;
+#define IPX_SPECIAL_NONE 0
+#define IPX_PRIMARY 1
+#define IPX_INTERNAL 2
+ unsigned char ipx_node[IPX_NODE_LEN];
+ }
+ipx_interface_definition;
+
+typedef struct ipx_config_data
+ {
+ unsigned char ipxcfg_auto_select_primary;
+ unsigned char ipxcfg_auto_create_interfaces;
+ }
+ipx_config_data;
+
+/*
+ * OLD Route Definition for backward compatibility.
+ */
+
+struct ipx_route_def
+ {
+ unsigned long ipx_network;
+ unsigned long ipx_router_network;
+#define IPX_ROUTE_NO_ROUTER 0
+ unsigned char ipx_router_node[IPX_NODE_LEN];
+ unsigned char ipx_device[16];
+ unsigned short ipx_flags;
+#define IPX_RT_SNAP 8
+#define IPX_RT_8022 4
+#define IPX_RT_BLUEBOOK 2
+#define IPX_RT_ROUTED 1
+ };
+
+#define SIOCAIPXITFCRT (SIOCPROTOPRIVATE)
+#define SIOCAIPXPRISLT (SIOCPROTOPRIVATE + 1)
+#define SIOCIPXCFGDATA (SIOCPROTOPRIVATE + 2)
+#define SIOCIPXNCPCONN (SIOCPROTOPRIVATE + 3)
+
+__END_DECLS
+
+#endif /* netipx/ipx.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/netiucv/iucv.h b/REORG.TODO/sysdeps/unix/sysv/linux/netiucv/iucv.h
new file mode 100644
index 0000000000..4f80258dff
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/netiucv/iucv.h
@@ -0,0 +1,48 @@
+/* Copyright (C) 2007-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef __NETIUCV_IUCV_H
+#define __NETIUCV_IUCV_H 1
+
+#include <features.h>
+#include <bits/sockaddr.h>
+
+__BEGIN_DECLS
+
+struct sockaddr_iucv
+ {
+ __SOCKADDR_COMMON (siucv_);
+ unsigned short siucv_port; /* Reserved */
+ unsigned int siucv_addr; /* Reserved */
+ char siucv_nodeid[8]; /* Reserved */
+ char siucv_user_id[8]; /* Guest User Id */
+ char siucv_name[8]; /* Application Name */
+ };
+
+__END_DECLS
+
+#define SOL_IUCV 277 /* IUCV level */
+
+/* IUCV socket options (SOL_IUCV) */
+#define SO_IPRMDATA_MSG 0x0080 /* Send/recv IPRM_DATA msgs */
+#define SO_MSGLIMIT 0x1000 /* Get/set IUCV MSGLIMIT */
+#define SO_MSGSIZE 0x0800 /* Get maximum msgsize */
+
+/* IUCV related control messages (scm) */
+#define SCM_IUCV_TRGCLS 0x0001 /* Target class control message */
+
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/netlink_assert_response.c b/REORG.TODO/sysdeps/unix/sysv/linux/netlink_assert_response.c
new file mode 100644
index 0000000000..d60eb1515e
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/netlink_assert_response.c
@@ -0,0 +1,106 @@
+/* Check recvmsg results for netlink sockets.
+ Copyright (C) 2015-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <fcntl.h>
+#include <stdio.h>
+#include <sys/socket.h>
+
+#include "netlinkaccess.h"
+
+static int
+get_address_family (int fd)
+{
+ struct sockaddr_storage sa;
+ socklen_t sa_len = sizeof (sa);
+ if (__getsockname (fd, (struct sockaddr *) &sa, &sa_len) < 0)
+ return -1;
+ /* Check that the socket family number is preserved despite in-band
+ signaling. */
+ _Static_assert (sizeof (sa.ss_family) < sizeof (int), "address family size");
+ _Static_assert (0 < (__typeof__ (sa.ss_family)) -1,
+ "address family unsigned");
+ return sa.ss_family;
+}
+
+void
+internal_function
+__netlink_assert_response (int fd, ssize_t result)
+{
+ if (result < 0)
+ {
+ /* Check if the error is unexpected. */
+ bool terminate = false;
+ int error_code = errno;
+ int family = get_address_family (fd);
+ if (family != AF_NETLINK)
+ /* If the address family does not match (or getsockname
+ failed), report the original error. */
+ terminate = true;
+ else if (error_code == EBADF
+ || error_code == ENOTCONN
+ || error_code == ENOTSOCK
+ || error_code == ECONNREFUSED)
+ /* These errors indicate that the descriptor is not a
+ connected socket. */
+ terminate = true;
+ else if (error_code == EAGAIN || error_code == EWOULDBLOCK)
+ {
+ /* The kernel might return EAGAIN for other reasons than a
+ non-blocking socket. But if the socket is not blocking,
+ it is not ours, so report the error. */
+ int mode = __fcntl (fd, F_GETFL, 0);
+ if (mode < 0 || (mode & O_NONBLOCK) != 0)
+ terminate = true;
+ }
+ if (terminate)
+ {
+ char message[200];
+ if (family < 0)
+ __snprintf (message, sizeof (message),
+ "Unexpected error %d on netlink descriptor %d",
+ error_code, fd);
+ else
+ __snprintf (message, sizeof (message),
+ "Unexpected error %d on netlink descriptor %d"
+ " (address family %d)",
+ error_code, fd, family);
+ __libc_fatal (message);
+ }
+ else
+ /* Restore orignal errno value. */
+ __set_errno (error_code);
+ }
+ else if (result < sizeof (struct nlmsghdr))
+ {
+ char message[200];
+ int family = get_address_family (fd);
+ if (family < 0)
+ __snprintf (message, sizeof (message),
+ "Unexpected netlink response of size %zd"
+ " on descriptor %d",
+ result, fd);
+ else
+ __snprintf (message, sizeof (message),
+ "Unexpected netlink response of size %zd"
+ " on descriptor %d (address family %d)",
+ result, fd, family);
+ __libc_fatal (message);
+ }
+}
+libc_hidden_def (__netlink_assert_response)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/netlinkaccess.h b/REORG.TODO/sysdeps/unix/sysv/linux/netlinkaccess.h
new file mode 100644
index 0000000000..6cffb65b14
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/netlinkaccess.h
@@ -0,0 +1,58 @@
+/* Copyright (C) 2004-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _NETLINKACCESS_H
+#define _NETLINKACCESS_H 1
+
+#include <stdint.h>
+#include <sys/types.h>
+#include <asm/types.h>
+#include <linux/netlink.h>
+#include <linux/rtnetlink.h>
+
+
+struct netlink_res
+{
+ struct netlink_res *next;
+ struct nlmsghdr *nlh;
+ size_t size; /* Size of response. */
+ uint32_t seq; /* sequential number we used. */
+};
+
+
+struct netlink_handle
+{
+ int fd; /* Netlink file descriptor. */
+ pid_t pid; /* Process ID. */
+ uint32_t seq; /* The sequence number we use currently. */
+ struct netlink_res *nlm_list; /* Pointer to list of responses. */
+ struct netlink_res *end_ptr; /* For faster append of new entries. */
+};
+
+
+extern int __netlink_open (struct netlink_handle *h);
+extern void __netlink_close (struct netlink_handle *h);
+extern void __netlink_free_handle (struct netlink_handle *h);
+extern int __netlink_request (struct netlink_handle *h, int type);
+
+/* Terminate the process if RESULT is an invalid recvmsg result for
+ the netlink socket FD. */
+void __netlink_assert_response (int fd, ssize_t result)
+ internal_function;
+libc_hidden_proto (__netlink_assert_response)
+
+#endif /* netlinkaccess.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/netpacket/packet.h b/REORG.TODO/sysdeps/unix/sysv/linux/netpacket/packet.h
new file mode 100644
index 0000000000..1761af1478
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/netpacket/packet.h
@@ -0,0 +1,80 @@
+/* Definitions for use with Linux AF_PACKET sockets.
+ Copyright (C) 1998-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef __NETPACKET_PACKET_H
+#define __NETPACKET_PACKET_H 1
+
+struct sockaddr_ll
+ {
+ unsigned short int sll_family;
+ unsigned short int sll_protocol;
+ int sll_ifindex;
+ unsigned short int sll_hatype;
+ unsigned char sll_pkttype;
+ unsigned char sll_halen;
+ unsigned char sll_addr[8];
+ };
+
+/* Packet types. */
+
+#define PACKET_HOST 0 /* To us. */
+#define PACKET_BROADCAST 1 /* To all. */
+#define PACKET_MULTICAST 2 /* To group. */
+#define PACKET_OTHERHOST 3 /* To someone else. */
+#define PACKET_OUTGOING 4 /* Originated by us . */
+#define PACKET_LOOPBACK 5
+#define PACKET_FASTROUTE 6
+
+/* Packet socket options. */
+
+#define PACKET_ADD_MEMBERSHIP 1
+#define PACKET_DROP_MEMBERSHIP 2
+#define PACKET_RECV_OUTPUT 3
+#define PACKET_RX_RING 5
+#define PACKET_STATISTICS 6
+#define PACKET_COPY_THRESH 7
+#define PACKET_AUXDATA 8
+#define PACKET_ORIGDEV 9
+#define PACKET_VERSION 10
+#define PACKET_HDRLEN 11
+#define PACKET_RESERVE 12
+#define PACKET_TX_RING 13
+#define PACKET_LOSS 14
+#define PACKET_VNET_HDR 15
+#define PACKET_TX_TIMESTAMP 16
+#define PACKET_TIMESTAMP 17
+#define PACKET_FANOUT 18
+#define PACKET_TX_HAS_OFF 19
+#define PACKET_QDISC_BYPASS 20
+#define PACKET_ROLLOVER_STATS 21
+#define PACKET_FANOUT_DATA 22
+
+struct packet_mreq
+ {
+ int mr_ifindex;
+ unsigned short int mr_type;
+ unsigned short int mr_alen;
+ unsigned char mr_address[8];
+ };
+
+#define PACKET_MR_MULTICAST 0
+#define PACKET_MR_PROMISC 1
+#define PACKET_MR_ALLMULTI 2
+#define PACKET_MR_UNICAST 3
+
+#endif /* netpacket/packet.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/netrom/netrom.h b/REORG.TODO/sysdeps/unix/sysv/linux/netrom/netrom.h
new file mode 100644
index 0000000000..5ed25cdd98
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/netrom/netrom.h
@@ -0,0 +1,83 @@
+/* Copyright (C) 1997-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _NETROM_NETROM_H
+#define _NETROM_NETROM_H 1
+
+#include <netax25/ax25.h>
+
+/* Setsockoptions(2) level. Thanks to BSD these must match IPPROTO_xxx. */
+#define SOL_NETROM 259
+
+/* NetRom control values: */
+#define NETROM_T1 1
+#define NETROM_T2 2
+#define NETROM_N2 3
+#define NETROM_PACLEN 5
+#define NETROM_T4 6
+#define NETROM_IDLE 7
+
+#define NETROM_KILL 99
+
+/* Type of route: */
+#define NETROM_NEIGH 0
+#define NETROM_NODE 1
+
+struct nr_route_struct
+ {
+ int type;
+ ax25_address callsign;
+ char device[16];
+ unsigned int quality;
+ char mnemonic[7];
+ ax25_address neighbour;
+ unsigned int obs_count;
+ unsigned int ndigis;
+ ax25_address digipeaters[AX25_MAX_DIGIS];
+ };
+
+/* NetRom socket ioctls: */
+#define SIOCNRGETPARMS (SIOCPROTOPRIVATE+0)
+#define SIOCNRSETPARMS (SIOCPROTOPRIVATE+1)
+#define SIOCNRDECOBS (SIOCPROTOPRIVATE+2)
+#define SIOCNRRTCTL (SIOCPROTOPRIVATE+3)
+#define SIOCNRCTLCON (SIOCPROTOPRIVATE+4)
+
+/* NetRom parameter structure: */
+struct nr_parms_struct
+ {
+ unsigned int quality;
+ unsigned int obs_count;
+ unsigned int ttl;
+ unsigned int timeout;
+ unsigned int ack_delay;
+ unsigned int busy_delay;
+ unsigned int tries;
+ unsigned int window;
+ unsigned int paclen;
+ };
+
+/* NetRom control structure: */
+struct nr_ctl_struct
+ {
+ unsigned char index;
+ unsigned char id;
+ unsigned int cmd;
+ unsigned long arg;
+ };
+
+#endif /* netrom/netrom.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/netrose/rose.h b/REORG.TODO/sysdeps/unix/sysv/linux/netrose/rose.h
new file mode 100644
index 0000000000..c16803bbfb
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/netrose/rose.h
@@ -0,0 +1,118 @@
+/* Definitions for Rose packet radio address family.
+ Copyright (C) 1998-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+/* What follows is copied from the 2.1.93 <linux/rose.h>. */
+
+#ifndef _NETROSE_ROSE_H
+#define _NETROSE_ROSE_H 1
+
+#include <sys/socket.h>
+#include <netax25/ax25.h>
+
+/* Socket level values. */
+#define SOL_ROSE 260
+
+
+/* These are the public elements of the Linux kernel Rose
+ implementation. For kernel AX.25 see the file ax25.h. This file
+ requires ax25.h for the definition of the ax25_address structure. */
+#define ROSE_MTU 251
+
+#define ROSE_MAX_DIGIS 6
+
+#define ROSE_DEFER 1
+#define ROSE_T1 2
+#define ROSE_T2 3
+#define ROSE_T3 4
+#define ROSE_IDLE 5
+#define ROSE_QBITINCL 6
+#define ROSE_HOLDBACK 7
+
+#define SIOCRSGCAUSE (SIOCPROTOPRIVATE + 0)
+#define SIOCRSSCAUSE (SIOCPROTOPRIVATE + 1)
+#define SIOCRSL2CALL (SIOCPROTOPRIVATE + 2)
+#define SIOCRSSL2CALL (SIOCPROTOPRIVATE + 2)
+#define SIOCRSACCEPT (SIOCPROTOPRIVATE + 3)
+#define SIOCRSCLRRT (SIOCPROTOPRIVATE + 4)
+#define SIOCRSGL2CALL (SIOCPROTOPRIVATE + 5)
+#define SIOCRSGFACILITIES (SIOCPROTOPRIVATE + 6)
+
+#define ROSE_DTE_ORIGINATED 0x00
+#define ROSE_NUMBER_BUSY 0x01
+#define ROSE_INVALID_FACILITY 0x03
+#define ROSE_NETWORK_CONGESTION 0x05
+#define ROSE_OUT_OF_ORDER 0x09
+#define ROSE_ACCESS_BARRED 0x0B
+#define ROSE_NOT_OBTAINABLE 0x0D
+#define ROSE_REMOTE_PROCEDURE 0x11
+#define ROSE_LOCAL_PROCEDURE 0x13
+#define ROSE_SHIP_ABSENT 0x39
+
+
+typedef struct
+{
+ char rose_addr[5];
+} rose_address;
+
+struct sockaddr_rose
+{
+ sa_family_t srose_family;
+ rose_address srose_addr;
+ ax25_address srose_call;
+ int srose_ndigis;
+ ax25_address srose_digi;
+};
+
+struct full_sockaddr_rose
+{
+ sa_family_t srose_family;
+ rose_address srose_addr;
+ ax25_address srose_call;
+ unsigned int srose_ndigis;
+ ax25_address srose_digis[ROSE_MAX_DIGIS];
+};
+
+struct rose_route_struct
+{
+ rose_address address;
+ unsigned short int mask;
+ ax25_address neighbour;
+ char device[16];
+ unsigned char ndigis;
+ ax25_address digipeaters[AX25_MAX_DIGIS];
+};
+
+struct rose_cause_struct
+{
+ unsigned char cause;
+ unsigned char diagnostic;
+};
+
+struct rose_facilities_struct
+{
+ rose_address source_addr, dest_addr;
+ ax25_address source_call, dest_call;
+ unsigned char source_ndigis, dest_ndigis;
+ ax25_address source_digis[ROSE_MAX_DIGIS];
+ ax25_address dest_digis[ROSE_MAX_DIGIS];
+ unsigned int rand;
+ rose_address fail_addr;
+ ax25_address fail_call;
+};
+
+#endif /* netrose/rose.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/nfs/nfs.h b/REORG.TODO/sysdeps/unix/sysv/linux/nfs/nfs.h
new file mode 100644
index 0000000000..61e4b656d7
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/nfs/nfs.h
@@ -0,0 +1 @@
+#include <linux/nfs.h>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/nice.c b/REORG.TODO/sysdeps/unix/sysv/linux/nice.c
new file mode 100644
index 0000000000..3bcbb1e89a
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/nice.c
@@ -0,0 +1 @@
+#include <sysdeps/posix/nice.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/nios2/Implies b/REORG.TODO/sysdeps/unix/sysv/linux/nios2/Implies
new file mode 100644
index 0000000000..4d0478bf8f
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/nios2/Implies
@@ -0,0 +1,3 @@
+nios2/nptl
+unix/sysv/linux/generic/wordsize-32
+unix/sysv/linux/generic
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/nios2/Makefile b/REORG.TODO/sysdeps/unix/sysv/linux/nios2/Makefile
new file mode 100644
index 0000000000..d0af9ec559
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/nios2/Makefile
@@ -0,0 +1,13 @@
+ifeq ($(subdir),stdlib)
+gen-as-const-headers += ucontext_i.sym
+endif
+
+ifeq ($(subdir),misc)
+# MIPS/Tile-style cacheflush routine
+sysdep_headers += sys/cachectl.h
+sysdep_routines += cacheflush
+endif
+
+ifeq ($(subdir),nptl)
+libpthread-routines := $(filter-out pt-vfork,$(libpthread-routines))
+endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/nios2/Versions b/REORG.TODO/sysdeps/unix/sysv/linux/nios2/Versions
new file mode 100644
index 0000000000..e42c85f575
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/nios2/Versions
@@ -0,0 +1,6 @@
+libc {
+ GLIBC_2.21 {
+ _flush_cache;
+ cacheflush;
+ }
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/nios2/arch-fork.h b/REORG.TODO/sysdeps/unix/sysv/linux/nios2/arch-fork.h
new file mode 100644
index 0000000000..a93cf4232f
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/nios2/arch-fork.h
@@ -0,0 +1,33 @@
+/* ARCH_FORK definition for Linux fork implementation. Nios II version.
+ Copyright (C) 2005-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sched.h>
+#include <signal.h>
+#include <sysdep.h>
+#include <tls.h>
+
+/* Argument 1 - Clone flags.
+ 2 - Child stack pointer.
+ 3 - Parent tid pointer.
+ 4 - Child tid pointer.
+ 5 - New TLS area pointer. */
+
+#define ARCH_FORK() \
+ INLINE_SYSCALL (clone, 5, \
+ CLONE_CHILD_SETTID | CLONE_CHILD_CLEARTID | SIGCHLD, \
+ NULL, NULL, &THREAD_SELF->tid, NULL)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/nios2/atomic-machine.h b/REORG.TODO/sysdeps/unix/sysv/linux/nios2/atomic-machine.h
new file mode 100644
index 0000000000..d4dd025603
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/nios2/atomic-machine.h
@@ -0,0 +1,95 @@
+/* Low-level functions for atomic operations. Nios II version.
+ Copyright (C) 2012-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _NIOS2_ATOMIC_MACHINE_H
+#define _NIOS2_ATOMIC_MACHINE_H 1
+
+#include <stdint.h>
+
+typedef int32_t atomic32_t;
+typedef uint32_t uatomic32_t;
+typedef int_fast32_t atomic_fast32_t;
+typedef uint_fast32_t uatomic_fast32_t;
+
+typedef intptr_t atomicptr_t;
+typedef uintptr_t uatomicptr_t;
+typedef intmax_t atomic_max_t;
+typedef uintmax_t uatomic_max_t;
+
+#define __HAVE_64B_ATOMICS 0
+#define USE_ATOMIC_COMPILER_BUILTINS 0
+
+/* XXX Is this actually correct? */
+#define ATOMIC_EXCHANGE_USES_CAS 1
+
+#define __arch_compare_and_exchange_val_8_acq(mem, newval, oldval) \
+ (abort (), (__typeof (*mem)) 0)
+#define __arch_compare_and_exchange_val_16_acq(mem, newval, oldval) \
+ (abort (), (__typeof (*mem)) 0)
+#define __arch_compare_and_exchange_val_64_acq(mem, newval, oldval) \
+ (abort (), (__typeof (*mem)) 0)
+
+#define __arch_compare_and_exchange_bool_8_acq(mem, newval, oldval) \
+ (abort (), 0)
+#define __arch_compare_and_exchange_bool_16_acq(mem, newval, oldval) \
+ (abort (), 0)
+#define __arch_compare_and_exchange_bool_64_acq(mem, newval, oldval) \
+ (abort (), 0)
+
+#define __arch_compare_and_exchange_val_32_acq(mem, newval, oldval) \
+ ({ \
+ register int r2 asm ("r2"); \
+ register int* r4 asm ("r4") = (int*)(mem); \
+ register int r5 asm ("r5"); \
+ register int r6 asm ("r6") = (int)(newval); \
+ int retval, orig_oldval = (int)(oldval); \
+ long kernel_cmpxchg = 0x1004; \
+ while (1) \
+ { \
+ r5 = *r4; \
+ if (r5 != orig_oldval) \
+ { \
+ retval = r5; \
+ break; \
+ } \
+ asm volatile ("callr %1\n" \
+ : "=r" (r2) \
+ : "r" (kernel_cmpxchg), "r" (r4), "r" (r5), "r" (r6) \
+ : "ra", "memory"); \
+ if (!r2) { retval = orig_oldval; break; } \
+ } \
+ (__typeof (*(mem))) retval; \
+ })
+
+#define __arch_compare_and_exchange_bool_32_acq(mem, newval, oldval) \
+ ({ \
+ register int r2 asm ("r2"); \
+ register int *r4 asm ("r4") = (int*)(mem); \
+ register int r5 asm ("r5") = (int)(oldval); \
+ register int r6 asm ("r6") = (int)(newval); \
+ long kernel_cmpxchg = 0x1004; \
+ asm volatile ("callr %1\n" \
+ : "=r" (r2) \
+ : "r" (kernel_cmpxchg), "r" (r4), "r" (r5), "r" (r6) \
+ : "ra", "memory"); \
+ r2; \
+ })
+
+#define atomic_full_barrier() ({ asm volatile ("sync"); })
+
+#endif /* _NIOS2_ATOMIC_MACHINE_H */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/nios2/bits/mman.h b/REORG.TODO/sysdeps/unix/sysv/linux/nios2/bits/mman.h
new file mode 100644
index 0000000000..dc90da1187
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/nios2/bits/mman.h
@@ -0,0 +1,42 @@
+/* Definitions for POSIX memory map interface. Linux/Nios II version.
+
+ Copyright (C) 1997-2017 Free Software Foundation, Inc.
+
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_MMAN_H
+# error "Never use <bits/mman.h> directly; include <sys/mman.h> instead."
+#endif
+
+/* The following definitions basically come from the kernel headers.
+ But the kernel header is not namespace clean. */
+
+/* These are Linux-specific. */
+#ifdef __USE_MISC
+# define MAP_GROWSDOWN 0x00100 /* Stack-like segment. */
+# define MAP_DENYWRITE 0x00800 /* ETXTBSY */
+# define MAP_EXECUTABLE 0x01000 /* Mark it as an executable. */
+# define MAP_LOCKED 0x02000 /* Lock the mapping. */
+# define MAP_NORESERVE 0x04000 /* Don't check for reservations. */
+# define MAP_POPULATE 0x08000 /* Populate (prefault) pagetables. */
+# define MAP_NONBLOCK 0x10000 /* Do not block on IO. */
+# define MAP_STACK 0x20000 /* Allocation is for a stack. */
+# define MAP_HUGETLB 0x40000 /* Create huge page mapping. */
+#endif
+
+/* Include generic Linux declarations. */
+#include <bits/mman-linux.h>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/nios2/c++-types.data b/REORG.TODO/sysdeps/unix/sysv/linux/nios2/c++-types.data
new file mode 100644
index 0000000000..303f4570c8
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/nios2/c++-types.data
@@ -0,0 +1,67 @@
+blkcnt64_t:x
+blkcnt_t:l
+blksize_t:i
+caddr_t:Pc
+clockid_t:i
+clock_t:l
+daddr_t:i
+dev_t:y
+fd_mask:l
+fsblkcnt64_t:y
+fsblkcnt_t:m
+fsfilcnt64_t:y
+fsfilcnt_t:m
+fsid_t:8__fsid_t
+gid_t:j
+id_t:j
+ino64_t:y
+ino_t:m
+int16_t:s
+int32_t:i
+int64_t:x
+int8_t:a
+intptr_t:i
+key_t:i
+loff_t:x
+mode_t:j
+nlink_t:j
+off64_t:x
+off_t:l
+pid_t:i
+pthread_attr_t:14pthread_attr_t
+pthread_barrier_t:17pthread_barrier_t
+pthread_barrierattr_t:21pthread_barrierattr_t
+pthread_cond_t:14pthread_cond_t
+pthread_condattr_t:18pthread_condattr_t
+pthread_key_t:j
+pthread_mutex_t:15pthread_mutex_t
+pthread_mutexattr_t:19pthread_mutexattr_t
+pthread_once_t:i
+pthread_rwlock_t:16pthread_rwlock_t
+pthread_rwlockattr_t:20pthread_rwlockattr_t
+pthread_spinlock_t:i
+pthread_t:m
+quad_t:x
+register_t:i
+rlim64_t:y
+rlim_t:m
+sigset_t:10__sigset_t
+size_t:j
+socklen_t:j
+ssize_t:i
+suseconds_t:l
+time_t:l
+u_char:h
+uid_t:j
+uint:j
+u_int:j
+u_int16_t:t
+u_int32_t:j
+u_int64_t:y
+u_int8_t:h
+ulong:m
+u_long:m
+u_quad_t:y
+useconds_t:j
+ushort:t
+u_short:t
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/nios2/cacheflush.c b/REORG.TODO/sysdeps/unix/sysv/linux/nios2/cacheflush.c
new file mode 100644
index 0000000000..463d6ef4c2
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/nios2/cacheflush.c
@@ -0,0 +1,29 @@
+/* cacheflush system call for Nios II Linux.
+ Copyright (C) 2015-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#include <stddef.h>
+#include <unistd.h>
+
+/* Flush cache(s). */
+int
+_flush_cache (char *addr, const int nbytes, const int op)
+{
+ return INLINE_SYSCALL (cacheflush, 3, addr, nbytes, op);
+}
+weak_alias (_flush_cache, cacheflush)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/nios2/clone.S b/REORG.TODO/sysdeps/unix/sysv/linux/nios2/clone.S
new file mode 100644
index 0000000000..7929dfa48a
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/nios2/clone.S
@@ -0,0 +1,95 @@
+/* clone() implementation for Nios II.
+ Copyright (C) 2008-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Andrew Jenner <andrew@codesourcery.com>, 2008.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+/* clone() is even more special than fork() as it mucks with stacks
+ and invokes a function in the right context after its all over. */
+
+#include <sysdep.h>
+#define _ERRNO_H 1
+#include <bits/errno.h>
+#include <tcb-offsets.h>
+
+#define CLONE_VM 0x00000100
+
+/* int clone(int (*fn)(void *arg), void *child_stack, int flags, void *arg,
+ void *parent_tidptr, void *tls, void *child_tidptr) */
+
+ .text
+ENTRY(__clone)
+ /* Sanity check arguments. */
+ movi r2, EINVAL
+ /* No NULL function pointers. */
+ beq r4, zero, SYSCALL_ERROR_LABEL
+ /* No NULL stack pointers. */
+ beq r5, zero, SYSCALL_ERROR_LABEL
+
+ subi r5, r5, 8 /* Reserve argument save space. */
+ stw r4, 4(r5) /* Save function pointer. */
+ stw r7, 0(r5) /* Save argument pointer. */
+
+ /* Load arguments. */
+ mov r4, r6
+ ldw r6, 0(sp)
+ ldw r7, 8(sp)
+ ldw r8, 4(sp)
+
+ /* Do the system call. */
+ movi r2, SYS_ify (clone)
+
+ /* End FDE now, because in the child the unwind info will be
+ wrong. */
+ cfi_endproc
+ trap
+
+ /* Check for errors. */
+ bne r7, zero, SYSCALL_ERROR_LABEL
+ /* See if we're on the newly created thread. */
+ beq r2, zero, thread_start
+ /* Successful return from the parent */
+ ret
+
+thread_start:
+ cfi_startproc
+ cfi_undefined (ra)
+
+ ldw r5, 4(sp) /* Function pointer. */
+ ldw r4, 0(sp) /* Argument pointer. */
+ addi sp, sp, 8
+
+ /* Call the user's function. */
+ callr r5
+
+ /* _exit with the result. */
+ mov r4, r2
+#ifdef PIC
+ nextpc r22
+1: movhi r8, %hiadj(_gp_got - 1b)
+ addi r8, r8, %lo(_gp_got - 1b)
+ add r22, r22, r8
+ ldw r8, %call(HIDDEN_JUMPTARGET(_exit))(r22)
+ jmp r8
+#else
+ jmpi _exit
+#endif
+ cfi_endproc
+
+ cfi_startproc
+PSEUDO_END (__clone)
+libc_hidden_def (__clone)
+weak_alias (__clone, clone)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/nios2/configure b/REORG.TODO/sysdeps/unix/sysv/linux/nios2/configure
new file mode 100644
index 0000000000..56b710792e
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/nios2/configure
@@ -0,0 +1,4 @@
+# This file is generated from configure.ac by Autoconf. DO NOT EDIT!
+ # Local configure fragment for sysdeps/unix/sysv/linux/nios2.
+
+arch_minimum_kernel=3.19.0
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/nios2/configure.ac b/REORG.TODO/sysdeps/unix/sysv/linux/nios2/configure.ac
new file mode 100644
index 0000000000..a8ccc17ffe
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/nios2/configure.ac
@@ -0,0 +1,4 @@
+GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
+# Local configure fragment for sysdeps/unix/sysv/linux/nios2.
+
+arch_minimum_kernel=3.19.0
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/nios2/getcontext.S b/REORG.TODO/sysdeps/unix/sysv/linux/nios2/getcontext.S
new file mode 100644
index 0000000000..373e80546a
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/nios2/getcontext.S
@@ -0,0 +1,66 @@
+/* Save current context.
+ Copyright (C) 2015-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#include "ucontext_i.h"
+
+/* int getcontext (ucontext_t *ucp)
+
+ Returns 0 on success -1 and errno on failure.
+ */
+ .text
+ENTRY(__getcontext)
+ stw r16, (UCONTEXT_MCONTEXT + 16*4)(r4)
+ stw r17, (UCONTEXT_MCONTEXT + 17*4)(r4)
+ stw r18, (UCONTEXT_MCONTEXT + 18*4)(r4)
+ stw r19, (UCONTEXT_MCONTEXT + 19*4)(r4)
+ stw r20, (UCONTEXT_MCONTEXT + 20*4)(r4)
+ stw r21, (UCONTEXT_MCONTEXT + 21*4)(r4)
+ stw r22, (UCONTEXT_MCONTEXT + 22*4)(r4)
+ stw ra, (UCONTEXT_MCONTEXT + 24*4)(r4)
+ stw fp, (UCONTEXT_MCONTEXT + 25*4)(r4)
+ stw gp, (UCONTEXT_MCONTEXT + 26*4)(r4)
+ /* Store return address at place for EA. */
+ stw ra, (UCONTEXT_MCONTEXT + 28*4)(r4)
+ stw sp, (UCONTEXT_MCONTEXT + 29*4)(r4)
+ /* Store zero for return success. */
+ stw zero, (UCONTEXT_MCONTEXT + 2*4)(r4)
+
+ /* Store value "1" at uc_flags to recognize as getcontext created. */
+ movi r2, 1
+ stw r2, UCONTEXT_FLAGS(r4)
+
+ /* Store MCONTEXT_VERSION at first word of mcontext_t. */
+ movi r2, MCONTEXT_VERSION
+ stw r2, UCONTEXT_MCONTEXT(r4)
+
+ /* Get signal mask. */
+ /* rt_sigprocmask (SIG_BLOCK, NULL, &ucp->uc_sigmask, _NSIG8) */
+ movi r7, _NSIG8
+ addi r6, r4, UCONTEXT_SIGMASK
+ mov r5, zero
+ movi r4, SIG_BLOCK
+ movi r2, SYS_ify (rt_sigprocmask)
+ trap
+ bne r7, zero, SYSCALL_ERROR_LABEL
+
+ mov r2, zero
+ ret
+
+PSEUDO_END(__getcontext)
+weak_alias(__getcontext, getcontext)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/nios2/ipc_priv.h b/REORG.TODO/sysdeps/unix/sysv/linux/nios2/ipc_priv.h
new file mode 100644
index 0000000000..d5c6c0a730
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/nios2/ipc_priv.h
@@ -0,0 +1,21 @@
+/* Old SysV permission definition for Linux. Nios II version.
+ Copyright (C) 2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sys/ipc.h> /* For __key_t */
+
+#define __IPC_64 0x0
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/nios2/kernel_rt_sigframe.h b/REORG.TODO/sysdeps/unix/sysv/linux/nios2/kernel_rt_sigframe.h
new file mode 100644
index 0000000000..f840effe92
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/nios2/kernel_rt_sigframe.h
@@ -0,0 +1,26 @@
+/* Linux kernel struct rt_sigframe declaration for Nios II.
+ Copyright (C) 2015-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation; either version 2.1 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+/* This structure must have the same shape as the Linux kernel
+ equivalent. */
+
+struct kernel_rt_sigframe
+{
+ siginfo_t info;
+ struct ucontext uc;
+};
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/nios2/ld.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/nios2/ld.abilist
new file mode 100644
index 0000000000..a127464b4b
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/nios2/ld.abilist
@@ -0,0 +1,10 @@
+GLIBC_2.21 GLIBC_2.21 A
+GLIBC_2.21 __libc_stack_end D 0x4
+GLIBC_2.21 __stack_chk_guard D 0x4
+GLIBC_2.21 __tls_get_addr F
+GLIBC_2.21 _dl_mcount F
+GLIBC_2.21 _r_debug D 0x14
+GLIBC_2.21 calloc F
+GLIBC_2.21 free F
+GLIBC_2.21 malloc F
+GLIBC_2.21 realloc F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/nios2/libBrokenLocale.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/nios2/libBrokenLocale.abilist
new file mode 100644
index 0000000000..5acf5e6d61
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/nios2/libBrokenLocale.abilist
@@ -0,0 +1,2 @@
+GLIBC_2.21 GLIBC_2.21 A
+GLIBC_2.21 __ctype_get_mb_cur_max F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/nios2/libanl.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/nios2/libanl.abilist
new file mode 100644
index 0000000000..04286b8fa1
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/nios2/libanl.abilist
@@ -0,0 +1,5 @@
+GLIBC_2.21 GLIBC_2.21 A
+GLIBC_2.21 gai_cancel F
+GLIBC_2.21 gai_error F
+GLIBC_2.21 gai_suspend F
+GLIBC_2.21 getaddrinfo_a F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/nios2/libc.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/nios2/libc.abilist
new file mode 100644
index 0000000000..be252287d1
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/nios2/libc.abilist
@@ -0,0 +1,2146 @@
+GLIBC_2.21 GLIBC_2.21 A
+GLIBC_2.21 _Exit F
+GLIBC_2.21 _IO_2_1_stderr_ D 0x98
+GLIBC_2.21 _IO_2_1_stdin_ D 0x98
+GLIBC_2.21 _IO_2_1_stdout_ D 0x98
+GLIBC_2.21 _IO_adjust_column F
+GLIBC_2.21 _IO_adjust_wcolumn F
+GLIBC_2.21 _IO_default_doallocate F
+GLIBC_2.21 _IO_default_finish F
+GLIBC_2.21 _IO_default_pbackfail F
+GLIBC_2.21 _IO_default_uflow F
+GLIBC_2.21 _IO_default_xsgetn F
+GLIBC_2.21 _IO_default_xsputn F
+GLIBC_2.21 _IO_do_write F
+GLIBC_2.21 _IO_doallocbuf F
+GLIBC_2.21 _IO_fclose F
+GLIBC_2.21 _IO_fdopen F
+GLIBC_2.21 _IO_feof F
+GLIBC_2.21 _IO_ferror F
+GLIBC_2.21 _IO_fflush F
+GLIBC_2.21 _IO_fgetpos F
+GLIBC_2.21 _IO_fgetpos64 F
+GLIBC_2.21 _IO_fgets F
+GLIBC_2.21 _IO_file_attach F
+GLIBC_2.21 _IO_file_close F
+GLIBC_2.21 _IO_file_close_it F
+GLIBC_2.21 _IO_file_doallocate F
+GLIBC_2.21 _IO_file_finish F
+GLIBC_2.21 _IO_file_fopen F
+GLIBC_2.21 _IO_file_init F
+GLIBC_2.21 _IO_file_jumps D 0x54
+GLIBC_2.21 _IO_file_open F
+GLIBC_2.21 _IO_file_overflow F
+GLIBC_2.21 _IO_file_read F
+GLIBC_2.21 _IO_file_seek F
+GLIBC_2.21 _IO_file_seekoff F
+GLIBC_2.21 _IO_file_setbuf F
+GLIBC_2.21 _IO_file_stat F
+GLIBC_2.21 _IO_file_sync F
+GLIBC_2.21 _IO_file_underflow F
+GLIBC_2.21 _IO_file_write F
+GLIBC_2.21 _IO_file_xsputn F
+GLIBC_2.21 _IO_flockfile F
+GLIBC_2.21 _IO_flush_all F
+GLIBC_2.21 _IO_flush_all_linebuffered F
+GLIBC_2.21 _IO_fopen F
+GLIBC_2.21 _IO_fprintf F
+GLIBC_2.21 _IO_fputs F
+GLIBC_2.21 _IO_fread F
+GLIBC_2.21 _IO_free_backup_area F
+GLIBC_2.21 _IO_free_wbackup_area F
+GLIBC_2.21 _IO_fsetpos F
+GLIBC_2.21 _IO_fsetpos64 F
+GLIBC_2.21 _IO_ftell F
+GLIBC_2.21 _IO_ftrylockfile F
+GLIBC_2.21 _IO_funlockfile F
+GLIBC_2.21 _IO_fwrite F
+GLIBC_2.21 _IO_getc F
+GLIBC_2.21 _IO_getline F
+GLIBC_2.21 _IO_getline_info F
+GLIBC_2.21 _IO_gets F
+GLIBC_2.21 _IO_init F
+GLIBC_2.21 _IO_init_marker F
+GLIBC_2.21 _IO_init_wmarker F
+GLIBC_2.21 _IO_iter_begin F
+GLIBC_2.21 _IO_iter_end F
+GLIBC_2.21 _IO_iter_file F
+GLIBC_2.21 _IO_iter_next F
+GLIBC_2.21 _IO_least_wmarker F
+GLIBC_2.21 _IO_link_in F
+GLIBC_2.21 _IO_list_all D 0x4
+GLIBC_2.21 _IO_list_lock F
+GLIBC_2.21 _IO_list_resetlock F
+GLIBC_2.21 _IO_list_unlock F
+GLIBC_2.21 _IO_marker_delta F
+GLIBC_2.21 _IO_marker_difference F
+GLIBC_2.21 _IO_padn F
+GLIBC_2.21 _IO_peekc_locked F
+GLIBC_2.21 _IO_popen F
+GLIBC_2.21 _IO_printf F
+GLIBC_2.21 _IO_proc_close F
+GLIBC_2.21 _IO_proc_open F
+GLIBC_2.21 _IO_putc F
+GLIBC_2.21 _IO_puts F
+GLIBC_2.21 _IO_remove_marker F
+GLIBC_2.21 _IO_seekmark F
+GLIBC_2.21 _IO_seekoff F
+GLIBC_2.21 _IO_seekpos F
+GLIBC_2.21 _IO_seekwmark F
+GLIBC_2.21 _IO_setb F
+GLIBC_2.21 _IO_setbuffer F
+GLIBC_2.21 _IO_setvbuf F
+GLIBC_2.21 _IO_sgetn F
+GLIBC_2.21 _IO_sprintf F
+GLIBC_2.21 _IO_sputbackc F
+GLIBC_2.21 _IO_sputbackwc F
+GLIBC_2.21 _IO_sscanf F
+GLIBC_2.21 _IO_str_init_readonly F
+GLIBC_2.21 _IO_str_init_static F
+GLIBC_2.21 _IO_str_overflow F
+GLIBC_2.21 _IO_str_pbackfail F
+GLIBC_2.21 _IO_str_seekoff F
+GLIBC_2.21 _IO_str_underflow F
+GLIBC_2.21 _IO_sungetc F
+GLIBC_2.21 _IO_sungetwc F
+GLIBC_2.21 _IO_switch_to_get_mode F
+GLIBC_2.21 _IO_switch_to_main_wget_area F
+GLIBC_2.21 _IO_switch_to_wbackup_area F
+GLIBC_2.21 _IO_switch_to_wget_mode F
+GLIBC_2.21 _IO_un_link F
+GLIBC_2.21 _IO_ungetc F
+GLIBC_2.21 _IO_unsave_markers F
+GLIBC_2.21 _IO_unsave_wmarkers F
+GLIBC_2.21 _IO_vfprintf F
+GLIBC_2.21 _IO_vfscanf F
+GLIBC_2.21 _IO_vsprintf F
+GLIBC_2.21 _IO_wdefault_doallocate F
+GLIBC_2.21 _IO_wdefault_finish F
+GLIBC_2.21 _IO_wdefault_pbackfail F
+GLIBC_2.21 _IO_wdefault_uflow F
+GLIBC_2.21 _IO_wdefault_xsgetn F
+GLIBC_2.21 _IO_wdefault_xsputn F
+GLIBC_2.21 _IO_wdo_write F
+GLIBC_2.21 _IO_wdoallocbuf F
+GLIBC_2.21 _IO_wfile_jumps D 0x54
+GLIBC_2.21 _IO_wfile_overflow F
+GLIBC_2.21 _IO_wfile_seekoff F
+GLIBC_2.21 _IO_wfile_sync F
+GLIBC_2.21 _IO_wfile_underflow F
+GLIBC_2.21 _IO_wfile_xsputn F
+GLIBC_2.21 _IO_wmarker_delta F
+GLIBC_2.21 _IO_wsetb F
+GLIBC_2.21 ___brk_addr D 0x4
+GLIBC_2.21 __adddf3 F
+GLIBC_2.21 __addsf3 F
+GLIBC_2.21 __adjtimex F
+GLIBC_2.21 __after_morecore_hook D 0x4
+GLIBC_2.21 __argz_count F
+GLIBC_2.21 __argz_next F
+GLIBC_2.21 __argz_stringify F
+GLIBC_2.21 __asprintf F
+GLIBC_2.21 __asprintf_chk F
+GLIBC_2.21 __assert F
+GLIBC_2.21 __assert_fail F
+GLIBC_2.21 __assert_perror_fail F
+GLIBC_2.21 __backtrace F
+GLIBC_2.21 __backtrace_symbols F
+GLIBC_2.21 __backtrace_symbols_fd F
+GLIBC_2.21 __bsd_getpgrp F
+GLIBC_2.21 __bzero F
+GLIBC_2.21 __check_rhosts_file D 0x4
+GLIBC_2.21 __chk_fail F
+GLIBC_2.21 __clone F
+GLIBC_2.21 __close F
+GLIBC_2.21 __cmsg_nxthdr F
+GLIBC_2.21 __confstr_chk F
+GLIBC_2.21 __connect F
+GLIBC_2.21 __ctype_b_loc F
+GLIBC_2.21 __ctype_get_mb_cur_max F
+GLIBC_2.21 __ctype_tolower_loc F
+GLIBC_2.21 __ctype_toupper_loc F
+GLIBC_2.21 __curbrk D 0x4
+GLIBC_2.21 __cxa_at_quick_exit F
+GLIBC_2.21 __cxa_atexit F
+GLIBC_2.21 __cxa_finalize F
+GLIBC_2.21 __cxa_thread_atexit_impl F
+GLIBC_2.21 __cyg_profile_func_enter F
+GLIBC_2.21 __cyg_profile_func_exit F
+GLIBC_2.21 __daylight D 0x4
+GLIBC_2.21 __dcgettext F
+GLIBC_2.21 __default_morecore F
+GLIBC_2.21 __dgettext F
+GLIBC_2.21 __divdf3 F
+GLIBC_2.21 __divsf3 F
+GLIBC_2.21 __dprintf_chk F
+GLIBC_2.21 __dup2 F
+GLIBC_2.21 __duplocale F
+GLIBC_2.21 __endmntent F
+GLIBC_2.21 __environ D 0x4
+GLIBC_2.21 __eqdf2 F
+GLIBC_2.21 __eqsf2 F
+GLIBC_2.21 __errno_location F
+GLIBC_2.21 __extendsfdf2 F
+GLIBC_2.21 __fbufsize F
+GLIBC_2.21 __fcntl F
+GLIBC_2.21 __fdelt_chk F
+GLIBC_2.21 __fdelt_warn F
+GLIBC_2.21 __ffs F
+GLIBC_2.21 __fgets_chk F
+GLIBC_2.21 __fgets_unlocked_chk F
+GLIBC_2.21 __fgetws_chk F
+GLIBC_2.21 __fgetws_unlocked_chk F
+GLIBC_2.21 __finite F
+GLIBC_2.21 __finitef F
+GLIBC_2.21 __finitel F
+GLIBC_2.21 __fixdfdi F
+GLIBC_2.21 __fixdfsi F
+GLIBC_2.21 __fixsfdi F
+GLIBC_2.21 __fixsfsi F
+GLIBC_2.21 __fixunsdfdi F
+GLIBC_2.21 __fixunsdfsi F
+GLIBC_2.21 __fixunssfdi F
+GLIBC_2.21 __fixunssfsi F
+GLIBC_2.21 __flbf F
+GLIBC_2.21 __floatdidf F
+GLIBC_2.21 __floatdisf F
+GLIBC_2.21 __floatsidf F
+GLIBC_2.21 __floatsisf F
+GLIBC_2.21 __floatundidf F
+GLIBC_2.21 __floatundisf F
+GLIBC_2.21 __floatunsidf F
+GLIBC_2.21 __floatunsisf F
+GLIBC_2.21 __fork F
+GLIBC_2.21 __fpending F
+GLIBC_2.21 __fprintf_chk F
+GLIBC_2.21 __fpu_control D 0x4
+GLIBC_2.21 __fpurge F
+GLIBC_2.21 __fread_chk F
+GLIBC_2.21 __fread_unlocked_chk F
+GLIBC_2.21 __freadable F
+GLIBC_2.21 __freading F
+GLIBC_2.21 __free_hook D 0x4
+GLIBC_2.21 __freelocale F
+GLIBC_2.21 __fsetlocking F
+GLIBC_2.21 __fwprintf_chk F
+GLIBC_2.21 __fwritable F
+GLIBC_2.21 __fwriting F
+GLIBC_2.21 __fxstat F
+GLIBC_2.21 __fxstat64 F
+GLIBC_2.21 __fxstatat F
+GLIBC_2.21 __fxstatat64 F
+GLIBC_2.21 __gedf2 F
+GLIBC_2.21 __gesf2 F
+GLIBC_2.21 __getauxval F
+GLIBC_2.21 __getcwd_chk F
+GLIBC_2.21 __getdelim F
+GLIBC_2.21 __getdomainname_chk F
+GLIBC_2.21 __getgroups_chk F
+GLIBC_2.21 __gethostname_chk F
+GLIBC_2.21 __getlogin_r_chk F
+GLIBC_2.21 __getmntent_r F
+GLIBC_2.21 __getpagesize F
+GLIBC_2.21 __getpgid F
+GLIBC_2.21 __getpid F
+GLIBC_2.21 __gets_chk F
+GLIBC_2.21 __gettimeofday F
+GLIBC_2.21 __getwd_chk F
+GLIBC_2.21 __gmtime_r F
+GLIBC_2.21 __gtdf2 F
+GLIBC_2.21 __gtsf2 F
+GLIBC_2.21 __h_errno_location F
+GLIBC_2.21 __isalnum_l F
+GLIBC_2.21 __isalpha_l F
+GLIBC_2.21 __isascii_l F
+GLIBC_2.21 __isblank_l F
+GLIBC_2.21 __iscntrl_l F
+GLIBC_2.21 __isctype F
+GLIBC_2.21 __isdigit_l F
+GLIBC_2.21 __isgraph_l F
+GLIBC_2.21 __isinf F
+GLIBC_2.21 __isinff F
+GLIBC_2.21 __isinfl F
+GLIBC_2.21 __islower_l F
+GLIBC_2.21 __isnan F
+GLIBC_2.21 __isnanf F
+GLIBC_2.21 __isnanl F
+GLIBC_2.21 __isoc99_fscanf F
+GLIBC_2.21 __isoc99_fwscanf F
+GLIBC_2.21 __isoc99_scanf F
+GLIBC_2.21 __isoc99_sscanf F
+GLIBC_2.21 __isoc99_swscanf F
+GLIBC_2.21 __isoc99_vfscanf F
+GLIBC_2.21 __isoc99_vfwscanf F
+GLIBC_2.21 __isoc99_vscanf F
+GLIBC_2.21 __isoc99_vsscanf F
+GLIBC_2.21 __isoc99_vswscanf F
+GLIBC_2.21 __isoc99_vwscanf F
+GLIBC_2.21 __isoc99_wscanf F
+GLIBC_2.21 __isprint_l F
+GLIBC_2.21 __ispunct_l F
+GLIBC_2.21 __isspace_l F
+GLIBC_2.21 __isupper_l F
+GLIBC_2.21 __iswalnum_l F
+GLIBC_2.21 __iswalpha_l F
+GLIBC_2.21 __iswblank_l F
+GLIBC_2.21 __iswcntrl_l F
+GLIBC_2.21 __iswctype F
+GLIBC_2.21 __iswctype_l F
+GLIBC_2.21 __iswdigit_l F
+GLIBC_2.21 __iswgraph_l F
+GLIBC_2.21 __iswlower_l F
+GLIBC_2.21 __iswprint_l F
+GLIBC_2.21 __iswpunct_l F
+GLIBC_2.21 __iswspace_l F
+GLIBC_2.21 __iswupper_l F
+GLIBC_2.21 __iswxdigit_l F
+GLIBC_2.21 __isxdigit_l F
+GLIBC_2.21 __ivaliduser F
+GLIBC_2.21 __key_decryptsession_pk_LOCAL D 0x4
+GLIBC_2.21 __key_encryptsession_pk_LOCAL D 0x4
+GLIBC_2.21 __key_gendes_LOCAL D 0x4
+GLIBC_2.21 __ledf2 F
+GLIBC_2.21 __lesf2 F
+GLIBC_2.21 __libc_allocate_rtsig F
+GLIBC_2.21 __libc_calloc F
+GLIBC_2.21 __libc_current_sigrtmax F
+GLIBC_2.21 __libc_current_sigrtmin F
+GLIBC_2.21 __libc_free F
+GLIBC_2.21 __libc_freeres F
+GLIBC_2.21 __libc_init_first F
+GLIBC_2.21 __libc_mallinfo F
+GLIBC_2.21 __libc_malloc F
+GLIBC_2.21 __libc_mallopt F
+GLIBC_2.21 __libc_memalign F
+GLIBC_2.21 __libc_pvalloc F
+GLIBC_2.21 __libc_realloc F
+GLIBC_2.21 __libc_sa_len F
+GLIBC_2.21 __libc_start_main F
+GLIBC_2.21 __libc_valloc F
+GLIBC_2.21 __longjmp_chk F
+GLIBC_2.21 __lseek F
+GLIBC_2.21 __ltdf2 F
+GLIBC_2.21 __ltsf2 F
+GLIBC_2.21 __lxstat F
+GLIBC_2.21 __lxstat64 F
+GLIBC_2.21 __malloc_hook D 0x4
+GLIBC_2.21 __malloc_initialize_hook D 0x4
+GLIBC_2.21 __mbrlen F
+GLIBC_2.21 __mbrtowc F
+GLIBC_2.21 __mbsnrtowcs_chk F
+GLIBC_2.21 __mbsrtowcs_chk F
+GLIBC_2.21 __mbstowcs_chk F
+GLIBC_2.21 __memalign_hook D 0x4
+GLIBC_2.21 __memcpy_chk F
+GLIBC_2.21 __memmove_chk F
+GLIBC_2.21 __mempcpy F
+GLIBC_2.21 __mempcpy_chk F
+GLIBC_2.21 __mempcpy_small F
+GLIBC_2.21 __memset_chk F
+GLIBC_2.21 __monstartup F
+GLIBC_2.21 __morecore D 0x4
+GLIBC_2.21 __muldf3 F
+GLIBC_2.21 __mulsf3 F
+GLIBC_2.21 __nanosleep F
+GLIBC_2.21 __nedf2 F
+GLIBC_2.21 __negdf2 F
+GLIBC_2.21 __negsf2 F
+GLIBC_2.21 __nesf2 F
+GLIBC_2.21 __newlocale F
+GLIBC_2.21 __nl_langinfo_l F
+GLIBC_2.21 __nss_configure_lookup F
+GLIBC_2.21 __nss_database_lookup F
+GLIBC_2.21 __nss_group_lookup F
+GLIBC_2.21 __nss_hostname_digits_dots F
+GLIBC_2.21 __nss_hosts_lookup F
+GLIBC_2.21 __nss_next F
+GLIBC_2.21 __nss_passwd_lookup F
+GLIBC_2.21 __obstack_printf_chk F
+GLIBC_2.21 __obstack_vprintf_chk F
+GLIBC_2.21 __open F
+GLIBC_2.21 __open64 F
+GLIBC_2.21 __open64_2 F
+GLIBC_2.21 __open_2 F
+GLIBC_2.21 __openat64_2 F
+GLIBC_2.21 __openat_2 F
+GLIBC_2.21 __overflow F
+GLIBC_2.21 __pipe F
+GLIBC_2.21 __poll F
+GLIBC_2.21 __poll_chk F
+GLIBC_2.21 __posix_getopt F
+GLIBC_2.21 __ppoll_chk F
+GLIBC_2.21 __pread64 F
+GLIBC_2.21 __pread64_chk F
+GLIBC_2.21 __pread_chk F
+GLIBC_2.21 __printf_chk F
+GLIBC_2.21 __printf_fp F
+GLIBC_2.21 __profile_frequency F
+GLIBC_2.21 __progname D 0x4
+GLIBC_2.21 __progname_full D 0x4
+GLIBC_2.21 __ptsname_r_chk F
+GLIBC_2.21 __pwrite64 F
+GLIBC_2.21 __rawmemchr F
+GLIBC_2.21 __rcmd_errstr D 0x4
+GLIBC_2.21 __read F
+GLIBC_2.21 __read_chk F
+GLIBC_2.21 __readlink_chk F
+GLIBC_2.21 __readlinkat_chk F
+GLIBC_2.21 __realloc_hook D 0x4
+GLIBC_2.21 __realpath_chk F
+GLIBC_2.21 __recv_chk F
+GLIBC_2.21 __recvfrom_chk F
+GLIBC_2.21 __register_atfork F
+GLIBC_2.21 __res_init F
+GLIBC_2.21 __res_nclose F
+GLIBC_2.21 __res_ninit F
+GLIBC_2.21 __res_randomid F
+GLIBC_2.21 __res_state F
+GLIBC_2.21 __rpc_thread_createerr F
+GLIBC_2.21 __rpc_thread_svc_fdset F
+GLIBC_2.21 __rpc_thread_svc_max_pollfd F
+GLIBC_2.21 __rpc_thread_svc_pollfd F
+GLIBC_2.21 __sbrk F
+GLIBC_2.21 __sched_cpualloc F
+GLIBC_2.21 __sched_cpucount F
+GLIBC_2.21 __sched_cpufree F
+GLIBC_2.21 __sched_get_priority_max F
+GLIBC_2.21 __sched_get_priority_min F
+GLIBC_2.21 __sched_getparam F
+GLIBC_2.21 __sched_getscheduler F
+GLIBC_2.21 __sched_setscheduler F
+GLIBC_2.21 __sched_yield F
+GLIBC_2.21 __select F
+GLIBC_2.21 __setmntent F
+GLIBC_2.21 __setpgid F
+GLIBC_2.21 __sigaction F
+GLIBC_2.21 __sigaddset F
+GLIBC_2.21 __sigdelset F
+GLIBC_2.21 __sigismember F
+GLIBC_2.21 __signbit F
+GLIBC_2.21 __signbitf F
+GLIBC_2.21 __sigpause F
+GLIBC_2.21 __sigsetjmp F
+GLIBC_2.21 __sigsuspend F
+GLIBC_2.21 __snprintf_chk F
+GLIBC_2.21 __sprintf_chk F
+GLIBC_2.21 __stack_chk_fail F
+GLIBC_2.21 __statfs F
+GLIBC_2.21 __stpcpy F
+GLIBC_2.21 __stpcpy_chk F
+GLIBC_2.21 __stpcpy_small F
+GLIBC_2.21 __stpncpy F
+GLIBC_2.21 __stpncpy_chk F
+GLIBC_2.21 __strcasecmp F
+GLIBC_2.21 __strcasecmp_l F
+GLIBC_2.21 __strcasestr F
+GLIBC_2.21 __strcat_chk F
+GLIBC_2.21 __strcoll_l F
+GLIBC_2.21 __strcpy_chk F
+GLIBC_2.21 __strcpy_small F
+GLIBC_2.21 __strcspn_c1 F
+GLIBC_2.21 __strcspn_c2 F
+GLIBC_2.21 __strcspn_c3 F
+GLIBC_2.21 __strdup F
+GLIBC_2.21 __strerror_r F
+GLIBC_2.21 __strfmon_l F
+GLIBC_2.21 __strftime_l F
+GLIBC_2.21 __strncasecmp_l F
+GLIBC_2.21 __strncat_chk F
+GLIBC_2.21 __strncpy_chk F
+GLIBC_2.21 __strndup F
+GLIBC_2.21 __strpbrk_c2 F
+GLIBC_2.21 __strpbrk_c3 F
+GLIBC_2.21 __strsep_1c F
+GLIBC_2.21 __strsep_2c F
+GLIBC_2.21 __strsep_3c F
+GLIBC_2.21 __strsep_g F
+GLIBC_2.21 __strspn_c1 F
+GLIBC_2.21 __strspn_c2 F
+GLIBC_2.21 __strspn_c3 F
+GLIBC_2.21 __strtod_internal F
+GLIBC_2.21 __strtod_l F
+GLIBC_2.21 __strtof_internal F
+GLIBC_2.21 __strtof_l F
+GLIBC_2.21 __strtok_r F
+GLIBC_2.21 __strtok_r_1c F
+GLIBC_2.21 __strtol_internal F
+GLIBC_2.21 __strtol_l F
+GLIBC_2.21 __strtold_internal F
+GLIBC_2.21 __strtold_l F
+GLIBC_2.21 __strtoll_internal F
+GLIBC_2.21 __strtoll_l F
+GLIBC_2.21 __strtoul_internal F
+GLIBC_2.21 __strtoul_l F
+GLIBC_2.21 __strtoull_internal F
+GLIBC_2.21 __strtoull_l F
+GLIBC_2.21 __strverscmp F
+GLIBC_2.21 __strxfrm_l F
+GLIBC_2.21 __subdf3 F
+GLIBC_2.21 __subsf3 F
+GLIBC_2.21 __swprintf_chk F
+GLIBC_2.21 __sysconf F
+GLIBC_2.21 __syslog_chk F
+GLIBC_2.21 __sysv_signal F
+GLIBC_2.21 __timezone D 0x4
+GLIBC_2.21 __toascii_l F
+GLIBC_2.21 __tolower_l F
+GLIBC_2.21 __toupper_l F
+GLIBC_2.21 __towctrans F
+GLIBC_2.21 __towctrans_l F
+GLIBC_2.21 __towlower_l F
+GLIBC_2.21 __towupper_l F
+GLIBC_2.21 __truncdfsf2 F
+GLIBC_2.21 __ttyname_r_chk F
+GLIBC_2.21 __tzname D 0x8
+GLIBC_2.21 __uflow F
+GLIBC_2.21 __underflow F
+GLIBC_2.21 __unorddf2 F
+GLIBC_2.21 __unordsf2 F
+GLIBC_2.21 __uselocale F
+GLIBC_2.21 __vasprintf_chk F
+GLIBC_2.21 __vdprintf_chk F
+GLIBC_2.21 __vfork F
+GLIBC_2.21 __vfprintf_chk F
+GLIBC_2.21 __vfscanf F
+GLIBC_2.21 __vfwprintf_chk F
+GLIBC_2.21 __vprintf_chk F
+GLIBC_2.21 __vsnprintf F
+GLIBC_2.21 __vsnprintf_chk F
+GLIBC_2.21 __vsprintf_chk F
+GLIBC_2.21 __vsscanf F
+GLIBC_2.21 __vswprintf_chk F
+GLIBC_2.21 __vsyslog_chk F
+GLIBC_2.21 __vwprintf_chk F
+GLIBC_2.21 __wait F
+GLIBC_2.21 __waitpid F
+GLIBC_2.21 __wcpcpy_chk F
+GLIBC_2.21 __wcpncpy_chk F
+GLIBC_2.21 __wcrtomb_chk F
+GLIBC_2.21 __wcscasecmp_l F
+GLIBC_2.21 __wcscat_chk F
+GLIBC_2.21 __wcscoll_l F
+GLIBC_2.21 __wcscpy_chk F
+GLIBC_2.21 __wcsftime_l F
+GLIBC_2.21 __wcsncasecmp_l F
+GLIBC_2.21 __wcsncat_chk F
+GLIBC_2.21 __wcsncpy_chk F
+GLIBC_2.21 __wcsnrtombs_chk F
+GLIBC_2.21 __wcsrtombs_chk F
+GLIBC_2.21 __wcstod_internal F
+GLIBC_2.21 __wcstod_l F
+GLIBC_2.21 __wcstof_internal F
+GLIBC_2.21 __wcstof_l F
+GLIBC_2.21 __wcstol_internal F
+GLIBC_2.21 __wcstol_l F
+GLIBC_2.21 __wcstold_internal F
+GLIBC_2.21 __wcstold_l F
+GLIBC_2.21 __wcstoll_internal F
+GLIBC_2.21 __wcstoll_l F
+GLIBC_2.21 __wcstombs_chk F
+GLIBC_2.21 __wcstoul_internal F
+GLIBC_2.21 __wcstoul_l F
+GLIBC_2.21 __wcstoull_internal F
+GLIBC_2.21 __wcstoull_l F
+GLIBC_2.21 __wcsxfrm_l F
+GLIBC_2.21 __wctomb_chk F
+GLIBC_2.21 __wctrans_l F
+GLIBC_2.21 __wctype_l F
+GLIBC_2.21 __wmemcpy_chk F
+GLIBC_2.21 __wmemmove_chk F
+GLIBC_2.21 __wmempcpy_chk F
+GLIBC_2.21 __wmemset_chk F
+GLIBC_2.21 __woverflow F
+GLIBC_2.21 __wprintf_chk F
+GLIBC_2.21 __write F
+GLIBC_2.21 __wuflow F
+GLIBC_2.21 __wunderflow F
+GLIBC_2.21 __xmknod F
+GLIBC_2.21 __xmknodat F
+GLIBC_2.21 __xpg_basename F
+GLIBC_2.21 __xpg_sigpause F
+GLIBC_2.21 __xpg_strerror_r F
+GLIBC_2.21 __xstat F
+GLIBC_2.21 __xstat64 F
+GLIBC_2.21 _authenticate F
+GLIBC_2.21 _dl_mcount_wrapper F
+GLIBC_2.21 _dl_mcount_wrapper_check F
+GLIBC_2.21 _environ D 0x4
+GLIBC_2.21 _exit F
+GLIBC_2.21 _flush_cache F
+GLIBC_2.21 _flushlbf F
+GLIBC_2.21 _libc_intl_domainname D 0x5
+GLIBC_2.21 _longjmp F
+GLIBC_2.21 _mcleanup F
+GLIBC_2.21 _mcount F
+GLIBC_2.21 _nl_default_dirname D 0x12
+GLIBC_2.21 _nl_domain_bindings D 0x4
+GLIBC_2.21 _nl_msg_cat_cntr D 0x4
+GLIBC_2.21 _null_auth D 0xc
+GLIBC_2.21 _obstack_allocated_p F
+GLIBC_2.21 _obstack_begin F
+GLIBC_2.21 _obstack_begin_1 F
+GLIBC_2.21 _obstack_free F
+GLIBC_2.21 _obstack_memory_used F
+GLIBC_2.21 _obstack_newchunk F
+GLIBC_2.21 _res D 0x200
+GLIBC_2.21 _res_hconf D 0x30
+GLIBC_2.21 _rpc_dtablesize F
+GLIBC_2.21 _seterr_reply F
+GLIBC_2.21 _setjmp F
+GLIBC_2.21 _sys_errlist D 0x21c
+GLIBC_2.21 _sys_nerr D 0x4
+GLIBC_2.21 _sys_siglist D 0x104
+GLIBC_2.21 _tolower F
+GLIBC_2.21 _toupper F
+GLIBC_2.21 a64l F
+GLIBC_2.21 abort F
+GLIBC_2.21 abs F
+GLIBC_2.21 accept F
+GLIBC_2.21 accept4 F
+GLIBC_2.21 access F
+GLIBC_2.21 acct F
+GLIBC_2.21 addmntent F
+GLIBC_2.21 addseverity F
+GLIBC_2.21 adjtime F
+GLIBC_2.21 adjtimex F
+GLIBC_2.21 advance F
+GLIBC_2.21 alarm F
+GLIBC_2.21 aligned_alloc F
+GLIBC_2.21 alphasort F
+GLIBC_2.21 alphasort64 F
+GLIBC_2.21 argp_err_exit_status D 0x4
+GLIBC_2.21 argp_error F
+GLIBC_2.21 argp_failure F
+GLIBC_2.21 argp_help F
+GLIBC_2.21 argp_parse F
+GLIBC_2.21 argp_program_bug_address D 0x4
+GLIBC_2.21 argp_program_version D 0x4
+GLIBC_2.21 argp_program_version_hook D 0x4
+GLIBC_2.21 argp_state_help F
+GLIBC_2.21 argp_usage F
+GLIBC_2.21 argz_add F
+GLIBC_2.21 argz_add_sep F
+GLIBC_2.21 argz_append F
+GLIBC_2.21 argz_count F
+GLIBC_2.21 argz_create F
+GLIBC_2.21 argz_create_sep F
+GLIBC_2.21 argz_delete F
+GLIBC_2.21 argz_extract F
+GLIBC_2.21 argz_insert F
+GLIBC_2.21 argz_next F
+GLIBC_2.21 argz_replace F
+GLIBC_2.21 argz_stringify F
+GLIBC_2.21 asctime F
+GLIBC_2.21 asctime_r F
+GLIBC_2.21 asprintf F
+GLIBC_2.21 atof F
+GLIBC_2.21 atoi F
+GLIBC_2.21 atol F
+GLIBC_2.21 atoll F
+GLIBC_2.21 authdes_create F
+GLIBC_2.21 authdes_getucred F
+GLIBC_2.21 authdes_pk_create F
+GLIBC_2.21 authnone_create F
+GLIBC_2.21 authunix_create F
+GLIBC_2.21 authunix_create_default F
+GLIBC_2.21 backtrace F
+GLIBC_2.21 backtrace_symbols F
+GLIBC_2.21 backtrace_symbols_fd F
+GLIBC_2.21 basename F
+GLIBC_2.21 bcmp F
+GLIBC_2.21 bcopy F
+GLIBC_2.21 bdflush F
+GLIBC_2.21 bind F
+GLIBC_2.21 bind_textdomain_codeset F
+GLIBC_2.21 bindresvport F
+GLIBC_2.21 bindtextdomain F
+GLIBC_2.21 brk F
+GLIBC_2.21 bsd_signal F
+GLIBC_2.21 bsearch F
+GLIBC_2.21 btowc F
+GLIBC_2.21 bzero F
+GLIBC_2.21 c16rtomb F
+GLIBC_2.21 c32rtomb F
+GLIBC_2.21 cacheflush F
+GLIBC_2.21 calloc F
+GLIBC_2.21 callrpc F
+GLIBC_2.21 canonicalize_file_name F
+GLIBC_2.21 capget F
+GLIBC_2.21 capset F
+GLIBC_2.21 catclose F
+GLIBC_2.21 catgets F
+GLIBC_2.21 catopen F
+GLIBC_2.21 cbc_crypt F
+GLIBC_2.21 cfgetispeed F
+GLIBC_2.21 cfgetospeed F
+GLIBC_2.21 cfmakeraw F
+GLIBC_2.21 cfree F
+GLIBC_2.21 cfsetispeed F
+GLIBC_2.21 cfsetospeed F
+GLIBC_2.21 cfsetspeed F
+GLIBC_2.21 chdir F
+GLIBC_2.21 chflags F
+GLIBC_2.21 chmod F
+GLIBC_2.21 chown F
+GLIBC_2.21 chroot F
+GLIBC_2.21 clearenv F
+GLIBC_2.21 clearerr F
+GLIBC_2.21 clearerr_unlocked F
+GLIBC_2.21 clnt_broadcast F
+GLIBC_2.21 clnt_create F
+GLIBC_2.21 clnt_pcreateerror F
+GLIBC_2.21 clnt_perrno F
+GLIBC_2.21 clnt_perror F
+GLIBC_2.21 clnt_spcreateerror F
+GLIBC_2.21 clnt_sperrno F
+GLIBC_2.21 clnt_sperror F
+GLIBC_2.21 clntraw_create F
+GLIBC_2.21 clnttcp_create F
+GLIBC_2.21 clntudp_bufcreate F
+GLIBC_2.21 clntudp_create F
+GLIBC_2.21 clntunix_create F
+GLIBC_2.21 clock F
+GLIBC_2.21 clock_adjtime F
+GLIBC_2.21 clock_getcpuclockid F
+GLIBC_2.21 clock_getres F
+GLIBC_2.21 clock_gettime F
+GLIBC_2.21 clock_nanosleep F
+GLIBC_2.21 clock_settime F
+GLIBC_2.21 clone F
+GLIBC_2.21 close F
+GLIBC_2.21 closedir F
+GLIBC_2.21 closelog F
+GLIBC_2.21 confstr F
+GLIBC_2.21 connect F
+GLIBC_2.21 copysign F
+GLIBC_2.21 copysignf F
+GLIBC_2.21 copysignl F
+GLIBC_2.21 creat F
+GLIBC_2.21 creat64 F
+GLIBC_2.21 create_module F
+GLIBC_2.21 ctermid F
+GLIBC_2.21 ctime F
+GLIBC_2.21 ctime_r F
+GLIBC_2.21 cuserid F
+GLIBC_2.21 daemon F
+GLIBC_2.21 daylight D 0x4
+GLIBC_2.21 dcgettext F
+GLIBC_2.21 dcngettext F
+GLIBC_2.21 delete_module F
+GLIBC_2.21 des_setparity F
+GLIBC_2.21 dgettext F
+GLIBC_2.21 difftime F
+GLIBC_2.21 dirfd F
+GLIBC_2.21 dirname F
+GLIBC_2.21 div F
+GLIBC_2.21 dl_iterate_phdr F
+GLIBC_2.21 dngettext F
+GLIBC_2.21 dprintf F
+GLIBC_2.21 drand48 F
+GLIBC_2.21 drand48_r F
+GLIBC_2.21 dup F
+GLIBC_2.21 dup2 F
+GLIBC_2.21 dup3 F
+GLIBC_2.21 duplocale F
+GLIBC_2.21 dysize F
+GLIBC_2.21 eaccess F
+GLIBC_2.21 ecb_crypt F
+GLIBC_2.21 ecvt F
+GLIBC_2.21 ecvt_r F
+GLIBC_2.21 endaliasent F
+GLIBC_2.21 endfsent F
+GLIBC_2.21 endgrent F
+GLIBC_2.21 endhostent F
+GLIBC_2.21 endmntent F
+GLIBC_2.21 endnetent F
+GLIBC_2.21 endnetgrent F
+GLIBC_2.21 endprotoent F
+GLIBC_2.21 endpwent F
+GLIBC_2.21 endrpcent F
+GLIBC_2.21 endservent F
+GLIBC_2.21 endsgent F
+GLIBC_2.21 endspent F
+GLIBC_2.21 endttyent F
+GLIBC_2.21 endusershell F
+GLIBC_2.21 endutent F
+GLIBC_2.21 endutxent F
+GLIBC_2.21 environ D 0x4
+GLIBC_2.21 envz_add F
+GLIBC_2.21 envz_entry F
+GLIBC_2.21 envz_get F
+GLIBC_2.21 envz_merge F
+GLIBC_2.21 envz_remove F
+GLIBC_2.21 envz_strip F
+GLIBC_2.21 epoll_create F
+GLIBC_2.21 epoll_create1 F
+GLIBC_2.21 epoll_ctl F
+GLIBC_2.21 epoll_pwait F
+GLIBC_2.21 epoll_wait F
+GLIBC_2.21 erand48 F
+GLIBC_2.21 erand48_r F
+GLIBC_2.21 err F
+GLIBC_2.21 error F
+GLIBC_2.21 error_at_line F
+GLIBC_2.21 error_message_count D 0x4
+GLIBC_2.21 error_one_per_line D 0x4
+GLIBC_2.21 error_print_progname D 0x4
+GLIBC_2.21 errx F
+GLIBC_2.21 ether_aton F
+GLIBC_2.21 ether_aton_r F
+GLIBC_2.21 ether_hostton F
+GLIBC_2.21 ether_line F
+GLIBC_2.21 ether_ntoa F
+GLIBC_2.21 ether_ntoa_r F
+GLIBC_2.21 ether_ntohost F
+GLIBC_2.21 euidaccess F
+GLIBC_2.21 eventfd F
+GLIBC_2.21 eventfd_read F
+GLIBC_2.21 eventfd_write F
+GLIBC_2.21 execl F
+GLIBC_2.21 execle F
+GLIBC_2.21 execlp F
+GLIBC_2.21 execv F
+GLIBC_2.21 execve F
+GLIBC_2.21 execvp F
+GLIBC_2.21 execvpe F
+GLIBC_2.21 exit F
+GLIBC_2.21 faccessat F
+GLIBC_2.21 fallocate F
+GLIBC_2.21 fallocate64 F
+GLIBC_2.21 fanotify_init F
+GLIBC_2.21 fanotify_mark F
+GLIBC_2.21 fattach F
+GLIBC_2.21 fchdir F
+GLIBC_2.21 fchflags F
+GLIBC_2.21 fchmod F
+GLIBC_2.21 fchmodat F
+GLIBC_2.21 fchown F
+GLIBC_2.21 fchownat F
+GLIBC_2.21 fclose F
+GLIBC_2.21 fcloseall F
+GLIBC_2.21 fcntl F
+GLIBC_2.21 fcvt F
+GLIBC_2.21 fcvt_r F
+GLIBC_2.21 fdatasync F
+GLIBC_2.21 fdetach F
+GLIBC_2.21 fdopen F
+GLIBC_2.21 fdopendir F
+GLIBC_2.21 feof F
+GLIBC_2.21 feof_unlocked F
+GLIBC_2.21 ferror F
+GLIBC_2.21 ferror_unlocked F
+GLIBC_2.21 fexecve F
+GLIBC_2.21 fflush F
+GLIBC_2.21 fflush_unlocked F
+GLIBC_2.21 ffs F
+GLIBC_2.21 ffsl F
+GLIBC_2.21 ffsll F
+GLIBC_2.21 fgetc F
+GLIBC_2.21 fgetc_unlocked F
+GLIBC_2.21 fgetgrent F
+GLIBC_2.21 fgetgrent_r F
+GLIBC_2.21 fgetpos F
+GLIBC_2.21 fgetpos64 F
+GLIBC_2.21 fgetpwent F
+GLIBC_2.21 fgetpwent_r F
+GLIBC_2.21 fgets F
+GLIBC_2.21 fgets_unlocked F
+GLIBC_2.21 fgetsgent F
+GLIBC_2.21 fgetsgent_r F
+GLIBC_2.21 fgetspent F
+GLIBC_2.21 fgetspent_r F
+GLIBC_2.21 fgetwc F
+GLIBC_2.21 fgetwc_unlocked F
+GLIBC_2.21 fgetws F
+GLIBC_2.21 fgetws_unlocked F
+GLIBC_2.21 fgetxattr F
+GLIBC_2.21 fileno F
+GLIBC_2.21 fileno_unlocked F
+GLIBC_2.21 finite F
+GLIBC_2.21 finitef F
+GLIBC_2.21 finitel F
+GLIBC_2.21 flistxattr F
+GLIBC_2.21 flock F
+GLIBC_2.21 flockfile F
+GLIBC_2.21 fmemopen F
+GLIBC_2.21 fmtmsg F
+GLIBC_2.21 fnmatch F
+GLIBC_2.21 fopen F
+GLIBC_2.21 fopen64 F
+GLIBC_2.21 fopencookie F
+GLIBC_2.21 fork F
+GLIBC_2.21 fpathconf F
+GLIBC_2.21 fprintf F
+GLIBC_2.21 fputc F
+GLIBC_2.21 fputc_unlocked F
+GLIBC_2.21 fputs F
+GLIBC_2.21 fputs_unlocked F
+GLIBC_2.21 fputwc F
+GLIBC_2.21 fputwc_unlocked F
+GLIBC_2.21 fputws F
+GLIBC_2.21 fputws_unlocked F
+GLIBC_2.21 fread F
+GLIBC_2.21 fread_unlocked F
+GLIBC_2.21 free F
+GLIBC_2.21 freeaddrinfo F
+GLIBC_2.21 freeifaddrs F
+GLIBC_2.21 freelocale F
+GLIBC_2.21 fremovexattr F
+GLIBC_2.21 freopen F
+GLIBC_2.21 freopen64 F
+GLIBC_2.21 frexp F
+GLIBC_2.21 frexpf F
+GLIBC_2.21 frexpl F
+GLIBC_2.21 fscanf F
+GLIBC_2.21 fseek F
+GLIBC_2.21 fseeko F
+GLIBC_2.21 fseeko64 F
+GLIBC_2.21 fsetpos F
+GLIBC_2.21 fsetpos64 F
+GLIBC_2.21 fsetxattr F
+GLIBC_2.21 fstatfs F
+GLIBC_2.21 fstatfs64 F
+GLIBC_2.21 fstatvfs F
+GLIBC_2.21 fstatvfs64 F
+GLIBC_2.21 fsync F
+GLIBC_2.21 ftell F
+GLIBC_2.21 ftello F
+GLIBC_2.21 ftello64 F
+GLIBC_2.21 ftime F
+GLIBC_2.21 ftok F
+GLIBC_2.21 ftruncate F
+GLIBC_2.21 ftruncate64 F
+GLIBC_2.21 ftrylockfile F
+GLIBC_2.21 fts_children F
+GLIBC_2.21 fts_close F
+GLIBC_2.21 fts_open F
+GLIBC_2.21 fts_read F
+GLIBC_2.21 fts_set F
+GLIBC_2.21 ftw F
+GLIBC_2.21 ftw64 F
+GLIBC_2.21 funlockfile F
+GLIBC_2.21 futimens F
+GLIBC_2.21 futimes F
+GLIBC_2.21 futimesat F
+GLIBC_2.21 fwide F
+GLIBC_2.21 fwprintf F
+GLIBC_2.21 fwrite F
+GLIBC_2.21 fwrite_unlocked F
+GLIBC_2.21 fwscanf F
+GLIBC_2.21 gai_strerror F
+GLIBC_2.21 gcvt F
+GLIBC_2.21 get_avphys_pages F
+GLIBC_2.21 get_current_dir_name F
+GLIBC_2.21 get_kernel_syms F
+GLIBC_2.21 get_myaddress F
+GLIBC_2.21 get_nprocs F
+GLIBC_2.21 get_nprocs_conf F
+GLIBC_2.21 get_phys_pages F
+GLIBC_2.21 getaddrinfo F
+GLIBC_2.21 getaliasbyname F
+GLIBC_2.21 getaliasbyname_r F
+GLIBC_2.21 getaliasent F
+GLIBC_2.21 getaliasent_r F
+GLIBC_2.21 getauxval F
+GLIBC_2.21 getc F
+GLIBC_2.21 getc_unlocked F
+GLIBC_2.21 getchar F
+GLIBC_2.21 getchar_unlocked F
+GLIBC_2.21 getcontext F
+GLIBC_2.21 getcwd F
+GLIBC_2.21 getdate F
+GLIBC_2.21 getdate_err D 0x4
+GLIBC_2.21 getdate_r F
+GLIBC_2.21 getdelim F
+GLIBC_2.21 getdirentries F
+GLIBC_2.21 getdirentries64 F
+GLIBC_2.21 getdomainname F
+GLIBC_2.21 getdtablesize F
+GLIBC_2.21 getegid F
+GLIBC_2.21 getenv F
+GLIBC_2.21 geteuid F
+GLIBC_2.21 getfsent F
+GLIBC_2.21 getfsfile F
+GLIBC_2.21 getfsspec F
+GLIBC_2.21 getgid F
+GLIBC_2.21 getgrent F
+GLIBC_2.21 getgrent_r F
+GLIBC_2.21 getgrgid F
+GLIBC_2.21 getgrgid_r F
+GLIBC_2.21 getgrnam F
+GLIBC_2.21 getgrnam_r F
+GLIBC_2.21 getgrouplist F
+GLIBC_2.21 getgroups F
+GLIBC_2.21 gethostbyaddr F
+GLIBC_2.21 gethostbyaddr_r F
+GLIBC_2.21 gethostbyname F
+GLIBC_2.21 gethostbyname2 F
+GLIBC_2.21 gethostbyname2_r F
+GLIBC_2.21 gethostbyname_r F
+GLIBC_2.21 gethostent F
+GLIBC_2.21 gethostent_r F
+GLIBC_2.21 gethostid F
+GLIBC_2.21 gethostname F
+GLIBC_2.21 getifaddrs F
+GLIBC_2.21 getipv4sourcefilter F
+GLIBC_2.21 getitimer F
+GLIBC_2.21 getline F
+GLIBC_2.21 getloadavg F
+GLIBC_2.21 getlogin F
+GLIBC_2.21 getlogin_r F
+GLIBC_2.21 getmntent F
+GLIBC_2.21 getmntent_r F
+GLIBC_2.21 getmsg F
+GLIBC_2.21 getnameinfo F
+GLIBC_2.21 getnetbyaddr F
+GLIBC_2.21 getnetbyaddr_r F
+GLIBC_2.21 getnetbyname F
+GLIBC_2.21 getnetbyname_r F
+GLIBC_2.21 getnetent F
+GLIBC_2.21 getnetent_r F
+GLIBC_2.21 getnetgrent F
+GLIBC_2.21 getnetgrent_r F
+GLIBC_2.21 getnetname F
+GLIBC_2.21 getopt F
+GLIBC_2.21 getopt_long F
+GLIBC_2.21 getopt_long_only F
+GLIBC_2.21 getpagesize F
+GLIBC_2.21 getpass F
+GLIBC_2.21 getpeername F
+GLIBC_2.21 getpgid F
+GLIBC_2.21 getpgrp F
+GLIBC_2.21 getpid F
+GLIBC_2.21 getpmsg F
+GLIBC_2.21 getppid F
+GLIBC_2.21 getpriority F
+GLIBC_2.21 getprotobyname F
+GLIBC_2.21 getprotobyname_r F
+GLIBC_2.21 getprotobynumber F
+GLIBC_2.21 getprotobynumber_r F
+GLIBC_2.21 getprotoent F
+GLIBC_2.21 getprotoent_r F
+GLIBC_2.21 getpt F
+GLIBC_2.21 getpublickey F
+GLIBC_2.21 getpw F
+GLIBC_2.21 getpwent F
+GLIBC_2.21 getpwent_r F
+GLIBC_2.21 getpwnam F
+GLIBC_2.21 getpwnam_r F
+GLIBC_2.21 getpwuid F
+GLIBC_2.21 getpwuid_r F
+GLIBC_2.21 getresgid F
+GLIBC_2.21 getresuid F
+GLIBC_2.21 getrlimit F
+GLIBC_2.21 getrlimit64 F
+GLIBC_2.21 getrpcbyname F
+GLIBC_2.21 getrpcbyname_r F
+GLIBC_2.21 getrpcbynumber F
+GLIBC_2.21 getrpcbynumber_r F
+GLIBC_2.21 getrpcent F
+GLIBC_2.21 getrpcent_r F
+GLIBC_2.21 getrpcport F
+GLIBC_2.21 getrusage F
+GLIBC_2.21 gets F
+GLIBC_2.21 getsecretkey F
+GLIBC_2.21 getservbyname F
+GLIBC_2.21 getservbyname_r F
+GLIBC_2.21 getservbyport F
+GLIBC_2.21 getservbyport_r F
+GLIBC_2.21 getservent F
+GLIBC_2.21 getservent_r F
+GLIBC_2.21 getsgent F
+GLIBC_2.21 getsgent_r F
+GLIBC_2.21 getsgnam F
+GLIBC_2.21 getsgnam_r F
+GLIBC_2.21 getsid F
+GLIBC_2.21 getsockname F
+GLIBC_2.21 getsockopt F
+GLIBC_2.21 getsourcefilter F
+GLIBC_2.21 getspent F
+GLIBC_2.21 getspent_r F
+GLIBC_2.21 getspnam F
+GLIBC_2.21 getspnam_r F
+GLIBC_2.21 getsubopt F
+GLIBC_2.21 gettext F
+GLIBC_2.21 gettimeofday F
+GLIBC_2.21 getttyent F
+GLIBC_2.21 getttynam F
+GLIBC_2.21 getuid F
+GLIBC_2.21 getusershell F
+GLIBC_2.21 getutent F
+GLIBC_2.21 getutent_r F
+GLIBC_2.21 getutid F
+GLIBC_2.21 getutid_r F
+GLIBC_2.21 getutline F
+GLIBC_2.21 getutline_r F
+GLIBC_2.21 getutmp F
+GLIBC_2.21 getutmpx F
+GLIBC_2.21 getutxent F
+GLIBC_2.21 getutxid F
+GLIBC_2.21 getutxline F
+GLIBC_2.21 getw F
+GLIBC_2.21 getwc F
+GLIBC_2.21 getwc_unlocked F
+GLIBC_2.21 getwchar F
+GLIBC_2.21 getwchar_unlocked F
+GLIBC_2.21 getwd F
+GLIBC_2.21 getxattr F
+GLIBC_2.21 glob F
+GLIBC_2.21 glob64 F
+GLIBC_2.21 glob_pattern_p F
+GLIBC_2.21 globfree F
+GLIBC_2.21 globfree64 F
+GLIBC_2.21 gmtime F
+GLIBC_2.21 gmtime_r F
+GLIBC_2.21 gnu_dev_major F
+GLIBC_2.21 gnu_dev_makedev F
+GLIBC_2.21 gnu_dev_minor F
+GLIBC_2.21 gnu_get_libc_release F
+GLIBC_2.21 gnu_get_libc_version F
+GLIBC_2.21 grantpt F
+GLIBC_2.21 group_member F
+GLIBC_2.21 gsignal F
+GLIBC_2.21 gtty F
+GLIBC_2.21 h_errlist D 0x14
+GLIBC_2.21 h_nerr D 0x4
+GLIBC_2.21 hasmntopt F
+GLIBC_2.21 hcreate F
+GLIBC_2.21 hcreate_r F
+GLIBC_2.21 hdestroy F
+GLIBC_2.21 hdestroy_r F
+GLIBC_2.21 herror F
+GLIBC_2.21 host2netname F
+GLIBC_2.21 hsearch F
+GLIBC_2.21 hsearch_r F
+GLIBC_2.21 hstrerror F
+GLIBC_2.21 htonl F
+GLIBC_2.21 htons F
+GLIBC_2.21 iconv F
+GLIBC_2.21 iconv_close F
+GLIBC_2.21 iconv_open F
+GLIBC_2.21 if_freenameindex F
+GLIBC_2.21 if_indextoname F
+GLIBC_2.21 if_nameindex F
+GLIBC_2.21 if_nametoindex F
+GLIBC_2.21 imaxabs F
+GLIBC_2.21 imaxdiv F
+GLIBC_2.21 in6addr_any D 0x10
+GLIBC_2.21 in6addr_loopback D 0x10
+GLIBC_2.21 index F
+GLIBC_2.21 inet6_opt_append F
+GLIBC_2.21 inet6_opt_find F
+GLIBC_2.21 inet6_opt_finish F
+GLIBC_2.21 inet6_opt_get_val F
+GLIBC_2.21 inet6_opt_init F
+GLIBC_2.21 inet6_opt_next F
+GLIBC_2.21 inet6_opt_set_val F
+GLIBC_2.21 inet6_option_alloc F
+GLIBC_2.21 inet6_option_append F
+GLIBC_2.21 inet6_option_find F
+GLIBC_2.21 inet6_option_init F
+GLIBC_2.21 inet6_option_next F
+GLIBC_2.21 inet6_option_space F
+GLIBC_2.21 inet6_rth_add F
+GLIBC_2.21 inet6_rth_getaddr F
+GLIBC_2.21 inet6_rth_init F
+GLIBC_2.21 inet6_rth_reverse F
+GLIBC_2.21 inet6_rth_segments F
+GLIBC_2.21 inet6_rth_space F
+GLIBC_2.21 inet_addr F
+GLIBC_2.21 inet_aton F
+GLIBC_2.21 inet_lnaof F
+GLIBC_2.21 inet_makeaddr F
+GLIBC_2.21 inet_netof F
+GLIBC_2.21 inet_network F
+GLIBC_2.21 inet_nsap_addr F
+GLIBC_2.21 inet_nsap_ntoa F
+GLIBC_2.21 inet_ntoa F
+GLIBC_2.21 inet_ntop F
+GLIBC_2.21 inet_pton F
+GLIBC_2.21 init_module F
+GLIBC_2.21 initgroups F
+GLIBC_2.21 initstate F
+GLIBC_2.21 initstate_r F
+GLIBC_2.21 innetgr F
+GLIBC_2.21 inotify_add_watch F
+GLIBC_2.21 inotify_init F
+GLIBC_2.21 inotify_init1 F
+GLIBC_2.21 inotify_rm_watch F
+GLIBC_2.21 insque F
+GLIBC_2.21 ioctl F
+GLIBC_2.21 iruserok F
+GLIBC_2.21 iruserok_af F
+GLIBC_2.21 isalnum F
+GLIBC_2.21 isalnum_l F
+GLIBC_2.21 isalpha F
+GLIBC_2.21 isalpha_l F
+GLIBC_2.21 isascii F
+GLIBC_2.21 isastream F
+GLIBC_2.21 isatty F
+GLIBC_2.21 isblank F
+GLIBC_2.21 isblank_l F
+GLIBC_2.21 iscntrl F
+GLIBC_2.21 iscntrl_l F
+GLIBC_2.21 isctype F
+GLIBC_2.21 isdigit F
+GLIBC_2.21 isdigit_l F
+GLIBC_2.21 isfdtype F
+GLIBC_2.21 isgraph F
+GLIBC_2.21 isgraph_l F
+GLIBC_2.21 isinf F
+GLIBC_2.21 isinff F
+GLIBC_2.21 isinfl F
+GLIBC_2.21 islower F
+GLIBC_2.21 islower_l F
+GLIBC_2.21 isnan F
+GLIBC_2.21 isnanf F
+GLIBC_2.21 isnanl F
+GLIBC_2.21 isprint F
+GLIBC_2.21 isprint_l F
+GLIBC_2.21 ispunct F
+GLIBC_2.21 ispunct_l F
+GLIBC_2.21 isspace F
+GLIBC_2.21 isspace_l F
+GLIBC_2.21 isupper F
+GLIBC_2.21 isupper_l F
+GLIBC_2.21 iswalnum F
+GLIBC_2.21 iswalnum_l F
+GLIBC_2.21 iswalpha F
+GLIBC_2.21 iswalpha_l F
+GLIBC_2.21 iswblank F
+GLIBC_2.21 iswblank_l F
+GLIBC_2.21 iswcntrl F
+GLIBC_2.21 iswcntrl_l F
+GLIBC_2.21 iswctype F
+GLIBC_2.21 iswctype_l F
+GLIBC_2.21 iswdigit F
+GLIBC_2.21 iswdigit_l F
+GLIBC_2.21 iswgraph F
+GLIBC_2.21 iswgraph_l F
+GLIBC_2.21 iswlower F
+GLIBC_2.21 iswlower_l F
+GLIBC_2.21 iswprint F
+GLIBC_2.21 iswprint_l F
+GLIBC_2.21 iswpunct F
+GLIBC_2.21 iswpunct_l F
+GLIBC_2.21 iswspace F
+GLIBC_2.21 iswspace_l F
+GLIBC_2.21 iswupper F
+GLIBC_2.21 iswupper_l F
+GLIBC_2.21 iswxdigit F
+GLIBC_2.21 iswxdigit_l F
+GLIBC_2.21 isxdigit F
+GLIBC_2.21 isxdigit_l F
+GLIBC_2.21 jrand48 F
+GLIBC_2.21 jrand48_r F
+GLIBC_2.21 key_decryptsession F
+GLIBC_2.21 key_decryptsession_pk F
+GLIBC_2.21 key_encryptsession F
+GLIBC_2.21 key_encryptsession_pk F
+GLIBC_2.21 key_gendes F
+GLIBC_2.21 key_get_conv F
+GLIBC_2.21 key_secretkey_is_set F
+GLIBC_2.21 key_setnet F
+GLIBC_2.21 key_setsecret F
+GLIBC_2.21 kill F
+GLIBC_2.21 killpg F
+GLIBC_2.21 klogctl F
+GLIBC_2.21 l64a F
+GLIBC_2.21 labs F
+GLIBC_2.21 lchmod F
+GLIBC_2.21 lchown F
+GLIBC_2.21 lckpwdf F
+GLIBC_2.21 lcong48 F
+GLIBC_2.21 lcong48_r F
+GLIBC_2.21 ldexp F
+GLIBC_2.21 ldexpf F
+GLIBC_2.21 ldexpl F
+GLIBC_2.21 ldiv F
+GLIBC_2.21 lfind F
+GLIBC_2.21 lgetxattr F
+GLIBC_2.21 link F
+GLIBC_2.21 linkat F
+GLIBC_2.21 listen F
+GLIBC_2.21 listxattr F
+GLIBC_2.21 llabs F
+GLIBC_2.21 lldiv F
+GLIBC_2.21 llistxattr F
+GLIBC_2.21 llseek F
+GLIBC_2.21 loc1 D 0x4
+GLIBC_2.21 loc2 D 0x4
+GLIBC_2.21 localeconv F
+GLIBC_2.21 localtime F
+GLIBC_2.21 localtime_r F
+GLIBC_2.21 lockf F
+GLIBC_2.21 lockf64 F
+GLIBC_2.21 locs D 0x4
+GLIBC_2.21 longjmp F
+GLIBC_2.21 lrand48 F
+GLIBC_2.21 lrand48_r F
+GLIBC_2.21 lremovexattr F
+GLIBC_2.21 lsearch F
+GLIBC_2.21 lseek F
+GLIBC_2.21 lseek64 F
+GLIBC_2.21 lsetxattr F
+GLIBC_2.21 lutimes F
+GLIBC_2.21 madvise F
+GLIBC_2.21 makecontext F
+GLIBC_2.21 mallinfo F
+GLIBC_2.21 malloc F
+GLIBC_2.21 malloc_get_state F
+GLIBC_2.21 malloc_info F
+GLIBC_2.21 malloc_set_state F
+GLIBC_2.21 malloc_stats F
+GLIBC_2.21 malloc_trim F
+GLIBC_2.21 malloc_usable_size F
+GLIBC_2.21 mallopt F
+GLIBC_2.21 mallwatch D 0x4
+GLIBC_2.21 mblen F
+GLIBC_2.21 mbrlen F
+GLIBC_2.21 mbrtoc16 F
+GLIBC_2.21 mbrtoc32 F
+GLIBC_2.21 mbrtowc F
+GLIBC_2.21 mbsinit F
+GLIBC_2.21 mbsnrtowcs F
+GLIBC_2.21 mbsrtowcs F
+GLIBC_2.21 mbstowcs F
+GLIBC_2.21 mbtowc F
+GLIBC_2.21 mcheck F
+GLIBC_2.21 mcheck_check_all F
+GLIBC_2.21 mcheck_pedantic F
+GLIBC_2.21 memalign F
+GLIBC_2.21 memccpy F
+GLIBC_2.21 memchr F
+GLIBC_2.21 memcmp F
+GLIBC_2.21 memcpy F
+GLIBC_2.21 memfrob F
+GLIBC_2.21 memmem F
+GLIBC_2.21 memmove F
+GLIBC_2.21 mempcpy F
+GLIBC_2.21 memrchr F
+GLIBC_2.21 memset F
+GLIBC_2.21 mincore F
+GLIBC_2.21 mkdir F
+GLIBC_2.21 mkdirat F
+GLIBC_2.21 mkdtemp F
+GLIBC_2.21 mkfifo F
+GLIBC_2.21 mkfifoat F
+GLIBC_2.21 mkostemp F
+GLIBC_2.21 mkostemp64 F
+GLIBC_2.21 mkostemps F
+GLIBC_2.21 mkostemps64 F
+GLIBC_2.21 mkstemp F
+GLIBC_2.21 mkstemp64 F
+GLIBC_2.21 mkstemps F
+GLIBC_2.21 mkstemps64 F
+GLIBC_2.21 mktemp F
+GLIBC_2.21 mktime F
+GLIBC_2.21 mlock F
+GLIBC_2.21 mlockall F
+GLIBC_2.21 mmap F
+GLIBC_2.21 mmap64 F
+GLIBC_2.21 modf F
+GLIBC_2.21 modff F
+GLIBC_2.21 modfl F
+GLIBC_2.21 moncontrol F
+GLIBC_2.21 monstartup F
+GLIBC_2.21 mount F
+GLIBC_2.21 mprobe F
+GLIBC_2.21 mprotect F
+GLIBC_2.21 mrand48 F
+GLIBC_2.21 mrand48_r F
+GLIBC_2.21 mremap F
+GLIBC_2.21 msgctl F
+GLIBC_2.21 msgget F
+GLIBC_2.21 msgrcv F
+GLIBC_2.21 msgsnd F
+GLIBC_2.21 msync F
+GLIBC_2.21 mtrace F
+GLIBC_2.21 munlock F
+GLIBC_2.21 munlockall F
+GLIBC_2.21 munmap F
+GLIBC_2.21 muntrace F
+GLIBC_2.21 name_to_handle_at F
+GLIBC_2.21 nanosleep F
+GLIBC_2.21 netname2host F
+GLIBC_2.21 netname2user F
+GLIBC_2.21 newlocale F
+GLIBC_2.21 nfsservctl F
+GLIBC_2.21 nftw F
+GLIBC_2.21 nftw64 F
+GLIBC_2.21 ngettext F
+GLIBC_2.21 nice F
+GLIBC_2.21 nl_langinfo F
+GLIBC_2.21 nl_langinfo_l F
+GLIBC_2.21 nrand48 F
+GLIBC_2.21 nrand48_r F
+GLIBC_2.21 ntohl F
+GLIBC_2.21 ntohs F
+GLIBC_2.21 ntp_adjtime F
+GLIBC_2.21 ntp_gettime F
+GLIBC_2.21 ntp_gettimex F
+GLIBC_2.21 obstack_alloc_failed_handler D 0x4
+GLIBC_2.21 obstack_exit_failure D 0x4
+GLIBC_2.21 obstack_free F
+GLIBC_2.21 obstack_printf F
+GLIBC_2.21 obstack_vprintf F
+GLIBC_2.21 on_exit F
+GLIBC_2.21 open F
+GLIBC_2.21 open64 F
+GLIBC_2.21 open_by_handle_at F
+GLIBC_2.21 open_memstream F
+GLIBC_2.21 open_wmemstream F
+GLIBC_2.21 openat F
+GLIBC_2.21 openat64 F
+GLIBC_2.21 opendir F
+GLIBC_2.21 openlog F
+GLIBC_2.21 optarg D 0x4
+GLIBC_2.21 opterr D 0x4
+GLIBC_2.21 optind D 0x4
+GLIBC_2.21 optopt D 0x4
+GLIBC_2.21 parse_printf_format F
+GLIBC_2.21 passwd2des F
+GLIBC_2.21 pathconf F
+GLIBC_2.21 pause F
+GLIBC_2.21 pclose F
+GLIBC_2.21 perror F
+GLIBC_2.21 personality F
+GLIBC_2.21 pipe F
+GLIBC_2.21 pipe2 F
+GLIBC_2.21 pivot_root F
+GLIBC_2.21 pmap_getmaps F
+GLIBC_2.21 pmap_getport F
+GLIBC_2.21 pmap_rmtcall F
+GLIBC_2.21 pmap_set F
+GLIBC_2.21 pmap_unset F
+GLIBC_2.21 poll F
+GLIBC_2.21 popen F
+GLIBC_2.21 posix_fadvise F
+GLIBC_2.21 posix_fadvise64 F
+GLIBC_2.21 posix_fallocate F
+GLIBC_2.21 posix_fallocate64 F
+GLIBC_2.21 posix_madvise F
+GLIBC_2.21 posix_memalign F
+GLIBC_2.21 posix_openpt F
+GLIBC_2.21 posix_spawn F
+GLIBC_2.21 posix_spawn_file_actions_addclose F
+GLIBC_2.21 posix_spawn_file_actions_adddup2 F
+GLIBC_2.21 posix_spawn_file_actions_addopen F
+GLIBC_2.21 posix_spawn_file_actions_destroy F
+GLIBC_2.21 posix_spawn_file_actions_init F
+GLIBC_2.21 posix_spawnattr_destroy F
+GLIBC_2.21 posix_spawnattr_getflags F
+GLIBC_2.21 posix_spawnattr_getpgroup F
+GLIBC_2.21 posix_spawnattr_getschedparam F
+GLIBC_2.21 posix_spawnattr_getschedpolicy F
+GLIBC_2.21 posix_spawnattr_getsigdefault F
+GLIBC_2.21 posix_spawnattr_getsigmask F
+GLIBC_2.21 posix_spawnattr_init F
+GLIBC_2.21 posix_spawnattr_setflags F
+GLIBC_2.21 posix_spawnattr_setpgroup F
+GLIBC_2.21 posix_spawnattr_setschedparam F
+GLIBC_2.21 posix_spawnattr_setschedpolicy F
+GLIBC_2.21 posix_spawnattr_setsigdefault F
+GLIBC_2.21 posix_spawnattr_setsigmask F
+GLIBC_2.21 posix_spawnp F
+GLIBC_2.21 ppoll F
+GLIBC_2.21 prctl F
+GLIBC_2.21 pread F
+GLIBC_2.21 pread64 F
+GLIBC_2.21 preadv F
+GLIBC_2.21 preadv64 F
+GLIBC_2.21 printf F
+GLIBC_2.21 printf_size F
+GLIBC_2.21 printf_size_info F
+GLIBC_2.21 prlimit F
+GLIBC_2.21 prlimit64 F
+GLIBC_2.21 process_vm_readv F
+GLIBC_2.21 process_vm_writev F
+GLIBC_2.21 profil F
+GLIBC_2.21 program_invocation_name D 0x4
+GLIBC_2.21 program_invocation_short_name D 0x4
+GLIBC_2.21 pselect F
+GLIBC_2.21 psiginfo F
+GLIBC_2.21 psignal F
+GLIBC_2.21 pthread_attr_destroy F
+GLIBC_2.21 pthread_attr_getdetachstate F
+GLIBC_2.21 pthread_attr_getinheritsched F
+GLIBC_2.21 pthread_attr_getschedparam F
+GLIBC_2.21 pthread_attr_getschedpolicy F
+GLIBC_2.21 pthread_attr_getscope F
+GLIBC_2.21 pthread_attr_init F
+GLIBC_2.21 pthread_attr_setdetachstate F
+GLIBC_2.21 pthread_attr_setinheritsched F
+GLIBC_2.21 pthread_attr_setschedparam F
+GLIBC_2.21 pthread_attr_setschedpolicy F
+GLIBC_2.21 pthread_attr_setscope F
+GLIBC_2.21 pthread_cond_broadcast F
+GLIBC_2.21 pthread_cond_destroy F
+GLIBC_2.21 pthread_cond_init F
+GLIBC_2.21 pthread_cond_signal F
+GLIBC_2.21 pthread_cond_timedwait F
+GLIBC_2.21 pthread_cond_wait F
+GLIBC_2.21 pthread_condattr_destroy F
+GLIBC_2.21 pthread_condattr_init F
+GLIBC_2.21 pthread_equal F
+GLIBC_2.21 pthread_exit F
+GLIBC_2.21 pthread_getschedparam F
+GLIBC_2.21 pthread_mutex_destroy F
+GLIBC_2.21 pthread_mutex_init F
+GLIBC_2.21 pthread_mutex_lock F
+GLIBC_2.21 pthread_mutex_unlock F
+GLIBC_2.21 pthread_self F
+GLIBC_2.21 pthread_setcancelstate F
+GLIBC_2.21 pthread_setcanceltype F
+GLIBC_2.21 pthread_setschedparam F
+GLIBC_2.21 ptrace F
+GLIBC_2.21 ptsname F
+GLIBC_2.21 ptsname_r F
+GLIBC_2.21 putc F
+GLIBC_2.21 putc_unlocked F
+GLIBC_2.21 putchar F
+GLIBC_2.21 putchar_unlocked F
+GLIBC_2.21 putenv F
+GLIBC_2.21 putgrent F
+GLIBC_2.21 putmsg F
+GLIBC_2.21 putpmsg F
+GLIBC_2.21 putpwent F
+GLIBC_2.21 puts F
+GLIBC_2.21 putsgent F
+GLIBC_2.21 putspent F
+GLIBC_2.21 pututline F
+GLIBC_2.21 pututxline F
+GLIBC_2.21 putw F
+GLIBC_2.21 putwc F
+GLIBC_2.21 putwc_unlocked F
+GLIBC_2.21 putwchar F
+GLIBC_2.21 putwchar_unlocked F
+GLIBC_2.21 pvalloc F
+GLIBC_2.21 pwrite F
+GLIBC_2.21 pwrite64 F
+GLIBC_2.21 pwritev F
+GLIBC_2.21 pwritev64 F
+GLIBC_2.21 qecvt F
+GLIBC_2.21 qecvt_r F
+GLIBC_2.21 qfcvt F
+GLIBC_2.21 qfcvt_r F
+GLIBC_2.21 qgcvt F
+GLIBC_2.21 qsort F
+GLIBC_2.21 qsort_r F
+GLIBC_2.21 query_module F
+GLIBC_2.21 quick_exit F
+GLIBC_2.21 quotactl F
+GLIBC_2.21 raise F
+GLIBC_2.21 rand F
+GLIBC_2.21 rand_r F
+GLIBC_2.21 random F
+GLIBC_2.21 random_r F
+GLIBC_2.21 rawmemchr F
+GLIBC_2.21 rcmd F
+GLIBC_2.21 rcmd_af F
+GLIBC_2.21 re_comp F
+GLIBC_2.21 re_compile_fastmap F
+GLIBC_2.21 re_compile_pattern F
+GLIBC_2.21 re_exec F
+GLIBC_2.21 re_match F
+GLIBC_2.21 re_match_2 F
+GLIBC_2.21 re_search F
+GLIBC_2.21 re_search_2 F
+GLIBC_2.21 re_set_registers F
+GLIBC_2.21 re_set_syntax F
+GLIBC_2.21 re_syntax_options D 0x4
+GLIBC_2.21 read F
+GLIBC_2.21 readahead F
+GLIBC_2.21 readdir F
+GLIBC_2.21 readdir64 F
+GLIBC_2.21 readdir64_r F
+GLIBC_2.21 readdir_r F
+GLIBC_2.21 readlink F
+GLIBC_2.21 readlinkat F
+GLIBC_2.21 readv F
+GLIBC_2.21 realloc F
+GLIBC_2.21 realpath F
+GLIBC_2.21 reboot F
+GLIBC_2.21 recv F
+GLIBC_2.21 recvfrom F
+GLIBC_2.21 recvmmsg F
+GLIBC_2.21 recvmsg F
+GLIBC_2.21 regcomp F
+GLIBC_2.21 regerror F
+GLIBC_2.21 regexec F
+GLIBC_2.21 regfree F
+GLIBC_2.21 register_printf_function F
+GLIBC_2.21 register_printf_modifier F
+GLIBC_2.21 register_printf_specifier F
+GLIBC_2.21 register_printf_type F
+GLIBC_2.21 registerrpc F
+GLIBC_2.21 remap_file_pages F
+GLIBC_2.21 remove F
+GLIBC_2.21 removexattr F
+GLIBC_2.21 remque F
+GLIBC_2.21 rename F
+GLIBC_2.21 renameat F
+GLIBC_2.21 revoke F
+GLIBC_2.21 rewind F
+GLIBC_2.21 rewinddir F
+GLIBC_2.21 rexec F
+GLIBC_2.21 rexec_af F
+GLIBC_2.21 rexecoptions D 0x4
+GLIBC_2.21 rindex F
+GLIBC_2.21 rmdir F
+GLIBC_2.21 rpc_createerr D 0x10
+GLIBC_2.21 rpmatch F
+GLIBC_2.21 rresvport F
+GLIBC_2.21 rresvport_af F
+GLIBC_2.21 rtime F
+GLIBC_2.21 ruserok F
+GLIBC_2.21 ruserok_af F
+GLIBC_2.21 ruserpass F
+GLIBC_2.21 sbrk F
+GLIBC_2.21 scalbn F
+GLIBC_2.21 scalbnf F
+GLIBC_2.21 scalbnl F
+GLIBC_2.21 scandir F
+GLIBC_2.21 scandir64 F
+GLIBC_2.21 scandirat F
+GLIBC_2.21 scandirat64 F
+GLIBC_2.21 scanf F
+GLIBC_2.21 sched_get_priority_max F
+GLIBC_2.21 sched_get_priority_min F
+GLIBC_2.21 sched_getaffinity F
+GLIBC_2.21 sched_getcpu F
+GLIBC_2.21 sched_getparam F
+GLIBC_2.21 sched_getscheduler F
+GLIBC_2.21 sched_rr_get_interval F
+GLIBC_2.21 sched_setaffinity F
+GLIBC_2.21 sched_setparam F
+GLIBC_2.21 sched_setscheduler F
+GLIBC_2.21 sched_yield F
+GLIBC_2.21 secure_getenv F
+GLIBC_2.21 seed48 F
+GLIBC_2.21 seed48_r F
+GLIBC_2.21 seekdir F
+GLIBC_2.21 select F
+GLIBC_2.21 semctl F
+GLIBC_2.21 semget F
+GLIBC_2.21 semop F
+GLIBC_2.21 semtimedop F
+GLIBC_2.21 send F
+GLIBC_2.21 sendfile F
+GLIBC_2.21 sendfile64 F
+GLIBC_2.21 sendmmsg F
+GLIBC_2.21 sendmsg F
+GLIBC_2.21 sendto F
+GLIBC_2.21 setaliasent F
+GLIBC_2.21 setbuf F
+GLIBC_2.21 setbuffer F
+GLIBC_2.21 setcontext F
+GLIBC_2.21 setdomainname F
+GLIBC_2.21 setegid F
+GLIBC_2.21 setenv F
+GLIBC_2.21 seteuid F
+GLIBC_2.21 setfsent F
+GLIBC_2.21 setfsgid F
+GLIBC_2.21 setfsuid F
+GLIBC_2.21 setgid F
+GLIBC_2.21 setgrent F
+GLIBC_2.21 setgroups F
+GLIBC_2.21 sethostent F
+GLIBC_2.21 sethostid F
+GLIBC_2.21 sethostname F
+GLIBC_2.21 setipv4sourcefilter F
+GLIBC_2.21 setitimer F
+GLIBC_2.21 setjmp F
+GLIBC_2.21 setlinebuf F
+GLIBC_2.21 setlocale F
+GLIBC_2.21 setlogin F
+GLIBC_2.21 setlogmask F
+GLIBC_2.21 setmntent F
+GLIBC_2.21 setnetent F
+GLIBC_2.21 setnetgrent F
+GLIBC_2.21 setns F
+GLIBC_2.21 setpgid F
+GLIBC_2.21 setpgrp F
+GLIBC_2.21 setpriority F
+GLIBC_2.21 setprotoent F
+GLIBC_2.21 setpwent F
+GLIBC_2.21 setregid F
+GLIBC_2.21 setresgid F
+GLIBC_2.21 setresuid F
+GLIBC_2.21 setreuid F
+GLIBC_2.21 setrlimit F
+GLIBC_2.21 setrlimit64 F
+GLIBC_2.21 setrpcent F
+GLIBC_2.21 setservent F
+GLIBC_2.21 setsgent F
+GLIBC_2.21 setsid F
+GLIBC_2.21 setsockopt F
+GLIBC_2.21 setsourcefilter F
+GLIBC_2.21 setspent F
+GLIBC_2.21 setstate F
+GLIBC_2.21 setstate_r F
+GLIBC_2.21 settimeofday F
+GLIBC_2.21 setttyent F
+GLIBC_2.21 setuid F
+GLIBC_2.21 setusershell F
+GLIBC_2.21 setutent F
+GLIBC_2.21 setutxent F
+GLIBC_2.21 setvbuf F
+GLIBC_2.21 setxattr F
+GLIBC_2.21 sgetsgent F
+GLIBC_2.21 sgetsgent_r F
+GLIBC_2.21 sgetspent F
+GLIBC_2.21 sgetspent_r F
+GLIBC_2.21 shmat F
+GLIBC_2.21 shmctl F
+GLIBC_2.21 shmdt F
+GLIBC_2.21 shmget F
+GLIBC_2.21 shutdown F
+GLIBC_2.21 sigaction F
+GLIBC_2.21 sigaddset F
+GLIBC_2.21 sigaltstack F
+GLIBC_2.21 sigandset F
+GLIBC_2.21 sigblock F
+GLIBC_2.21 sigdelset F
+GLIBC_2.21 sigemptyset F
+GLIBC_2.21 sigfillset F
+GLIBC_2.21 siggetmask F
+GLIBC_2.21 sighold F
+GLIBC_2.21 sigignore F
+GLIBC_2.21 siginterrupt F
+GLIBC_2.21 sigisemptyset F
+GLIBC_2.21 sigismember F
+GLIBC_2.21 siglongjmp F
+GLIBC_2.21 signal F
+GLIBC_2.21 signalfd F
+GLIBC_2.21 sigorset F
+GLIBC_2.21 sigpause F
+GLIBC_2.21 sigpending F
+GLIBC_2.21 sigprocmask F
+GLIBC_2.21 sigqueue F
+GLIBC_2.21 sigrelse F
+GLIBC_2.21 sigreturn F
+GLIBC_2.21 sigset F
+GLIBC_2.21 sigsetmask F
+GLIBC_2.21 sigstack F
+GLIBC_2.21 sigsuspend F
+GLIBC_2.21 sigtimedwait F
+GLIBC_2.21 sigwait F
+GLIBC_2.21 sigwaitinfo F
+GLIBC_2.21 sleep F
+GLIBC_2.21 snprintf F
+GLIBC_2.21 sockatmark F
+GLIBC_2.21 socket F
+GLIBC_2.21 socketpair F
+GLIBC_2.21 splice F
+GLIBC_2.21 sprintf F
+GLIBC_2.21 sprofil F
+GLIBC_2.21 srand F
+GLIBC_2.21 srand48 F
+GLIBC_2.21 srand48_r F
+GLIBC_2.21 srandom F
+GLIBC_2.21 srandom_r F
+GLIBC_2.21 sscanf F
+GLIBC_2.21 ssignal F
+GLIBC_2.21 sstk F
+GLIBC_2.21 statfs F
+GLIBC_2.21 statfs64 F
+GLIBC_2.21 statvfs F
+GLIBC_2.21 statvfs64 F
+GLIBC_2.21 stderr D 0x4
+GLIBC_2.21 stdin D 0x4
+GLIBC_2.21 stdout D 0x4
+GLIBC_2.21 step F
+GLIBC_2.21 stime F
+GLIBC_2.21 stpcpy F
+GLIBC_2.21 stpncpy F
+GLIBC_2.21 strcasecmp F
+GLIBC_2.21 strcasecmp_l F
+GLIBC_2.21 strcasestr F
+GLIBC_2.21 strcat F
+GLIBC_2.21 strchr F
+GLIBC_2.21 strchrnul F
+GLIBC_2.21 strcmp F
+GLIBC_2.21 strcoll F
+GLIBC_2.21 strcoll_l F
+GLIBC_2.21 strcpy F
+GLIBC_2.21 strcspn F
+GLIBC_2.21 strdup F
+GLIBC_2.21 strerror F
+GLIBC_2.21 strerror_l F
+GLIBC_2.21 strerror_r F
+GLIBC_2.21 strfmon F
+GLIBC_2.21 strfmon_l F
+GLIBC_2.21 strfry F
+GLIBC_2.21 strftime F
+GLIBC_2.21 strftime_l F
+GLIBC_2.21 strlen F
+GLIBC_2.21 strncasecmp F
+GLIBC_2.21 strncasecmp_l F
+GLIBC_2.21 strncat F
+GLIBC_2.21 strncmp F
+GLIBC_2.21 strncpy F
+GLIBC_2.21 strndup F
+GLIBC_2.21 strnlen F
+GLIBC_2.21 strpbrk F
+GLIBC_2.21 strptime F
+GLIBC_2.21 strptime_l F
+GLIBC_2.21 strrchr F
+GLIBC_2.21 strsep F
+GLIBC_2.21 strsignal F
+GLIBC_2.21 strspn F
+GLIBC_2.21 strstr F
+GLIBC_2.21 strtod F
+GLIBC_2.21 strtod_l F
+GLIBC_2.21 strtof F
+GLIBC_2.21 strtof_l F
+GLIBC_2.21 strtoimax F
+GLIBC_2.21 strtok F
+GLIBC_2.21 strtok_r F
+GLIBC_2.21 strtol F
+GLIBC_2.21 strtol_l F
+GLIBC_2.21 strtold F
+GLIBC_2.21 strtold_l F
+GLIBC_2.21 strtoll F
+GLIBC_2.21 strtoll_l F
+GLIBC_2.21 strtoq F
+GLIBC_2.21 strtoul F
+GLIBC_2.21 strtoul_l F
+GLIBC_2.21 strtoull F
+GLIBC_2.21 strtoull_l F
+GLIBC_2.21 strtoumax F
+GLIBC_2.21 strtouq F
+GLIBC_2.21 strverscmp F
+GLIBC_2.21 strxfrm F
+GLIBC_2.21 strxfrm_l F
+GLIBC_2.21 stty F
+GLIBC_2.21 svc_exit F
+GLIBC_2.21 svc_fdset D 0x80
+GLIBC_2.21 svc_getreq F
+GLIBC_2.21 svc_getreq_common F
+GLIBC_2.21 svc_getreq_poll F
+GLIBC_2.21 svc_getreqset F
+GLIBC_2.21 svc_max_pollfd D 0x4
+GLIBC_2.21 svc_pollfd D 0x4
+GLIBC_2.21 svc_register F
+GLIBC_2.21 svc_run F
+GLIBC_2.21 svc_sendreply F
+GLIBC_2.21 svc_unregister F
+GLIBC_2.21 svcauthdes_stats D 0xc
+GLIBC_2.21 svcerr_auth F
+GLIBC_2.21 svcerr_decode F
+GLIBC_2.21 svcerr_noproc F
+GLIBC_2.21 svcerr_noprog F
+GLIBC_2.21 svcerr_progvers F
+GLIBC_2.21 svcerr_systemerr F
+GLIBC_2.21 svcerr_weakauth F
+GLIBC_2.21 svcfd_create F
+GLIBC_2.21 svcraw_create F
+GLIBC_2.21 svctcp_create F
+GLIBC_2.21 svcudp_bufcreate F
+GLIBC_2.21 svcudp_create F
+GLIBC_2.21 svcudp_enablecache F
+GLIBC_2.21 svcunix_create F
+GLIBC_2.21 svcunixfd_create F
+GLIBC_2.21 swab F
+GLIBC_2.21 swapcontext F
+GLIBC_2.21 swapoff F
+GLIBC_2.21 swapon F
+GLIBC_2.21 swprintf F
+GLIBC_2.21 swscanf F
+GLIBC_2.21 symlink F
+GLIBC_2.21 symlinkat F
+GLIBC_2.21 sync F
+GLIBC_2.21 sync_file_range F
+GLIBC_2.21 syncfs F
+GLIBC_2.21 sys_errlist D 0x21c
+GLIBC_2.21 sys_nerr D 0x4
+GLIBC_2.21 sys_sigabbrev D 0x104
+GLIBC_2.21 sys_siglist D 0x104
+GLIBC_2.21 syscall F
+GLIBC_2.21 sysconf F
+GLIBC_2.21 sysctl F
+GLIBC_2.21 sysinfo F
+GLIBC_2.21 syslog F
+GLIBC_2.21 system F
+GLIBC_2.21 sysv_signal F
+GLIBC_2.21 tcdrain F
+GLIBC_2.21 tcflow F
+GLIBC_2.21 tcflush F
+GLIBC_2.21 tcgetattr F
+GLIBC_2.21 tcgetpgrp F
+GLIBC_2.21 tcgetsid F
+GLIBC_2.21 tcsendbreak F
+GLIBC_2.21 tcsetattr F
+GLIBC_2.21 tcsetpgrp F
+GLIBC_2.21 tdelete F
+GLIBC_2.21 tdestroy F
+GLIBC_2.21 tee F
+GLIBC_2.21 telldir F
+GLIBC_2.21 tempnam F
+GLIBC_2.21 textdomain F
+GLIBC_2.21 tfind F
+GLIBC_2.21 time F
+GLIBC_2.21 timegm F
+GLIBC_2.21 timelocal F
+GLIBC_2.21 timerfd_create F
+GLIBC_2.21 timerfd_gettime F
+GLIBC_2.21 timerfd_settime F
+GLIBC_2.21 times F
+GLIBC_2.21 timespec_get F
+GLIBC_2.21 timezone D 0x4
+GLIBC_2.21 tmpfile F
+GLIBC_2.21 tmpfile64 F
+GLIBC_2.21 tmpnam F
+GLIBC_2.21 tmpnam_r F
+GLIBC_2.21 toascii F
+GLIBC_2.21 tolower F
+GLIBC_2.21 tolower_l F
+GLIBC_2.21 toupper F
+GLIBC_2.21 toupper_l F
+GLIBC_2.21 towctrans F
+GLIBC_2.21 towctrans_l F
+GLIBC_2.21 towlower F
+GLIBC_2.21 towlower_l F
+GLIBC_2.21 towupper F
+GLIBC_2.21 towupper_l F
+GLIBC_2.21 tr_break F
+GLIBC_2.21 truncate F
+GLIBC_2.21 truncate64 F
+GLIBC_2.21 tsearch F
+GLIBC_2.21 ttyname F
+GLIBC_2.21 ttyname_r F
+GLIBC_2.21 ttyslot F
+GLIBC_2.21 twalk F
+GLIBC_2.21 tzname D 0x8
+GLIBC_2.21 tzset F
+GLIBC_2.21 ualarm F
+GLIBC_2.21 ulckpwdf F
+GLIBC_2.21 ulimit F
+GLIBC_2.21 umask F
+GLIBC_2.21 umount F
+GLIBC_2.21 umount2 F
+GLIBC_2.21 uname F
+GLIBC_2.21 ungetc F
+GLIBC_2.21 ungetwc F
+GLIBC_2.21 unlink F
+GLIBC_2.21 unlinkat F
+GLIBC_2.21 unlockpt F
+GLIBC_2.21 unsetenv F
+GLIBC_2.21 unshare F
+GLIBC_2.21 updwtmp F
+GLIBC_2.21 updwtmpx F
+GLIBC_2.21 uselib F
+GLIBC_2.21 uselocale F
+GLIBC_2.21 user2netname F
+GLIBC_2.21 usleep F
+GLIBC_2.21 ustat F
+GLIBC_2.21 utime F
+GLIBC_2.21 utimensat F
+GLIBC_2.21 utimes F
+GLIBC_2.21 utmpname F
+GLIBC_2.21 utmpxname F
+GLIBC_2.21 valloc F
+GLIBC_2.21 vasprintf F
+GLIBC_2.21 vdprintf F
+GLIBC_2.21 verr F
+GLIBC_2.21 verrx F
+GLIBC_2.21 versionsort F
+GLIBC_2.21 versionsort64 F
+GLIBC_2.21 vfork F
+GLIBC_2.21 vfprintf F
+GLIBC_2.21 vfscanf F
+GLIBC_2.21 vfwprintf F
+GLIBC_2.21 vfwscanf F
+GLIBC_2.21 vhangup F
+GLIBC_2.21 vlimit F
+GLIBC_2.21 vmsplice F
+GLIBC_2.21 vprintf F
+GLIBC_2.21 vscanf F
+GLIBC_2.21 vsnprintf F
+GLIBC_2.21 vsprintf F
+GLIBC_2.21 vsscanf F
+GLIBC_2.21 vswprintf F
+GLIBC_2.21 vswscanf F
+GLIBC_2.21 vsyslog F
+GLIBC_2.21 vtimes F
+GLIBC_2.21 vwarn F
+GLIBC_2.21 vwarnx F
+GLIBC_2.21 vwprintf F
+GLIBC_2.21 vwscanf F
+GLIBC_2.21 wait F
+GLIBC_2.21 wait3 F
+GLIBC_2.21 wait4 F
+GLIBC_2.21 waitid F
+GLIBC_2.21 waitpid F
+GLIBC_2.21 warn F
+GLIBC_2.21 warnx F
+GLIBC_2.21 wcpcpy F
+GLIBC_2.21 wcpncpy F
+GLIBC_2.21 wcrtomb F
+GLIBC_2.21 wcscasecmp F
+GLIBC_2.21 wcscasecmp_l F
+GLIBC_2.21 wcscat F
+GLIBC_2.21 wcschr F
+GLIBC_2.21 wcschrnul F
+GLIBC_2.21 wcscmp F
+GLIBC_2.21 wcscoll F
+GLIBC_2.21 wcscoll_l F
+GLIBC_2.21 wcscpy F
+GLIBC_2.21 wcscspn F
+GLIBC_2.21 wcsdup F
+GLIBC_2.21 wcsftime F
+GLIBC_2.21 wcsftime_l F
+GLIBC_2.21 wcslen F
+GLIBC_2.21 wcsncasecmp F
+GLIBC_2.21 wcsncasecmp_l F
+GLIBC_2.21 wcsncat F
+GLIBC_2.21 wcsncmp F
+GLIBC_2.21 wcsncpy F
+GLIBC_2.21 wcsnlen F
+GLIBC_2.21 wcsnrtombs F
+GLIBC_2.21 wcspbrk F
+GLIBC_2.21 wcsrchr F
+GLIBC_2.21 wcsrtombs F
+GLIBC_2.21 wcsspn F
+GLIBC_2.21 wcsstr F
+GLIBC_2.21 wcstod F
+GLIBC_2.21 wcstod_l F
+GLIBC_2.21 wcstof F
+GLIBC_2.21 wcstof_l F
+GLIBC_2.21 wcstoimax F
+GLIBC_2.21 wcstok F
+GLIBC_2.21 wcstol F
+GLIBC_2.21 wcstol_l F
+GLIBC_2.21 wcstold F
+GLIBC_2.21 wcstold_l F
+GLIBC_2.21 wcstoll F
+GLIBC_2.21 wcstoll_l F
+GLIBC_2.21 wcstombs F
+GLIBC_2.21 wcstoq F
+GLIBC_2.21 wcstoul F
+GLIBC_2.21 wcstoul_l F
+GLIBC_2.21 wcstoull F
+GLIBC_2.21 wcstoull_l F
+GLIBC_2.21 wcstoumax F
+GLIBC_2.21 wcstouq F
+GLIBC_2.21 wcswcs F
+GLIBC_2.21 wcswidth F
+GLIBC_2.21 wcsxfrm F
+GLIBC_2.21 wcsxfrm_l F
+GLIBC_2.21 wctob F
+GLIBC_2.21 wctomb F
+GLIBC_2.21 wctrans F
+GLIBC_2.21 wctrans_l F
+GLIBC_2.21 wctype F
+GLIBC_2.21 wctype_l F
+GLIBC_2.21 wcwidth F
+GLIBC_2.21 wmemchr F
+GLIBC_2.21 wmemcmp F
+GLIBC_2.21 wmemcpy F
+GLIBC_2.21 wmemmove F
+GLIBC_2.21 wmempcpy F
+GLIBC_2.21 wmemset F
+GLIBC_2.21 wordexp F
+GLIBC_2.21 wordfree F
+GLIBC_2.21 wprintf F
+GLIBC_2.21 write F
+GLIBC_2.21 writev F
+GLIBC_2.21 wscanf F
+GLIBC_2.21 xdecrypt F
+GLIBC_2.21 xdr_accepted_reply F
+GLIBC_2.21 xdr_array F
+GLIBC_2.21 xdr_authdes_cred F
+GLIBC_2.21 xdr_authdes_verf F
+GLIBC_2.21 xdr_authunix_parms F
+GLIBC_2.21 xdr_bool F
+GLIBC_2.21 xdr_bytes F
+GLIBC_2.21 xdr_callhdr F
+GLIBC_2.21 xdr_callmsg F
+GLIBC_2.21 xdr_char F
+GLIBC_2.21 xdr_cryptkeyarg F
+GLIBC_2.21 xdr_cryptkeyarg2 F
+GLIBC_2.21 xdr_cryptkeyres F
+GLIBC_2.21 xdr_des_block F
+GLIBC_2.21 xdr_double F
+GLIBC_2.21 xdr_enum F
+GLIBC_2.21 xdr_float F
+GLIBC_2.21 xdr_free F
+GLIBC_2.21 xdr_getcredres F
+GLIBC_2.21 xdr_hyper F
+GLIBC_2.21 xdr_int F
+GLIBC_2.21 xdr_int16_t F
+GLIBC_2.21 xdr_int32_t F
+GLIBC_2.21 xdr_int64_t F
+GLIBC_2.21 xdr_int8_t F
+GLIBC_2.21 xdr_key_netstarg F
+GLIBC_2.21 xdr_key_netstres F
+GLIBC_2.21 xdr_keybuf F
+GLIBC_2.21 xdr_keystatus F
+GLIBC_2.21 xdr_long F
+GLIBC_2.21 xdr_longlong_t F
+GLIBC_2.21 xdr_netnamestr F
+GLIBC_2.21 xdr_netobj F
+GLIBC_2.21 xdr_opaque F
+GLIBC_2.21 xdr_opaque_auth F
+GLIBC_2.21 xdr_pmap F
+GLIBC_2.21 xdr_pmaplist F
+GLIBC_2.21 xdr_pointer F
+GLIBC_2.21 xdr_quad_t F
+GLIBC_2.21 xdr_reference F
+GLIBC_2.21 xdr_rejected_reply F
+GLIBC_2.21 xdr_replymsg F
+GLIBC_2.21 xdr_rmtcall_args F
+GLIBC_2.21 xdr_rmtcallres F
+GLIBC_2.21 xdr_short F
+GLIBC_2.21 xdr_sizeof F
+GLIBC_2.21 xdr_string F
+GLIBC_2.21 xdr_u_char F
+GLIBC_2.21 xdr_u_hyper F
+GLIBC_2.21 xdr_u_int F
+GLIBC_2.21 xdr_u_long F
+GLIBC_2.21 xdr_u_longlong_t F
+GLIBC_2.21 xdr_u_quad_t F
+GLIBC_2.21 xdr_u_short F
+GLIBC_2.21 xdr_uint16_t F
+GLIBC_2.21 xdr_uint32_t F
+GLIBC_2.21 xdr_uint64_t F
+GLIBC_2.21 xdr_uint8_t F
+GLIBC_2.21 xdr_union F
+GLIBC_2.21 xdr_unixcred F
+GLIBC_2.21 xdr_vector F
+GLIBC_2.21 xdr_void F
+GLIBC_2.21 xdr_wrapstring F
+GLIBC_2.21 xdrmem_create F
+GLIBC_2.21 xdrrec_create F
+GLIBC_2.21 xdrrec_endofrecord F
+GLIBC_2.21 xdrrec_eof F
+GLIBC_2.21 xdrrec_skiprecord F
+GLIBC_2.21 xdrstdio_create F
+GLIBC_2.21 xencrypt F
+GLIBC_2.21 xprt_register F
+GLIBC_2.21 xprt_unregister F
+GLIBC_2.22 GLIBC_2.22 A
+GLIBC_2.22 fmemopen F
+GLIBC_2.23 GLIBC_2.23 A
+GLIBC_2.23 fts64_children F
+GLIBC_2.23 fts64_close F
+GLIBC_2.23 fts64_open F
+GLIBC_2.23 fts64_read F
+GLIBC_2.23 fts64_set F
+GLIBC_2.24 GLIBC_2.24 A
+GLIBC_2.24 quick_exit F
+GLIBC_2.25 GLIBC_2.25 A
+GLIBC_2.25 __explicit_bzero_chk F
+GLIBC_2.25 explicit_bzero F
+GLIBC_2.25 getentropy F
+GLIBC_2.25 getrandom F
+GLIBC_2.25 strfromd F
+GLIBC_2.25 strfromf F
+GLIBC_2.25 strfroml F
+GLIBC_2.26 GLIBC_2.26 A
+GLIBC_2.26 preadv2 F
+GLIBC_2.26 preadv64v2 F
+GLIBC_2.26 pwritev2 F
+GLIBC_2.26 pwritev64v2 F
+GLIBC_2.26 reallocarray F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/nios2/libcrypt.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/nios2/libcrypt.abilist
new file mode 100644
index 0000000000..dae6b522ac
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/nios2/libcrypt.abilist
@@ -0,0 +1,8 @@
+GLIBC_2.21 GLIBC_2.21 A
+GLIBC_2.21 crypt F
+GLIBC_2.21 crypt_r F
+GLIBC_2.21 encrypt F
+GLIBC_2.21 encrypt_r F
+GLIBC_2.21 fcrypt F
+GLIBC_2.21 setkey F
+GLIBC_2.21 setkey_r F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/nios2/libdl.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/nios2/libdl.abilist
new file mode 100644
index 0000000000..ae62e3f80e
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/nios2/libdl.abilist
@@ -0,0 +1,10 @@
+GLIBC_2.21 GLIBC_2.21 A
+GLIBC_2.21 dladdr F
+GLIBC_2.21 dladdr1 F
+GLIBC_2.21 dlclose F
+GLIBC_2.21 dlerror F
+GLIBC_2.21 dlinfo F
+GLIBC_2.21 dlmopen F
+GLIBC_2.21 dlopen F
+GLIBC_2.21 dlsym F
+GLIBC_2.21 dlvsym F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/nios2/libm.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/nios2/libm.abilist
new file mode 100644
index 0000000000..c858ed5907
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/nios2/libm.abilist
@@ -0,0 +1,430 @@
+GLIBC_2.21 GLIBC_2.21 A
+GLIBC_2.21 _LIB_VERSION D 0x4
+GLIBC_2.21 __acos_finite F
+GLIBC_2.21 __acosf_finite F
+GLIBC_2.21 __acosh_finite F
+GLIBC_2.21 __acoshf_finite F
+GLIBC_2.21 __asin_finite F
+GLIBC_2.21 __asinf_finite F
+GLIBC_2.21 __atan2_finite F
+GLIBC_2.21 __atan2f_finite F
+GLIBC_2.21 __atanh_finite F
+GLIBC_2.21 __atanhf_finite F
+GLIBC_2.21 __clog10 F
+GLIBC_2.21 __clog10f F
+GLIBC_2.21 __clog10l F
+GLIBC_2.21 __cosh_finite F
+GLIBC_2.21 __coshf_finite F
+GLIBC_2.21 __exp10_finite F
+GLIBC_2.21 __exp10f_finite F
+GLIBC_2.21 __exp2_finite F
+GLIBC_2.21 __exp2f_finite F
+GLIBC_2.21 __exp_finite F
+GLIBC_2.21 __expf_finite F
+GLIBC_2.21 __finite F
+GLIBC_2.21 __finitef F
+GLIBC_2.21 __finitel F
+GLIBC_2.21 __fmod_finite F
+GLIBC_2.21 __fmodf_finite F
+GLIBC_2.21 __fpclassify F
+GLIBC_2.21 __fpclassifyf F
+GLIBC_2.21 __gamma_r_finite F
+GLIBC_2.21 __gammaf_r_finite F
+GLIBC_2.21 __hypot_finite F
+GLIBC_2.21 __hypotf_finite F
+GLIBC_2.21 __issignaling F
+GLIBC_2.21 __issignalingf F
+GLIBC_2.21 __j0_finite F
+GLIBC_2.21 __j0f_finite F
+GLIBC_2.21 __j1_finite F
+GLIBC_2.21 __j1f_finite F
+GLIBC_2.21 __jn_finite F
+GLIBC_2.21 __jnf_finite F
+GLIBC_2.21 __lgamma_r_finite F
+GLIBC_2.21 __lgammaf_r_finite F
+GLIBC_2.21 __log10_finite F
+GLIBC_2.21 __log10f_finite F
+GLIBC_2.21 __log2_finite F
+GLIBC_2.21 __log2f_finite F
+GLIBC_2.21 __log_finite F
+GLIBC_2.21 __logf_finite F
+GLIBC_2.21 __pow_finite F
+GLIBC_2.21 __powf_finite F
+GLIBC_2.21 __remainder_finite F
+GLIBC_2.21 __remainderf_finite F
+GLIBC_2.21 __scalb_finite F
+GLIBC_2.21 __scalbf_finite F
+GLIBC_2.21 __signbit F
+GLIBC_2.21 __signbitf F
+GLIBC_2.21 __sinh_finite F
+GLIBC_2.21 __sinhf_finite F
+GLIBC_2.21 __sqrt_finite F
+GLIBC_2.21 __sqrtf_finite F
+GLIBC_2.21 __y0_finite F
+GLIBC_2.21 __y0f_finite F
+GLIBC_2.21 __y1_finite F
+GLIBC_2.21 __y1f_finite F
+GLIBC_2.21 __yn_finite F
+GLIBC_2.21 __ynf_finite F
+GLIBC_2.21 acos F
+GLIBC_2.21 acosf F
+GLIBC_2.21 acosh F
+GLIBC_2.21 acoshf F
+GLIBC_2.21 acoshl F
+GLIBC_2.21 acosl F
+GLIBC_2.21 asin F
+GLIBC_2.21 asinf F
+GLIBC_2.21 asinh F
+GLIBC_2.21 asinhf F
+GLIBC_2.21 asinhl F
+GLIBC_2.21 asinl F
+GLIBC_2.21 atan F
+GLIBC_2.21 atan2 F
+GLIBC_2.21 atan2f F
+GLIBC_2.21 atan2l F
+GLIBC_2.21 atanf F
+GLIBC_2.21 atanh F
+GLIBC_2.21 atanhf F
+GLIBC_2.21 atanhl F
+GLIBC_2.21 atanl F
+GLIBC_2.21 cabs F
+GLIBC_2.21 cabsf F
+GLIBC_2.21 cabsl F
+GLIBC_2.21 cacos F
+GLIBC_2.21 cacosf F
+GLIBC_2.21 cacosh F
+GLIBC_2.21 cacoshf F
+GLIBC_2.21 cacoshl F
+GLIBC_2.21 cacosl F
+GLIBC_2.21 carg F
+GLIBC_2.21 cargf F
+GLIBC_2.21 cargl F
+GLIBC_2.21 casin F
+GLIBC_2.21 casinf F
+GLIBC_2.21 casinh F
+GLIBC_2.21 casinhf F
+GLIBC_2.21 casinhl F
+GLIBC_2.21 casinl F
+GLIBC_2.21 catan F
+GLIBC_2.21 catanf F
+GLIBC_2.21 catanh F
+GLIBC_2.21 catanhf F
+GLIBC_2.21 catanhl F
+GLIBC_2.21 catanl F
+GLIBC_2.21 cbrt F
+GLIBC_2.21 cbrtf F
+GLIBC_2.21 cbrtl F
+GLIBC_2.21 ccos F
+GLIBC_2.21 ccosf F
+GLIBC_2.21 ccosh F
+GLIBC_2.21 ccoshf F
+GLIBC_2.21 ccoshl F
+GLIBC_2.21 ccosl F
+GLIBC_2.21 ceil F
+GLIBC_2.21 ceilf F
+GLIBC_2.21 ceill F
+GLIBC_2.21 cexp F
+GLIBC_2.21 cexpf F
+GLIBC_2.21 cexpl F
+GLIBC_2.21 cimag F
+GLIBC_2.21 cimagf F
+GLIBC_2.21 cimagl F
+GLIBC_2.21 clog F
+GLIBC_2.21 clog10 F
+GLIBC_2.21 clog10f F
+GLIBC_2.21 clog10l F
+GLIBC_2.21 clogf F
+GLIBC_2.21 clogl F
+GLIBC_2.21 conj F
+GLIBC_2.21 conjf F
+GLIBC_2.21 conjl F
+GLIBC_2.21 copysign F
+GLIBC_2.21 copysignf F
+GLIBC_2.21 copysignl F
+GLIBC_2.21 cos F
+GLIBC_2.21 cosf F
+GLIBC_2.21 cosh F
+GLIBC_2.21 coshf F
+GLIBC_2.21 coshl F
+GLIBC_2.21 cosl F
+GLIBC_2.21 cpow F
+GLIBC_2.21 cpowf F
+GLIBC_2.21 cpowl F
+GLIBC_2.21 cproj F
+GLIBC_2.21 cprojf F
+GLIBC_2.21 cprojl F
+GLIBC_2.21 creal F
+GLIBC_2.21 crealf F
+GLIBC_2.21 creall F
+GLIBC_2.21 csin F
+GLIBC_2.21 csinf F
+GLIBC_2.21 csinh F
+GLIBC_2.21 csinhf F
+GLIBC_2.21 csinhl F
+GLIBC_2.21 csinl F
+GLIBC_2.21 csqrt F
+GLIBC_2.21 csqrtf F
+GLIBC_2.21 csqrtl F
+GLIBC_2.21 ctan F
+GLIBC_2.21 ctanf F
+GLIBC_2.21 ctanh F
+GLIBC_2.21 ctanhf F
+GLIBC_2.21 ctanhl F
+GLIBC_2.21 ctanl F
+GLIBC_2.21 drem F
+GLIBC_2.21 dremf F
+GLIBC_2.21 dreml F
+GLIBC_2.21 erf F
+GLIBC_2.21 erfc F
+GLIBC_2.21 erfcf F
+GLIBC_2.21 erfcl F
+GLIBC_2.21 erff F
+GLIBC_2.21 erfl F
+GLIBC_2.21 exp F
+GLIBC_2.21 exp10 F
+GLIBC_2.21 exp10f F
+GLIBC_2.21 exp10l F
+GLIBC_2.21 exp2 F
+GLIBC_2.21 exp2f F
+GLIBC_2.21 exp2l F
+GLIBC_2.21 expf F
+GLIBC_2.21 expl F
+GLIBC_2.21 expm1 F
+GLIBC_2.21 expm1f F
+GLIBC_2.21 expm1l F
+GLIBC_2.21 fabs F
+GLIBC_2.21 fabsf F
+GLIBC_2.21 fabsl F
+GLIBC_2.21 fdim F
+GLIBC_2.21 fdimf F
+GLIBC_2.21 fdiml F
+GLIBC_2.21 feclearexcept F
+GLIBC_2.21 fedisableexcept F
+GLIBC_2.21 feenableexcept F
+GLIBC_2.21 fegetenv F
+GLIBC_2.21 fegetexcept F
+GLIBC_2.21 fegetexceptflag F
+GLIBC_2.21 fegetround F
+GLIBC_2.21 feholdexcept F
+GLIBC_2.21 feraiseexcept F
+GLIBC_2.21 fesetenv F
+GLIBC_2.21 fesetexceptflag F
+GLIBC_2.21 fesetround F
+GLIBC_2.21 fetestexcept F
+GLIBC_2.21 feupdateenv F
+GLIBC_2.21 finite F
+GLIBC_2.21 finitef F
+GLIBC_2.21 finitel F
+GLIBC_2.21 floor F
+GLIBC_2.21 floorf F
+GLIBC_2.21 floorl F
+GLIBC_2.21 fma F
+GLIBC_2.21 fmaf F
+GLIBC_2.21 fmal F
+GLIBC_2.21 fmax F
+GLIBC_2.21 fmaxf F
+GLIBC_2.21 fmaxl F
+GLIBC_2.21 fmin F
+GLIBC_2.21 fminf F
+GLIBC_2.21 fminl F
+GLIBC_2.21 fmod F
+GLIBC_2.21 fmodf F
+GLIBC_2.21 fmodl F
+GLIBC_2.21 frexp F
+GLIBC_2.21 frexpf F
+GLIBC_2.21 frexpl F
+GLIBC_2.21 gamma F
+GLIBC_2.21 gammaf F
+GLIBC_2.21 gammal F
+GLIBC_2.21 hypot F
+GLIBC_2.21 hypotf F
+GLIBC_2.21 hypotl F
+GLIBC_2.21 ilogb F
+GLIBC_2.21 ilogbf F
+GLIBC_2.21 ilogbl F
+GLIBC_2.21 j0 F
+GLIBC_2.21 j0f F
+GLIBC_2.21 j0l F
+GLIBC_2.21 j1 F
+GLIBC_2.21 j1f F
+GLIBC_2.21 j1l F
+GLIBC_2.21 jn F
+GLIBC_2.21 jnf F
+GLIBC_2.21 jnl F
+GLIBC_2.21 ldexp F
+GLIBC_2.21 ldexpf F
+GLIBC_2.21 ldexpl F
+GLIBC_2.21 lgamma F
+GLIBC_2.21 lgamma_r F
+GLIBC_2.21 lgammaf F
+GLIBC_2.21 lgammaf_r F
+GLIBC_2.21 lgammal F
+GLIBC_2.21 lgammal_r F
+GLIBC_2.21 llrint F
+GLIBC_2.21 llrintf F
+GLIBC_2.21 llrintl F
+GLIBC_2.21 llround F
+GLIBC_2.21 llroundf F
+GLIBC_2.21 llroundl F
+GLIBC_2.21 log F
+GLIBC_2.21 log10 F
+GLIBC_2.21 log10f F
+GLIBC_2.21 log10l F
+GLIBC_2.21 log1p F
+GLIBC_2.21 log1pf F
+GLIBC_2.21 log1pl F
+GLIBC_2.21 log2 F
+GLIBC_2.21 log2f F
+GLIBC_2.21 log2l F
+GLIBC_2.21 logb F
+GLIBC_2.21 logbf F
+GLIBC_2.21 logbl F
+GLIBC_2.21 logf F
+GLIBC_2.21 logl F
+GLIBC_2.21 lrint F
+GLIBC_2.21 lrintf F
+GLIBC_2.21 lrintl F
+GLIBC_2.21 lround F
+GLIBC_2.21 lroundf F
+GLIBC_2.21 lroundl F
+GLIBC_2.21 matherr F
+GLIBC_2.21 modf F
+GLIBC_2.21 modff F
+GLIBC_2.21 modfl F
+GLIBC_2.21 nan F
+GLIBC_2.21 nanf F
+GLIBC_2.21 nanl F
+GLIBC_2.21 nearbyint F
+GLIBC_2.21 nearbyintf F
+GLIBC_2.21 nearbyintl F
+GLIBC_2.21 nextafter F
+GLIBC_2.21 nextafterf F
+GLIBC_2.21 nextafterl F
+GLIBC_2.21 nexttoward F
+GLIBC_2.21 nexttowardf F
+GLIBC_2.21 nexttowardl F
+GLIBC_2.21 pow F
+GLIBC_2.21 pow10 F
+GLIBC_2.21 pow10f F
+GLIBC_2.21 pow10l F
+GLIBC_2.21 powf F
+GLIBC_2.21 powl F
+GLIBC_2.21 remainder F
+GLIBC_2.21 remainderf F
+GLIBC_2.21 remainderl F
+GLIBC_2.21 remquo F
+GLIBC_2.21 remquof F
+GLIBC_2.21 remquol F
+GLIBC_2.21 rint F
+GLIBC_2.21 rintf F
+GLIBC_2.21 rintl F
+GLIBC_2.21 round F
+GLIBC_2.21 roundf F
+GLIBC_2.21 roundl F
+GLIBC_2.21 scalb F
+GLIBC_2.21 scalbf F
+GLIBC_2.21 scalbl F
+GLIBC_2.21 scalbln F
+GLIBC_2.21 scalblnf F
+GLIBC_2.21 scalblnl F
+GLIBC_2.21 scalbn F
+GLIBC_2.21 scalbnf F
+GLIBC_2.21 scalbnl F
+GLIBC_2.21 signgam D 0x4
+GLIBC_2.21 significand F
+GLIBC_2.21 significandf F
+GLIBC_2.21 significandl F
+GLIBC_2.21 sin F
+GLIBC_2.21 sincos F
+GLIBC_2.21 sincosf F
+GLIBC_2.21 sincosl F
+GLIBC_2.21 sinf F
+GLIBC_2.21 sinh F
+GLIBC_2.21 sinhf F
+GLIBC_2.21 sinhl F
+GLIBC_2.21 sinl F
+GLIBC_2.21 sqrt F
+GLIBC_2.21 sqrtf F
+GLIBC_2.21 sqrtl F
+GLIBC_2.21 tan F
+GLIBC_2.21 tanf F
+GLIBC_2.21 tanh F
+GLIBC_2.21 tanhf F
+GLIBC_2.21 tanhl F
+GLIBC_2.21 tanl F
+GLIBC_2.21 tgamma F
+GLIBC_2.21 tgammaf F
+GLIBC_2.21 tgammal F
+GLIBC_2.21 trunc F
+GLIBC_2.21 truncf F
+GLIBC_2.21 truncl F
+GLIBC_2.21 y0 F
+GLIBC_2.21 y0f F
+GLIBC_2.21 y0l F
+GLIBC_2.21 y1 F
+GLIBC_2.21 y1f F
+GLIBC_2.21 y1l F
+GLIBC_2.21 yn F
+GLIBC_2.21 ynf F
+GLIBC_2.21 ynl F
+GLIBC_2.23 GLIBC_2.23 A
+GLIBC_2.23 __signgam D 0x4
+GLIBC_2.23 lgamma F
+GLIBC_2.23 lgammaf F
+GLIBC_2.23 lgammal F
+GLIBC_2.24 GLIBC_2.24 A
+GLIBC_2.24 nextdown F
+GLIBC_2.24 nextdownf F
+GLIBC_2.24 nextdownl F
+GLIBC_2.24 nextup F
+GLIBC_2.24 nextupf F
+GLIBC_2.24 nextupl F
+GLIBC_2.25 GLIBC_2.25 A
+GLIBC_2.25 __iseqsig F
+GLIBC_2.25 __iseqsigf F
+GLIBC_2.25 canonicalize F
+GLIBC_2.25 canonicalizef F
+GLIBC_2.25 canonicalizel F
+GLIBC_2.25 fegetmode F
+GLIBC_2.25 fesetexcept F
+GLIBC_2.25 fesetmode F
+GLIBC_2.25 fetestexceptflag F
+GLIBC_2.25 fmaxmag F
+GLIBC_2.25 fmaxmagf F
+GLIBC_2.25 fmaxmagl F
+GLIBC_2.25 fminmag F
+GLIBC_2.25 fminmagf F
+GLIBC_2.25 fminmagl F
+GLIBC_2.25 fromfp F
+GLIBC_2.25 fromfpf F
+GLIBC_2.25 fromfpl F
+GLIBC_2.25 fromfpx F
+GLIBC_2.25 fromfpxf F
+GLIBC_2.25 fromfpxl F
+GLIBC_2.25 getpayload F
+GLIBC_2.25 getpayloadf F
+GLIBC_2.25 getpayloadl F
+GLIBC_2.25 llogb F
+GLIBC_2.25 llogbf F
+GLIBC_2.25 llogbl F
+GLIBC_2.25 roundeven F
+GLIBC_2.25 roundevenf F
+GLIBC_2.25 roundevenl F
+GLIBC_2.25 setpayload F
+GLIBC_2.25 setpayloadf F
+GLIBC_2.25 setpayloadl F
+GLIBC_2.25 setpayloadsig F
+GLIBC_2.25 setpayloadsigf F
+GLIBC_2.25 setpayloadsigl F
+GLIBC_2.25 totalorder F
+GLIBC_2.25 totalorderf F
+GLIBC_2.25 totalorderl F
+GLIBC_2.25 totalordermag F
+GLIBC_2.25 totalordermagf F
+GLIBC_2.25 totalordermagl F
+GLIBC_2.25 ufromfp F
+GLIBC_2.25 ufromfpf F
+GLIBC_2.25 ufromfpl F
+GLIBC_2.25 ufromfpx F
+GLIBC_2.25 ufromfpxf F
+GLIBC_2.25 ufromfpxl F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/nios2/libnsl.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/nios2/libnsl.abilist
new file mode 100644
index 0000000000..40856aba99
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/nios2/libnsl.abilist
@@ -0,0 +1,122 @@
+GLIBC_2.21 GLIBC_2.21 A
+GLIBC_2.21 __free_fdresult F
+GLIBC_2.21 __nis_default_access F
+GLIBC_2.21 __nis_default_group F
+GLIBC_2.21 __nis_default_owner F
+GLIBC_2.21 __nis_default_ttl F
+GLIBC_2.21 __nis_finddirectory F
+GLIBC_2.21 __nis_hash F
+GLIBC_2.21 __nisbind_connect F
+GLIBC_2.21 __nisbind_create F
+GLIBC_2.21 __nisbind_destroy F
+GLIBC_2.21 __nisbind_next F
+GLIBC_2.21 __yp_check F
+GLIBC_2.21 nis_add F
+GLIBC_2.21 nis_add_entry F
+GLIBC_2.21 nis_addmember F
+GLIBC_2.21 nis_checkpoint F
+GLIBC_2.21 nis_clone_directory F
+GLIBC_2.21 nis_clone_object F
+GLIBC_2.21 nis_clone_result F
+GLIBC_2.21 nis_creategroup F
+GLIBC_2.21 nis_destroy_object F
+GLIBC_2.21 nis_destroygroup F
+GLIBC_2.21 nis_dir_cmp F
+GLIBC_2.21 nis_domain_of F
+GLIBC_2.21 nis_domain_of_r F
+GLIBC_2.21 nis_first_entry F
+GLIBC_2.21 nis_free_directory F
+GLIBC_2.21 nis_free_object F
+GLIBC_2.21 nis_free_request F
+GLIBC_2.21 nis_freenames F
+GLIBC_2.21 nis_freeresult F
+GLIBC_2.21 nis_freeservlist F
+GLIBC_2.21 nis_freetags F
+GLIBC_2.21 nis_getnames F
+GLIBC_2.21 nis_getservlist F
+GLIBC_2.21 nis_ismember F
+GLIBC_2.21 nis_leaf_of F
+GLIBC_2.21 nis_leaf_of_r F
+GLIBC_2.21 nis_lerror F
+GLIBC_2.21 nis_list F
+GLIBC_2.21 nis_local_directory F
+GLIBC_2.21 nis_local_group F
+GLIBC_2.21 nis_local_host F
+GLIBC_2.21 nis_local_principal F
+GLIBC_2.21 nis_lookup F
+GLIBC_2.21 nis_mkdir F
+GLIBC_2.21 nis_modify F
+GLIBC_2.21 nis_modify_entry F
+GLIBC_2.21 nis_name_of F
+GLIBC_2.21 nis_name_of_r F
+GLIBC_2.21 nis_next_entry F
+GLIBC_2.21 nis_perror F
+GLIBC_2.21 nis_ping F
+GLIBC_2.21 nis_print_directory F
+GLIBC_2.21 nis_print_entry F
+GLIBC_2.21 nis_print_group F
+GLIBC_2.21 nis_print_group_entry F
+GLIBC_2.21 nis_print_link F
+GLIBC_2.21 nis_print_object F
+GLIBC_2.21 nis_print_result F
+GLIBC_2.21 nis_print_rights F
+GLIBC_2.21 nis_print_table F
+GLIBC_2.21 nis_read_obj F
+GLIBC_2.21 nis_remove F
+GLIBC_2.21 nis_remove_entry F
+GLIBC_2.21 nis_removemember F
+GLIBC_2.21 nis_rmdir F
+GLIBC_2.21 nis_servstate F
+GLIBC_2.21 nis_sperrno F
+GLIBC_2.21 nis_sperror F
+GLIBC_2.21 nis_sperror_r F
+GLIBC_2.21 nis_stats F
+GLIBC_2.21 nis_verifygroup F
+GLIBC_2.21 nis_write_obj F
+GLIBC_2.21 readColdStartFile F
+GLIBC_2.21 writeColdStartFile F
+GLIBC_2.21 xdr_cback_data F
+GLIBC_2.21 xdr_domainname F
+GLIBC_2.21 xdr_keydat F
+GLIBC_2.21 xdr_mapname F
+GLIBC_2.21 xdr_obj_p F
+GLIBC_2.21 xdr_peername F
+GLIBC_2.21 xdr_valdat F
+GLIBC_2.21 xdr_yp_buf F
+GLIBC_2.21 xdr_ypall F
+GLIBC_2.21 xdr_ypbind_binding F
+GLIBC_2.21 xdr_ypbind_resp F
+GLIBC_2.21 xdr_ypbind_resptype F
+GLIBC_2.21 xdr_ypbind_setdom F
+GLIBC_2.21 xdr_ypdelete_args F
+GLIBC_2.21 xdr_ypmap_parms F
+GLIBC_2.21 xdr_ypmaplist F
+GLIBC_2.21 xdr_yppush_status F
+GLIBC_2.21 xdr_yppushresp_xfr F
+GLIBC_2.21 xdr_ypreq_key F
+GLIBC_2.21 xdr_ypreq_nokey F
+GLIBC_2.21 xdr_ypreq_xfr F
+GLIBC_2.21 xdr_ypresp_all F
+GLIBC_2.21 xdr_ypresp_key_val F
+GLIBC_2.21 xdr_ypresp_maplist F
+GLIBC_2.21 xdr_ypresp_master F
+GLIBC_2.21 xdr_ypresp_order F
+GLIBC_2.21 xdr_ypresp_val F
+GLIBC_2.21 xdr_ypresp_xfr F
+GLIBC_2.21 xdr_ypstat F
+GLIBC_2.21 xdr_ypupdate_args F
+GLIBC_2.21 xdr_ypxfrstat F
+GLIBC_2.21 yp_all F
+GLIBC_2.21 yp_bind F
+GLIBC_2.21 yp_first F
+GLIBC_2.21 yp_get_default_domain F
+GLIBC_2.21 yp_maplist F
+GLIBC_2.21 yp_master F
+GLIBC_2.21 yp_match F
+GLIBC_2.21 yp_next F
+GLIBC_2.21 yp_order F
+GLIBC_2.21 yp_unbind F
+GLIBC_2.21 yp_update F
+GLIBC_2.21 ypbinderr_string F
+GLIBC_2.21 yperr_string F
+GLIBC_2.21 ypprot_err F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/nios2/libpthread.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
new file mode 100644
index 0000000000..a10bbdec87
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/nios2/libpthread.abilist
@@ -0,0 +1,223 @@
+GLIBC_2.21 GLIBC_2.21 A
+GLIBC_2.21 _IO_flockfile F
+GLIBC_2.21 _IO_ftrylockfile F
+GLIBC_2.21 _IO_funlockfile F
+GLIBC_2.21 __close F
+GLIBC_2.21 __connect F
+GLIBC_2.21 __errno_location F
+GLIBC_2.21 __fcntl F
+GLIBC_2.21 __fork F
+GLIBC_2.21 __h_errno_location F
+GLIBC_2.21 __libc_allocate_rtsig F
+GLIBC_2.21 __libc_current_sigrtmax F
+GLIBC_2.21 __libc_current_sigrtmin F
+GLIBC_2.21 __lseek F
+GLIBC_2.21 __nanosleep F
+GLIBC_2.21 __open F
+GLIBC_2.21 __open64 F
+GLIBC_2.21 __pread64 F
+GLIBC_2.21 __pthread_cleanup_routine F
+GLIBC_2.21 __pthread_getspecific F
+GLIBC_2.21 __pthread_key_create F
+GLIBC_2.21 __pthread_mutex_destroy F
+GLIBC_2.21 __pthread_mutex_init F
+GLIBC_2.21 __pthread_mutex_lock F
+GLIBC_2.21 __pthread_mutex_trylock F
+GLIBC_2.21 __pthread_mutex_unlock F
+GLIBC_2.21 __pthread_mutexattr_destroy F
+GLIBC_2.21 __pthread_mutexattr_init F
+GLIBC_2.21 __pthread_mutexattr_settype F
+GLIBC_2.21 __pthread_once F
+GLIBC_2.21 __pthread_register_cancel F
+GLIBC_2.21 __pthread_register_cancel_defer F
+GLIBC_2.21 __pthread_rwlock_destroy F
+GLIBC_2.21 __pthread_rwlock_init F
+GLIBC_2.21 __pthread_rwlock_rdlock F
+GLIBC_2.21 __pthread_rwlock_tryrdlock F
+GLIBC_2.21 __pthread_rwlock_trywrlock F
+GLIBC_2.21 __pthread_rwlock_unlock F
+GLIBC_2.21 __pthread_rwlock_wrlock F
+GLIBC_2.21 __pthread_setspecific F
+GLIBC_2.21 __pthread_unregister_cancel F
+GLIBC_2.21 __pthread_unregister_cancel_restore F
+GLIBC_2.21 __pthread_unwind_next F
+GLIBC_2.21 __pwrite64 F
+GLIBC_2.21 __read F
+GLIBC_2.21 __res_state F
+GLIBC_2.21 __send F
+GLIBC_2.21 __sigaction F
+GLIBC_2.21 __wait F
+GLIBC_2.21 __write F
+GLIBC_2.21 _pthread_cleanup_pop F
+GLIBC_2.21 _pthread_cleanup_pop_restore F
+GLIBC_2.21 _pthread_cleanup_push F
+GLIBC_2.21 _pthread_cleanup_push_defer F
+GLIBC_2.21 accept F
+GLIBC_2.21 close F
+GLIBC_2.21 connect F
+GLIBC_2.21 fcntl F
+GLIBC_2.21 flockfile F
+GLIBC_2.21 fork F
+GLIBC_2.21 fsync F
+GLIBC_2.21 ftrylockfile F
+GLIBC_2.21 funlockfile F
+GLIBC_2.21 longjmp F
+GLIBC_2.21 lseek F
+GLIBC_2.21 lseek64 F
+GLIBC_2.21 msync F
+GLIBC_2.21 nanosleep F
+GLIBC_2.21 open F
+GLIBC_2.21 open64 F
+GLIBC_2.21 pause F
+GLIBC_2.21 pread F
+GLIBC_2.21 pread64 F
+GLIBC_2.21 pthread_attr_destroy F
+GLIBC_2.21 pthread_attr_getaffinity_np F
+GLIBC_2.21 pthread_attr_getdetachstate F
+GLIBC_2.21 pthread_attr_getguardsize F
+GLIBC_2.21 pthread_attr_getinheritsched F
+GLIBC_2.21 pthread_attr_getschedparam F
+GLIBC_2.21 pthread_attr_getschedpolicy F
+GLIBC_2.21 pthread_attr_getscope F
+GLIBC_2.21 pthread_attr_getstack F
+GLIBC_2.21 pthread_attr_getstackaddr F
+GLIBC_2.21 pthread_attr_getstacksize F
+GLIBC_2.21 pthread_attr_init F
+GLIBC_2.21 pthread_attr_setaffinity_np F
+GLIBC_2.21 pthread_attr_setdetachstate F
+GLIBC_2.21 pthread_attr_setguardsize F
+GLIBC_2.21 pthread_attr_setinheritsched F
+GLIBC_2.21 pthread_attr_setschedparam F
+GLIBC_2.21 pthread_attr_setschedpolicy F
+GLIBC_2.21 pthread_attr_setscope F
+GLIBC_2.21 pthread_attr_setstack F
+GLIBC_2.21 pthread_attr_setstackaddr F
+GLIBC_2.21 pthread_attr_setstacksize F
+GLIBC_2.21 pthread_barrier_destroy F
+GLIBC_2.21 pthread_barrier_init F
+GLIBC_2.21 pthread_barrier_wait F
+GLIBC_2.21 pthread_barrierattr_destroy F
+GLIBC_2.21 pthread_barrierattr_getpshared F
+GLIBC_2.21 pthread_barrierattr_init F
+GLIBC_2.21 pthread_barrierattr_setpshared F
+GLIBC_2.21 pthread_cancel F
+GLIBC_2.21 pthread_cond_broadcast F
+GLIBC_2.21 pthread_cond_destroy F
+GLIBC_2.21 pthread_cond_init F
+GLIBC_2.21 pthread_cond_signal F
+GLIBC_2.21 pthread_cond_timedwait F
+GLIBC_2.21 pthread_cond_wait F
+GLIBC_2.21 pthread_condattr_destroy F
+GLIBC_2.21 pthread_condattr_getclock F
+GLIBC_2.21 pthread_condattr_getpshared F
+GLIBC_2.21 pthread_condattr_init F
+GLIBC_2.21 pthread_condattr_setclock F
+GLIBC_2.21 pthread_condattr_setpshared F
+GLIBC_2.21 pthread_create F
+GLIBC_2.21 pthread_detach F
+GLIBC_2.21 pthread_equal F
+GLIBC_2.21 pthread_exit F
+GLIBC_2.21 pthread_getaffinity_np F
+GLIBC_2.21 pthread_getattr_default_np F
+GLIBC_2.21 pthread_getattr_np F
+GLIBC_2.21 pthread_getconcurrency F
+GLIBC_2.21 pthread_getcpuclockid F
+GLIBC_2.21 pthread_getname_np F
+GLIBC_2.21 pthread_getschedparam F
+GLIBC_2.21 pthread_getspecific F
+GLIBC_2.21 pthread_join F
+GLIBC_2.21 pthread_key_create F
+GLIBC_2.21 pthread_key_delete F
+GLIBC_2.21 pthread_kill F
+GLIBC_2.21 pthread_kill_other_threads_np F
+GLIBC_2.21 pthread_mutex_consistent F
+GLIBC_2.21 pthread_mutex_consistent_np F
+GLIBC_2.21 pthread_mutex_destroy F
+GLIBC_2.21 pthread_mutex_getprioceiling F
+GLIBC_2.21 pthread_mutex_init F
+GLIBC_2.21 pthread_mutex_lock F
+GLIBC_2.21 pthread_mutex_setprioceiling F
+GLIBC_2.21 pthread_mutex_timedlock F
+GLIBC_2.21 pthread_mutex_trylock F
+GLIBC_2.21 pthread_mutex_unlock F
+GLIBC_2.21 pthread_mutexattr_destroy F
+GLIBC_2.21 pthread_mutexattr_getkind_np F
+GLIBC_2.21 pthread_mutexattr_getprioceiling F
+GLIBC_2.21 pthread_mutexattr_getprotocol F
+GLIBC_2.21 pthread_mutexattr_getpshared F
+GLIBC_2.21 pthread_mutexattr_getrobust F
+GLIBC_2.21 pthread_mutexattr_getrobust_np F
+GLIBC_2.21 pthread_mutexattr_gettype F
+GLIBC_2.21 pthread_mutexattr_init F
+GLIBC_2.21 pthread_mutexattr_setkind_np F
+GLIBC_2.21 pthread_mutexattr_setprioceiling F
+GLIBC_2.21 pthread_mutexattr_setprotocol F
+GLIBC_2.21 pthread_mutexattr_setpshared F
+GLIBC_2.21 pthread_mutexattr_setrobust F
+GLIBC_2.21 pthread_mutexattr_setrobust_np F
+GLIBC_2.21 pthread_mutexattr_settype F
+GLIBC_2.21 pthread_once F
+GLIBC_2.21 pthread_rwlock_destroy F
+GLIBC_2.21 pthread_rwlock_init F
+GLIBC_2.21 pthread_rwlock_rdlock F
+GLIBC_2.21 pthread_rwlock_timedrdlock F
+GLIBC_2.21 pthread_rwlock_timedwrlock F
+GLIBC_2.21 pthread_rwlock_tryrdlock F
+GLIBC_2.21 pthread_rwlock_trywrlock F
+GLIBC_2.21 pthread_rwlock_unlock F
+GLIBC_2.21 pthread_rwlock_wrlock F
+GLIBC_2.21 pthread_rwlockattr_destroy F
+GLIBC_2.21 pthread_rwlockattr_getkind_np F
+GLIBC_2.21 pthread_rwlockattr_getpshared F
+GLIBC_2.21 pthread_rwlockattr_init F
+GLIBC_2.21 pthread_rwlockattr_setkind_np F
+GLIBC_2.21 pthread_rwlockattr_setpshared F
+GLIBC_2.21 pthread_self F
+GLIBC_2.21 pthread_setaffinity_np F
+GLIBC_2.21 pthread_setattr_default_np F
+GLIBC_2.21 pthread_setcancelstate F
+GLIBC_2.21 pthread_setcanceltype F
+GLIBC_2.21 pthread_setconcurrency F
+GLIBC_2.21 pthread_setname_np F
+GLIBC_2.21 pthread_setschedparam F
+GLIBC_2.21 pthread_setschedprio F
+GLIBC_2.21 pthread_setspecific F
+GLIBC_2.21 pthread_sigmask F
+GLIBC_2.21 pthread_sigqueue F
+GLIBC_2.21 pthread_spin_destroy F
+GLIBC_2.21 pthread_spin_init F
+GLIBC_2.21 pthread_spin_lock F
+GLIBC_2.21 pthread_spin_trylock F
+GLIBC_2.21 pthread_spin_unlock F
+GLIBC_2.21 pthread_testcancel F
+GLIBC_2.21 pthread_timedjoin_np F
+GLIBC_2.21 pthread_tryjoin_np F
+GLIBC_2.21 pthread_yield F
+GLIBC_2.21 pwrite F
+GLIBC_2.21 pwrite64 F
+GLIBC_2.21 raise F
+GLIBC_2.21 read F
+GLIBC_2.21 recv F
+GLIBC_2.21 recvfrom F
+GLIBC_2.21 recvmsg F
+GLIBC_2.21 sem_close F
+GLIBC_2.21 sem_destroy F
+GLIBC_2.21 sem_getvalue F
+GLIBC_2.21 sem_init F
+GLIBC_2.21 sem_open F
+GLIBC_2.21 sem_post F
+GLIBC_2.21 sem_timedwait F
+GLIBC_2.21 sem_trywait F
+GLIBC_2.21 sem_unlink F
+GLIBC_2.21 sem_wait F
+GLIBC_2.21 send F
+GLIBC_2.21 sendmsg F
+GLIBC_2.21 sendto F
+GLIBC_2.21 sigaction F
+GLIBC_2.21 siglongjmp F
+GLIBC_2.21 sigwait F
+GLIBC_2.21 system F
+GLIBC_2.21 tcdrain F
+GLIBC_2.21 wait F
+GLIBC_2.21 waitpid F
+GLIBC_2.21 write F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/nios2/libresolv.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/nios2/libresolv.abilist
new file mode 100644
index 0000000000..b006fcafe7
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/nios2/libresolv.abilist
@@ -0,0 +1,92 @@
+GLIBC_2.21 GLIBC_2.21 A
+GLIBC_2.21 __b64_ntop F
+GLIBC_2.21 __b64_pton F
+GLIBC_2.21 __dn_comp F
+GLIBC_2.21 __dn_count_labels F
+GLIBC_2.21 __dn_expand F
+GLIBC_2.21 __dn_skipname F
+GLIBC_2.21 __fp_nquery F
+GLIBC_2.21 __fp_query F
+GLIBC_2.21 __fp_resstat F
+GLIBC_2.21 __hostalias F
+GLIBC_2.21 __loc_aton F
+GLIBC_2.21 __loc_ntoa F
+GLIBC_2.21 __p_cdname F
+GLIBC_2.21 __p_cdnname F
+GLIBC_2.21 __p_class F
+GLIBC_2.21 __p_class_syms D 0x54
+GLIBC_2.21 __p_fqname F
+GLIBC_2.21 __p_fqnname F
+GLIBC_2.21 __p_option F
+GLIBC_2.21 __p_query F
+GLIBC_2.21 __p_rcode F
+GLIBC_2.21 __p_secstodate F
+GLIBC_2.21 __p_time F
+GLIBC_2.21 __p_type F
+GLIBC_2.21 __p_type_syms D 0x228
+GLIBC_2.21 __putlong F
+GLIBC_2.21 __putshort F
+GLIBC_2.21 __res_close F
+GLIBC_2.21 __res_dnok F
+GLIBC_2.21 __res_hnok F
+GLIBC_2.21 __res_hostalias F
+GLIBC_2.21 __res_isourserver F
+GLIBC_2.21 __res_mailok F
+GLIBC_2.21 __res_mkquery F
+GLIBC_2.21 __res_nameinquery F
+GLIBC_2.21 __res_nmkquery F
+GLIBC_2.21 __res_nquery F
+GLIBC_2.21 __res_nquerydomain F
+GLIBC_2.21 __res_nsearch F
+GLIBC_2.21 __res_nsend F
+GLIBC_2.21 __res_ownok F
+GLIBC_2.21 __res_queriesmatch F
+GLIBC_2.21 __res_query F
+GLIBC_2.21 __res_querydomain F
+GLIBC_2.21 __res_search F
+GLIBC_2.21 __res_send F
+GLIBC_2.21 __sym_ntop F
+GLIBC_2.21 __sym_ntos F
+GLIBC_2.21 __sym_ston F
+GLIBC_2.21 _gethtbyaddr F
+GLIBC_2.21 _gethtbyname F
+GLIBC_2.21 _gethtbyname2 F
+GLIBC_2.21 _gethtent F
+GLIBC_2.21 _getlong F
+GLIBC_2.21 _getshort F
+GLIBC_2.21 _res_opcodes D 0x40
+GLIBC_2.21 _sethtent F
+GLIBC_2.21 inet_net_ntop F
+GLIBC_2.21 inet_net_pton F
+GLIBC_2.21 inet_neta F
+GLIBC_2.21 ns_datetosecs F
+GLIBC_2.21 ns_format_ttl F
+GLIBC_2.21 ns_get16 F
+GLIBC_2.21 ns_get32 F
+GLIBC_2.21 ns_initparse F
+GLIBC_2.21 ns_makecanon F
+GLIBC_2.21 ns_msg_getflag F
+GLIBC_2.21 ns_name_compress F
+GLIBC_2.21 ns_name_ntol F
+GLIBC_2.21 ns_name_ntop F
+GLIBC_2.21 ns_name_pack F
+GLIBC_2.21 ns_name_pton F
+GLIBC_2.21 ns_name_rollback F
+GLIBC_2.21 ns_name_skip F
+GLIBC_2.21 ns_name_uncompress F
+GLIBC_2.21 ns_name_unpack F
+GLIBC_2.21 ns_parse_ttl F
+GLIBC_2.21 ns_parserr F
+GLIBC_2.21 ns_put16 F
+GLIBC_2.21 ns_put32 F
+GLIBC_2.21 ns_samedomain F
+GLIBC_2.21 ns_samename F
+GLIBC_2.21 ns_skiprr F
+GLIBC_2.21 ns_sprintrr F
+GLIBC_2.21 ns_sprintrrf F
+GLIBC_2.21 ns_subdomain F
+GLIBC_2.21 res_gethostbyaddr F
+GLIBC_2.21 res_gethostbyname F
+GLIBC_2.21 res_gethostbyname2 F
+GLIBC_2.21 res_send_setqhook F
+GLIBC_2.21 res_send_setrhook F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/nios2/librt.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/nios2/librt.abilist
new file mode 100644
index 0000000000..51b1c5bc03
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/nios2/librt.abilist
@@ -0,0 +1,36 @@
+GLIBC_2.21 GLIBC_2.21 A
+GLIBC_2.21 __mq_open_2 F
+GLIBC_2.21 aio_cancel F
+GLIBC_2.21 aio_cancel64 F
+GLIBC_2.21 aio_error F
+GLIBC_2.21 aio_error64 F
+GLIBC_2.21 aio_fsync F
+GLIBC_2.21 aio_fsync64 F
+GLIBC_2.21 aio_init F
+GLIBC_2.21 aio_read F
+GLIBC_2.21 aio_read64 F
+GLIBC_2.21 aio_return F
+GLIBC_2.21 aio_return64 F
+GLIBC_2.21 aio_suspend F
+GLIBC_2.21 aio_suspend64 F
+GLIBC_2.21 aio_write F
+GLIBC_2.21 aio_write64 F
+GLIBC_2.21 lio_listio F
+GLIBC_2.21 lio_listio64 F
+GLIBC_2.21 mq_close F
+GLIBC_2.21 mq_getattr F
+GLIBC_2.21 mq_notify F
+GLIBC_2.21 mq_open F
+GLIBC_2.21 mq_receive F
+GLIBC_2.21 mq_send F
+GLIBC_2.21 mq_setattr F
+GLIBC_2.21 mq_timedreceive F
+GLIBC_2.21 mq_timedsend F
+GLIBC_2.21 mq_unlink F
+GLIBC_2.21 shm_open F
+GLIBC_2.21 shm_unlink F
+GLIBC_2.21 timer_create F
+GLIBC_2.21 timer_delete F
+GLIBC_2.21 timer_getoverrun F
+GLIBC_2.21 timer_gettime F
+GLIBC_2.21 timer_settime F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/nios2/libthread_db.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/nios2/libthread_db.abilist
new file mode 100644
index 0000000000..96be90f65b
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/nios2/libthread_db.abilist
@@ -0,0 +1,41 @@
+GLIBC_2.21 GLIBC_2.21 A
+GLIBC_2.21 td_init F
+GLIBC_2.21 td_log F
+GLIBC_2.21 td_symbol_list F
+GLIBC_2.21 td_ta_clear_event F
+GLIBC_2.21 td_ta_delete F
+GLIBC_2.21 td_ta_enable_stats F
+GLIBC_2.21 td_ta_event_addr F
+GLIBC_2.21 td_ta_event_getmsg F
+GLIBC_2.21 td_ta_get_nthreads F
+GLIBC_2.21 td_ta_get_ph F
+GLIBC_2.21 td_ta_get_stats F
+GLIBC_2.21 td_ta_map_id2thr F
+GLIBC_2.21 td_ta_map_lwp2thr F
+GLIBC_2.21 td_ta_new F
+GLIBC_2.21 td_ta_reset_stats F
+GLIBC_2.21 td_ta_set_event F
+GLIBC_2.21 td_ta_setconcurrency F
+GLIBC_2.21 td_ta_thr_iter F
+GLIBC_2.21 td_ta_tsd_iter F
+GLIBC_2.21 td_thr_clear_event F
+GLIBC_2.21 td_thr_dbresume F
+GLIBC_2.21 td_thr_dbsuspend F
+GLIBC_2.21 td_thr_event_enable F
+GLIBC_2.21 td_thr_event_getmsg F
+GLIBC_2.21 td_thr_get_info F
+GLIBC_2.21 td_thr_getfpregs F
+GLIBC_2.21 td_thr_getgregs F
+GLIBC_2.21 td_thr_getxregs F
+GLIBC_2.21 td_thr_getxregsize F
+GLIBC_2.21 td_thr_set_event F
+GLIBC_2.21 td_thr_setfpregs F
+GLIBC_2.21 td_thr_setgregs F
+GLIBC_2.21 td_thr_setprio F
+GLIBC_2.21 td_thr_setsigpending F
+GLIBC_2.21 td_thr_setxregs F
+GLIBC_2.21 td_thr_sigsetmask F
+GLIBC_2.21 td_thr_tls_get_addr F
+GLIBC_2.21 td_thr_tlsbase F
+GLIBC_2.21 td_thr_tsd F
+GLIBC_2.21 td_thr_validate F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/nios2/libutil.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/nios2/libutil.abilist
new file mode 100644
index 0000000000..0c21934dc0
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/nios2/libutil.abilist
@@ -0,0 +1,7 @@
+GLIBC_2.21 GLIBC_2.21 A
+GLIBC_2.21 forkpty F
+GLIBC_2.21 login F
+GLIBC_2.21 login_tty F
+GLIBC_2.21 logout F
+GLIBC_2.21 logwtmp F
+GLIBC_2.21 openpty F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/nios2/localplt.data b/REORG.TODO/sysdeps/unix/sysv/linux/nios2/localplt.data
new file mode 100644
index 0000000000..584963d202
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/nios2/localplt.data
@@ -0,0 +1,38 @@
+libc.so: realloc
+libc.so: __floatsisf
+libc.so: __gtdf2
+libc.so: __ltdf2
+libc.so: __gedf2
+libc.so: malloc
+libc.so: __gtsf2
+libc.so: __nesf2
+libc.so: memalign
+libc.so: __mulsf3
+libc.so: __floatunsisf
+libc.so: __addsf3
+libc.so: __fixsfsi
+libc.so: __subsf3
+libc.so: __unorddf2
+libc.so: calloc
+libc.so: __muldf3
+libc.so: __unordsf2
+libc.so: free
+libc.so: __subdf3
+libc.so: __ledf2
+libc.so: __adddf3
+libc.so: __divdf3
+libc.so: __floatsidf
+libc.so: __divsf3
+libc.so: __nedf2
+libc.so: __eqdf2
+libc.so: __extendsfdf2
+libm.so: matherr
+# The main malloc is interposed into the dynamic linker, for
+# allocations after the initial link (when dlopen is used).
+ld.so: malloc
+ld.so: calloc
+ld.so: realloc
+ld.so: free
+# The TLS-enabled version of these functions is interposed from libc.so.
+ld.so: _dl_signal_error
+ld.so: _dl_catch_error
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/nios2/makecontext.c b/REORG.TODO/sysdeps/unix/sysv/linux/nios2/makecontext.c
new file mode 100644
index 0000000000..b4c45cd3d4
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/nios2/makecontext.c
@@ -0,0 +1,79 @@
+/* Create new context.
+ Copyright (C) 2015-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#include <stdarg.h>
+#include <stdint.h>
+#include <ucontext.h>
+
+/* makecontext sets up a stack and the registers for the
+ user context. The stack looks like this:
+
+ +-----------------------+
+ | padding as required |
+ +-----------------------+
+ sp -> | parameters 5 to n |
+ +-----------------------+
+
+ The registers are set up like this:
+ r4--r7 : parameter 1 to 4
+ r16 : uc_link
+ sp : stack pointer.
+*/
+
+void
+__makecontext (ucontext_t *ucp, void (*func) (void), int argc, ...)
+{
+ extern void __startcontext (void);
+ unsigned long *sp;
+ va_list ap;
+ int i;
+
+ sp = (unsigned long *)
+ ((uintptr_t) ucp->uc_stack.ss_sp + ucp->uc_stack.ss_size);
+
+ /* Allocate stack arguments. */
+ sp -= argc < 4 ? 0 : argc - 4;
+
+ /* Keep the stack aligned. */
+ sp = (unsigned long*) (((uintptr_t) sp) & -4L);
+
+ /* Init version field. */
+ ucp->uc_mcontext.version = 2;
+ /* Keep uc_link in r16. */
+ ucp->uc_mcontext.regs[15] = (uintptr_t) ucp->uc_link;
+ /* Return address points to __startcontext(). */
+ ucp->uc_mcontext.regs[23] = (uintptr_t) &__startcontext;
+ /* Frame pointer is null. */
+ ucp->uc_mcontext.regs[24] = (uintptr_t) 0;
+ /* Restart in user-space starting at 'func'. */
+ ucp->uc_mcontext.regs[27] = (uintptr_t) func;
+ /* Set stack pointer. */
+ ucp->uc_mcontext.regs[28] = (uintptr_t) sp;
+
+ va_start (ap, argc);
+ for (i = 0; i < argc; ++i)
+ if (i < 4)
+ ucp->uc_mcontext.regs[i + 3] = va_arg (ap, unsigned long);
+ else
+ sp[i - 4] = va_arg (ap, unsigned long);
+
+ va_end (ap);
+}
+
+weak_alias (__makecontext, makecontext)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/nios2/profil-counter.h b/REORG.TODO/sysdeps/unix/sysv/linux/nios2/profil-counter.h
new file mode 100644
index 0000000000..8a6a0bcf3d
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/nios2/profil-counter.h
@@ -0,0 +1,2 @@
+/* We can use the ix86 version. */
+#include <sysdeps/unix/sysv/linux/i386/profil-counter.h>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/nios2/setcontext.S b/REORG.TODO/sysdeps/unix/sysv/linux/nios2/setcontext.S
new file mode 100644
index 0000000000..bb6122b5b2
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/nios2/setcontext.S
@@ -0,0 +1,115 @@
+/* Set current context.
+ Copyright (C) 2015-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#include "ucontext_i.h"
+
+/* int setcontext (const ucontext_t *ucp) */
+ .text
+ENTRY(__setcontext)
+ ldw r5, UCONTEXT_FLAGS(r4)
+ movi r6, 1
+ bne r5, r6, .Lsigreturn
+
+ mov r10, r4
+
+ /* Restore signal mask. */
+ /* rt_sigprocmask (SIG_SETMASK, &ucp->uc_sigmask, NULL, _NSIG8) */
+ movi r7, _NSIG8
+ addi r5, r4, UCONTEXT_SIGMASK
+ mov r6, zero
+ movi r4, SIG_SETMASK
+ movi r2, SYS_ify (rt_sigprocmask)
+ trap
+ bne r7, zero, SYSCALL_ERROR_LABEL
+
+ /* Restore argument registers, for the makecontext() case. */
+ ldw r4, (UCONTEXT_MCONTEXT + 4*4)(r10)
+ ldw r5, (UCONTEXT_MCONTEXT + 5*4)(r10)
+ ldw r6, (UCONTEXT_MCONTEXT + 6*4)(r10)
+ ldw r7, (UCONTEXT_MCONTEXT + 7*4)(r10)
+
+ ldw r16, (UCONTEXT_MCONTEXT + 16*4)(r10)
+ ldw r17, (UCONTEXT_MCONTEXT + 17*4)(r10)
+ ldw r18, (UCONTEXT_MCONTEXT + 18*4)(r10)
+ ldw r19, (UCONTEXT_MCONTEXT + 19*4)(r10)
+ ldw r20, (UCONTEXT_MCONTEXT + 20*4)(r10)
+ ldw r21, (UCONTEXT_MCONTEXT + 21*4)(r10)
+ ldw r22, (UCONTEXT_MCONTEXT + 22*4)(r10)
+ ldw ra, (UCONTEXT_MCONTEXT + 24*4)(r10)
+ ldw fp, (UCONTEXT_MCONTEXT + 25*4)(r10)
+ ldw gp, (UCONTEXT_MCONTEXT + 26*4)(r10)
+ /* Load address to continue execution. */
+ ldw r3, (UCONTEXT_MCONTEXT + 28*4)(r10)
+ ldw sp, (UCONTEXT_MCONTEXT + 29*4)(r10)
+
+ mov r2, zero
+ jmp r3
+
+.Lsigreturn:
+ addi sp, sp, -RT_SIGFRAME_SIZE
+ cfi_adjust_cfa_offset (RT_SIGFRAME_SIZE)
+
+ addi r2, sp, RT_SIGFRAME_UCONTEXT
+ movi r3, UCONTEXT_SIZE-4
+1:
+ add r6, r4, r3
+ ldw r5, 0(r6)
+ add r7, r2, r3
+ addi r3, r3, -4
+ stw r5, 0(r7)
+ bgt r3, zero, 1b
+
+ movi r2, SYS_ify (rt_sigreturn)
+ trap
+
+ addi sp, sp, RT_SIGFRAME_SIZE
+ cfi_adjust_cfa_offset (-RT_SIGFRAME_SIZE)
+ br SYSCALL_ERROR_LABEL
+
+PSEUDO_END (__setcontext)
+weak_alias (__setcontext, setcontext)
+
+ /* We add an NOP here to separate between __setcontext/__startcontext.
+ The wanted behavior that happens is: when unwinding from a function
+ called inside a makecontext() context, FDE lookup will use
+ '&__startcontext - 1', then returns NULL for no FDE found,
+ and immediately ends the unwind, in a normal fashion.
+
+ If this NOP word does not exist, FDE lookup just repeatedly finds
+ __setcontext's FDE in an infinite loop, due to the convention of
+ using 'address - 1' for FDE lookup. Modifiying/deleting the below
+ __startcontext's FDE has no help on this. */
+ nop
+
+ENTRY(__startcontext)
+ mov r4, r16
+ bne r4, zero, __setcontext
+
+ /* If uc_link == zero, call exit. */
+#ifdef PIC
+ nextpc r22
+1: movhi r8, %hiadj(_gp_got - 1b)
+ addi r8, r8, %lo(_gp_got - 1b)
+ add r22, r22, r8
+ ldw r8, %call(HIDDEN_JUMPTARGET(exit))(r22)
+ jmp r8
+#else
+ jmpi exit
+#endif
+END(__startcontext)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/nios2/shlib-versions b/REORG.TODO/sysdeps/unix/sysv/linux/nios2/shlib-versions
new file mode 100644
index 0000000000..443fd4df23
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/nios2/shlib-versions
@@ -0,0 +1,2 @@
+DEFAULT GLIBC_2.21
+ld=ld-linux-nios2.so.1
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/nios2/sigcontextinfo.h b/REORG.TODO/sysdeps/unix/sysv/linux/nios2/sigcontextinfo.h
new file mode 100644
index 0000000000..51b715c308
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/nios2/sigcontextinfo.h
@@ -0,0 +1,35 @@
+/* Nios II definitions for signal handling calling conventions.
+ Copyright (C) 2015-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sys/ucontext.h>
+#include "kernel-features.h"
+
+#define SIGCONTEXT siginfo_t *_si, struct ucontext *
+#define GET_PC(ctx) ((void *) (ctx)->uc_mcontext.regs[27])
+
+/* There is no reliable way to get the sigcontext unless we use a
+ three-argument signal handler. */
+#define __sigaction(sig, act, oact) ({ \
+ (act)->sa_flags |= SA_SIGINFO; \
+ (__sigaction) (sig, act, oact); \
+})
+
+#define sigaction(sig, act, oact) ({ \
+ (act)->sa_flags |= SA_SIGINFO; \
+ (sigaction) (sig, act, oact); \
+})
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/nios2/swapcontext.S b/REORG.TODO/sysdeps/unix/sysv/linux/nios2/swapcontext.S
new file mode 100644
index 0000000000..00871c2979
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/nios2/swapcontext.S
@@ -0,0 +1,125 @@
+/* Modify saved context.
+ Copyright (C) 2015-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#include "ucontext_i.h"
+
+/* int swapcontext (ucontext_t *oucp, const ucontext_t *ucp) */
+ .text
+ENTRY(__swapcontext)
+
+ /* Same as getcontext(). */
+ stw r16, (UCONTEXT_MCONTEXT + 16*4)(r4)
+ stw r17, (UCONTEXT_MCONTEXT + 17*4)(r4)
+ stw r18, (UCONTEXT_MCONTEXT + 18*4)(r4)
+ stw r19, (UCONTEXT_MCONTEXT + 19*4)(r4)
+ stw r20, (UCONTEXT_MCONTEXT + 20*4)(r4)
+ stw r21, (UCONTEXT_MCONTEXT + 21*4)(r4)
+ stw r22, (UCONTEXT_MCONTEXT + 22*4)(r4)
+ stw ra, (UCONTEXT_MCONTEXT + 24*4)(r4)
+ stw fp, (UCONTEXT_MCONTEXT + 25*4)(r4)
+ stw gp, (UCONTEXT_MCONTEXT + 26*4)(r4)
+ /* Store return address at place for EA. */
+ stw ra, (UCONTEXT_MCONTEXT + 28*4)(r4)
+ stw sp, (UCONTEXT_MCONTEXT + 29*4)(r4)
+ /* Store zero for return success. */
+ stw zero, (UCONTEXT_MCONTEXT + 2*4)(r4)
+
+ /* Store value "1" at uc_flags to recognize as getcontext created. */
+ movi r2, 1
+ stw r2, UCONTEXT_FLAGS(r4)
+
+ /* Store MCONTEXT_VERSION at first word of mcontext_t. */
+ movi r2, MCONTEXT_VERSION
+ stw r2, UCONTEXT_MCONTEXT(r4)
+
+ /* Save ucp to non-argument syscall preserved register. */
+ mov r10, r5
+
+ /* Get signal mask. */
+ /* rt_sigprocmask (SIG_BLOCK, NULL, &ucp->uc_sigmask, _NSIG8) */
+ movi r7, _NSIG8
+ addi r6, r4, UCONTEXT_SIGMASK
+ mov r5, zero
+ movi r4, SIG_BLOCK
+ movi r2, SYS_ify (rt_sigprocmask)
+ trap
+ bne r7, zero, SYSCALL_ERROR_LABEL
+
+
+ /* Same as setcontext(). */
+ ldw r5, UCONTEXT_FLAGS(r10)
+ movi r6, 1
+ bne r5, r6, .Lsigreturn
+
+ /* Restore signal mask. */
+ /* rt_sigprocmask (SIG_SETMASK, &ucp->uc_sigmask, NULL, _NSIG8) */
+ movi r7, _NSIG8
+ addi r5, r10, UCONTEXT_SIGMASK
+ mov r6, zero
+ movi r4, SIG_SETMASK
+ movi r2, SYS_ify (rt_sigprocmask)
+ trap
+ bne r7, zero, SYSCALL_ERROR_LABEL
+
+ /* Restore argument registers, for the makecontext() case. */
+ ldw r4, (UCONTEXT_MCONTEXT + 4*4)(r10)
+ ldw r5, (UCONTEXT_MCONTEXT + 5*4)(r10)
+ ldw r6, (UCONTEXT_MCONTEXT + 6*4)(r10)
+ ldw r7, (UCONTEXT_MCONTEXT + 7*4)(r10)
+
+ ldw r16, (UCONTEXT_MCONTEXT + 16*4)(r10)
+ ldw r17, (UCONTEXT_MCONTEXT + 17*4)(r10)
+ ldw r18, (UCONTEXT_MCONTEXT + 18*4)(r10)
+ ldw r19, (UCONTEXT_MCONTEXT + 19*4)(r10)
+ ldw r20, (UCONTEXT_MCONTEXT + 20*4)(r10)
+ ldw r21, (UCONTEXT_MCONTEXT + 21*4)(r10)
+ ldw r22, (UCONTEXT_MCONTEXT + 22*4)(r10)
+ ldw ra, (UCONTEXT_MCONTEXT + 24*4)(r10)
+ ldw fp, (UCONTEXT_MCONTEXT + 25*4)(r10)
+ ldw gp, (UCONTEXT_MCONTEXT + 26*4)(r10)
+ /* Load address to continue execution. */
+ ldw r3, (UCONTEXT_MCONTEXT + 28*4)(r10)
+ ldw sp, (UCONTEXT_MCONTEXT + 29*4)(r10)
+
+ mov r2, zero
+ jmp r3
+
+.Lsigreturn:
+ addi sp, sp, -RT_SIGFRAME_SIZE
+ cfi_adjust_cfa_offset (RT_SIGFRAME_SIZE)
+
+ addi r2, sp, RT_SIGFRAME_UCONTEXT
+ movi r3, UCONTEXT_SIZE-4
+1:
+ add r6, r4, r3
+ ldw r5, 0(r6)
+ add r7, r2, r3
+ addi r3, r3, -4
+ stw r5, 0(r7)
+ bgt r3, zero, 1b
+
+ movi r2, SYS_ify (rt_sigreturn)
+ trap
+
+ addi sp, sp, RT_SIGFRAME_SIZE
+ cfi_adjust_cfa_offset (-RT_SIGFRAME_SIZE)
+ br SYSCALL_ERROR_LABEL
+
+PSEUDO_END (__swapcontext)
+weak_alias (__swapcontext, swapcontext)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/nios2/sys/cachectl.h b/REORG.TODO/sysdeps/unix/sysv/linux/nios2/sys/cachectl.h
new file mode 100644
index 0000000000..442f354e16
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/nios2/sys/cachectl.h
@@ -0,0 +1,33 @@
+/* cacheflush - flush contents of instruction and/or data cache.
+ Copyright (C) 2015-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_CACHECTL_H
+#define _SYS_CACHECTL_H 1
+
+#include <features.h>
+
+__BEGIN_DECLS
+
+#ifdef __USE_MISC
+extern int cacheflush (void *__addr, const int __nbytes, const int __op) __THROW;
+#endif
+extern int _flush_cache (char *__addr, const int __nbytes, const int __op) __THROW;
+
+__END_DECLS
+
+#endif /* sys/cachectl.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/nios2/sys/procfs.h b/REORG.TODO/sysdeps/unix/sysv/linux/nios2/sys/procfs.h
new file mode 100644
index 0000000000..c9ae7f90c8
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/nios2/sys/procfs.h
@@ -0,0 +1,123 @@
+/* Core image file related definitions, Nios II version.
+ Copyright (C) 1996-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_PROCFS_H
+#define _SYS_PROCFS_H 1
+
+/* This is somewhat modelled after the file of the same name on SVR4
+ systems. It provides a definition of the core file format for ELF
+ used on Linux. It doesn't have anything to do with the /proc file
+ system, even though Linux has one.
+
+ Anyway, the whole purpose of this file is for GDB and GDB only.
+ Don't read too much into it. Don't use it for anything other than
+ GDB unless you know what you are doing. */
+
+#include <features.h>
+#include <sys/time.h>
+#include <sys/types.h>
+#include <sys/user.h>
+
+__BEGIN_DECLS
+
+/* Type for a general-purpose register. */
+typedef unsigned long elf_greg_t;
+
+/* And the whole bunch of them. We could have used `struct
+ user_regs' directly in the typedef, but tradition says that
+ the register set is an array, which does have some peculiar
+ semantics, so leave it that way. */
+#define ELF_NGREG (sizeof (struct user_regs) / sizeof(elf_greg_t))
+typedef elf_greg_t elf_gregset_t[ELF_NGREG];
+
+/* Register set for the floating-point registers. */
+typedef struct user_fpregs elf_fpregset_t;
+
+/* Signal info. */
+struct elf_siginfo
+ {
+ int si_signo; /* Signal number. */
+ int si_code; /* Extra code. */
+ int si_errno; /* Errno. */
+ };
+
+/* Definitions to generate Intel SVR4-like core files. These mostly
+ have the same names as the SVR4 types with "elf_" tacked on the
+ front to prevent clashes with Linux definitions, and the typedef
+ forms have been avoided. This is mostly like the SVR4 structure,
+ but more Linuxy, with things that Linux does not support and which
+ GDB doesn't really use excluded. */
+
+struct elf_prstatus
+ {
+ struct elf_siginfo pr_info; /* Info associated with signal. */
+ short int pr_cursig; /* Current signal. */
+ unsigned long int pr_sigpend; /* Set of pending signals. */
+ unsigned long int pr_sighold; /* Set of held signals. */
+ __pid_t pr_pid;
+ __pid_t pr_ppid;
+ __pid_t pr_pgrp;
+ __pid_t pr_sid;
+ struct timeval pr_utime; /* User time. */
+ struct timeval pr_stime; /* System time. */
+ struct timeval pr_cutime; /* Cumulative user time. */
+ struct timeval pr_cstime; /* Cumulative system time. */
+ elf_gregset_t pr_reg; /* GP registers. */
+ int pr_fpvalid; /* True if math copro being used. */
+ };
+
+
+#define ELF_PRARGSZ (80) /* Number of chars for args. */
+
+struct elf_prpsinfo
+ {
+ char pr_state; /* Numeric process state. */
+ char pr_sname; /* Char for pr_state. */
+ char pr_zomb; /* Zombie. */
+ char pr_nice; /* Nice val. */
+ unsigned long int pr_flag; /* Flags. */
+ unsigned short int pr_uid;
+ unsigned short int pr_gid;
+ int pr_pid, pr_ppid, pr_pgrp, pr_sid;
+ /* Lots missing */
+ char pr_fname[16]; /* Filename of executable. */
+ char pr_psargs[ELF_PRARGSZ]; /* Initial part of arg list. */
+ };
+
+/* The rest of this file provides the types for emulation of the
+ Solaris <proc_service.h> interfaces that should be implemented by
+ users of libthread_db. */
+
+/* Addresses. */
+typedef void *psaddr_t;
+
+/* Register sets. Linux has different names. */
+typedef elf_gregset_t prgregset_t;
+typedef elf_fpregset_t prfpregset_t;
+
+/* We don't have any differences between processes and threads,
+ therefore have only one PID type. */
+typedef __pid_t lwpid_t;
+
+/* Process status and info. In the end we do provide typedefs for them. */
+typedef struct elf_prstatus prstatus_t;
+typedef struct elf_prpsinfo prpsinfo_t;
+
+__END_DECLS
+
+#endif /* sys/procfs.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/nios2/sys/ucontext.h b/REORG.TODO/sysdeps/unix/sysv/linux/nios2/sys/ucontext.h
new file mode 100644
index 0000000000..af8d75c435
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/nios2/sys/ucontext.h
@@ -0,0 +1,62 @@
+/* struct ucontext definition, Nios II version.
+ Copyright (C) 2015-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+/* System V/Nios II ABI compliant context switching support. */
+
+#ifndef _SYS_UCONTEXT_H
+#define _SYS_UCONTEXT_H 1
+
+#include <features.h>
+
+#include <bits/types/sigset_t.h>
+#include <bits/sigcontext.h>
+#include <bits/types/stack_t.h>
+
+
+/* These definitions must be in sync with the kernel. */
+
+#ifdef __USE_MISC
+# define MCONTEXT_VERSION 2
+#endif
+
+#ifdef __USE_MISC
+# define __ctx(fld) fld
+#else
+# define __ctx(fld) __ ## fld
+#endif
+
+/* Context to describe whole processor state. */
+typedef struct mcontext
+ {
+ int __ctx(version);
+ unsigned long __ctx(regs)[32];
+ } mcontext_t;
+
+#undef __ctx
+
+/* Userlevel context. */
+typedef struct ucontext
+ {
+ unsigned long uc_flags;
+ struct ucontext *uc_link;
+ stack_t uc_stack;
+ mcontext_t uc_mcontext;
+ sigset_t uc_sigmask;
+ } ucontext_t;
+
+#endif /* sys/ucontext.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/nios2/sys/user.h b/REORG.TODO/sysdeps/unix/sysv/linux/nios2/sys/user.h
new file mode 100644
index 0000000000..7570ca6072
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/nios2/sys/user.h
@@ -0,0 +1,58 @@
+/* ptrace register data format definitions.
+ Copyright (C) 1998-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_USER_H
+#define _SYS_USER_H 1
+
+/* The whole purpose of this file is for GDB and GDB only. Don't read
+ too much into it. Don't use it for anything other than GDB unless
+ you know what you are doing. */
+
+struct user_fpregs
+{
+};
+
+struct user_regs
+{
+ unsigned long int uregs[49];
+};
+
+struct user
+{
+ struct user_regs regs; /* General registers */
+ int u_fpvalid; /* True if math co-processor being used. */
+
+ unsigned long int u_tsize; /* Text segment size (pages). */
+ unsigned long int u_dsize; /* Data segment size (pages). */
+ unsigned long int u_ssize; /* Stack segment size (pages). */
+
+ unsigned long start_code; /* Starting virtual address of text. */
+ unsigned long start_stack; /* Starting virtual address of stack. */
+
+ long int signal; /* Signal that caused the core dump. */
+ int reserved; /* No longer used */
+ struct user_regs *u_ar0; /* help gdb to find the general registers. */
+
+ unsigned long magic; /* uniquely identify a core file */
+ char u_comm[32]; /* User command that was responsible */
+ int u_debugreg[8];
+ struct user_fpregs u_fp; /* Floating point registers */
+ struct user_fpregs *u_fp0; /* help gdb to find the FP registers. */
+};
+
+#endif /* sys/user.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/nios2/syscall.S b/REORG.TODO/sysdeps/unix/sysv/linux/nios2/syscall.S
new file mode 100644
index 0000000000..552ddf0523
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/nios2/syscall.S
@@ -0,0 +1,36 @@
+/* syscall - indirect system call.
+ Copyright (C) 2005-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+
+/* We don't need a special syscall to implement syscall(). It won't work
+ reliably with 64-bit arguments (but that is true on many modern platforms).
+*/
+
+ENTRY (syscall)
+ mov r2, r4
+ mov r4, r5
+ mov r5, r6
+ mov r6, r7
+ ldw r7, 0(sp)
+ ldw r8, 4(sp)
+ ldw r9, 8(sp)
+ trap
+ bne r7, zero, SYSCALL_ERROR_LABEL
+ ret
+PSEUDO_END (syscall)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/nios2/sysdep-cancel.h b/REORG.TODO/sysdeps/unix/sysv/linux/nios2/sysdep-cancel.h
new file mode 100644
index 0000000000..47b92d99b6
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/nios2/sysdep-cancel.h
@@ -0,0 +1,141 @@
+/* Assembler macros with cancellation support, Nios II version.
+ Copyright (C) 2003-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <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) \
+ .type __##syscall_name##_nocancel, @function; \
+ .globl __##syscall_name##_nocancel; \
+ __##syscall_name##_nocancel: \
+ cfi_startproc; \
+ DO_CALL (syscall_name, args); \
+ bne r7, zero, SYSCALL_ERROR_LABEL; \
+ ret; \
+ cfi_endproc; \
+ .size __##syscall_name##_nocancel,.-__##syscall_name##_nocancel; \
+ ENTRY (name) \
+ SINGLE_THREAD_P(r2); \
+ bne r2, zero, pseudo_cancel; \
+ DO_CALL (syscall_name, args); \
+ bne r7, zero, SYSCALL_ERROR_LABEL; \
+ ret; \
+ pseudo_cancel: \
+ SAVESTK_##args; /* save syscall args and adjust stack */ \
+ SAVEREG(ra, 0); /* save return address */ \
+ SAVEREG(r22, 4); /* save GOT pointer */ \
+ nextpc r22; \
+1: movhi r2, %hiadj(_gp_got - 1b); \
+ addi r2, r2, %lo(_gp_got - 1b); \
+ add r22, r22, r2; \
+ CENABLE; \
+ callr r3; \
+ stw r2, 8(sp); /* save mask */ \
+ LOADARGS_##args; \
+ movi r2, SYS_ify(syscall_name); \
+ trap; \
+ stw r2, 12(sp); /* save syscall result */ \
+ stw r7, 16(sp); /* save syscall error flag */ \
+ ldw r4, 8(sp); /* pass mask as argument 1 */ \
+ CDISABLE; \
+ callr r3; \
+ ldw r7, 16(sp); /* restore syscall error flag */ \
+ ldw r2, 12(sp); /* restore syscall result */ \
+ ldw ra, 0(sp); /* restore return address */ \
+ ldw r22, 4(sp); /* restore GOT pointer */ \
+ RESTORESTK_##args; \
+ bne r7, zero, SYSCALL_ERROR_LABEL;
+
+
+# undef PSEUDO_END
+# define PSEUDO_END(sym) \
+ SYSCALL_ERROR_HANDLER \
+ END (sym)
+
+#define SAVEREG(REG, LOC) stw REG, LOC(sp); cfi_rel_offset (REG, LOC)
+#define SAVESTK(X) subi sp, sp, X; cfi_adjust_cfa_offset(X)
+#define SAVESTK_0 SAVESTK(20)
+#define SAVEARG_1 SAVEREG(r4, 20)
+#define SAVESTK_1 SAVESTK(24); SAVEARG_1
+#define SAVEARG_2 SAVEREG(r5, 24); SAVEARG_1
+#define SAVESTK_2 SAVESTK(28); SAVEARG_2
+#define SAVEARG_3 SAVEREG(r6, 28); SAVEARG_2
+#define SAVESTK_3 SAVESTK(32); SAVEARG_3
+#define SAVEARG_4 SAVEREG(r7, 32); SAVEARG_3
+#define SAVESTK_4 SAVESTK(36); SAVEARG_4
+#define SAVESTK_5 SAVESTK_4
+#define SAVESTK_6 SAVESTK_5
+
+#define LOADARGS_0
+#define LOADARGS_1 ldw r4, 20(sp)
+#define LOADARGS_2 LOADARGS_1; ldw r5, 24(sp)
+#define LOADARGS_3 LOADARGS_2; ldw r6, 28(sp)
+#define LOADARGS_4 LOADARGS_3; ldw r7, 32(sp)
+#define LOADARGS_5 LOADARGS_4; ldw r8, 36(sp)
+#define LOADARGS_6 LOADARGS_5; ldw r9, 40(sp)
+
+#define RESTORESTK(X) addi sp, sp, X; cfi_adjust_cfa_offset(-X)
+#define RESTORESTK_0 RESTORESTK(20)
+#define RESTORESTK_1 RESTORESTK(24)
+#define RESTORESTK_2 RESTORESTK(28)
+#define RESTORESTK_3 RESTORESTK(32)
+#define RESTORESTK_4 RESTORESTK(36)
+#define RESTORESTK_5 RESTORESTK(36)
+#define RESTORESTK_6 RESTORESTK(36)
+
+# if IS_IN (libpthread)
+# define CENABLE ldw r3, %call(__pthread_enable_asynccancel)(r22)
+# define CDISABLE ldw r3, %call(__pthread_disable_asynccancel)(r22)
+# elif IS_IN (librt)
+# define CENABLE ldw r3, %call(__librt_enable_asynccancel)(r22)
+# define CDISABLE ldw r3, %call(__librt_disable_asynccancel)(r22)
+# elif IS_IN (libc)
+# define CENABLE ldw r3, %call(__libc_enable_asynccancel)(r22)
+# define CDISABLE ldw r3, %call(__libc_disable_asynccancel)(r22)
+# else
+# error Unsupported library
+# endif
+
+# ifndef __ASSEMBLER__
+# define SINGLE_THREAD_P \
+ __builtin_expect (THREAD_GETMEM (THREAD_SELF, \
+ header.multiple_threads) \
+ == 0, 1)
+# else
+# define SINGLE_THREAD_P(reg) \
+ ldw reg, MULTIPLE_THREADS_OFFSET(r23)
+#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/nios2/sysdep.S b/REORG.TODO/sysdeps/unix/sysv/linux/nios2/sysdep.S
new file mode 100644
index 0000000000..5cf87c6eb3
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/nios2/sysdep.S
@@ -0,0 +1,50 @@
+/* Static library error handling code fragment for Nios II.
+ Copyright (C) 2015-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation; either version 2.1 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+
+/* The following code is only used in the static library. In the shared
+ library, the error handling code is at the end of each function. */
+
+#ifndef PIC
+
+/* In the static library, the syscall stubs jump here when they detect
+ an error. */
+
+# undef CALL_MCOUNT
+# define CALL_MCOUNT /* Don't insert the profiling call, it clobbers r2. */
+
+# if IS_IN (libc)
+# define SYSCALL_ERROR_ERRNO __libc_errno
+# else
+# define SYSCALL_ERROR_ERRNO errno
+# endif
+ .text
+ENTRY (__syscall_error)
+ nextpc r3
+1:
+ movhi r8, %hiadj(_gp_got - 1b)
+ addi r8, r8, %lo(_gp_got - 1b)
+ add r3, r3, r8
+ ldw r3, %tls_ie(SYSCALL_ERROR_ERRNO)(r3)
+ add r3, r23, r3
+ stw r2, 0(r3)
+ movi r2, -1
+ ret
+END (__syscall_error)
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/nios2/sysdep.h b/REORG.TODO/sysdeps/unix/sysv/linux/nios2/sysdep.h
new file mode 100644
index 0000000000..c7b065bd8a
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/nios2/sysdep.h
@@ -0,0 +1,264 @@
+/* Assembler macros for Nios II.
+ Copyright (C) 2000-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _LINUX_NIOS2_SYSDEP_H
+#define _LINUX_NIOS2_SYSDEP_H 1
+
+#include <asm/unistd.h>
+#include <sysdeps/unix/sysdep.h>
+#include <sysdeps/nios2/sysdep.h>
+#include <sysdeps/unix/sysv/linux/generic/sysdep.h>
+
+/* For RTLD_PRIVATE_ERRNO. */
+#include <dl-sysdep.h>
+
+#include <tls.h>
+
+/* For Linux we can use the system call table in the header file
+ /usr/include/asm/unistd.h
+ of the kernel. But these symbols do not follow the SYS_* syntax
+ so we have to redefine the `SYS_ify' macro here. */
+#undef SYS_ify
+#define SYS_ify(syscall_name) __NR_##syscall_name
+
+#ifdef __ASSEMBLER__
+
+#define SYSCALL_ERROR_LABEL __local_syscall_error
+
+#undef PSEUDO
+#define PSEUDO(name, syscall_name, args) \
+ ENTRY (name) \
+ DO_CALL (syscall_name, args) \
+ bne r7, zero, 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) \
+ ENTRY (name) \
+ DO_CALL (syscall_name, args)
+
+#undef PSEUDO_END_NOERRNO
+#define PSEUDO_END_NOERRNO(name) \
+ END (name)
+
+#undef ret_NOERRNO
+#define ret_NOERRNO ret
+
+#undef DO_CALL
+#define DO_CALL(syscall_name, args) \
+ DOARGS_##args \
+ movi r2, SYS_ify(syscall_name); \
+ trap;
+
+#if defined(__PIC__) || defined(PIC)
+
+# if RTLD_PRIVATE_ERRNO
+
+# define SYSCALL_ERROR_HANDLER \
+ SYSCALL_ERROR_LABEL: \
+ nextpc r3; \
+1: \
+ movhi r8, %hiadj(rtld_errno - 1b); \
+ addi r8, r8, %lo(rtld_errno - 1b); \
+ add r3, r3, r8; \
+ stw r2, 0(r3); \
+ movi r2, -1; \
+ ret;
+
+# else
+
+# if IS_IN (libc)
+# define SYSCALL_ERROR_ERRNO __libc_errno
+# else
+# define SYSCALL_ERROR_ERRNO errno
+# endif
+# define SYSCALL_ERROR_HANDLER \
+ SYSCALL_ERROR_LABEL: \
+ nextpc r3; \
+1: \
+ movhi r8, %hiadj(_gp_got - 1b); \
+ addi r8, r8, %lo(_gp_got - 1b); \
+ add r3, r3, r8; \
+ ldw r3, %tls_ie(SYSCALL_ERROR_ERRNO)(r3); \
+ add r3, r23, r3; \
+ stw r2, 0(r3); \
+ movi r2, -1; \
+ ret;
+
+# endif
+
+#else
+
+/* We can use a single error handler in the static library. */
+#define SYSCALL_ERROR_HANDLER \
+ SYSCALL_ERROR_LABEL: \
+ jmpi __syscall_error;
+
+#endif
+
+#define DOARGS_0 /* nothing */
+#define DOARGS_1 /* nothing */
+#define DOARGS_2 /* nothing */
+#define DOARGS_3 /* nothing */
+#define DOARGS_4 /* nothing */
+#define DOARGS_5 ldw r8, 0(sp);
+#define DOARGS_6 ldw r9, 4(sp); ldw r8, 0(sp);
+
+/* The function has to return the error code. */
+#undef PSEUDO_ERRVAL
+#define PSEUDO_ERRVAL(name, syscall_name, args) \
+ ENTRY (name) \
+ DO_CALL (syscall_name, args)
+
+#undef PSEUDO_END_ERRVAL
+#define PSEUDO_END_ERRVAL(name) \
+ END (name)
+
+#define ret_ERRVAL ret
+
+#else /* __ASSEMBLER__ */
+
+/* In order to get __set_errno() definition in INLINE_SYSCALL. */
+#include <errno.h>
+
+/* Previously Nios2 used the generic version without the libc_hidden_def
+ which lead in a non existent __send symbol in libc.so. */
+# undef HAVE_INTERNAL_SEND_SYMBOL
+
+/* Define a macro which expands into the inline wrapper code for a system
+ call. */
+#undef INLINE_SYSCALL
+#define INLINE_SYSCALL(name, nr, args...) \
+ ({ INTERNAL_SYSCALL_DECL(err); \
+ unsigned int result_var = INTERNAL_SYSCALL (name, err, nr, args); \
+ if ( INTERNAL_SYSCALL_ERROR_P (result_var, err) ) \
+ { \
+ __set_errno (INTERNAL_SYSCALL_ERRNO (result_var, err)); \
+ result_var = -1L; \
+ } \
+ (int) result_var; })
+
+#undef INTERNAL_SYSCALL_DECL
+#define INTERNAL_SYSCALL_DECL(err) unsigned int err __attribute__((unused))
+
+#undef INTERNAL_SYSCALL_ERROR_P
+#define INTERNAL_SYSCALL_ERROR_P(val, err) ((void) (val), (unsigned int) (err))
+
+#undef INTERNAL_SYSCALL_ERRNO
+#define INTERNAL_SYSCALL_ERRNO(val, err) ((void) (err), val)
+
+#undef INTERNAL_SYSCALL_RAW
+#define INTERNAL_SYSCALL_RAW(name, err, nr, args...) \
+ ({ unsigned int _sys_result; \
+ { \
+ /* Load argument values in temporary variables
+ to perform side effects like function calls
+ before the call-used registers are set. */ \
+ LOAD_ARGS_##nr (args) \
+ LOAD_REGS_##nr \
+ register int _r2 asm ("r2") = (int)(name); \
+ register int _err asm ("r7"); \
+ asm volatile ("trap" \
+ : "+r" (_r2), "=r" (_err) \
+ : ASM_ARGS_##nr \
+ : __SYSCALL_CLOBBERS); \
+ _sys_result = _r2; \
+ err = _err; \
+ } \
+ (int) _sys_result; })
+
+#undef INTERNAL_SYSCALL
+#define INTERNAL_SYSCALL(name, err, nr, args...) \
+ INTERNAL_SYSCALL_RAW(SYS_ify(name), err, nr, args)
+
+#undef INTERNAL_SYSCALL_NCS
+#define INTERNAL_SYSCALL_NCS(number, err, nr, args...) \
+ INTERNAL_SYSCALL_RAW(number, err, nr, args)
+
+#define LOAD_ARGS_0()
+#define LOAD_REGS_0
+#define ASM_ARGS_0
+#define LOAD_ARGS_1(a1) \
+ LOAD_ARGS_0 () \
+ int __arg1 = (int) (a1);
+#define LOAD_REGS_1 \
+ register int _r4 asm ("r4") = __arg1; \
+ LOAD_REGS_0
+#define ASM_ARGS_1 "r" (_r4)
+#define LOAD_ARGS_2(a1, a2) \
+ LOAD_ARGS_1 (a1) \
+ int __arg2 = (int) (a2);
+#define LOAD_REGS_2 \
+ register int _r5 asm ("r5") = __arg2; \
+ LOAD_REGS_1
+#define ASM_ARGS_2 ASM_ARGS_1, "r" (_r5)
+#define LOAD_ARGS_3(a1, a2, a3) \
+ LOAD_ARGS_2 (a1, a2) \
+ int __arg3 = (int) (a3);
+#define LOAD_REGS_3 \
+ register int _r6 asm ("r6") = __arg3; \
+ LOAD_REGS_2
+#define ASM_ARGS_3 ASM_ARGS_2, "r" (_r6)
+#define LOAD_ARGS_4(a1, a2, a3, a4) \
+ LOAD_ARGS_3 (a1, a2, a3) \
+ int __arg4 = (int) (a4);
+#define LOAD_REGS_4 \
+ register int _r7 asm ("r7") = __arg4; \
+ LOAD_REGS_3
+#define ASM_ARGS_4 ASM_ARGS_3, "r" (_r7)
+#define LOAD_ARGS_5(a1, a2, a3, a4, a5) \
+ LOAD_ARGS_4 (a1, a2, a3, a4) \
+ int __arg5 = (int) (a5);
+#define LOAD_REGS_5 \
+ register int _r8 asm ("r8") = __arg5; \
+ LOAD_REGS_4
+#define ASM_ARGS_5 ASM_ARGS_4, "r" (_r8)
+#define LOAD_ARGS_6(a1, a2, a3, a4, a5, a6) \
+ LOAD_ARGS_5 (a1, a2, a3, a4, a5) \
+ int __arg6 = (int) (a6);
+#define LOAD_REGS_6 \
+ register int _r9 asm ("r9") = __arg6; \
+ LOAD_REGS_5
+#define ASM_ARGS_6 ASM_ARGS_5, "r" (_r9)
+
+#define __SYSCALL_CLOBBERS "memory"
+
+#endif /* __ASSEMBLER__ */
+
+/* Pointer mangling support. */
+#if IS_IN (rtld)
+/* We cannot use the thread descriptor because in ld.so we use setjmp
+ earlier than the descriptor is initialized. */
+#else
+# ifdef __ASSEMBLER__
+# define PTR_MANGLE_GUARD(guard) ldw guard, POINTER_GUARD(r23)
+# define PTR_MANGLE(dst, src, guard) xor dst, src, guard
+# define PTR_DEMANGLE(dst, src, guard) PTR_MANGLE (dst, src, guard)
+# else
+# define PTR_MANGLE(var) \
+ (var) = (__typeof (var)) ((uintptr_t) (var) ^ THREAD_GET_POINTER_GUARD ())
+# define PTR_DEMANGLE(var) PTR_MANGLE (var)
+# endif
+#endif
+
+
+#endif /* linux/nios2/sysdep.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/nios2/ucontext_i.sym b/REORG.TODO/sysdeps/unix/sysv/linux/nios2/ucontext_i.sym
new file mode 100644
index 0000000000..a844c96796
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/nios2/ucontext_i.sym
@@ -0,0 +1,29 @@
+#include <inttypes.h>
+#include <signal.h>
+#include <stddef.h>
+#include <sys/ucontext.h>
+
+#include "kernel_rt_sigframe.h"
+
+SIG_BLOCK
+SIG_SETMASK
+
+_NSIG8 (_NSIG / 8)
+
+MCONTEXT_VERSION
+
+-- Offsets of the fields in the kernel rt_sigframe_t structure.
+#define rt_sigframe(member) offsetof (struct kernel_rt_sigframe, member)
+
+RT_SIGFRAME_SIZE sizeof (struct kernel_rt_sigframe)
+RT_SIGFRAME_UCONTEXT rt_sigframe (uc)
+
+-- Offsets of the fields in the ucontext_t structure.
+#define ucontext(member) offsetof (ucontext_t, member)
+
+UCONTEXT_FLAGS ucontext (uc_flags)
+UCONTEXT_LINK ucontext (uc_link)
+UCONTEXT_STACK ucontext (uc_stack)
+UCONTEXT_MCONTEXT ucontext (uc_mcontext)
+UCONTEXT_SIGMASK ucontext (uc_sigmask)
+UCONTEXT_SIZE sizeof (ucontext_t)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/nios2/vfork.S b/REORG.TODO/sysdeps/unix/sysv/linux/nios2/vfork.S
new file mode 100644
index 0000000000..eb8a579f79
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/nios2/vfork.S
@@ -0,0 +1,34 @@
+/* vfork for Nios II Linux.
+ Copyright (C) 2005-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#include <tcb-offsets.h>
+
+ENTRY(__vfork)
+
+ movi r4, 0x4111 /* (CLONE_VM | CLONE_VFORK | SIGCHLD) */
+ mov r5, zero
+ DO_CALL (clone, 2)
+
+ bne r7, zero, SYSCALL_ERROR_LABEL
+ ret
+
+PSEUDO_END (__vfork)
+libc_hidden_def (__vfork)
+
+weak_alias (__vfork, vfork)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/not-cancel.h b/REORG.TODO/sysdeps/unix/sysv/linux/not-cancel.h
new file mode 100644
index 0000000000..43959bad83
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/not-cancel.h
@@ -0,0 +1,109 @@
+/* Uncancelable versions of cancelable interfaces. Linux/NPTL version.
+ Copyright (C) 2003-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@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/>. */
+
+#ifndef NOT_CANCEL_H
+# define NOT_CANCEL_H
+
+#include <sysdep.h>
+#include <errno.h>
+#include <unistd.h>
+#include <sys/syscall.h>
+
+/* Uncancelable open. */
+#ifdef __NR_open
+# define open_not_cancel(name, flags, mode) \
+ INLINE_SYSCALL (open, 3, name, flags, mode)
+# define open_not_cancel_2(name, flags) \
+ INLINE_SYSCALL (open, 2, name, flags)
+#else
+# define open_not_cancel(name, flags, mode) \
+ INLINE_SYSCALL (openat, 4, AT_FDCWD, name, flags, mode)
+# define open_not_cancel_2(name, flags) \
+ INLINE_SYSCALL (openat, 3, AT_FDCWD, name, flags)
+#endif
+
+/* Uncancelable read. */
+#define __read_nocancel(fd, buf, len) \
+ INLINE_SYSCALL (read, 3, fd, buf, len)
+
+/* Uncancelable write. */
+#define __write_nocancel(fd, buf, len) \
+ INLINE_SYSCALL (write, 3, fd, buf, len)
+
+/* Uncancelable openat. */
+#define openat_not_cancel(fd, fname, oflag, mode) \
+ INLINE_SYSCALL (openat, 4, fd, fname, oflag, mode)
+#define openat_not_cancel_3(fd, fname, oflag) \
+ INLINE_SYSCALL (openat, 3, fd, fname, oflag)
+#define openat64_not_cancel(fd, fname, oflag, mode) \
+ INLINE_SYSCALL (openat, 4, fd, fname, oflag | O_LARGEFILE, mode)
+#define openat64_not_cancel_3(fd, fname, oflag) \
+ INLINE_SYSCALL (openat, 3, fd, fname, oflag | O_LARGEFILE)
+
+/* Uncancelable close. */
+#define __close_nocancel(fd) \
+ INLINE_SYSCALL (close, 1, fd)
+#define close_not_cancel(fd) \
+ __close_nocancel (fd)
+#define close_not_cancel_no_status(fd) \
+ (void) ({ INTERNAL_SYSCALL_DECL (err); \
+ INTERNAL_SYSCALL (close, err, 1, (fd)); })
+
+/* Uncancelable read. */
+#define read_not_cancel(fd, buf, n) \
+ __read_nocancel (fd, buf, n)
+
+/* Uncancelable write. */
+#define write_not_cancel(fd, buf, n) \
+ __write_nocancel (fd, buf, n)
+
+/* Uncancelable writev. */
+#define writev_not_cancel_no_status(fd, iov, n) \
+ (void) ({ INTERNAL_SYSCALL_DECL (err); \
+ INTERNAL_SYSCALL (writev, err, 3, (fd), (iov), (n)); })
+
+/* Uncancelable fcntl. */
+#define fcntl_not_cancel(fd, cmd, val) \
+ __fcntl_nocancel (fd, cmd, val)
+
+/* Uncancelable waitpid. */
+#define __waitpid_nocancel(pid, stat_loc, options) \
+ INLINE_SYSCALL (wait4, 4, pid, stat_loc, options, NULL)
+#define waitpid_not_cancel(pid, stat_loc, options) \
+ __waitpid_nocancel(pid, stat_loc, options)
+
+/* Uncancelable pause. */
+#define pause_not_cancel() \
+ ({ sigset_t set; \
+ int __rc = INLINE_SYSCALL (rt_sigprocmask, 4, SIG_BLOCK, NULL, &set, \
+ _NSIG / 8); \
+ if (__rc == 0) \
+ __rc = INLINE_SYSCALL (rt_sigsuspend, 2, &set, _NSIG / 8); \
+ __rc; \
+ })
+
+/* Uncancelable nanosleep. */
+#define nanosleep_not_cancel(requested_time, remaining) \
+ INLINE_SYSCALL (nanosleep, 2, requested_time, remaining)
+
+/* Uncancelable sigsuspend. */
+#define sigsuspend_not_cancel(set) \
+ INLINE_SYSCALL (rt_sigsuspend, 2, set, _NSIG / 8)
+
+#endif /* NOT_CANCEL_H */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/nptl-signals.h b/REORG.TODO/sysdeps/unix/sysv/linux/nptl-signals.h
new file mode 100644
index 0000000000..f30c597c0e
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/nptl-signals.h
@@ -0,0 +1,85 @@
+/* Special use of signals in NPTL internals. Linux version.
+ Copyright (C) 2014-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <signal.h>
+#include <sigsetops.h>
+
+/* The signal used for asynchronous cancelation. */
+#define SIGCANCEL __SIGRTMIN
+
+
+/* Signal needed for the kernel-supported POSIX timer implementation.
+ We can reuse the cancellation signal since we can distinguish
+ cancellation from timer expirations. */
+#define SIGTIMER SIGCANCEL
+
+
+/* Signal used to implement the setuid et.al. functions. */
+#define SIGSETXID (__SIGRTMIN + 1)
+
+
+/* Return is sig is used internally. */
+static inline int
+__nptl_is_internal_signal (int sig)
+{
+ return (sig == SIGCANCEL) || (sig == SIGTIMER) || (sig == SIGSETXID);
+}
+
+/* Remove internal glibc signal from the mask. */
+static inline void
+__nptl_clear_internal_signals (sigset_t *set)
+{
+ __sigdelset (set, SIGCANCEL);
+ __sigdelset (set, SIGTIMER);
+ __sigdelset (set, SIGSETXID);
+}
+
+#define SIGALL_SET \
+ ((__sigset_t) { .__val = {[0 ... _SIGSET_NWORDS-1 ] = -1 } })
+
+/* Block all signals, including internal glibc ones. */
+static inline int
+__libc_signal_block_all (sigset_t *set)
+{
+ INTERNAL_SYSCALL_DECL (err);
+ return INTERNAL_SYSCALL (rt_sigprocmask, err, 4, SIG_BLOCK, &SIGALL_SET,
+ set, _NSIG / 8);
+}
+
+/* Block all application signals (excluding internal glibc ones). */
+static inline int
+__libc_signal_block_app (sigset_t *set)
+{
+ sigset_t allset = SIGALL_SET;
+ __nptl_clear_internal_signals (&allset);
+ INTERNAL_SYSCALL_DECL (err);
+ return INTERNAL_SYSCALL (rt_sigprocmask, err, 4, SIG_BLOCK, &allset, set,
+ _NSIG / 8);
+}
+
+/* Restore current process signal mask. */
+static inline int
+__libc_signal_restore_set (const sigset_t *set)
+{
+ INTERNAL_SYSCALL_DECL (err);
+ return INTERNAL_SYSCALL (rt_sigprocmask, err, 4, SIG_SETMASK, set, NULL,
+ _NSIG / 8);
+}
+
+/* Used to communicate with signal handler. */
+extern struct xid_command *__xidcmd attribute_hidden;
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/nscd_setup_thread.c b/REORG.TODO/sysdeps/unix/sysv/linux/nscd_setup_thread.c
new file mode 100644
index 0000000000..0c5694dc15
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/nscd_setup_thread.c
@@ -0,0 +1,49 @@
+/* Setup of nscd worker threads. Linux verison.
+ Copyright (C) 2004-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@redhat.com>, 2004.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published
+ by the Free Software Foundation; version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, see <http://www.gnu.org/licenses/>. */
+
+#include <string.h>
+#include <unistd.h>
+#include <nscd.h>
+#include <sysdep.h>
+
+
+int
+setup_thread (struct database_dyn *db)
+{
+#ifdef __NR_set_tid_address
+ /* Only supported when NPTL is used. */
+ char buf[100];
+ if (confstr (_CS_GNU_LIBPTHREAD_VERSION, buf, sizeof (buf)) >= sizeof (buf)
+ || strncmp (buf, "NPTL", 4) != 0)
+ return 0;
+
+ /* Do not try this at home, kids. We play with the SETTID address
+ even thought the process is multi-threaded. This can only work
+ since none of the threads ever terminates. */
+ INTERNAL_SYSCALL_DECL (err);
+ int r = INTERNAL_SYSCALL (set_tid_address, err, 1,
+ &db->head->nscd_certainly_running);
+ if (!INTERNAL_SYSCALL_ERROR_P (r, err))
+ /* We know the kernel can reset this field when nscd terminates.
+ So, set the field to a nonzero value which indicates that nscd
+ is certainly running and clients can skip the test. */
+ return db->head->nscd_certainly_running = 1;
+#endif
+
+ return 0;
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/ntp_gettime.c b/REORG.TODO/sysdeps/unix/sysv/linux/ntp_gettime.c
new file mode 100644
index 0000000000..915b099dc5
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/ntp_gettime.c
@@ -0,0 +1,41 @@
+/* Copyright (C) 1999-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#define ntp_gettime ntp_gettime_redirect
+
+#include <sys/timex.h>
+
+#undef ntp_gettime
+
+#ifndef MOD_OFFSET
+# define modes mode
+#endif
+
+
+int
+ntp_gettime (struct ntptimeval *ntv)
+{
+ struct timex tntx;
+ int result;
+
+ tntx.modes = 0;
+ result = __adjtimex (&tntx);
+ ntv->time = tntx.time;
+ ntv->maxerror = tntx.maxerror;
+ ntv->esterror = tntx.esterror;
+ return result;
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/ntp_gettimex.c b/REORG.TODO/sysdeps/unix/sysv/linux/ntp_gettimex.c
new file mode 100644
index 0000000000..8ac180163d
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/ntp_gettimex.c
@@ -0,0 +1,42 @@
+/* Copyright (C) 1999-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sys/timex.h>
+
+#ifndef MOD_OFFSET
+# define modes mode
+#endif
+
+
+int
+ntp_gettimex (struct ntptimeval *ntv)
+{
+ struct timex tntx;
+ int result;
+
+ tntx.modes = 0;
+ result = __adjtimex (&tntx);
+ ntv->time = tntx.time;
+ ntv->maxerror = tntx.maxerror;
+ ntv->esterror = tntx.esterror;
+ ntv->tai = tntx.tai;
+ ntv->__glibc_reserved1 = 0;
+ ntv->__glibc_reserved2 = 0;
+ ntv->__glibc_reserved3 = 0;
+ ntv->__glibc_reserved4 = 0;
+ return result;
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/open.c b/REORG.TODO/sysdeps/unix/sysv/linux/open.c
new file mode 100644
index 0000000000..b3912d5554
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/open.c
@@ -0,0 +1,51 @@
+/* Copyright (C) 2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
+
+ 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 <sys/stat.h>
+#include <fcntl.h>
+#include <stdarg.h>
+
+#include <sysdep-cancel.h>
+
+#ifndef __OFF_T_MATCHES_OFF64_T
+
+/* Open FILE with access OFLAG. If O_CREAT or O_TMPFILE is in OFLAG,
+ a third argument is the file protection. */
+int
+__libc_open (const char *file, int oflag, ...)
+{
+ int mode = 0;
+
+ if (__OPEN_NEEDS_MODE (oflag))
+ {
+ va_list arg;
+ va_start (arg, oflag);
+ mode = va_arg (arg, int);
+ va_end (arg);
+ }
+
+ return SYSCALL_CANCEL (openat, AT_FDCWD, file, oflag, mode);
+}
+libc_hidden_def (__libc_open)
+
+weak_alias (__libc_open, __open)
+libc_hidden_weak (__open)
+weak_alias (__libc_open, open)
+
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/open64.c b/REORG.TODO/sysdeps/unix/sysv/linux/open64.c
new file mode 100644
index 0000000000..fcac984d22
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/open64.c
@@ -0,0 +1,59 @@
+/* Copyright (C) 1991-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <stdarg.h>
+
+#include <sysdep-cancel.h>
+
+/* Open FILE with access OFLAG. If O_CREAT or O_TMPFILE is in OFLAG,
+ a third argument is the file protection. */
+int
+__libc_open64 (const char *file, int oflag, ...)
+{
+ int mode = 0;
+
+ if (__OPEN_NEEDS_MODE (oflag))
+ {
+ va_list arg;
+ va_start (arg, oflag);
+ mode = va_arg (arg, int);
+ va_end (arg);
+ }
+
+#ifdef __OFF_T_MATCHES_OFF64_T
+# define EXTRA_OPEN_FLAGS 0
+#else
+# define EXTRA_OPEN_FLAGS O_LARGEFILE
+#endif
+
+ return SYSCALL_CANCEL (openat, AT_FDCWD, file, oflag | EXTRA_OPEN_FLAGS,
+ mode);
+}
+
+strong_alias (__libc_open64, __open64)
+libc_hidden_weak (__open64)
+weak_alias (__libc_open64, open64)
+
+#ifdef __OFF_T_MATCHES_OFF64_T
+strong_alias (__libc_open64, __libc_open)
+strong_alias (__libc_open64, __open)
+libc_hidden_weak (__open)
+weak_alias (__libc_open64, open)
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/open_by_handle_at.c b/REORG.TODO/sysdeps/unix/sysv/linux/open_by_handle_at.c
new file mode 100644
index 0000000000..e69f041280
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/open_by_handle_at.c
@@ -0,0 +1,37 @@
+/* Obtain handle for an open file via a handle. Linux implementation.
+ Copyright (C) 2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <fcntl.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <sysdep-cancel.h>
+
+int
+open_by_handle_at (int mount_fd, struct file_handle *handle, int flags)
+{
+#ifdef __NR_open_by_handle_at
+ return SYSCALL_CANCEL (open_by_handle_at, mount_fd, handle, flags);
+#else
+ __set_errno (ENOSYS);
+ return -1;
+#endif
+}
+
+#ifndef __NR_open_by_handle_at
+stub_warning (open_by_handle_at)
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/openat.c b/REORG.TODO/sysdeps/unix/sysv/linux/openat.c
new file mode 100644
index 0000000000..2c620d81cc
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/openat.c
@@ -0,0 +1,61 @@
+/* Copyright (C) 2005-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <fcntl.h>
+#include <stdarg.h>
+#include <stddef.h>
+#include <stdio.h>
+#include <string.h>
+#include <sys/stat.h>
+#include <sysdep-cancel.h>
+#include <not-cancel.h>
+
+
+#ifndef OPENAT
+# define OPENAT openat
+#endif
+
+#define UNDERIZE(name) UNDERIZE_1 (name)
+#define UNDERIZE_1(name) __##name
+#define __OPENAT UNDERIZE (OPENAT)
+
+
+/* Open FILE with access OFLAG. Interpret relative paths relative to
+ the directory associated with FD. If OFLAG includes O_CREAT or
+ O_TMPFILE, a fourth argument is the file protection. */
+int
+__OPENAT (int fd, const char *file, int oflag, ...)
+{
+ mode_t mode = 0;
+ if (__OPEN_NEEDS_MODE (oflag))
+ {
+ va_list arg;
+ va_start (arg, oflag);
+ mode = va_arg (arg, mode_t);
+ va_end (arg);
+ }
+
+ /* We have to add the O_LARGEFILE flag for openat64. */
+#ifdef MORE_OFLAGS
+ oflag |= MORE_OFLAGS;
+#endif
+
+ return SYSCALL_CANCEL (openat, fd, file, oflag, mode);
+}
+libc_hidden_def (__OPENAT)
+weak_alias (__OPENAT, OPENAT)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/openat64.c b/REORG.TODO/sysdeps/unix/sysv/linux/openat64.c
new file mode 100644
index 0000000000..9e7a2b3737
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/openat64.c
@@ -0,0 +1,4 @@
+#define OPENAT openat64
+#define MORE_OFLAGS O_LARGEFILE
+
+#include "openat.c"
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/opendir.c b/REORG.TODO/sysdeps/unix/sysv/linux/opendir.c
new file mode 100644
index 0000000000..20bcdfde8e
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/opendir.c
@@ -0,0 +1,20 @@
+/* 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/>. */
+
+#define O_DIRECTORY_WORKS 1
+
+#include <sysdeps/posix/opendir.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/opensock.c b/REORG.TODO/sysdeps/unix/sysv/linux/opensock.c
new file mode 100644
index 0000000000..b8fd27f863
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/opensock.c
@@ -0,0 +1,114 @@
+/* Copyright (C) 1999-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <assert.h>
+#include <errno.h>
+#include <stdio.h>
+#include <string.h>
+#include <unistd.h>
+#include <sys/socket.h>
+
+/* Return a socket of any type. The socket can be used in subsequent
+ ioctl calls to talk to the kernel. */
+int internal_function
+__opensock (void)
+{
+ static int last_family; /* Available socket family we will use. */
+ static int last_type;
+ static const struct
+ {
+ int family;
+ const char procname[15];
+ } afs[] =
+ {
+ { AF_UNIX, "net/unix" },
+ { AF_INET, "" },
+ { AF_INET6, "net/if_inet6" },
+ { AF_AX25, "net/ax25" },
+ { AF_NETROM, "net/nr" },
+ { AF_ROSE, "net/rose" },
+ { AF_IPX, "net/ipx" },
+ { AF_APPLETALK, "net/appletalk" },
+ { AF_ECONET, "sys/net/econet" },
+ { AF_ASH, "sys/net/ash" },
+ { AF_X25, "net/x25" },
+#ifdef NEED_AF_IUCV
+ { AF_IUCV, "net/iucv" }
+#endif
+ };
+#define nafs (sizeof (afs) / sizeof (afs[0]))
+ char fname[sizeof "/proc/" + 14];
+ int result;
+ int has_proc;
+ size_t cnt;
+
+ /* We already know which family to use from the last call. Use it
+ again. */
+ if (last_family != 0)
+ {
+ assert (last_type != 0);
+
+ result = __socket (last_family, last_type | SOCK_CLOEXEC, 0);
+ if (result != -1 || errno != EAFNOSUPPORT)
+ /* Maybe the socket type isn't supported anymore (module is
+ unloaded). In this case again try to find the type. */
+ return result;
+
+ /* Reset the values. They seem not valid anymore. */
+ last_family = 0;
+ last_type = 0;
+ }
+
+ /* Check whether the /proc filesystem is available. */
+ has_proc = __access ("/proc/net", R_OK) != -1;
+ strcpy (fname, "/proc/");
+
+ /* Iterate over the interface families and find one which is
+ available. */
+ for (cnt = 0; cnt < nafs; ++cnt)
+ {
+ int type = SOCK_DGRAM;
+
+ if (has_proc && afs[cnt].procname[0] != '\0')
+ {
+ strcpy (fname + 6, afs[cnt].procname);
+ if (__access (fname, R_OK) == -1)
+ /* The /proc entry is not available. I.e., we cannot
+ create a socket of this type (without loading the
+ module). Don't look for it since this might trigger
+ loading the module. */
+ continue;
+ }
+
+ if (afs[cnt].family == AF_NETROM || afs[cnt].family == AF_X25)
+ type = SOCK_SEQPACKET;
+
+ result = __socket (afs[cnt].family, type | SOCK_CLOEXEC, 0);
+ if (result != -1)
+ {
+ /* Found an available family. */
+ last_type = type;
+ last_family = afs[cnt].family;
+ return result;
+ }
+ }
+
+ /* None of the protocol families is available. It is unclear what kind
+ of error is returned. ENOENT seems like a reasonable choice. */
+ __set_errno (ENOENT);
+ return -1;
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/pathconf.c b/REORG.TODO/sysdeps/unix/sysv/linux/pathconf.c
new file mode 100644
index 0000000000..01d8c2bedd
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/pathconf.c
@@ -0,0 +1,293 @@
+/* Get file-specific information about a file. Linux version.
+ Copyright (C) 1991-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <mntent.h>
+#include <stdio_ext.h>
+#include <string.h>
+#include <unistd.h>
+#include <sys/sysmacros.h>
+
+#include "pathconf.h"
+#include "linux_fsinfo.h"
+#include <not-cancel.h>
+
+static long int posix_pathconf (const char *file, int name);
+
+/* Define this first, so it can be inlined. */
+#define __pathconf static posix_pathconf
+#include <sysdeps/posix/pathconf.c>
+
+
+/* Get file-specific information about FILE. */
+long int
+__pathconf (const char *file, int name)
+{
+ struct statfs fsbuf;
+
+ switch (name)
+ {
+ case _PC_LINK_MAX:
+ return __statfs_link_max (__statfs (file, &fsbuf), &fsbuf, file, -1);
+
+ case _PC_FILESIZEBITS:
+ return __statfs_filesize_max (__statfs (file, &fsbuf), &fsbuf);
+
+ case _PC_2_SYMLINKS:
+ return __statfs_symlinks (__statfs (file, &fsbuf), &fsbuf);
+
+ case _PC_CHOWN_RESTRICTED:
+ return __statfs_chown_restricted (__statfs (file, &fsbuf), &fsbuf);
+
+ default:
+ return posix_pathconf (file, name);
+ }
+}
+
+
+static long int
+distinguish_extX (const struct statfs *fsbuf, const char *file, int fd)
+{
+ char buf[64];
+ char path[PATH_MAX];
+ struct stat64 st;
+
+ if ((file == NULL ? fstat64 (fd, &st) : stat64 (file, &st)) != 0)
+ /* Strange. The statfd call worked, but stat fails. Default to
+ the more pessimistic value. */
+ return EXT2_LINK_MAX;
+
+ __snprintf (buf, sizeof (buf), "/sys/dev/block/%u:%u",
+ gnu_dev_major (st.st_dev), gnu_dev_minor (st.st_dev));
+
+ ssize_t n = __readlink (buf, path, sizeof (path));
+ if (n != -1 && n < sizeof (path))
+ {
+ path[n] = '\0';
+ char *base = strdupa (__basename (path));
+ __snprintf (path, sizeof (path), "/sys/fs/ext4/%s", base);
+
+ return __access (path, F_OK) == 0 ? EXT4_LINK_MAX : EXT2_LINK_MAX;
+ }
+
+ /* XXX Is there a better way to distinguish ext2/3 from ext4 than
+ iterating over the mounted filesystems and compare the device
+ numbers? */
+ FILE *mtab = __setmntent ("/proc/mounts", "r");
+ if (mtab == NULL)
+ mtab = __setmntent (_PATH_MOUNTED, "r");
+
+ /* By default be conservative. */
+ long int result = EXT2_LINK_MAX;
+ if (mtab != NULL)
+ {
+ struct mntent mntbuf;
+ char tmpbuf[1024];
+
+ /* No locking needed. */
+ (void) __fsetlocking (mtab, FSETLOCKING_BYCALLER);
+
+ while (__getmntent_r (mtab, &mntbuf, tmpbuf, sizeof (tmpbuf)))
+ {
+ if (strcmp (mntbuf.mnt_type, "ext2") != 0
+ && strcmp (mntbuf.mnt_type, "ext3") != 0
+ && strcmp (mntbuf.mnt_type, "ext4") != 0)
+ continue;
+
+ struct stat64 fsst;
+ if (stat64 (mntbuf.mnt_dir, &fsst) >= 0
+ && st.st_dev == fsst.st_dev)
+ {
+ if (strcmp (mntbuf.mnt_type, "ext4") == 0)
+ result = EXT4_LINK_MAX;
+ break;
+ }
+ }
+
+ /* Close the file. */
+ __endmntent (mtab);
+ }
+
+ return result;
+}
+
+
+/* Used like: return statfs_link_max (__statfs (name, &buf), &buf); */
+long int
+__statfs_link_max (int result, const struct statfs *fsbuf, const char *file,
+ int fd)
+{
+ if (result < 0)
+ {
+ if (errno == ENOSYS)
+ /* Not possible, return the default value. */
+ return LINUX_LINK_MAX;
+
+ /* Some error occured. */
+ return -1;
+ }
+
+ switch (fsbuf->f_type)
+ {
+ case EXT2_SUPER_MAGIC:
+ /* Unfortunately the kernel does not return a different magic number
+ for ext4. This would be necessary to easily detect etx4 since it
+ has a different LINK_MAX value. Therefore we have to find it out
+ the hard way. */
+ return distinguish_extX (fsbuf, file, fd);
+
+ case F2FS_SUPER_MAGIC:
+ return F2FS_LINK_MAX;
+
+ case MINIX_SUPER_MAGIC:
+ case MINIX_SUPER_MAGIC2:
+ return MINIX_LINK_MAX;
+
+ case MINIX2_SUPER_MAGIC:
+ case MINIX2_SUPER_MAGIC2:
+ return MINIX2_LINK_MAX;
+
+ case XENIX_SUPER_MAGIC:
+ return XENIX_LINK_MAX;
+
+ case SYSV4_SUPER_MAGIC:
+ case SYSV2_SUPER_MAGIC:
+ return SYSV_LINK_MAX;
+
+ case COH_SUPER_MAGIC:
+ return COH_LINK_MAX;
+
+ case UFS_MAGIC:
+ case UFS_CIGAM:
+ return UFS_LINK_MAX;
+
+ case REISERFS_SUPER_MAGIC:
+ return REISERFS_LINK_MAX;
+
+ case XFS_SUPER_MAGIC:
+ return XFS_LINK_MAX;
+
+ case LUSTRE_SUPER_MAGIC:
+ return LUSTRE_LINK_MAX;
+
+ default:
+ return LINUX_LINK_MAX;
+ }
+}
+
+
+/* Used like: return statfs_filesize_max (__statfs (name, &buf), &buf); */
+long int
+__statfs_filesize_max (int result, const struct statfs *fsbuf)
+{
+ if (result < 0)
+ {
+ if (errno == ENOSYS)
+ /* Not possible, return the default value. */
+ return 32;
+
+ /* Some error occured. */
+ return -1;
+ }
+
+ switch (fsbuf->f_type)
+ {
+ case F2FS_SUPER_MAGIC:
+ return 256;
+
+ case BTRFS_SUPER_MAGIC:
+ return 255;
+
+ case EXT2_SUPER_MAGIC:
+ case UFS_MAGIC:
+ case UFS_CIGAM:
+ case REISERFS_SUPER_MAGIC:
+ case XFS_SUPER_MAGIC:
+ case SMB_SUPER_MAGIC:
+ case NTFS_SUPER_MAGIC:
+ case UDF_SUPER_MAGIC:
+ case JFS_SUPER_MAGIC:
+ case VXFS_SUPER_MAGIC:
+ case CGROUP_SUPER_MAGIC:
+ case LUSTRE_SUPER_MAGIC:
+ return 64;
+
+ case MSDOS_SUPER_MAGIC:
+ case JFFS_SUPER_MAGIC:
+ case JFFS2_SUPER_MAGIC:
+ case NCP_SUPER_MAGIC:
+ case ROMFS_SUPER_MAGIC:
+ return 32;
+
+ default:
+ return 32;
+ }
+}
+
+
+/* Used like: return statfs_link_max (__statfs (name, &buf), &buf); */
+long int
+__statfs_symlinks (int result, const struct statfs *fsbuf)
+{
+ if (result < 0)
+ {
+ if (errno == ENOSYS)
+ /* Not possible, return the default value. */
+ return 1;
+
+ /* Some error occured. */
+ return -1;
+ }
+
+ switch (fsbuf->f_type)
+ {
+ case ADFS_SUPER_MAGIC:
+ case BFS_MAGIC:
+ case CRAMFS_MAGIC:
+ case DEVPTS_SUPER_MAGIC:
+ case EFS_SUPER_MAGIC:
+ case EFS_MAGIC:
+ case MSDOS_SUPER_MAGIC:
+ case NTFS_SUPER_MAGIC:
+ case QNX4_SUPER_MAGIC:
+ case ROMFS_SUPER_MAGIC:
+ /* No symlink support. */
+ return 0;
+
+ default:
+ return 1;
+ }
+}
+
+
+/* Used like: return __statfs_chown_restricted (__statfs (name, &buf), &buf);*/
+long int
+__statfs_chown_restricted (int result, const struct statfs *fsbuf)
+{
+ if (result < 0)
+ {
+ if (errno == ENOSYS)
+ /* Not possible, return the default value. */
+ return 1;
+
+ /* Some error occured. */
+ return -1;
+ }
+
+ return 1;
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/pathconf.h b/REORG.TODO/sysdeps/unix/sysv/linux/pathconf.h
new file mode 100644
index 0000000000..5de2915f40
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/pathconf.h
@@ -0,0 +1,40 @@
+/* Common parts of Linux implementation of pathconf and fpathconf.
+ Copyright (C) 1991-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <unistd.h>
+#include <sys/statfs.h>
+
+
+/* Used like: return __statfs_link_max (__statfs (name, &buf), &buf,
+ name, -1); */
+extern long int __statfs_link_max (int result, const struct statfs *fsbuf,
+ const char *file, int fd);
+
+
+/* Used like: return __statfs_filesize_max (__statfs (name, &buf), &buf); */
+extern long int __statfs_filesize_max (int result, const struct statfs *fsbuf);
+
+
+/* Used like: return __statfs_link_max (__statfs (name, &buf), &buf); */
+extern long int __statfs_symlinks (int result, const struct statfs *fsbuf);
+
+
+/* Used like: return __statfs_chown_restricted (__statfs (name, &buf), &buf);*/
+extern long int __statfs_chown_restricted (int result,
+ const struct statfs *fsbuf);
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/paths.h b/REORG.TODO/sysdeps/unix/sysv/linux/paths.h
new file mode 100644
index 0000000000..1342ab3a96
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/paths.h
@@ -0,0 +1,75 @@
+/*
+ * Copyright (c) 1989, 1993
+ * The Regents of the University of California. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 4. Neither the name of the University nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ * @(#)paths.h 8.1 (Berkeley) 6/2/93
+ */
+
+#ifndef _PATHS_H_
+#define _PATHS_H_
+
+/* Default search path. */
+#define _PATH_DEFPATH "/usr/bin:/bin"
+/* All standard utilities path. */
+#define _PATH_STDPATH \
+ "/usr/bin:/bin:/usr/sbin:/sbin"
+
+#define _PATH_BSHELL "/bin/sh"
+#define _PATH_CONSOLE "/dev/console"
+#define _PATH_CSHELL "/bin/csh"
+#define _PATH_DEVDB "/var/run/dev.db"
+#define _PATH_DEVNULL "/dev/null"
+#define _PATH_DRUM "/dev/drum"
+#define _PATH_GSHADOW "/etc/gshadow"
+#define _PATH_KLOG "/proc/kmsg"
+#define _PATH_KMEM "/dev/kmem"
+#define _PATH_LASTLOG "/var/log/lastlog"
+#define _PATH_MAILDIR "/var/mail"
+#define _PATH_MAN "/usr/share/man"
+#define _PATH_MEM "/dev/mem"
+#define _PATH_MNTTAB "/etc/fstab"
+#define _PATH_MOUNTED "/etc/mtab"
+#define _PATH_NOLOGIN "/etc/nologin"
+#define _PATH_PRESERVE "/var/lib"
+#define _PATH_RWHODIR "/var/spool/rwho"
+#define _PATH_SENDMAIL "/usr/sbin/sendmail"
+#define _PATH_SHADOW "/etc/shadow"
+#define _PATH_SHELLS "/etc/shells"
+#define _PATH_TTY "/dev/tty"
+#define _PATH_UNIX "/boot/vmlinux"
+#define _PATH_UTMP "/var/run/utmp"
+#define _PATH_VI "/usr/bin/vi"
+#define _PATH_WTMP "/var/log/wtmp"
+
+/* Provide trailing slash, since mostly used for building pathnames. */
+#define _PATH_DEV "/dev/"
+#define _PATH_TMP "/tmp/"
+#define _PATH_VARDB "/var/db/"
+#define _PATH_VARRUN "/var/run/"
+#define _PATH_VARTMP "/var/tmp/"
+
+#endif /* !_PATHS_H_ */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/pause.c b/REORG.TODO/sysdeps/unix/sysv/linux/pause.c
new file mode 100644
index 0000000000..4ccce9ebd8
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/pause.c
@@ -0,0 +1,35 @@
+/* Linux pause syscall implementation.
+ Copyright (C) 2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <signal.h>
+#include <unistd.h>
+#include <sysdep-cancel.h>
+
+/* Suspend the process until a signal arrives.
+ This always returns -1 and sets errno to EINTR. */
+
+int
+__libc_pause (void)
+{
+#ifdef __NR_pause
+ return SYSCALL_CANCEL (pause);
+#else
+ return SYSCALL_CANCEL (ppoll, NULL, 0, NULL, NULL);
+#endif
+}
+weak_alias (__libc_pause, pause)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/personality.c b/REORG.TODO/sysdeps/unix/sysv/linux/personality.c
new file mode 100644
index 0000000000..6913a2bc62
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/personality.c
@@ -0,0 +1,49 @@
+/* Copyright (C) 2015-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sys/personality.h>
+#include <sysdep.h>
+
+extern __typeof (personality) __personality;
+
+int
+__personality (unsigned long persona)
+{
+#ifdef PERSONALITY_TRUNCATE_ARGUMENT
+ /* Starting with kernel commit v2.6.21-3117-g97dc32c, the type of
+ task_struct->pesonality is "unsigned int".
+ Starting with kernel commit v2.6.35-rc1-372-g485d527, the personality
+ syscall accepts "unsigned int" instead of "long unsigned int".
+ Inbetween, a personality argument that does not fit into "unsigned int"
+ would result to system call returning -EINVAL.
+ We explicitly truncate the personality argument to "unsigned int"
+ to eliminate the uncertainty. */
+ persona = (unsigned int) persona;
+#endif
+
+ INTERNAL_SYSCALL_DECL (err);
+ long ret = INTERNAL_SYSCALL (personality, err, 1, persona);
+
+ /* Starting with kernel commit v2.6.29-6609-g11d06b2, the personality syscall
+ never fails. However, 32-bit kernels might flag valid values as errors, so
+ we need to reverse the error setting. We can't use the raw result as some
+ arches split the return/error values. */
+ if (__glibc_unlikely (INTERNAL_SYSCALL_ERROR_P (ret, err)))
+ ret = -INTERNAL_SYSCALL_ERRNO (ret, err);
+ return ret;
+}
+weak_alias (__personality, personality)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/poll.c b/REORG.TODO/sysdeps/unix/sysv/linux/poll.c
new file mode 100644
index 0000000000..5a781ddf48
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/poll.c
@@ -0,0 +1,46 @@
+/* Linux poll implementation.
+ Copyright (C) 2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <sys/poll.h>
+
+#include <sysdep-cancel.h>
+#include <sys/syscall.h>
+
+int
+__poll (struct pollfd *fds, nfds_t nfds, int timeout)
+{
+#ifdef __NR_poll
+ return SYSCALL_CANCEL (poll, fds, nfds, timeout);
+#else
+ struct timespec timeout_ts;
+ struct timespec *timeout_ts_p = NULL;
+
+ if (timeout >= 0)
+ {
+ timeout_ts.tv_sec = timeout / 1000;
+ timeout_ts.tv_nsec = (timeout % 1000) * 1000000;
+ timeout_ts_p = &timeout_ts;
+ }
+
+ return SYSCALL_CANCEL (ppoll, fds, nfds, timeout_ts_p, NULL, 0);
+#endif
+}
+libc_hidden_def (__poll)
+weak_alias (__poll, poll)
+strong_alias (__poll, __libc_poll)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/posix_fadvise.c b/REORG.TODO/sysdeps/unix/sysv/linux/posix_fadvise.c
new file mode 100644
index 0000000000..222ac978e2
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/posix_fadvise.c
@@ -0,0 +1,74 @@
+/* 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>
+
+/* Advice the system about the expected behaviour of the application with
+ respect to the file associated with FD. */
+
+#ifndef __OFF_T_MATCHES_OFF64_T
+
+/* Default implementation will use __NR_fadvise64 with expected argument
+ positions (for instance i386 and powerpc32 that uses __ALIGNMENT_ARG).
+
+ Second option will be used by arm which define __NR_arm_fadvise64_64
+ (redefined to __NR_fadvise64_64 in kernel-features.h) that behaves as
+ __NR_fadvise64_64 (without the aligment argument required for the ABI).
+
+ Third option will be used by both tile 32-bits and mips o32. Tile
+ will set __ASSUME_FADVISE64_64_NO_ALIGN to issue a 6 argument syscall,
+ while mips will use a 7 argument one with __NR_fadvise64.
+
+ s390 implements fadvice64_64 using a specific struct with arguments
+ packed inside. This is the only implementation handled in arch-specific
+ code. */
+
+int
+posix_fadvise (int fd, off_t offset, off_t len, int advise)
+{
+ INTERNAL_SYSCALL_DECL (err);
+# if defined (__NR_fadvise64) && !defined (__ASSUME_FADVISE64_AS_64_64)
+ int ret = INTERNAL_SYSCALL_CALL (fadvise64, err, fd,
+ __ALIGNMENT_ARG SYSCALL_LL (offset),
+ len, advise);
+# else
+# ifdef __ASSUME_FADVISE64_64_6ARG
+ int ret = INTERNAL_SYSCALL_CALL (fadvise64_64, err, fd, advise,
+ SYSCALL_LL (offset), SYSCALL_LL (len));
+# else
+
+# ifdef __ASSUME_FADVISE64_64_NO_ALIGN
+# undef __ALIGNMENT_ARG
+# define __ALIGNMENT_ARG
+# endif
+
+# ifndef __NR_fadvise64_64
+# define __NR_fadvise64_64 __NR_fadvise64
+# endif
+
+ int ret = INTERNAL_SYSCALL_CALL (fadvise64_64, err, fd,
+ __ALIGNMENT_ARG SYSCALL_LL (offset),
+ SYSCALL_LL (len), advise);
+# endif
+# endif
+ if (INTERNAL_SYSCALL_ERROR_P (ret, err))
+ return INTERNAL_SYSCALL_ERRNO (ret, err);
+ return 0;
+}
+#endif /* __OFF_T_MATCHES_OFF64_T */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/posix_fadvise64.c b/REORG.TODO/sysdeps/unix/sysv/linux/posix_fadvise64.c
new file mode 100644
index 0000000000..aaee60add7
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/posix_fadvise64.c
@@ -0,0 +1,85 @@
+/* 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 <shlib-compat.h>
+
+int __posix_fadvise64_l64 (int fd, off64_t offset, off64_t len, int advise);
+
+/* Both arm and powerpc implements fadvise64_64 with last 'advise' argument
+ just after 'fd' to avoid the requirement of implementing 7-arg syscalls.
+ ARM also defines __NR_fadvise64_64 as __NR_arm_fadvise64_64.
+
+ tile requires __ASSUME_ALIGNED_REGISTER_PAIRS but implements the 32-bit
+ fadvise64_64 without the padding 0 after fd.
+
+ s390 implements fadvice64_64 using a specific struct with arguments
+ packed inside. This is the only implementation handled in arch-specific
+ code. */
+
+#ifdef __ASSUME_FADVISE64_64_NO_ALIGN
+# undef __ALIGNMENT_ARG
+# define __ALIGNMENT_ARG
+#endif
+
+#ifndef __NR_fadvise64_64
+# define __NR_fadvise64_64 __NR_fadvise64
+#endif
+
+/* Advice the system about the expected behaviour of the application with
+ respect to the file associated with FD. */
+
+int
+__posix_fadvise64_l64 (int fd, off64_t offset, off64_t len, int advise)
+{
+ INTERNAL_SYSCALL_DECL (err);
+#ifdef __ASSUME_FADVISE64_64_6ARG
+ int ret = INTERNAL_SYSCALL_CALL (fadvise64_64, err, fd, advise,
+ SYSCALL_LL64 (offset), SYSCALL_LL64 (len));
+#else
+ int ret = INTERNAL_SYSCALL_CALL (fadvise64_64, err, fd,
+ __ALIGNMENT_ARG SYSCALL_LL64 (offset),
+ SYSCALL_LL64 (len), advise);
+#endif
+ if (!INTERNAL_SYSCALL_ERROR_P (ret, err))
+ return 0;
+ return INTERNAL_SYSCALL_ERRNO (ret, err);
+}
+
+/* The type of the len argument was changed from size_t to off_t in
+ POSIX.1-2003 TC1. */
+#ifndef __OFF_T_MATCHES_OFF64_T
+# if SHLIB_COMPAT(libc, GLIBC_2_2, GLIBC_2_3_3)
+int __posix_fadvise64_l32 (int fd, off64_t offset, size_t len, int advise);
+
+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
+weak_alias (__posix_fadvise64_l64, posix_fadvise64);
+# endif
+#else
+weak_alias (__posix_fadvise64_l64, posix_fadvise64);
+strong_alias (__posix_fadvise64_l64, posix_fadvise);
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/posix_fallocate.c b/REORG.TODO/sysdeps/unix/sysv/linux/posix_fallocate.c
new file mode 100644
index 0000000000..257e1aad55
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/posix_fallocate.c
@@ -0,0 +1,37 @@
+/* Copyright (C) 2007-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <fcntl.h>
+#include <sysdep.h>
+
+#define posix_fallocate static internal_fallocate
+#include <sysdeps/posix/posix_fallocate.c>
+#undef posix_fallocate
+
+/* Reserve storage for the data of the file associated with FD. */
+int
+posix_fallocate (int fd, __off_t offset, __off_t len)
+{
+ INTERNAL_SYSCALL_DECL (err);
+ int res = INTERNAL_SYSCALL_CALL (fallocate, err, fd, 0,
+ SYSCALL_LL (offset), SYSCALL_LL (len));
+ if (! INTERNAL_SYSCALL_ERROR_P (res, err))
+ return 0;
+ if (INTERNAL_SYSCALL_ERRNO (res, err) != EOPNOTSUPP)
+ return INTERNAL_SYSCALL_ERRNO (res, err);
+ return internal_fallocate (fd, offset, len);
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/posix_fallocate64.c b/REORG.TODO/sysdeps/unix/sysv/linux/posix_fallocate64.c
new file mode 100644
index 0000000000..eb05f7c5d0
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/posix_fallocate64.c
@@ -0,0 +1,44 @@
+/* Copyright (C) 2007-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <fcntl.h>
+#include <sysdep.h>
+
+extern int __posix_fallocate64_l64 (int fd, __off64_t offset, __off64_t len);
+#define __posix_fallocate64_l64 static internal_fallocate64
+#include <sysdeps/posix/posix_fallocate64.c>
+#undef __posix_fallocate64_l64
+
+/* Reserve storage for the data of the file associated with FD. */
+int
+__posix_fallocate64_l64 (int fd, __off64_t offset, __off64_t len)
+{
+ INTERNAL_SYSCALL_DECL (err);
+#ifdef INTERNAL_SYSCALL_TYPES
+ int res = INTERNAL_SYSCALL_TYPES (fallocate, err, 4, int, fd,
+ int, 0, off_t, offset,
+ off_t, len);
+#else
+ int res = INTERNAL_SYSCALL_CALL (fallocate, err, fd, 0,
+ SYSCALL_LL64 (offset), SYSCALL_LL64 (len));
+#endif
+ if (! INTERNAL_SYSCALL_ERROR_P (res, err))
+ return 0;
+ if (INTERNAL_SYSCALL_ERRNO (res, err) != EOPNOTSUPP)
+ return INTERNAL_SYSCALL_ERRNO (res, err);
+ return internal_fallocate64 (fd, offset, len);
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/posix_madvise.c b/REORG.TODO/sysdeps/unix/sysv/linux/posix_madvise.c
new file mode 100644
index 0000000000..87b5c17557
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/posix_madvise.c
@@ -0,0 +1,37 @@
+/* Copyright (C) 2007-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#include <sys/mman.h>
+
+
+int
+posix_madvise (void *addr, size_t len, int advice)
+{
+ /* We have one problem: the kernel's MADV_DONTNEED does not
+ correspond to POSIX's POSIX_MADV_DONTNEED. The former simply
+ discards changes made to the memory without writing it back to
+ disk, if this would be necessary. The POSIX behavior does not
+ allow this. There is no functionality mapping the POSIX behavior
+ so far so we ignore that advice for now. */
+ if (advice == POSIX_MADV_DONTNEED)
+ return 0;
+
+ INTERNAL_SYSCALL_DECL (err);
+ int result = INTERNAL_SYSCALL (madvise, err, 3, addr, len, advice);
+ return INTERNAL_SYSCALL_ERRNO (result, err);
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/Implies b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/Implies
new file mode 100644
index 0000000000..466b7f4b4a
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/Implies
@@ -0,0 +1 @@
+powerpc/nptl
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/Makefile b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/Makefile
new file mode 100644
index 0000000000..2cfb46eca3
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/Makefile
@@ -0,0 +1,39 @@
+abi-variants := 32 64-v1 64-v2
+abi-32-options := -U__powerpc64__
+abi-32-condition := __WORDSIZE == 32
+abi-64-v1-options := -D__powerpc64__ -U_CALL_ELF -D_CALL_ELF=1
+abi-64-v1-condition := __WORDSIZE == 64 && _CALL_ELF != 2
+abi-64-v2-options := -D__powerpc64__ -U_CALL_ELF -D_CALL_ELF=2
+abi-64-v2-condition := __WORDSIZE == 64 && _CALL_ELF == 2
+
+ifeq ($(subdir),rt)
+librt-routines += rt-sysdep
+librt-shared-only-routines += rt-sysdep
+endif
+
+ifeq ($(subdir),stdlib)
+gen-as-const-headers += ucontext_i.sym
+endif
+
+ifeq ($(subdir),elf)
+sysdep_routines += dl-vdso
+ifeq ($(build-shared),yes)
+# This is needed for DSO loading from static binaries.
+sysdep-dl-routines += dl-static
+endif
+# Otherwise tst-tls-dlinfo fails due to tst-tlsmod2.so using static tls.
+LDFLAGS-tst-tlsmod2.so += -Wl,--no-tls-get-addr-optimize
+endif
+
+ifeq ($(subdir),misc)
+sysdep_headers += bits/ppc.h
+sysdep_routines += get_timebase_freq
+tests += test-gettimebasefreq
+endif
+
+ifeq ($(subdir),nptl)
+libpthread-routines += sysdep
+libpthread-sysdep_routines += elision-lock elision-unlock elision-timed \
+ elision-trylock
+libpthread-shared-only-routines += sysdep
+endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/Versions b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/Versions
new file mode 100644
index 0000000000..8ebeea15a1
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/Versions
@@ -0,0 +1,19 @@
+ld {
+ GLIBC_PRIVATE {
+ # used for loading by static libraries
+ _dl_var_init;
+ }
+}
+libc {
+ GLIBC_PRIVATE {
+ __vdso_get_tbfreq;
+ __vdso_clock_gettime;
+ __vdso_clock_getres;
+ __vdso_getcpu;
+ __vdso_time;
+ }
+}
+libm {
+ GLIBC_2.19 {
+ }
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/arch-fork.h b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/arch-fork.h
new file mode 100644
index 0000000000..5f945378ee
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/arch-fork.h
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/i386/arch-fork.h>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/bits/environments.h b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/bits/environments.h
new file mode 100644
index 0000000000..475d5648d0
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/bits/environments.h
@@ -0,0 +1,96 @@
+/* Copyright (C) 1999-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _UNISTD_H
+# error "Never include this file directly. Use <unistd.h> instead"
+#endif
+
+#include <bits/wordsize.h>
+
+/* This header should define the following symbols under the described
+ situations. A value `1' means that the model is always supported,
+ `-1' means it is never supported. Undefined means it cannot be
+ statically decided.
+
+ _POSIX_V7_ILP32_OFF32 32bit int, long, pointers, and off_t type
+ _POSIX_V7_ILP32_OFFBIG 32bit int, long, and pointers and larger off_t type
+
+ _POSIX_V7_LP64_OFF32 64bit long and pointers and 32bit off_t type
+ _POSIX_V7_LPBIG_OFFBIG 64bit long and pointers and large off_t type
+
+ The macros _POSIX_V6_ILP32_OFF32, _POSIX_V6_ILP32_OFFBIG,
+ _POSIX_V6_LP64_OFF32, _POSIX_V6_LPBIG_OFFBIG, _XBS5_ILP32_OFF32,
+ _XBS5_ILP32_OFFBIG, _XBS5_LP64_OFF32, and _XBS5_LPBIG_OFFBIG were
+ used in previous versions of the Unix standard and are available
+ only for compatibility.
+*/
+
+#if __WORDSIZE == 64
+
+/* Environments with 32-bit wide pointers are optionally provided.
+ Therefore following macros aren't defined:
+ # undef _POSIX_V7_ILP32_OFF32
+ # undef _POSIX_V7_ILP32_OFFBIG
+ # undef _POSIX_V6_ILP32_OFF32
+ # undef _POSIX_V6_ILP32_OFFBIG
+ # undef _XBS5_ILP32_OFF32
+ # undef _XBS5_ILP32_OFFBIG
+ and users need to check at runtime. */
+
+/* We also have no use (for now) for an environment with bigger pointers
+ and offsets. */
+# define _POSIX_V7_LPBIG_OFFBIG -1
+# define _POSIX_V6_LPBIG_OFFBIG -1
+# define _XBS5_LPBIG_OFFBIG -1
+
+/* By default we have 64-bit wide `long int', pointers and `off_t'. */
+# define _POSIX_V7_LP64_OFF64 1
+# define _POSIX_V6_LP64_OFF64 1
+# define _XBS5_LP64_OFF64 1
+
+#else /* __WORDSIZE == 32 */
+
+/* By default we have 32-bit wide `int', `long int', pointers and `off_t'
+ and all platforms support LFS. */
+# define _POSIX_V7_ILP32_OFF32 1
+# define _POSIX_V7_ILP32_OFFBIG 1
+# define _POSIX_V6_ILP32_OFF32 1
+# define _POSIX_V6_ILP32_OFFBIG 1
+# define _XBS5_ILP32_OFF32 1
+# define _XBS5_ILP32_OFFBIG 1
+
+/* We optionally provide an environment with the above size but an 64-bit
+ side `off_t'. Therefore we don't define _POSIX_V7_ILP32_OFFBIG. */
+
+/* Environments with 64-bit wide pointers can be provided,
+ so these macros aren't defined:
+ # undef _POSIX_V7_LP64_OFF64
+ # undef _POSIX_V7_LPBIG_OFFBIG
+ # undef _POSIX_V6_LP64_OFF64
+ # undef _POSIX_V6_LPBIG_OFFBIG
+ # undef _XBS5_LP64_OFF64
+ # undef _XBS5_LPBIG_OFFBIG
+ and sysconf tests for it at runtime. */
+
+#endif /* __WORDSIZE == 32 */
+
+#define __ILP32_OFF32_CFLAGS "-m32"
+#define __ILP32_OFFBIG_CFLAGS "-m32 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
+#define __ILP32_OFF32_LDFLAGS "-m32"
+#define __ILP32_OFFBIG_LDFLAGS "-m32"
+#define __LP64_OFF64_CFLAGS "-m64"
+#define __LP64_OFF64_LDFLAGS "-m64"
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/bits/fcntl.h b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/bits/fcntl.h
new file mode 100644
index 0000000000..48bb5adc03
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/bits/fcntl.h
@@ -0,0 +1,62 @@
+/* O_*, F_*, FD_* bit values for Linux/PowerPC.
+ Copyright (C) 1995-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _FCNTL_H
+# error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
+#endif
+
+#include <bits/wordsize.h>
+
+#define __O_DIRECTORY 040000 /* Must be a directory. */
+#define __O_NOFOLLOW 0100000 /* Do not follow links. */
+#define __O_DIRECT 0400000 /* Direct disk access. */
+
+#if __WORDSIZE == 64
+/* Not necessary, files are always with 64bit off_t. */
+# define __O_LARGEFILE 0
+#else
+# define __O_LARGEFILE 0200000
+#endif
+
+struct flock
+ {
+ short int l_type; /* Type of lock: F_RDLCK, F_WRLCK, or F_UNLCK. */
+ short int l_whence; /* Where `l_start' is relative to (like `lseek'). */
+#ifndef __USE_FILE_OFFSET64
+ __off_t l_start; /* Offset where the lock begins. */
+ __off_t l_len; /* Size of the locked area; zero means until EOF. */
+#else
+ __off64_t l_start; /* Offset where the lock begins. */
+ __off64_t l_len; /* Size of the locked area; zero means until EOF. */
+#endif
+ __pid_t l_pid; /* Process holding the lock. */
+ };
+
+#ifdef __USE_LARGEFILE64
+struct flock64
+ {
+ short int l_type; /* Type of lock: F_RDLCK, F_WRLCK, or F_UNLCK. */
+ short int l_whence; /* Where `l_start' is relative to (like `lseek'). */
+ __off64_t l_start; /* Offset where the lock begins. */
+ __off64_t l_len; /* Size of the locked area; zero means until EOF. */
+ __pid_t l_pid; /* Process holding the lock. */
+ };
+#endif
+
+/* Include generic Linux declarations. */
+#include <bits/fcntl-linux.h>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/bits/ioctl-types.h b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/bits/ioctl-types.h
new file mode 100644
index 0000000000..b52e4c1403
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/bits/ioctl-types.h
@@ -0,0 +1,77 @@
+/* Structure types for pre-termios terminal ioctls. Linux/powerpc version.
+ Copyright (C) 2014-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_IOCTL_H
+# error "Never use <bits/ioctl-types.h> directly; include <sys/ioctl.h> instead."
+#endif
+
+/* Get definition of constants for use with `ioctl'. */
+#include <asm/ioctls.h>
+
+
+struct winsize
+ {
+ unsigned short int ws_row;
+ unsigned short int ws_col;
+ unsigned short int ws_xpixel;
+ unsigned short int ws_ypixel;
+ };
+
+#define NCC 10
+struct termio
+ {
+ unsigned short int c_iflag; /* input mode flags */
+ unsigned short int c_oflag; /* output mode flags */
+ unsigned short int c_cflag; /* control mode flags */
+ unsigned short int c_lflag; /* local mode flags */
+ unsigned char c_line; /* line discipline */
+ unsigned char c_cc[NCC]; /* control characters */
+};
+
+/* modem lines */
+#define TIOCM_LE 0x001
+#define TIOCM_DTR 0x002
+#define TIOCM_RTS 0x004
+#define TIOCM_ST 0x008
+#define TIOCM_SR 0x010
+#define TIOCM_CTS 0x020
+#define TIOCM_CAR 0x040
+#define TIOCM_RNG 0x080
+#define TIOCM_DSR 0x100
+#define TIOCM_CD TIOCM_CAR
+#define TIOCM_RI TIOCM_RNG
+
+/* ioctl (fd, TIOCSERGETLSR, &result) where result may be as below */
+
+/* line disciplines */
+#define N_TTY 0
+#define N_SLIP 1
+#define N_MOUSE 2
+#define N_PPP 3
+#define N_STRIP 4
+#define N_AX25 5
+#define N_X25 6 /* X.25 async */
+#define N_6PACK 7
+#define N_MASC 8 /* Mobitex module */
+#define N_R3964 9 /* Simatic R3964 module */
+#define N_PROFIBUS_FDL 10 /* Profibus */
+#define N_IRDA 11 /* Linux IR */
+#define N_SMSBLOCK 12 /* SMS block mode */
+#define N_HDLC 13 /* synchronous HDLC */
+#define N_SYNC_PPP 14 /* synchronous PPP */
+#define N_HCI 15 /* Bluetooth HCI UART */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/bits/ipc.h b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/bits/ipc.h
new file mode 100644
index 0000000000..bd8196967d
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/bits/ipc.h
@@ -0,0 +1,54 @@
+/* Copyright (C) 1995-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_IPC_H
+# error "Never use <bits/ipc.h> directly; include <sys/ipc.h> instead."
+#endif
+
+#include <bits/types.h>
+
+/* Mode bits for `msgget', `semget', and `shmget'. */
+#define IPC_CREAT 01000 /* Create key if key does not exist. */
+#define IPC_EXCL 02000 /* Fail if key exists. */
+#define IPC_NOWAIT 04000 /* Return error on wait. */
+
+/* Control commands for `msgctl', `semctl', and `shmctl'. */
+#define IPC_RMID 0 /* Remove identifier. */
+#define IPC_SET 1 /* Set `ipc_perm' options. */
+#define IPC_STAT 2 /* Get `ipc_perm' options. */
+#ifdef __USE_GNU
+# define IPC_INFO 3 /* See ipcs. */
+#endif
+
+/* Special key values. */
+#define IPC_PRIVATE ((__key_t) 0) /* Private key. */
+
+
+/* Data structure used to pass permission information to IPC operations. */
+struct ipc_perm
+ {
+ __key_t __key; /* Key. */
+ __uid_t uid; /* Owner's user ID. */
+ __gid_t gid; /* Owner's group ID. */
+ __uid_t cuid; /* Creator's user ID. */
+ __gid_t cgid; /* Creator's group ID. */
+ __mode_t mode; /* Read/write permission. */
+ __uint32_t __seq; /* Sequence number. */
+ __uint32_t __pad1;
+ __uint64_t __glibc_reserved1;
+ __uint64_t __glibc_reserved2;
+ };
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/bits/local_lim.h b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/bits/local_lim.h
new file mode 100644
index 0000000000..12b2b767ae
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/bits/local_lim.h
@@ -0,0 +1,100 @@
+/* Minimum guaranteed maximum values for system limits. Linux/PPC 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; see the file COPYING.LIB. If
+ not, see <http://www.gnu.org/licenses/>. */
+
+/* The kernel header pollutes the namespace with the NR_OPEN symbol
+ and defines LINK_MAX although filesystems have different maxima. A
+ similar thing is true for OPEN_MAX: the limit can be changed at
+ runtime and therefore the macro must not be defined. Remove this
+ after including the header if necessary. */
+#ifndef NR_OPEN
+# define __undef_NR_OPEN
+#endif
+#ifndef LINK_MAX
+# define __undef_LINK_MAX
+#endif
+#ifndef OPEN_MAX
+# define __undef_OPEN_MAX
+#endif
+#ifndef ARG_MAX
+# define __undef_ARG_MAX
+#endif
+
+/* The kernel sources contain a file with all the needed information. */
+#include <linux/limits.h>
+
+/* Have to remove NR_OPEN? */
+#ifdef __undef_NR_OPEN
+# undef NR_OPEN
+# undef __undef_NR_OPEN
+#endif
+/* Have to remove LINK_MAX? */
+#ifdef __undef_LINK_MAX
+# undef LINK_MAX
+# undef __undef_LINK_MAX
+#endif
+/* Have to remove OPEN_MAX? */
+#ifdef __undef_OPEN_MAX
+# undef OPEN_MAX
+# undef __undef_OPEN_MAX
+#endif
+/* Have to remove ARG_MAX? */
+#ifdef __undef_ARG_MAX
+# undef ARG_MAX
+# undef __undef_ARG_MAX
+#endif
+
+/* The number of data keys per process. */
+#define _POSIX_THREAD_KEYS_MAX 128
+/* This is the value this implementation supports. */
+#define PTHREAD_KEYS_MAX 1024
+
+/* Controlling the iterations of destructors for thread-specific data. */
+#define _POSIX_THREAD_DESTRUCTOR_ITERATIONS 4
+/* Number of iterations this implementation does. */
+#define PTHREAD_DESTRUCTOR_ITERATIONS _POSIX_THREAD_DESTRUCTOR_ITERATIONS
+
+/* The number of threads per process. */
+#define _POSIX_THREAD_THREADS_MAX 64
+/* We have no predefined limit on the number of threads. */
+#undef PTHREAD_THREADS_MAX
+
+/* Maximum amount by which a process can descrease its asynchronous I/O
+ priority level. */
+#define AIO_PRIO_DELTA_MAX 20
+
+/* Minimum size for a thread. At least two pages for systems with 64k
+ pages. */
+#define PTHREAD_STACK_MIN 131072
+
+/* Maximum number of timer expiration overruns. */
+#define DELAYTIMER_MAX 2147483647
+
+/* Maximum tty name length. */
+#define TTY_NAME_MAX 32
+
+/* Maximum login name length. This is arbitrary. */
+#define LOGIN_NAME_MAX 256
+
+/* Maximum host name length. */
+#define HOST_NAME_MAX 64
+
+/* Maximum message queue priority level. */
+#define MQ_PRIO_MAX 32768
+
+/* Maximum value the semaphore can have. */
+#define SEM_VALUE_MAX (2147483647)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/bits/mman.h b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/bits/mman.h
new file mode 100644
index 0000000000..53bc198d7b
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/bits/mman.h
@@ -0,0 +1,49 @@
+/* Definitions for POSIX memory map interface. Linux/PowerPC version.
+ Copyright (C) 1997-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_MMAN_H
+# error "Never use <bits/mman.h> directly; include <sys/mman.h> instead."
+#endif
+
+/* The following definitions basically come from the kernel headers.
+ But the kernel header is not namespace clean. */
+
+#define PROT_SAO 0x10 /* Strong Access Ordering. */
+
+/* These are Linux-specific. */
+#ifdef __USE_MISC
+# define MAP_GROWSDOWN 0x00100 /* Stack-like segment. */
+# define MAP_DENYWRITE 0x00800 /* ETXTBSY */
+# define MAP_EXECUTABLE 0x01000 /* Mark it as an executable. */
+# define MAP_LOCKED 0x00080 /* Lock the mapping. */
+# define MAP_NORESERVE 0x00040 /* Don't check for reservations. */
+# define MAP_POPULATE 0x08000 /* Populate (prefault) pagetables. */
+# define MAP_NONBLOCK 0x10000 /* Do not block on IO. */
+# define MAP_STACK 0x20000 /* Allocation is for a stack. */
+# define MAP_HUGETLB 0x40000 /* Create huge page mapping. */
+#endif
+
+/* Flags for `mlockall'. */
+#define MCL_CURRENT 0x2000 /* Lock all currently mapped pages. */
+#define MCL_FUTURE 0x4000 /* Lock all additions to address
+ space. */
+#define MCL_ONFAULT 0x8000 /* Lock all pages that are
+ faulted in. */
+
+/* Include generic Linux declarations. */
+#include <bits/mman-linux.h>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/bits/msq.h b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/bits/msq.h
new file mode 100644
index 0000000000..f056c99547
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/bits/msq.h
@@ -0,0 +1,83 @@
+/* Copyright (C) 1995-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_MSG_H
+# error "Never use <bits/msq.h> directly; include <sys/msg.h> instead."
+#endif
+
+#include <bits/types.h>
+
+/* Define options for message queue functions. */
+#define MSG_NOERROR 010000 /* no error if message is too big */
+#ifdef __USE_GNU
+# define MSG_EXCEPT 020000 /* recv any msg except of specified type */
+# define MSG_COPY 040000 /* copy (not remove) all queue messages */
+#endif
+
+/* Types used in the structure definition. */
+typedef unsigned long int msgqnum_t;
+typedef unsigned long int msglen_t;
+
+
+/* Structure of record for one message inside the kernel.
+ The type `struct msg' is opaque. */
+struct msqid_ds
+{
+ struct ipc_perm msg_perm; /* structure describing operation permission */
+#if __WORDSIZE == 32
+ unsigned int __glibc_reserved1;
+#endif
+ __time_t msg_stime; /* time of last msgsnd command */
+#if __WORDSIZE == 32
+ unsigned int __glibc_reserved2;
+#endif
+ __time_t msg_rtime; /* time of last msgrcv command */
+#if __WORDSIZE == 32
+ unsigned int __glibc_reserved3;
+#endif
+ __time_t msg_ctime; /* time of last change */
+ unsigned long __msg_cbytes; /* current number of bytes on queue */
+ msgqnum_t msg_qnum; /* number of messages currently on queue */
+ msglen_t msg_qbytes; /* max number of bytes allowed on queue */
+ __pid_t msg_lspid; /* pid of last msgsnd() */
+ __pid_t msg_lrpid; /* pid of last msgrcv() */
+ unsigned long __glibc_reserved4;
+ unsigned long __glibc_reserved5;
+};
+
+#ifdef __USE_MISC
+
+# define msg_cbytes __msg_cbytes
+
+/* ipcs ctl commands */
+# define MSG_STAT 11
+# define MSG_INFO 12
+
+/* buffer for msgctl calls IPC_INFO, MSG_INFO */
+struct msginfo
+ {
+ int msgpool;
+ int msgmap;
+ int msgmax;
+ int msgmnb;
+ int msgmni;
+ int msgssz;
+ int msgtql;
+ unsigned short int msgseg;
+ };
+
+#endif /* __USE_MISC */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/bits/ppc.h b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/bits/ppc.h
new file mode 100644
index 0000000000..1d0a39737b
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/bits/ppc.h
@@ -0,0 +1,33 @@
+/* Facilities specific to the PowerPC architecture on Linux
+ Copyright (C) 2012-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _BITS_PPC_H
+#define _BITS_PPC_H
+
+#ifndef _SYS_PLATFORM_PPC_H
+# error "Never include this file directly; use <sys/platform/ppc.h> instead."
+#endif
+
+__BEGIN_DECLS
+
+/* Read the time base frequency. */
+extern uint64_t __ppc_get_timebase_freq (void);
+
+__END_DECLS
+
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/bits/sem.h b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/bits/sem.h
new file mode 100644
index 0000000000..b5ba64c95c
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/bits/sem.h
@@ -0,0 +1,90 @@
+/* Copyright (C) 1995-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_SEM_H
+# error "Never include <bits/sem.h> directly; use <sys/sem.h> instead."
+#endif
+
+#include <sys/types.h>
+
+/* Flags for `semop'. */
+#define SEM_UNDO 0x1000 /* undo the operation on exit */
+
+/* Commands for `semctl'. */
+#define GETPID 11 /* get sempid */
+#define GETVAL 12 /* get semval */
+#define GETALL 13 /* get all semval's */
+#define GETNCNT 14 /* get semncnt */
+#define GETZCNT 15 /* get semzcnt */
+#define SETVAL 16 /* set semval */
+#define SETALL 17 /* set all semval's */
+
+
+/* Data structure describing a set of semaphores. */
+struct semid_ds
+{
+ struct ipc_perm sem_perm; /* operation permission struct */
+#if __WORDSIZE == 32
+ unsigned int __glibc_reserved1;
+#endif
+ __time_t sem_otime; /* last semop() time */
+#if __WORDSIZE == 32
+ unsigned int __glibc_reserved2;
+#endif
+ __time_t sem_ctime; /* last time changed by semctl() */
+ unsigned long int sem_nsems; /* number of semaphores in set */
+ unsigned long __glibc_reserved3;
+ unsigned long __glibc_reserved4;
+};
+
+/* The user should define a union like the following to use it for arguments
+ for `semctl'.
+
+ union semun
+ {
+ int val; <= value for SETVAL
+ struct semid_ds *buf; <= buffer for IPC_STAT & IPC_SET
+ unsigned short int *array; <= array for GETALL & SETALL
+ struct seminfo *__buf; <= buffer for IPC_INFO
+ };
+
+ Previous versions of this file used to define this union but this is
+ incorrect. One can test the macro _SEM_SEMUN_UNDEFINED to see whether
+ one must define the union or not. */
+#define _SEM_SEMUN_UNDEFINED 1
+
+#ifdef __USE_MISC
+
+/* ipcs ctl cmds */
+# define SEM_STAT 18
+# define SEM_INFO 19
+
+struct seminfo
+{
+ int semmap;
+ int semmni;
+ int semmns;
+ int semmnu;
+ int semmsl;
+ int semopm;
+ int semume;
+ int semusz;
+ int semvmx;
+ int semaem;
+};
+
+#endif /* __USE_MISC */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/bits/semaphore.h b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/bits/semaphore.h
new file mode 100644
index 0000000000..05e68d4342
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/bits/semaphore.h
@@ -0,0 +1,40 @@
+/* Machine-specific POSIX semaphore type layouts. PowerPC version.
+ Copyright (C) 2003-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Paul Mackerras <paulus@au.ibm.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/>. */
+
+#ifndef _SEMAPHORE_H
+# error "Never use <bits/semaphore.h> directly; include <semaphore.h> instead."
+#endif
+
+#include <bits/wordsize.h>
+
+#if __WORDSIZE == 64
+# define __SIZEOF_SEM_T 32
+#else
+# define __SIZEOF_SEM_T 16
+#endif
+
+/* Value returned if `sem_open' failed. */
+#define SEM_FAILED ((sem_t *) 0)
+
+
+typedef union
+{
+ char __size[__SIZEOF_SEM_T];
+ long int __align;
+} sem_t;
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/bits/shm.h b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/bits/shm.h
new file mode 100644
index 0000000000..3812e73944
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/bits/shm.h
@@ -0,0 +1,112 @@
+/* Copyright (C) 1995-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_SHM_H
+# error "Never include <bits/shm.h> directly; use <sys/shm.h> instead."
+#endif
+
+#include <bits/types.h>
+
+/* Permission flag for shmget. */
+#define SHM_R 0400 /* or S_IRUGO from <linux/stat.h> */
+#define SHM_W 0200 /* or S_IWUGO from <linux/stat.h> */
+
+/* Flags for `shmat'. */
+#define SHM_RDONLY 010000 /* attach read-only else read-write */
+#define SHM_RND 020000 /* round attach address to SHMLBA */
+#define SHM_REMAP 040000 /* take-over region on attach */
+#define SHM_EXEC 0100000 /* execution access */
+
+/* Commands for `shmctl'. */
+#define SHM_LOCK 11 /* lock segment (root only) */
+#define SHM_UNLOCK 12 /* unlock segment (root only) */
+
+__BEGIN_DECLS
+
+/* Segment low boundary address multiple. */
+#define SHMLBA (__getpagesize ())
+extern int __getpagesize (void) __THROW __attribute__ ((__const__));
+
+
+/* Type to count number of attaches. */
+typedef unsigned long int shmatt_t;
+
+/* Data structure describing a shared memory segment. */
+struct shmid_ds
+ {
+ struct ipc_perm shm_perm; /* operation permission struct */
+#if __WORDSIZE == 32
+ unsigned int __glibc_reserved1;
+#endif
+ __time_t shm_atime; /* time of last shmat() */
+#if __WORDSIZE == 32
+ unsigned int __glibc_reserved2;
+#endif
+ __time_t shm_dtime; /* time of last shmdt() */
+#if __WORDSIZE == 32
+ unsigned int __glibc_reserved3;
+#endif
+ __time_t shm_ctime; /* time of last change by shmctl() */
+#if __WORDSIZE == 32
+ unsigned int __glibc_reserved4;
+#endif
+ size_t shm_segsz; /* size of segment in bytes */
+ __pid_t shm_cpid; /* pid of creator */
+ __pid_t shm_lpid; /* pid of last shmop */
+ shmatt_t shm_nattch; /* number of current attaches */
+ unsigned long __glibc_reserved5;
+ unsigned long __glibc_reserved6;
+ };
+
+#ifdef __USE_MISC
+
+/* ipcs ctl commands */
+# define SHM_STAT 13
+# define SHM_INFO 14
+
+/* shm_mode upper byte flags */
+# define SHM_DEST 01000 /* segment will be destroyed on last detach */
+# define SHM_LOCKED 02000 /* segment will not be swapped */
+# define SHM_HUGETLB 04000 /* segment is mapped via hugetlb */
+# define SHM_NORESERVE 010000 /* don't check for reservations */
+
+struct shminfo
+ {
+ unsigned long int shmmax;
+ unsigned long int shmmin;
+ unsigned long int shmmni;
+ unsigned long int shmseg;
+ unsigned long int shmall;
+ unsigned long int __glibc_reserved1;
+ unsigned long int __glibc_reserved2;
+ unsigned long int __glibc_reserved3;
+ unsigned long int __glibc_reserved4;
+ };
+
+struct shm_info
+ {
+ int used_ids;
+ unsigned long int shm_tot; /* total allocated shm */
+ unsigned long int shm_rss; /* total resident shm */
+ unsigned long int shm_swp; /* total swapped shm */
+ unsigned long int swap_attempts;
+ unsigned long int swap_successes;
+ };
+
+#endif /* __USE_MISC */
+
+__END_DECLS
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/bits/sigstack.h b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/bits/sigstack.h
new file mode 100644
index 0000000000..74670cb037
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/bits/sigstack.h
@@ -0,0 +1,32 @@
+/* sigstack, sigaltstack definitions.
+ Copyright (C) 1998-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _BITS_SIGSTACK_H
+#define _BITS_SIGSTACK_H 1
+
+#if !defined _SIGNAL_H && !defined _SYS_UCONTEXT_H
+# error "Never include this file directly. Use <signal.h> instead"
+#endif
+
+/* Minimum stack size for a signal handler. */
+#define MINSIGSTKSZ 4096
+
+/* System default stack size. */
+#define SIGSTKSZ 16384
+
+#endif /* bits/sigstack.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/bits/stat.h b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/bits/stat.h
new file mode 100644
index 0000000000..e95a52822e
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/bits/stat.h
@@ -0,0 +1,275 @@
+/* Copyright (C) 1992-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#if !defined _SYS_STAT_H && !defined _FCNTL_H
+# error "Never include <bits/stat.h> directly; use <sys/stat.h> instead."
+#endif
+
+#ifndef _BITS_STAT_H
+#define _BITS_STAT_H 1
+
+#include <bits/wordsize.h>
+
+/* Versions of the `struct stat' data structure. */
+#define _STAT_VER_LINUX_OLD 1
+#define _STAT_VER_KERNEL 1
+#define _STAT_VER_SVR4 2
+#define _STAT_VER_LINUX 3
+#if __WORDSIZE == 32
+# define _STAT_VER _STAT_VER_LINUX
+#else
+# define _STAT_VER _STAT_VER_KERNEL
+#endif
+
+/* Versions of the `xmknod' interface. */
+#define _MKNOD_VER_LINUX 1
+#define _MKNOD_VER_SVR4 2
+#define _MKNOD_VER _MKNOD_VER_LINUX /* The bits defined below. */
+
+
+#if __WORDSIZE == 32
+
+struct stat
+ {
+ __dev_t st_dev; /* Device. */
+# ifndef __USE_FILE_OFFSET64
+ unsigned short int __pad1;
+ __ino_t st_ino; /* File serial number. */
+# else
+ __ino64_t st_ino; /* File serial number. */
+# endif
+ __mode_t st_mode; /* File mode. */
+ __nlink_t st_nlink; /* Link count. */
+ __uid_t st_uid; /* User ID of the file's owner. */
+ __gid_t st_gid; /* Group ID of the file's group.*/
+ __dev_t st_rdev; /* Device number, if device. */
+ unsigned short int __pad2;
+# ifndef __USE_FILE_OFFSET64
+ __off_t st_size; /* Size of file, in bytes. */
+# else
+ __off64_t st_size; /* Size of file, in bytes. */
+# endif
+ __blksize_t st_blksize; /* Optimal block size for I/O. */
+
+# ifndef __USE_FILE_OFFSET64
+ __blkcnt_t st_blocks; /* Number 512-byte blocks allocated. */
+# else
+ __blkcnt64_t st_blocks; /* Number 512-byte blocks allocated. */
+# endif
+# ifdef __USE_XOPEN2K8
+ /* Nanosecond resolution timestamps are stored in a format
+ equivalent to 'struct timespec'. This is the type used
+ whenever possible but the Unix namespace rules do not allow the
+ identifier 'timespec' to appear in the <sys/stat.h> header.
+ Therefore we have to handle the use of this header in strictly
+ standard-compliant sources special. */
+ struct timespec st_atim; /* Time of last access. */
+ struct timespec st_mtim; /* Time of last modification. */
+ struct timespec st_ctim; /* Time of last status change. */
+# define st_atime st_atim.tv_sec /* Backward compatibility. */
+# define st_mtime st_mtim.tv_sec
+# define st_ctime st_ctim.tv_sec
+# else
+ __time_t st_atime; /* Time of last access. */
+ unsigned long int st_atimensec; /* Nscecs of last access. */
+ __time_t st_mtime; /* Time of last modification. */
+ unsigned long int st_mtimensec; /* Nsecs of last modification. */
+ __time_t st_ctime; /* Time of last status change. */
+ unsigned long int st_ctimensec; /* Nsecs of last status change. */
+# endif
+ unsigned long int __glibc_reserved4;
+ unsigned long int __glibc_reserved5;
+ };
+
+
+# ifdef __USE_LARGEFILE64
+struct stat64
+ {
+ __dev_t st_dev; /* Device. */
+ __ino64_t st_ino; /* File serial number. */
+ __mode_t st_mode; /* File mode. */
+ __nlink_t st_nlink; /* Link count. */
+ __uid_t st_uid; /* User ID of the file's owner. */
+ __gid_t st_gid; /* Group ID of the file's group.*/
+ __dev_t st_rdev; /* Device number, if device. */
+ unsigned short int __pad2;
+ __off64_t st_size; /* Size of file, in bytes. */
+ __blksize_t st_blksize; /* Optimal block size for I/O. */
+ __blkcnt64_t st_blocks; /* Number 512-byte blocks allocated. */
+# ifdef __USE_XOPEN2K8
+ /* Nanosecond resolution timestamps are stored in a format
+ equivalent to 'struct timespec'. This is the type used
+ whenever possible but the Unix namespace rules do not allow the
+ identifier 'timespec' to appear in the <sys/stat.h> header.
+ Therefore we have to handle the use of this header in strictly
+ standard-compliant sources special. */
+ struct timespec st_atim; /* Time of last access. */
+ struct timespec st_mtim; /* Time of last modification. */
+ struct timespec st_ctim; /* Time of last status change. */
+# define st_atime st_atim.tv_sec /* Backward compatibility. */
+# define st_mtime st_mtim.tv_sec
+# define st_ctime st_ctim.tv_sec
+# else
+ __time_t st_atime; /* Time of last access. */
+ unsigned long int st_atimensec; /* Nscecs of last access. */
+ __time_t st_mtime; /* Time of last modification. */
+ unsigned long int st_mtimensec; /* Nsecs of last modification. */
+ __time_t st_ctime; /* Time of last status change. */
+ unsigned long int st_ctimensec; /* Nsecs of last status change. */
+# endif
+ unsigned long int __glibc_reserved4;
+ unsigned long int __glibc_reserved5;
+ };
+# endif /* __USE_LARGEFILE64 */
+
+#else /* __WORDSIZE == 32 */
+
+struct stat
+ {
+ __dev_t st_dev; /* Device. */
+# ifndef __USE_FILE_OFFSET64
+ __ino_t st_ino; /* File serial number. */
+# else
+ __ino64_t st_ino; /* File serial number. */
+# endif
+ __nlink_t st_nlink; /* Link count. */
+ __mode_t st_mode; /* File mode. */
+ __uid_t st_uid; /* User ID of the file's owner. */
+ __gid_t st_gid; /* Group ID of the file's group.*/
+ int __pad2;
+ __dev_t st_rdev; /* Device number, if device. */
+# ifndef __USE_FILE_OFFSET64
+ __off_t st_size; /* Size of file, in bytes. */
+# else
+ __off64_t st_size; /* Size of file, in bytes. */
+# endif
+ __blksize_t st_blksize; /* Optimal block size for I/O. */
+
+# ifndef __USE_FILE_OFFSET64
+ __blkcnt_t st_blocks; /* Number 512-byte blocks allocated. */
+# else
+ __blkcnt64_t st_blocks; /* Number 512-byte blocks allocated. */
+# endif
+# ifdef __USE_XOPEN2K8
+ /* Nanosecond resolution timestamps are stored in a format
+ equivalent to 'struct timespec'. This is the type used
+ whenever possible but the Unix namespace rules do not allow the
+ identifier 'timespec' to appear in the <sys/stat.h> header.
+ Therefore we have to handle the use of this header in strictly
+ standard-compliant sources special. */
+ struct timespec st_atim; /* Time of last access. */
+ struct timespec st_mtim; /* Time of last modification. */
+ struct timespec st_ctim; /* Time of last status change. */
+# define st_atime st_atim.tv_sec /* Backward compatibility. */
+# define st_mtime st_mtim.tv_sec
+# define st_ctime st_ctim.tv_sec
+# else
+ __time_t st_atime; /* Time of last access. */
+ unsigned long int st_atimensec; /* Nscecs of last access. */
+ __time_t st_mtime; /* Time of last modification. */
+ unsigned long int st_mtimensec; /* Nsecs of last modification. */
+ __time_t st_ctime; /* Time of last status change. */
+ unsigned long int st_ctimensec; /* Nsecs of last status change. */
+# endif
+ unsigned long int __glibc_reserved4;
+ unsigned long int __glibc_reserved5;
+ unsigned long int __glibc_reserved6;
+ };
+
+# ifdef __USE_LARGEFILE64
+struct stat64
+ {
+ __dev_t st_dev; /* Device. */
+ __ino64_t st_ino; /* File serial number. */
+ __nlink_t st_nlink; /* Link count. */
+ __mode_t st_mode; /* File mode. */
+ __uid_t st_uid; /* User ID of the file's owner. */
+ __gid_t st_gid; /* Group ID of the file's group.*/
+ int __pad2;
+ __dev_t st_rdev; /* Device number, if device. */
+ __off64_t st_size; /* Size of file, in bytes. */
+ __blksize_t st_blksize; /* Optimal block size for I/O. */
+ __blkcnt64_t st_blocks; /* Number 512-byte blocks allocated. */
+# ifdef __USE_XOPEN2K8
+ /* Nanosecond resolution timestamps are stored in a format
+ equivalent to 'struct timespec'. This is the type used
+ whenever possible but the Unix namespace rules do not allow the
+ identifier 'timespec' to appear in the <sys/stat.h> header.
+ Therefore we have to handle the use of this header in strictly
+ standard-compliant sources special. */
+ struct timespec st_atim; /* Time of last access. */
+ struct timespec st_mtim; /* Time of last modification. */
+ struct timespec st_ctim; /* Time of last status change. */
+# define st_atime st_atim.tv_sec /* Backward compatibility. */
+# define st_mtime st_mtim.tv_sec
+# define st_ctime st_ctim.tv_sec
+# else
+ __time_t st_atime; /* Time of last access. */
+ unsigned long int st_atimensec; /* Nscecs of last access. */
+ __time_t st_mtime; /* Time of last modification. */
+ unsigned long int st_mtimensec; /* Nsecs of last modification. */
+ __time_t st_ctime; /* Time of last status change. */
+ unsigned long int st_ctimensec; /* Nsecs of last status change. */
+# endif
+ unsigned long int __glibc_reserved4;
+ unsigned long int __glibc_reserved5;
+ unsigned long int __glibc_reserved6;
+ };
+# endif /* __USE_LARGEFILE64 */
+#endif
+
+
+/* Tell code we have these members. */
+#define _STATBUF_ST_BLKSIZE
+#define _STATBUF_ST_RDEV
+/* Nanosecond resolution time values are supported. */
+#define _STATBUF_ST_NSEC
+
+/* Encoding of the file mode. */
+
+#define __S_IFMT 0170000 /* These bits determine file type. */
+
+/* File types. */
+#define __S_IFDIR 0040000 /* Directory. */
+#define __S_IFCHR 0020000 /* Character device. */
+#define __S_IFBLK 0060000 /* Block device. */
+#define __S_IFREG 0100000 /* Regular file. */
+#define __S_IFIFO 0010000 /* FIFO. */
+#define __S_IFLNK 0120000 /* Symbolic link. */
+#define __S_IFSOCK 0140000 /* Socket. */
+
+/* POSIX.1b objects. Note that these macros always evaluate to zero. But
+ they do it by enforcing the correct use of the macros. */
+#define __S_TYPEISMQ(buf) ((buf)->st_mode - (buf)->st_mode)
+#define __S_TYPEISSEM(buf) ((buf)->st_mode - (buf)->st_mode)
+#define __S_TYPEISSHM(buf) ((buf)->st_mode - (buf)->st_mode)
+
+/* Protection bits. */
+
+#define __S_ISUID 04000 /* Set user ID on execution. */
+#define __S_ISGID 02000 /* Set group ID on execution. */
+#define __S_ISVTX 01000 /* Save swapped text after use (sticky). */
+#define __S_IREAD 0400 /* Read by owner. */
+#define __S_IWRITE 0200 /* Write by owner. */
+#define __S_IEXEC 0100 /* Execute by owner. */
+
+#ifdef __USE_ATFILE
+# define UTIME_NOW ((1l << 30) - 1l)
+# define UTIME_OMIT ((1l << 30) - 2l)
+#endif
+
+#endif /* bits/stat.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/bits/termios.h b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/bits/termios.h
new file mode 100644
index 0000000000..4811486c64
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/bits/termios.h
@@ -0,0 +1,279 @@
+/* Copyright (C) 1997-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _TERMIOS_H
+# error "Never include <bits/termios.h> directly; use <termios.h> instead."
+#endif
+
+typedef unsigned char cc_t;
+typedef unsigned int speed_t;
+typedef unsigned int tcflag_t;
+
+/*
+ * termios type and macro definitions. Be careful about adding stuff
+ * to this file since it's used in GNU libc and there are strict rules
+ * concerning namespace pollution.
+ */
+
+#define NCCS 32
+struct termios {
+ tcflag_t c_iflag; /* input mode flags */
+ tcflag_t c_oflag; /* output mode flags */
+ tcflag_t c_cflag; /* control mode flags */
+ tcflag_t c_lflag; /* local mode flags */
+ cc_t c_line; /* line discipline (== c_cc[19]) */
+ cc_t c_cc[NCCS]; /* control characters */
+ speed_t c_ispeed; /* input speed */
+ speed_t c_ospeed; /* output speed */
+#define _HAVE_STRUCT_TERMIOS_C_ISPEED 1
+#define _HAVE_STRUCT_TERMIOS_C_OSPEED 1
+};
+
+/* c_cc characters */
+#define VINTR 0
+#define VQUIT 1
+#define VERASE 2
+#define VKILL 3
+#define VEOF 4
+#define VMIN 5
+#define VEOL 6
+#define VTIME 7
+#define VEOL2 8
+#define VSWTC 9
+
+#define VWERASE 10
+#define VREPRINT 11
+#define VSUSP 12
+#define VSTART 13
+#define VSTOP 14
+#define VLNEXT 15
+#define VDISCARD 16
+
+/* c_iflag bits */
+#define IGNBRK 0000001
+#define BRKINT 0000002
+#define IGNPAR 0000004
+#define PARMRK 0000010
+#define INPCK 0000020
+#define ISTRIP 0000040
+#define INLCR 0000100
+#define IGNCR 0000200
+#define ICRNL 0000400
+#define IXON 0001000
+#define IXOFF 0002000
+#define IXANY 0004000
+#define IUCLC 0010000
+#define IMAXBEL 0020000
+#define IUTF8 0040000
+
+/* c_oflag bits */
+#define OPOST 0000001
+#define ONLCR 0000002
+#define OLCUC 0000004
+
+#define OCRNL 0000010
+#define ONOCR 0000020
+#define ONLRET 0000040
+
+#define OFILL 00000100
+#define OFDEL 00000200
+#if defined __USE_MISC || defined __USE_XOPEN
+# define NLDLY 00001400
+# define NL0 00000000
+# define NL1 00000400
+# if defined __USE_MISC
+# define NL2 00001000
+# define NL3 00001400
+# endif
+# define TABDLY 00006000
+# define TAB0 00000000
+# define TAB1 00002000
+# define TAB2 00004000
+# define TAB3 00006000
+# define CRDLY 00030000
+# define CR0 00000000
+# define CR1 00010000
+# define CR2 00020000
+# define CR3 00030000
+# define FFDLY 00040000
+# define FF0 00000000
+# define FF1 00040000
+# define BSDLY 00100000
+# define BS0 00000000
+# define BS1 00100000
+#endif
+#define VTDLY 00200000
+#define VT0 00000000
+#define VT1 00200000
+
+#ifdef __USE_MISC
+# define XTABS 00006000
+#endif
+
+/* c_cflag bit meaning */
+#ifdef __USE_MISC
+# define CBAUD 0000377
+#endif
+#define B0 0000000 /* hang up */
+#define B50 0000001
+#define B75 0000002
+#define B110 0000003
+#define B134 0000004
+#define B150 0000005
+#define B200 0000006
+#define B300 0000007
+#define B600 0000010
+#define B1200 0000011
+#define B1800 0000012
+#define B2400 0000013
+#define B4800 0000014
+#define B9600 0000015
+#define B19200 0000016
+#define B38400 0000017
+#ifdef __USE_MISC
+# define EXTA B19200
+# define EXTB B38400
+# define CBAUDEX 0000020
+#endif
+#define B57600 00020
+#define B115200 00021
+#define B230400 00022
+#define B460800 00023
+#define B500000 00024
+#define B576000 00025
+#define B921600 00026
+#define B1000000 00027
+#define B1152000 00030
+#define B1500000 00031
+#define B2000000 00032
+#define B2500000 00033
+#define B3000000 00034
+#define B3500000 00035
+#define B4000000 00036
+#define __MAX_BAUD B4000000
+
+#define CSIZE 00001400
+#define CS5 00000000
+#define CS6 00000400
+#define CS7 00001000
+#define CS8 00001400
+
+#define CSTOPB 00002000
+#define CREAD 00004000
+#define PARENB 00010000
+#define PARODD 00020000
+#define HUPCL 00040000
+
+#define CLOCAL 00100000
+#ifdef __USE_MISC
+# define CMSPAR 010000000000 /* mark or space (stick) parity */
+# define CRTSCTS 020000000000 /* flow control */
+#endif
+
+/* c_lflag bits */
+#define ISIG 0x00000080
+#define ICANON 0x00000100
+#if defined __USE_MISC || (defined __USE_XOPEN && !defined __USE_XOPEN2K)
+# define XCASE 0x00004000
+#endif
+#define ECHO 0x00000008
+#define ECHOE 0x00000002
+#define ECHOK 0x00000004
+#define ECHONL 0x00000010
+#define NOFLSH 0x80000000
+#define TOSTOP 0x00400000
+#ifdef __USE_MISC
+# define ECHOCTL 0x00000040
+# define ECHOPRT 0x00000020
+# define ECHOKE 0x00000001
+# define FLUSHO 0x00800000
+# define PENDIN 0x20000000
+#endif
+#define IEXTEN 0x00000400
+#ifdef __USE_MISC
+# define EXTPROC 0x10000000
+#endif
+
+/* Values for the ACTION argument to `tcflow'. */
+#define TCOOFF 0
+#define TCOON 1
+#define TCIOFF 2
+#define TCION 3
+
+/* Values for the QUEUE_SELECTOR argument to `tcflush'. */
+#define TCIFLUSH 0
+#define TCOFLUSH 1
+#define TCIOFLUSH 2
+
+/* Values for the OPTIONAL_ACTIONS argument to `tcsetattr'. */
+#define TCSANOW 0
+#define TCSADRAIN 1
+#define TCSAFLUSH 2
+
+#ifdef __USE_MISC
+
+struct sgttyb {
+ char sg_ispeed;
+ char sg_ospeed;
+ char sg_erase;
+ char sg_kill;
+ short sg_flags;
+};
+
+struct tchars {
+ char t_intrc;
+ char t_quitc;
+ char t_startc;
+ char t_stopc;
+ char t_eofc;
+ char t_brkc;
+};
+
+struct ltchars {
+ char t_suspc;
+ char t_dsuspc;
+ char t_rprntc;
+ char t_flushc;
+ char t_werasc;
+ char t_lnextc;
+};
+
+/* Used for packet mode */
+#define TIOCPKT_DATA 0
+#define TIOCPKT_FLUSHREAD 1
+#define TIOCPKT_FLUSHWRITE 2
+#define TIOCPKT_STOP 4
+#define TIOCPKT_START 8
+#define TIOCPKT_NOSTOP 16
+#define TIOCPKT_DOSTOP 32
+
+/* c_cc characters */
+#define _VINTR 0
+#define _VQUIT 1
+#define _VERASE 2
+#define _VKILL 3
+#define _VEOF 4
+#define _VMIN 5
+#define _VEOL 6
+#define _VTIME 7
+#define _VEOL2 8
+#define _VSWTC 9
+
+/* ioctl (fd, TIOCSERGETLSR, &result) where result may be as below */
+#define TIOCSER_TEMT 0x01 /* Transmitter physically empty */
+
+#endif /* __USE_MISC */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/bits/wordsize.h b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/bits/wordsize.h
new file mode 100644
index 0000000000..04ca9debf0
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/bits/wordsize.h
@@ -0,0 +1,11 @@
+/* Determine the wordsize from the preprocessor defines. */
+
+#if defined __powerpc64__
+# define __WORDSIZE 64
+# define __WORDSIZE_TIME64_COMPAT32 1
+#else
+# define __WORDSIZE 32
+# define __WORDSIZE_TIME64_COMPAT32 0
+# define __WORDSIZE32_SIZE_ULONG 0
+# define __WORDSIZE32_PTRDIFF_LONG 0
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/configure b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/configure
new file mode 100644
index 0000000000..6f883de396
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/configure
@@ -0,0 +1,79 @@
+# This file is generated from configure.ac by Autoconf. DO NOT EDIT!
+ # Local configure fragment for sysdeps/unix/sysv/linux/powerpc/.
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC $CFLAGS -mlong-double-128 uses IBM extended format" >&5
+$as_echo_n "checking whether $CC $CFLAGS -mlong-double-128 uses IBM extended format... " >&6; }
+if ${libc_cv_mlong_double_128ibm+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ save_CFLAGS="$CFLAGS"
+CFLAGS="$CFLAGS -mlong-double-128"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <float.h>
+int
+main ()
+{
+
+#if LDBL_MANT_DIG != 106
+# error "compiler doesn't implement IBM extended format of long double"
+#endif
+long double foobar (long double x) { return x; }
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ libc_cv_mlong_double_128ibm=yes
+else
+ libc_cv_mlong_double_128ibm=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+CFLAGS="$save_CFLAGS"
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_mlong_double_128ibm" >&5
+$as_echo "$libc_cv_mlong_double_128ibm" >&6; }
+
+if test "$libc_cv_mlong_double_128ibm" = no; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC $CFLAGS supports -mabi=ibmlongdouble" >&5
+$as_echo_n "checking whether $CC $CFLAGS supports -mabi=ibmlongdouble... " >&6; }
+if ${libc_cv_mabi_ibmlongdouble+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ save_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS -mlong-double-128 -mabi=ibmlongdouble"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <float.h>
+int
+main ()
+{
+
+#if LDBL_MANT_DIG != 106
+# error "compiler doesn't implement IBM extended format of long double"
+#endif
+long double foobar (long double x) { return x; }
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ libc_cv_mabi_ibmlongdouble=yes
+else
+ libc_cv_mabi_ibmlongdouble=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ CFLAGS="$save_CFLAGS"
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_mabi_ibmlongdouble" >&5
+$as_echo "$libc_cv_mabi_ibmlongdouble" >&6; }
+
+ if test "$libc_cv_mabi_ibmlongdouble" = yes; then
+ CFLAGS="$CFLAGS -mabi=ibmlongdouble"
+ else
+ as_fn_error $? "this configuration requires -mlong-double-128 IBM extended format support" "$LINENO" 5
+ fi
+fi
+
+ldd_rewrite_script=sysdeps/unix/sysv/linux/powerpc/ldd-rewrite.sed
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/configure.ac b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/configure.ac
new file mode 100644
index 0000000000..b8e5f9ac32
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/configure.ac
@@ -0,0 +1,39 @@
+sinclude(./aclocal.m4)dnl Autoconf lossage
+GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
+# Local configure fragment for sysdeps/unix/sysv/linux/powerpc/.
+
+AC_CACHE_CHECK(whether $CC $CFLAGS -mlong-double-128 uses IBM extended format,
+ libc_cv_mlong_double_128ibm, [dnl
+save_CFLAGS="$CFLAGS"
+CFLAGS="$CFLAGS -mlong-double-128"
+AC_TRY_COMPILE([#include <float.h>], [
+#if LDBL_MANT_DIG != 106
+# error "compiler doesn't implement IBM extended format of long double"
+#endif
+long double foobar (long double x) { return x; }],
+ libc_cv_mlong_double_128ibm=yes,
+ libc_cv_mlong_double_128ibm=no)
+CFLAGS="$save_CFLAGS"])
+
+if test "$libc_cv_mlong_double_128ibm" = no; then
+ AC_CACHE_CHECK(whether $CC $CFLAGS supports -mabi=ibmlongdouble,
+ libc_cv_mabi_ibmlongdouble, [dnl
+ save_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS -mlong-double-128 -mabi=ibmlongdouble"
+ AC_TRY_COMPILE([#include <float.h>], [
+#if LDBL_MANT_DIG != 106
+# error "compiler doesn't implement IBM extended format of long double"
+#endif
+long double foobar (long double x) { return x; }],
+ libc_cv_mabi_ibmlongdouble=yes,
+ libc_cv_mabi_ibmlongdouble=no)
+ CFLAGS="$save_CFLAGS"])
+
+ if test "$libc_cv_mabi_ibmlongdouble" = yes; then
+ CFLAGS="$CFLAGS -mabi=ibmlongdouble"
+ else
+ AC_MSG_ERROR([this configuration requires -mlong-double-128 IBM extended format support])
+ fi
+fi
+
+ldd_rewrite_script=sysdeps/unix/sysv/linux/powerpc/ldd-rewrite.sed
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/dl-brk.S b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/dl-brk.S
new file mode 100644
index 0000000000..eeb96544e3
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/dl-brk.S
@@ -0,0 +1 @@
+#include <brk.S>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/dl-cache.h b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/dl-cache.h
new file mode 100644
index 0000000000..766bba4265
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/dl-cache.h
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/sparc/dl-cache.h>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/dl-static.c b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/dl-static.c
new file mode 100644
index 0000000000..38772797b4
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/dl-static.c
@@ -0,0 +1,84 @@
+/* Variable initialization. PowerPC version.
+ Copyright (C) 2013-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <ldsodefs.h>
+
+#ifdef SHARED
+
+void
+_dl_var_init (void *array[])
+{
+ /* It has to match "variables" below. */
+ enum
+ {
+ DL_PAGESIZE = 0
+ };
+
+ GLRO(dl_pagesize) = *((size_t *) array[DL_PAGESIZE]);
+}
+
+#else
+
+static void *variables[] =
+{
+ &GLRO(dl_pagesize)
+};
+
+static void
+_dl_unprotect_relro (struct link_map *l)
+{
+ ElfW(Addr) start = ((l->l_addr + l->l_relro_addr)
+ & ~(GLRO(dl_pagesize) - 1));
+ ElfW(Addr) end = ((l->l_addr + l->l_relro_addr + l->l_relro_size)
+ & ~(GLRO(dl_pagesize) - 1));
+
+ if (start != end)
+ __mprotect ((void *) start, end - start, PROT_READ | PROT_WRITE);
+}
+
+void
+_dl_static_init (struct link_map *l)
+{
+ struct link_map *rtld_map = l;
+ struct r_scope_elem **scope;
+ const ElfW(Sym) *ref = NULL;
+ lookup_t loadbase;
+ void (*f) (void *[]);
+ size_t i;
+
+ loadbase = _dl_lookup_symbol_x ("_dl_var_init", l, &ref, l->l_local_scope,
+ NULL, 0, 1, NULL);
+
+ for (scope = l->l_local_scope; *scope != NULL; scope++)
+ for (i = 0; i < (*scope)->r_nlist; i++)
+ if ((*scope)->r_list[i] == loadbase)
+ {
+ rtld_map = (*scope)->r_list[i];
+ break;
+ }
+
+ if (ref != NULL)
+ {
+ f = (void (*) (void *[])) DL_SYMBOL_ADDRESS (loadbase, ref);
+ _dl_unprotect_relro (rtld_map);
+ f (variables);
+ _dl_protect_relro (rtld_map);
+ }
+}
+
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/dl-sysdep.c b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/dl-sysdep.c
new file mode 100644
index 0000000000..23f5d5d388
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/dl-sysdep.c
@@ -0,0 +1,33 @@
+/* Operating system support for run-time dynamic linker. Linux/PPC version.
+ Copyright (C) 1997-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <config.h>
+#include <ldsodefs.h>
+
+int __cache_line_size attribute_hidden;
+
+/* Scan the Aux Vector for the "Data Cache Block Size" entry. If found
+ verify that the static extern __cache_line_size is defined by checking
+ for not NULL. If it is defined then assign the cache block size
+ value to __cache_line_size. */
+#define DL_PLATFORM_AUXV \
+ case AT_DCACHEBSIZE: \
+ __cache_line_size = av->a_un.a_val; \
+ break;
+
+#include <sysdeps/unix/sysv/linux/dl-sysdep.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/elision-conf.c b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/elision-conf.c
new file mode 100644
index 0000000000..f631f0a035
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/elision-conf.c
@@ -0,0 +1,83 @@
+/* elision-conf.c: Lock elision tunable parameters.
+ Copyright (C) 2015-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include "config.h"
+#include <pthreadP.h>
+#include <elision-conf.h>
+#include <unistd.h>
+#include <dl-procinfo.h>
+
+/* Reasonable initial tuning values, may be revised in the future.
+ This is a conservative initial value. */
+
+struct elision_config __elision_aconf =
+ {
+ /* How many times to use a non-transactional lock after a transactional
+ failure has occurred because the lock is already acquired. Expressed
+ in number of lock acquisition attempts. */
+ .skip_lock_busy = 3,
+ /* How often to not attempt to use elision if a transaction aborted due
+ to reasons other than other threads' memory accesses. Expressed in
+ number of lock acquisition attempts. */
+ .skip_lock_internal_abort = 3,
+ /* How often to not attempt to use elision if a lock used up all retries
+ without success. Expressed in number of lock acquisition attempts. */
+ .skip_lock_out_of_tbegin_retries = 3,
+ /* How often we retry using elision if there is chance for the transaction
+ to finish execution (e.g., it wasn't aborted due to the lock being
+ already acquired. */
+ .try_tbegin = 3,
+ /* Same as SKIP_LOCK_INTERNAL_ABORT but for trylock. */
+ .skip_trylock_internal_abort = 3,
+ };
+
+/* Force elision for all new locks. This is used to decide whether existing
+ DEFAULT locks should be automatically use elision in pthread_mutex_lock().
+ Disabled for suid programs. Only used when elision is available. */
+
+int __pthread_force_elision attribute_hidden;
+
+/* Initialize elision. */
+
+static void
+elision_init (int argc __attribute__ ((unused)),
+ char **argv __attribute__ ((unused)),
+ char **environ)
+{
+#ifdef ENABLE_LOCK_ELISION
+ int elision_available = (GLRO (dl_hwcap2) & PPC_FEATURE2_HAS_HTM) ? 1 : 0;
+ __pthread_force_elision = __libc_enable_secure ? 0 : elision_available;
+#endif
+ if (!__pthread_force_elision)
+ /* Disable elision on rwlocks. */
+ __elision_aconf.try_tbegin = 0;
+}
+
+#ifdef SHARED
+# define INIT_SECTION ".init_array"
+# define MAYBE_CONST
+#else
+# define INIT_SECTION ".preinit_array"
+# define MAYBE_CONST const
+#endif
+
+void (*MAYBE_CONST __pthread_init_array []) (int, char **, char **)
+ __attribute__ ((section (INIT_SECTION), aligned (sizeof (void *)))) =
+{
+ &elision_init
+};
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/elision-conf.h b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/elision-conf.h
new file mode 100644
index 0000000000..75ffd9741d
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/elision-conf.h
@@ -0,0 +1,42 @@
+/* elision-conf.h: Lock elision tunable parameters.
+ Copyright (C) 2015-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _ELISION_CONF_H
+#define _ELISION_CONF_H 1
+
+#include <pthread.h>
+#include <time.h>
+
+/* Should make sure there is no false sharing on this. */
+struct elision_config
+{
+ int skip_lock_busy;
+ int skip_lock_internal_abort;
+ int skip_lock_out_of_tbegin_retries;
+ int try_tbegin;
+ int skip_trylock_internal_abort;
+} __attribute__ ((__aligned__ (128)));
+
+extern struct elision_config __elision_aconf attribute_hidden;
+
+extern int __pthread_force_elision attribute_hidden;
+
+/* Tell the test suite to test elision for this architecture. */
+#define HAVE_ELISION 1
+
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/elision-lock.c b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/elision-lock.c
new file mode 100644
index 0000000000..f7a5cbcd3a
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/elision-lock.c
@@ -0,0 +1,86 @@
+/* elision-lock.c: Elided pthread mutex lock.
+ Copyright (C) 2015-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <stdio.h>
+#include <pthread.h>
+#include <pthreadP.h>
+#include <lowlevellock.h>
+#include <elision-conf.h>
+#include "htm.h"
+
+#if !defined(LLL_LOCK) && !defined(EXTRAARG)
+/* Make sure the configuration code is always linked in for static
+ libraries. */
+#include "elision-conf.c"
+#endif
+
+#ifndef EXTRAARG
+# define EXTRAARG
+#endif
+#ifndef LLL_LOCK
+# define LLL_LOCK(a,b) lll_lock(a,b), 0
+#endif
+
+#define aconf __elision_aconf
+
+/* Adaptive lock using transactions.
+ By default the lock region is run as a transaction, and when it
+ aborts or the lock is busy the lock adapts itself. */
+
+int
+__lll_lock_elision (int *lock, short *adapt_count, EXTRAARG int pshared)
+{
+ /* adapt_count is accessed concurrently but is just a hint. Thus,
+ use atomic accesses but relaxed MO is sufficient. */
+ if (atomic_load_relaxed (adapt_count) > 0)
+ {
+ goto use_lock;
+ }
+
+ for (int i = aconf.try_tbegin; i > 0; i--)
+ {
+ if (__libc_tbegin (0))
+ {
+ if (*lock == 0)
+ return 0;
+ /* Lock was busy. Fall back to normal locking. */
+ __libc_tabort (_ABORT_LOCK_BUSY);
+ }
+ else
+ {
+ /* A persistent failure indicates that a retry will probably
+ result in another failure. Use normal locking now and
+ for the next couple of calls. */
+ if (_TEXASRU_FAILURE_PERSISTENT (__builtin_get_texasru ()))
+ {
+ if (aconf.skip_lock_internal_abort > 0)
+ atomic_store_relaxed (adapt_count,
+ aconf.skip_lock_internal_abort);
+ goto use_lock;
+ }
+ }
+ }
+
+ /* Fall back to locks for a bit if retries have been exhausted */
+ if (aconf.try_tbegin > 0 && aconf.skip_lock_out_of_tbegin_retries > 0)
+ atomic_store_relaxed (adapt_count,
+ aconf.skip_lock_out_of_tbegin_retries);
+
+use_lock:
+ return LLL_LOCK ((*lock), pshared);
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/elision-timed.c b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/elision-timed.c
new file mode 100644
index 0000000000..95317c96eb
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/elision-timed.c
@@ -0,0 +1,28 @@
+/* elision-timed.c: Lock elision timed lock.
+ Copyright (C) 2015-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <time.h>
+#include <elision-conf.h>
+#include "lowlevellock.h"
+
+#define __lll_lock_elision __lll_timedlock_elision
+#define EXTRAARG const struct timespec *t,
+#undef LLL_LOCK
+#define LLL_LOCK(a, b) lll_timedlock(a, t, b)
+
+#include "elision-lock.c"
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/elision-trylock.c b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/elision-trylock.c
new file mode 100644
index 0000000000..ed244d3f12
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/elision-trylock.c
@@ -0,0 +1,69 @@
+/* elision-trylock.c: Lock eliding trylock for pthreads.
+ Copyright (C) 2015-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <pthread.h>
+#include <pthreadP.h>
+#include <lowlevellock.h>
+#include <elision-conf.h>
+#include "htm.h"
+
+#define aconf __elision_aconf
+
+/* Try to elide a futex trylock. FUTEX is the futex variable. ADAPT_COUNT is
+ the adaptation counter in the mutex. */
+
+int
+__lll_trylock_elision (int *futex, short *adapt_count)
+{
+ /* Implement POSIX semantics by forbiding nesting elided trylocks. */
+ __libc_tabort (_ABORT_NESTED_TRYLOCK);
+
+ /* Only try a transaction if it's worth it. */
+ if (atomic_load_relaxed (adapt_count) > 0)
+ {
+ goto use_lock;
+ }
+
+ if (__libc_tbegin (0))
+ {
+ if (*futex == 0)
+ return 0;
+
+ /* Lock was busy. This is never a nested transaction.
+ End it, and set the adapt count. */
+ __libc_tend (0);
+
+ if (aconf.skip_lock_busy > 0)
+ atomic_store_relaxed (adapt_count, aconf.skip_lock_busy);
+ }
+ else
+ {
+ if (_TEXASRU_FAILURE_PERSISTENT (__builtin_get_texasru ()))
+ {
+ /* A persistent failure indicates that a retry will probably
+ result in another failure. Use normal locking now and
+ for the next couple of calls. */
+ if (aconf.skip_trylock_internal_abort > 0)
+ atomic_store_relaxed (adapt_count,
+ aconf.skip_trylock_internal_abort);
+ }
+ }
+
+use_lock:
+ return lll_trylock (*futex);
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/elision-unlock.c b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/elision-unlock.c
new file mode 100644
index 0000000000..e3fe58e3f1
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/elision-unlock.c
@@ -0,0 +1,43 @@
+/* elision-unlock.c: Commit an elided pthread lock.
+ Copyright (C) 2015-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include "pthreadP.h"
+#include "lowlevellock.h"
+#include "htm.h"
+
+int
+__lll_unlock_elision (int *lock, short *adapt_count, int pshared)
+{
+ /* When the lock was free we're in a transaction. */
+ if (*lock == 0)
+ __libc_tend (0);
+ else
+ {
+ /* Update adapt_count in the critical section to prevent a
+ write-after-destroy error as mentioned in BZ 20822. The
+ following update of adapt_count has to be contained within
+ the critical region of the fall-back lock in order to not violate
+ the mutex destruction requirements. */
+ short __tmp = atomic_load_relaxed (adapt_count);
+ if (__tmp > 0)
+ atomic_store_relaxed (adapt_count, __tmp - 1);
+
+ lll_unlock ((*lock), pshared);
+ }
+ return 0;
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/force-elision.h b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/force-elision.h
new file mode 100644
index 0000000000..318f7915c7
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/force-elision.h
@@ -0,0 +1,28 @@
+/* force-elision.h: Automatic enabling of elision for mutexes
+ Copyright (C) 2015-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifdef ENABLE_LOCK_ELISION
+/* Automatically enable elision for existing user lock kinds. */
+#define FORCE_ELISION(m, s) \
+ if (__pthread_force_elision \
+ && (m->__data.__kind & PTHREAD_MUTEX_ELISION_FLAGS_NP) == 0) \
+ { \
+ mutex->__data.__kind |= PTHREAD_MUTEX_ELISION_NP; \
+ s; \
+ }
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/get_clockfreq.c b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/get_clockfreq.c
new file mode 100644
index 0000000000..b8d01d8ca6
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/get_clockfreq.c
@@ -0,0 +1,107 @@
+/* Get frequency of the system processor. powerpc/Linux 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 <ctype.h>
+#include <fcntl.h>
+#include <stdint.h>
+#include <string.h>
+#include <unistd.h>
+#include <sysdep.h>
+#include <libc-vdso.h>
+#include <not-cancel.h>
+
+hp_timing_t
+__get_clockfreq (void)
+{
+ hp_timing_t result = 0L;
+
+#ifdef SHARED
+ /* The vDSO does not return an error (it clear cr0.so on returning). */
+ INTERNAL_SYSCALL_DECL (err);
+ result =
+ INTERNAL_VSYSCALL_NO_SYSCALL_FALLBACK (get_tbfreq, err, uint64_t, 0);
+#else
+ /* We read the information from the /proc filesystem. /proc/cpuinfo
+ contains at least one line like:
+ timebase : 33333333
+ We search for this line and convert the number into an integer. */
+ int fd = open_not_cancel_2 ("/proc/cpuinfo", O_RDONLY);
+ if (__glibc_likely (fd != -1))
+ return result;
+
+ /* The timebase will be in the 1st 1024 bytes for systems with up
+ to 8 processors. If the first read returns less then 1024
+ bytes read, we have the whole cpuinfo and can start the scan.
+ Otherwise we will have to read more to insure we have the
+ timebase value in the scan. */
+ char buf[1024];
+ ssize_t n;
+
+ n = __read_nocancel (fd, buf, sizeof (buf));
+ if (n == sizeof (buf))
+ {
+ /* We are here because the 1st read returned exactly sizeof
+ (buf) bytes. This implies that we are not at EOF and may
+ not have read the timebase value yet. So we need to read
+ more bytes until we know we have EOF. We copy the lower
+ half of buf to the upper half and read sizeof (buf)/2
+ bytes into the lower half of buf and repeat until we
+ reach EOF. We can assume that the timebase will be in
+ the last 512 bytes of cpuinfo, so two 512 byte half_bufs
+ will be sufficient to contain the timebase and will
+ handle the case where the timebase spans the half_buf
+ boundry. */
+ const ssize_t half_buf = sizeof (buf) / 2;
+ while (n >= half_buf)
+ {
+ memcpy (buf, buf + half_buf, half_buf);
+ n = __read_nocancel (fd, buf + half_buf, half_buf);
+ }
+ if (n >= 0)
+ n += half_buf;
+ }
+ __close_nocancel (fd);
+
+ if (__glibc_likely (n > 0))
+ {
+ char *mhz = memmem (buf, n, "timebase", 7);
+
+ if (__glibc_likely (mhz != NULL))
+ {
+ char *endp = buf + n;
+
+ /* Search for the beginning of the string. */
+ while (mhz < endp && (*mhz < '0' || *mhz > '9') && *mhz != '\n')
+ ++mhz;
+
+ while (mhz < endp && *mhz != '\n')
+ {
+ if (*mhz >= '0' && *mhz <= '9')
+ {
+ result *= 10;
+ result += *mhz - '0';
+ }
+
+ ++mhz;
+ }
+ }
+ }
+#endif
+
+ return result;
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/get_timebase_freq.c b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/get_timebase_freq.c
new file mode 100644
index 0000000000..a905d5cd5f
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/get_timebase_freq.c
@@ -0,0 +1,27 @@
+/* Get the frequency of the time base.
+ 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 <stdint.h>
+#include <libc-internal.h>
+
+uint64_t
+__get_timebase_freq (void)
+{
+ return (uint64_t) __get_clockfreq ();
+}
+weak_alias (__get_timebase_freq, __ppc_get_timebase_freq)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/getdents64.c b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/getdents64.c
new file mode 100644
index 0000000000..0c75fb5a06
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/getdents64.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/i386/getdents64.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/getmsg.c b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/getmsg.c
new file mode 100644
index 0000000000..3a1fa08525
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/getmsg.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/i386/getmsg.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/gettimeofday.c b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/gettimeofday.c
new file mode 100644
index 0000000000..6f09fa20d3
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/gettimeofday.c
@@ -0,0 +1,85 @@
+/* Copyright (C) 2005-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#if defined SHARED && !defined __powerpc64__
+# define __gettimeofday __redirect___gettimeofday
+#else
+# define __redirect___gettimeofday __gettimeofday
+#endif
+
+#include <sys/time.h>
+
+#ifdef SHARED
+
+# include <dl-vdso.h>
+# include <libc-vdso.h>
+# include <dl-machine.h>
+
+# ifndef __powerpc64__
+# undef __gettimeofday
+
+int
+__gettimeofday_vsyscall (struct timeval *tv, struct timezone *tz)
+{
+ return INLINE_VSYSCALL (gettimeofday, 2, tv, tz);
+}
+
+/* __GI___gettimeofday is defined as hidden and for ppc32 it enables the
+ compiler make a local call (symbol@local) for internal GLIBC usage. It
+ means the PLT won't be used and the ifunc resolver will be called directly.
+ For ppc64 a call to a function in another translation unit might use a
+ different toc pointer thus disallowing direct branchess and making internal
+ ifuncs calls safe. */
+# undef libc_hidden_def
+# define libc_hidden_def(name) \
+ __hidden_ver1 (__gettimeofday_vsyscall, __GI___gettimeofday, \
+ __gettimeofday_vsyscall);
+
+# endif /* !__powerpc64__ */
+
+static int
+__gettimeofday_syscall (struct timeval *tv, struct timezone *tz)
+{
+ return INLINE_SYSCALL (gettimeofday, 2, tv, tz);
+}
+
+# define INIT_ARCH() \
+ PREPARE_VERSION (linux2615, "LINUX_2.6.15", 123718565); \
+ void *vdso_gettimeofday = _dl_vdso_vsym ("__kernel_gettimeofday", &linux2615);
+
+/* If the vDSO is not available we fall back syscall. */
+libc_ifunc_hidden (__redirect___gettimeofday, __gettimeofday,
+ vdso_gettimeofday
+ ? VDSO_IFUNC_RET (vdso_gettimeofday)
+ : (void *) __gettimeofday_syscall);
+libc_hidden_def (__gettimeofday)
+
+#else
+
+# include <sysdep.h>
+# include <errno.h>
+
+int
+__gettimeofday (struct timeval *tv, struct timezone *tz)
+{
+ return INLINE_SYSCALL (gettimeofday, 2, tv, tz);
+}
+libc_hidden_def (__gettimeofday)
+
+#endif
+weak_alias (__gettimeofday, gettimeofday)
+libc_hidden_weak (gettimeofday)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/htm.h b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/htm.h
new file mode 100644
index 0000000000..e8e9688b12
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/htm.h
@@ -0,0 +1,171 @@
+/* Shared HTM header. Emulate transactional execution facility intrinsics for
+ compilers and assemblers that do not support the intrinsics and instructions
+ yet.
+
+ Copyright (C) 2015-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _HTM_H
+#define _HTM_H 1
+
+#ifdef __ASSEMBLER__
+
+/* tbegin. */
+.macro TBEGIN
+ .long 0x7c00051d
+.endm
+
+/* tend. 0 */
+.macro TEND
+ .long 0x7c00055d
+.endm
+
+/* tabort. code */
+.macro TABORT code
+ .byte 0x7c
+ .byte \code
+ .byte 0x07
+ .byte 0x1d
+.endm
+
+/*"TEXASR - Transaction EXception And Summary Register"
+ mfspr %dst,130 */
+.macro TEXASR dst
+ mfspr \dst,130
+.endm
+
+#else
+
+#include <endian.h>
+
+/* Official HTM intrinsics interface matching GCC, but works
+ on older GCC compatible compilers and binutils.
+ We should somehow detect if the compiler supports it, because
+ it may be able to generate slightly better code. */
+
+#define TBEGIN ".long 0x7c00051d"
+#define TEND ".long 0x7c00055d"
+#if __BYTE_ORDER == __LITTLE_ENDIAN
+# define TABORT ".byte 0x1d,0x07,%1,0x7c"
+#else
+# define TABORT ".byte 0x7c,%1,0x07,0x1d"
+#endif
+
+#define __force_inline inline __attribute__((__always_inline__))
+
+#ifndef __HTM__
+
+#define _TEXASRU_EXTRACT_BITS(TEXASR,BITNUM,SIZE) \
+ (((TEXASR) >> (31-(BITNUM))) & ((1<<(SIZE))-1))
+#define _TEXASRU_FAILURE_PERSISTENT(TEXASRU) \
+ _TEXASRU_EXTRACT_BITS(TEXASRU, 7, 1)
+
+#define _tbegin() \
+ ({ unsigned int __ret; \
+ asm volatile ( \
+ TBEGIN "\t\n" \
+ "mfcr %0\t\n" \
+ "rlwinm %0,%0,3,1\t\n" \
+ "xori %0,%0,1\t\n" \
+ : "=r" (__ret) : \
+ : "cr0", "memory"); \
+ __ret; \
+ })
+
+#define _tend() \
+ ({ unsigned int __ret; \
+ asm volatile ( \
+ TEND "\t\n" \
+ "mfcr %0\t\n" \
+ "rlwinm %0,%0,3,1\t\n" \
+ "xori %0,%0,1\t\n" \
+ : "=r" (__ret) : \
+ : "cr0", "memory"); \
+ __ret; \
+ })
+
+#define _tabort(__code) \
+ ({ unsigned int __ret; \
+ asm volatile ( \
+ TABORT "\t\n" \
+ "mfcr %0\t\n" \
+ "rlwinm %0,%0,3,1\t\n" \
+ "xori %0,%0,1\t\n" \
+ : "=r" (__ret) : "r" (__code) \
+ : "cr0", "memory"); \
+ __ret; \
+ })
+
+#define _texasru() \
+ ({ unsigned long __ret; \
+ asm volatile ( \
+ "mfspr %0,131\t\n" \
+ : "=r" (__ret)); \
+ __ret; \
+ })
+
+#define __libc_tbegin(tdb) _tbegin ()
+#define __libc_tend(nested) _tend ()
+#define __libc_tabort(abortcode) _tabort (abortcode)
+#define __builtin_get_texasru() _texasru ()
+
+#else
+# include <htmintrin.h>
+
+# ifdef __TM_FENCE__
+ /* New GCC behavior. */
+# define __libc_tbegin(R) __builtin_tbegin (R)
+# define __libc_tend(R) __builtin_tend (R)
+# define __libc_tabort(R) __builtin_tabort (R)
+# else
+ /* Workaround an old GCC behavior. Earlier releases of GCC 4.9 and 5.0,
+ didn't use to treat __builtin_tbegin, __builtin_tend and
+ __builtin_tabort as compiler barriers, moving instructions into and
+ out the transaction.
+ Remove this when glibc drops support for GCC 5.0. */
+# define __libc_tbegin(R) \
+ ({ __asm__ volatile("" ::: "memory"); \
+ unsigned int __ret = __builtin_tbegin (R); \
+ __asm__ volatile("" ::: "memory"); \
+ __ret; \
+ })
+# define __libc_tabort(R) \
+ ({ __asm__ volatile("" ::: "memory"); \
+ unsigned int __ret = __builtin_tabort (R); \
+ __asm__ volatile("" ::: "memory"); \
+ __ret; \
+ })
+# define __libc_tend(R) \
+ ({ __asm__ volatile("" ::: "memory"); \
+ unsigned int __ret = __builtin_tend (R); \
+ __asm__ volatile("" ::: "memory"); \
+ __ret; \
+ })
+# endif /* __TM_FENCE__ */
+#endif /* __HTM__ */
+
+#endif /* __ASSEMBLER__ */
+
+/* Definitions used for TEXASR Failure code (bits 0:7). If the failure
+ should be persistent, the abort code must be odd. 0xd0 through 0xff
+ are reserved for the kernel and potential hypervisor. */
+#define _ABORT_PERSISTENT 0x01 /* An unspecified persistent abort. */
+#define _ABORT_LOCK_BUSY 0x34 /* Busy lock, not persistent. */
+#define _ABORT_NESTED_TRYLOCK (0x32 | _ABORT_PERSISTENT)
+#define _ABORT_SYSCALL (0x30 | _ABORT_PERSISTENT)
+
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/init-first.c b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/init-first.c
new file mode 100644
index 0000000000..64b7589c1f
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/init-first.c
@@ -0,0 +1,85 @@
+/* Initialization code run first thing by the ELF startup code. Linux/PowerPC.
+ Copyright (C) 2007-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifdef SHARED
+# include <dl-vdso.h>
+# include <libc-vdso.h>
+
+int (*VDSO_SYMBOL(gettimeofday)) (struct timeval *, void *)
+ attribute_hidden;
+int (*VDSO_SYMBOL(clock_gettime)) (clockid_t, struct timespec *);
+int (*VDSO_SYMBOL(clock_getres)) (clockid_t, struct timespec *);
+unsigned long long (*VDSO_SYMBOL(get_tbfreq)) (void);
+int (*VDSO_SYMBOL(getcpu)) (unsigned *, unsigned *);
+time_t (*VDSO_SYMBOL(time)) (time_t *);
+
+#if defined(__PPC64__) || defined(__powerpc64__)
+void *VDSO_SYMBOL(sigtramp_rt64);
+#else
+void *VDSO_SYMBOL(sigtramp32);
+void *VDSO_SYMBOL(sigtramp_rt32);
+#endif
+
+static inline void
+_libc_vdso_platform_setup (void)
+{
+ PREPARE_VERSION (linux2615, "LINUX_2.6.15", 123718565);
+
+ void *p = _dl_vdso_vsym ("__kernel_gettimeofday", &linux2615);
+ PTR_MANGLE (p);
+ VDSO_SYMBOL (gettimeofday) = p;
+
+ p = _dl_vdso_vsym ("__kernel_clock_gettime", &linux2615);
+ PTR_MANGLE (p);
+ VDSO_SYMBOL (clock_gettime) = p;
+
+ p = _dl_vdso_vsym ("__kernel_clock_getres", &linux2615);
+ PTR_MANGLE (p);
+ VDSO_SYMBOL (clock_getres) = p;
+
+ p = _dl_vdso_vsym ("__kernel_get_tbfreq", &linux2615);
+ PTR_MANGLE (p);
+ VDSO_SYMBOL (get_tbfreq) = p;
+
+ p = _dl_vdso_vsym ("__kernel_getcpu", &linux2615);
+ PTR_MANGLE (p);
+ VDSO_SYMBOL (getcpu) = p;
+
+ p = _dl_vdso_vsym ("__kernel_time", &linux2615);
+ PTR_MANGLE (p);
+ VDSO_SYMBOL (time) = p;
+
+ /* PPC64 uses only one signal trampoline symbol, while PPC32 will use
+ two depending if SA_SIGINFO is used (__kernel_sigtramp_rt32) or not
+ (__kernel_sigtramp32).
+ There is no need to pointer mangle these symbol because they will
+ used only for pointer comparison. */
+#if defined(__PPC64__) || defined(__powerpc64__)
+ VDSO_SYMBOL(sigtramp_rt64) = _dl_vdso_vsym ("__kernel_sigtramp_rt64",
+ &linux2615);
+#else
+ VDSO_SYMBOL(sigtramp32) = _dl_vdso_vsym ("__kernel_sigtramp32", &linux2615);
+ VDSO_SYMBOL(sigtramp_rt32) = _dl_vdso_vsym ("__kernel_sigtramp_rt32",
+ &linux2615);
+#endif
+}
+
+# define VDSO_SETUP _libc_vdso_platform_setup
+#endif
+
+#include <csu/init-first.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/ioctl.c b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/ioctl.c
new file mode 100644
index 0000000000..e2e3d3357f
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/ioctl.c
@@ -0,0 +1,64 @@
+/* Copyright (C) 1998-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <stdarg.h>
+#include <termios.h>
+#include <unistd.h>
+#include <sys/ioctl.h>
+#include <sysdep.h>
+
+/* The user-visible size of struct termios has changed. Catch ioctl calls
+ using the new-style struct termios, and translate them to old-style. */
+
+int
+__ioctl (int fd, unsigned long int request, ...)
+{
+ void *arg;
+ va_list ap;
+ int result;
+
+ va_start (ap, request);
+ arg = va_arg (ap, void *);
+
+ switch (request)
+ {
+ case TCGETS:
+ result = __tcgetattr (fd, (struct termios *) arg);
+ break;
+
+ case TCSETS:
+ result = tcsetattr (fd, TCSANOW, (struct termios *) arg);
+ break;
+
+ case TCSETSW:
+ result = tcsetattr (fd, TCSADRAIN, (struct termios *) arg);
+ break;
+
+ case TCSETSF:
+ result = tcsetattr (fd, TCSAFLUSH, (struct termios *) arg);
+ break;
+
+ default:
+ result = INLINE_SYSCALL (ioctl, 3, fd, request, arg);
+ break;
+ }
+
+ va_end (ap);
+
+ return result;
+}
+weak_alias (__ioctl, ioctl)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/ipc_priv.h b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/ipc_priv.h
new file mode 100644
index 0000000000..849190c67b
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/ipc_priv.h
@@ -0,0 +1,39 @@
+/* Old SysV permission definition for Linux. PowerPC version.
+ Copyright (C) 1995-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sys/ipc.h> /* For __key_t */
+
+#define __IPC_64 0x100
+
+struct __old_ipc_perm
+{
+ __key_t __key; /* Key. */
+ unsigned int uid; /* Owner's user ID. */
+ unsigned int gid; /* Owner's group ID. */
+ unsigned int cuid; /* Creator's user ID. */
+ unsigned int cgid; /* Creator's group ID. */
+ unsigned int mode; /* Read/write permission. */
+ unsigned short int __seq; /* Sequence number. */
+};
+
+#define SEMCTL_ARG_ADDRESS(__arg) &__arg.array
+
+#define MSGRCV_ARGS(__msgp, __msgtyp) \
+ ((long int []){ (long int) __msgp, __msgtyp })
+
+#include <ipc_ops.h>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/kernel-features.h b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/kernel-features.h
new file mode 100644
index 0000000000..e026394422
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/kernel-features.h
@@ -0,0 +1,51 @@
+/* Set flags signalling availability of kernel features based on given
+ kernel version number. PowerPC version.
+ Copyright (C) 1999-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+/* PowerPC uses socketcall. */
+#define __ASSUME_SOCKETCALL 1
+
+/* New syscalls added for PowerPC in 2.6.37. */
+#define __ASSUME_SOCKET_SYSCALL 1
+#define __ASSUME_BIND_SYSCALL 1
+#define __ASSUME_CONNECT_SYSCALL 1
+#define __ASSUME_LISTEN_SYSCALL 1
+#define __ASSUME_GETSOCKNAME_SYSCALL 1
+#define __ASSUME_GETPEERNAME_SYSCALL 1
+#define __ASSUME_SOCKETPAIR_SYSCALL 1
+#define __ASSUME_SEND_SYSCALL 1
+#define __ASSUME_RECV_SYSCALL 1
+#define __ASSUME_SHUTDOWN_SYSCALL 1
+#define __ASSUME_GETSOCKOPT_SYSCALL 1
+#define __ASSUME_SETSOCKOPT_SYSCALL 1
+
+/* Define this if your 32-bit syscall API requires 64-bit register
+ pairs to start with an even-number register. */
+#ifndef __powerpc64__
+# define __ASSUME_ALIGNED_REGISTER_PAIRS 1
+#endif
+
+/* powerpc compat fadvise64_64 reorganize the syscall argument. */
+#ifndef __powerpc64__
+# define __ASSUME_FADVISE64_64_6ARG 1
+#endif
+
+#include_next <kernel-features.h>
+
+/* powerpc only supports ipc syscall. */
+#undef __ASSUME_DIRECT_SYSVIPC_SYSCALLS
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/kernel_termios.h b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/kernel_termios.h
new file mode 100644
index 0000000000..ec80de3f50
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/kernel_termios.h
@@ -0,0 +1,53 @@
+/* Copyright (C) 1997-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _KERNEL_TERMIOS_H
+#define _KERNEL_TERMIOS_H 1
+
+/* We need the definition of tcflag_t, cc_t, and speed_t. */
+#include <termios.h>
+
+#define __KERNEL_NCCS 19
+
+struct __kernel_termios
+ {
+ tcflag_t c_iflag; /* input mode flags */
+ tcflag_t c_oflag; /* output mode flags */
+ tcflag_t c_cflag; /* control mode flags */
+ tcflag_t c_lflag; /* local mode flags */
+ cc_t c_cc[__KERNEL_NCCS]; /* control characters */
+ cc_t c_line; /* line discipline */
+ speed_t c_ispeed; /* input speed */
+ speed_t c_ospeed; /* output speed */
+ };
+
+#define _HAVE_C_ISPEED 1
+#define _HAVE_C_OSPEED 1
+
+/* We have the kernel termios structure, so we can presume this code knows
+ what it's doing... */
+
+#undef TCGETS
+#undef TCSETS
+#undef TCSETSW
+#undef TCSETSF
+#define TCGETS _IOR ('t', 19, struct __kernel_termios)
+#define TCSETS _IOW ('t', 20, struct __kernel_termios)
+#define TCSETSW _IOW ('t', 21, struct __kernel_termios)
+#define TCSETSF _IOW ('t', 22, struct __kernel_termios)
+
+#endif /* kernel_termios.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/ldconfig.h b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/ldconfig.h
new file mode 100644
index 0000000000..178e6e6236
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/ldconfig.h
@@ -0,0 +1,27 @@
+/* ldconfig default paths and libraries. Linux/PowerPC version.
+ Copyright (C) 2002-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdeps/generic/ldconfig.h>
+
+#define SYSDEP_KNOWN_INTERPRETER_NAMES \
+ { "/lib/ld.so.1", FLAG_ELF_LIBC6 }, \
+ { "/lib64/ld64.so.1", FLAG_ELF_LIBC6 }, \
+ { "/lib64/ld64.so.2", FLAG_ELF_LIBC6 },
+#define SYSDEP_KNOWN_LIBRARY_NAMES \
+ { "libc.so.6", FLAG_ELF_LIBC6 }, \
+ { "libm.so.6", FLAG_ELF_LIBC6 },
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/ldd-rewrite.sed b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/ldd-rewrite.sed
new file mode 100644
index 0000000000..9039b69548
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/ldd-rewrite.sed
@@ -0,0 +1,15 @@
+/LD_TRACE_LOADED_OBJECTS=1/a\
+add_env="$add_env LD_LIBRARY_VERSION=\\$verify_out"
+
+# ldd is generated from elf/ldd.bash.in with the name
+# of ld.so as generated in Makeconfig
+
+# that name is replaced by a pair referring to both
+# the 32bit and 64bit dynamic linker.
+
+# /lib(64|)/*(64|).so* is replaced with /lib/*.so* and /lib64/*64.so*
+# this works for /lib64/ld64.so.x and /lib/ld.so.x as input
+s_lib64_lib_
+s_64\.so_\.so_
+s_^RTLDLIST=\(.*lib\)\(/[^/]*\)\(\.so\.[0-9.]*\)[[:blank:]]*$_RTLDLIST="\1\2\3 \164\264\3"_
+
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/ldsodefs.h b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/ldsodefs.h
new file mode 100644
index 0000000000..d51a560b6a
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/ldsodefs.h
@@ -0,0 +1,33 @@
+/* Run-time dynamic linker data structures for loaded ELF shared objects.
+ PowerPC version.
+ Copyright (C) 2013-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _LDSODEFS_H
+
+/* Get the real definitions. */
+#include_next <ldsodefs.h>
+
+/* Now define our stuff. */
+
+/* We need special support to initialize DSO loaded for statically linked
+ binaries. */
+extern void _dl_static_init (struct link_map *map);
+#undef DL_STATIC_INIT
+#define DL_STATIC_INIT(map) _dl_static_init (map)
+
+#endif /* ldsodefs.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/libc-start.c b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/libc-start.c
new file mode 100644
index 0000000000..ad036c1e4b
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/libc-start.c
@@ -0,0 +1,105 @@
+/* Copyright (C) 1998-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <stdlib.h>
+#include <unistd.h>
+#include <ldsodefs.h>
+#include <sysdep.h>
+
+#ifndef SHARED
+#include <hwcapinfo.h>
+#endif
+
+int __cache_line_size attribute_hidden;
+/* The main work is done in the generic function. */
+#define LIBC_START_MAIN generic_start_main
+#define LIBC_START_DISABLE_INLINE
+#define LIBC_START_MAIN_AUXVEC_ARG
+#define MAIN_AUXVEC_ARG
+#define INIT_MAIN_ARGS
+#include <csu/libc-start.c>
+
+struct startup_info
+ {
+ void *sda_base;
+ int (*main) (int, char **, char **, void *);
+ int (*init) (int, char **, char **, void *);
+ void (*fini) (void);
+ };
+
+int
+__libc_start_main (int argc, char **argv,
+ char **ev,
+ ElfW (auxv_t) * auxvec,
+ void (*rtld_fini) (void),
+ struct startup_info *stinfo,
+ char **stack_on_entry)
+{
+ /* the PPC SVR4 ABI says that the top thing on the stack will
+ be a NULL pointer, so if not we assume that we're being called
+ as a statically-linked program by Linux... */
+ if (*stack_on_entry != NULL)
+ {
+ char **temp;
+ /* ...in which case, we have argc as the top thing on the
+ stack, followed by argv (NULL-terminated), envp (likewise),
+ and the auxiliary vector. */
+ /* 32/64-bit agnostic load from stack */
+ argc = *(long int *) stack_on_entry;
+ argv = stack_on_entry + 1;
+ ev = argv + argc + 1;
+#ifdef HAVE_AUX_VECTOR
+ temp = ev;
+ while (*temp != NULL)
+ ++temp;
+ auxvec = (ElfW (auxv_t) *)++ temp;
+#endif
+ rtld_fini = NULL;
+ }
+
+ /* Initialize the __cache_line_size variable from the aux vector. For the
+ static case, we also need _dl_hwcap, _dl_hwcap2 and _dl_platform, so we
+ can call __tcb_parse_hwcap_and_convert_at_platform (). */
+ for (ElfW (auxv_t) * av = auxvec; av->a_type != AT_NULL; ++av)
+ switch (av->a_type)
+ {
+ case AT_DCACHEBSIZE:
+ __cache_line_size = av->a_un.a_val;
+ break;
+#ifndef SHARED
+ case AT_HWCAP:
+ _dl_hwcap = (unsigned long int) av->a_un.a_val;
+ break;
+ case AT_HWCAP2:
+ _dl_hwcap2 = (unsigned long int) av->a_un.a_val;
+ break;
+ case AT_PLATFORM:
+ _dl_platform = (void *) av->a_un.a_val;
+ break;
+#endif
+ }
+
+ /* Initialize hwcap/hwcap2 and platform data so it can be copied to
+ the TCB later in __libc_setup_tls (). (static case only). */
+#ifndef SHARED
+ __tcb_parse_hwcap_and_convert_at_platform ();
+#endif
+
+ return generic_start_main (stinfo->main, argc, argv, auxvec,
+ stinfo->init, stinfo->fini, rtld_fini,
+ stack_on_entry);
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/libc-vdso.h b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/libc-vdso.h
new file mode 100644
index 0000000000..fb9509e2e7
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/libc-vdso.h
@@ -0,0 +1,74 @@
+/* Resolve function pointers to VDSO functions.
+ Copyright (C) 2005-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+
+#ifndef _LIBC_VDSO_H
+#define _LIBC_VDSO_H
+
+#ifdef SHARED
+
+#include <sysdep-vdso.h>
+
+extern int (*VDSO_SYMBOL(gettimeofday)) (struct timeval *, void *)
+ attribute_hidden;
+extern int (*VDSO_SYMBOL(clock_gettime)) (clockid_t, struct timespec *);
+extern int (*VDSO_SYMBOL(clock_getres)) (clockid_t, struct timespec *);
+extern unsigned long long (*VDSO_SYMBOL(get_tbfreq)) (void);
+extern int (*VDSO_SYMBOL(getcpu)) (unsigned *, unsigned *);
+extern time_t (*VDSO_SYMBOL(time)) (time_t *);
+
+#if defined(__PPC64__) || defined(__powerpc64__)
+extern void *VDSO_SYMBOL(sigtramp_rt64);
+#else
+extern void *VDSO_SYMBOL(sigtramp32);
+extern void *VDSO_SYMBOL(sigtramp_rt32);
+#endif
+
+#if (defined(__PPC64__) || defined(__powerpc64__)) && _CALL_ELF != 2
+/* The correct solution is for _dl_vdso_vsym to return the address of the OPD
+ for the kernel VDSO function. That address would then be stored in the
+ __vdso_* variables and returned as the result of the IFUNC resolver function.
+ Yet, the kernel does not contain any OPD entries for the VDSO functions
+ (incomplete implementation). However, PLT relocations for IFUNCs still expect
+ the address of an OPD to be returned from the IFUNC resolver function (since
+ PLT entries on PPC64 are just copies of OPDs). The solution for now is to
+ create an artificial static OPD for each VDSO function returned by a resolver
+ function. The TOC value is set to a non-zero value to avoid triggering lazy
+ symbol resolution via .glink0/.plt0 for a zero TOC (requires thread-safe PLT
+ sequences) when the dynamic linker isn't prepared for it e.g. RTLD_NOW. None
+ of the kernel VDSO routines use the TOC or AUX values so any non-zero value
+ will work. Note that function pointer comparisons will not use this artificial
+ static OPD since those are resolved via ADDR64 relocations and will point at
+ the non-IFUNC default OPD for the symbol. Lastly, because the IFUNC relocations
+ are processed immediately at startup the resolver functions and this code need
+ not be thread-safe, but if the caller writes to a PLT slot it must do so in a
+ thread-safe manner with all the required barriers. */
+#define VDSO_IFUNC_RET(value) \
+ ({ \
+ static Elf64_FuncDesc vdso_opd = { .fd_toc = ~0x0 }; \
+ vdso_opd.fd_func = (Elf64_Addr)value; \
+ &vdso_opd; \
+ })
+
+#else
+#define VDSO_IFUNC_RET(value) ((void *) (value))
+#endif
+
+#endif
+
+#endif /* _LIBC_VDSO_H */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/lowlevellock.h b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/lowlevellock.h
new file mode 100644
index 0000000000..7e81b8f198
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/lowlevellock.h
@@ -0,0 +1,48 @@
+/* PowerPC specific lock definitions.
+ Copyright (C) 2015-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _POWERPC_LOWLEVELLOCK_H
+#define _POWERPC_LOWLEVELLOCK_H 1
+
+#include <sysdeps/nptl/lowlevellock.h>
+
+/* Transactional lock elision definitions. */
+extern int __lll_timedlock_elision
+ (int *futex, short *adapt_count, const struct timespec *timeout, int private)
+ attribute_hidden;
+
+#define lll_timedlock_elision(futex, adapt_count, timeout, private) \
+ __lll_timedlock_elision(&(futex), &(adapt_count), timeout, private)
+
+extern int __lll_lock_elision (int *futex, short *adapt_count, int private)
+ attribute_hidden;
+
+extern int __lll_unlock_elision (int *lock, short *adapt_count, int private)
+ attribute_hidden;
+
+extern int __lll_trylock_elision(int *lock, short *adapt_count)
+ attribute_hidden;
+
+#define lll_lock_elision(futex, adapt_count, private) \
+ __lll_lock_elision (&(futex), &(adapt_count), private)
+#define lll_unlock_elision(futex, adapt_count, private) \
+ __lll_unlock_elision (&(futex), &(adapt_count), private)
+#define lll_trylock_elision(futex, adapt_count) \
+ __lll_trylock_elision (&(futex), &(adapt_count))
+
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/nldbl-abi.h b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/nldbl-abi.h
new file mode 100644
index 0000000000..bd985cc59c
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/nldbl-abi.h
@@ -0,0 +1,8 @@
+/* ABI version for long double switch.
+ This is used by the Versions and math_ldbl_opt.h files in
+ sysdeps/ieee754/ldbl-opt/. It gives the ABI version where
+ long double == double was replaced with proper long double
+ for libm *l functions and libc functions using long double. */
+
+#define NLDBL_VERSION GLIBC_2.4
+#define LONG_DOUBLE_COMPAT_VERSION GLIBC_2_4
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/405/Implies b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/405/Implies
new file mode 100644
index 0000000000..70c0d2eda3
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/405/Implies
@@ -0,0 +1,2 @@
+powerpc/powerpc32/405/fpu
+powerpc/powerpc32/405
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/440/Implies b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/440/Implies
new file mode 100644
index 0000000000..c3e52c5504
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/440/Implies
@@ -0,0 +1,2 @@
+powerpc/powerpc32/440/fpu
+powerpc/powerpc32/440
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/464/Implies b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/464/Implies
new file mode 100644
index 0000000000..2829f9ccaf
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/464/Implies
@@ -0,0 +1,2 @@
+powerpc/powerpc32/464/fpu
+powerpc/powerpc32/464
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/476/Implies b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/476/Implies
new file mode 100644
index 0000000000..80f917079e
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/476/Implies
@@ -0,0 +1,2 @@
+powerpc/powerpc32/476/fpu
+powerpc/powerpc32/476
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/970/Implies b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/970/Implies
new file mode 100644
index 0000000000..0c018834af
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/970/Implies
@@ -0,0 +1,2 @@
+powerpc/powerpc32/970/fpu
+powerpc/powerpc32/970
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/Makefile b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/Makefile
new file mode 100644
index 0000000000..1f45659ed1
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/Makefile
@@ -0,0 +1,10 @@
+# See Makeconfig regarding the use of default-abi.
+default-abi := 32
+
+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/powerpc/powerpc32/Versions b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/Versions
new file mode 100644
index 0000000000..e13d20b93b
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/Versions
@@ -0,0 +1,46 @@
+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.2 {
+ # functions used in other libraries
+ __xstat64; __fxstat64; __lxstat64;
+
+ # g*
+ glob64;
+
+ # New rlimit interface
+ getrlimit; setrlimit; getrlimit64; setrlimit64;
+
+ # r*
+ readdir64; readdir64_r;
+
+ # s*
+ scandir64;
+ }
+ GLIBC_2.3.3 {
+ posix_fadvise64; posix_fallocate64;
+ setcontext; getcontext; swapcontext; makecontext;
+ }
+ GLIBC_2.3.4 {
+ setcontext; getcontext; swapcontext; makecontext;
+ }
+ GLIBC_2.11 {
+ fallocate64;
+ }
+ GLIBC_2.17 {
+ __ppc_get_timebase_freq;
+ }
+}
+
+libpthread {
+ GLIBC_2.3.4 {
+ longjmp; siglongjmp;
+ }
+ GLIBC_2.6 {
+ # Changed PTHREAD_STACK_MIN.
+ pthread_attr_setstack; pthread_attr_setstacksize;
+ }
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/____longjmp_chk.S b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/____longjmp_chk.S
new file mode 100644
index 0000000000..f61398c6b2
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/____longjmp_chk.S
@@ -0,0 +1,76 @@
+/* Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#include <rtld-global-offsets.h>
+
+ .section .rodata.str1.4,"aMS",@progbits,1
+ .align 2
+.LC0:
+ .string "longjmp causes uninitialized stack frame"
+ .text
+
+#define __longjmp_symbol ____longjmp_chk
+
+#ifdef PIC
+# define LOAD_ARG \
+ SETUP_GOT_ACCESS(r3,got_label2); \
+ addis r3,r3,_GLOBAL_OFFSET_TABLE_-got_label2@ha; \
+ addi r3,r3,_GLOBAL_OFFSET_TABLE_-got_label2@l; \
+ lwz r3,.LC0@got(r3)
+#else
+# define LOAD_ARG \
+ lis r3,.LC0@ha; \
+ la r3,.LC0@l(r3)
+#endif
+
+#define CHECK_SP(reg) \
+ cmplw reg, r1; \
+ bge+ .Lok; \
+ mflr r0; \
+ stwu r1,-32(r1); \
+ cfi_remember_state; \
+ cfi_adjust_cfa_offset (32); \
+ stw r0,36(r1); \
+ cfi_offset (lr, 4); \
+ mr r31,r3; \
+ mr r30,r4; \
+ li r3,0; \
+ addi r4,r1,8; \
+ li r0,__NR_sigaltstack; \
+ sc; \
+ /* Without working sigaltstack we cannot perform the test. */ \
+ bso .Lok2; \
+ lwz r0,12(r1); \
+ andi. r3,r0,1; \
+ beq .Lfail; \
+ lwz r0,16(r1); \
+ lwz r3,8(r1); \
+ add r3,r3,r0; \
+ sub r3,r3,reg; \
+ cmplw r3,r0; \
+ bge+ .Lok2; \
+.Lfail: \
+ LOAD_ARG; \
+ bl HIDDEN_JUMPTARGET (__fortify_fail); \
+.Lok2: \
+ mr r3,r31; \
+ mr r4,r30; \
+ cfi_restore_state; \
+.Lok:
+
+#include <__longjmp-common.S>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/a2/Implies b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/a2/Implies
new file mode 100644
index 0000000000..6d72414e55
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/a2/Implies
@@ -0,0 +1,2 @@
+powerpc/powerpc32/a2/fpu
+powerpc/powerpc32/a2
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/brk.S b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/brk.S
new file mode 100644
index 0000000000..736fc89200
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/brk.S
@@ -0,0 +1,52 @@
+/* brk system call for Linux/ppc.
+ Copyright (C) 1995-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#define _ERRNO_H 1
+#include <bits/errno.h>
+
+ .comm __curbrk,4,4
+ .section ".text"
+ENTRY (__brk)
+ mflr r0
+ stwu r1,-16(r1)
+ cfi_adjust_cfa_offset (16)
+ stw r3,8(r1)
+ stw r0,20(r1)
+ cfi_offset (lr, 4)
+ DO_CALL(SYS_ify(brk))
+ lwz r6,8(r1)
+#ifdef PIC
+ SETUP_GOT_ACCESS(r5,got_label)
+ addis r5,r5,__curbrk-got_label@ha
+ stw r3,__curbrk-got_label@l(r5)
+#else
+ lis r4,__curbrk@ha
+ stw r3,__curbrk@l(r4)
+#endif
+ lwz r0,20(r1)
+ cmplw r6,r3
+ addi r1,r1,16
+ mtlr r0
+ li r3,0
+ blelr+
+ li r3,ENOMEM
+ b __syscall_error@local
+END (__brk)
+
+weak_alias (__brk, brk)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/c++-types.data b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/c++-types.data
new file mode 100644
index 0000000000..fde53bf337
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/c++-types.data
@@ -0,0 +1,67 @@
+blkcnt64_t:x
+blkcnt_t:l
+blksize_t:l
+caddr_t:Pc
+clockid_t:i
+clock_t:l
+daddr_t:i
+dev_t:y
+fd_mask:l
+fsblkcnt64_t:y
+fsblkcnt_t:m
+fsfilcnt64_t:y
+fsfilcnt_t:m
+fsid_t:8__fsid_t
+gid_t:j
+id_t:j
+ino64_t:y
+ino_t:m
+int16_t:s
+int32_t:i
+int64_t:x
+int8_t:a
+intptr_t:i
+key_t:i
+loff_t:x
+mode_t:j
+nlink_t:j
+off64_t:x
+off_t:l
+pid_t:i
+pthread_attr_t:14pthread_attr_t
+pthread_barrier_t:17pthread_barrier_t
+pthread_barrierattr_t:21pthread_barrierattr_t
+pthread_cond_t:14pthread_cond_t
+pthread_condattr_t:18pthread_condattr_t
+pthread_key_t:j
+pthread_mutex_t:15pthread_mutex_t
+pthread_mutexattr_t:19pthread_mutexattr_t
+pthread_once_t:i
+pthread_rwlock_t:16pthread_rwlock_t
+pthread_rwlockattr_t:20pthread_rwlockattr_t
+pthread_spinlock_t:i
+pthread_t:m
+quad_t:x
+register_t:i
+rlim64_t:y
+rlim_t:m
+sigset_t:10__sigset_t
+size_t:j
+socklen_t:j
+ssize_t:i
+suseconds_t:l
+time_t:l
+u_char:h
+uid_t:j
+uint:j
+u_int:j
+u_int16_t:t
+u_int32_t:j
+u_int64_t:y
+u_int8_t:h
+ulong:m
+u_long:m
+u_quad_t:y
+useconds_t:j
+ushort:t
+u_short:t
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/cell/Implies b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/cell/Implies
new file mode 100644
index 0000000000..29c49a4c24
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/cell/Implies
@@ -0,0 +1,2 @@
+powerpc/powerpc32/cell/fpu
+powerpc/powerpc32/cell
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/cell/fpu/Implies b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/cell/fpu/Implies
new file mode 100644
index 0000000000..7c381f043c
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/cell/fpu/Implies
@@ -0,0 +1,3 @@
+# Make sure this comes before the powerpc/powerpc32/fpu that's
+# listed in unix/sysv/linux/powerpc/powerpc32/fpu/Implies.
+powerpc/powerpc32/cell/fpu
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S
new file mode 100644
index 0000000000..a07b7d3238
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S
@@ -0,0 +1,101 @@
+/* Wrapper around clone system call.
+ Copyright (C) 1997-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#define _ERRNO_H 1
+#include <bits/errno.h>
+
+#define CLONE_VM 0x00000100
+#define CLONE_THREAD 0x00010000
+
+
+/* This is the only really unusual system call in PPC linux, but not
+ because of any weirdness in the system call itself; because of
+ all the freaky stuff we have to do to make the call useful. */
+
+/* int [r3] clone(int (*fn)(void *arg) [r3], void *child_stack [r4],
+ int flags [r5], void *arg [r6], void *parent_tid [r7],
+ void *tls [r8], void *child_tid [r9]); */
+
+ENTRY (__clone)
+
+ /* Check for child_stack == NULL || fn == NULL. */
+ cmpwi cr0,r4,0
+ cmpwi cr1,r3,0
+ cror cr0*4+eq,cr1*4+eq,cr0*4+eq
+ beq- cr0,L(badargs)
+
+ /* Set up stack frame for parent. */
+ stwu r1,-32(r1)
+ cfi_adjust_cfa_offset (32)
+ stmw r28,16(r1)
+
+ /* Set up stack frame for child. */
+ clrrwi r4,r4,4
+ li r0,0
+ stwu r0,-16(r4)
+
+ /* Save fn, args, stack across syscall. */
+ mr r30,r3 /* Function in r30. */
+ mr r28,r5
+ mr r31,r6 /* Argument in r31. */
+
+ /* 'flags' argument is first parameter to clone syscall. (The other
+ argument is the stack pointer, already in r4.) */
+ mr r3,r5
+
+ /* Move the parent_tid, child_tid and tls arguments. */
+ mr r5,r7
+ mr r6,r8
+ mr r7,r9
+
+ /* End FDE now, because in the child the unwind info will be
+ wrong. */
+ cfi_endproc
+
+ /* Do the call. */
+ DO_CALL(SYS_ify(clone))
+
+ /* Check for child process. */
+ cmpwi cr1,r3,0
+ crandc cr1*4+eq,cr1*4+eq,cr0*4+so
+ bne- cr1,L(parent) /* The '-' is to minimise the race. */
+
+ /* Call procedure. */
+ mtctr r30
+ mr r3,r31
+ bctrl
+ /* Call _exit with result from procedure. */
+ b HIDDEN_JUMPTARGET(_exit)
+
+L(parent):
+ /* Parent. Restore registers & return. */
+ lmw r28,16(r1)
+ addi r1,r1,32
+ bnslr+
+ b __syscall_error@local
+
+L(badargs):
+ li r3,EINVAL
+ b __syscall_error@local
+
+ cfi_startproc
+END (__clone)
+
+libc_hidden_def (__clone)
+weak_alias (__clone, clone)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/configure b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/configure
new file mode 100644
index 0000000000..eb58187ff4
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/configure
@@ -0,0 +1,4 @@
+# This file is generated from configure.ac by Autoconf. DO NOT EDIT!
+ # Local configure fragment for sysdeps/unix/sysv/linux/powerpc/powerpc32.
+
+libc_cv_gcc_unwind_find_fde=yes
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/configure.ac b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/configure.ac
new file mode 100644
index 0000000000..e1c4c0d357
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/configure.ac
@@ -0,0 +1,4 @@
+GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
+# Local configure fragment for sysdeps/unix/sysv/linux/powerpc/powerpc32.
+
+libc_cv_gcc_unwind_find_fde=yes
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/e500/nofpu/Implies b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/e500/nofpu/Implies
new file mode 100644
index 0000000000..00365c1cfd
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/e500/nofpu/Implies
@@ -0,0 +1,3 @@
+powerpc/powerpc32/e500/nofpu
+powerpc/nofpu
+powerpc/soft-fp
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/fcntl.c b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/fcntl.c
new file mode 100644
index 0000000000..ea951bc4f9
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/fcntl.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/i386/fcntl.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/fe_mask.c b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/fe_mask.c
new file mode 100644
index 0000000000..58a4f3f393
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/fe_mask.c
@@ -0,0 +1,33 @@
+/* Procedure definition for FE_MASK_ENV for Linux/ppc.
+ Copyright (C) 2007-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <fenv.h>
+#include <errno.h>
+#include <signal.h>
+#include <unistd.h>
+#include <sysdep.h>
+#include <sys/prctl.h>
+
+const fenv_t *
+__fe_mask_env (void)
+{
+ INTERNAL_SYSCALL_DECL (err);
+ INTERNAL_SYSCALL (prctl, err, 2, PR_SET_FPEXC, PR_FP_EXC_DISABLED);
+
+ return FE_DFL_ENV;
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/fe_nomask.c b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/fe_nomask.c
new file mode 100644
index 0000000000..8b45ba384a
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/fe_nomask.c
@@ -0,0 +1,37 @@
+/* Procedure definition for FE_NOMASK_ENV for Linux/ppc.
+ 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 <fenv_libc.h>
+#include <errno.h>
+#include <signal.h>
+#include <unistd.h>
+#include <sysdep.h>
+#include <sys/prctl.h>
+#include <shlib-compat.h>
+
+const fenv_t *
+__fe_nomask_env_priv (void)
+{
+ INTERNAL_SYSCALL_DECL (err);
+ INTERNAL_SYSCALL (prctl, err, 2, PR_SET_FPEXC, PR_FP_EXC_PRECISE);
+
+ return FE_ENABLED_ENV;
+}
+#if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_19)
+compat_symbol (libm, __fe_nomask_env_priv, __fe_nomask_env, GLIBC_2_1);
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
new file mode 100644
index 0000000000..e213895c71
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
@@ -0,0 +1,2475 @@
+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 __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 __ashldi3 F
+GLIBC_2.0 __ashrdi3 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 __cmpdi2 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 __fixdfdi F
+GLIBC_2.0 __fixsfdi F
+GLIBC_2.0 __fixunsdfdi F
+GLIBC_2.0 __fixunssfdi F
+GLIBC_2.0 __floatdidf F
+GLIBC_2.0 __floatdisf 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 __lshrdi3 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 __ucmpdi2 F
+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 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 __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 __mcount_internal 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 __ppc_get_timebase_freq F
+GLIBC_2.17 clock_getcpuclockid F
+GLIBC_2.17 clock_getres F
+GLIBC_2.17 clock_gettime F
+GLIBC_2.17 clock_nanosleep F
+GLIBC_2.17 clock_settime F
+GLIBC_2.17 secure_getenv F
+GLIBC_2.18 GLIBC_2.18 A
+GLIBC_2.18 __cxa_thread_atexit_impl F
+GLIBC_2.2 GLIBC_2.2 A
+GLIBC_2.2 _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 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 glob64 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 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 getcontext F
+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 makecontext 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 setcontext F
+GLIBC_2.3.3 swapcontext 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 __sigsetjmp 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 _longjmp F
+GLIBC_2.3.4 _setjmp F
+GLIBC_2.3.4 getcontext F
+GLIBC_2.3.4 getipv4sourcefilter F
+GLIBC_2.3.4 getsourcefilter F
+GLIBC_2.3.4 longjmp F
+GLIBC_2.3.4 makecontext 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 setcontext F
+GLIBC_2.3.4 setipv4sourcefilter F
+GLIBC_2.3.4 setjmp F
+GLIBC_2.3.4 setsourcefilter F
+GLIBC_2.3.4 siglongjmp F
+GLIBC_2.3.4 swapcontext 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 inotify_init1 F
+GLIBC_2.9 pipe2 F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist
new file mode 100644
index 0000000000..13ea493ac8
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist
@@ -0,0 +1,578 @@
+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 __fe_dfl_env D 0x8
+GLIBC_2.1 __fe_enabled_env D 0x8
+GLIBC_2.1 __fe_nomask_env F
+GLIBC_2.1 __fe_nonieee_env D 0x8
+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 feclearexcept F
+GLIBC_2.2 fedisableexcept F
+GLIBC_2.2 feenableexcept F
+GLIBC_2.2 fegetenv F
+GLIBC_2.2 fegetexcept F
+GLIBC_2.2 fegetexceptflag F
+GLIBC_2.2 feraiseexcept F
+GLIBC_2.2 fesetenv F
+GLIBC_2.2 fesetexceptflag F
+GLIBC_2.2 feupdateenv 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 __fe_dfl_mode D 0x8
+GLIBC_2.25 __iscanonicall F
+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/powerpc/powerpc32/fpu/localplt.data b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/localplt.data
new file mode 100644
index 0000000000..50006317c7
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/localplt.data
@@ -0,0 +1,16 @@
+libc.so: _Unwind_Find_FDE
+libc.so: calloc
+libc.so: free
+libc.so: malloc
+libc.so: memalign
+libc.so: realloc
+libm.so: matherr
+# The main malloc is interposed into the dynamic linker, for
+# allocations after the initial link (when dlopen is used).
+ld.so: malloc
+ld.so: calloc
+ld.so: realloc
+ld.so: free
+# The TLS-enabled version of these functions is interposed from libc.so.
+ld.so: _dl_signal_error
+ld.so: _dl_catch_error
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/fxstat.c b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/fxstat.c
new file mode 100644
index 0000000000..4f219f0b9d
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/fxstat.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/i386/fxstat.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/fxstatat.c b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/fxstatat.c
new file mode 100644
index 0000000000..0f8b3135d8
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/fxstatat.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/i386/fxstatat.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/getcontext-common.S b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/getcontext-common.S
new file mode 100644
index 0000000000..ae2470f1fd
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/getcontext-common.S
@@ -0,0 +1,284 @@
+/* Save current context, powerpc32 common.
+ Copyright (C) 2005-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+/* This is the common implementation of getcontext for powerpc32.
+ It not complete in itself should be included in to a framework that
+ defines:
+ __CONTEXT_FUNC_NAME
+ and if appropriate:
+ __CONTEXT_ENABLE_FPRS
+ __CONTEXT_ENABLE_VRS
+ Any architecture that implements the Vector unit is assumed to also
+ implement the floating unit. */
+
+/* Stack frame offsets. */
+#define _FRAME_BACKCHAIN 0
+#define _FRAME_LR_SAVE 4
+#define _FRAME_PARM_SAVE1 8
+#define _FRAME_PARM_SAVE2 12
+#define _FRAME_PARM_SAVE3 16
+#define _FRAME_PARM_SAVE4 20
+
+#ifdef __CONTEXT_ENABLE_VRS
+ .machine "altivec"
+#endif
+ENTRY(__CONTEXT_FUNC_NAME)
+ stwu r1,-16(r1)
+ cfi_adjust_cfa_offset (16)
+/* Insure that the _UC_REGS start on a quadword boundary. */
+ stw r3,_FRAME_PARM_SAVE1(r1)
+ addi r3,r3,_UC_REG_SPACE+12
+ clrrwi r3,r3,4
+
+/* Save the general purpose registers */
+ stw r0,_UC_GREGS+(PT_R0*4)(r3)
+ mflr r0
+ stw r2,_UC_GREGS+(PT_R2*4)(r3)
+ stw r4,_UC_GREGS+(PT_R4*4)(r3)
+/* Set the callers LR_SAVE, and the ucontext LR and NIP to the callers
+ return address. */
+ stw r0,_UC_GREGS+(PT_LNK*4)(r3)
+ stw r0,_UC_GREGS+(PT_NIP*4)(r3)
+ stw r0,_FRAME_LR_SAVE+16(r1)
+ cfi_offset (lr, _FRAME_LR_SAVE)
+ stw r5,_UC_GREGS+(PT_R5*4)(r3)
+ stw r6,_UC_GREGS+(PT_R6*4)(r3)
+ stw r7,_UC_GREGS+(PT_R7*4)(r3)
+ stw r8,_UC_GREGS+(PT_R8*4)(r3)
+ stw r9,_UC_GREGS+(PT_R9*4)(r3)
+ stw r10,_UC_GREGS+(PT_R10*4)(r3)
+ stw r11,_UC_GREGS+(PT_R11*4)(r3)
+ stw r12,_UC_GREGS+(PT_R12*4)(r3)
+ stw r13,_UC_GREGS+(PT_R13*4)(r3)
+ stw r14,_UC_GREGS+(PT_R14*4)(r3)
+ stw r15,_UC_GREGS+(PT_R15*4)(r3)
+ stw r16,_UC_GREGS+(PT_R16*4)(r3)
+ stw r17,_UC_GREGS+(PT_R17*4)(r3)
+ stw r18,_UC_GREGS+(PT_R18*4)(r3)
+ stw r19,_UC_GREGS+(PT_R19*4)(r3)
+ stw r20,_UC_GREGS+(PT_R20*4)(r3)
+ stw r21,_UC_GREGS+(PT_R21*4)(r3)
+ stw r22,_UC_GREGS+(PT_R22*4)(r3)
+ stw r23,_UC_GREGS+(PT_R23*4)(r3)
+ stw r24,_UC_GREGS+(PT_R24*4)(r3)
+ stw r25,_UC_GREGS+(PT_R25*4)(r3)
+ stw r26,_UC_GREGS+(PT_R26*4)(r3)
+ stw r27,_UC_GREGS+(PT_R27*4)(r3)
+ stw r28,_UC_GREGS+(PT_R28*4)(r3)
+ stw r29,_UC_GREGS+(PT_R29*4)(r3)
+ stw r30,_UC_GREGS+(PT_R30*4)(r3)
+ stw r31,_UC_GREGS+(PT_R31*4)(r3)
+/* Save the value of R1. We had to push the stack before we
+ had the address of uc_reg_space. So compute the address of
+ the callers stack pointer and save it as R1. */
+ addi r8,r1,16
+ li r0,0
+/* Save the count, exception and condition registers. */
+ mfctr r11
+ mfxer r10
+ mfcr r9
+ stw r8,_UC_GREGS+(PT_R1*4)(r3)
+ stw r11,_UC_GREGS+(PT_CTR*4)(r3)
+ stw r10,_UC_GREGS+(PT_XER*4)(r3)
+ stw r9,_UC_GREGS+(PT_CCR*4)(r3)
+/* Set the return value of getcontext to "success". R3 is the only
+ register whose value is not preserved in the saved context. */
+ stw r0,_UC_GREGS+(PT_R3*4)(r3)
+
+/* Zero fill fields that can't be set in user state. */
+ stw r0,_UC_GREGS+(PT_MSR*4)(r3)
+ stw r0,_UC_GREGS+(PT_MQ*4)(r3)
+
+#ifdef __CONTEXT_ENABLE_FPRS
+/* Save the floating-point registers */
+ stfd fp0,_UC_FREGS+(0*8)(r3)
+ stfd fp1,_UC_FREGS+(1*8)(r3)
+ stfd fp2,_UC_FREGS+(2*8)(r3)
+ stfd fp3,_UC_FREGS+(3*8)(r3)
+ stfd fp4,_UC_FREGS+(4*8)(r3)
+ stfd fp5,_UC_FREGS+(5*8)(r3)
+ stfd fp6,_UC_FREGS+(6*8)(r3)
+ stfd fp7,_UC_FREGS+(7*8)(r3)
+ stfd fp8,_UC_FREGS+(8*8)(r3)
+ stfd fp9,_UC_FREGS+(9*8)(r3)
+ stfd fp10,_UC_FREGS+(10*8)(r3)
+ stfd fp11,_UC_FREGS+(11*8)(r3)
+ stfd fp12,_UC_FREGS+(12*8)(r3)
+ stfd fp13,_UC_FREGS+(13*8)(r3)
+ stfd fp14,_UC_FREGS+(14*8)(r3)
+ stfd fp15,_UC_FREGS+(15*8)(r3)
+ stfd fp16,_UC_FREGS+(16*8)(r3)
+ stfd fp17,_UC_FREGS+(17*8)(r3)
+ stfd fp18,_UC_FREGS+(18*8)(r3)
+ stfd fp19,_UC_FREGS+(19*8)(r3)
+ stfd fp20,_UC_FREGS+(20*8)(r3)
+ stfd fp21,_UC_FREGS+(21*8)(r3)
+ stfd fp22,_UC_FREGS+(22*8)(r3)
+ stfd fp23,_UC_FREGS+(23*8)(r3)
+ stfd fp24,_UC_FREGS+(24*8)(r3)
+ stfd fp25,_UC_FREGS+(25*8)(r3)
+ stfd fp26,_UC_FREGS+(26*8)(r3)
+ stfd fp27,_UC_FREGS+(27*8)(r3)
+ stfd fp28,_UC_FREGS+(28*8)(r3)
+ stfd fp29,_UC_FREGS+(29*8)(r3)
+ mffs fp0
+ stfd fp30,_UC_FREGS+(30*8)(r3)
+ stfd fp31,_UC_FREGS+(31*8)(r3)
+ stfd fp0,_UC_FREGS+(32*8)(r3)
+
+# ifdef __CONTEXT_ENABLE_VRS
+# ifdef PIC
+ mflr r8
+# define got_label GENERATE_GOT_LABEL (__CONTEXT_FUNC_NAME)
+ SETUP_GOT_ACCESS(r7,got_label)
+ addis r7,r7,_GLOBAL_OFFSET_TABLE_-got_label@ha
+ addi r7,r7,_GLOBAL_OFFSET_TABLE_-got_label@l
+# ifdef SHARED
+ lwz r7,_rtld_global_ro@got(r7)
+ mtlr r8
+ lwz r7,RTLD_GLOBAL_RO_DL_HWCAP_OFFSET+LOWORD(r7)
+# else
+ lwz r7,_dl_hwcap@got(r7)
+ mtlr r8
+ lwz r7,LOWORD(r7)
+# endif
+# else
+ lis r7,(_dl_hwcap+LOWORD)@ha
+ lwz r7,(_dl_hwcap+LOWORD)@l(r7)
+# endif
+ andis. r7,r7,(PPC_FEATURE_HAS_ALTIVEC >> 16)
+
+ la r10,(_UC_VREGS)(r3)
+ la r9,(_UC_VREGS+16)(r3)
+
+ beq 2f /* L(no_vec) */
+/* address of the combined VSCR/VSAVE quadword. */
+ la r8,(_UC_VREGS+512)(r3)
+
+/* Save the vector registers */
+ stvx v0,0,r10
+ stvx v1,0,r9
+ addi r10,r10,32
+ addi r9,r9,32
+/* We need to get the Vector Status and Control Register early to avoid
+ store order problems later with the VSAVE register that shares the
+ same quadword. */
+ mfvscr v0
+
+ stvx v2,0,r10
+ stvx v3,0,r9
+ addi r10,r10,32
+ addi r9,r9,32
+
+ stvx v0,0,r8
+
+ stvx v4,0,r10
+ stvx v5,0,r9
+ addi r10,r10,32
+ addi r9,r9,32
+
+ stvx v6,0,r10
+ stvx v7,0,r9
+ addi r10,r10,32
+ addi r9,r9,32
+
+ stvx v8,0,r10
+ stvx v9,0,r9
+ addi r10,r10,32
+ addi r9,r9,32
+
+ stvx v10,0,r10
+ stvx v11,0,r9
+ addi r10,r10,32
+ addi r9,r9,32
+
+ stvx v12,0,r10
+ stvx v13,0,r9
+ addi r10,r10,32
+ addi r9,r9,32
+
+ stvx v14,0,r10
+ stvx v15,0,r9
+ addi r10,r10,32
+ addi r9,r9,32
+
+ stvx v16,0,r10
+ stvx v17,0,r9
+ addi r10,r10,32
+ addi r9,r9,32
+
+ stvx v18,0,r10
+ stvx v19,0,r9
+ addi r10,r10,32
+ addi r9,r9,32
+
+ stvx v20,0,r10
+ stvx v21,0,r9
+ addi r10,r10,32
+ addi r9,r9,32
+
+ stvx v22,0,r10
+ stvx v23,0,r9
+ addi r10,r10,32
+ addi r9,r9,32
+
+ stvx v24,0,r10
+ stvx v25,0,r9
+ addi r10,r10,32
+ addi r9,r9,32
+
+ stvx v26,0,r10
+ stvx v27,0,r9
+ addi r10,r10,32
+ addi r9,r9,32
+
+ stvx v28,0,r10
+ stvx v29,0,r9
+ addi r10,r10,32
+ addi r9,r9,32
+
+ mfspr r0,VRSAVE
+ stvx v30,0,r10
+ stvx v31,0,r9
+
+ stw r0,0(r8)
+
+2: /* L(no_vec): */
+# endif
+#endif
+
+#ifdef __CONTEXT_ENABLE_E500
+ getcontext_e500
+#endif
+
+/* We need to set up parms and call sigprocmask which will clobber
+ volatile registers. So before the call we need to retrieve the
+ original ucontext ptr (parm1) from stack and store the UC_REGS_PTR
+ (current R3). */
+ lwz r12,_FRAME_PARM_SAVE1(r1)
+ li r4,0
+ stw r3,_UC_REGS_PTR(r12)
+ addi r5,r12,_UC_SIGMASK
+ li r3,SIG_BLOCK
+ bl __sigprocmask@local
+
+ lwz r0,_FRAME_LR_SAVE+16(r1)
+ addi r1,r1,16
+ mtlr r0
+ blr
+END(__CONTEXT_FUNC_NAME)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/getcontext.S b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/getcontext.S
new file mode 100644
index 0000000000..10f8857d81
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/getcontext.S
@@ -0,0 +1,78 @@
+/* Save current context.
+ Copyright (C) 2002-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#include <rtld-global-offsets.h>
+#include <shlib-compat.h>
+
+#define __ASSEMBLY__
+#include <asm/ptrace.h>
+#include "ucontext_i.h"
+
+#define __CONTEXT_FUNC_NAME __getcontext
+#define __CONTEXT_ENABLE_FPRS 1
+#define __CONTEXT_ENABLE_VRS 1
+
+/* Size of ucontext in GLIBC_2.3.4 and later. */
+#define _UC_SIZE_2_3_4 1184
+
+ .section ".text";
+ENTRY (__getcontext)
+ li r4,0
+ li r5,_UC_SIZE_2_3_4;
+ DO_CALL (SYS_ify (swapcontext));
+ bso- cr0,1f
+/* the kernel does not set the return code for the success case */
+ li r3,0
+ blr
+1:
+ b __syscall_error@local
+END(__getcontext)
+
+versioned_symbol (libc, __getcontext, getcontext, GLIBC_2_3_4)
+
+#if SHLIB_COMPAT (libc, GLIBC_2_3_3, GLIBC_2_3_4)
+ compat_text_section
+
+# undef __CONTEXT_FUNC_NAME
+# define __CONTEXT_FUNC_NAME __novec_getcontext
+# undef __CONTEXT_ENABLE_VRS
+
+# include "getcontext-common.S"
+
+ .previous
+
+compat_symbol (libc, __novec_getcontext, getcontext, GLIBC_2_3_3)
+
+#endif
+
+#if SHLIB_COMPAT (libc, GLIBC_2_1, GLIBC_2_3_3)
+
+# define _ERRNO_H 1
+# include <bits/errno.h>
+
+ compat_text_section
+ENTRY (__getcontext_stub)
+ li r3,ENOSYS
+ b __syscall_error@local
+END (__getcontext_stub)
+ .previous
+
+compat_symbol (libc, __getcontext_stub, getcontext, GLIBC_2_1)
+
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/glob64.c b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/glob64.c
new file mode 100644
index 0000000000..82a9a296a7
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/glob64.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/i386/glob64.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/kernel_stat.h b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/kernel_stat.h
new file mode 100644
index 0000000000..708ae0f71f
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/kernel_stat.h
@@ -0,0 +1,51 @@
+/* Definition of `struct stat' used in the kernel.
+ Copyright (C) 1997-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+struct kernel_stat
+ {
+ unsigned int st_dev;
+ unsigned int st_ino;
+ unsigned int st_mode;
+ unsigned short st_nlink;
+ unsigned int st_uid;
+ unsigned int st_gid;
+ unsigned int st_rdev;
+ unsigned long int st_size;
+ unsigned long int st_blksize;
+ unsigned long int st_blocks;
+ struct timespec st_atim;
+ struct timespec st_mtim;
+ struct timespec st_ctim;
+ unsigned long int __glibc_reserved4;
+#define _HAVE___UNUSED4
+ unsigned long int __glibc_reserved5;
+#define _HAVE___UNUSED5
+ };
+
+#define _HAVE_STAT___UNUSED4
+#define _HAVE_STAT___UNUSED5
+#define _HAVE_STAT___PAD1
+#define _HAVE_STAT___PAD2
+#define _HAVE_STAT_NSEC
+#define _HAVE_STAT64___UNUSED4
+#define _HAVE_STAT64___UNUSED5
+#define _HAVE_STAT64___PAD2
+#define _HAVE_STAT64_NSEC
+
+#define XSTAT_IS_XSTAT64 0
+#define STATFS_IS_STATFS64 0
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/ld.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/ld.abilist
new file mode 100644
index 0000000000..100d133495
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/ld.abilist
@@ -0,0 +1,16 @@
+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.22 GLIBC_2.22 A
+GLIBC_2.22 __tls_get_addr_opt F
+GLIBC_2.23 GLIBC_2.23 A
+GLIBC_2.23 __parse_hwcap_and_convert_at_platform F
+GLIBC_2.3 GLIBC_2.3 A
+GLIBC_2.3 __tls_get_addr F
+GLIBC_2.4 GLIBC_2.4 A
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/libBrokenLocale.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/libBrokenLocale.abilist
new file mode 100644
index 0000000000..4a56bb68a3
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/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/powerpc/powerpc32/libanl.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/libanl.abilist
new file mode 100644
index 0000000000..edabfb436e
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/libanl.abilist
@@ -0,0 +1,5 @@
+GLIBC_2.2.3 GLIBC_2.2.3 A
+GLIBC_2.2.3 gai_cancel F
+GLIBC_2.2.3 gai_error F
+GLIBC_2.2.3 gai_suspend F
+GLIBC_2.2.3 getaddrinfo_a F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/libcrypt.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/libcrypt.abilist
new file mode 100644
index 0000000000..4db2639336
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/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/powerpc/powerpc32/libdl.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/libdl.abilist
new file mode 100644
index 0000000000..5536f6e0a9
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/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/powerpc/powerpc32/libnsl.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/libnsl.abilist
new file mode 100644
index 0000000000..a23db2aeaf
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/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/powerpc/powerpc32/libpthread.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
new file mode 100644
index 0000000000..14c3a86b75
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
@@ -0,0 +1,262 @@
+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.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 longjmp F
+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.3.4 siglongjmp 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
+GLIBC_2.6 GLIBC_2.6 A
+GLIBC_2.6 pthread_attr_setstack F
+GLIBC_2.6 pthread_attr_setstacksize F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/libresolv.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/libresolv.abilist
new file mode 100644
index 0000000000..4d50e7c8c6
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/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/powerpc/powerpc32/librt.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist
new file mode 100644
index 0000000000..15e4418863
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/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/powerpc/powerpc32/libthread_db.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/libthread_db.abilist
new file mode 100644
index 0000000000..a8a8c2c68d
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/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/powerpc/powerpc32/libutil.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/libutil.abilist
new file mode 100644
index 0000000000..89c67755c4
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/libutil.abilist
@@ -0,0 +1,7 @@
+GLIBC_2.0 GLIBC_2.0 A
+GLIBC_2.0 forkpty F
+GLIBC_2.0 login F
+GLIBC_2.0 login_tty F
+GLIBC_2.0 logout F
+GLIBC_2.0 logwtmp F
+GLIBC_2.0 openpty F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/lockf64.c b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/lockf64.c
new file mode 100644
index 0000000000..a88f5a784a
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/lockf64.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/i386/lockf64.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/lxstat.c b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/lxstat.c
new file mode 100644
index 0000000000..2371cd9719
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/lxstat.c
@@ -0,0 +1,2 @@
+#include <sysdeps/unix/sysv/linux/i386/lxstat.c>
+
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/makecontext.S b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/makecontext.S
new file mode 100644
index 0000000000..fdacea2a36
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/makecontext.S
@@ -0,0 +1,226 @@
+/* Set up a context to call a function.
+ Copyright (C) 2002-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#include <shlib-compat.h>
+
+#define __ASSEMBLY__
+#include <asm/ptrace.h>
+#include "ucontext_i.h"
+
+ENTRY(__makecontext)
+ /* Set up the first 7 args to the function in its registers */
+ lwz r11,_UC_REGS_PTR(r3)
+ stw r6,_UC_GREGS+(PT_R3*4)(r11)
+ stw r7,_UC_GREGS+(PT_R4*4)(r11)
+ stw r8,_UC_GREGS+(PT_R5*4)(r11)
+ stw r9,_UC_GREGS+(PT_R6*4)(r11)
+ stw r10,_UC_GREGS+(PT_R7*4)(r11)
+ lwz r8,8(r1)
+ lwz r9,12(r1)
+ stw r8,_UC_GREGS+(PT_R8*4)(r11)
+ stw r9,_UC_GREGS+(PT_R9*4)(r11)
+
+ /* Set the NIP to the start of the function */
+ stw r4,_UC_GREGS+(PT_NIP*4)(r11)
+
+ /* Set the function's r31 to ucp->uc_link for the exitcode below. */
+ lwz r7,_UC_LINK(r3)
+ stw r7,_UC_GREGS+(PT_R31*4)(r11)
+
+ /* Set the function's LR to point to the exitcode below. */
+#ifdef PIC
+ mflr r0
+ cfi_register(lr,r0)
+ /* Use this conditional form of branch and link to avoid destroying
+ the cpu link stack used to predict blr return addresses. */
+ bcl 20,31,1f
+1: mflr r6
+ addi r6,r6,L(exitcode)-1b
+ mtlr r0
+ cfi_same_value (lr)
+#else
+ lis r6,L(exitcode)@ha
+ addi r6,r6,L(exitcode)@l
+#endif
+ stw r6,_UC_GREGS+(PT_LNK*4)(r11)
+
+ /*
+ * Set up the stack frame for the function.
+ * If we have more than 5 args to the function (8 args to makecontext),
+ * there will be some arguments on the stack which have to end up
+ * in registers. If there are more than 8 args to the function,
+ * we have to copy (argc - 8) args from our stack to the functions'
+ * stack (and allow space for them in the frame).
+ */
+ lwz r4,_UC_STACK_SP(r3)
+ lwz r8,_UC_STACK_SIZE(r3)
+ add r4,r4,r8
+ rlwinm r4,r4,0,0,27 /* round down to 16-byte boundary */
+ addi r7,r4,-16 /* stack frame for fn's caller */
+ cmpwi r5,8
+ blt 2f /* less than 8 args is easy */
+ lwz r10,16(r1)
+ stw r10,_UC_GREGS+(PT_R10*4)(r11)
+ beq 2f /* if exactly 8 args */
+ subi r9,r5,3
+ subi r5,r5,8
+ rlwinm r9,r9,2,0,27
+ subf r7,r9,r4
+ mtctr r5 /* copy the 9th and following args */
+ addi r6,r1,16
+ addi r8,r7,4
+3: lwzu r10,4(r6)
+ stwu r10,4(r8)
+ bdnz 3b
+2: stw r7,_UC_GREGS+(PT_R1*4)(r11)
+ li r6,0
+ stw r6,0(r7)
+
+ blr
+
+ cfi_endproc
+ nop
+/*
+ * If the function returns, it comes here. We put ucp->uc_link in
+ * r31, which is a callee-saved register. We have to continue with
+ * the context that r31 points to, or exit if it is 0.
+ */
+L(exitcode):
+ mr. r3,r31
+ beq 4f
+ bl __setcontext@local
+4: bl HIDDEN_JUMPTARGET(exit)
+ b 4b
+
+ cfi_startproc
+END(__makecontext)
+
+versioned_symbol (libc, __makecontext, makecontext, GLIBC_2_3_4)
+
+#if SHLIB_COMPAT (libc, GLIBC_2_3_3, GLIBC_2_3_4)
+
+ compat_text_section
+ENTRY(__novec_makecontext)
+ /* Set up the first 7 args to the function in its registers */
+ addi r11,r3,_UC_REG_SPACE
+ stw r11,_UC_REGS_PTR(r3)
+ stw r6,_UC_GREGS+(PT_R3*4)(r11)
+ stw r7,_UC_GREGS+(PT_R4*4)(r11)
+ stw r8,_UC_GREGS+(PT_R5*4)(r11)
+ stw r9,_UC_GREGS+(PT_R6*4)(r11)
+ stw r10,_UC_GREGS+(PT_R7*4)(r11)
+ lwz r8,8(r1)
+ lwz r9,12(r1)
+ stw r8,_UC_GREGS+(PT_R8*4)(r11)
+ stw r9,_UC_GREGS+(PT_R9*4)(r11)
+
+ /* Set the NIP to the start of the function */
+ stw r4,_UC_GREGS+(PT_NIP*4)(r11)
+
+ /* Set the function's r31 to ucp->uc_link for the exitcode below. */
+ lwz r7,_UC_LINK(r3)
+ stw r7,_UC_GREGS+(PT_R31*4)(r11)
+
+ /* Set the function's LR to point to the exitcode below. */
+#ifdef PIC
+ mflr r0
+ cfi_register(lr,r0)
+ /* Use this conditional form of branch and link to avoid destroying
+ the cpu link stack used to predict blr return addresses. */
+ bcl 20,31,1f
+1: mflr r6
+ addi r6,r6,L(novec_exitcode)-1b
+ mtlr r0
+ cfi_same_value (lr)
+#else
+ lis r6,L(novec_exitcode)@ha
+ addi r6,r6,L(novec_exitcode)@l
+#endif
+ stw r6,_UC_GREGS+(PT_LNK*4)(r11)
+
+ /*
+ * Set up the stack frame for the function.
+ * If we have more than 5 args to the function (8 args to makecontext),
+ * there will be some arguments on the stack which have to end up
+ * in registers. If there are more than 8 args to the function,
+ * we have to copy (argc - 8) args from our stack to the functions'
+ * stack (and allow space for them in the frame).
+ */
+ lwz r4,_UC_STACK_SP(r3)
+ lwz r8,_UC_STACK_SIZE(r3)
+ add r4,r4,r8
+ rlwinm r4,r4,0,0,27 /* round down to 16-byte boundary */
+ addi r7,r4,-16 /* stack frame for fn's caller */
+ cmpwi r5,8
+ blt 2f /* less than 8 args is easy */
+ lwz r10,16(r1)
+ stw r10,_UC_GREGS+(PT_R10*4)(r11)
+ beq 2f /* if exactly 8 args */
+ subi r9,r5,3
+ subi r5,r5,8
+ rlwinm r9,r9,2,0,27
+ subf r7,r9,r4
+ mtctr r5 /* copy the 9th and following args */
+ addi r6,r1,16
+ addi r8,r7,4
+3: lwzu r10,4(r6)
+ stwu r10,4(r8)
+ bdnz 3b
+2: stw r7,_UC_GREGS+(PT_R1*4)(r11)
+ li r6,0
+ stw r6,0(r7)
+
+ blr
+
+ cfi_endproc
+ nop
+/*
+ * If the function returns, it comes here. We put ucp->uc_link in
+ * r31, which is a callee-saved register. We have to continue with
+ * the context that r31 points to, or exit if it is 0.
+ */
+L(novec_exitcode):
+ mr. r3,r31
+ beq 4f
+ bl __novec_setcontext@local
+4: bl HIDDEN_JUMPTARGET(exit)
+ b 4b
+
+ cfi_startproc
+END(__novec_makecontext)
+ .previous
+
+compat_symbol (libc, __novec_makecontext, makecontext, GLIBC_2_3_3)
+#endif
+
+#if SHLIB_COMPAT (libc, GLIBC_2_1, GLIBC_2_3_3)
+
+#define _ERRNO_H 1
+#include <bits/errno.h>
+
+ compat_text_section
+ENTRY (__makecontext_stub)
+ li r3,ENOSYS
+ b __syscall_error@local
+END (__makecontext_stub)
+ .previous
+
+compat_symbol (libc, __makecontext_stub, makecontext, GLIBC_2_1)
+
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/Implies b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/Implies
new file mode 100644
index 0000000000..40836b6fb4
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/Implies
@@ -0,0 +1,2 @@
+powerpc/nofpu
+powerpc/soft-fp
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/context-e500.h b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/context-e500.h
new file mode 100644
index 0000000000..9ca14bb76b
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/context-e500.h
@@ -0,0 +1,144 @@
+/* getcontext/setcontext/makecontext support for e500 high parts of registers.
+ Copyright (C) 2006-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _CONTEXT_E500_H
+#define _CONTEXT_E500_H 1
+
+#if defined __SPE__ || (defined __NO_FPRS__ && !defined _SOFT_FLOAT)
+
+# define __CONTEXT_ENABLE_E500 1
+
+/* We follow the kernel's layout, which saves the high parts of the
+ SPE registers in the vregs area, immediately followed by the ACC
+ value (call-clobbered, not handled here) and the SPEFSCR value. */
+
+.macro getcontext_e500
+ la r10,(_UC_VREGS)(r3)
+ evstwwe r0,(0*4)(r10)
+ evstwwe r1,(1*4)(r10)
+ evstwwe r2,(2*4)(r10)
+ evstwwe r3,(3*4)(r10)
+ evstwwe r4,(4*4)(r10)
+ evstwwe r5,(5*4)(r10)
+ evstwwe r6,(6*4)(r10)
+ evstwwe r7,(7*4)(r10)
+ evstwwe r8,(8*4)(r10)
+ evstwwe r9,(9*4)(r10)
+ evstwwe r10,(10*4)(r10)
+ evstwwe r11,(11*4)(r10)
+ evstwwe r12,(12*4)(r10)
+ evstwwe r13,(13*4)(r10)
+ evstwwe r14,(14*4)(r10)
+ evstwwe r15,(15*4)(r10)
+ evstwwe r16,(16*4)(r10)
+ evstwwe r17,(17*4)(r10)
+ evstwwe r18,(18*4)(r10)
+ evstwwe r19,(19*4)(r10)
+ evstwwe r20,(20*4)(r10)
+ evstwwe r21,(21*4)(r10)
+ evstwwe r22,(22*4)(r10)
+ evstwwe r23,(23*4)(r10)
+ evstwwe r24,(24*4)(r10)
+ evstwwe r25,(25*4)(r10)
+ evstwwe r26,(26*4)(r10)
+ evstwwe r27,(27*4)(r10)
+ evstwwe r28,(28*4)(r10)
+ evstwwe r29,(29*4)(r10)
+ evstwwe r30,(30*4)(r10)
+ evstwwe r31,(31*4)(r10)
+ mfspefscr r9
+ stw r9,(34*4)(r10)
+.endm
+
+.macro setcontext_e500
+ lwz r3,_UC_VREGS+(0*4)(r31)
+ evmergelo r0,r3,r0
+ lwz r3,_UC_VREGS+(1*4)(r31)
+ evmergelo r1,r3,r1
+ lwz r3,_UC_VREGS+(2*4)(r31)
+ evmergelo r2,r3,r2
+ lwz r3,_UC_VREGS+(1*4)(r31)
+ evmergelo r1,r3,r1
+ lwz r3,_UC_VREGS+(2*4)(r31)
+ evmergelo r2,r3,r2
+ lwz r3,_UC_VREGS+(3*4)(r31)
+ evmergelo r3,r3,r3
+ lwz r3,_UC_VREGS+(4*4)(r31)
+ evmergelo r4,r3,r4
+ lwz r3,_UC_VREGS+(5*4)(r31)
+ evmergelo r5,r3,r5
+ lwz r3,_UC_VREGS+(6*4)(r31)
+ evmergelo r6,r3,r6
+ lwz r3,_UC_VREGS+(7*4)(r31)
+ evmergelo r7,r3,r7
+ lwz r3,_UC_VREGS+(8*4)(r31)
+ evmergelo r8,r3,r8
+ lwz r3,_UC_VREGS+(9*4)(r31)
+ evmergelo r9,r3,r9
+ lwz r3,_UC_VREGS+(10*4)(r31)
+ evmergelo r10,r3,r10
+ lwz r3,_UC_VREGS+(11*4)(r31)
+ evmergelo r11,r3,r11
+ lwz r3,_UC_VREGS+(12*4)(r31)
+ evmergelo r12,r3,r12
+ lwz r3,_UC_VREGS+(13*4)(r31)
+ evmergelo r13,r3,r13
+ lwz r3,_UC_VREGS+(14*4)(r31)
+ evmergelo r14,r3,r14
+ lwz r3,_UC_VREGS+(15*4)(r31)
+ evmergelo r15,r3,r15
+ lwz r3,_UC_VREGS+(16*4)(r31)
+ evmergelo r16,r3,r16
+ lwz r3,_UC_VREGS+(17*4)(r31)
+ evmergelo r17,r3,r17
+ lwz r3,_UC_VREGS+(18*4)(r31)
+ evmergelo r18,r3,r18
+ lwz r3,_UC_VREGS+(19*4)(r31)
+ evmergelo r19,r3,r19
+ lwz r3,_UC_VREGS+(20*4)(r31)
+ evmergelo r20,r3,r20
+ lwz r3,_UC_VREGS+(21*4)(r31)
+ evmergelo r21,r3,r21
+ lwz r3,_UC_VREGS+(22*4)(r31)
+ evmergelo r22,r3,r22
+ lwz r3,_UC_VREGS+(23*4)(r31)
+ evmergelo r23,r3,r23
+ lwz r3,_UC_VREGS+(24*4)(r31)
+ evmergelo r24,r3,r24
+ lwz r3,_UC_VREGS+(25*4)(r31)
+ evmergelo r25,r3,r25
+ lwz r3,_UC_VREGS+(26*4)(r31)
+ evmergelo r26,r3,r26
+ lwz r3,_UC_VREGS+(27*4)(r31)
+ evmergelo r27,r3,r27
+ lwz r3,_UC_VREGS+(28*4)(r31)
+ evmergelo r28,r3,r28
+ lwz r3,_UC_VREGS+(29*4)(r31)
+ evmergelo r29,r3,r29
+ lwz r3,_UC_VREGS+(30*4)(r31)
+ evmergelo r30,r3,r30
+ lwz r3,_UC_VREGS+(31*4)(r31)
+ evmergelo r31,r3,r31
+ lwz r3,_UC_VREGS+(34*4)(r31)
+ mtspefscr r3
+.endm
+#else
+# undef __CONTEXT_ENABLE_E500
+#endif
+
+#endif /* context-e500.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/getcontext.S b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/getcontext.S
new file mode 100644
index 0000000000..2cd9ce98e5
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/getcontext.S
@@ -0,0 +1,60 @@
+/* Save current context.
+ Copyright (C) 2002-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#include <rtld-global-offsets.h>
+#include <shlib-compat.h>
+
+#define __ASSEMBLY__
+#include <asm/ptrace.h>
+#include "ucontext_i.h"
+
+#include <context-e500.h>
+
+#define __CONTEXT_FUNC_NAME __getcontext
+#undef __CONTEXT_ENABLE_FPRS
+#undef __CONTEXT_ENABLE_VRS
+
+#include "getcontext-common.S"
+
+versioned_symbol (libc, __getcontext, getcontext, GLIBC_2_3_4)
+
+#if SHLIB_COMPAT (libc, GLIBC_2_3_3, GLIBC_2_3_4)
+
+/* For the nofpu case the old/new versions are the same function. */
+strong_alias (__getcontext, __novec_getcontext)
+
+compat_symbol (libc, __novec_getcontext, getcontext, GLIBC_2_3_3)
+
+#endif
+
+#if SHLIB_COMPAT (libc, GLIBC_2_1, GLIBC_2_3_3)
+
+#define _ERRNO_H 1
+#include <bits/errno.h>
+
+ compat_text_section
+ENTRY (__getcontext_stub)
+ li r3,ENOSYS
+ b __syscall_error@local
+END (__getcontext_stub)
+ .previous
+
+compat_symbol (libc, __getcontext_stub, getcontext, GLIBC_2_1)
+
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
new file mode 100644
index 0000000000..d25aefd1ae
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
@@ -0,0 +1,2521 @@
+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 __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 __ashldi3 F
+GLIBC_2.0 __ashrdi3 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 __cmpdi2 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 __fixdfdi F
+GLIBC_2.0 __fixsfdi F
+GLIBC_2.0 __fixunsdfdi F
+GLIBC_2.0 __fixunssfdi F
+GLIBC_2.0 __floatdidf F
+GLIBC_2.0 __floatdisf 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 __lshrdi3 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 __ucmpdi2 F
+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 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 __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 __mcount_internal 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 __ppc_get_timebase_freq F
+GLIBC_2.17 clock_getcpuclockid F
+GLIBC_2.17 clock_getres F
+GLIBC_2.17 clock_gettime F
+GLIBC_2.17 clock_nanosleep F
+GLIBC_2.17 clock_settime F
+GLIBC_2.17 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 __atomic_feclearexcept F
+GLIBC_2.19 __atomic_feholdexcept F
+GLIBC_2.19 __atomic_feupdateenv F
+GLIBC_2.19 __flt_rounds 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 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 glob64 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 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 __adddf3 F
+GLIBC_2.3.2 __addsf3 F
+GLIBC_2.3.2 __divdf3 F
+GLIBC_2.3.2 __divsf3 F
+GLIBC_2.3.2 __eqdf2 F
+GLIBC_2.3.2 __eqsf2 F
+GLIBC_2.3.2 __extendsfdf2 F
+GLIBC_2.3.2 __fixdfsi F
+GLIBC_2.3.2 __fixsfsi F
+GLIBC_2.3.2 __fixunsdfsi F
+GLIBC_2.3.2 __fixunssfsi F
+GLIBC_2.3.2 __floatsidf F
+GLIBC_2.3.2 __floatsisf F
+GLIBC_2.3.2 __gedf2 F
+GLIBC_2.3.2 __gesf2 F
+GLIBC_2.3.2 __ledf2 F
+GLIBC_2.3.2 __lesf2 F
+GLIBC_2.3.2 __muldf3 F
+GLIBC_2.3.2 __mulsf3 F
+GLIBC_2.3.2 __negdf2 F
+GLIBC_2.3.2 __negsf2 F
+GLIBC_2.3.2 __register_atfork F
+GLIBC_2.3.2 __sim_disabled_exceptions D 0x4
+GLIBC_2.3.2 __sim_exceptions D 0x4
+GLIBC_2.3.2 __sim_round_mode D 0x4
+GLIBC_2.3.2 __sqrtdf2 F
+GLIBC_2.3.2 __sqrtsf2 F
+GLIBC_2.3.2 __subdf3 F
+GLIBC_2.3.2 __subsf3 F
+GLIBC_2.3.2 __truncdfsf2 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 getcontext F
+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 makecontext 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 setcontext F
+GLIBC_2.3.3 swapcontext 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 __sigsetjmp 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 _longjmp F
+GLIBC_2.3.4 _setjmp F
+GLIBC_2.3.4 getcontext F
+GLIBC_2.3.4 getipv4sourcefilter F
+GLIBC_2.3.4 getsourcefilter F
+GLIBC_2.3.4 longjmp F
+GLIBC_2.3.4 makecontext 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 setcontext F
+GLIBC_2.3.4 setipv4sourcefilter F
+GLIBC_2.3.4 setjmp F
+GLIBC_2.3.4 setsourcefilter F
+GLIBC_2.3.4 siglongjmp F
+GLIBC_2.3.4 swapcontext 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 __floatundidf F
+GLIBC_2.4 __floatundisf F
+GLIBC_2.4 __floatunsidf F
+GLIBC_2.4 __floatunsisf 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 __gtdf2 F
+GLIBC_2.4 __gtsf2 F
+GLIBC_2.4 __isinfl F
+GLIBC_2.4 __isnanl F
+GLIBC_2.4 __ltdf2 F
+GLIBC_2.4 __ltsf2 F
+GLIBC_2.4 __mbsnrtowcs_chk F
+GLIBC_2.4 __mbsrtowcs_chk F
+GLIBC_2.4 __mbstowcs_chk F
+GLIBC_2.4 __nedf2 F
+GLIBC_2.4 __nesf2 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 __unorddf2 F
+GLIBC_2.4 __unordsf2 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 inotify_init1 F
+GLIBC_2.9 pipe2 F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist
new file mode 100644
index 0000000000..ff6dc7a361
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist
@@ -0,0 +1,577 @@
+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 __fe_dfl_env D 0x8
+GLIBC_2.1 __fe_enabled_env D 0x8
+GLIBC_2.1 __fe_nonieee_env D 0x8
+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 feclearexcept F
+GLIBC_2.2 fedisableexcept F
+GLIBC_2.2 feenableexcept F
+GLIBC_2.2 fegetenv F
+GLIBC_2.2 fegetexcept F
+GLIBC_2.2 fegetexceptflag F
+GLIBC_2.2 feraiseexcept F
+GLIBC_2.2 fesetenv F
+GLIBC_2.2 fesetexceptflag F
+GLIBC_2.2 feupdateenv 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 __fe_dfl_mode D 0x8
+GLIBC_2.25 __iscanonicall F
+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/powerpc/powerpc32/nofpu/localplt.data b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/localplt.data
new file mode 100644
index 0000000000..1c20d2f2b4
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/localplt.data
@@ -0,0 +1,46 @@
+libc.so: _Unwind_Find_FDE
+libc.so: __adddf3 ?
+libc.so: __addsf3 ?
+libc.so: __divdf3 ?
+libc.so: __divsf3 ?
+libc.so: __eqdf2 ?
+libc.so: __eqsf2 ?
+libc.so: __extendsfdf2 ?
+libc.so: __fixdfsi ?
+libc.so: __fixsfsi ?
+libc.so: __fixunsdfsi ?
+libc.so: __floatsidf ?
+libc.so: __floatsisf ?
+libc.so: __floatunsidf ?
+libc.so: __floatunsisf ?
+libc.so: __gedf2 ?
+libc.so: __gtdf2 ?
+libc.so: __gtsf2 ?
+libc.so: __ledf2 ?
+libc.so: __ltdf2 ?
+libc.so: __muldf3 ?
+libc.so: __mulsf3 ?
+libc.so: __nedf2 ?
+libc.so: __subdf3 ?
+libc.so: __subsf3 ?
+libc.so: __truncdfsf2 ?
+libc.so: __unorddf2 ?
+libc.so: __unordsf2 ?
+libc.so: abort ?
+libc.so: calloc
+libc.so: free
+libc.so: malloc
+libc.so: memalign
+libc.so: realloc
+libm.so: copysignl ?
+libm.so: fabsl
+libm.so: matherr
+# The main malloc is interposed into the dynamic linker, for
+# allocations after the initial link (when dlopen is used).
+ld.so: malloc
+ld.so: calloc
+ld.so: realloc
+ld.so: free
+# The TLS-enabled version of these functions is interposed from libc.so.
+ld.so: _dl_signal_error
+ld.so: _dl_catch_error
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/setcontext.S b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/setcontext.S
new file mode 100644
index 0000000000..c5809a4741
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/setcontext.S
@@ -0,0 +1,60 @@
+/* Jump to a new context.
+ Copyright (C) 2002-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#include <rtld-global-offsets.h>
+#include <shlib-compat.h>
+
+#define __ASSEMBLY__
+#include <asm/ptrace.h>
+#include "ucontext_i.h"
+
+#include <context-e500.h>
+
+#define __CONTEXT_FUNC_NAME __setcontext
+#undef __CONTEXT_ENABLE_FPRS
+#undef __CONTEXT_ENABLE_VRS
+
+#include "setcontext-common.S"
+
+versioned_symbol (libc, __setcontext, setcontext, GLIBC_2_3_4)
+
+#if SHLIB_COMPAT (libc, GLIBC_2_3_3, GLIBC_2_3_4)
+
+/* For the nofpu case the old/new versions are the same function. */
+strong_alias (__setcontext, __novec_setcontext)
+
+compat_symbol (libc, __novec_setcontext, setcontext, GLIBC_2_3_3)
+
+#endif
+
+#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_3_3)
+
+#define _ERRNO_H 1
+#include <bits/errno.h>
+
+ compat_text_section
+ENTRY (__setcontext_stub)
+ li r3,ENOSYS
+ b __syscall_error@local
+END (__setcontext_stub)
+ .previous
+
+compat_symbol (libc, __setcontext_stub, setcontext, GLIBC_2_0)
+
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/swapcontext.S b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/swapcontext.S
new file mode 100644
index 0000000000..41b3698130
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/swapcontext.S
@@ -0,0 +1,60 @@
+/* Save current context and jump to a new context.
+ Copyright (C) 2002-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#include <rtld-global-offsets.h>
+#include <shlib-compat.h>
+
+#define __ASSEMBLY__
+#include <asm/ptrace.h>
+#include "ucontext_i.h"
+
+#include <context-e500.h>
+
+#define __CONTEXT_FUNC_NAME __swapcontext
+#undef __CONTEXT_ENABLE_FPRS
+#undef __CONTEXT_ENABLE_VRS
+
+# include "swapcontext-common.S"
+
+versioned_symbol (libc, __swapcontext, swapcontext, GLIBC_2_3_4)
+
+#if SHLIB_COMPAT (libc, GLIBC_2_3_3, GLIBC_2_3_4)
+
+/* For the nofpu case the old/new versions are the same function. */
+strong_alias (__swapcontext, __novec_swapcontext)
+
+compat_symbol (libc, __novec_swapcontext, swapcontext, GLIBC_2_3_3)
+
+#endif
+
+#if SHLIB_COMPAT (libc, GLIBC_2_1, GLIBC_2_3_3)
+
+#define _ERRNO_H 1
+#include <bits/errno.h>
+
+ compat_text_section
+ENTRY (__swapcontext_stub)
+ li r3,ENOSYS
+ b __syscall_error@local
+END (__swapcontext_stub)
+ .previous
+
+compat_symbol (libc, __swapcontext_stub, swapcontext, GLIBC_2_1)
+
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/scandir64.c b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/scandir64.c
new file mode 100644
index 0000000000..506fd8877c
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/scandir64.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/i386/scandir64.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext-common.S b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext-common.S
new file mode 100644
index 0000000000..3c5e262f1b
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext-common.S
@@ -0,0 +1,306 @@
+/* Jump to a new context powerpc32 common.
+ Copyright (C) 2005-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+/* This is the common implementation of setcontext for powerpc32.
+ It not complete in itself should be included in to a framework that
+ defines:
+ __CONTEXT_FUNC_NAME
+ and if appropriate:
+ __CONTEXT_ENABLE_FPRS
+ __CONTEXT_ENABLE_VRS
+ Any architecture that implements the Vector unit is assumed to also
+ implement the floating unit. */
+
+/* Stack frame offsets. */
+#define _FRAME_BACKCHAIN 0
+#define _FRAME_LR_SAVE 4
+#define _FRAME_PARM_SAVE1 8
+#define _FRAME_PARM_SAVE2 12
+#define _FRAME_PARM_SAVE3 16
+#define _FRAME_PARM_SAVE4 20
+
+#ifdef __CONTEXT_ENABLE_VRS
+ .machine "altivec"
+#endif
+ENTRY(__CONTEXT_FUNC_NAME)
+ mflr r0
+ stwu r1,-16(r1)
+ cfi_adjust_cfa_offset (16)
+ stw r0,20(r1)
+ cfi_offset (lr, _FRAME_LR_SAVE)
+ stw r31,12(r1)
+ cfi_offset(r31,-4)
+ lwz r31,_UC_REGS_PTR(r3)
+
+ /*
+ * If this ucontext refers to the point where we were interrupted
+ * by a signal, we have to use the rt_sigreturn system call to
+ * return to the context so we get both LR and CTR restored.
+ *
+ * Otherwise, the context we are restoring is either just after
+ * a procedure call (getcontext/swapcontext) or at the beginning
+ * of a procedure call (makecontext), so we don't need to restore
+ * r0, xer, ctr. We don't restore r2 since it will be used as
+ * the TLS pointer.
+ */
+ lwz r0,_UC_GREGS+(PT_MSR*4)(r31)
+ cmpwi r0,0
+ bne 4f /* L(do_sigret) */
+
+ /* Restore the signal mask */
+ li r5,0
+ addi r4,r3,_UC_SIGMASK
+ li r3,SIG_SETMASK
+ bl __sigprocmask@local
+ cmpwi r3,0
+ bne 3f /* L(error_exit) */
+
+#ifdef PIC
+ mflr r8
+# define got_label GENERATE_GOT_LABEL (__CONTEXT_FUNC_NAME)
+ SETUP_GOT_ACCESS(r7,got_label)
+ addis r7,r7,_GLOBAL_OFFSET_TABLE_-got_label@ha
+ addi r7,r7,_GLOBAL_OFFSET_TABLE_-got_label@l
+# ifdef SHARED
+ lwz r7,_rtld_global_ro@got(r7)
+ mtlr r8
+ lwz r7,RTLD_GLOBAL_RO_DL_HWCAP_OFFSET+LOWORD(r7)
+# else
+ lwz r7,_dl_hwcap@got(r7)
+ mtlr r8
+ lwz r7,LOWORD(r7)
+# endif
+#else
+ lis r7,(_dl_hwcap+LOWORD)@ha
+ lwz r7,(_dl_hwcap+LOWORD)@l(r7)
+#endif
+
+#ifdef __CONTEXT_ENABLE_FPRS
+# ifdef __CONTEXT_ENABLE_VRS
+ andis. r6,r7,(PPC_FEATURE_HAS_ALTIVEC >> 16)
+ la r10,(_UC_VREGS)(r31)
+ beq 2f /* L(has_no_vec) */
+
+ lwz r0,(32*16)(r10)
+ li r9,(32*16)
+ cmpwi r0,0
+ mtspr VRSAVE,r0
+ beq 2f /* L(has_no_vec) */
+
+ lvx v19,r9,r10
+ la r9,(16)(r10)
+
+ lvx v0,0,r10
+ lvx v1,0,r9
+ addi r10,r10,32
+ addi r9,r9,32
+
+ mtvscr v19
+ lvx v2,0,r10
+ lvx v3,0,r9
+ addi r10,r10,32
+ addi r9,r9,32
+
+ lvx v4,0,r10
+ lvx v5,0,r9
+ addi r10,r10,32
+ addi r9,r9,32
+
+ lvx v6,0,r10
+ lvx v7,0,r9
+ addi r10,r10,32
+ addi r9,r9,32
+
+ lvx v8,0,r10
+ lvx v9,0,r9
+ addi r10,r10,32
+ addi r9,r9,32
+
+ lvx v10,0,r10
+ lvx v11,0,r9
+ addi r10,r10,32
+ addi r9,r9,32
+
+ lvx v12,0,r10
+ lvx v13,0,r9
+ addi r10,r10,32
+ addi r9,r9,32
+
+ lvx v14,0,r10
+ lvx v15,0,r9
+ addi r10,r10,32
+ addi r9,r9,32
+
+ lvx v16,0,r10
+ lvx v17,0,r9
+ addi r10,r10,32
+ addi r9,r9,32
+
+ lvx v18,0,r10
+ lvx v19,0,r9
+ addi r10,r10,32
+ addi r9,r9,32
+
+ lvx v20,0,r10
+ lvx v21,0,r9
+ addi r10,r10,32
+ addi r9,r9,32
+
+ lvx v22,0,r10
+ lvx v23,0,r9
+ addi r10,r10,32
+ addi r9,r9,32
+
+ lvx v24,0,r10
+ lvx v25,0,r9
+ addi r10,r10,32
+ addi r9,r9,32
+
+ lvx v26,0,r10
+ lvx v27,0,r9
+ addi r10,r10,32
+ addi r9,r9,32
+
+ lvx v28,0,r10
+ lvx v29,0,r9
+ addi r10,r10,32
+ addi r9,r9,32
+
+ lvx v30,0,r10
+ lvx v31,0,r9
+ addi r10,r10,32
+ addi r9,r9,32
+
+ lvx v10,0,r10
+ lvx v11,0,r9
+
+2: /* L(has_no_vec): */
+# endif /* __CONTEXT_ENABLE_VRS */
+ /* Restore the floating-point registers */
+ lfd fp31,_UC_FREGS+(32*8)(r31)
+ lfd fp0,_UC_FREGS+(0*8)(r31)
+# ifdef _ARCH_PWR6
+ /* Use the extended four-operand version of the mtfsf insn. */
+ mtfsf 0xff,fp31,1,0
+# else
+ .machine push
+ .machine "power6"
+ /* Availability of DFP indicates a 64-bit FPSCR. */
+ andi. r6,r7,PPC_FEATURE_HAS_DFP
+ beq 7f
+ /* Use the extended four-operand version of the mtfsf insn. */
+ mtfsf 0xff,fp31,1,0
+ b 8f
+ /* Continue to operate on the FPSCR as if it were 32-bits. */
+7: mtfsf 0xff,fp31
+8: .machine pop
+# endif /* _ARCH_PWR6 */
+ lfd fp1,_UC_FREGS+(1*8)(r31)
+ lfd fp2,_UC_FREGS+(2*8)(r31)
+ lfd fp3,_UC_FREGS+(3*8)(r31)
+ lfd fp4,_UC_FREGS+(4*8)(r31)
+ lfd fp5,_UC_FREGS+(5*8)(r31)
+ lfd fp6,_UC_FREGS+(6*8)(r31)
+ lfd fp7,_UC_FREGS+(7*8)(r31)
+ lfd fp8,_UC_FREGS+(8*8)(r31)
+ lfd fp9,_UC_FREGS+(9*8)(r31)
+ lfd fp10,_UC_FREGS+(10*8)(r31)
+ lfd fp11,_UC_FREGS+(11*8)(r31)
+ lfd fp12,_UC_FREGS+(12*8)(r31)
+ lfd fp13,_UC_FREGS+(13*8)(r31)
+ lfd fp14,_UC_FREGS+(14*8)(r31)
+ lfd fp15,_UC_FREGS+(15*8)(r31)
+ lfd fp16,_UC_FREGS+(16*8)(r31)
+ lfd fp17,_UC_FREGS+(17*8)(r31)
+ lfd fp18,_UC_FREGS+(18*8)(r31)
+ lfd fp19,_UC_FREGS+(19*8)(r31)
+ lfd fp20,_UC_FREGS+(20*8)(r31)
+ lfd fp21,_UC_FREGS+(21*8)(r31)
+ lfd fp22,_UC_FREGS+(22*8)(r31)
+ lfd fp23,_UC_FREGS+(23*8)(r31)
+ lfd fp24,_UC_FREGS+(24*8)(r31)
+ lfd fp25,_UC_FREGS+(25*8)(r31)
+ lfd fp26,_UC_FREGS+(26*8)(r31)
+ lfd fp27,_UC_FREGS+(27*8)(r31)
+ lfd fp28,_UC_FREGS+(28*8)(r31)
+ lfd fp29,_UC_FREGS+(29*8)(r31)
+ lfd fp30,_UC_FREGS+(30*8)(r31)
+ lfd fp31,_UC_FREGS+(31*8)(r31)
+#endif /* __CONTEXT_ENABLE_FPRS */
+
+#ifdef __CONTEXT_ENABLE_E500
+ setcontext_e500
+#endif
+
+ /* Restore LR and CCR, and set CTR to the NIP value */
+ lwz r3,_UC_GREGS+(PT_LNK*4)(r31)
+ lwz r4,_UC_GREGS+(PT_NIP*4)(r31)
+ lwz r5,_UC_GREGS+(PT_CCR*4)(r31)
+ mtlr r3
+ mtctr r4
+ mtcr r5
+
+ /* Restore the general registers */
+ lwz r1,_UC_GREGS+(PT_R1*4)(r31)
+ lwz r3,_UC_GREGS+(PT_R3*4)(r31)
+ lwz r4,_UC_GREGS+(PT_R4*4)(r31)
+ lwz r5,_UC_GREGS+(PT_R5*4)(r31)
+ lwz r6,_UC_GREGS+(PT_R6*4)(r31)
+ lwz r7,_UC_GREGS+(PT_R7*4)(r31)
+ lwz r8,_UC_GREGS+(PT_R8*4)(r31)
+ lwz r9,_UC_GREGS+(PT_R9*4)(r31)
+ lwz r10,_UC_GREGS+(PT_R10*4)(r31)
+ lwz r11,_UC_GREGS+(PT_R11*4)(r31)
+ lwz r12,_UC_GREGS+(PT_R12*4)(r31)
+ lwz r13,_UC_GREGS+(PT_R13*4)(r31)
+ lwz r14,_UC_GREGS+(PT_R14*4)(r31)
+ lwz r15,_UC_GREGS+(PT_R15*4)(r31)
+ lwz r16,_UC_GREGS+(PT_R16*4)(r31)
+ lwz r17,_UC_GREGS+(PT_R17*4)(r31)
+ lwz r18,_UC_GREGS+(PT_R18*4)(r31)
+ lwz r19,_UC_GREGS+(PT_R19*4)(r31)
+ lwz r20,_UC_GREGS+(PT_R20*4)(r31)
+ lwz r21,_UC_GREGS+(PT_R21*4)(r31)
+ lwz r22,_UC_GREGS+(PT_R22*4)(r31)
+ lwz r23,_UC_GREGS+(PT_R23*4)(r31)
+ lwz r24,_UC_GREGS+(PT_R24*4)(r31)
+ lwz r25,_UC_GREGS+(PT_R25*4)(r31)
+ lwz r26,_UC_GREGS+(PT_R26*4)(r31)
+ lwz r27,_UC_GREGS+(PT_R27*4)(r31)
+ lwz r28,_UC_GREGS+(PT_R28*4)(r31)
+ lwz r29,_UC_GREGS+(PT_R29*4)(r31)
+ lwz r30,_UC_GREGS+(PT_R30*4)(r31)
+ lwz r31,_UC_GREGS+(PT_R31*4)(r31)
+
+ bctr
+
+3: /* L(error_exit): */
+ lwz r31,12(r1)
+ lwz r0,20(r1)
+ addi r1,r1,16
+ mtlr r0
+ blr
+
+
+4: /* L(do_sigret): */
+ addi r1,r3,-0xd0
+ li r0,SYS_ify(rt_sigreturn)
+ sc
+ /* NOTREACHED */
+
+END (__CONTEXT_FUNC_NAME)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext.S b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext.S
new file mode 100644
index 0000000000..e24a692ebb
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext.S
@@ -0,0 +1,80 @@
+/* Jump to a new context.
+ Copyright (C) 2002-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#include <rtld-global-offsets.h>
+#include <shlib-compat.h>
+
+#define __ASSEMBLY__
+#include <asm/ptrace.h>
+#include "ucontext_i.h"
+
+#define __CONTEXT_FUNC_NAME __setcontext
+#define __CONTEXT_ENABLE_FPRS 1
+#define __CONTEXT_ENABLE_VRS 1
+
+/* Size of ucontext in GLIBC_2.3.4 and later. */
+#define _UC_SIZE_2_3_4 1184
+
+ .section ".text";
+ENTRY (__setcontext)
+ mr r4,r3
+ li r3,0
+ li r5,_UC_SIZE_2_3_4;
+ DO_CALL (SYS_ify (swapcontext));
+ bso- cr0,1f
+/* the kernel does not set the return code for the success case */
+ li r3,0
+ blr
+1:
+ b __syscall_error@local
+END(__setcontext)
+
+versioned_symbol (libc, __setcontext, setcontext, GLIBC_2_3_4)
+
+#if SHLIB_COMPAT (libc, GLIBC_2_3_3, GLIBC_2_3_4)
+
+ compat_text_section
+
+# undef __CONTEXT_FUNC_NAME
+# define __CONTEXT_FUNC_NAME __novec_setcontext
+# undef __CONTEXT_ENABLE_VRS
+
+# include "setcontext-common.S"
+
+ .previous
+
+compat_symbol (libc, __novec_setcontext, setcontext, GLIBC_2_3_3)
+
+#endif
+
+#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_3_3)
+
+# define _ERRNO_H 1
+# include <bits/errno.h>
+
+ compat_text_section
+ENTRY (__setcontext_stub)
+ li r3,ENOSYS
+ b __syscall_error@local
+END (__setcontext_stub)
+ .previous
+
+compat_symbol (libc, __setcontext_stub, setcontext, GLIBC_2_0)
+
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext-common.S b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext-common.S
new file mode 100644
index 0000000000..6696d540dc
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext-common.S
@@ -0,0 +1,529 @@
+/* Save current context and jump to a new context.
+ Copyright (C) 2005-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+/* This is the common implementation of setcontext for powerpc32.
+ It not complete in itself should be included in to a framework that
+ defines:
+ __CONTEXT_FUNC_NAME
+ and if appropriate:
+ __CONTEXT_ENABLE_FPRS
+ __CONTEXT_ENABLE_VRS
+ Any architecture that implements the Vector unit is assumed to also
+ implement the floating unit. */
+
+/* Stack frame offsets. */
+#define _FRAME_BACKCHAIN 0
+#define _FRAME_LR_SAVE 4
+#define _FRAME_PARM_SAVE1 8
+#define _FRAME_PARM_SAVE2 12
+#define _FRAME_PARM_SAVE3 16
+#define _FRAME_PARM_SAVE4 20
+
+#ifdef __CONTEXT_ENABLE_VRS
+ .machine "altivec"
+#endif
+ENTRY(__CONTEXT_FUNC_NAME)
+ stwu r1,-16(r1)
+ cfi_adjust_cfa_offset (16)
+/* Insure that the _UC_REGS start on a quadword boundary. */
+ stw r3,_FRAME_PARM_SAVE1(r1)
+ addi r3,r3,_UC_REG_SPACE+12
+ stw r4,_FRAME_PARM_SAVE2(r1) /* new context pointer */
+ clrrwi r3,r3,4
+
+/* Save the general purpose registers */
+ stw r0,_UC_GREGS+(PT_R0*4)(r3)
+ mflr r0
+ stw r2,_UC_GREGS+(PT_R2*4)(r3)
+ stw r4,_UC_GREGS+(PT_R4*4)(r3)
+/* Set the callers LR_SAVE, and the ucontext LR and NIP to the callers
+ return address. */
+ stw r0,_UC_GREGS+(PT_LNK*4)(r3)
+ stw r0,_UC_GREGS+(PT_NIP*4)(r3)
+ stw r0,_FRAME_LR_SAVE+16(r1)
+ cfi_offset (lr, _FRAME_LR_SAVE)
+ stw r5,_UC_GREGS+(PT_R5*4)(r3)
+ stw r6,_UC_GREGS+(PT_R6*4)(r3)
+ stw r7,_UC_GREGS+(PT_R7*4)(r3)
+ stw r8,_UC_GREGS+(PT_R8*4)(r3)
+ stw r9,_UC_GREGS+(PT_R9*4)(r3)
+ stw r10,_UC_GREGS+(PT_R10*4)(r3)
+ stw r11,_UC_GREGS+(PT_R11*4)(r3)
+ stw r12,_UC_GREGS+(PT_R12*4)(r3)
+ stw r13,_UC_GREGS+(PT_R13*4)(r3)
+ stw r14,_UC_GREGS+(PT_R14*4)(r3)
+ stw r15,_UC_GREGS+(PT_R15*4)(r3)
+ stw r16,_UC_GREGS+(PT_R16*4)(r3)
+ stw r17,_UC_GREGS+(PT_R17*4)(r3)
+ stw r18,_UC_GREGS+(PT_R18*4)(r3)
+ stw r19,_UC_GREGS+(PT_R19*4)(r3)
+ stw r20,_UC_GREGS+(PT_R20*4)(r3)
+ stw r21,_UC_GREGS+(PT_R21*4)(r3)
+ stw r22,_UC_GREGS+(PT_R22*4)(r3)
+ stw r23,_UC_GREGS+(PT_R23*4)(r3)
+ stw r24,_UC_GREGS+(PT_R24*4)(r3)
+ stw r25,_UC_GREGS+(PT_R25*4)(r3)
+ stw r26,_UC_GREGS+(PT_R26*4)(r3)
+ stw r27,_UC_GREGS+(PT_R27*4)(r3)
+ stw r28,_UC_GREGS+(PT_R28*4)(r3)
+ stw r29,_UC_GREGS+(PT_R29*4)(r3)
+ stw r30,_UC_GREGS+(PT_R30*4)(r3)
+ stw r31,_UC_GREGS+(PT_R31*4)(r3)
+
+/* Save the value of R1. We had to push the stack before we
+ had the address of uc_reg_space. So compute the address of
+ the callers stack pointer and save it as R1. */
+ addi r8,r1,16
+ li r0,0
+/* Save the count, exception and condition registers. */
+ mfctr r11
+ mfxer r10
+ mfcr r9
+ stw r8,_UC_GREGS+(PT_R1*4)(r3)
+ stw r11,_UC_GREGS+(PT_CTR*4)(r3)
+ stw r10,_UC_GREGS+(PT_XER*4)(r3)
+ stw r9,_UC_GREGS+(PT_CCR*4)(r3)
+/* Set the return value of getcontext to "success". R3 is the only
+ register whose value is not preserved in the saved context. */
+ stw r0,_UC_GREGS+(PT_R3*4)(r3)
+
+ /* Zero fill fields that can't be set in user state. */
+ stw r0,_UC_GREGS+(PT_MSR*4)(r3)
+ stw r0,_UC_GREGS+(PT_MQ*4)(r3)
+
+#ifdef __CONTEXT_ENABLE_FPRS
+ /* Save the floating-point registers */
+ stfd fp0,_UC_FREGS+(0*8)(r3)
+ stfd fp1,_UC_FREGS+(1*8)(r3)
+ stfd fp2,_UC_FREGS+(2*8)(r3)
+ stfd fp3,_UC_FREGS+(3*8)(r3)
+ stfd fp4,_UC_FREGS+(4*8)(r3)
+ stfd fp5,_UC_FREGS+(5*8)(r3)
+ stfd fp6,_UC_FREGS+(6*8)(r3)
+ stfd fp7,_UC_FREGS+(7*8)(r3)
+ stfd fp8,_UC_FREGS+(8*8)(r3)
+ stfd fp9,_UC_FREGS+(9*8)(r3)
+ stfd fp10,_UC_FREGS+(10*8)(r3)
+ stfd fp11,_UC_FREGS+(11*8)(r3)
+ stfd fp12,_UC_FREGS+(12*8)(r3)
+ stfd fp13,_UC_FREGS+(13*8)(r3)
+ stfd fp14,_UC_FREGS+(14*8)(r3)
+ stfd fp15,_UC_FREGS+(15*8)(r3)
+ stfd fp16,_UC_FREGS+(16*8)(r3)
+ stfd fp17,_UC_FREGS+(17*8)(r3)
+ stfd fp18,_UC_FREGS+(18*8)(r3)
+ stfd fp19,_UC_FREGS+(19*8)(r3)
+ stfd fp20,_UC_FREGS+(20*8)(r3)
+ stfd fp21,_UC_FREGS+(21*8)(r3)
+ stfd fp22,_UC_FREGS+(22*8)(r3)
+ stfd fp23,_UC_FREGS+(23*8)(r3)
+ stfd fp24,_UC_FREGS+(24*8)(r3)
+ stfd fp25,_UC_FREGS+(25*8)(r3)
+ stfd fp26,_UC_FREGS+(26*8)(r3)
+ stfd fp27,_UC_FREGS+(27*8)(r3)
+ stfd fp28,_UC_FREGS+(28*8)(r3)
+ stfd fp29,_UC_FREGS+(29*8)(r3)
+ mffs fp0
+ stfd fp30,_UC_FREGS+(30*8)(r3)
+ stfd fp31,_UC_FREGS+(31*8)(r3)
+ stfd fp0,_UC_FREGS+(32*8)(r3)
+
+# ifdef PIC
+ mflr r8
+# define got_label GENERATE_GOT_LABEL (__CONTEXT_FUNC_NAME)
+ SETUP_GOT_ACCESS(r7,got_label)
+ addis r7,r7,_GLOBAL_OFFSET_TABLE_-got_label@ha
+ addi r7,r7,_GLOBAL_OFFSET_TABLE_-got_label@l
+# ifdef SHARED
+ lwz r7,_rtld_global_ro@got(r7)
+ mtlr r8
+ lwz r7,RTLD_GLOBAL_RO_DL_HWCAP_OFFSET+LOWORD(r7)
+# else
+ lwz r7,_dl_hwcap@got(r7)
+ mtlr r8
+ lwz r7,LOWORD(r7)
+# endif
+# else
+ lis r7,(_dl_hwcap+LOWORD)@ha
+ lwz r7,(_dl_hwcap+LOWORD)@l(r7)
+# endif
+
+# ifdef __CONTEXT_ENABLE_VRS
+ andis. r6,r7,(PPC_FEATURE_HAS_ALTIVEC >> 16)
+
+ la r10,(_UC_VREGS)(r3)
+ la r9,(_UC_VREGS+16)(r3)
+
+/* beq L(no_vec)*/
+ beq 2f
+/* address of the combined VSCR/VSAVE quadword. */
+ la r8,(_UC_VREGS+512)(r3)
+
+/* Save the vector registers */
+ stvx v0,0,r10
+ stvx v1,0,r9
+ addi r10,r10,32
+ addi r9,r9,32
+/* We need to get the Vector Status and Control Register early to avoid
+ store order problems later with the VSAVE register that shares the
+ same quadword. */
+ mfvscr v0
+
+ stvx v2,0,r10
+ stvx v3,0,r9
+ addi r10,r10,32
+ addi r9,r9,32
+
+ stvx v0,0,r8
+
+ stvx v4,0,r10
+ stvx v5,0,r9
+ addi r10,r10,32
+ addi r9,r9,32
+
+ stvx v6,0,r10
+ stvx v7,0,r9
+ addi r10,r10,32
+ addi r9,r9,32
+
+ stvx v8,0,r10
+ stvx v9,0,r9
+ addi r10,r10,32
+ addi r9,r9,32
+
+ stvx v10,0,r10
+ stvx v11,0,r9
+ addi r10,r10,32
+ addi r9,r9,32
+
+ stvx v12,0,r10
+ stvx v13,0,r9
+ addi r10,r10,32
+ addi r9,r9,32
+
+ stvx v14,0,r10
+ stvx v15,0,r9
+ addi r10,r10,32
+ addi r9,r9,32
+
+ stvx v16,0,r10
+ stvx v17,0,r9
+ addi r10,r10,32
+ addi r9,r9,32
+
+ stvx v18,0,r10
+ stvx v19,0,r9
+ addi r10,r10,32
+ addi r9,r9,32
+
+ stvx v20,0,r10
+ stvx v21,0,r9
+ addi r10,r10,32
+ addi r9,r9,32
+
+ stvx v22,0,r10
+ stvx v23,0,r9
+ addi r10,r10,32
+ addi r9,r9,32
+
+ stvx v24,0,r10
+ stvx v25,0,r9
+ addi r10,r10,32
+ addi r9,r9,32
+
+ stvx v26,0,r10
+ stvx v27,0,r9
+ addi r10,r10,32
+ addi r9,r9,32
+
+ stvx v28,0,r10
+ stvx v29,0,r9
+ addi r10,r10,32
+ addi r9,r9,32
+
+ mfvscr v0
+ stvx v30,0,r10
+ stvx v31,0,r9
+ stw r0,0(r8)
+
+2: /*L(no_vec):*/
+# endif /* __CONTEXT_ENABLE_VRS */
+#endif /* __CONTEXT_ENABLE_FPRS */
+
+#ifdef __CONTEXT_ENABLE_E500
+ getcontext_e500
+#endif
+
+/* Restore ucontext (parm1) from stack. */
+ lwz r12,_FRAME_PARM_SAVE1(r1)
+ lwz r4,_FRAME_PARM_SAVE2(r1)
+ addi r4,r4,_UC_SIGMASK
+ stw r3,_UC_REGS_PTR(r12)
+ addi r5,r12,_UC_SIGMASK
+ li r3,SIG_SETMASK
+ bl __sigprocmask@local
+ cmpwi r3,0
+ bne 3f /* L(error_exit) */
+
+ /*
+ * If the new ucontext refers to the point where we were interrupted
+ * by a signal, we have to use the rt_sigreturn system call to
+ * return to the context so we get both LR and CTR restored.
+ *
+ * Otherwise, the context we are restoring is either just after
+ * a procedure call (getcontext/swapcontext) or at the beginning
+ * of a procedure call (makecontext), so we don't need to restore
+ * r0, xer, ctr. We don't restore r2 since it will be used as
+ * the TLS pointer.
+ */
+ lwz r4,_FRAME_PARM_SAVE2(r1)
+ lwz r31,_UC_REGS_PTR(r4)
+ lwz r0,_UC_GREGS+(PT_MSR*4)(r31)
+ cmpwi r0,0
+ bne 4f /* L(do_sigret) */
+
+#ifdef __CONTEXT_ENABLE_FPRS
+# ifdef __CONTEXT_ENABLE_VRS
+
+# ifdef PIC
+ mflr r8
+ SETUP_GOT_ACCESS(r7,got_label)
+ addis r7,r7,_GLOBAL_OFFSET_TABLE_-got_label@ha
+ addi r7,r7,_GLOBAL_OFFSET_TABLE_-got_label@l
+ mtlr r8
+# ifdef SHARED
+ lwz r7,_rtld_global_ro@got(r7)
+ lwz r7,RTLD_GLOBAL_RO_DL_HWCAP_OFFSET+LOWORD(r7)
+# else
+ lwz r7,_dl_hwcap@got(r7)
+ lwz r7,LOWORD(r7)
+# endif
+# else
+ lis r7,(_dl_hwcap+LOWORD)@ha
+ lwz r7,(_dl_hwcap+LOWORD)@l(r7)
+# endif
+ andis. r7,r7,(PPC_FEATURE_HAS_ALTIVEC >> 16)
+ la r10,(_UC_VREGS)(r31)
+ beq 6f /* L(has_no_vec) */
+
+ lwz r0,(32*16)(r10)
+ li r9,(32*16)
+ cmpwi r0,0
+ mtspr VRSAVE,r0
+ beq 6f /* L(has_no_vec) */
+
+ lvx v19,r9,r10
+ la r9,(16)(r10)
+
+ lvx v0,0,r10
+ lvx v1,0,r9
+ addi r10,r10,32
+ addi r9,r9,32
+
+ mtvscr v19
+ lvx v2,0,r10
+ lvx v3,0,r9
+ addi r10,r10,32
+ addi r9,r9,32
+
+ lvx v4,0,r10
+ lvx v5,0,r9
+ addi r10,r10,32
+ addi r9,r9,32
+
+ lvx v6,0,r10
+ lvx v7,0,r9
+ addi r10,r10,32
+ addi r9,r9,32
+
+ lvx v8,0,r10
+ lvx v9,0,r9
+ addi r10,r10,32
+ addi r9,r9,32
+
+ lvx v10,0,r10
+ lvx v11,0,r9
+ addi r10,r10,32
+ addi r9,r9,32
+
+ lvx v12,0,r10
+ lvx v13,0,r9
+ addi r10,r10,32
+ addi r9,r9,32
+
+ lvx v14,0,r10
+ lvx v15,0,r9
+ addi r10,r10,32
+ addi r9,r9,32
+
+ lvx v16,0,r10
+ lvx v17,0,r9
+ addi r10,r10,32
+ addi r9,r9,32
+
+ lvx v18,0,r10
+ lvx v19,0,r9
+ addi r10,r10,32
+ addi r9,r9,32
+
+ lvx v20,0,r10
+ lvx v21,0,r9
+ addi r10,r10,32
+ addi r9,r9,32
+
+ lvx v22,0,r10
+ lvx v23,0,r9
+ addi r10,r10,32
+ addi r9,r9,32
+
+ lvx v24,0,r10
+ lvx v25,0,r9
+ addi r10,r10,32
+ addi r9,r9,32
+
+ lvx v26,0,r10
+ lvx v27,0,r9
+ addi r10,r10,32
+ addi r9,r9,32
+
+ lvx v28,0,r10
+ lvx v29,0,r9
+ addi r10,r10,32
+ addi r9,r9,32
+
+ lvx v30,0,r10
+ lvx v31,0,r9
+ addi r10,r10,32
+ addi r9,r9,32
+
+ lvx v10,0,r10
+ lvx v11,0,r9
+
+6: /* L(has_no_vec): */
+# endif /* __CONTEXT_ENABLE_VRS */
+ /* Restore the floating-point registers */
+ lfd fp31,_UC_FREGS+(32*8)(r31)
+ lfd fp0,_UC_FREGS+(0*8)(r31)
+# ifdef _ARCH_PWR6
+ /* Use the extended four-operand version of the mtfsf insn. */
+ mtfsf 0xff,fp31,1,0
+# else
+ .machine push
+ .machine "power6"
+ /* Availability of DFP indicates a 64-bit FPSCR. */
+ andi. r6,r7,PPC_FEATURE_HAS_DFP
+ beq 7f
+ /* Use the extended four-operand version of the mtfsf insn. */
+ mtfsf 0xff,fp31,1,0
+ b 8f
+ /* Continue to operate on the FPSCR as if it were 32-bits. */
+7: mtfsf 0xff,fp31
+8: .machine pop
+#endif /* _ARCH_PWR6 */
+ lfd fp1,_UC_FREGS+(1*8)(r31)
+ lfd fp2,_UC_FREGS+(2*8)(r31)
+ lfd fp3,_UC_FREGS+(3*8)(r31)
+ lfd fp4,_UC_FREGS+(4*8)(r31)
+ lfd fp5,_UC_FREGS+(5*8)(r31)
+ lfd fp6,_UC_FREGS+(6*8)(r31)
+ lfd fp7,_UC_FREGS+(7*8)(r31)
+ lfd fp8,_UC_FREGS+(8*8)(r31)
+ lfd fp9,_UC_FREGS+(9*8)(r31)
+ lfd fp10,_UC_FREGS+(10*8)(r31)
+ lfd fp11,_UC_FREGS+(11*8)(r31)
+ lfd fp12,_UC_FREGS+(12*8)(r31)
+ lfd fp13,_UC_FREGS+(13*8)(r31)
+ lfd fp14,_UC_FREGS+(14*8)(r31)
+ lfd fp15,_UC_FREGS+(15*8)(r31)
+ lfd fp16,_UC_FREGS+(16*8)(r31)
+ lfd fp17,_UC_FREGS+(17*8)(r31)
+ lfd fp18,_UC_FREGS+(18*8)(r31)
+ lfd fp19,_UC_FREGS+(19*8)(r31)
+ lfd fp20,_UC_FREGS+(20*8)(r31)
+ lfd fp21,_UC_FREGS+(21*8)(r31)
+ lfd fp22,_UC_FREGS+(22*8)(r31)
+ lfd fp23,_UC_FREGS+(23*8)(r31)
+ lfd fp24,_UC_FREGS+(24*8)(r31)
+ lfd fp25,_UC_FREGS+(25*8)(r31)
+ lfd fp26,_UC_FREGS+(26*8)(r31)
+ lfd fp27,_UC_FREGS+(27*8)(r31)
+ lfd fp28,_UC_FREGS+(28*8)(r31)
+ lfd fp29,_UC_FREGS+(29*8)(r31)
+ lfd fp30,_UC_FREGS+(30*8)(r31)
+ lfd fp31,_UC_FREGS+(31*8)(r31)
+#endif /* __CONTEXT_ENABLE_FPRS */
+
+#ifdef __CONTEXT_ENABLE_E500
+ setcontext_e500
+#endif
+
+ /* Restore LR and CCR, and set CTR to the NIP value */
+ lwz r3,_UC_GREGS+(PT_LNK*4)(r31)
+ lwz r4,_UC_GREGS+(PT_NIP*4)(r31)
+ lwz r5,_UC_GREGS+(PT_CCR*4)(r31)
+ mtlr r3
+ mtctr r4
+ mtcr r5
+
+ /* Restore the general registers */
+ lwz r3,_UC_GREGS+(PT_R3*4)(r31)
+ lwz r4,_UC_GREGS+(PT_R4*4)(r31)
+ lwz r5,_UC_GREGS+(PT_R5*4)(r31)
+ lwz r6,_UC_GREGS+(PT_R6*4)(r31)
+ lwz r7,_UC_GREGS+(PT_R7*4)(r31)
+ lwz r8,_UC_GREGS+(PT_R8*4)(r31)
+ lwz r9,_UC_GREGS+(PT_R9*4)(r31)
+ lwz r10,_UC_GREGS+(PT_R10*4)(r31)
+ lwz r11,_UC_GREGS+(PT_R11*4)(r31)
+ lwz r12,_UC_GREGS+(PT_R12*4)(r31)
+ lwz r13,_UC_GREGS+(PT_R13*4)(r31)
+ lwz r14,_UC_GREGS+(PT_R14*4)(r31)
+ lwz r15,_UC_GREGS+(PT_R15*4)(r31)
+ lwz r16,_UC_GREGS+(PT_R16*4)(r31)
+ lwz r17,_UC_GREGS+(PT_R17*4)(r31)
+ lwz r18,_UC_GREGS+(PT_R18*4)(r31)
+ lwz r19,_UC_GREGS+(PT_R19*4)(r31)
+ lwz r20,_UC_GREGS+(PT_R20*4)(r31)
+ lwz r21,_UC_GREGS+(PT_R21*4)(r31)
+ lwz r22,_UC_GREGS+(PT_R22*4)(r31)
+ lwz r23,_UC_GREGS+(PT_R23*4)(r31)
+ lwz r24,_UC_GREGS+(PT_R24*4)(r31)
+ lwz r25,_UC_GREGS+(PT_R25*4)(r31)
+ lwz r26,_UC_GREGS+(PT_R26*4)(r31)
+ lwz r27,_UC_GREGS+(PT_R27*4)(r31)
+ lwz r28,_UC_GREGS+(PT_R28*4)(r31)
+ lwz r29,_UC_GREGS+(PT_R29*4)(r31)
+ lwz r30,_UC_GREGS+(PT_R30*4)(r31)
+ lwz r1,_UC_GREGS+(PT_R1*4)(r31)
+ lwz r31,_UC_GREGS+(PT_R31*4)(r31)
+
+ bctr
+
+3:/*L(error_exit):*/
+ lwz r0,_FRAME_LR_SAVE+16(r1)
+ addi r1,r1,16
+ mtlr r0
+ blr
+
+4:/*L(do_sigret):*/
+ addi r1,r4,-0xd0
+ li r0,SYS_ify(rt_sigreturn)
+ sc
+ /* NOTREACHED */
+
+END(__CONTEXT_FUNC_NAME)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext.S b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext.S
new file mode 100644
index 0000000000..491b560c6c
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext.S
@@ -0,0 +1,78 @@
+/* Save current context and jump to a new context.
+ Copyright (C) 2002-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#include <rtld-global-offsets.h>
+#include <shlib-compat.h>
+
+#define __ASSEMBLY__
+#include <asm/ptrace.h>
+#include "ucontext_i.h"
+
+#define __CONTEXT_FUNC_NAME __swapcontext
+#define __CONTEXT_ENABLE_FPRS 1
+#define __CONTEXT_ENABLE_VRS 1
+
+/* Size of ucontext in GLIBC_2.3.4 and later. */
+#define _UC_SIZE_2_3_4 1184
+
+ .section ".text";
+ENTRY (__swapcontext)
+ li r5,_UC_SIZE_2_3_4;
+ DO_CALL (SYS_ify (swapcontext));
+ bso- cr0,1f
+/* the kernel does not set the return code for the success case */
+ li r3,0
+ blr
+1:
+ b __syscall_error@local
+END(__swapcontext)
+
+versioned_symbol (libc, __swapcontext, swapcontext, GLIBC_2_3_4)
+
+#if SHLIB_COMPAT (libc, GLIBC_2_3_3, GLIBC_2_3_4)
+
+ compat_text_section
+
+# undef __CONTEXT_FUNC_NAME
+# define __CONTEXT_FUNC_NAME __novec_swapcontext
+# undef __CONTEXT_ENABLE_VRS
+
+# include "swapcontext-common.S"
+
+ .previous
+
+compat_symbol (libc, __novec_swapcontext, swapcontext, GLIBC_2_3_3)
+
+#endif
+
+#if SHLIB_COMPAT (libc, GLIBC_2_1, GLIBC_2_3_3)
+
+# define _ERRNO_H 1
+# include <bits/errno.h>
+
+ compat_text_section
+ENTRY (__swapcontext_stub)
+ li r3,ENOSYS
+ b __syscall_error@local
+END (__swapcontext_stub)
+ .previous
+
+compat_symbol (libc, __swapcontext_stub, swapcontext, GLIBC_2_1)
+
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/syscalls.list b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/syscalls.list
new file mode 100644
index 0000000000..931374776a
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/syscalls.list
@@ -0,0 +1,10 @@
+# File name Caller Syscall name # args Strong name Weak names
+
+chown - chown i:sii __chown chown@@GLIBC_2.1
+lchown - lchown i:sii __lchown lchown@@GLIBC_2.0 chown@GLIBC_2.0
+
+# Due to 64bit alignment there is a dummy second parameter
+readahead - readahead i:iiiii __readahead readahead
+
+prlimit64 EXTRA prlimit64 i:iipp prlimit64
+fanotify_mark EXTRA fanotify_mark i:iiiiis fanotify_mark
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h
new file mode 100644
index 0000000000..35d3f0508c
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h
@@ -0,0 +1,118 @@
+/* Cancellable system call stubs. Linux/PowerPC version.
+ Copyright (C) 2003-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Franz Sirl <Franz.Sirl-kernel@lauterbach.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) \
+ .section ".text"; \
+ ENTRY (name) \
+ SINGLE_THREAD_P; \
+ bne- .Lpseudo_cancel; \
+ .type __##syscall_name##_nocancel,@function; \
+ .globl __##syscall_name##_nocancel; \
+ __##syscall_name##_nocancel: \
+ DO_CALL (SYS_ify (syscall_name)); \
+ PSEUDO_RET; \
+ .size __##syscall_name##_nocancel,.-__##syscall_name##_nocancel; \
+ .Lpseudo_cancel: \
+ stwu 1,-48(1); \
+ cfi_adjust_cfa_offset (48); \
+ mflr 9; \
+ stw 9,52(1); \
+ cfi_offset (lr, 4); \
+ DOCARGS_##args; /* save syscall args around CENABLE. */ \
+ CENABLE; \
+ stw 3,16(1); /* store CENABLE return value (MASK). */ \
+ UNDOCARGS_##args; /* restore syscall args. */ \
+ DO_CALL (SYS_ify (syscall_name)); \
+ mfcr 0; /* save CR/R3 around CDISABLE. */ \
+ stw 3,8(1); \
+ stw 0,12(1); \
+ lwz 3,16(1); /* pass MASK to CDISABLE. */ \
+ CDISABLE; \
+ lwz 4,52(1); \
+ lwz 0,12(1); /* restore CR/R3. */ \
+ lwz 3,8(1); \
+ mtlr 4; \
+ mtcr 0; \
+ addi 1,1,48;
+
+# define DOCARGS_0
+# define UNDOCARGS_0
+
+# define DOCARGS_1 stw 3,20(1); DOCARGS_0
+# define UNDOCARGS_1 lwz 3,20(1); UNDOCARGS_0
+
+# define DOCARGS_2 stw 4,24(1); DOCARGS_1
+# define UNDOCARGS_2 lwz 4,24(1); UNDOCARGS_1
+
+# define DOCARGS_3 stw 5,28(1); DOCARGS_2
+# define UNDOCARGS_3 lwz 5,28(1); UNDOCARGS_2
+
+# define DOCARGS_4 stw 6,32(1); DOCARGS_3
+# define UNDOCARGS_4 lwz 6,32(1); UNDOCARGS_3
+
+# define DOCARGS_5 stw 7,36(1); DOCARGS_4
+# define UNDOCARGS_5 lwz 7,36(1); UNDOCARGS_4
+
+# define DOCARGS_6 stw 8,40(1); DOCARGS_5
+# define UNDOCARGS_6 lwz 8,40(1); UNDOCARGS_5
+
+# if IS_IN (libpthread)
+# define CENABLE bl __pthread_enable_asynccancel@local
+# define CDISABLE bl __pthread_disable_asynccancel@local
+# elif IS_IN (libc)
+# define CENABLE bl __libc_enable_asynccancel@local
+# define CDISABLE bl __libc_disable_asynccancel@local
+# elif IS_IN (librt)
+# define CENABLE bl __librt_enable_asynccancel@local
+# define CDISABLE bl __librt_disable_asynccancel@local
+# else
+# error Unsupported library
+# endif
+
+# ifndef __ASSEMBLER__
+# define SINGLE_THREAD_P \
+ __builtin_expect (THREAD_GETMEM (THREAD_SELF, \
+ header.multiple_threads) == 0, 1)
+# else
+# define SINGLE_THREAD_P \
+ lwz 10,MULTIPLE_THREADS_OFFSET(2); \
+ cmpwi 10,0
+# 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/powerpc/powerpc32/sysdep.h b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep.h
new file mode 100644
index 0000000000..a88f164961
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep.h
@@ -0,0 +1,234 @@
+/* Copyright (C) 1992-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _LINUX_POWERPC_SYSDEP_H
+#define _LINUX_POWERPC_SYSDEP_H 1
+
+#include <sysdeps/unix/sysv/linux/sysdep.h>
+#include <sysdeps/unix/powerpc/sysdep.h>
+#include <tls.h>
+
+/* For Linux we can use the system call table in the header file
+ /usr/include/asm/unistd.h
+ of the kernel. But these symbols do not follow the SYS_* syntax
+ so we have to redefine the `SYS_ify' macro here. */
+#undef SYS_ify
+#define SYS_ify(syscall_name) __NR_##syscall_name
+
+#ifndef __ASSEMBLER__
+
+# include <errno.h>
+
+/* Define a macro which expands inline into the wrapper code for a VDSO
+ call. This use is for internal calls that do not need to handle errors
+ normally. It will never touch errno.
+ On powerpc a system call basically clobbers the same registers like a
+ function call, with the exception of LR (which is needed for the
+ "sc; bnslr+" sequence) and CR (where only CR0.SO is clobbered to signal
+ an error return status). */
+# define INTERNAL_VSYSCALL_CALL_TYPE(funcptr, err, nr, type, args...) \
+ ({ \
+ register void *r0 __asm__ ("r0"); \
+ register long int r3 __asm__ ("r3"); \
+ register long int r4 __asm__ ("r4"); \
+ register long int r5 __asm__ ("r5"); \
+ register long int r6 __asm__ ("r6"); \
+ register long int r7 __asm__ ("r7"); \
+ register long int r8 __asm__ ("r8"); \
+ register long int r9 __asm__ ("r9"); \
+ register long int r10 __asm__ ("r10"); \
+ register long int r11 __asm__ ("r11"); \
+ register long int r12 __asm__ ("r12"); \
+ register type rval __asm__ ("r3"); \
+ LOADARGS_##nr (funcptr, args); \
+ __asm__ __volatile__ \
+ ("mtctr %0\n\t" \
+ "bctrl\n\t" \
+ "mfcr %0" \
+ : "+r" (r0), "+r" (r3), "+r" (r4), "+r" (r5), "+r" (r6), "+r" (r7), \
+ "+r" (r8), "+r" (r9), "+r" (r10), "+r" (r11), "+r" (r12) \
+ : : "cr0", "ctr", "lr", "memory"); \
+ err = (long int) r0; \
+ __asm__ __volatile__ ("" : "=r" (rval) : "r" (r3), "r" (r4)); \
+ rval; \
+ })
+
+#define INTERNAL_VSYSCALL_CALL(funcptr, err, nr, args...) \
+ INTERNAL_VSYSCALL_CALL_TYPE(funcptr, err, nr, long int, args)
+
+# undef INLINE_SYSCALL
+# define INLINE_SYSCALL(name, nr, args...) \
+ ({ \
+ INTERNAL_SYSCALL_DECL (sc_err); \
+ long int sc_ret = INTERNAL_SYSCALL (name, sc_err, nr, args); \
+ if (INTERNAL_SYSCALL_ERROR_P (sc_ret, sc_err)) \
+ { \
+ __set_errno (INTERNAL_SYSCALL_ERRNO (sc_ret, sc_err)); \
+ sc_ret = -1L; \
+ } \
+ sc_ret; \
+ })
+
+/* Define a macro which expands inline into the wrapper code for a system
+ call. This use is for internal calls that do not need to handle errors
+ normally. It will never touch errno.
+ On powerpc a system call basically clobbers the same registers like a
+ function call, with the exception of LR (which is needed for the
+ "sc; bnslr+" sequence) and CR (where only CR0.SO is clobbered to signal
+ an error return status). */
+
+# undef INTERNAL_SYSCALL_DECL
+# define INTERNAL_SYSCALL_DECL(err) long int err __attribute__ ((unused))
+
+# undef INTERNAL_SYSCALL
+# define INTERNAL_SYSCALL_NCS(name, err, nr, args...) \
+ ({ \
+ register long int r0 __asm__ ("r0"); \
+ register long int r3 __asm__ ("r3"); \
+ register long int r4 __asm__ ("r4"); \
+ register long int r5 __asm__ ("r5"); \
+ register long int r6 __asm__ ("r6"); \
+ register long int r7 __asm__ ("r7"); \
+ register long int r8 __asm__ ("r8"); \
+ register long int r9 __asm__ ("r9"); \
+ register long int r10 __asm__ ("r10"); \
+ register long int r11 __asm__ ("r11"); \
+ register long int r12 __asm__ ("r12"); \
+ LOADARGS_##nr(name, args); \
+ ABORT_TRANSACTION; \
+ __asm__ __volatile__ \
+ ("sc \n\t" \
+ "mfcr %0" \
+ : "=&r" (r0), \
+ "=&r" (r3), "=&r" (r4), "=&r" (r5), "=&r" (r6), "=&r" (r7), \
+ "=&r" (r8), "=&r" (r9), "=&r" (r10), "=&r" (r11), "=&r" (r12) \
+ : ASM_INPUT_##nr \
+ : "cr0", "ctr", "memory"); \
+ err = r0; \
+ (int) r3; \
+ })
+# define INTERNAL_SYSCALL(name, err, nr, args...) \
+ INTERNAL_SYSCALL_NCS (__NR_##name, err, nr, ##args)
+
+# undef INTERNAL_SYSCALL_ERROR_P
+# define INTERNAL_SYSCALL_ERROR_P(val, err) \
+ ((void) (val), __builtin_expect ((err) & (1 << 28), 0))
+
+# undef INTERNAL_SYSCALL_ERRNO
+# define INTERNAL_SYSCALL_ERRNO(val, err) (val)
+
+# define INTERNAL_VSYSCALL_NO_SYSCALL_FALLBACK(name, err, type, nr, args...) \
+ ({ \
+ type sc_ret = ENOSYS; \
+ \
+ __typeof (__vdso_##name) vdsop = __vdso_##name; \
+ PTR_DEMANGLE (vdsop); \
+ if (vdsop != NULL) \
+ sc_ret = \
+ INTERNAL_VSYSCALL_CALL_TYPE (vdsop, err, nr, type, ##args); \
+ else \
+ err = 1 << 28; \
+ sc_ret; \
+ })
+
+/* List of system calls which are supported as vsyscalls. */
+# define HAVE_CLOCK_GETRES_VSYSCALL 1
+# define HAVE_CLOCK_GETTIME_VSYSCALL 1
+# define HAVE_GETCPU_VSYSCALL 1
+
+
+# define LOADARGS_0(name, dummy) \
+ r0 = name
+# define LOADARGS_1(name, __arg1) \
+ long int arg1 = (long int) (__arg1); \
+ LOADARGS_0(name, 0); \
+ extern void __illegally_sized_syscall_arg1 (void); \
+ if (__builtin_classify_type (__arg1) != 5 && sizeof (__arg1) > 4) \
+ __illegally_sized_syscall_arg1 (); \
+ r3 = arg1
+# define LOADARGS_2(name, __arg1, __arg2) \
+ long int arg2 = (long int) (__arg2); \
+ LOADARGS_1(name, __arg1); \
+ extern void __illegally_sized_syscall_arg2 (void); \
+ if (__builtin_classify_type (__arg2) != 5 && sizeof (__arg2) > 4) \
+ __illegally_sized_syscall_arg2 (); \
+ r4 = arg2
+# define LOADARGS_3(name, __arg1, __arg2, __arg3) \
+ long int arg3 = (long int) (__arg3); \
+ LOADARGS_2(name, __arg1, __arg2); \
+ extern void __illegally_sized_syscall_arg3 (void); \
+ if (__builtin_classify_type (__arg3) != 5 && sizeof (__arg3) > 4) \
+ __illegally_sized_syscall_arg3 (); \
+ r5 = arg3
+# define LOADARGS_4(name, __arg1, __arg2, __arg3, __arg4) \
+ long int arg4 = (long int) (__arg4); \
+ LOADARGS_3(name, __arg1, __arg2, __arg3); \
+ extern void __illegally_sized_syscall_arg4 (void); \
+ if (__builtin_classify_type (__arg4) != 5 && sizeof (__arg4) > 4) \
+ __illegally_sized_syscall_arg4 (); \
+ r6 = arg4
+# define LOADARGS_5(name, __arg1, __arg2, __arg3, __arg4, __arg5) \
+ long int arg5 = (long int) (__arg5); \
+ LOADARGS_4(name, __arg1, __arg2, __arg3, __arg4); \
+ extern void __illegally_sized_syscall_arg5 (void); \
+ if (__builtin_classify_type (__arg5) != 5 && sizeof (__arg5) > 4) \
+ __illegally_sized_syscall_arg5 (); \
+ r7 = arg5
+# define LOADARGS_6(name, __arg1, __arg2, __arg3, __arg4, __arg5, __arg6) \
+ long int arg6 = (long int) (__arg6); \
+ LOADARGS_5(name, __arg1, __arg2, __arg3, __arg4, __arg5); \
+ extern void __illegally_sized_syscall_arg6 (void); \
+ if (__builtin_classify_type (__arg6) != 5 && sizeof (__arg6) > 4) \
+ __illegally_sized_syscall_arg6 (); \
+ r8 = arg6
+
+# define ASM_INPUT_0 "0" (r0)
+# define ASM_INPUT_1 ASM_INPUT_0, "1" (r3)
+# define ASM_INPUT_2 ASM_INPUT_1, "2" (r4)
+# define ASM_INPUT_3 ASM_INPUT_2, "3" (r5)
+# define ASM_INPUT_4 ASM_INPUT_3, "4" (r6)
+# define ASM_INPUT_5 ASM_INPUT_4, "5" (r7)
+# define ASM_INPUT_6 ASM_INPUT_5, "6" (r8)
+
+#endif /* __ASSEMBLER__ */
+
+
+/* Pointer mangling support. */
+#if IS_IN (rtld)
+/* We cannot use the thread descriptor because in ld.so we use setjmp
+ earlier than the descriptor is initialized. */
+#else
+# ifdef __ASSEMBLER__
+# define PTR_MANGLE(reg, tmpreg) \
+ lwz tmpreg,POINTER_GUARD(r2); \
+ xor reg,tmpreg,reg
+# define PTR_MANGLE2(reg, tmpreg) \
+ xor reg,tmpreg,reg
+# define PTR_MANGLE3(destreg, reg, tmpreg) \
+ lwz tmpreg,POINTER_GUARD(r2); \
+ xor destreg,tmpreg,reg
+# define PTR_DEMANGLE(reg, tmpreg) PTR_MANGLE (reg, tmpreg)
+# define PTR_DEMANGLE2(reg, tmpreg) PTR_MANGLE2 (reg, tmpreg)
+# define PTR_DEMANGLE3(destreg, reg, tmpreg) PTR_MANGLE3 (destreg, reg, tmpreg)
+# else
+# define PTR_MANGLE(var) \
+ (var) = (__typeof (var)) ((uintptr_t) (var) ^ THREAD_GET_POINTER_GUARD ())
+# define PTR_DEMANGLE(var) PTR_MANGLE (var)
+# endif
+#endif
+
+#endif /* linux/powerpc/powerpc32/sysdep.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/ucontext_i.sym b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/ucontext_i.sym
new file mode 100644
index 0000000000..293761f260
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/ucontext_i.sym
@@ -0,0 +1,26 @@
+#include <stddef.h>
+#include <signal.h>
+#include <sys/ucontext.h>
+
+--
+
+SIG_BLOCK
+SIG_SETMASK
+
+-- Offsets in ucontext_t.
+#define ucontext(member) offsetof (ucontext_t, member)
+_UC_LINK ucontext (uc_link)
+_UC_STACK_SP ucontext (uc_stack.ss_sp)
+_UC_STACK_SIZE ucontext (uc_stack.ss_size)
+_UC_REGS_PTR ucontext (uc_mcontext.uc_regs)
+_UC_SIGMASK ucontext (uc_sigmask)
+_UC_REG_SPACE ucontext (uc_reg_space)
+
+-- Offsets in mcontext_t.
+#define mcontext(member) offsetof (mcontext_t, member)
+_UC_GREGS mcontext (gregs)
+_UC_FREGS mcontext (fpregs)
+_UC_VREGS mcontext (vrregs)
+_UC_VREGS mcontext (vrregs)
+_UC_VSCR mcontext (vrregs.vscr)
+_UC_VRSAVE mcontext (vrregs.vrsave)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S
new file mode 100644
index 0000000000..d1529769fe
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S
@@ -0,0 +1,38 @@
+/* Copyright (C) 2003-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#define _ERRNO_H 1
+#include <bits/errno.h>
+#include <tcb-offsets.h>
+
+/* Clone the calling process, but without copying the whole address space.
+ The calling process is suspended until the new process exits or is
+ replaced by a call to `execve'. Return -1 for errors, 0 to the new process,
+ and the process ID of the new process to the old process. */
+
+ENTRY (__vfork)
+
+ DO_CALL (SYS_ify (vfork))
+
+ PSEUDO_RET
+
+PSEUDO_END (__vfork)
+libc_hidden_def (__vfork)
+
+weak_alias (__vfork, vfork)
+strong_alias (__vfork, __libc_vfork)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/xstat.c b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/xstat.c
new file mode 100644
index 0000000000..e9869f5508
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/xstat.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/i386/xstat.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/970/Implies b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/970/Implies
new file mode 100644
index 0000000000..76a32ce7b5
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/970/Implies
@@ -0,0 +1,2 @@
+powerpc/powerpc64/970/fpu
+powerpc/powerpc64/970
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/Implies b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/Implies
new file mode 100644
index 0000000000..8d91c80097
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/Implies
@@ -0,0 +1 @@
+unix/sysv/linux/wordsize-64
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/Versions b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/Versions
new file mode 100644
index 0000000000..a8e88b89db
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/Versions
@@ -0,0 +1,43 @@
+libc {
+ GLIBC_2.2 {
+ # functions used in other libraries
+
+ # g*
+ glob64;
+
+ # New rlimit interface
+ getrlimit; setrlimit; getrlimit64; setrlimit64;
+
+ # r*
+ readdir64; readdir64_r;
+
+ # s*
+ scandir64;
+ }
+ GLIBC_2.3.4 {
+ getcontext;
+ setcontext;
+ swapcontext;
+ }
+ GLIBC_2.17 {
+ __ppc_get_timebase_freq;
+ }
+}
+
+librt {
+ GLIBC_2.3.3 {
+ # Changed timer_t.
+ timer_create; timer_delete; timer_getoverrun; timer_gettime;
+ timer_settime;
+ }
+}
+
+libpthread {
+ GLIBC_2.3.4 {
+ longjmp; siglongjmp;
+ }
+ GLIBC_2.6 {
+ # Changed PTHREAD_STACK_MIN.
+ pthread_attr_setstack; pthread_attr_setstacksize;
+ }
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/____longjmp_chk.S b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/____longjmp_chk.S
new file mode 100644
index 0000000000..0941dd22a7
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/____longjmp_chk.S
@@ -0,0 +1,68 @@
+/* Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#include <rtld-global-offsets.h>
+
+ .section .rodata.str1.8,"aMS",@progbits,1
+ .align 3
+.LC0:
+ .string "longjmp causes uninitialized stack frame"
+ .section .toc,"aw"
+.LC1:
+ .tc .LC0[TC],.LC0
+ .text
+
+#define __longjmp ____longjmp_chk
+
+#define CHECK_SP(reg) \
+ cmpld reg, r1; \
+ bge+ .Lok; \
+ mflr r0; \
+ std r0,FRAME_LR_SAVE(r1); \
+ mr r31,r3; \
+ mr r30,r4; \
+ stdu r1,-FRAME_MIN_SIZE-32(r1); \
+ cfi_remember_state; \
+ cfi_adjust_cfa_offset (FRAME_MIN_SIZE+32); \
+ cfi_offset (lr, FRAME_LR_SAVE); \
+ li r3,0; \
+ addi r4,r1,FRAME_MIN_SIZE; \
+ li r0,__NR_sigaltstack; \
+ sc; \
+ /* Without working sigaltstack we cannot perform the test. */ \
+ bso .Lok2; \
+ lwz r0,FRAME_MIN_SIZE+8(r1); \
+ andi. r4,r0,1; \
+ beq .Lfail; \
+ ld r0,FRAME_MIN_SIZE+16(r1); \
+ ld r4,FRAME_MIN_SIZE(r1); \
+ add r4,r4,r0; \
+ sub r3,r3,reg; \
+ cmpld r3,r0; \
+ bge+ .Lok2; \
+.Lfail: \
+ ld r3,.LC1@toc(2); \
+ bl HIDDEN_JUMPTARGET (__fortify_fail); \
+ nop; \
+.Lok2: \
+ mr r3,r31; \
+ mr r4,r30; \
+ cfi_restore_state; \
+.Lok:
+
+#include <__longjmp-common.S>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/a2/Implies b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/a2/Implies
new file mode 100644
index 0000000000..39b19e9c1f
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/a2/Implies
@@ -0,0 +1,2 @@
+powerpc/powerpc64/a2/fpu
+powerpc/powerpc64/a2
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/brk.S b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/brk.S
new file mode 100644
index 0000000000..733f452b5a
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/brk.S
@@ -0,0 +1,43 @@
+/* brk system call for Linux. PowerPC64 version.
+ Copyright (C) 1995-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#define _ERRNO_H 1
+#include <bits/errno.h>
+
+ .comm __curbrk,8,8
+ .section ".toc","aw"
+.LC__curbrk:
+ .tc __curbrk[TC],__curbrk
+ .section ".text"
+ENTRY (__brk)
+ CALL_MCOUNT 1
+
+ std r3,-8(r1)
+ DO_CALL(SYS_ify(brk))
+ ld r6,-8(r1)
+ ld r5,.LC__curbrk@toc(r2)
+ std r3,0(r5)
+ cmpld r6,r3
+ li r3,0
+ blelr+
+ li r3,ENOMEM
+ TAIL_CALL_SYSCALL_ERROR
+END (__brk)
+
+weak_alias (__brk, brk)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/c++-types.data b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/c++-types.data
new file mode 100644
index 0000000000..23c11dc41b
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/c++-types.data
@@ -0,0 +1,67 @@
+blkcnt64_t:l
+blkcnt_t:l
+blksize_t:l
+caddr_t:Pc
+clockid_t:i
+clock_t:l
+daddr_t:i
+dev_t:m
+fd_mask:l
+fsblkcnt64_t:m
+fsblkcnt_t:m
+fsfilcnt64_t:m
+fsfilcnt_t:m
+fsid_t:8__fsid_t
+gid_t:j
+id_t:j
+ino64_t:m
+ino_t:m
+int16_t:s
+int32_t:i
+int64_t:l
+int8_t:a
+intptr_t:l
+key_t:i
+loff_t:l
+mode_t:j
+nlink_t:m
+off64_t:l
+off_t:l
+pid_t:i
+pthread_attr_t:14pthread_attr_t
+pthread_barrier_t:17pthread_barrier_t
+pthread_barrierattr_t:21pthread_barrierattr_t
+pthread_cond_t:14pthread_cond_t
+pthread_condattr_t:18pthread_condattr_t
+pthread_key_t:j
+pthread_mutex_t:15pthread_mutex_t
+pthread_mutexattr_t:19pthread_mutexattr_t
+pthread_once_t:i
+pthread_rwlock_t:16pthread_rwlock_t
+pthread_rwlockattr_t:20pthread_rwlockattr_t
+pthread_spinlock_t:i
+pthread_t:m
+quad_t:l
+register_t:l
+rlim64_t:m
+rlim_t:m
+sigset_t:10__sigset_t
+size_t:m
+socklen_t:j
+ssize_t:l
+suseconds_t:l
+time_t:l
+u_char:h
+uid_t:j
+uint:j
+u_int:j
+u_int16_t:t
+u_int32_t:j
+u_int64_t:m
+u_int8_t:h
+ulong:m
+u_long:m
+u_quad_t:m
+useconds_t:j
+ushort:t
+u_short:t
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/cell/Implies b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/cell/Implies
new file mode 100644
index 0000000000..583d4084a4
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/cell/Implies
@@ -0,0 +1,2 @@
+powerpc/powerpc64/cell/fpu
+powerpc/powerpc64/cell
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/cell/fpu/Implies b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/cell/fpu/Implies
new file mode 100644
index 0000000000..b6720ecda5
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/cell/fpu/Implies
@@ -0,0 +1 @@
+powerpc/powerpc64/cell/fpu
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/clone.S b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/clone.S
new file mode 100644
index 0000000000..9e5bfd2d03
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/clone.S
@@ -0,0 +1,119 @@
+/* Wrapper around clone system call. PowerPC64 version.
+ Copyright (C) 1997-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#define _ERRNO_H 1
+#include <bits/errno.h>
+
+#define CLONE_VM 0x00000100
+#define CLONE_THREAD 0x00010000
+
+/* This is the only really unusual system call in PPC linux, but not
+ because of any weirdness in the system call itself; because of
+ all the freaky stuff we have to do to make the call useful. */
+
+/* int [r3] clone(int (*fn)(void *arg) [r3], void *child_stack [r4],
+ int flags [r5], void *arg [r6], void *parent_tid [r7],
+ void *tls [r8], void *child_tid [r9]); */
+
+ENTRY (__clone)
+ CALL_MCOUNT 7
+
+ /* Check for child_stack == NULL || fn == NULL. */
+ cmpdi cr0,r4,0
+ cmpdi cr1,r3,0
+ cror cr0*4+eq,cr1*4+eq,cr0*4+eq
+ beq- cr0,L(badargs)
+
+ /* Save some regs in the "red zone". */
+ std r29,-24(r1)
+ std r30,-16(r1)
+ std r31,-8(r1)
+ cfi_offset(r29,-24)
+ cfi_offset(r30,-16)
+ cfi_offset(r31,-8)
+
+ /* Set up stack frame for child. */
+ clrrdi r4,r4,4
+ li r0,0
+ stdu r0,-FRAME_MIN_SIZE_PARM(r4)
+
+ /* Save fn, args, stack across syscall. */
+ mr r30,r3 /* Function in r30. */
+ mr r29,r5 /* Flags in r29. */
+ mr r31,r6 /* Argument in r31. */
+
+ /* 'flags' argument is first parameter to clone syscall.
+ Second is the stack pointer, already in r4. */
+ mr r3,r5
+ /* Move the parent_tid, child_tid and tls arguments. */
+ mr r5,r7
+ mr r6,r8
+ mr r7,r9
+
+ /* End FDE now, because in the child the unwind info will be
+ wrong. */
+ cfi_endproc
+
+ /* Do the call. */
+ DO_CALL(SYS_ify(clone))
+
+ /* Check for child process. */
+ cmpdi cr1,r3,0
+ crandc cr1*4+eq,cr1*4+eq,cr0*4+so
+ bne- cr1,L(parent) /* The '-' is to minimise the race. */
+
+ std r2,FRAME_TOC_SAVE(r1)
+ /* Call procedure. */
+ PPC64_LOAD_FUNCPTR r30
+ mr r3,r31
+ bctrl
+ ld r2,FRAME_TOC_SAVE(r1)
+ /* Call _exit with result from procedure. */
+#ifdef SHARED
+ b JUMPTARGET(__GI__exit)
+#else
+ bl JUMPTARGET(_exit)
+ /* We won't ever get here but provide a nop so that the linker
+ will insert a toc adjusting stub if necessary. */
+ nop
+#endif
+
+L(badargs):
+ cfi_startproc
+ li r3,EINVAL
+ TAIL_CALL_SYSCALL_ERROR
+
+L(parent):
+ /* Parent. Restore registers & return. */
+ cfi_offset(r29,-24)
+ cfi_offset(r30,-16)
+ cfi_offset(r31,-8)
+ ld r29,-24(r1)
+ ld r30,-16(r1)
+ ld r31,-8(r1)
+ cfi_restore(r29)
+ cfi_restore(r30)
+ cfi_restore(r31)
+
+ PSEUDO_RET
+
+END (__clone)
+
+libc_hidden_def (__clone)
+weak_alias (__clone, clone)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/configure b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/configure
new file mode 100644
index 0000000000..4e7fcf1d97
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/configure
@@ -0,0 +1,233 @@
+# This file is generated from configure.ac by Autoconf. DO NOT EDIT!
+ # Local configure fragment for sysdeps/unix/sysv/linux/powerpc/powerpc64/.
+
+test -n "$libc_cv_slibdir" ||
+case "$prefix" in
+/usr | /usr/)
+ libc_cv_slibdir=/lib64
+ libc_cv_rtlddir=/lib64
+ if test "$libdir" = '${exec_prefix}/lib'; then
+ libdir='${exec_prefix}/lib64';
+ # Locale data can be shared between 32-bit and 64-bit libraries.
+ libc_cv_complocaledir='${exec_prefix}/lib/locale'
+ fi
+ ;;
+esac
+
+# Define default-abi according to compiler flags.
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
+$as_echo_n "checking for grep that handles long lines and -e... " >&6; }
+if ${ac_cv_path_GREP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -z "$GREP"; then
+ ac_path_GREP_found=false
+ # Loop through the user's path and test for each of PROGNAME-LIST
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_prog in grep ggrep; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
+ as_fn_executable_p "$ac_path_GREP" || continue
+# Check for GNU ac_path_GREP and select it if it is found.
+ # Check for GNU $ac_path_GREP
+case `"$ac_path_GREP" --version 2>&1` in
+*GNU*)
+ ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;
+*)
+ ac_count=0
+ $as_echo_n 0123456789 >"conftest.in"
+ while :
+ do
+ cat "conftest.in" "conftest.in" >"conftest.tmp"
+ mv "conftest.tmp" "conftest.in"
+ cp "conftest.in" "conftest.nl"
+ $as_echo 'GREP' >> "conftest.nl"
+ "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
+ diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+ as_fn_arith $ac_count + 1 && ac_count=$as_val
+ if test $ac_count -gt ${ac_path_GREP_max-0}; then
+ # Best one so far, save it but keep looking for a better one
+ ac_cv_path_GREP="$ac_path_GREP"
+ ac_path_GREP_max=$ac_count
+ fi
+ # 10*(2^10) chars as input seems more than enough
+ test $ac_count -gt 10 && break
+ done
+ rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+ $ac_path_GREP_found && break 3
+ done
+ done
+ done
+IFS=$as_save_IFS
+ if test -z "$ac_cv_path_GREP"; then
+ as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+ fi
+else
+ ac_cv_path_GREP=$GREP
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5
+$as_echo "$ac_cv_path_GREP" >&6; }
+ GREP="$ac_cv_path_GREP"
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
+$as_echo_n "checking for egrep... " >&6; }
+if ${ac_cv_path_EGREP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
+ then ac_cv_path_EGREP="$GREP -E"
+ else
+ if test -z "$EGREP"; then
+ ac_path_EGREP_found=false
+ # Loop through the user's path and test for each of PROGNAME-LIST
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_prog in egrep; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
+ as_fn_executable_p "$ac_path_EGREP" || continue
+# Check for GNU ac_path_EGREP and select it if it is found.
+ # Check for GNU $ac_path_EGREP
+case `"$ac_path_EGREP" --version 2>&1` in
+*GNU*)
+ ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;;
+*)
+ ac_count=0
+ $as_echo_n 0123456789 >"conftest.in"
+ while :
+ do
+ cat "conftest.in" "conftest.in" >"conftest.tmp"
+ mv "conftest.tmp" "conftest.in"
+ cp "conftest.in" "conftest.nl"
+ $as_echo 'EGREP' >> "conftest.nl"
+ "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
+ diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+ as_fn_arith $ac_count + 1 && ac_count=$as_val
+ if test $ac_count -gt ${ac_path_EGREP_max-0}; then
+ # Best one so far, save it but keep looking for a better one
+ ac_cv_path_EGREP="$ac_path_EGREP"
+ ac_path_EGREP_max=$ac_count
+ fi
+ # 10*(2^10) chars as input seems more than enough
+ test $ac_count -gt 10 && break
+ done
+ rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+ $ac_path_EGREP_found && break 3
+ done
+ done
+ done
+IFS=$as_save_IFS
+ if test -z "$ac_cv_path_EGREP"; then
+ as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+ fi
+else
+ ac_cv_path_EGREP=$EGREP
+fi
+
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5
+$as_echo "$ac_cv_path_EGREP" >&6; }
+ EGREP="$ac_cv_path_EGREP"
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler is using the PowerPC64 ELFv2 ABI" >&5
+$as_echo_n "checking whether the compiler is using the PowerPC64 ELFv2 ABI... " >&6; }
+if ${libc_cv_ppc64_elfv2_abi+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#if _CALL_ELF == 2
+ yes
+ #endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "yes" >/dev/null 2>&1; then :
+ libc_cv_ppc64_elfv2_abi=yes
+else
+ libc_cv_ppc64_elfv2_abi=no
+fi
+rm -f conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_ppc64_elfv2_abi" >&5
+$as_echo "$libc_cv_ppc64_elfv2_abi" >&6; }
+if test $libc_cv_ppc64_elfv2_abi = yes; then
+ config_vars="$config_vars
+default-abi = 64-v2"
+ # For shlib-versions.
+ $as_echo "#define HAVE_ELFV2_ABI 1" >>confdefs.h
+
+else
+ config_vars="$config_vars
+default-abi = 64-v1"
+ # Compiler that do not support ELFv2 ABI does not define _CALL_ELF
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler defines _CALL_ELF" >&5
+$as_echo_n "checking whether the compiler defines _CALL_ELF... " >&6; }
+if ${libc_cv_ppc64_def_call_elf+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#ifdef _CALL_ELF
+ yes
+ #endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "yes" >/dev/null 2>&1; then :
+ libc_cv_ppc64_def_call_elf=yes
+else
+ libc_cv_ppc64_def_call_elf=no
+fi
+rm -f conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_ppc64_def_call_elf" >&5
+$as_echo "$libc_cv_ppc64_def_call_elf" >&6; }
+ if test $libc_cv_ppc64_def_call_elf = no; then
+ libc_extra_cppflags="$libc_extra_cppflags -D_CALL_ELF=1"
+ fi
+fi
+# Set minimum kernel version for ppc64le.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the machine type to set minimum kernel version" >&5
+$as_echo_n "checking the machine type to set minimum kernel version... " >&6; }
+if ${libc_cv_ppc64_le+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
+ yes
+ #endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "yes" >/dev/null 2>&1; then :
+ arch_minimum_kernel=3.10.0
+else
+ libc_cv_ppc64_le=no
+fi
+rm -f conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_ppc64_le" >&5
+$as_echo "$libc_cv_ppc64_le" >&6; }
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/configure.ac b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/configure.ac
new file mode 100644
index 0000000000..f9cba6e15d
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/configure.ac
@@ -0,0 +1,36 @@
+GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
+# Local configure fragment for sysdeps/unix/sysv/linux/powerpc/powerpc64/.
+
+LIBC_SLIBDIR_RTLDDIR([lib64], [lib64])
+
+# Define default-abi according to compiler flags.
+AC_CACHE_CHECK([whether the compiler is using the PowerPC64 ELFv2 ABI],
+ [libc_cv_ppc64_elfv2_abi],
+ [AC_EGREP_CPP(yes,[#if _CALL_ELF == 2
+ yes
+ #endif
+ ], libc_cv_ppc64_elfv2_abi=yes, libc_cv_ppc64_elfv2_abi=no)])
+if test $libc_cv_ppc64_elfv2_abi = yes; then
+ LIBC_CONFIG_VAR([default-abi], [64-v2])
+ # For shlib-versions.
+ AC_DEFINE(HAVE_ELFV2_ABI)
+else
+ LIBC_CONFIG_VAR([default-abi], [64-v1])
+ # Compiler that do not support ELFv2 ABI does not define _CALL_ELF
+ AC_CACHE_CHECK([whether the compiler defines _CALL_ELF],
+ [libc_cv_ppc64_def_call_elf],
+ [AC_EGREP_CPP(yes,[#ifdef _CALL_ELF
+ yes
+ #endif
+ ], libc_cv_ppc64_def_call_elf=yes, libc_cv_ppc64_def_call_elf=no)])
+ if test $libc_cv_ppc64_def_call_elf = no; then
+ libc_extra_cppflags="$libc_extra_cppflags -D_CALL_ELF=1"
+ fi
+fi
+# Set minimum kernel version for ppc64le.
+AC_CACHE_CHECK([the machine type to set minimum kernel version],
+ [libc_cv_ppc64_le],
+ [AC_EGREP_CPP(yes,[#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
+ yes
+ #endif
+ ], arch_minimum_kernel=3.10.0, libc_cv_ppc64_le=no)])
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/dl-cache.h b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/dl-cache.h
new file mode 100644
index 0000000000..44eb95c693
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/dl-cache.h
@@ -0,0 +1,24 @@
+/* Support for reading /etc/ld.so.cache files written by Linux ldconfig.
+ Copyright (C) 2002-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#define _DL_CACHE_DEFAULT_ID 0x503
+
+#define _dl_cache_check_flags(flags) \
+ ((flags) == _DL_CACHE_DEFAULT_ID)
+
+#include_next <dl-cache.h>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/fcntl.c b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/fcntl.c
new file mode 100644
index 0000000000..85ae8a2752
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/fcntl.c
@@ -0,0 +1,65 @@
+/* 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 <assert.h>
+#include <errno.h>
+#include <sysdep-cancel.h> /* Must come before <fcntl.h>. */
+#include <fcntl.h>
+#include <stdarg.h>
+
+#include <sys/syscall.h>
+
+
+#ifndef NO_CANCELLATION
+int
+__fcntl_nocancel (int fd, int cmd, ...)
+{
+ va_list ap;
+ void *arg;
+
+ va_start (ap, cmd);
+ arg = va_arg (ap, void *);
+ va_end (ap);
+
+ return INLINE_SYSCALL (fcntl, 3, fd, cmd, arg);
+}
+#endif
+
+
+int
+__libc_fcntl (int fd, int cmd, ...)
+{
+ va_list ap;
+ void *arg;
+
+ va_start (ap, cmd);
+ arg = va_arg (ap, void *);
+ va_end (ap);
+
+ if (cmd >= F_GETLK64 && cmd <= F_SETLKW64)
+ cmd -= F_GETLK64 - F_GETLK;
+
+ if (cmd != F_SETLKW)
+ return INLINE_SYSCALL (fcntl, 3, fd, cmd, arg);
+
+ return SYSCALL_CANCEL (fcntl, fd, cmd, arg);
+}
+libc_hidden_def (__libc_fcntl)
+
+weak_alias (__libc_fcntl, __fcntl)
+libc_hidden_weak (__fcntl)
+weak_alias (__libc_fcntl, fcntl)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/fpu/fe_mask.c b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/fpu/fe_mask.c
new file mode 100644
index 0000000000..494d4931af
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/fpu/fe_mask.c
@@ -0,0 +1,35 @@
+/* Procedure definition for FE_MASK_ENV for Linux/ppc64.
+ Copyright (C) 2007-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <fenv.h>
+#include <errno.h>
+#include <sysdep.h>
+#include <sys/syscall.h>
+#include <sys/prctl.h>
+
+const fenv_t *
+__fe_mask_env (void)
+{
+#if defined PR_SET_FPEXC && defined PR_FP_EXC_DISABLED
+ INTERNAL_SYSCALL_DECL (err);
+ INTERNAL_SYSCALL (prctl, err, 2, PR_SET_FPEXC, PR_FP_EXC_DISABLED);
+#else
+ __set_errno (ENOSYS);
+#endif
+ return FE_DFL_ENV;
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/fpu/fe_nomask.c b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/fpu/fe_nomask.c
new file mode 100644
index 0000000000..dc2252b936
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/fpu/fe_nomask.c
@@ -0,0 +1,39 @@
+/* Procedure definition for FE_NOMASK_ENV for Linux/ppc64.
+ 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 <fenv_libc.h>
+#include <errno.h>
+#include <sysdep.h>
+#include <sys/syscall.h>
+#include <sys/prctl.h>
+#include <shlib-compat.h>
+
+const fenv_t *
+__fe_nomask_env_priv (void)
+{
+#if defined PR_SET_FPEXC && defined PR_FP_EXC_PRECISE
+ INTERNAL_SYSCALL_DECL (err);
+ INTERNAL_SYSCALL (prctl, err, 2, PR_SET_FPEXC, PR_FP_EXC_PRECISE);
+#else
+ __set_errno (ENOSYS);
+#endif
+ return FE_ENABLED_ENV;
+}
+#if SHLIB_COMPAT (libm, GLIBC_2_3, GLIBC_2_19)
+compat_symbol (libm, __fe_nomask_env_priv, __fe_nomask_env, GLIBC_2_3);
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/getcontext.S b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/getcontext.S
new file mode 100644
index 0000000000..49e7a5f272
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/getcontext.S
@@ -0,0 +1,383 @@
+/* Save current context.
+ Copyright (C) 2002-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#include <rtld-global-offsets.h>
+#include <shlib-compat.h>
+
+#define __ASSEMBLY__
+#include <asm/ptrace.h>
+#include <asm/errno.h>
+#include "ucontext_i.h"
+
+
+#if SHLIB_COMPAT (libc, GLIBC_2_3, GLIBC_2_3_4)
+ENTRY(__novec_getcontext)
+ CALL_MCOUNT 1
+ std r0,(SIGCONTEXT_GP_REGS+(PT_R0*8))(r3)
+ std r1,(SIGCONTEXT_GP_REGS+(PT_R1*8))(r3)
+ mflr r0
+ std r2,(SIGCONTEXT_GP_REGS+(PT_R2*8))(r3)
+ std r0,FRAME_LR_SAVE(r1)
+ cfi_offset (lr, FRAME_LR_SAVE)
+ std r0,(SIGCONTEXT_GP_REGS+(PT_LNK*8))(r3)
+ std r0,(SIGCONTEXT_GP_REGS+(PT_NIP*8))(r3)
+ stdu r1,-128(r1)
+ cfi_adjust_cfa_offset (128)
+ std r4,(SIGCONTEXT_GP_REGS+(PT_R4*8))(r3)
+ std r5,(SIGCONTEXT_GP_REGS+(PT_R5*8))(r3)
+ std r6,(SIGCONTEXT_GP_REGS+(PT_R6*8))(r3)
+ std r7,(SIGCONTEXT_GP_REGS+(PT_R7*8))(r3)
+ std r8,(SIGCONTEXT_GP_REGS+(PT_R8*8))(r3)
+ std r9,(SIGCONTEXT_GP_REGS+(PT_R9*8))(r3)
+ std r10,(SIGCONTEXT_GP_REGS+(PT_R10*8))(r3)
+ std r11,(SIGCONTEXT_GP_REGS+(PT_R11*8))(r3)
+ std r12,(SIGCONTEXT_GP_REGS+(PT_R12*8))(r3)
+ std r13,(SIGCONTEXT_GP_REGS+(PT_R13*8))(r3)
+ std r14,(SIGCONTEXT_GP_REGS+(PT_R14*8))(r3)
+ std r15,(SIGCONTEXT_GP_REGS+(PT_R15*8))(r3)
+ std r16,(SIGCONTEXT_GP_REGS+(PT_R16*8))(r3)
+ std r17,(SIGCONTEXT_GP_REGS+(PT_R17*8))(r3)
+ std r18,(SIGCONTEXT_GP_REGS+(PT_R18*8))(r3)
+ std r19,(SIGCONTEXT_GP_REGS+(PT_R19*8))(r3)
+ std r20,(SIGCONTEXT_GP_REGS+(PT_R20*8))(r3)
+ std r21,(SIGCONTEXT_GP_REGS+(PT_R21*8))(r3)
+ std r22,(SIGCONTEXT_GP_REGS+(PT_R22*8))(r3)
+ std r23,(SIGCONTEXT_GP_REGS+(PT_R23*8))(r3)
+ std r24,(SIGCONTEXT_GP_REGS+(PT_R24*8))(r3)
+ std r25,(SIGCONTEXT_GP_REGS+(PT_R25*8))(r3)
+ std r26,(SIGCONTEXT_GP_REGS+(PT_R26*8))(r3)
+ std r27,(SIGCONTEXT_GP_REGS+(PT_R27*8))(r3)
+ std r28,(SIGCONTEXT_GP_REGS+(PT_R28*8))(r3)
+ std r29,(SIGCONTEXT_GP_REGS+(PT_R29*8))(r3)
+ std r30,(SIGCONTEXT_GP_REGS+(PT_R30*8))(r3)
+ std r31,(SIGCONTEXT_GP_REGS+(PT_R31*8))(r3)
+ mfctr r0
+ std r0,(SIGCONTEXT_GP_REGS+(PT_CTR*8))(r3)
+ mfxer r0
+ std r0,(SIGCONTEXT_GP_REGS+(PT_XER*8))(r3)
+ mfcr r0
+ std r0,(SIGCONTEXT_GP_REGS+(PT_CCR*8))(r3)
+
+ /* Set the return value of swapcontext to "success". R3 is the only
+ register whose value is not preserved in the saved context. */
+ li r0,0
+ std r0,(SIGCONTEXT_GP_REGS+(PT_R3*8))(r3)
+
+ /* Zero fill fields that can't be set in user state or are unused. */
+ std r0,(SIGCONTEXT_GP_REGS+(PT_MSR*8))(r3)
+ std r0,(SIGCONTEXT_GP_REGS+(34*8))(r3)
+ std r0,(SIGCONTEXT_GP_REGS+(PT_SOFTE*8))(r3)
+ std r0,(SIGCONTEXT_GP_REGS+(40*8))(r3)
+ std r0,(SIGCONTEXT_GP_REGS+(41*8))(r3)
+ std r0,(SIGCONTEXT_GP_REGS+(42*8))(r3)
+ std r0,(SIGCONTEXT_GP_REGS+(PT_RESULT*8))(r3)
+
+ /* Set the PT_REGS pointer to the address of sigcontext's gp_regs
+ field. Struct pt_regs and elf_gregset_t are the same thing.
+ We kept the regs field for backwards compatibility with
+ libraries built before we extended sigcontext. */
+ addi r0,r3,SIGCONTEXT_GP_REGS
+ std r0,SIGCONTEXT_PT_REGS(r3)
+
+ stfd fp0,(SIGCONTEXT_FP_REGS+(PT_R0*8))(r3)
+ stfd fp1,(SIGCONTEXT_FP_REGS+(PT_R1*8))(r3)
+ stfd fp2,(SIGCONTEXT_FP_REGS+(PT_R2*8))(r3)
+ stfd fp3,(SIGCONTEXT_FP_REGS+(PT_R3*8))(r3)
+ stfd fp4,(SIGCONTEXT_FP_REGS+(PT_R4*8))(r3)
+ stfd fp5,(SIGCONTEXT_FP_REGS+(PT_R5*8))(r3)
+ stfd fp6,(SIGCONTEXT_FP_REGS+(PT_R6*8))(r3)
+ stfd fp7,(SIGCONTEXT_FP_REGS+(PT_R7*8))(r3)
+ stfd fp8,(SIGCONTEXT_FP_REGS+(PT_R8*8))(r3)
+ stfd fp9,(SIGCONTEXT_FP_REGS+(PT_R9*8))(r3)
+ stfd fp10,(SIGCONTEXT_FP_REGS+(PT_R10*8))(r3)
+ stfd fp11,(SIGCONTEXT_FP_REGS+(PT_R11*8))(r3)
+ stfd fp12,(SIGCONTEXT_FP_REGS+(PT_R12*8))(r3)
+ stfd fp13,(SIGCONTEXT_FP_REGS+(PT_R13*8))(r3)
+ stfd fp14,(SIGCONTEXT_FP_REGS+(PT_R14*8))(r3)
+ stfd fp15,(SIGCONTEXT_FP_REGS+(PT_R15*8))(r3)
+ stfd fp16,(SIGCONTEXT_FP_REGS+(PT_R16*8))(r3)
+ stfd fp17,(SIGCONTEXT_FP_REGS+(PT_R17*8))(r3)
+ stfd fp18,(SIGCONTEXT_FP_REGS+(PT_R18*8))(r3)
+ stfd fp19,(SIGCONTEXT_FP_REGS+(PT_R19*8))(r3)
+ stfd fp20,(SIGCONTEXT_FP_REGS+(PT_R20*8))(r3)
+ stfd fp21,(SIGCONTEXT_FP_REGS+(PT_R21*8))(r3)
+ stfd fp22,(SIGCONTEXT_FP_REGS+(PT_R22*8))(r3)
+ stfd fp23,(SIGCONTEXT_FP_REGS+(PT_R23*8))(r3)
+ stfd fp24,(SIGCONTEXT_FP_REGS+(PT_R24*8))(r3)
+ stfd fp25,(SIGCONTEXT_FP_REGS+(PT_R25*8))(r3)
+ stfd fp26,(SIGCONTEXT_FP_REGS+(PT_R26*8))(r3)
+ stfd fp27,(SIGCONTEXT_FP_REGS+(PT_R27*8))(r3)
+ stfd fp28,(SIGCONTEXT_FP_REGS+(PT_R28*8))(r3)
+ stfd fp29,(SIGCONTEXT_FP_REGS+(PT_R29*8))(r3)
+ mffs fp0
+ stfd fp30,(SIGCONTEXT_FP_REGS+(PT_R30*8))(r3)
+ stfd fp31,(SIGCONTEXT_FP_REGS+(PT_R31*8))(r3)
+ stfd fp0,(SIGCONTEXT_FP_REGS+(32*8))(r3)
+
+ addi r5,r3,UCONTEXT_SIGMASK
+ li r4,0
+ li r3,SIG_BLOCK
+ bl JUMPTARGET(__sigprocmask)
+ nop
+
+ ld r0,128+FRAME_LR_SAVE(r1)
+ addi r1,r1,128
+ mtlr r0
+ blr
+PSEUDO_END(__novec_getcontext)
+
+compat_symbol (libc, __novec_getcontext, getcontext, GLIBC_2_3)
+
+#endif
+
+ .section ".toc","aw"
+.LC__dl_hwcap:
+#ifdef SHARED
+ .tc _rtld_global_ro[TC],_rtld_global_ro
+#else
+ .tc _dl_hwcap[TC],_dl_hwcap
+#endif
+ .section ".text"
+
+ .machine "altivec"
+ENTRY(__getcontext)
+ CALL_MCOUNT 1
+ std r0,(SIGCONTEXT_GP_REGS+(PT_R0*8))(r3)
+ std r1,(SIGCONTEXT_GP_REGS+(PT_R1*8))(r3)
+ mflr r0
+ std r2,(SIGCONTEXT_GP_REGS+(PT_R2*8))(r3)
+ std r0,FRAME_LR_SAVE(r1)
+ cfi_offset (lr, FRAME_LR_SAVE)
+ std r0,(SIGCONTEXT_GP_REGS+(PT_LNK*8))(r3)
+ std r0,(SIGCONTEXT_GP_REGS+(PT_NIP*8))(r3)
+ stdu r1,-128(r1)
+ cfi_adjust_cfa_offset (128)
+ std r4,(SIGCONTEXT_GP_REGS+(PT_R4*8))(r3)
+ std r5,(SIGCONTEXT_GP_REGS+(PT_R5*8))(r3)
+ std r6,(SIGCONTEXT_GP_REGS+(PT_R6*8))(r3)
+ std r7,(SIGCONTEXT_GP_REGS+(PT_R7*8))(r3)
+ std r8,(SIGCONTEXT_GP_REGS+(PT_R8*8))(r3)
+ std r9,(SIGCONTEXT_GP_REGS+(PT_R9*8))(r3)
+ std r10,(SIGCONTEXT_GP_REGS+(PT_R10*8))(r3)
+ std r11,(SIGCONTEXT_GP_REGS+(PT_R11*8))(r3)
+ std r12,(SIGCONTEXT_GP_REGS+(PT_R12*8))(r3)
+ std r13,(SIGCONTEXT_GP_REGS+(PT_R13*8))(r3)
+ std r14,(SIGCONTEXT_GP_REGS+(PT_R14*8))(r3)
+ std r15,(SIGCONTEXT_GP_REGS+(PT_R15*8))(r3)
+ std r16,(SIGCONTEXT_GP_REGS+(PT_R16*8))(r3)
+ std r17,(SIGCONTEXT_GP_REGS+(PT_R17*8))(r3)
+ std r18,(SIGCONTEXT_GP_REGS+(PT_R18*8))(r3)
+ std r19,(SIGCONTEXT_GP_REGS+(PT_R19*8))(r3)
+ std r20,(SIGCONTEXT_GP_REGS+(PT_R20*8))(r3)
+ std r21,(SIGCONTEXT_GP_REGS+(PT_R21*8))(r3)
+ std r22,(SIGCONTEXT_GP_REGS+(PT_R22*8))(r3)
+ std r23,(SIGCONTEXT_GP_REGS+(PT_R23*8))(r3)
+ std r24,(SIGCONTEXT_GP_REGS+(PT_R24*8))(r3)
+ std r25,(SIGCONTEXT_GP_REGS+(PT_R25*8))(r3)
+ std r26,(SIGCONTEXT_GP_REGS+(PT_R26*8))(r3)
+ std r27,(SIGCONTEXT_GP_REGS+(PT_R27*8))(r3)
+ std r28,(SIGCONTEXT_GP_REGS+(PT_R28*8))(r3)
+ std r29,(SIGCONTEXT_GP_REGS+(PT_R29*8))(r3)
+ std r30,(SIGCONTEXT_GP_REGS+(PT_R30*8))(r3)
+ std r31,(SIGCONTEXT_GP_REGS+(PT_R31*8))(r3)
+ mfctr r0
+ std r0,(SIGCONTEXT_GP_REGS+(PT_CTR*8))(r3)
+ mfxer r0
+ std r0,(SIGCONTEXT_GP_REGS+(PT_XER*8))(r3)
+ mfcr r0
+ std r0,(SIGCONTEXT_GP_REGS+(PT_CCR*8))(r3)
+
+ /* Set the return value of swapcontext to "success". R3 is the only
+ register whose value is not preserved in the saved context. */
+ li r0,0
+ std r0,(SIGCONTEXT_GP_REGS+(PT_R3*8))(r3)
+
+ /* Zero fill fields that can't be set in user state or are unused. */
+ std r0,(SIGCONTEXT_GP_REGS+(PT_MSR*8))(r3)
+ std r0,(SIGCONTEXT_GP_REGS+(34*8))(r3)
+ std r0,(SIGCONTEXT_GP_REGS+(PT_SOFTE*8))(r3)
+ std r0,(SIGCONTEXT_GP_REGS+(40*8))(r3)
+ std r0,(SIGCONTEXT_GP_REGS+(41*8))(r3)
+ std r0,(SIGCONTEXT_GP_REGS+(42*8))(r3)
+ std r0,(SIGCONTEXT_GP_REGS+(PT_RESULT*8))(r3)
+
+ /* Set the PT_REGS pointer to the address of sigcontext's gp_regs
+ field. Struct pt_regs and elf_gregset_t are the same thing.
+ We kept the regs field for backwards compatibility with
+ libraries built before we extended sigcontext. */
+ addi r0,r3,SIGCONTEXT_GP_REGS
+ std r0,SIGCONTEXT_PT_REGS(r3)
+
+ stfd fp0,(SIGCONTEXT_FP_REGS+(PT_R0*8))(r3)
+ stfd fp1,(SIGCONTEXT_FP_REGS+(PT_R1*8))(r3)
+ stfd fp2,(SIGCONTEXT_FP_REGS+(PT_R2*8))(r3)
+ stfd fp3,(SIGCONTEXT_FP_REGS+(PT_R3*8))(r3)
+ stfd fp4,(SIGCONTEXT_FP_REGS+(PT_R4*8))(r3)
+ stfd fp5,(SIGCONTEXT_FP_REGS+(PT_R5*8))(r3)
+ stfd fp6,(SIGCONTEXT_FP_REGS+(PT_R6*8))(r3)
+ stfd fp7,(SIGCONTEXT_FP_REGS+(PT_R7*8))(r3)
+ stfd fp8,(SIGCONTEXT_FP_REGS+(PT_R8*8))(r3)
+ stfd fp9,(SIGCONTEXT_FP_REGS+(PT_R9*8))(r3)
+ stfd fp10,(SIGCONTEXT_FP_REGS+(PT_R10*8))(r3)
+ stfd fp11,(SIGCONTEXT_FP_REGS+(PT_R11*8))(r3)
+ stfd fp12,(SIGCONTEXT_FP_REGS+(PT_R12*8))(r3)
+ stfd fp13,(SIGCONTEXT_FP_REGS+(PT_R13*8))(r3)
+ stfd fp14,(SIGCONTEXT_FP_REGS+(PT_R14*8))(r3)
+ stfd fp15,(SIGCONTEXT_FP_REGS+(PT_R15*8))(r3)
+ stfd fp16,(SIGCONTEXT_FP_REGS+(PT_R16*8))(r3)
+ stfd fp17,(SIGCONTEXT_FP_REGS+(PT_R17*8))(r3)
+ stfd fp18,(SIGCONTEXT_FP_REGS+(PT_R18*8))(r3)
+ stfd fp19,(SIGCONTEXT_FP_REGS+(PT_R19*8))(r3)
+ stfd fp20,(SIGCONTEXT_FP_REGS+(PT_R20*8))(r3)
+ stfd fp21,(SIGCONTEXT_FP_REGS+(PT_R21*8))(r3)
+ stfd fp22,(SIGCONTEXT_FP_REGS+(PT_R22*8))(r3)
+ stfd fp23,(SIGCONTEXT_FP_REGS+(PT_R23*8))(r3)
+ stfd fp24,(SIGCONTEXT_FP_REGS+(PT_R24*8))(r3)
+ stfd fp25,(SIGCONTEXT_FP_REGS+(PT_R25*8))(r3)
+ stfd fp26,(SIGCONTEXT_FP_REGS+(PT_R26*8))(r3)
+ stfd fp27,(SIGCONTEXT_FP_REGS+(PT_R27*8))(r3)
+ stfd fp28,(SIGCONTEXT_FP_REGS+(PT_R28*8))(r3)
+ stfd fp29,(SIGCONTEXT_FP_REGS+(PT_R29*8))(r3)
+ mffs fp0
+ stfd fp30,(SIGCONTEXT_FP_REGS+(PT_R30*8))(r3)
+ stfd fp31,(SIGCONTEXT_FP_REGS+(PT_R31*8))(r3)
+ stfd fp0,(SIGCONTEXT_FP_REGS+(32*8))(r3)
+
+ ld r5,.LC__dl_hwcap@toc(r2)
+# ifdef SHARED
+/* Load _rtld-global._dl_hwcap. */
+ ld r5,RTLD_GLOBAL_RO_DL_HWCAP_OFFSET(r5)
+# else
+ ld r5,0(r5) /* Load extern _dl_hwcap. */
+# endif
+ la r10,(SIGCONTEXT_V_RESERVE+8)(r3)
+ la r9,(SIGCONTEXT_V_RESERVE+24)(r3)
+
+ andis. r5,r5,(PPC_FEATURE_HAS_ALTIVEC >> 16)
+
+ clrrdi r10,r10,4
+ beq L(has_no_vec)
+ clrrdi r9,r9,4
+ mr r5,r10 /* Capture *v_regs value in r5. */
+
+ stvx v0,0,r10
+ stvx v1,0,r9
+ addi r10,r10,32
+ addi r9,r9,32
+
+ stvx v2,0,r10
+ stvx v3,0,r9
+ addi r10,r10,32
+ addi r9,r9,32
+
+ stvx v4,0,r10
+ stvx v5,0,r9
+ addi r10,r10,32
+ addi r9,r9,32
+
+ stvx v6,0,r10
+ stvx v7,0,r9
+ addi r10,r10,32
+ addi r9,r9,32
+
+ stvx v8,0,r10
+ stvx v9,0,r9
+ addi r10,r10,32
+ addi r9,r9,32
+
+ stvx v10,0,r10
+ stvx v11,0,r9
+ addi r10,r10,32
+ addi r9,r9,32
+
+ stvx v12,0,r10
+ stvx v13,0,r9
+ addi r10,r10,32
+ addi r9,r9,32
+
+ stvx v14,0,r10
+ stvx v15,0,r9
+ addi r10,r10,32
+ addi r9,r9,32
+
+ stvx v16,0,r10
+ stvx v17,0,r9
+ addi r10,r10,32
+ addi r9,r9,32
+
+ stvx v18,0,r10
+ stvx v19,0,r9
+ addi r10,r10,32
+ addi r9,r9,32
+
+ stvx v20,0,r10
+ stvx v21,0,r9
+ addi r10,r10,32
+ addi r9,r9,32
+
+ stvx v22,0,r10
+ stvx v23,0,r9
+ addi r10,r10,32
+ addi r9,r9,32
+
+ stvx v24,0,r10
+ stvx v25,0,r9
+ addi r10,r10,32
+ addi r9,r9,32
+
+ stvx v26,0,r10
+ stvx v27,0,r9
+ addi r10,r10,32
+ addi r9,r9,32
+
+ stvx v28,0,r10
+ stvx v29,0,r9
+ addi r10,r10,32
+ addi r9,r9,32
+
+ stvx v30,0,r10
+ stvx v31,0,r9
+ addi r10,r10,32
+ addi r9,r9,32
+
+ mfvscr v0
+ mfspr r0,VRSAVE
+ stvx v0,0,r10
+ stw r0,0(9)
+
+L(has_no_vec):
+/*
+ Store either a NULL or a quadword aligned pointer to the Vector register
+ array into *v_regs.
+*/
+ std r5,(SIGCONTEXT_V_REGS_PTR)(r3)
+
+ addi r5,r3,UCONTEXT_SIGMASK
+ li r4,0
+ li r3,SIG_BLOCK
+ bl JUMPTARGET(__sigprocmask)
+ nop
+
+ ld r0,128+FRAME_LR_SAVE(r1)
+ addi r1,r1,128
+ mtlr r0
+ blr
+PSEUDO_END(__getcontext)
+
+versioned_symbol (libc, __getcontext, getcontext, GLIBC_2_3_4)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/kernel_stat.h b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/kernel_stat.h
new file mode 100644
index 0000000000..df9798b72e
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/kernel_stat.h
@@ -0,0 +1,21 @@
+/* Definition of `struct stat' used in the kernel.
+ Copyright (C) 2002-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#define STAT_IS_KERNEL_STAT 1
+#define XSTAT_IS_XSTAT64 1
+#define STATFS_IS_STATFS64 0
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/ld-le.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/ld-le.abilist
new file mode 100644
index 0000000000..ef6159baa8
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/ld-le.abilist
@@ -0,0 +1,13 @@
+GLIBC_2.17 GLIBC_2.17 A
+GLIBC_2.17 __libc_stack_end D 0x8
+GLIBC_2.17 __tls_get_addr F
+GLIBC_2.17 _dl_mcount F
+GLIBC_2.17 _r_debug D 0x28
+GLIBC_2.17 calloc F
+GLIBC_2.17 free F
+GLIBC_2.17 malloc F
+GLIBC_2.17 realloc F
+GLIBC_2.22 GLIBC_2.22 A
+GLIBC_2.22 __tls_get_addr_opt F
+GLIBC_2.23 GLIBC_2.23 A
+GLIBC_2.23 __parse_hwcap_and_convert_at_platform F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/ld.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/ld.abilist
new file mode 100644
index 0000000000..2c3b74cc20
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/ld.abilist
@@ -0,0 +1,14 @@
+GLIBC_2.22 GLIBC_2.22 A
+GLIBC_2.22 __tls_get_addr_opt F
+GLIBC_2.23 GLIBC_2.23 A
+GLIBC_2.23 __parse_hwcap_and_convert_at_platform F
+GLIBC_2.3 GLIBC_2.3 A
+GLIBC_2.3 __libc_stack_end D 0x8
+GLIBC_2.3 __tls_get_addr F
+GLIBC_2.3 _dl_mcount F
+GLIBC_2.3 _r_debug D 0x28
+GLIBC_2.3 calloc F
+GLIBC_2.3 free F
+GLIBC_2.3 malloc F
+GLIBC_2.3 realloc F
+GLIBC_2.4 GLIBC_2.4 A
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/ldsodefs.h b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/ldsodefs.h
new file mode 100644
index 0000000000..4d7d076410
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/ldsodefs.h
@@ -0,0 +1,80 @@
+/* Run-time dynamic linker data structures for loaded ELF shared objects.
+ Copyright (C) 2005-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _LDSODEFS_H
+
+/* Get the real definitions. */
+#include_next <ldsodefs.h>
+
+/* Now define our stuff. */
+
+#if _CALL_ELF != 2
+
+static __always_inline bool
+_dl_ppc64_is_opd_sym (const struct link_map *l, const ElfW(Sym) *sym)
+{
+ return (ELFW(ST_TYPE) (sym->st_info) == STT_FUNC
+ && l->l_addr + sym->st_value >= (ElfW(Addr)) l->l_ld
+ && l->l_addr + sym->st_value < l->l_map_end
+ && sym->st_size != 0);
+}
+
+static __always_inline bool
+_dl_ppc64_addr_sym_match (const struct link_map *l, const ElfW(Sym) *sym,
+ const ElfW(Sym) *matchsym, ElfW(Addr) addr)
+{
+ ElfW(Addr) value = l->l_addr + sym->st_value;
+ if (_dl_ppc64_is_opd_sym (l, sym))
+ {
+ if (addr < value || addr >= value + 24)
+ {
+ value = *(ElfW(Addr) *) value;
+ if (addr < value || addr >= value + sym->st_size)
+ return false;
+ }
+ }
+ else if (sym->st_shndx == SHN_UNDEF || sym->st_size == 0)
+ {
+ if (addr != value)
+ return false;
+ }
+ else if (addr < value || addr >= value + sym->st_size)
+ return false;
+
+ if (matchsym == NULL)
+ return true;
+
+ ElfW(Addr) matchvalue = l->l_addr + matchsym->st_value;
+ if (_dl_ppc64_is_opd_sym (l, matchsym)
+ && (addr < matchvalue || addr > matchvalue + 24))
+ matchvalue = *(ElfW(Addr) *) matchvalue;
+
+ return matchvalue < value;
+}
+
+/* If this is a function symbol defined past the end of our dynamic
+ section, then it must be a function descriptor. Allow these symbols
+ to match their associated function code range as well as the
+ descriptor addresses. */
+#undef DL_ADDR_SYM_MATCH
+#define DL_ADDR_SYM_MATCH(L, SYM, MATCHSYM, ADDR) \
+ _dl_ppc64_addr_sym_match (L, SYM, MATCHSYM, ADDR)
+
+#endif
+
+#endif /* ldsodefs.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libBrokenLocale-le.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libBrokenLocale-le.abilist
new file mode 100644
index 0000000000..5e54974368
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libBrokenLocale-le.abilist
@@ -0,0 +1,2 @@
+GLIBC_2.17 GLIBC_2.17 A
+GLIBC_2.17 __ctype_get_mb_cur_max F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libBrokenLocale.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libBrokenLocale.abilist
new file mode 100644
index 0000000000..40f6e08b75
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libBrokenLocale.abilist
@@ -0,0 +1,2 @@
+GLIBC_2.3 GLIBC_2.3 A
+GLIBC_2.3 __ctype_get_mb_cur_max F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libanl-le.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libanl-le.abilist
new file mode 100644
index 0000000000..21330fc8d5
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libanl-le.abilist
@@ -0,0 +1,5 @@
+GLIBC_2.17 GLIBC_2.17 A
+GLIBC_2.17 gai_cancel F
+GLIBC_2.17 gai_error F
+GLIBC_2.17 gai_suspend F
+GLIBC_2.17 getaddrinfo_a F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libanl.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libanl.abilist
new file mode 100644
index 0000000000..9036592d30
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libanl.abilist
@@ -0,0 +1,5 @@
+GLIBC_2.3 GLIBC_2.3 A
+GLIBC_2.3 gai_cancel F
+GLIBC_2.3 gai_error F
+GLIBC_2.3 gai_suspend F
+GLIBC_2.3 getaddrinfo_a F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist
new file mode 100644
index 0000000000..443d89f663
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist
@@ -0,0 +1,2193 @@
+GLIBC_2.17 GLIBC_2.17 A
+GLIBC_2.17 _Exit F
+GLIBC_2.17 _IO_2_1_stderr_ D 0xe0
+GLIBC_2.17 _IO_2_1_stdin_ D 0xe0
+GLIBC_2.17 _IO_2_1_stdout_ D 0xe0
+GLIBC_2.17 _IO_adjust_column F
+GLIBC_2.17 _IO_adjust_wcolumn F
+GLIBC_2.17 _IO_default_doallocate F
+GLIBC_2.17 _IO_default_finish F
+GLIBC_2.17 _IO_default_pbackfail F
+GLIBC_2.17 _IO_default_uflow F
+GLIBC_2.17 _IO_default_xsgetn F
+GLIBC_2.17 _IO_default_xsputn F
+GLIBC_2.17 _IO_do_write F
+GLIBC_2.17 _IO_doallocbuf F
+GLIBC_2.17 _IO_fclose F
+GLIBC_2.17 _IO_fdopen F
+GLIBC_2.17 _IO_feof F
+GLIBC_2.17 _IO_ferror F
+GLIBC_2.17 _IO_fflush F
+GLIBC_2.17 _IO_fgetpos F
+GLIBC_2.17 _IO_fgetpos64 F
+GLIBC_2.17 _IO_fgets F
+GLIBC_2.17 _IO_file_attach F
+GLIBC_2.17 _IO_file_close F
+GLIBC_2.17 _IO_file_close_it F
+GLIBC_2.17 _IO_file_doallocate F
+GLIBC_2.17 _IO_file_finish F
+GLIBC_2.17 _IO_file_fopen F
+GLIBC_2.17 _IO_file_init F
+GLIBC_2.17 _IO_file_jumps D 0xa8
+GLIBC_2.17 _IO_file_open F
+GLIBC_2.17 _IO_file_overflow F
+GLIBC_2.17 _IO_file_read F
+GLIBC_2.17 _IO_file_seek F
+GLIBC_2.17 _IO_file_seekoff F
+GLIBC_2.17 _IO_file_setbuf F
+GLIBC_2.17 _IO_file_stat F
+GLIBC_2.17 _IO_file_sync F
+GLIBC_2.17 _IO_file_underflow F
+GLIBC_2.17 _IO_file_write F
+GLIBC_2.17 _IO_file_xsputn F
+GLIBC_2.17 _IO_flockfile F
+GLIBC_2.17 _IO_flush_all F
+GLIBC_2.17 _IO_flush_all_linebuffered F
+GLIBC_2.17 _IO_fopen F
+GLIBC_2.17 _IO_fprintf F
+GLIBC_2.17 _IO_fputs F
+GLIBC_2.17 _IO_fread F
+GLIBC_2.17 _IO_free_backup_area F
+GLIBC_2.17 _IO_free_wbackup_area F
+GLIBC_2.17 _IO_fsetpos F
+GLIBC_2.17 _IO_fsetpos64 F
+GLIBC_2.17 _IO_ftell F
+GLIBC_2.17 _IO_ftrylockfile F
+GLIBC_2.17 _IO_funlockfile F
+GLIBC_2.17 _IO_fwrite F
+GLIBC_2.17 _IO_getc F
+GLIBC_2.17 _IO_getline F
+GLIBC_2.17 _IO_getline_info F
+GLIBC_2.17 _IO_gets F
+GLIBC_2.17 _IO_init F
+GLIBC_2.17 _IO_init_marker F
+GLIBC_2.17 _IO_init_wmarker F
+GLIBC_2.17 _IO_iter_begin F
+GLIBC_2.17 _IO_iter_end F
+GLIBC_2.17 _IO_iter_file F
+GLIBC_2.17 _IO_iter_next F
+GLIBC_2.17 _IO_least_wmarker F
+GLIBC_2.17 _IO_link_in F
+GLIBC_2.17 _IO_list_all D 0x8
+GLIBC_2.17 _IO_list_lock F
+GLIBC_2.17 _IO_list_resetlock F
+GLIBC_2.17 _IO_list_unlock F
+GLIBC_2.17 _IO_marker_delta F
+GLIBC_2.17 _IO_marker_difference F
+GLIBC_2.17 _IO_padn F
+GLIBC_2.17 _IO_peekc_locked F
+GLIBC_2.17 _IO_popen F
+GLIBC_2.17 _IO_printf F
+GLIBC_2.17 _IO_proc_close F
+GLIBC_2.17 _IO_proc_open F
+GLIBC_2.17 _IO_putc F
+GLIBC_2.17 _IO_puts F
+GLIBC_2.17 _IO_remove_marker F
+GLIBC_2.17 _IO_seekmark F
+GLIBC_2.17 _IO_seekoff F
+GLIBC_2.17 _IO_seekpos F
+GLIBC_2.17 _IO_seekwmark F
+GLIBC_2.17 _IO_setb F
+GLIBC_2.17 _IO_setbuffer F
+GLIBC_2.17 _IO_setvbuf F
+GLIBC_2.17 _IO_sgetn F
+GLIBC_2.17 _IO_sprintf F
+GLIBC_2.17 _IO_sputbackc F
+GLIBC_2.17 _IO_sputbackwc F
+GLIBC_2.17 _IO_sscanf F
+GLIBC_2.17 _IO_str_init_readonly F
+GLIBC_2.17 _IO_str_init_static F
+GLIBC_2.17 _IO_str_overflow F
+GLIBC_2.17 _IO_str_pbackfail F
+GLIBC_2.17 _IO_str_seekoff F
+GLIBC_2.17 _IO_str_underflow F
+GLIBC_2.17 _IO_sungetc F
+GLIBC_2.17 _IO_sungetwc F
+GLIBC_2.17 _IO_switch_to_get_mode F
+GLIBC_2.17 _IO_switch_to_main_wget_area F
+GLIBC_2.17 _IO_switch_to_wbackup_area F
+GLIBC_2.17 _IO_switch_to_wget_mode F
+GLIBC_2.17 _IO_un_link F
+GLIBC_2.17 _IO_ungetc F
+GLIBC_2.17 _IO_unsave_markers F
+GLIBC_2.17 _IO_unsave_wmarkers F
+GLIBC_2.17 _IO_vfprintf F
+GLIBC_2.17 _IO_vfscanf F
+GLIBC_2.17 _IO_vsprintf F
+GLIBC_2.17 _IO_wdefault_doallocate F
+GLIBC_2.17 _IO_wdefault_finish F
+GLIBC_2.17 _IO_wdefault_pbackfail F
+GLIBC_2.17 _IO_wdefault_uflow F
+GLIBC_2.17 _IO_wdefault_xsgetn F
+GLIBC_2.17 _IO_wdefault_xsputn F
+GLIBC_2.17 _IO_wdo_write F
+GLIBC_2.17 _IO_wdoallocbuf F
+GLIBC_2.17 _IO_wfile_jumps D 0xa8
+GLIBC_2.17 _IO_wfile_overflow F
+GLIBC_2.17 _IO_wfile_seekoff F
+GLIBC_2.17 _IO_wfile_sync F
+GLIBC_2.17 _IO_wfile_underflow F
+GLIBC_2.17 _IO_wfile_xsputn F
+GLIBC_2.17 _IO_wmarker_delta F
+GLIBC_2.17 _IO_wsetb F
+GLIBC_2.17 __adjtimex F
+GLIBC_2.17 __after_morecore_hook D 0x8
+GLIBC_2.17 __argz_count F
+GLIBC_2.17 __argz_next F
+GLIBC_2.17 __argz_stringify F
+GLIBC_2.17 __asprintf F
+GLIBC_2.17 __asprintf_chk F
+GLIBC_2.17 __assert F
+GLIBC_2.17 __assert_fail F
+GLIBC_2.17 __assert_perror_fail F
+GLIBC_2.17 __backtrace F
+GLIBC_2.17 __backtrace_symbols F
+GLIBC_2.17 __backtrace_symbols_fd F
+GLIBC_2.17 __bsd_getpgrp F
+GLIBC_2.17 __bzero F
+GLIBC_2.17 __check_rhosts_file D 0x4
+GLIBC_2.17 __chk_fail F
+GLIBC_2.17 __clone F
+GLIBC_2.17 __close F
+GLIBC_2.17 __cmsg_nxthdr F
+GLIBC_2.17 __confstr_chk F
+GLIBC_2.17 __connect F
+GLIBC_2.17 __ctype_b_loc F
+GLIBC_2.17 __ctype_get_mb_cur_max F
+GLIBC_2.17 __ctype_tolower_loc F
+GLIBC_2.17 __ctype_toupper_loc F
+GLIBC_2.17 __curbrk D 0x8
+GLIBC_2.17 __cxa_at_quick_exit F
+GLIBC_2.17 __cxa_atexit F
+GLIBC_2.17 __cxa_finalize F
+GLIBC_2.17 __cyg_profile_func_enter F
+GLIBC_2.17 __cyg_profile_func_exit F
+GLIBC_2.17 __daylight D 0x4
+GLIBC_2.17 __dcgettext F
+GLIBC_2.17 __default_morecore F
+GLIBC_2.17 __dgettext F
+GLIBC_2.17 __dprintf_chk F
+GLIBC_2.17 __dup2 F
+GLIBC_2.17 __duplocale F
+GLIBC_2.17 __endmntent F
+GLIBC_2.17 __environ D 0x8
+GLIBC_2.17 __errno_location F
+GLIBC_2.17 __fbufsize F
+GLIBC_2.17 __fcntl F
+GLIBC_2.17 __fdelt_chk F
+GLIBC_2.17 __fdelt_warn F
+GLIBC_2.17 __ffs F
+GLIBC_2.17 __fgets_chk F
+GLIBC_2.17 __fgets_unlocked_chk F
+GLIBC_2.17 __fgetws_chk F
+GLIBC_2.17 __fgetws_unlocked_chk F
+GLIBC_2.17 __finite F
+GLIBC_2.17 __finitef F
+GLIBC_2.17 __finitel F
+GLIBC_2.17 __flbf F
+GLIBC_2.17 __fork F
+GLIBC_2.17 __fpending F
+GLIBC_2.17 __fprintf_chk F
+GLIBC_2.17 __fpu_control D 0x4
+GLIBC_2.17 __fpurge F
+GLIBC_2.17 __fread_chk F
+GLIBC_2.17 __fread_unlocked_chk F
+GLIBC_2.17 __freadable F
+GLIBC_2.17 __freading F
+GLIBC_2.17 __free_hook D 0x8
+GLIBC_2.17 __freelocale F
+GLIBC_2.17 __fsetlocking F
+GLIBC_2.17 __fwprintf_chk F
+GLIBC_2.17 __fwritable F
+GLIBC_2.17 __fwriting F
+GLIBC_2.17 __fxstat F
+GLIBC_2.17 __fxstat64 F
+GLIBC_2.17 __fxstatat F
+GLIBC_2.17 __fxstatat64 F
+GLIBC_2.17 __getauxval F
+GLIBC_2.17 __getcwd_chk F
+GLIBC_2.17 __getdelim F
+GLIBC_2.17 __getdomainname_chk F
+GLIBC_2.17 __getgroups_chk F
+GLIBC_2.17 __gethostname_chk F
+GLIBC_2.17 __getlogin_r_chk F
+GLIBC_2.17 __getmntent_r F
+GLIBC_2.17 __getpagesize F
+GLIBC_2.17 __getpgid F
+GLIBC_2.17 __getpid F
+GLIBC_2.17 __gets_chk F
+GLIBC_2.17 __gettimeofday F
+GLIBC_2.17 __getwd_chk F
+GLIBC_2.17 __gmtime_r F
+GLIBC_2.17 __h_errno_location F
+GLIBC_2.17 __isalnum_l F
+GLIBC_2.17 __isalpha_l F
+GLIBC_2.17 __isascii_l F
+GLIBC_2.17 __isblank_l F
+GLIBC_2.17 __iscntrl_l F
+GLIBC_2.17 __isctype F
+GLIBC_2.17 __isdigit_l F
+GLIBC_2.17 __isgraph_l F
+GLIBC_2.17 __isinf F
+GLIBC_2.17 __isinff F
+GLIBC_2.17 __isinfl F
+GLIBC_2.17 __islower_l F
+GLIBC_2.17 __isnan F
+GLIBC_2.17 __isnanf F
+GLIBC_2.17 __isnanl F
+GLIBC_2.17 __isoc99_fscanf F
+GLIBC_2.17 __isoc99_fwscanf F
+GLIBC_2.17 __isoc99_scanf F
+GLIBC_2.17 __isoc99_sscanf F
+GLIBC_2.17 __isoc99_swscanf F
+GLIBC_2.17 __isoc99_vfscanf F
+GLIBC_2.17 __isoc99_vfwscanf F
+GLIBC_2.17 __isoc99_vscanf F
+GLIBC_2.17 __isoc99_vsscanf F
+GLIBC_2.17 __isoc99_vswscanf F
+GLIBC_2.17 __isoc99_vwscanf F
+GLIBC_2.17 __isoc99_wscanf F
+GLIBC_2.17 __isprint_l F
+GLIBC_2.17 __ispunct_l F
+GLIBC_2.17 __isspace_l F
+GLIBC_2.17 __isupper_l F
+GLIBC_2.17 __iswalnum_l F
+GLIBC_2.17 __iswalpha_l F
+GLIBC_2.17 __iswblank_l F
+GLIBC_2.17 __iswcntrl_l F
+GLIBC_2.17 __iswctype F
+GLIBC_2.17 __iswctype_l F
+GLIBC_2.17 __iswdigit_l F
+GLIBC_2.17 __iswgraph_l F
+GLIBC_2.17 __iswlower_l F
+GLIBC_2.17 __iswprint_l F
+GLIBC_2.17 __iswpunct_l F
+GLIBC_2.17 __iswspace_l F
+GLIBC_2.17 __iswupper_l F
+GLIBC_2.17 __iswxdigit_l F
+GLIBC_2.17 __isxdigit_l F
+GLIBC_2.17 __ivaliduser F
+GLIBC_2.17 __key_decryptsession_pk_LOCAL D 0x8
+GLIBC_2.17 __key_encryptsession_pk_LOCAL D 0x8
+GLIBC_2.17 __key_gendes_LOCAL D 0x8
+GLIBC_2.17 __libc_allocate_rtsig F
+GLIBC_2.17 __libc_calloc F
+GLIBC_2.17 __libc_current_sigrtmax F
+GLIBC_2.17 __libc_current_sigrtmin F
+GLIBC_2.17 __libc_free F
+GLIBC_2.17 __libc_freeres F
+GLIBC_2.17 __libc_init_first F
+GLIBC_2.17 __libc_mallinfo F
+GLIBC_2.17 __libc_malloc F
+GLIBC_2.17 __libc_mallopt F
+GLIBC_2.17 __libc_memalign F
+GLIBC_2.17 __libc_pvalloc F
+GLIBC_2.17 __libc_realloc F
+GLIBC_2.17 __libc_sa_len F
+GLIBC_2.17 __libc_start_main F
+GLIBC_2.17 __libc_valloc F
+GLIBC_2.17 __longjmp_chk F
+GLIBC_2.17 __lseek F
+GLIBC_2.17 __lxstat F
+GLIBC_2.17 __lxstat64 F
+GLIBC_2.17 __malloc_hook D 0x8
+GLIBC_2.17 __malloc_initialize_hook D 0x8
+GLIBC_2.17 __mbrlen F
+GLIBC_2.17 __mbrtowc F
+GLIBC_2.17 __mbsnrtowcs_chk F
+GLIBC_2.17 __mbsrtowcs_chk F
+GLIBC_2.17 __mbstowcs_chk F
+GLIBC_2.17 __memalign_hook D 0x8
+GLIBC_2.17 __memcpy_chk F
+GLIBC_2.17 __memmove_chk F
+GLIBC_2.17 __mempcpy F
+GLIBC_2.17 __mempcpy_chk F
+GLIBC_2.17 __mempcpy_small F
+GLIBC_2.17 __memset_chk F
+GLIBC_2.17 __monstartup F
+GLIBC_2.17 __morecore D 0x8
+GLIBC_2.17 __nanosleep F
+GLIBC_2.17 __newlocale F
+GLIBC_2.17 __nl_langinfo_l F
+GLIBC_2.17 __nldbl__IO_fprintf F
+GLIBC_2.17 __nldbl__IO_printf F
+GLIBC_2.17 __nldbl__IO_sprintf F
+GLIBC_2.17 __nldbl__IO_sscanf F
+GLIBC_2.17 __nldbl__IO_vfprintf F
+GLIBC_2.17 __nldbl__IO_vfscanf F
+GLIBC_2.17 __nldbl__IO_vsprintf F
+GLIBC_2.17 __nldbl___asprintf F
+GLIBC_2.17 __nldbl___asprintf_chk F
+GLIBC_2.17 __nldbl___dprintf_chk F
+GLIBC_2.17 __nldbl___fprintf_chk F
+GLIBC_2.17 __nldbl___fwprintf_chk F
+GLIBC_2.17 __nldbl___isoc99_fscanf F
+GLIBC_2.17 __nldbl___isoc99_fwscanf F
+GLIBC_2.17 __nldbl___isoc99_scanf F
+GLIBC_2.17 __nldbl___isoc99_sscanf F
+GLIBC_2.17 __nldbl___isoc99_swscanf F
+GLIBC_2.17 __nldbl___isoc99_vfscanf F
+GLIBC_2.17 __nldbl___isoc99_vfwscanf F
+GLIBC_2.17 __nldbl___isoc99_vscanf F
+GLIBC_2.17 __nldbl___isoc99_vsscanf F
+GLIBC_2.17 __nldbl___isoc99_vswscanf F
+GLIBC_2.17 __nldbl___isoc99_vwscanf F
+GLIBC_2.17 __nldbl___isoc99_wscanf F
+GLIBC_2.17 __nldbl___obstack_printf_chk F
+GLIBC_2.17 __nldbl___obstack_vprintf_chk F
+GLIBC_2.17 __nldbl___printf_chk F
+GLIBC_2.17 __nldbl___printf_fp F
+GLIBC_2.17 __nldbl___snprintf_chk F
+GLIBC_2.17 __nldbl___sprintf_chk F
+GLIBC_2.17 __nldbl___strfmon_l F
+GLIBC_2.17 __nldbl___swprintf_chk F
+GLIBC_2.17 __nldbl___syslog_chk F
+GLIBC_2.17 __nldbl___vasprintf_chk F
+GLIBC_2.17 __nldbl___vdprintf_chk F
+GLIBC_2.17 __nldbl___vfprintf_chk F
+GLIBC_2.17 __nldbl___vfscanf F
+GLIBC_2.17 __nldbl___vfwprintf_chk F
+GLIBC_2.17 __nldbl___vprintf_chk F
+GLIBC_2.17 __nldbl___vsnprintf F
+GLIBC_2.17 __nldbl___vsnprintf_chk F
+GLIBC_2.17 __nldbl___vsprintf_chk F
+GLIBC_2.17 __nldbl___vsscanf F
+GLIBC_2.17 __nldbl___vstrfmon F
+GLIBC_2.17 __nldbl___vstrfmon_l F
+GLIBC_2.17 __nldbl___vswprintf_chk F
+GLIBC_2.17 __nldbl___vsyslog_chk F
+GLIBC_2.17 __nldbl___vwprintf_chk F
+GLIBC_2.17 __nldbl___wprintf_chk F
+GLIBC_2.17 __nldbl_asprintf F
+GLIBC_2.17 __nldbl_dprintf F
+GLIBC_2.17 __nldbl_fprintf F
+GLIBC_2.17 __nldbl_fscanf F
+GLIBC_2.17 __nldbl_fwprintf F
+GLIBC_2.17 __nldbl_fwscanf F
+GLIBC_2.17 __nldbl_obstack_printf F
+GLIBC_2.17 __nldbl_obstack_vprintf F
+GLIBC_2.17 __nldbl_printf F
+GLIBC_2.17 __nldbl_printf_size F
+GLIBC_2.17 __nldbl_scanf F
+GLIBC_2.17 __nldbl_snprintf F
+GLIBC_2.17 __nldbl_sprintf F
+GLIBC_2.17 __nldbl_sscanf F
+GLIBC_2.17 __nldbl_strfmon F
+GLIBC_2.17 __nldbl_strfmon_l F
+GLIBC_2.17 __nldbl_swprintf F
+GLIBC_2.17 __nldbl_swscanf F
+GLIBC_2.17 __nldbl_syslog F
+GLIBC_2.17 __nldbl_vasprintf F
+GLIBC_2.17 __nldbl_vdprintf F
+GLIBC_2.17 __nldbl_vfprintf F
+GLIBC_2.17 __nldbl_vfscanf F
+GLIBC_2.17 __nldbl_vfwprintf F
+GLIBC_2.17 __nldbl_vfwscanf F
+GLIBC_2.17 __nldbl_vprintf F
+GLIBC_2.17 __nldbl_vscanf F
+GLIBC_2.17 __nldbl_vsnprintf F
+GLIBC_2.17 __nldbl_vsprintf F
+GLIBC_2.17 __nldbl_vsscanf F
+GLIBC_2.17 __nldbl_vswprintf F
+GLIBC_2.17 __nldbl_vswscanf F
+GLIBC_2.17 __nldbl_vsyslog F
+GLIBC_2.17 __nldbl_vwprintf F
+GLIBC_2.17 __nldbl_vwscanf F
+GLIBC_2.17 __nldbl_wprintf F
+GLIBC_2.17 __nldbl_wscanf F
+GLIBC_2.17 __nss_configure_lookup F
+GLIBC_2.17 __nss_database_lookup F
+GLIBC_2.17 __nss_group_lookup F
+GLIBC_2.17 __nss_hostname_digits_dots F
+GLIBC_2.17 __nss_hosts_lookup F
+GLIBC_2.17 __nss_next F
+GLIBC_2.17 __nss_passwd_lookup F
+GLIBC_2.17 __obstack_printf_chk F
+GLIBC_2.17 __obstack_vprintf_chk F
+GLIBC_2.17 __open F
+GLIBC_2.17 __open64 F
+GLIBC_2.17 __open64_2 F
+GLIBC_2.17 __open_2 F
+GLIBC_2.17 __openat64_2 F
+GLIBC_2.17 __openat_2 F
+GLIBC_2.17 __overflow F
+GLIBC_2.17 __pipe F
+GLIBC_2.17 __poll F
+GLIBC_2.17 __poll_chk F
+GLIBC_2.17 __posix_getopt F
+GLIBC_2.17 __ppc_get_timebase_freq F
+GLIBC_2.17 __ppoll_chk F
+GLIBC_2.17 __pread64 F
+GLIBC_2.17 __pread64_chk F
+GLIBC_2.17 __pread_chk F
+GLIBC_2.17 __printf_chk F
+GLIBC_2.17 __printf_fp F
+GLIBC_2.17 __profile_frequency F
+GLIBC_2.17 __progname D 0x8
+GLIBC_2.17 __progname_full D 0x8
+GLIBC_2.17 __ptsname_r_chk F
+GLIBC_2.17 __pwrite64 F
+GLIBC_2.17 __rawmemchr F
+GLIBC_2.17 __rcmd_errstr D 0x8
+GLIBC_2.17 __read F
+GLIBC_2.17 __read_chk F
+GLIBC_2.17 __readlink_chk F
+GLIBC_2.17 __readlinkat_chk F
+GLIBC_2.17 __realloc_hook D 0x8
+GLIBC_2.17 __realpath_chk F
+GLIBC_2.17 __recv_chk F
+GLIBC_2.17 __recvfrom_chk F
+GLIBC_2.17 __register_atfork F
+GLIBC_2.17 __res_init F
+GLIBC_2.17 __res_nclose F
+GLIBC_2.17 __res_ninit F
+GLIBC_2.17 __res_randomid F
+GLIBC_2.17 __res_state F
+GLIBC_2.17 __rpc_thread_createerr F
+GLIBC_2.17 __rpc_thread_svc_fdset F
+GLIBC_2.17 __rpc_thread_svc_max_pollfd F
+GLIBC_2.17 __rpc_thread_svc_pollfd F
+GLIBC_2.17 __sbrk F
+GLIBC_2.17 __sched_cpualloc F
+GLIBC_2.17 __sched_cpucount F
+GLIBC_2.17 __sched_cpufree F
+GLIBC_2.17 __sched_get_priority_max F
+GLIBC_2.17 __sched_get_priority_min F
+GLIBC_2.17 __sched_getparam F
+GLIBC_2.17 __sched_getscheduler F
+GLIBC_2.17 __sched_setscheduler F
+GLIBC_2.17 __sched_yield F
+GLIBC_2.17 __select F
+GLIBC_2.17 __send F
+GLIBC_2.17 __setmntent F
+GLIBC_2.17 __setpgid F
+GLIBC_2.17 __sigaction F
+GLIBC_2.17 __sigaddset F
+GLIBC_2.17 __sigdelset F
+GLIBC_2.17 __sigismember F
+GLIBC_2.17 __signbit F
+GLIBC_2.17 __signbitf F
+GLIBC_2.17 __signbitl F
+GLIBC_2.17 __sigpause F
+GLIBC_2.17 __sigsetjmp F
+GLIBC_2.17 __sigsuspend F
+GLIBC_2.17 __snprintf_chk F
+GLIBC_2.17 __sprintf_chk F
+GLIBC_2.17 __stack_chk_fail F
+GLIBC_2.17 __statfs F
+GLIBC_2.17 __stpcpy F
+GLIBC_2.17 __stpcpy_chk F
+GLIBC_2.17 __stpcpy_small F
+GLIBC_2.17 __stpncpy F
+GLIBC_2.17 __stpncpy_chk F
+GLIBC_2.17 __strcasecmp F
+GLIBC_2.17 __strcasecmp_l F
+GLIBC_2.17 __strcasestr F
+GLIBC_2.17 __strcat_chk F
+GLIBC_2.17 __strcoll_l F
+GLIBC_2.17 __strcpy_chk F
+GLIBC_2.17 __strcpy_small F
+GLIBC_2.17 __strcspn_c1 F
+GLIBC_2.17 __strcspn_c2 F
+GLIBC_2.17 __strcspn_c3 F
+GLIBC_2.17 __strdup F
+GLIBC_2.17 __strerror_r F
+GLIBC_2.17 __strfmon_l F
+GLIBC_2.17 __strftime_l F
+GLIBC_2.17 __strncasecmp_l F
+GLIBC_2.17 __strncat_chk F
+GLIBC_2.17 __strncpy_chk F
+GLIBC_2.17 __strndup F
+GLIBC_2.17 __strpbrk_c2 F
+GLIBC_2.17 __strpbrk_c3 F
+GLIBC_2.17 __strsep_1c F
+GLIBC_2.17 __strsep_2c F
+GLIBC_2.17 __strsep_3c F
+GLIBC_2.17 __strsep_g F
+GLIBC_2.17 __strspn_c1 F
+GLIBC_2.17 __strspn_c2 F
+GLIBC_2.17 __strspn_c3 F
+GLIBC_2.17 __strtod_internal F
+GLIBC_2.17 __strtod_l F
+GLIBC_2.17 __strtof_internal F
+GLIBC_2.17 __strtof_l F
+GLIBC_2.17 __strtok_r F
+GLIBC_2.17 __strtok_r_1c F
+GLIBC_2.17 __strtol_internal F
+GLIBC_2.17 __strtol_l F
+GLIBC_2.17 __strtold_internal F
+GLIBC_2.17 __strtold_l F
+GLIBC_2.17 __strtoll_internal F
+GLIBC_2.17 __strtoll_l F
+GLIBC_2.17 __strtoul_internal F
+GLIBC_2.17 __strtoul_l F
+GLIBC_2.17 __strtoull_internal F
+GLIBC_2.17 __strtoull_l F
+GLIBC_2.17 __strverscmp F
+GLIBC_2.17 __strxfrm_l F
+GLIBC_2.17 __swprintf_chk F
+GLIBC_2.17 __sysconf F
+GLIBC_2.17 __sysctl F
+GLIBC_2.17 __syslog_chk F
+GLIBC_2.17 __sysv_signal F
+GLIBC_2.17 __timezone D 0x8
+GLIBC_2.17 __toascii_l F
+GLIBC_2.17 __tolower_l F
+GLIBC_2.17 __toupper_l F
+GLIBC_2.17 __towctrans F
+GLIBC_2.17 __towctrans_l F
+GLIBC_2.17 __towlower_l F
+GLIBC_2.17 __towupper_l F
+GLIBC_2.17 __ttyname_r_chk F
+GLIBC_2.17 __tzname D 0x10
+GLIBC_2.17 __uflow F
+GLIBC_2.17 __underflow F
+GLIBC_2.17 __uselocale F
+GLIBC_2.17 __vasprintf_chk F
+GLIBC_2.17 __vdprintf_chk F
+GLIBC_2.17 __vfork F
+GLIBC_2.17 __vfprintf_chk F
+GLIBC_2.17 __vfscanf F
+GLIBC_2.17 __vfwprintf_chk F
+GLIBC_2.17 __vprintf_chk F
+GLIBC_2.17 __vsnprintf F
+GLIBC_2.17 __vsnprintf_chk F
+GLIBC_2.17 __vsprintf_chk F
+GLIBC_2.17 __vsscanf F
+GLIBC_2.17 __vswprintf_chk F
+GLIBC_2.17 __vsyslog_chk F
+GLIBC_2.17 __vwprintf_chk F
+GLIBC_2.17 __wait F
+GLIBC_2.17 __waitpid F
+GLIBC_2.17 __wcpcpy_chk F
+GLIBC_2.17 __wcpncpy_chk F
+GLIBC_2.17 __wcrtomb_chk F
+GLIBC_2.17 __wcscasecmp_l F
+GLIBC_2.17 __wcscat_chk F
+GLIBC_2.17 __wcscoll_l F
+GLIBC_2.17 __wcscpy_chk F
+GLIBC_2.17 __wcsftime_l F
+GLIBC_2.17 __wcsncasecmp_l F
+GLIBC_2.17 __wcsncat_chk F
+GLIBC_2.17 __wcsncpy_chk F
+GLIBC_2.17 __wcsnrtombs_chk F
+GLIBC_2.17 __wcsrtombs_chk F
+GLIBC_2.17 __wcstod_internal F
+GLIBC_2.17 __wcstod_l F
+GLIBC_2.17 __wcstof_internal F
+GLIBC_2.17 __wcstof_l F
+GLIBC_2.17 __wcstol_internal F
+GLIBC_2.17 __wcstol_l F
+GLIBC_2.17 __wcstold_internal F
+GLIBC_2.17 __wcstold_l F
+GLIBC_2.17 __wcstoll_internal F
+GLIBC_2.17 __wcstoll_l F
+GLIBC_2.17 __wcstombs_chk F
+GLIBC_2.17 __wcstoul_internal F
+GLIBC_2.17 __wcstoul_l F
+GLIBC_2.17 __wcstoull_internal F
+GLIBC_2.17 __wcstoull_l F
+GLIBC_2.17 __wcsxfrm_l F
+GLIBC_2.17 __wctomb_chk F
+GLIBC_2.17 __wctrans_l F
+GLIBC_2.17 __wctype_l F
+GLIBC_2.17 __wmemcpy_chk F
+GLIBC_2.17 __wmemmove_chk F
+GLIBC_2.17 __wmempcpy_chk F
+GLIBC_2.17 __wmemset_chk F
+GLIBC_2.17 __woverflow F
+GLIBC_2.17 __wprintf_chk F
+GLIBC_2.17 __write F
+GLIBC_2.17 __wuflow F
+GLIBC_2.17 __wunderflow F
+GLIBC_2.17 __xmknod F
+GLIBC_2.17 __xmknodat F
+GLIBC_2.17 __xpg_basename F
+GLIBC_2.17 __xpg_sigpause F
+GLIBC_2.17 __xpg_strerror_r F
+GLIBC_2.17 __xstat F
+GLIBC_2.17 __xstat64 F
+GLIBC_2.17 _authenticate F
+GLIBC_2.17 _dl_mcount_wrapper F
+GLIBC_2.17 _dl_mcount_wrapper_check F
+GLIBC_2.17 _environ D 0x8
+GLIBC_2.17 _exit F
+GLIBC_2.17 _flushlbf F
+GLIBC_2.17 _libc_intl_domainname D 0x5
+GLIBC_2.17 _longjmp F
+GLIBC_2.17 _mcleanup F
+GLIBC_2.17 _mcount F
+GLIBC_2.17 _nl_default_dirname D 0x12
+GLIBC_2.17 _nl_domain_bindings D 0x8
+GLIBC_2.17 _nl_msg_cat_cntr D 0x4
+GLIBC_2.17 _null_auth D 0x18
+GLIBC_2.17 _obstack_allocated_p F
+GLIBC_2.17 _obstack_begin F
+GLIBC_2.17 _obstack_begin_1 F
+GLIBC_2.17 _obstack_free F
+GLIBC_2.17 _obstack_memory_used F
+GLIBC_2.17 _obstack_newchunk F
+GLIBC_2.17 _res D 0x238
+GLIBC_2.17 _res_hconf D 0x48
+GLIBC_2.17 _rpc_dtablesize F
+GLIBC_2.17 _seterr_reply F
+GLIBC_2.17 _setjmp F
+GLIBC_2.17 _sys_errlist D 0x438
+GLIBC_2.17 _sys_nerr D 0x4
+GLIBC_2.17 _sys_siglist D 0x208
+GLIBC_2.17 _tolower F
+GLIBC_2.17 _toupper F
+GLIBC_2.17 a64l F
+GLIBC_2.17 abort F
+GLIBC_2.17 abs F
+GLIBC_2.17 accept F
+GLIBC_2.17 accept4 F
+GLIBC_2.17 access F
+GLIBC_2.17 acct F
+GLIBC_2.17 addmntent F
+GLIBC_2.17 addseverity F
+GLIBC_2.17 adjtime F
+GLIBC_2.17 adjtimex F
+GLIBC_2.17 advance F
+GLIBC_2.17 alarm F
+GLIBC_2.17 aligned_alloc F
+GLIBC_2.17 alphasort F
+GLIBC_2.17 alphasort64 F
+GLIBC_2.17 argp_err_exit_status D 0x4
+GLIBC_2.17 argp_error F
+GLIBC_2.17 argp_failure F
+GLIBC_2.17 argp_help F
+GLIBC_2.17 argp_parse F
+GLIBC_2.17 argp_program_bug_address D 0x8
+GLIBC_2.17 argp_program_version D 0x8
+GLIBC_2.17 argp_program_version_hook D 0x8
+GLIBC_2.17 argp_state_help F
+GLIBC_2.17 argp_usage F
+GLIBC_2.17 argz_add F
+GLIBC_2.17 argz_add_sep F
+GLIBC_2.17 argz_append F
+GLIBC_2.17 argz_count F
+GLIBC_2.17 argz_create F
+GLIBC_2.17 argz_create_sep F
+GLIBC_2.17 argz_delete F
+GLIBC_2.17 argz_extract F
+GLIBC_2.17 argz_insert F
+GLIBC_2.17 argz_next F
+GLIBC_2.17 argz_replace F
+GLIBC_2.17 argz_stringify F
+GLIBC_2.17 asctime F
+GLIBC_2.17 asctime_r F
+GLIBC_2.17 asprintf F
+GLIBC_2.17 atof F
+GLIBC_2.17 atoi F
+GLIBC_2.17 atol F
+GLIBC_2.17 atoll F
+GLIBC_2.17 authdes_create F
+GLIBC_2.17 authdes_getucred F
+GLIBC_2.17 authdes_pk_create F
+GLIBC_2.17 authnone_create F
+GLIBC_2.17 authunix_create F
+GLIBC_2.17 authunix_create_default F
+GLIBC_2.17 backtrace F
+GLIBC_2.17 backtrace_symbols F
+GLIBC_2.17 backtrace_symbols_fd F
+GLIBC_2.17 basename F
+GLIBC_2.17 bcmp F
+GLIBC_2.17 bcopy F
+GLIBC_2.17 bdflush F
+GLIBC_2.17 bind F
+GLIBC_2.17 bind_textdomain_codeset F
+GLIBC_2.17 bindresvport F
+GLIBC_2.17 bindtextdomain F
+GLIBC_2.17 brk F
+GLIBC_2.17 bsd_signal F
+GLIBC_2.17 bsearch F
+GLIBC_2.17 btowc F
+GLIBC_2.17 bzero F
+GLIBC_2.17 c16rtomb F
+GLIBC_2.17 c32rtomb F
+GLIBC_2.17 calloc F
+GLIBC_2.17 callrpc F
+GLIBC_2.17 canonicalize_file_name F
+GLIBC_2.17 capget F
+GLIBC_2.17 capset F
+GLIBC_2.17 catclose F
+GLIBC_2.17 catgets F
+GLIBC_2.17 catopen F
+GLIBC_2.17 cbc_crypt F
+GLIBC_2.17 cfgetispeed F
+GLIBC_2.17 cfgetospeed F
+GLIBC_2.17 cfmakeraw F
+GLIBC_2.17 cfree F
+GLIBC_2.17 cfsetispeed F
+GLIBC_2.17 cfsetospeed F
+GLIBC_2.17 cfsetspeed F
+GLIBC_2.17 chdir F
+GLIBC_2.17 chflags F
+GLIBC_2.17 chmod F
+GLIBC_2.17 chown F
+GLIBC_2.17 chroot F
+GLIBC_2.17 clearenv F
+GLIBC_2.17 clearerr F
+GLIBC_2.17 clearerr_unlocked F
+GLIBC_2.17 clnt_broadcast F
+GLIBC_2.17 clnt_create F
+GLIBC_2.17 clnt_pcreateerror F
+GLIBC_2.17 clnt_perrno F
+GLIBC_2.17 clnt_perror F
+GLIBC_2.17 clnt_spcreateerror F
+GLIBC_2.17 clnt_sperrno F
+GLIBC_2.17 clnt_sperror F
+GLIBC_2.17 clntraw_create F
+GLIBC_2.17 clnttcp_create F
+GLIBC_2.17 clntudp_bufcreate F
+GLIBC_2.17 clntudp_create F
+GLIBC_2.17 clntunix_create F
+GLIBC_2.17 clock F
+GLIBC_2.17 clock_adjtime F
+GLIBC_2.17 clock_getcpuclockid F
+GLIBC_2.17 clock_getres F
+GLIBC_2.17 clock_gettime F
+GLIBC_2.17 clock_nanosleep F
+GLIBC_2.17 clock_settime F
+GLIBC_2.17 clone F
+GLIBC_2.17 close F
+GLIBC_2.17 closedir F
+GLIBC_2.17 closelog F
+GLIBC_2.17 confstr F
+GLIBC_2.17 connect F
+GLIBC_2.17 copysign F
+GLIBC_2.17 copysignf F
+GLIBC_2.17 copysignl F
+GLIBC_2.17 creat F
+GLIBC_2.17 creat64 F
+GLIBC_2.17 create_module F
+GLIBC_2.17 ctermid F
+GLIBC_2.17 ctime F
+GLIBC_2.17 ctime_r F
+GLIBC_2.17 cuserid F
+GLIBC_2.17 daemon F
+GLIBC_2.17 daylight D 0x4
+GLIBC_2.17 dcgettext F
+GLIBC_2.17 dcngettext F
+GLIBC_2.17 delete_module F
+GLIBC_2.17 des_setparity F
+GLIBC_2.17 dgettext F
+GLIBC_2.17 difftime F
+GLIBC_2.17 dirfd F
+GLIBC_2.17 dirname F
+GLIBC_2.17 div F
+GLIBC_2.17 dl_iterate_phdr F
+GLIBC_2.17 dngettext F
+GLIBC_2.17 dprintf F
+GLIBC_2.17 drand48 F
+GLIBC_2.17 drand48_r F
+GLIBC_2.17 dup F
+GLIBC_2.17 dup2 F
+GLIBC_2.17 dup3 F
+GLIBC_2.17 duplocale F
+GLIBC_2.17 dysize F
+GLIBC_2.17 eaccess F
+GLIBC_2.17 ecb_crypt F
+GLIBC_2.17 ecvt F
+GLIBC_2.17 ecvt_r F
+GLIBC_2.17 endaliasent F
+GLIBC_2.17 endfsent F
+GLIBC_2.17 endgrent F
+GLIBC_2.17 endhostent F
+GLIBC_2.17 endmntent F
+GLIBC_2.17 endnetent F
+GLIBC_2.17 endnetgrent F
+GLIBC_2.17 endprotoent F
+GLIBC_2.17 endpwent F
+GLIBC_2.17 endrpcent F
+GLIBC_2.17 endservent F
+GLIBC_2.17 endsgent F
+GLIBC_2.17 endspent F
+GLIBC_2.17 endttyent F
+GLIBC_2.17 endusershell F
+GLIBC_2.17 endutent F
+GLIBC_2.17 endutxent F
+GLIBC_2.17 environ D 0x8
+GLIBC_2.17 envz_add F
+GLIBC_2.17 envz_entry F
+GLIBC_2.17 envz_get F
+GLIBC_2.17 envz_merge F
+GLIBC_2.17 envz_remove F
+GLIBC_2.17 envz_strip F
+GLIBC_2.17 epoll_create F
+GLIBC_2.17 epoll_create1 F
+GLIBC_2.17 epoll_ctl F
+GLIBC_2.17 epoll_pwait F
+GLIBC_2.17 epoll_wait F
+GLIBC_2.17 erand48 F
+GLIBC_2.17 erand48_r F
+GLIBC_2.17 err F
+GLIBC_2.17 error F
+GLIBC_2.17 error_at_line F
+GLIBC_2.17 error_message_count D 0x4
+GLIBC_2.17 error_one_per_line D 0x4
+GLIBC_2.17 error_print_progname D 0x8
+GLIBC_2.17 errx F
+GLIBC_2.17 ether_aton F
+GLIBC_2.17 ether_aton_r F
+GLIBC_2.17 ether_hostton F
+GLIBC_2.17 ether_line F
+GLIBC_2.17 ether_ntoa F
+GLIBC_2.17 ether_ntoa_r F
+GLIBC_2.17 ether_ntohost F
+GLIBC_2.17 euidaccess F
+GLIBC_2.17 eventfd F
+GLIBC_2.17 eventfd_read F
+GLIBC_2.17 eventfd_write F
+GLIBC_2.17 execl F
+GLIBC_2.17 execle F
+GLIBC_2.17 execlp F
+GLIBC_2.17 execv F
+GLIBC_2.17 execve F
+GLIBC_2.17 execvp F
+GLIBC_2.17 execvpe F
+GLIBC_2.17 exit F
+GLIBC_2.17 faccessat F
+GLIBC_2.17 fallocate F
+GLIBC_2.17 fallocate64 F
+GLIBC_2.17 fanotify_init F
+GLIBC_2.17 fanotify_mark F
+GLIBC_2.17 fattach F
+GLIBC_2.17 fchdir F
+GLIBC_2.17 fchflags F
+GLIBC_2.17 fchmod F
+GLIBC_2.17 fchmodat F
+GLIBC_2.17 fchown F
+GLIBC_2.17 fchownat F
+GLIBC_2.17 fclose F
+GLIBC_2.17 fcloseall F
+GLIBC_2.17 fcntl F
+GLIBC_2.17 fcvt F
+GLIBC_2.17 fcvt_r F
+GLIBC_2.17 fdatasync F
+GLIBC_2.17 fdetach F
+GLIBC_2.17 fdopen F
+GLIBC_2.17 fdopendir F
+GLIBC_2.17 feof F
+GLIBC_2.17 feof_unlocked F
+GLIBC_2.17 ferror F
+GLIBC_2.17 ferror_unlocked F
+GLIBC_2.17 fexecve F
+GLIBC_2.17 fflush F
+GLIBC_2.17 fflush_unlocked F
+GLIBC_2.17 ffs F
+GLIBC_2.17 ffsl F
+GLIBC_2.17 ffsll F
+GLIBC_2.17 fgetc F
+GLIBC_2.17 fgetc_unlocked F
+GLIBC_2.17 fgetgrent F
+GLIBC_2.17 fgetgrent_r F
+GLIBC_2.17 fgetpos F
+GLIBC_2.17 fgetpos64 F
+GLIBC_2.17 fgetpwent F
+GLIBC_2.17 fgetpwent_r F
+GLIBC_2.17 fgets F
+GLIBC_2.17 fgets_unlocked F
+GLIBC_2.17 fgetsgent F
+GLIBC_2.17 fgetsgent_r F
+GLIBC_2.17 fgetspent F
+GLIBC_2.17 fgetspent_r F
+GLIBC_2.17 fgetwc F
+GLIBC_2.17 fgetwc_unlocked F
+GLIBC_2.17 fgetws F
+GLIBC_2.17 fgetws_unlocked F
+GLIBC_2.17 fgetxattr F
+GLIBC_2.17 fileno F
+GLIBC_2.17 fileno_unlocked F
+GLIBC_2.17 finite F
+GLIBC_2.17 finitef F
+GLIBC_2.17 finitel F
+GLIBC_2.17 flistxattr F
+GLIBC_2.17 flock F
+GLIBC_2.17 flockfile F
+GLIBC_2.17 fmemopen F
+GLIBC_2.17 fmtmsg F
+GLIBC_2.17 fnmatch F
+GLIBC_2.17 fopen F
+GLIBC_2.17 fopen64 F
+GLIBC_2.17 fopencookie F
+GLIBC_2.17 fork F
+GLIBC_2.17 fpathconf F
+GLIBC_2.17 fprintf F
+GLIBC_2.17 fputc F
+GLIBC_2.17 fputc_unlocked F
+GLIBC_2.17 fputs F
+GLIBC_2.17 fputs_unlocked F
+GLIBC_2.17 fputwc F
+GLIBC_2.17 fputwc_unlocked F
+GLIBC_2.17 fputws F
+GLIBC_2.17 fputws_unlocked F
+GLIBC_2.17 fread F
+GLIBC_2.17 fread_unlocked F
+GLIBC_2.17 free F
+GLIBC_2.17 freeaddrinfo F
+GLIBC_2.17 freeifaddrs F
+GLIBC_2.17 freelocale F
+GLIBC_2.17 fremovexattr F
+GLIBC_2.17 freopen F
+GLIBC_2.17 freopen64 F
+GLIBC_2.17 frexp F
+GLIBC_2.17 frexpf F
+GLIBC_2.17 frexpl F
+GLIBC_2.17 fscanf F
+GLIBC_2.17 fseek F
+GLIBC_2.17 fseeko F
+GLIBC_2.17 fseeko64 F
+GLIBC_2.17 fsetpos F
+GLIBC_2.17 fsetpos64 F
+GLIBC_2.17 fsetxattr F
+GLIBC_2.17 fstatfs F
+GLIBC_2.17 fstatfs64 F
+GLIBC_2.17 fstatvfs F
+GLIBC_2.17 fstatvfs64 F
+GLIBC_2.17 fsync F
+GLIBC_2.17 ftell F
+GLIBC_2.17 ftello F
+GLIBC_2.17 ftello64 F
+GLIBC_2.17 ftime F
+GLIBC_2.17 ftok F
+GLIBC_2.17 ftruncate F
+GLIBC_2.17 ftruncate64 F
+GLIBC_2.17 ftrylockfile F
+GLIBC_2.17 fts_children F
+GLIBC_2.17 fts_close F
+GLIBC_2.17 fts_open F
+GLIBC_2.17 fts_read F
+GLIBC_2.17 fts_set F
+GLIBC_2.17 ftw F
+GLIBC_2.17 ftw64 F
+GLIBC_2.17 funlockfile F
+GLIBC_2.17 futimens F
+GLIBC_2.17 futimes F
+GLIBC_2.17 futimesat F
+GLIBC_2.17 fwide F
+GLIBC_2.17 fwprintf F
+GLIBC_2.17 fwrite F
+GLIBC_2.17 fwrite_unlocked F
+GLIBC_2.17 fwscanf F
+GLIBC_2.17 gai_strerror F
+GLIBC_2.17 gcvt F
+GLIBC_2.17 get_avphys_pages F
+GLIBC_2.17 get_current_dir_name F
+GLIBC_2.17 get_kernel_syms F
+GLIBC_2.17 get_myaddress F
+GLIBC_2.17 get_nprocs F
+GLIBC_2.17 get_nprocs_conf F
+GLIBC_2.17 get_phys_pages F
+GLIBC_2.17 getaddrinfo F
+GLIBC_2.17 getaliasbyname F
+GLIBC_2.17 getaliasbyname_r F
+GLIBC_2.17 getaliasent F
+GLIBC_2.17 getaliasent_r F
+GLIBC_2.17 getauxval F
+GLIBC_2.17 getc F
+GLIBC_2.17 getc_unlocked F
+GLIBC_2.17 getchar F
+GLIBC_2.17 getchar_unlocked F
+GLIBC_2.17 getcontext F
+GLIBC_2.17 getcwd F
+GLIBC_2.17 getdate F
+GLIBC_2.17 getdate_err D 0x4
+GLIBC_2.17 getdate_r F
+GLIBC_2.17 getdelim F
+GLIBC_2.17 getdirentries F
+GLIBC_2.17 getdirentries64 F
+GLIBC_2.17 getdomainname F
+GLIBC_2.17 getdtablesize F
+GLIBC_2.17 getegid F
+GLIBC_2.17 getenv F
+GLIBC_2.17 geteuid F
+GLIBC_2.17 getfsent F
+GLIBC_2.17 getfsfile F
+GLIBC_2.17 getfsspec F
+GLIBC_2.17 getgid F
+GLIBC_2.17 getgrent F
+GLIBC_2.17 getgrent_r F
+GLIBC_2.17 getgrgid F
+GLIBC_2.17 getgrgid_r F
+GLIBC_2.17 getgrnam F
+GLIBC_2.17 getgrnam_r F
+GLIBC_2.17 getgrouplist F
+GLIBC_2.17 getgroups F
+GLIBC_2.17 gethostbyaddr F
+GLIBC_2.17 gethostbyaddr_r F
+GLIBC_2.17 gethostbyname F
+GLIBC_2.17 gethostbyname2 F
+GLIBC_2.17 gethostbyname2_r F
+GLIBC_2.17 gethostbyname_r F
+GLIBC_2.17 gethostent F
+GLIBC_2.17 gethostent_r F
+GLIBC_2.17 gethostid F
+GLIBC_2.17 gethostname F
+GLIBC_2.17 getifaddrs F
+GLIBC_2.17 getipv4sourcefilter F
+GLIBC_2.17 getitimer F
+GLIBC_2.17 getline F
+GLIBC_2.17 getloadavg F
+GLIBC_2.17 getlogin F
+GLIBC_2.17 getlogin_r F
+GLIBC_2.17 getmntent F
+GLIBC_2.17 getmntent_r F
+GLIBC_2.17 getmsg F
+GLIBC_2.17 getnameinfo F
+GLIBC_2.17 getnetbyaddr F
+GLIBC_2.17 getnetbyaddr_r F
+GLIBC_2.17 getnetbyname F
+GLIBC_2.17 getnetbyname_r F
+GLIBC_2.17 getnetent F
+GLIBC_2.17 getnetent_r F
+GLIBC_2.17 getnetgrent F
+GLIBC_2.17 getnetgrent_r F
+GLIBC_2.17 getnetname F
+GLIBC_2.17 getopt F
+GLIBC_2.17 getopt_long F
+GLIBC_2.17 getopt_long_only F
+GLIBC_2.17 getpagesize F
+GLIBC_2.17 getpass F
+GLIBC_2.17 getpeername F
+GLIBC_2.17 getpgid F
+GLIBC_2.17 getpgrp F
+GLIBC_2.17 getpid F
+GLIBC_2.17 getpmsg F
+GLIBC_2.17 getppid F
+GLIBC_2.17 getpriority F
+GLIBC_2.17 getprotobyname F
+GLIBC_2.17 getprotobyname_r F
+GLIBC_2.17 getprotobynumber F
+GLIBC_2.17 getprotobynumber_r F
+GLIBC_2.17 getprotoent F
+GLIBC_2.17 getprotoent_r F
+GLIBC_2.17 getpt F
+GLIBC_2.17 getpublickey F
+GLIBC_2.17 getpw F
+GLIBC_2.17 getpwent F
+GLIBC_2.17 getpwent_r F
+GLIBC_2.17 getpwnam F
+GLIBC_2.17 getpwnam_r F
+GLIBC_2.17 getpwuid F
+GLIBC_2.17 getpwuid_r F
+GLIBC_2.17 getresgid F
+GLIBC_2.17 getresuid F
+GLIBC_2.17 getrlimit F
+GLIBC_2.17 getrlimit64 F
+GLIBC_2.17 getrpcbyname F
+GLIBC_2.17 getrpcbyname_r F
+GLIBC_2.17 getrpcbynumber F
+GLIBC_2.17 getrpcbynumber_r F
+GLIBC_2.17 getrpcent F
+GLIBC_2.17 getrpcent_r F
+GLIBC_2.17 getrpcport F
+GLIBC_2.17 getrusage F
+GLIBC_2.17 gets F
+GLIBC_2.17 getsecretkey F
+GLIBC_2.17 getservbyname F
+GLIBC_2.17 getservbyname_r F
+GLIBC_2.17 getservbyport F
+GLIBC_2.17 getservbyport_r F
+GLIBC_2.17 getservent F
+GLIBC_2.17 getservent_r F
+GLIBC_2.17 getsgent F
+GLIBC_2.17 getsgent_r F
+GLIBC_2.17 getsgnam F
+GLIBC_2.17 getsgnam_r F
+GLIBC_2.17 getsid F
+GLIBC_2.17 getsockname F
+GLIBC_2.17 getsockopt F
+GLIBC_2.17 getsourcefilter F
+GLIBC_2.17 getspent F
+GLIBC_2.17 getspent_r F
+GLIBC_2.17 getspnam F
+GLIBC_2.17 getspnam_r F
+GLIBC_2.17 getsubopt F
+GLIBC_2.17 gettext F
+GLIBC_2.17 gettimeofday F
+GLIBC_2.17 getttyent F
+GLIBC_2.17 getttynam F
+GLIBC_2.17 getuid F
+GLIBC_2.17 getusershell F
+GLIBC_2.17 getutent F
+GLIBC_2.17 getutent_r F
+GLIBC_2.17 getutid F
+GLIBC_2.17 getutid_r F
+GLIBC_2.17 getutline F
+GLIBC_2.17 getutline_r F
+GLIBC_2.17 getutmp F
+GLIBC_2.17 getutmpx F
+GLIBC_2.17 getutxent F
+GLIBC_2.17 getutxid F
+GLIBC_2.17 getutxline F
+GLIBC_2.17 getw F
+GLIBC_2.17 getwc F
+GLIBC_2.17 getwc_unlocked F
+GLIBC_2.17 getwchar F
+GLIBC_2.17 getwchar_unlocked F
+GLIBC_2.17 getwd F
+GLIBC_2.17 getxattr F
+GLIBC_2.17 glob F
+GLIBC_2.17 glob64 F
+GLIBC_2.17 glob_pattern_p F
+GLIBC_2.17 globfree F
+GLIBC_2.17 globfree64 F
+GLIBC_2.17 gmtime F
+GLIBC_2.17 gmtime_r F
+GLIBC_2.17 gnu_dev_major F
+GLIBC_2.17 gnu_dev_makedev F
+GLIBC_2.17 gnu_dev_minor F
+GLIBC_2.17 gnu_get_libc_release F
+GLIBC_2.17 gnu_get_libc_version F
+GLIBC_2.17 grantpt F
+GLIBC_2.17 group_member F
+GLIBC_2.17 gsignal F
+GLIBC_2.17 gtty F
+GLIBC_2.17 h_errlist D 0x28
+GLIBC_2.17 h_nerr D 0x4
+GLIBC_2.17 hasmntopt F
+GLIBC_2.17 hcreate F
+GLIBC_2.17 hcreate_r F
+GLIBC_2.17 hdestroy F
+GLIBC_2.17 hdestroy_r F
+GLIBC_2.17 herror F
+GLIBC_2.17 host2netname F
+GLIBC_2.17 hsearch F
+GLIBC_2.17 hsearch_r F
+GLIBC_2.17 hstrerror F
+GLIBC_2.17 htonl F
+GLIBC_2.17 htons F
+GLIBC_2.17 iconv F
+GLIBC_2.17 iconv_close F
+GLIBC_2.17 iconv_open F
+GLIBC_2.17 if_freenameindex F
+GLIBC_2.17 if_indextoname F
+GLIBC_2.17 if_nameindex F
+GLIBC_2.17 if_nametoindex F
+GLIBC_2.17 imaxabs F
+GLIBC_2.17 imaxdiv F
+GLIBC_2.17 in6addr_any D 0x10
+GLIBC_2.17 in6addr_loopback D 0x10
+GLIBC_2.17 index F
+GLIBC_2.17 inet6_opt_append F
+GLIBC_2.17 inet6_opt_find F
+GLIBC_2.17 inet6_opt_finish F
+GLIBC_2.17 inet6_opt_get_val F
+GLIBC_2.17 inet6_opt_init F
+GLIBC_2.17 inet6_opt_next F
+GLIBC_2.17 inet6_opt_set_val F
+GLIBC_2.17 inet6_option_alloc F
+GLIBC_2.17 inet6_option_append F
+GLIBC_2.17 inet6_option_find F
+GLIBC_2.17 inet6_option_init F
+GLIBC_2.17 inet6_option_next F
+GLIBC_2.17 inet6_option_space F
+GLIBC_2.17 inet6_rth_add F
+GLIBC_2.17 inet6_rth_getaddr F
+GLIBC_2.17 inet6_rth_init F
+GLIBC_2.17 inet6_rth_reverse F
+GLIBC_2.17 inet6_rth_segments F
+GLIBC_2.17 inet6_rth_space F
+GLIBC_2.17 inet_addr F
+GLIBC_2.17 inet_aton F
+GLIBC_2.17 inet_lnaof F
+GLIBC_2.17 inet_makeaddr F
+GLIBC_2.17 inet_netof F
+GLIBC_2.17 inet_network F
+GLIBC_2.17 inet_nsap_addr F
+GLIBC_2.17 inet_nsap_ntoa F
+GLIBC_2.17 inet_ntoa F
+GLIBC_2.17 inet_ntop F
+GLIBC_2.17 inet_pton F
+GLIBC_2.17 init_module F
+GLIBC_2.17 initgroups F
+GLIBC_2.17 initstate F
+GLIBC_2.17 initstate_r F
+GLIBC_2.17 innetgr F
+GLIBC_2.17 inotify_add_watch F
+GLIBC_2.17 inotify_init F
+GLIBC_2.17 inotify_init1 F
+GLIBC_2.17 inotify_rm_watch F
+GLIBC_2.17 insque F
+GLIBC_2.17 ioctl F
+GLIBC_2.17 iruserok F
+GLIBC_2.17 iruserok_af F
+GLIBC_2.17 isalnum F
+GLIBC_2.17 isalnum_l F
+GLIBC_2.17 isalpha F
+GLIBC_2.17 isalpha_l F
+GLIBC_2.17 isascii F
+GLIBC_2.17 isastream F
+GLIBC_2.17 isatty F
+GLIBC_2.17 isblank F
+GLIBC_2.17 isblank_l F
+GLIBC_2.17 iscntrl F
+GLIBC_2.17 iscntrl_l F
+GLIBC_2.17 isctype F
+GLIBC_2.17 isdigit F
+GLIBC_2.17 isdigit_l F
+GLIBC_2.17 isfdtype F
+GLIBC_2.17 isgraph F
+GLIBC_2.17 isgraph_l F
+GLIBC_2.17 isinf F
+GLIBC_2.17 isinff F
+GLIBC_2.17 isinfl F
+GLIBC_2.17 islower F
+GLIBC_2.17 islower_l F
+GLIBC_2.17 isnan F
+GLIBC_2.17 isnanf F
+GLIBC_2.17 isnanl F
+GLIBC_2.17 isprint F
+GLIBC_2.17 isprint_l F
+GLIBC_2.17 ispunct F
+GLIBC_2.17 ispunct_l F
+GLIBC_2.17 isspace F
+GLIBC_2.17 isspace_l F
+GLIBC_2.17 isupper F
+GLIBC_2.17 isupper_l F
+GLIBC_2.17 iswalnum F
+GLIBC_2.17 iswalnum_l F
+GLIBC_2.17 iswalpha F
+GLIBC_2.17 iswalpha_l F
+GLIBC_2.17 iswblank F
+GLIBC_2.17 iswblank_l F
+GLIBC_2.17 iswcntrl F
+GLIBC_2.17 iswcntrl_l F
+GLIBC_2.17 iswctype F
+GLIBC_2.17 iswctype_l F
+GLIBC_2.17 iswdigit F
+GLIBC_2.17 iswdigit_l F
+GLIBC_2.17 iswgraph F
+GLIBC_2.17 iswgraph_l F
+GLIBC_2.17 iswlower F
+GLIBC_2.17 iswlower_l F
+GLIBC_2.17 iswprint F
+GLIBC_2.17 iswprint_l F
+GLIBC_2.17 iswpunct F
+GLIBC_2.17 iswpunct_l F
+GLIBC_2.17 iswspace F
+GLIBC_2.17 iswspace_l F
+GLIBC_2.17 iswupper F
+GLIBC_2.17 iswupper_l F
+GLIBC_2.17 iswxdigit F
+GLIBC_2.17 iswxdigit_l F
+GLIBC_2.17 isxdigit F
+GLIBC_2.17 isxdigit_l F
+GLIBC_2.17 jrand48 F
+GLIBC_2.17 jrand48_r F
+GLIBC_2.17 key_decryptsession F
+GLIBC_2.17 key_decryptsession_pk F
+GLIBC_2.17 key_encryptsession F
+GLIBC_2.17 key_encryptsession_pk F
+GLIBC_2.17 key_gendes F
+GLIBC_2.17 key_get_conv F
+GLIBC_2.17 key_secretkey_is_set F
+GLIBC_2.17 key_setnet F
+GLIBC_2.17 key_setsecret F
+GLIBC_2.17 kill F
+GLIBC_2.17 killpg F
+GLIBC_2.17 klogctl F
+GLIBC_2.17 l64a F
+GLIBC_2.17 labs F
+GLIBC_2.17 lchmod F
+GLIBC_2.17 lchown F
+GLIBC_2.17 lckpwdf F
+GLIBC_2.17 lcong48 F
+GLIBC_2.17 lcong48_r F
+GLIBC_2.17 ldexp F
+GLIBC_2.17 ldexpf F
+GLIBC_2.17 ldexpl F
+GLIBC_2.17 ldiv F
+GLIBC_2.17 lfind F
+GLIBC_2.17 lgetxattr F
+GLIBC_2.17 link F
+GLIBC_2.17 linkat F
+GLIBC_2.17 listen F
+GLIBC_2.17 listxattr F
+GLIBC_2.17 llabs F
+GLIBC_2.17 lldiv F
+GLIBC_2.17 llistxattr F
+GLIBC_2.17 llseek F
+GLIBC_2.17 loc1 D 0x8
+GLIBC_2.17 loc2 D 0x8
+GLIBC_2.17 localeconv F
+GLIBC_2.17 localtime F
+GLIBC_2.17 localtime_r F
+GLIBC_2.17 lockf F
+GLIBC_2.17 lockf64 F
+GLIBC_2.17 locs D 0x8
+GLIBC_2.17 longjmp F
+GLIBC_2.17 lrand48 F
+GLIBC_2.17 lrand48_r F
+GLIBC_2.17 lremovexattr F
+GLIBC_2.17 lsearch F
+GLIBC_2.17 lseek F
+GLIBC_2.17 lseek64 F
+GLIBC_2.17 lsetxattr F
+GLIBC_2.17 lutimes F
+GLIBC_2.17 madvise F
+GLIBC_2.17 makecontext F
+GLIBC_2.17 mallinfo F
+GLIBC_2.17 malloc F
+GLIBC_2.17 malloc_get_state F
+GLIBC_2.17 malloc_info F
+GLIBC_2.17 malloc_set_state F
+GLIBC_2.17 malloc_stats F
+GLIBC_2.17 malloc_trim F
+GLIBC_2.17 malloc_usable_size F
+GLIBC_2.17 mallopt F
+GLIBC_2.17 mallwatch D 0x8
+GLIBC_2.17 mblen F
+GLIBC_2.17 mbrlen F
+GLIBC_2.17 mbrtoc16 F
+GLIBC_2.17 mbrtoc32 F
+GLIBC_2.17 mbrtowc F
+GLIBC_2.17 mbsinit F
+GLIBC_2.17 mbsnrtowcs F
+GLIBC_2.17 mbsrtowcs F
+GLIBC_2.17 mbstowcs F
+GLIBC_2.17 mbtowc F
+GLIBC_2.17 mcheck F
+GLIBC_2.17 mcheck_check_all F
+GLIBC_2.17 mcheck_pedantic F
+GLIBC_2.17 memalign F
+GLIBC_2.17 memccpy F
+GLIBC_2.17 memchr F
+GLIBC_2.17 memcmp F
+GLIBC_2.17 memcpy F
+GLIBC_2.17 memfrob F
+GLIBC_2.17 memmem F
+GLIBC_2.17 memmove F
+GLIBC_2.17 mempcpy F
+GLIBC_2.17 memrchr F
+GLIBC_2.17 memset F
+GLIBC_2.17 mincore F
+GLIBC_2.17 mkdir F
+GLIBC_2.17 mkdirat F
+GLIBC_2.17 mkdtemp F
+GLIBC_2.17 mkfifo F
+GLIBC_2.17 mkfifoat F
+GLIBC_2.17 mkostemp F
+GLIBC_2.17 mkostemp64 F
+GLIBC_2.17 mkostemps F
+GLIBC_2.17 mkostemps64 F
+GLIBC_2.17 mkstemp F
+GLIBC_2.17 mkstemp64 F
+GLIBC_2.17 mkstemps F
+GLIBC_2.17 mkstemps64 F
+GLIBC_2.17 mktemp F
+GLIBC_2.17 mktime F
+GLIBC_2.17 mlock F
+GLIBC_2.17 mlockall F
+GLIBC_2.17 mmap F
+GLIBC_2.17 mmap64 F
+GLIBC_2.17 modf F
+GLIBC_2.17 modff F
+GLIBC_2.17 modfl F
+GLIBC_2.17 moncontrol F
+GLIBC_2.17 monstartup F
+GLIBC_2.17 mount F
+GLIBC_2.17 mprobe F
+GLIBC_2.17 mprotect F
+GLIBC_2.17 mrand48 F
+GLIBC_2.17 mrand48_r F
+GLIBC_2.17 mremap F
+GLIBC_2.17 msgctl F
+GLIBC_2.17 msgget F
+GLIBC_2.17 msgrcv F
+GLIBC_2.17 msgsnd F
+GLIBC_2.17 msync F
+GLIBC_2.17 mtrace F
+GLIBC_2.17 munlock F
+GLIBC_2.17 munlockall F
+GLIBC_2.17 munmap F
+GLIBC_2.17 muntrace F
+GLIBC_2.17 name_to_handle_at F
+GLIBC_2.17 nanosleep F
+GLIBC_2.17 netname2host F
+GLIBC_2.17 netname2user F
+GLIBC_2.17 newlocale F
+GLIBC_2.17 nfsservctl F
+GLIBC_2.17 nftw F
+GLIBC_2.17 nftw64 F
+GLIBC_2.17 ngettext F
+GLIBC_2.17 nice F
+GLIBC_2.17 nl_langinfo F
+GLIBC_2.17 nl_langinfo_l F
+GLIBC_2.17 nrand48 F
+GLIBC_2.17 nrand48_r F
+GLIBC_2.17 ntohl F
+GLIBC_2.17 ntohs F
+GLIBC_2.17 ntp_adjtime F
+GLIBC_2.17 ntp_gettime F
+GLIBC_2.17 ntp_gettimex F
+GLIBC_2.17 obstack_alloc_failed_handler D 0x8
+GLIBC_2.17 obstack_exit_failure D 0x4
+GLIBC_2.17 obstack_free F
+GLIBC_2.17 obstack_printf F
+GLIBC_2.17 obstack_vprintf F
+GLIBC_2.17 on_exit F
+GLIBC_2.17 open F
+GLIBC_2.17 open64 F
+GLIBC_2.17 open_by_handle_at F
+GLIBC_2.17 open_memstream F
+GLIBC_2.17 open_wmemstream F
+GLIBC_2.17 openat F
+GLIBC_2.17 openat64 F
+GLIBC_2.17 opendir F
+GLIBC_2.17 openlog F
+GLIBC_2.17 optarg D 0x8
+GLIBC_2.17 opterr D 0x4
+GLIBC_2.17 optind D 0x4
+GLIBC_2.17 optopt D 0x4
+GLIBC_2.17 parse_printf_format F
+GLIBC_2.17 passwd2des F
+GLIBC_2.17 pathconf F
+GLIBC_2.17 pause F
+GLIBC_2.17 pclose F
+GLIBC_2.17 perror F
+GLIBC_2.17 personality F
+GLIBC_2.17 pipe F
+GLIBC_2.17 pipe2 F
+GLIBC_2.17 pivot_root F
+GLIBC_2.17 pmap_getmaps F
+GLIBC_2.17 pmap_getport F
+GLIBC_2.17 pmap_rmtcall F
+GLIBC_2.17 pmap_set F
+GLIBC_2.17 pmap_unset F
+GLIBC_2.17 poll F
+GLIBC_2.17 popen F
+GLIBC_2.17 posix_fadvise F
+GLIBC_2.17 posix_fadvise64 F
+GLIBC_2.17 posix_fallocate F
+GLIBC_2.17 posix_fallocate64 F
+GLIBC_2.17 posix_madvise F
+GLIBC_2.17 posix_memalign F
+GLIBC_2.17 posix_openpt F
+GLIBC_2.17 posix_spawn F
+GLIBC_2.17 posix_spawn_file_actions_addclose F
+GLIBC_2.17 posix_spawn_file_actions_adddup2 F
+GLIBC_2.17 posix_spawn_file_actions_addopen F
+GLIBC_2.17 posix_spawn_file_actions_destroy F
+GLIBC_2.17 posix_spawn_file_actions_init F
+GLIBC_2.17 posix_spawnattr_destroy F
+GLIBC_2.17 posix_spawnattr_getflags F
+GLIBC_2.17 posix_spawnattr_getpgroup F
+GLIBC_2.17 posix_spawnattr_getschedparam F
+GLIBC_2.17 posix_spawnattr_getschedpolicy F
+GLIBC_2.17 posix_spawnattr_getsigdefault F
+GLIBC_2.17 posix_spawnattr_getsigmask F
+GLIBC_2.17 posix_spawnattr_init F
+GLIBC_2.17 posix_spawnattr_setflags F
+GLIBC_2.17 posix_spawnattr_setpgroup F
+GLIBC_2.17 posix_spawnattr_setschedparam F
+GLIBC_2.17 posix_spawnattr_setschedpolicy F
+GLIBC_2.17 posix_spawnattr_setsigdefault F
+GLIBC_2.17 posix_spawnattr_setsigmask F
+GLIBC_2.17 posix_spawnp F
+GLIBC_2.17 ppoll F
+GLIBC_2.17 prctl F
+GLIBC_2.17 pread F
+GLIBC_2.17 pread64 F
+GLIBC_2.17 preadv F
+GLIBC_2.17 preadv64 F
+GLIBC_2.17 printf F
+GLIBC_2.17 printf_size F
+GLIBC_2.17 printf_size_info F
+GLIBC_2.17 prlimit F
+GLIBC_2.17 prlimit64 F
+GLIBC_2.17 process_vm_readv F
+GLIBC_2.17 process_vm_writev F
+GLIBC_2.17 profil F
+GLIBC_2.17 program_invocation_name D 0x8
+GLIBC_2.17 program_invocation_short_name D 0x8
+GLIBC_2.17 pselect F
+GLIBC_2.17 psiginfo F
+GLIBC_2.17 psignal F
+GLIBC_2.17 pthread_attr_destroy F
+GLIBC_2.17 pthread_attr_getdetachstate F
+GLIBC_2.17 pthread_attr_getinheritsched F
+GLIBC_2.17 pthread_attr_getschedparam F
+GLIBC_2.17 pthread_attr_getschedpolicy F
+GLIBC_2.17 pthread_attr_getscope F
+GLIBC_2.17 pthread_attr_init F
+GLIBC_2.17 pthread_attr_setdetachstate F
+GLIBC_2.17 pthread_attr_setinheritsched F
+GLIBC_2.17 pthread_attr_setschedparam F
+GLIBC_2.17 pthread_attr_setschedpolicy F
+GLIBC_2.17 pthread_attr_setscope F
+GLIBC_2.17 pthread_cond_broadcast F
+GLIBC_2.17 pthread_cond_destroy F
+GLIBC_2.17 pthread_cond_init F
+GLIBC_2.17 pthread_cond_signal F
+GLIBC_2.17 pthread_cond_timedwait F
+GLIBC_2.17 pthread_cond_wait F
+GLIBC_2.17 pthread_condattr_destroy F
+GLIBC_2.17 pthread_condattr_init F
+GLIBC_2.17 pthread_equal F
+GLIBC_2.17 pthread_exit F
+GLIBC_2.17 pthread_getschedparam F
+GLIBC_2.17 pthread_mutex_destroy F
+GLIBC_2.17 pthread_mutex_init F
+GLIBC_2.17 pthread_mutex_lock F
+GLIBC_2.17 pthread_mutex_unlock F
+GLIBC_2.17 pthread_self F
+GLIBC_2.17 pthread_setcancelstate F
+GLIBC_2.17 pthread_setcanceltype F
+GLIBC_2.17 pthread_setschedparam F
+GLIBC_2.17 ptrace F
+GLIBC_2.17 ptsname F
+GLIBC_2.17 ptsname_r F
+GLIBC_2.17 putc F
+GLIBC_2.17 putc_unlocked F
+GLIBC_2.17 putchar F
+GLIBC_2.17 putchar_unlocked F
+GLIBC_2.17 putenv F
+GLIBC_2.17 putgrent F
+GLIBC_2.17 putmsg F
+GLIBC_2.17 putpmsg F
+GLIBC_2.17 putpwent F
+GLIBC_2.17 puts F
+GLIBC_2.17 putsgent F
+GLIBC_2.17 putspent F
+GLIBC_2.17 pututline F
+GLIBC_2.17 pututxline F
+GLIBC_2.17 putw F
+GLIBC_2.17 putwc F
+GLIBC_2.17 putwc_unlocked F
+GLIBC_2.17 putwchar F
+GLIBC_2.17 putwchar_unlocked F
+GLIBC_2.17 pvalloc F
+GLIBC_2.17 pwrite F
+GLIBC_2.17 pwrite64 F
+GLIBC_2.17 pwritev F
+GLIBC_2.17 pwritev64 F
+GLIBC_2.17 qecvt F
+GLIBC_2.17 qecvt_r F
+GLIBC_2.17 qfcvt F
+GLIBC_2.17 qfcvt_r F
+GLIBC_2.17 qgcvt F
+GLIBC_2.17 qsort F
+GLIBC_2.17 qsort_r F
+GLIBC_2.17 query_module F
+GLIBC_2.17 quick_exit F
+GLIBC_2.17 quotactl F
+GLIBC_2.17 raise F
+GLIBC_2.17 rand F
+GLIBC_2.17 rand_r F
+GLIBC_2.17 random F
+GLIBC_2.17 random_r F
+GLIBC_2.17 rawmemchr F
+GLIBC_2.17 rcmd F
+GLIBC_2.17 rcmd_af F
+GLIBC_2.17 re_comp F
+GLIBC_2.17 re_compile_fastmap F
+GLIBC_2.17 re_compile_pattern F
+GLIBC_2.17 re_exec F
+GLIBC_2.17 re_match F
+GLIBC_2.17 re_match_2 F
+GLIBC_2.17 re_search F
+GLIBC_2.17 re_search_2 F
+GLIBC_2.17 re_set_registers F
+GLIBC_2.17 re_set_syntax F
+GLIBC_2.17 re_syntax_options D 0x8
+GLIBC_2.17 read F
+GLIBC_2.17 readahead F
+GLIBC_2.17 readdir F
+GLIBC_2.17 readdir64 F
+GLIBC_2.17 readdir64_r F
+GLIBC_2.17 readdir_r F
+GLIBC_2.17 readlink F
+GLIBC_2.17 readlinkat F
+GLIBC_2.17 readv F
+GLIBC_2.17 realloc F
+GLIBC_2.17 realpath F
+GLIBC_2.17 reboot F
+GLIBC_2.17 recv F
+GLIBC_2.17 recvfrom F
+GLIBC_2.17 recvmmsg F
+GLIBC_2.17 recvmsg F
+GLIBC_2.17 regcomp F
+GLIBC_2.17 regerror F
+GLIBC_2.17 regexec F
+GLIBC_2.17 regfree F
+GLIBC_2.17 register_printf_function F
+GLIBC_2.17 register_printf_modifier F
+GLIBC_2.17 register_printf_specifier F
+GLIBC_2.17 register_printf_type F
+GLIBC_2.17 registerrpc F
+GLIBC_2.17 remap_file_pages F
+GLIBC_2.17 remove F
+GLIBC_2.17 removexattr F
+GLIBC_2.17 remque F
+GLIBC_2.17 rename F
+GLIBC_2.17 renameat F
+GLIBC_2.17 revoke F
+GLIBC_2.17 rewind F
+GLIBC_2.17 rewinddir F
+GLIBC_2.17 rexec F
+GLIBC_2.17 rexec_af F
+GLIBC_2.17 rexecoptions D 0x4
+GLIBC_2.17 rindex F
+GLIBC_2.17 rmdir F
+GLIBC_2.17 rpc_createerr D 0x20
+GLIBC_2.17 rpmatch F
+GLIBC_2.17 rresvport F
+GLIBC_2.17 rresvport_af F
+GLIBC_2.17 rtime F
+GLIBC_2.17 ruserok F
+GLIBC_2.17 ruserok_af F
+GLIBC_2.17 ruserpass F
+GLIBC_2.17 sbrk F
+GLIBC_2.17 scalbn F
+GLIBC_2.17 scalbnf F
+GLIBC_2.17 scalbnl F
+GLIBC_2.17 scandir F
+GLIBC_2.17 scandir64 F
+GLIBC_2.17 scandirat F
+GLIBC_2.17 scandirat64 F
+GLIBC_2.17 scanf F
+GLIBC_2.17 sched_get_priority_max F
+GLIBC_2.17 sched_get_priority_min F
+GLIBC_2.17 sched_getaffinity F
+GLIBC_2.17 sched_getcpu F
+GLIBC_2.17 sched_getparam F
+GLIBC_2.17 sched_getscheduler F
+GLIBC_2.17 sched_rr_get_interval F
+GLIBC_2.17 sched_setaffinity F
+GLIBC_2.17 sched_setparam F
+GLIBC_2.17 sched_setscheduler F
+GLIBC_2.17 sched_yield F
+GLIBC_2.17 secure_getenv F
+GLIBC_2.17 seed48 F
+GLIBC_2.17 seed48_r F
+GLIBC_2.17 seekdir F
+GLIBC_2.17 select F
+GLIBC_2.17 semctl F
+GLIBC_2.17 semget F
+GLIBC_2.17 semop F
+GLIBC_2.17 semtimedop F
+GLIBC_2.17 send F
+GLIBC_2.17 sendfile F
+GLIBC_2.17 sendfile64 F
+GLIBC_2.17 sendmmsg F
+GLIBC_2.17 sendmsg F
+GLIBC_2.17 sendto F
+GLIBC_2.17 setaliasent F
+GLIBC_2.17 setbuf F
+GLIBC_2.17 setbuffer F
+GLIBC_2.17 setcontext F
+GLIBC_2.17 setdomainname F
+GLIBC_2.17 setegid F
+GLIBC_2.17 setenv F
+GLIBC_2.17 seteuid F
+GLIBC_2.17 setfsent F
+GLIBC_2.17 setfsgid F
+GLIBC_2.17 setfsuid F
+GLIBC_2.17 setgid F
+GLIBC_2.17 setgrent F
+GLIBC_2.17 setgroups F
+GLIBC_2.17 sethostent F
+GLIBC_2.17 sethostid F
+GLIBC_2.17 sethostname F
+GLIBC_2.17 setipv4sourcefilter F
+GLIBC_2.17 setitimer F
+GLIBC_2.17 setjmp F
+GLIBC_2.17 setlinebuf F
+GLIBC_2.17 setlocale F
+GLIBC_2.17 setlogin F
+GLIBC_2.17 setlogmask F
+GLIBC_2.17 setmntent F
+GLIBC_2.17 setnetent F
+GLIBC_2.17 setnetgrent F
+GLIBC_2.17 setns F
+GLIBC_2.17 setpgid F
+GLIBC_2.17 setpgrp F
+GLIBC_2.17 setpriority F
+GLIBC_2.17 setprotoent F
+GLIBC_2.17 setpwent F
+GLIBC_2.17 setregid F
+GLIBC_2.17 setresgid F
+GLIBC_2.17 setresuid F
+GLIBC_2.17 setreuid F
+GLIBC_2.17 setrlimit F
+GLIBC_2.17 setrlimit64 F
+GLIBC_2.17 setrpcent F
+GLIBC_2.17 setservent F
+GLIBC_2.17 setsgent F
+GLIBC_2.17 setsid F
+GLIBC_2.17 setsockopt F
+GLIBC_2.17 setsourcefilter F
+GLIBC_2.17 setspent F
+GLIBC_2.17 setstate F
+GLIBC_2.17 setstate_r F
+GLIBC_2.17 settimeofday F
+GLIBC_2.17 setttyent F
+GLIBC_2.17 setuid F
+GLIBC_2.17 setusershell F
+GLIBC_2.17 setutent F
+GLIBC_2.17 setutxent F
+GLIBC_2.17 setvbuf F
+GLIBC_2.17 setxattr F
+GLIBC_2.17 sgetsgent F
+GLIBC_2.17 sgetsgent_r F
+GLIBC_2.17 sgetspent F
+GLIBC_2.17 sgetspent_r F
+GLIBC_2.17 shmat F
+GLIBC_2.17 shmctl F
+GLIBC_2.17 shmdt F
+GLIBC_2.17 shmget F
+GLIBC_2.17 shutdown F
+GLIBC_2.17 sigaction F
+GLIBC_2.17 sigaddset F
+GLIBC_2.17 sigaltstack F
+GLIBC_2.17 sigandset F
+GLIBC_2.17 sigblock F
+GLIBC_2.17 sigdelset F
+GLIBC_2.17 sigemptyset F
+GLIBC_2.17 sigfillset F
+GLIBC_2.17 siggetmask F
+GLIBC_2.17 sighold F
+GLIBC_2.17 sigignore F
+GLIBC_2.17 siginterrupt F
+GLIBC_2.17 sigisemptyset F
+GLIBC_2.17 sigismember F
+GLIBC_2.17 siglongjmp F
+GLIBC_2.17 signal F
+GLIBC_2.17 signalfd F
+GLIBC_2.17 sigorset F
+GLIBC_2.17 sigpause F
+GLIBC_2.17 sigpending F
+GLIBC_2.17 sigprocmask F
+GLIBC_2.17 sigqueue F
+GLIBC_2.17 sigrelse F
+GLIBC_2.17 sigreturn F
+GLIBC_2.17 sigset F
+GLIBC_2.17 sigsetmask F
+GLIBC_2.17 sigstack F
+GLIBC_2.17 sigsuspend F
+GLIBC_2.17 sigtimedwait F
+GLIBC_2.17 sigvec F
+GLIBC_2.17 sigwait F
+GLIBC_2.17 sigwaitinfo F
+GLIBC_2.17 sleep F
+GLIBC_2.17 snprintf F
+GLIBC_2.17 sockatmark F
+GLIBC_2.17 socket F
+GLIBC_2.17 socketpair F
+GLIBC_2.17 splice F
+GLIBC_2.17 sprintf F
+GLIBC_2.17 sprofil F
+GLIBC_2.17 srand F
+GLIBC_2.17 srand48 F
+GLIBC_2.17 srand48_r F
+GLIBC_2.17 srandom F
+GLIBC_2.17 srandom_r F
+GLIBC_2.17 sscanf F
+GLIBC_2.17 ssignal F
+GLIBC_2.17 sstk F
+GLIBC_2.17 statfs F
+GLIBC_2.17 statfs64 F
+GLIBC_2.17 statvfs F
+GLIBC_2.17 statvfs64 F
+GLIBC_2.17 stderr D 0x8
+GLIBC_2.17 stdin D 0x8
+GLIBC_2.17 stdout D 0x8
+GLIBC_2.17 step F
+GLIBC_2.17 stime F
+GLIBC_2.17 stpcpy F
+GLIBC_2.17 stpncpy F
+GLIBC_2.17 strcasecmp F
+GLIBC_2.17 strcasecmp_l F
+GLIBC_2.17 strcasestr F
+GLIBC_2.17 strcat F
+GLIBC_2.17 strchr F
+GLIBC_2.17 strchrnul F
+GLIBC_2.17 strcmp F
+GLIBC_2.17 strcoll F
+GLIBC_2.17 strcoll_l F
+GLIBC_2.17 strcpy F
+GLIBC_2.17 strcspn F
+GLIBC_2.17 strdup F
+GLIBC_2.17 strerror F
+GLIBC_2.17 strerror_l F
+GLIBC_2.17 strerror_r F
+GLIBC_2.17 strfmon F
+GLIBC_2.17 strfmon_l F
+GLIBC_2.17 strfry F
+GLIBC_2.17 strftime F
+GLIBC_2.17 strftime_l F
+GLIBC_2.17 strlen F
+GLIBC_2.17 strncasecmp F
+GLIBC_2.17 strncasecmp_l F
+GLIBC_2.17 strncat F
+GLIBC_2.17 strncmp F
+GLIBC_2.17 strncpy F
+GLIBC_2.17 strndup F
+GLIBC_2.17 strnlen F
+GLIBC_2.17 strpbrk F
+GLIBC_2.17 strptime F
+GLIBC_2.17 strptime_l F
+GLIBC_2.17 strrchr F
+GLIBC_2.17 strsep F
+GLIBC_2.17 strsignal F
+GLIBC_2.17 strspn F
+GLIBC_2.17 strstr F
+GLIBC_2.17 strtod F
+GLIBC_2.17 strtod_l F
+GLIBC_2.17 strtof F
+GLIBC_2.17 strtof_l F
+GLIBC_2.17 strtoimax F
+GLIBC_2.17 strtok F
+GLIBC_2.17 strtok_r F
+GLIBC_2.17 strtol F
+GLIBC_2.17 strtol_l F
+GLIBC_2.17 strtold F
+GLIBC_2.17 strtold_l F
+GLIBC_2.17 strtoll F
+GLIBC_2.17 strtoll_l F
+GLIBC_2.17 strtoq F
+GLIBC_2.17 strtoul F
+GLIBC_2.17 strtoul_l F
+GLIBC_2.17 strtoull F
+GLIBC_2.17 strtoull_l F
+GLIBC_2.17 strtoumax F
+GLIBC_2.17 strtouq F
+GLIBC_2.17 strverscmp F
+GLIBC_2.17 strxfrm F
+GLIBC_2.17 strxfrm_l F
+GLIBC_2.17 stty F
+GLIBC_2.17 svc_exit F
+GLIBC_2.17 svc_fdset D 0x80
+GLIBC_2.17 svc_getreq F
+GLIBC_2.17 svc_getreq_common F
+GLIBC_2.17 svc_getreq_poll F
+GLIBC_2.17 svc_getreqset F
+GLIBC_2.17 svc_max_pollfd D 0x4
+GLIBC_2.17 svc_pollfd D 0x8
+GLIBC_2.17 svc_register F
+GLIBC_2.17 svc_run F
+GLIBC_2.17 svc_sendreply F
+GLIBC_2.17 svc_unregister F
+GLIBC_2.17 svcauthdes_stats D 0x18
+GLIBC_2.17 svcerr_auth F
+GLIBC_2.17 svcerr_decode F
+GLIBC_2.17 svcerr_noproc F
+GLIBC_2.17 svcerr_noprog F
+GLIBC_2.17 svcerr_progvers F
+GLIBC_2.17 svcerr_systemerr F
+GLIBC_2.17 svcerr_weakauth F
+GLIBC_2.17 svcfd_create F
+GLIBC_2.17 svcraw_create F
+GLIBC_2.17 svctcp_create F
+GLIBC_2.17 svcudp_bufcreate F
+GLIBC_2.17 svcudp_create F
+GLIBC_2.17 svcudp_enablecache F
+GLIBC_2.17 svcunix_create F
+GLIBC_2.17 svcunixfd_create F
+GLIBC_2.17 swab F
+GLIBC_2.17 swapcontext F
+GLIBC_2.17 swapoff F
+GLIBC_2.17 swapon F
+GLIBC_2.17 swprintf F
+GLIBC_2.17 swscanf F
+GLIBC_2.17 symlink F
+GLIBC_2.17 symlinkat F
+GLIBC_2.17 sync F
+GLIBC_2.17 sync_file_range F
+GLIBC_2.17 syncfs F
+GLIBC_2.17 sys_errlist D 0x438
+GLIBC_2.17 sys_nerr D 0x4
+GLIBC_2.17 sys_sigabbrev D 0x208
+GLIBC_2.17 sys_siglist D 0x208
+GLIBC_2.17 syscall F
+GLIBC_2.17 sysconf F
+GLIBC_2.17 sysctl F
+GLIBC_2.17 sysinfo F
+GLIBC_2.17 syslog F
+GLIBC_2.17 system F
+GLIBC_2.17 sysv_signal F
+GLIBC_2.17 tcdrain F
+GLIBC_2.17 tcflow F
+GLIBC_2.17 tcflush F
+GLIBC_2.17 tcgetattr F
+GLIBC_2.17 tcgetpgrp F
+GLIBC_2.17 tcgetsid F
+GLIBC_2.17 tcsendbreak F
+GLIBC_2.17 tcsetattr F
+GLIBC_2.17 tcsetpgrp F
+GLIBC_2.17 tdelete F
+GLIBC_2.17 tdestroy F
+GLIBC_2.17 tee F
+GLIBC_2.17 telldir F
+GLIBC_2.17 tempnam F
+GLIBC_2.17 textdomain F
+GLIBC_2.17 tfind F
+GLIBC_2.17 time F
+GLIBC_2.17 timegm F
+GLIBC_2.17 timelocal F
+GLIBC_2.17 timerfd_create F
+GLIBC_2.17 timerfd_gettime F
+GLIBC_2.17 timerfd_settime F
+GLIBC_2.17 times F
+GLIBC_2.17 timespec_get F
+GLIBC_2.17 timezone D 0x8
+GLIBC_2.17 tmpfile F
+GLIBC_2.17 tmpfile64 F
+GLIBC_2.17 tmpnam F
+GLIBC_2.17 tmpnam_r F
+GLIBC_2.17 toascii F
+GLIBC_2.17 tolower F
+GLIBC_2.17 tolower_l F
+GLIBC_2.17 toupper F
+GLIBC_2.17 toupper_l F
+GLIBC_2.17 towctrans F
+GLIBC_2.17 towctrans_l F
+GLIBC_2.17 towlower F
+GLIBC_2.17 towlower_l F
+GLIBC_2.17 towupper F
+GLIBC_2.17 towupper_l F
+GLIBC_2.17 tr_break F
+GLIBC_2.17 truncate F
+GLIBC_2.17 truncate64 F
+GLIBC_2.17 tsearch F
+GLIBC_2.17 ttyname F
+GLIBC_2.17 ttyname_r F
+GLIBC_2.17 ttyslot F
+GLIBC_2.17 twalk F
+GLIBC_2.17 tzname D 0x10
+GLIBC_2.17 tzset F
+GLIBC_2.17 ualarm F
+GLIBC_2.17 ulckpwdf F
+GLIBC_2.17 ulimit F
+GLIBC_2.17 umask F
+GLIBC_2.17 umount F
+GLIBC_2.17 umount2 F
+GLIBC_2.17 uname F
+GLIBC_2.17 ungetc F
+GLIBC_2.17 ungetwc F
+GLIBC_2.17 unlink F
+GLIBC_2.17 unlinkat F
+GLIBC_2.17 unlockpt F
+GLIBC_2.17 unsetenv F
+GLIBC_2.17 unshare F
+GLIBC_2.17 updwtmp F
+GLIBC_2.17 updwtmpx F
+GLIBC_2.17 uselib F
+GLIBC_2.17 uselocale F
+GLIBC_2.17 user2netname F
+GLIBC_2.17 usleep F
+GLIBC_2.17 ustat F
+GLIBC_2.17 utime F
+GLIBC_2.17 utimensat F
+GLIBC_2.17 utimes F
+GLIBC_2.17 utmpname F
+GLIBC_2.17 utmpxname F
+GLIBC_2.17 valloc F
+GLIBC_2.17 vasprintf F
+GLIBC_2.17 vdprintf F
+GLIBC_2.17 verr F
+GLIBC_2.17 verrx F
+GLIBC_2.17 versionsort F
+GLIBC_2.17 versionsort64 F
+GLIBC_2.17 vfork F
+GLIBC_2.17 vfprintf F
+GLIBC_2.17 vfscanf F
+GLIBC_2.17 vfwprintf F
+GLIBC_2.17 vfwscanf F
+GLIBC_2.17 vhangup F
+GLIBC_2.17 vlimit F
+GLIBC_2.17 vmsplice F
+GLIBC_2.17 vprintf F
+GLIBC_2.17 vscanf F
+GLIBC_2.17 vsnprintf F
+GLIBC_2.17 vsprintf F
+GLIBC_2.17 vsscanf F
+GLIBC_2.17 vswprintf F
+GLIBC_2.17 vswscanf F
+GLIBC_2.17 vsyslog F
+GLIBC_2.17 vtimes F
+GLIBC_2.17 vwarn F
+GLIBC_2.17 vwarnx F
+GLIBC_2.17 vwprintf F
+GLIBC_2.17 vwscanf F
+GLIBC_2.17 wait F
+GLIBC_2.17 wait3 F
+GLIBC_2.17 wait4 F
+GLIBC_2.17 waitid F
+GLIBC_2.17 waitpid F
+GLIBC_2.17 warn F
+GLIBC_2.17 warnx F
+GLIBC_2.17 wcpcpy F
+GLIBC_2.17 wcpncpy F
+GLIBC_2.17 wcrtomb F
+GLIBC_2.17 wcscasecmp F
+GLIBC_2.17 wcscasecmp_l F
+GLIBC_2.17 wcscat F
+GLIBC_2.17 wcschr F
+GLIBC_2.17 wcschrnul F
+GLIBC_2.17 wcscmp F
+GLIBC_2.17 wcscoll F
+GLIBC_2.17 wcscoll_l F
+GLIBC_2.17 wcscpy F
+GLIBC_2.17 wcscspn F
+GLIBC_2.17 wcsdup F
+GLIBC_2.17 wcsftime F
+GLIBC_2.17 wcsftime_l F
+GLIBC_2.17 wcslen F
+GLIBC_2.17 wcsncasecmp F
+GLIBC_2.17 wcsncasecmp_l F
+GLIBC_2.17 wcsncat F
+GLIBC_2.17 wcsncmp F
+GLIBC_2.17 wcsncpy F
+GLIBC_2.17 wcsnlen F
+GLIBC_2.17 wcsnrtombs F
+GLIBC_2.17 wcspbrk F
+GLIBC_2.17 wcsrchr F
+GLIBC_2.17 wcsrtombs F
+GLIBC_2.17 wcsspn F
+GLIBC_2.17 wcsstr F
+GLIBC_2.17 wcstod F
+GLIBC_2.17 wcstod_l F
+GLIBC_2.17 wcstof F
+GLIBC_2.17 wcstof_l F
+GLIBC_2.17 wcstoimax F
+GLIBC_2.17 wcstok F
+GLIBC_2.17 wcstol F
+GLIBC_2.17 wcstol_l F
+GLIBC_2.17 wcstold F
+GLIBC_2.17 wcstold_l F
+GLIBC_2.17 wcstoll F
+GLIBC_2.17 wcstoll_l F
+GLIBC_2.17 wcstombs F
+GLIBC_2.17 wcstoq F
+GLIBC_2.17 wcstoul F
+GLIBC_2.17 wcstoul_l F
+GLIBC_2.17 wcstoull F
+GLIBC_2.17 wcstoull_l F
+GLIBC_2.17 wcstoumax F
+GLIBC_2.17 wcstouq F
+GLIBC_2.17 wcswcs F
+GLIBC_2.17 wcswidth F
+GLIBC_2.17 wcsxfrm F
+GLIBC_2.17 wcsxfrm_l F
+GLIBC_2.17 wctob F
+GLIBC_2.17 wctomb F
+GLIBC_2.17 wctrans F
+GLIBC_2.17 wctrans_l F
+GLIBC_2.17 wctype F
+GLIBC_2.17 wctype_l F
+GLIBC_2.17 wcwidth F
+GLIBC_2.17 wmemchr F
+GLIBC_2.17 wmemcmp F
+GLIBC_2.17 wmemcpy F
+GLIBC_2.17 wmemmove F
+GLIBC_2.17 wmempcpy F
+GLIBC_2.17 wmemset F
+GLIBC_2.17 wordexp F
+GLIBC_2.17 wordfree F
+GLIBC_2.17 wprintf F
+GLIBC_2.17 write F
+GLIBC_2.17 writev F
+GLIBC_2.17 wscanf F
+GLIBC_2.17 xdecrypt F
+GLIBC_2.17 xdr_accepted_reply F
+GLIBC_2.17 xdr_array F
+GLIBC_2.17 xdr_authdes_cred F
+GLIBC_2.17 xdr_authdes_verf F
+GLIBC_2.17 xdr_authunix_parms F
+GLIBC_2.17 xdr_bool F
+GLIBC_2.17 xdr_bytes F
+GLIBC_2.17 xdr_callhdr F
+GLIBC_2.17 xdr_callmsg F
+GLIBC_2.17 xdr_char F
+GLIBC_2.17 xdr_cryptkeyarg F
+GLIBC_2.17 xdr_cryptkeyarg2 F
+GLIBC_2.17 xdr_cryptkeyres F
+GLIBC_2.17 xdr_des_block F
+GLIBC_2.17 xdr_double F
+GLIBC_2.17 xdr_enum F
+GLIBC_2.17 xdr_float F
+GLIBC_2.17 xdr_free F
+GLIBC_2.17 xdr_getcredres F
+GLIBC_2.17 xdr_hyper F
+GLIBC_2.17 xdr_int F
+GLIBC_2.17 xdr_int16_t F
+GLIBC_2.17 xdr_int32_t F
+GLIBC_2.17 xdr_int64_t F
+GLIBC_2.17 xdr_int8_t F
+GLIBC_2.17 xdr_key_netstarg F
+GLIBC_2.17 xdr_key_netstres F
+GLIBC_2.17 xdr_keybuf F
+GLIBC_2.17 xdr_keystatus F
+GLIBC_2.17 xdr_long F
+GLIBC_2.17 xdr_longlong_t F
+GLIBC_2.17 xdr_netnamestr F
+GLIBC_2.17 xdr_netobj F
+GLIBC_2.17 xdr_opaque F
+GLIBC_2.17 xdr_opaque_auth F
+GLIBC_2.17 xdr_pmap F
+GLIBC_2.17 xdr_pmaplist F
+GLIBC_2.17 xdr_pointer F
+GLIBC_2.17 xdr_quad_t F
+GLIBC_2.17 xdr_reference F
+GLIBC_2.17 xdr_rejected_reply F
+GLIBC_2.17 xdr_replymsg F
+GLIBC_2.17 xdr_rmtcall_args F
+GLIBC_2.17 xdr_rmtcallres F
+GLIBC_2.17 xdr_short F
+GLIBC_2.17 xdr_sizeof F
+GLIBC_2.17 xdr_string F
+GLIBC_2.17 xdr_u_char F
+GLIBC_2.17 xdr_u_hyper F
+GLIBC_2.17 xdr_u_int F
+GLIBC_2.17 xdr_u_long F
+GLIBC_2.17 xdr_u_longlong_t F
+GLIBC_2.17 xdr_u_quad_t F
+GLIBC_2.17 xdr_u_short F
+GLIBC_2.17 xdr_uint16_t F
+GLIBC_2.17 xdr_uint32_t F
+GLIBC_2.17 xdr_uint64_t F
+GLIBC_2.17 xdr_uint8_t F
+GLIBC_2.17 xdr_union F
+GLIBC_2.17 xdr_unixcred F
+GLIBC_2.17 xdr_vector F
+GLIBC_2.17 xdr_void F
+GLIBC_2.17 xdr_wrapstring F
+GLIBC_2.17 xdrmem_create F
+GLIBC_2.17 xdrrec_create F
+GLIBC_2.17 xdrrec_endofrecord F
+GLIBC_2.17 xdrrec_eof F
+GLIBC_2.17 xdrrec_skiprecord F
+GLIBC_2.17 xdrstdio_create F
+GLIBC_2.17 xencrypt F
+GLIBC_2.17 xprt_register F
+GLIBC_2.17 xprt_unregister F
+GLIBC_2.18 GLIBC_2.18 A
+GLIBC_2.18 __cxa_thread_atexit_impl F
+GLIBC_2.22 GLIBC_2.22 A
+GLIBC_2.22 fmemopen F
+GLIBC_2.23 GLIBC_2.23 A
+GLIBC_2.23 fts64_children F
+GLIBC_2.23 fts64_close F
+GLIBC_2.23 fts64_open F
+GLIBC_2.23 fts64_read F
+GLIBC_2.23 fts64_set F
+GLIBC_2.24 GLIBC_2.24 A
+GLIBC_2.24 quick_exit F
+GLIBC_2.25 GLIBC_2.25 A
+GLIBC_2.25 __explicit_bzero_chk F
+GLIBC_2.25 explicit_bzero F
+GLIBC_2.25 getentropy F
+GLIBC_2.25 getrandom F
+GLIBC_2.25 strfromd F
+GLIBC_2.25 strfromf F
+GLIBC_2.25 strfroml F
+GLIBC_2.26 GLIBC_2.26 A
+GLIBC_2.26 preadv2 F
+GLIBC_2.26 preadv64v2 F
+GLIBC_2.26 pwritev2 F
+GLIBC_2.26 pwritev64v2 F
+GLIBC_2.26 reallocarray F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist
new file mode 100644
index 0000000000..5eb056baf5
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist
@@ -0,0 +1,2327 @@
+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 fallocate64 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 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 0x438
+GLIBC_2.12 _sys_nerr D 0x4
+GLIBC_2.12 ntp_gettimex F
+GLIBC_2.12 recvmmsg F
+GLIBC_2.12 sys_errlist D 0x438
+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 __ppc_get_timebase_freq F
+GLIBC_2.17 clock_getcpuclockid F
+GLIBC_2.17 clock_getres F
+GLIBC_2.17 clock_gettime F
+GLIBC_2.17 clock_nanosleep F
+GLIBC_2.17 clock_settime F
+GLIBC_2.17 secure_getenv F
+GLIBC_2.18 GLIBC_2.18 A
+GLIBC_2.18 __cxa_thread_atexit_impl 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 _Exit F
+GLIBC_2.3 _IO_2_1_stderr_ D 0xe0
+GLIBC_2.3 _IO_2_1_stdin_ D 0xe0
+GLIBC_2.3 _IO_2_1_stdout_ D 0xe0
+GLIBC_2.3 _IO_adjust_column F
+GLIBC_2.3 _IO_adjust_wcolumn F
+GLIBC_2.3 _IO_default_doallocate F
+GLIBC_2.3 _IO_default_finish F
+GLIBC_2.3 _IO_default_pbackfail F
+GLIBC_2.3 _IO_default_uflow F
+GLIBC_2.3 _IO_default_xsgetn F
+GLIBC_2.3 _IO_default_xsputn F
+GLIBC_2.3 _IO_do_write F
+GLIBC_2.3 _IO_doallocbuf F
+GLIBC_2.3 _IO_fclose F
+GLIBC_2.3 _IO_fdopen F
+GLIBC_2.3 _IO_feof F
+GLIBC_2.3 _IO_ferror F
+GLIBC_2.3 _IO_fflush F
+GLIBC_2.3 _IO_fgetpos F
+GLIBC_2.3 _IO_fgetpos64 F
+GLIBC_2.3 _IO_fgets F
+GLIBC_2.3 _IO_file_attach F
+GLIBC_2.3 _IO_file_close F
+GLIBC_2.3 _IO_file_close_it F
+GLIBC_2.3 _IO_file_doallocate F
+GLIBC_2.3 _IO_file_finish F
+GLIBC_2.3 _IO_file_fopen F
+GLIBC_2.3 _IO_file_init F
+GLIBC_2.3 _IO_file_jumps D 0xa8
+GLIBC_2.3 _IO_file_open F
+GLIBC_2.3 _IO_file_overflow F
+GLIBC_2.3 _IO_file_read F
+GLIBC_2.3 _IO_file_seek F
+GLIBC_2.3 _IO_file_seekoff F
+GLIBC_2.3 _IO_file_setbuf F
+GLIBC_2.3 _IO_file_stat F
+GLIBC_2.3 _IO_file_sync F
+GLIBC_2.3 _IO_file_underflow F
+GLIBC_2.3 _IO_file_write F
+GLIBC_2.3 _IO_file_xsputn F
+GLIBC_2.3 _IO_flockfile F
+GLIBC_2.3 _IO_flush_all F
+GLIBC_2.3 _IO_flush_all_linebuffered F
+GLIBC_2.3 _IO_fopen F
+GLIBC_2.3 _IO_fprintf F
+GLIBC_2.3 _IO_fputs F
+GLIBC_2.3 _IO_fread F
+GLIBC_2.3 _IO_free_backup_area F
+GLIBC_2.3 _IO_free_wbackup_area F
+GLIBC_2.3 _IO_fsetpos F
+GLIBC_2.3 _IO_fsetpos64 F
+GLIBC_2.3 _IO_ftell F
+GLIBC_2.3 _IO_ftrylockfile F
+GLIBC_2.3 _IO_funlockfile F
+GLIBC_2.3 _IO_fwrite F
+GLIBC_2.3 _IO_getc F
+GLIBC_2.3 _IO_getline F
+GLIBC_2.3 _IO_getline_info F
+GLIBC_2.3 _IO_gets F
+GLIBC_2.3 _IO_init F
+GLIBC_2.3 _IO_init_marker F
+GLIBC_2.3 _IO_init_wmarker F
+GLIBC_2.3 _IO_iter_begin F
+GLIBC_2.3 _IO_iter_end F
+GLIBC_2.3 _IO_iter_file F
+GLIBC_2.3 _IO_iter_next F
+GLIBC_2.3 _IO_least_wmarker F
+GLIBC_2.3 _IO_link_in F
+GLIBC_2.3 _IO_list_all D 0x8
+GLIBC_2.3 _IO_list_lock F
+GLIBC_2.3 _IO_list_resetlock F
+GLIBC_2.3 _IO_list_unlock F
+GLIBC_2.3 _IO_marker_delta F
+GLIBC_2.3 _IO_marker_difference F
+GLIBC_2.3 _IO_padn F
+GLIBC_2.3 _IO_peekc_locked F
+GLIBC_2.3 _IO_popen F
+GLIBC_2.3 _IO_printf F
+GLIBC_2.3 _IO_proc_close F
+GLIBC_2.3 _IO_proc_open F
+GLIBC_2.3 _IO_putc F
+GLIBC_2.3 _IO_puts F
+GLIBC_2.3 _IO_remove_marker F
+GLIBC_2.3 _IO_seekmark F
+GLIBC_2.3 _IO_seekoff F
+GLIBC_2.3 _IO_seekpos F
+GLIBC_2.3 _IO_seekwmark F
+GLIBC_2.3 _IO_setb F
+GLIBC_2.3 _IO_setbuffer F
+GLIBC_2.3 _IO_setvbuf F
+GLIBC_2.3 _IO_sgetn F
+GLIBC_2.3 _IO_sprintf F
+GLIBC_2.3 _IO_sputbackc F
+GLIBC_2.3 _IO_sputbackwc F
+GLIBC_2.3 _IO_sscanf F
+GLIBC_2.3 _IO_str_init_readonly F
+GLIBC_2.3 _IO_str_init_static F
+GLIBC_2.3 _IO_str_overflow F
+GLIBC_2.3 _IO_str_pbackfail F
+GLIBC_2.3 _IO_str_seekoff F
+GLIBC_2.3 _IO_str_underflow F
+GLIBC_2.3 _IO_sungetc F
+GLIBC_2.3 _IO_sungetwc F
+GLIBC_2.3 _IO_switch_to_get_mode F
+GLIBC_2.3 _IO_switch_to_main_wget_area F
+GLIBC_2.3 _IO_switch_to_wbackup_area F
+GLIBC_2.3 _IO_switch_to_wget_mode F
+GLIBC_2.3 _IO_un_link F
+GLIBC_2.3 _IO_ungetc F
+GLIBC_2.3 _IO_unsave_markers F
+GLIBC_2.3 _IO_unsave_wmarkers F
+GLIBC_2.3 _IO_vfprintf F
+GLIBC_2.3 _IO_vfscanf F
+GLIBC_2.3 _IO_vsprintf F
+GLIBC_2.3 _IO_wdefault_doallocate F
+GLIBC_2.3 _IO_wdefault_finish F
+GLIBC_2.3 _IO_wdefault_pbackfail F
+GLIBC_2.3 _IO_wdefault_uflow F
+GLIBC_2.3 _IO_wdefault_xsgetn F
+GLIBC_2.3 _IO_wdefault_xsputn F
+GLIBC_2.3 _IO_wdo_write F
+GLIBC_2.3 _IO_wdoallocbuf F
+GLIBC_2.3 _IO_wfile_jumps D 0xa8
+GLIBC_2.3 _IO_wfile_overflow F
+GLIBC_2.3 _IO_wfile_seekoff F
+GLIBC_2.3 _IO_wfile_sync F
+GLIBC_2.3 _IO_wfile_underflow F
+GLIBC_2.3 _IO_wfile_xsputn F
+GLIBC_2.3 _IO_wmarker_delta F
+GLIBC_2.3 _IO_wsetb F
+GLIBC_2.3 __adjtimex F
+GLIBC_2.3 __after_morecore_hook D 0x8
+GLIBC_2.3 __argz_count F
+GLIBC_2.3 __argz_next F
+GLIBC_2.3 __argz_stringify F
+GLIBC_2.3 __asprintf F
+GLIBC_2.3 __assert F
+GLIBC_2.3 __assert_fail F
+GLIBC_2.3 __assert_perror_fail F
+GLIBC_2.3 __backtrace F
+GLIBC_2.3 __backtrace_symbols F
+GLIBC_2.3 __backtrace_symbols_fd F
+GLIBC_2.3 __bsd_getpgrp F
+GLIBC_2.3 __bzero F
+GLIBC_2.3 __check_rhosts_file D 0x4
+GLIBC_2.3 __clone F
+GLIBC_2.3 __close F
+GLIBC_2.3 __cmsg_nxthdr F
+GLIBC_2.3 __connect F
+GLIBC_2.3 __ctype_b_loc F
+GLIBC_2.3 __ctype_get_mb_cur_max F
+GLIBC_2.3 __ctype_tolower_loc F
+GLIBC_2.3 __ctype_toupper_loc F
+GLIBC_2.3 __curbrk D 0x8
+GLIBC_2.3 __cxa_atexit F
+GLIBC_2.3 __cxa_finalize F
+GLIBC_2.3 __cyg_profile_func_enter F
+GLIBC_2.3 __cyg_profile_func_exit F
+GLIBC_2.3 __daylight D 0x4
+GLIBC_2.3 __dcgettext F
+GLIBC_2.3 __default_morecore F
+GLIBC_2.3 __dgettext F
+GLIBC_2.3 __dup2 F
+GLIBC_2.3 __duplocale F
+GLIBC_2.3 __endmntent F
+GLIBC_2.3 __environ D 0x8
+GLIBC_2.3 __errno_location F
+GLIBC_2.3 __fbufsize F
+GLIBC_2.3 __fcntl F
+GLIBC_2.3 __ffs F
+GLIBC_2.3 __finite F
+GLIBC_2.3 __finitef F
+GLIBC_2.3 __finitel F
+GLIBC_2.3 __flbf F
+GLIBC_2.3 __fork F
+GLIBC_2.3 __fpending F
+GLIBC_2.3 __fpu_control D 0x4
+GLIBC_2.3 __fpurge F
+GLIBC_2.3 __freadable F
+GLIBC_2.3 __freading F
+GLIBC_2.3 __free_hook D 0x8
+GLIBC_2.3 __freelocale F
+GLIBC_2.3 __fsetlocking F
+GLIBC_2.3 __fwritable F
+GLIBC_2.3 __fwriting F
+GLIBC_2.3 __fxstat F
+GLIBC_2.3 __fxstat64 F
+GLIBC_2.3 __getdelim F
+GLIBC_2.3 __getmntent_r F
+GLIBC_2.3 __getpagesize F
+GLIBC_2.3 __getpgid F
+GLIBC_2.3 __getpid F
+GLIBC_2.3 __gettimeofday F
+GLIBC_2.3 __gmtime_r F
+GLIBC_2.3 __h_errno_location F
+GLIBC_2.3 __isalnum_l F
+GLIBC_2.3 __isalpha_l F
+GLIBC_2.3 __isascii_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 __isinf F
+GLIBC_2.3 __isinff F
+GLIBC_2.3 __isinfl F
+GLIBC_2.3 __islower_l F
+GLIBC_2.3 __isnan F
+GLIBC_2.3 __isnanf F
+GLIBC_2.3 __isnanl 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 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 __ivaliduser F
+GLIBC_2.3 __key_decryptsession_pk_LOCAL D 0x8
+GLIBC_2.3 __key_encryptsession_pk_LOCAL D 0x8
+GLIBC_2.3 __key_gendes_LOCAL D 0x8
+GLIBC_2.3 __libc_allocate_rtsig F
+GLIBC_2.3 __libc_calloc F
+GLIBC_2.3 __libc_current_sigrtmax F
+GLIBC_2.3 __libc_current_sigrtmin F
+GLIBC_2.3 __libc_free F
+GLIBC_2.3 __libc_freeres F
+GLIBC_2.3 __libc_init_first F
+GLIBC_2.3 __libc_mallinfo F
+GLIBC_2.3 __libc_malloc F
+GLIBC_2.3 __libc_mallopt F
+GLIBC_2.3 __libc_memalign F
+GLIBC_2.3 __libc_pvalloc F
+GLIBC_2.3 __libc_realloc F
+GLIBC_2.3 __libc_sa_len F
+GLIBC_2.3 __libc_start_main F
+GLIBC_2.3 __libc_valloc F
+GLIBC_2.3 __lseek F
+GLIBC_2.3 __lxstat F
+GLIBC_2.3 __lxstat64 F
+GLIBC_2.3 __malloc_hook D 0x8
+GLIBC_2.3 __malloc_initialize_hook D 0x8
+GLIBC_2.3 __mbrlen F
+GLIBC_2.3 __mbrtowc F
+GLIBC_2.3 __memalign_hook D 0x8
+GLIBC_2.3 __mempcpy F
+GLIBC_2.3 __mempcpy_small F
+GLIBC_2.3 __monstartup F
+GLIBC_2.3 __morecore D 0x8
+GLIBC_2.3 __nanosleep F
+GLIBC_2.3 __newlocale F
+GLIBC_2.3 __nl_langinfo_l F
+GLIBC_2.3 __nss_configure_lookup F
+GLIBC_2.3 __nss_database_lookup F
+GLIBC_2.3 __nss_group_lookup F
+GLIBC_2.3 __nss_hostname_digits_dots F
+GLIBC_2.3 __nss_hosts_lookup F
+GLIBC_2.3 __nss_next F
+GLIBC_2.3 __nss_passwd_lookup F
+GLIBC_2.3 __open F
+GLIBC_2.3 __open64 F
+GLIBC_2.3 __overflow F
+GLIBC_2.3 __pipe F
+GLIBC_2.3 __poll F
+GLIBC_2.3 __pread64 F
+GLIBC_2.3 __printf_fp F
+GLIBC_2.3 __profile_frequency F
+GLIBC_2.3 __progname D 0x8
+GLIBC_2.3 __progname_full D 0x8
+GLIBC_2.3 __pwrite64 F
+GLIBC_2.3 __rawmemchr F
+GLIBC_2.3 __rcmd_errstr D 0x8
+GLIBC_2.3 __read F
+GLIBC_2.3 __realloc_hook D 0x8
+GLIBC_2.3 __res_init F
+GLIBC_2.3 __res_nclose F
+GLIBC_2.3 __res_ninit F
+GLIBC_2.3 __res_randomid F
+GLIBC_2.3 __res_state F
+GLIBC_2.3 __rpc_thread_createerr F
+GLIBC_2.3 __rpc_thread_svc_fdset F
+GLIBC_2.3 __rpc_thread_svc_max_pollfd F
+GLIBC_2.3 __rpc_thread_svc_pollfd F
+GLIBC_2.3 __sbrk F
+GLIBC_2.3 __sched_get_priority_max F
+GLIBC_2.3 __sched_get_priority_min F
+GLIBC_2.3 __sched_getparam F
+GLIBC_2.3 __sched_getscheduler F
+GLIBC_2.3 __sched_setscheduler F
+GLIBC_2.3 __sched_yield F
+GLIBC_2.3 __secure_getenv F
+GLIBC_2.3 __select F
+GLIBC_2.3 __send F
+GLIBC_2.3 __setmntent F
+GLIBC_2.3 __setpgid F
+GLIBC_2.3 __sigaction F
+GLIBC_2.3 __sigaddset F
+GLIBC_2.3 __sigdelset F
+GLIBC_2.3 __sigismember F
+GLIBC_2.3 __signbit F
+GLIBC_2.3 __signbitf F
+GLIBC_2.3 __sigpause F
+GLIBC_2.3 __sigsetjmp F
+GLIBC_2.3 __sigsuspend F
+GLIBC_2.3 __statfs F
+GLIBC_2.3 __stpcpy F
+GLIBC_2.3 __stpcpy_small F
+GLIBC_2.3 __stpncpy F
+GLIBC_2.3 __strcasecmp F
+GLIBC_2.3 __strcasecmp_l F
+GLIBC_2.3 __strcasestr F
+GLIBC_2.3 __strcoll_l F
+GLIBC_2.3 __strcpy_small F
+GLIBC_2.3 __strcspn_c1 F
+GLIBC_2.3 __strcspn_c2 F
+GLIBC_2.3 __strcspn_c3 F
+GLIBC_2.3 __strdup F
+GLIBC_2.3 __strerror_r F
+GLIBC_2.3 __strfmon_l F
+GLIBC_2.3 __strftime_l F
+GLIBC_2.3 __strncasecmp_l F
+GLIBC_2.3 __strndup F
+GLIBC_2.3 __strpbrk_c2 F
+GLIBC_2.3 __strpbrk_c3 F
+GLIBC_2.3 __strsep_1c F
+GLIBC_2.3 __strsep_2c F
+GLIBC_2.3 __strsep_3c F
+GLIBC_2.3 __strsep_g F
+GLIBC_2.3 __strspn_c1 F
+GLIBC_2.3 __strspn_c2 F
+GLIBC_2.3 __strspn_c3 F
+GLIBC_2.3 __strtod_internal F
+GLIBC_2.3 __strtod_l F
+GLIBC_2.3 __strtof_internal F
+GLIBC_2.3 __strtof_l F
+GLIBC_2.3 __strtok_r F
+GLIBC_2.3 __strtok_r_1c F
+GLIBC_2.3 __strtol_internal F
+GLIBC_2.3 __strtol_l F
+GLIBC_2.3 __strtold_internal F
+GLIBC_2.3 __strtold_l F
+GLIBC_2.3 __strtoll_internal F
+GLIBC_2.3 __strtoll_l F
+GLIBC_2.3 __strtoul_internal F
+GLIBC_2.3 __strtoul_l F
+GLIBC_2.3 __strtoull_internal F
+GLIBC_2.3 __strtoull_l F
+GLIBC_2.3 __strverscmp F
+GLIBC_2.3 __strxfrm_l F
+GLIBC_2.3 __sysconf F
+GLIBC_2.3 __sysctl F
+GLIBC_2.3 __sysv_signal F
+GLIBC_2.3 __timezone D 0x8
+GLIBC_2.3 __toascii_l F
+GLIBC_2.3 __tolower_l F
+GLIBC_2.3 __toupper_l F
+GLIBC_2.3 __towctrans F
+GLIBC_2.3 __towctrans_l F
+GLIBC_2.3 __towlower_l F
+GLIBC_2.3 __towupper_l F
+GLIBC_2.3 __tzname D 0x10
+GLIBC_2.3 __uflow F
+GLIBC_2.3 __underflow F
+GLIBC_2.3 __uselocale F
+GLIBC_2.3 __vfork F
+GLIBC_2.3 __vfscanf F
+GLIBC_2.3 __vsnprintf F
+GLIBC_2.3 __vsscanf F
+GLIBC_2.3 __wait F
+GLIBC_2.3 __waitpid 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_internal F
+GLIBC_2.3 __wcstod_l F
+GLIBC_2.3 __wcstof_internal F
+GLIBC_2.3 __wcstof_l F
+GLIBC_2.3 __wcstol_internal F
+GLIBC_2.3 __wcstol_l F
+GLIBC_2.3 __wcstold_internal F
+GLIBC_2.3 __wcstold_l F
+GLIBC_2.3 __wcstoll_internal F
+GLIBC_2.3 __wcstoll_l F
+GLIBC_2.3 __wcstoul_internal F
+GLIBC_2.3 __wcstoul_l F
+GLIBC_2.3 __wcstoull_internal 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 __woverflow F
+GLIBC_2.3 __write F
+GLIBC_2.3 __wuflow F
+GLIBC_2.3 __wunderflow F
+GLIBC_2.3 __xmknod F
+GLIBC_2.3 __xpg_basename F
+GLIBC_2.3 __xpg_sigpause F
+GLIBC_2.3 __xstat F
+GLIBC_2.3 __xstat64 F
+GLIBC_2.3 _authenticate F
+GLIBC_2.3 _dl_mcount_wrapper F
+GLIBC_2.3 _dl_mcount_wrapper_check F
+GLIBC_2.3 _environ D 0x8
+GLIBC_2.3 _exit F
+GLIBC_2.3 _flushlbf F
+GLIBC_2.3 _libc_intl_domainname D 0x5
+GLIBC_2.3 _longjmp F
+GLIBC_2.3 _mcleanup F
+GLIBC_2.3 _mcount F
+GLIBC_2.3 _nl_default_dirname D 0x12
+GLIBC_2.3 _nl_domain_bindings D 0x8
+GLIBC_2.3 _nl_msg_cat_cntr D 0x4
+GLIBC_2.3 _null_auth D 0x18
+GLIBC_2.3 _obstack D 0x8
+GLIBC_2.3 _obstack_allocated_p F
+GLIBC_2.3 _obstack_begin F
+GLIBC_2.3 _obstack_begin_1 F
+GLIBC_2.3 _obstack_free F
+GLIBC_2.3 _obstack_memory_used F
+GLIBC_2.3 _obstack_newchunk F
+GLIBC_2.3 _res D 0x238
+GLIBC_2.3 _res_hconf D 0x48
+GLIBC_2.3 _rpc_dtablesize F
+GLIBC_2.3 _seterr_reply F
+GLIBC_2.3 _setjmp F
+GLIBC_2.3 _sys_errlist D 0x3f0
+GLIBC_2.3 _sys_nerr D 0x4
+GLIBC_2.3 _sys_siglist D 0x200
+GLIBC_2.3 _tolower F
+GLIBC_2.3 _toupper F
+GLIBC_2.3 a64l F
+GLIBC_2.3 abort F
+GLIBC_2.3 abs F
+GLIBC_2.3 accept F
+GLIBC_2.3 access F
+GLIBC_2.3 acct F
+GLIBC_2.3 addmntent F
+GLIBC_2.3 addseverity F
+GLIBC_2.3 adjtime F
+GLIBC_2.3 adjtimex F
+GLIBC_2.3 advance F
+GLIBC_2.3 alarm F
+GLIBC_2.3 alphasort F
+GLIBC_2.3 alphasort64 F
+GLIBC_2.3 argp_err_exit_status D 0x4
+GLIBC_2.3 argp_error F
+GLIBC_2.3 argp_failure F
+GLIBC_2.3 argp_help F
+GLIBC_2.3 argp_parse F
+GLIBC_2.3 argp_program_bug_address D 0x8
+GLIBC_2.3 argp_program_version D 0x8
+GLIBC_2.3 argp_program_version_hook D 0x8
+GLIBC_2.3 argp_state_help F
+GLIBC_2.3 argp_usage F
+GLIBC_2.3 argz_add F
+GLIBC_2.3 argz_add_sep F
+GLIBC_2.3 argz_append F
+GLIBC_2.3 argz_count F
+GLIBC_2.3 argz_create F
+GLIBC_2.3 argz_create_sep F
+GLIBC_2.3 argz_delete F
+GLIBC_2.3 argz_extract F
+GLIBC_2.3 argz_insert F
+GLIBC_2.3 argz_next F
+GLIBC_2.3 argz_replace F
+GLIBC_2.3 argz_stringify F
+GLIBC_2.3 asctime F
+GLIBC_2.3 asctime_r F
+GLIBC_2.3 asprintf F
+GLIBC_2.3 atof F
+GLIBC_2.3 atoi F
+GLIBC_2.3 atol F
+GLIBC_2.3 atoll F
+GLIBC_2.3 authdes_create F
+GLIBC_2.3 authdes_getucred F
+GLIBC_2.3 authdes_pk_create F
+GLIBC_2.3 authnone_create F
+GLIBC_2.3 authunix_create F
+GLIBC_2.3 authunix_create_default F
+GLIBC_2.3 backtrace F
+GLIBC_2.3 backtrace_symbols F
+GLIBC_2.3 backtrace_symbols_fd F
+GLIBC_2.3 basename F
+GLIBC_2.3 bcmp F
+GLIBC_2.3 bcopy F
+GLIBC_2.3 bdflush F
+GLIBC_2.3 bind F
+GLIBC_2.3 bind_textdomain_codeset F
+GLIBC_2.3 bindresvport F
+GLIBC_2.3 bindtextdomain F
+GLIBC_2.3 brk F
+GLIBC_2.3 bsd_signal F
+GLIBC_2.3 bsearch F
+GLIBC_2.3 btowc F
+GLIBC_2.3 bzero F
+GLIBC_2.3 calloc F
+GLIBC_2.3 callrpc F
+GLIBC_2.3 canonicalize_file_name F
+GLIBC_2.3 capget F
+GLIBC_2.3 capset F
+GLIBC_2.3 catclose F
+GLIBC_2.3 catgets F
+GLIBC_2.3 catopen F
+GLIBC_2.3 cbc_crypt F
+GLIBC_2.3 cfgetispeed F
+GLIBC_2.3 cfgetospeed F
+GLIBC_2.3 cfmakeraw F
+GLIBC_2.3 cfree F
+GLIBC_2.3 cfsetispeed F
+GLIBC_2.3 cfsetospeed F
+GLIBC_2.3 cfsetspeed F
+GLIBC_2.3 chdir F
+GLIBC_2.3 chflags F
+GLIBC_2.3 chmod F
+GLIBC_2.3 chown F
+GLIBC_2.3 chroot F
+GLIBC_2.3 clearenv F
+GLIBC_2.3 clearerr F
+GLIBC_2.3 clearerr_unlocked F
+GLIBC_2.3 clnt_broadcast F
+GLIBC_2.3 clnt_create F
+GLIBC_2.3 clnt_pcreateerror F
+GLIBC_2.3 clnt_perrno F
+GLIBC_2.3 clnt_perror F
+GLIBC_2.3 clnt_spcreateerror F
+GLIBC_2.3 clnt_sperrno F
+GLIBC_2.3 clnt_sperror F
+GLIBC_2.3 clntraw_create F
+GLIBC_2.3 clnttcp_create F
+GLIBC_2.3 clntudp_bufcreate F
+GLIBC_2.3 clntudp_create F
+GLIBC_2.3 clntunix_create F
+GLIBC_2.3 clock F
+GLIBC_2.3 clone F
+GLIBC_2.3 close F
+GLIBC_2.3 closedir F
+GLIBC_2.3 closelog F
+GLIBC_2.3 confstr F
+GLIBC_2.3 connect F
+GLIBC_2.3 copysign F
+GLIBC_2.3 copysignf F
+GLIBC_2.3 copysignl F
+GLIBC_2.3 creat F
+GLIBC_2.3 creat64 F
+GLIBC_2.3 create_module F
+GLIBC_2.3 ctermid F
+GLIBC_2.3 ctime F
+GLIBC_2.3 ctime_r F
+GLIBC_2.3 cuserid F
+GLIBC_2.3 daemon F
+GLIBC_2.3 daylight D 0x4
+GLIBC_2.3 dcgettext F
+GLIBC_2.3 dcngettext F
+GLIBC_2.3 delete_module F
+GLIBC_2.3 des_setparity F
+GLIBC_2.3 dgettext F
+GLIBC_2.3 difftime F
+GLIBC_2.3 dirfd F
+GLIBC_2.3 dirname F
+GLIBC_2.3 div F
+GLIBC_2.3 dl_iterate_phdr F
+GLIBC_2.3 dngettext F
+GLIBC_2.3 dprintf F
+GLIBC_2.3 drand48 F
+GLIBC_2.3 drand48_r F
+GLIBC_2.3 dup F
+GLIBC_2.3 dup2 F
+GLIBC_2.3 duplocale F
+GLIBC_2.3 dysize F
+GLIBC_2.3 ecb_crypt F
+GLIBC_2.3 ecvt F
+GLIBC_2.3 ecvt_r F
+GLIBC_2.3 endaliasent F
+GLIBC_2.3 endfsent F
+GLIBC_2.3 endgrent F
+GLIBC_2.3 endhostent F
+GLIBC_2.3 endmntent F
+GLIBC_2.3 endnetent F
+GLIBC_2.3 endnetgrent F
+GLIBC_2.3 endprotoent F
+GLIBC_2.3 endpwent F
+GLIBC_2.3 endrpcent F
+GLIBC_2.3 endservent F
+GLIBC_2.3 endspent F
+GLIBC_2.3 endttyent F
+GLIBC_2.3 endusershell F
+GLIBC_2.3 endutent F
+GLIBC_2.3 endutxent F
+GLIBC_2.3 environ D 0x8
+GLIBC_2.3 envz_add F
+GLIBC_2.3 envz_entry F
+GLIBC_2.3 envz_get F
+GLIBC_2.3 envz_merge F
+GLIBC_2.3 envz_remove F
+GLIBC_2.3 envz_strip F
+GLIBC_2.3 erand48 F
+GLIBC_2.3 erand48_r F
+GLIBC_2.3 err F
+GLIBC_2.3 error F
+GLIBC_2.3 error_at_line F
+GLIBC_2.3 error_message_count D 0x4
+GLIBC_2.3 error_one_per_line D 0x4
+GLIBC_2.3 error_print_progname D 0x8
+GLIBC_2.3 errx F
+GLIBC_2.3 ether_aton F
+GLIBC_2.3 ether_aton_r F
+GLIBC_2.3 ether_hostton F
+GLIBC_2.3 ether_line F
+GLIBC_2.3 ether_ntoa F
+GLIBC_2.3 ether_ntoa_r F
+GLIBC_2.3 ether_ntohost F
+GLIBC_2.3 euidaccess F
+GLIBC_2.3 execl F
+GLIBC_2.3 execle F
+GLIBC_2.3 execlp F
+GLIBC_2.3 execv F
+GLIBC_2.3 execve F
+GLIBC_2.3 execvp F
+GLIBC_2.3 exit F
+GLIBC_2.3 fattach F
+GLIBC_2.3 fchdir F
+GLIBC_2.3 fchflags F
+GLIBC_2.3 fchmod F
+GLIBC_2.3 fchown F
+GLIBC_2.3 fclose F
+GLIBC_2.3 fcloseall F
+GLIBC_2.3 fcntl F
+GLIBC_2.3 fcvt F
+GLIBC_2.3 fcvt_r F
+GLIBC_2.3 fdatasync F
+GLIBC_2.3 fdetach F
+GLIBC_2.3 fdopen F
+GLIBC_2.3 feof F
+GLIBC_2.3 feof_unlocked F
+GLIBC_2.3 ferror F
+GLIBC_2.3 ferror_unlocked F
+GLIBC_2.3 fexecve F
+GLIBC_2.3 fflush F
+GLIBC_2.3 fflush_unlocked F
+GLIBC_2.3 ffs F
+GLIBC_2.3 ffsl F
+GLIBC_2.3 ffsll F
+GLIBC_2.3 fgetc F
+GLIBC_2.3 fgetc_unlocked F
+GLIBC_2.3 fgetgrent F
+GLIBC_2.3 fgetgrent_r F
+GLIBC_2.3 fgetpos F
+GLIBC_2.3 fgetpos64 F
+GLIBC_2.3 fgetpwent F
+GLIBC_2.3 fgetpwent_r F
+GLIBC_2.3 fgets F
+GLIBC_2.3 fgets_unlocked F
+GLIBC_2.3 fgetspent F
+GLIBC_2.3 fgetspent_r F
+GLIBC_2.3 fgetwc F
+GLIBC_2.3 fgetwc_unlocked F
+GLIBC_2.3 fgetws F
+GLIBC_2.3 fgetws_unlocked F
+GLIBC_2.3 fgetxattr F
+GLIBC_2.3 fileno F
+GLIBC_2.3 fileno_unlocked F
+GLIBC_2.3 finite F
+GLIBC_2.3 finitef F
+GLIBC_2.3 finitel F
+GLIBC_2.3 flistxattr F
+GLIBC_2.3 flock F
+GLIBC_2.3 flockfile F
+GLIBC_2.3 fmemopen F
+GLIBC_2.3 fmtmsg F
+GLIBC_2.3 fnmatch F
+GLIBC_2.3 fopen F
+GLIBC_2.3 fopen64 F
+GLIBC_2.3 fopencookie F
+GLIBC_2.3 fork F
+GLIBC_2.3 fpathconf F
+GLIBC_2.3 fprintf F
+GLIBC_2.3 fputc F
+GLIBC_2.3 fputc_unlocked F
+GLIBC_2.3 fputs F
+GLIBC_2.3 fputs_unlocked F
+GLIBC_2.3 fputwc F
+GLIBC_2.3 fputwc_unlocked F
+GLIBC_2.3 fputws F
+GLIBC_2.3 fputws_unlocked F
+GLIBC_2.3 fread F
+GLIBC_2.3 fread_unlocked F
+GLIBC_2.3 free F
+GLIBC_2.3 freeaddrinfo F
+GLIBC_2.3 freeifaddrs F
+GLIBC_2.3 freelocale F
+GLIBC_2.3 fremovexattr F
+GLIBC_2.3 freopen F
+GLIBC_2.3 freopen64 F
+GLIBC_2.3 frexp F
+GLIBC_2.3 frexpf F
+GLIBC_2.3 frexpl F
+GLIBC_2.3 fscanf F
+GLIBC_2.3 fseek F
+GLIBC_2.3 fseeko F
+GLIBC_2.3 fseeko64 F
+GLIBC_2.3 fsetpos F
+GLIBC_2.3 fsetpos64 F
+GLIBC_2.3 fsetxattr F
+GLIBC_2.3 fstatfs F
+GLIBC_2.3 fstatfs64 F
+GLIBC_2.3 fstatvfs F
+GLIBC_2.3 fstatvfs64 F
+GLIBC_2.3 fsync F
+GLIBC_2.3 ftell F
+GLIBC_2.3 ftello F
+GLIBC_2.3 ftello64 F
+GLIBC_2.3 ftime F
+GLIBC_2.3 ftok F
+GLIBC_2.3 ftruncate F
+GLIBC_2.3 ftruncate64 F
+GLIBC_2.3 ftrylockfile F
+GLIBC_2.3 fts_children F
+GLIBC_2.3 fts_close F
+GLIBC_2.3 fts_open F
+GLIBC_2.3 fts_read F
+GLIBC_2.3 fts_set F
+GLIBC_2.3 ftw F
+GLIBC_2.3 ftw64 F
+GLIBC_2.3 funlockfile F
+GLIBC_2.3 futimes F
+GLIBC_2.3 fwide F
+GLIBC_2.3 fwprintf F
+GLIBC_2.3 fwrite F
+GLIBC_2.3 fwrite_unlocked F
+GLIBC_2.3 fwscanf F
+GLIBC_2.3 gai_strerror F
+GLIBC_2.3 gcvt F
+GLIBC_2.3 get_avphys_pages F
+GLIBC_2.3 get_current_dir_name F
+GLIBC_2.3 get_kernel_syms F
+GLIBC_2.3 get_myaddress F
+GLIBC_2.3 get_nprocs F
+GLIBC_2.3 get_nprocs_conf F
+GLIBC_2.3 get_phys_pages F
+GLIBC_2.3 getaddrinfo F
+GLIBC_2.3 getaliasbyname F
+GLIBC_2.3 getaliasbyname_r F
+GLIBC_2.3 getaliasent F
+GLIBC_2.3 getaliasent_r F
+GLIBC_2.3 getc F
+GLIBC_2.3 getc_unlocked F
+GLIBC_2.3 getchar F
+GLIBC_2.3 getchar_unlocked F
+GLIBC_2.3 getcontext F
+GLIBC_2.3 getcwd F
+GLIBC_2.3 getdate F
+GLIBC_2.3 getdate_err D 0x4
+GLIBC_2.3 getdate_r F
+GLIBC_2.3 getdelim F
+GLIBC_2.3 getdirentries F
+GLIBC_2.3 getdirentries64 F
+GLIBC_2.3 getdomainname F
+GLIBC_2.3 getdtablesize F
+GLIBC_2.3 getegid F
+GLIBC_2.3 getenv F
+GLIBC_2.3 geteuid F
+GLIBC_2.3 getfsent F
+GLIBC_2.3 getfsfile F
+GLIBC_2.3 getfsspec F
+GLIBC_2.3 getgid F
+GLIBC_2.3 getgrent F
+GLIBC_2.3 getgrent_r F
+GLIBC_2.3 getgrgid F
+GLIBC_2.3 getgrgid_r F
+GLIBC_2.3 getgrnam F
+GLIBC_2.3 getgrnam_r F
+GLIBC_2.3 getgrouplist F
+GLIBC_2.3 getgroups F
+GLIBC_2.3 gethostbyaddr F
+GLIBC_2.3 gethostbyaddr_r F
+GLIBC_2.3 gethostbyname F
+GLIBC_2.3 gethostbyname2 F
+GLIBC_2.3 gethostbyname2_r F
+GLIBC_2.3 gethostbyname_r F
+GLIBC_2.3 gethostent F
+GLIBC_2.3 gethostent_r F
+GLIBC_2.3 gethostid F
+GLIBC_2.3 gethostname F
+GLIBC_2.3 getifaddrs F
+GLIBC_2.3 getitimer F
+GLIBC_2.3 getline F
+GLIBC_2.3 getloadavg F
+GLIBC_2.3 getlogin F
+GLIBC_2.3 getlogin_r F
+GLIBC_2.3 getmntent F
+GLIBC_2.3 getmntent_r F
+GLIBC_2.3 getmsg F
+GLIBC_2.3 getnameinfo F
+GLIBC_2.3 getnetbyaddr F
+GLIBC_2.3 getnetbyaddr_r F
+GLIBC_2.3 getnetbyname F
+GLIBC_2.3 getnetbyname_r F
+GLIBC_2.3 getnetent F
+GLIBC_2.3 getnetent_r F
+GLIBC_2.3 getnetgrent F
+GLIBC_2.3 getnetgrent_r F
+GLIBC_2.3 getnetname F
+GLIBC_2.3 getopt F
+GLIBC_2.3 getopt_long F
+GLIBC_2.3 getopt_long_only F
+GLIBC_2.3 getpagesize F
+GLIBC_2.3 getpass F
+GLIBC_2.3 getpeername F
+GLIBC_2.3 getpgid F
+GLIBC_2.3 getpgrp F
+GLIBC_2.3 getpid F
+GLIBC_2.3 getpmsg F
+GLIBC_2.3 getppid F
+GLIBC_2.3 getpriority F
+GLIBC_2.3 getprotobyname F
+GLIBC_2.3 getprotobyname_r F
+GLIBC_2.3 getprotobynumber F
+GLIBC_2.3 getprotobynumber_r F
+GLIBC_2.3 getprotoent F
+GLIBC_2.3 getprotoent_r F
+GLIBC_2.3 getpt F
+GLIBC_2.3 getpublickey F
+GLIBC_2.3 getpw F
+GLIBC_2.3 getpwent F
+GLIBC_2.3 getpwent_r F
+GLIBC_2.3 getpwnam F
+GLIBC_2.3 getpwnam_r F
+GLIBC_2.3 getpwuid F
+GLIBC_2.3 getpwuid_r F
+GLIBC_2.3 getresgid F
+GLIBC_2.3 getresuid F
+GLIBC_2.3 getrlimit F
+GLIBC_2.3 getrlimit64 F
+GLIBC_2.3 getrpcbyname F
+GLIBC_2.3 getrpcbyname_r F
+GLIBC_2.3 getrpcbynumber F
+GLIBC_2.3 getrpcbynumber_r F
+GLIBC_2.3 getrpcent F
+GLIBC_2.3 getrpcent_r F
+GLIBC_2.3 getrpcport F
+GLIBC_2.3 getrusage F
+GLIBC_2.3 gets F
+GLIBC_2.3 getsecretkey F
+GLIBC_2.3 getservbyname F
+GLIBC_2.3 getservbyname_r F
+GLIBC_2.3 getservbyport F
+GLIBC_2.3 getservbyport_r F
+GLIBC_2.3 getservent F
+GLIBC_2.3 getservent_r F
+GLIBC_2.3 getsid F
+GLIBC_2.3 getsockname F
+GLIBC_2.3 getsockopt F
+GLIBC_2.3 getspent F
+GLIBC_2.3 getspent_r F
+GLIBC_2.3 getspnam F
+GLIBC_2.3 getspnam_r F
+GLIBC_2.3 getsubopt F
+GLIBC_2.3 gettext F
+GLIBC_2.3 gettimeofday F
+GLIBC_2.3 getttyent F
+GLIBC_2.3 getttynam F
+GLIBC_2.3 getuid F
+GLIBC_2.3 getusershell F
+GLIBC_2.3 getutent F
+GLIBC_2.3 getutent_r F
+GLIBC_2.3 getutid F
+GLIBC_2.3 getutid_r F
+GLIBC_2.3 getutline F
+GLIBC_2.3 getutline_r F
+GLIBC_2.3 getutmp F
+GLIBC_2.3 getutmpx F
+GLIBC_2.3 getutxent F
+GLIBC_2.3 getutxid F
+GLIBC_2.3 getutxline F
+GLIBC_2.3 getw F
+GLIBC_2.3 getwc F
+GLIBC_2.3 getwc_unlocked F
+GLIBC_2.3 getwchar F
+GLIBC_2.3 getwchar_unlocked F
+GLIBC_2.3 getwd F
+GLIBC_2.3 getxattr F
+GLIBC_2.3 glob F
+GLIBC_2.3 glob64 F
+GLIBC_2.3 glob_pattern_p F
+GLIBC_2.3 globfree F
+GLIBC_2.3 globfree64 F
+GLIBC_2.3 gmtime F
+GLIBC_2.3 gmtime_r F
+GLIBC_2.3 gnu_get_libc_release F
+GLIBC_2.3 gnu_get_libc_version F
+GLIBC_2.3 grantpt F
+GLIBC_2.3 group_member F
+GLIBC_2.3 gsignal F
+GLIBC_2.3 gtty F
+GLIBC_2.3 h_errlist D 0x28
+GLIBC_2.3 h_nerr D 0x4
+GLIBC_2.3 hasmntopt F
+GLIBC_2.3 hcreate F
+GLIBC_2.3 hcreate_r F
+GLIBC_2.3 hdestroy F
+GLIBC_2.3 hdestroy_r F
+GLIBC_2.3 herror F
+GLIBC_2.3 host2netname F
+GLIBC_2.3 hsearch F
+GLIBC_2.3 hsearch_r F
+GLIBC_2.3 hstrerror F
+GLIBC_2.3 htonl F
+GLIBC_2.3 htons F
+GLIBC_2.3 iconv F
+GLIBC_2.3 iconv_close F
+GLIBC_2.3 iconv_open F
+GLIBC_2.3 if_freenameindex F
+GLIBC_2.3 if_indextoname F
+GLIBC_2.3 if_nameindex F
+GLIBC_2.3 if_nametoindex F
+GLIBC_2.3 imaxabs F
+GLIBC_2.3 imaxdiv F
+GLIBC_2.3 in6addr_any D 0x10
+GLIBC_2.3 in6addr_loopback D 0x10
+GLIBC_2.3 index F
+GLIBC_2.3 inet_addr F
+GLIBC_2.3 inet_aton F
+GLIBC_2.3 inet_lnaof F
+GLIBC_2.3 inet_makeaddr F
+GLIBC_2.3 inet_netof F
+GLIBC_2.3 inet_network F
+GLIBC_2.3 inet_nsap_addr F
+GLIBC_2.3 inet_nsap_ntoa F
+GLIBC_2.3 inet_ntoa F
+GLIBC_2.3 inet_ntop F
+GLIBC_2.3 inet_pton F
+GLIBC_2.3 init_module F
+GLIBC_2.3 initgroups F
+GLIBC_2.3 initstate F
+GLIBC_2.3 initstate_r F
+GLIBC_2.3 innetgr F
+GLIBC_2.3 insque F
+GLIBC_2.3 ioctl F
+GLIBC_2.3 iruserok F
+GLIBC_2.3 iruserok_af F
+GLIBC_2.3 isalnum F
+GLIBC_2.3 isalnum_l F
+GLIBC_2.3 isalpha F
+GLIBC_2.3 isalpha_l F
+GLIBC_2.3 isascii F
+GLIBC_2.3 isastream F
+GLIBC_2.3 isatty F
+GLIBC_2.3 isblank F
+GLIBC_2.3 isblank_l F
+GLIBC_2.3 iscntrl F
+GLIBC_2.3 iscntrl_l F
+GLIBC_2.3 isctype F
+GLIBC_2.3 isdigit F
+GLIBC_2.3 isdigit_l F
+GLIBC_2.3 isfdtype F
+GLIBC_2.3 isgraph F
+GLIBC_2.3 isgraph_l F
+GLIBC_2.3 isinf F
+GLIBC_2.3 isinff F
+GLIBC_2.3 isinfl F
+GLIBC_2.3 islower F
+GLIBC_2.3 islower_l F
+GLIBC_2.3 isnan F
+GLIBC_2.3 isnanf F
+GLIBC_2.3 isnanl F
+GLIBC_2.3 isprint F
+GLIBC_2.3 isprint_l F
+GLIBC_2.3 ispunct F
+GLIBC_2.3 ispunct_l F
+GLIBC_2.3 isspace F
+GLIBC_2.3 isspace_l F
+GLIBC_2.3 isupper F
+GLIBC_2.3 isupper_l F
+GLIBC_2.3 iswalnum F
+GLIBC_2.3 iswalnum_l F
+GLIBC_2.3 iswalpha F
+GLIBC_2.3 iswalpha_l F
+GLIBC_2.3 iswblank F
+GLIBC_2.3 iswblank_l F
+GLIBC_2.3 iswcntrl F
+GLIBC_2.3 iswcntrl_l F
+GLIBC_2.3 iswctype F
+GLIBC_2.3 iswctype_l F
+GLIBC_2.3 iswdigit F
+GLIBC_2.3 iswdigit_l F
+GLIBC_2.3 iswgraph F
+GLIBC_2.3 iswgraph_l F
+GLIBC_2.3 iswlower F
+GLIBC_2.3 iswlower_l F
+GLIBC_2.3 iswprint F
+GLIBC_2.3 iswprint_l F
+GLIBC_2.3 iswpunct F
+GLIBC_2.3 iswpunct_l F
+GLIBC_2.3 iswspace F
+GLIBC_2.3 iswspace_l F
+GLIBC_2.3 iswupper F
+GLIBC_2.3 iswupper_l F
+GLIBC_2.3 iswxdigit F
+GLIBC_2.3 iswxdigit_l F
+GLIBC_2.3 isxdigit F
+GLIBC_2.3 isxdigit_l F
+GLIBC_2.3 jrand48 F
+GLIBC_2.3 jrand48_r F
+GLIBC_2.3 key_decryptsession F
+GLIBC_2.3 key_decryptsession_pk F
+GLIBC_2.3 key_encryptsession F
+GLIBC_2.3 key_encryptsession_pk F
+GLIBC_2.3 key_gendes F
+GLIBC_2.3 key_get_conv F
+GLIBC_2.3 key_secretkey_is_set F
+GLIBC_2.3 key_setnet F
+GLIBC_2.3 key_setsecret F
+GLIBC_2.3 kill F
+GLIBC_2.3 killpg F
+GLIBC_2.3 klogctl F
+GLIBC_2.3 l64a F
+GLIBC_2.3 labs F
+GLIBC_2.3 lchown F
+GLIBC_2.3 lckpwdf F
+GLIBC_2.3 lcong48 F
+GLIBC_2.3 lcong48_r F
+GLIBC_2.3 ldexp F
+GLIBC_2.3 ldexpf F
+GLIBC_2.3 ldexpl F
+GLIBC_2.3 ldiv F
+GLIBC_2.3 lfind F
+GLIBC_2.3 lgetxattr F
+GLIBC_2.3 link F
+GLIBC_2.3 listen F
+GLIBC_2.3 listxattr F
+GLIBC_2.3 llabs F
+GLIBC_2.3 lldiv F
+GLIBC_2.3 llistxattr F
+GLIBC_2.3 llseek F
+GLIBC_2.3 loc1 D 0x8
+GLIBC_2.3 loc2 D 0x8
+GLIBC_2.3 localeconv F
+GLIBC_2.3 localtime F
+GLIBC_2.3 localtime_r F
+GLIBC_2.3 lockf F
+GLIBC_2.3 lockf64 F
+GLIBC_2.3 locs D 0x8
+GLIBC_2.3 longjmp F
+GLIBC_2.3 lrand48 F
+GLIBC_2.3 lrand48_r F
+GLIBC_2.3 lremovexattr F
+GLIBC_2.3 lsearch F
+GLIBC_2.3 lseek F
+GLIBC_2.3 lseek64 F
+GLIBC_2.3 lsetxattr F
+GLIBC_2.3 lutimes F
+GLIBC_2.3 madvise F
+GLIBC_2.3 makecontext F
+GLIBC_2.3 mallinfo F
+GLIBC_2.3 malloc F
+GLIBC_2.3 malloc_get_state F
+GLIBC_2.3 malloc_set_state F
+GLIBC_2.3 malloc_stats F
+GLIBC_2.3 malloc_trim F
+GLIBC_2.3 malloc_usable_size F
+GLIBC_2.3 mallopt F
+GLIBC_2.3 mallwatch D 0x8
+GLIBC_2.3 mblen F
+GLIBC_2.3 mbrlen F
+GLIBC_2.3 mbrtowc F
+GLIBC_2.3 mbsinit F
+GLIBC_2.3 mbsnrtowcs F
+GLIBC_2.3 mbsrtowcs F
+GLIBC_2.3 mbstowcs F
+GLIBC_2.3 mbtowc F
+GLIBC_2.3 mcheck F
+GLIBC_2.3 mcheck_check_all F
+GLIBC_2.3 mcheck_pedantic F
+GLIBC_2.3 memalign F
+GLIBC_2.3 memccpy F
+GLIBC_2.3 memchr F
+GLIBC_2.3 memcmp F
+GLIBC_2.3 memcpy F
+GLIBC_2.3 memfrob F
+GLIBC_2.3 memmem F
+GLIBC_2.3 memmove F
+GLIBC_2.3 mempcpy F
+GLIBC_2.3 memrchr F
+GLIBC_2.3 memset F
+GLIBC_2.3 mincore F
+GLIBC_2.3 mkdir F
+GLIBC_2.3 mkdtemp F
+GLIBC_2.3 mkfifo F
+GLIBC_2.3 mkstemp F
+GLIBC_2.3 mkstemp64 F
+GLIBC_2.3 mktemp F
+GLIBC_2.3 mktime F
+GLIBC_2.3 mlock F
+GLIBC_2.3 mlockall F
+GLIBC_2.3 mmap F
+GLIBC_2.3 mmap64 F
+GLIBC_2.3 modf F
+GLIBC_2.3 modff F
+GLIBC_2.3 modfl F
+GLIBC_2.3 moncontrol F
+GLIBC_2.3 monstartup F
+GLIBC_2.3 mount F
+GLIBC_2.3 mprobe F
+GLIBC_2.3 mprotect F
+GLIBC_2.3 mrand48 F
+GLIBC_2.3 mrand48_r F
+GLIBC_2.3 mremap F
+GLIBC_2.3 msgctl F
+GLIBC_2.3 msgget F
+GLIBC_2.3 msgrcv F
+GLIBC_2.3 msgsnd F
+GLIBC_2.3 msync F
+GLIBC_2.3 mtrace F
+GLIBC_2.3 munlock F
+GLIBC_2.3 munlockall F
+GLIBC_2.3 munmap F
+GLIBC_2.3 muntrace F
+GLIBC_2.3 nanosleep F
+GLIBC_2.3 netname2host F
+GLIBC_2.3 netname2user F
+GLIBC_2.3 newlocale F
+GLIBC_2.3 nfsservctl F
+GLIBC_2.3 nftw F
+GLIBC_2.3 nftw64 F
+GLIBC_2.3 ngettext F
+GLIBC_2.3 nice F
+GLIBC_2.3 nl_langinfo F
+GLIBC_2.3 nl_langinfo_l F
+GLIBC_2.3 nrand48 F
+GLIBC_2.3 nrand48_r F
+GLIBC_2.3 ntohl F
+GLIBC_2.3 ntohs F
+GLIBC_2.3 ntp_adjtime F
+GLIBC_2.3 ntp_gettime F
+GLIBC_2.3 obstack_alloc_failed_handler D 0x8
+GLIBC_2.3 obstack_exit_failure D 0x4
+GLIBC_2.3 obstack_free F
+GLIBC_2.3 obstack_printf F
+GLIBC_2.3 obstack_vprintf F
+GLIBC_2.3 on_exit F
+GLIBC_2.3 open F
+GLIBC_2.3 open64 F
+GLIBC_2.3 open_memstream F
+GLIBC_2.3 opendir F
+GLIBC_2.3 openlog F
+GLIBC_2.3 optarg D 0x8
+GLIBC_2.3 opterr D 0x4
+GLIBC_2.3 optind D 0x4
+GLIBC_2.3 optopt D 0x4
+GLIBC_2.3 parse_printf_format F
+GLIBC_2.3 passwd2des F
+GLIBC_2.3 pathconf F
+GLIBC_2.3 pause F
+GLIBC_2.3 pclose F
+GLIBC_2.3 perror F
+GLIBC_2.3 personality F
+GLIBC_2.3 pipe F
+GLIBC_2.3 pivot_root F
+GLIBC_2.3 pmap_getmaps F
+GLIBC_2.3 pmap_getport F
+GLIBC_2.3 pmap_rmtcall F
+GLIBC_2.3 pmap_set F
+GLIBC_2.3 pmap_unset F
+GLIBC_2.3 poll F
+GLIBC_2.3 popen F
+GLIBC_2.3 posix_fadvise F
+GLIBC_2.3 posix_fadvise64 F
+GLIBC_2.3 posix_fallocate F
+GLIBC_2.3 posix_fallocate64 F
+GLIBC_2.3 posix_madvise F
+GLIBC_2.3 posix_memalign F
+GLIBC_2.3 posix_openpt F
+GLIBC_2.3 posix_spawn F
+GLIBC_2.3 posix_spawn_file_actions_addclose F
+GLIBC_2.3 posix_spawn_file_actions_adddup2 F
+GLIBC_2.3 posix_spawn_file_actions_addopen F
+GLIBC_2.3 posix_spawn_file_actions_destroy F
+GLIBC_2.3 posix_spawn_file_actions_init F
+GLIBC_2.3 posix_spawnattr_destroy F
+GLIBC_2.3 posix_spawnattr_getflags F
+GLIBC_2.3 posix_spawnattr_getpgroup F
+GLIBC_2.3 posix_spawnattr_getschedparam F
+GLIBC_2.3 posix_spawnattr_getschedpolicy F
+GLIBC_2.3 posix_spawnattr_getsigdefault F
+GLIBC_2.3 posix_spawnattr_getsigmask F
+GLIBC_2.3 posix_spawnattr_init F
+GLIBC_2.3 posix_spawnattr_setflags F
+GLIBC_2.3 posix_spawnattr_setpgroup F
+GLIBC_2.3 posix_spawnattr_setschedparam F
+GLIBC_2.3 posix_spawnattr_setschedpolicy F
+GLIBC_2.3 posix_spawnattr_setsigdefault F
+GLIBC_2.3 posix_spawnattr_setsigmask F
+GLIBC_2.3 posix_spawnp F
+GLIBC_2.3 prctl F
+GLIBC_2.3 pread F
+GLIBC_2.3 pread64 F
+GLIBC_2.3 printf F
+GLIBC_2.3 printf_size F
+GLIBC_2.3 printf_size_info F
+GLIBC_2.3 profil F
+GLIBC_2.3 program_invocation_name D 0x8
+GLIBC_2.3 program_invocation_short_name D 0x8
+GLIBC_2.3 pselect F
+GLIBC_2.3 psignal F
+GLIBC_2.3 pthread_attr_destroy F
+GLIBC_2.3 pthread_attr_getdetachstate F
+GLIBC_2.3 pthread_attr_getinheritsched F
+GLIBC_2.3 pthread_attr_getschedparam F
+GLIBC_2.3 pthread_attr_getschedpolicy F
+GLIBC_2.3 pthread_attr_getscope F
+GLIBC_2.3 pthread_attr_init F
+GLIBC_2.3 pthread_attr_setdetachstate F
+GLIBC_2.3 pthread_attr_setinheritsched F
+GLIBC_2.3 pthread_attr_setschedparam F
+GLIBC_2.3 pthread_attr_setschedpolicy F
+GLIBC_2.3 pthread_attr_setscope F
+GLIBC_2.3 pthread_cond_broadcast F
+GLIBC_2.3 pthread_cond_destroy F
+GLIBC_2.3 pthread_cond_init F
+GLIBC_2.3 pthread_cond_signal F
+GLIBC_2.3 pthread_cond_timedwait F
+GLIBC_2.3 pthread_cond_wait F
+GLIBC_2.3 pthread_condattr_destroy F
+GLIBC_2.3 pthread_condattr_init F
+GLIBC_2.3 pthread_equal F
+GLIBC_2.3 pthread_exit F
+GLIBC_2.3 pthread_getschedparam F
+GLIBC_2.3 pthread_mutex_destroy F
+GLIBC_2.3 pthread_mutex_init F
+GLIBC_2.3 pthread_mutex_lock F
+GLIBC_2.3 pthread_mutex_unlock F
+GLIBC_2.3 pthread_self F
+GLIBC_2.3 pthread_setcancelstate F
+GLIBC_2.3 pthread_setcanceltype F
+GLIBC_2.3 pthread_setschedparam F
+GLIBC_2.3 ptrace F
+GLIBC_2.3 ptsname F
+GLIBC_2.3 ptsname_r F
+GLIBC_2.3 putc F
+GLIBC_2.3 putc_unlocked F
+GLIBC_2.3 putchar F
+GLIBC_2.3 putchar_unlocked F
+GLIBC_2.3 putenv F
+GLIBC_2.3 putgrent F
+GLIBC_2.3 putmsg F
+GLIBC_2.3 putpmsg F
+GLIBC_2.3 putpwent F
+GLIBC_2.3 puts F
+GLIBC_2.3 putspent F
+GLIBC_2.3 pututline F
+GLIBC_2.3 pututxline F
+GLIBC_2.3 putw F
+GLIBC_2.3 putwc F
+GLIBC_2.3 putwc_unlocked F
+GLIBC_2.3 putwchar F
+GLIBC_2.3 putwchar_unlocked F
+GLIBC_2.3 pvalloc F
+GLIBC_2.3 pwrite F
+GLIBC_2.3 pwrite64 F
+GLIBC_2.3 qecvt F
+GLIBC_2.3 qecvt_r F
+GLIBC_2.3 qfcvt F
+GLIBC_2.3 qfcvt_r F
+GLIBC_2.3 qgcvt F
+GLIBC_2.3 qsort F
+GLIBC_2.3 query_module F
+GLIBC_2.3 quotactl F
+GLIBC_2.3 raise F
+GLIBC_2.3 rand F
+GLIBC_2.3 rand_r F
+GLIBC_2.3 random F
+GLIBC_2.3 random_r F
+GLIBC_2.3 rawmemchr F
+GLIBC_2.3 rcmd F
+GLIBC_2.3 rcmd_af F
+GLIBC_2.3 re_comp F
+GLIBC_2.3 re_compile_fastmap F
+GLIBC_2.3 re_compile_pattern F
+GLIBC_2.3 re_exec F
+GLIBC_2.3 re_match F
+GLIBC_2.3 re_match_2 F
+GLIBC_2.3 re_search F
+GLIBC_2.3 re_search_2 F
+GLIBC_2.3 re_set_registers F
+GLIBC_2.3 re_set_syntax F
+GLIBC_2.3 re_syntax_options D 0x8
+GLIBC_2.3 read F
+GLIBC_2.3 readahead F
+GLIBC_2.3 readdir F
+GLIBC_2.3 readdir64 F
+GLIBC_2.3 readdir64_r F
+GLIBC_2.3 readdir_r F
+GLIBC_2.3 readlink F
+GLIBC_2.3 readv F
+GLIBC_2.3 realloc F
+GLIBC_2.3 realpath F
+GLIBC_2.3 reboot F
+GLIBC_2.3 recv F
+GLIBC_2.3 recvfrom F
+GLIBC_2.3 recvmsg F
+GLIBC_2.3 regcomp F
+GLIBC_2.3 regerror F
+GLIBC_2.3 regexec F
+GLIBC_2.3 regfree F
+GLIBC_2.3 register_printf_function F
+GLIBC_2.3 registerrpc F
+GLIBC_2.3 remove F
+GLIBC_2.3 removexattr F
+GLIBC_2.3 remque F
+GLIBC_2.3 rename F
+GLIBC_2.3 revoke F
+GLIBC_2.3 rewind F
+GLIBC_2.3 rewinddir F
+GLIBC_2.3 rexec F
+GLIBC_2.3 rexec_af F
+GLIBC_2.3 rexecoptions D 0x4
+GLIBC_2.3 rindex F
+GLIBC_2.3 rmdir F
+GLIBC_2.3 rpc_createerr D 0x20
+GLIBC_2.3 rpmatch F
+GLIBC_2.3 rresvport F
+GLIBC_2.3 rresvport_af F
+GLIBC_2.3 rtime F
+GLIBC_2.3 ruserok F
+GLIBC_2.3 ruserok_af F
+GLIBC_2.3 ruserpass F
+GLIBC_2.3 sbrk F
+GLIBC_2.3 scalbn F
+GLIBC_2.3 scalbnf F
+GLIBC_2.3 scalbnl F
+GLIBC_2.3 scandir F
+GLIBC_2.3 scandir64 F
+GLIBC_2.3 scanf F
+GLIBC_2.3 sched_get_priority_max F
+GLIBC_2.3 sched_get_priority_min F
+GLIBC_2.3 sched_getparam F
+GLIBC_2.3 sched_getscheduler F
+GLIBC_2.3 sched_rr_get_interval F
+GLIBC_2.3 sched_setparam F
+GLIBC_2.3 sched_setscheduler F
+GLIBC_2.3 sched_yield F
+GLIBC_2.3 seed48 F
+GLIBC_2.3 seed48_r F
+GLIBC_2.3 seekdir F
+GLIBC_2.3 select F
+GLIBC_2.3 semctl F
+GLIBC_2.3 semget F
+GLIBC_2.3 semop F
+GLIBC_2.3 send F
+GLIBC_2.3 sendfile F
+GLIBC_2.3 sendfile64 F
+GLIBC_2.3 sendmsg F
+GLIBC_2.3 sendto F
+GLIBC_2.3 setaliasent F
+GLIBC_2.3 setbuf F
+GLIBC_2.3 setbuffer F
+GLIBC_2.3 setcontext F
+GLIBC_2.3 setdomainname F
+GLIBC_2.3 setegid F
+GLIBC_2.3 setenv F
+GLIBC_2.3 seteuid F
+GLIBC_2.3 setfsent F
+GLIBC_2.3 setfsgid F
+GLIBC_2.3 setfsuid F
+GLIBC_2.3 setgid F
+GLIBC_2.3 setgrent F
+GLIBC_2.3 setgroups F
+GLIBC_2.3 sethostent F
+GLIBC_2.3 sethostid F
+GLIBC_2.3 sethostname F
+GLIBC_2.3 setitimer F
+GLIBC_2.3 setjmp F
+GLIBC_2.3 setlinebuf F
+GLIBC_2.3 setlocale F
+GLIBC_2.3 setlogin F
+GLIBC_2.3 setlogmask F
+GLIBC_2.3 setmntent F
+GLIBC_2.3 setnetent F
+GLIBC_2.3 setnetgrent F
+GLIBC_2.3 setpgid F
+GLIBC_2.3 setpgrp F
+GLIBC_2.3 setpriority F
+GLIBC_2.3 setprotoent F
+GLIBC_2.3 setpwent F
+GLIBC_2.3 setregid F
+GLIBC_2.3 setresgid F
+GLIBC_2.3 setresuid F
+GLIBC_2.3 setreuid F
+GLIBC_2.3 setrlimit F
+GLIBC_2.3 setrlimit64 F
+GLIBC_2.3 setrpcent F
+GLIBC_2.3 setservent F
+GLIBC_2.3 setsid F
+GLIBC_2.3 setsockopt F
+GLIBC_2.3 setspent F
+GLIBC_2.3 setstate F
+GLIBC_2.3 setstate_r F
+GLIBC_2.3 settimeofday F
+GLIBC_2.3 setttyent F
+GLIBC_2.3 setuid F
+GLIBC_2.3 setusershell F
+GLIBC_2.3 setutent F
+GLIBC_2.3 setutxent F
+GLIBC_2.3 setvbuf F
+GLIBC_2.3 setxattr F
+GLIBC_2.3 sgetspent F
+GLIBC_2.3 sgetspent_r F
+GLIBC_2.3 shmat F
+GLIBC_2.3 shmctl F
+GLIBC_2.3 shmdt F
+GLIBC_2.3 shmget F
+GLIBC_2.3 shutdown F
+GLIBC_2.3 sigaction F
+GLIBC_2.3 sigaddset F
+GLIBC_2.3 sigaltstack F
+GLIBC_2.3 sigandset F
+GLIBC_2.3 sigblock F
+GLIBC_2.3 sigdelset F
+GLIBC_2.3 sigemptyset F
+GLIBC_2.3 sigfillset F
+GLIBC_2.3 siggetmask F
+GLIBC_2.3 sighold F
+GLIBC_2.3 sigignore F
+GLIBC_2.3 siginterrupt F
+GLIBC_2.3 sigisemptyset F
+GLIBC_2.3 sigismember F
+GLIBC_2.3 siglongjmp F
+GLIBC_2.3 signal F
+GLIBC_2.3 sigorset F
+GLIBC_2.3 sigpause F
+GLIBC_2.3 sigpending F
+GLIBC_2.3 sigprocmask F
+GLIBC_2.3 sigqueue F
+GLIBC_2.3 sigrelse F
+GLIBC_2.3 sigreturn F
+GLIBC_2.3 sigset F
+GLIBC_2.3 sigsetmask F
+GLIBC_2.3 sigstack F
+GLIBC_2.3 sigsuspend F
+GLIBC_2.3 sigtimedwait F
+GLIBC_2.3 sigvec F
+GLIBC_2.3 sigwait F
+GLIBC_2.3 sigwaitinfo F
+GLIBC_2.3 sleep F
+GLIBC_2.3 snprintf F
+GLIBC_2.3 sockatmark F
+GLIBC_2.3 socket F
+GLIBC_2.3 socketpair F
+GLIBC_2.3 sprintf F
+GLIBC_2.3 sprofil F
+GLIBC_2.3 srand F
+GLIBC_2.3 srand48 F
+GLIBC_2.3 srand48_r F
+GLIBC_2.3 srandom F
+GLIBC_2.3 srandom_r F
+GLIBC_2.3 sscanf F
+GLIBC_2.3 ssignal F
+GLIBC_2.3 sstk F
+GLIBC_2.3 statfs F
+GLIBC_2.3 statfs64 F
+GLIBC_2.3 statvfs F
+GLIBC_2.3 statvfs64 F
+GLIBC_2.3 stderr D 0x8
+GLIBC_2.3 stdin D 0x8
+GLIBC_2.3 stdout D 0x8
+GLIBC_2.3 step F
+GLIBC_2.3 stime F
+GLIBC_2.3 stpcpy F
+GLIBC_2.3 stpncpy F
+GLIBC_2.3 strcasecmp F
+GLIBC_2.3 strcasecmp_l F
+GLIBC_2.3 strcasestr F
+GLIBC_2.3 strcat F
+GLIBC_2.3 strchr F
+GLIBC_2.3 strchrnul F
+GLIBC_2.3 strcmp F
+GLIBC_2.3 strcoll F
+GLIBC_2.3 strcoll_l F
+GLIBC_2.3 strcpy F
+GLIBC_2.3 strcspn F
+GLIBC_2.3 strdup F
+GLIBC_2.3 strerror F
+GLIBC_2.3 strerror_r F
+GLIBC_2.3 strfmon F
+GLIBC_2.3 strfmon_l F
+GLIBC_2.3 strfry F
+GLIBC_2.3 strftime F
+GLIBC_2.3 strftime_l F
+GLIBC_2.3 strlen F
+GLIBC_2.3 strncasecmp F
+GLIBC_2.3 strncasecmp_l F
+GLIBC_2.3 strncat F
+GLIBC_2.3 strncmp F
+GLIBC_2.3 strncpy F
+GLIBC_2.3 strndup F
+GLIBC_2.3 strnlen F
+GLIBC_2.3 strpbrk F
+GLIBC_2.3 strptime F
+GLIBC_2.3 strrchr F
+GLIBC_2.3 strsep F
+GLIBC_2.3 strsignal F
+GLIBC_2.3 strspn F
+GLIBC_2.3 strstr F
+GLIBC_2.3 strtod F
+GLIBC_2.3 strtod_l F
+GLIBC_2.3 strtof F
+GLIBC_2.3 strtof_l F
+GLIBC_2.3 strtoimax F
+GLIBC_2.3 strtok F
+GLIBC_2.3 strtok_r F
+GLIBC_2.3 strtol F
+GLIBC_2.3 strtol_l F
+GLIBC_2.3 strtold F
+GLIBC_2.3 strtold_l F
+GLIBC_2.3 strtoll F
+GLIBC_2.3 strtoq F
+GLIBC_2.3 strtoul F
+GLIBC_2.3 strtoul_l F
+GLIBC_2.3 strtoull F
+GLIBC_2.3 strtoumax F
+GLIBC_2.3 strtouq F
+GLIBC_2.3 strverscmp F
+GLIBC_2.3 strxfrm F
+GLIBC_2.3 strxfrm_l F
+GLIBC_2.3 stty F
+GLIBC_2.3 svc_exit F
+GLIBC_2.3 svc_fdset D 0x80
+GLIBC_2.3 svc_getreq F
+GLIBC_2.3 svc_getreq_common F
+GLIBC_2.3 svc_getreq_poll F
+GLIBC_2.3 svc_getreqset F
+GLIBC_2.3 svc_max_pollfd D 0x4
+GLIBC_2.3 svc_pollfd D 0x8
+GLIBC_2.3 svc_register F
+GLIBC_2.3 svc_run F
+GLIBC_2.3 svc_sendreply F
+GLIBC_2.3 svc_unregister F
+GLIBC_2.3 svcauthdes_stats D 0x18
+GLIBC_2.3 svcerr_auth F
+GLIBC_2.3 svcerr_decode F
+GLIBC_2.3 svcerr_noproc F
+GLIBC_2.3 svcerr_noprog F
+GLIBC_2.3 svcerr_progvers F
+GLIBC_2.3 svcerr_systemerr F
+GLIBC_2.3 svcerr_weakauth F
+GLIBC_2.3 svcfd_create F
+GLIBC_2.3 svcraw_create F
+GLIBC_2.3 svctcp_create F
+GLIBC_2.3 svcudp_bufcreate F
+GLIBC_2.3 svcudp_create F
+GLIBC_2.3 svcudp_enablecache F
+GLIBC_2.3 svcunix_create F
+GLIBC_2.3 svcunixfd_create F
+GLIBC_2.3 swab F
+GLIBC_2.3 swapcontext F
+GLIBC_2.3 swapoff F
+GLIBC_2.3 swapon F
+GLIBC_2.3 swprintf F
+GLIBC_2.3 swscanf F
+GLIBC_2.3 symlink F
+GLIBC_2.3 sync F
+GLIBC_2.3 sys_errlist D 0x3f0
+GLIBC_2.3 sys_nerr D 0x4
+GLIBC_2.3 sys_sigabbrev D 0x200
+GLIBC_2.3 sys_siglist D 0x200
+GLIBC_2.3 syscall F
+GLIBC_2.3 sysconf F
+GLIBC_2.3 sysctl F
+GLIBC_2.3 sysinfo F
+GLIBC_2.3 syslog F
+GLIBC_2.3 system F
+GLIBC_2.3 sysv_signal F
+GLIBC_2.3 tcdrain F
+GLIBC_2.3 tcflow F
+GLIBC_2.3 tcflush F
+GLIBC_2.3 tcgetattr F
+GLIBC_2.3 tcgetpgrp F
+GLIBC_2.3 tcgetsid F
+GLIBC_2.3 tcsendbreak F
+GLIBC_2.3 tcsetattr F
+GLIBC_2.3 tcsetpgrp F
+GLIBC_2.3 tdelete F
+GLIBC_2.3 tdestroy F
+GLIBC_2.3 telldir F
+GLIBC_2.3 tempnam F
+GLIBC_2.3 textdomain F
+GLIBC_2.3 tfind F
+GLIBC_2.3 time F
+GLIBC_2.3 timegm F
+GLIBC_2.3 timelocal F
+GLIBC_2.3 times F
+GLIBC_2.3 timezone D 0x8
+GLIBC_2.3 tmpfile F
+GLIBC_2.3 tmpfile64 F
+GLIBC_2.3 tmpnam F
+GLIBC_2.3 tmpnam_r F
+GLIBC_2.3 toascii F
+GLIBC_2.3 tolower F
+GLIBC_2.3 tolower_l F
+GLIBC_2.3 toupper F
+GLIBC_2.3 toupper_l F
+GLIBC_2.3 towctrans F
+GLIBC_2.3 towctrans_l F
+GLIBC_2.3 towlower F
+GLIBC_2.3 towlower_l F
+GLIBC_2.3 towupper F
+GLIBC_2.3 towupper_l F
+GLIBC_2.3 tr_break F
+GLIBC_2.3 truncate F
+GLIBC_2.3 truncate64 F
+GLIBC_2.3 tsearch F
+GLIBC_2.3 ttyname F
+GLIBC_2.3 ttyname_r F
+GLIBC_2.3 ttyslot F
+GLIBC_2.3 twalk F
+GLIBC_2.3 tzname D 0x10
+GLIBC_2.3 tzset F
+GLIBC_2.3 ualarm F
+GLIBC_2.3 ulckpwdf F
+GLIBC_2.3 ulimit F
+GLIBC_2.3 umask F
+GLIBC_2.3 umount F
+GLIBC_2.3 umount2 F
+GLIBC_2.3 uname F
+GLIBC_2.3 ungetc F
+GLIBC_2.3 ungetwc F
+GLIBC_2.3 unlink F
+GLIBC_2.3 unlockpt F
+GLIBC_2.3 unsetenv F
+GLIBC_2.3 updwtmp F
+GLIBC_2.3 updwtmpx F
+GLIBC_2.3 uselib F
+GLIBC_2.3 uselocale F
+GLIBC_2.3 user2netname F
+GLIBC_2.3 usleep F
+GLIBC_2.3 ustat F
+GLIBC_2.3 utime F
+GLIBC_2.3 utimes F
+GLIBC_2.3 utmpname F
+GLIBC_2.3 utmpxname F
+GLIBC_2.3 valloc F
+GLIBC_2.3 vasprintf F
+GLIBC_2.3 vdprintf F
+GLIBC_2.3 verr F
+GLIBC_2.3 verrx F
+GLIBC_2.3 versionsort F
+GLIBC_2.3 versionsort64 F
+GLIBC_2.3 vfork F
+GLIBC_2.3 vfprintf F
+GLIBC_2.3 vfscanf F
+GLIBC_2.3 vfwprintf F
+GLIBC_2.3 vfwscanf F
+GLIBC_2.3 vhangup F
+GLIBC_2.3 vlimit F
+GLIBC_2.3 vprintf F
+GLIBC_2.3 vscanf F
+GLIBC_2.3 vsnprintf F
+GLIBC_2.3 vsprintf F
+GLIBC_2.3 vsscanf F
+GLIBC_2.3 vswprintf F
+GLIBC_2.3 vswscanf F
+GLIBC_2.3 vsyslog F
+GLIBC_2.3 vtimes F
+GLIBC_2.3 vwarn F
+GLIBC_2.3 vwarnx F
+GLIBC_2.3 vwprintf F
+GLIBC_2.3 vwscanf F
+GLIBC_2.3 wait F
+GLIBC_2.3 wait3 F
+GLIBC_2.3 wait4 F
+GLIBC_2.3 waitid F
+GLIBC_2.3 waitpid F
+GLIBC_2.3 warn F
+GLIBC_2.3 warnx F
+GLIBC_2.3 wcpcpy F
+GLIBC_2.3 wcpncpy F
+GLIBC_2.3 wcrtomb F
+GLIBC_2.3 wcscasecmp F
+GLIBC_2.3 wcscasecmp_l F
+GLIBC_2.3 wcscat F
+GLIBC_2.3 wcschr F
+GLIBC_2.3 wcschrnul F
+GLIBC_2.3 wcscmp F
+GLIBC_2.3 wcscoll F
+GLIBC_2.3 wcscoll_l F
+GLIBC_2.3 wcscpy F
+GLIBC_2.3 wcscspn F
+GLIBC_2.3 wcsdup F
+GLIBC_2.3 wcsftime F
+GLIBC_2.3 wcsftime_l F
+GLIBC_2.3 wcslen F
+GLIBC_2.3 wcsncasecmp F
+GLIBC_2.3 wcsncasecmp_l F
+GLIBC_2.3 wcsncat F
+GLIBC_2.3 wcsncmp F
+GLIBC_2.3 wcsncpy F
+GLIBC_2.3 wcsnlen F
+GLIBC_2.3 wcsnrtombs F
+GLIBC_2.3 wcspbrk F
+GLIBC_2.3 wcsrchr F
+GLIBC_2.3 wcsrtombs F
+GLIBC_2.3 wcsspn F
+GLIBC_2.3 wcsstr F
+GLIBC_2.3 wcstod F
+GLIBC_2.3 wcstod_l F
+GLIBC_2.3 wcstof F
+GLIBC_2.3 wcstof_l F
+GLIBC_2.3 wcstoimax F
+GLIBC_2.3 wcstok F
+GLIBC_2.3 wcstol F
+GLIBC_2.3 wcstol_l F
+GLIBC_2.3 wcstold F
+GLIBC_2.3 wcstold_l F
+GLIBC_2.3 wcstoll F
+GLIBC_2.3 wcstoll_l F
+GLIBC_2.3 wcstombs F
+GLIBC_2.3 wcstoq F
+GLIBC_2.3 wcstoul F
+GLIBC_2.3 wcstoul_l F
+GLIBC_2.3 wcstoull F
+GLIBC_2.3 wcstoull_l F
+GLIBC_2.3 wcstoumax F
+GLIBC_2.3 wcstouq F
+GLIBC_2.3 wcswcs F
+GLIBC_2.3 wcswidth F
+GLIBC_2.3 wcsxfrm F
+GLIBC_2.3 wcsxfrm_l F
+GLIBC_2.3 wctob F
+GLIBC_2.3 wctomb F
+GLIBC_2.3 wctrans F
+GLIBC_2.3 wctrans_l F
+GLIBC_2.3 wctype F
+GLIBC_2.3 wctype_l F
+GLIBC_2.3 wcwidth F
+GLIBC_2.3 wmemchr F
+GLIBC_2.3 wmemcmp F
+GLIBC_2.3 wmemcpy F
+GLIBC_2.3 wmemmove F
+GLIBC_2.3 wmempcpy F
+GLIBC_2.3 wmemset F
+GLIBC_2.3 wordexp F
+GLIBC_2.3 wordfree F
+GLIBC_2.3 wprintf F
+GLIBC_2.3 write F
+GLIBC_2.3 writev F
+GLIBC_2.3 wscanf F
+GLIBC_2.3 xdecrypt F
+GLIBC_2.3 xdr_accepted_reply F
+GLIBC_2.3 xdr_array F
+GLIBC_2.3 xdr_authdes_cred F
+GLIBC_2.3 xdr_authdes_verf F
+GLIBC_2.3 xdr_authunix_parms F
+GLIBC_2.3 xdr_bool F
+GLIBC_2.3 xdr_bytes F
+GLIBC_2.3 xdr_callhdr F
+GLIBC_2.3 xdr_callmsg F
+GLIBC_2.3 xdr_char F
+GLIBC_2.3 xdr_cryptkeyarg F
+GLIBC_2.3 xdr_cryptkeyarg2 F
+GLIBC_2.3 xdr_cryptkeyres F
+GLIBC_2.3 xdr_des_block F
+GLIBC_2.3 xdr_double F
+GLIBC_2.3 xdr_enum F
+GLIBC_2.3 xdr_float F
+GLIBC_2.3 xdr_free F
+GLIBC_2.3 xdr_getcredres F
+GLIBC_2.3 xdr_hyper F
+GLIBC_2.3 xdr_int F
+GLIBC_2.3 xdr_int16_t F
+GLIBC_2.3 xdr_int32_t F
+GLIBC_2.3 xdr_int64_t F
+GLIBC_2.3 xdr_int8_t F
+GLIBC_2.3 xdr_key_netstarg F
+GLIBC_2.3 xdr_key_netstres F
+GLIBC_2.3 xdr_keybuf F
+GLIBC_2.3 xdr_keystatus F
+GLIBC_2.3 xdr_long F
+GLIBC_2.3 xdr_longlong_t F
+GLIBC_2.3 xdr_netnamestr F
+GLIBC_2.3 xdr_netobj F
+GLIBC_2.3 xdr_opaque F
+GLIBC_2.3 xdr_opaque_auth F
+GLIBC_2.3 xdr_pmap F
+GLIBC_2.3 xdr_pmaplist F
+GLIBC_2.3 xdr_pointer F
+GLIBC_2.3 xdr_reference F
+GLIBC_2.3 xdr_rejected_reply F
+GLIBC_2.3 xdr_replymsg F
+GLIBC_2.3 xdr_rmtcall_args F
+GLIBC_2.3 xdr_rmtcallres F
+GLIBC_2.3 xdr_short F
+GLIBC_2.3 xdr_sizeof F
+GLIBC_2.3 xdr_string F
+GLIBC_2.3 xdr_u_char F
+GLIBC_2.3 xdr_u_hyper F
+GLIBC_2.3 xdr_u_int F
+GLIBC_2.3 xdr_u_long F
+GLIBC_2.3 xdr_u_longlong_t F
+GLIBC_2.3 xdr_u_short F
+GLIBC_2.3 xdr_uint16_t F
+GLIBC_2.3 xdr_uint32_t F
+GLIBC_2.3 xdr_uint64_t F
+GLIBC_2.3 xdr_uint8_t F
+GLIBC_2.3 xdr_union F
+GLIBC_2.3 xdr_unixcred F
+GLIBC_2.3 xdr_vector F
+GLIBC_2.3 xdr_void F
+GLIBC_2.3 xdr_wrapstring F
+GLIBC_2.3 xdrmem_create F
+GLIBC_2.3 xdrrec_create F
+GLIBC_2.3 xdrrec_endofrecord F
+GLIBC_2.3 xdrrec_eof F
+GLIBC_2.3 xdrrec_skiprecord F
+GLIBC_2.3 xdrstdio_create F
+GLIBC_2.3 xencrypt F
+GLIBC_2.3 xprt_register F
+GLIBC_2.3 xprt_unregister 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 0x208
+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 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 strtoll_l F
+GLIBC_2.3.3 strtoull_l F
+GLIBC_2.3.3 sys_sigabbrev D 0x208
+GLIBC_2.3.3 sys_siglist D 0x208
+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 __sigsetjmp 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 _longjmp F
+GLIBC_2.3.4 _setjmp F
+GLIBC_2.3.4 getcontext F
+GLIBC_2.3.4 getipv4sourcefilter F
+GLIBC_2.3.4 getsourcefilter F
+GLIBC_2.3.4 longjmp 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 setcontext F
+GLIBC_2.3.4 setipv4sourcefilter F
+GLIBC_2.3.4 setjmp F
+GLIBC_2.3.4 setsourcefilter F
+GLIBC_2.3.4 siglongjmp F
+GLIBC_2.3.4 swapcontext 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 0x420
+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 0x420
+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 inotify_init1 F
+GLIBC_2.9 pipe2 F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libcrypt-le.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libcrypt-le.abilist
new file mode 100644
index 0000000000..58944b3d83
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libcrypt-le.abilist
@@ -0,0 +1,8 @@
+GLIBC_2.17 GLIBC_2.17 A
+GLIBC_2.17 crypt F
+GLIBC_2.17 crypt_r F
+GLIBC_2.17 encrypt F
+GLIBC_2.17 encrypt_r F
+GLIBC_2.17 fcrypt F
+GLIBC_2.17 setkey F
+GLIBC_2.17 setkey_r F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libcrypt.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libcrypt.abilist
new file mode 100644
index 0000000000..52cf1ac766
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libcrypt.abilist
@@ -0,0 +1,8 @@
+GLIBC_2.3 GLIBC_2.3 A
+GLIBC_2.3 crypt F
+GLIBC_2.3 crypt_r F
+GLIBC_2.3 encrypt F
+GLIBC_2.3 encrypt_r F
+GLIBC_2.3 fcrypt F
+GLIBC_2.3 setkey F
+GLIBC_2.3 setkey_r F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libdl-le.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libdl-le.abilist
new file mode 100644
index 0000000000..1b4b1f77ed
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libdl-le.abilist
@@ -0,0 +1,10 @@
+GLIBC_2.17 GLIBC_2.17 A
+GLIBC_2.17 dladdr F
+GLIBC_2.17 dladdr1 F
+GLIBC_2.17 dlclose F
+GLIBC_2.17 dlerror F
+GLIBC_2.17 dlinfo F
+GLIBC_2.17 dlmopen F
+GLIBC_2.17 dlopen F
+GLIBC_2.17 dlsym F
+GLIBC_2.17 dlvsym F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libdl.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libdl.abilist
new file mode 100644
index 0000000000..764ddc1c19
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libdl.abilist
@@ -0,0 +1,12 @@
+GLIBC_2.3 GLIBC_2.3 A
+GLIBC_2.3 dladdr F
+GLIBC_2.3 dlclose F
+GLIBC_2.3 dlerror F
+GLIBC_2.3 dlopen F
+GLIBC_2.3 dlsym F
+GLIBC_2.3 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/powerpc/powerpc64/libm-le.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libm-le.abilist
new file mode 100644
index 0000000000..9658ded223
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libm-le.abilist
@@ -0,0 +1,469 @@
+GLIBC_2.17 GLIBC_2.17 A
+GLIBC_2.17 _LIB_VERSION D 0x4
+GLIBC_2.17 __acos_finite F
+GLIBC_2.17 __acosf_finite F
+GLIBC_2.17 __acosh_finite F
+GLIBC_2.17 __acoshf_finite F
+GLIBC_2.17 __acoshl_finite F
+GLIBC_2.17 __acosl_finite F
+GLIBC_2.17 __asin_finite F
+GLIBC_2.17 __asinf_finite F
+GLIBC_2.17 __asinl_finite F
+GLIBC_2.17 __atan2_finite F
+GLIBC_2.17 __atan2f_finite F
+GLIBC_2.17 __atan2l_finite F
+GLIBC_2.17 __atanh_finite F
+GLIBC_2.17 __atanhf_finite F
+GLIBC_2.17 __atanhl_finite F
+GLIBC_2.17 __clog10 F
+GLIBC_2.17 __clog10f F
+GLIBC_2.17 __clog10l F
+GLIBC_2.17 __cosh_finite F
+GLIBC_2.17 __coshf_finite F
+GLIBC_2.17 __coshl_finite F
+GLIBC_2.17 __exp10_finite F
+GLIBC_2.17 __exp10f_finite F
+GLIBC_2.17 __exp10l_finite F
+GLIBC_2.17 __exp2_finite F
+GLIBC_2.17 __exp2f_finite F
+GLIBC_2.17 __exp2l_finite F
+GLIBC_2.17 __exp_finite F
+GLIBC_2.17 __expf_finite F
+GLIBC_2.17 __expl_finite F
+GLIBC_2.17 __fe_dfl_env D 0x8
+GLIBC_2.17 __fe_enabled_env D 0x8
+GLIBC_2.17 __fe_nomask_env F
+GLIBC_2.17 __fe_nonieee_env D 0x8
+GLIBC_2.17 __finite F
+GLIBC_2.17 __finitef F
+GLIBC_2.17 __finitel F
+GLIBC_2.17 __fmod_finite F
+GLIBC_2.17 __fmodf_finite F
+GLIBC_2.17 __fmodl_finite F
+GLIBC_2.17 __fpclassify F
+GLIBC_2.17 __fpclassifyf F
+GLIBC_2.17 __fpclassifyl F
+GLIBC_2.17 __gamma_r_finite F
+GLIBC_2.17 __gammaf_r_finite F
+GLIBC_2.17 __gammal_r_finite F
+GLIBC_2.17 __hypot_finite F
+GLIBC_2.17 __hypotf_finite F
+GLIBC_2.17 __hypotl_finite F
+GLIBC_2.17 __j0_finite F
+GLIBC_2.17 __j0f_finite F
+GLIBC_2.17 __j0l_finite F
+GLIBC_2.17 __j1_finite F
+GLIBC_2.17 __j1f_finite F
+GLIBC_2.17 __j1l_finite F
+GLIBC_2.17 __jn_finite F
+GLIBC_2.17 __jnf_finite F
+GLIBC_2.17 __jnl_finite F
+GLIBC_2.17 __lgamma_r_finite F
+GLIBC_2.17 __lgammaf_r_finite F
+GLIBC_2.17 __lgammal_r_finite F
+GLIBC_2.17 __log10_finite F
+GLIBC_2.17 __log10f_finite F
+GLIBC_2.17 __log10l_finite F
+GLIBC_2.17 __log2_finite F
+GLIBC_2.17 __log2f_finite F
+GLIBC_2.17 __log2l_finite F
+GLIBC_2.17 __log_finite F
+GLIBC_2.17 __logf_finite F
+GLIBC_2.17 __logl_finite F
+GLIBC_2.17 __nldbl_nexttowardf F
+GLIBC_2.17 __pow_finite F
+GLIBC_2.17 __powf_finite F
+GLIBC_2.17 __powl_finite F
+GLIBC_2.17 __remainder_finite F
+GLIBC_2.17 __remainderf_finite F
+GLIBC_2.17 __remainderl_finite F
+GLIBC_2.17 __scalb_finite F
+GLIBC_2.17 __scalbf_finite F
+GLIBC_2.17 __scalbl_finite F
+GLIBC_2.17 __signbit F
+GLIBC_2.17 __signbitf F
+GLIBC_2.17 __signbitl F
+GLIBC_2.17 __sinh_finite F
+GLIBC_2.17 __sinhf_finite F
+GLIBC_2.17 __sinhl_finite F
+GLIBC_2.17 __sqrt_finite F
+GLIBC_2.17 __sqrtf_finite F
+GLIBC_2.17 __sqrtl_finite F
+GLIBC_2.17 __y0_finite F
+GLIBC_2.17 __y0f_finite F
+GLIBC_2.17 __y0l_finite F
+GLIBC_2.17 __y1_finite F
+GLIBC_2.17 __y1f_finite F
+GLIBC_2.17 __y1l_finite F
+GLIBC_2.17 __yn_finite F
+GLIBC_2.17 __ynf_finite F
+GLIBC_2.17 __ynl_finite F
+GLIBC_2.17 acos F
+GLIBC_2.17 acosf F
+GLIBC_2.17 acosh F
+GLIBC_2.17 acoshf F
+GLIBC_2.17 acoshl F
+GLIBC_2.17 acosl F
+GLIBC_2.17 asin F
+GLIBC_2.17 asinf F
+GLIBC_2.17 asinh F
+GLIBC_2.17 asinhf F
+GLIBC_2.17 asinhl F
+GLIBC_2.17 asinl F
+GLIBC_2.17 atan F
+GLIBC_2.17 atan2 F
+GLIBC_2.17 atan2f F
+GLIBC_2.17 atan2l F
+GLIBC_2.17 atanf F
+GLIBC_2.17 atanh F
+GLIBC_2.17 atanhf F
+GLIBC_2.17 atanhl F
+GLIBC_2.17 atanl F
+GLIBC_2.17 cabs F
+GLIBC_2.17 cabsf F
+GLIBC_2.17 cabsl F
+GLIBC_2.17 cacos F
+GLIBC_2.17 cacosf F
+GLIBC_2.17 cacosh F
+GLIBC_2.17 cacoshf F
+GLIBC_2.17 cacoshl F
+GLIBC_2.17 cacosl F
+GLIBC_2.17 carg F
+GLIBC_2.17 cargf F
+GLIBC_2.17 cargl F
+GLIBC_2.17 casin F
+GLIBC_2.17 casinf F
+GLIBC_2.17 casinh F
+GLIBC_2.17 casinhf F
+GLIBC_2.17 casinhl F
+GLIBC_2.17 casinl F
+GLIBC_2.17 catan F
+GLIBC_2.17 catanf F
+GLIBC_2.17 catanh F
+GLIBC_2.17 catanhf F
+GLIBC_2.17 catanhl F
+GLIBC_2.17 catanl F
+GLIBC_2.17 cbrt F
+GLIBC_2.17 cbrtf F
+GLIBC_2.17 cbrtl F
+GLIBC_2.17 ccos F
+GLIBC_2.17 ccosf F
+GLIBC_2.17 ccosh F
+GLIBC_2.17 ccoshf F
+GLIBC_2.17 ccoshl F
+GLIBC_2.17 ccosl F
+GLIBC_2.17 ceil F
+GLIBC_2.17 ceilf F
+GLIBC_2.17 ceill F
+GLIBC_2.17 cexp F
+GLIBC_2.17 cexpf F
+GLIBC_2.17 cexpl F
+GLIBC_2.17 cimag F
+GLIBC_2.17 cimagf F
+GLIBC_2.17 cimagl F
+GLIBC_2.17 clog F
+GLIBC_2.17 clog10 F
+GLIBC_2.17 clog10f F
+GLIBC_2.17 clog10l F
+GLIBC_2.17 clogf F
+GLIBC_2.17 clogl F
+GLIBC_2.17 conj F
+GLIBC_2.17 conjf F
+GLIBC_2.17 conjl F
+GLIBC_2.17 copysign F
+GLIBC_2.17 copysignf F
+GLIBC_2.17 copysignl F
+GLIBC_2.17 cos F
+GLIBC_2.17 cosf F
+GLIBC_2.17 cosh F
+GLIBC_2.17 coshf F
+GLIBC_2.17 coshl F
+GLIBC_2.17 cosl F
+GLIBC_2.17 cpow F
+GLIBC_2.17 cpowf F
+GLIBC_2.17 cpowl F
+GLIBC_2.17 cproj F
+GLIBC_2.17 cprojf F
+GLIBC_2.17 cprojl F
+GLIBC_2.17 creal F
+GLIBC_2.17 crealf F
+GLIBC_2.17 creall F
+GLIBC_2.17 csin F
+GLIBC_2.17 csinf F
+GLIBC_2.17 csinh F
+GLIBC_2.17 csinhf F
+GLIBC_2.17 csinhl F
+GLIBC_2.17 csinl F
+GLIBC_2.17 csqrt F
+GLIBC_2.17 csqrtf F
+GLIBC_2.17 csqrtl F
+GLIBC_2.17 ctan F
+GLIBC_2.17 ctanf F
+GLIBC_2.17 ctanh F
+GLIBC_2.17 ctanhf F
+GLIBC_2.17 ctanhl F
+GLIBC_2.17 ctanl F
+GLIBC_2.17 drem F
+GLIBC_2.17 dremf F
+GLIBC_2.17 dreml F
+GLIBC_2.17 erf F
+GLIBC_2.17 erfc F
+GLIBC_2.17 erfcf F
+GLIBC_2.17 erfcl F
+GLIBC_2.17 erff F
+GLIBC_2.17 erfl F
+GLIBC_2.17 exp F
+GLIBC_2.17 exp10 F
+GLIBC_2.17 exp10f F
+GLIBC_2.17 exp10l F
+GLIBC_2.17 exp2 F
+GLIBC_2.17 exp2f F
+GLIBC_2.17 exp2l F
+GLIBC_2.17 expf F
+GLIBC_2.17 expl F
+GLIBC_2.17 expm1 F
+GLIBC_2.17 expm1f F
+GLIBC_2.17 expm1l F
+GLIBC_2.17 fabs F
+GLIBC_2.17 fabsf F
+GLIBC_2.17 fabsl F
+GLIBC_2.17 fdim F
+GLIBC_2.17 fdimf F
+GLIBC_2.17 fdiml F
+GLIBC_2.17 feclearexcept F
+GLIBC_2.17 fedisableexcept F
+GLIBC_2.17 feenableexcept F
+GLIBC_2.17 fegetenv F
+GLIBC_2.17 fegetexcept F
+GLIBC_2.17 fegetexceptflag F
+GLIBC_2.17 fegetround F
+GLIBC_2.17 feholdexcept F
+GLIBC_2.17 feraiseexcept F
+GLIBC_2.17 fesetenv F
+GLIBC_2.17 fesetexceptflag F
+GLIBC_2.17 fesetround F
+GLIBC_2.17 fetestexcept F
+GLIBC_2.17 feupdateenv F
+GLIBC_2.17 finite F
+GLIBC_2.17 finitef F
+GLIBC_2.17 finitel F
+GLIBC_2.17 floor F
+GLIBC_2.17 floorf F
+GLIBC_2.17 floorl F
+GLIBC_2.17 fma F
+GLIBC_2.17 fmaf F
+GLIBC_2.17 fmal F
+GLIBC_2.17 fmax F
+GLIBC_2.17 fmaxf F
+GLIBC_2.17 fmaxl F
+GLIBC_2.17 fmin F
+GLIBC_2.17 fminf F
+GLIBC_2.17 fminl F
+GLIBC_2.17 fmod F
+GLIBC_2.17 fmodf F
+GLIBC_2.17 fmodl F
+GLIBC_2.17 frexp F
+GLIBC_2.17 frexpf F
+GLIBC_2.17 frexpl F
+GLIBC_2.17 gamma F
+GLIBC_2.17 gammaf F
+GLIBC_2.17 gammal F
+GLIBC_2.17 hypot F
+GLIBC_2.17 hypotf F
+GLIBC_2.17 hypotl F
+GLIBC_2.17 ilogb F
+GLIBC_2.17 ilogbf F
+GLIBC_2.17 ilogbl F
+GLIBC_2.17 j0 F
+GLIBC_2.17 j0f F
+GLIBC_2.17 j0l F
+GLIBC_2.17 j1 F
+GLIBC_2.17 j1f F
+GLIBC_2.17 j1l F
+GLIBC_2.17 jn F
+GLIBC_2.17 jnf F
+GLIBC_2.17 jnl F
+GLIBC_2.17 ldexp F
+GLIBC_2.17 ldexpf F
+GLIBC_2.17 ldexpl F
+GLIBC_2.17 lgamma F
+GLIBC_2.17 lgamma_r F
+GLIBC_2.17 lgammaf F
+GLIBC_2.17 lgammaf_r F
+GLIBC_2.17 lgammal F
+GLIBC_2.17 lgammal_r F
+GLIBC_2.17 llrint F
+GLIBC_2.17 llrintf F
+GLIBC_2.17 llrintl F
+GLIBC_2.17 llround F
+GLIBC_2.17 llroundf F
+GLIBC_2.17 llroundl F
+GLIBC_2.17 log F
+GLIBC_2.17 log10 F
+GLIBC_2.17 log10f F
+GLIBC_2.17 log10l F
+GLIBC_2.17 log1p F
+GLIBC_2.17 log1pf F
+GLIBC_2.17 log1pl F
+GLIBC_2.17 log2 F
+GLIBC_2.17 log2f F
+GLIBC_2.17 log2l F
+GLIBC_2.17 logb F
+GLIBC_2.17 logbf F
+GLIBC_2.17 logbl F
+GLIBC_2.17 logf F
+GLIBC_2.17 logl F
+GLIBC_2.17 lrint F
+GLIBC_2.17 lrintf F
+GLIBC_2.17 lrintl F
+GLIBC_2.17 lround F
+GLIBC_2.17 lroundf F
+GLIBC_2.17 lroundl F
+GLIBC_2.17 matherr F
+GLIBC_2.17 modf F
+GLIBC_2.17 modff F
+GLIBC_2.17 modfl F
+GLIBC_2.17 nan F
+GLIBC_2.17 nanf F
+GLIBC_2.17 nanl F
+GLIBC_2.17 nearbyint F
+GLIBC_2.17 nearbyintf F
+GLIBC_2.17 nearbyintl F
+GLIBC_2.17 nextafter F
+GLIBC_2.17 nextafterf F
+GLIBC_2.17 nextafterl F
+GLIBC_2.17 nexttoward F
+GLIBC_2.17 nexttowardf F
+GLIBC_2.17 nexttowardl F
+GLIBC_2.17 pow F
+GLIBC_2.17 pow10 F
+GLIBC_2.17 pow10f F
+GLIBC_2.17 pow10l F
+GLIBC_2.17 powf F
+GLIBC_2.17 powl F
+GLIBC_2.17 remainder F
+GLIBC_2.17 remainderf F
+GLIBC_2.17 remainderl F
+GLIBC_2.17 remquo F
+GLIBC_2.17 remquof F
+GLIBC_2.17 remquol F
+GLIBC_2.17 rint F
+GLIBC_2.17 rintf F
+GLIBC_2.17 rintl F
+GLIBC_2.17 round F
+GLIBC_2.17 roundf F
+GLIBC_2.17 roundl F
+GLIBC_2.17 scalb F
+GLIBC_2.17 scalbf F
+GLIBC_2.17 scalbl F
+GLIBC_2.17 scalbln F
+GLIBC_2.17 scalblnf F
+GLIBC_2.17 scalblnl F
+GLIBC_2.17 scalbn F
+GLIBC_2.17 scalbnf F
+GLIBC_2.17 scalbnl F
+GLIBC_2.17 signgam D 0x4
+GLIBC_2.17 significand F
+GLIBC_2.17 significandf F
+GLIBC_2.17 significandl F
+GLIBC_2.17 sin F
+GLIBC_2.17 sincos F
+GLIBC_2.17 sincosf F
+GLIBC_2.17 sincosl F
+GLIBC_2.17 sinf F
+GLIBC_2.17 sinh F
+GLIBC_2.17 sinhf F
+GLIBC_2.17 sinhl F
+GLIBC_2.17 sinl F
+GLIBC_2.17 sqrt F
+GLIBC_2.17 sqrtf F
+GLIBC_2.17 sqrtl F
+GLIBC_2.17 tan F
+GLIBC_2.17 tanf F
+GLIBC_2.17 tanh F
+GLIBC_2.17 tanhf F
+GLIBC_2.17 tanhl F
+GLIBC_2.17 tanl F
+GLIBC_2.17 tgamma F
+GLIBC_2.17 tgammaf F
+GLIBC_2.17 tgammal F
+GLIBC_2.17 trunc F
+GLIBC_2.17 truncf F
+GLIBC_2.17 truncl F
+GLIBC_2.17 y0 F
+GLIBC_2.17 y0f F
+GLIBC_2.17 y0l F
+GLIBC_2.17 y1 F
+GLIBC_2.17 y1f F
+GLIBC_2.17 y1l F
+GLIBC_2.17 yn F
+GLIBC_2.17 ynf F
+GLIBC_2.17 ynl F
+GLIBC_2.18 GLIBC_2.18 A
+GLIBC_2.18 __issignaling F
+GLIBC_2.18 __issignalingf F
+GLIBC_2.18 __issignalingl F
+GLIBC_2.23 GLIBC_2.23 A
+GLIBC_2.23 __signgam D 0x4
+GLIBC_2.23 lgamma F
+GLIBC_2.23 lgammaf F
+GLIBC_2.23 lgammal F
+GLIBC_2.24 GLIBC_2.24 A
+GLIBC_2.24 nextdown F
+GLIBC_2.24 nextdownf F
+GLIBC_2.24 nextdownl F
+GLIBC_2.24 nextup F
+GLIBC_2.24 nextupf F
+GLIBC_2.24 nextupl F
+GLIBC_2.25 GLIBC_2.25 A
+GLIBC_2.25 __fe_dfl_mode D 0x8
+GLIBC_2.25 __iscanonicall F
+GLIBC_2.25 __iseqsig F
+GLIBC_2.25 __iseqsigf F
+GLIBC_2.25 __iseqsigl F
+GLIBC_2.25 canonicalize F
+GLIBC_2.25 canonicalizef F
+GLIBC_2.25 canonicalizel F
+GLIBC_2.25 fegetmode F
+GLIBC_2.25 fesetexcept F
+GLIBC_2.25 fesetmode F
+GLIBC_2.25 fetestexceptflag F
+GLIBC_2.25 fmaxmag F
+GLIBC_2.25 fmaxmagf F
+GLIBC_2.25 fmaxmagl F
+GLIBC_2.25 fminmag F
+GLIBC_2.25 fminmagf F
+GLIBC_2.25 fminmagl F
+GLIBC_2.25 fromfp F
+GLIBC_2.25 fromfpf F
+GLIBC_2.25 fromfpl F
+GLIBC_2.25 fromfpx F
+GLIBC_2.25 fromfpxf F
+GLIBC_2.25 fromfpxl F
+GLIBC_2.25 getpayload F
+GLIBC_2.25 getpayloadf F
+GLIBC_2.25 getpayloadl F
+GLIBC_2.25 llogb F
+GLIBC_2.25 llogbf F
+GLIBC_2.25 llogbl F
+GLIBC_2.25 roundeven F
+GLIBC_2.25 roundevenf F
+GLIBC_2.25 roundevenl F
+GLIBC_2.25 setpayload F
+GLIBC_2.25 setpayloadf F
+GLIBC_2.25 setpayloadl F
+GLIBC_2.25 setpayloadsig F
+GLIBC_2.25 setpayloadsigf F
+GLIBC_2.25 setpayloadsigl F
+GLIBC_2.25 totalorder F
+GLIBC_2.25 totalorderf F
+GLIBC_2.25 totalorderl F
+GLIBC_2.25 totalordermag F
+GLIBC_2.25 totalordermagf F
+GLIBC_2.25 totalordermagl F
+GLIBC_2.25 ufromfp F
+GLIBC_2.25 ufromfpf F
+GLIBC_2.25 ufromfpl F
+GLIBC_2.25 ufromfpx F
+GLIBC_2.25 ufromfpxf F
+GLIBC_2.25 ufromfpxl F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libm.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libm.abilist
new file mode 100644
index 0000000000..afd381791a
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libm.abilist
@@ -0,0 +1,569 @@
+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.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 __fe_dfl_mode D 0x8
+GLIBC_2.25 __iscanonicall F
+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.3 GLIBC_2.3 A
+GLIBC_2.3 _LIB_VERSION D 0x4
+GLIBC_2.3 __clog10 F
+GLIBC_2.3 __clog10f F
+GLIBC_2.3 __clog10l F
+GLIBC_2.3 __fe_dfl_env D 0x8
+GLIBC_2.3 __fe_enabled_env D 0x8
+GLIBC_2.3 __fe_nomask_env F
+GLIBC_2.3 __fe_nonieee_env D 0x8
+GLIBC_2.3 __finite F
+GLIBC_2.3 __finitef F
+GLIBC_2.3 __finitel F
+GLIBC_2.3 __fpclassify F
+GLIBC_2.3 __fpclassifyf F
+GLIBC_2.3 __signbit F
+GLIBC_2.3 __signbitf F
+GLIBC_2.3 acos F
+GLIBC_2.3 acosf F
+GLIBC_2.3 acosh F
+GLIBC_2.3 acoshf F
+GLIBC_2.3 acoshl F
+GLIBC_2.3 acosl F
+GLIBC_2.3 asin F
+GLIBC_2.3 asinf F
+GLIBC_2.3 asinh F
+GLIBC_2.3 asinhf F
+GLIBC_2.3 asinhl F
+GLIBC_2.3 asinl F
+GLIBC_2.3 atan F
+GLIBC_2.3 atan2 F
+GLIBC_2.3 atan2f F
+GLIBC_2.3 atan2l F
+GLIBC_2.3 atanf F
+GLIBC_2.3 atanh F
+GLIBC_2.3 atanhf F
+GLIBC_2.3 atanhl F
+GLIBC_2.3 atanl F
+GLIBC_2.3 cabs F
+GLIBC_2.3 cabsf F
+GLIBC_2.3 cabsl F
+GLIBC_2.3 cacos F
+GLIBC_2.3 cacosf F
+GLIBC_2.3 cacosh F
+GLIBC_2.3 cacoshf F
+GLIBC_2.3 cacoshl F
+GLIBC_2.3 cacosl F
+GLIBC_2.3 carg F
+GLIBC_2.3 cargf F
+GLIBC_2.3 cargl F
+GLIBC_2.3 casin F
+GLIBC_2.3 casinf F
+GLIBC_2.3 casinh F
+GLIBC_2.3 casinhf F
+GLIBC_2.3 casinhl F
+GLIBC_2.3 casinl F
+GLIBC_2.3 catan F
+GLIBC_2.3 catanf F
+GLIBC_2.3 catanh F
+GLIBC_2.3 catanhf F
+GLIBC_2.3 catanhl F
+GLIBC_2.3 catanl F
+GLIBC_2.3 cbrt F
+GLIBC_2.3 cbrtf F
+GLIBC_2.3 cbrtl F
+GLIBC_2.3 ccos F
+GLIBC_2.3 ccosf F
+GLIBC_2.3 ccosh F
+GLIBC_2.3 ccoshf F
+GLIBC_2.3 ccoshl F
+GLIBC_2.3 ccosl F
+GLIBC_2.3 ceil F
+GLIBC_2.3 ceilf F
+GLIBC_2.3 ceill F
+GLIBC_2.3 cexp F
+GLIBC_2.3 cexpf F
+GLIBC_2.3 cexpl F
+GLIBC_2.3 cimag F
+GLIBC_2.3 cimagf F
+GLIBC_2.3 cimagl F
+GLIBC_2.3 clog F
+GLIBC_2.3 clog10 F
+GLIBC_2.3 clog10f F
+GLIBC_2.3 clog10l F
+GLIBC_2.3 clogf F
+GLIBC_2.3 clogl F
+GLIBC_2.3 conj F
+GLIBC_2.3 conjf F
+GLIBC_2.3 conjl F
+GLIBC_2.3 copysign F
+GLIBC_2.3 copysignf F
+GLIBC_2.3 copysignl F
+GLIBC_2.3 cos F
+GLIBC_2.3 cosf F
+GLIBC_2.3 cosh F
+GLIBC_2.3 coshf F
+GLIBC_2.3 coshl F
+GLIBC_2.3 cosl F
+GLIBC_2.3 cpow F
+GLIBC_2.3 cpowf F
+GLIBC_2.3 cpowl F
+GLIBC_2.3 cproj F
+GLIBC_2.3 cprojf F
+GLIBC_2.3 cprojl F
+GLIBC_2.3 creal F
+GLIBC_2.3 crealf F
+GLIBC_2.3 creall F
+GLIBC_2.3 csin F
+GLIBC_2.3 csinf F
+GLIBC_2.3 csinh F
+GLIBC_2.3 csinhf F
+GLIBC_2.3 csinhl F
+GLIBC_2.3 csinl F
+GLIBC_2.3 csqrt F
+GLIBC_2.3 csqrtf F
+GLIBC_2.3 csqrtl F
+GLIBC_2.3 ctan F
+GLIBC_2.3 ctanf F
+GLIBC_2.3 ctanh F
+GLIBC_2.3 ctanhf F
+GLIBC_2.3 ctanhl F
+GLIBC_2.3 ctanl F
+GLIBC_2.3 drem F
+GLIBC_2.3 dremf F
+GLIBC_2.3 dreml F
+GLIBC_2.3 erf F
+GLIBC_2.3 erfc F
+GLIBC_2.3 erfcf F
+GLIBC_2.3 erfcl F
+GLIBC_2.3 erff F
+GLIBC_2.3 erfl F
+GLIBC_2.3 exp F
+GLIBC_2.3 exp10 F
+GLIBC_2.3 exp10f F
+GLIBC_2.3 exp10l F
+GLIBC_2.3 exp2 F
+GLIBC_2.3 exp2f F
+GLIBC_2.3 expf F
+GLIBC_2.3 expl F
+GLIBC_2.3 expm1 F
+GLIBC_2.3 expm1f F
+GLIBC_2.3 expm1l F
+GLIBC_2.3 fabs F
+GLIBC_2.3 fabsf F
+GLIBC_2.3 fabsl F
+GLIBC_2.3 fdim F
+GLIBC_2.3 fdimf F
+GLIBC_2.3 fdiml F
+GLIBC_2.3 feclearexcept F
+GLIBC_2.3 fedisableexcept F
+GLIBC_2.3 feenableexcept F
+GLIBC_2.3 fegetenv F
+GLIBC_2.3 fegetexcept F
+GLIBC_2.3 fegetexceptflag F
+GLIBC_2.3 fegetround F
+GLIBC_2.3 feholdexcept F
+GLIBC_2.3 feraiseexcept F
+GLIBC_2.3 fesetenv F
+GLIBC_2.3 fesetexceptflag F
+GLIBC_2.3 fesetround F
+GLIBC_2.3 fetestexcept F
+GLIBC_2.3 feupdateenv F
+GLIBC_2.3 finite F
+GLIBC_2.3 finitef F
+GLIBC_2.3 finitel F
+GLIBC_2.3 floor F
+GLIBC_2.3 floorf F
+GLIBC_2.3 floorl F
+GLIBC_2.3 fma F
+GLIBC_2.3 fmaf F
+GLIBC_2.3 fmal F
+GLIBC_2.3 fmax F
+GLIBC_2.3 fmaxf F
+GLIBC_2.3 fmaxl F
+GLIBC_2.3 fmin F
+GLIBC_2.3 fminf F
+GLIBC_2.3 fminl F
+GLIBC_2.3 fmod F
+GLIBC_2.3 fmodf F
+GLIBC_2.3 fmodl F
+GLIBC_2.3 frexp F
+GLIBC_2.3 frexpf F
+GLIBC_2.3 frexpl F
+GLIBC_2.3 gamma F
+GLIBC_2.3 gammaf F
+GLIBC_2.3 gammal F
+GLIBC_2.3 hypot F
+GLIBC_2.3 hypotf F
+GLIBC_2.3 hypotl F
+GLIBC_2.3 ilogb F
+GLIBC_2.3 ilogbf F
+GLIBC_2.3 ilogbl F
+GLIBC_2.3 j0 F
+GLIBC_2.3 j0f F
+GLIBC_2.3 j0l F
+GLIBC_2.3 j1 F
+GLIBC_2.3 j1f F
+GLIBC_2.3 j1l F
+GLIBC_2.3 jn F
+GLIBC_2.3 jnf F
+GLIBC_2.3 jnl F
+GLIBC_2.3 ldexp F
+GLIBC_2.3 ldexpf F
+GLIBC_2.3 ldexpl F
+GLIBC_2.3 lgamma F
+GLIBC_2.3 lgamma_r F
+GLIBC_2.3 lgammaf F
+GLIBC_2.3 lgammaf_r F
+GLIBC_2.3 lgammal F
+GLIBC_2.3 lgammal_r F
+GLIBC_2.3 llrint F
+GLIBC_2.3 llrintf F
+GLIBC_2.3 llrintl F
+GLIBC_2.3 llround F
+GLIBC_2.3 llroundf F
+GLIBC_2.3 llroundl F
+GLIBC_2.3 log F
+GLIBC_2.3 log10 F
+GLIBC_2.3 log10f F
+GLIBC_2.3 log10l F
+GLIBC_2.3 log1p F
+GLIBC_2.3 log1pf F
+GLIBC_2.3 log1pl F
+GLIBC_2.3 log2 F
+GLIBC_2.3 log2f F
+GLIBC_2.3 log2l F
+GLIBC_2.3 logb F
+GLIBC_2.3 logbf F
+GLIBC_2.3 logbl F
+GLIBC_2.3 logf F
+GLIBC_2.3 logl F
+GLIBC_2.3 lrint F
+GLIBC_2.3 lrintf F
+GLIBC_2.3 lrintl F
+GLIBC_2.3 lround F
+GLIBC_2.3 lroundf F
+GLIBC_2.3 lroundl F
+GLIBC_2.3 matherr F
+GLIBC_2.3 modf F
+GLIBC_2.3 modff F
+GLIBC_2.3 modfl F
+GLIBC_2.3 nan F
+GLIBC_2.3 nanf F
+GLIBC_2.3 nanl F
+GLIBC_2.3 nearbyint F
+GLIBC_2.3 nearbyintf F
+GLIBC_2.3 nearbyintl F
+GLIBC_2.3 nextafter F
+GLIBC_2.3 nextafterf F
+GLIBC_2.3 nextafterl F
+GLIBC_2.3 nexttoward F
+GLIBC_2.3 nexttowardf F
+GLIBC_2.3 nexttowardl F
+GLIBC_2.3 pow F
+GLIBC_2.3 pow10 F
+GLIBC_2.3 pow10f F
+GLIBC_2.3 pow10l F
+GLIBC_2.3 powf F
+GLIBC_2.3 powl F
+GLIBC_2.3 remainder F
+GLIBC_2.3 remainderf F
+GLIBC_2.3 remainderl F
+GLIBC_2.3 remquo F
+GLIBC_2.3 remquof F
+GLIBC_2.3 remquol F
+GLIBC_2.3 rint F
+GLIBC_2.3 rintf F
+GLIBC_2.3 rintl F
+GLIBC_2.3 round F
+GLIBC_2.3 roundf F
+GLIBC_2.3 roundl F
+GLIBC_2.3 scalb F
+GLIBC_2.3 scalbf F
+GLIBC_2.3 scalbl F
+GLIBC_2.3 scalbln F
+GLIBC_2.3 scalblnf F
+GLIBC_2.3 scalblnl F
+GLIBC_2.3 scalbn F
+GLIBC_2.3 scalbnf F
+GLIBC_2.3 scalbnl F
+GLIBC_2.3 signgam D 0x4
+GLIBC_2.3 significand F
+GLIBC_2.3 significandf F
+GLIBC_2.3 significandl F
+GLIBC_2.3 sin F
+GLIBC_2.3 sincos F
+GLIBC_2.3 sincosf F
+GLIBC_2.3 sincosl F
+GLIBC_2.3 sinf F
+GLIBC_2.3 sinh F
+GLIBC_2.3 sinhf F
+GLIBC_2.3 sinhl F
+GLIBC_2.3 sinl F
+GLIBC_2.3 sqrt F
+GLIBC_2.3 sqrtf F
+GLIBC_2.3 sqrtl F
+GLIBC_2.3 tan F
+GLIBC_2.3 tanf F
+GLIBC_2.3 tanh F
+GLIBC_2.3 tanhf F
+GLIBC_2.3 tanhl F
+GLIBC_2.3 tanl F
+GLIBC_2.3 tgamma F
+GLIBC_2.3 tgammaf F
+GLIBC_2.3 tgammal F
+GLIBC_2.3 trunc F
+GLIBC_2.3 truncf F
+GLIBC_2.3 truncl F
+GLIBC_2.3 y0 F
+GLIBC_2.3 y0f F
+GLIBC_2.3 y0l F
+GLIBC_2.3 y1 F
+GLIBC_2.3 y1f F
+GLIBC_2.3 y1l F
+GLIBC_2.3 yn F
+GLIBC_2.3 ynf F
+GLIBC_2.3 ynl 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/powerpc/powerpc64/libnsl-le.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libnsl-le.abilist
new file mode 100644
index 0000000000..63d47aef79
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libnsl-le.abilist
@@ -0,0 +1,122 @@
+GLIBC_2.17 GLIBC_2.17 A
+GLIBC_2.17 __free_fdresult F
+GLIBC_2.17 __nis_default_access F
+GLIBC_2.17 __nis_default_group F
+GLIBC_2.17 __nis_default_owner F
+GLIBC_2.17 __nis_default_ttl F
+GLIBC_2.17 __nis_finddirectory F
+GLIBC_2.17 __nis_hash F
+GLIBC_2.17 __nisbind_connect F
+GLIBC_2.17 __nisbind_create F
+GLIBC_2.17 __nisbind_destroy F
+GLIBC_2.17 __nisbind_next F
+GLIBC_2.17 __yp_check F
+GLIBC_2.17 nis_add F
+GLIBC_2.17 nis_add_entry F
+GLIBC_2.17 nis_addmember F
+GLIBC_2.17 nis_checkpoint F
+GLIBC_2.17 nis_clone_directory F
+GLIBC_2.17 nis_clone_object F
+GLIBC_2.17 nis_clone_result F
+GLIBC_2.17 nis_creategroup F
+GLIBC_2.17 nis_destroy_object F
+GLIBC_2.17 nis_destroygroup F
+GLIBC_2.17 nis_dir_cmp F
+GLIBC_2.17 nis_domain_of F
+GLIBC_2.17 nis_domain_of_r F
+GLIBC_2.17 nis_first_entry F
+GLIBC_2.17 nis_free_directory F
+GLIBC_2.17 nis_free_object F
+GLIBC_2.17 nis_free_request F
+GLIBC_2.17 nis_freenames F
+GLIBC_2.17 nis_freeresult F
+GLIBC_2.17 nis_freeservlist F
+GLIBC_2.17 nis_freetags F
+GLIBC_2.17 nis_getnames F
+GLIBC_2.17 nis_getservlist F
+GLIBC_2.17 nis_ismember F
+GLIBC_2.17 nis_leaf_of F
+GLIBC_2.17 nis_leaf_of_r F
+GLIBC_2.17 nis_lerror F
+GLIBC_2.17 nis_list F
+GLIBC_2.17 nis_local_directory F
+GLIBC_2.17 nis_local_group F
+GLIBC_2.17 nis_local_host F
+GLIBC_2.17 nis_local_principal F
+GLIBC_2.17 nis_lookup F
+GLIBC_2.17 nis_mkdir F
+GLIBC_2.17 nis_modify F
+GLIBC_2.17 nis_modify_entry F
+GLIBC_2.17 nis_name_of F
+GLIBC_2.17 nis_name_of_r F
+GLIBC_2.17 nis_next_entry F
+GLIBC_2.17 nis_perror F
+GLIBC_2.17 nis_ping F
+GLIBC_2.17 nis_print_directory F
+GLIBC_2.17 nis_print_entry F
+GLIBC_2.17 nis_print_group F
+GLIBC_2.17 nis_print_group_entry F
+GLIBC_2.17 nis_print_link F
+GLIBC_2.17 nis_print_object F
+GLIBC_2.17 nis_print_result F
+GLIBC_2.17 nis_print_rights F
+GLIBC_2.17 nis_print_table F
+GLIBC_2.17 nis_read_obj F
+GLIBC_2.17 nis_remove F
+GLIBC_2.17 nis_remove_entry F
+GLIBC_2.17 nis_removemember F
+GLIBC_2.17 nis_rmdir F
+GLIBC_2.17 nis_servstate F
+GLIBC_2.17 nis_sperrno F
+GLIBC_2.17 nis_sperror F
+GLIBC_2.17 nis_sperror_r F
+GLIBC_2.17 nis_stats F
+GLIBC_2.17 nis_verifygroup F
+GLIBC_2.17 nis_write_obj F
+GLIBC_2.17 readColdStartFile F
+GLIBC_2.17 writeColdStartFile F
+GLIBC_2.17 xdr_cback_data F
+GLIBC_2.17 xdr_domainname F
+GLIBC_2.17 xdr_keydat F
+GLIBC_2.17 xdr_mapname F
+GLIBC_2.17 xdr_obj_p F
+GLIBC_2.17 xdr_peername F
+GLIBC_2.17 xdr_valdat F
+GLIBC_2.17 xdr_yp_buf F
+GLIBC_2.17 xdr_ypall F
+GLIBC_2.17 xdr_ypbind_binding F
+GLIBC_2.17 xdr_ypbind_resp F
+GLIBC_2.17 xdr_ypbind_resptype F
+GLIBC_2.17 xdr_ypbind_setdom F
+GLIBC_2.17 xdr_ypdelete_args F
+GLIBC_2.17 xdr_ypmap_parms F
+GLIBC_2.17 xdr_ypmaplist F
+GLIBC_2.17 xdr_yppush_status F
+GLIBC_2.17 xdr_yppushresp_xfr F
+GLIBC_2.17 xdr_ypreq_key F
+GLIBC_2.17 xdr_ypreq_nokey F
+GLIBC_2.17 xdr_ypreq_xfr F
+GLIBC_2.17 xdr_ypresp_all F
+GLIBC_2.17 xdr_ypresp_key_val F
+GLIBC_2.17 xdr_ypresp_maplist F
+GLIBC_2.17 xdr_ypresp_master F
+GLIBC_2.17 xdr_ypresp_order F
+GLIBC_2.17 xdr_ypresp_val F
+GLIBC_2.17 xdr_ypresp_xfr F
+GLIBC_2.17 xdr_ypstat F
+GLIBC_2.17 xdr_ypupdate_args F
+GLIBC_2.17 xdr_ypxfrstat F
+GLIBC_2.17 yp_all F
+GLIBC_2.17 yp_bind F
+GLIBC_2.17 yp_first F
+GLIBC_2.17 yp_get_default_domain F
+GLIBC_2.17 yp_maplist F
+GLIBC_2.17 yp_master F
+GLIBC_2.17 yp_match F
+GLIBC_2.17 yp_next F
+GLIBC_2.17 yp_order F
+GLIBC_2.17 yp_unbind F
+GLIBC_2.17 yp_update F
+GLIBC_2.17 ypbinderr_string F
+GLIBC_2.17 yperr_string F
+GLIBC_2.17 ypprot_err F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libnsl.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libnsl.abilist
new file mode 100644
index 0000000000..23ef56053e
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libnsl.abilist
@@ -0,0 +1,122 @@
+GLIBC_2.3 GLIBC_2.3 A
+GLIBC_2.3 __free_fdresult F
+GLIBC_2.3 __nis_default_access F
+GLIBC_2.3 __nis_default_group F
+GLIBC_2.3 __nis_default_owner F
+GLIBC_2.3 __nis_default_ttl F
+GLIBC_2.3 __nis_finddirectory F
+GLIBC_2.3 __nis_hash F
+GLIBC_2.3 __nisbind_connect F
+GLIBC_2.3 __nisbind_create F
+GLIBC_2.3 __nisbind_destroy F
+GLIBC_2.3 __nisbind_next F
+GLIBC_2.3 __yp_check F
+GLIBC_2.3 nis_add F
+GLIBC_2.3 nis_add_entry F
+GLIBC_2.3 nis_addmember F
+GLIBC_2.3 nis_checkpoint F
+GLIBC_2.3 nis_clone_directory F
+GLIBC_2.3 nis_clone_object F
+GLIBC_2.3 nis_clone_result F
+GLIBC_2.3 nis_creategroup F
+GLIBC_2.3 nis_destroy_object F
+GLIBC_2.3 nis_destroygroup F
+GLIBC_2.3 nis_dir_cmp F
+GLIBC_2.3 nis_domain_of F
+GLIBC_2.3 nis_domain_of_r F
+GLIBC_2.3 nis_first_entry F
+GLIBC_2.3 nis_free_directory F
+GLIBC_2.3 nis_free_object F
+GLIBC_2.3 nis_free_request F
+GLIBC_2.3 nis_freenames F
+GLIBC_2.3 nis_freeresult F
+GLIBC_2.3 nis_freeservlist F
+GLIBC_2.3 nis_freetags F
+GLIBC_2.3 nis_getnames F
+GLIBC_2.3 nis_getservlist F
+GLIBC_2.3 nis_ismember F
+GLIBC_2.3 nis_leaf_of F
+GLIBC_2.3 nis_leaf_of_r F
+GLIBC_2.3 nis_lerror F
+GLIBC_2.3 nis_list F
+GLIBC_2.3 nis_local_directory F
+GLIBC_2.3 nis_local_group F
+GLIBC_2.3 nis_local_host F
+GLIBC_2.3 nis_local_principal F
+GLIBC_2.3 nis_lookup F
+GLIBC_2.3 nis_mkdir F
+GLIBC_2.3 nis_modify F
+GLIBC_2.3 nis_modify_entry F
+GLIBC_2.3 nis_name_of F
+GLIBC_2.3 nis_name_of_r F
+GLIBC_2.3 nis_next_entry F
+GLIBC_2.3 nis_perror F
+GLIBC_2.3 nis_ping F
+GLIBC_2.3 nis_print_directory F
+GLIBC_2.3 nis_print_entry F
+GLIBC_2.3 nis_print_group F
+GLIBC_2.3 nis_print_group_entry F
+GLIBC_2.3 nis_print_link F
+GLIBC_2.3 nis_print_object F
+GLIBC_2.3 nis_print_result F
+GLIBC_2.3 nis_print_rights F
+GLIBC_2.3 nis_print_table F
+GLIBC_2.3 nis_read_obj F
+GLIBC_2.3 nis_remove F
+GLIBC_2.3 nis_remove_entry F
+GLIBC_2.3 nis_removemember F
+GLIBC_2.3 nis_rmdir F
+GLIBC_2.3 nis_servstate F
+GLIBC_2.3 nis_sperrno F
+GLIBC_2.3 nis_sperror F
+GLIBC_2.3 nis_sperror_r F
+GLIBC_2.3 nis_stats F
+GLIBC_2.3 nis_verifygroup F
+GLIBC_2.3 nis_write_obj F
+GLIBC_2.3 readColdStartFile F
+GLIBC_2.3 writeColdStartFile F
+GLIBC_2.3 xdr_cback_data F
+GLIBC_2.3 xdr_domainname F
+GLIBC_2.3 xdr_keydat F
+GLIBC_2.3 xdr_mapname F
+GLIBC_2.3 xdr_obj_p F
+GLIBC_2.3 xdr_peername F
+GLIBC_2.3 xdr_valdat F
+GLIBC_2.3 xdr_yp_buf F
+GLIBC_2.3 xdr_ypall F
+GLIBC_2.3 xdr_ypbind_binding F
+GLIBC_2.3 xdr_ypbind_resp F
+GLIBC_2.3 xdr_ypbind_resptype F
+GLIBC_2.3 xdr_ypbind_setdom F
+GLIBC_2.3 xdr_ypdelete_args F
+GLIBC_2.3 xdr_ypmap_parms F
+GLIBC_2.3 xdr_ypmaplist F
+GLIBC_2.3 xdr_yppush_status F
+GLIBC_2.3 xdr_yppushresp_xfr F
+GLIBC_2.3 xdr_ypreq_key F
+GLIBC_2.3 xdr_ypreq_nokey F
+GLIBC_2.3 xdr_ypreq_xfr F
+GLIBC_2.3 xdr_ypresp_all F
+GLIBC_2.3 xdr_ypresp_key_val F
+GLIBC_2.3 xdr_ypresp_maplist F
+GLIBC_2.3 xdr_ypresp_master F
+GLIBC_2.3 xdr_ypresp_order F
+GLIBC_2.3 xdr_ypresp_val F
+GLIBC_2.3 xdr_ypresp_xfr F
+GLIBC_2.3 xdr_ypstat F
+GLIBC_2.3 xdr_ypupdate_args F
+GLIBC_2.3 xdr_ypxfrstat F
+GLIBC_2.3 yp_all F
+GLIBC_2.3 yp_bind F
+GLIBC_2.3 yp_first F
+GLIBC_2.3 yp_get_default_domain F
+GLIBC_2.3 yp_maplist F
+GLIBC_2.3 yp_master F
+GLIBC_2.3 yp_match F
+GLIBC_2.3 yp_next F
+GLIBC_2.3 yp_order F
+GLIBC_2.3 yp_unbind F
+GLIBC_2.3 yp_update F
+GLIBC_2.3 ypbinderr_string F
+GLIBC_2.3 yperr_string F
+GLIBC_2.3 ypprot_err F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libpthread-le.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libpthread-le.abilist
new file mode 100644
index 0000000000..0cf30ee02f
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libpthread-le.abilist
@@ -0,0 +1,226 @@
+GLIBC_2.17 GLIBC_2.17 A
+GLIBC_2.17 _IO_flockfile F
+GLIBC_2.17 _IO_ftrylockfile F
+GLIBC_2.17 _IO_funlockfile F
+GLIBC_2.17 __close F
+GLIBC_2.17 __connect F
+GLIBC_2.17 __errno_location F
+GLIBC_2.17 __fcntl F
+GLIBC_2.17 __fork F
+GLIBC_2.17 __h_errno_location F
+GLIBC_2.17 __libc_allocate_rtsig F
+GLIBC_2.17 __libc_current_sigrtmax F
+GLIBC_2.17 __libc_current_sigrtmin F
+GLIBC_2.17 __lseek F
+GLIBC_2.17 __nanosleep F
+GLIBC_2.17 __open F
+GLIBC_2.17 __open64 F
+GLIBC_2.17 __pread64 F
+GLIBC_2.17 __pthread_cleanup_routine F
+GLIBC_2.17 __pthread_getspecific F
+GLIBC_2.17 __pthread_key_create F
+GLIBC_2.17 __pthread_mutex_destroy F
+GLIBC_2.17 __pthread_mutex_init F
+GLIBC_2.17 __pthread_mutex_lock F
+GLIBC_2.17 __pthread_mutex_trylock F
+GLIBC_2.17 __pthread_mutex_unlock F
+GLIBC_2.17 __pthread_mutexattr_destroy F
+GLIBC_2.17 __pthread_mutexattr_init F
+GLIBC_2.17 __pthread_mutexattr_settype F
+GLIBC_2.17 __pthread_once F
+GLIBC_2.17 __pthread_register_cancel F
+GLIBC_2.17 __pthread_register_cancel_defer F
+GLIBC_2.17 __pthread_rwlock_destroy F
+GLIBC_2.17 __pthread_rwlock_init F
+GLIBC_2.17 __pthread_rwlock_rdlock F
+GLIBC_2.17 __pthread_rwlock_tryrdlock F
+GLIBC_2.17 __pthread_rwlock_trywrlock F
+GLIBC_2.17 __pthread_rwlock_unlock F
+GLIBC_2.17 __pthread_rwlock_wrlock F
+GLIBC_2.17 __pthread_setspecific F
+GLIBC_2.17 __pthread_unregister_cancel F
+GLIBC_2.17 __pthread_unregister_cancel_restore F
+GLIBC_2.17 __pthread_unwind_next F
+GLIBC_2.17 __pwrite64 F
+GLIBC_2.17 __read F
+GLIBC_2.17 __res_state F
+GLIBC_2.17 __send F
+GLIBC_2.17 __sigaction F
+GLIBC_2.17 __vfork F
+GLIBC_2.17 __wait F
+GLIBC_2.17 __write F
+GLIBC_2.17 _pthread_cleanup_pop F
+GLIBC_2.17 _pthread_cleanup_pop_restore F
+GLIBC_2.17 _pthread_cleanup_push F
+GLIBC_2.17 _pthread_cleanup_push_defer F
+GLIBC_2.17 accept F
+GLIBC_2.17 close F
+GLIBC_2.17 connect F
+GLIBC_2.17 fcntl F
+GLIBC_2.17 flockfile F
+GLIBC_2.17 fork F
+GLIBC_2.17 fsync F
+GLIBC_2.17 ftrylockfile F
+GLIBC_2.17 funlockfile F
+GLIBC_2.17 longjmp F
+GLIBC_2.17 lseek F
+GLIBC_2.17 lseek64 F
+GLIBC_2.17 msync F
+GLIBC_2.17 nanosleep F
+GLIBC_2.17 open F
+GLIBC_2.17 open64 F
+GLIBC_2.17 pause F
+GLIBC_2.17 pread F
+GLIBC_2.17 pread64 F
+GLIBC_2.17 pthread_attr_destroy F
+GLIBC_2.17 pthread_attr_getaffinity_np F
+GLIBC_2.17 pthread_attr_getdetachstate F
+GLIBC_2.17 pthread_attr_getguardsize F
+GLIBC_2.17 pthread_attr_getinheritsched F
+GLIBC_2.17 pthread_attr_getschedparam F
+GLIBC_2.17 pthread_attr_getschedpolicy F
+GLIBC_2.17 pthread_attr_getscope F
+GLIBC_2.17 pthread_attr_getstack F
+GLIBC_2.17 pthread_attr_getstackaddr F
+GLIBC_2.17 pthread_attr_getstacksize F
+GLIBC_2.17 pthread_attr_init F
+GLIBC_2.17 pthread_attr_setaffinity_np F
+GLIBC_2.17 pthread_attr_setdetachstate F
+GLIBC_2.17 pthread_attr_setguardsize F
+GLIBC_2.17 pthread_attr_setinheritsched F
+GLIBC_2.17 pthread_attr_setschedparam F
+GLIBC_2.17 pthread_attr_setschedpolicy F
+GLIBC_2.17 pthread_attr_setscope F
+GLIBC_2.17 pthread_attr_setstack F
+GLIBC_2.17 pthread_attr_setstackaddr F
+GLIBC_2.17 pthread_attr_setstacksize F
+GLIBC_2.17 pthread_barrier_destroy F
+GLIBC_2.17 pthread_barrier_init F
+GLIBC_2.17 pthread_barrier_wait F
+GLIBC_2.17 pthread_barrierattr_destroy F
+GLIBC_2.17 pthread_barrierattr_getpshared F
+GLIBC_2.17 pthread_barrierattr_init F
+GLIBC_2.17 pthread_barrierattr_setpshared F
+GLIBC_2.17 pthread_cancel F
+GLIBC_2.17 pthread_cond_broadcast F
+GLIBC_2.17 pthread_cond_destroy F
+GLIBC_2.17 pthread_cond_init F
+GLIBC_2.17 pthread_cond_signal F
+GLIBC_2.17 pthread_cond_timedwait F
+GLIBC_2.17 pthread_cond_wait F
+GLIBC_2.17 pthread_condattr_destroy F
+GLIBC_2.17 pthread_condattr_getclock F
+GLIBC_2.17 pthread_condattr_getpshared F
+GLIBC_2.17 pthread_condattr_init F
+GLIBC_2.17 pthread_condattr_setclock F
+GLIBC_2.17 pthread_condattr_setpshared F
+GLIBC_2.17 pthread_create F
+GLIBC_2.17 pthread_detach F
+GLIBC_2.17 pthread_equal F
+GLIBC_2.17 pthread_exit F
+GLIBC_2.17 pthread_getaffinity_np F
+GLIBC_2.17 pthread_getattr_np F
+GLIBC_2.17 pthread_getconcurrency F
+GLIBC_2.17 pthread_getcpuclockid F
+GLIBC_2.17 pthread_getname_np F
+GLIBC_2.17 pthread_getschedparam F
+GLIBC_2.17 pthread_getspecific F
+GLIBC_2.17 pthread_join F
+GLIBC_2.17 pthread_key_create F
+GLIBC_2.17 pthread_key_delete F
+GLIBC_2.17 pthread_kill F
+GLIBC_2.17 pthread_kill_other_threads_np F
+GLIBC_2.17 pthread_mutex_consistent F
+GLIBC_2.17 pthread_mutex_consistent_np F
+GLIBC_2.17 pthread_mutex_destroy F
+GLIBC_2.17 pthread_mutex_getprioceiling F
+GLIBC_2.17 pthread_mutex_init F
+GLIBC_2.17 pthread_mutex_lock F
+GLIBC_2.17 pthread_mutex_setprioceiling F
+GLIBC_2.17 pthread_mutex_timedlock F
+GLIBC_2.17 pthread_mutex_trylock F
+GLIBC_2.17 pthread_mutex_unlock F
+GLIBC_2.17 pthread_mutexattr_destroy F
+GLIBC_2.17 pthread_mutexattr_getkind_np F
+GLIBC_2.17 pthread_mutexattr_getprioceiling F
+GLIBC_2.17 pthread_mutexattr_getprotocol F
+GLIBC_2.17 pthread_mutexattr_getpshared F
+GLIBC_2.17 pthread_mutexattr_getrobust F
+GLIBC_2.17 pthread_mutexattr_getrobust_np F
+GLIBC_2.17 pthread_mutexattr_gettype F
+GLIBC_2.17 pthread_mutexattr_init F
+GLIBC_2.17 pthread_mutexattr_setkind_np F
+GLIBC_2.17 pthread_mutexattr_setprioceiling F
+GLIBC_2.17 pthread_mutexattr_setprotocol F
+GLIBC_2.17 pthread_mutexattr_setpshared F
+GLIBC_2.17 pthread_mutexattr_setrobust F
+GLIBC_2.17 pthread_mutexattr_setrobust_np F
+GLIBC_2.17 pthread_mutexattr_settype F
+GLIBC_2.17 pthread_once F
+GLIBC_2.17 pthread_rwlock_destroy F
+GLIBC_2.17 pthread_rwlock_init F
+GLIBC_2.17 pthread_rwlock_rdlock F
+GLIBC_2.17 pthread_rwlock_timedrdlock F
+GLIBC_2.17 pthread_rwlock_timedwrlock F
+GLIBC_2.17 pthread_rwlock_tryrdlock F
+GLIBC_2.17 pthread_rwlock_trywrlock F
+GLIBC_2.17 pthread_rwlock_unlock F
+GLIBC_2.17 pthread_rwlock_wrlock F
+GLIBC_2.17 pthread_rwlockattr_destroy F
+GLIBC_2.17 pthread_rwlockattr_getkind_np F
+GLIBC_2.17 pthread_rwlockattr_getpshared F
+GLIBC_2.17 pthread_rwlockattr_init F
+GLIBC_2.17 pthread_rwlockattr_setkind_np F
+GLIBC_2.17 pthread_rwlockattr_setpshared F
+GLIBC_2.17 pthread_self F
+GLIBC_2.17 pthread_setaffinity_np F
+GLIBC_2.17 pthread_setcancelstate F
+GLIBC_2.17 pthread_setcanceltype F
+GLIBC_2.17 pthread_setconcurrency F
+GLIBC_2.17 pthread_setname_np F
+GLIBC_2.17 pthread_setschedparam F
+GLIBC_2.17 pthread_setschedprio F
+GLIBC_2.17 pthread_setspecific F
+GLIBC_2.17 pthread_sigmask F
+GLIBC_2.17 pthread_sigqueue F
+GLIBC_2.17 pthread_spin_destroy F
+GLIBC_2.17 pthread_spin_init F
+GLIBC_2.17 pthread_spin_lock F
+GLIBC_2.17 pthread_spin_trylock F
+GLIBC_2.17 pthread_spin_unlock F
+GLIBC_2.17 pthread_testcancel F
+GLIBC_2.17 pthread_timedjoin_np F
+GLIBC_2.17 pthread_tryjoin_np F
+GLIBC_2.17 pthread_yield F
+GLIBC_2.17 pwrite F
+GLIBC_2.17 pwrite64 F
+GLIBC_2.17 raise F
+GLIBC_2.17 read F
+GLIBC_2.17 recv F
+GLIBC_2.17 recvfrom F
+GLIBC_2.17 recvmsg F
+GLIBC_2.17 sem_close F
+GLIBC_2.17 sem_destroy F
+GLIBC_2.17 sem_getvalue F
+GLIBC_2.17 sem_init F
+GLIBC_2.17 sem_open F
+GLIBC_2.17 sem_post F
+GLIBC_2.17 sem_timedwait F
+GLIBC_2.17 sem_trywait F
+GLIBC_2.17 sem_unlink F
+GLIBC_2.17 sem_wait F
+GLIBC_2.17 send F
+GLIBC_2.17 sendmsg F
+GLIBC_2.17 sendto F
+GLIBC_2.17 sigaction F
+GLIBC_2.17 siglongjmp F
+GLIBC_2.17 sigwait F
+GLIBC_2.17 system F
+GLIBC_2.17 tcdrain F
+GLIBC_2.17 vfork F
+GLIBC_2.17 wait F
+GLIBC_2.17 waitpid F
+GLIBC_2.17 write F
+GLIBC_2.18 GLIBC_2.18 A
+GLIBC_2.18 pthread_getattr_default_np F
+GLIBC_2.18 pthread_setattr_default_np F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libpthread.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libpthread.abilist
new file mode 100644
index 0000000000..464b91a61d
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libpthread.abilist
@@ -0,0 +1,247 @@
+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.3 GLIBC_2.3 A
+GLIBC_2.3 _IO_flockfile F
+GLIBC_2.3 _IO_ftrylockfile F
+GLIBC_2.3 _IO_funlockfile F
+GLIBC_2.3 __close F
+GLIBC_2.3 __connect F
+GLIBC_2.3 __errno_location F
+GLIBC_2.3 __fcntl F
+GLIBC_2.3 __fork F
+GLIBC_2.3 __h_errno_location F
+GLIBC_2.3 __libc_allocate_rtsig F
+GLIBC_2.3 __libc_current_sigrtmax F
+GLIBC_2.3 __libc_current_sigrtmin F
+GLIBC_2.3 __lseek F
+GLIBC_2.3 __nanosleep F
+GLIBC_2.3 __open F
+GLIBC_2.3 __open64 F
+GLIBC_2.3 __pread64 F
+GLIBC_2.3 __pthread_getspecific F
+GLIBC_2.3 __pthread_key_create F
+GLIBC_2.3 __pthread_mutex_destroy F
+GLIBC_2.3 __pthread_mutex_init F
+GLIBC_2.3 __pthread_mutex_lock F
+GLIBC_2.3 __pthread_mutex_trylock F
+GLIBC_2.3 __pthread_mutex_unlock F
+GLIBC_2.3 __pthread_mutexattr_destroy F
+GLIBC_2.3 __pthread_mutexattr_init F
+GLIBC_2.3 __pthread_mutexattr_settype F
+GLIBC_2.3 __pthread_once F
+GLIBC_2.3 __pthread_rwlock_destroy F
+GLIBC_2.3 __pthread_rwlock_init F
+GLIBC_2.3 __pthread_rwlock_rdlock F
+GLIBC_2.3 __pthread_rwlock_tryrdlock F
+GLIBC_2.3 __pthread_rwlock_trywrlock F
+GLIBC_2.3 __pthread_rwlock_unlock F
+GLIBC_2.3 __pthread_rwlock_wrlock F
+GLIBC_2.3 __pthread_setspecific F
+GLIBC_2.3 __pwrite64 F
+GLIBC_2.3 __read F
+GLIBC_2.3 __res_state F
+GLIBC_2.3 __send F
+GLIBC_2.3 __sigaction F
+GLIBC_2.3 __vfork F
+GLIBC_2.3 __wait F
+GLIBC_2.3 __write F
+GLIBC_2.3 _pthread_cleanup_pop F
+GLIBC_2.3 _pthread_cleanup_pop_restore F
+GLIBC_2.3 _pthread_cleanup_push F
+GLIBC_2.3 _pthread_cleanup_push_defer F
+GLIBC_2.3 accept F
+GLIBC_2.3 close F
+GLIBC_2.3 connect F
+GLIBC_2.3 fcntl F
+GLIBC_2.3 flockfile F
+GLIBC_2.3 fork F
+GLIBC_2.3 fsync F
+GLIBC_2.3 ftrylockfile F
+GLIBC_2.3 funlockfile F
+GLIBC_2.3 longjmp F
+GLIBC_2.3 lseek F
+GLIBC_2.3 lseek64 F
+GLIBC_2.3 msync F
+GLIBC_2.3 nanosleep F
+GLIBC_2.3 open F
+GLIBC_2.3 open64 F
+GLIBC_2.3 pause F
+GLIBC_2.3 pread F
+GLIBC_2.3 pread64 F
+GLIBC_2.3 pthread_attr_destroy F
+GLIBC_2.3 pthread_attr_getdetachstate F
+GLIBC_2.3 pthread_attr_getguardsize F
+GLIBC_2.3 pthread_attr_getinheritsched F
+GLIBC_2.3 pthread_attr_getschedparam F
+GLIBC_2.3 pthread_attr_getschedpolicy F
+GLIBC_2.3 pthread_attr_getscope F
+GLIBC_2.3 pthread_attr_getstack F
+GLIBC_2.3 pthread_attr_getstackaddr F
+GLIBC_2.3 pthread_attr_getstacksize F
+GLIBC_2.3 pthread_attr_init F
+GLIBC_2.3 pthread_attr_setdetachstate F
+GLIBC_2.3 pthread_attr_setguardsize F
+GLIBC_2.3 pthread_attr_setinheritsched F
+GLIBC_2.3 pthread_attr_setschedparam F
+GLIBC_2.3 pthread_attr_setschedpolicy F
+GLIBC_2.3 pthread_attr_setscope F
+GLIBC_2.3 pthread_attr_setstack F
+GLIBC_2.3 pthread_attr_setstackaddr F
+GLIBC_2.3 pthread_attr_setstacksize F
+GLIBC_2.3 pthread_barrier_destroy F
+GLIBC_2.3 pthread_barrier_init F
+GLIBC_2.3 pthread_barrier_wait F
+GLIBC_2.3 pthread_barrierattr_destroy F
+GLIBC_2.3 pthread_barrierattr_init F
+GLIBC_2.3 pthread_barrierattr_setpshared F
+GLIBC_2.3 pthread_cancel F
+GLIBC_2.3 pthread_cond_broadcast F
+GLIBC_2.3 pthread_cond_destroy F
+GLIBC_2.3 pthread_cond_init F
+GLIBC_2.3 pthread_cond_signal F
+GLIBC_2.3 pthread_cond_timedwait F
+GLIBC_2.3 pthread_cond_wait F
+GLIBC_2.3 pthread_condattr_destroy F
+GLIBC_2.3 pthread_condattr_getpshared F
+GLIBC_2.3 pthread_condattr_init F
+GLIBC_2.3 pthread_condattr_setpshared F
+GLIBC_2.3 pthread_create F
+GLIBC_2.3 pthread_detach F
+GLIBC_2.3 pthread_equal F
+GLIBC_2.3 pthread_exit F
+GLIBC_2.3 pthread_getattr_np F
+GLIBC_2.3 pthread_getconcurrency F
+GLIBC_2.3 pthread_getcpuclockid F
+GLIBC_2.3 pthread_getschedparam F
+GLIBC_2.3 pthread_getspecific F
+GLIBC_2.3 pthread_join F
+GLIBC_2.3 pthread_key_create F
+GLIBC_2.3 pthread_key_delete F
+GLIBC_2.3 pthread_kill F
+GLIBC_2.3 pthread_kill_other_threads_np F
+GLIBC_2.3 pthread_mutex_destroy F
+GLIBC_2.3 pthread_mutex_init F
+GLIBC_2.3 pthread_mutex_lock F
+GLIBC_2.3 pthread_mutex_timedlock F
+GLIBC_2.3 pthread_mutex_trylock F
+GLIBC_2.3 pthread_mutex_unlock F
+GLIBC_2.3 pthread_mutexattr_destroy F
+GLIBC_2.3 pthread_mutexattr_getkind_np F
+GLIBC_2.3 pthread_mutexattr_getpshared F
+GLIBC_2.3 pthread_mutexattr_gettype F
+GLIBC_2.3 pthread_mutexattr_init F
+GLIBC_2.3 pthread_mutexattr_setkind_np F
+GLIBC_2.3 pthread_mutexattr_setpshared F
+GLIBC_2.3 pthread_mutexattr_settype F
+GLIBC_2.3 pthread_once F
+GLIBC_2.3 pthread_rwlock_destroy F
+GLIBC_2.3 pthread_rwlock_init F
+GLIBC_2.3 pthread_rwlock_rdlock F
+GLIBC_2.3 pthread_rwlock_timedrdlock F
+GLIBC_2.3 pthread_rwlock_timedwrlock F
+GLIBC_2.3 pthread_rwlock_tryrdlock F
+GLIBC_2.3 pthread_rwlock_trywrlock F
+GLIBC_2.3 pthread_rwlock_unlock F
+GLIBC_2.3 pthread_rwlock_wrlock F
+GLIBC_2.3 pthread_rwlockattr_destroy F
+GLIBC_2.3 pthread_rwlockattr_getkind_np F
+GLIBC_2.3 pthread_rwlockattr_getpshared F
+GLIBC_2.3 pthread_rwlockattr_init F
+GLIBC_2.3 pthread_rwlockattr_setkind_np F
+GLIBC_2.3 pthread_rwlockattr_setpshared F
+GLIBC_2.3 pthread_self F
+GLIBC_2.3 pthread_setcancelstate F
+GLIBC_2.3 pthread_setcanceltype F
+GLIBC_2.3 pthread_setconcurrency F
+GLIBC_2.3 pthread_setschedparam F
+GLIBC_2.3 pthread_setspecific F
+GLIBC_2.3 pthread_sigmask F
+GLIBC_2.3 pthread_spin_destroy F
+GLIBC_2.3 pthread_spin_init F
+GLIBC_2.3 pthread_spin_lock F
+GLIBC_2.3 pthread_spin_trylock F
+GLIBC_2.3 pthread_spin_unlock F
+GLIBC_2.3 pthread_testcancel F
+GLIBC_2.3 pthread_yield F
+GLIBC_2.3 pwrite F
+GLIBC_2.3 pwrite64 F
+GLIBC_2.3 raise F
+GLIBC_2.3 read F
+GLIBC_2.3 recv F
+GLIBC_2.3 recvfrom F
+GLIBC_2.3 recvmsg F
+GLIBC_2.3 sem_close F
+GLIBC_2.3 sem_destroy F
+GLIBC_2.3 sem_getvalue F
+GLIBC_2.3 sem_init F
+GLIBC_2.3 sem_open F
+GLIBC_2.3 sem_post F
+GLIBC_2.3 sem_timedwait F
+GLIBC_2.3 sem_trywait F
+GLIBC_2.3 sem_unlink F
+GLIBC_2.3 sem_wait F
+GLIBC_2.3 send F
+GLIBC_2.3 sendmsg F
+GLIBC_2.3 sendto F
+GLIBC_2.3 sigaction F
+GLIBC_2.3 siglongjmp F
+GLIBC_2.3 sigwait F
+GLIBC_2.3 system F
+GLIBC_2.3 tcdrain F
+GLIBC_2.3 vfork F
+GLIBC_2.3 wait F
+GLIBC_2.3 waitpid F
+GLIBC_2.3 write 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 longjmp F
+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.3.4 siglongjmp 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
+GLIBC_2.6 GLIBC_2.6 A
+GLIBC_2.6 pthread_attr_setstack F
+GLIBC_2.6 pthread_attr_setstacksize F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libresolv-le.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libresolv-le.abilist
new file mode 100644
index 0000000000..cf278eedb3
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libresolv-le.abilist
@@ -0,0 +1,92 @@
+GLIBC_2.17 GLIBC_2.17 A
+GLIBC_2.17 __b64_ntop F
+GLIBC_2.17 __b64_pton F
+GLIBC_2.17 __dn_comp F
+GLIBC_2.17 __dn_count_labels F
+GLIBC_2.17 __dn_expand F
+GLIBC_2.17 __dn_skipname F
+GLIBC_2.17 __fp_nquery F
+GLIBC_2.17 __fp_query F
+GLIBC_2.17 __fp_resstat F
+GLIBC_2.17 __hostalias F
+GLIBC_2.17 __loc_aton F
+GLIBC_2.17 __loc_ntoa F
+GLIBC_2.17 __p_cdname F
+GLIBC_2.17 __p_cdnname F
+GLIBC_2.17 __p_class F
+GLIBC_2.17 __p_class_syms D 0xa8
+GLIBC_2.17 __p_fqname F
+GLIBC_2.17 __p_fqnname F
+GLIBC_2.17 __p_option F
+GLIBC_2.17 __p_query F
+GLIBC_2.17 __p_rcode F
+GLIBC_2.17 __p_secstodate F
+GLIBC_2.17 __p_time F
+GLIBC_2.17 __p_type F
+GLIBC_2.17 __p_type_syms D 0x450
+GLIBC_2.17 __putlong F
+GLIBC_2.17 __putshort F
+GLIBC_2.17 __res_close F
+GLIBC_2.17 __res_dnok F
+GLIBC_2.17 __res_hnok F
+GLIBC_2.17 __res_hostalias F
+GLIBC_2.17 __res_isourserver F
+GLIBC_2.17 __res_mailok F
+GLIBC_2.17 __res_mkquery F
+GLIBC_2.17 __res_nameinquery F
+GLIBC_2.17 __res_nmkquery F
+GLIBC_2.17 __res_nquery F
+GLIBC_2.17 __res_nquerydomain F
+GLIBC_2.17 __res_nsearch F
+GLIBC_2.17 __res_nsend F
+GLIBC_2.17 __res_ownok F
+GLIBC_2.17 __res_queriesmatch F
+GLIBC_2.17 __res_query F
+GLIBC_2.17 __res_querydomain F
+GLIBC_2.17 __res_search F
+GLIBC_2.17 __res_send F
+GLIBC_2.17 __sym_ntop F
+GLIBC_2.17 __sym_ntos F
+GLIBC_2.17 __sym_ston F
+GLIBC_2.17 _gethtbyaddr F
+GLIBC_2.17 _gethtbyname F
+GLIBC_2.17 _gethtbyname2 F
+GLIBC_2.17 _gethtent F
+GLIBC_2.17 _getlong F
+GLIBC_2.17 _getshort F
+GLIBC_2.17 _res_opcodes D 0x80
+GLIBC_2.17 _sethtent F
+GLIBC_2.17 inet_net_ntop F
+GLIBC_2.17 inet_net_pton F
+GLIBC_2.17 inet_neta F
+GLIBC_2.17 ns_datetosecs F
+GLIBC_2.17 ns_format_ttl F
+GLIBC_2.17 ns_get16 F
+GLIBC_2.17 ns_get32 F
+GLIBC_2.17 ns_initparse F
+GLIBC_2.17 ns_makecanon F
+GLIBC_2.17 ns_msg_getflag F
+GLIBC_2.17 ns_name_compress F
+GLIBC_2.17 ns_name_ntol F
+GLIBC_2.17 ns_name_ntop F
+GLIBC_2.17 ns_name_pack F
+GLIBC_2.17 ns_name_pton F
+GLIBC_2.17 ns_name_rollback F
+GLIBC_2.17 ns_name_skip F
+GLIBC_2.17 ns_name_uncompress F
+GLIBC_2.17 ns_name_unpack F
+GLIBC_2.17 ns_parse_ttl F
+GLIBC_2.17 ns_parserr F
+GLIBC_2.17 ns_put16 F
+GLIBC_2.17 ns_put32 F
+GLIBC_2.17 ns_samedomain F
+GLIBC_2.17 ns_samename F
+GLIBC_2.17 ns_skiprr F
+GLIBC_2.17 ns_sprintrr F
+GLIBC_2.17 ns_sprintrrf F
+GLIBC_2.17 ns_subdomain F
+GLIBC_2.17 res_gethostbyaddr F
+GLIBC_2.17 res_gethostbyname F
+GLIBC_2.17 res_gethostbyname2 F
+GLIBC_2.17 res_send_setqhook F
+GLIBC_2.17 res_send_setrhook F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libresolv.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libresolv.abilist
new file mode 100644
index 0000000000..95def8eb0f
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libresolv.abilist
@@ -0,0 +1,94 @@
+GLIBC_2.3 GLIBC_2.3 A
+GLIBC_2.3 __b64_ntop F
+GLIBC_2.3 __b64_pton F
+GLIBC_2.3 __dn_comp F
+GLIBC_2.3 __dn_count_labels F
+GLIBC_2.3 __dn_expand F
+GLIBC_2.3 __dn_skipname F
+GLIBC_2.3 __fp_nquery F
+GLIBC_2.3 __fp_query F
+GLIBC_2.3 __fp_resstat F
+GLIBC_2.3 __hostalias F
+GLIBC_2.3 __loc_aton F
+GLIBC_2.3 __loc_ntoa F
+GLIBC_2.3 __p_cdname F
+GLIBC_2.3 __p_cdnname F
+GLIBC_2.3 __p_class F
+GLIBC_2.3 __p_class_syms D 0xa8
+GLIBC_2.3 __p_fqname F
+GLIBC_2.3 __p_fqnname F
+GLIBC_2.3 __p_option F
+GLIBC_2.3 __p_query F
+GLIBC_2.3 __p_secstodate F
+GLIBC_2.3 __p_time F
+GLIBC_2.3 __p_type F
+GLIBC_2.3 __p_type_syms D 0x450
+GLIBC_2.3 __putlong F
+GLIBC_2.3 __putshort F
+GLIBC_2.3 __res_close F
+GLIBC_2.3 __res_dnok F
+GLIBC_2.3 __res_hnok F
+GLIBC_2.3 __res_hostalias F
+GLIBC_2.3 __res_isourserver F
+GLIBC_2.3 __res_mailok F
+GLIBC_2.3 __res_mkquery F
+GLIBC_2.3 __res_nameinquery F
+GLIBC_2.3 __res_nmkquery F
+GLIBC_2.3 __res_nquery F
+GLIBC_2.3 __res_nquerydomain F
+GLIBC_2.3 __res_nsearch F
+GLIBC_2.3 __res_nsend F
+GLIBC_2.3 __res_ownok F
+GLIBC_2.3 __res_queriesmatch F
+GLIBC_2.3 __res_query F
+GLIBC_2.3 __res_querydomain F
+GLIBC_2.3 __res_search F
+GLIBC_2.3 __res_send F
+GLIBC_2.3 __sym_ntop F
+GLIBC_2.3 __sym_ntos F
+GLIBC_2.3 __sym_ston F
+GLIBC_2.3 _gethtbyaddr F
+GLIBC_2.3 _gethtbyname F
+GLIBC_2.3 _gethtbyname2 F
+GLIBC_2.3 _gethtent F
+GLIBC_2.3 _getlong F
+GLIBC_2.3 _getshort F
+GLIBC_2.3 _res_opcodes D 0x80
+GLIBC_2.3 _sethtent F
+GLIBC_2.3 inet_net_ntop F
+GLIBC_2.3 inet_net_pton F
+GLIBC_2.3 inet_neta F
+GLIBC_2.3 res_gethostbyaddr F
+GLIBC_2.3 res_gethostbyname F
+GLIBC_2.3 res_gethostbyname2 F
+GLIBC_2.3 res_send_setqhook F
+GLIBC_2.3 res_send_setrhook 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/powerpc/powerpc64/librt-le.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/librt-le.abilist
new file mode 100644
index 0000000000..523d22249a
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/librt-le.abilist
@@ -0,0 +1,36 @@
+GLIBC_2.17 GLIBC_2.17 A
+GLIBC_2.17 __mq_open_2 F
+GLIBC_2.17 aio_cancel F
+GLIBC_2.17 aio_cancel64 F
+GLIBC_2.17 aio_error F
+GLIBC_2.17 aio_error64 F
+GLIBC_2.17 aio_fsync F
+GLIBC_2.17 aio_fsync64 F
+GLIBC_2.17 aio_init F
+GLIBC_2.17 aio_read F
+GLIBC_2.17 aio_read64 F
+GLIBC_2.17 aio_return F
+GLIBC_2.17 aio_return64 F
+GLIBC_2.17 aio_suspend F
+GLIBC_2.17 aio_suspend64 F
+GLIBC_2.17 aio_write F
+GLIBC_2.17 aio_write64 F
+GLIBC_2.17 lio_listio F
+GLIBC_2.17 lio_listio64 F
+GLIBC_2.17 mq_close F
+GLIBC_2.17 mq_getattr F
+GLIBC_2.17 mq_notify F
+GLIBC_2.17 mq_open F
+GLIBC_2.17 mq_receive F
+GLIBC_2.17 mq_send F
+GLIBC_2.17 mq_setattr F
+GLIBC_2.17 mq_timedreceive F
+GLIBC_2.17 mq_timedsend F
+GLIBC_2.17 mq_unlink F
+GLIBC_2.17 shm_open F
+GLIBC_2.17 shm_unlink F
+GLIBC_2.17 timer_create F
+GLIBC_2.17 timer_delete F
+GLIBC_2.17 timer_getoverrun F
+GLIBC_2.17 timer_gettime F
+GLIBC_2.17 timer_settime F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/librt.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/librt.abilist
new file mode 100644
index 0000000000..e5b41488a2
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/librt.abilist
@@ -0,0 +1,52 @@
+GLIBC_2.3 GLIBC_2.3 A
+GLIBC_2.3 aio_cancel F
+GLIBC_2.3 aio_cancel64 F
+GLIBC_2.3 aio_error F
+GLIBC_2.3 aio_error64 F
+GLIBC_2.3 aio_fsync F
+GLIBC_2.3 aio_fsync64 F
+GLIBC_2.3 aio_init F
+GLIBC_2.3 aio_read F
+GLIBC_2.3 aio_read64 F
+GLIBC_2.3 aio_return F
+GLIBC_2.3 aio_return64 F
+GLIBC_2.3 aio_suspend F
+GLIBC_2.3 aio_suspend64 F
+GLIBC_2.3 aio_write F
+GLIBC_2.3 aio_write64 F
+GLIBC_2.3 clock_getcpuclockid F
+GLIBC_2.3 clock_getres F
+GLIBC_2.3 clock_gettime F
+GLIBC_2.3 clock_nanosleep F
+GLIBC_2.3 clock_settime F
+GLIBC_2.3 lio_listio F
+GLIBC_2.3 lio_listio64 F
+GLIBC_2.3 shm_open F
+GLIBC_2.3 shm_unlink F
+GLIBC_2.3 timer_create F
+GLIBC_2.3 timer_delete F
+GLIBC_2.3 timer_getoverrun F
+GLIBC_2.3 timer_gettime F
+GLIBC_2.3 timer_settime F
+GLIBC_2.3.3 GLIBC_2.3.3 A
+GLIBC_2.3.3 timer_create F
+GLIBC_2.3.3 timer_delete F
+GLIBC_2.3.3 timer_getoverrun F
+GLIBC_2.3.3 timer_gettime F
+GLIBC_2.3.3 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/powerpc/powerpc64/libthread_db-le.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libthread_db-le.abilist
new file mode 100644
index 0000000000..3e382bf79d
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libthread_db-le.abilist
@@ -0,0 +1,41 @@
+GLIBC_2.17 GLIBC_2.17 A
+GLIBC_2.17 td_init F
+GLIBC_2.17 td_log F
+GLIBC_2.17 td_symbol_list F
+GLIBC_2.17 td_ta_clear_event F
+GLIBC_2.17 td_ta_delete F
+GLIBC_2.17 td_ta_enable_stats F
+GLIBC_2.17 td_ta_event_addr F
+GLIBC_2.17 td_ta_event_getmsg F
+GLIBC_2.17 td_ta_get_nthreads F
+GLIBC_2.17 td_ta_get_ph F
+GLIBC_2.17 td_ta_get_stats F
+GLIBC_2.17 td_ta_map_id2thr F
+GLIBC_2.17 td_ta_map_lwp2thr F
+GLIBC_2.17 td_ta_new F
+GLIBC_2.17 td_ta_reset_stats F
+GLIBC_2.17 td_ta_set_event F
+GLIBC_2.17 td_ta_setconcurrency F
+GLIBC_2.17 td_ta_thr_iter F
+GLIBC_2.17 td_ta_tsd_iter F
+GLIBC_2.17 td_thr_clear_event F
+GLIBC_2.17 td_thr_dbresume F
+GLIBC_2.17 td_thr_dbsuspend F
+GLIBC_2.17 td_thr_event_enable F
+GLIBC_2.17 td_thr_event_getmsg F
+GLIBC_2.17 td_thr_get_info F
+GLIBC_2.17 td_thr_getfpregs F
+GLIBC_2.17 td_thr_getgregs F
+GLIBC_2.17 td_thr_getxregs F
+GLIBC_2.17 td_thr_getxregsize F
+GLIBC_2.17 td_thr_set_event F
+GLIBC_2.17 td_thr_setfpregs F
+GLIBC_2.17 td_thr_setgregs F
+GLIBC_2.17 td_thr_setprio F
+GLIBC_2.17 td_thr_setsigpending F
+GLIBC_2.17 td_thr_setxregs F
+GLIBC_2.17 td_thr_sigsetmask F
+GLIBC_2.17 td_thr_tls_get_addr F
+GLIBC_2.17 td_thr_tlsbase F
+GLIBC_2.17 td_thr_tsd F
+GLIBC_2.17 td_thr_validate F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libthread_db.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libthread_db.abilist
new file mode 100644
index 0000000000..cd466b942b
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libthread_db.abilist
@@ -0,0 +1,42 @@
+GLIBC_2.3 GLIBC_2.3 A
+GLIBC_2.3 td_init F
+GLIBC_2.3 td_log F
+GLIBC_2.3 td_symbol_list F
+GLIBC_2.3 td_ta_clear_event F
+GLIBC_2.3 td_ta_delete F
+GLIBC_2.3 td_ta_enable_stats F
+GLIBC_2.3 td_ta_event_addr F
+GLIBC_2.3 td_ta_event_getmsg F
+GLIBC_2.3 td_ta_get_nthreads F
+GLIBC_2.3 td_ta_get_ph F
+GLIBC_2.3 td_ta_get_stats F
+GLIBC_2.3 td_ta_map_id2thr F
+GLIBC_2.3 td_ta_map_lwp2thr F
+GLIBC_2.3 td_ta_new F
+GLIBC_2.3 td_ta_reset_stats F
+GLIBC_2.3 td_ta_set_event F
+GLIBC_2.3 td_ta_setconcurrency F
+GLIBC_2.3 td_ta_thr_iter F
+GLIBC_2.3 td_ta_tsd_iter F
+GLIBC_2.3 td_thr_clear_event F
+GLIBC_2.3 td_thr_dbresume F
+GLIBC_2.3 td_thr_dbsuspend F
+GLIBC_2.3 td_thr_event_enable F
+GLIBC_2.3 td_thr_event_getmsg F
+GLIBC_2.3 td_thr_get_info F
+GLIBC_2.3 td_thr_getfpregs F
+GLIBC_2.3 td_thr_getgregs F
+GLIBC_2.3 td_thr_getxregs F
+GLIBC_2.3 td_thr_getxregsize F
+GLIBC_2.3 td_thr_set_event F
+GLIBC_2.3 td_thr_setfpregs F
+GLIBC_2.3 td_thr_setgregs F
+GLIBC_2.3 td_thr_setprio F
+GLIBC_2.3 td_thr_setsigpending F
+GLIBC_2.3 td_thr_setxregs F
+GLIBC_2.3 td_thr_sigsetmask F
+GLIBC_2.3 td_thr_tls_get_addr F
+GLIBC_2.3 td_thr_tsd F
+GLIBC_2.3 td_thr_validate 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/powerpc/powerpc64/libutil-le.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libutil-le.abilist
new file mode 100644
index 0000000000..9c075bc0bd
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libutil-le.abilist
@@ -0,0 +1,7 @@
+GLIBC_2.17 GLIBC_2.17 A
+GLIBC_2.17 forkpty F
+GLIBC_2.17 login F
+GLIBC_2.17 login_tty F
+GLIBC_2.17 logout F
+GLIBC_2.17 logwtmp F
+GLIBC_2.17 openpty F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libutil.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libutil.abilist
new file mode 100644
index 0000000000..812701762c
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libutil.abilist
@@ -0,0 +1,7 @@
+GLIBC_2.3 GLIBC_2.3 A
+GLIBC_2.3 forkpty F
+GLIBC_2.3 login F
+GLIBC_2.3 login_tty F
+GLIBC_2.3 logout F
+GLIBC_2.3 logwtmp F
+GLIBC_2.3 openpty F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/localplt.data b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/localplt.data
new file mode 100644
index 0000000000..6f8ed25922
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/localplt.data
@@ -0,0 +1,15 @@
+libc.so: calloc
+libc.so: free
+libc.so: malloc
+libc.so: memalign
+libc.so: realloc
+libm.so: matherr
+# The main malloc is interposed into the dynamic linker, for
+# allocations after the initial link (when dlopen is used).
+ld.so: malloc
+ld.so: calloc
+ld.so: realloc
+ld.so: free
+# The TLS-enabled version of these functions is interposed from libc.so.
+ld.so: _dl_signal_error
+ld.so: _dl_catch_error
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/makecontext.S b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/makecontext.S
new file mode 100644
index 0000000000..ff2ed265ee
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/makecontext.S
@@ -0,0 +1,187 @@
+/* Create new context.
+ Copyright (C) 2002-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+
+#define __ASSEMBLY__
+#include <asm/ptrace.h>
+#include "ucontext_i.h"
+#include <asm/errno.h>
+
+ENTRY(__makecontext)
+ CALL_MCOUNT 3
+ /* Save parameters into the parameter save area of callers frame. */
+ std r3,FRAME_PARM1_SAVE(r1) /* ucontext_t *ucp */
+ std r4,FRAME_PARM2_SAVE(r1) /* void (*func)(void) */
+ std r5,FRAME_PARM3_SAVE(r1) /* int argc */
+ std r6,FRAME_PARM4_SAVE(r1) /* ... */
+ std r7,FRAME_PARM5_SAVE(r1)
+ std r8,FRAME_PARM6_SAVE(r1)
+ std r9,FRAME_PARM7_SAVE(r1)
+ std r10,FRAME_PARM8_SAVE(r1)
+ mflr r0
+ /* Get the address of the target functions first parameter. */
+ addi r6,r1,FRAME_PARM4_SAVE
+ std r0,FRAME_LR_SAVE(r1)
+ cfi_offset (lr, FRAME_LR_SAVE)
+ stdu r1,-128(r1)
+ cfi_adjust_cfa_offset (128)
+
+ /* Get the ucontexts stack pointer and size. Compute the top of stack
+ and round down to a quadword boundary. Then stack a dummy frame
+ with a null back chain. We store the context pointer in the frames
+ "compiler double word" field so we can recover if is the function
+ returns. Finally save the callers link register and TOC pointer
+ into this frame so the debugger can display a backtrace.
+ */
+ ld r7,UCONTEXT_STACK_SP(r3)
+ ld r0,UCONTEXT_STACK_SIZE(r3)
+ add r7,r7,r0
+ clrrdi r7,r7,4
+ li r0,0
+ stdu r0,-64(r7)
+ std r3,FRAME_PARM1_SAVE(r7) /* Store context in dummy parm1. */
+ mflr r0
+ std r2,FRAME_TOC_SAVE(r7) /* Store the TOC pointer for later. */
+ std r0,FRAME_LR_SAVE(r7)
+
+ /* Now we need to stack another frame to hold the parameter save area
+ for the function. We need to allocate a frame with the minimum 48
+ byte header and 8 parameter register. However if there are more
+ than 8 parameters addition space is need to hold all the parameters.
+ The total size it rounded up to a quadword multiple then a frame is
+ stacked. This address is stored in the ucontext as GPR 1. */
+
+ cmpdi cr1,r5,8
+ sldi r8,r5,3
+ bgt cr1,L(gt8)
+ li r8,64
+L(gt8):
+ addi r8,r8,FRAME_PARM_SAVE+8 /* Add header plus rounding factor. */
+ clrrdi r8,r8,4 /* Round down to quadword. */
+
+ subf r8,r8,r7
+ std r7,0(r8) /* Stack the frame. */
+ std r8,(SIGCONTEXT_GP_REGS+(PT_R1*8))(r3)
+
+ /* Now we need to copy the target functions parameters. The functions
+ parameters are saved in the parameter save area. We skip over the
+ first three parameters and copy up to 8 double word into the
+ SIGCONTEXT_GP_REGS starting with R3. If there are more than 8
+ parameters then doublewords 8-N are copied into the parameter
+ save area of the context frame. */
+ cmpdi r5,0
+ beq L(noparms)
+ mr r0,r5
+ ble cr1,L(le8)
+ li r0,8
+L(le8):
+ mtctr r0
+ addi r7,r6,-8
+ addi r9,r3,(SIGCONTEXT_GP_REGS+(PT_R3*8)-8)
+L(parmloop2):
+ ldu r0,8(r7)
+ stdu r0,8(r9)
+ bdnz L(parmloop2)
+
+ addi r0,r5,-8
+ ble cr1,L(noparms)
+ mtctr r0
+ addi r9,r8,FRAME_PARM9_SAVE-8
+L(parmloop):
+ ldu r0,8(r7)
+ stdu r0,8(r9)
+ bdnz L(parmloop)
+
+L(noparms):
+
+#if _CALL_ELF != 2
+ /* Load the function address and TOC from the function descriptor
+ and store them in the ucontext as NIP and r2. Store the 3rd
+ field of the function descriptor into the ucontext as r11 in case
+ the calling language needs the "environment pointer". */
+ ld r0,0(r4)
+ ld r10,8(r4);
+ ld r9,16(r4);
+ std r0,(SIGCONTEXT_GP_REGS+(PT_NIP*8))(r3)
+ std r10,(SIGCONTEXT_GP_REGS+(PT_R2*8))(r3)
+ std r9,(SIGCONTEXT_GP_REGS+(PT_R11*8))(r3)
+#else
+ /* In the ELFv2 ABI, the function pointer is already the address.
+ Store it as NIP and r12 as required by the ABI. */
+ std r4,(SIGCONTEXT_GP_REGS+(PT_NIP*8))(r3)
+ std r4,(SIGCONTEXT_GP_REGS+(PT_R12*8))(r3)
+#endif
+
+ /* If the target function returns we need to do some cleanup. We use a
+ code trick to get the address of our cleanup function into the link
+ register. Do not add any code between here and L(exitcode).
+ Use this conditional form of branch and link to avoid destroying
+ the cpu link stack used to predict blr return addresses. */
+ bcl 20,31,L(gotexitcodeaddr);
+
+ /* End FDE now, because while executing on the context's stack
+ the unwind info would be wrong otherwise. */
+ cfi_endproc
+
+ /* This is the helper code which gets called if a function which
+ is registered with 'makecontext' returns. In this case we
+ have to install the context listed in the uc_link element of
+ the context 'makecontext' manipulated at the time of the
+ 'makecontext' call. If the pointer is NULL the process must
+ terminate. */
+L(exitcode):
+ /* Recover the ucontext and TOC from the dummy frame. */
+ ld r1,FRAME_BACKCHAIN(r1) /* Unstack the parameter save area frame. */
+ ld r3,FRAME_PARM1_SAVE(r1)
+ ld r2,FRAME_TOC_SAVE(r1)
+ ld r3,UCONTEXT_LINK(r3) /* Load the resume context. */
+ cmpdi r3,0
+ beq L(do_exit)
+ bl JUMPTARGET(__setcontext)
+ nop
+ /* If setcontext returns (which can happen if the syscall fails) we will
+ exit the program with error status (-1). */
+ li r3,-1
+L(do_exit):
+#ifdef SHARED
+ b JUMPTARGET(__GI_exit);
+#else
+ b JUMPTARGET(exit);
+ nop
+#endif
+ b L(do_exit)
+
+ /* Re-establish FDE for the rest of the actual makecontext routine. */
+ cfi_startproc
+ cfi_offset (lr, FRAME_LR_SAVE)
+ cfi_adjust_cfa_offset (128)
+
+ /* The address of the exit code is in the link register. Store the lr
+ in the ucontext as LNK so the target function will return to our
+ exit code. */
+L(gotexitcodeaddr):
+ mflr r0
+ std r0,(SIGCONTEXT_GP_REGS+(PT_LNK*8))(r3)
+ ld r0,128+FRAME_LR_SAVE(r1)
+ addi r1,r1,128
+ mtlr r0
+ blr
+END(__makecontext)
+
+weak_alias (__makecontext, makecontext)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/setcontext.S b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/setcontext.S
new file mode 100644
index 0000000000..e258b9da41
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/setcontext.S
@@ -0,0 +1,513 @@
+/* Switch to context.
+ Copyright (C) 2002-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#include <rtld-global-offsets.h>
+#include <shlib-compat.h>
+
+#define __ASSEMBLY__
+#include <asm/ptrace.h>
+#include "ucontext_i.h"
+#include <asm/errno.h>
+
+ .section ".toc","aw"
+.LC__dl_hwcap:
+#ifdef SHARED
+ .tc _rtld_global_ro[TC],_rtld_global_ro
+#else
+ .tc _dl_hwcap[TC],_dl_hwcap
+#endif
+ .section ".text"
+
+#if SHLIB_COMPAT (libc, GLIBC_2_3, GLIBC_2_3_4)
+ENTRY(__novec_setcontext)
+ CALL_MCOUNT 1
+ mflr r0
+ std r31,-8(1)
+ cfi_offset(r31,-8)
+ std r0,FRAME_LR_SAVE(r1)
+ cfi_offset (lr, FRAME_LR_SAVE)
+ stdu r1,-128(r1)
+ cfi_adjust_cfa_offset (128)
+ mr r31,r3
+
+/*
+ * If this ucontext refers to the point where we were interrupted
+ * by a signal, we have to use the rt_sigreturn system call to
+ * return to the context so we get both LR and CTR restored.
+ *
+ * Otherwise, the context we are restoring is either just after
+ * a procedure call (getcontext/swapcontext) or at the beginning
+ * of a procedure call (makecontext), so we don't need to restore
+ * msr and ctr. We don't restore r13 since it will be used as
+ * the TLS pointer. */
+ ld r0,(SIGCONTEXT_GP_REGS+(PT_MSR*8))(r31)
+ cmpdi r0,0
+ bne L(nv_do_sigret)
+
+ li r5,0
+ addi r4,r3,UCONTEXT_SIGMASK
+ li r3,SIG_SETMASK
+ bl JUMPTARGET(__sigprocmask)
+ nop
+ cmpdi r3,0
+ bne L(nv_error_exit)
+
+# ifdef SHARED
+/* Load _rtld-global._dl_hwcap. */
+ ld r5,RTLD_GLOBAL_RO_DL_HWCAP_OFFSET(r5)
+# else
+ ld r5,0(r5) /* Load extern _dl_hwcap. */
+# endif
+
+ lfd fp0,(SIGCONTEXT_FP_REGS+(32*8))(r31)
+ lfd fp31,(SIGCONTEXT_FP_REGS+(PT_R31*8))(r31)
+ lfd fp30,(SIGCONTEXT_FP_REGS+(PT_R30*8))(r31)
+
+# ifdef _ARCH_PWR6
+ /* Use the extended four-operand version of the mtfsf insn. */
+ .machine push
+ .machine "power6"
+
+ mtfsf 0xff,fp0,1,0
+
+ .machine pop
+# else
+ /* Availability of DFP indicates a 64-bit FPSCR. */
+ andi. r6,r5,PPC_FEATURE_HAS_DFP
+ beq 5f
+ /* Use the extended four-operand version of the mtfsf insn. */
+ .machine push
+ .machine "power6"
+
+ mtfsf 0xff,fp0,1,0
+
+ .machine pop
+
+ b 6f
+ /* Continue to operate on the FPSCR as if it were 32-bits. */
+5:
+ mtfsf 0xff,fp0
+6:
+# endif /* _ARCH_PWR6 */
+
+ lfd fp29,(SIGCONTEXT_FP_REGS+(PT_R29*8))(r31)
+ lfd fp28,(SIGCONTEXT_FP_REGS+(PT_R28*8))(r31)
+ lfd fp27,(SIGCONTEXT_FP_REGS+(PT_R27*8))(r31)
+ lfd fp26,(SIGCONTEXT_FP_REGS+(PT_R26*8))(r31)
+ lfd fp25,(SIGCONTEXT_FP_REGS+(PT_R25*8))(r31)
+ lfd fp24,(SIGCONTEXT_FP_REGS+(PT_R24*8))(r31)
+ lfd fp23,(SIGCONTEXT_FP_REGS+(PT_R23*8))(r31)
+ lfd fp22,(SIGCONTEXT_FP_REGS+(PT_R22*8))(r31)
+ lfd fp21,(SIGCONTEXT_FP_REGS+(PT_R21*8))(r31)
+ lfd fp20,(SIGCONTEXT_FP_REGS+(PT_R20*8))(r31)
+ lfd fp19,(SIGCONTEXT_FP_REGS+(PT_R19*8))(r31)
+ lfd fp18,(SIGCONTEXT_FP_REGS+(PT_R18*8))(r31)
+ lfd fp17,(SIGCONTEXT_FP_REGS+(PT_R17*8))(r31)
+ lfd fp16,(SIGCONTEXT_FP_REGS+(PT_R16*8))(r31)
+ lfd fp15,(SIGCONTEXT_FP_REGS+(PT_R15*8))(r31)
+ lfd fp14,(SIGCONTEXT_FP_REGS+(PT_R14*8))(r31)
+ lfd fp13,(SIGCONTEXT_FP_REGS+(PT_R13*8))(r31)
+ lfd fp12,(SIGCONTEXT_FP_REGS+(PT_R12*8))(r31)
+ lfd fp11,(SIGCONTEXT_FP_REGS+(PT_R11*8))(r31)
+ lfd fp10,(SIGCONTEXT_FP_REGS+(PT_R10*8))(r31)
+ lfd fp9,(SIGCONTEXT_FP_REGS+(PT_R9*8))(r31)
+ lfd fp8,(SIGCONTEXT_FP_REGS+(PT_R8*8))(r31)
+ lfd fp7,(SIGCONTEXT_FP_REGS+(PT_R7*8))(r31)
+ lfd fp6,(SIGCONTEXT_FP_REGS+(PT_R6*8))(r31)
+ lfd fp5,(SIGCONTEXT_FP_REGS+(PT_R5*8))(r31)
+ lfd fp4,(SIGCONTEXT_FP_REGS+(PT_R4*8))(r31)
+ lfd fp3,(SIGCONTEXT_FP_REGS+(PT_R3*8))(r31)
+ lfd fp2,(SIGCONTEXT_FP_REGS+(PT_R2*8))(r31)
+ lfd fp1,(SIGCONTEXT_FP_REGS+(PT_R1*8))(r31)
+ lfd fp0,(SIGCONTEXT_FP_REGS+(PT_R0*8))(r31)
+
+ /* End FDE now, because the unwind info would be wrong while
+ we're reloading registers to switch to the new context. */
+ cfi_endproc
+
+ ld r0,(SIGCONTEXT_GP_REGS+(PT_LNK*8))(r31)
+ ld r1,(SIGCONTEXT_GP_REGS+(PT_R1*8))(r31)
+ mtlr r0
+ ld r2,(SIGCONTEXT_GP_REGS+(PT_R2*8))(r31)
+ ld r0,(SIGCONTEXT_GP_REGS+(PT_XER*8))(r31)
+ ld r3,(SIGCONTEXT_GP_REGS+(PT_R3*8))(r31)
+ mtxer r0
+ ld r4,(SIGCONTEXT_GP_REGS+(PT_R4*8))(r31)
+ ld r0,(SIGCONTEXT_GP_REGS+(PT_CCR*8))(r31)
+ ld r5,(SIGCONTEXT_GP_REGS+(PT_R5*8))(r31)
+ mtcr r0
+ ld r6,(SIGCONTEXT_GP_REGS+(PT_R6*8))(r31)
+ ld r7,(SIGCONTEXT_GP_REGS+(PT_R7*8))(r31)
+ ld r8,(SIGCONTEXT_GP_REGS+(PT_R8*8))(r31)
+ ld r9,(SIGCONTEXT_GP_REGS+(PT_R9*8))(r31)
+ ld r10,(SIGCONTEXT_GP_REGS+(PT_R10*8))(r31)
+ ld r11,(SIGCONTEXT_GP_REGS+(PT_R11*8))(r31)
+ ld r12,(SIGCONTEXT_GP_REGS+(PT_R12*8))(r31)
+ /* Don't reload the thread ID or TLS pointer (r13). */
+ ld r14,(SIGCONTEXT_GP_REGS+(PT_R14*8))(r31)
+ ld r15,(SIGCONTEXT_GP_REGS+(PT_R15*8))(r31)
+ ld r16,(SIGCONTEXT_GP_REGS+(PT_R16*8))(r31)
+ ld r17,(SIGCONTEXT_GP_REGS+(PT_R17*8))(r31)
+ ld r18,(SIGCONTEXT_GP_REGS+(PT_R18*8))(r31)
+ ld r19,(SIGCONTEXT_GP_REGS+(PT_R19*8))(r31)
+ ld r20,(SIGCONTEXT_GP_REGS+(PT_R20*8))(r31)
+ ld r21,(SIGCONTEXT_GP_REGS+(PT_R21*8))(r31)
+ ld r22,(SIGCONTEXT_GP_REGS+(PT_R22*8))(r31)
+ ld r23,(SIGCONTEXT_GP_REGS+(PT_R23*8))(r31)
+ ld r24,(SIGCONTEXT_GP_REGS+(PT_R24*8))(r31)
+ ld r25,(SIGCONTEXT_GP_REGS+(PT_R25*8))(r31)
+ ld r26,(SIGCONTEXT_GP_REGS+(PT_R26*8))(r31)
+ ld r27,(SIGCONTEXT_GP_REGS+(PT_R27*8))(r31)
+ ld r28,(SIGCONTEXT_GP_REGS+(PT_R28*8))(r31)
+ ld r29,(SIGCONTEXT_GP_REGS+(PT_R29*8))(r31)
+ ld r30,(SIGCONTEXT_GP_REGS+(PT_R30*8))(r31)
+
+ /* Now we branch to the "Next Instruction Pointer" from the saved
+ context. With the powerpc64 instruction set there is no good way to
+ do this (from user state) without clobbering either the LR or CTR.
+ The makecontext and swapcontext functions depend on the callers
+ LR being preserved so we use the CTR. */
+ ld r0,(SIGCONTEXT_GP_REGS+(PT_NIP*8))(r31)
+ mtctr r0
+ ld r0,(SIGCONTEXT_GP_REGS+(PT_R0*8))(r31)
+ ld r31,(SIGCONTEXT_GP_REGS+(PT_R31*8))(r31)
+ bctr
+
+ /* Re-establish FDE for the rest of the actual setcontext routine. */
+ cfi_startproc
+ cfi_offset (lr, FRAME_LR_SAVE)
+ cfi_adjust_cfa_offset (128)
+
+L(nv_error_exit):
+ ld r0,128+FRAME_LR_SAVE(r1)
+ addi r1,r1,128
+ mtlr r0
+ ld r31,-8(r1)
+ blr
+
+ /* At this point we assume that the ucontext was created by a
+ rt_signal and we should use rt_sigreturn to restore the original
+ state. As of the 2.4.21 kernel the ucontext is the first thing
+ (offset 0) in the rt_signal frame and rt_sigreturn expects the
+ ucontext address in R1. Normally the rt-signal trampoline handles
+ this by popping dummy frame before the rt_signal syscall. In our
+ case the stack may not be in its original (signal handler return with
+ R1 pointing at the dummy frame) state. We do have the ucontext
+ address in R3, so simply copy R3 to R1 before the syscall. */
+L(nv_do_sigret):
+ mr r1,r3,
+ li r0,SYS_ify(rt_sigreturn)
+ sc
+ /* No return. */
+
+PSEUDO_END(__novec_setcontext)
+
+compat_symbol (libc, __novec_setcontext, setcontext, GLIBC_2_3)
+
+#endif
+
+ .section ".text"
+ .machine "altivec"
+ENTRY(__setcontext)
+ CALL_MCOUNT 1
+ mflr r0
+ std r31,-8(1)
+ cfi_offset(r31,-8)
+ std r0,FRAME_LR_SAVE(r1)
+ cfi_offset (lr, FRAME_LR_SAVE)
+ stdu r1,-128(r1)
+ cfi_adjust_cfa_offset (128)
+ mr r31,r3
+
+/*
+ * If this ucontext refers to the point where we were interrupted
+ * by a signal, we have to use the rt_sigreturn system call to
+ * return to the context so we get both LR and CTR restored.
+ *
+ * Otherwise, the context we are restoring is either just after
+ * a procedure call (getcontext/swapcontext) or at the beginning
+ * of a procedure call (makecontext), so we don't need to restore
+ * msr and ctr. We don't restore r13 since it will be used as
+ * the TLS pointer. */
+ ld r0,(SIGCONTEXT_GP_REGS+(PT_MSR*8))(r31)
+ cmpdi r0,0
+ bne L(do_sigret)
+
+ li r5,0
+ addi r4,r3,UCONTEXT_SIGMASK
+ li r3,SIG_SETMASK
+ bl JUMPTARGET(__sigprocmask)
+ nop
+ cmpdi r3,0
+ bne L(error_exit)
+
+ ld r5,.LC__dl_hwcap@toc(r2)
+ ld r10,(SIGCONTEXT_V_REGS_PTR)(r31)
+# ifdef SHARED
+/* Load _rtld-global._dl_hwcap. */
+ ld r5,RTLD_GLOBAL_RO_DL_HWCAP_OFFSET(r5)
+# else
+ ld r5,0(r5) /* Load extern _dl_hwcap. */
+# endif
+ andis. r6,r5,(PPC_FEATURE_HAS_ALTIVEC >> 16)
+ beq L(has_no_vec)
+
+ cmpdi r10,0
+ beq L(has_no_vec)
+ lwz r0,(33*16)(r10)
+
+ li r9,(16*32)
+ mtspr VRSAVE,r0
+ cmpwi r0,0
+ beq L(has_no_vec)
+
+ lvx v19,r9,r10
+ la r9,(16)(r10)
+
+ lvx v0,0,r10
+ lvx v1,0,r9
+ addi r10,r10,32
+ addi r9,r9,32
+
+ mtvscr v19
+ lvx v2,0,r10
+ lvx v3,0,r9
+ addi r10,r10,32
+ addi r9,r9,32
+
+ lvx v4,0,r10
+ lvx v5,0,r9
+ addi r10,r10,32
+ addi r9,r9,32
+
+ lvx v6,0,r10
+ lvx v7,0,r9
+ addi r10,r10,32
+ addi r9,r9,32
+
+ lvx v8,0,r10
+ lvx v9,0,r9
+ addi r10,r10,32
+ addi r9,r9,32
+
+ lvx v10,0,r10
+ lvx v11,0,r9
+ addi r10,r10,32
+ addi r9,r9,32
+
+ lvx v12,0,r10
+ lvx v13,0,r9
+ addi r10,r10,32
+ addi r9,r9,32
+
+ lvx v14,0,r10
+ lvx v15,0,r9
+ addi r10,r10,32
+ addi r9,r9,32
+
+ lvx v16,0,r10
+ lvx v17,0,r9
+ addi r10,r10,32
+ addi r9,r9,32
+
+ lvx v18,0,r10
+ lvx v19,0,r9
+ addi r10,r10,32
+ addi r9,r9,32
+
+ lvx v20,0,r10
+ lvx v21,0,r9
+ addi r10,r10,32
+ addi r9,r9,32
+
+ lvx v22,0,r10
+ lvx v23,0,r9
+ addi r10,r10,32
+ addi r9,r9,32
+
+ lvx v24,0,r10
+ lvx v25,0,r9
+ addi r10,r10,32
+ addi r9,r9,32
+
+ lvx v26,0,r10
+ lvx v27,0,r9
+ addi r10,r10,32
+ addi r9,r9,32
+
+ lvx v28,0,r10
+ lvx v29,0,r9
+ addi r10,r10,32
+ addi r9,r9,32
+
+ lvx v30,0,r10
+ lvx v31,0,r9
+ addi r10,r10,32
+ addi r9,r9,32
+
+ lvx v10,0,r10
+ lvx v11,0,r9
+ addi r10,r10,32
+ addi r9,r9,32
+
+L(has_no_vec):
+ lfd fp0,(SIGCONTEXT_FP_REGS+(32*8))(r31)
+ lfd fp31,(SIGCONTEXT_FP_REGS+(PT_R31*8))(r31)
+ lfd fp30,(SIGCONTEXT_FP_REGS+(PT_R30*8))(r31)
+
+# ifdef _ARCH_PWR6
+ /* Use the extended four-operand version of the mtfsf insn. */
+ .machine push
+ .machine "power6"
+
+ mtfsf 0xff,fp0,1,0
+
+ .machine pop
+# else
+ /* Availability of DFP indicates a 64-bit FPSCR. */
+ andi. r6,r5,PPC_FEATURE_HAS_DFP
+ beq 7f
+ /* Use the extended four-operand version of the mtfsf insn. */
+ .machine push
+ .machine "power6"
+
+ mtfsf 0xff,fp0,1,0
+
+ .machine pop
+
+ b 8f
+ /* Continue to operate on the FPSCR as if it were 32-bits. */
+7:
+ mtfsf 0xff,fp0
+8:
+# endif /* _ARCH_PWR6 */
+
+ lfd fp29,(SIGCONTEXT_FP_REGS+(PT_R29*8))(r31)
+ lfd fp28,(SIGCONTEXT_FP_REGS+(PT_R28*8))(r31)
+ lfd fp27,(SIGCONTEXT_FP_REGS+(PT_R27*8))(r31)
+ lfd fp26,(SIGCONTEXT_FP_REGS+(PT_R26*8))(r31)
+ lfd fp25,(SIGCONTEXT_FP_REGS+(PT_R25*8))(r31)
+ lfd fp24,(SIGCONTEXT_FP_REGS+(PT_R24*8))(r31)
+ lfd fp23,(SIGCONTEXT_FP_REGS+(PT_R23*8))(r31)
+ lfd fp22,(SIGCONTEXT_FP_REGS+(PT_R22*8))(r31)
+ lfd fp21,(SIGCONTEXT_FP_REGS+(PT_R21*8))(r31)
+ lfd fp20,(SIGCONTEXT_FP_REGS+(PT_R20*8))(r31)
+ lfd fp19,(SIGCONTEXT_FP_REGS+(PT_R19*8))(r31)
+ lfd fp18,(SIGCONTEXT_FP_REGS+(PT_R18*8))(r31)
+ lfd fp17,(SIGCONTEXT_FP_REGS+(PT_R17*8))(r31)
+ lfd fp16,(SIGCONTEXT_FP_REGS+(PT_R16*8))(r31)
+ lfd fp15,(SIGCONTEXT_FP_REGS+(PT_R15*8))(r31)
+ lfd fp14,(SIGCONTEXT_FP_REGS+(PT_R14*8))(r31)
+ lfd fp13,(SIGCONTEXT_FP_REGS+(PT_R13*8))(r31)
+ lfd fp12,(SIGCONTEXT_FP_REGS+(PT_R12*8))(r31)
+ lfd fp11,(SIGCONTEXT_FP_REGS+(PT_R11*8))(r31)
+ lfd fp10,(SIGCONTEXT_FP_REGS+(PT_R10*8))(r31)
+ lfd fp9,(SIGCONTEXT_FP_REGS+(PT_R9*8))(r31)
+ lfd fp8,(SIGCONTEXT_FP_REGS+(PT_R8*8))(r31)
+ lfd fp7,(SIGCONTEXT_FP_REGS+(PT_R7*8))(r31)
+ lfd fp6,(SIGCONTEXT_FP_REGS+(PT_R6*8))(r31)
+ lfd fp5,(SIGCONTEXT_FP_REGS+(PT_R5*8))(r31)
+ lfd fp4,(SIGCONTEXT_FP_REGS+(PT_R4*8))(r31)
+ lfd fp3,(SIGCONTEXT_FP_REGS+(PT_R3*8))(r31)
+ lfd fp2,(SIGCONTEXT_FP_REGS+(PT_R2*8))(r31)
+ lfd fp1,(SIGCONTEXT_FP_REGS+(PT_R1*8))(r31)
+ lfd fp0,(SIGCONTEXT_FP_REGS+(PT_R0*8))(r31)
+
+ /* End FDE now, because the unwind info would be wrong while
+ we're reloading registers to switch to the new context. */
+ cfi_endproc
+
+ ld r0,(SIGCONTEXT_GP_REGS+(PT_LNK*8))(r31)
+ ld r1,(SIGCONTEXT_GP_REGS+(PT_R1*8))(r31)
+ mtlr r0
+ ld r2,(SIGCONTEXT_GP_REGS+(PT_R2*8))(r31)
+ ld r0,(SIGCONTEXT_GP_REGS+(PT_XER*8))(r31)
+ ld r3,(SIGCONTEXT_GP_REGS+(PT_R3*8))(r31)
+ mtxer r0
+ ld r4,(SIGCONTEXT_GP_REGS+(PT_R4*8))(r31)
+ ld r0,(SIGCONTEXT_GP_REGS+(PT_CCR*8))(r31)
+ ld r5,(SIGCONTEXT_GP_REGS+(PT_R5*8))(r31)
+ ld r6,(SIGCONTEXT_GP_REGS+(PT_R6*8))(r31)
+ ld r7,(SIGCONTEXT_GP_REGS+(PT_R7*8))(r31)
+ ld r8,(SIGCONTEXT_GP_REGS+(PT_R8*8))(r31)
+ ld r9,(SIGCONTEXT_GP_REGS+(PT_R9*8))(r31)
+ mtcr r0
+ ld r10,(SIGCONTEXT_GP_REGS+(PT_R10*8))(r31)
+ ld r11,(SIGCONTEXT_GP_REGS+(PT_R11*8))(r31)
+ ld r12,(SIGCONTEXT_GP_REGS+(PT_R12*8))(r31)
+ /* Don't reload the thread ID or TLS pointer (r13). */
+ ld r14,(SIGCONTEXT_GP_REGS+(PT_R14*8))(r31)
+ ld r15,(SIGCONTEXT_GP_REGS+(PT_R15*8))(r31)
+ ld r16,(SIGCONTEXT_GP_REGS+(PT_R16*8))(r31)
+ ld r17,(SIGCONTEXT_GP_REGS+(PT_R17*8))(r31)
+ ld r18,(SIGCONTEXT_GP_REGS+(PT_R18*8))(r31)
+ ld r19,(SIGCONTEXT_GP_REGS+(PT_R19*8))(r31)
+ ld r20,(SIGCONTEXT_GP_REGS+(PT_R20*8))(r31)
+ ld r21,(SIGCONTEXT_GP_REGS+(PT_R21*8))(r31)
+ ld r22,(SIGCONTEXT_GP_REGS+(PT_R22*8))(r31)
+ ld r23,(SIGCONTEXT_GP_REGS+(PT_R23*8))(r31)
+ ld r24,(SIGCONTEXT_GP_REGS+(PT_R24*8))(r31)
+ ld r25,(SIGCONTEXT_GP_REGS+(PT_R25*8))(r31)
+ ld r26,(SIGCONTEXT_GP_REGS+(PT_R26*8))(r31)
+ ld r27,(SIGCONTEXT_GP_REGS+(PT_R27*8))(r31)
+ ld r28,(SIGCONTEXT_GP_REGS+(PT_R28*8))(r31)
+ ld r29,(SIGCONTEXT_GP_REGS+(PT_R29*8))(r31)
+ ld r30,(SIGCONTEXT_GP_REGS+(PT_R30*8))(r31)
+
+ /* Now we branch to the "Next Instruction Pointer" from the saved
+ context. With the powerpc64 instruction set there is no good way to
+ do this (from user state) without clobbering either the LR or CTR.
+ The makecontext and swapcontext functions depend on the callers
+ LR being preserved so we use the CTR. */
+ ld r0,(SIGCONTEXT_GP_REGS+(PT_NIP*8))(r31)
+ mtctr r0
+ ld r0,(SIGCONTEXT_GP_REGS+(PT_R0*8))(r31)
+ ld r31,(SIGCONTEXT_GP_REGS+(PT_R31*8))(r31)
+ bctr
+
+ /* Re-establish FDE for the rest of the actual setcontext routine. */
+ cfi_startproc
+ cfi_offset (lr, FRAME_LR_SAVE)
+ cfi_adjust_cfa_offset (128)
+
+L(error_exit):
+ ld r0,128+FRAME_LR_SAVE(r1)
+ addi r1,r1,128
+ mtlr r0
+ ld r31,-8(r1)
+ blr
+
+ /* At this point we assume that the ucontext was created by a
+ rt_signal and we should use rt_sigreturn to restore the original
+ state. As of the 2.4.21 kernel the ucontext is the first thing
+ (offset 0) in the rt_signal frame and rt_sigreturn expects the
+ ucontext address in R1. Normally the rt-signal trampoline handles
+ this by popping dummy frame before the rt_signal syscall. In our
+ case the stack may not be in its original (signal handler return with
+ R1 pointing at the dummy frame) state. We do have the ucontext
+ address in R3, so simply copy R3 to R1 before the syscall. */
+L(do_sigret):
+ mr r1,r3,
+ li r0,SYS_ify(rt_sigreturn)
+ sc
+ /* No return. */
+
+PSEUDO_END(__setcontext)
+
+versioned_symbol (libc, __setcontext, setcontext, GLIBC_2_3_4)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/shlib-versions b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/shlib-versions
new file mode 100644
index 0000000000..bc6debaf69
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/shlib-versions
@@ -0,0 +1,7 @@
+%ifdef HAVE_ELFV2_ABI
+DEFAULT GLIBC_2.17
+ld=ld64.so.2
+%else
+DEFAULT GLIBC_2.3
+ld=ld64.so.1
+%endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/swapcontext.S b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/swapcontext.S
new file mode 100644
index 0000000000..b08d269424
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/swapcontext.S
@@ -0,0 +1,797 @@
+/* Save current context and install the given one.
+ Copyright (C) 2002-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#include <rtld-global-offsets.h>
+#include <shlib-compat.h>
+
+#define __ASSEMBLY__
+#include <asm/ptrace.h>
+#include "ucontext_i.h"
+#include <asm/errno.h>
+
+ .section ".toc","aw"
+.LC__dl_hwcap:
+#ifdef SHARED
+ .tc _rtld_global_ro[TC],_rtld_global_ro
+#else
+ .tc _dl_hwcap[TC],_dl_hwcap
+#endif
+
+#if SHLIB_COMPAT (libc, GLIBC_2_3, GLIBC_2_3_4)
+ .section ".text"
+ENTRY(__novec_swapcontext)
+ CALL_MCOUNT 2
+ std r0,(SIGCONTEXT_GP_REGS+(PT_R0*8))(r3)
+ std r1,(SIGCONTEXT_GP_REGS+(PT_R1*8))(r3)
+ mflr r0
+ std r31,-8(1)
+ cfi_offset(r31,-8)
+ std r2,(SIGCONTEXT_GP_REGS+(PT_R2*8))(r3)
+ std r0,FRAME_LR_SAVE(r1)
+ cfi_offset (lr, FRAME_LR_SAVE)
+ std r0,(SIGCONTEXT_GP_REGS+(PT_LNK*8))(r3)
+ std r0,(SIGCONTEXT_GP_REGS+(PT_NIP*8))(r3)
+ stdu r1,-128(r1)
+ cfi_adjust_cfa_offset (128)
+ std r4,(SIGCONTEXT_GP_REGS+(PT_R4*8))(r3)
+ std r5,(SIGCONTEXT_GP_REGS+(PT_R5*8))(r3)
+ std r6,(SIGCONTEXT_GP_REGS+(PT_R6*8))(r3)
+ std r7,(SIGCONTEXT_GP_REGS+(PT_R7*8))(r3)
+ std r8,(SIGCONTEXT_GP_REGS+(PT_R8*8))(r3)
+ std r9,(SIGCONTEXT_GP_REGS+(PT_R9*8))(r3)
+ std r10,(SIGCONTEXT_GP_REGS+(PT_R10*8))(r3)
+ std r11,(SIGCONTEXT_GP_REGS+(PT_R11*8))(r3)
+ std r12,(SIGCONTEXT_GP_REGS+(PT_R12*8))(r3)
+ std r13,(SIGCONTEXT_GP_REGS+(PT_R13*8))(r3)
+ std r14,(SIGCONTEXT_GP_REGS+(PT_R14*8))(r3)
+ std r15,(SIGCONTEXT_GP_REGS+(PT_R15*8))(r3)
+ std r16,(SIGCONTEXT_GP_REGS+(PT_R16*8))(r3)
+ std r17,(SIGCONTEXT_GP_REGS+(PT_R17*8))(r3)
+ std r18,(SIGCONTEXT_GP_REGS+(PT_R18*8))(r3)
+ std r19,(SIGCONTEXT_GP_REGS+(PT_R19*8))(r3)
+ std r20,(SIGCONTEXT_GP_REGS+(PT_R20*8))(r3)
+ std r21,(SIGCONTEXT_GP_REGS+(PT_R21*8))(r3)
+ std r22,(SIGCONTEXT_GP_REGS+(PT_R22*8))(r3)
+ std r23,(SIGCONTEXT_GP_REGS+(PT_R23*8))(r3)
+ std r24,(SIGCONTEXT_GP_REGS+(PT_R24*8))(r3)
+ std r25,(SIGCONTEXT_GP_REGS+(PT_R25*8))(r3)
+ std r26,(SIGCONTEXT_GP_REGS+(PT_R26*8))(r3)
+ std r27,(SIGCONTEXT_GP_REGS+(PT_R27*8))(r3)
+ std r28,(SIGCONTEXT_GP_REGS+(PT_R28*8))(r3)
+ std r29,(SIGCONTEXT_GP_REGS+(PT_R29*8))(r3)
+ std r30,(SIGCONTEXT_GP_REGS+(PT_R30*8))(r3)
+ std r31,(SIGCONTEXT_GP_REGS+(PT_R31*8))(r3)
+ mfctr r0
+ std r0,(SIGCONTEXT_GP_REGS+(PT_CTR*8))(r3)
+ mfxer r0
+ std r0,(SIGCONTEXT_GP_REGS+(PT_XER*8))(r3)
+ mfcr r0
+ std r0,(SIGCONTEXT_GP_REGS+(PT_CCR*8))(r3)
+
+ /* Set the return value of swapcontext to "success". R3 is the only
+ register whose value is not preserved in the saved context. */
+ li r0,0
+ std r0,(SIGCONTEXT_GP_REGS+(PT_R3*8))(r3)
+
+ /* Zero fill fields that can't be set in user state or are unused. */
+ std r0,(SIGCONTEXT_GP_REGS+(PT_MSR*8))(r3)
+ std r0,(SIGCONTEXT_GP_REGS+(34*8))(r3)
+ std r0,(SIGCONTEXT_GP_REGS+(PT_SOFTE*8))(r3)
+ std r0,(SIGCONTEXT_GP_REGS+(40*8))(r3)
+ std r0,(SIGCONTEXT_GP_REGS+(41*8))(r3)
+ std r0,(SIGCONTEXT_GP_REGS+(42*8))(r3)
+ std r0,(SIGCONTEXT_GP_REGS+(PT_RESULT*8))(r3)
+
+ /* Set the PT_REGS pointer to the address of sigcontext gp_regs
+ field. Struct pt_regs and elf_gregset_t are the same thing.
+ We kept the regs field for backwards compatibility with
+ libraries built before we extended sigcontext. */
+ addi r0,r3,SIGCONTEXT_GP_REGS
+ std r0,SIGCONTEXT_PT_REGS(r3)
+
+ stfd fp0,(SIGCONTEXT_FP_REGS+(PT_R0*8))(r3)
+ stfd fp1,(SIGCONTEXT_FP_REGS+(PT_R1*8))(r3)
+ stfd fp2,(SIGCONTEXT_FP_REGS+(PT_R2*8))(r3)
+ stfd fp3,(SIGCONTEXT_FP_REGS+(PT_R3*8))(r3)
+ stfd fp4,(SIGCONTEXT_FP_REGS+(PT_R4*8))(r3)
+ stfd fp5,(SIGCONTEXT_FP_REGS+(PT_R5*8))(r3)
+ stfd fp6,(SIGCONTEXT_FP_REGS+(PT_R6*8))(r3)
+ stfd fp7,(SIGCONTEXT_FP_REGS+(PT_R7*8))(r3)
+ stfd fp8,(SIGCONTEXT_FP_REGS+(PT_R8*8))(r3)
+ stfd fp9,(SIGCONTEXT_FP_REGS+(PT_R9*8))(r3)
+ stfd fp10,(SIGCONTEXT_FP_REGS+(PT_R10*8))(r3)
+ stfd fp11,(SIGCONTEXT_FP_REGS+(PT_R11*8))(r3)
+ stfd fp12,(SIGCONTEXT_FP_REGS+(PT_R12*8))(r3)
+ stfd fp13,(SIGCONTEXT_FP_REGS+(PT_R13*8))(r3)
+ stfd fp14,(SIGCONTEXT_FP_REGS+(PT_R14*8))(r3)
+ stfd fp15,(SIGCONTEXT_FP_REGS+(PT_R15*8))(r3)
+ stfd fp16,(SIGCONTEXT_FP_REGS+(PT_R16*8))(r3)
+ stfd fp17,(SIGCONTEXT_FP_REGS+(PT_R17*8))(r3)
+ stfd fp18,(SIGCONTEXT_FP_REGS+(PT_R18*8))(r3)
+ stfd fp19,(SIGCONTEXT_FP_REGS+(PT_R19*8))(r3)
+ stfd fp20,(SIGCONTEXT_FP_REGS+(PT_R20*8))(r3)
+ stfd fp21,(SIGCONTEXT_FP_REGS+(PT_R21*8))(r3)
+ stfd fp22,(SIGCONTEXT_FP_REGS+(PT_R22*8))(r3)
+ stfd fp23,(SIGCONTEXT_FP_REGS+(PT_R23*8))(r3)
+ stfd fp24,(SIGCONTEXT_FP_REGS+(PT_R24*8))(r3)
+ stfd fp25,(SIGCONTEXT_FP_REGS+(PT_R25*8))(r3)
+ stfd fp26,(SIGCONTEXT_FP_REGS+(PT_R26*8))(r3)
+ stfd fp27,(SIGCONTEXT_FP_REGS+(PT_R27*8))(r3)
+ stfd fp28,(SIGCONTEXT_FP_REGS+(PT_R28*8))(r3)
+ stfd fp29,(SIGCONTEXT_FP_REGS+(PT_R29*8))(r3)
+ mffs fp0
+ stfd fp30,(SIGCONTEXT_FP_REGS+(PT_R30*8))(r3)
+ stfd fp31,(SIGCONTEXT_FP_REGS+(PT_R31*8))(r3)
+ stfd fp0,(SIGCONTEXT_FP_REGS+(32*8))(r3)
+
+ mr r31,r4
+ addi r5,r3,UCONTEXT_SIGMASK
+ addi r4,r4,UCONTEXT_SIGMASK
+ li r3,SIG_SETMASK
+ bl JUMPTARGET(__sigprocmask)
+ nop
+ cmpdi r3,0
+ bne L(nv_error_exit)
+
+/*
+ * If this new ucontext refers to the point where we were interrupted
+ * by a signal, we have to use the rt_sigreturn system call to
+ * return to the context so we get both LR and CTR restored.
+ *
+ * Otherwise, the context we are restoring is either just after
+ * a procedure call (getcontext/swapcontext) or at the beginning
+ * of a procedure call (makecontext), so we don't need to restore
+ * msr and ctr. We don't restore r13 since it will be used as
+ * the TLS pointer. */
+ ld r0,(SIGCONTEXT_GP_REGS+(PT_MSR*8))(r31)
+ cmpdi r0,0
+ bne L(nv_do_sigret)
+
+ ld r8,.LC__dl_hwcap@toc(r2)
+# ifdef SHARED
+/* Load _rtld-global._dl_hwcap. */
+ ld r8,RTLD_GLOBAL_RO_DL_HWCAP_OFFSET(r8)
+# else
+ ld r8,0(r8) /* Load extern _dl_hwcap. */
+# endif
+
+ lfd fp0,(SIGCONTEXT_FP_REGS+(32*8))(r31)
+ lfd fp31,(SIGCONTEXT_FP_REGS+(PT_R31*8))(r31)
+ lfd fp30,(SIGCONTEXT_FP_REGS+(PT_R30*8))(r31)
+
+# ifdef _ARCH_PWR6
+ /* Use the extended four-operand version of the mtfsf insn. */
+ .machine push
+ .machine "power6"
+
+ mtfsf 0xff,fp0,1,0
+
+ .machine pop
+# else
+ /* Availability of DFP indicates a 64-bit FPSCR. */
+ andi. r6,r8,PPC_FEATURE_HAS_DFP
+ beq 5f
+
+ .machine push
+ .machine "power6"
+
+ mtfsf 0xff,fp0,1,0
+
+ .machine pop
+
+ b 6f
+ /* Continue to operate on the FPSCR as if it were 32-bits. */
+5:
+ mtfsf 0xff,fp0
+6:
+#endif /* _ARCH_PWR6 */
+
+ lfd fp29,(SIGCONTEXT_FP_REGS+(PT_R29*8))(r31)
+ lfd fp28,(SIGCONTEXT_FP_REGS+(PT_R28*8))(r31)
+ lfd fp27,(SIGCONTEXT_FP_REGS+(PT_R27*8))(r31)
+ lfd fp26,(SIGCONTEXT_FP_REGS+(PT_R26*8))(r31)
+ lfd fp25,(SIGCONTEXT_FP_REGS+(PT_R25*8))(r31)
+ lfd fp24,(SIGCONTEXT_FP_REGS+(PT_R24*8))(r31)
+ lfd fp23,(SIGCONTEXT_FP_REGS+(PT_R23*8))(r31)
+ lfd fp22,(SIGCONTEXT_FP_REGS+(PT_R22*8))(r31)
+ lfd fp21,(SIGCONTEXT_FP_REGS+(PT_R21*8))(r31)
+ lfd fp20,(SIGCONTEXT_FP_REGS+(PT_R20*8))(r31)
+ lfd fp19,(SIGCONTEXT_FP_REGS+(PT_R19*8))(r31)
+ lfd fp18,(SIGCONTEXT_FP_REGS+(PT_R18*8))(r31)
+ lfd fp17,(SIGCONTEXT_FP_REGS+(PT_R17*8))(r31)
+ lfd fp16,(SIGCONTEXT_FP_REGS+(PT_R16*8))(r31)
+ lfd fp15,(SIGCONTEXT_FP_REGS+(PT_R15*8))(r31)
+ lfd fp14,(SIGCONTEXT_FP_REGS+(PT_R14*8))(r31)
+ lfd fp13,(SIGCONTEXT_FP_REGS+(PT_R13*8))(r31)
+ lfd fp12,(SIGCONTEXT_FP_REGS+(PT_R12*8))(r31)
+ lfd fp11,(SIGCONTEXT_FP_REGS+(PT_R11*8))(r31)
+ lfd fp10,(SIGCONTEXT_FP_REGS+(PT_R10*8))(r31)
+ lfd fp9,(SIGCONTEXT_FP_REGS+(PT_R9*8))(r31)
+ lfd fp8,(SIGCONTEXT_FP_REGS+(PT_R8*8))(r31)
+ lfd fp7,(SIGCONTEXT_FP_REGS+(PT_R7*8))(r31)
+ lfd fp6,(SIGCONTEXT_FP_REGS+(PT_R6*8))(r31)
+ lfd fp5,(SIGCONTEXT_FP_REGS+(PT_R5*8))(r31)
+ lfd fp4,(SIGCONTEXT_FP_REGS+(PT_R4*8))(r31)
+ lfd fp3,(SIGCONTEXT_FP_REGS+(PT_R3*8))(r31)
+ lfd fp2,(SIGCONTEXT_FP_REGS+(PT_R2*8))(r31)
+ lfd fp1,(SIGCONTEXT_FP_REGS+(PT_R1*8))(r31)
+ lfd fp0,(SIGCONTEXT_FP_REGS+(PT_R0*8))(r31)
+
+ ld r0,(SIGCONTEXT_GP_REGS+(PT_LNK*8))(r31)
+ ld r1,(SIGCONTEXT_GP_REGS+(PT_R1*8))(r31)
+ mtlr r0
+ ld r2,(SIGCONTEXT_GP_REGS+(PT_R2*8))(r31)
+ ld r0,(SIGCONTEXT_GP_REGS+(PT_XER*8))(r31)
+ ld r3,(SIGCONTEXT_GP_REGS+(PT_R3*8))(r31)
+ mtxer r0
+ ld r4,(SIGCONTEXT_GP_REGS+(PT_R4*8))(r31)
+ ld r0,(SIGCONTEXT_GP_REGS+(PT_CCR*8))(r31)
+ ld r5,(SIGCONTEXT_GP_REGS+(PT_R5*8))(r31)
+ mtcr r0
+ ld r6,(SIGCONTEXT_GP_REGS+(PT_R6*8))(r31)
+ ld r7,(SIGCONTEXT_GP_REGS+(PT_R7*8))(r31)
+ ld r8,(SIGCONTEXT_GP_REGS+(PT_R8*8))(r31)
+ ld r9,(SIGCONTEXT_GP_REGS+(PT_R9*8))(r31)
+ ld r10,(SIGCONTEXT_GP_REGS+(PT_R10*8))(r31)
+ ld r11,(SIGCONTEXT_GP_REGS+(PT_R11*8))(r31)
+ ld r12,(SIGCONTEXT_GP_REGS+(PT_R12*8))(r31)
+ /* Don't reload the thread ID or TLS pointer (r13). */
+ ld r14,(SIGCONTEXT_GP_REGS+(PT_R14*8))(r31)
+ ld r15,(SIGCONTEXT_GP_REGS+(PT_R15*8))(r31)
+ ld r16,(SIGCONTEXT_GP_REGS+(PT_R16*8))(r31)
+ ld r17,(SIGCONTEXT_GP_REGS+(PT_R17*8))(r31)
+ ld r18,(SIGCONTEXT_GP_REGS+(PT_R18*8))(r31)
+ ld r19,(SIGCONTEXT_GP_REGS+(PT_R19*8))(r31)
+ ld r20,(SIGCONTEXT_GP_REGS+(PT_R20*8))(r31)
+ ld r21,(SIGCONTEXT_GP_REGS+(PT_R21*8))(r31)
+ ld r22,(SIGCONTEXT_GP_REGS+(PT_R22*8))(r31)
+ ld r23,(SIGCONTEXT_GP_REGS+(PT_R23*8))(r31)
+ ld r24,(SIGCONTEXT_GP_REGS+(PT_R24*8))(r31)
+ ld r25,(SIGCONTEXT_GP_REGS+(PT_R25*8))(r31)
+ ld r26,(SIGCONTEXT_GP_REGS+(PT_R26*8))(r31)
+ ld r27,(SIGCONTEXT_GP_REGS+(PT_R27*8))(r31)
+ ld r28,(SIGCONTEXT_GP_REGS+(PT_R28*8))(r31)
+ ld r29,(SIGCONTEXT_GP_REGS+(PT_R29*8))(r31)
+ ld r30,(SIGCONTEXT_GP_REGS+(PT_R30*8))(r31)
+
+ /* Now we branch to the "Next Instruction Pointer" from the saved
+ context. With the powerpc64 instruction set there is no good way to
+ do this (from user state) without clobbering either the LR or CTR.
+ The makecontext and swapcontext functions depend on the callers
+ LR being preserved so we use the CTR. */
+ ld r0,(SIGCONTEXT_GP_REGS+(PT_NIP*8))(r31)
+ mtctr r0
+ ld r0,(SIGCONTEXT_GP_REGS+(PT_R0*8))(r31)
+ ld r31,(SIGCONTEXT_GP_REGS+(PT_R31*8))(r31)
+ bctr
+
+L(nv_error_exit):
+ ld r0,128+FRAME_LR_SAVE(r1)
+ addi r1,r1,128
+ mtlr r0
+ ld r31,-8(r1)
+ blr
+
+ /* At this point we assume that the ucontext was created by a
+ rt_signal and we should use rt_sigreturn to restore the original
+ state. As of the 2.4.21 kernel the ucontext is the first thing
+ (offset 0) in the rt_signal frame and rt_sigreturn expects the
+ ucontext address in R1. Normally the rt-signal trampoline handles
+ this by popping dummy frame before the rt_signal syscall. In our
+ case the stack may not be in its original (signal handler return with
+ R1 pointing at the dummy frame) state. We do have the ucontext
+ address in R3, so simply copy R3 to R1 before the syscall. */
+L(nv_do_sigret):
+ mr r1,r3,
+ li r0,SYS_ify(rt_sigreturn)
+ sc
+ /* No return. */
+
+PSEUDO_END(__novec_swapcontext)
+
+compat_symbol (libc, __novec_swapcontext, swapcontext, GLIBC_2_3)
+
+#endif
+
+ .section ".text"
+ .machine "altivec"
+ENTRY(__swapcontext)
+ CALL_MCOUNT 2
+ std r0,(SIGCONTEXT_GP_REGS+(PT_R0*8))(r3)
+ std r1,(SIGCONTEXT_GP_REGS+(PT_R1*8))(r3)
+ mflr r0
+ std r31,-8(1)
+ cfi_offset(r31,-8)
+ std r2,(SIGCONTEXT_GP_REGS+(PT_R2*8))(r3)
+ std r0,FRAME_LR_SAVE(r1)
+ cfi_offset (lr, FRAME_LR_SAVE)
+ std r0,(SIGCONTEXT_GP_REGS+(PT_LNK*8))(r3)
+ std r0,(SIGCONTEXT_GP_REGS+(PT_NIP*8))(r3)
+ stdu r1,-128(r1)
+ cfi_adjust_cfa_offset(128)
+ std r4,(SIGCONTEXT_GP_REGS+(PT_R4*8))(r3)
+ std r5,(SIGCONTEXT_GP_REGS+(PT_R5*8))(r3)
+ std r6,(SIGCONTEXT_GP_REGS+(PT_R6*8))(r3)
+ std r7,(SIGCONTEXT_GP_REGS+(PT_R7*8))(r3)
+ std r8,(SIGCONTEXT_GP_REGS+(PT_R8*8))(r3)
+ std r9,(SIGCONTEXT_GP_REGS+(PT_R9*8))(r3)
+ std r10,(SIGCONTEXT_GP_REGS+(PT_R10*8))(r3)
+ std r11,(SIGCONTEXT_GP_REGS+(PT_R11*8))(r3)
+ std r12,(SIGCONTEXT_GP_REGS+(PT_R12*8))(r3)
+ std r13,(SIGCONTEXT_GP_REGS+(PT_R13*8))(r3)
+ std r14,(SIGCONTEXT_GP_REGS+(PT_R14*8))(r3)
+ std r15,(SIGCONTEXT_GP_REGS+(PT_R15*8))(r3)
+ std r16,(SIGCONTEXT_GP_REGS+(PT_R16*8))(r3)
+ std r17,(SIGCONTEXT_GP_REGS+(PT_R17*8))(r3)
+ std r18,(SIGCONTEXT_GP_REGS+(PT_R18*8))(r3)
+ std r19,(SIGCONTEXT_GP_REGS+(PT_R19*8))(r3)
+ std r20,(SIGCONTEXT_GP_REGS+(PT_R20*8))(r3)
+ std r21,(SIGCONTEXT_GP_REGS+(PT_R21*8))(r3)
+ std r22,(SIGCONTEXT_GP_REGS+(PT_R22*8))(r3)
+ std r23,(SIGCONTEXT_GP_REGS+(PT_R23*8))(r3)
+ std r24,(SIGCONTEXT_GP_REGS+(PT_R24*8))(r3)
+ std r25,(SIGCONTEXT_GP_REGS+(PT_R25*8))(r3)
+ std r26,(SIGCONTEXT_GP_REGS+(PT_R26*8))(r3)
+ std r27,(SIGCONTEXT_GP_REGS+(PT_R27*8))(r3)
+ std r28,(SIGCONTEXT_GP_REGS+(PT_R28*8))(r3)
+ std r29,(SIGCONTEXT_GP_REGS+(PT_R29*8))(r3)
+ std r30,(SIGCONTEXT_GP_REGS+(PT_R30*8))(r3)
+ std r31,(SIGCONTEXT_GP_REGS+(PT_R31*8))(r3)
+ mfctr r0
+ std r0,(SIGCONTEXT_GP_REGS+(PT_CTR*8))(r3)
+ mfxer r0
+ std r0,(SIGCONTEXT_GP_REGS+(PT_XER*8))(r3)
+ mfcr r0
+ std r0,(SIGCONTEXT_GP_REGS+(PT_CCR*8))(r3)
+
+ /* Set the return value of swapcontext to "success". R3 is the only
+ register whose value is not preserved in the saved context. */
+ li r0,0
+ std r0,(SIGCONTEXT_GP_REGS+(PT_R3*8))(r3)
+
+ /* Zero fill fields that can't be set in user state or are unused. */
+ std r0,(SIGCONTEXT_GP_REGS+(PT_MSR*8))(r3)
+ std r0,(SIGCONTEXT_GP_REGS+(34*8))(r3)
+ std r0,(SIGCONTEXT_GP_REGS+(PT_SOFTE*8))(r3)
+ std r0,(SIGCONTEXT_GP_REGS+(40*8))(r3)
+ std r0,(SIGCONTEXT_GP_REGS+(41*8))(r3)
+ std r0,(SIGCONTEXT_GP_REGS+(42*8))(r3)
+ std r0,(SIGCONTEXT_GP_REGS+(PT_RESULT*8))(r3)
+
+ /* Set the PT_REGS pointer to the address of sigcontext gp_regs
+ field. Struct pt_regs and elf_gregset_t are the same thing.
+ We kept the regs field for backwards compatibility with
+ libraries built before we extended sigcontext. */
+ addi r0,r3,SIGCONTEXT_GP_REGS
+ std r0,SIGCONTEXT_PT_REGS(r3)
+
+ stfd fp0,(SIGCONTEXT_FP_REGS+(PT_R0*8))(r3)
+ stfd fp1,(SIGCONTEXT_FP_REGS+(PT_R1*8))(r3)
+ stfd fp2,(SIGCONTEXT_FP_REGS+(PT_R2*8))(r3)
+ stfd fp3,(SIGCONTEXT_FP_REGS+(PT_R3*8))(r3)
+ stfd fp4,(SIGCONTEXT_FP_REGS+(PT_R4*8))(r3)
+ stfd fp5,(SIGCONTEXT_FP_REGS+(PT_R5*8))(r3)
+ stfd fp6,(SIGCONTEXT_FP_REGS+(PT_R6*8))(r3)
+ stfd fp7,(SIGCONTEXT_FP_REGS+(PT_R7*8))(r3)
+ stfd fp8,(SIGCONTEXT_FP_REGS+(PT_R8*8))(r3)
+ stfd fp9,(SIGCONTEXT_FP_REGS+(PT_R9*8))(r3)
+ stfd fp10,(SIGCONTEXT_FP_REGS+(PT_R10*8))(r3)
+ stfd fp11,(SIGCONTEXT_FP_REGS+(PT_R11*8))(r3)
+ stfd fp12,(SIGCONTEXT_FP_REGS+(PT_R12*8))(r3)
+ stfd fp13,(SIGCONTEXT_FP_REGS+(PT_R13*8))(r3)
+ stfd fp14,(SIGCONTEXT_FP_REGS+(PT_R14*8))(r3)
+ stfd fp15,(SIGCONTEXT_FP_REGS+(PT_R15*8))(r3)
+ stfd fp16,(SIGCONTEXT_FP_REGS+(PT_R16*8))(r3)
+ stfd fp17,(SIGCONTEXT_FP_REGS+(PT_R17*8))(r3)
+ stfd fp18,(SIGCONTEXT_FP_REGS+(PT_R18*8))(r3)
+ stfd fp19,(SIGCONTEXT_FP_REGS+(PT_R19*8))(r3)
+ stfd fp20,(SIGCONTEXT_FP_REGS+(PT_R20*8))(r3)
+ stfd fp21,(SIGCONTEXT_FP_REGS+(PT_R21*8))(r3)
+ stfd fp22,(SIGCONTEXT_FP_REGS+(PT_R22*8))(r3)
+ stfd fp23,(SIGCONTEXT_FP_REGS+(PT_R23*8))(r3)
+ stfd fp24,(SIGCONTEXT_FP_REGS+(PT_R24*8))(r3)
+ stfd fp25,(SIGCONTEXT_FP_REGS+(PT_R25*8))(r3)
+ stfd fp26,(SIGCONTEXT_FP_REGS+(PT_R26*8))(r3)
+ stfd fp27,(SIGCONTEXT_FP_REGS+(PT_R27*8))(r3)
+ stfd fp28,(SIGCONTEXT_FP_REGS+(PT_R28*8))(r3)
+ stfd fp29,(SIGCONTEXT_FP_REGS+(PT_R29*8))(r3)
+ mffs fp0
+ stfd fp30,(SIGCONTEXT_FP_REGS+(PT_R30*8))(r3)
+ stfd fp31,(SIGCONTEXT_FP_REGS+(PT_R31*8))(r3)
+ stfd fp0,(SIGCONTEXT_FP_REGS+(32*8))(r3)
+
+ ld r8,.LC__dl_hwcap@toc(r2)
+#ifdef SHARED
+/* Load _rtld-global._dl_hwcap. */
+ ld r8,RTLD_GLOBAL_RO_DL_HWCAP_OFFSET(r8)
+#else
+ ld r8,0(r8) /* Load extern _dl_hwcap. */
+#endif
+ la r10,(SIGCONTEXT_V_RESERVE+8)(r3)
+ la r9,(SIGCONTEXT_V_RESERVE+24)(r3)
+
+ andis. r6,r8,(PPC_FEATURE_HAS_ALTIVEC >> 16)
+
+ clrrdi r10,r10,4
+ beq L(has_no_vec)
+
+ clrrdi r9,r9,4
+ mr r8,r10 /* Capture *v_regs value in r5. */
+
+ stvx v0,0,r10
+ stvx v1,0,r9
+ addi r10,r10,32
+ addi r9,r9,32
+
+ stvx v2,0,r10
+ stvx v3,0,r9
+ addi r10,r10,32
+ addi r9,r9,32
+
+ stvx v4,0,r10
+ stvx v5,0,r9
+ addi r10,r10,32
+ addi r9,r9,32
+
+ stvx v6,0,r10
+ stvx v7,0,r9
+ addi r10,r10,32
+ addi r9,r9,32
+
+ stvx v8,0,r10
+ stvx v9,0,r9
+ addi r10,r10,32
+ addi r9,r9,32
+
+ stvx v10,0,r10
+ stvx v11,0,r9
+ addi r10,r10,32
+ addi r9,r9,32
+
+ stvx v12,0,r10
+ stvx v13,0,r9
+ addi r10,r10,32
+ addi r9,r9,32
+
+ stvx v14,0,r10
+ stvx v15,0,r9
+ addi r10,r10,32
+ addi r9,r9,32
+
+ stvx v16,0,r10
+ stvx v17,0,r9
+ addi r10,r10,32
+ addi r9,r9,32
+
+ stvx v18,0,r10
+ stvx v19,0,r9
+ addi r10,r10,32
+ addi r9,r9,32
+
+ stvx v20,0,r10
+ stvx v21,0,r9
+ addi r10,r10,32
+ addi r9,r9,32
+
+ stvx v22,0,r10
+ stvx v23,0,r9
+ addi r10,r10,32
+ addi r9,r9,32
+
+ stvx v24,0,r10
+ stvx v25,0,r9
+ addi r10,r10,32
+ addi r9,r9,32
+
+ stvx v26,0,r10
+ stvx v27,0,r9
+ addi r10,r10,32
+ addi r9,r9,32
+
+ stvx v28,0,r10
+ stvx v29,0,r9
+ addi r10,r10,32
+ addi r9,r9,32
+
+ stvx v30,0,r10
+ stvx v31,0,r9
+ addi r10,r10,32
+ addi r9,r9,32
+
+ mfvscr v0
+ mfspr r0,VRSAVE
+ stvx v0,0,r10
+ stw r0,0(r9)
+
+L(has_no_vec):
+/*
+ Store either a NULL or a quadword aligned pointer to the Vector register
+ array into *v_regs.
+*/
+ std r8,(SIGCONTEXT_V_REGS_PTR)(r3)
+
+ mr r31,r4
+ addi r5,r3,UCONTEXT_SIGMASK
+ addi r4,r4,UCONTEXT_SIGMASK
+ li r3,SIG_SETMASK
+ bl JUMPTARGET(__sigprocmask)
+ nop
+ cmpdi r3,0
+ bne L(error_exit)
+
+/*
+ * If this new ucontext refers to the point where we were interrupted
+ * by a signal, we have to use the rt_sigreturn system call to
+ * return to the context so we get both LR and CTR restored.
+ *
+ * Otherwise, the context we are restoring is either just after
+ * a procedure call (getcontext/swapcontext) or at the beginning
+ * of a procedure call (makecontext), so we don't need to restore
+ * msr and ctr. We don't restore r13 since it will be used as
+ * the TLS pointer. */
+ ld r0,(SIGCONTEXT_GP_REGS+(PT_MSR*8))(r31)
+ cmpdi r0,0
+ bne L(do_sigret)
+
+ ld r8,.LC__dl_hwcap@toc(r2)
+ ld r10,(SIGCONTEXT_V_REGS_PTR)(r31)
+# ifdef SHARED
+/* Load _rtld-global._dl_hwcap. */
+ ld r8,RTLD_GLOBAL_RO_DL_HWCAP_OFFSET(r8)
+# else
+ ld r8,0(r8) /* Load extern _dl_hwcap. */
+# endif
+ andis. r6,r8,(PPC_FEATURE_HAS_ALTIVEC >> 16)
+ beq L(has_no_vec2)
+
+ cmpdi r10,0
+ beq L(has_no_vec2)
+ lwz r0,(33*16)(r10)
+
+ li r9,(16*32)
+ mtspr VRSAVE,r0
+ cmpwi r0,0
+ beq L(has_no_vec2)
+
+ lvx v19,r9,r10
+ la r9,(16)(r10)
+
+ lvx v0,0,r10
+ lvx v1,0,r9
+ addi r10,r10,32
+ addi r9,r9,32
+
+ mtvscr v19
+ lvx v2,0,r10
+ lvx v3,0,r9
+ addi r10,r10,32
+ addi r9,r9,32
+
+ lvx v4,0,r10
+ lvx v5,0,r9
+ addi r10,r10,32
+ addi r9,r9,32
+
+ lvx v6,0,r10
+ lvx v7,0,r9
+ addi r10,r10,32
+ addi r9,r9,32
+
+ lvx v8,0,r10
+ lvx v9,0,r9
+ addi r10,r10,32
+ addi r9,r9,32
+
+ lvx v10,0,r10
+ lvx v11,0,r9
+ addi r10,r10,32
+ addi r9,r9,32
+
+ lvx v12,0,r10
+ lvx v13,0,r9
+ addi r10,r10,32
+ addi r9,r9,32
+
+ lvx v14,0,r10
+ lvx v15,0,r9
+ addi r10,r10,32
+ addi r9,r9,32
+
+ lvx v16,0,r10
+ lvx v17,0,r9
+ addi r10,r10,32
+ addi r9,r9,32
+
+ lvx v18,0,r10
+ lvx v19,0,r9
+ addi r10,r10,32
+ addi r9,r9,32
+
+ lvx v20,0,r10
+ lvx v21,0,r9
+ addi r10,r10,32
+ addi r9,r9,32
+
+ lvx v22,0,r10
+ lvx v23,0,r9
+ addi r10,r10,32
+ addi r9,r9,32
+
+ lvx v24,0,r10
+ lvx v25,0,r9
+ addi r10,r10,32
+ addi r9,r9,32
+
+ lvx v26,0,r10
+ lvx v27,0,r9
+ addi r10,r10,32
+ addi r9,r9,32
+
+ lvx v28,0,r10
+ lvx v29,0,r9
+ addi r10,r10,32
+ addi r9,r9,32
+
+ lvx v30,0,r10
+ lvx v31,0,r9
+ addi r10,r10,32
+ addi r9,r9,32
+
+ lvx v10,0,r10
+ lvx v11,0,r9
+ addi r10,r10,32
+ addi r9,r9,32
+
+L(has_no_vec2):
+
+ lfd fp0,(SIGCONTEXT_FP_REGS+(32*8))(r31)
+ lfd fp31,(SIGCONTEXT_FP_REGS+(PT_R31*8))(r31)
+ lfd fp30,(SIGCONTEXT_FP_REGS+(PT_R30*8))(r31)
+
+# ifdef _ARCH_PWR6
+ /* Use the extended four-operand version of the mtfsf insn. */
+ .machine push
+ .machine "power6"
+
+ mtfsf 0xff,fp0,1,0
+
+ .machine pop
+# else
+ /* Availability of DFP indicates a 64-bit FPSCR. */
+ andi. r6,r8,PPC_FEATURE_HAS_DFP
+ beq 7f
+
+ .machine push
+ .machine "power6"
+
+ mtfsf 0xff,fp0,1,0
+
+ .machine pop
+
+ b 8f
+ /* Continue to operate on the FPSCR as if it were 32-bits. */
+7:
+ mtfsf 0xff,fp0
+8:
+#endif /* _ARCH_PWR6 */
+
+ lfd fp29,(SIGCONTEXT_FP_REGS+(PT_R29*8))(r31)
+ lfd fp28,(SIGCONTEXT_FP_REGS+(PT_R28*8))(r31)
+ lfd fp27,(SIGCONTEXT_FP_REGS+(PT_R27*8))(r31)
+ lfd fp26,(SIGCONTEXT_FP_REGS+(PT_R26*8))(r31)
+ lfd fp25,(SIGCONTEXT_FP_REGS+(PT_R25*8))(r31)
+ lfd fp24,(SIGCONTEXT_FP_REGS+(PT_R24*8))(r31)
+ lfd fp23,(SIGCONTEXT_FP_REGS+(PT_R23*8))(r31)
+ lfd fp22,(SIGCONTEXT_FP_REGS+(PT_R22*8))(r31)
+ lfd fp21,(SIGCONTEXT_FP_REGS+(PT_R21*8))(r31)
+ lfd fp20,(SIGCONTEXT_FP_REGS+(PT_R20*8))(r31)
+ lfd fp19,(SIGCONTEXT_FP_REGS+(PT_R19*8))(r31)
+ lfd fp18,(SIGCONTEXT_FP_REGS+(PT_R18*8))(r31)
+ lfd fp17,(SIGCONTEXT_FP_REGS+(PT_R17*8))(r31)
+ lfd fp16,(SIGCONTEXT_FP_REGS+(PT_R16*8))(r31)
+ lfd fp15,(SIGCONTEXT_FP_REGS+(PT_R15*8))(r31)
+ lfd fp14,(SIGCONTEXT_FP_REGS+(PT_R14*8))(r31)
+ lfd fp13,(SIGCONTEXT_FP_REGS+(PT_R13*8))(r31)
+ lfd fp12,(SIGCONTEXT_FP_REGS+(PT_R12*8))(r31)
+ lfd fp11,(SIGCONTEXT_FP_REGS+(PT_R11*8))(r31)
+ lfd fp10,(SIGCONTEXT_FP_REGS+(PT_R10*8))(r31)
+ lfd fp9,(SIGCONTEXT_FP_REGS+(PT_R9*8))(r31)
+ lfd fp8,(SIGCONTEXT_FP_REGS+(PT_R8*8))(r31)
+ lfd fp7,(SIGCONTEXT_FP_REGS+(PT_R7*8))(r31)
+ lfd fp6,(SIGCONTEXT_FP_REGS+(PT_R6*8))(r31)
+ lfd fp5,(SIGCONTEXT_FP_REGS+(PT_R5*8))(r31)
+ lfd fp4,(SIGCONTEXT_FP_REGS+(PT_R4*8))(r31)
+ lfd fp3,(SIGCONTEXT_FP_REGS+(PT_R3*8))(r31)
+ lfd fp2,(SIGCONTEXT_FP_REGS+(PT_R2*8))(r31)
+ lfd fp1,(SIGCONTEXT_FP_REGS+(PT_R1*8))(r31)
+ lfd fp0,(SIGCONTEXT_FP_REGS+(PT_R0*8))(r31)
+
+ ld r0,(SIGCONTEXT_GP_REGS+(PT_LNK*8))(r31)
+ ld r1,(SIGCONTEXT_GP_REGS+(PT_R1*8))(r31)
+ mtlr r0
+ ld r2,(SIGCONTEXT_GP_REGS+(PT_R2*8))(r31)
+ ld r0,(SIGCONTEXT_GP_REGS+(PT_XER*8))(r31)
+ ld r3,(SIGCONTEXT_GP_REGS+(PT_R3*8))(r31)
+ mtxer r0
+ ld r4,(SIGCONTEXT_GP_REGS+(PT_R4*8))(r31)
+ ld r0,(SIGCONTEXT_GP_REGS+(PT_CCR*8))(r31)
+ ld r5,(SIGCONTEXT_GP_REGS+(PT_R5*8))(r31)
+ ld r6,(SIGCONTEXT_GP_REGS+(PT_R6*8))(r31)
+ ld r7,(SIGCONTEXT_GP_REGS+(PT_R7*8))(r31)
+ ld r8,(SIGCONTEXT_GP_REGS+(PT_R8*8))(r31)
+ ld r9,(SIGCONTEXT_GP_REGS+(PT_R9*8))(r31)
+ mtcr r0
+ ld r10,(SIGCONTEXT_GP_REGS+(PT_R10*8))(r31)
+ ld r11,(SIGCONTEXT_GP_REGS+(PT_R11*8))(r31)
+ ld r12,(SIGCONTEXT_GP_REGS+(PT_R12*8))(r31)
+ /* Don't reload the thread ID or TLS pointer (r13). */
+ ld r14,(SIGCONTEXT_GP_REGS+(PT_R14*8))(r31)
+ ld r15,(SIGCONTEXT_GP_REGS+(PT_R15*8))(r31)
+ ld r16,(SIGCONTEXT_GP_REGS+(PT_R16*8))(r31)
+ ld r17,(SIGCONTEXT_GP_REGS+(PT_R17*8))(r31)
+ ld r18,(SIGCONTEXT_GP_REGS+(PT_R18*8))(r31)
+ ld r19,(SIGCONTEXT_GP_REGS+(PT_R19*8))(r31)
+ ld r20,(SIGCONTEXT_GP_REGS+(PT_R20*8))(r31)
+ ld r21,(SIGCONTEXT_GP_REGS+(PT_R21*8))(r31)
+ ld r22,(SIGCONTEXT_GP_REGS+(PT_R22*8))(r31)
+ ld r23,(SIGCONTEXT_GP_REGS+(PT_R23*8))(r31)
+ ld r24,(SIGCONTEXT_GP_REGS+(PT_R24*8))(r31)
+ ld r25,(SIGCONTEXT_GP_REGS+(PT_R25*8))(r31)
+ ld r26,(SIGCONTEXT_GP_REGS+(PT_R26*8))(r31)
+ ld r27,(SIGCONTEXT_GP_REGS+(PT_R27*8))(r31)
+ ld r28,(SIGCONTEXT_GP_REGS+(PT_R28*8))(r31)
+ ld r29,(SIGCONTEXT_GP_REGS+(PT_R29*8))(r31)
+ ld r30,(SIGCONTEXT_GP_REGS+(PT_R30*8))(r31)
+
+ /* Now we branch to the "Next Instruction Pointer" from the saved
+ context. With the powerpc64 instruction set there is no good way to
+ do this (from user state) without clobbering either the LR or CTR.
+ The makecontext and swapcontext functions depend on the callers
+ LR being preserved so we use the CTR. */
+ ld r0,(SIGCONTEXT_GP_REGS+(PT_NIP*8))(r31)
+ mtctr r0
+ ld r0,(SIGCONTEXT_GP_REGS+(PT_R0*8))(r31)
+ ld r31,(SIGCONTEXT_GP_REGS+(PT_R31*8))(r31)
+ bctr
+
+L(error_exit):
+ ld r0,128+FRAME_LR_SAVE(r1)
+ addi r1,r1,128
+ mtlr r0
+ ld r31,-8(r1)
+ blr
+
+ /* At this point we assume that the ucontext was created by a
+ rt_signal and we should use rt_sigreturn to restore the original
+ state. As of the 2.4.21 kernel the ucontext is the first thing
+ (offset 0) in the rt_signal frame and rt_sigreturn expects the
+ ucontext address in R1. Normally the rt-signal trampoline handles
+ this by popping dummy frame before the rt_signal syscall. In our
+ case the stack may not be in its original (signal handler return with
+ R1 pointing at the dummy frame) state. We do have the ucontext
+ address in R3, so simply copy R3 to R1 before the syscall. */
+L(do_sigret):
+ mr r1,r3,
+ li r0,SYS_ify(rt_sigreturn)
+ sc
+ /* No return. */
+
+PSEUDO_END(__swapcontext)
+
+versioned_symbol (libc, __swapcontext, swapcontext, GLIBC_2_3_4)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h
new file mode 100644
index 0000000000..cad13da3ba
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h
@@ -0,0 +1,147 @@
+/* Cancellable system call stubs. Linux/PowerPC64 version.
+ Copyright (C) 2003-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Franz Sirl <Franz.Sirl-kernel@lauterbach.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)
+
+# define DASHDASHPFX(str) __##str
+
+#if _CALL_ELF == 2
+#define CANCEL_FRAMESIZE (FRAME_MIN_SIZE+16+48)
+#define CANCEL_PARM_SAVE (FRAME_MIN_SIZE+16)
+#else
+#define CANCEL_FRAMESIZE (FRAME_MIN_SIZE+16)
+#define CANCEL_PARM_SAVE (CANCEL_FRAMESIZE+FRAME_PARM_SAVE)
+#endif
+
+# undef PSEUDO
+# define PSEUDO(name, syscall_name, args) \
+ .section ".text"; \
+ ENTRY (name) \
+ SINGLE_THREAD_P; \
+ bne- .Lpseudo_cancel; \
+ .type DASHDASHPFX(syscall_name##_nocancel),@function; \
+ .globl DASHDASHPFX(syscall_name##_nocancel); \
+ DASHDASHPFX(syscall_name##_nocancel): \
+ DO_CALL (SYS_ify (syscall_name)); \
+ PSEUDO_RET; \
+ .size DASHDASHPFX(syscall_name##_nocancel),.-DASHDASHPFX(syscall_name##_nocancel); \
+ .Lpseudo_cancel: \
+ stdu 1,-CANCEL_FRAMESIZE(1); \
+ cfi_adjust_cfa_offset (CANCEL_FRAMESIZE); \
+ mflr 9; \
+ std 9,CANCEL_FRAMESIZE+FRAME_LR_SAVE(1); \
+ cfi_offset (lr, FRAME_LR_SAVE); \
+ DOCARGS_##args; /* save syscall args around CENABLE. */ \
+ CENABLE; \
+ std 3,FRAME_MIN_SIZE(1); /* store CENABLE return value (MASK). */ \
+ UNDOCARGS_##args; /* restore syscall args. */ \
+ DO_CALL (SYS_ify (syscall_name)); \
+ mfcr 0; /* save CR/R3 around CDISABLE. */ \
+ std 3,FRAME_MIN_SIZE+8(1); \
+ std 0,CANCEL_FRAMESIZE+FRAME_CR_SAVE(1); \
+ cfi_offset (cr, FRAME_CR_SAVE); \
+ ld 3,FRAME_MIN_SIZE(1); /* pass MASK to CDISABLE. */ \
+ CDISABLE; \
+ ld 9,CANCEL_FRAMESIZE+FRAME_LR_SAVE(1); \
+ ld 0,CANCEL_FRAMESIZE+FRAME_CR_SAVE(1); /* restore CR/R3. */ \
+ ld 3,FRAME_MIN_SIZE+8(1); \
+ mtlr 9; \
+ mtcr 0; \
+ addi 1,1,CANCEL_FRAMESIZE; \
+ cfi_adjust_cfa_offset (-CANCEL_FRAMESIZE); \
+ cfi_restore (lr); \
+ cfi_restore (cr)
+
+# define DOCARGS_0
+# define UNDOCARGS_0
+
+# define DOCARGS_1 std 3,CANCEL_PARM_SAVE(1); DOCARGS_0
+# define UNDOCARGS_1 ld 3,CANCEL_PARM_SAVE(1); UNDOCARGS_0
+
+# define DOCARGS_2 std 4,CANCEL_PARM_SAVE+8(1); DOCARGS_1
+# define UNDOCARGS_2 ld 4,CANCEL_PARM_SAVE+8(1); UNDOCARGS_1
+
+# define DOCARGS_3 std 5,CANCEL_PARM_SAVE+16(1); DOCARGS_2
+# define UNDOCARGS_3 ld 5,CANCEL_PARM_SAVE+16(1); UNDOCARGS_2
+
+# define DOCARGS_4 std 6,CANCEL_PARM_SAVE+24(1); DOCARGS_3
+# define UNDOCARGS_4 ld 6,CANCEL_PARM_SAVE+24(1); UNDOCARGS_3
+
+# define DOCARGS_5 std 7,CANCEL_PARM_SAVE+32(1); DOCARGS_4
+# define UNDOCARGS_5 ld 7,CANCEL_PARM_SAVE+32(1); UNDOCARGS_4
+
+# define DOCARGS_6 std 8,CANCEL_PARM_SAVE+40(1); DOCARGS_5
+# define UNDOCARGS_6 ld 8,CANCEL_PARM_SAVE+40(1); UNDOCARGS_5
+
+# if IS_IN (libpthread)
+# ifdef SHARED
+# define CENABLE bl JUMPTARGET(__pthread_enable_asynccancel)
+# define CDISABLE bl JUMPTARGET(__pthread_disable_asynccancel)
+# else
+# define CENABLE bl JUMPTARGET(__pthread_enable_asynccancel); nop
+# define CDISABLE bl JUMPTARGET(__pthread_disable_asynccancel); nop
+# endif
+# elif IS_IN (libc)
+# ifdef SHARED
+# define CENABLE bl JUMPTARGET(__libc_enable_asynccancel)
+# define CDISABLE bl JUMPTARGET(__libc_disable_asynccancel)
+# else
+# define CENABLE bl JUMPTARGET(__libc_enable_asynccancel); nop
+# define CDISABLE bl JUMPTARGET(__libc_disable_asynccancel); nop
+# endif
+# elif IS_IN (librt)
+# ifdef SHARED
+# define CENABLE bl JUMPTARGET(__librt_enable_asynccancel)
+# define CDISABLE bl JUMPTARGET(__librt_disable_asynccancel)
+# else
+# define CENABLE bl JUMPTARGET(__librt_enable_asynccancel); nop
+# define CDISABLE bl JUMPTARGET(__librt_disable_asynccancel); nop
+# endif
+# else
+# error Unsupported library
+# endif
+
+# ifndef __ASSEMBLER__
+# define SINGLE_THREAD_P \
+ __builtin_expect (THREAD_GETMEM (THREAD_SELF, \
+ header.multiple_threads) == 0, 1)
+# else
+# define SINGLE_THREAD_P \
+ lwz 10,MULTIPLE_THREADS_OFFSET(13); \
+ cmpwi 10,0
+# 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/powerpc/powerpc64/sysdep.h b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep.h
new file mode 100644
index 0000000000..cc8f931626
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep.h
@@ -0,0 +1,239 @@
+/* Copyright (C) 1992-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/>. */
+
+/* Alan Modra <amodra@bigpond.net.au> rewrote the INLINE_SYSCALL macro */
+
+#ifndef _LINUX_POWERPC_SYSDEP_H
+#define _LINUX_POWERPC_SYSDEP_H 1
+
+#include <sysdeps/unix/sysv/linux/sysdep.h>
+#include <sysdeps/unix/powerpc/sysdep.h>
+#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. */
+#undef SYS_ify
+#define SYS_ify(syscall_name) __NR_##syscall_name
+
+#ifdef __ASSEMBLER__
+
+/* This seems to always be the case on PPC. */
+# define ALIGNARG(log2) log2
+# define ASM_SIZE_DIRECTIVE(name) .size name,.-name
+
+#endif /* __ASSEMBLER__ */
+
+/* This version is for internal uses when there is no desire
+ to set errno */
+#define INTERNAL_VSYSCALL_NO_SYSCALL_FALLBACK(name, err, type, nr, args...) \
+ ({ \
+ type sc_ret = ENOSYS; \
+ \
+ __typeof (__vdso_##name) vdsop = __vdso_##name; \
+ PTR_DEMANGLE (vdsop); \
+ if (vdsop != NULL) \
+ sc_ret = \
+ INTERNAL_VSYSCALL_CALL_TYPE (vdsop, err, type, nr, ##args); \
+ else \
+ err = 1 << 28; \
+ sc_ret; \
+ })
+
+/* List of system calls which are supported as vsyscalls. */
+#define HAVE_CLOCK_GETRES_VSYSCALL 1
+#define HAVE_CLOCK_GETTIME_VSYSCALL 1
+#define HAVE_GETCPU_VSYSCALL 1
+
+/* Define a macro which expands inline into the wrapper code for a system
+ call. This use is for internal calls that do not need to handle errors
+ normally. It will never touch errno. This returns just what the kernel
+ gave back in the non-error (CR0.SO cleared) case, otherwise (CR0.SO set)
+ the negation of the return value in the kernel gets reverted. */
+
+#define INTERNAL_VSYSCALL_CALL_TYPE(funcptr, err, type, nr, args...) \
+ ({ \
+ register void *r0 __asm__ ("r0"); \
+ register long int r3 __asm__ ("r3"); \
+ register long int r4 __asm__ ("r4"); \
+ register long int r5 __asm__ ("r5"); \
+ register long int r6 __asm__ ("r6"); \
+ register long int r7 __asm__ ("r7"); \
+ register long int r8 __asm__ ("r8"); \
+ register type rval __asm__ ("r3"); \
+ LOADARGS_##nr (funcptr, args); \
+ __asm__ __volatile__ \
+ ("mtctr %0\n\t" \
+ "bctrl\n\t" \
+ "mfcr %0\n\t" \
+ "0:" \
+ : "+r" (r0), "+r" (r3), "+r" (r4), "+r" (r5), "+r" (r6), \
+ "+r" (r7), "+r" (r8) \
+ : : "r9", "r10", "r11", "r12", "cr0", "ctr", "lr", "memory"); \
+ err = (long int) r0; \
+ __asm__ __volatile__ ("" : "=r" (rval) : "r" (r3)); \
+ rval; \
+ })
+
+#define INTERNAL_VSYSCALL_CALL(funcptr, err, nr, args...) \
+ INTERNAL_VSYSCALL_CALL_TYPE(funcptr, err, long int, nr, args)
+
+#undef INLINE_SYSCALL
+
+/* This version is for kernels that implement system calls that
+ behave like function calls as far as register saving. */
+#define INLINE_SYSCALL(name, nr, args...) \
+ ({ \
+ INTERNAL_SYSCALL_DECL (sc_err); \
+ long int sc_ret = INTERNAL_SYSCALL (name, sc_err, nr, args); \
+ if (INTERNAL_SYSCALL_ERROR_P (sc_ret, sc_err)) \
+ { \
+ __set_errno (INTERNAL_SYSCALL_ERRNO (sc_ret, sc_err)); \
+ sc_ret = -1L; \
+ } \
+ sc_ret; \
+ })
+
+/* Define a macro which expands inline into the wrapper code for a system
+ call. This use is for internal calls that do not need to handle errors
+ normally. It will never touch errno. This returns just what the kernel
+ gave back in the non-error (CR0.SO cleared) case, otherwise (CR0.SO set)
+ the negation of the return value in the kernel gets reverted. */
+
+#undef INTERNAL_SYSCALL
+#define INTERNAL_SYSCALL_NCS(name, err, nr, args...) \
+ ({ \
+ register long int r0 __asm__ ("r0"); \
+ register long int r3 __asm__ ("r3"); \
+ register long int r4 __asm__ ("r4"); \
+ register long int r5 __asm__ ("r5"); \
+ register long int r6 __asm__ ("r6"); \
+ register long int r7 __asm__ ("r7"); \
+ register long int r8 __asm__ ("r8"); \
+ LOADARGS_##nr (name, ##args); \
+ ABORT_TRANSACTION; \
+ __asm__ __volatile__ \
+ ("sc\n\t" \
+ "mfcr %0\n\t" \
+ "0:" \
+ : "=&r" (r0), \
+ "=&r" (r3), "=&r" (r4), "=&r" (r5), \
+ "=&r" (r6), "=&r" (r7), "=&r" (r8) \
+ : ASM_INPUT_##nr \
+ : "r9", "r10", "r11", "r12", \
+ "cr0", "ctr", "memory"); \
+ err = r0; \
+ r3; \
+ })
+#define INTERNAL_SYSCALL(name, err, nr, args...) \
+ INTERNAL_SYSCALL_NCS (__NR_##name, err, nr, args)
+
+#undef INTERNAL_SYSCALL_DECL
+#define INTERNAL_SYSCALL_DECL(err) long int err __attribute__ ((unused))
+
+#undef INTERNAL_SYSCALL_ERROR_P
+#define INTERNAL_SYSCALL_ERROR_P(val, err) \
+ ((void) (val), __builtin_expect ((err) & (1 << 28), 0))
+
+#undef INTERNAL_SYSCALL_ERRNO
+#define INTERNAL_SYSCALL_ERRNO(val, err) (val)
+
+#define LOADARGS_0(name, dummy) \
+ r0 = name
+#define LOADARGS_1(name, __arg1) \
+ long int arg1 = (long int) (__arg1); \
+ LOADARGS_0(name, 0); \
+ extern void __illegally_sized_syscall_arg1 (void); \
+ if (__builtin_classify_type (__arg1) != 5 && sizeof (__arg1) > 8) \
+ __illegally_sized_syscall_arg1 (); \
+ r3 = arg1
+#define LOADARGS_2(name, __arg1, __arg2) \
+ long int arg2 = (long int) (__arg2); \
+ LOADARGS_1(name, __arg1); \
+ extern void __illegally_sized_syscall_arg2 (void); \
+ if (__builtin_classify_type (__arg2) != 5 && sizeof (__arg2) > 8) \
+ __illegally_sized_syscall_arg2 (); \
+ r4 = arg2
+#define LOADARGS_3(name, __arg1, __arg2, __arg3) \
+ long int arg3 = (long int) (__arg3); \
+ LOADARGS_2(name, __arg1, __arg2); \
+ extern void __illegally_sized_syscall_arg3 (void); \
+ if (__builtin_classify_type (__arg3) != 5 && sizeof (__arg3) > 8) \
+ __illegally_sized_syscall_arg3 (); \
+ r5 = arg3
+#define LOADARGS_4(name, __arg1, __arg2, __arg3, __arg4) \
+ long int arg4 = (long int) (__arg4); \
+ LOADARGS_3(name, __arg1, __arg2, __arg3); \
+ extern void __illegally_sized_syscall_arg4 (void); \
+ if (__builtin_classify_type (__arg4) != 5 && sizeof (__arg4) > 8) \
+ __illegally_sized_syscall_arg4 (); \
+ r6 = arg4
+#define LOADARGS_5(name, __arg1, __arg2, __arg3, __arg4, __arg5) \
+ long int arg5 = (long int) (__arg5); \
+ LOADARGS_4(name, __arg1, __arg2, __arg3, __arg4); \
+ extern void __illegally_sized_syscall_arg5 (void); \
+ if (__builtin_classify_type (__arg5) != 5 && sizeof (__arg5) > 8) \
+ __illegally_sized_syscall_arg5 (); \
+ r7 = arg5
+#define LOADARGS_6(name, __arg1, __arg2, __arg3, __arg4, __arg5, __arg6) \
+ long int arg6 = (long int) (__arg6); \
+ LOADARGS_5(name, __arg1, __arg2, __arg3, __arg4, __arg5); \
+ extern void __illegally_sized_syscall_arg6 (void); \
+ if (__builtin_classify_type (__arg6) != 5 && sizeof (__arg6) > 8) \
+ __illegally_sized_syscall_arg6 (); \
+ r8 = arg6
+
+#define ASM_INPUT_0 "0" (r0)
+#define ASM_INPUT_1 ASM_INPUT_0, "1" (r3)
+#define ASM_INPUT_2 ASM_INPUT_1, "2" (r4)
+#define ASM_INPUT_3 ASM_INPUT_2, "3" (r5)
+#define ASM_INPUT_4 ASM_INPUT_3, "4" (r6)
+#define ASM_INPUT_5 ASM_INPUT_4, "5" (r7)
+#define ASM_INPUT_6 ASM_INPUT_5, "6" (r8)
+
+
+/* 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
+# ifdef __ASSEMBLER__
+# define PTR_MANGLE(reg, tmpreg) \
+ ld tmpreg,POINTER_GUARD(r13); \
+ xor reg,tmpreg,reg
+# define PTR_MANGLE2(reg, tmpreg) \
+ xor reg,tmpreg,reg
+# define PTR_MANGLE3(destreg, reg, tmpreg) \
+ ld tmpreg,POINTER_GUARD(r13); \
+ xor destreg,tmpreg,reg
+# define PTR_DEMANGLE(reg, tmpreg) PTR_MANGLE (reg, tmpreg)
+# define PTR_DEMANGLE2(reg, tmpreg) PTR_MANGLE2 (reg, tmpreg)
+# define PTR_DEMANGLE3(destreg, reg, tmpreg) PTR_MANGLE3 (destreg, reg, tmpreg)
+# else
+# define PTR_MANGLE(var) \
+ (var) = (__typeof (var)) ((uintptr_t) (var) ^ THREAD_GET_POINTER_GUARD ())
+# define PTR_DEMANGLE(var) PTR_MANGLE (var)
+# endif
+#endif
+
+#endif /* linux/powerpc/powerpc64/sysdep.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_create.c b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_create.c
new file mode 100644
index 0000000000..d307135003
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_create.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/x86_64/timer_create.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_delete.c b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_delete.c
new file mode 100644
index 0000000000..2dd94f5c7a
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_delete.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/x86_64/timer_delete.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_getoverr.c b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_getoverr.c
new file mode 100644
index 0000000000..22eaff5cda
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_getoverr.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/x86_64/timer_getoverr.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_gettime.c b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_gettime.c
new file mode 100644
index 0000000000..cea524bae5
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_gettime.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/x86_64/timer_gettime.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_settime.c b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_settime.c
new file mode 100644
index 0000000000..fa231149d5
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_settime.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/x86_64/timer_settime.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/ucontext_i.sym b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/ucontext_i.sym
new file mode 100644
index 0000000000..8364e4614f
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/ucontext_i.sym
@@ -0,0 +1,29 @@
+#include <stddef.h>
+#include <signal.h>
+#include <sys/ucontext.h>
+
+--
+
+SIG_BLOCK
+SIG_SETMASK
+
+
+-- Offsets of the fields in the ucontext_t structure.
+#define ucontext(member) offsetof (ucontext_t, member)
+#define mcontext(member) ucontext (uc_mcontext.member)
+
+UCONTEXT_LINK ucontext (uc_link)
+UCONTEXT_STACK ucontext (uc_stack)
+UCONTEXT_STACK_SP ucontext (uc_stack.ss_sp)
+UCONTEXT_STACK_FLAGS ucontext (uc_stack.ss_flags)
+UCONTEXT_STACK_SIZE ucontext (uc_stack.ss_size)
+UCONTEXT_SIGMASK ucontext (uc_sigmask)
+UCONTEXT_MCONTEXT ucontext (uc_mcontext)
+SIGCONTEXT_SIGNAL mcontext (signal)
+SIGCONTEXT_HANDLER mcontext (handler)
+SIGCONTEXT_OLDMASK mcontext (oldmask)
+SIGCONTEXT_PT_REGS mcontext (regs)
+SIGCONTEXT_GP_REGS mcontext (gp_regs)
+SIGCONTEXT_FP_REGS mcontext (fp_regs)
+SIGCONTEXT_V_REGS_PTR mcontext (v_regs)
+SIGCONTEXT_V_RESERVE mcontext (vmx_reserve)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/umount.c b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/umount.c
new file mode 100644
index 0000000000..e10b40f96c
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/umount.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/x86_64/umount.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/vfork.S b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/vfork.S
new file mode 100644
index 0000000000..f4fdfe2ffb
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/vfork.S
@@ -0,0 +1,39 @@
+/* Copyright (C) 2003-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#define _ERRNO_H 1
+#include <bits/errno.h>
+#include <tcb-offsets.h>
+
+/* Clone the calling process, but without copying the whole address space.
+ The calling process is suspended until the new process exits or is
+ replaced by a call to `execve'. Return -1 for errors, 0 to the new process,
+ and the process ID of the new process to the old process. */
+
+ENTRY (__vfork)
+ CALL_MCOUNT 0
+
+ DO_CALL (SYS_ify (vfork))
+
+ PSEUDO_RET
+
+PSEUDO_END (__vfork)
+libc_hidden_def (__vfork)
+
+weak_alias (__vfork, vfork)
+strong_alias (__vfork, __libc_vfork)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64le/Implies b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64le/Implies
new file mode 100644
index 0000000000..4eacd3ae86
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64le/Implies
@@ -0,0 +1 @@
+unix/sysv/linux/powerpc/powerpc64
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64le/fpu/Implies b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64le/fpu/Implies
new file mode 100644
index 0000000000..5da96db05b
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64le/fpu/Implies
@@ -0,0 +1 @@
+unix/sysv/linux/powerpc/powerpc64/fpu
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/profil-counter.h b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/profil-counter.h
new file mode 100644
index 0000000000..8a6a0bcf3d
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/profil-counter.h
@@ -0,0 +1,2 @@
+/* We can use the ix86 version. */
+#include <sysdeps/unix/sysv/linux/i386/profil-counter.h>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/pt-longjmp.c b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/pt-longjmp.c
new file mode 100644
index 0000000000..0a977136b6
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/pt-longjmp.c
@@ -0,0 +1,61 @@
+/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <setjmp.h>
+#include <stdlib.h>
+#include <bits/wordsize.h>
+#include "pthreadP.h"
+#include <shlib-compat.h>
+#if defined SHARED && SHLIB_COMPAT (libpthread, GLIBC_2_0, GLIBC_2_3_4)
+
+/* These functions are not declared anywhere since they shouldn't be
+ used at another place but here. */
+extern void __novmx__libc_siglongjmp (sigjmp_buf env, int val)
+ __attribute__ ((noreturn));
+extern void __novmx__libc_longjmp (sigjmp_buf env, int val)
+ __attribute__ ((noreturn));
+
+
+void __novmx_siglongjmp (sigjmp_buf env, int val)
+{
+ __novmx__libc_siglongjmp (env, val);
+}
+
+void __novmx_longjmp (jmp_buf env, int val)
+{
+ __novmx__libc_longjmp (env, val);
+}
+
+compat_symbol (libpthread, __novmx_longjmp, longjmp, GLIBC_2_0);
+compat_symbol (libpthread, __novmx_siglongjmp, siglongjmp, GLIBC_2_0);
+#endif /* defined SHARED && SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_3_4)) */
+
+void
+__vmx_longjmp (jmp_buf env, int val)
+{
+ __libc_longjmp (env, val);
+}
+
+void
+__vmx_siglongjmp (jmp_buf env, int val)
+{
+ __libc_siglongjmp (env, val);
+}
+
+versioned_symbol (libpthread, __vmx_longjmp, longjmp, GLIBC_2_3_4);
+versioned_symbol (libpthread, __vmx_siglongjmp, siglongjmp, GLIBC_2_3_4);
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/pthread_attr_setstack.c b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/pthread_attr_setstack.c
new file mode 100644
index 0000000000..2cb0a13bcb
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/pthread_attr_setstack.c
@@ -0,0 +1,2 @@
+#define NEW_VERNUM GLIBC_2_6
+#include <nptl/pthread_attr_setstack.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/pthread_attr_setstacksize.c b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/pthread_attr_setstacksize.c
new file mode 100644
index 0000000000..6fedac1b33
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/pthread_attr_setstacksize.c
@@ -0,0 +1,9 @@
+#include <unistd.h> /* For __getpagesize. */
+#define NEW_VERNUM GLIBC_2_6
+#define STACKSIZE_ADJUST \
+ do { \
+ size_t ps = __getpagesize (); \
+ if (stacksize < 2 * ps) \
+ stacksize = 2 * ps; \
+ } while (0)
+#include <nptl/pthread_attr_setstacksize.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/pthread_mutex_cond_lock.c b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/pthread_mutex_cond_lock.c
new file mode 100644
index 0000000000..22f9f745a1
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/pthread_mutex_cond_lock.c
@@ -0,0 +1,22 @@
+/* Copyright (C) 2015-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+/* The cond lock is not actually elided yet, but we still need to handle
+ already elided locks. */
+#include <elision-conf.h>
+
+#include <nptl/pthread_mutex_cond_lock.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/pthread_mutex_lock.c b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/pthread_mutex_lock.c
new file mode 100644
index 0000000000..927b32d597
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/pthread_mutex_lock.c
@@ -0,0 +1,22 @@
+/* Elided version of pthread_mutex_lock.
+ Copyright (C) 2015-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <elision-conf.h>
+#include <force-elision.h>
+
+#include <nptl/pthread_mutex_lock.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/pthread_mutex_timedlock.c b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/pthread_mutex_timedlock.c
new file mode 100644
index 0000000000..1073ae05eb
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/pthread_mutex_timedlock.c
@@ -0,0 +1,22 @@
+/* Elided version of pthread_mutex_timedlock.
+ Copyright (C) 2015-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <elision-conf.h>
+#include <force-elision.h>
+
+#include <nptl/pthread_mutex_timedlock.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/pthread_mutex_trylock.c b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/pthread_mutex_trylock.c
new file mode 100644
index 0000000000..80e7743ef8
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/pthread_mutex_trylock.c
@@ -0,0 +1,22 @@
+/* Elided version of pthread_mutex_trylock.
+ Copyright (C) 2015-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <elision-conf.h>
+#include <force-elision.h>
+
+#include <nptl/pthread_mutex_trylock.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/putmsg.c b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/putmsg.c
new file mode 100644
index 0000000000..ebc1680ca7
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/putmsg.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/i386/putmsg.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/readdir64.c b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/readdir64.c
new file mode 100644
index 0000000000..2ea26dd409
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/readdir64.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/i386/readdir64.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/readdir64_r.c b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/readdir64_r.c
new file mode 100644
index 0000000000..9f54f897e3
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/readdir64_r.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/i386/readdir64_r.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/readelflib.c b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/readelflib.c
new file mode 100644
index 0000000000..0b789e7f41
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/readelflib.c
@@ -0,0 +1,60 @@
+/* Special checks on libraries for ldconfig. Linux/PowerPC version.
+ Copyright (C) 2002-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU 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/>. */
+
+
+int process_elf32_file (const char *file_name, const char *lib, int *flag,
+ unsigned int *osversion, char **soname,
+ void *file_contents, size_t file_length);
+int process_elf64_file (const char *file_name, const char *lib, int *flag,
+ unsigned int *osversion, char **soname,
+ void *file_contents, size_t file_length);
+
+/* Returns 0 if everything is ok, != 0 in case of error. */
+int
+process_elf_file (const char *file_name, const char *lib, int *flag,
+ unsigned int *osversion, char **soname, void *file_contents,
+ size_t file_length)
+{
+ ElfW(Ehdr) *elf_header = (ElfW(Ehdr) *) file_contents;
+ int ret;
+
+ if (elf_header->e_ident [EI_CLASS] == ELFCLASS32)
+ return process_elf32_file (file_name, lib, flag, osversion, soname,
+ file_contents, file_length);
+ else
+ {
+ ret = process_elf64_file (file_name, lib, flag, osversion, soname,
+ file_contents, file_length);
+ /* PowerPC 64bit libraries are always libc.so.6+. */
+ if (!ret)
+ *flag = FLAG_POWERPC_LIB64|FLAG_ELF_LIBC6;
+ return ret;
+ }
+}
+
+#undef __ELF_NATIVE_CLASS
+#undef process_elf_file
+#define process_elf_file process_elf32_file
+#define __ELF_NATIVE_CLASS 32
+#include "elf/readelflib.c"
+
+#undef __ELF_NATIVE_CLASS
+#undef process_elf_file
+#define process_elf_file process_elf64_file
+#define __ELF_NATIVE_CLASS 64
+#include "elf/readelflib.c"
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/rt-sysdep.c b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/rt-sysdep.c
new file mode 100644
index 0000000000..3ff55952e2
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/rt-sysdep.c
@@ -0,0 +1 @@
+#include <sysdep.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/sigcontextinfo.h b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/sigcontextinfo.h
new file mode 100644
index 0000000000..b8b59970f9
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/sigcontextinfo.h
@@ -0,0 +1,26 @@
+/* Copyright (C) 1998-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <signal.h>
+
+#define SIGCONTEXT struct sigcontext *
+#define SIGCONTEXT_EXTRA_ARGS
+#define GET_PC(ctx) ((void *)((ctx)->regs->nip))
+#define GET_FRAME(ctx) (*(void **)((ctx)->regs->gpr[1]))
+#define GET_STACK(ctx) ((void *)((ctx)->regs->gpr[1]))
+#define CALL_SIGHANDLER(handler, signo, ctx) \
+ (handler)((signo), SIGCONTEXT_EXTRA_ARGS (ctx))
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/sys/procfs.h b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/sys/procfs.h
new file mode 100644
index 0000000000..61ded22955
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/sys/procfs.h
@@ -0,0 +1,139 @@
+/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_PROCFS_H
+#define _SYS_PROCFS_H 1
+
+/* This is somehow modelled after the file of the same name on SysVr4
+ systems. It provides a definition of the core file format for ELF
+ used on Linux. */
+
+#include <features.h>
+#include <signal.h>
+#include <sys/time.h>
+#include <sys/types.h>
+#include <sys/ucontext.h>
+#include <sys/user.h>
+
+__BEGIN_DECLS
+
+/* These definitions are normally provided by ucontext.h via
+ asm/sigcontext.h, asm/ptrace.h, and asm/elf.h. Otherwise we define
+ them here. */
+#if !defined __PPC64_ELF_H && !defined _ASM_POWERPC_ELF_H
+#define ELF_NGREG 48 /* includes nip, msr, lr, etc. */
+#define ELF_NFPREG 33 /* includes fpscr */
+#if __WORDSIZE == 32
+# define ELF_NVRREG 33 /* includes vscr */
+#else
+# define ELF_NVRREG 34 /* includes vscr */
+#endif
+
+typedef unsigned long elf_greg_t;
+typedef elf_greg_t elf_gregset_t[ELF_NGREG];
+
+typedef double elf_fpreg_t;
+typedef elf_fpreg_t elf_fpregset_t[ELF_NFPREG];
+
+/* Altivec registers */
+typedef struct {
+ unsigned int u[4];
+} __attribute__ ((__aligned__ (16))) elf_vrreg_t;
+typedef elf_vrreg_t elf_vrregset_t[ELF_NVRREG];
+#endif
+
+struct elf_siginfo
+ {
+ int si_signo; /* Signal number. */
+ int si_code; /* Extra code. */
+ int si_errno; /* Errno. */
+ };
+
+
+/* Definitions to generate Intel SVR4-like core files. These mostly
+ have the same names as the SVR4 types with "elf_" tacked on the
+ front to prevent clashes with linux definitions, and the typedef
+ forms have been avoided. This is mostly like the SVR4 structure,
+ but more Linuxy, with things that Linux does not support and which
+ gdb doesn't really use excluded. Fields present but not used are
+ marked with "XXX". */
+struct elf_prstatus
+ {
+#if 0
+ long int pr_flags; /* XXX Process flags. */
+ short int pr_why; /* XXX Reason for process halt. */
+ short int pr_what; /* XXX More detailed reason. */
+#endif
+ struct elf_siginfo pr_info; /* Info associated with signal. */
+ short int pr_cursig; /* Current signal. */
+ unsigned long int pr_sigpend; /* Set of pending signals. */
+ unsigned long int pr_sighold; /* Set of held signals. */
+#if 0
+ stack_t pr_altstack; /* Alternate stack info. */
+ struct sigaction pr_action; /* Signal action for current sig. */
+#endif
+ __pid_t pr_pid;
+ __pid_t pr_ppid;
+ __pid_t pr_pgrp;
+ __pid_t pr_sid;
+ struct timeval pr_utime; /* User time. */
+ struct timeval pr_stime; /* System time. */
+ struct timeval pr_cutime; /* Cumulative user time. */
+ struct timeval pr_cstime; /* Cumulative system time. */
+#if 0
+ long int pr_instr; /* Current instruction. */
+#endif
+ elf_gregset_t pr_reg; /* GP registers. */
+ int pr_fpvalid; /* True if math copro being used. */
+ };
+
+
+#define ELF_PRARGSZ (80) /* Number of chars for args */
+
+struct elf_prpsinfo
+ {
+ char pr_state; /* Numeric process state. */
+ char pr_sname; /* Char for pr_state. */
+ char pr_zomb; /* Zombie. */
+ char pr_nice; /* Nice val. */
+ unsigned long int pr_flag; /* Flags. */
+ __uid_t pr_uid;
+ __gid_t pr_gid;
+ __pid_t pr_pid, pr_ppid, pr_pgrp, pr_sid;
+ /* Lots missing */
+ char pr_fname[16]; /* Filename of executable. */
+ char pr_psargs[ELF_PRARGSZ]; /* Initial part of arg list. */
+ };
+
+/* Addresses. */
+typedef void *psaddr_t;
+
+/* Register sets. Linux has different names. */
+typedef elf_gregset_t prgregset_t;
+typedef elf_fpregset_t prfpregset_t;
+
+/* We don't have any differences between processes and threads,
+ therefore habe only ine PID type. */
+typedef __pid_t lwpid_t;
+
+
+typedef struct elf_prstatus prstatus_t;
+typedef struct elf_prpsinfo prpsinfo_t;
+
+__END_DECLS
+
+#endif /* sys/procfs.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/sys/ptrace.h b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/sys/ptrace.h
new file mode 100644
index 0000000000..ed1ed63cca
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/sys/ptrace.h
@@ -0,0 +1,199 @@
+/* `ptrace' debugger support interface. Linux version.
+ Copyright (C) 2001-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_PTRACE_H
+#define _SYS_PTRACE_H 1
+
+#include <features.h>
+#include <bits/types.h>
+
+__BEGIN_DECLS
+
+/* Type of the REQUEST argument to `ptrace.' */
+enum __ptrace_request
+{
+ /* Indicate that the process making this request should be traced.
+ All signals received by this process can be intercepted by its
+ parent, and its parent can use the other `ptrace' requests. */
+ PTRACE_TRACEME = 0,
+#define PT_TRACE_ME PTRACE_TRACEME
+
+ /* Return the word in the process's text space at address ADDR. */
+ PTRACE_PEEKTEXT = 1,
+#define PT_READ_I PTRACE_PEEKTEXT
+
+ /* Return the word in the process's data space at address ADDR. */
+ PTRACE_PEEKDATA = 2,
+#define PT_READ_D PTRACE_PEEKDATA
+
+ /* Return the word in the process's user area at offset ADDR. */
+ PTRACE_PEEKUSER = 3,
+#define PT_READ_U PTRACE_PEEKUSER
+
+ /* Write the word DATA into the process's text space at address ADDR. */
+ PTRACE_POKETEXT = 4,
+#define PT_WRITE_I PTRACE_POKETEXT
+
+ /* Write the word DATA into the process's data space at address ADDR. */
+ PTRACE_POKEDATA = 5,
+#define PT_WRITE_D PTRACE_POKEDATA
+
+ /* Write the word DATA into the process's user area at offset ADDR. */
+ PTRACE_POKEUSER = 6,
+#define PT_WRITE_U PTRACE_POKEUSER
+
+ /* Continue the process. */
+ PTRACE_CONT = 7,
+#define PT_CONTINUE PTRACE_CONT
+
+ /* Kill the process. */
+ PTRACE_KILL = 8,
+#define PT_KILL PTRACE_KILL
+
+ /* Single step the process.
+ This is not supported on all machines. */
+ PTRACE_SINGLESTEP = 9,
+#define PT_STEP PTRACE_SINGLESTEP
+
+ /* Attach to a process that is already running. */
+ PTRACE_ATTACH = 16,
+#define PT_ATTACH PTRACE_ATTACH
+
+ /* Detach from a process attached to with PTRACE_ATTACH. */
+ PTRACE_DETACH = 17,
+#define PT_DETACH PTRACE_DETACH
+
+ /* Continue and stop at the next (return from) syscall. */
+ PTRACE_SYSCALL = 24,
+#define PT_SYSCALL PTRACE_SYSCALL
+
+ /* Set ptrace filter options. */
+ PTRACE_SETOPTIONS = 0x4200,
+#define PT_SETOPTIONS PTRACE_SETOPTIONS
+
+ /* Get last ptrace message. */
+ PTRACE_GETEVENTMSG = 0x4201,
+#define PT_GETEVENTMSG PTRACE_GETEVENTMSG
+
+ /* Get siginfo for process. */
+ PTRACE_GETSIGINFO = 0x4202,
+#define PT_GETSIGINFO PTRACE_GETSIGINFO
+
+ /* Set new siginfo for process. */
+ PTRACE_SETSIGINFO = 0x4203,
+#define PT_SETSIGINFO PTRACE_SETSIGINFO
+
+ /* Get register content. */
+ PTRACE_GETREGSET = 0x4204,
+#define PTRACE_GETREGSET PTRACE_GETREGSET
+
+ /* Set register content. */
+ PTRACE_SETREGSET = 0x4205,
+#define PTRACE_SETREGSET PTRACE_SETREGSET
+
+ /* Like PTRACE_ATTACH, but do not force tracee to trap and do not affect
+ signal or group stop state. */
+ PTRACE_SEIZE = 0x4206,
+#define PTRACE_SEIZE PTRACE_SEIZE
+
+ /* Trap seized tracee. */
+ PTRACE_INTERRUPT = 0x4207,
+#define PTRACE_INTERRUPT PTRACE_INTERRUPT
+
+ /* Wait for next group event. */
+ PTRACE_LISTEN = 0x4208,
+#define PTRACE_LISTEN PTRACE_LISTEN
+
+ PTRACE_PEEKSIGINFO = 0x4209,
+#define PTRACE_PEEKSIGINFO PTRACE_PEEKSIGINFO
+
+ PTRACE_GETSIGMASK = 0x420a,
+#define PTRACE_GETSIGMASK PTRACE_GETSIGMASK
+
+ PTRACE_SETSIGMASK = 0x420b,
+#define PTRACE_SETSIGMASK PTRACE_SETSIGMASK
+
+ PTRACE_SECCOMP_GET_FILTER = 0x420c
+#define PTRACE_SECCOMP_GET_FILTER PTRACE_SECCOMP_GET_FILTER
+};
+
+
+/* Flag for PTRACE_LISTEN. */
+enum __ptrace_flags
+{
+ PTRACE_SEIZE_DEVEL = 0x80000000
+};
+
+/* Options set using PTRACE_SETOPTIONS. */
+enum __ptrace_setoptions
+{
+ PTRACE_O_TRACESYSGOOD = 0x00000001,
+ PTRACE_O_TRACEFORK = 0x00000002,
+ PTRACE_O_TRACEVFORK = 0x00000004,
+ PTRACE_O_TRACECLONE = 0x00000008,
+ PTRACE_O_TRACEEXEC = 0x00000010,
+ PTRACE_O_TRACEVFORKDONE = 0x00000020,
+ PTRACE_O_TRACEEXIT = 0x00000040,
+ PTRACE_O_TRACESECCOMP = 0x00000080,
+ PTRACE_O_EXITKILL = 0x00100000,
+ PTRACE_O_SUSPEND_SECCOMP = 0x00200000,
+ PTRACE_O_MASK = 0x003000ff
+};
+
+enum __ptrace_eventcodes
+{
+/* Wait extended result codes for the above trace options. */
+ PTRACE_EVENT_FORK = 1,
+ PTRACE_EVENT_VFORK = 2,
+ PTRACE_EVENT_CLONE = 3,
+ PTRACE_EVENT_EXEC = 4,
+ PTRACE_EVENT_VFORK_DONE = 5,
+ PTRACE_EVENT_EXIT = 6,
+ PTRACE_EVENT_SECCOMP = 7,
+/* Extended result codes enabled by means other than options. */
+ PTRACE_EVENT_STOP = 128
+};
+
+/* Arguments for PTRACE_PEEKSIGINFO. */
+struct __ptrace_peeksiginfo_args
+{
+ __uint64_t off; /* From which siginfo to start. */
+ __uint32_t flags; /* Flags for peeksiginfo. */
+ __int32_t nr; /* How many siginfos to take. */
+};
+
+enum __ptrace_peeksiginfo_flags
+{
+ /* Read signals from a shared (process wide) queue. */
+ PTRACE_PEEKSIGINFO_SHARED = (1 << 0)
+};
+
+/* Perform process tracing functions. REQUEST is one of the values
+ above, and determines the action to be taken.
+ For all requests except PTRACE_TRACEME, PID specifies the process to be
+ traced.
+
+ PID and the other arguments described above for the various requests should
+ appear (those that are used for the particular request) as:
+ pid_t PID, void *ADDR, int DATA, void *ADDR2
+ after REQUEST. */
+extern long int ptrace (enum __ptrace_request __request, ...) __THROW;
+
+__END_DECLS
+
+#endif /* _SYS_PTRACE_H */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/sys/ucontext.h b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/sys/ucontext.h
new file mode 100644
index 0000000000..b460f23bc9
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/sys/ucontext.h
@@ -0,0 +1,193 @@
+/* Copyright (C) 1998-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_UCONTEXT_H
+#define _SYS_UCONTEXT_H 1
+
+#include <features.h>
+
+#include <bits/sigcontext.h>
+#include <bits/types/sigset_t.h>
+#include <bits/types/stack_t.h>
+
+
+#ifdef __USE_MISC
+# define __ctx(fld) fld
+#else
+# define __ctx(fld) __ ## fld
+#endif
+
+#if __WORDSIZE == 32
+
+/* Number of general registers. */
+# define __NGREG 48
+# ifdef __USE_MISC
+# define NGREG __NGREG
+# endif
+
+/* Container for all general registers. */
+typedef unsigned long gregset_t[__NGREG];
+
+/* Container for floating-point registers and status */
+typedef struct _libc_fpstate
+{
+ double __ctx(fpregs)[32];
+ double __ctx(fpscr);
+ unsigned int _pad[2];
+} fpregset_t;
+
+/* Container for Altivec/VMX registers and status.
+ Needs to be aligned on a 16-byte boundary. */
+typedef struct _libc_vrstate
+{
+ unsigned int __ctx(vrregs)[32][4];
+ unsigned int __ctx(vrsave);
+ unsigned int _pad[2];
+ unsigned int __ctx(vscr);
+} vrregset_t;
+
+/* Context to describe whole processor state. */
+typedef struct
+{
+ gregset_t __ctx(gregs);
+ fpregset_t __ctx(fpregs);
+ vrregset_t __ctx(vrregs) __attribute__((__aligned__(16)));
+} mcontext_t;
+
+#else
+
+/* For 64-bit kernels with Altivec support, a machine context is exactly
+ * a sigcontext. For older kernel (without Altivec) the sigcontext matches
+ * the mcontext upto but not including the v_regs field. For kernels that
+ * don't set AT_HWCAP or return AT_HWCAP without PPC_FEATURE_HAS_ALTIVEC the
+ * v_regs field may not exist and should not be referenced. The v_regd field
+ * can be refernced safely only after verifying that PPC_FEATURE_HAS_ALTIVEC
+ * is set in AT_HWCAP. */
+
+/* Number of general registers. */
+# define __NGREG 48 /* includes r0-r31, nip, msr, lr, etc. */
+# define __NFPREG 33 /* includes fp0-fp31 &fpscr. */
+# define __NVRREG 34 /* includes v0-v31, vscr, & vrsave in
+ split vectors */
+# ifdef __USE_MISC
+# define NGREG __NGREG
+# define NFPREG __NFPREG
+# define NVRREG __NVRREG
+# endif
+
+typedef unsigned long gregset_t[__NGREG];
+typedef double fpregset_t[__NFPREG];
+
+/* Container for Altivec/VMX Vector Status and Control Register. Only 32-bits
+ but can only be copied to/from a 128-bit vector register. So we allocated
+ a whole quadword speedup save/restore. */
+typedef struct _libc_vscr
+{
+ unsigned int __pad[3];
+ unsigned int __ctx(vscr_word);
+} vscr_t;
+
+/* Container for Altivec/VMX registers and status.
+ Must to be aligned on a 16-byte boundary. */
+typedef struct _libc_vrstate
+{
+ unsigned int __ctx(vrregs)[32][4];
+ vscr_t __ctx(vscr);
+ unsigned int __ctx(vrsave);
+ unsigned int __pad[3];
+} vrregset_t __attribute__((__aligned__(16)));
+
+typedef struct {
+ unsigned long __glibc_reserved[4];
+ int __ctx(signal);
+ int __pad0;
+ unsigned long __ctx(handler);
+ unsigned long __ctx(oldmask);
+ struct pt_regs *__ctx(regs);
+ gregset_t __ctx(gp_regs);
+ fpregset_t __ctx(fp_regs);
+/*
+ * To maintain compatibility with current implementations the sigcontext is
+ * extended by appending a pointer (v_regs) to a quadword type (elf_vrreg_t)
+ * followed by an unstructured (vmx_reserve) field of 69 doublewords. This
+ * allows the array of vector registers to be quadword aligned independent of
+ * the alignment of the containing sigcontext or ucontext. It is the
+ * responsibility of the code setting the sigcontext to set this pointer to
+ * either NULL (if this processor does not support the VMX feature) or the
+ * address of the first quadword within the allocated (vmx_reserve) area.
+ *
+ * The pointer (v_regs) of vector type (elf_vrreg_t) is essentually
+ * an array of 34 quadword entries. The entries with
+ * indexes 0-31 contain the corresponding vector registers. The entry with
+ * index 32 contains the vscr as the last word (offset 12) within the
+ * quadword. This allows the vscr to be stored as either a quadword (since
+ * it must be copied via a vector register to/from storage) or as a word.
+ * The entry with index 33 contains the vrsave as the first word (offset 0)
+ * within the quadword.
+ */
+ vrregset_t *__ctx(v_regs);
+ long __ctx(vmx_reserve)[__NVRREG+__NVRREG+1];
+} mcontext_t;
+
+#endif
+
+#undef __ctx
+
+/* Userlevel context. */
+typedef struct ucontext
+ {
+ unsigned long int uc_flags;
+ struct ucontext *uc_link;
+ stack_t uc_stack;
+#if __WORDSIZE == 32
+ /*
+ * These fields are set up this way to maximize source and
+ * binary compatibility with code written for the old
+ * ucontext_t definition, which didn't include space for the
+ * registers.
+ *
+ * Different versions of the kernel have stored the registers on
+ * signal delivery at different offsets from the ucontext struct.
+ * Programs should thus use the uc_mcontext.uc_regs pointer to
+ * find where the registers are actually stored. The registers
+ * will be stored within the ucontext_t struct but not necessarily
+ * at a fixed address. As a side-effect, this lets us achieve
+ * 16-byte alignment for the register storage space if the
+ * Altivec registers are to be saved, without requiring 16-byte
+ * alignment on the whole ucontext_t.
+ *
+ * The uc_mcontext.regs field is included for source compatibility
+ * with programs written against the older ucontext_t definition,
+ * and its name should therefore not change. The uc_pad field
+ * is for binary compatibility with programs compiled against the
+ * old ucontext_t; it ensures that uc_mcontext.regs and uc_sigmask
+ * are at the same offset as previously.
+ */
+ int uc_pad[7];
+ union uc_regs_ptr {
+ struct pt_regs *regs;
+ mcontext_t *uc_regs;
+ } uc_mcontext;
+ sigset_t uc_sigmask;
+ char uc_reg_space[sizeof(mcontext_t) + 12]; /* last for extensibility */
+#else /* 64-bit */
+ sigset_t uc_sigmask;
+ mcontext_t uc_mcontext; /* last for extensibility */
+#endif
+ } ucontext_t;
+
+#endif /* sys/ucontext.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/sys/user.h b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/sys/user.h
new file mode 100644
index 0000000000..a56697d0e9
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/sys/user.h
@@ -0,0 +1,40 @@
+/* Copyright (C) 1998-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_USER_H
+
+#define _SYS_USER_H 1
+#include <stddef.h>
+#include <features.h>
+
+#include <asm/ptrace.h>
+
+struct user {
+ struct pt_regs regs; /* entire machine state */
+ size_t u_tsize; /* text size (pages) */
+ size_t u_dsize; /* data size (pages) */
+ size_t u_ssize; /* stack size (pages) */
+ unsigned long start_code; /* text starting address */
+ unsigned long start_data; /* data starting address */
+ unsigned long start_stack; /* stack starting address */
+ long int signal; /* signal causing core dump */
+ struct regs * u_ar0; /* help gdb find registers */
+ unsigned long magic; /* identifies a core file */
+ char u_comm[32]; /* user command name */
+};
+
+#endif /* sys/user.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/syscall.S b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/syscall.S
new file mode 100644
index 0000000000..0522ccd1ee
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/syscall.S
@@ -0,0 +1,31 @@
+/* Copyright (C) 1991-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+
+ENTRY (syscall)
+ ABORT_TRANSACTION
+ mr r0,r3
+ mr r3,r4
+ mr r4,r5
+ mr r5,r6
+ mr r6,r7
+ mr r7,r8
+ mr r8,r9
+ sc
+ PSEUDO_RET
+PSEUDO_END (syscall)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/sysdep.c b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/sysdep.c
new file mode 100644
index 0000000000..6df0b35448
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/sysdep.c
@@ -0,0 +1,28 @@
+/* Copyright (C) 1997-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#include <errno.h>
+
+/* This routine is jumped to by all the syscall handlers, to stash
+ an error number into errno. */
+int
+__syscall_error (int err_no)
+{
+ __set_errno (err_no);
+ return -1;
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/test-gettimebasefreq.c b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/test-gettimebasefreq.c
new file mode 100644
index 0000000000..81cb8aa746
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/test-gettimebasefreq.c
@@ -0,0 +1,63 @@
+/* Check __ppc_get_timebase_freq() for architecture changes
+ 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/>. */
+
+/* Test if __ppc_get_timebase_freq() works and is different from zero. A read
+ failure might indicate a Linux Kernel change.
+ This test also use the frequency to compute the real elapsed time. */
+
+#include <inttypes.h>
+#include <stdio.h>
+#include <stdint.h>
+
+#include <sys/platform/ppc.h>
+
+/* Maximum value of the Time Base Register: 2^60 - 1. */
+#define MAX_TB 0xFFFFFFFFFFFFFFF
+
+static int
+do_test (void)
+{
+ uint64_t t1, t2, f, diff;
+
+ t1 = __ppc_get_timebase ();
+ printf ("t1 = %"PRIu64"\n", t1);
+
+ f = __ppc_get_timebase_freq ();
+ printf ("Time Base frequency = %"PRIu64" Hz\n", f);
+
+ if (f == 0) {
+ printf ("Fail: The time base frequency can't be zero.\n");
+ return 1;
+ }
+
+ t2 = __ppc_get_timebase ();
+ printf ("t2 = %"PRIu64"\n", t2);
+
+ if (t2 > t1) {
+ diff = t2 - t1;
+ } else {
+ diff = (MAX_TB - t2) + t1;
+ }
+
+ printf ("Elapsed time = %1.2f usecs\n", (double) diff * 1000000 / f );
+
+ return 0;
+}
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/time.c b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/time.c
new file mode 100644
index 0000000000..8fc901ee22
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/time.c
@@ -0,0 +1,84 @@
+/* time system call for Linux/PowerPC.
+ Copyright (C) 2013-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifdef SHARED
+# ifndef __powerpc64__
+# define time __redirect_time
+# else
+# define __redirect_time time
+# endif
+
+# include <time.h>
+# include <sysdep.h>
+# include <dl-vdso.h>
+# include <libc-vdso.h>
+# include <dl-machine.h>
+
+# ifndef __powerpc64__
+# undef time
+
+time_t
+__time_vsyscall (time_t *t)
+{
+ return INLINE_VSYSCALL (time, 1, t);
+}
+
+/* __GI_time is defined as hidden and for ppc32 it enables the
+ compiler make a local call (symbol@local) for internal GLIBC usage. It
+ means the PLT won't be used and the ifunc resolver will be called directly.
+ For ppc64 a call to a function in another translation unit might use a
+ different toc pointer thus disallowing direct branchess and making internal
+ ifuncs calls safe. */
+# undef libc_hidden_def
+# define libc_hidden_def(name) \
+ __hidden_ver1 (__time_vsyscall, __GI_time, __time_vsyscall);
+
+# endif /* !__powerpc64__ */
+
+static time_t
+time_syscall (time_t *t)
+{
+ struct timeval tv;
+ time_t result;
+
+ if (INLINE_VSYSCALL (gettimeofday, 2, &tv, NULL) < 0)
+ result = (time_t) -1;
+ else
+ result = (time_t) tv.tv_sec;
+
+ if (t != NULL)
+ *t = result;
+ return result;
+}
+
+# define INIT_ARCH() \
+ PREPARE_VERSION (linux2615, "LINUX_2.6.15", 123718565); \
+ void *vdso_time = _dl_vdso_vsym ("__kernel_time", &linux2615);
+
+/* If the vDSO is not available we fall back to the syscall. */
+libc_ifunc_hidden (__redirect_time, time,
+ vdso_time
+ ? VDSO_IFUNC_RET (vdso_time)
+ : (void *) time_syscall);
+libc_hidden_def (time)
+
+#else
+
+#include <sysdeps/posix/time.c>
+
+#endif /* !SHARED */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/ppoll.c b/REORG.TODO/sysdeps/unix/sysv/linux/ppoll.c
new file mode 100644
index 0000000000..8e336518b5
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/ppoll.c
@@ -0,0 +1,41 @@
+/* Copyright (C) 2006-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@redhat.com>, 2006.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <signal.h>
+#include <time.h>
+#include <sys/poll.h>
+#include <sysdep-cancel.h>
+
+
+int
+ppoll (struct pollfd *fds, nfds_t nfds, const struct timespec *timeout,
+ const sigset_t *sigmask)
+{
+ /* The Linux kernel can in some situations update the timeout value.
+ We do not want that so use a local variable. */
+ struct timespec tval;
+ if (timeout != NULL)
+ {
+ tval = *timeout;
+ timeout = &tval;
+ }
+
+ return SYSCALL_CANCEL (ppoll, fds, nfds, timeout, sigmask, _NSIG / 8);
+}
+libc_hidden_def (ppoll)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/pread.c b/REORG.TODO/sysdeps/unix/sysv/linux/pread.c
new file mode 100644
index 0000000000..96df99747a
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/pread.c
@@ -0,0 +1,37 @@
+/* Copyright (C) 1997-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
+
+ 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 <unistd.h>
+#include <sysdep-cancel.h>
+
+#ifndef __OFF_T_MATCHES_OFF64_T
+
+# ifndef __NR_pread
+# define __NR_pread __NR_pread64
+# endif
+
+ssize_t
+__libc_pread (int fd, void *buf, size_t count, off_t offset)
+{
+ return SYSCALL_CANCEL (pread, fd, buf, count, SYSCALL_LL_PRW (offset));
+}
+
+strong_alias (__libc_pread, __pread)
+libc_hidden_weak (__pread)
+weak_alias (__libc_pread, pread)
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/pread64.c b/REORG.TODO/sysdeps/unix/sysv/linux/pread64.c
new file mode 100644
index 0000000000..0c2c80e9e2
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/pread64.c
@@ -0,0 +1,40 @@
+/* Copyright (C) 1997-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
+
+ 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 <unistd.h>
+#include <sysdep-cancel.h>
+
+#ifndef __NR_pread64
+# define __NR_pread64 __NR_pread
+#endif
+
+ssize_t
+__libc_pread64 (int fd, void *buf, size_t count, off64_t offset)
+{
+ return SYSCALL_CANCEL (pread64, fd, buf, count, SYSCALL_LL64_PRW (offset));
+}
+
+weak_alias (__libc_pread64, __pread64)
+libc_hidden_weak (__pread64)
+weak_alias (__libc_pread64, pread64)
+
+#ifdef __OFF_T_MATCHES_OFF64_T
+strong_alias (__libc_pread64, __libc_pread)
+weak_alias (__libc_pread64, __pread)
+weak_alias (__libc_pread64, pread)
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/preadv.c b/REORG.TODO/sysdeps/unix/sysv/linux/preadv.c
new file mode 100644
index 0000000000..ecabc8c9c6
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/preadv.c
@@ -0,0 +1,55 @@
+/* Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sys/uio.h>
+#include <sysdep-cancel.h>
+
+#ifndef __OFF_T_MATCHES_OFF64_T
+
+# ifdef __ASSUME_PREADV
+
+# ifndef __NR_preadv
+# define __NR_preadv __NR_preadv64
+# endif
+
+ssize_t
+preadv (int fd, const struct iovec *vector, int count, off_t offset)
+{
+ return SYSCALL_CANCEL (preadv, fd, vector, count, LO_HI_LONG (offset));
+}
+# else
+static ssize_t __atomic_preadv_replacement (int, const struct iovec *,
+ int, off_t) internal_function;
+ssize_t
+preadv (int fd, const struct iovec *vector, int count, off_t offset)
+{
+# ifdef __NR_preadv
+ ssize_t result = SYSCALL_CANCEL (preadv, fd, vector, count,
+ LO_HI_LONG (offset));
+ if (result >= 0 || errno != ENOSYS)
+ return result;
+# endif
+ return __atomic_preadv_replacement (fd, vector, count, offset);
+}
+# define PREADV static internal_function __atomic_preadv_replacement
+# define PREAD __pread
+# define OFF_T off_t
+# include <sysdeps/posix/preadv_common.c>
+# endif /* __ASSUME_PREADV */
+
+libc_hidden_def (preadv)
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/preadv2.c b/REORG.TODO/sysdeps/unix/sysv/linux/preadv2.c
new file mode 100644
index 0000000000..11fe85eaa8
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/preadv2.c
@@ -0,0 +1,55 @@
+/* Linux implementation of preadv2.
+ Copyright (C) 2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sys/uio.h>
+#include <sysdep-cancel.h>
+
+#ifndef __OFF_T_MATCHES_OFF64_T
+
+# if !defined (__NR_preadv2) && defined (__NR_pread64v2)
+# define __NR_preadv2 __NR_pread64v2
+# endif
+
+ssize_t
+preadv2 (int fd, const struct iovec *vector, int count, off_t offset,
+ int flags)
+{
+# ifdef __NR_preadv2
+ ssize_t result = SYSCALL_CANCEL (preadv2, fd, vector, count,
+ LO_HI_LONG (offset), flags);
+ if (result >= 0 || errno != ENOSYS)
+ return result;
+# endif
+ /* Trying to emulate the preadv2 syscall flags is troublesome:
+
+ * We can not temporary change the file state of the O_DSYNC and O_SYNC
+ flags to emulate RWF_{D}SYNC (attempts to change the state of using
+ fcntl are silently ignored).
+
+ * IOCB_HIPRI requires the file opened in O_DIRECT and uses an internal
+ semantic not provided by any other flag (O_NONBLOCK for instance). */
+
+ if (flags != 0)
+ {
+ __set_errno (EOPNOTSUPP);
+ return -1;
+ }
+ return preadv (fd, vector, count, offset);
+}
+
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/preadv64.c b/REORG.TODO/sysdeps/unix/sysv/linux/preadv64.c
new file mode 100644
index 0000000000..c96b2142e3
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/preadv64.c
@@ -0,0 +1,56 @@
+/* Copyright (C) 2016-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sys/uio.h>
+#include <sysdep-cancel.h>
+
+#ifdef __ASSUME_PREADV
+
+# ifndef __NR_preadv64
+# define __NR_preadv64 __NR_preadv
+# endif
+
+ssize_t
+preadv64 (int fd, const struct iovec *vector, int count, off64_t offset)
+{
+ return SYSCALL_CANCEL (preadv64, fd, vector, count, LO_HI_LONG (offset));
+}
+#else
+static ssize_t __atomic_preadv64_replacement (int, const struct iovec *,
+ int, off64_t) internal_function;
+ssize_t
+preadv64 (int fd, const struct iovec *vector, int count, off64_t offset)
+{
+#ifdef __NR_preadv64
+ ssize_t result = SYSCALL_CANCEL (preadv64, fd, vector, count,
+ LO_HI_LONG (offset));
+ if (result >= 0 || errno != ENOSYS)
+ return result;
+#endif
+ return __atomic_preadv64_replacement (fd, vector, count, offset);
+}
+# define PREADV static internal_function __atomic_preadv64_replacement
+# define PREAD __pread64
+# define OFF_T off64_t
+# include <sysdeps/posix/preadv_common.c>
+#endif
+libc_hidden_def (preadv64)
+
+#ifdef __OFF_T_MATCHES_OFF64_T
+strong_alias (preadv64, preadv)
+libc_hidden_def (preadv)
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/preadv64v2.c b/REORG.TODO/sysdeps/unix/sysv/linux/preadv64v2.c
new file mode 100644
index 0000000000..9d7f8c9893
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/preadv64v2.c
@@ -0,0 +1,55 @@
+/* Linux implementation of preadv2 (LFS version).
+ Copyright (C) 2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sys/uio.h>
+#include <sysdep-cancel.h>
+
+#if !defined(__NR_preadv64v2) && defined(__NR_preadv2)
+# define __NR_preadv64v2 __NR_preadv2
+#endif
+
+ssize_t
+preadv64v2 (int fd, const struct iovec *vector, int count, off64_t offset,
+ int flags)
+{
+#ifdef __NR_preadv64v2
+ ssize_t result = SYSCALL_CANCEL (preadv64v2, fd, vector, count,
+ LO_HI_LONG (offset), flags);
+ if (result >= 0 || errno != ENOSYS)
+ return result;
+#endif
+ /* Trying to emulate the preadv2 syscall flags is troublesome:
+
+ * We can not temporary change the file state of the O_DSYNC and O_SYNC
+ flags to emulate RWF_{D}SYNC (attempts to change the state of using
+ fcntl are silently ignored).
+
+ * IOCB_HIPRI requires the file opened in O_DIRECT and uses an internal
+ semantic not provided by any other flag (O_NONBLOCK for instance). */
+
+ if (flags != 0)
+ {
+ __set_errno (EOPNOTSUPP);
+ return -1;
+ }
+ return preadv64 (fd, vector, count, offset);
+}
+
+#ifdef __OFF_T_MATCHES_OFF64_T
+strong_alias (preadv64v2, preadv2)
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/prlimit.c b/REORG.TODO/sysdeps/unix/sysv/linux/prlimit.c
new file mode 100644
index 0000000000..d31980f10c
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/prlimit.c
@@ -0,0 +1,74 @@
+/* Copyright (C) 2010-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 <sys/resource.h>
+#include <sys/syscall.h>
+
+
+int
+prlimit (__pid_t pid, enum __rlimit_resource resource,
+ const struct rlimit *new_rlimit, struct rlimit *old_rlimit)
+{
+ struct rlimit64 new_rlimit64_mem;
+ struct rlimit64 *new_rlimit64 = NULL;
+ struct rlimit64 old_rlimit64_mem;
+ struct rlimit64 *old_rlimit64 = (old_rlimit != NULL
+ ? &old_rlimit64_mem : NULL);
+
+ if (new_rlimit != NULL)
+ {
+ if (new_rlimit->rlim_cur == RLIM_INFINITY)
+ new_rlimit64_mem.rlim_cur = RLIM64_INFINITY;
+ else
+ new_rlimit64_mem.rlim_cur = new_rlimit->rlim_cur;
+ if (new_rlimit->rlim_max == RLIM_INFINITY)
+ new_rlimit64_mem.rlim_max = RLIM64_INFINITY;
+ else
+ new_rlimit64_mem.rlim_max = new_rlimit->rlim_max;
+ new_rlimit64 = &new_rlimit64_mem;
+ }
+
+ int res = INLINE_SYSCALL (prlimit64, 4, pid, resource, new_rlimit64,
+ old_rlimit64);
+
+ if (res == 0 && old_rlimit != NULL)
+ {
+ /* The prlimit64 syscall is ill-designed for 32-bit machines.
+ We have to provide a 32-bit variant since otherwise the LFS
+ system would not work. But what shall we do if the syscall
+ succeeds but the old values do not fit into a rlimit
+ structure? We cannot return an error because the operation
+ itself worked. Best is perhaps to return RLIM_INFINITY. */
+ old_rlimit->rlim_cur = old_rlimit64_mem.rlim_cur;
+ if (old_rlimit->rlim_cur != old_rlimit64_mem.rlim_cur)
+ {
+ if (new_rlimit == NULL)
+ return INLINE_SYSCALL_ERROR_RETURN_VALUE (EOVERFLOW);
+ old_rlimit->rlim_cur = RLIM_INFINITY;
+ }
+ old_rlimit->rlim_max = old_rlimit64_mem.rlim_max;
+ if (old_rlimit->rlim_max != old_rlimit64_mem.rlim_max)
+ {
+ if (new_rlimit == NULL)
+ return INLINE_SYSCALL_ERROR_RETURN_VALUE (EOVERFLOW);
+ old_rlimit->rlim_max = RLIM_INFINITY;
+ }
+ }
+
+ return res;
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/prof-freq.c b/REORG.TODO/sysdeps/unix/sysv/linux/prof-freq.c
new file mode 100644
index 0000000000..b8cb6d0f5e
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/prof-freq.c
@@ -0,0 +1,29 @@
+/* Determine realtime clock frequency.
+ 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 <sys/time.h>
+#include <libc-internal.h>
+#include <ldsodefs.h>
+
+
+int
+__profile_frequency (void)
+{
+ return GLRO(dl_clktck);
+}
+libc_hidden_def (__profile_frequency)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/profil.c b/REORG.TODO/sysdeps/unix/sysv/linux/profil.c
new file mode 100644
index 0000000000..5918ecebfc
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/profil.c
@@ -0,0 +1,3 @@
+/* Linux defines the profil system call but doesn't actually implement
+ it. Use the generic posix implementation. */
+#include <sysdeps/posix/profil.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/pselect.c b/REORG.TODO/sysdeps/unix/sysv/linux/pselect.c
new file mode 100644
index 0000000000..b5e8c7fbcd
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/pselect.c
@@ -0,0 +1,89 @@
+/* Copyright (C) 2006-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@redhat.com>, 2006.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <signal.h>
+#include <time.h>
+#include <sys/poll.h>
+#include <kernel-features.h>
+#include <sysdep-cancel.h>
+
+
+#ifdef __NR_pselect6
+# ifndef __ASSUME_PSELECT
+static int __generic_pselect (int nfds, fd_set *readfds, fd_set *writefds,
+ fd_set *exceptfds,
+ const struct timespec *timeout,
+ const sigset_t *sigmask);
+# endif
+
+
+int
+__pselect (int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds,
+ const struct timespec *timeout, const sigset_t *sigmask)
+{
+ /* The Linux kernel can in some situations update the timeout value.
+ We do not want that so use a local variable. */
+ struct timespec tval;
+ if (timeout != NULL)
+ {
+ tval = *timeout;
+ timeout = &tval;
+ }
+
+ /* Note: the system call expects 7 values but on most architectures
+ we can only pass in 6 directly. If there is an architecture with
+ support for more parameters a new version of this file needs to
+ be created. */
+ struct
+ {
+ __syscall_ulong_t ss;
+ __syscall_ulong_t ss_len;
+ } data;
+
+ data.ss = (__syscall_ulong_t) (uintptr_t) sigmask;
+ data.ss_len = _NSIG / 8;
+
+ int result;
+
+#ifndef CALL_PSELECT6
+# define CALL_PSELECT6(nfds, readfds, writefds, exceptfds, timeout, data) \
+ SYSCALL_CANCEL (pselect6, nfds, readfds, writefds, exceptfds, timeout, data)
+#endif
+
+ result = CALL_PSELECT6 (nfds, readfds, writefds, exceptfds, timeout,
+ &data);
+
+# ifndef __ASSUME_PSELECT
+ if (result == -1 && errno == ENOSYS)
+ result = __generic_pselect (nfds, readfds, writefds, exceptfds, timeout,
+ sigmask);
+# endif
+
+ return result;
+}
+weak_alias (__pselect, pselect)
+
+# ifndef __ASSUME_PSELECT
+# define __pselect static __generic_pselect
+# endif
+#endif
+
+#ifndef __ASSUME_PSELECT
+# include <misc/pselect.c>
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/pt-raise.c b/REORG.TODO/sysdeps/unix/sysv/linux/pt-raise.c
new file mode 100644
index 0000000000..171fcddf5d
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/pt-raise.c
@@ -0,0 +1,20 @@
+/* ISO C raise function for libpthread.
+ Copyright (C) 2002-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdeps/unix/sysv/linux/raise.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/pthread-pids.h b/REORG.TODO/sysdeps/unix/sysv/linux/pthread-pids.h
new file mode 100644
index 0000000000..e67e4f7d5e
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/pthread-pids.h
@@ -0,0 +1,30 @@
+/* Initialize pid and tid fields of struct pthread. Linux version.
+ Copyright (C) 2015-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <pthreadP.h>
+#include <sysdep.h>
+
+/* Initialize PD->pid and PD->tid for the initial thread. If there is
+ setup required to arrange that __exit_thread causes PD->tid to be
+ cleared and futex-woken, then this function should do that as well. */
+static inline void
+__pthread_initialize_pids (struct pthread *pd)
+{
+ INTERNAL_SYSCALL_DECL (err);
+ pd->tid = INTERNAL_SYSCALL_CALL (set_tid_address, err, &pd->tid);
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/pthread_getaffinity.c b/REORG.TODO/sysdeps/unix/sysv/linux/pthread_getaffinity.c
new file mode 100644
index 0000000000..08a9a46645
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/pthread_getaffinity.c
@@ -0,0 +1,59 @@
+/* Copyright (C) 2003-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@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 <errno.h>
+#include <limits.h>
+#include <pthreadP.h>
+#include <string.h>
+#include <sysdep.h>
+#include <sys/param.h>
+#include <sys/types.h>
+#include <shlib-compat.h>
+
+
+int
+__pthread_getaffinity_new (pthread_t th, size_t cpusetsize, cpu_set_t *cpuset)
+{
+ const struct pthread *pd = (const struct pthread *) th;
+
+ INTERNAL_SYSCALL_DECL (err);
+ int res = INTERNAL_SYSCALL (sched_getaffinity, err, 3, pd->tid,
+ MIN (INT_MAX, cpusetsize), cpuset);
+ if (INTERNAL_SYSCALL_ERROR_P (res, err))
+ return INTERNAL_SYSCALL_ERRNO (res, err);
+
+ /* Clean the rest of the memory the kernel didn't do. */
+ memset ((char *) cpuset + res, '\0', cpusetsize - res);
+
+ return 0;
+}
+strong_alias (__pthread_getaffinity_new, __pthread_getaffinity_np)
+versioned_symbol (libpthread, __pthread_getaffinity_new,
+ pthread_getaffinity_np, GLIBC_2_3_4);
+
+
+#if SHLIB_COMPAT (libpthread, GLIBC_2_3_3, GLIBC_2_3_4)
+int
+__pthread_getaffinity_old (pthread_t th, cpu_set_t *cpuset)
+{
+ /* The old interface by default assumed a 1024 processor bitmap. */
+ return __pthread_getaffinity_new (th, 128, cpuset);
+}
+compat_symbol (libpthread, __pthread_getaffinity_old, pthread_getaffinity_np,
+ GLIBC_2_3_3);
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/pthread_getcpuclockid.c b/REORG.TODO/sysdeps/unix/sysv/linux/pthread_getcpuclockid.c
new file mode 100644
index 0000000000..f5af64ea88
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/pthread_getcpuclockid.c
@@ -0,0 +1,42 @@
+/* pthread_getcpuclockid -- Get POSIX clockid_t for a pthread_t. Linux 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; see the file COPYING.LIB. If
+ not, see <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <pthreadP.h>
+#include <sys/time.h>
+#include <tls.h>
+#include <kernel-posix-cpu-timers.h>
+
+
+int
+pthread_getcpuclockid (pthread_t threadid, clockid_t *clockid)
+{
+ struct pthread *pd = (struct pthread *) threadid;
+
+ /* Make sure the descriptor is valid. */
+ if (INVALID_TD_P (pd))
+ /* Not a valid thread handle. */
+ return ESRCH;
+
+ /* The clockid_t value is a simple computation from the TID. */
+
+ const clockid_t tidclock = MAKE_THREAD_CPUCLOCK (pd->tid, CPUCLOCK_SCHED);
+
+ *clockid = tidclock;
+ return 0;
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/pthread_getname.c b/REORG.TODO/sysdeps/unix/sysv/linux/pthread_getname.c
new file mode 100644
index 0000000000..9a5343a1d5
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/pthread_getname.c
@@ -0,0 +1,69 @@
+/* pthread_getname_np -- Get thread name. Linux version
+ Copyright (C) 2010-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; see the file COPYING.LIB. If
+ not, see <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <fcntl.h>
+#include <pthreadP.h>
+#include <stdio.h>
+#include <string.h>
+#include <unistd.h>
+#include <sys/prctl.h>
+
+#include <not-cancel.h>
+
+
+int
+pthread_getname_np (pthread_t th, char *buf, size_t len)
+{
+ const struct pthread *pd = (const struct pthread *) th;
+
+ /* Unfortunately the kernel headers do not export the TASK_COMM_LEN
+ macro. So we have to define it here. */
+#define TASK_COMM_LEN 16
+ if (len < TASK_COMM_LEN)
+ return ERANGE;
+
+ if (pd == THREAD_SELF)
+ return prctl (PR_GET_NAME, buf) ? errno : 0;
+
+#define FMT "/proc/self/task/%u/comm"
+ char fname[sizeof (FMT) + 8];
+ sprintf (fname, FMT, (unsigned int) pd->tid);
+
+ int fd = open_not_cancel_2 (fname, O_RDONLY);
+ if (fd == -1)
+ return errno;
+
+ int res = 0;
+ ssize_t n = TEMP_FAILURE_RETRY (read_not_cancel (fd, buf, len));
+ if (n < 0)
+ res = errno;
+ else
+ {
+ if (buf[n - 1] == '\n')
+ buf[n - 1] = '\0';
+ else if (n == len)
+ res = ERANGE;
+ else
+ buf[n] = '\0';
+ }
+
+ close_not_cancel_no_status (fd);
+
+ return res;
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/pthread_kill.c b/REORG.TODO/sysdeps/unix/sysv/linux/pthread_kill.c
new file mode 100644
index 0000000000..cd6f16e955
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/pthread_kill.c
@@ -0,0 +1,59 @@
+/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <signal.h>
+#include <pthreadP.h>
+#include <tls.h>
+#include <sysdep.h>
+#include <unistd.h>
+
+
+int
+__pthread_kill (pthread_t threadid, int signo)
+{
+ struct pthread *pd = (struct pthread *) threadid;
+
+ /* Make sure the descriptor is valid. */
+ if (DEBUGGING_P && INVALID_TD_P (pd))
+ /* Not a valid thread handle. */
+ return ESRCH;
+
+ /* Force load of pd->tid into local variable or register. Otherwise
+ if a thread exits between ESRCH test and tgkill, we might return
+ EINVAL, because pd->tid would be cleared by the kernel. */
+ pid_t tid = atomic_forced_read (pd->tid);
+ if (__glibc_unlikely (tid <= 0))
+ /* Not a valid thread handle. */
+ return ESRCH;
+
+ /* Disallow sending the signal we use for cancellation, timers,
+ for the setxid implementation. */
+ if (signo == SIGCANCEL || signo == SIGTIMER || signo == SIGSETXID)
+ return EINVAL;
+
+ /* We have a special syscall to do the work. */
+ INTERNAL_SYSCALL_DECL (err);
+
+ pid_t pid = __getpid ();
+
+ int val = INTERNAL_SYSCALL_CALL (tgkill, err, pid, tid, signo);
+ return (INTERNAL_SYSCALL_ERROR_P (val, err)
+ ? INTERNAL_SYSCALL_ERRNO (val, err) : 0);
+}
+strong_alias (__pthread_kill, pthread_kill)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/pthread_setaffinity.c b/REORG.TODO/sysdeps/unix/sysv/linux/pthread_setaffinity.c
new file mode 100644
index 0000000000..a3167717b9
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/pthread_setaffinity.c
@@ -0,0 +1,59 @@
+/* Copyright (C) 2003-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@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 <errno.h>
+#include <pthreadP.h>
+#include <sysdep.h>
+#include <sys/types.h>
+#include <shlib-compat.h>
+
+
+int
+__pthread_setaffinity_new (pthread_t th, size_t cpusetsize,
+ const cpu_set_t *cpuset)
+{
+ const struct pthread *pd = (const struct pthread *) th;
+ INTERNAL_SYSCALL_DECL (err);
+ int res;
+
+ res = INTERNAL_SYSCALL (sched_setaffinity, err, 3, pd->tid, cpusetsize,
+ cpuset);
+
+#ifdef RESET_VGETCPU_CACHE
+ if (!INTERNAL_SYSCALL_ERROR_P (res, err))
+ RESET_VGETCPU_CACHE ();
+#endif
+
+ return (INTERNAL_SYSCALL_ERROR_P (res, err)
+ ? INTERNAL_SYSCALL_ERRNO (res, err)
+ : 0);
+}
+versioned_symbol (libpthread, __pthread_setaffinity_new,
+ pthread_setaffinity_np, GLIBC_2_3_4);
+
+
+#if SHLIB_COMPAT (libpthread, GLIBC_2_3_3, GLIBC_2_3_4)
+int
+__pthread_setaffinity_old (pthread_t th, cpu_set_t *cpuset)
+{
+ /* The old interface by default assumed a 1024 processor bitmap. */
+ return __pthread_setaffinity_new (th, 128, cpuset);
+}
+compat_symbol (libpthread, __pthread_setaffinity_old, pthread_setaffinity_np,
+ GLIBC_2_3_3);
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/pthread_setname.c b/REORG.TODO/sysdeps/unix/sysv/linux/pthread_setname.c
new file mode 100644
index 0000000000..5769c5b460
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/pthread_setname.c
@@ -0,0 +1,63 @@
+/* pthread_setname_np -- Set thread name. Linux version
+ Copyright (C) 2010-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; see the file COPYING.LIB. If
+ not, see <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <fcntl.h>
+#include <pthreadP.h>
+#include <stdio.h>
+#include <string.h>
+#include <unistd.h>
+#include <sys/prctl.h>
+
+#include <not-cancel.h>
+
+
+int
+pthread_setname_np (pthread_t th, const char *name)
+{
+ const struct pthread *pd = (const struct pthread *) th;
+
+ /* Unfortunately the kernel headers do not export the TASK_COMM_LEN
+ macro. So we have to define it here. */
+#define TASK_COMM_LEN 16
+ size_t name_len = strlen (name);
+ if (name_len >= TASK_COMM_LEN)
+ return ERANGE;
+
+ if (pd == THREAD_SELF)
+ return prctl (PR_SET_NAME, name) ? errno : 0;
+
+#define FMT "/proc/self/task/%u/comm"
+ char fname[sizeof (FMT) + 8];
+ sprintf (fname, FMT, (unsigned int) pd->tid);
+
+ int fd = open_not_cancel_2 (fname, O_RDWR);
+ if (fd == -1)
+ return errno;
+
+ int res = 0;
+ ssize_t n = TEMP_FAILURE_RETRY (write_not_cancel (fd, name, name_len));
+ if (n < 0)
+ res = errno;
+ else if (n != name_len)
+ res = EIO;
+
+ close_not_cancel_no_status (fd);
+
+ return res;
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/pthread_sigmask.c b/REORG.TODO/sysdeps/unix/sysv/linux/pthread_sigmask.c
new file mode 100644
index 0000000000..99fdd43cd5
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/pthread_sigmask.c
@@ -0,0 +1,54 @@
+/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <signal.h>
+#include <pthreadP.h>
+#include <sysdep.h>
+
+
+int
+pthread_sigmask (int how, const sigset_t *newmask, sigset_t *oldmask)
+{
+ sigset_t local_newmask;
+
+ /* The only thing we have to make sure here is that SIGCANCEL and
+ SIGSETXID is not blocked. */
+ if (newmask != NULL
+ && (__builtin_expect (__sigismember (newmask, SIGCANCEL), 0)
+ || __builtin_expect (__sigismember (newmask, SIGSETXID), 0)))
+ {
+ local_newmask = *newmask;
+ __sigdelset (&local_newmask, SIGCANCEL);
+ __sigdelset (&local_newmask, SIGSETXID);
+ newmask = &local_newmask;
+ }
+
+#ifdef INTERNAL_SYSCALL
+ /* We know that realtime signals are available if NPTL is used. */
+ INTERNAL_SYSCALL_DECL (err);
+ int result = INTERNAL_SYSCALL (rt_sigprocmask, err, 4, how, newmask,
+ oldmask, _NSIG / 8);
+
+ return (INTERNAL_SYSCALL_ERROR_P (result, err)
+ ? INTERNAL_SYSCALL_ERRNO (result, err)
+ : 0);
+#else
+ return sigprocmask (how, newmask, oldmask) == -1 ? errno : 0;
+#endif
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/pthread_sigqueue.c b/REORG.TODO/sysdeps/unix/sysv/linux/pthread_sigqueue.c
new file mode 100644
index 0000000000..c73b92e2da
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/pthread_sigqueue.c
@@ -0,0 +1,73 @@
+/* Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@redhat.com>, 2009.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <signal.h>
+#include <string.h>
+#include <unistd.h>
+#include <pthreadP.h>
+#include <tls.h>
+#include <sysdep.h>
+
+
+int
+pthread_sigqueue (pthread_t threadid, int signo, const union sigval value)
+{
+#ifdef __NR_rt_tgsigqueueinfo
+ struct pthread *pd = (struct pthread *) threadid;
+
+ /* Make sure the descriptor is valid. */
+ if (DEBUGGING_P && INVALID_TD_P (pd))
+ /* Not a valid thread handle. */
+ return ESRCH;
+
+ /* Force load of pd->tid into local variable or register. Otherwise
+ if a thread exits between ESRCH test and tgkill, we might return
+ EINVAL, because pd->tid would be cleared by the kernel. */
+ pid_t tid = atomic_forced_read (pd->tid);
+ if (__glibc_unlikely (tid <= 0))
+ /* Not a valid thread handle. */
+ return ESRCH;
+
+ /* Disallow sending the signal we use for cancellation, timers,
+ for the setxid implementation. */
+ if (signo == SIGCANCEL || signo == SIGTIMER || signo == SIGSETXID)
+ return EINVAL;
+
+ pid_t pid = getpid ();
+
+ /* Set up the siginfo_t structure. */
+ siginfo_t info;
+ memset (&info, '\0', sizeof (siginfo_t));
+ info.si_signo = signo;
+ info.si_code = SI_QUEUE;
+ info.si_pid = pid;
+ info.si_uid = getuid ();
+ info.si_value = value;
+
+ /* We have a special syscall to do the work. */
+ INTERNAL_SYSCALL_DECL (err);
+
+ int val = INTERNAL_SYSCALL_CALL (rt_tgsigqueueinfo, err, pid, tid, signo,
+ &info);
+ return (INTERNAL_SYSCALL_ERROR_P (val, err)
+ ? INTERNAL_SYSCALL_ERRNO (val, err) : 0);
+#else
+ return ENOSYS;
+#endif
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/ptrace.c b/REORG.TODO/sysdeps/unix/sysv/linux/ptrace.c
new file mode 100644
index 0000000000..e39127e1cf
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/ptrace.c
@@ -0,0 +1,53 @@
+/* Copyright (C) 1995-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <sys/types.h>
+#include <sys/ptrace.h>
+#include <sys/user.h>
+#include <stdarg.h>
+#include <signal.h>
+
+#include <sysdep.h>
+#include <sys/syscall.h>
+
+long int
+ptrace (enum __ptrace_request request, ...)
+{
+ long int res, ret;
+ va_list ap;
+ pid_t pid;
+ void *addr, *data;
+
+ va_start (ap, request);
+ pid = va_arg (ap, pid_t);
+ addr = va_arg (ap, void *);
+ data = va_arg (ap, void *);
+ va_end (ap);
+
+ if (request > 0 && request < 4)
+ data = &ret;
+
+ res = INLINE_SYSCALL (ptrace, 4, request, pid, addr, data);
+ if (res >= 0 && request > 0 && request < 4)
+ {
+ __set_errno (0);
+ return ret;
+ }
+
+ return res;
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/ptsname.c b/REORG.TODO/sysdeps/unix/sysv/linux/ptsname.c
new file mode 100644
index 0000000000..41bb0bbb0e
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/ptsname.c
@@ -0,0 +1,165 @@
+/* Copyright (C) 1998-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Zack Weinberg <zack@rabi.phys.columbia.edu>, 1998.
+
+ 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 <paths.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/ioctl.h>
+#include <sys/stat.h>
+#include <sys/sysmacros.h>
+#include <termios.h>
+#include <unistd.h>
+
+#include <_itoa.h>
+
+/* Check if DEV corresponds to a master pseudo terminal device. */
+#define MASTER_P(Dev) \
+ (major ((Dev)) == 2 \
+ || (major ((Dev)) == 4 && minor ((Dev)) >= 128 && minor ((Dev)) < 192) \
+ || (major ((Dev)) >= 128 && major ((Dev)) < 136))
+
+/* Check if DEV corresponds to a slave pseudo terminal device. */
+#define SLAVE_P(Dev) \
+ (major ((Dev)) == 3 \
+ || (major ((Dev)) == 4 && minor ((Dev)) >= 192 && minor ((Dev)) < 256) \
+ || (major ((Dev)) >= 136 && major ((Dev)) < 144))
+
+/* Note that major number 4 corresponds to the old BSD style pseudo
+ terminal devices. As of Linux 2.1.115 these are no longer
+ supported. They have been replaced by major numbers 2 (masters)
+ and 3 (slaves). */
+
+/* Directory where we can find the slave pty nodes. */
+#define _PATH_DEVPTS "/dev/pts/"
+
+/* The are declared in getpt.c. */
+extern const char __libc_ptyname1[] attribute_hidden;
+extern const char __libc_ptyname2[] attribute_hidden;
+
+/* Static buffer for `ptsname'. */
+static char buffer[sizeof (_PATH_DEVPTS) + 20];
+
+
+/* Return the pathname of the pseudo terminal slave associated with
+ the master FD is open on, or NULL on errors.
+ The returned storage is good until the next call to this function. */
+char *
+ptsname (int fd)
+{
+ return __ptsname_r (fd, buffer, sizeof (buffer)) != 0 ? NULL : buffer;
+}
+
+
+int
+__ptsname_internal (int fd, char *buf, size_t buflen, struct stat64 *stp)
+{
+ int save_errno = errno;
+ unsigned int ptyno;
+
+ if (!__isatty (fd))
+ {
+ __set_errno (ENOTTY);
+ return ENOTTY;
+ }
+
+#ifdef TIOCGPTN
+ if (__ioctl (fd, TIOCGPTN, &ptyno) == 0)
+ {
+ /* Buffer we use to print the number in. For a maximum size for
+ `int' of 8 bytes we never need more than 20 digits. */
+ char numbuf[21];
+ const char *devpts = _PATH_DEVPTS;
+ const size_t devptslen = strlen (_PATH_DEVPTS);
+ char *p;
+
+ numbuf[sizeof (numbuf) - 1] = '\0';
+ p = _itoa_word (ptyno, &numbuf[sizeof (numbuf) - 1], 10, 0);
+
+ if (buflen < devptslen + (&numbuf[sizeof (numbuf)] - p))
+ {
+ __set_errno (ERANGE);
+ return ERANGE;
+ }
+
+ memcpy (__stpcpy (buf, devpts), p, &numbuf[sizeof (numbuf)] - p);
+ }
+ else if (errno != EINVAL)
+ return errno;
+ else
+#endif
+ {
+ char *p;
+
+ if (buflen < strlen (_PATH_TTY) + 3)
+ {
+ __set_errno (ERANGE);
+ return ERANGE;
+ }
+
+ if (__fxstat64 (_STAT_VER, fd, stp) < 0)
+ return errno;
+
+ /* Check if FD really is a master pseudo terminal. */
+ if (! MASTER_P (stp->st_rdev))
+ {
+ __set_errno (ENOTTY);
+ return ENOTTY;
+ }
+
+ ptyno = minor (stp->st_rdev);
+
+ if (ptyno / 16 >= strlen (__libc_ptyname1))
+ {
+ __set_errno (ENOTTY);
+ return ENOTTY;
+ }
+
+ p = __stpcpy (buf, _PATH_TTY);
+ p[0] = __libc_ptyname1[ptyno / 16];
+ p[1] = __libc_ptyname2[ptyno % 16];
+ p[2] = '\0';
+ }
+
+ if (__xstat64 (_STAT_VER, buf, stp) < 0)
+ return errno;
+
+ /* Check if the name we're about to return really corresponds to a
+ slave pseudo terminal. */
+ if (! S_ISCHR (stp->st_mode) || ! SLAVE_P (stp->st_rdev))
+ {
+ /* This really is a configuration problem. */
+ __set_errno (ENOTTY);
+ return ENOTTY;
+ }
+
+ __set_errno (save_errno);
+ return 0;
+}
+
+
+/* Store at most BUFLEN characters of the pathname of the slave pseudo
+ terminal associated with the master FD is open on in BUF.
+ Return 0 on success, otherwise an error number. */
+int
+__ptsname_r (int fd, char *buf, size_t buflen)
+{
+ struct stat64 st;
+ return __ptsname_internal (fd, buf, buflen, &st);
+}
+weak_alias (__ptsname_r, ptsname_r)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/pwrite.c b/REORG.TODO/sysdeps/unix/sysv/linux/pwrite.c
new file mode 100644
index 0000000000..ef11d8f8a1
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/pwrite.c
@@ -0,0 +1,37 @@
+/* Copyright (C) 1997-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
+
+ 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 <unistd.h>
+#include <sysdep-cancel.h>
+
+#ifndef __OFF_T_MATCHES_OFF64_T
+
+# ifndef __NR_pwrite
+# define __NR_pwrite __NR_pwrite64
+# endif
+
+ssize_t
+__libc_pwrite (int fd, const void *buf, size_t count, off_t offset)
+{
+ return SYSCALL_CANCEL (pwrite, fd, buf, count, SYSCALL_LL_PRW (offset));
+}
+
+strong_alias (__libc_pwrite, __pwrite)
+libc_hidden_weak (__pwrite)
+weak_alias (__libc_pwrite, pwrite)
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/pwrite64.c b/REORG.TODO/sysdeps/unix/sysv/linux/pwrite64.c
new file mode 100644
index 0000000000..71959c0de2
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/pwrite64.c
@@ -0,0 +1,40 @@
+/* Copyright (C) 1997-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
+
+ 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 <unistd.h>
+#include <sysdep-cancel.h>
+
+#ifndef __NR_pwrite64
+# define __NR_pwrite64 __NR_pwrite
+#endif
+
+ssize_t
+__libc_pwrite64 (int fd, const void *buf, size_t count, off64_t offset)
+{
+ return SYSCALL_CANCEL (pwrite64, fd, buf, count, SYSCALL_LL64_PRW (offset));
+}
+
+weak_alias (__libc_pwrite64, __pwrite64)
+libc_hidden_weak (__pwrite64)
+weak_alias (__libc_pwrite64, pwrite64)
+
+#ifdef __OFF_T_MATCHES_OFF64_T
+strong_alias (__libc_pwrite64, __libc_pwrite)
+weak_alias (__libc_pwrite64, __pwrite)
+weak_alias (__libc_pwrite64, pwrite)
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/pwritev.c b/REORG.TODO/sysdeps/unix/sysv/linux/pwritev.c
new file mode 100644
index 0000000000..7545cb3e1e
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/pwritev.c
@@ -0,0 +1,55 @@
+/* Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sys/uio.h>
+#include <sysdep-cancel.h>
+
+#ifndef __OFF_T_MATCHES_OFF64_T
+
+# ifdef __ASSUME_PREADV
+
+# ifndef __NR_pwritev
+# define __NR_pwritev __NR_pwritev64
+# endif
+
+ssize_t
+pwritev (int fd, const struct iovec *vector, int count, off_t offset)
+{
+ return SYSCALL_CANCEL (pwritev, fd, vector, count, LO_HI_LONG (offset));
+}
+# else
+static ssize_t __atomic_pwritev_replacement (int, const struct iovec *,
+ int, off_t) internal_function;
+ssize_t
+pwritev (int fd, const struct iovec *vector, int count, off_t offset)
+{
+# ifdef __NR_pwritev
+ ssize_t result = SYSCALL_CANCEL (pwritev, fd, vector, count,
+ LO_HI_LONG (offset));
+ if (result >= 0 || errno != ENOSYS)
+ return result;
+# endif
+ return __atomic_pwritev_replacement (fd, vector, count, offset);
+}
+# define PWRITEV static internal_function __atomic_pwritev_replacement
+# define PWRITE __pwrite
+# define OFF_T off_t
+# include <sysdeps/posix/pwritev_common.c>
+# endif /* __ASSUME_PREADV */
+
+libc_hidden_def (pwritev)
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/pwritev2.c b/REORG.TODO/sysdeps/unix/sysv/linux/pwritev2.c
new file mode 100644
index 0000000000..72f0471f96
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/pwritev2.c
@@ -0,0 +1,51 @@
+/* Linux implementation of pwritev2.
+ Copyright (C) 2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sys/uio.h>
+#include <sysdep-cancel.h>
+
+#ifndef __OFF_T_MATCHES_OFF64_T
+
+ssize_t
+pwritev2 (int fd, const struct iovec *vector, int count, off_t offset,
+ int flags)
+{
+# ifdef __NR_pwritev2
+ ssize_t result = SYSCALL_CANCEL (pwritev2, fd, vector, count,
+ LO_HI_LONG (offset), flags);
+ if (result >= 0 || errno != ENOSYS)
+ return result;
+# endif
+ /* Trying to emulate the pwritev2 syscall flags is troublesome:
+
+ * We can not temporary change the file state of the O_DSYNC and O_SYNC
+ flags to emulate RWF_{D}SYNC (attempts to change the state of using
+ fcntl are silently ignored).
+
+ * IOCB_HIPRI requires the file opened in O_DIRECT and uses an internal
+ semantic not provided by any other flag (O_NONBLOCK for instance). */
+
+ if (flags != 0)
+ {
+ __set_errno (EOPNOTSUPP);
+ return -1;
+ }
+ return pwritev (fd, vector, count, offset);
+}
+
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/pwritev64.c b/REORG.TODO/sysdeps/unix/sysv/linux/pwritev64.c
new file mode 100644
index 0000000000..9dc4e55f96
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/pwritev64.c
@@ -0,0 +1,56 @@
+/* Copyright (C) 2016-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sys/uio.h>
+#include <sysdep-cancel.h>
+
+#ifdef __ASSUME_PWRITEV
+
+# ifndef __NR_pwritev64
+# define __NR_pwritev64 __NR_pwritev
+# endif
+
+ssize_t
+pwritev64 (int fd, const struct iovec *vector, int count, off64_t offset)
+{
+ return SYSCALL_CANCEL (pwritev64, fd, vector, count, LO_HI_LONG (offset));
+}
+#else
+static ssize_t __atomic_pwritev64_replacement (int, const struct iovec *,
+ int, off64_t) internal_function;
+ssize_t
+pwritev64 (int fd, const struct iovec *vector, int count, off64_t offset)
+{
+#ifdef __NR_pwritev64
+ ssize_t result = SYSCALL_CANCEL (pwritev64, fd, vector, count,
+ LO_HI_LONG (offset));
+ if (result >= 0 || errno != ENOSYS)
+ return result;
+#endif
+ return __atomic_pwritev64_replacement (fd, vector, count, offset);
+}
+# define PWRITEV static internal_function __atomic_pwritev64_replacement
+# define PWRITE __pwrite64
+# define OFF_T off64_t
+# include <sysdeps/posix/pwritev_common.c>
+#endif
+libc_hidden_def (pwritev64)
+
+#ifdef __OFF_T_MATCHES_OFF64_T
+strong_alias (pwritev64, pwritev)
+libc_hidden_def (pwritev)
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/pwritev64v2.c b/REORG.TODO/sysdeps/unix/sysv/linux/pwritev64v2.c
new file mode 100644
index 0000000000..def9a0bc57
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/pwritev64v2.c
@@ -0,0 +1,55 @@
+/* Linux implementation of pwritev2 (LFS version).
+ Copyright (C) 2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sys/uio.h>
+#include <sysdep-cancel.h>
+
+#if !defined(__NR_pwritev64v2) && defined(__NR_pwritev2)
+# define __NR_pwritev64v2 __NR_pwritev2
+#endif
+
+ssize_t
+pwritev64v2 (int fd, const struct iovec *vector, int count, off64_t offset,
+ int flags)
+{
+#ifdef __NR_pwritev64v2
+ ssize_t result = SYSCALL_CANCEL (pwritev64v2, fd, vector, count,
+ LO_HI_LONG (offset), flags);
+ if (result >= 0 || errno != ENOSYS)
+ return result;
+#endif
+ /* Trying to emulate the pwritev2 syscall flags is troublesome:
+
+ * We can not temporary change the file state of the O_DSYNC and O_SYNC
+ flags to emulate RWF_{D}SYNC (attempts to change the state of using
+ fcntl are silently ignored).
+
+ * IOCB_HIPRI requires the file opened in O_DIRECT and uses an internal
+ semantic not provided by any other flag (O_NONBLOCK for instance). */
+
+ if (flags != 0)
+ {
+ __set_errno (EOPNOTSUPP);
+ return -1;
+ }
+ return pwritev64 (fd, vector, count, offset);
+}
+
+#ifdef __OFF_T_MATCHES_OFF64_T
+strong_alias (pwritev64v2, pwritev2)
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/raise.c b/REORG.TODO/sysdeps/unix/sysv/linux/raise.c
new file mode 100644
index 0000000000..70e5a98922
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/raise.c
@@ -0,0 +1,53 @@
+/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <signal.h>
+#include <sysdep.h>
+#include <errno.h>
+#include <sys/types.h>
+#include <unistd.h>
+#include <nptl-signals.h>
+
+int
+raise (int sig)
+{
+ /* rt_sigprocmask may fail if:
+
+ 1. sigsetsize != sizeof (sigset_t) (EINVAL)
+ 2. a failure in copy from/to user space (EFAULT)
+ 3. an invalid 'how' operation (EINVAL)
+
+ The first case is already handle in glibc syscall call by using the arch
+ defined _NSIG. Second case is handled by using a stack allocated mask.
+ The last one should be handled by the block/unblock functions. */
+
+ sigset_t set;
+ __libc_signal_block_app (&set);
+
+ INTERNAL_SYSCALL_DECL (err);
+ pid_t pid = INTERNAL_SYSCALL (getpid, err, 0);
+ pid_t tid = INTERNAL_SYSCALL (gettid, err, 0);
+
+ int ret = INLINE_SYSCALL (tgkill, 3, pid, tid, sig);
+
+ __libc_signal_restore_set (&set);
+
+ return ret;
+}
+libc_hidden_def (raise)
+weak_alias (raise, gsignal)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/read.c b/REORG.TODO/sysdeps/unix/sysv/linux/read.c
new file mode 100644
index 0000000000..2a02c1bae4
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/read.c
@@ -0,0 +1,33 @@
+/* Linux read syscall implementation.
+ Copyright (C) 2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <unistd.h>
+#include <sysdep-cancel.h>
+
+/* Read NBYTES into BUF from FD. Return the number read or -1. */
+ssize_t
+__libc_read (int fd, void *buf, size_t nbytes)
+{
+ return SYSCALL_CANCEL (read, fd, buf, nbytes);
+}
+libc_hidden_def (__libc_read)
+
+libc_hidden_def (__read)
+weak_alias (__libc_read, __read)
+libc_hidden_def (read)
+weak_alias (__libc_read, read)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/readahead.c b/REORG.TODO/sysdeps/unix/sysv/linux/readahead.c
new file mode 100644
index 0000000000..8adcc9a81b
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/readahead.c
@@ -0,0 +1,46 @@
+/* Provide kernel hint to read ahead.
+ Copyright (C) 2002-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <fcntl.h>
+#include <sys/types.h>
+
+#include <sysdep.h>
+#include <sys/syscall.h>
+
+
+#ifdef __NR_readahead
+
+ssize_t
+__readahead (int fd, off64_t offset, size_t count)
+{
+ return INLINE_SYSCALL (readahead, 4, fd,
+ __LONG_LONG_PAIR ((off_t) (offset >> 32),
+ (off_t) (offset & 0xffffffff)),
+ count);
+}
+#else
+ssize_t
+__readahead (int fd, off64_t offset, size_t count)
+{
+ return INLINE_SYSCALL_ERROR_RETURN_VALUE (ENOSYS);
+}
+stub_warning (readahead)
+#endif
+
+weak_alias (__readahead, readahead)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/readdir64.c b/REORG.TODO/sysdeps/unix/sysv/linux/readdir64.c
new file mode 100644
index 0000000000..224f53db88
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/readdir64.c
@@ -0,0 +1,7 @@
+#define __READDIR __readdir64
+#define __GETDENTS __getdents64
+#define DIRENT_TYPE struct dirent64
+
+#include <sysdeps/posix/readdir.c>
+
+weak_alias (__readdir64, readdir64)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/readdir64_r.c b/REORG.TODO/sysdeps/unix/sysv/linux/readdir64_r.c
new file mode 100644
index 0000000000..3dfbf4fd2c
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/readdir64_r.c
@@ -0,0 +1,7 @@
+#define __READDIR_R __readdir64_r
+#define __GETDENTS __getdents64
+#define DIRENT_TYPE struct dirent64
+
+#include <sysdeps/posix/readdir_r.c>
+
+weak_alias (__readdir64_r, readdir64_r)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/readonly-area.c b/REORG.TODO/sysdeps/unix/sysv/linux/readonly-area.c
new file mode 100644
index 0000000000..e2288e98d6
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/readonly-area.c
@@ -0,0 +1,102 @@
+/* Copyright (C) 2004-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <stdint.h>
+#include <stdio.h>
+#include <stdio_ext.h>
+#include <stdlib.h>
+#include <string.h>
+#include "libio/libioP.h"
+
+/* Return 1 if the whole area PTR .. PTR+SIZE is not writable.
+ Return -1 if it is writable. */
+
+int
+__readonly_area (const char *ptr, size_t size)
+{
+ const void *ptr_end = ptr + size;
+
+ FILE *fp = fopen ("/proc/self/maps", "rce");
+ if (fp == NULL)
+ {
+ /* It is the system administrator's choice to not have /proc
+ available to this process (e.g., because it runs in a chroot
+ environment. Don't fail in this case. */
+ if (errno == ENOENT
+ /* The kernel has a bug in that a process is denied access
+ to the /proc filesystem if it is set[ug]id. There has
+ been no willingness to change this in the kernel so
+ far. */
+ || errno == EACCES)
+ return 1;
+ return -1;
+ }
+
+ /* We need no locking. */
+ __fsetlocking (fp, FSETLOCKING_BYCALLER);
+
+ char *line = NULL;
+ size_t linelen = 0;
+
+ while (! feof_unlocked (fp))
+ {
+ if (_IO_getdelim (&line, &linelen, '\n', fp) <= 0)
+ break;
+
+ char *p;
+ uintptr_t from = strtoul (line, &p, 16);
+
+ if (p == line || *p++ != '-')
+ break;
+
+ char *q;
+ uintptr_t to = strtoul (p, &q, 16);
+
+ if (q == p || *q++ != ' ')
+ break;
+
+ if (from < (uintptr_t) ptr_end && to > (uintptr_t) ptr)
+ {
+ /* Found an entry that at least partially covers the area. */
+ if (*q++ != 'r' || *q++ != '-')
+ break;
+
+ if (from <= (uintptr_t) ptr && to >= (uintptr_t) ptr_end)
+ {
+ size = 0;
+ break;
+ }
+ else if (from <= (uintptr_t) ptr)
+ size -= to - (uintptr_t) ptr;
+ else if (to >= (uintptr_t) ptr_end)
+ size -= (uintptr_t) ptr_end - from;
+ else
+ size -= to - from;
+
+ if (!size)
+ break;
+ }
+ }
+
+ fclose (fp);
+ free (line);
+
+ /* If the whole area between ptr and ptr_end is covered by read-only
+ VMAs, return 1. Otherwise return -1. */
+ return size == 0 ? 1 : -1;
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/readv.c b/REORG.TODO/sysdeps/unix/sysv/linux/readv.c
new file mode 100644
index 0000000000..142a0a92a7
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/readv.c
@@ -0,0 +1,27 @@
+/* Linux implementation for readv syscall.
+ Copyright (C) 2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <unistd.h>
+#include <sysdep-cancel.h>
+
+ssize_t
+__readv (int fd, const struct iovec *iov, int iovcnt)
+{
+ return SYSCALL_CANCEL (readv, fd, iov, iovcnt);
+}
+weak_alias (__readv, readv)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/reboot.c b/REORG.TODO/sysdeps/unix/sysv/linux/reboot.c
new file mode 100644
index 0000000000..dfaed404eb
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/reboot.c
@@ -0,0 +1,29 @@
+/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <sys/reboot.h>
+
+#include <sysdep.h>
+#include <sys/syscall.h>
+
+/* Call kernel with additional two arguments the syscall requires. */
+int
+reboot (int howto)
+{
+ return INLINE_SYSCALL (reboot, 3, (int) 0xfee1dead, 672274793, howto);
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/recv.c b/REORG.TODO/sysdeps/unix/sysv/linux/recv.c
new file mode 100644
index 0000000000..2467d9955d
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/recv.c
@@ -0,0 +1,35 @@
+/* Copyright (C) 2015-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sys/socket.h>
+#include <sysdep-cancel.h>
+#include <socketcall.h>
+
+ssize_t
+__libc_recv (int fd, void *buf, size_t len, int flags)
+{
+#ifdef __ASSUME_RECV_SYSCALL
+ return SYSCALL_CANCEL (recv, fd, buf, len, flags);
+#elif defined __ASSUME_RECVFROM_SYSCALL
+ return SYSCALL_CANCEL (recvfrom, fd, buf, len, flags, NULL, NULL);
+#else
+ return SOCKETCALL_CANCEL (recv, fd, buf, len, flags);
+#endif
+}
+weak_alias (__libc_recv, recv)
+weak_alias (__libc_recv, __recv)
+libc_hidden_weak (__recv)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/recvfrom.c b/REORG.TODO/sysdeps/unix/sysv/linux/recvfrom.c
new file mode 100644
index 0000000000..27c2360f64
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/recvfrom.c
@@ -0,0 +1,35 @@
+/* Copyright (C) 2015-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sys/socket.h>
+#include <sysdep-cancel.h>
+#include <socketcall.h>
+
+ssize_t
+__libc_recvfrom (int fd, void *buf, size_t len, int flags,
+ __SOCKADDR_ARG addr, socklen_t *addrlen)
+{
+#ifdef __ASSUME_RECVFROM_SYSCALL
+ return SYSCALL_CANCEL (recvfrom, fd, buf, len, flags, addr.__sockaddr__,
+ addrlen);
+#else
+ return SOCKETCALL_CANCEL (recvfrom, fd, buf, len, flags, addr.__sockaddr__,
+ addrlen);
+#endif
+}
+weak_alias (__libc_recvfrom, recvfrom)
+weak_alias (__libc_recvfrom, __recvfrom)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/recvmmsg.c b/REORG.TODO/sysdeps/unix/sysv/linux/recvmmsg.c
new file mode 100644
index 0000000000..60e06b7754
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/recvmmsg.c
@@ -0,0 +1,36 @@
+/* Copyright (C) 2010-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Andreas Schwab <schwab@redhat.com>, 2010.
+
+ 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 <sys/socket.h>
+
+#include <sysdep-cancel.h>
+#include <sys/syscall.h>
+#include <socketcall.h>
+#include <kernel-features.h>
+
+int
+recvmmsg (int fd, struct mmsghdr *vmessages, unsigned int vlen, int flags,
+ struct timespec *tmo)
+{
+#ifdef __ASSUME_RECVMMSG_SYSCALL
+ return SYSCALL_CANCEL (recvmmsg, fd, vmessages, vlen, flags, tmo);
+#else
+ return SOCKETCALL_CANCEL (recvmmsg, fd, vmessages, vlen, flags, tmo);
+#endif
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/recvmsg.c b/REORG.TODO/sysdeps/unix/sysv/linux/recvmsg.c
new file mode 100644
index 0000000000..020be8bf56
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/recvmsg.c
@@ -0,0 +1,34 @@
+/* Linux recvmsg syscall wrapper.
+ Copyright (C) 2016-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sys/socket.h>
+#include <sysdep-cancel.h>
+#include <socketcall.h>
+#include <shlib-compat.h>
+
+ssize_t
+__libc_recvmsg (int fd, struct msghdr *msg, int flags)
+{
+# ifdef __ASSUME_RECVMSG_SYSCALL
+ return SYSCALL_CANCEL (recvmsg, fd, msg, flags);
+# else
+ return SOCKETCALL_CANCEL (recvmsg, fd, msg, flags);
+# endif
+}
+weak_alias (__libc_recvmsg, recvmsg)
+weak_alias (__libc_recvmsg, __recvmsg)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/remove.c b/REORG.TODO/sysdeps/unix/sysv/linux/remove.c
new file mode 100644
index 0000000000..4abf34a73d
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/remove.c
@@ -0,0 +1,2 @@
+#define IS_NO_DIRECTORY_ERROR errno != EISDIR
+#include <sysdeps/posix/remove.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/rename.c b/REORG.TODO/sysdeps/unix/sysv/linux/rename.c
new file mode 100644
index 0000000000..ebf59bc39c
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/rename.c
@@ -0,0 +1,35 @@
+/* Linux implementation for rename function.
+ Copyright (C) 2016-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <stdio.h>
+#include <fcntl.h>
+#include <sysdep.h>
+#include <errno.h>
+
+/* Rename the file OLD to NEW. */
+int
+rename (const char *old, const char *new)
+{
+#if defined (__NR_rename)
+ return INLINE_SYSCALL_CALL (rename, old, new);
+#elif defined (__NR_renameat)
+ return INLINE_SYSCALL_CALL (renameat, AT_FDCWD, old, AT_FDCWD, new);
+#else
+ return INLINE_SYSCALL_CALL (renameat2, AT_FDCWD, old, AT_FDCWD, new, 0);
+#endif
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/renameat.c b/REORG.TODO/sysdeps/unix/sysv/linux/renameat.c
new file mode 100644
index 0000000000..603159ccc4
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/renameat.c
@@ -0,0 +1,32 @@
+/* Linux implementation for renameat function.
+ Copyright (C) 2016-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <stdio.h>
+#include <fcntl.h>
+#include <sysdep.h>
+#include <errno.h>
+
+int
+renameat (int oldfd, const char *old, int newfd, const char *new)
+{
+#ifdef __NR_renameat
+ return INLINE_SYSCALL_CALL (renameat, oldfd, old, newfd, new);
+#else
+ return INLINE_SYSCALL_CALL (renameat2, oldfd, old, newfd, new, 0);
+#endif
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/Implies b/REORG.TODO/sysdeps/unix/sysv/linux/s390/Implies
new file mode 100644
index 0000000000..e6e51fa5a7
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/Implies
@@ -0,0 +1,5 @@
+s390/nptl
+
+# These supply the ABI compatibility for when long double was double.
+ieee754/ldbl-64-128
+ieee754/ldbl-opt
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/Makefile b/REORG.TODO/sysdeps/unix/sysv/linux/s390/Makefile
new file mode 100644
index 0000000000..3867c33d91
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/Makefile
@@ -0,0 +1,31 @@
+abi-variants := 32 64
+abi-32-options := -U__s390x__
+abi-32-condition := __WORDSIZE == 32
+abi-64-options := -D__s390x__
+abi-64-condition := __WORDSIZE == 64
+
+ifeq ($(subdir),rt)
+librt-routines += rt-sysdep
+librt-shared-only-routines += rt-sysdep
+endif
+
+ifeq ($(subdir),stdlib)
+gen-as-const-headers += ucontext_i.sym
+endif
+
+ifeq ($(subdir),elf)
+sysdep_routines += dl-vdso
+endif
+
+ifeq ($(subdir),nptl)
+ifeq ($(enable-lock-elision),yes)
+libpthread-sysdep_routines += elision-lock elision-unlock elision-timed \
+ elision-trylock
+
+elision-CFLAGS = -mhtm -msoft-float
+CFLAGS-elision-lock.c = $(elision-CFLAGS)
+CFLAGS-elision-timed.c = $(elision-CFLAGS)
+CFLAGS-elision-trylock.c = $(elision-CFLAGS)
+CFLAGS-elision-unlock.c = $(elision-CFLAGS)
+endif
+endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/Versions b/REORG.TODO/sysdeps/unix/sysv/linux/s390/Versions
new file mode 100644
index 0000000000..55518a7e5f
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/Versions
@@ -0,0 +1,16 @@
+libc {
+ GLIBC_2.19 {
+ __longjmp_chk;
+ getcontext;
+ }
+ GLIBC_PRIVATE {
+ __vdso_clock_gettime;
+ __vdso_clock_getres;
+ }
+}
+
+libpthread {
+ GLIBC_2.19 {
+ longjmp; siglongjmp;
+ }
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/arch-fork.h b/REORG.TODO/sysdeps/unix/sysv/linux/s390/arch-fork.h
new file mode 100644
index 0000000000..299e638ce8
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/arch-fork.h
@@ -0,0 +1,29 @@
+/* ARCH_FORK definition for Linux fork implementation. S390 version.
+ Copyright (C) 2003-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Martin Schwidefsky <schwidefsky@de.ibm.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 <sched.h>
+#include <signal.h>
+#include <sysdep.h>
+#include <tls.h>
+
+
+#define ARCH_FORK() \
+ INLINE_SYSCALL (clone, 5, \
+ 0, CLONE_CHILD_SETTID | CLONE_CHILD_CLEARTID | SIGCHLD, \
+ NULL, &THREAD_SELF->tid, NULL)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/bits/elfclass.h b/REORG.TODO/sysdeps/unix/sysv/linux/s390/bits/elfclass.h
new file mode 100644
index 0000000000..723f75158e
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/bits/elfclass.h
@@ -0,0 +1,38 @@
+/* Copyright (C) 2001-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/>. */
+
+/* This file specifies the native word size of the machine, which indicates
+ the ELF file class used for executables and shared objects on this
+ machine. */
+
+#ifndef _LINK_H
+# error "Never use <bits/elfclass.h> directly; include <link.h> instead."
+#endif
+
+#include <bits/wordsize.h>
+
+#define __ELF_NATIVE_CLASS __WORDSIZE
+
+#if __WORDSIZE == 64
+/* 64 bit Linux for S/390 is exceptional as it has .hash section with
+ 64 bit entries. */
+typedef uint64_t Elf_Symndx;
+#else
+/* 32 bit Linux for S/390 has normal .hash section entries with 32 bits. */
+typedef uint32_t Elf_Symndx;
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/bits/environments.h b/REORG.TODO/sysdeps/unix/sysv/linux/s390/bits/environments.h
new file mode 100644
index 0000000000..ab29ebfcc1
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/bits/environments.h
@@ -0,0 +1,96 @@
+/* Copyright (C) 1999-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _UNISTD_H
+# error "Never include this file directly. Use <unistd.h> instead"
+#endif
+
+#include <bits/wordsize.h>
+
+/* This header should define the following symbols under the described
+ situations. A value `1' means that the model is always supported,
+ `-1' means it is never supported. Undefined means it cannot be
+ statically decided.
+
+ _POSIX_V7_ILP32_OFF32 32bit int, long, pointers, and off_t type
+ _POSIX_V7_ILP32_OFFBIG 32bit int, long, and pointers and larger off_t type
+
+ _POSIX_V7_LP64_OFF32 64bit long and pointers and 32bit off_t type
+ _POSIX_V7_LPBIG_OFFBIG 64bit long and pointers and large off_t type
+
+ The macros _POSIX_V6_ILP32_OFF32, _POSIX_V6_ILP32_OFFBIG,
+ _POSIX_V6_LP64_OFF32, _POSIX_V6_LPBIG_OFFBIG, _XBS5_ILP32_OFF32,
+ _XBS5_ILP32_OFFBIG, _XBS5_LP64_OFF32, and _XBS5_LPBIG_OFFBIG were
+ used in previous versions of the Unix standard and are available
+ only for compatibility.
+*/
+
+#if __WORDSIZE == 64
+
+/* Environments with 32-bit wide pointers are optionally provided.
+ Therefore following macros aren't defined:
+ # undef _POSIX_V7_ILP32_OFF32
+ # undef _POSIX_V7_ILP32_OFFBIG
+ # undef _POSIX_V6_ILP32_OFF32
+ # undef _POSIX_V6_ILP32_OFFBIG
+ # undef _XBS5_ILP32_OFF32
+ # undef _XBS5_ILP32_OFFBIG
+ and users need to check at runtime. */
+
+/* We also have no use (for now) for an environment with bigger pointers
+ and offsets. */
+# define _POSIX_V7_LPBIG_OFFBIG -1
+# define _POSIX_V6_LPBIG_OFFBIG -1
+# define _XBS5_LPBIG_OFFBIG -1
+
+/* By default we have 64-bit wide `long int', pointers and `off_t'. */
+# define _POSIX_V7_LP64_OFF64 1
+# define _POSIX_V6_LP64_OFF64 1
+# define _XBS5_LP64_OFF64 1
+
+#else /* __WORDSIZE == 32 */
+
+/* By default we have 32-bit wide `int', `long int', pointers and `off_t'
+ and all platforms support LFS. */
+# define _POSIX_V7_ILP32_OFF32 1
+# define _POSIX_V7_ILP32_OFFBIG 1
+# define _POSIX_V6_ILP32_OFF32 1
+# define _POSIX_V6_ILP32_OFFBIG 1
+# define _XBS5_ILP32_OFF32 1
+# define _XBS5_ILP32_OFFBIG 1
+
+/* We optionally provide an environment with the above size but an 64-bit
+ side `off_t'. Therefore we don't define _POSIX_V7_ILP32_OFFBIG. */
+
+/* Environments with 64-bit wide pointers can be provided,
+ so these macros aren't defined:
+ # undef _POSIX_V7_LP64_OFF64
+ # undef _POSIX_V7_LPBIG_OFFBIG
+ # undef _POSIX_V6_LP64_OFF64
+ # undef _POSIX_V6_LPBIG_OFFBIG
+ # undef _XBS5_LP64_OFF64
+ # undef _XBS5_LPBIG_OFFBIG
+ and sysconf tests for it at runtime. */
+
+#endif /* __WORDSIZE == 32 */
+
+#define __ILP32_OFF32_CFLAGS "-m31"
+#define __ILP32_OFFBIG_CFLAGS "-m31 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
+#define __ILP32_OFF32_LDFLAGS "-m31"
+#define __ILP32_OFFBIG_LDFLAGS "-m31"
+#define __LP64_OFF64_CFLAGS "-m64"
+#define __LP64_OFF64_LDFLAGS "-m64"
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/bits/fcntl.h b/REORG.TODO/sysdeps/unix/sysv/linux/s390/bits/fcntl.h
new file mode 100644
index 0000000000..bce5f1a577
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/bits/fcntl.h
@@ -0,0 +1,71 @@
+/* O_*, F_*, FD_* bit values for Linux.
+ Copyright (C) 2000-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _FCNTL_H
+# error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
+#endif
+
+#include <bits/wordsize.h>
+
+#if __WORDSIZE == 64
+/* Not necessary, files are always with 64bit off_t. */
+# define __O_LARGEFILE 0
+#endif
+
+#if __WORDSIZE == 64
+/* Not necessary, we always have 64-bit offsets. */
+# define F_GETLK64 5 /* Get record locking info. */
+# define F_SETLK64 6 /* Set record locking info (non-blocking). */
+# define F_SETLKW64 7 /* Set record locking info (blocking). */
+#endif
+
+struct flock
+ {
+ short int l_type; /* Type of lock: F_RDLCK, F_WRLCK, or F_UNLCK. */
+ short int l_whence; /* Where `l_start' is relative to (like `lseek'). */
+#if __WORDSIZE == 64 || !defined __USE_FILE_OFFSET64
+ __off_t l_start; /* Offset where the lock begins. */
+ __off_t l_len; /* Size of the locked area; zero means until EOF. */
+#else
+ __off64_t l_start; /* Offset where the lock begins. */
+ __off64_t l_len; /* Size of the locked area; zero means until EOF. */
+#endif
+ __pid_t l_pid; /* Process holding the lock. */
+ };
+
+#ifdef __USE_LARGEFILE64
+struct flock64
+ {
+ short int l_type; /* Type of lock: F_RDLCK, F_WRLCK, or F_UNLCK. */
+ short int l_whence; /* Where `l_start' is relative to (like `lseek'). */
+ __off64_t l_start; /* Offset where the lock begins. */
+ __off64_t l_len; /* Size of the locked area; zero means until EOF. */
+ __pid_t l_pid; /* Process holding the lock. */
+ };
+#endif
+
+#if __WORDSIZE == 64
+# define __POSIX_FADV_DONTNEED 6 /* Don't need these pages. */
+# define __POSIX_FADV_NOREUSE 7 /* Data will be accessed once. */
+#else
+# define __POSIX_FADV_DONTNEED 4 /* Don't need these pages. */
+# define __POSIX_FADV_NOREUSE 5 /* Data will be accessed once. */
+#endif
+
+/* Include generic Linux declarations. */
+#include <bits/fcntl-linux.h>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/bits/hwcap.h b/REORG.TODO/sysdeps/unix/sysv/linux/s390/bits/hwcap.h
new file mode 100644
index 0000000000..6a7e4328c0
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/bits/hwcap.h
@@ -0,0 +1,38 @@
+/* Defines for bits in AT_HWCAP.
+ Copyright (C) 2012-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_AUXV_H
+# error "Never include <bits/hwcap.h> directly; use <sys/auxv.h> instead."
+#endif
+
+/*
+ * The following must match the kernels asm/elf.h.
+ * Note that these are *not* the same as the STORE FACILITY LIST bits.
+ */
+#define HWCAP_S390_ESAN3 1
+#define HWCAP_S390_ZARCH 2
+#define HWCAP_S390_STFLE 4
+#define HWCAP_S390_MSA 8
+#define HWCAP_S390_LDISP 16
+#define HWCAP_S390_EIMM 32
+#define HWCAP_S390_DFP 64
+#define HWCAP_S390_HPAGE 128
+#define HWCAP_S390_ETF3EH 256
+#define HWCAP_S390_HIGH_GPRS 512
+#define HWCAP_S390_TE 1024
+#define HWCAP_S390_VX 2048
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/bits/ipc.h b/REORG.TODO/sysdeps/unix/sysv/linux/s390/bits/ipc.h
new file mode 100644
index 0000000000..3d462dbca4
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/bits/ipc.h
@@ -0,0 +1,60 @@
+/* Copyright (C) 2001-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_IPC_H
+# error "Never use <bits/ipc.h> directly; include <sys/ipc.h> instead."
+#endif
+
+#include <bits/types.h>
+#include <bits/wordsize.h>
+
+/* Mode bits for `msgget', `semget', and `shmget'. */
+#define IPC_CREAT 01000 /* Create key if key does not exist. */
+#define IPC_EXCL 02000 /* Fail if key exists. */
+#define IPC_NOWAIT 04000 /* Return error on wait. */
+
+/* Control commands for `msgctl', `semctl', and `shmctl'. */
+#define IPC_RMID 0 /* Remove identifier. */
+#define IPC_SET 1 /* Set `ipc_perm' options. */
+#define IPC_STAT 2 /* Get `ipc_perm' options. */
+#ifdef __USE_GNU
+#define IPC_INFO 3 /* See ipcs. */
+#endif
+
+/* Special key values. */
+#define IPC_PRIVATE ((__key_t) 0) /* Private key. */
+
+
+/* Data structure used to pass permission information to IPC operations. */
+struct ipc_perm
+ {
+ __key_t __key; /* Key. */
+ __uid_t uid; /* Owner's user ID. */
+ __gid_t gid; /* Owner's group ID. */
+ __uid_t cuid; /* Creator's user ID. */
+ __gid_t cgid; /* Creator's group ID. */
+#if __WORDSIZE == 64
+ __mode_t mode; /* Read/write permission. */
+#else
+ unsigned short int mode; /* Read/write permission. */
+ unsigned short int __pad1;
+#endif
+ unsigned short int __seq; /* Sequence number. */
+ unsigned short int __pad2;
+ unsigned long int __glibc_reserved1;
+ unsigned long int __glibc_reserved2;
+ };
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/bits/mman.h b/REORG.TODO/sysdeps/unix/sysv/linux/s390/bits/mman.h
new file mode 100644
index 0000000000..922cd4dfbb
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/bits/mman.h
@@ -0,0 +1,41 @@
+/* Definitions for POSIX memory map interface. 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/>. */
+
+#ifndef _SYS_MMAN_H
+# error "Never use <bits/mman.h> directly; include <sys/mman.h> instead."
+#endif
+
+/* The following definitions basically come from the kernel headers.
+ But the kernel header is not namespace clean. */
+
+
+/* These are Linux-specific. */
+#ifdef __USE_MISC
+# define MAP_GROWSDOWN 0x00100 /* Stack-like segment. */
+# define MAP_DENYWRITE 0x00800 /* ETXTBSY */
+# define MAP_EXECUTABLE 0x01000 /* Mark it as an executable. */
+# define MAP_LOCKED 0x02000 /* Lock the mapping. */
+# define MAP_NORESERVE 0x04000 /* Don't check for reservations. */
+# define MAP_POPULATE 0x08000 /* Populate (prefault) pagetables. */
+# define MAP_NONBLOCK 0x10000 /* Do not block on IO. */
+# define MAP_STACK 0x20000 /* Allocation is for a stack. */
+# define MAP_HUGETLB 0x40000 /* Create huge page mapping. */
+#endif
+
+/* Include generic Linux declarations. */
+#include <bits/mman-linux.h>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/bits/msq.h b/REORG.TODO/sysdeps/unix/sysv/linux/s390/bits/msq.h
new file mode 100644
index 0000000000..5eb0b9a155
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/bits/msq.h
@@ -0,0 +1,84 @@
+/* Copyright (C) 2001-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_MSG_H
+# error "Never use <bits/msq.h> directly; include <sys/msg.h> instead."
+#endif
+
+#include <bits/types.h>
+#include <bits/wordsize.h>
+
+/* Define options for message queue functions. */
+#define MSG_NOERROR 010000 /* no error if message is too big */
+#ifdef __USE_GNU
+# define MSG_EXCEPT 020000 /* recv any msg except of specified type */
+# define MSG_COPY 040000 /* copy (not remove) all queue messages */
+#endif
+
+/* Types used in the structure definition. */
+typedef unsigned long int msgqnum_t;
+typedef unsigned long int msglen_t;
+
+
+/* Structure of record for one message inside the kernel.
+ The type `struct msg' is opaque. */
+struct msqid_ds
+{
+ struct ipc_perm msg_perm; /* structure describing operation permission */
+ __time_t msg_stime; /* time of last msgsnd command */
+#if __WORDSIZE != 64
+ unsigned long int __glibc_reserved1;
+#endif
+ __time_t msg_rtime; /* time of last msgrcv command */
+#if __WORDSIZE != 64
+ unsigned long int __glibc_reserved2;
+#endif
+ __time_t msg_ctime; /* time of last change */
+#if __WORDSIZE != 64
+ unsigned long int __glibc_reserved3;
+#endif
+ unsigned long int __msg_cbytes; /* current number of bytes on queue */
+ msgqnum_t msg_qnum; /* number of messages currently on queue */
+ msglen_t msg_qbytes; /* max number of bytes allowed on queue */
+ __pid_t msg_lspid; /* pid of last msgsnd() */
+ __pid_t msg_lrpid; /* pid of last msgrcv() */
+ unsigned long int __glibc_reserved4;
+ unsigned long int __glibc_reserved5;
+};
+
+#ifdef __USE_MISC
+
+# define msg_cbytes __msg_cbytes
+
+/* ipcs ctl commands */
+# define MSG_STAT 11
+# define MSG_INFO 12
+
+/* buffer for msgctl calls IPC_INFO, MSG_INFO */
+struct msginfo
+ {
+ int msgpool;
+ int msgmap;
+ int msgmax;
+ int msgmnb;
+ int msgmni;
+ int msgssz;
+ int msgtql;
+ unsigned short int msgseg;
+ };
+
+#endif /* __USE_MISC */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/bits/sem.h b/REORG.TODO/sysdeps/unix/sysv/linux/s390/bits/sem.h
new file mode 100644
index 0000000000..0ff0be10ef
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/bits/sem.h
@@ -0,0 +1,90 @@
+/* Copyright (C) 2001-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_SEM_H
+# error "Never include <bits/sem.h> directly; use <sys/sem.h> instead."
+#endif
+
+#include <sys/types.h>
+
+/* Flags for `semop'. */
+#define SEM_UNDO 0x1000 /* undo the operation on exit */
+
+/* Commands for `semctl'. */
+#define GETPID 11 /* get sempid */
+#define GETVAL 12 /* get semval */
+#define GETALL 13 /* get all semval's */
+#define GETNCNT 14 /* get semncnt */
+#define GETZCNT 15 /* get semzcnt */
+#define SETVAL 16 /* set semval */
+#define SETALL 17 /* set all semval's */
+
+
+/* Data structure describing a set of semaphores. */
+struct semid_ds
+{
+ struct ipc_perm sem_perm; /* operation permission struct */
+ __time_t sem_otime; /* last semop() time */
+#if __WORDSIZE != 64
+ unsigned long int __glibc_reserved1;
+#endif
+ __time_t sem_ctime; /* last time changed by semctl() */
+#if __WORDSIZE != 64
+ unsigned long int __glibc_reserved2;
+#endif
+ unsigned long int sem_nsems; /* number of semaphores in set */
+ unsigned long int __glibc_reserved3;
+ unsigned long int __glibc_reserved4;
+};
+
+/* The user should define a union like the following to use it for arguments
+ for `semctl'.
+
+ union semun
+ {
+ int val; <= value for SETVAL
+ struct semid_ds *buf; <= buffer for IPC_STAT & IPC_SET
+ unsigned short int *array; <= array for GETALL & SETALL
+ struct seminfo *__buf; <= buffer for IPC_INFO
+ };
+
+ Previous versions of this file used to define this union but this is
+ incorrect. One can test the macro _SEM_SEMUN_UNDEFINED to see whether
+ one must define the union or not. */
+#define _SEM_SEMUN_UNDEFINED 1
+
+#ifdef __USE_MISC
+
+/* ipcs ctl cmds */
+# define SEM_STAT 18
+# define SEM_INFO 19
+
+struct seminfo
+{
+ int semmap;
+ int semmni;
+ int semmns;
+ int semmnu;
+ int semmsl;
+ int semopm;
+ int semume;
+ int semusz;
+ int semvmx;
+ int semaem;
+};
+
+#endif /* __USE_MISC */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/bits/shm.h b/REORG.TODO/sysdeps/unix/sysv/linux/s390/bits/shm.h
new file mode 100644
index 0000000000..768b16929a
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/bits/shm.h
@@ -0,0 +1,110 @@
+/* Copyright (C) 2001-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_SHM_H
+# error "Never include <bits/shm.h> directly; use <sys/shm.h> instead."
+#endif
+
+#include <bits/types.h>
+#include <bits/wordsize.h>
+
+/* Permission flag for shmget. */
+#define SHM_R 0400 /* or S_IRUGO from <linux/stat.h> */
+#define SHM_W 0200 /* or S_IWUGO from <linux/stat.h> */
+
+/* Flags for `shmat'. */
+#define SHM_RDONLY 010000 /* attach read-only else read-write */
+#define SHM_RND 020000 /* round attach address to SHMLBA */
+#define SHM_REMAP 040000 /* take-over region on attach */
+#define SHM_EXEC 0100000 /* execution access */
+
+/* Commands for `shmctl'. */
+#define SHM_LOCK 11 /* lock segment (root only) */
+#define SHM_UNLOCK 12 /* unlock segment (root only) */
+
+__BEGIN_DECLS
+
+/* Segment low boundary address multiple. */
+#define SHMLBA (__getpagesize ())
+extern int __getpagesize (void) __THROW __attribute__ ((__const__));
+
+
+/* Type to count number of attaches. */
+typedef unsigned long int shmatt_t;
+
+/* Data structure describing a shared memory segment. */
+struct shmid_ds
+ {
+ struct ipc_perm shm_perm; /* operation permission struct */
+ size_t shm_segsz; /* size of segment in bytes */
+ __time_t shm_atime; /* time of last shmat() */
+#if __WORDSIZE != 64
+ unsigned long int __glibc_reserved1;
+#endif
+ __time_t shm_dtime; /* time of last shmdt() */
+#if __WORDSIZE != 64
+ unsigned long int __glibc_reserved2;
+#endif
+ __time_t shm_ctime; /* time of last change by shmctl() */
+#if __WORDSIZE != 64
+ unsigned long int __glibc_reserved3;
+#endif
+ __pid_t shm_cpid; /* pid of creator */
+ __pid_t shm_lpid; /* pid of last shmop */
+ shmatt_t shm_nattch; /* number of current attaches */
+ unsigned long int __glibc_reserved4;
+ unsigned long int __glibc_reserved5;
+ };
+
+#ifdef __USE_MISC
+
+/* ipcs ctl commands */
+# define SHM_STAT 13
+# define SHM_INFO 14
+
+/* shm_mode upper byte flags */
+# define SHM_DEST 01000 /* segment will be destroyed on last detach */
+# define SHM_LOCKED 02000 /* segment will not be swapped */
+# define SHM_HUGETLB 04000 /* segment is mapped via hugetlb */
+# define SHM_NORESERVE 010000 /* don't check for reservations */
+
+struct shminfo
+ {
+ unsigned long int shmmax;
+ unsigned long int shmmin;
+ unsigned long int shmmni;
+ unsigned long int shmseg;
+ unsigned long int shmall;
+ unsigned long int __glibc_reserved1;
+ unsigned long int __glibc_reserved2;
+ unsigned long int __glibc_reserved3;
+ unsigned long int __glibc_reserved4;
+ };
+
+struct shm_info
+ {
+ int used_ids;
+ unsigned long int shm_tot; /* total allocated shm */
+ unsigned long int shm_rss; /* total resident shm */
+ unsigned long int shm_swp; /* total swapped shm */
+ unsigned long int swap_attempts;
+ unsigned long int swap_successes;
+ };
+
+#endif /* __USE_MISC */
+
+__END_DECLS
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/bits/sigaction.h b/REORG.TODO/sysdeps/unix/sysv/linux/s390/bits/sigaction.h
new file mode 100644
index 0000000000..9fc4ba41ca
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/bits/sigaction.h
@@ -0,0 +1,112 @@
+/* Definitions for 31 & 64 bit S/390 sigaction.
+ Copyright (C) 2001-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SIGNAL_H
+# error "Never include <bits/sigaction.h> directly; use <signal.h> instead."
+#endif
+
+#include <bits/wordsize.h>
+
+#if __WORDSIZE == 64
+/* Structure describing the action to be taken when a signal arrives. */
+struct sigaction
+ {
+ /* Signal handler. */
+#ifdef __USE_POSIX199309
+ union
+ {
+ /* Used if SA_SIGINFO is not set. */
+ __sighandler_t sa_handler;
+ /* Used if SA_SIGINFO is set. */
+ void (*sa_sigaction) (int, siginfo_t *, void *);
+ }
+ __sigaction_handler;
+# define sa_handler __sigaction_handler.sa_handler
+# define sa_sigaction __sigaction_handler.sa_sigaction
+#else
+ __sighandler_t sa_handler;
+#endif
+
+ /* Special flags. */
+ int __glibc_reserved0;
+ int sa_flags;
+
+ /* Restore handler. */
+ void (*sa_restorer) (void);
+
+ /* Additional set of signals to be blocked. */
+ __sigset_t sa_mask;
+ };
+#else
+/* Structure describing the action to be taken when a signal arrives. */
+struct sigaction
+ {
+ /* Signal handler. */
+#ifdef __USE_POSIX199309
+ union
+ {
+ /* Used if SA_SIGINFO is not set. */
+ __sighandler_t sa_handler;
+ /* Used if SA_SIGINFO is set. */
+ void (*sa_sigaction) (int, siginfo_t *, void *);
+ }
+ __sigaction_handler;
+# define sa_handler __sigaction_handler.sa_handler
+# define sa_sigaction __sigaction_handler.sa_sigaction
+#else
+ __sighandler_t sa_handler;
+#endif
+
+ /* Additional set of signals to be blocked. */
+ __sigset_t sa_mask;
+
+ /* Special flags. */
+ int sa_flags;
+
+ /* Restore handler. */
+ void (*sa_restorer) (void);
+ };
+#endif
+
+/* Bits in `sa_flags'. */
+#define SA_NOCLDSTOP 1 /* Don't send SIGCHLD when children stop. */
+#define SA_NOCLDWAIT 2 /* Don't create zombie on child death. */
+#define SA_SIGINFO 4 /* Invoke signal-catching function with
+ three arguments instead of one. */
+#if defined __USE_UNIX98 || defined __USE_MISC
+# define SA_ONSTACK 0x08000000 /* Use signal stack by using `sa_restorer'. */
+#endif
+#if defined __USE_UNIX98 || defined __USE_XOPEN2K8
+# define SA_RESTART 0x10000000 /* Restart syscall on signal return. */
+# define SA_NODEFER 0x40000000 /* Don't automatically block the signal when
+ its handler is being executed. */
+# define SA_RESETHAND 0x80000000 /* Reset to SIG_DFL on entry to handler. */
+#endif
+#ifdef __USE_MISC
+# define SA_INTERRUPT 0x20000000 /* Historical no-op. */
+
+/* Some aliases for the SA_ constants. */
+# define SA_NOMASK SA_NODEFER
+# define SA_ONESHOT SA_RESETHAND
+# define SA_STACK SA_ONSTACK
+#endif
+
+/* Values for the HOW argument to `sigprocmask'. */
+#define SIG_BLOCK 0 /* Block signals. */
+#define SIG_UNBLOCK 1 /* Unblock signals. */
+#define SIG_SETMASK 2 /* Set the set of blocked signals. */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/bits/stat.h b/REORG.TODO/sysdeps/unix/sysv/linux/s390/bits/stat.h
new file mode 100644
index 0000000000..c13b697737
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/bits/stat.h
@@ -0,0 +1,265 @@
+/* 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/>. */
+
+#if !defined _SYS_STAT_H && !defined _FCNTL_H
+# error "Never include <bits/stat.h> directly; use <sys/stat.h> instead."
+#endif
+
+#ifndef _BITS_STAT_H
+#define _BITS_STAT_H 1
+
+#include <bits/wordsize.h>
+
+#if __WORDSIZE == 64
+/* Versions of the `struct stat' data structure. */
+# define _STAT_VER_KERNEL 0
+# define _STAT_VER_LINUX 1
+# define _STAT_VER _STAT_VER_LINUX
+
+/* Versions of the `xmknod' interface. */
+#define _MKNOD_VER_LINUX 0
+#else
+/* Versions of the `struct stat' data structure. */
+# define _STAT_VER_LINUX_OLD 1
+# define _STAT_VER_KERNEL 1
+# define _STAT_VER_SVR4 2
+# define _STAT_VER_LINUX 3
+# define _STAT_VER _STAT_VER_LINUX
+
+/* Versions of the `xmknod' interface. */
+# define _MKNOD_VER_LINUX 1
+# define _MKNOD_VER_SVR4 2
+# define _MKNOD_VER _MKNOD_VER_LINUX
+#endif
+
+#if __WORDSIZE == 64
+struct stat
+ {
+ __dev_t st_dev; /* Device. */
+ __ino_t st_ino; /* File serial number. */
+ __nlink_t st_nlink; /* Link count. */
+ __mode_t st_mode; /* File mode. */
+ __uid_t st_uid; /* User ID of the file's owner. */
+ __gid_t st_gid; /* Group ID of the file's group.*/
+ int __glibc_reserved0;
+ __dev_t st_rdev; /* Device number, if device. */
+ __off_t st_size; /* Size of file, in bytes. */
+#ifdef __USE_XOPEN2K8
+ /* Nanosecond resolution timestamps are stored in a format
+ equivalent to 'struct timespec'. This is the type used
+ whenever possible but the Unix namespace rules do not allow the
+ identifier 'timespec' to appear in the <sys/stat.h> header.
+ Therefore we have to handle the use of this header in strictly
+ standard-compliant sources special. */
+ struct timespec st_atim; /* Time of last access. */
+ struct timespec st_mtim; /* Time of last modification. */
+ struct timespec st_ctim; /* Time of last status change. */
+# define st_atime st_atim.tv_sec /* Backward compatibility. */
+# define st_mtime st_mtim.tv_sec
+# define st_ctime st_ctim.tv_sec
+#else
+ __time_t st_atime; /* Time of last access. */
+ unsigned long int st_atimensec; /* Nscecs of last access. */
+ __time_t st_mtime; /* Time of last modification. */
+ unsigned long int st_mtimensec; /* Nsecs of last modification. */
+ __time_t st_ctime; /* Time of last status change. */
+ unsigned long int st_ctimensec; /* Nsecs of last status change. */
+#endif
+ __blksize_t st_blksize; /* Optimal block size for I/O. */
+ __blkcnt_t st_blocks; /* Nr. 512-byte blocks allocated. */
+ long int __glibc_reserved[3];
+ };
+#else
+struct stat
+ {
+ __dev_t st_dev; /* Device. */
+ unsigned int __pad1;
+# ifndef __USE_FILE_OFFSET64
+ __ino_t st_ino; /* File serial number. */
+# else
+ __ino_t __st_ino; /* 32bit file serial number. */
+# endif
+ __mode_t st_mode; /* File mode. */
+ __nlink_t st_nlink; /* Link count. */
+ __uid_t st_uid; /* User ID of the file's owner. */
+ __gid_t st_gid; /* Group ID of the file's group.*/
+ __dev_t st_rdev; /* Device number, if device. */
+ unsigned int __pad2;
+# ifndef __USE_FILE_OFFSET64
+ __off_t st_size; /* Size of file, in bytes. */
+# else
+ __off64_t st_size; /* Size of file, in bytes. */
+# endif
+ __blksize_t st_blksize; /* Optimal block size for I/O. */
+
+# ifndef __USE_FILE_OFFSET64
+ __blkcnt_t st_blocks; /* Number 512-byte blocks allocated. */
+# else
+ __blkcnt64_t st_blocks; /* Number 512-byte blocks allocated. */
+# endif
+# ifdef __USE_XOPEN2K8
+ /* Nanosecond resolution timestamps are stored in a format
+ equivalent to 'struct timespec'. This is the type used
+ whenever possible but the Unix namespace rules do not allow the
+ identifier 'timespec' to appear in the <sys/stat.h> header.
+ Therefore we have to handle the use of this header in strictly
+ standard-compliant sources special. */
+ struct timespec st_atim; /* Time of last access. */
+ struct timespec st_mtim; /* Time of last modification. */
+ struct timespec st_ctim; /* Time of last status change. */
+# define st_atime st_atim.tv_sec /* Backward compatibility. */
+# define st_mtime st_mtim.tv_sec
+# define st_ctime st_ctim.tv_sec
+# else
+ __time_t st_atime; /* Time of last access. */
+ unsigned long int st_atimensec; /* Nscecs of last access. */
+ __time_t st_mtime; /* Time of last modification. */
+ unsigned long int st_mtimensec; /* Nsecs of last modification. */
+ __time_t st_ctime; /* Time of last status change. */
+ unsigned long int st_ctimensec; /* Nsecs of last status change. */
+# endif
+# ifndef __USE_FILE_OFFSET64
+ unsigned long int __glibc_reserved4;
+ unsigned long int __glibc_reserved5;
+# else
+ __ino64_t st_ino; /* File serial number. */
+# endif
+ };
+#endif
+
+#ifdef __USE_LARGEFILE64
+# if __WORDSIZE == 64
+/* Note stat64 is the same shape as stat. */
+struct stat64
+ {
+ __dev_t st_dev; /* Device. */
+ __ino64_t st_ino; /* File serial number. */
+ __nlink_t st_nlink; /* Link count. */
+ __mode_t st_mode; /* File mode. */
+ __uid_t st_uid; /* User ID of the file's owner. */
+ __gid_t st_gid; /* Group ID of the file's group.*/
+ int __glibc_reserved0;
+ __dev_t st_rdev; /* Device number, if device. */
+ __off_t st_size; /* Size of file, in bytes. */
+# ifdef __USE_XOPEN2K8
+ /* Nanosecond resolution timestamps are stored in a format
+ equivalent to 'struct timespec'. This is the type used
+ whenever possible but the Unix namespace rules do not allow the
+ identifier 'timespec' to appear in the <sys/stat.h> header.
+ Therefore we have to handle the use of this header in strictly
+ standard-compliant sources special. */
+ struct timespec st_atim; /* Time of last access. */
+ struct timespec st_mtim; /* Time of last modification. */
+ struct timespec st_ctim; /* Time of last status change. */
+# define st_atime st_atim.tv_sec /* Backward compatibility. */
+# define st_mtime st_mtim.tv_sec
+# define st_ctime st_ctim.tv_sec
+# else
+ __time_t st_atime; /* Time of last access. */
+ unsigned long int st_atimensec; /* Nscecs of last access. */
+ __time_t st_mtime; /* Time of last modification. */
+ unsigned long int st_mtimensec; /* Nsecs of last modification. */
+ __time_t st_ctime; /* Time of last status change. */
+ unsigned long int st_ctimensec; /* Nsecs of last status change. */
+# endif
+ __blksize_t st_blksize; /* Optimal block size for I/O. */
+ __blkcnt64_t st_blocks; /* Nr. 512-byte blocks allocated. */
+ long int __glibc_reserved[3];
+ };
+# else
+struct stat64
+ {
+ __dev_t st_dev; /* Device. */
+ unsigned int __pad1;
+
+ __ino_t __st_ino; /* 32bit file serial number. */
+ __mode_t st_mode; /* File mode. */
+ __nlink_t st_nlink; /* Link count. */
+ __uid_t st_uid; /* User ID of the file's owner. */
+ __gid_t st_gid; /* Group ID of the file's group.*/
+ __dev_t st_rdev; /* Device number, if device. */
+ unsigned int __pad2;
+ __off64_t st_size; /* Size of file, in bytes. */
+ __blksize_t st_blksize; /* Optimal block size for I/O. */
+
+ __blkcnt64_t st_blocks; /* Number 512-byte blocks allocated. */
+# ifdef __USE_XOPEN2K8
+ /* Nanosecond resolution timestamps are stored in a format
+ equivalent to 'struct timespec'. This is the type used
+ whenever possible but the Unix namespace rules do not allow the
+ identifier 'timespec' to appear in the <sys/stat.h> header.
+ Therefore we have to handle the use of this header in strictly
+ standard-compliant sources special. */
+ struct timespec st_atim; /* Time of last access. */
+ struct timespec st_mtim; /* Time of last modification. */
+ struct timespec st_ctim; /* Time of last status change. */
+# define st_atime st_atim.tv_sec /* Backward compatibility. */
+# define st_mtime st_mtim.tv_sec
+# define st_ctime st_ctim.tv_sec
+# else
+ __time_t st_atime; /* Time of last access. */
+ unsigned long int st_atimensec; /* Nscecs of last access. */
+ __time_t st_mtime; /* Time of last modification. */
+ unsigned long int st_mtimensec; /* Nsecs of last modification. */
+ __time_t st_ctime; /* Time of last status change. */
+ unsigned long int st_ctimensec; /* Nsecs of last status change. */
+# endif
+ __ino64_t st_ino; /* File serial number. */
+ };
+# endif
+#endif
+
+/* Tell code we have these members. */
+#define _STATBUF_ST_BLKSIZE
+#define _STATBUF_ST_RDEV
+/* Nanosecond resolution time values are supported. */
+#define _STATBUF_ST_NSEC
+
+/* Encoding of the file mode. */
+
+#define __S_IFMT 0170000 /* These bits determine file type. */
+
+/* File types. */
+#define __S_IFDIR 0040000 /* Directory. */
+#define __S_IFCHR 0020000 /* Character device. */
+#define __S_IFBLK 0060000 /* Block device. */
+#define __S_IFREG 0100000 /* Regular file. */
+#define __S_IFIFO 0010000 /* FIFO. */
+#define __S_IFLNK 0120000 /* Symbolic link. */
+#define __S_IFSOCK 0140000 /* Socket. */
+
+/* POSIX.1b objects. Note that these macros always evaluate to zero. But
+ they do it by enforcing the correct use of the macros. */
+#define __S_TYPEISMQ(buf) ((buf)->st_mode - (buf)->st_mode)
+#define __S_TYPEISSEM(buf) ((buf)->st_mode - (buf)->st_mode)
+#define __S_TYPEISSHM(buf) ((buf)->st_mode - (buf)->st_mode)
+
+/* Protection bits. */
+
+#define __S_ISUID 04000 /* Set user ID on execution. */
+#define __S_ISGID 02000 /* Set group ID on execution. */
+#define __S_ISVTX 01000 /* Save swapped text after use (sticky). */
+#define __S_IREAD 0400 /* Read by owner. */
+#define __S_IWRITE 0200 /* Write by owner. */
+#define __S_IEXEC 0100 /* Execute by owner. */
+
+#ifdef __USE_ATFILE
+# define UTIME_NOW ((1l << 30) - 1l)
+# define UTIME_OMIT ((1l << 30) - 2l)
+#endif
+
+#endif /* bits/stat.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/bits/statfs.h b/REORG.TODO/sysdeps/unix/sysv/linux/s390/bits/statfs.h
new file mode 100644
index 0000000000..4413da4f57
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/bits/statfs.h
@@ -0,0 +1,69 @@
+/* Copyright (C) 1997-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_STATFS_H
+# error "Never include <bits/statfs.h> directly; use <sys/statfs.h> instead."
+#endif
+
+#include <bits/types.h> /* for __fsid_t and __fsblkcnt_t. */
+
+struct statfs
+ {
+ unsigned int f_type;
+ unsigned int f_bsize;
+#ifndef __USE_FILE_OFFSET64
+ __fsblkcnt_t f_blocks;
+ __fsblkcnt_t f_bfree;
+ __fsblkcnt_t f_bavail;
+ __fsfilcnt_t f_files;
+ __fsfilcnt_t f_ffree;
+#else
+ __fsblkcnt64_t f_blocks;
+ __fsblkcnt64_t f_bfree;
+ __fsblkcnt64_t f_bavail;
+ __fsfilcnt64_t f_files;
+ __fsfilcnt64_t f_ffree;
+#endif
+ __fsid_t f_fsid;
+ unsigned int f_namelen;
+ unsigned int f_frsize;
+ unsigned int f_flags;
+ unsigned int f_spare[4];
+ };
+
+#ifdef __USE_LARGEFILE64
+struct statfs64
+ {
+ unsigned int f_type;
+ unsigned int f_bsize;
+ __fsblkcnt64_t f_blocks;
+ __fsblkcnt64_t f_bfree;
+ __fsblkcnt64_t f_bavail;
+ __fsfilcnt64_t f_files;
+ __fsfilcnt64_t f_ffree;
+ __fsid_t f_fsid;
+ unsigned int f_namelen;
+ unsigned int f_frsize;
+ unsigned int f_flags;
+ unsigned int f_spare[4];
+ };
+#endif
+
+/* Tell code we have this member. */
+#define _STATFS_F_NAMELEN
+#define _STATFS_F_FRSIZE
+#define _STATFS_F_FLAGS
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/bits/typesizes.h b/REORG.TODO/sysdeps/unix/sysv/linux/s390/bits/typesizes.h
new file mode 100644
index 0000000000..566849c8ec
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/bits/typesizes.h
@@ -0,0 +1,89 @@
+/* bits/typesizes.h -- underlying types for *_t. Linux/s390 version.
+ Copyright (C) 2003-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _BITS_TYPES_H
+# error "Never include <bits/typesizes.h> directly; use <sys/types.h> instead."
+#endif
+
+#ifndef _BITS_TYPESIZES_H
+#define _BITS_TYPESIZES_H 1
+
+/* See <bits/types.h> for the meaning of these macros. This file exists so
+ that <bits/types.h> need not vary across different GNU platforms. */
+
+#define __DEV_T_TYPE __UQUAD_TYPE
+#define __UID_T_TYPE __U32_TYPE
+#define __GID_T_TYPE __U32_TYPE
+#define __INO_T_TYPE __ULONGWORD_TYPE
+#define __INO64_T_TYPE __UQUAD_TYPE
+#define __MODE_T_TYPE __U32_TYPE
+#define __NLINK_T_TYPE __UWORD_TYPE
+#define __OFF_T_TYPE __SLONGWORD_TYPE
+#define __OFF64_T_TYPE __SQUAD_TYPE
+#define __PID_T_TYPE __S32_TYPE
+#define __RLIM_T_TYPE __ULONGWORD_TYPE
+#define __RLIM64_T_TYPE __UQUAD_TYPE
+#define __BLKCNT_T_TYPE __SLONGWORD_TYPE
+#define __BLKCNT64_T_TYPE __SQUAD_TYPE
+#define __FSBLKCNT_T_TYPE __ULONGWORD_TYPE
+#define __FSBLKCNT64_T_TYPE __UQUAD_TYPE
+#define __FSFILCNT_T_TYPE __ULONGWORD_TYPE
+#define __FSFILCNT64_T_TYPE __UQUAD_TYPE
+#define __FSWORD_T_TYPE __SWORD_TYPE
+#define __ID_T_TYPE __U32_TYPE
+#define __CLOCK_T_TYPE __SLONGWORD_TYPE
+#define __TIME_T_TYPE __SLONGWORD_TYPE
+#define __USECONDS_T_TYPE __U32_TYPE
+#define __SUSECONDS_T_TYPE __SLONGWORD_TYPE
+#define __DADDR_T_TYPE __S32_TYPE
+#define __KEY_T_TYPE __S32_TYPE
+#define __CLOCKID_T_TYPE __S32_TYPE
+#define __TIMER_T_TYPE void *
+#define __BLKSIZE_T_TYPE __SLONGWORD_TYPE
+#define __FSID_T_TYPE struct { int __val[2]; }
+#if defined __GNUC__ && __GNUC__ <= 2
+/* Compatibility with g++ 2.95.x. */
+#define __SSIZE_T_TYPE __SWORD_TYPE
+#else
+/* size_t is unsigned long int on s390 -m31. */
+#define __SSIZE_T_TYPE __SLONGWORD_TYPE
+#endif
+#define __SYSCALL_SLONG_TYPE __SLONGWORD_TYPE
+#define __SYSCALL_ULONG_TYPE __ULONGWORD_TYPE
+#define __CPU_MASK_TYPE __ULONGWORD_TYPE
+
+#ifdef __s390x__
+/* Tell the libc code that off_t and off64_t are actually the same type
+ for all ABI purposes, even if possibly expressed as different base types
+ for C type-checking purposes. */
+# define __OFF_T_MATCHES_OFF64_T 1
+
+/* Same for ino_t and ino64_t. */
+# define __INO_T_MATCHES_INO64_T 1
+
+/* And for __rlim_t and __rlim64_t. */
+# define __RLIM_T_MATCHES_RLIM64_T 1
+#else
+# define __RLIM_T_MATCHES_RLIM64_T 0
+#endif
+
+/* Number of descriptors that can fit in an `fd_set'. */
+#define __FD_SETSIZE 1024
+
+
+#endif /* bits/typesizes.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/bits/utmp.h b/REORG.TODO/sysdeps/unix/sysv/linux/s390/bits/utmp.h
new file mode 100644
index 0000000000..36114c3b0e
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/bits/utmp.h
@@ -0,0 +1,123 @@
+/* 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 _UTMP_H
+# error "Never include <bits/utmp.h> directly; use <utmp.h> instead."
+#endif
+
+#include <paths.h>
+#include <sys/time.h>
+#include <sys/types.h>
+#include <bits/wordsize.h>
+
+
+#define UT_LINESIZE 32
+#define UT_NAMESIZE 32
+#define UT_HOSTSIZE 256
+
+
+/* The structure describing an entry in the database of
+ previous logins. */
+struct lastlog
+ {
+#if __WORDSIZE == 32
+ int64_t ll_time;
+#else
+ __time_t ll_time;
+#endif
+ char ll_line[UT_LINESIZE];
+ char ll_host[UT_HOSTSIZE];
+ };
+
+
+/* The structure describing the status of a terminated process. This
+ type is used in `struct utmp' below. */
+struct exit_status
+ {
+ short int e_termination; /* Process termination status. */
+ short int e_exit; /* Process exit status. */
+ };
+
+
+/* The structure describing an entry in the user accounting database. */
+struct utmp
+{
+ 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. */
+/* The ut_session and ut_tv fields must be the same size when compiled
+ 32- and 64-bit. This allows data files and shared memory to be
+ shared between 32- and 64-bit applications. */
+#if __WORDSIZE == 32
+ 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. */
+#else
+ long int ut_session; /* Session ID, used for windowing. */
+ struct timeval ut_tv; /* Time entry was made. */
+#endif
+
+ int32_t ut_addr_v6[4]; /* Internet address of remote host. */
+ char __glibc_reserved[20]; /* Reserved for future use. */
+};
+
+/* Backwards compatibility hacks. */
+#define ut_name ut_user
+#ifndef _NO_UT_TIME
+/* We have a problem here: `ut_time' is also used otherwise. Define
+ _NO_UT_TIME if the compiler complains. */
+# define ut_time ut_tv.tv_sec
+#endif
+#define ut_xtime ut_tv.tv_sec
+#define ut_addr ut_addr_v6[0]
+
+
+/* Values for the `ut_type' field of a `struct utmp'. */
+#define EMPTY 0 /* No valid user accounting information. */
+
+#define RUN_LVL 1 /* The system's runlevel. */
+#define BOOT_TIME 2 /* Time of system boot. */
+#define NEW_TIME 3 /* Time after system clock changed. */
+#define OLD_TIME 4 /* Time when system clock changed. */
+
+#define INIT_PROCESS 5 /* Process spawned by the init process. */
+#define LOGIN_PROCESS 6 /* Session leader of a logged in user. */
+#define USER_PROCESS 7 /* Normal process. */
+#define DEAD_PROCESS 8 /* Terminated process. */
+
+#define ACCOUNTING 9
+
+/* Old Linux name for the EMPTY type. */
+#define UT_UNKNOWN EMPTY
+
+
+/* Tell the user that we have a modern system with UT_HOST, UT_PID,
+ UT_TYPE, UT_ID and UT_TV fields. */
+#define _HAVE_UT_TYPE 1
+#define _HAVE_UT_PID 1
+#define _HAVE_UT_ID 1
+#define _HAVE_UT_TV 1
+#define _HAVE_UT_HOST 1
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/bits/utmpx.h b/REORG.TODO/sysdeps/unix/sysv/linux/s390/bits/utmpx.h
new file mode 100644
index 0000000000..5850c1ec63
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/bits/utmpx.h
@@ -0,0 +1,102 @@
+/* Structures and definitions for the user accounting database. GNU version.
+ Copyright (C) 1997-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _UTMPX_H
+# error "Never include <bits/utmpx.h> directly; use <utmpx.h> instead."
+#endif
+
+#include <bits/types.h>
+#include <sys/time.h>
+#include <bits/wordsize.h>
+
+
+#ifdef __USE_GNU
+# include <paths.h>
+# define _PATH_UTMPX _PATH_UTMP
+# define _PATH_WTMPX _PATH_WTMP
+#endif
+
+
+#define __UT_LINESIZE 32
+#define __UT_NAMESIZE 32
+#define __UT_HOSTSIZE 256
+
+
+/* The structure describing the status of a terminated process. This
+ type is used in `struct utmpx' below. */
+struct __exit_status
+ {
+#ifdef __USE_GNU
+ short int e_termination; /* Process termination status. */
+ short int e_exit; /* Process exit status. */
+#else
+ short int __e_termination; /* Process termination status. */
+ short int __e_exit; /* Process exit status. */
+#endif
+ };
+
+
+/* The structure describing an entry in the user accounting database. */
+struct utmpx
+{
+ 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. */
+
+/* The fields ut_session and ut_tv must be the same size when compiled
+ 32- and 64-bit. This allows files and shared memory to be shared
+ between 32- and 64-bit applications. */
+#if __WORDSIZE == 32
+ __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. */
+#else
+ long int ut_session; /* Session ID, used for windowing. */
+ struct timeval ut_tv; /* Time entry was made. */
+#endif
+ __int32_t ut_addr_v6[4]; /* Internet address of remote host. */
+ char __glibc_reserved[20]; /* Reserved for future use. */
+};
+
+
+/* Values for the `ut_type' field of a `struct utmpx'. */
+#define EMPTY 0 /* No valid user accounting information. */
+
+#ifdef __USE_GNU
+# define RUN_LVL 1 /* The system's runlevel. */
+#endif
+#define BOOT_TIME 2 /* Time of system boot. */
+#define NEW_TIME 3 /* Time after system clock changed. */
+#define OLD_TIME 4 /* Time when system clock changed. */
+
+#define INIT_PROCESS 5 /* Process spawned by the init process. */
+#define LOGIN_PROCESS 6 /* Session leader of a logged in user. */
+#define USER_PROCESS 7 /* Normal process. */
+#define DEAD_PROCESS 8 /* Terminated process. */
+
+#ifdef __USE_GNU
+# define ACCOUNTING 9 /* System accounting. */
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/brk.c b/REORG.TODO/sysdeps/unix/sysv/linux/s390/brk.c
new file mode 100644
index 0000000000..2e5ad701ff
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/brk.c
@@ -0,0 +1,55 @@
+/*
+ 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 <errno.h>
+#include <unistd.h>
+#include <sysdep.h>
+
+void *__curbrk = 0;
+
+/* Old braindamage in GCC's crtstuff.c requires this symbol in an attempt
+ to work around different old braindamage in the old Linux/x86 ELF
+ dynamic linker. Sigh. */
+weak_alias (__curbrk, ___brk_addr)
+
+int
+__brk (void *addr)
+{
+ void *newbrk;
+
+ {
+ register void *__addr __asm__("2") = addr;
+
+ __asm__ ("svc %b1\n\t" /* call sys_brk */
+ : "=d" (__addr)
+ : "I" (SYS_ify(brk)), "r" (__addr)
+ : "cc", "memory" );
+ newbrk = __addr;
+ }
+ __curbrk = newbrk;
+
+ if (newbrk < addr)
+ {
+ __set_errno (ENOMEM);
+ return -1;
+ }
+
+ return 0;
+}
+weak_alias (__brk, brk)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/configure b/REORG.TODO/sysdeps/unix/sysv/linux/s390/configure
new file mode 100644
index 0000000000..1d735d7b9c
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/configure
@@ -0,0 +1,5 @@
+# This file is generated from configure.ac by Autoconf. DO NOT EDIT!
+ # Local configure fragment for sysdeps/unix/sysv/linux/s390.
+
+libc_cv_gcc_unwind_find_fde=yes
+ldd_rewrite_script=sysdeps/unix/sysv/linux/s390/ldd-rewrite.sed
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/configure.ac b/REORG.TODO/sysdeps/unix/sysv/linux/s390/configure.ac
new file mode 100644
index 0000000000..978450c94b
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/configure.ac
@@ -0,0 +1,5 @@
+GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
+# Local configure fragment for sysdeps/unix/sysv/linux/s390.
+
+libc_cv_gcc_unwind_find_fde=yes
+ldd_rewrite_script=sysdeps/unix/sysv/linux/s390/ldd-rewrite.sed
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/dl-cache.h b/REORG.TODO/sysdeps/unix/sysv/linux/s390/dl-cache.h
new file mode 100644
index 0000000000..766bba4265
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/dl-cache.h
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/sparc/dl-cache.h>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/dl-procinfo.h b/REORG.TODO/sysdeps/unix/sysv/linux/s390/dl-procinfo.h
new file mode 100644
index 0000000000..7cbce0a043
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/dl-procinfo.h
@@ -0,0 +1,49 @@
+/* Linux/s390 version of processor capability information handling macros.
+ Copyright (C) 2006-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Martin Schwidefsky <schwidefsky@de.ibm.com>, 2006.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _DL_S390_PROCINFO_H
+#define _DL_S390_PROCINFO_H 1
+#include <sysdeps/s390/dl-procinfo.h>
+#include <ldsodefs.h>
+
+
+#undef _dl_procinfo
+static inline int
+__attribute__ ((unused))
+_dl_procinfo (unsigned int type, unsigned long int word)
+{
+ /* This table should match the information from arch/s390/kernel/setup.c
+ in the kernel sources. */
+ int i;
+
+ /* Fallback to unknown output mechanism. */
+ if (type == AT_HWCAP2)
+ return -1;
+
+ _dl_printf ("AT_HWCAP: ");
+
+ for (i = 0; i < _DL_HWCAP_COUNT; ++i)
+ if (word & (1UL << i))
+ _dl_printf (" %s", GLRO(dl_s390_cap_flags)[i]);
+
+ _dl_printf ("\n");
+
+ return 0;
+}
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/elision-conf.c b/REORG.TODO/sysdeps/unix/sysv/linux/s390/elision-conf.c
new file mode 100644
index 0000000000..cc0fdef2aa
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/elision-conf.c
@@ -0,0 +1,82 @@
+/* Lock elision tunable parameters.
+ Copyright (C) 2014-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <config.h>
+#include <pthreadP.h>
+#include <elision-conf.h>
+#include <unistd.h>
+#include <dl-procinfo.h>
+
+/* Reasonable initial tuning values, may be revised in the future.
+ This is a conservative initial value. */
+
+struct elision_config __elision_aconf =
+ {
+ /* How often to not attempt to use elision if a transaction aborted
+ because the lock is already acquired. Expressed in number of lock
+ acquisition attempts. */
+ .skip_lock_busy = 3,
+ /* How often to not attempt to use elision if a transaction aborted due
+ to reasons other than other threads' memory accesses. Expressed in
+ number of lock acquisition attempts. */
+ .skip_lock_internal_abort = 3,
+ /* How often to not attempt to use elision if a lock used up all retries
+ without success. Expressed in number of lock acquisition attempts. */
+ .skip_lock_out_of_tbegin_retries = 3,
+ /* How often we try using elision if there is chance for the transaction
+ to finish execution (e.g., it wasn't aborted due to the lock being
+ already acquired. */
+ .try_tbegin = 3,
+ /* Same as SKIP_LOCK_INTERNAL_ABORT but for trylock. */
+ .skip_trylock_internal_abort = 3,
+ };
+
+/* Force elision for all new locks. This is used to decide whether existing
+ DEFAULT locks should be automatically upgraded to elision in
+ pthread_mutex_lock(). Disabled for suid programs. Only used when elision
+ is available. */
+
+int __pthread_force_elision attribute_hidden = 0;
+
+/* Initialize elison. */
+
+static void
+elision_init (int argc __attribute__ ((unused)),
+ char **argv __attribute__ ((unused)),
+ char **environ)
+{
+ /* Set when the CPU and the kernel supports transactional execution.
+ When false elision is never attempted. */
+ int elision_available = (GLRO (dl_hwcap) & HWCAP_S390_TE) ? 1 : 0;
+
+ __pthread_force_elision = __libc_enable_secure ? 0 : elision_available;
+}
+
+#ifdef SHARED
+# define INIT_SECTION ".init_array"
+# define MAYBE_CONST
+#else
+# define INIT_SECTION ".preinit_array"
+# define MAYBE_CONST const
+#endif
+
+void (*MAYBE_CONST __pthread_init_array []) (int, char **, char **)
+ __attribute__ ((section (INIT_SECTION), aligned (sizeof (void *)))) =
+{
+ &elision_init
+};
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/elision-conf.h b/REORG.TODO/sysdeps/unix/sysv/linux/s390/elision-conf.h
new file mode 100644
index 0000000000..3143f3b114
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/elision-conf.h
@@ -0,0 +1,44 @@
+/* Lock elision tunable parameters.
+ Copyright (C) 2014-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+#ifdef ENABLE_LOCK_ELISION
+#ifndef _ELISION_CONF_H
+#define _ELISION_CONF_H 1
+
+#include <pthread.h>
+#include <time.h>
+
+/* Should make sure there is no false sharing on this. */
+
+struct elision_config
+{
+ int skip_lock_busy;
+ int skip_lock_internal_abort;
+ int skip_lock_out_of_tbegin_retries;
+ int try_tbegin;
+ int skip_trylock_internal_abort;
+};
+
+extern struct elision_config __elision_aconf attribute_hidden;
+
+extern int __pthread_force_elision attribute_hidden;
+
+/* Tell the test suite to test elision for this architecture. */
+#define HAVE_ELISION 1
+
+#endif
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/elision-lock.c b/REORG.TODO/sysdeps/unix/sysv/linux/s390/elision-lock.c
new file mode 100644
index 0000000000..00815375c7
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/elision-lock.c
@@ -0,0 +1,125 @@
+/* Elided pthread mutex lock.
+ Copyright (C) 2014-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <pthread.h>
+#include <pthreadP.h>
+#include <lowlevellock.h>
+#include <htm.h>
+#include <elision-conf.h>
+#include <stdint.h>
+
+#if !defined(LLL_LOCK) && !defined(EXTRAARG)
+/* Make sure the configuration code is always linked in for static
+ libraries. */
+#include "elision-conf.c"
+#endif
+
+#ifndef EXTRAARG
+#define EXTRAARG
+#endif
+#ifndef LLL_LOCK
+#define LLL_LOCK(a,b) lll_lock(a,b), 0
+#endif
+
+#define aconf __elision_aconf
+
+/* Adaptive lock using transactions.
+ By default the lock region is run as a transaction, and when it
+ aborts or the lock is busy the lock adapts itself. */
+
+int
+__lll_lock_elision (int *futex, short *adapt_count, EXTRAARG int private)
+{
+ /* adapt_count can be accessed concurrently; these accesses can be both
+ inside of transactions (if critical sections are nested and the outer
+ critical section uses lock elision) and outside of transactions. Thus,
+ we need to use atomic accesses to avoid data races. However, the
+ value of adapt_count is just a hint, so relaxed MO accesses are
+ sufficient. */
+ if (atomic_load_relaxed (adapt_count) <= 0 && aconf.try_tbegin > 0)
+ {
+ /* Start a transaction and retry it automatically if it aborts with
+ _HTM_TBEGIN_TRANSIENT. This macro calls tbegin at most retry_cnt
+ + 1 times. The second argument is considered as retry_cnt. */
+ int status = __libc_tbegin_retry ((void *) 0, aconf.try_tbegin - 1);
+ if (__glibc_likely (status == _HTM_TBEGIN_STARTED))
+ {
+ /* Check the futex to make sure nobody has touched it in the
+ mean time. This forces the futex into the cache and makes
+ sure the transaction aborts if another thread acquires the lock
+ concurrently. */
+ if (__glibc_likely (atomic_load_relaxed (futex) == 0))
+ /* Lock was free. Return to user code in a transaction. */
+ return 0;
+
+ /* Lock was busy. Fall back to normal locking.
+ This can be the case if e.g. adapt_count was decremented to zero
+ by a former release and another thread has been waken up and
+ acquired it. */
+ if (__glibc_likely (__libc_tx_nesting_depth () <= 1))
+ {
+ /* In a non-nested transaction there is no need to abort,
+ which is expensive. Simply end the started transaction. */
+ __libc_tend ();
+ /* Don't try to use transactions for the next couple of times.
+ See above for why relaxed MO is sufficient. */
+ if (aconf.skip_lock_busy > 0)
+ atomic_store_relaxed (adapt_count, aconf.skip_lock_busy);
+ }
+ else /* nesting depth is > 1 */
+ {
+ /* A nested transaction will abort eventually because it
+ cannot make any progress before *futex changes back to 0.
+ So we may as well abort immediately.
+ This persistently aborts the outer transaction to force
+ the outer mutex use the default lock instead of retrying
+ with transactions until the try_tbegin of the outer mutex
+ is zero.
+ The adapt_count of this inner mutex is not changed,
+ because using the default lock with the inner mutex
+ would abort the outer transaction. */
+ __libc_tabort (_HTM_FIRST_USER_ABORT_CODE | 1);
+ __builtin_unreachable ();
+ }
+ }
+ else if (status != _HTM_TBEGIN_TRANSIENT)
+ {
+ /* A persistent abort (cc 1 or 3) indicates that a retry is
+ probably futile. Use the normal locking now and for the
+ next couple of calls.
+ Be careful to avoid writing to the lock. See above for why
+ relaxed MO is sufficient. */
+ if (aconf.skip_lock_internal_abort > 0)
+ atomic_store_relaxed (adapt_count,
+ aconf.skip_lock_internal_abort);
+ }
+ else
+ {
+ /* The transaction failed for some retries with
+ _HTM_TBEGIN_TRANSIENT. Use the normal locking now and for the
+ next couple of calls. */
+ if (aconf.skip_lock_out_of_tbegin_retries > 0)
+ atomic_store_relaxed (adapt_count,
+ aconf.skip_lock_out_of_tbegin_retries);
+ }
+ }
+
+ /* Use normal locking as fallback path if the transaction does not
+ succeed. */
+ return LLL_LOCK ((*futex), private);
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/elision-timed.c b/REORG.TODO/sysdeps/unix/sysv/linux/s390/elision-timed.c
new file mode 100644
index 0000000000..8096ca14ad
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/elision-timed.c
@@ -0,0 +1,26 @@
+/* Lock elision timed lock.
+ Copyright (C) 2014-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <time.h>
+#include <elision-conf.h>
+#include <lowlevellock.h>
+#define __lll_lock_elision __lll_timedlock_elision
+#define EXTRAARG const struct timespec *t,
+#undef LLL_LOCK
+#define LLL_LOCK(a, b) lll_timedlock(a, t, b)
+#include "elision-lock.c"
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/elision-trylock.c b/REORG.TODO/sysdeps/unix/sysv/linux/s390/elision-trylock.c
new file mode 100644
index 0000000000..aa09073324
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/elision-trylock.c
@@ -0,0 +1,97 @@
+/* Elided pthread mutex trylock.
+ Copyright (C) 2014-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <pthread.h>
+#include <pthreadP.h>
+#include <lowlevellock.h>
+#include <htm.h>
+#include <elision-conf.h>
+
+#define aconf __elision_aconf
+
+/* Try to elide a futex trylock. FUTEX is the futex variable. ADAPT_COUNT is
+ the adaptation counter in the mutex. */
+
+int
+__lll_trylock_elision (int *futex, short *adapt_count)
+{
+ /* Implement POSIX semantics by forbiding nesting elided trylocks.
+ Sorry. After the abort the code is re-executed
+ non transactional and if the lock was already locked
+ return an error. */
+ if (__libc_tx_nesting_depth () > 0)
+ {
+ /* Note that this abort may terminate an outermost transaction that
+ was created outside glibc.
+ This persistently aborts the current transactions to force
+ them to use the default lock instead of retrying transactions
+ until their try_tbegin is zero.
+ */
+ __libc_tabort (_HTM_FIRST_USER_ABORT_CODE | 1);
+ __builtin_unreachable ();
+ }
+
+ /* adapt_count can be accessed concurrently; these accesses can be both
+ inside of transactions (if critical sections are nested and the outer
+ critical section uses lock elision) and outside of transactions. Thus,
+ we need to use atomic accesses to avoid data races. However, the
+ value of adapt_count is just a hint, so relaxed MO accesses are
+ sufficient. */
+ if (atomic_load_relaxed (adapt_count) <= 0 && aconf.try_tbegin > 0)
+ {
+ int status = __libc_tbegin ((void *) 0);
+ if (__glibc_likely (status == _HTM_TBEGIN_STARTED))
+ {
+ /* Check the futex to make sure nobody has touched it in the
+ mean time. This forces the futex into the cache and makes
+ sure the transaction aborts if another thread acquires the lock
+ concurrently. */
+ if (__glibc_likely (atomic_load_relaxed (futex) == 0))
+ /* Lock was free. Return to user code in a transaction. */
+ return 0;
+
+ /* Lock was busy. Fall back to normal locking.
+ This can be the case if e.g. adapt_count was decremented to zero
+ by a former release and another thread has been waken up and
+ acquired it.
+ Since we are in a non-nested transaction there is no need to abort,
+ which is expensive. Simply end the started transaction. */
+ __libc_tend ();
+ /* Note: Changing the adapt_count here might abort a transaction on a
+ different CPU, but that could happen anyway when the futex is
+ acquired, so there's no need to check the nesting depth here.
+ See above for why relaxed MO is sufficient. */
+ if (aconf.skip_lock_busy > 0)
+ atomic_store_relaxed (adapt_count, aconf.skip_lock_busy);
+ }
+ else if (status != _HTM_TBEGIN_TRANSIENT)
+ {
+ /* A persistent abort (cc 1 or 3) indicates that a retry is
+ probably futile. Use the normal locking now and for the
+ next couple of calls.
+ Be careful to avoid writing to the lock. */
+ if (aconf.skip_trylock_internal_abort > 0)
+ *adapt_count = aconf.skip_trylock_internal_abort;
+ }
+ /* Could do some retries here. */
+ }
+
+ /* Use normal locking as fallback path if the transaction does not
+ succeed. */
+ return lll_trylock (*futex);
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/elision-unlock.c b/REORG.TODO/sysdeps/unix/sysv/linux/s390/elision-unlock.c
new file mode 100644
index 0000000000..c062d71b77
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/elision-unlock.c
@@ -0,0 +1,61 @@
+/* Commit an elided pthread lock.
+ Copyright (C) 2014-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <pthreadP.h>
+#include <lowlevellock.h>
+#include <htm.h>
+
+int
+__lll_unlock_elision(int *futex, short *adapt_count, int private)
+{
+ /* If the lock is free, we elided the lock earlier. This does not
+ necessarily mean that we are in a transaction, because the user code may
+ have closed the transaction, but that is impossible to detect reliably.
+ Relaxed MO access to futex is sufficient because a correct program
+ will only release a lock it has acquired; therefore, it must either
+ changed the futex word's value to something !=0 or it must have used
+ elision; these are actions by the same thread, so these actions are
+ sequenced-before the relaxed load (and thus also happens-before the
+ relaxed load). Therefore, relaxed MO is sufficient. */
+ if (atomic_load_relaxed (futex) == 0)
+ {
+ __libc_tend ();
+ }
+ else
+ {
+ /* Update the adapt_count while unlocking before completing the critical
+ section. adapt_count is accessed concurrently outside of a
+ transaction or a critical section (e.g. in elision-lock.c). So we need
+ to use atomic accesses. However, the value of adapt_count is just a
+ hint, so relaxed MO accesses are sufficient.
+ If adapt_count would be decremented while locking, multiple
+ CPUs, trying to lock the acquired mutex, will decrement adapt_count to
+ zero and another CPU will try to start a transaction, which will be
+ immediately aborted as the mutex is locked.
+ The update of adapt_count is done before releasing the lock as POSIX'
+ mutex destruction requirements disallow accesses to the mutex after it
+ has been released and thus could have been acquired or destroyed by
+ another thread. */
+ short adapt_count_val = atomic_load_relaxed (adapt_count);
+ if (adapt_count_val > 0)
+ atomic_store_relaxed (adapt_count, adapt_count_val - 1);
+
+ lll_unlock ((*futex), private);
+ }
+ return 0;
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/force-elision.h b/REORG.TODO/sysdeps/unix/sysv/linux/s390/force-elision.h
new file mode 100644
index 0000000000..3ae3bcd566
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/force-elision.h
@@ -0,0 +1,28 @@
+/* Automatic enabling of elision for mutexes
+ Copyright (C) 2014-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifdef ENABLE_LOCK_ELISION
+/* Automatically enable elision for existing user lock kinds. */
+#define FORCE_ELISION(m, s) \
+ if (__pthread_force_elision \
+ && (m->__data.__kind & PTHREAD_MUTEX_ELISION_FLAGS_NP) == 0) \
+ { \
+ mutex->__data.__kind |= PTHREAD_MUTEX_ELISION_NP; \
+ s; \
+ }
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/fpu/Implies b/REORG.TODO/sysdeps/unix/sysv/linux/s390/fpu/Implies
new file mode 100644
index 0000000000..3a8e225986
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/fpu/Implies
@@ -0,0 +1,2 @@
+# Override ldbl-opt with s390 specific routines.
+s390/fpu
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/fpu/s_fma.c b/REORG.TODO/sysdeps/unix/sysv/linux/s390/fpu/s_fma.c
new file mode 100644
index 0000000000..2b2d505030
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/fpu/s_fma.c
@@ -0,0 +1,5 @@
+#include <math_ldbl_opt.h>
+#include <sysdeps/s390/fpu/s_fma.c>
+#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_1)
+compat_symbol (libm, __fma, fmal, GLIBC_2_1);
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/htm.h b/REORG.TODO/sysdeps/unix/sysv/linux/s390/htm.h
new file mode 100644
index 0000000000..70d7f66000
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/htm.h
@@ -0,0 +1,187 @@
+/* Shared HTM header. Work around false transactional execution facility
+ intrinsics.
+
+ Copyright (C) 2016-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _HTM_H
+#define _HTM_H 1
+
+#include <htmintrin.h>
+
+#ifdef __s390x__
+# define TX_FPRS_BYTES 64
+# define TX_SAVE_FPRS \
+ " std %%f8, 0(%[R_FPRS])\n\t" \
+ " std %%f9, 8(%[R_FPRS])\n\t" \
+ " std %%f10, 16(%[R_FPRS])\n\t" \
+ " std %%f11, 24(%[R_FPRS])\n\t" \
+ " std %%f12, 32(%[R_FPRS])\n\t" \
+ " std %%f13, 40(%[R_FPRS])\n\t" \
+ " std %%f14, 48(%[R_FPRS])\n\t" \
+ " std %%f15, 56(%[R_FPRS])\n\t"
+
+# define TX_RESTORE_FPRS \
+ " ld %%f8, 0(%[R_FPRS])\n\t" \
+ " ld %%f9, 8(%[R_FPRS])\n\t" \
+ " ld %%f10, 16(%[R_FPRS])\n\t" \
+ " ld %%f11, 24(%[R_FPRS])\n\t" \
+ " ld %%f12, 32(%[R_FPRS])\n\t" \
+ " ld %%f13, 40(%[R_FPRS])\n\t" \
+ " ld %%f14, 48(%[R_FPRS])\n\t" \
+ " ld %%f15, 56(%[R_FPRS])\n\t"
+
+#else
+
+# define TX_FPRS_BYTES 16
+# define TX_SAVE_FPRS \
+ " std %%f4, 0(%[R_FPRS])\n\t" \
+ " std %%f6, 8(%[R_FPRS])\n\t"
+
+# define TX_RESTORE_FPRS \
+ " ld %%f4, 0(%[R_FPRS])\n\t" \
+ " ld %%f6, 8(%[R_FPRS])\n\t"
+
+#endif /* ! __s390x__ */
+
+/* Use own inline assembly instead of __builtin_tbegin, as tbegin
+ has to filter program interruptions which can't be done with the builtin.
+ Now the fprs have to be saved / restored here, too.
+ The fpc is also not saved / restored with the builtin.
+ The used inline assembly does not clobber the volatile fprs / vrs!
+ Clobbering the latter ones would force the compiler to save / restore
+ the call saved fprs as those overlap with the vrs, but they only need to be
+ restored if the transaction fails but not if the transaction is successfully
+ started. Thus the user of the tbegin macros in this header file has to
+ compile the file / function with -msoft-float. It prevents gcc from using
+ fprs / vrs. */
+#define __libc_tbegin(tdb) __libc_tbegin_base(tdb,,,)
+
+#define __libc_tbegin_retry_output_regs , [R_TX_CNT] "+&d" (__tx_cnt)
+#define __libc_tbegin_retry_input_regs(retry_cnt) , [R_RETRY] "d" (retry_cnt)
+#define __libc_tbegin_retry_abort_path_insn \
+ /* If tbegin returned _HTM_TBEGIN_TRANSIENT, retry immediately so \
+ that max tbegin_cnt transactions are tried. Otherwise return and \
+ let the caller of this macro do the fallback path. */ \
+ " jnh 1f\n\t" /* cc 1/3: jump to fallback path. */ \
+ /* tbegin returned _HTM_TBEGIN_TRANSIENT: retry with transaction. */ \
+ " crje %[R_TX_CNT], %[R_RETRY], 1f\n\t" /* Reached max retries? */ \
+ " ahi %[R_TX_CNT], 1\n\t" \
+ " ppa %[R_TX_CNT], 0, 1\n\t" /* Transaction-Abort Assist. */ \
+ " j 2b\n\t" /* Loop to tbegin. */
+
+/* Same as __libc_tbegin except if tbegin aborts with _HTM_TBEGIN_TRANSIENT.
+ Then this macros restores the fpc, fprs and automatically retries up to
+ retry_cnt tbegins. Further saving of the state is omitted as it is already
+ saved. This macro calls tbegin at most as retry_cnt + 1 times. */
+#define __libc_tbegin_retry(tdb, retry_cnt) \
+ ({ int __ret; \
+ int __tx_cnt = 0; \
+ __ret = __libc_tbegin_base(tdb, \
+ __libc_tbegin_retry_abort_path_insn, \
+ __libc_tbegin_retry_output_regs, \
+ __libc_tbegin_retry_input_regs(retry_cnt)); \
+ __ret; \
+ })
+
+#define __libc_tbegin_base(tdb, abort_path_insn, output_regs, input_regs) \
+ ({ int __ret; \
+ int __fpc; \
+ char __fprs[TX_FPRS_BYTES]; \
+ __asm__ __volatile__ (".machine push\n\t" \
+ ".machinemode \"zarch_nohighgprs\"\n\t" \
+ ".machine \"all\"\n\t" \
+ /* Save state at the outermost transaction. \
+ As extracting nesting depth is expensive \
+ on at least zEC12, save fprs at inner \
+ transactions, too. \
+ The fpc and fprs are saved here as they \
+ are not saved by tbegin. There exist no \
+ call-saved vrs, thus they are not saved \
+ here. */ \
+ " efpc %[R_FPC]\n\t" \
+ TX_SAVE_FPRS \
+ /* Begin transaction: save all gprs, allow \
+ ar modification and fp operations. Some \
+ program-interruptions (e.g. a null \
+ pointer access) are filtered and the \
+ transaction will abort. In this case \
+ the normal lock path will execute it \
+ again and result in a core dump wich does \
+ now show at tbegin but the real executed \
+ instruction. \
+ However it is not guaranteed that this \
+ retry operate on the same data and thus \
+ may not end in an program-interruption. \
+ Note: This could also be used to probe \
+ memory for being accessible! */ \
+ "2: tbegin 0, 0xFF0E\n\t" \
+ /* Branch away in abort case (this is the \
+ prefered sequence. See PoP in chapter 5 \
+ Transactional-Execution Facility \
+ Operation). */ \
+ " jnz 0f\n\t" \
+ /* Transaction has successfully started. */ \
+ " lhi %[R_RET], 0\n\t" \
+ " j 1f\n\t" \
+ /* Transaction has aborted. Now we are at \
+ the outermost transaction. Restore fprs \
+ and fpc. */ \
+ "0: ipm %[R_RET]\n\t" \
+ " srl %[R_RET], 28\n\t" \
+ " sfpc %[R_FPC]\n\t" \
+ TX_RESTORE_FPRS \
+ abort_path_insn \
+ "1:\n\t" \
+ ".machine pop\n" \
+ : [R_RET] "=&d" (__ret), \
+ [R_FPC] "=&d" (__fpc) \
+ output_regs \
+ : [R_FPRS] "a" (__fprs) \
+ input_regs \
+ : "cc", "memory"); \
+ __ret; \
+ })
+
+/* These builtins are usable in context of glibc lock elision code without any
+ changes. Use them. */
+#define __libc_tend() \
+ ({ __asm__ __volatile__ (".machine push\n\t" \
+ ".machinemode \"zarch_nohighgprs\"\n\t" \
+ ".machine \"all\"\n\t"); \
+ int __ret = __builtin_tend (); \
+ __asm__ __volatile__ (".machine pop"); \
+ __ret; \
+ })
+
+#define __libc_tabort(abortcode) \
+ __asm__ __volatile__ (".machine push\n\t" \
+ ".machinemode \"zarch_nohighgprs\"\n\t" \
+ ".machine \"all\"\n\t"); \
+ __builtin_tabort (abortcode); \
+ __asm__ __volatile__ (".machine pop")
+
+#define __libc_tx_nesting_depth() \
+ ({ __asm__ __volatile__ (".machine push\n\t" \
+ ".machinemode \"zarch_nohighgprs\"\n\t" \
+ ".machine \"all\"\n\t"); \
+ int __ret = __builtin_tx_nesting_depth (); \
+ __asm__ __volatile__ (".machine pop"); \
+ __ret; \
+ })
+
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/init-first.c b/REORG.TODO/sysdeps/unix/sysv/linux/s390/init-first.c
new file mode 100644
index 0000000000..8bc86cf473
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/init-first.c
@@ -0,0 +1,60 @@
+/* Initialization code run first thing by the ELF startup code. Linux/s390.
+ Copyright (C) 2008-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifdef SHARED
+# include <dl-vdso.h>
+# include <libc-vdso.h>
+
+long int (*VDSO_SYMBOL(gettimeofday)) (struct timeval *, void *)
+ attribute_hidden;
+
+long int (*VDSO_SYMBOL(clock_gettime)) (clockid_t, struct timespec *)
+ __attribute__ ((nocommon));
+
+long int (*VDSO_SYMBOL(clock_getres)) (clockid_t, struct timespec *)
+ __attribute__ ((nocommon));
+
+long int (*VDSO_SYMBOL(getcpu)) (unsigned *, unsigned *, void *)
+ attribute_hidden;
+
+static inline void
+_libc_vdso_platform_setup (void)
+{
+ PREPARE_VERSION (linux2629, "LINUX_2.6.29", 123718585);
+
+ void *p = _dl_vdso_vsym ("__kernel_gettimeofday", &linux2629);
+ PTR_MANGLE (p);
+ VDSO_SYMBOL (gettimeofday) = p;
+
+ p = _dl_vdso_vsym ("__kernel_clock_gettime", &linux2629);
+ PTR_MANGLE (p);
+ VDSO_SYMBOL (clock_gettime) = p;
+
+ p = _dl_vdso_vsym ("__kernel_clock_getres", &linux2629);
+ PTR_MANGLE (p);
+ VDSO_SYMBOL (clock_getres) = p;
+
+ p = _dl_vdso_vsym ("__kernel_getcpu", &linux2629);
+ PTR_MANGLE (p);
+ VDSO_SYMBOL (getcpu) = p;
+}
+
+# define VDSO_SETUP _libc_vdso_platform_setup
+#endif
+
+#include <csu/init-first.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/jmp-unwind.c b/REORG.TODO/sysdeps/unix/sysv/linux/s390/jmp-unwind.c
new file mode 100644
index 0000000000..3d9d4bc0b0
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/jmp-unwind.c
@@ -0,0 +1,33 @@
+/* Clean up stack frames unwound by longjmp. Linux/s390 version.
+ Copyright (C) 2003-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <setjmp.h>
+#include <stddef.h>
+#include <libc-lock.h>
+
+extern void __pthread_cleanup_upto (__jmp_buf env, char *targetframe);
+#pragma weak __pthread_cleanup_upto
+
+
+void
+_longjmp_unwind (jmp_buf env, int val)
+{
+ char local_var;
+
+ __libc_ptf_call (__pthread_cleanup_upto, (env->__jmpbuf, &local_var), 0);
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/kernel-features.h b/REORG.TODO/sysdeps/unix/sysv/linux/s390/kernel-features.h
new file mode 100644
index 0000000000..f44d429365
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/kernel-features.h
@@ -0,0 +1,52 @@
+/* Set flags signalling availability of kernel features based on given
+ kernel version number. S/390 version.
+ Copyright (C) 1999-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+/* S/390 uses socketcall. */
+#define __ASSUME_SOCKETCALL 1
+
+/* Direct socketcalls available with kernel 4.3. */
+#if __LINUX_KERNEL_VERSION >= 0x040300
+# define __ASSUME_SOCKET_SYSCALL 1
+# define __ASSUME_SOCKETPAIR_SYSCALL 1
+# define __ASSUME_BIND_SYSCALL 1
+# define __ASSUME_LISTEN_SYSCALL 1
+# define __ASSUME_GETSOCKOPT_SYSCALL 1
+# define __ASSUME_SETSOCKOPT_SYSCALL 1
+# define __ASSUME_GETSOCKNAME_SYSCALL 1
+# define __ASSUME_GETPEERNAME_SYSCALL 1
+# define __ASSUME_SHUTDOWN_SYSCALL 1
+#endif
+
+#include_next <kernel-features.h>
+
+#undef __ASSUME_ACCEPT_SYSCALL
+
+#if __LINUX_KERNEL_VERSION < 0x040300
+# undef __ASSUME_ACCEPT4_SYSCALL
+# undef __ASSUME_RECVMMSG_SYSCALL
+# undef __ASSUME_SENDMMSG_SYSCALL
+# undef __ASSUME_SENDMSG_SYSCALL
+# undef __ASSUME_RECVMSG_SYSCALL
+# undef __ASSUME_CONNECT_SYSCALL
+# undef __ASSUME_RECVFROM_SYSCALL
+# undef __ASSUME_SENDTO_SYSCALL
+#endif
+
+/* s390 only supports ipc syscall. */
+#undef __ASSUME_DIRECT_SYSVIPC_SYSCALLS
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/ldconfig.h b/REORG.TODO/sysdeps/unix/sysv/linux/s390/ldconfig.h
new file mode 100644
index 0000000000..f5f1c33692
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/ldconfig.h
@@ -0,0 +1,25 @@
+/* Copyright (C) 2001-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdeps/generic/ldconfig.h>
+
+#define SYSDEP_KNOWN_INTERPRETER_NAMES \
+ { "/lib/ld.so.1", FLAG_ELF_LIBC6 }, \
+ { "/lib/ld64.so.1", FLAG_ELF_LIBC6 },
+#define SYSDEP_KNOWN_LIBRARY_NAMES \
+ { "libc.so.6", FLAG_ELF_LIBC6 }, \
+ { "libm.so.6", FLAG_ELF_LIBC6 },
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/ldd-rewrite.sed b/REORG.TODO/sysdeps/unix/sysv/linux/s390/ldd-rewrite.sed
new file mode 100644
index 0000000000..6b4f1bfcad
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/ldd-rewrite.sed
@@ -0,0 +1,15 @@
+/LD_TRACE_LOADED_OBJECTS=1/a\
+add_env="$add_env LD_LIBRARY_VERSION=\\$verify_out"
+
+# ldd is generated from elf/ldd.bash.in with the name
+# of ld.so as generated in Makeconfig
+
+# that name is replaced by a pair referring to both
+# the 32bit and 64bit dynamic linker.
+
+# /lib(64|)/*(64|).so* is replaced with /lib/*.so* and /lib/*64.so*
+# this works for /lib64/ld64.so.x and /lib/ld.so.x as input
+s_lib64_lib_
+s_64\.so_\.so_
+s_^RTLDLIST=\(.*lib\)\(/[^/]*\)\(\.so\.[0-9.]*\)[[:blank:]]*$_RTLDLIST="\1\2\3 \1\264\3"_
+
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/libanl.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/s390/libanl.abilist
new file mode 100644
index 0000000000..edabfb436e
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/libanl.abilist
@@ -0,0 +1,5 @@
+GLIBC_2.2.3 GLIBC_2.2.3 A
+GLIBC_2.2.3 gai_cancel F
+GLIBC_2.2.3 gai_error F
+GLIBC_2.2.3 gai_suspend F
+GLIBC_2.2.3 getaddrinfo_a F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/libc-vdso.h b/REORG.TODO/sysdeps/unix/sysv/linux/s390/libc-vdso.h
new file mode 100644
index 0000000000..077e4aeac9
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/libc-vdso.h
@@ -0,0 +1,38 @@
+/* Resolve function pointers to VDSO functions.
+ Copyright (C) 2008-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+
+#ifndef _LIBC_VDSO_H
+#define _LIBC_VDSO_H
+
+#ifdef SHARED
+
+#include <sysdep-vdso.h>
+
+extern long int (*VDSO_SYMBOL(gettimeofday)) (struct timeval *, void *)
+ attribute_hidden;
+
+extern long int (*VDSO_SYMBOL(clock_gettime)) (clockid_t, struct timespec *);
+
+extern long int (*VDSO_SYMBOL(clock_getres)) (clockid_t, struct timespec *);
+
+extern long int (*VDSO_SYMBOL(getcpu)) (unsigned *, unsigned *, void *)
+ attribute_hidden;
+#endif
+
+#endif /* _LIBC_VDSO_H */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/localplt.data b/REORG.TODO/sysdeps/unix/sysv/linux/s390/localplt.data
new file mode 100644
index 0000000000..50006317c7
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/localplt.data
@@ -0,0 +1,16 @@
+libc.so: _Unwind_Find_FDE
+libc.so: calloc
+libc.so: free
+libc.so: malloc
+libc.so: memalign
+libc.so: realloc
+libm.so: matherr
+# The main malloc is interposed into the dynamic linker, for
+# allocations after the initial link (when dlopen is used).
+ld.so: malloc
+ld.so: calloc
+ld.so: realloc
+ld.so: free
+# The TLS-enabled version of these functions is interposed from libc.so.
+ld.so: _dl_signal_error
+ld.so: _dl_catch_error
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/longjmp_chk.c b/REORG.TODO/sysdeps/unix/sysv/linux/s390/longjmp_chk.c
new file mode 100644
index 0000000000..878cbd4850
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/longjmp_chk.c
@@ -0,0 +1,48 @@
+/* Copyright (C) 2014-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>.
+
+ Versioned copy of debug/longjmp_chk.c modified for versioning
+ the reverted jmpbuf extension. */
+
+#include <shlib-compat.h>
+
+#if IS_IN (libc) && defined SHARED && SHLIB_COMPAT (libc, GLIBC_2_19, GLIBC_2_20)
+/* this is a copy from debug/longjmp_chk.c because we need an unique name
+ for __longjmp_chk, but it is already named via a define
+ for __libc_siglongjmp in debug/longjmp_chk.c. */
+# include <setjmp.h>
+
+// XXX Should move to include/setjmp.h
+extern void ____longjmp_chk (__jmp_buf __env, int __val)
+ __attribute__ ((__noreturn__));
+
+# define __longjmp ____longjmp_chk
+# define __libc_siglongjmp __v1__longjmp_chk
+
+# include <setjmp/longjmp.c>
+
+/* In glibc release 2.19 a new versions of __longjmp_chk was introduced,
+ but was reverted before 2.20. Thus both versions are the same function. */
+strong_alias (__v1__longjmp_chk, __v2__longjmp_chk);
+versioned_symbol (libc, __v1__longjmp_chk, __longjmp_chk, GLIBC_2_11);
+compat_symbol (libc, __v2__longjmp_chk, __longjmp_chk, GLIBC_2_19);
+
+#else
+
+# include <debug/longjmp_chk.c>
+
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/lowlevellock.h b/REORG.TODO/sysdeps/unix/sysv/linux/s390/lowlevellock.h
new file mode 100644
index 0000000000..604137f7f2
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/lowlevellock.h
@@ -0,0 +1,50 @@
+/* Copyright (C) 2003-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Martin Schwidefsky <schwidefsky@de.ibm.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/>. */
+
+#ifndef _S390_LOWLEVELLOCK_H
+#define _S390_LOWLEVELLOCK_H 1
+
+#include <sysdeps/nptl/lowlevellock.h>
+
+/* Transactional lock elision definitions. */
+# ifdef ENABLE_LOCK_ELISION
+extern int __lll_timedlock_elision
+ (int *futex, short *adapt_count, const struct timespec *timeout, int private)
+ attribute_hidden;
+
+# define lll_timedlock_elision(futex, adapt_count, timeout, private) \
+ __lll_timedlock_elision(&(futex), &(adapt_count), timeout, private)
+
+extern int __lll_lock_elision (int *futex, short *adapt_count, int private)
+ attribute_hidden;
+
+extern int __lll_unlock_elision(int *futex, short *adapt_count, int private)
+ attribute_hidden;
+
+extern int __lll_trylock_elision(int *futex, short *adapt_count)
+ attribute_hidden;
+
+# define lll_lock_elision(futex, adapt_count, private) \
+ __lll_lock_elision (&(futex), &(adapt_count), private)
+# define lll_unlock_elision(futex, adapt_count, private) \
+ __lll_unlock_elision (&(futex), &(adapt_count), private)
+# define lll_trylock_elision(futex, adapt_count) \
+ __lll_trylock_elision(&(futex), &(adapt_count))
+# endif /* ENABLE_LOCK_ELISION */
+
+#endif /* lowlevellock.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/mmap_internal.h b/REORG.TODO/sysdeps/unix/sysv/linux/s390/mmap_internal.h
new file mode 100644
index 0000000000..2b11ce4e68
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/mmap_internal.h
@@ -0,0 +1,32 @@
+/* mmap - map files or devices into memory. Linux/s390 version.
+ Copyright (C) 2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef MMAP_S390_INTERNAL_H
+# define MMAP_S390_INTERNAL_H
+
+#define MMAP_CALL(__nr, __addr, __len, __prot, __flags, __fd, __offset) \
+ ({ \
+ long int __args[6] = { (long int) (__addr), (long int) (__len), \
+ (long int) (__prot), (long int) (__flags), \
+ (long int) (__fd), (long int) (__offset) }; \
+ INLINE_SYSCALL_CALL (__nr, __args); \
+ })
+
+#include_next <mmap_internal.h>
+
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/nldbl-abi.h b/REORG.TODO/sysdeps/unix/sysv/linux/s390/nldbl-abi.h
new file mode 100644
index 0000000000..bd985cc59c
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/nldbl-abi.h
@@ -0,0 +1,8 @@
+/* ABI version for long double switch.
+ This is used by the Versions and math_ldbl_opt.h files in
+ sysdeps/ieee754/ldbl-opt/. It gives the ABI version where
+ long double == double was replaced with proper long double
+ for libm *l functions and libc functions using long double. */
+
+#define NLDBL_VERSION GLIBC_2.4
+#define LONG_DOUBLE_COMPAT_VERSION GLIBC_2_4
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/opensock.c b/REORG.TODO/sysdeps/unix/sysv/linux/s390/opensock.c
new file mode 100644
index 0000000000..f099d651ff
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/opensock.c
@@ -0,0 +1,2 @@
+#define NEED_AF_IUCV 1
+#include "../opensock.c"
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/pt-longjmp.c b/REORG.TODO/sysdeps/unix/sysv/linux/s390/pt-longjmp.c
new file mode 100644
index 0000000000..d324237edd
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/pt-longjmp.c
@@ -0,0 +1,33 @@
+/* Copyright (C) 2014-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>.
+
+ Versioned copy of nptl/pt-longjmp.c modified for versioning
+ the reverted jmpbuf extension. */
+
+#include <shlib-compat.h>
+
+#include <nptl/pt-longjmp.c>
+
+#if SHLIB_COMPAT (libpthread, GLIBC_2_19, GLIBC_2_20)
+/* In glibc release 2.19 new versions of longjmp-functions were introduced,
+ but were reverted before 2.20. Thus both versions are the same function. */
+
+strong_alias (longjmp_ifunc, __v2longjmp)
+compat_symbol (libpthread, __v2longjmp, longjmp, GLIBC_2_19);
+strong_alias (siglongjmp_ifunc, __v2siglongjmp)
+compat_symbol (libpthread, __v2siglongjmp, siglongjmp, GLIBC_2_19);
+#endif /* SHLIB_COMPAT (libpthread, GLIBC_2_19, GLIBC_2_20)) */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/pt-vfork.S b/REORG.TODO/sysdeps/unix/sysv/linux/s390/pt-vfork.S
new file mode 100644
index 0000000000..65cc3823ac
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/pt-vfork.S
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/alpha/pt-vfork.S>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/pthread_mutex_cond_lock.c b/REORG.TODO/sysdeps/unix/sysv/linux/s390/pthread_mutex_cond_lock.c
new file mode 100644
index 0000000000..15889799a5
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/pthread_mutex_cond_lock.c
@@ -0,0 +1,22 @@
+/* Copyright (C) 2014-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+/* The cond lock is not actually elided yet, but we still need to handle
+ already elided locks. */
+#include <elision-conf.h>
+
+#include <nptl/pthread_mutex_cond_lock.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/pthread_mutex_lock.c b/REORG.TODO/sysdeps/unix/sysv/linux/s390/pthread_mutex_lock.c
new file mode 100644
index 0000000000..eb02b02033
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/pthread_mutex_lock.c
@@ -0,0 +1,22 @@
+/* Elided version of pthread_mutex_lock.
+ Copyright (C) 2014-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <elision-conf.h>
+#include <force-elision.h>
+
+#include <nptl/pthread_mutex_lock.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/pthread_mutex_timedlock.c b/REORG.TODO/sysdeps/unix/sysv/linux/s390/pthread_mutex_timedlock.c
new file mode 100644
index 0000000000..096e2d83d8
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/pthread_mutex_timedlock.c
@@ -0,0 +1,22 @@
+/* Elided version of pthread_mutex_timedlock.
+ Copyright (C) 2014-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <elision-conf.h>
+#include <force-elision.h>
+
+#include <nptl/pthread_mutex_timedlock.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/pthread_mutex_trylock.c b/REORG.TODO/sysdeps/unix/sysv/linux/s390/pthread_mutex_trylock.c
new file mode 100644
index 0000000000..75349e0c3a
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/pthread_mutex_trylock.c
@@ -0,0 +1,22 @@
+/* Elided version of pthread_mutex_trylock.
+ Copyright (C) 2014-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <elision-conf.h>
+#include <force-elision.h>
+
+#include <nptl/pthread_mutex_trylock.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/readelflib.c b/REORG.TODO/sysdeps/unix/sysv/linux/s390/readelflib.c
new file mode 100644
index 0000000000..df8e5ab72d
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/readelflib.c
@@ -0,0 +1,59 @@
+/* Copyright (C) 2001-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+
+int process_elf32_file (const char *file_name, const char *lib, int *flag,
+ unsigned int *osversion, char **soname,
+ void *file_contents, size_t file_length);
+int process_elf64_file (const char *file_name, const char *lib, int *flag,
+ unsigned int *osversion, char **soname,
+ void *file_contents, size_t file_length);
+
+/* Returns 0 if everything is ok, != 0 in case of error. */
+int
+process_elf_file (const char *file_name, const char *lib, int *flag,
+ unsigned int *osversion, char **soname, void *file_contents,
+ size_t file_length)
+{
+ ElfW(Ehdr) *elf_header = (ElfW(Ehdr) *) file_contents;
+ int ret;
+
+ if (elf_header->e_ident [EI_CLASS] == ELFCLASS32)
+ return process_elf32_file (file_name, lib, flag, osversion, soname,
+ file_contents, file_length);
+ else
+ {
+ ret = process_elf64_file (file_name, lib, flag, osversion, soname,
+ file_contents, file_length);
+ /* S/390 64bit libraries are always libc.so.6+. */
+ if (!ret)
+ *flag = FLAG_S390_LIB64|FLAG_ELF_LIBC6;
+ return ret;
+ }
+}
+
+#undef __ELF_NATIVE_CLASS
+#undef process_elf_file
+#define process_elf_file process_elf32_file
+#define __ELF_NATIVE_CLASS 32
+#include "elf/readelflib.c"
+
+#undef __ELF_NATIVE_CLASS
+#undef process_elf_file
+#define process_elf_file process_elf64_file
+#define __ELF_NATIVE_CLASS 64
+#include "elf/readelflib.c"
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/rt-sysdep.S b/REORG.TODO/sysdeps/unix/sysv/linux/s390/rt-sysdep.S
new file mode 100644
index 0000000000..f966bf1e59
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/rt-sysdep.S
@@ -0,0 +1 @@
+#include <sysdep.S>
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>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/Implies b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/Implies
new file mode 100644
index 0000000000..8d91c80097
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/Implies
@@ -0,0 +1 @@
+unix/sysv/linux/wordsize-64
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/Makefile b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/Makefile
new file mode 100644
index 0000000000..6795734747
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/Makefile
@@ -0,0 +1,18 @@
+# See Makeconfig regarding the use of default-abi.
+default-abi := 64
+
+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
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/Versions b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/Versions
new file mode 100644
index 0000000000..3f4d960421
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/Versions
@@ -0,0 +1,15 @@
+libc {
+ GLIBC_2.2 {
+ # Exception handling support functions from libgcc
+ __register_frame; __register_frame_table; __deregister_frame;
+ __frame_state_for; __register_frame_info_table;
+ }
+}
+
+librt {
+ GLIBC_2.3.3 {
+ # Changed timer_t.
+ timer_create; timer_delete; timer_getoverrun; timer_gettime;
+ timer_settime;
+ }
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/____longjmp_chk.c b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/____longjmp_chk.c
new file mode 100644
index 0000000000..7a4492c567
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/____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__ ("lgr %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-64/__makecontext_ret.S b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/__makecontext_ret.S
new file mode 100644
index 0000000000..16901638b5
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/__makecontext_ret.S
@@ -0,0 +1,37 @@
+/* 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
+ ltgr %r8,%r8 /* Check whether uc_link is 0. */
+ jz 1f
+ lgr %r2,%r8
+ br %r9
+1: lghi %r2,0
+ brasl %r14,HIDDEN_JUMPTARGET (exit)
+ j .+2 /* Trap if exit returns. */
+END(__makecontext_ret)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/c++-types.data b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/c++-types.data
new file mode 100644
index 0000000000..23c11dc41b
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/c++-types.data
@@ -0,0 +1,67 @@
+blkcnt64_t:l
+blkcnt_t:l
+blksize_t:l
+caddr_t:Pc
+clockid_t:i
+clock_t:l
+daddr_t:i
+dev_t:m
+fd_mask:l
+fsblkcnt64_t:m
+fsblkcnt_t:m
+fsfilcnt64_t:m
+fsfilcnt_t:m
+fsid_t:8__fsid_t
+gid_t:j
+id_t:j
+ino64_t:m
+ino_t:m
+int16_t:s
+int32_t:i
+int64_t:l
+int8_t:a
+intptr_t:l
+key_t:i
+loff_t:l
+mode_t:j
+nlink_t:m
+off64_t:l
+off_t:l
+pid_t:i
+pthread_attr_t:14pthread_attr_t
+pthread_barrier_t:17pthread_barrier_t
+pthread_barrierattr_t:21pthread_barrierattr_t
+pthread_cond_t:14pthread_cond_t
+pthread_condattr_t:18pthread_condattr_t
+pthread_key_t:j
+pthread_mutex_t:15pthread_mutex_t
+pthread_mutexattr_t:19pthread_mutexattr_t
+pthread_once_t:i
+pthread_rwlock_t:16pthread_rwlock_t
+pthread_rwlockattr_t:20pthread_rwlockattr_t
+pthread_spinlock_t:i
+pthread_t:m
+quad_t:l
+register_t:l
+rlim64_t:m
+rlim_t:m
+sigset_t:10__sigset_t
+size_t:m
+socklen_t:j
+ssize_t:l
+suseconds_t:l
+time_t:l
+u_char:h
+uid_t:j
+uint:j
+u_int:j
+u_int16_t:t
+u_int32_t:j
+u_int64_t:m
+u_int8_t:h
+ulong:m
+u_long:m
+u_quad_t:m
+useconds_t:j
+ushort:t
+u_short:t
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/clone.S b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/clone.S
new file mode 100644
index 0000000000..daf8a58326
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/clone.S
@@ -0,0 +1,66 @@
+/* Wrapper around clone system call. 64 bit S/390 version.
+ Copyright (C) 2001-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/>. */
+
+/* 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)
+ stg %r6,48(%r15) /* store %r6 to save area */
+ cfi_offset (%r6,-112)
+ lgr %r0,%r5 /* move *arg out of the way */
+ ltgr %r1,%r2 /* check fn and move to %r1 */
+ jz error /* no NULL function pointers */
+ ltgr %r2,%r3 /* check child_stack and move to %r2 */
+ jz error /* no NULL stack pointers */
+ lgr %r3,%r4 /* move flags to %r3 */
+ lgr %r4,%r6 /* move parent_tid to %r4 */
+ lg %r5,168(%r15) /* load child_tid from stack */
+ lg %r6,160(%r15) /* load tls from stack */
+ svc SYS_ify(clone)
+ ltgr %r2,%r2 /* check return code */
+ jz thread_start
+ lg %r6,48(%r15) /* restore %r6 */
+ jgm SYSCALL_ERROR_LABEL
+ br %r14
+error:
+ lghi %r2,-EINVAL
+ jg SYSCALL_ERROR_LABEL
+PSEUDO_END (__clone)
+
+thread_start:
+ /* fn is in gpr 1, arg in gpr 0 */
+ lgr %r2,%r0 /* set first parameter to void *arg */
+ aghi %r15,-160 /* make room on the stack for the save area */
+ xc 0(8,%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-64/configure b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/configure
new file mode 100644
index 0000000000..7392cdfb42
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/configure
@@ -0,0 +1,15 @@
+# This file is generated from configure.ac by Autoconf. DO NOT EDIT!
+ # Local configure fragment for sysdeps/unix/sysv/linux/s390/s390-64.
+
+test -n "$libc_cv_slibdir" ||
+case "$prefix" in
+/usr | /usr/)
+ libc_cv_slibdir=/lib64
+ libc_cv_rtlddir=/lib
+ if test "$libdir" = '${exec_prefix}/lib'; then
+ libdir='${exec_prefix}/lib64';
+ # Locale data can be shared between 32-bit and 64-bit libraries.
+ libc_cv_complocaledir='${exec_prefix}/lib/locale'
+ fi
+ ;;
+esac
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/configure.ac b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/configure.ac
new file mode 100644
index 0000000000..8c75888b62
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/configure.ac
@@ -0,0 +1,4 @@
+GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
+# Local configure fragment for sysdeps/unix/sysv/linux/s390/s390-64.
+
+LIBC_SLIBDIR_RTLDDIR([lib64], [lib])
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/dl-cache.h b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/dl-cache.h
new file mode 100644
index 0000000000..391d1b72f3
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/dl-cache.h
@@ -0,0 +1,24 @@
+/* Support for reading /etc/ld.so.cache files written by Linux ldconfig.
+ Copyright (C) 2001-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#define _DL_CACHE_DEFAULT_ID 0x403
+
+#define _dl_cache_check_flags(flags) \
+ ((flags) == _DL_CACHE_DEFAULT_ID)
+
+#include_next <dl-cache.h>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/getcontext.S b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/getcontext.S
new file mode 100644
index 0000000000..4b031aafdb
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/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)
+ lgr %r1,%r2
+
+ /* rt_sigprocmask (SIG_BLOCK, NULL, &sc->sc_mask, sigsetsize). */
+ la %r2,SIG_BLOCK
+ slgr %r3,%r3
+ la %r4,SC_MASK(%r1)
+ lghi %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. */
+ slgr %r2,%r2
+
+ /* Store access registers. */
+ stam %a0,%a15,SC_ACRS(%r1)
+
+ /* Store general purpose registers. */
+ stmg %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-64/kernel_stat.h b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/kernel_stat.h
new file mode 100644
index 0000000000..945c02930c
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/kernel_stat.h
@@ -0,0 +1,21 @@
+/* Definition of `struct stat' used in the kernel.
+ 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/>. */
+
+#define STAT_IS_KERNEL_STAT 1
+#define XSTAT_IS_XSTAT64 1
+#define STATFS_IS_STATFS64 0
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/ld.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/ld.abilist
new file mode 100644
index 0000000000..5e604f5376
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/ld.abilist
@@ -0,0 +1,11 @@
+GLIBC_2.2 GLIBC_2.2 A
+GLIBC_2.2 __libc_stack_end D 0x8
+GLIBC_2.2 _dl_mcount F
+GLIBC_2.2 _r_debug D 0x28
+GLIBC_2.2 calloc F
+GLIBC_2.2 free F
+GLIBC_2.2 malloc F
+GLIBC_2.2 realloc F
+GLIBC_2.3 GLIBC_2.3 A
+GLIBC_2.3 __tls_get_offset F
+GLIBC_2.4 GLIBC_2.4 A
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/libBrokenLocale.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/libBrokenLocale.abilist
new file mode 100644
index 0000000000..21343df781
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/libBrokenLocale.abilist
@@ -0,0 +1,2 @@
+GLIBC_2.2 GLIBC_2.2 A
+GLIBC_2.2 __ctype_get_mb_cur_max F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
new file mode 100644
index 0000000000..b1b2b29c94
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
@@ -0,0 +1,2360 @@
+GCC_3.0 GCC_3.0 A
+GCC_3.0 _Unwind_Find_FDE F
+GCC_3.0 __deregister_frame_info_bases F
+GCC_3.0 __register_frame_info_bases F
+GCC_3.0 __register_frame_info_table_bases F
+GLIBC_2.10 GLIBC_2.10 A
+GLIBC_2.10 __cxa_at_quick_exit F
+GLIBC_2.10 __posix_getopt F
+GLIBC_2.10 accept4 F
+GLIBC_2.10 endsgent F
+GLIBC_2.10 fallocate F
+GLIBC_2.10 fallocate64 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 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 0x438
+GLIBC_2.12 _sys_nerr D 0x4
+GLIBC_2.12 ntp_gettimex F
+GLIBC_2.12 recvmmsg F
+GLIBC_2.12 sys_errlist D 0x438
+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 _Exit F
+GLIBC_2.2 _IO_2_1_stderr_ D 0xe0
+GLIBC_2.2 _IO_2_1_stdin_ D 0xe0
+GLIBC_2.2 _IO_2_1_stdout_ D 0xe0
+GLIBC_2.2 _IO_adjust_column F
+GLIBC_2.2 _IO_adjust_wcolumn F
+GLIBC_2.2 _IO_default_doallocate F
+GLIBC_2.2 _IO_default_finish F
+GLIBC_2.2 _IO_default_pbackfail F
+GLIBC_2.2 _IO_default_uflow F
+GLIBC_2.2 _IO_default_xsgetn F
+GLIBC_2.2 _IO_default_xsputn F
+GLIBC_2.2 _IO_do_write F
+GLIBC_2.2 _IO_doallocbuf F
+GLIBC_2.2 _IO_fclose F
+GLIBC_2.2 _IO_fdopen F
+GLIBC_2.2 _IO_feof F
+GLIBC_2.2 _IO_ferror F
+GLIBC_2.2 _IO_fflush F
+GLIBC_2.2 _IO_fgetpos F
+GLIBC_2.2 _IO_fgetpos64 F
+GLIBC_2.2 _IO_fgets F
+GLIBC_2.2 _IO_file_attach F
+GLIBC_2.2 _IO_file_close F
+GLIBC_2.2 _IO_file_close_it F
+GLIBC_2.2 _IO_file_doallocate F
+GLIBC_2.2 _IO_file_finish F
+GLIBC_2.2 _IO_file_fopen F
+GLIBC_2.2 _IO_file_init F
+GLIBC_2.2 _IO_file_jumps D 0xa8
+GLIBC_2.2 _IO_file_open F
+GLIBC_2.2 _IO_file_overflow F
+GLIBC_2.2 _IO_file_read F
+GLIBC_2.2 _IO_file_seek F
+GLIBC_2.2 _IO_file_seekoff F
+GLIBC_2.2 _IO_file_setbuf F
+GLIBC_2.2 _IO_file_stat F
+GLIBC_2.2 _IO_file_sync F
+GLIBC_2.2 _IO_file_underflow F
+GLIBC_2.2 _IO_file_write F
+GLIBC_2.2 _IO_file_xsputn F
+GLIBC_2.2 _IO_flockfile F
+GLIBC_2.2 _IO_flush_all F
+GLIBC_2.2 _IO_flush_all_linebuffered F
+GLIBC_2.2 _IO_fopen F
+GLIBC_2.2 _IO_fprintf F
+GLIBC_2.2 _IO_fputs F
+GLIBC_2.2 _IO_fread F
+GLIBC_2.2 _IO_free_backup_area F
+GLIBC_2.2 _IO_free_wbackup_area F
+GLIBC_2.2 _IO_fsetpos F
+GLIBC_2.2 _IO_fsetpos64 F
+GLIBC_2.2 _IO_ftell F
+GLIBC_2.2 _IO_ftrylockfile F
+GLIBC_2.2 _IO_funlockfile F
+GLIBC_2.2 _IO_fwrite F
+GLIBC_2.2 _IO_getc F
+GLIBC_2.2 _IO_getline F
+GLIBC_2.2 _IO_getline_info F
+GLIBC_2.2 _IO_gets F
+GLIBC_2.2 _IO_init F
+GLIBC_2.2 _IO_init_marker F
+GLIBC_2.2 _IO_init_wmarker F
+GLIBC_2.2 _IO_iter_begin F
+GLIBC_2.2 _IO_iter_end F
+GLIBC_2.2 _IO_iter_file F
+GLIBC_2.2 _IO_iter_next F
+GLIBC_2.2 _IO_least_wmarker F
+GLIBC_2.2 _IO_link_in F
+GLIBC_2.2 _IO_list_all D 0x8
+GLIBC_2.2 _IO_list_lock F
+GLIBC_2.2 _IO_list_resetlock F
+GLIBC_2.2 _IO_list_unlock F
+GLIBC_2.2 _IO_marker_delta F
+GLIBC_2.2 _IO_marker_difference F
+GLIBC_2.2 _IO_padn F
+GLIBC_2.2 _IO_peekc_locked F
+GLIBC_2.2 _IO_popen F
+GLIBC_2.2 _IO_printf F
+GLIBC_2.2 _IO_proc_close F
+GLIBC_2.2 _IO_proc_open F
+GLIBC_2.2 _IO_putc F
+GLIBC_2.2 _IO_puts F
+GLIBC_2.2 _IO_remove_marker F
+GLIBC_2.2 _IO_seekmark F
+GLIBC_2.2 _IO_seekoff F
+GLIBC_2.2 _IO_seekpos F
+GLIBC_2.2 _IO_seekwmark F
+GLIBC_2.2 _IO_setb F
+GLIBC_2.2 _IO_setbuffer F
+GLIBC_2.2 _IO_setvbuf F
+GLIBC_2.2 _IO_sgetn F
+GLIBC_2.2 _IO_sprintf F
+GLIBC_2.2 _IO_sputbackc F
+GLIBC_2.2 _IO_sputbackwc F
+GLIBC_2.2 _IO_sscanf F
+GLIBC_2.2 _IO_str_init_readonly F
+GLIBC_2.2 _IO_str_init_static F
+GLIBC_2.2 _IO_str_overflow F
+GLIBC_2.2 _IO_str_pbackfail F
+GLIBC_2.2 _IO_str_seekoff F
+GLIBC_2.2 _IO_str_underflow F
+GLIBC_2.2 _IO_sungetc F
+GLIBC_2.2 _IO_sungetwc F
+GLIBC_2.2 _IO_switch_to_get_mode F
+GLIBC_2.2 _IO_switch_to_main_wget_area F
+GLIBC_2.2 _IO_switch_to_wbackup_area F
+GLIBC_2.2 _IO_switch_to_wget_mode F
+GLIBC_2.2 _IO_un_link F
+GLIBC_2.2 _IO_ungetc F
+GLIBC_2.2 _IO_unsave_markers F
+GLIBC_2.2 _IO_unsave_wmarkers F
+GLIBC_2.2 _IO_vfprintf F
+GLIBC_2.2 _IO_vfscanf F
+GLIBC_2.2 _IO_vsprintf F
+GLIBC_2.2 _IO_wdefault_doallocate F
+GLIBC_2.2 _IO_wdefault_finish F
+GLIBC_2.2 _IO_wdefault_pbackfail F
+GLIBC_2.2 _IO_wdefault_uflow F
+GLIBC_2.2 _IO_wdefault_xsgetn F
+GLIBC_2.2 _IO_wdefault_xsputn F
+GLIBC_2.2 _IO_wdo_write F
+GLIBC_2.2 _IO_wdoallocbuf F
+GLIBC_2.2 _IO_wfile_jumps D 0xa8
+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 ___brk_addr D 0x8
+GLIBC_2.2 __adjtimex F
+GLIBC_2.2 __after_morecore_hook D 0x8
+GLIBC_2.2 __argz_count F
+GLIBC_2.2 __argz_next F
+GLIBC_2.2 __argz_stringify F
+GLIBC_2.2 __asprintf F
+GLIBC_2.2 __assert F
+GLIBC_2.2 __assert_fail F
+GLIBC_2.2 __assert_perror_fail F
+GLIBC_2.2 __backtrace F
+GLIBC_2.2 __backtrace_symbols F
+GLIBC_2.2 __backtrace_symbols_fd F
+GLIBC_2.2 __bsd_getpgrp F
+GLIBC_2.2 __bzero F
+GLIBC_2.2 __check_rhosts_file D 0x4
+GLIBC_2.2 __clone F
+GLIBC_2.2 __close F
+GLIBC_2.2 __cmsg_nxthdr F
+GLIBC_2.2 __connect F
+GLIBC_2.2 __ctype32_b D 0x8
+GLIBC_2.2 __ctype32_tolower D 0x8
+GLIBC_2.2 __ctype32_toupper D 0x8
+GLIBC_2.2 __ctype_b D 0x8
+GLIBC_2.2 __ctype_get_mb_cur_max F
+GLIBC_2.2 __ctype_tolower D 0x8
+GLIBC_2.2 __ctype_toupper D 0x8
+GLIBC_2.2 __curbrk D 0x8
+GLIBC_2.2 __cxa_atexit F
+GLIBC_2.2 __cxa_finalize F
+GLIBC_2.2 __cyg_profile_func_enter F
+GLIBC_2.2 __cyg_profile_func_exit F
+GLIBC_2.2 __daylight D 0x4
+GLIBC_2.2 __dcgettext F
+GLIBC_2.2 __default_morecore F
+GLIBC_2.2 __deregister_frame F
+GLIBC_2.2 __deregister_frame_info F
+GLIBC_2.2 __dgettext F
+GLIBC_2.2 __dup2 F
+GLIBC_2.2 __duplocale F
+GLIBC_2.2 __endmntent F
+GLIBC_2.2 __environ D 0x8
+GLIBC_2.2 __errno_location F
+GLIBC_2.2 __fbufsize F
+GLIBC_2.2 __fcntl F
+GLIBC_2.2 __ffs F
+GLIBC_2.2 __finite F
+GLIBC_2.2 __finitef F
+GLIBC_2.2 __finitel F
+GLIBC_2.2 __flbf F
+GLIBC_2.2 __fork F
+GLIBC_2.2 __fpending F
+GLIBC_2.2 __fpu_control D 0x4
+GLIBC_2.2 __fpurge F
+GLIBC_2.2 __frame_state_for F
+GLIBC_2.2 __freadable F
+GLIBC_2.2 __freading F
+GLIBC_2.2 __free_hook D 0x8
+GLIBC_2.2 __freelocale F
+GLIBC_2.2 __fsetlocking F
+GLIBC_2.2 __fwritable F
+GLIBC_2.2 __fwriting F
+GLIBC_2.2 __fxstat F
+GLIBC_2.2 __fxstat64 F
+GLIBC_2.2 __getdelim F
+GLIBC_2.2 __getmntent_r F
+GLIBC_2.2 __getpagesize F
+GLIBC_2.2 __getpgid F
+GLIBC_2.2 __getpid F
+GLIBC_2.2 __gettimeofday F
+GLIBC_2.2 __gmtime_r F
+GLIBC_2.2 __h_errno_location F
+GLIBC_2.2 __isalnum_l F
+GLIBC_2.2 __isalpha_l F
+GLIBC_2.2 __isascii_l F
+GLIBC_2.2 __isblank_l F
+GLIBC_2.2 __iscntrl_l F
+GLIBC_2.2 __isdigit_l F
+GLIBC_2.2 __isgraph_l F
+GLIBC_2.2 __isinf F
+GLIBC_2.2 __isinff F
+GLIBC_2.2 __isinfl F
+GLIBC_2.2 __islower_l F
+GLIBC_2.2 __isnan F
+GLIBC_2.2 __isnanf F
+GLIBC_2.2 __isnanl F
+GLIBC_2.2 __isprint_l F
+GLIBC_2.2 __ispunct_l F
+GLIBC_2.2 __isspace_l F
+GLIBC_2.2 __isupper_l F
+GLIBC_2.2 __iswalnum_l F
+GLIBC_2.2 __iswalpha_l F
+GLIBC_2.2 __iswblank_l F
+GLIBC_2.2 __iswcntrl_l F
+GLIBC_2.2 __iswctype F
+GLIBC_2.2 __iswctype_l F
+GLIBC_2.2 __iswdigit_l F
+GLIBC_2.2 __iswgraph_l F
+GLIBC_2.2 __iswlower_l F
+GLIBC_2.2 __iswprint_l F
+GLIBC_2.2 __iswpunct_l F
+GLIBC_2.2 __iswspace_l F
+GLIBC_2.2 __iswupper_l F
+GLIBC_2.2 __iswxdigit_l F
+GLIBC_2.2 __isxdigit_l F
+GLIBC_2.2 __ivaliduser F
+GLIBC_2.2 __key_decryptsession_pk_LOCAL D 0x8
+GLIBC_2.2 __key_encryptsession_pk_LOCAL D 0x8
+GLIBC_2.2 __key_gendes_LOCAL D 0x8
+GLIBC_2.2 __libc_allocate_rtsig F
+GLIBC_2.2 __libc_calloc F
+GLIBC_2.2 __libc_current_sigrtmax F
+GLIBC_2.2 __libc_current_sigrtmin F
+GLIBC_2.2 __libc_free F
+GLIBC_2.2 __libc_freeres F
+GLIBC_2.2 __libc_init_first F
+GLIBC_2.2 __libc_mallinfo F
+GLIBC_2.2 __libc_malloc F
+GLIBC_2.2 __libc_mallopt F
+GLIBC_2.2 __libc_memalign F
+GLIBC_2.2 __libc_pvalloc F
+GLIBC_2.2 __libc_realloc F
+GLIBC_2.2 __libc_sa_len F
+GLIBC_2.2 __libc_start_main F
+GLIBC_2.2 __libc_valloc F
+GLIBC_2.2 __lseek F
+GLIBC_2.2 __lxstat F
+GLIBC_2.2 __lxstat64 F
+GLIBC_2.2 __malloc_hook D 0x8
+GLIBC_2.2 __malloc_initialize_hook D 0x8
+GLIBC_2.2 __mbrlen F
+GLIBC_2.2 __mbrtowc F
+GLIBC_2.2 __memalign_hook D 0x8
+GLIBC_2.2 __mempcpy F
+GLIBC_2.2 __mempcpy_small F
+GLIBC_2.2 __monstartup F
+GLIBC_2.2 __morecore D 0x8
+GLIBC_2.2 __newlocale F
+GLIBC_2.2 __nl_langinfo_l F
+GLIBC_2.2 __nss_configure_lookup F
+GLIBC_2.2 __nss_database_lookup F
+GLIBC_2.2 __nss_group_lookup F
+GLIBC_2.2 __nss_hosts_lookup F
+GLIBC_2.2 __nss_next F
+GLIBC_2.2 __nss_passwd_lookup F
+GLIBC_2.2 __open F
+GLIBC_2.2 __open64 F
+GLIBC_2.2 __overflow F
+GLIBC_2.2 __pipe F
+GLIBC_2.2 __poll F
+GLIBC_2.2 __pread64 F
+GLIBC_2.2 __printf_fp F
+GLIBC_2.2 __profile_frequency F
+GLIBC_2.2 __progname D 0x8
+GLIBC_2.2 __progname_full D 0x8
+GLIBC_2.2 __pwrite64 F
+GLIBC_2.2 __rawmemchr F
+GLIBC_2.2 __rcmd_errstr D 0x8
+GLIBC_2.2 __read F
+GLIBC_2.2 __realloc_hook D 0x8
+GLIBC_2.2 __register_frame F
+GLIBC_2.2 __register_frame_info F
+GLIBC_2.2 __register_frame_info_table F
+GLIBC_2.2 __register_frame_table F
+GLIBC_2.2 __res_init F
+GLIBC_2.2 __res_nclose F
+GLIBC_2.2 __res_ninit F
+GLIBC_2.2 __res_randomid F
+GLIBC_2.2 __res_state F
+GLIBC_2.2 __sbrk F
+GLIBC_2.2 __sched_get_priority_max F
+GLIBC_2.2 __sched_get_priority_min F
+GLIBC_2.2 __sched_getparam F
+GLIBC_2.2 __sched_getscheduler F
+GLIBC_2.2 __sched_setscheduler F
+GLIBC_2.2 __sched_yield F
+GLIBC_2.2 __secure_getenv F
+GLIBC_2.2 __select F
+GLIBC_2.2 __send F
+GLIBC_2.2 __setmntent F
+GLIBC_2.2 __setpgid F
+GLIBC_2.2 __sigaction F
+GLIBC_2.2 __sigaddset F
+GLIBC_2.2 __sigdelset F
+GLIBC_2.2 __sigismember F
+GLIBC_2.2 __signbit F
+GLIBC_2.2 __signbitf F
+GLIBC_2.2 __sigpause F
+GLIBC_2.2 __sigsetjmp F
+GLIBC_2.2 __sigsuspend F
+GLIBC_2.2 __statfs F
+GLIBC_2.2 __stpcpy F
+GLIBC_2.2 __stpcpy_small F
+GLIBC_2.2 __stpncpy F
+GLIBC_2.2 __strcasecmp F
+GLIBC_2.2 __strcasecmp_l F
+GLIBC_2.2 __strcasestr F
+GLIBC_2.2 __strcoll_l F
+GLIBC_2.2 __strcpy_small F
+GLIBC_2.2 __strcspn_c1 F
+GLIBC_2.2 __strcspn_c2 F
+GLIBC_2.2 __strcspn_c3 F
+GLIBC_2.2 __strdup F
+GLIBC_2.2 __strerror_r F
+GLIBC_2.2 __strfmon_l F
+GLIBC_2.2 __strncasecmp_l F
+GLIBC_2.2 __strndup F
+GLIBC_2.2 __strpbrk_c2 F
+GLIBC_2.2 __strpbrk_c3 F
+GLIBC_2.2 __strsep_1c F
+GLIBC_2.2 __strsep_2c F
+GLIBC_2.2 __strsep_3c F
+GLIBC_2.2 __strsep_g F
+GLIBC_2.2 __strspn_c1 F
+GLIBC_2.2 __strspn_c2 F
+GLIBC_2.2 __strspn_c3 F
+GLIBC_2.2 __strtod_internal F
+GLIBC_2.2 __strtod_l F
+GLIBC_2.2 __strtof_internal F
+GLIBC_2.2 __strtof_l F
+GLIBC_2.2 __strtok_r F
+GLIBC_2.2 __strtok_r_1c F
+GLIBC_2.2 __strtol_internal F
+GLIBC_2.2 __strtol_l F
+GLIBC_2.2 __strtold_internal F
+GLIBC_2.2 __strtold_l F
+GLIBC_2.2 __strtoll_internal F
+GLIBC_2.2 __strtoll_l F
+GLIBC_2.2 __strtoul_internal F
+GLIBC_2.2 __strtoul_l F
+GLIBC_2.2 __strtoull_internal F
+GLIBC_2.2 __strtoull_l F
+GLIBC_2.2 __strverscmp F
+GLIBC_2.2 __strxfrm_l F
+GLIBC_2.2 __sysconf F
+GLIBC_2.2 __sysctl F
+GLIBC_2.2 __sysv_signal F
+GLIBC_2.2 __timezone D 0x8
+GLIBC_2.2 __toascii_l F
+GLIBC_2.2 __tolower_l F
+GLIBC_2.2 __toupper_l F
+GLIBC_2.2 __towctrans F
+GLIBC_2.2 __towctrans_l F
+GLIBC_2.2 __towlower_l F
+GLIBC_2.2 __towupper_l F
+GLIBC_2.2 __tzname D 0x10
+GLIBC_2.2 __uflow F
+GLIBC_2.2 __underflow F
+GLIBC_2.2 __vfork F
+GLIBC_2.2 __vfscanf F
+GLIBC_2.2 __vsnprintf F
+GLIBC_2.2 __vsscanf F
+GLIBC_2.2 __wait F
+GLIBC_2.2 __waitpid F
+GLIBC_2.2 __wcscasecmp_l F
+GLIBC_2.2 __wcscoll_l F
+GLIBC_2.2 __wcsncasecmp_l F
+GLIBC_2.2 __wcstod_internal F
+GLIBC_2.2 __wcstod_l F
+GLIBC_2.2 __wcstof_internal F
+GLIBC_2.2 __wcstof_l F
+GLIBC_2.2 __wcstol_internal F
+GLIBC_2.2 __wcstol_l F
+GLIBC_2.2 __wcstold_internal F
+GLIBC_2.2 __wcstold_l F
+GLIBC_2.2 __wcstoll_internal F
+GLIBC_2.2 __wcstoll_l F
+GLIBC_2.2 __wcstoul_internal F
+GLIBC_2.2 __wcstoul_l F
+GLIBC_2.2 __wcstoull_internal F
+GLIBC_2.2 __wcstoull_l F
+GLIBC_2.2 __wcsxfrm_l F
+GLIBC_2.2 __wctrans_l F
+GLIBC_2.2 __wctype_l F
+GLIBC_2.2 __woverflow F
+GLIBC_2.2 __write F
+GLIBC_2.2 __wuflow F
+GLIBC_2.2 __wunderflow F
+GLIBC_2.2 __xmknod F
+GLIBC_2.2 __xpg_basename F
+GLIBC_2.2 __xpg_sigpause F
+GLIBC_2.2 __xstat F
+GLIBC_2.2 __xstat64 F
+GLIBC_2.2 _authenticate F
+GLIBC_2.2 _dl_mcount_wrapper F
+GLIBC_2.2 _dl_mcount_wrapper_check F
+GLIBC_2.2 _environ D 0x8
+GLIBC_2.2 _exit F
+GLIBC_2.2 _flushlbf F
+GLIBC_2.2 _libc_intl_domainname D 0x5
+GLIBC_2.2 _longjmp F
+GLIBC_2.2 _mcleanup F
+GLIBC_2.2 _mcount F
+GLIBC_2.2 _nl_default_dirname D 0x12
+GLIBC_2.2 _nl_domain_bindings D 0x8
+GLIBC_2.2 _nl_msg_cat_cntr D 0x4
+GLIBC_2.2 _null_auth D 0x18
+GLIBC_2.2 _obstack D 0x8
+GLIBC_2.2 _obstack_allocated_p F
+GLIBC_2.2 _obstack_begin F
+GLIBC_2.2 _obstack_begin_1 F
+GLIBC_2.2 _obstack_free F
+GLIBC_2.2 _obstack_memory_used F
+GLIBC_2.2 _obstack_newchunk F
+GLIBC_2.2 _res D 0x238
+GLIBC_2.2 _res_hconf D 0x48
+GLIBC_2.2 _rpc_dtablesize F
+GLIBC_2.2 _seterr_reply F
+GLIBC_2.2 _setjmp F
+GLIBC_2.2 _sys_errlist D 0x3e8
+GLIBC_2.2 _sys_nerr D 0x4
+GLIBC_2.2 _sys_siglist D 0x200
+GLIBC_2.2 _tolower F
+GLIBC_2.2 _toupper F
+GLIBC_2.2 a64l F
+GLIBC_2.2 abort F
+GLIBC_2.2 abs F
+GLIBC_2.2 accept F
+GLIBC_2.2 access F
+GLIBC_2.2 acct F
+GLIBC_2.2 addmntent F
+GLIBC_2.2 addseverity F
+GLIBC_2.2 adjtime F
+GLIBC_2.2 adjtimex F
+GLIBC_2.2 advance F
+GLIBC_2.2 alarm F
+GLIBC_2.2 alphasort F
+GLIBC_2.2 alphasort64 F
+GLIBC_2.2 argp_err_exit_status D 0x4
+GLIBC_2.2 argp_error F
+GLIBC_2.2 argp_failure F
+GLIBC_2.2 argp_help F
+GLIBC_2.2 argp_parse F
+GLIBC_2.2 argp_program_bug_address D 0x8
+GLIBC_2.2 argp_program_version D 0x8
+GLIBC_2.2 argp_program_version_hook D 0x8
+GLIBC_2.2 argp_state_help F
+GLIBC_2.2 argp_usage F
+GLIBC_2.2 argz_add F
+GLIBC_2.2 argz_add_sep F
+GLIBC_2.2 argz_append F
+GLIBC_2.2 argz_count F
+GLIBC_2.2 argz_create F
+GLIBC_2.2 argz_create_sep F
+GLIBC_2.2 argz_delete F
+GLIBC_2.2 argz_extract F
+GLIBC_2.2 argz_insert F
+GLIBC_2.2 argz_next F
+GLIBC_2.2 argz_replace F
+GLIBC_2.2 argz_stringify F
+GLIBC_2.2 asctime F
+GLIBC_2.2 asctime_r F
+GLIBC_2.2 asprintf F
+GLIBC_2.2 atexit F
+GLIBC_2.2 atof F
+GLIBC_2.2 atoi F
+GLIBC_2.2 atol F
+GLIBC_2.2 atoll F
+GLIBC_2.2 authdes_create F
+GLIBC_2.2 authdes_getucred F
+GLIBC_2.2 authdes_pk_create F
+GLIBC_2.2 authnone_create F
+GLIBC_2.2 authunix_create F
+GLIBC_2.2 authunix_create_default F
+GLIBC_2.2 backtrace F
+GLIBC_2.2 backtrace_symbols F
+GLIBC_2.2 backtrace_symbols_fd F
+GLIBC_2.2 basename F
+GLIBC_2.2 bcmp F
+GLIBC_2.2 bcopy F
+GLIBC_2.2 bdflush F
+GLIBC_2.2 bind F
+GLIBC_2.2 bind_textdomain_codeset F
+GLIBC_2.2 bindresvport F
+GLIBC_2.2 bindtextdomain F
+GLIBC_2.2 brk F
+GLIBC_2.2 bsd_signal F
+GLIBC_2.2 bsearch F
+GLIBC_2.2 btowc F
+GLIBC_2.2 bzero F
+GLIBC_2.2 calloc F
+GLIBC_2.2 callrpc F
+GLIBC_2.2 canonicalize_file_name F
+GLIBC_2.2 capget F
+GLIBC_2.2 capset F
+GLIBC_2.2 catclose F
+GLIBC_2.2 catgets F
+GLIBC_2.2 catopen F
+GLIBC_2.2 cbc_crypt F
+GLIBC_2.2 cfgetispeed F
+GLIBC_2.2 cfgetospeed F
+GLIBC_2.2 cfmakeraw F
+GLIBC_2.2 cfree F
+GLIBC_2.2 cfsetispeed F
+GLIBC_2.2 cfsetospeed F
+GLIBC_2.2 cfsetspeed F
+GLIBC_2.2 chdir F
+GLIBC_2.2 chflags F
+GLIBC_2.2 chmod F
+GLIBC_2.2 chown F
+GLIBC_2.2 chroot F
+GLIBC_2.2 clearenv F
+GLIBC_2.2 clearerr F
+GLIBC_2.2 clearerr_unlocked F
+GLIBC_2.2 clnt_broadcast F
+GLIBC_2.2 clnt_create F
+GLIBC_2.2 clnt_pcreateerror F
+GLIBC_2.2 clnt_perrno F
+GLIBC_2.2 clnt_perror F
+GLIBC_2.2 clnt_spcreateerror F
+GLIBC_2.2 clnt_sperrno F
+GLIBC_2.2 clnt_sperror F
+GLIBC_2.2 clntraw_create F
+GLIBC_2.2 clnttcp_create F
+GLIBC_2.2 clntudp_bufcreate F
+GLIBC_2.2 clntudp_create F
+GLIBC_2.2 clntunix_create F
+GLIBC_2.2 clock F
+GLIBC_2.2 clone F
+GLIBC_2.2 close F
+GLIBC_2.2 closedir F
+GLIBC_2.2 closelog F
+GLIBC_2.2 confstr F
+GLIBC_2.2 connect F
+GLIBC_2.2 copysign F
+GLIBC_2.2 copysignf F
+GLIBC_2.2 copysignl F
+GLIBC_2.2 creat F
+GLIBC_2.2 creat64 F
+GLIBC_2.2 create_module F
+GLIBC_2.2 ctermid F
+GLIBC_2.2 ctime F
+GLIBC_2.2 ctime_r F
+GLIBC_2.2 cuserid F
+GLIBC_2.2 daemon F
+GLIBC_2.2 daylight D 0x4
+GLIBC_2.2 dcgettext F
+GLIBC_2.2 dcngettext F
+GLIBC_2.2 delete_module F
+GLIBC_2.2 des_setparity F
+GLIBC_2.2 dgettext F
+GLIBC_2.2 difftime F
+GLIBC_2.2 dirfd F
+GLIBC_2.2 dirname F
+GLIBC_2.2 div F
+GLIBC_2.2 dngettext F
+GLIBC_2.2 dprintf F
+GLIBC_2.2 drand48 F
+GLIBC_2.2 drand48_r F
+GLIBC_2.2 dup F
+GLIBC_2.2 dup2 F
+GLIBC_2.2 dysize F
+GLIBC_2.2 ecb_crypt F
+GLIBC_2.2 ecvt F
+GLIBC_2.2 ecvt_r F
+GLIBC_2.2 endaliasent F
+GLIBC_2.2 endfsent F
+GLIBC_2.2 endgrent F
+GLIBC_2.2 endhostent F
+GLIBC_2.2 endmntent F
+GLIBC_2.2 endnetent F
+GLIBC_2.2 endnetgrent F
+GLIBC_2.2 endprotoent F
+GLIBC_2.2 endpwent F
+GLIBC_2.2 endrpcent F
+GLIBC_2.2 endservent F
+GLIBC_2.2 endspent F
+GLIBC_2.2 endttyent F
+GLIBC_2.2 endusershell F
+GLIBC_2.2 endutent F
+GLIBC_2.2 endutxent F
+GLIBC_2.2 environ D 0x8
+GLIBC_2.2 envz_add F
+GLIBC_2.2 envz_entry F
+GLIBC_2.2 envz_get F
+GLIBC_2.2 envz_merge F
+GLIBC_2.2 envz_remove F
+GLIBC_2.2 envz_strip F
+GLIBC_2.2 erand48 F
+GLIBC_2.2 erand48_r F
+GLIBC_2.2 err F
+GLIBC_2.2 error F
+GLIBC_2.2 error_at_line F
+GLIBC_2.2 error_message_count D 0x4
+GLIBC_2.2 error_one_per_line D 0x4
+GLIBC_2.2 error_print_progname D 0x8
+GLIBC_2.2 errx F
+GLIBC_2.2 ether_aton F
+GLIBC_2.2 ether_aton_r F
+GLIBC_2.2 ether_hostton F
+GLIBC_2.2 ether_line F
+GLIBC_2.2 ether_ntoa F
+GLIBC_2.2 ether_ntoa_r F
+GLIBC_2.2 ether_ntohost F
+GLIBC_2.2 euidaccess F
+GLIBC_2.2 execl F
+GLIBC_2.2 execle F
+GLIBC_2.2 execlp F
+GLIBC_2.2 execv F
+GLIBC_2.2 execve F
+GLIBC_2.2 execvp F
+GLIBC_2.2 exit F
+GLIBC_2.2 fattach F
+GLIBC_2.2 fchdir F
+GLIBC_2.2 fchflags F
+GLIBC_2.2 fchmod F
+GLIBC_2.2 fchown F
+GLIBC_2.2 fclose F
+GLIBC_2.2 fcloseall F
+GLIBC_2.2 fcntl F
+GLIBC_2.2 fcvt F
+GLIBC_2.2 fcvt_r F
+GLIBC_2.2 fdatasync F
+GLIBC_2.2 fdetach F
+GLIBC_2.2 fdopen F
+GLIBC_2.2 feof F
+GLIBC_2.2 feof_unlocked F
+GLIBC_2.2 ferror F
+GLIBC_2.2 ferror_unlocked F
+GLIBC_2.2 fexecve F
+GLIBC_2.2 fflush F
+GLIBC_2.2 fflush_unlocked F
+GLIBC_2.2 ffs F
+GLIBC_2.2 ffsl F
+GLIBC_2.2 ffsll F
+GLIBC_2.2 fgetc F
+GLIBC_2.2 fgetc_unlocked F
+GLIBC_2.2 fgetgrent F
+GLIBC_2.2 fgetgrent_r F
+GLIBC_2.2 fgetpos F
+GLIBC_2.2 fgetpos64 F
+GLIBC_2.2 fgetpwent F
+GLIBC_2.2 fgetpwent_r F
+GLIBC_2.2 fgets F
+GLIBC_2.2 fgets_unlocked F
+GLIBC_2.2 fgetspent F
+GLIBC_2.2 fgetspent_r F
+GLIBC_2.2 fgetwc F
+GLIBC_2.2 fgetwc_unlocked F
+GLIBC_2.2 fgetws F
+GLIBC_2.2 fgetws_unlocked F
+GLIBC_2.2 fileno F
+GLIBC_2.2 fileno_unlocked F
+GLIBC_2.2 finite F
+GLIBC_2.2 finitef F
+GLIBC_2.2 finitel F
+GLIBC_2.2 flock F
+GLIBC_2.2 flockfile F
+GLIBC_2.2 fmemopen F
+GLIBC_2.2 fmtmsg F
+GLIBC_2.2 fnmatch F
+GLIBC_2.2 fopen F
+GLIBC_2.2 fopen64 F
+GLIBC_2.2 fopencookie F
+GLIBC_2.2 fork F
+GLIBC_2.2 fpathconf F
+GLIBC_2.2 fprintf F
+GLIBC_2.2 fputc F
+GLIBC_2.2 fputc_unlocked F
+GLIBC_2.2 fputs F
+GLIBC_2.2 fputs_unlocked F
+GLIBC_2.2 fputwc F
+GLIBC_2.2 fputwc_unlocked F
+GLIBC_2.2 fputws F
+GLIBC_2.2 fputws_unlocked F
+GLIBC_2.2 fread F
+GLIBC_2.2 fread_unlocked F
+GLIBC_2.2 free F
+GLIBC_2.2 freeaddrinfo F
+GLIBC_2.2 freopen F
+GLIBC_2.2 freopen64 F
+GLIBC_2.2 frexp F
+GLIBC_2.2 frexpf F
+GLIBC_2.2 frexpl F
+GLIBC_2.2 fscanf F
+GLIBC_2.2 fseek F
+GLIBC_2.2 fseeko F
+GLIBC_2.2 fseeko64 F
+GLIBC_2.2 fsetpos F
+GLIBC_2.2 fsetpos64 F
+GLIBC_2.2 fstatfs F
+GLIBC_2.2 fstatfs64 F
+GLIBC_2.2 fstatvfs F
+GLIBC_2.2 fstatvfs64 F
+GLIBC_2.2 fsync F
+GLIBC_2.2 ftell F
+GLIBC_2.2 ftello F
+GLIBC_2.2 ftello64 F
+GLIBC_2.2 ftime F
+GLIBC_2.2 ftok F
+GLIBC_2.2 ftruncate F
+GLIBC_2.2 ftruncate64 F
+GLIBC_2.2 ftrylockfile F
+GLIBC_2.2 fts_children F
+GLIBC_2.2 fts_close F
+GLIBC_2.2 fts_open F
+GLIBC_2.2 fts_read F
+GLIBC_2.2 fts_set F
+GLIBC_2.2 ftw F
+GLIBC_2.2 ftw64 F
+GLIBC_2.2 funlockfile F
+GLIBC_2.2 fwide F
+GLIBC_2.2 fwprintf F
+GLIBC_2.2 fwrite F
+GLIBC_2.2 fwrite_unlocked F
+GLIBC_2.2 fwscanf F
+GLIBC_2.2 gai_strerror F
+GLIBC_2.2 gcvt F
+GLIBC_2.2 get_avphys_pages F
+GLIBC_2.2 get_current_dir_name F
+GLIBC_2.2 get_kernel_syms F
+GLIBC_2.2 get_myaddress F
+GLIBC_2.2 get_nprocs F
+GLIBC_2.2 get_nprocs_conf F
+GLIBC_2.2 get_phys_pages F
+GLIBC_2.2 getaddrinfo F
+GLIBC_2.2 getaliasbyname F
+GLIBC_2.2 getaliasbyname_r F
+GLIBC_2.2 getaliasent F
+GLIBC_2.2 getaliasent_r F
+GLIBC_2.2 getc F
+GLIBC_2.2 getc_unlocked F
+GLIBC_2.2 getchar F
+GLIBC_2.2 getchar_unlocked F
+GLIBC_2.2 getcontext F
+GLIBC_2.2 getcwd F
+GLIBC_2.2 getdate F
+GLIBC_2.2 getdate_err D 0x4
+GLIBC_2.2 getdate_r F
+GLIBC_2.2 getdelim F
+GLIBC_2.2 getdirentries F
+GLIBC_2.2 getdirentries64 F
+GLIBC_2.2 getdomainname F
+GLIBC_2.2 getdtablesize F
+GLIBC_2.2 getegid F
+GLIBC_2.2 getenv F
+GLIBC_2.2 geteuid F
+GLIBC_2.2 getfsent F
+GLIBC_2.2 getfsfile F
+GLIBC_2.2 getfsspec F
+GLIBC_2.2 getgid F
+GLIBC_2.2 getgrent F
+GLIBC_2.2 getgrent_r F
+GLIBC_2.2 getgrgid F
+GLIBC_2.2 getgrgid_r F
+GLIBC_2.2 getgrnam F
+GLIBC_2.2 getgrnam_r F
+GLIBC_2.2 getgroups F
+GLIBC_2.2 gethostbyaddr F
+GLIBC_2.2 gethostbyaddr_r F
+GLIBC_2.2 gethostbyname F
+GLIBC_2.2 gethostbyname2 F
+GLIBC_2.2 gethostbyname2_r F
+GLIBC_2.2 gethostbyname_r F
+GLIBC_2.2 gethostent F
+GLIBC_2.2 gethostent_r F
+GLIBC_2.2 gethostid F
+GLIBC_2.2 gethostname F
+GLIBC_2.2 getitimer F
+GLIBC_2.2 getline F
+GLIBC_2.2 getloadavg F
+GLIBC_2.2 getlogin F
+GLIBC_2.2 getlogin_r F
+GLIBC_2.2 getmntent F
+GLIBC_2.2 getmntent_r F
+GLIBC_2.2 getmsg F
+GLIBC_2.2 getnameinfo F
+GLIBC_2.2 getnetbyaddr F
+GLIBC_2.2 getnetbyaddr_r F
+GLIBC_2.2 getnetbyname F
+GLIBC_2.2 getnetbyname_r F
+GLIBC_2.2 getnetent F
+GLIBC_2.2 getnetent_r F
+GLIBC_2.2 getnetgrent F
+GLIBC_2.2 getnetgrent_r F
+GLIBC_2.2 getnetname F
+GLIBC_2.2 getopt F
+GLIBC_2.2 getopt_long F
+GLIBC_2.2 getopt_long_only F
+GLIBC_2.2 getpagesize F
+GLIBC_2.2 getpass F
+GLIBC_2.2 getpeername F
+GLIBC_2.2 getpgid F
+GLIBC_2.2 getpgrp F
+GLIBC_2.2 getpid F
+GLIBC_2.2 getpmsg F
+GLIBC_2.2 getppid F
+GLIBC_2.2 getpriority F
+GLIBC_2.2 getprotobyname F
+GLIBC_2.2 getprotobyname_r F
+GLIBC_2.2 getprotobynumber F
+GLIBC_2.2 getprotobynumber_r F
+GLIBC_2.2 getprotoent F
+GLIBC_2.2 getprotoent_r F
+GLIBC_2.2 getpt F
+GLIBC_2.2 getpublickey F
+GLIBC_2.2 getpw F
+GLIBC_2.2 getpwent F
+GLIBC_2.2 getpwent_r F
+GLIBC_2.2 getpwnam F
+GLIBC_2.2 getpwnam_r F
+GLIBC_2.2 getpwuid F
+GLIBC_2.2 getpwuid_r F
+GLIBC_2.2 getresgid F
+GLIBC_2.2 getresuid F
+GLIBC_2.2 getrlimit F
+GLIBC_2.2 getrlimit64 F
+GLIBC_2.2 getrpcbyname F
+GLIBC_2.2 getrpcbyname_r F
+GLIBC_2.2 getrpcbynumber F
+GLIBC_2.2 getrpcbynumber_r F
+GLIBC_2.2 getrpcent F
+GLIBC_2.2 getrpcent_r F
+GLIBC_2.2 getrpcport F
+GLIBC_2.2 getrusage F
+GLIBC_2.2 gets F
+GLIBC_2.2 getsecretkey F
+GLIBC_2.2 getservbyname F
+GLIBC_2.2 getservbyname_r F
+GLIBC_2.2 getservbyport F
+GLIBC_2.2 getservbyport_r F
+GLIBC_2.2 getservent F
+GLIBC_2.2 getservent_r F
+GLIBC_2.2 getsid F
+GLIBC_2.2 getsockname F
+GLIBC_2.2 getsockopt F
+GLIBC_2.2 getspent F
+GLIBC_2.2 getspent_r F
+GLIBC_2.2 getspnam F
+GLIBC_2.2 getspnam_r F
+GLIBC_2.2 getsubopt F
+GLIBC_2.2 gettext F
+GLIBC_2.2 gettimeofday F
+GLIBC_2.2 getttyent F
+GLIBC_2.2 getttynam F
+GLIBC_2.2 getuid F
+GLIBC_2.2 getusershell F
+GLIBC_2.2 getutent F
+GLIBC_2.2 getutent_r F
+GLIBC_2.2 getutid F
+GLIBC_2.2 getutid_r F
+GLIBC_2.2 getutline F
+GLIBC_2.2 getutline_r F
+GLIBC_2.2 getutmp F
+GLIBC_2.2 getutmpx F
+GLIBC_2.2 getutxent F
+GLIBC_2.2 getutxid F
+GLIBC_2.2 getutxline F
+GLIBC_2.2 getw F
+GLIBC_2.2 getwc F
+GLIBC_2.2 getwc_unlocked F
+GLIBC_2.2 getwchar F
+GLIBC_2.2 getwchar_unlocked F
+GLIBC_2.2 getwd F
+GLIBC_2.2 glob F
+GLIBC_2.2 glob64 F
+GLIBC_2.2 glob_pattern_p F
+GLIBC_2.2 globfree F
+GLIBC_2.2 globfree64 F
+GLIBC_2.2 gmtime F
+GLIBC_2.2 gmtime_r F
+GLIBC_2.2 gnu_get_libc_release F
+GLIBC_2.2 gnu_get_libc_version F
+GLIBC_2.2 grantpt F
+GLIBC_2.2 group_member F
+GLIBC_2.2 gsignal F
+GLIBC_2.2 gtty F
+GLIBC_2.2 h_errlist D 0x28
+GLIBC_2.2 h_nerr D 0x4
+GLIBC_2.2 hasmntopt F
+GLIBC_2.2 hcreate F
+GLIBC_2.2 hcreate_r F
+GLIBC_2.2 hdestroy F
+GLIBC_2.2 hdestroy_r F
+GLIBC_2.2 herror F
+GLIBC_2.2 host2netname F
+GLIBC_2.2 hsearch F
+GLIBC_2.2 hsearch_r F
+GLIBC_2.2 hstrerror F
+GLIBC_2.2 htonl F
+GLIBC_2.2 htons F
+GLIBC_2.2 iconv F
+GLIBC_2.2 iconv_close F
+GLIBC_2.2 iconv_open F
+GLIBC_2.2 if_freenameindex F
+GLIBC_2.2 if_indextoname F
+GLIBC_2.2 if_nameindex F
+GLIBC_2.2 if_nametoindex F
+GLIBC_2.2 imaxabs F
+GLIBC_2.2 imaxdiv F
+GLIBC_2.2 in6addr_any D 0x10
+GLIBC_2.2 in6addr_loopback D 0x10
+GLIBC_2.2 index F
+GLIBC_2.2 inet_addr F
+GLIBC_2.2 inet_aton F
+GLIBC_2.2 inet_lnaof F
+GLIBC_2.2 inet_makeaddr F
+GLIBC_2.2 inet_netof F
+GLIBC_2.2 inet_network F
+GLIBC_2.2 inet_nsap_addr F
+GLIBC_2.2 inet_nsap_ntoa F
+GLIBC_2.2 inet_ntoa F
+GLIBC_2.2 inet_ntop F
+GLIBC_2.2 inet_pton F
+GLIBC_2.2 init_module F
+GLIBC_2.2 initgroups F
+GLIBC_2.2 initstate F
+GLIBC_2.2 initstate_r F
+GLIBC_2.2 innetgr F
+GLIBC_2.2 insque F
+GLIBC_2.2 ioctl F
+GLIBC_2.2 iruserok F
+GLIBC_2.2 iruserok_af F
+GLIBC_2.2 isalnum F
+GLIBC_2.2 isalpha F
+GLIBC_2.2 isascii F
+GLIBC_2.2 isastream F
+GLIBC_2.2 isatty F
+GLIBC_2.2 isblank F
+GLIBC_2.2 iscntrl F
+GLIBC_2.2 isdigit F
+GLIBC_2.2 isfdtype F
+GLIBC_2.2 isgraph F
+GLIBC_2.2 isinf F
+GLIBC_2.2 isinff F
+GLIBC_2.2 isinfl F
+GLIBC_2.2 islower F
+GLIBC_2.2 isnan F
+GLIBC_2.2 isnanf F
+GLIBC_2.2 isnanl F
+GLIBC_2.2 isprint F
+GLIBC_2.2 ispunct F
+GLIBC_2.2 isspace F
+GLIBC_2.2 isupper F
+GLIBC_2.2 iswalnum F
+GLIBC_2.2 iswalpha F
+GLIBC_2.2 iswblank F
+GLIBC_2.2 iswcntrl F
+GLIBC_2.2 iswctype F
+GLIBC_2.2 iswdigit F
+GLIBC_2.2 iswgraph F
+GLIBC_2.2 iswlower F
+GLIBC_2.2 iswprint F
+GLIBC_2.2 iswpunct F
+GLIBC_2.2 iswspace F
+GLIBC_2.2 iswupper F
+GLIBC_2.2 iswxdigit F
+GLIBC_2.2 isxdigit F
+GLIBC_2.2 jrand48 F
+GLIBC_2.2 jrand48_r F
+GLIBC_2.2 key_decryptsession F
+GLIBC_2.2 key_decryptsession_pk F
+GLIBC_2.2 key_encryptsession F
+GLIBC_2.2 key_encryptsession_pk F
+GLIBC_2.2 key_gendes F
+GLIBC_2.2 key_get_conv F
+GLIBC_2.2 key_secretkey_is_set F
+GLIBC_2.2 key_setnet F
+GLIBC_2.2 key_setsecret F
+GLIBC_2.2 kill F
+GLIBC_2.2 killpg F
+GLIBC_2.2 klogctl F
+GLIBC_2.2 l64a F
+GLIBC_2.2 labs F
+GLIBC_2.2 lchown F
+GLIBC_2.2 lckpwdf F
+GLIBC_2.2 lcong48 F
+GLIBC_2.2 lcong48_r F
+GLIBC_2.2 ldexp F
+GLIBC_2.2 ldexpf F
+GLIBC_2.2 ldexpl F
+GLIBC_2.2 ldiv F
+GLIBC_2.2 lfind F
+GLIBC_2.2 link F
+GLIBC_2.2 listen F
+GLIBC_2.2 llabs F
+GLIBC_2.2 lldiv F
+GLIBC_2.2 llseek F
+GLIBC_2.2 loc1 D 0x8
+GLIBC_2.2 loc2 D 0x8
+GLIBC_2.2 localeconv F
+GLIBC_2.2 localtime F
+GLIBC_2.2 localtime_r F
+GLIBC_2.2 lockf F
+GLIBC_2.2 lockf64 F
+GLIBC_2.2 locs D 0x8
+GLIBC_2.2 longjmp F
+GLIBC_2.2 lrand48 F
+GLIBC_2.2 lrand48_r F
+GLIBC_2.2 lsearch F
+GLIBC_2.2 lseek F
+GLIBC_2.2 lseek64 F
+GLIBC_2.2 madvise F
+GLIBC_2.2 makecontext F
+GLIBC_2.2 mallinfo F
+GLIBC_2.2 malloc F
+GLIBC_2.2 malloc_get_state F
+GLIBC_2.2 malloc_set_state F
+GLIBC_2.2 malloc_stats F
+GLIBC_2.2 malloc_trim F
+GLIBC_2.2 malloc_usable_size F
+GLIBC_2.2 mallopt F
+GLIBC_2.2 mallwatch D 0x8
+GLIBC_2.2 mblen F
+GLIBC_2.2 mbrlen F
+GLIBC_2.2 mbrtowc F
+GLIBC_2.2 mbsinit F
+GLIBC_2.2 mbsnrtowcs F
+GLIBC_2.2 mbsrtowcs F
+GLIBC_2.2 mbstowcs F
+GLIBC_2.2 mbtowc F
+GLIBC_2.2 mcheck F
+GLIBC_2.2 mcheck_check_all F
+GLIBC_2.2 mcheck_pedantic F
+GLIBC_2.2 mcount F
+GLIBC_2.2 memalign F
+GLIBC_2.2 memccpy F
+GLIBC_2.2 memchr F
+GLIBC_2.2 memcmp F
+GLIBC_2.2 memcpy F
+GLIBC_2.2 memfrob F
+GLIBC_2.2 memmem F
+GLIBC_2.2 memmove F
+GLIBC_2.2 mempcpy F
+GLIBC_2.2 memrchr F
+GLIBC_2.2 memset F
+GLIBC_2.2 mincore F
+GLIBC_2.2 mkdir F
+GLIBC_2.2 mkdtemp F
+GLIBC_2.2 mkfifo F
+GLIBC_2.2 mkstemp F
+GLIBC_2.2 mkstemp64 F
+GLIBC_2.2 mktemp F
+GLIBC_2.2 mktime F
+GLIBC_2.2 mlock F
+GLIBC_2.2 mlockall F
+GLIBC_2.2 mmap F
+GLIBC_2.2 mmap64 F
+GLIBC_2.2 modf F
+GLIBC_2.2 modff F
+GLIBC_2.2 modfl F
+GLIBC_2.2 moncontrol F
+GLIBC_2.2 monstartup F
+GLIBC_2.2 mount F
+GLIBC_2.2 mprobe F
+GLIBC_2.2 mprotect F
+GLIBC_2.2 mrand48 F
+GLIBC_2.2 mrand48_r F
+GLIBC_2.2 mremap F
+GLIBC_2.2 msgctl F
+GLIBC_2.2 msgget F
+GLIBC_2.2 msgrcv F
+GLIBC_2.2 msgsnd F
+GLIBC_2.2 msync F
+GLIBC_2.2 mtrace F
+GLIBC_2.2 munlock F
+GLIBC_2.2 munlockall F
+GLIBC_2.2 munmap F
+GLIBC_2.2 muntrace F
+GLIBC_2.2 nanosleep F
+GLIBC_2.2 netname2host F
+GLIBC_2.2 netname2user F
+GLIBC_2.2 nfsservctl F
+GLIBC_2.2 nftw F
+GLIBC_2.2 nftw64 F
+GLIBC_2.2 ngettext F
+GLIBC_2.2 nice F
+GLIBC_2.2 nl_langinfo F
+GLIBC_2.2 nrand48 F
+GLIBC_2.2 nrand48_r F
+GLIBC_2.2 ntohl F
+GLIBC_2.2 ntohs F
+GLIBC_2.2 ntp_adjtime F
+GLIBC_2.2 ntp_gettime F
+GLIBC_2.2 obstack_alloc_failed_handler D 0x8
+GLIBC_2.2 obstack_exit_failure D 0x4
+GLIBC_2.2 obstack_free F
+GLIBC_2.2 obstack_printf F
+GLIBC_2.2 obstack_vprintf F
+GLIBC_2.2 on_exit F
+GLIBC_2.2 open F
+GLIBC_2.2 open64 F
+GLIBC_2.2 open_memstream F
+GLIBC_2.2 opendir F
+GLIBC_2.2 openlog F
+GLIBC_2.2 optarg D 0x8
+GLIBC_2.2 opterr D 0x4
+GLIBC_2.2 optind D 0x4
+GLIBC_2.2 optopt D 0x4
+GLIBC_2.2 parse_printf_format F
+GLIBC_2.2 passwd2des F
+GLIBC_2.2 pathconf F
+GLIBC_2.2 pause F
+GLIBC_2.2 pclose F
+GLIBC_2.2 perror F
+GLIBC_2.2 personality F
+GLIBC_2.2 pipe F
+GLIBC_2.2 pmap_getmaps F
+GLIBC_2.2 pmap_getport F
+GLIBC_2.2 pmap_rmtcall F
+GLIBC_2.2 pmap_set F
+GLIBC_2.2 pmap_unset F
+GLIBC_2.2 poll F
+GLIBC_2.2 popen F
+GLIBC_2.2 posix_fadvise F
+GLIBC_2.2 posix_fadvise64 F
+GLIBC_2.2 posix_fallocate F
+GLIBC_2.2 posix_fallocate64 F
+GLIBC_2.2 posix_madvise F
+GLIBC_2.2 posix_memalign F
+GLIBC_2.2 posix_spawn F
+GLIBC_2.2 posix_spawn_file_actions_addclose F
+GLIBC_2.2 posix_spawn_file_actions_adddup2 F
+GLIBC_2.2 posix_spawn_file_actions_addopen F
+GLIBC_2.2 posix_spawn_file_actions_destroy F
+GLIBC_2.2 posix_spawn_file_actions_init F
+GLIBC_2.2 posix_spawnattr_destroy F
+GLIBC_2.2 posix_spawnattr_getflags F
+GLIBC_2.2 posix_spawnattr_getpgroup F
+GLIBC_2.2 posix_spawnattr_getschedparam F
+GLIBC_2.2 posix_spawnattr_getschedpolicy F
+GLIBC_2.2 posix_spawnattr_getsigdefault F
+GLIBC_2.2 posix_spawnattr_getsigmask F
+GLIBC_2.2 posix_spawnattr_init F
+GLIBC_2.2 posix_spawnattr_setflags F
+GLIBC_2.2 posix_spawnattr_setpgroup F
+GLIBC_2.2 posix_spawnattr_setschedparam F
+GLIBC_2.2 posix_spawnattr_setschedpolicy F
+GLIBC_2.2 posix_spawnattr_setsigdefault F
+GLIBC_2.2 posix_spawnattr_setsigmask F
+GLIBC_2.2 posix_spawnp F
+GLIBC_2.2 prctl F
+GLIBC_2.2 pread F
+GLIBC_2.2 pread64 F
+GLIBC_2.2 printf F
+GLIBC_2.2 printf_size F
+GLIBC_2.2 printf_size_info F
+GLIBC_2.2 profil F
+GLIBC_2.2 program_invocation_name D 0x8
+GLIBC_2.2 program_invocation_short_name D 0x8
+GLIBC_2.2 pselect F
+GLIBC_2.2 psignal F
+GLIBC_2.2 pthread_attr_destroy F
+GLIBC_2.2 pthread_attr_getdetachstate F
+GLIBC_2.2 pthread_attr_getinheritsched F
+GLIBC_2.2 pthread_attr_getschedparam F
+GLIBC_2.2 pthread_attr_getschedpolicy F
+GLIBC_2.2 pthread_attr_getscope F
+GLIBC_2.2 pthread_attr_init F
+GLIBC_2.2 pthread_attr_setdetachstate F
+GLIBC_2.2 pthread_attr_setinheritsched F
+GLIBC_2.2 pthread_attr_setschedparam F
+GLIBC_2.2 pthread_attr_setschedpolicy F
+GLIBC_2.2 pthread_attr_setscope F
+GLIBC_2.2 pthread_cond_broadcast F
+GLIBC_2.2 pthread_cond_destroy F
+GLIBC_2.2 pthread_cond_init F
+GLIBC_2.2 pthread_cond_signal F
+GLIBC_2.2 pthread_cond_timedwait F
+GLIBC_2.2 pthread_cond_wait F
+GLIBC_2.2 pthread_condattr_destroy F
+GLIBC_2.2 pthread_condattr_init F
+GLIBC_2.2 pthread_equal F
+GLIBC_2.2 pthread_exit F
+GLIBC_2.2 pthread_getschedparam F
+GLIBC_2.2 pthread_mutex_destroy F
+GLIBC_2.2 pthread_mutex_init F
+GLIBC_2.2 pthread_mutex_lock F
+GLIBC_2.2 pthread_mutex_unlock F
+GLIBC_2.2 pthread_self F
+GLIBC_2.2 pthread_setcancelstate F
+GLIBC_2.2 pthread_setcanceltype F
+GLIBC_2.2 pthread_setschedparam F
+GLIBC_2.2 ptrace F
+GLIBC_2.2 ptsname F
+GLIBC_2.2 ptsname_r F
+GLIBC_2.2 putc F
+GLIBC_2.2 putc_unlocked F
+GLIBC_2.2 putchar F
+GLIBC_2.2 putchar_unlocked F
+GLIBC_2.2 putenv F
+GLIBC_2.2 putgrent F
+GLIBC_2.2 putmsg F
+GLIBC_2.2 putpmsg F
+GLIBC_2.2 putpwent F
+GLIBC_2.2 puts F
+GLIBC_2.2 putspent F
+GLIBC_2.2 pututline F
+GLIBC_2.2 pututxline F
+GLIBC_2.2 putw F
+GLIBC_2.2 putwc F
+GLIBC_2.2 putwc_unlocked F
+GLIBC_2.2 putwchar F
+GLIBC_2.2 putwchar_unlocked F
+GLIBC_2.2 pvalloc F
+GLIBC_2.2 pwrite F
+GLIBC_2.2 pwrite64 F
+GLIBC_2.2 qecvt F
+GLIBC_2.2 qecvt_r F
+GLIBC_2.2 qfcvt F
+GLIBC_2.2 qfcvt_r F
+GLIBC_2.2 qgcvt F
+GLIBC_2.2 qsort F
+GLIBC_2.2 query_module F
+GLIBC_2.2 quotactl F
+GLIBC_2.2 raise F
+GLIBC_2.2 rand F
+GLIBC_2.2 rand_r F
+GLIBC_2.2 random F
+GLIBC_2.2 random_r F
+GLIBC_2.2 rawmemchr F
+GLIBC_2.2 rcmd F
+GLIBC_2.2 rcmd_af F
+GLIBC_2.2 re_comp F
+GLIBC_2.2 re_compile_fastmap F
+GLIBC_2.2 re_compile_pattern F
+GLIBC_2.2 re_exec F
+GLIBC_2.2 re_match F
+GLIBC_2.2 re_match_2 F
+GLIBC_2.2 re_max_failures D 0x4
+GLIBC_2.2 re_search F
+GLIBC_2.2 re_search_2 F
+GLIBC_2.2 re_set_registers F
+GLIBC_2.2 re_set_syntax F
+GLIBC_2.2 re_syntax_options D 0x8
+GLIBC_2.2 read F
+GLIBC_2.2 readdir F
+GLIBC_2.2 readdir64 F
+GLIBC_2.2 readdir64_r F
+GLIBC_2.2 readdir_r F
+GLIBC_2.2 readlink F
+GLIBC_2.2 readv F
+GLIBC_2.2 realloc F
+GLIBC_2.2 realpath F
+GLIBC_2.2 reboot F
+GLIBC_2.2 recv F
+GLIBC_2.2 recvfrom F
+GLIBC_2.2 recvmsg F
+GLIBC_2.2 regcomp F
+GLIBC_2.2 regerror F
+GLIBC_2.2 regexec F
+GLIBC_2.2 regfree F
+GLIBC_2.2 register_printf_function F
+GLIBC_2.2 registerrpc F
+GLIBC_2.2 remove F
+GLIBC_2.2 remque F
+GLIBC_2.2 rename F
+GLIBC_2.2 revoke F
+GLIBC_2.2 rewind F
+GLIBC_2.2 rewinddir F
+GLIBC_2.2 rexec F
+GLIBC_2.2 rexec_af F
+GLIBC_2.2 rexecoptions D 0x4
+GLIBC_2.2 rindex F
+GLIBC_2.2 rmdir F
+GLIBC_2.2 rpc_createerr D 0x20
+GLIBC_2.2 rpmatch F
+GLIBC_2.2 rresvport F
+GLIBC_2.2 rresvport_af F
+GLIBC_2.2 rtime F
+GLIBC_2.2 ruserok F
+GLIBC_2.2 ruserok_af F
+GLIBC_2.2 ruserpass F
+GLIBC_2.2 sbrk F
+GLIBC_2.2 scalbn F
+GLIBC_2.2 scalbnf F
+GLIBC_2.2 scalbnl F
+GLIBC_2.2 scandir F
+GLIBC_2.2 scandir64 F
+GLIBC_2.2 scanf F
+GLIBC_2.2 sched_get_priority_max F
+GLIBC_2.2 sched_get_priority_min F
+GLIBC_2.2 sched_getparam F
+GLIBC_2.2 sched_getscheduler F
+GLIBC_2.2 sched_rr_get_interval F
+GLIBC_2.2 sched_setparam F
+GLIBC_2.2 sched_setscheduler F
+GLIBC_2.2 sched_yield F
+GLIBC_2.2 seed48 F
+GLIBC_2.2 seed48_r F
+GLIBC_2.2 seekdir F
+GLIBC_2.2 select F
+GLIBC_2.2 semctl F
+GLIBC_2.2 semget F
+GLIBC_2.2 semop F
+GLIBC_2.2 send F
+GLIBC_2.2 sendfile F
+GLIBC_2.2 sendmsg F
+GLIBC_2.2 sendto F
+GLIBC_2.2 setaliasent F
+GLIBC_2.2 setbuf F
+GLIBC_2.2 setbuffer F
+GLIBC_2.2 setcontext F
+GLIBC_2.2 setdomainname F
+GLIBC_2.2 setegid F
+GLIBC_2.2 setenv F
+GLIBC_2.2 seteuid F
+GLIBC_2.2 setfsent F
+GLIBC_2.2 setfsgid F
+GLIBC_2.2 setfsuid F
+GLIBC_2.2 setgid F
+GLIBC_2.2 setgrent F
+GLIBC_2.2 setgroups F
+GLIBC_2.2 sethostent F
+GLIBC_2.2 sethostid F
+GLIBC_2.2 sethostname F
+GLIBC_2.2 setitimer F
+GLIBC_2.2 setjmp F
+GLIBC_2.2 setlinebuf F
+GLIBC_2.2 setlocale F
+GLIBC_2.2 setlogin F
+GLIBC_2.2 setlogmask F
+GLIBC_2.2 setmntent F
+GLIBC_2.2 setnetent F
+GLIBC_2.2 setnetgrent F
+GLIBC_2.2 setpgid F
+GLIBC_2.2 setpgrp F
+GLIBC_2.2 setpriority F
+GLIBC_2.2 setprotoent F
+GLIBC_2.2 setpwent F
+GLIBC_2.2 setregid F
+GLIBC_2.2 setresgid F
+GLIBC_2.2 setresuid F
+GLIBC_2.2 setreuid F
+GLIBC_2.2 setrlimit F
+GLIBC_2.2 setrlimit64 F
+GLIBC_2.2 setrpcent F
+GLIBC_2.2 setservent F
+GLIBC_2.2 setsid F
+GLIBC_2.2 setsockopt F
+GLIBC_2.2 setspent F
+GLIBC_2.2 setstate F
+GLIBC_2.2 setstate_r F
+GLIBC_2.2 settimeofday F
+GLIBC_2.2 setttyent F
+GLIBC_2.2 setuid F
+GLIBC_2.2 setusershell F
+GLIBC_2.2 setutent F
+GLIBC_2.2 setutxent F
+GLIBC_2.2 setvbuf F
+GLIBC_2.2 sgetspent F
+GLIBC_2.2 sgetspent_r F
+GLIBC_2.2 shmat F
+GLIBC_2.2 shmctl F
+GLIBC_2.2 shmdt F
+GLIBC_2.2 shmget F
+GLIBC_2.2 shutdown F
+GLIBC_2.2 sigaction F
+GLIBC_2.2 sigaddset F
+GLIBC_2.2 sigaltstack F
+GLIBC_2.2 sigandset F
+GLIBC_2.2 sigblock F
+GLIBC_2.2 sigdelset F
+GLIBC_2.2 sigemptyset F
+GLIBC_2.2 sigfillset F
+GLIBC_2.2 siggetmask F
+GLIBC_2.2 sighold F
+GLIBC_2.2 sigignore F
+GLIBC_2.2 siginterrupt F
+GLIBC_2.2 sigisemptyset F
+GLIBC_2.2 sigismember F
+GLIBC_2.2 siglongjmp F
+GLIBC_2.2 signal F
+GLIBC_2.2 sigorset F
+GLIBC_2.2 sigpause F
+GLIBC_2.2 sigpending F
+GLIBC_2.2 sigprocmask F
+GLIBC_2.2 sigqueue F
+GLIBC_2.2 sigrelse F
+GLIBC_2.2 sigreturn F
+GLIBC_2.2 sigset F
+GLIBC_2.2 sigsetmask F
+GLIBC_2.2 sigstack F
+GLIBC_2.2 sigsuspend F
+GLIBC_2.2 sigtimedwait F
+GLIBC_2.2 sigvec F
+GLIBC_2.2 sigwait F
+GLIBC_2.2 sigwaitinfo F
+GLIBC_2.2 sleep F
+GLIBC_2.2 snprintf F
+GLIBC_2.2 socket F
+GLIBC_2.2 socketpair F
+GLIBC_2.2 sprintf F
+GLIBC_2.2 srand F
+GLIBC_2.2 srand48 F
+GLIBC_2.2 srand48_r F
+GLIBC_2.2 srandom F
+GLIBC_2.2 srandom_r F
+GLIBC_2.2 sscanf F
+GLIBC_2.2 ssignal F
+GLIBC_2.2 sstk F
+GLIBC_2.2 statfs F
+GLIBC_2.2 statfs64 F
+GLIBC_2.2 statvfs F
+GLIBC_2.2 statvfs64 F
+GLIBC_2.2 stderr D 0x8
+GLIBC_2.2 stdin D 0x8
+GLIBC_2.2 stdout D 0x8
+GLIBC_2.2 step F
+GLIBC_2.2 stime F
+GLIBC_2.2 stpcpy F
+GLIBC_2.2 stpncpy F
+GLIBC_2.2 strcasecmp F
+GLIBC_2.2 strcasestr F
+GLIBC_2.2 strcat F
+GLIBC_2.2 strchr F
+GLIBC_2.2 strchrnul F
+GLIBC_2.2 strcmp F
+GLIBC_2.2 strcoll F
+GLIBC_2.2 strcpy F
+GLIBC_2.2 strcspn F
+GLIBC_2.2 strdup F
+GLIBC_2.2 strerror F
+GLIBC_2.2 strerror_r F
+GLIBC_2.2 strfmon F
+GLIBC_2.2 strfry F
+GLIBC_2.2 strftime F
+GLIBC_2.2 strlen F
+GLIBC_2.2 strncasecmp F
+GLIBC_2.2 strncat F
+GLIBC_2.2 strncmp F
+GLIBC_2.2 strncpy F
+GLIBC_2.2 strndup F
+GLIBC_2.2 strnlen F
+GLIBC_2.2 strpbrk F
+GLIBC_2.2 strptime F
+GLIBC_2.2 strrchr F
+GLIBC_2.2 strsep F
+GLIBC_2.2 strsignal F
+GLIBC_2.2 strspn F
+GLIBC_2.2 strstr F
+GLIBC_2.2 strtod F
+GLIBC_2.2 strtof F
+GLIBC_2.2 strtoimax F
+GLIBC_2.2 strtok F
+GLIBC_2.2 strtok_r F
+GLIBC_2.2 strtol F
+GLIBC_2.2 strtold F
+GLIBC_2.2 strtoll F
+GLIBC_2.2 strtoq F
+GLIBC_2.2 strtoul F
+GLIBC_2.2 strtoull F
+GLIBC_2.2 strtoumax F
+GLIBC_2.2 strtouq F
+GLIBC_2.2 strverscmp F
+GLIBC_2.2 strxfrm F
+GLIBC_2.2 stty F
+GLIBC_2.2 svc_exit F
+GLIBC_2.2 svc_fdset D 0x80
+GLIBC_2.2 svc_getreq F
+GLIBC_2.2 svc_getreq_common F
+GLIBC_2.2 svc_getreq_poll F
+GLIBC_2.2 svc_getreqset F
+GLIBC_2.2 svc_max_pollfd D 0x4
+GLIBC_2.2 svc_pollfd D 0x8
+GLIBC_2.2 svc_register F
+GLIBC_2.2 svc_run F
+GLIBC_2.2 svc_sendreply F
+GLIBC_2.2 svc_unregister F
+GLIBC_2.2 svcauthdes_stats D 0x18
+GLIBC_2.2 svcerr_auth F
+GLIBC_2.2 svcerr_decode F
+GLIBC_2.2 svcerr_noproc F
+GLIBC_2.2 svcerr_noprog F
+GLIBC_2.2 svcerr_progvers F
+GLIBC_2.2 svcerr_systemerr F
+GLIBC_2.2 svcerr_weakauth F
+GLIBC_2.2 svcfd_create F
+GLIBC_2.2 svcraw_create F
+GLIBC_2.2 svctcp_create F
+GLIBC_2.2 svcudp_bufcreate F
+GLIBC_2.2 svcudp_create F
+GLIBC_2.2 svcudp_enablecache F
+GLIBC_2.2 svcunix_create F
+GLIBC_2.2 svcunixfd_create F
+GLIBC_2.2 swab F
+GLIBC_2.2 swapcontext F
+GLIBC_2.2 swapoff F
+GLIBC_2.2 swapon F
+GLIBC_2.2 swprintf F
+GLIBC_2.2 swscanf F
+GLIBC_2.2 symlink F
+GLIBC_2.2 sync F
+GLIBC_2.2 sys_errlist D 0x3e8
+GLIBC_2.2 sys_nerr D 0x4
+GLIBC_2.2 sys_sigabbrev D 0x200
+GLIBC_2.2 sys_siglist D 0x200
+GLIBC_2.2 syscall F
+GLIBC_2.2 sysconf F
+GLIBC_2.2 sysctl F
+GLIBC_2.2 sysinfo F
+GLIBC_2.2 syslog F
+GLIBC_2.2 system F
+GLIBC_2.2 sysv_signal F
+GLIBC_2.2 tcdrain F
+GLIBC_2.2 tcflow F
+GLIBC_2.2 tcflush F
+GLIBC_2.2 tcgetattr F
+GLIBC_2.2 tcgetpgrp F
+GLIBC_2.2 tcgetsid F
+GLIBC_2.2 tcsendbreak F
+GLIBC_2.2 tcsetattr F
+GLIBC_2.2 tcsetpgrp F
+GLIBC_2.2 tdelete F
+GLIBC_2.2 tdestroy F
+GLIBC_2.2 telldir F
+GLIBC_2.2 tempnam F
+GLIBC_2.2 textdomain F
+GLIBC_2.2 tfind F
+GLIBC_2.2 time F
+GLIBC_2.2 timegm F
+GLIBC_2.2 timelocal F
+GLIBC_2.2 times F
+GLIBC_2.2 timezone D 0x8
+GLIBC_2.2 tmpfile F
+GLIBC_2.2 tmpfile64 F
+GLIBC_2.2 tmpnam F
+GLIBC_2.2 tmpnam_r F
+GLIBC_2.2 toascii F
+GLIBC_2.2 tolower F
+GLIBC_2.2 toupper F
+GLIBC_2.2 towctrans F
+GLIBC_2.2 towlower F
+GLIBC_2.2 towupper F
+GLIBC_2.2 tr_break F
+GLIBC_2.2 truncate F
+GLIBC_2.2 truncate64 F
+GLIBC_2.2 tsearch F
+GLIBC_2.2 ttyname F
+GLIBC_2.2 ttyname_r F
+GLIBC_2.2 ttyslot F
+GLIBC_2.2 twalk F
+GLIBC_2.2 tzname D 0x10
+GLIBC_2.2 tzset F
+GLIBC_2.2 ualarm F
+GLIBC_2.2 ulckpwdf F
+GLIBC_2.2 ulimit F
+GLIBC_2.2 umask F
+GLIBC_2.2 umount F
+GLIBC_2.2 umount2 F
+GLIBC_2.2 uname F
+GLIBC_2.2 ungetc F
+GLIBC_2.2 ungetwc F
+GLIBC_2.2 unlink F
+GLIBC_2.2 unlockpt F
+GLIBC_2.2 unsetenv F
+GLIBC_2.2 updwtmp F
+GLIBC_2.2 updwtmpx F
+GLIBC_2.2 uselib F
+GLIBC_2.2 user2netname F
+GLIBC_2.2 usleep F
+GLIBC_2.2 ustat F
+GLIBC_2.2 utime F
+GLIBC_2.2 utimes F
+GLIBC_2.2 utmpname F
+GLIBC_2.2 utmpxname F
+GLIBC_2.2 valloc F
+GLIBC_2.2 vasprintf F
+GLIBC_2.2 vdprintf F
+GLIBC_2.2 verr F
+GLIBC_2.2 verrx F
+GLIBC_2.2 versionsort F
+GLIBC_2.2 versionsort64 F
+GLIBC_2.2 vfork F
+GLIBC_2.2 vfprintf F
+GLIBC_2.2 vfscanf F
+GLIBC_2.2 vfwprintf F
+GLIBC_2.2 vfwscanf F
+GLIBC_2.2 vhangup F
+GLIBC_2.2 vlimit F
+GLIBC_2.2 vprintf F
+GLIBC_2.2 vscanf F
+GLIBC_2.2 vsnprintf F
+GLIBC_2.2 vsprintf F
+GLIBC_2.2 vsscanf F
+GLIBC_2.2 vswprintf F
+GLIBC_2.2 vswscanf F
+GLIBC_2.2 vsyslog F
+GLIBC_2.2 vtimes F
+GLIBC_2.2 vwarn F
+GLIBC_2.2 vwarnx F
+GLIBC_2.2 vwprintf F
+GLIBC_2.2 vwscanf F
+GLIBC_2.2 wait F
+GLIBC_2.2 wait3 F
+GLIBC_2.2 wait4 F
+GLIBC_2.2 waitid F
+GLIBC_2.2 waitpid F
+GLIBC_2.2 warn F
+GLIBC_2.2 warnx F
+GLIBC_2.2 wcpcpy F
+GLIBC_2.2 wcpncpy F
+GLIBC_2.2 wcrtomb F
+GLIBC_2.2 wcscasecmp F
+GLIBC_2.2 wcscat F
+GLIBC_2.2 wcschr F
+GLIBC_2.2 wcschrnul F
+GLIBC_2.2 wcscmp F
+GLIBC_2.2 wcscoll F
+GLIBC_2.2 wcscpy F
+GLIBC_2.2 wcscspn F
+GLIBC_2.2 wcsdup F
+GLIBC_2.2 wcsftime F
+GLIBC_2.2 wcslen F
+GLIBC_2.2 wcsncasecmp F
+GLIBC_2.2 wcsncat F
+GLIBC_2.2 wcsncmp F
+GLIBC_2.2 wcsncpy F
+GLIBC_2.2 wcsnlen F
+GLIBC_2.2 wcsnrtombs F
+GLIBC_2.2 wcspbrk F
+GLIBC_2.2 wcsrchr F
+GLIBC_2.2 wcsrtombs F
+GLIBC_2.2 wcsspn F
+GLIBC_2.2 wcsstr F
+GLIBC_2.2 wcstod F
+GLIBC_2.2 wcstof F
+GLIBC_2.2 wcstoimax F
+GLIBC_2.2 wcstok F
+GLIBC_2.2 wcstol F
+GLIBC_2.2 wcstold F
+GLIBC_2.2 wcstoll F
+GLIBC_2.2 wcstombs F
+GLIBC_2.2 wcstoq F
+GLIBC_2.2 wcstoul F
+GLIBC_2.2 wcstoull F
+GLIBC_2.2 wcstoumax F
+GLIBC_2.2 wcstouq F
+GLIBC_2.2 wcswcs F
+GLIBC_2.2 wcswidth F
+GLIBC_2.2 wcsxfrm F
+GLIBC_2.2 wctob F
+GLIBC_2.2 wctomb F
+GLIBC_2.2 wctrans F
+GLIBC_2.2 wctype F
+GLIBC_2.2 wcwidth F
+GLIBC_2.2 wmemchr F
+GLIBC_2.2 wmemcmp F
+GLIBC_2.2 wmemcpy F
+GLIBC_2.2 wmemmove F
+GLIBC_2.2 wmempcpy F
+GLIBC_2.2 wmemset F
+GLIBC_2.2 wordexp F
+GLIBC_2.2 wordfree F
+GLIBC_2.2 wprintf F
+GLIBC_2.2 write F
+GLIBC_2.2 writev F
+GLIBC_2.2 wscanf F
+GLIBC_2.2 xdecrypt F
+GLIBC_2.2 xdr_accepted_reply F
+GLIBC_2.2 xdr_array F
+GLIBC_2.2 xdr_authdes_cred F
+GLIBC_2.2 xdr_authdes_verf F
+GLIBC_2.2 xdr_authunix_parms F
+GLIBC_2.2 xdr_bool F
+GLIBC_2.2 xdr_bytes F
+GLIBC_2.2 xdr_callhdr F
+GLIBC_2.2 xdr_callmsg F
+GLIBC_2.2 xdr_char F
+GLIBC_2.2 xdr_cryptkeyarg F
+GLIBC_2.2 xdr_cryptkeyarg2 F
+GLIBC_2.2 xdr_cryptkeyres F
+GLIBC_2.2 xdr_des_block F
+GLIBC_2.2 xdr_double F
+GLIBC_2.2 xdr_enum F
+GLIBC_2.2 xdr_float F
+GLIBC_2.2 xdr_free F
+GLIBC_2.2 xdr_getcredres F
+GLIBC_2.2 xdr_hyper F
+GLIBC_2.2 xdr_int F
+GLIBC_2.2 xdr_int16_t F
+GLIBC_2.2 xdr_int32_t F
+GLIBC_2.2 xdr_int64_t F
+GLIBC_2.2 xdr_int8_t F
+GLIBC_2.2 xdr_key_netstarg F
+GLIBC_2.2 xdr_key_netstres F
+GLIBC_2.2 xdr_keybuf F
+GLIBC_2.2 xdr_keystatus F
+GLIBC_2.2 xdr_long F
+GLIBC_2.2 xdr_longlong_t F
+GLIBC_2.2 xdr_netnamestr F
+GLIBC_2.2 xdr_netobj F
+GLIBC_2.2 xdr_opaque F
+GLIBC_2.2 xdr_opaque_auth F
+GLIBC_2.2 xdr_pmap F
+GLIBC_2.2 xdr_pmaplist F
+GLIBC_2.2 xdr_pointer F
+GLIBC_2.2 xdr_reference F
+GLIBC_2.2 xdr_rejected_reply F
+GLIBC_2.2 xdr_replymsg F
+GLIBC_2.2 xdr_rmtcall_args F
+GLIBC_2.2 xdr_rmtcallres F
+GLIBC_2.2 xdr_short F
+GLIBC_2.2 xdr_sizeof F
+GLIBC_2.2 xdr_string F
+GLIBC_2.2 xdr_u_char F
+GLIBC_2.2 xdr_u_hyper F
+GLIBC_2.2 xdr_u_int F
+GLIBC_2.2 xdr_u_long F
+GLIBC_2.2 xdr_u_longlong_t F
+GLIBC_2.2 xdr_u_short F
+GLIBC_2.2 xdr_uint16_t F
+GLIBC_2.2 xdr_uint32_t F
+GLIBC_2.2 xdr_uint64_t F
+GLIBC_2.2 xdr_uint8_t F
+GLIBC_2.2 xdr_union F
+GLIBC_2.2 xdr_unixcred F
+GLIBC_2.2 xdr_vector F
+GLIBC_2.2 xdr_void F
+GLIBC_2.2 xdr_wrapstring F
+GLIBC_2.2 xdrmem_create F
+GLIBC_2.2 xdrrec_create F
+GLIBC_2.2 xdrrec_endofrecord F
+GLIBC_2.2 xdrrec_eof F
+GLIBC_2.2 xdrrec_skiprecord F
+GLIBC_2.2 xdrstdio_create F
+GLIBC_2.2 xencrypt F
+GLIBC_2.2 xprt_register F
+GLIBC_2.2 xprt_unregister F
+GLIBC_2.2.1 GLIBC_2.2.1 A
+GLIBC_2.2.1 pivot_root F
+GLIBC_2.2.1 posix_openpt F
+GLIBC_2.2.2 GLIBC_2.2.2 A
+GLIBC_2.2.2 __nss_hostname_digits_dots F
+GLIBC_2.2.3 GLIBC_2.2.3 A
+GLIBC_2.2.3 __rpc_thread_createerr F
+GLIBC_2.2.3 __rpc_thread_svc_fdset F
+GLIBC_2.2.3 __rpc_thread_svc_max_pollfd F
+GLIBC_2.2.3 __rpc_thread_svc_pollfd F
+GLIBC_2.2.3 fnmatch F
+GLIBC_2.2.3 sprofil F
+GLIBC_2.2.4 GLIBC_2.2.4 A
+GLIBC_2.2.4 dl_iterate_phdr F
+GLIBC_2.2.4 getgrouplist F
+GLIBC_2.2.4 sockatmark F
+GLIBC_2.2.6 GLIBC_2.2.6 A
+GLIBC_2.2.6 __nanosleep F
+GLIBC_2.22 GLIBC_2.22 A
+GLIBC_2.22 fmemopen F
+GLIBC_2.23 GLIBC_2.23 A
+GLIBC_2.23 fts64_children F
+GLIBC_2.23 fts64_close F
+GLIBC_2.23 fts64_open F
+GLIBC_2.23 fts64_read F
+GLIBC_2.23 fts64_set F
+GLIBC_2.24 GLIBC_2.24 A
+GLIBC_2.24 quick_exit F
+GLIBC_2.25 GLIBC_2.25 A
+GLIBC_2.25 __explicit_bzero_chk F
+GLIBC_2.25 explicit_bzero F
+GLIBC_2.25 getentropy F
+GLIBC_2.25 getrandom F
+GLIBC_2.25 strfromd F
+GLIBC_2.25 strfromf F
+GLIBC_2.25 strfroml F
+GLIBC_2.26 GLIBC_2.26 A
+GLIBC_2.26 preadv2 F
+GLIBC_2.26 preadv64v2 F
+GLIBC_2.26 pwritev2 F
+GLIBC_2.26 pwritev64v2 F
+GLIBC_2.26 reallocarray F
+GLIBC_2.3 GLIBC_2.3 A
+GLIBC_2.3 __ctype_b_loc F
+GLIBC_2.3 __ctype_tolower_loc F
+GLIBC_2.3 __ctype_toupper_loc F
+GLIBC_2.3 __isctype F
+GLIBC_2.3 __strftime_l F
+GLIBC_2.3 __uselocale F
+GLIBC_2.3 __wcsftime_l F
+GLIBC_2.3 _sys_errlist D 0x3f0
+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 strtoul_l F
+GLIBC_2.3 strxfrm_l F
+GLIBC_2.3 sys_errlist D 0x3f0
+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 0x208
+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 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 strtoll_l F
+GLIBC_2.3.3 strtoull_l F
+GLIBC_2.3.3 sys_sigabbrev D 0x208
+GLIBC_2.3.3 sys_siglist D 0x208
+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 0x420
+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 0x420
+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 inotify_init1 F
+GLIBC_2.9 pipe2 F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/libcrypt.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/libcrypt.abilist
new file mode 100644
index 0000000000..f2854f3a0a
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/libcrypt.abilist
@@ -0,0 +1,8 @@
+GLIBC_2.2 GLIBC_2.2 A
+GLIBC_2.2 crypt F
+GLIBC_2.2 crypt_r F
+GLIBC_2.2 encrypt F
+GLIBC_2.2 encrypt_r F
+GLIBC_2.2 fcrypt F
+GLIBC_2.2 setkey F
+GLIBC_2.2 setkey_r F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/libdl.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/libdl.abilist
new file mode 100644
index 0000000000..98b031bc6d
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/libdl.abilist
@@ -0,0 +1,12 @@
+GLIBC_2.2 GLIBC_2.2 A
+GLIBC_2.2 dladdr F
+GLIBC_2.2 dlclose F
+GLIBC_2.2 dlerror F
+GLIBC_2.2 dlopen F
+GLIBC_2.2 dlsym F
+GLIBC_2.2 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-64/libm.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist
new file mode 100644
index 0000000000..b56701e350
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist
@@ -0,0 +1,563 @@
+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 _LIB_VERSION D 0x4
+GLIBC_2.2 __clog10 F
+GLIBC_2.2 __clog10f F
+GLIBC_2.2 __clog10l F
+GLIBC_2.2 __finite F
+GLIBC_2.2 __finitef F
+GLIBC_2.2 __finitel F
+GLIBC_2.2 __fpclassify F
+GLIBC_2.2 __fpclassifyf F
+GLIBC_2.2 __signbit F
+GLIBC_2.2 __signbitf F
+GLIBC_2.2 acos F
+GLIBC_2.2 acosf F
+GLIBC_2.2 acosh F
+GLIBC_2.2 acoshf F
+GLIBC_2.2 acoshl F
+GLIBC_2.2 acosl F
+GLIBC_2.2 asin F
+GLIBC_2.2 asinf F
+GLIBC_2.2 asinh F
+GLIBC_2.2 asinhf F
+GLIBC_2.2 asinhl F
+GLIBC_2.2 asinl F
+GLIBC_2.2 atan F
+GLIBC_2.2 atan2 F
+GLIBC_2.2 atan2f F
+GLIBC_2.2 atan2l F
+GLIBC_2.2 atanf F
+GLIBC_2.2 atanh F
+GLIBC_2.2 atanhf F
+GLIBC_2.2 atanhl F
+GLIBC_2.2 atanl F
+GLIBC_2.2 cabs F
+GLIBC_2.2 cabsf F
+GLIBC_2.2 cabsl F
+GLIBC_2.2 cacos F
+GLIBC_2.2 cacosf F
+GLIBC_2.2 cacosh F
+GLIBC_2.2 cacoshf F
+GLIBC_2.2 cacoshl F
+GLIBC_2.2 cacosl F
+GLIBC_2.2 carg F
+GLIBC_2.2 cargf F
+GLIBC_2.2 cargl F
+GLIBC_2.2 casin F
+GLIBC_2.2 casinf F
+GLIBC_2.2 casinh F
+GLIBC_2.2 casinhf F
+GLIBC_2.2 casinhl F
+GLIBC_2.2 casinl F
+GLIBC_2.2 catan F
+GLIBC_2.2 catanf F
+GLIBC_2.2 catanh F
+GLIBC_2.2 catanhf F
+GLIBC_2.2 catanhl F
+GLIBC_2.2 catanl F
+GLIBC_2.2 cbrt F
+GLIBC_2.2 cbrtf F
+GLIBC_2.2 cbrtl F
+GLIBC_2.2 ccos F
+GLIBC_2.2 ccosf F
+GLIBC_2.2 ccosh F
+GLIBC_2.2 ccoshf F
+GLIBC_2.2 ccoshl F
+GLIBC_2.2 ccosl F
+GLIBC_2.2 ceil F
+GLIBC_2.2 ceilf F
+GLIBC_2.2 ceill F
+GLIBC_2.2 cexp F
+GLIBC_2.2 cexpf F
+GLIBC_2.2 cexpl F
+GLIBC_2.2 cimag F
+GLIBC_2.2 cimagf F
+GLIBC_2.2 cimagl F
+GLIBC_2.2 clog F
+GLIBC_2.2 clog10 F
+GLIBC_2.2 clog10f F
+GLIBC_2.2 clog10l F
+GLIBC_2.2 clogf F
+GLIBC_2.2 clogl F
+GLIBC_2.2 conj F
+GLIBC_2.2 conjf F
+GLIBC_2.2 conjl F
+GLIBC_2.2 copysign F
+GLIBC_2.2 copysignf F
+GLIBC_2.2 copysignl F
+GLIBC_2.2 cos F
+GLIBC_2.2 cosf F
+GLIBC_2.2 cosh F
+GLIBC_2.2 coshf F
+GLIBC_2.2 coshl F
+GLIBC_2.2 cosl F
+GLIBC_2.2 cpow F
+GLIBC_2.2 cpowf F
+GLIBC_2.2 cpowl F
+GLIBC_2.2 cproj F
+GLIBC_2.2 cprojf F
+GLIBC_2.2 cprojl F
+GLIBC_2.2 creal F
+GLIBC_2.2 crealf F
+GLIBC_2.2 creall F
+GLIBC_2.2 csin F
+GLIBC_2.2 csinf F
+GLIBC_2.2 csinh F
+GLIBC_2.2 csinhf F
+GLIBC_2.2 csinhl F
+GLIBC_2.2 csinl F
+GLIBC_2.2 csqrt F
+GLIBC_2.2 csqrtf F
+GLIBC_2.2 csqrtl F
+GLIBC_2.2 ctan F
+GLIBC_2.2 ctanf F
+GLIBC_2.2 ctanh F
+GLIBC_2.2 ctanhf F
+GLIBC_2.2 ctanhl F
+GLIBC_2.2 ctanl F
+GLIBC_2.2 drem F
+GLIBC_2.2 dremf F
+GLIBC_2.2 dreml F
+GLIBC_2.2 erf F
+GLIBC_2.2 erfc F
+GLIBC_2.2 erfcf F
+GLIBC_2.2 erfcl F
+GLIBC_2.2 erff F
+GLIBC_2.2 erfl F
+GLIBC_2.2 exp F
+GLIBC_2.2 exp10 F
+GLIBC_2.2 exp10f F
+GLIBC_2.2 exp10l F
+GLIBC_2.2 exp2 F
+GLIBC_2.2 exp2f F
+GLIBC_2.2 expf F
+GLIBC_2.2 expl F
+GLIBC_2.2 expm1 F
+GLIBC_2.2 expm1f F
+GLIBC_2.2 expm1l F
+GLIBC_2.2 fabs F
+GLIBC_2.2 fabsf F
+GLIBC_2.2 fabsl F
+GLIBC_2.2 fdim F
+GLIBC_2.2 fdimf F
+GLIBC_2.2 fdiml F
+GLIBC_2.2 feclearexcept F
+GLIBC_2.2 fedisableexcept F
+GLIBC_2.2 feenableexcept F
+GLIBC_2.2 fegetenv F
+GLIBC_2.2 fegetexcept F
+GLIBC_2.2 fegetexceptflag F
+GLIBC_2.2 fegetround F
+GLIBC_2.2 feholdexcept F
+GLIBC_2.2 feraiseexcept F
+GLIBC_2.2 fesetenv F
+GLIBC_2.2 fesetexceptflag F
+GLIBC_2.2 fesetround F
+GLIBC_2.2 fetestexcept F
+GLIBC_2.2 feupdateenv F
+GLIBC_2.2 finite F
+GLIBC_2.2 finitef F
+GLIBC_2.2 finitel F
+GLIBC_2.2 floor F
+GLIBC_2.2 floorf F
+GLIBC_2.2 floorl F
+GLIBC_2.2 fma F
+GLIBC_2.2 fmaf F
+GLIBC_2.2 fmal F
+GLIBC_2.2 fmax F
+GLIBC_2.2 fmaxf F
+GLIBC_2.2 fmaxl F
+GLIBC_2.2 fmin F
+GLIBC_2.2 fminf F
+GLIBC_2.2 fminl F
+GLIBC_2.2 fmod F
+GLIBC_2.2 fmodf F
+GLIBC_2.2 fmodl F
+GLIBC_2.2 frexp F
+GLIBC_2.2 frexpf F
+GLIBC_2.2 frexpl F
+GLIBC_2.2 gamma F
+GLIBC_2.2 gammaf F
+GLIBC_2.2 gammal F
+GLIBC_2.2 hypot F
+GLIBC_2.2 hypotf F
+GLIBC_2.2 hypotl F
+GLIBC_2.2 ilogb F
+GLIBC_2.2 ilogbf F
+GLIBC_2.2 ilogbl F
+GLIBC_2.2 j0 F
+GLIBC_2.2 j0f F
+GLIBC_2.2 j0l F
+GLIBC_2.2 j1 F
+GLIBC_2.2 j1f F
+GLIBC_2.2 j1l F
+GLIBC_2.2 jn F
+GLIBC_2.2 jnf F
+GLIBC_2.2 jnl F
+GLIBC_2.2 ldexp F
+GLIBC_2.2 ldexpf F
+GLIBC_2.2 ldexpl F
+GLIBC_2.2 lgamma F
+GLIBC_2.2 lgamma_r F
+GLIBC_2.2 lgammaf F
+GLIBC_2.2 lgammaf_r F
+GLIBC_2.2 lgammal F
+GLIBC_2.2 lgammal_r F
+GLIBC_2.2 llrint F
+GLIBC_2.2 llrintf F
+GLIBC_2.2 llrintl F
+GLIBC_2.2 llround F
+GLIBC_2.2 llroundf F
+GLIBC_2.2 llroundl F
+GLIBC_2.2 log F
+GLIBC_2.2 log10 F
+GLIBC_2.2 log10f F
+GLIBC_2.2 log10l F
+GLIBC_2.2 log1p F
+GLIBC_2.2 log1pf F
+GLIBC_2.2 log1pl F
+GLIBC_2.2 log2 F
+GLIBC_2.2 log2f F
+GLIBC_2.2 log2l F
+GLIBC_2.2 logb F
+GLIBC_2.2 logbf F
+GLIBC_2.2 logbl F
+GLIBC_2.2 logf F
+GLIBC_2.2 logl F
+GLIBC_2.2 lrint F
+GLIBC_2.2 lrintf F
+GLIBC_2.2 lrintl F
+GLIBC_2.2 lround F
+GLIBC_2.2 lroundf F
+GLIBC_2.2 lroundl F
+GLIBC_2.2 matherr F
+GLIBC_2.2 modf F
+GLIBC_2.2 modff F
+GLIBC_2.2 modfl F
+GLIBC_2.2 nan F
+GLIBC_2.2 nanf F
+GLIBC_2.2 nanl F
+GLIBC_2.2 nearbyint F
+GLIBC_2.2 nearbyintf F
+GLIBC_2.2 nearbyintl F
+GLIBC_2.2 nextafter F
+GLIBC_2.2 nextafterf F
+GLIBC_2.2 nextafterl F
+GLIBC_2.2 nexttoward F
+GLIBC_2.2 nexttowardf F
+GLIBC_2.2 nexttowardl F
+GLIBC_2.2 pow F
+GLIBC_2.2 pow10 F
+GLIBC_2.2 pow10f F
+GLIBC_2.2 pow10l F
+GLIBC_2.2 powf F
+GLIBC_2.2 powl F
+GLIBC_2.2 remainder F
+GLIBC_2.2 remainderf F
+GLIBC_2.2 remainderl F
+GLIBC_2.2 remquo F
+GLIBC_2.2 remquof F
+GLIBC_2.2 remquol F
+GLIBC_2.2 rint F
+GLIBC_2.2 rintf F
+GLIBC_2.2 rintl F
+GLIBC_2.2 round F
+GLIBC_2.2 roundf F
+GLIBC_2.2 roundl F
+GLIBC_2.2 scalb F
+GLIBC_2.2 scalbf F
+GLIBC_2.2 scalbl F
+GLIBC_2.2 scalbln F
+GLIBC_2.2 scalblnf F
+GLIBC_2.2 scalblnl F
+GLIBC_2.2 scalbn F
+GLIBC_2.2 scalbnf F
+GLIBC_2.2 scalbnl F
+GLIBC_2.2 signgam D 0x4
+GLIBC_2.2 significand F
+GLIBC_2.2 significandf F
+GLIBC_2.2 significandl F
+GLIBC_2.2 sin F
+GLIBC_2.2 sincos F
+GLIBC_2.2 sincosf F
+GLIBC_2.2 sincosl F
+GLIBC_2.2 sinf F
+GLIBC_2.2 sinh F
+GLIBC_2.2 sinhf F
+GLIBC_2.2 sinhl F
+GLIBC_2.2 sinl F
+GLIBC_2.2 sqrt F
+GLIBC_2.2 sqrtf F
+GLIBC_2.2 sqrtl F
+GLIBC_2.2 tan F
+GLIBC_2.2 tanf F
+GLIBC_2.2 tanh F
+GLIBC_2.2 tanhf F
+GLIBC_2.2 tanhl F
+GLIBC_2.2 tanl F
+GLIBC_2.2 tgamma F
+GLIBC_2.2 tgammaf F
+GLIBC_2.2 tgammal F
+GLIBC_2.2 trunc F
+GLIBC_2.2 truncf F
+GLIBC_2.2 truncl F
+GLIBC_2.2 y0 F
+GLIBC_2.2 y0f F
+GLIBC_2.2 y0l F
+GLIBC_2.2 y1 F
+GLIBC_2.2 y1f F
+GLIBC_2.2 y1l F
+GLIBC_2.2 yn F
+GLIBC_2.2 ynf F
+GLIBC_2.2 ynl F
+GLIBC_2.23 GLIBC_2.23 A
+GLIBC_2.23 __signgam D 0x4
+GLIBC_2.23 lgamma F
+GLIBC_2.23 lgammaf F
+GLIBC_2.23 lgammal F
+GLIBC_2.24 GLIBC_2.24 A
+GLIBC_2.24 nextdown F
+GLIBC_2.24 nextdownf F
+GLIBC_2.24 nextdownl F
+GLIBC_2.24 nextup F
+GLIBC_2.24 nextupf F
+GLIBC_2.24 nextupl F
+GLIBC_2.25 GLIBC_2.25 A
+GLIBC_2.25 __iseqsig F
+GLIBC_2.25 __iseqsigf F
+GLIBC_2.25 __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-64/libnsl.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/libnsl.abilist
new file mode 100644
index 0000000000..ff0199f313
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/libnsl.abilist
@@ -0,0 +1,122 @@
+GLIBC_2.2 GLIBC_2.2 A
+GLIBC_2.2 __free_fdresult F
+GLIBC_2.2 __nis_default_access F
+GLIBC_2.2 __nis_default_group F
+GLIBC_2.2 __nis_default_owner F
+GLIBC_2.2 __nis_default_ttl F
+GLIBC_2.2 __nis_finddirectory F
+GLIBC_2.2 __nis_hash F
+GLIBC_2.2 __nisbind_connect F
+GLIBC_2.2 __nisbind_create F
+GLIBC_2.2 __nisbind_destroy F
+GLIBC_2.2 __nisbind_next F
+GLIBC_2.2 __yp_check F
+GLIBC_2.2 nis_add F
+GLIBC_2.2 nis_add_entry F
+GLIBC_2.2 nis_addmember F
+GLIBC_2.2 nis_checkpoint F
+GLIBC_2.2 nis_clone_directory F
+GLIBC_2.2 nis_clone_object F
+GLIBC_2.2 nis_clone_result F
+GLIBC_2.2 nis_creategroup F
+GLIBC_2.2 nis_destroy_object F
+GLIBC_2.2 nis_destroygroup F
+GLIBC_2.2 nis_dir_cmp F
+GLIBC_2.2 nis_domain_of F
+GLIBC_2.2 nis_domain_of_r F
+GLIBC_2.2 nis_first_entry F
+GLIBC_2.2 nis_free_directory F
+GLIBC_2.2 nis_free_object F
+GLIBC_2.2 nis_free_request F
+GLIBC_2.2 nis_freenames F
+GLIBC_2.2 nis_freeresult F
+GLIBC_2.2 nis_freeservlist F
+GLIBC_2.2 nis_freetags F
+GLIBC_2.2 nis_getnames F
+GLIBC_2.2 nis_getservlist F
+GLIBC_2.2 nis_ismember F
+GLIBC_2.2 nis_leaf_of F
+GLIBC_2.2 nis_leaf_of_r F
+GLIBC_2.2 nis_lerror F
+GLIBC_2.2 nis_list F
+GLIBC_2.2 nis_local_directory F
+GLIBC_2.2 nis_local_group F
+GLIBC_2.2 nis_local_host F
+GLIBC_2.2 nis_local_principal F
+GLIBC_2.2 nis_lookup F
+GLIBC_2.2 nis_mkdir F
+GLIBC_2.2 nis_modify F
+GLIBC_2.2 nis_modify_entry F
+GLIBC_2.2 nis_name_of F
+GLIBC_2.2 nis_name_of_r F
+GLIBC_2.2 nis_next_entry F
+GLIBC_2.2 nis_perror F
+GLIBC_2.2 nis_ping F
+GLIBC_2.2 nis_print_directory F
+GLIBC_2.2 nis_print_entry F
+GLIBC_2.2 nis_print_group F
+GLIBC_2.2 nis_print_group_entry F
+GLIBC_2.2 nis_print_link F
+GLIBC_2.2 nis_print_object F
+GLIBC_2.2 nis_print_result F
+GLIBC_2.2 nis_print_rights F
+GLIBC_2.2 nis_print_table F
+GLIBC_2.2 nis_read_obj F
+GLIBC_2.2 nis_remove F
+GLIBC_2.2 nis_remove_entry F
+GLIBC_2.2 nis_removemember F
+GLIBC_2.2 nis_rmdir F
+GLIBC_2.2 nis_servstate F
+GLIBC_2.2 nis_sperrno F
+GLIBC_2.2 nis_sperror F
+GLIBC_2.2 nis_sperror_r F
+GLIBC_2.2 nis_stats F
+GLIBC_2.2 nis_verifygroup F
+GLIBC_2.2 nis_write_obj F
+GLIBC_2.2 readColdStartFile F
+GLIBC_2.2 writeColdStartFile F
+GLIBC_2.2 xdr_cback_data F
+GLIBC_2.2 xdr_domainname F
+GLIBC_2.2 xdr_keydat F
+GLIBC_2.2 xdr_mapname F
+GLIBC_2.2 xdr_obj_p F
+GLIBC_2.2 xdr_peername F
+GLIBC_2.2 xdr_valdat F
+GLIBC_2.2 xdr_yp_buf F
+GLIBC_2.2 xdr_ypall F
+GLIBC_2.2 xdr_ypbind_binding F
+GLIBC_2.2 xdr_ypbind_resp F
+GLIBC_2.2 xdr_ypbind_resptype F
+GLIBC_2.2 xdr_ypbind_setdom F
+GLIBC_2.2 xdr_ypdelete_args F
+GLIBC_2.2 xdr_ypmap_parms F
+GLIBC_2.2 xdr_ypmaplist F
+GLIBC_2.2 xdr_yppush_status F
+GLIBC_2.2 xdr_yppushresp_xfr F
+GLIBC_2.2 xdr_ypreq_key F
+GLIBC_2.2 xdr_ypreq_nokey F
+GLIBC_2.2 xdr_ypreq_xfr F
+GLIBC_2.2 xdr_ypresp_all F
+GLIBC_2.2 xdr_ypresp_key_val F
+GLIBC_2.2 xdr_ypresp_maplist F
+GLIBC_2.2 xdr_ypresp_master F
+GLIBC_2.2 xdr_ypresp_order F
+GLIBC_2.2 xdr_ypresp_val F
+GLIBC_2.2 xdr_ypresp_xfr F
+GLIBC_2.2 xdr_ypstat F
+GLIBC_2.2 xdr_ypupdate_args F
+GLIBC_2.2 xdr_ypxfrstat F
+GLIBC_2.2 yp_all F
+GLIBC_2.2 yp_bind F
+GLIBC_2.2 yp_first F
+GLIBC_2.2 yp_get_default_domain F
+GLIBC_2.2 yp_maplist F
+GLIBC_2.2 yp_master F
+GLIBC_2.2 yp_match F
+GLIBC_2.2 yp_next F
+GLIBC_2.2 yp_order F
+GLIBC_2.2 yp_unbind F
+GLIBC_2.2 yp_update F
+GLIBC_2.2 ypbinderr_string F
+GLIBC_2.2 yperr_string F
+GLIBC_2.2 ypprot_err F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
new file mode 100644
index 0000000000..83a1fcd239
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
@@ -0,0 +1,248 @@
+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 _IO_flockfile F
+GLIBC_2.2 _IO_ftrylockfile F
+GLIBC_2.2 _IO_funlockfile F
+GLIBC_2.2 __close F
+GLIBC_2.2 __connect F
+GLIBC_2.2 __errno_location F
+GLIBC_2.2 __fcntl F
+GLIBC_2.2 __fork F
+GLIBC_2.2 __h_errno_location F
+GLIBC_2.2 __libc_allocate_rtsig F
+GLIBC_2.2 __libc_current_sigrtmax F
+GLIBC_2.2 __libc_current_sigrtmin F
+GLIBC_2.2 __lseek F
+GLIBC_2.2 __open F
+GLIBC_2.2 __open64 F
+GLIBC_2.2 __pread64 F
+GLIBC_2.2 __pthread_getspecific F
+GLIBC_2.2 __pthread_key_create F
+GLIBC_2.2 __pthread_mutex_destroy F
+GLIBC_2.2 __pthread_mutex_init F
+GLIBC_2.2 __pthread_mutex_lock F
+GLIBC_2.2 __pthread_mutex_trylock F
+GLIBC_2.2 __pthread_mutex_unlock F
+GLIBC_2.2 __pthread_mutexattr_destroy F
+GLIBC_2.2 __pthread_mutexattr_init F
+GLIBC_2.2 __pthread_mutexattr_settype F
+GLIBC_2.2 __pthread_once F
+GLIBC_2.2 __pthread_rwlock_destroy F
+GLIBC_2.2 __pthread_rwlock_init F
+GLIBC_2.2 __pthread_rwlock_rdlock F
+GLIBC_2.2 __pthread_rwlock_tryrdlock F
+GLIBC_2.2 __pthread_rwlock_trywrlock F
+GLIBC_2.2 __pthread_rwlock_unlock F
+GLIBC_2.2 __pthread_rwlock_wrlock F
+GLIBC_2.2 __pthread_setspecific F
+GLIBC_2.2 __pwrite64 F
+GLIBC_2.2 __read F
+GLIBC_2.2 __res_state F
+GLIBC_2.2 __send F
+GLIBC_2.2 __sigaction F
+GLIBC_2.2 __vfork F
+GLIBC_2.2 __wait F
+GLIBC_2.2 __write F
+GLIBC_2.2 _pthread_cleanup_pop F
+GLIBC_2.2 _pthread_cleanup_pop_restore F
+GLIBC_2.2 _pthread_cleanup_push F
+GLIBC_2.2 _pthread_cleanup_push_defer F
+GLIBC_2.2 accept F
+GLIBC_2.2 close F
+GLIBC_2.2 connect F
+GLIBC_2.2 fcntl F
+GLIBC_2.2 flockfile F
+GLIBC_2.2 fork F
+GLIBC_2.2 fsync F
+GLIBC_2.2 ftrylockfile F
+GLIBC_2.2 funlockfile F
+GLIBC_2.2 longjmp F
+GLIBC_2.2 lseek F
+GLIBC_2.2 lseek64 F
+GLIBC_2.2 msync F
+GLIBC_2.2 nanosleep F
+GLIBC_2.2 open F
+GLIBC_2.2 open64 F
+GLIBC_2.2 pause F
+GLIBC_2.2 pread F
+GLIBC_2.2 pread64 F
+GLIBC_2.2 pthread_atfork F
+GLIBC_2.2 pthread_attr_destroy F
+GLIBC_2.2 pthread_attr_getdetachstate F
+GLIBC_2.2 pthread_attr_getguardsize F
+GLIBC_2.2 pthread_attr_getinheritsched F
+GLIBC_2.2 pthread_attr_getschedparam F
+GLIBC_2.2 pthread_attr_getschedpolicy F
+GLIBC_2.2 pthread_attr_getscope F
+GLIBC_2.2 pthread_attr_getstack F
+GLIBC_2.2 pthread_attr_getstackaddr F
+GLIBC_2.2 pthread_attr_getstacksize F
+GLIBC_2.2 pthread_attr_init F
+GLIBC_2.2 pthread_attr_setdetachstate F
+GLIBC_2.2 pthread_attr_setguardsize F
+GLIBC_2.2 pthread_attr_setinheritsched F
+GLIBC_2.2 pthread_attr_setschedparam F
+GLIBC_2.2 pthread_attr_setschedpolicy F
+GLIBC_2.2 pthread_attr_setscope F
+GLIBC_2.2 pthread_attr_setstack F
+GLIBC_2.2 pthread_attr_setstackaddr F
+GLIBC_2.2 pthread_attr_setstacksize F
+GLIBC_2.2 pthread_barrier_destroy F
+GLIBC_2.2 pthread_barrier_init F
+GLIBC_2.2 pthread_barrier_wait F
+GLIBC_2.2 pthread_barrierattr_destroy F
+GLIBC_2.2 pthread_barrierattr_init F
+GLIBC_2.2 pthread_barrierattr_setpshared F
+GLIBC_2.2 pthread_cancel F
+GLIBC_2.2 pthread_cond_broadcast F
+GLIBC_2.2 pthread_cond_destroy F
+GLIBC_2.2 pthread_cond_init F
+GLIBC_2.2 pthread_cond_signal F
+GLIBC_2.2 pthread_cond_timedwait F
+GLIBC_2.2 pthread_cond_wait F
+GLIBC_2.2 pthread_condattr_destroy F
+GLIBC_2.2 pthread_condattr_getpshared F
+GLIBC_2.2 pthread_condattr_init F
+GLIBC_2.2 pthread_condattr_setpshared F
+GLIBC_2.2 pthread_create F
+GLIBC_2.2 pthread_detach F
+GLIBC_2.2 pthread_equal F
+GLIBC_2.2 pthread_exit F
+GLIBC_2.2 pthread_getconcurrency F
+GLIBC_2.2 pthread_getcpuclockid F
+GLIBC_2.2 pthread_getschedparam F
+GLIBC_2.2 pthread_getspecific F
+GLIBC_2.2 pthread_join F
+GLIBC_2.2 pthread_key_create F
+GLIBC_2.2 pthread_key_delete F
+GLIBC_2.2 pthread_kill F
+GLIBC_2.2 pthread_kill_other_threads_np F
+GLIBC_2.2 pthread_mutex_destroy F
+GLIBC_2.2 pthread_mutex_init F
+GLIBC_2.2 pthread_mutex_lock F
+GLIBC_2.2 pthread_mutex_timedlock F
+GLIBC_2.2 pthread_mutex_trylock F
+GLIBC_2.2 pthread_mutex_unlock F
+GLIBC_2.2 pthread_mutexattr_destroy F
+GLIBC_2.2 pthread_mutexattr_getkind_np F
+GLIBC_2.2 pthread_mutexattr_getpshared F
+GLIBC_2.2 pthread_mutexattr_gettype F
+GLIBC_2.2 pthread_mutexattr_init F
+GLIBC_2.2 pthread_mutexattr_setkind_np F
+GLIBC_2.2 pthread_mutexattr_setpshared F
+GLIBC_2.2 pthread_mutexattr_settype F
+GLIBC_2.2 pthread_once F
+GLIBC_2.2 pthread_rwlock_destroy F
+GLIBC_2.2 pthread_rwlock_init F
+GLIBC_2.2 pthread_rwlock_rdlock F
+GLIBC_2.2 pthread_rwlock_timedrdlock F
+GLIBC_2.2 pthread_rwlock_timedwrlock F
+GLIBC_2.2 pthread_rwlock_tryrdlock F
+GLIBC_2.2 pthread_rwlock_trywrlock F
+GLIBC_2.2 pthread_rwlock_unlock F
+GLIBC_2.2 pthread_rwlock_wrlock F
+GLIBC_2.2 pthread_rwlockattr_destroy F
+GLIBC_2.2 pthread_rwlockattr_getkind_np F
+GLIBC_2.2 pthread_rwlockattr_getpshared F
+GLIBC_2.2 pthread_rwlockattr_init F
+GLIBC_2.2 pthread_rwlockattr_setkind_np F
+GLIBC_2.2 pthread_rwlockattr_setpshared F
+GLIBC_2.2 pthread_self F
+GLIBC_2.2 pthread_setcancelstate F
+GLIBC_2.2 pthread_setcanceltype F
+GLIBC_2.2 pthread_setconcurrency F
+GLIBC_2.2 pthread_setschedparam F
+GLIBC_2.2 pthread_setspecific F
+GLIBC_2.2 pthread_sigmask F
+GLIBC_2.2 pthread_spin_destroy F
+GLIBC_2.2 pthread_spin_init F
+GLIBC_2.2 pthread_spin_lock F
+GLIBC_2.2 pthread_spin_trylock F
+GLIBC_2.2 pthread_spin_unlock F
+GLIBC_2.2 pthread_testcancel F
+GLIBC_2.2 pthread_yield F
+GLIBC_2.2 pwrite F
+GLIBC_2.2 pwrite64 F
+GLIBC_2.2 raise F
+GLIBC_2.2 read F
+GLIBC_2.2 recv F
+GLIBC_2.2 recvfrom F
+GLIBC_2.2 recvmsg F
+GLIBC_2.2 sem_close F
+GLIBC_2.2 sem_destroy F
+GLIBC_2.2 sem_getvalue F
+GLIBC_2.2 sem_init F
+GLIBC_2.2 sem_open F
+GLIBC_2.2 sem_post F
+GLIBC_2.2 sem_timedwait F
+GLIBC_2.2 sem_trywait F
+GLIBC_2.2 sem_unlink F
+GLIBC_2.2 sem_wait F
+GLIBC_2.2 send F
+GLIBC_2.2 sendmsg F
+GLIBC_2.2 sendto F
+GLIBC_2.2 sigaction F
+GLIBC_2.2 siglongjmp F
+GLIBC_2.2 sigwait F
+GLIBC_2.2 system F
+GLIBC_2.2 tcdrain F
+GLIBC_2.2 vfork F
+GLIBC_2.2 wait F
+GLIBC_2.2 waitpid F
+GLIBC_2.2 write F
+GLIBC_2.2.3 GLIBC_2.2.3 A
+GLIBC_2.2.3 pthread_getattr_np F
+GLIBC_2.2.6 GLIBC_2.2.6 A
+GLIBC_2.2.6 __nanosleep F
+GLIBC_2.3.2 GLIBC_2.3.2 A
+GLIBC_2.3.2 pthread_cond_broadcast F
+GLIBC_2.3.2 pthread_cond_destroy F
+GLIBC_2.3.2 pthread_cond_init F
+GLIBC_2.3.2 pthread_cond_signal F
+GLIBC_2.3.2 pthread_cond_timedwait F
+GLIBC_2.3.2 pthread_cond_wait F
+GLIBC_2.3.3 GLIBC_2.3.3 A
+GLIBC_2.3.3 __pthread_cleanup_routine F
+GLIBC_2.3.3 __pthread_register_cancel F
+GLIBC_2.3.3 __pthread_register_cancel_defer F
+GLIBC_2.3.3 __pthread_unregister_cancel F
+GLIBC_2.3.3 __pthread_unregister_cancel_restore F
+GLIBC_2.3.3 __pthread_unwind_next F
+GLIBC_2.3.3 pthread_attr_getaffinity_np F
+GLIBC_2.3.3 pthread_attr_setaffinity_np F
+GLIBC_2.3.3 pthread_barrierattr_getpshared F
+GLIBC_2.3.3 pthread_condattr_getclock F
+GLIBC_2.3.3 pthread_condattr_setclock F
+GLIBC_2.3.3 pthread_getaffinity_np F
+GLIBC_2.3.3 pthread_setaffinity_np F
+GLIBC_2.3.3 pthread_timedjoin_np F
+GLIBC_2.3.3 pthread_tryjoin_np F
+GLIBC_2.3.4 GLIBC_2.3.4 A
+GLIBC_2.3.4 pthread_attr_getaffinity_np F
+GLIBC_2.3.4 pthread_attr_setaffinity_np F
+GLIBC_2.3.4 pthread_getaffinity_np F
+GLIBC_2.3.4 pthread_setaffinity_np F
+GLIBC_2.3.4 pthread_setschedprio F
+GLIBC_2.4 GLIBC_2.4 A
+GLIBC_2.4 pthread_mutex_consistent_np F
+GLIBC_2.4 pthread_mutex_getprioceiling F
+GLIBC_2.4 pthread_mutex_setprioceiling F
+GLIBC_2.4 pthread_mutexattr_getprioceiling F
+GLIBC_2.4 pthread_mutexattr_getprotocol F
+GLIBC_2.4 pthread_mutexattr_getrobust_np F
+GLIBC_2.4 pthread_mutexattr_setprioceiling F
+GLIBC_2.4 pthread_mutexattr_setprotocol F
+GLIBC_2.4 pthread_mutexattr_setrobust_np F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/libresolv.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/libresolv.abilist
new file mode 100644
index 0000000000..3cb1405aed
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/libresolv.abilist
@@ -0,0 +1,94 @@
+GLIBC_2.2 GLIBC_2.2 A
+GLIBC_2.2 __b64_ntop F
+GLIBC_2.2 __b64_pton F
+GLIBC_2.2 __dn_comp F
+GLIBC_2.2 __dn_count_labels F
+GLIBC_2.2 __dn_expand F
+GLIBC_2.2 __dn_skipname F
+GLIBC_2.2 __fp_nquery F
+GLIBC_2.2 __fp_query F
+GLIBC_2.2 __fp_resstat F
+GLIBC_2.2 __hostalias F
+GLIBC_2.2 __loc_aton F
+GLIBC_2.2 __loc_ntoa F
+GLIBC_2.2 __p_cdname F
+GLIBC_2.2 __p_cdnname F
+GLIBC_2.2 __p_class F
+GLIBC_2.2 __p_class_syms D 0xa8
+GLIBC_2.2 __p_fqname F
+GLIBC_2.2 __p_fqnname F
+GLIBC_2.2 __p_option F
+GLIBC_2.2 __p_query F
+GLIBC_2.2 __p_secstodate F
+GLIBC_2.2 __p_time F
+GLIBC_2.2 __p_type F
+GLIBC_2.2 __p_type_syms D 0x450
+GLIBC_2.2 __putlong F
+GLIBC_2.2 __putshort F
+GLIBC_2.2 __res_close F
+GLIBC_2.2 __res_dnok F
+GLIBC_2.2 __res_hnok F
+GLIBC_2.2 __res_hostalias F
+GLIBC_2.2 __res_isourserver F
+GLIBC_2.2 __res_mailok F
+GLIBC_2.2 __res_mkquery F
+GLIBC_2.2 __res_nameinquery 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_ownok F
+GLIBC_2.2 __res_queriesmatch F
+GLIBC_2.2 __res_query F
+GLIBC_2.2 __res_querydomain F
+GLIBC_2.2 __res_search F
+GLIBC_2.2 __res_send F
+GLIBC_2.2 __sym_ntop F
+GLIBC_2.2 __sym_ntos F
+GLIBC_2.2 __sym_ston F
+GLIBC_2.2 _gethtbyaddr F
+GLIBC_2.2 _gethtbyname F
+GLIBC_2.2 _gethtbyname2 F
+GLIBC_2.2 _gethtent F
+GLIBC_2.2 _getlong F
+GLIBC_2.2 _getshort F
+GLIBC_2.2 _res_opcodes D 0x80
+GLIBC_2.2 _sethtent F
+GLIBC_2.2 inet_net_ntop F
+GLIBC_2.2 inet_net_pton F
+GLIBC_2.2 inet_neta F
+GLIBC_2.2 res_gethostbyaddr F
+GLIBC_2.2 res_gethostbyname F
+GLIBC_2.2 res_gethostbyname2 F
+GLIBC_2.2 res_send_setqhook F
+GLIBC_2.2 res_send_setrhook 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-64/librt.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist
new file mode 100644
index 0000000000..41c442bf60
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist
@@ -0,0 +1,52 @@
+GLIBC_2.2 GLIBC_2.2 A
+GLIBC_2.2 aio_cancel F
+GLIBC_2.2 aio_cancel64 F
+GLIBC_2.2 aio_error F
+GLIBC_2.2 aio_error64 F
+GLIBC_2.2 aio_fsync F
+GLIBC_2.2 aio_fsync64 F
+GLIBC_2.2 aio_init F
+GLIBC_2.2 aio_read F
+GLIBC_2.2 aio_read64 F
+GLIBC_2.2 aio_return F
+GLIBC_2.2 aio_return64 F
+GLIBC_2.2 aio_suspend F
+GLIBC_2.2 aio_suspend64 F
+GLIBC_2.2 aio_write F
+GLIBC_2.2 aio_write64 F
+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 lio_listio F
+GLIBC_2.2 lio_listio64 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.3 GLIBC_2.3.3 A
+GLIBC_2.3.3 timer_create F
+GLIBC_2.3.3 timer_delete F
+GLIBC_2.3.3 timer_getoverrun F
+GLIBC_2.3.3 timer_gettime F
+GLIBC_2.3.3 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-64/libthread_db.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/libthread_db.abilist
new file mode 100644
index 0000000000..228bbc9de8
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/libthread_db.abilist
@@ -0,0 +1,44 @@
+GLIBC_2.2 GLIBC_2.2 A
+GLIBC_2.2 td_init F
+GLIBC_2.2 td_log F
+GLIBC_2.2 td_ta_clear_event F
+GLIBC_2.2 td_ta_delete F
+GLIBC_2.2 td_ta_enable_stats F
+GLIBC_2.2 td_ta_event_addr F
+GLIBC_2.2 td_ta_event_getmsg F
+GLIBC_2.2 td_ta_get_nthreads F
+GLIBC_2.2 td_ta_get_ph F
+GLIBC_2.2 td_ta_get_stats F
+GLIBC_2.2 td_ta_map_id2thr F
+GLIBC_2.2 td_ta_map_lwp2thr F
+GLIBC_2.2 td_ta_new F
+GLIBC_2.2 td_ta_reset_stats F
+GLIBC_2.2 td_ta_set_event F
+GLIBC_2.2 td_ta_setconcurrency F
+GLIBC_2.2 td_ta_thr_iter F
+GLIBC_2.2 td_ta_tsd_iter F
+GLIBC_2.2 td_thr_clear_event F
+GLIBC_2.2 td_thr_dbresume F
+GLIBC_2.2 td_thr_dbsuspend F
+GLIBC_2.2 td_thr_event_enable F
+GLIBC_2.2 td_thr_event_getmsg F
+GLIBC_2.2 td_thr_get_info F
+GLIBC_2.2 td_thr_getfpregs F
+GLIBC_2.2 td_thr_getgregs F
+GLIBC_2.2 td_thr_getxregs F
+GLIBC_2.2 td_thr_getxregsize F
+GLIBC_2.2 td_thr_set_event F
+GLIBC_2.2 td_thr_setfpregs F
+GLIBC_2.2 td_thr_setgregs F
+GLIBC_2.2 td_thr_setprio F
+GLIBC_2.2 td_thr_setsigpending F
+GLIBC_2.2 td_thr_setxregs F
+GLIBC_2.2 td_thr_sigsetmask F
+GLIBC_2.2 td_thr_tsd F
+GLIBC_2.2 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-64/libutil.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/libutil.abilist
new file mode 100644
index 0000000000..cff37bb42e
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/libutil.abilist
@@ -0,0 +1,7 @@
+GLIBC_2.2 GLIBC_2.2 A
+GLIBC_2.2 forkpty F
+GLIBC_2.2 login F
+GLIBC_2.2 login_tty F
+GLIBC_2.2 logout F
+GLIBC_2.2 logwtmp F
+GLIBC_2.2 openpty F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/makecontext.c b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/makecontext.c
new file mode 100644
index 0000000000..01ba5255f6
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/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 -> +-----------------------+
+ 8 | back chain (zero) | 0
+ 8 | reserved | 8
+ 144 | save area for (*func) | 16
+ +-----------------------+
+ n | overflow parameters | 160
+ +-----------------------+
+ 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
+ lgr %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 -= 20;
+ *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-64/profil-counter.h b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/profil-counter.h
new file mode 100644
index 0000000000..29a1731abb
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/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 *) GET_PC (scp));
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/register-dump.h b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/register-dump.h
new file mode 100644
index 0000000000..1b7bbeb7b2
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/register-dump.h
@@ -0,0 +1,132 @@
+/* Dump registers. 64 bit S/390 version.
+ Copyright (C) 2001-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: XXXXXXXXXXXXXXXX GPR1: XXXXXXXXXXXXXXXX
+ GPR2: XXXXXXXXXXXXXXXX GPR3: XXXXXXXXXXXXXXXX
+ GPR4: XXXXXXXXXXXXXXXX GPR5: XXXXXXXXXXXXXXXX
+ GPR6: XXXXXXXXXXXXXXXX GPR7: XXXXXXXXXXXXXXXX
+ GPR8: XXXXXXXXXXXXXXXX GPR9: XXXXXXXXXXXXXXXX
+ GPRA: XXXXXXXXXXXXXXXX GPRB: XXXXXXXXXXXXXXXX
+ GPRC: XXXXXXXXXXXXXXXX GPRD: XXXXXXXXXXXXXXXX
+ GPRE: XXXXXXXXXXXXXXXX GPRF: XXXXXXXXXXXXXXXX
+
+ PSW.MASK: XXXXXXXXXXXXXXXX PSW.ADDR: XXXXXXXXXXXXXXXX
+
+ 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][16];
+ 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], 16);
+ hexvalue (ctx->sregs->regs.gprs[1], regs[1], 16);
+ hexvalue (ctx->sregs->regs.gprs[2], regs[2], 16);
+ hexvalue (ctx->sregs->regs.gprs[3], regs[3], 16);
+ hexvalue (ctx->sregs->regs.gprs[4], regs[4], 16);
+ hexvalue (ctx->sregs->regs.gprs[5], regs[5], 16);
+ hexvalue (ctx->sregs->regs.gprs[6], regs[6], 16);
+ hexvalue (ctx->sregs->regs.gprs[7], regs[7], 16);
+ hexvalue (ctx->sregs->regs.gprs[8], regs[8], 16);
+ hexvalue (ctx->sregs->regs.gprs[9], regs[9], 16);
+ hexvalue (ctx->sregs->regs.gprs[10], regs[10], 16);
+ hexvalue (ctx->sregs->regs.gprs[11], regs[11], 16);
+ hexvalue (ctx->sregs->regs.gprs[12], regs[12], 16);
+ hexvalue (ctx->sregs->regs.gprs[13], regs[13], 16);
+ hexvalue (ctx->sregs->regs.gprs[14], regs[14], 16);
+ hexvalue (ctx->sregs->regs.gprs[15], regs[15], 16);
+ hexvalue (ctx->sregs->regs.psw.mask, regs[16], 16);
+ hexvalue (ctx->sregs->regs.psw.addr, regs[17], 16);
+
+ /* Generate the output. */
+ ADD_STRING ("Register dump:\n\n GPR0: ");
+ ADD_MEM (regs[0], 16);
+ ADD_STRING (" GPR1: ");
+ ADD_MEM (regs[1], 16);
+ ADD_STRING (" GPR2: ");
+ ADD_MEM (regs[2], 16);
+ ADD_STRING (" GPR3: ");
+ ADD_MEM (regs[3], 16);
+ ADD_STRING ("\n GPR4: ");
+ ADD_MEM (regs[4], 16);
+ ADD_STRING (" GPR5: ");
+ ADD_MEM (regs[5], 16);
+ ADD_STRING (" GPR6: ");
+ ADD_MEM (regs[6], 16);
+ ADD_STRING (" GPR7: ");
+ ADD_MEM (regs[7], 16);
+ ADD_STRING ("\n GPR8: ");
+ ADD_MEM (regs[8], 16);
+ ADD_STRING (" GPR9: ");
+ ADD_MEM (regs[9], 16);
+ ADD_STRING (" GPRA: ");
+ ADD_MEM (regs[10], 16);
+ ADD_STRING (" GPRB: ");
+ ADD_MEM (regs[11], 16);
+ ADD_STRING ("\n GPRC: ");
+ ADD_MEM (regs[12], 16);
+ ADD_STRING (" GPRD: ");
+ ADD_MEM (regs[13], 16);
+ ADD_STRING (" GPRE: ");
+ ADD_MEM (regs[14], 16);
+ ADD_STRING (" GPRF: ");
+ ADD_MEM (regs[15], 16);
+ ADD_STRING ("\n\n PSW.MASK: ");
+ ADD_MEM (regs[16], 16);
+ ADD_STRING (" PSW.ADDR: ");
+ ADD_MEM (regs[17], 16);
+ 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-64/setcontext.S b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/setcontext.S
new file mode 100644
index 0000000000..f96ee2dc85
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/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)
+ lgr %r1,%r2
+
+ /* sigprocmask (SIG_SETMASK, &sc->sc_mask, NULL). */
+ la %r2,SIG_SETMASK
+ la %r3,SC_MASK(%r1)
+ slgr %r4,%r4
+ lghi %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 and %a1, used for thread purposes. */
+ lam %a2,%a15,SC_ACRS+8(%r1)
+
+ /* Load general purpose registers. */
+ lmg %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-64/shlib-versions b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/shlib-versions
new file mode 100644
index 0000000000..669a0c9869
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/shlib-versions
@@ -0,0 +1,2 @@
+DEFAULT GLIBC_2.2
+ld=ld64.so.1
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/sigaction.c b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/sigaction.c
new file mode 100644
index 0000000000..a3de0ead69
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/sigaction.c
@@ -0,0 +1,43 @@
+/* Copyright (C) 2001-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+/* 64 bit Linux for S/390 only has rt signals, thus we do not even want to try
+ falling back to the old style signals as the default Linux handler does. */
+
+#include <errno.h>
+#include <signal.h>
+#include <string.h>
+
+#include <sysdep.h>
+#include <sys/syscall.h>
+
+/* The variable is shared between all wrappers around signal handling
+ functions which have RT equivalents. This is the definition. */
+
+
+/* If ACT is not NULL, change the action for SIG to *ACT.
+ If OACT is not NULL, put the old action for SIG in *OACT. */
+int
+__libc_sigaction (int sig, const struct sigaction *act, struct sigaction *oact)
+{
+ /* XXX The size argument hopefully will have to be changed to the
+ real size of the user-level sigset_t. */
+ return INLINE_SYSCALL (rt_sigaction, 4, sig, act, oact, _NSIG / 8);
+}
+libc_hidden_def (__libc_sigaction)
+
+#include <nptl/sigaction.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/sigpending.c b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/sigpending.c
new file mode 100644
index 0000000000..daf8cfd1b8
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/sigpending.c
@@ -0,0 +1,36 @@
+/* Copyright (C) 2001-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+/* 64 bit Linux for S/390 only has rt signals, thus we do not even want to try
+ falling back to the old style signals as the default Linux handler does. */
+
+#include <errno.h>
+#include <signal.h>
+#include <unistd.h>
+
+#include <sysdep.h>
+#include <sys/syscall.h>
+
+/* Change the set of blocked signals to SET,
+ wait until a signal arrives, and restore the set of blocked signals. */
+int
+sigpending (sigset_t *set)
+{
+ /* XXX The size argument hopefully will have to be changed to the
+ real size of the user-level sigset_t. */
+ return INLINE_SYSCALL (rt_sigpending, 2, set, _NSIG / 8);
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/sigprocmask.c b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/sigprocmask.c
new file mode 100644
index 0000000000..4cbbc8e133
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/sigprocmask.c
@@ -0,0 +1,37 @@
+/* Copyright (C) 2001-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+/* 64 bit Linux for S/390 only has rt signals, thus we do not even want to try
+ falling back to the old style signals as the default Linux handler does. */
+
+#include <errno.h>
+#include <signal.h>
+#include <unistd.h>
+
+#include <sysdep.h>
+#include <sys/syscall.h>
+
+/* Get and/or change the set of blocked signals. */
+int
+__sigprocmask (int how, const sigset_t *set, sigset_t *oset)
+{
+
+ /* XXX The size argument hopefully will have to be changed to the
+ real size of the user-level sigset_t. */
+ return INLINE_SYSCALL (rt_sigprocmask, 4, how, set, oset, _NSIG / 8);
+}
+weak_alias (__sigprocmask, sigprocmask)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/swapcontext.S b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/swapcontext.S
new file mode 100644
index 0000000000..e033ec1672
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/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. */
+ lgr %r1,%r2
+ lgr %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. */
+ slgr %r2,%r2
+
+ /* Store access registers. */
+ stam %a0,%a15,SC_ACRS(%r1)
+
+ /* Store general purpose registers. */
+ stmg %r0,%r15,SC_GPRS(%r1)
+
+ /* rt_sigprocmask (SIG_SETMASK, &ucp->uc_sigmask, &oucp->uc_sigmask,
+ sigsetsize). */
+ la %r2,SIG_SETMASK
+ lgr %r5,%r0
+ la %r3,SC_MASK(%r5)
+ la %r4,SC_MASK(%r1)
+ lghi %r5,_NSIG8
+ svc SYS_ify(rt_sigprocmask)
+
+ /* Load fpu context. */
+ lgr %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 and %a1, used for thread purposes. */
+ lam %a2,%a15,SC_ACRS+8(%r5)
+
+ /* Load general purpose registers. */
+ lmg %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-64/syscall.S b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/syscall.S
new file mode 100644
index 0000000000..24c47cb75a
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/syscall.S
@@ -0,0 +1,68 @@
+/* Copyright (C) 2001-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. */
+ stmg %r6,%r15,48(%r15) /* Save registers. */
+ cfi_offset (%r15,-40)
+ cfi_offset (%r14,-48)
+ cfi_offset (%r13,-56)
+ cfi_offset (%r12,-64)
+ cfi_offset (%r11,-72)
+ cfi_offset (%r10,-80)
+ cfi_offset (%r9,-88)
+ cfi_offset (%r8,-96)
+ cfi_offset (%r7,-104)
+ cfi_offset (%r6,-112)
+ lgr %r1,%r15
+ lg %r0,8(%r15) /* Load eos. */
+ aghi %r15,-160 /* Buy stack space. */
+ cfi_adjust_cfa_offset (160)
+ stg %r1,0(%r15) /* Store back chain. */
+ stg %r0,8(%r15) /* Store eos. */
+
+ lgr %r1,%r2 /* Move syscall number. */
+ lgr %r2,%r3 /* First parameter. */
+ lgr %r3,%r4 /* Second parameter. */
+ lgr %r4,%r5 /* Third parameter. */
+ lgr %r5,%r6 /* Fourth parameter. */
+ lg %r6,320(%r15) /* Fifth parameter. */
+ lg %r7,328(%r15) /* Sixth parameter. */
+
+ basr %r8,0
+0: clg %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: lg %r15,0(%r15) /* load back chain */
+ cfi_adjust_cfa_offset (-160)
+ lmg %r6,15,48(%r15) /* Load registers. */
+
+ lghi %r0,-4095
+ clgr %r2,%r0 /* Check R2 for error. */
+ jgnl SYSCALL_ERROR_LABEL
+ br %r14 /* Return to caller. */
+4: .quad 256
+PSEUDO_END (syscall)
+
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h
new file mode 100644
index 0000000000..9b2c546b9d
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h
@@ -0,0 +1,152 @@
+/* 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 \
+ stmg %r13,%r15,104(%r15); \
+ cfi_offset (%r15,-40); \
+ cfi_offset (%r14,-48); \
+ cfi_offset (%r13,-56); \
+ lgr %r14,%r15; \
+ aghi %r15,-160; \
+ cfi_adjust_cfa_offset (160); \
+ stg %r14,0(%r15); \
+ brasl %r14,CENABLE; \
+ lgr %r0,%r2; \
+ LM_##args \
+ .if SYS_ify (syscall_name) < 256; \
+ svc SYS_ify (syscall_name); \
+ .else; \
+ lghi %r1,SYS_ify (syscall_name); \
+ svc 0; \
+ .endif; \
+ LR7_##args \
+ lgr %r13,%r2; \
+ lgr %r2,%r0; \
+ brasl %r14,CDISABLE; \
+ lgr %r2,%r13; \
+ lmg %r13,%r15,104+160(%r15); \
+ cfi_endproc; \
+ j L(pseudo_check); \
+ENTRY(name) \
+ SINGLE_THREAD_P \
+ jne L(pseudo_cancel); \
+.type __##syscall_name##_nocancel,@function; \
+.globl __##syscall_name##_nocancel; \
+__##syscall_name##_nocancel: \
+ DO_CALL(syscall_name, args); \
+L(pseudo_check): \
+ lghi %r4,-4095; \
+ clgr %r2,%r4; \
+ jgnl 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
+# define __local_multiple_threads __pthread_multiple_threads
+# elif IS_IN (libc)
+# define CENABLE __libc_enable_asynccancel
+# define CDISABLE __libc_disable_asynccancel
+# define __local_multiple_threads __libc_multiple_threads
+# 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 stg %r2,16(%r15);
+#define STM_2 stmg %r2,%r3,16(%r15);
+#define STM_3 stmg %r2,%r4,16(%r15);
+#define STM_4 stmg %r2,%r5,16(%r15);
+#define STM_5 stmg %r2,%r5,16(%r15);
+#define STM_6 stmg %r2,%r7,16(%r15);
+
+#define LM_0 /* Nothing */
+#define LM_1 lg %r2,16+160(%r15);
+#define LM_2 lmg %r2,%r3,16+160(%r15);
+#define LM_3 lmg %r2,%r4,16+160(%r15);
+#define LM_4 lmg %r2,%r5,16+160(%r15);
+#define LM_5 lmg %r2,%r5,16+160(%r15);
+#define LM_6 lmg %r2,%r5,16+160(%r15); \
+ cfi_offset (%r7, -104); \
+ lg %r7,160+160(%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 lg %r7,56+160(%r15); \
+ cfi_restore (%r7);
+
+# if IS_IN (libpthread) || IS_IN (libc)
+# ifndef __ASSEMBLER__
+extern int __local_multiple_threads attribute_hidden;
+# define SINGLE_THREAD_P \
+ __builtin_expect (__local_multiple_threads == 0, 1)
+# else
+# define SINGLE_THREAD_P \
+ larl %r1,__local_multiple_threads; \
+ icm %r0,15,0(%r1);
+# endif
+
+# else
+
+# ifndef __ASSEMBLER__
+# define SINGLE_THREAD_P \
+ __builtin_expect (THREAD_GETMEM (THREAD_SELF, \
+ header.multiple_threads) == 0, 1)
+# else
+# define SINGLE_THREAD_P \
+ ear %r1,%a0; \
+ sllg %r1,%r1,32; \
+ ear %r1,%a1; \
+ icm %r1,15,MULTIPLE_THREADS_OFFSET(%r1);
+# endif
+
+# 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-64/sysdep.S b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/sysdep.S
new file mode 100644
index 0000000000..a08a2ff188
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/sysdep.S
@@ -0,0 +1,75 @@
+/* Copyright (C) 2001-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: lg %r1,1f-0b(%r1)
+ ear %r3,%a0
+ sllg %r3,%r3,32
+ ear %r3,%a1
+ lcr %r2,%r2
+ st %r2,0(%r1,%r3)
+ lghi %r2,-1
+ br %r14
+1: .quad SYSCALL_ERROR_ERRNO@ntpoff
+#else
+# if RTLD_PRIVATE_ERRNO
+ larl %r1,rtld_errno
+ lcr %r2,%r2
+ st %r2,0(%r1)
+ lghi %r2,-1
+ br %r14
+# else
+# if IS_IN (libc)
+# define SYSCALL_ERROR_ERRNO __libc_errno
+# else
+# define SYSCALL_ERROR_ERRNO errno
+# endif
+ larl %r1,_GLOBAL_OFFSET_TABLE_
+ lg %r1,SYSCALL_ERROR_ERRNO@gotntpoff(%r1)
+ ear %r3,%a0
+ sllg %r3,%r3,32
+ ear %r3,%a1
+ lcr %r2,%r2
+ st %r2,0(%r1,%r3)
+ lghi %r2,-1
+ br %r14
+# endif
+#endif
+
+END (__syscall_error)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h
new file mode 100644
index 0000000000..e22d9b6b13
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h
@@ -0,0 +1,345 @@
+/* Assembler macros for 64 bit S/390.
+ Copyright (C) 2001-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-64/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
+
+/*
+ * Newer kernel versions redefined __NR_pread and __NR_pwrite to
+ * __NR_pread64 and __NR_pwrite64.
+ */
+#ifndef __NR_pread
+# define __NR_pread __NR_pread64
+#endif
+#ifndef __NR_pwrite
+# define __NR_pwrite __NR_pwrite64
+#endif
+
+#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); \
+ lghi %r4,-4095 ; \
+ clgr %r2,%r4 ; \
+ jgnl 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) \
+ SYSCALL_ERROR_HANDLER; \
+ END (name)
+
+#undef PSEUDO_ERRVAL
+#define PSEUDO_ERRVAL(name, syscall_name, args) \
+ .text; \
+ ENTRY (name) \
+ DO_CALL (syscall_name, args); \
+ lcgr %r2,%r2
+
+#undef PSEUDO_END_ERRVAL
+#define PSEUDO_END_ERRVAL(name) \
+ SYSCALL_ERROR_HANDLER; \
+ END (name)
+
+#ifndef PIC
+# define SYSCALL_ERROR_LABEL syscall_error
+# define SYSCALL_ERROR_HANDLER
+#else
+# if RTLD_PRIVATE_ERRNO
+# define SYSCALL_ERROR_LABEL 0f
+# define SYSCALL_ERROR_HANDLER \
+0: larl %r1,rtld_errno; \
+ lcr %r2,%r2; \
+ st %r2,0(%r1); \
+ lghi %r2,-1; \
+ br %r14
+# 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; \
+ larl %r1,SYSCALL_ERROR_ERRNO@indntpoff; \
+ lg %r1,0(%r1); \
+ ear %r2,%a0; \
+ sllg %r2,%r2,32; \
+ ear %r2,%a1; \
+ st %r0,0(%r1,%r2); \
+ lghi %r2,-1; \
+ br %r14
+# else
+# define SYSCALL_ERROR_LABEL 0f
+# define SYSCALL_ERROR_HANDLER \
+0: larl %r1,_GLOBAL_OFFSET_TABLE_; \
+ lg %r1,errno@GOT(%r1); \
+ lcr %r2,%r2; \
+ st %r2,0(%r1); \
+ lghi %r2,-1; \
+ br %r14
+# 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; \
+ lgr %r0,%r7; \
+ lg %r7,160(%r15); \
+ .endif; \
+ .if SYS_ify (syscall) < 256; \
+ svc SYS_ify (syscall); \
+ .else; \
+ lghi %r1,SYS_ify (syscall); \
+ svc 0; \
+ .endif; \
+ .if args > 5; \
+ lgr %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...) \
+ ({ \
+ long _ret = INTERNAL_SYSCALL (name, , nr, args); \
+ if (__glibc_unlikely (INTERNAL_SYSCALL_ERROR_P (_ret, ))) \
+ { \
+ __set_errno (INTERNAL_SYSCALL_ERRNO (_ret, )); \
+ _ret = -1; \
+ } \
+ _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 long _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 long _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 long _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 long) (val) >= -4095UL)
+
+#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__ ( \
+ "lgr 10,14\n\t" \
+ "basr 14,%1\n\t" \
+ "lgr 14,10\n\t" \
+ : "=d" (_ret) \
+ : "a" (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; \
+ sllg tmpreg,tmpreg,32; \
+ ear tmpreg,%a1; \
+ xg reg,STACK_GUARD(tmpreg)
+# define PTR_MANGLE2(reg, tmpreg) \
+ xg 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-64/timer_create.c b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/timer_create.c
new file mode 100644
index 0000000000..d307135003
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/timer_create.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/x86_64/timer_create.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/timer_delete.c b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/timer_delete.c
new file mode 100644
index 0000000000..2dd94f5c7a
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/timer_delete.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/x86_64/timer_delete.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/timer_getoverr.c b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/timer_getoverr.c
new file mode 100644
index 0000000000..22eaff5cda
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/timer_getoverr.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/x86_64/timer_getoverr.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/timer_gettime.c b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/timer_gettime.c
new file mode 100644
index 0000000000..cea524bae5
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/timer_gettime.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/x86_64/timer_gettime.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/timer_settime.c b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/timer_settime.c
new file mode 100644
index 0000000000..fa231149d5
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/timer_settime.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/x86_64/timer_settime.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/vfork.S b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/vfork.S
new file mode 100644
index 0000000000..5f3c9c5028
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/s390-64/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. */
+ lghi %r4,-4095
+ clgr %r2,%r4
+ jgnl 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/sa_len.c b/REORG.TODO/sysdeps/unix/sysv/linux/s390/sa_len.c
new file mode 100644
index 0000000000..7b47aa8d67
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/sa_len.c
@@ -0,0 +1,3 @@
+#define HAVE_NETIUCV_IUCV_H
+
+#include <sysdeps/unix/sysv/linux/sa_len.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/semtimedop.c b/REORG.TODO/sysdeps/unix/sysv/linux/s390/semtimedop.c
new file mode 100644
index 0000000000..6f4ca186b4
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/semtimedop.c
@@ -0,0 +1,36 @@
+/* Copyright (C) 2003-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Martin Schwidefsky <schwidefsky@de.ibm.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 <sys/sem.h>
+#include <ipc_priv.h>
+#include <sysdep.h>
+#include <errno.h>
+
+/* Perform user-defined atomical operation of array of semaphores. */
+
+int
+semtimedop (int semid, struct sembuf *sops, size_t nsops,
+ const struct timespec *timeout)
+{
+ /* The s390 sys_ipc variant has only five parameters instead of six
+ (as for default variant) and the only difference is the handling of
+ SEMTIMEDOP where on s390 the third parameter is used as a pointer
+ to a struct timespec where the generic variant uses fifth parameter. */
+ return INLINE_SYSCALL_CALL (ipc, IPCOP_semtimedop, semid, nsops, timeout,
+ sops);
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/sigcontextinfo.h b/REORG.TODO/sysdeps/unix/sysv/linux/s390/sigcontextinfo.h
new file mode 100644
index 0000000000..90ead3f43c
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/sigcontextinfo.h
@@ -0,0 +1,27 @@
+/* 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 <signal.h>
+
+#define SIGCONTEXT struct sigcontext *
+#define SIGCONTEXT_EXTRA_ARGS
+#define GET_PC(ctx) ((void *)((ctx)->sregs->regs.psw.addr))
+#define GET_FRAME(ctx) (*(void **)((ctx)->sregs->regs.gprs[11]))
+#define GET_STACK(ctx) ((void *)((ctx)->sregs->regs.gprs[15]))
+#define CALL_SIGHANDLER(handler, signo, ctx) \
+ (handler)((signo), SIGCONTEXT_EXTRA_ARGS (ctx))
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/sys/elf.h b/REORG.TODO/sysdeps/unix/sysv/linux/s390/sys/elf.h
new file mode 100644
index 0000000000..9a093ba273
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/sys/elf.h
@@ -0,0 +1,25 @@
+/* Copyright (C) 2000-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_ELF_H
+#define _SYS_ELF_H 1
+
+#warning "This header is obsolete; use <sys/procfs.h> instead."
+
+#include <sys/procfs.h>
+
+#endif /* _SYS_ELF_H */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/sys/procfs.h b/REORG.TODO/sysdeps/unix/sysv/linux/s390/sys/procfs.h
new file mode 100644
index 0000000000..2445f110f9
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/sys/procfs.h
@@ -0,0 +1,176 @@
+/* Copyright (C) 2000-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_PROCFS_H
+#define _SYS_PROCFS_H 1
+
+/* This is somewhat modelled after the file of the same name on SVR4
+ systems. It provides a definition of the core file format for ELF
+ used on Linux. It doesn't have anything to do with the /proc file
+ system, even though Linux has one.
+
+ Anyway, the whole purpose of this file is for GDB and GDB only.
+ Don't read too much into it. Don't use it for anything other than
+ GDB unless you know what you are doing. */
+
+#include <features.h>
+#include <sys/time.h>
+#include <sys/types.h>
+#include <sys/user.h>
+#include <sys/ucontext.h>
+
+__BEGIN_DECLS
+
+typedef greg_t elf_greg_t;
+#define ELF_NGREG NGREG
+typedef gregset_t elf_gregset_t;
+typedef fpreg_t elf_fpreg_t;
+typedef fpregset_t elf_fpregset_t;
+
+/* Signal info. */
+struct elf_siginfo
+ {
+ int si_signo; /* Signal number. */
+ int si_code; /* Extra code. */
+ int si_errno; /* Errno. */
+ };
+
+
+/* Definitions to generate Intel SVR4-like core files. These mostly
+ have the same names as the SVR4 types with "elf_" tacked on the
+ front to prevent clashes with Linux definitions, and the typedef
+ forms have been avoided. This is mostly like the SVR4 structure,
+ but more Linuxy, with things that Linux does not support and which
+ GDB doesn't really use excluded. */
+
+struct elf_prstatus
+ {
+ struct elf_siginfo pr_info; /* Info associated with signal. */
+ short int pr_cursig; /* Current signal. */
+ unsigned long int pr_sigpend; /* Set of pending signals. */
+ unsigned long int pr_sighold; /* Set of held signals. */
+ __pid_t pr_pid;
+ __pid_t pr_ppid;
+ __pid_t pr_pgrp;
+ __pid_t pr_sid;
+ struct timeval pr_utime; /* User time. */
+ struct timeval pr_stime; /* System time. */
+ struct timeval pr_cutime; /* Cumulative user time. */
+ struct timeval pr_cstime; /* Cumulative system time. */
+ elf_gregset_t pr_reg; /* GP registers. */
+ int pr_fpvalid; /* True if math copro being used. */
+ };
+
+
+#define ELF_PRARGSZ (80) /* Number of chars for args. */
+
+struct elf_prpsinfo
+ {
+ char pr_state; /* Numeric process state. */
+ char pr_sname; /* Char for pr_state. */
+ char pr_zomb; /* Zombie. */
+ char pr_nice; /* Nice val. */
+ unsigned long int pr_flag; /* Flags. */
+#if __WORDSIZE == 64
+ unsigned int pr_uid;
+ unsigned int pr_gid;
+#else
+ unsigned short int pr_uid;
+ unsigned short int pr_gid;
+#endif
+ int pr_pid, pr_ppid, pr_pgrp, pr_sid;
+ /* Lots missing */
+ char pr_fname[16]; /* Filename of executable. */
+ char pr_psargs[ELF_PRARGSZ]; /* Initial part of arg list. */
+ };
+
+/* The rest of this file provides the types for emulation of the
+ Solaris <proc_service.h> interfaces that should be implemented by
+ users of libthread_db. */
+
+/* Addresses. */
+typedef void *psaddr_t;
+
+/* Register sets. Linux has different names. */
+typedef elf_gregset_t prgregset_t;
+typedef elf_fpregset_t prfpregset_t;
+
+/* We don't have any differences between processes and threads,
+ therefore have only one PID type. */
+typedef __pid_t lwpid_t;
+
+/* Process status and info. In the end we do provide typedefs for them. */
+typedef struct elf_prstatus prstatus_t;
+typedef struct elf_prpsinfo prpsinfo_t;
+
+#if __WORDSIZE == 64
+
+/* Provide 32-bit variants so that BFD can read 32-bit
+ core files. */
+#define ELF_NGREG32 36
+typedef unsigned int elf_greg_t32;
+typedef elf_greg_t32
+ elf_gregset_t32[ELF_NGREG32] __attribute__ ((__aligned__ (8)));
+typedef elf_fpregset_t elf_fpregset_t32;
+
+struct elf_prstatus32
+ {
+ struct elf_siginfo pr_info; /* Info associated with signal. */
+ short int pr_cursig; /* Current signal. */
+ unsigned int pr_sigpend; /* Set of pending signals. */
+ unsigned int pr_sighold; /* Set of held signals. */
+ __pid_t pr_pid;
+ __pid_t pr_ppid;
+ __pid_t pr_pgrp;
+ __pid_t pr_sid;
+ struct
+ {
+ int tv_sec, tv_usec;
+ } pr_utime, /* User time. */
+ pr_stime, /* System time. */
+ pr_cutime, /* Cumulative user time. */
+ pr_cstime; /* Cumulative system time. */
+ elf_gregset_t32 pr_reg; /* GP registers. */
+ int pr_fpvalid; /* True if math copro being used. */
+ };
+
+struct elf_prpsinfo32
+ {
+ char pr_state; /* Numeric process state. */
+ char pr_sname; /* Char for pr_state. */
+ char pr_zomb; /* Zombie. */
+ char pr_nice; /* Nice val. */
+ unsigned int pr_flag; /* Flags. */
+ unsigned short int pr_uid;
+ unsigned short int pr_gid;
+ int pr_pid, pr_ppid, pr_pgrp, pr_sid;
+ /* Lots missing */
+ char pr_fname[16]; /* Filename of executable. */
+ char pr_psargs[ELF_PRARGSZ]; /* Initial part of arg list. */
+ };
+
+typedef elf_gregset_t32 prgregset32_t;
+typedef elf_fpregset_t32 prfpregset32_t;
+
+typedef struct elf_prstatus32 prstatus32_t;
+typedef struct elf_prpsinfo32 prpsinfo32_t;
+
+#endif
+
+__END_DECLS
+
+#endif /* sys/procfs.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/sys/ptrace.h b/REORG.TODO/sysdeps/unix/sysv/linux/s390/sys/ptrace.h
new file mode 100644
index 0000000000..7caf1015b2
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/sys/ptrace.h
@@ -0,0 +1,238 @@
+/* `ptrace' debugger support interface. Linux version.
+ Copyright (C) 2000-2017 Free Software Foundation, Inc.
+ Contributed by Denis Joseph Barrow (djbarrow@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 _SYS_PTRACE_H
+#define _SYS_PTRACE_H 1
+
+#include <features.h>
+#include <bits/types.h>
+
+__BEGIN_DECLS
+#ifdef _LINUX_PTRACE_H
+/* Kludge to stop stuff gdb & strace compiles from getting upset
+ */
+#undef PTRACE_TRACEME
+#undef PTRACE_PEEKTEXT
+#undef PTRACE_PEEKDATA
+#undef PTRACE_PEEKUSR
+#undef PTRACE_POKETEXT
+#undef PTRACE_POKEDATA
+#undef PTRACE_POKEUSR
+#undef PTRACE_CONT
+#undef PTRACE_KILL
+#undef PTRACE_SINGLESTEP
+
+#undef PTRACE_ATTACH
+#undef PTRACE_DETACH
+
+#undef PTRACE_SYSCALL
+#endif
+/* Type of the REQUEST argument to `ptrace.' */
+enum __ptrace_request
+{
+ /* Indicate that the process making this request should be traced.
+ All signals received by this process can be intercepted by its
+ parent, and its parent can use the other `ptrace' requests. */
+ PTRACE_TRACEME = 0,
+#define PT_TRACE_ME PTRACE_TRACEME
+
+ /* Return the word in the process's text space at address ADDR. */
+ PTRACE_PEEKTEXT = 1,
+#define PT_READ_I PTRACE_PEEKTEXT
+
+ /* Return the word in the process's data space at address ADDR. */
+ PTRACE_PEEKDATA = 2,
+#define PT_READ_D PTRACE_PEEKDATA
+
+ /* Return the word in the process's user area at offset ADDR. */
+ PTRACE_PEEKUSER = 3,
+#define PT_READ_U PTRACE_PEEKUSER
+
+ /* Write the word DATA into the process's text space at address ADDR. */
+ PTRACE_POKETEXT = 4,
+#define PT_WRITE_I PTRACE_POKETEXT
+
+ /* Write the word DATA into the process's data space at address ADDR. */
+ PTRACE_POKEDATA = 5,
+#define PT_WRITE_D PTRACE_POKEDATA
+
+ /* Write the word DATA into the process's user area at offset ADDR. */
+ PTRACE_POKEUSER = 6,
+#define PT_WRITE_U PTRACE_POKEUSER
+
+ /* Continue the process. */
+ PTRACE_CONT = 7,
+#define PT_CONTINUE PTRACE_CONT
+
+ /* Kill the process. */
+ PTRACE_KILL = 8,
+#define PT_KILL PTRACE_KILL
+
+ /* Single step the process.
+ This is not supported on all machines. */
+ PTRACE_SINGLESTEP = 9,
+#define PT_STEP PTRACE_SINGLESTEP
+
+ /* Get all general purpose registers used by a processes.
+ This is not supported on all machines. */
+ PTRACE_GETREGS = 12,
+#define PT_GETREGS PTRACE_GETREGS
+
+ /* Set all general purpose registers used by a processes.
+ This is not supported on all machines. */
+ PTRACE_SETREGS = 13,
+#define PT_SETREGS PTRACE_SETREGS
+
+ /* Get all floating point registers used by a processes.
+ This is not supported on all machines. */
+ PTRACE_GETFPREGS = 14,
+#define PT_GETFPREGS PTRACE_GETFPREGS
+
+ /* Set all floating point registers used by a processes.
+ This is not supported on all machines. */
+ PTRACE_SETFPREGS = 15,
+#define PT_SETFPREGS PTRACE_SETFPREGS
+
+ /* Attach to a process that is already running. */
+ PTRACE_ATTACH = 16,
+#define PT_ATTACH PTRACE_ATTACH
+
+ /* Detach from a process attached to with PTRACE_ATTACH. */
+ PTRACE_DETACH = 17,
+#define PT_DETACH PTRACE_DETACH
+
+ /* Continue and stop at the next (return from) syscall. */
+ PTRACE_SYSCALL = 24,
+#define PT_SYSCALL PTRACE_SYSCALL
+
+ /* Set ptrace filter options. */
+ PTRACE_SETOPTIONS = 0x4200,
+#define PT_SETOPTIONS PTRACE_SETOPTIONS
+
+ /* Get last ptrace message. */
+ PTRACE_GETEVENTMSG = 0x4201,
+#define PT_GETEVENTMSG PTRACE_GETEVENTMSG
+
+ /* Get siginfo for process. */
+ PTRACE_GETSIGINFO = 0x4202,
+#define PT_GETSIGINFO PTRACE_GETSIGINFO
+
+ /* Set new siginfo for process. */
+ PTRACE_SETSIGINFO = 0x4203,
+#define PT_SETSIGINFO PTRACE_SETSIGINFO
+
+ /* Get register content. */
+ PTRACE_GETREGSET = 0x4204,
+#define PTRACE_GETREGSET PTRACE_GETREGSET
+
+ /* Set register content. */
+ PTRACE_SETREGSET = 0x4205,
+#define PTRACE_SETREGSET PTRACE_SETREGSET
+
+ /* Like PTRACE_ATTACH, but do not force tracee to trap and do not affect
+ signal or group stop state. */
+ PTRACE_SEIZE = 0x4206,
+#define PTRACE_SEIZE PTRACE_SEIZE
+
+ /* Trap seized tracee. */
+ PTRACE_INTERRUPT = 0x4207,
+#define PTRACE_INTERRUPT PTRACE_INTERRUPT
+
+ /* Wait for next group event. */
+ PTRACE_LISTEN = 0x4208,
+#define PTRACE_LISTEN PTRACE_LISTEN
+
+ PTRACE_PEEKSIGINFO = 0x4209,
+#define PTRACE_PEEKSIGINFO PTRACE_PEEKSIGINFO
+
+ PTRACE_GETSIGMASK = 0x420a,
+#define PTRACE_GETSIGMASK PTRACE_GETSIGMASK
+
+ PTRACE_SETSIGMASK = 0x420b,
+#define PTRACE_SETSIGMASK PTRACE_SETSIGMASK
+
+ PTRACE_SECCOMP_GET_FILTER = 0x420c
+#define PTRACE_SECCOMP_GET_FILTER PTRACE_SECCOMP_GET_FILTER
+};
+
+
+/* Flag for PTRACE_LISTEN. */
+enum __ptrace_flags
+{
+ PTRACE_SEIZE_DEVEL = 0x80000000
+};
+
+/* Options set using PTRACE_SETOPTIONS. */
+enum __ptrace_setoptions
+{
+ PTRACE_O_TRACESYSGOOD = 0x00000001,
+ PTRACE_O_TRACEFORK = 0x00000002,
+ PTRACE_O_TRACEVFORK = 0x00000004,
+ PTRACE_O_TRACECLONE = 0x00000008,
+ PTRACE_O_TRACEEXEC = 0x00000010,
+ PTRACE_O_TRACEVFORKDONE = 0x00000020,
+ PTRACE_O_TRACEEXIT = 0x00000040,
+ PTRACE_O_TRACESECCOMP = 0x00000080,
+ PTRACE_O_EXITKILL = 0x00100000,
+ PTRACE_O_SUSPEND_SECCOMP = 0x00200000,
+ PTRACE_O_MASK = 0x003000ff
+};
+
+enum __ptrace_eventcodes
+{
+/* Wait extended result codes for the above trace options. */
+ PTRACE_EVENT_FORK = 1,
+ PTRACE_EVENT_VFORK = 2,
+ PTRACE_EVENT_CLONE = 3,
+ PTRACE_EVENT_EXEC = 4,
+ PTRACE_EVENT_VFORK_DONE = 5,
+ PTRACE_EVENT_EXIT = 6,
+ PTRACE_EVENT_SECCOMP = 7,
+/* Extended result codes enabled by means other than options. */
+ PTRACE_EVENT_STOP = 128
+};
+
+/* Arguments for PTRACE_PEEKSIGINFO. */
+struct __ptrace_peeksiginfo_args
+{
+ __uint64_t off; /* From which siginfo to start. */
+ __uint32_t flags; /* Flags for peeksiginfo. */
+ __int32_t nr; /* How many siginfos to take. */
+};
+
+enum __ptrace_peeksiginfo_flags
+{
+ /* Read signals from a shared (process wide) queue. */
+ PTRACE_PEEKSIGINFO_SHARED = (1 << 0)
+};
+
+/* Perform process tracing functions. REQUEST is one of the values
+ above, and determines the action to be taken.
+ For all requests except PTRACE_TRACEME, PID specifies the process to be
+ traced.
+
+ PID and the other arguments described above for the various requests should
+ appear (those that are used for the particular request) as:
+ pid_t PID, void *ADDR, int DATA, void *ADDR2
+ after REQUEST. */
+extern long int ptrace (enum __ptrace_request __request, ...) __THROW;
+
+__END_DECLS
+
+#endif /* _SYS_PTRACE_H */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/sys/ucontext.h b/REORG.TODO/sysdeps/unix/sysv/linux/s390/sys/ucontext.h
new file mode 100644
index 0000000000..183da5c8f9
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/sys/ucontext.h
@@ -0,0 +1,96 @@
+/* Copyright (C) 2000-2017 Free Software Foundation, Inc.
+ Contributed by Denis Joseph Barrow (djbarrow@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 _SYS_UCONTEXT_H
+#define _SYS_UCONTEXT_H 1
+
+#include <features.h>
+
+#include <bits/types/sigset_t.h>
+#include <bits/sigcontext.h>
+#include <bits/types/stack_t.h>
+
+
+#ifdef __USE_MISC
+# define __ctx(fld) fld
+#else
+# define __ctx(fld) __ ## fld
+#endif
+
+/* Type for a program status word. */
+typedef struct
+{
+ unsigned long __ctx(mask);
+ unsigned long __ctx(addr);
+} __attribute__ ((__aligned__(8))) __psw_t;
+
+/* Type for a general-purpose register. */
+typedef unsigned long greg_t;
+
+/* And the whole bunch of them. We should have used `struct s390_regs',
+ but to avoid name space pollution and since the tradition says that
+ the register set is an array, we make gregset_t a simple array
+ that has the same size as s390_regs. This is needed for the
+ elf_prstatus structure. */
+#if __WORDSIZE == 64
+# define __NGREG 27
+#else
+# define __NGREG 36
+#endif
+#ifdef __USE_MISC
+# define NGREG __NGREG
+#endif
+/* Must match kernels psw_t alignment. */
+typedef greg_t gregset_t[__NGREG] __attribute__ ((__aligned__(8)));
+
+typedef union
+ {
+ double __ctx(d);
+ float __ctx(f);
+ } fpreg_t;
+
+/* Register set for the floating-point registers. */
+typedef struct
+ {
+ unsigned int __ctx(fpc);
+ fpreg_t __ctx(fprs)[16];
+ } fpregset_t;
+
+/* Context to describe whole processor state. */
+typedef struct
+ {
+ __psw_t __ctx(psw);
+ unsigned long __ctx(gregs)[16];
+ unsigned int __ctx(aregs)[16];
+ fpregset_t __ctx(fpregs);
+ } mcontext_t;
+
+#undef __ctx
+
+/* Userlevel context. */
+typedef struct ucontext
+ {
+ unsigned long int uc_flags;
+ struct ucontext *uc_link;
+ stack_t uc_stack;
+ mcontext_t uc_mcontext;
+ sigset_t uc_sigmask;
+ } ucontext_t;
+
+
+#endif /* sys/ucontext.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/sys/user.h b/REORG.TODO/sysdeps/unix/sysv/linux/s390/sys/user.h
new file mode 100644
index 0000000000..8f8fcca59f
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/sys/user.h
@@ -0,0 +1,82 @@
+/* Copyright (C) 2000-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_USER_H
+#define _SYS_USER_H 1
+
+/* The whole purpose of this file is for GDB and GDB only. Don't read
+ too much into it. Don't use it for anything other than GDB unless
+ you know what you are doing. */
+
+struct _user_psw_struct
+{
+ unsigned long mask;
+ unsigned long addr;
+};
+
+struct _user_fpregs_struct
+{
+ unsigned int fpc;
+ double fprs[16];
+};
+
+struct _user_per_struct
+{
+ unsigned long control_regs[3];
+ unsigned single_step : 1;
+ unsigned instruction_fetch : 1;
+ unsigned : 30;
+ unsigned long starting_addr;
+ unsigned long ending_addr;
+ unsigned short perc_atmid;
+ unsigned long address;
+ unsigned char access_id;
+};
+
+struct _user_regs_struct
+{
+ struct _user_psw_struct psw; /* Program status word. */
+ unsigned long gprs[16]; /* General purpose registers. */
+ unsigned int acrs[16]; /* Access registers. */
+ unsigned long orig_gpr2; /* Original gpr2. */
+ struct _user_fpregs_struct fp_regs; /* Floating point registers. */
+ struct _user_per_struct per_info; /* Hardware tracing registers. */
+ unsigned long ieee_instruction_pointer; /* Always 0. */
+};
+
+struct user {
+ struct _user_regs_struct regs; /* User registers. */
+ unsigned long int u_tsize; /* Text segment size (pages). */
+ unsigned long int u_dsize; /* Data segment size (pages). */
+ unsigned long int u_ssize; /* Stack segment size (pages). */
+ unsigned long start_code; /* Starting address of text. */
+ unsigned long start_stack; /* Starting address of stack area. */
+ long int signal; /* Signal causing the core dump. */
+ struct _user_regs_struct *u_ar0; /* Help gdb find registers. */
+ unsigned long magic; /* Identifies a core file. */
+ char u_comm[32]; /* User command naem. */
+};
+
+#define PAGE_SHIFT 12
+#define PAGE_SIZE (1UL << PAGE_SHIFT)
+#define PAGE_MASK (~(PAGE_SIZE-1))
+#define NBPG PAGE_SIZE
+#define UPAGES 1
+#define HOST_TEXT_START_ADDR (u.start_code)
+#define HOST_STACK_END_ADDR (u.start_stack + u.u_ssize * NBPG)
+
+#endif /* _SYS_USER_H */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/sysconf.c b/REORG.TODO/sysdeps/unix/sysv/linux/s390/sysconf.c
new file mode 100644
index 0000000000..5d78fdd073
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/sysconf.c
@@ -0,0 +1,230 @@
+/* Get system parameters, e.g. cache information. S390/S390x version.
+ Copyright (C) 2015-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <unistd.h>
+#include <dl-procinfo.h>
+
+static long int linux_sysconf (int name);
+
+/* Possible arguments for get_cache_info.
+ The values are reflecting the level/attribute/type indications
+ of ecag-instruction (extract cpu attribue). */
+#define CACHE_LEVEL_MAX 8
+#define CACHE_ATTR_LINESIZE 1
+#define CACHE_ATTR_SIZE 2
+#define CACHE_ATTR_ASSOC 3
+#define CACHE_TYPE_DATA 0
+#define CACHE_TYPE_INSTRUCTION 1
+
+static long
+get_cache_info (int level, int attr, int type)
+{
+ unsigned long int val;
+ unsigned int cmd;
+ unsigned long int arg;
+
+ /* Check arguments. */
+ if (level < 1 || level > CACHE_LEVEL_MAX
+ || attr < CACHE_ATTR_LINESIZE || attr > CACHE_ATTR_ASSOC
+ || type < CACHE_TYPE_DATA || type > CACHE_TYPE_INSTRUCTION)
+ return 0L;
+
+ /* Check if ecag-instruction is available.
+ ecag - extract CPU attribute (only in zarch; arch >= z10; in as 2.24) */
+ if (!(GLRO (dl_hwcap) & HWCAP_S390_STFLE)
+#if !defined __s390x__
+ || !(GLRO (dl_hwcap) & HWCAP_S390_ZARCH)
+ || !(GLRO (dl_hwcap) & HWCAP_S390_HIGH_GPRS)
+#endif /* !__s390x__ */
+ )
+ {
+ /* stfle (or zarch, high-gprs on s390-32) is not available.
+ We are on an old machine. Return 256byte for LINESIZE for L1 d/i-cache,
+ otherwise 0. */
+ if (level == 1 && attr == CACHE_ATTR_LINESIZE)
+ return 256L;
+ else
+ return 0L;
+ }
+
+ /* Store facility list and check for z10.
+ (see ifunc-resolver for details) */
+ register unsigned long reg0 __asm__("0") = 0;
+#ifdef __s390x__
+ unsigned long stfle_bits;
+# define STFLE_Z10_MASK (1UL << (63 - 34))
+#else
+ unsigned long long stfle_bits;
+# define STFLE_Z10_MASK (1ULL << (63 - 34))
+#endif /* !__s390x__ */
+ __asm__ __volatile__(".machine push" "\n\t"
+ ".machinemode \"zarch_nohighgprs\"\n\t"
+ ".machine \"z9-109\"" "\n\t"
+ "stfle %0" "\n\t"
+ ".machine pop" "\n"
+ : "=QS" (stfle_bits), "+d" (reg0)
+ : : "cc");
+
+ if (!(stfle_bits & STFLE_Z10_MASK))
+ {
+ /* We are at least on a z9 machine.
+ Return 256byte for LINESIZE for L1 d/i-cache,
+ otherwise 0. */
+ if (level == 1 && attr == CACHE_ATTR_LINESIZE)
+ return 256L;
+ else
+ return 0L;
+ }
+
+ /* Check cache topology, if cache is available at this level. */
+ arg = (CACHE_LEVEL_MAX - level) * 8;
+ __asm__ __volatile__ (".machine push\n\t"
+ ".machine \"z10\"\n\t"
+ ".machinemode \"zarch_nohighgprs\"\n\t"
+ "ecag %0,%%r0,0\n\t" /* returns 64bit unsigned integer. */
+ "srlg %0,%0,0(%1)\n\t" /* right align 8bit cache info field. */
+ ".machine pop"
+ : "=&d" (val)
+ : "a" (arg)
+ );
+ val &= 0xCUL; /* Extract cache scope information from cache topology summary.
+ (bits 4-5 of 8bit-field; 00 means cache does not exist). */
+ if (val == 0)
+ return 0L;
+
+ /* Get cache information for level, attribute and type. */
+ cmd = (attr << 4) | ((level - 1) << 1) | type;
+ __asm__ __volatile__ (".machine push\n\t"
+ ".machine \"z10\"\n\t"
+ ".machinemode \"zarch_nohighgprs\"\n\t"
+ "ecag %0,%%r0,0(%1)\n\t"
+ ".machine pop"
+ : "=d" (val)
+ : "a" (cmd)
+ );
+ return val;
+}
+
+long int
+__sysconf (int name)
+{
+ if (name >= _SC_LEVEL1_ICACHE_SIZE && name <= _SC_LEVEL4_CACHE_LINESIZE)
+ {
+ int level;
+ int attr;
+ int type;
+
+ switch (name)
+ {
+ case _SC_LEVEL1_ICACHE_SIZE:
+ level = 1;
+ attr = CACHE_ATTR_SIZE;
+ type = CACHE_TYPE_INSTRUCTION;
+ break;
+ case _SC_LEVEL1_ICACHE_ASSOC:
+ level = 1;
+ attr = CACHE_ATTR_ASSOC;
+ type = CACHE_TYPE_INSTRUCTION;
+ break;
+ case _SC_LEVEL1_ICACHE_LINESIZE:
+ level = 1;
+ attr = CACHE_ATTR_LINESIZE;
+ type = CACHE_TYPE_INSTRUCTION;
+ break;
+
+ case _SC_LEVEL1_DCACHE_SIZE:
+ level = 1;
+ attr = CACHE_ATTR_SIZE;
+ type = CACHE_TYPE_DATA;
+ break;
+ case _SC_LEVEL1_DCACHE_ASSOC:
+ level = 1;
+ attr = CACHE_ATTR_ASSOC;
+ type = CACHE_TYPE_DATA;
+ break;
+ case _SC_LEVEL1_DCACHE_LINESIZE:
+ level = 1;
+ attr = CACHE_ATTR_LINESIZE;
+ type = CACHE_TYPE_DATA;
+ break;
+
+ case _SC_LEVEL2_CACHE_SIZE:
+ level = 2;
+ attr = CACHE_ATTR_SIZE;
+ type = CACHE_TYPE_DATA;
+ break;
+ case _SC_LEVEL2_CACHE_ASSOC:
+ level = 2;
+ attr = CACHE_ATTR_ASSOC;
+ type = CACHE_TYPE_DATA;
+ break;
+ case _SC_LEVEL2_CACHE_LINESIZE:
+ level = 2;
+ attr = CACHE_ATTR_LINESIZE;
+ type = CACHE_TYPE_DATA;
+ break;
+
+ case _SC_LEVEL3_CACHE_SIZE:
+ level = 3;
+ attr = CACHE_ATTR_SIZE;
+ type = CACHE_TYPE_DATA;
+ break;
+ case _SC_LEVEL3_CACHE_ASSOC:
+ level = 3;
+ attr = CACHE_ATTR_ASSOC;
+ type = CACHE_TYPE_DATA;
+ break;
+ case _SC_LEVEL3_CACHE_LINESIZE:
+ level = 3;
+ attr = CACHE_ATTR_LINESIZE;
+ type = CACHE_TYPE_DATA;
+ break;
+
+ case _SC_LEVEL4_CACHE_SIZE:
+ level = 4;
+ attr = CACHE_ATTR_SIZE;
+ type = CACHE_TYPE_DATA;
+ break;
+ case _SC_LEVEL4_CACHE_ASSOC:
+ level = 4;
+ attr = CACHE_ATTR_ASSOC;
+ type = CACHE_TYPE_DATA;
+ break;
+ case _SC_LEVEL4_CACHE_LINESIZE:
+ level = 4;
+ attr = CACHE_ATTR_LINESIZE;
+ type = CACHE_TYPE_DATA;
+ break;
+
+ default:
+ level = 0;
+ attr = 0;
+ type = 0;
+ break;
+ }
+
+ return get_cache_info (level, attr, type);
+ }
+
+ return linux_sysconf (name);
+}
+
+/* Now the generic Linux version. */
+#undef __sysconf
+#define __sysconf static linux_sysconf
+#include <sysdeps/unix/sysv/linux/sysconf.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/system.c b/REORG.TODO/sysdeps/unix/sysv/linux/s390/system.c
new file mode 100644
index 0000000000..da90073a9d
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/system.c
@@ -0,0 +1,29 @@
+/* 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/>. */
+
+/* We have to and actually can handle cancelable system(). The big
+ problem: we have to kill the child process if necessary. To do
+ this a cleanup handler has to be registered and is has to be able
+ to find the PID of the child. The main problem is to reliable have
+ the PID when needed. It is not necessary for the parent thread to
+ return. It might still be in the kernel when the cancellation
+ request comes. Therefore we have to use the clone() calls ability
+ to have the kernel write the PID into the user-level variable. */
+#define FORK() \
+ INLINE_SYSCALL (clone, 3, 0, CLONE_PARENT_SETTID | SIGCHLD, &pid)
+
+#include "../system.c"
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/s390/ucontext_i.sym b/REORG.TODO/sysdeps/unix/sysv/linux/s390/ucontext_i.sym
new file mode 100644
index 0000000000..6cc9f19624
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/s390/ucontext_i.sym
@@ -0,0 +1,25 @@
+#include <stddef.h>
+#include <signal.h>
+#include <sys/ucontext.h>
+
+--
+
+SIG_BLOCK
+SIG_UNBLOCK
+SIG_SETMASK
+
+_NSIG8 (_NSIG / 8)
+
+#define ucontext(member) offsetof (ucontext_t, member)
+#define mcontext(member) ucontext (uc_mcontext.member)
+
+SC_FLGS ucontext (uc_flags)
+SC_LINK ucontext (uc_link)
+SC_STCK ucontext (uc_stack.ss_sp)
+SC_STSZ ucontext (uc_stack.ss_size)
+SC_PSW mcontext (psw)
+SC_GPRS mcontext (gregs)
+SC_ACRS mcontext (aregs)
+SC_FPC mcontext (fpregs.fpc)
+SC_FPRS mcontext (fpregs.fprs)
+SC_MASK ucontext (uc_sigmask)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sa_len.c b/REORG.TODO/sysdeps/unix/sysv/linux/sa_len.c
new file mode 100644
index 0000000000..0e657fa094
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sa_len.c
@@ -0,0 +1,9 @@
+#define HAVE_NETASH_ASH_H
+#define HAVE_NETATALK_AT_H
+#define HAVE_NETAX25_AX25_H
+#define HAVE_NETECONET_EC_H
+#define HAVE_NETIPX_IPX_H
+#define HAVE_NETPACKET_PACKET_H
+#define HAVE_NETROSE_ROSE_H
+
+#include <socket/sa_len.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/safe-fatal.h b/REORG.TODO/sysdeps/unix/sysv/linux/safe-fatal.h
new file mode 100644
index 0000000000..0bd759bd15
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/safe-fatal.h
@@ -0,0 +1,33 @@
+/* Crash the process immediately, without possibility of deadlock. Linux.
+ Copyright (C) 2014-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SAFE_FATAL_H
+#define _SAFE_FATAL_H 1
+
+#include <sysdep.h>
+#include <unistd.h>
+
+static inline void
+__safe_fatal (void)
+{
+ INTERNAL_SYSCALL_DECL (err);
+ pid_t self = INTERNAL_SYSCALL (getpid, err, 0);
+ INTERNAL_SYSCALL (kill, err, 2, self, SIGKILL);
+}
+
+#endif /* safe-fatal.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sched_getaffinity.c b/REORG.TODO/sysdeps/unix/sysv/linux/sched_getaffinity.c
new file mode 100644
index 0000000000..d531d0a79f
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sched_getaffinity.c
@@ -0,0 +1,65 @@
+/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <sched.h>
+#include <string.h>
+#include <sysdep.h>
+#include <sys/param.h>
+#include <sys/types.h>
+#include <shlib-compat.h>
+
+
+#ifdef __NR_sched_getaffinity
+# if SHLIB_COMPAT (libc, GLIBC_2_3_3, GLIBC_2_3_4)
+extern int __sched_getaffinity_new (pid_t, size_t, cpu_set_t *);
+libc_hidden_proto (__sched_getaffinity_new)
+# endif
+
+int
+__sched_getaffinity_new (pid_t pid, size_t cpusetsize, cpu_set_t *cpuset)
+{
+ int res = INLINE_SYSCALL (sched_getaffinity, 3, pid,
+ MIN (INT_MAX, cpusetsize), cpuset);
+ if (res != -1)
+ {
+ /* Clean the rest of the memory the kernel didn't do. */
+ memset ((char *) cpuset + res, '\0', cpusetsize - res);
+
+ res = 0;
+ }
+ return res;
+}
+versioned_symbol (libc, __sched_getaffinity_new, sched_getaffinity,
+ GLIBC_2_3_4);
+
+
+# if SHLIB_COMPAT (libc, GLIBC_2_3_3, GLIBC_2_3_4)
+libc_hidden_def (__sched_getaffinity_new)
+
+int
+attribute_compat_text_section
+__sched_getaffinity_old (pid_t pid, cpu_set_t *cpuset)
+{
+ /* The old interface by default assumed a 1024 processor bitmap. */
+ return __sched_getaffinity_new (pid, 128, cpuset);
+}
+compat_symbol (libc, __sched_getaffinity_old, sched_getaffinity, GLIBC_2_3_3);
+# endif
+#else
+# include <posix/sched_getaffinity.c>
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sched_getcpu.c b/REORG.TODO/sysdeps/unix/sysv/linux/sched_getcpu.c
new file mode 100644
index 0000000000..58ac60b7a8
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sched_getcpu.c
@@ -0,0 +1,39 @@
+/* Copyright (C) 2007-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <sched.h>
+#include <sysdep.h>
+
+#ifdef HAVE_GETCPU_VSYSCALL
+# define HAVE_VSYSCALL
+#endif
+#include <sysdep-vdso.h>
+
+int
+sched_getcpu (void)
+{
+#ifdef __NR_getcpu
+ unsigned int cpu;
+ int r = INLINE_VSYSCALL (getcpu, 3, &cpu, NULL, NULL);
+
+ return r == -1 ? r : cpu;
+#else
+ __set_errno (ENOSYS);
+ return -1;
+#endif
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sched_setaffinity.c b/REORG.TODO/sysdeps/unix/sysv/linux/sched_setaffinity.c
new file mode 100644
index 0000000000..8854e72c67
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sched_setaffinity.c
@@ -0,0 +1,57 @@
+/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <sched.h>
+#include <string.h>
+#include <sysdep.h>
+#include <unistd.h>
+#include <sys/types.h>
+#include <shlib-compat.h>
+
+
+#ifdef __NR_sched_setaffinity
+
+int
+__sched_setaffinity_new (pid_t pid, size_t cpusetsize, const cpu_set_t *cpuset)
+{
+ int result = INLINE_SYSCALL (sched_setaffinity, 3, pid, cpusetsize, cpuset);
+
+#ifdef RESET_VGETCPU_CACHE
+ if (result != -1)
+ RESET_VGETCPU_CACHE ();
+#endif
+
+ return result;
+}
+versioned_symbol (libc, __sched_setaffinity_new, sched_setaffinity,
+ GLIBC_2_3_4);
+
+
+# if SHLIB_COMPAT (libc, GLIBC_2_3_3, GLIBC_2_3_4)
+int
+attribute_compat_text_section
+__sched_setaffinity_old (pid_t pid, const cpu_set_t *cpuset)
+{
+ /* The old interface by default assumed a 1024 processor bitmap. */
+ return __sched_setaffinity_new (pid, 128, cpuset);
+}
+compat_symbol (libc, __sched_setaffinity_old, sched_setaffinity, GLIBC_2_3_3);
+# endif
+#else
+# include <posix/sched_setaffinity.c>
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/scsi/scsi.h b/REORG.TODO/sysdeps/unix/sysv/linux/scsi/scsi.h
new file mode 100644
index 0000000000..630834a26e
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/scsi/scsi.h
@@ -0,0 +1,225 @@
+/* Copyright (C) 1998-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+/*
+ * This header file contains public constants and structures used by
+ * the scsi code for linux.
+ */
+
+#ifndef _SCSI_SCSI_H
+#define _SCSI_SCSI_H 1
+
+#include <features.h>
+
+/*
+ * SCSI opcodes
+ */
+
+#define TEST_UNIT_READY 0x00
+#define REZERO_UNIT 0x01
+#define REQUEST_SENSE 0x03
+#define FORMAT_UNIT 0x04
+#define READ_BLOCK_LIMITS 0x05
+#define REASSIGN_BLOCKS 0x07
+#define READ_6 0x08
+#define WRITE_6 0x0a
+#define SEEK_6 0x0b
+#define READ_REVERSE 0x0f
+#define WRITE_FILEMARKS 0x10
+#define SPACE 0x11
+#define INQUIRY 0x12
+#define RECOVER_BUFFERED_DATA 0x14
+#define MODE_SELECT 0x15
+#define RESERVE 0x16
+#define RELEASE 0x17
+#define COPY 0x18
+#define ERASE 0x19
+#define MODE_SENSE 0x1a
+#define START_STOP 0x1b
+#define RECEIVE_DIAGNOSTIC 0x1c
+#define SEND_DIAGNOSTIC 0x1d
+#define ALLOW_MEDIUM_REMOVAL 0x1e
+
+#define SET_WINDOW 0x24
+#define READ_CAPACITY 0x25
+#define READ_10 0x28
+#define WRITE_10 0x2a
+#define SEEK_10 0x2b
+#define WRITE_VERIFY 0x2e
+#define VERIFY 0x2f
+#define SEARCH_HIGH 0x30
+#define SEARCH_EQUAL 0x31
+#define SEARCH_LOW 0x32
+#define SET_LIMITS 0x33
+#define PRE_FETCH 0x34
+#define READ_POSITION 0x34
+#define SYNCHRONIZE_CACHE 0x35
+#define LOCK_UNLOCK_CACHE 0x36
+#define READ_DEFECT_DATA 0x37
+#define MEDIUM_SCAN 0x38
+#define COMPARE 0x39
+#define COPY_VERIFY 0x3a
+#define WRITE_BUFFER 0x3b
+#define READ_BUFFER 0x3c
+#define UPDATE_BLOCK 0x3d
+#define READ_LONG 0x3e
+#define WRITE_LONG 0x3f
+#define CHANGE_DEFINITION 0x40
+#define WRITE_SAME 0x41
+#define READ_TOC 0x43
+#define LOG_SELECT 0x4c
+#define LOG_SENSE 0x4d
+#define MODE_SELECT_10 0x55
+#define RESERVE_10 0x56
+#define RELEASE_10 0x57
+#define MODE_SENSE_10 0x5a
+#define PERSISTENT_RESERVE_IN 0x5e
+#define PERSISTENT_RESERVE_OUT 0x5f
+#define MOVE_MEDIUM 0xa5
+#define READ_12 0xa8
+#define WRITE_12 0xaa
+#define WRITE_VERIFY_12 0xae
+#define SEARCH_HIGH_12 0xb0
+#define SEARCH_EQUAL_12 0xb1
+#define SEARCH_LOW_12 0xb2
+#define READ_ELEMENT_STATUS 0xb8
+#define SEND_VOLUME_TAG 0xb6
+#define WRITE_LONG_2 0xea
+
+/*
+ * Status codes
+ */
+
+#define GOOD 0x00
+#define CHECK_CONDITION 0x01
+#define CONDITION_GOOD 0x02
+#define BUSY 0x04
+#define INTERMEDIATE_GOOD 0x08
+#define INTERMEDIATE_C_GOOD 0x0a
+#define RESERVATION_CONFLICT 0x0c
+#define COMMAND_TERMINATED 0x11
+#define QUEUE_FULL 0x14
+
+#define STATUS_MASK 0x3e
+
+/*
+ * SENSE KEYS
+ */
+
+#define NO_SENSE 0x00
+#define RECOVERED_ERROR 0x01
+#define NOT_READY 0x02
+#define MEDIUM_ERROR 0x03
+#define HARDWARE_ERROR 0x04
+#define ILLEGAL_REQUEST 0x05
+#define UNIT_ATTENTION 0x06
+#define DATA_PROTECT 0x07
+#define BLANK_CHECK 0x08
+#define COPY_ABORTED 0x0a
+#define ABORTED_COMMAND 0x0b
+#define VOLUME_OVERFLOW 0x0d
+#define MISCOMPARE 0x0e
+
+
+/*
+ * DEVICE TYPES
+ */
+
+#define TYPE_DISK 0x00
+#define TYPE_TAPE 0x01
+#define TYPE_PROCESSOR 0x03 /* HP scanners use this */
+#define TYPE_WORM 0x04 /* Treated as ROM by our system */
+#define TYPE_ROM 0x05
+#define TYPE_SCANNER 0x06
+#define TYPE_MOD 0x07 /* Magneto-optical disk -
+ * - treated as TYPE_DISK */
+#define TYPE_MEDIUM_CHANGER 0x08
+#define TYPE_ENCLOSURE 0x0d /* Enclosure Services Device */
+#define TYPE_NO_LUN 0x7f
+
+/*
+ * standard mode-select header prepended to all mode-select commands
+ *
+ * moved here from cdrom.h -- kraxel
+ */
+
+struct ccs_modesel_head
+ {
+ unsigned char _r1; /* reserved. */
+ unsigned char medium; /* device-specific medium type. */
+ unsigned char _r2; /* reserved. */
+ unsigned char block_desc_length; /* block descriptor length. */
+ unsigned char density; /* device-specific density code. */
+ unsigned char number_blocks_hi; /* number of blocks in this block
+ desc. */
+ unsigned char number_blocks_med;
+ unsigned char number_blocks_lo;
+ unsigned char _r3;
+ unsigned char block_length_hi; /* block length for blocks in this
+ desc. */
+ unsigned char block_length_med;
+ unsigned char block_length_lo;
+ };
+
+/*
+ * MESSAGE CODES
+ */
+
+#define COMMAND_COMPLETE 0x00
+#define EXTENDED_MESSAGE 0x01
+#define EXTENDED_MODIFY_DATA_POINTER 0x00
+#define EXTENDED_SDTR 0x01
+#define EXTENDED_EXTENDED_IDENTIFY 0x02 /* SCSI-I only */
+#define EXTENDED_WDTR 0x03
+#define SAVE_POINTERS 0x02
+#define RESTORE_POINTERS 0x03
+#define DISCONNECT 0x04
+#define INITIATOR_ERROR 0x05
+#define ABORT 0x06
+#define MESSAGE_REJECT 0x07
+#define NOP 0x08
+#define MSG_PARITY_ERROR 0x09
+#define LINKED_CMD_COMPLETE 0x0a
+#define LINKED_FLG_CMD_COMPLETE 0x0b
+#define BUS_DEVICE_RESET 0x0c
+
+#define INITIATE_RECOVERY 0x0f /* SCSI-II only */
+#define RELEASE_RECOVERY 0x10 /* SCSI-II only */
+
+#define SIMPLE_QUEUE_TAG 0x20
+#define HEAD_OF_QUEUE_TAG 0x21
+#define ORDERED_QUEUE_TAG 0x22
+
+/*
+ * Here are some scsi specific ioctl commands which are sometimes useful.
+ */
+/* These are a few other constants only used by scsi devices. */
+
+#define SCSI_IOCTL_GET_IDLUN 0x5382
+
+/* Used to turn on and off tagged queuing for scsi devices. */
+
+#define SCSI_IOCTL_TAGGED_ENABLE 0x5383
+#define SCSI_IOCTL_TAGGED_DISABLE 0x5384
+
+/* Used to obtain the host number of a device. */
+#define SCSI_IOCTL_PROBE_HOST 0x5385
+
+/* Used to get the bus number for a device. */
+#define SCSI_IOCTL_GET_BUS_NUMBER 0x5386
+
+#endif /* scsi/scsi.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/scsi/scsi_ioctl.h b/REORG.TODO/sysdeps/unix/sysv/linux/scsi/scsi_ioctl.h
new file mode 100644
index 0000000000..a746898c2d
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/scsi/scsi_ioctl.h
@@ -0,0 +1,31 @@
+/* Copyright (C) 1999-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SCSI_IOCTL_H
+#define _SCSI_IOCTL_H
+
+/* IOCTLs for SCSI. */
+#define SCSI_IOCTL_SEND_COMMAND 1 /* Send a command to the SCSI host. */
+#define SCSI_IOCTL_TEST_UNIT_READY 2 /* Test if unit is ready. */
+#define SCSI_IOCTL_BENCHMARK_COMMAND 3
+#define SCSI_IOCTL_SYNC 4 /* Request synchronous parameters. */
+#define SCSI_IOCTL_START_UNIT 5
+#define SCSI_IOCTL_STOP_UNIT 6
+#define SCSI_IOCTL_DOORLOCK 0x5380 /* Lock the eject mechanism. */
+#define SCSI_IOCTL_DOORUNLOCK 0x5381 /* Unlock the mechanism. */
+
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/scsi/sg.h b/REORG.TODO/sysdeps/unix/sysv/linux/scsi/sg.h
new file mode 100644
index 0000000000..04bbdafc74
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/scsi/sg.h
@@ -0,0 +1,276 @@
+/* Copyright (C) 1997-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+/*
+ History:
+ Started: Aug 9 by Lawrence Foard (entropy@world.std.com), to allow user
+ process control of SCSI devices.
+ Development Sponsored by Killy Corp. NY NY
+*/
+
+#ifndef _SCSI_SG_H
+#define _SCSI_SG_H 1
+
+#include <features.h>
+#define __need_size_t
+#include <stddef.h>
+
+
+/* New interface introduced in the 3.x SG drivers follows */
+
+/* Same structure as used by readv() Linux system call. It defines one
+ scatter-gather element. */
+typedef struct sg_iovec
+{
+ void * iov_base; /* Starting address */
+ size_t iov_len; /* Length in bytes */
+} sg_iovec_t;
+
+
+typedef struct sg_io_hdr
+{
+ int interface_id; /* [i] 'S' for SCSI generic (required) */
+ int dxfer_direction; /* [i] data transfer direction */
+ unsigned char cmd_len; /* [i] SCSI command length ( <= 16 bytes) */
+ unsigned char mx_sb_len; /* [i] max length to write to sbp */
+ unsigned short int iovec_count; /* [i] 0 implies no scatter gather */
+ unsigned int dxfer_len; /* [i] byte count of data transfer */
+ void * dxferp; /* [i], [*io] points to data transfer memory
+ or scatter gather list */
+ unsigned char * cmdp; /* [i], [*i] points to command to perform */
+ unsigned char * sbp; /* [i], [*o] points to sense_buffer memory */
+ unsigned int timeout; /* [i] MAX_UINT->no timeout (unit: millisec) */
+ unsigned int flags; /* [i] 0 -> default, see SG_FLAG... */
+ int pack_id; /* [i->o] unused internally (normally) */
+ void * usr_ptr; /* [i->o] unused internally */
+ unsigned char status; /* [o] scsi status */
+ unsigned char masked_status;/* [o] shifted, masked scsi status */
+ unsigned char msg_status; /* [o] messaging level data (optional) */
+ unsigned char sb_len_wr; /* [o] byte count actually written to sbp */
+ unsigned short int host_status; /* [o] errors from host adapter */
+ unsigned short int driver_status;/* [o] errors from software driver */
+ int resid; /* [o] dxfer_len - actual_transferred */
+ unsigned int duration; /* [o] time taken by cmd (unit: millisec) */
+ unsigned int info; /* [o] auxiliary information */
+} sg_io_hdr_t;
+
+
+/* Use negative values to flag difference from original sg_header structure. */
+#define SG_DXFER_NONE -1 /* e.g. a SCSI Test Unit Ready command */
+#define SG_DXFER_TO_DEV -2 /* e.g. a SCSI WRITE command */
+#define SG_DXFER_FROM_DEV -3 /* e.g. a SCSI READ command */
+#define SG_DXFER_TO_FROM_DEV -4 /* treated like SG_DXFER_FROM_DEV with the
+ additional property than during indirect
+ IO the user buffer is copied into the
+ kernel buffers before the transfer */
+
+
+/* following flag values can be "or"-ed together */
+#define SG_FLAG_DIRECT_IO 1 /* default is indirect IO */
+#define SG_FLAG_LUN_INHIBIT 2 /* default is to put device's lun into */
+ /* the 2nd byte of SCSI command */
+#define SG_FLAG_NO_DXFER 0x10000 /* no transfer of kernel buffers to/from */
+ /* user space (debug indirect IO) */
+
+/* The following 'info' values are "or"-ed together. */
+#define SG_INFO_OK_MASK 0x1
+#define SG_INFO_OK 0x0 /* no sense, host nor driver "noise" */
+#define SG_INFO_CHECK 0x1 /* something abnormal happened */
+
+#define SG_INFO_DIRECT_IO_MASK 0x6
+#define SG_INFO_INDIRECT_IO 0x0 /* data xfer via kernel buffers (or no xfer) */
+#define SG_INFO_DIRECT_IO 0x2 /* direct IO requested and performed */
+#define SG_INFO_MIXED_IO 0x4 /* part direct, part indirect IO */
+
+
+/* Request information about a specific SG device, used by
+ SG_GET_SCSI_ID ioctl (). */
+struct sg_scsi_id {
+ /* Host number as in "scsi<n>" where 'n' is one of 0, 1, 2 etc. */
+ int host_no;
+ int channel;
+ /* SCSI id of target device. */
+ int scsi_id;
+ int lun;
+ /* TYPE_... defined in <scsi/scsi.h>. */
+ int scsi_type;
+ /* Host (adapter) maximum commands per lun. */
+ short int h_cmd_per_lun;
+ /* Device (or adapter) maximum queue length. */
+ short int d_queue_depth;
+ /* Unused, set to 0 for now. */
+ int unused[2];
+};
+
+/* Used by SG_GET_REQUEST_TABLE ioctl(). */
+typedef struct sg_req_info {
+ char req_state; /* 0 -> not used, 1 -> written, 2 -> ready to read */
+ char orphan; /* 0 -> normal request, 1 -> from interruped SG_IO */
+ char sg_io_owned; /* 0 -> complete with read(), 1 -> owned by SG_IO */
+ char problem; /* 0 -> no problem detected, 1 -> error to report */
+ int pack_id; /* pack_id associated with request */
+ void * usr_ptr; /* user provided pointer (in new interface) */
+ unsigned int duration; /* millisecs elapsed since written (req_state==1)
+ or request duration (req_state==2) */
+ int unused;
+} sg_req_info_t;
+
+
+/* IOCTLs: Those ioctls that are relevant to the SG 3.x drivers follow.
+ [Those that only apply to the SG 2.x drivers are at the end of the file.]
+ (_GET_s yield result via 'int *' 3rd argument unless otherwise indicated) */
+
+#define SG_EMULATED_HOST 0x2203 /* true for emulated host adapter (ATAPI) */
+
+/* Used to configure SCSI command transformation layer for ATAPI devices */
+/* Only supported by the ide-scsi driver */
+#define SG_SET_TRANSFORM 0x2204 /* N.B. 3rd arg is not pointer but value: */
+ /* 3rd arg = 0 to disable transform, 1 to enable it */
+#define SG_GET_TRANSFORM 0x2205
+
+#define SG_SET_RESERVED_SIZE 0x2275 /* request a new reserved buffer size */
+#define SG_GET_RESERVED_SIZE 0x2272 /* actual size of reserved buffer */
+
+/* The following ioctl has a 'sg_scsi_id_t *' object as its 3rd argument. */
+#define SG_GET_SCSI_ID 0x2276 /* Yields fd's bus, chan, dev, lun + type */
+/* SCSI id information can also be obtained from SCSI_IOCTL_GET_IDLUN */
+
+/* Override host setting and always DMA using low memory ( <16MB on i386) */
+#define SG_SET_FORCE_LOW_DMA 0x2279 /* 0-> use adapter setting, 1-> force */
+#define SG_GET_LOW_DMA 0x227a /* 0-> use all ram for dma; 1-> low dma ram */
+
+/* When SG_SET_FORCE_PACK_ID set to 1, pack_id is input to read() which
+ tries to fetch a packet with a matching pack_id, waits, or returns EAGAIN.
+ If pack_id is -1 then read oldest waiting. When ...FORCE_PACK_ID set to 0
+ then pack_id ignored by read() and oldest readable fetched. */
+#define SG_SET_FORCE_PACK_ID 0x227b
+#define SG_GET_PACK_ID 0x227c /* Yields oldest readable pack_id (or -1) */
+
+#define SG_GET_NUM_WAITING 0x227d /* Number of commands awaiting read() */
+
+/* Yields max scatter gather tablesize allowed by current host adapter */
+#define SG_GET_SG_TABLESIZE 0x227F /* 0 implies can't do scatter gather */
+
+#define SG_GET_VERSION_NUM 0x2282 /* Example: version 2.1.34 yields 20134 */
+
+/* Returns -EBUSY if occupied. 3rd argument pointer to int (see next) */
+#define SG_SCSI_RESET 0x2284
+/* Associated values that can be given to SG_SCSI_RESET follow */
+#define SG_SCSI_RESET_NOTHING 0
+#define SG_SCSI_RESET_DEVICE 1
+#define SG_SCSI_RESET_BUS 2
+#define SG_SCSI_RESET_HOST 3
+
+/* synchronous SCSI command ioctl, (only in version 3 interface) */
+#define SG_IO 0x2285 /* similar effect as write() followed by read() */
+
+#define SG_GET_REQUEST_TABLE 0x2286 /* yields table of active requests */
+
+/* How to treat EINTR during SG_IO ioctl(), only in SG 3.x series */
+#define SG_SET_KEEP_ORPHAN 0x2287 /* 1 -> hold for read(), 0 -> drop (def) */
+#define SG_GET_KEEP_ORPHAN 0x2288
+
+
+#define SG_SCATTER_SZ (8 * 4096) /* PAGE_SIZE not available to user */
+/* Largest size (in bytes) a single scatter-gather list element can have.
+ The value must be a power of 2 and <= (PAGE_SIZE * 32) [131072 bytes on
+ i386]. The minimum value is PAGE_SIZE. If scatter-gather not supported
+ by adapter then this value is the largest data block that can be
+ read/written by a single scsi command. The user can find the value of
+ PAGE_SIZE by calling getpagesize() defined in unistd.h . */
+
+#define SG_DEFAULT_RETRIES 1
+
+/* Defaults, commented if they differ from original sg driver */
+#define SG_DEF_FORCE_LOW_DMA 0 /* was 1 -> memory below 16MB on i386 */
+#define SG_DEF_FORCE_PACK_ID 0
+#define SG_DEF_KEEP_ORPHAN 0
+#define SG_DEF_RESERVED_SIZE SG_SCATTER_SZ /* load time option */
+
+/* maximum outstanding requests, write() yields EDOM if exceeded */
+#define SG_MAX_QUEUE 16
+
+#define SG_BIG_BUFF SG_DEF_RESERVED_SIZE /* for backward compatibility */
+
+/* Alternate style type names, "..._t" variants preferred */
+typedef struct sg_io_hdr Sg_io_hdr;
+typedef struct sg_io_vec Sg_io_vec;
+typedef struct sg_scsi_id Sg_scsi_id;
+typedef struct sg_req_info Sg_req_info;
+
+
+/* vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv */
+/* The older SG interface based on the 'sg_header' structure follows. */
+/* ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ */
+
+#define SG_MAX_SENSE 16 /* this only applies to the sg_header interface */
+
+struct sg_header
+ {
+ /* Length of incoming packet (including header). */
+ int pack_len;
+ /* Maximal length of expected reply. */
+ int reply_len;
+ /* Id number of packet. */
+ int pack_id;
+ /* 0==ok, otherwise error number. */
+ int result;
+ /* Force 12 byte command length for group 6 & 7 commands. */
+ unsigned int twelve_byte:1;
+ /* SCSI status from target. */
+ unsigned int target_status:5;
+ /* Host status (see "DID" codes). */
+ unsigned int host_status:8;
+ /* Driver status+suggestion. */
+ unsigned int driver_status:8;
+ /* Unused. */
+ unsigned int other_flags:10;
+ /* Output in 3 cases:
+ when target_status is CHECK_CONDITION or
+ when target_status is COMMAND_TERMINATED or
+ when (driver_status & DRIVER_SENSE) is true. */
+ unsigned char sense_buffer[SG_MAX_SENSE];
+ };
+
+
+/* IOCTLs: The following are not required (or ignored) when the sg_io_hdr_t
+ interface is used. They are kept for backward compatibility with
+ the original and version 2 drivers. */
+
+#define SG_SET_TIMEOUT 0x2201 /* Set timeout; *(int *)arg==timeout. */
+#define SG_GET_TIMEOUT 0x2202 /* Get timeout; return timeout. */
+
+/* Get/set command queuing state per fd (default is SG_DEF_COMMAND_Q). */
+#define SG_GET_COMMAND_Q 0x2270 /* Yields 0 (queuing off) or 1 (on). */
+#define SG_SET_COMMAND_Q 0x2271 /* Change queuing state with 0 or 1. */
+
+/* Turn on error sense trace (1..8), dump this device to log/console (9)
+ or dump all sg device states ( >9 ) to log/console. */
+#define SG_SET_DEBUG 0x227e /* 0 -> turn off debug */
+
+#define SG_NEXT_CMD_LEN 0x2283 /* Override SCSI command length with given
+ number on the next write() on this file
+ descriptor. */
+
+/* Defaults, commented if they differ from original sg driver */
+#define SG_DEFAULT_TIMEOUT (60*HZ) /* HZ == 'jiffies in 1 second' */
+#define SG_DEF_COMMAND_Q 0 /* command queuing is always on when
+ the new interface is used */
+#define SG_DEF_UNDERRUN_FLAG 0
+
+
+#endif /* scsi/sg.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/segfault.c b/REORG.TODO/sysdeps/unix/sysv/linux/segfault.c
new file mode 100644
index 0000000000..a417df9c41
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/segfault.c
@@ -0,0 +1,2 @@
+#define HAVE_PROC_SELF 1
+#include <debug/segfault.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/select.c b/REORG.TODO/sysdeps/unix/sysv/linux/select.c
new file mode 100644
index 0000000000..be4a456a51
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/select.c
@@ -0,0 +1,71 @@
+/* Linux select implementation.
+ Copyright (C) 2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sys/time.h>
+#include <sys/types.h>
+#include <sys/select.h>
+#include <errno.h>
+#include <sysdep-cancel.h>
+
+/* Check the first NFDS descriptors each in READFDS (if not NULL) for read
+ readiness, in WRITEFDS (if not NULL) for write readiness, and in EXCEPTFDS
+ (if not NULL) for exceptional conditions. If TIMEOUT is not NULL, time out
+ after waiting the interval specified therein. Returns the number of ready
+ descriptors, or -1 for errors. */
+
+#ifdef __NR__newselect
+# undef __NR_select
+# define __NR_select __NR__newselect
+#endif
+
+int
+__select (int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds,
+ struct timeval *timeout)
+{
+#ifdef __NR_select
+ return SYSCALL_CANCEL (select, nfds, readfds, writefds, exceptfds,
+ timeout);
+#else
+ int result;
+ struct timespec ts, *tsp = NULL;
+
+ if (timeout)
+ {
+ TIMEVAL_TO_TIMESPEC (timeout, &ts);
+ tsp = &ts;
+ }
+
+ result = SYSCALL_CANCEL (pselect6, nfds, readfds, writefds, exceptfds, tsp,
+ NULL);
+
+ if (timeout)
+ {
+ /* Linux by default will update the timeout after a pselect6 syscall
+ (though the pselect() glibc call suppresses this behavior).
+ Since select() on Linux has the same behavior as the pselect6
+ syscall, we update the timeout here. */
+ TIMESPEC_TO_TIMEVAL (timeout, &ts);
+ }
+
+ return result;
+#endif
+}
+libc_hidden_def (__select)
+
+weak_alias (__select, select)
+weak_alias (__select, __libc_select)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/semctl.c b/REORG.TODO/sysdeps/unix/sysv/linux/semctl.c
new file mode 100644
index 0000000000..b4bd7d3ca7
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/semctl.c
@@ -0,0 +1,109 @@
+/* Copyright (C) 1995-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, August 1995.
+
+ 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/sem.h>
+#include <stdarg.h>
+#include <ipc_priv.h>
+#include <sysdep.h>
+#include <shlib-compat.h>
+#include <errno.h>
+
+/* Define a `union semun' suitable for Linux here. */
+union semun
+{
+ int val; /* value for SETVAL */
+ struct semid_ds *buf; /* buffer for IPC_STAT & IPC_SET */
+ unsigned short int *array; /* array for GETALL & SETALL */
+ struct seminfo *__buf; /* buffer for IPC_INFO */
+};
+
+#ifndef DEFAULT_VERSION
+# define DEFAULT_VERSION GLIBC_2_2
+#endif
+
+int
+__new_semctl (int semid, int semnum, int cmd, ...)
+{
+ union semun arg = { 0 };
+ va_list ap;
+
+ /* Get the argument only if required. */
+ switch (cmd)
+ {
+ case SETVAL: /* arg.val */
+ case GETALL: /* arg.array */
+ case SETALL:
+ case IPC_STAT: /* arg.buf */
+ case IPC_SET:
+ case SEM_STAT:
+ case IPC_INFO: /* arg.__buf */
+ case SEM_INFO:
+ va_start (ap, cmd);
+ arg = va_arg (ap, union semun);
+ va_end (ap);
+ break;
+ }
+
+#ifdef __ASSUME_DIRECT_SYSVIPC_SYSCALLS
+ return INLINE_SYSCALL_CALL (semctl, semid, semnum, cmd | __IPC_64,
+ arg.array);
+#else
+ return INLINE_SYSCALL_CALL (ipc, IPCOP_semctl, semid, semnum, cmd | __IPC_64,
+ SEMCTL_ARG_ADDRESS (arg));
+#endif
+}
+versioned_symbol (libc, __new_semctl, semctl, DEFAULT_VERSION);
+
+
+#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_2)
+/* Since semctl use a variadic argument for semid_ds there is not need to
+ define and tie the compatibility symbol to the old 'union semun'
+ definition. */
+int
+attribute_compat_text_section
+__old_semctl (int semid, int semnum, int cmd, ...)
+{
+ union semun arg = { 0 };
+ va_list ap;
+
+ /* Get the argument only if required. */
+ switch (cmd)
+ {
+ case SETVAL: /* arg.val */
+ case GETALL: /* arg.array */
+ case SETALL:
+ case IPC_STAT: /* arg.buf */
+ case IPC_SET:
+ case SEM_STAT:
+ case IPC_INFO: /* arg.__buf */
+ case SEM_INFO:
+ va_start (ap, cmd);
+ arg = va_arg (ap, union semun);
+ va_end (ap);
+ break;
+ }
+
+# ifdef __ASSUME_DIRECT_SYSVIPC_SYSCALLS
+ return INLINE_SYSCALL_CALL (semctl, semid, semnum, cmd, arg.array);
+# else
+ return INLINE_SYSCALL_CALL (ipc, IPCOP_semctl, semid, semnum, cmd,
+ SEMCTL_ARG_ADDRESS (arg));
+# endif
+}
+compat_symbol (libc, __old_semctl, semctl, GLIBC_2_0);
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/semget.c b/REORG.TODO/sysdeps/unix/sysv/linux/semget.c
new file mode 100644
index 0000000000..f269da2618
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/semget.c
@@ -0,0 +1,35 @@
+/* Copyright (C) 1995-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, August 1995.
+
+ 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/sem.h>
+#include <ipc_priv.h>
+#include <sysdep.h>
+#include <errno.h>
+
+/* Return identifier for array of NSEMS semaphores associated with
+ KEY. */
+
+int
+semget (key_t key, int nsems, int semflg)
+{
+#ifdef __ASSUME_DIRECT_SYSVIPC_SYSCALLS
+ return INLINE_SYSCALL_CALL (semget, key, nsems, semflg);
+#else
+ return INLINE_SYSCALL_CALL (ipc, IPCOP_semget, key, nsems, semflg, NULL);
+#endif
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/semop.c b/REORG.TODO/sysdeps/unix/sysv/linux/semop.c
new file mode 100644
index 0000000000..628a7d871f
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/semop.c
@@ -0,0 +1,34 @@
+/* Copyright (C) 1995-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, August 1995.
+
+ 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/sem.h>
+#include <ipc_priv.h>
+#include <sysdep.h>
+#include <errno.h>
+
+/* Perform user-defined atomical operation of array of semaphores. */
+
+int
+semop (int semid, struct sembuf *sops, size_t nsops)
+{
+#ifdef __ASSUME_DIRECT_SYSVIPC_SYSCALLS
+ return INLINE_SYSCALL_CALL (semop, semid, sops, nsops);
+#else
+ return INLINE_SYSCALL_CALL (ipc, IPCOP_semop, semid, nsops, 0, sops);
+#endif
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/semtimedop.c b/REORG.TODO/sysdeps/unix/sysv/linux/semtimedop.c
new file mode 100644
index 0000000000..5b7f6db34d
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/semtimedop.c
@@ -0,0 +1,36 @@
+/* Copyright (C) 1995-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, August 1995.
+
+ 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/sem.h>
+#include <ipc_priv.h>
+#include <sysdep.h>
+#include <errno.h>
+
+/* Perform user-defined atomical operation of array of semaphores. */
+
+int
+semtimedop (int semid, struct sembuf *sops, size_t nsops,
+ const struct timespec *timeout)
+{
+#ifdef __ASSUME_DIRECT_SYSVIPC_SYSCALLS
+ return INLINE_SYSCALL_CALL (semtimedop, semid, sops, nsops, timeout);
+#else
+ return INLINE_SYSCALL_CALL (ipc, IPCOP_semtimedop, semid, nsops, 0, sops,
+ timeout);
+#endif
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/send.c b/REORG.TODO/sysdeps/unix/sysv/linux/send.c
new file mode 100644
index 0000000000..c2e3b37b17
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/send.c
@@ -0,0 +1,37 @@
+/* Copyright (C) 2015-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sys/socket.h>
+#include <sysdep-cancel.h>
+#include <socketcall.h>
+
+ssize_t
+__libc_send (int fd, const void *buf, size_t len, int flags)
+{
+#ifdef __ASSUME_SEND_SYSCALL
+ return SYSCALL_CANCEL (send, fd, buf, len, flags);
+#elif defined __ASSUME_SENDTO_SYSCALL
+ return SYSCALL_CANCEL (sendto, fd, buf, len, flags, NULL, 0);
+#else
+ return SOCKETCALL_CANCEL (send, fd, buf, len, flags);
+#endif
+}
+weak_alias (__libc_send, send)
+weak_alias (__libc_send, __send)
+#ifdef HAVE_INTERNAL_SEND_SYMBOL
+libc_hidden_def (__send)
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sendmmsg.c b/REORG.TODO/sysdeps/unix/sysv/linux/sendmmsg.c
new file mode 100644
index 0000000000..e0c2556309
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sendmmsg.c
@@ -0,0 +1,37 @@
+/* Copyright (C) 2011-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@gmail.com>, 2011.
+
+ 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 <sys/socket.h>
+
+#include <sysdep-cancel.h>
+#include <sys/syscall.h>
+#include <socketcall.h>
+#include <kernel-features.h>
+
+int
+__sendmmsg (int fd, struct mmsghdr *vmessages, unsigned int vlen, int flags)
+{
+#ifdef __ASSUME_SENDMMSG_SYSCALL
+ return SYSCALL_CANCEL (sendmmsg, fd, vmessages, vlen, flags);
+#else
+ return SOCKETCALL_CANCEL (sendmmsg, fd, vmessages, vlen, flags);
+#endif
+}
+libc_hidden_def (__sendmmsg)
+weak_alias (__sendmmsg, sendmmsg)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sendmsg.c b/REORG.TODO/sysdeps/unix/sysv/linux/sendmsg.c
new file mode 100644
index 0000000000..01cc58ced0
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sendmsg.c
@@ -0,0 +1,34 @@
+/* Compatibility implementation of sendmsg.
+ Copyright (C) 2016-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sys/socket.h>
+#include <sysdep-cancel.h>
+#include <socketcall.h>
+#include <shlib-compat.h>
+
+ssize_t
+__libc_sendmsg (int fd, const struct msghdr *msg, int flags)
+{
+# ifdef __ASSUME_SENDMSG_SYSCALL
+ return SYSCALL_CANCEL (sendmsg, fd, msg, flags);
+# else
+ return SOCKETCALL_CANCEL (sendmsg, fd, msg, flags);
+# endif
+}
+weak_alias (__libc_sendmsg, sendmsg)
+weak_alias (__libc_sendmsg, __sendmsg)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sendto.c b/REORG.TODO/sysdeps/unix/sysv/linux/sendto.c
new file mode 100644
index 0000000000..be1bc6fd99
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sendto.c
@@ -0,0 +1,35 @@
+/* Copyright (C) 2015-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sys/socket.h>
+#include <sysdep-cancel.h>
+#include <socketcall.h>
+
+ssize_t
+__libc_sendto (int fd, const void *buf, size_t len, int flags,
+ __CONST_SOCKADDR_ARG addr, socklen_t addrlen)
+{
+#ifdef __ASSUME_SENDTO_SYSCALL
+ return SYSCALL_CANCEL (sendto, fd, buf, len, flags, addr.__sockaddr__,
+ addrlen);
+#else
+ return SOCKETCALL_CANCEL (sendto, fd, buf, len, flags, addr.__sockaddr__,
+ addrlen);
+#endif
+}
+weak_alias (__libc_sendto, sendto)
+weak_alias (__libc_sendto, __sendto)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/setegid.c b/REORG.TODO/sysdeps/unix/sysv/linux/setegid.c
new file mode 100644
index 0000000000..7d08027762
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/setegid.c
@@ -0,0 +1,41 @@
+/* Copyright (C) 1998-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <unistd.h>
+#include <setxid.h>
+
+
+int
+setegid (gid_t gid)
+{
+ int result;
+
+ if (gid == (gid_t) ~0)
+ return INLINE_SYSCALL_ERROR_RETURN_VALUE (EINVAL);
+
+#ifdef __NR_setresgid32
+ result = INLINE_SETXID_SYSCALL (setresgid32, 3, -1, gid, -1);
+#else
+ result = INLINE_SETXID_SYSCALL (setresgid, 3, -1, gid, -1);
+#endif
+
+ return result;
+}
+#ifndef setegid
+libc_hidden_def (setegid)
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/seteuid.c b/REORG.TODO/sysdeps/unix/sysv/linux/seteuid.c
new file mode 100644
index 0000000000..ece0f45ce5
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/seteuid.c
@@ -0,0 +1,41 @@
+/* Copyright (C) 1998-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <unistd.h>
+#include <setxid.h>
+
+
+int
+seteuid (uid_t uid)
+{
+ int result;
+
+ if (uid == (uid_t) ~0)
+ return INLINE_SYSCALL_ERROR_RETURN_VALUE (EINVAL);
+
+#ifdef __NR_setresuid32
+ result = INLINE_SETXID_SYSCALL (setresuid32, 3, -1, uid, -1);
+#else
+ result = INLINE_SETXID_SYSCALL (setresuid, 3, -1, uid, -1);
+#endif
+
+ return result;
+}
+#ifndef seteuid
+libc_hidden_def (seteuid)
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/setgid.c b/REORG.TODO/sysdeps/unix/sysv/linux/setgid.c
new file mode 100644
index 0000000000..59aaa10153
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/setgid.c
@@ -0,0 +1,34 @@
+/* Copyright (C) 1998-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <unistd.h>
+#include <setxid.h>
+
+
+int
+__setgid (gid_t gid)
+{
+#ifdef __NR_setgid32
+ return INLINE_SETXID_SYSCALL (setgid32, 1, gid);
+#else
+ return INLINE_SETXID_SYSCALL (setgid, 1, gid);
+#endif
+}
+#ifndef __setgid
+weak_alias (__setgid, setgid)
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/setgroups.c b/REORG.TODO/sysdeps/unix/sysv/linux/setgroups.c
new file mode 100644
index 0000000000..c556ebbbfe
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/setgroups.c
@@ -0,0 +1,36 @@
+/* Copyright (C) 1997-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <grp.h>
+#include <setxid.h>
+#include <sysdep.h>
+
+
+/* Set the group set for the current user to GROUPS (N of them). For
+ Linux we must convert the array of groups into the format that the
+ kernel expects. */
+int
+setgroups (size_t n, const gid_t *groups)
+{
+#ifdef __NR_setgroups32
+ return INLINE_SETXID_SYSCALL (setgroups32, 2, n, groups);
+#else
+ return INLINE_SETXID_SYSCALL (setgroups, 2, n, groups);
+#endif
+}
+libc_hidden_def (setgroups)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sethostid.c b/REORG.TODO/sysdeps/unix/sysv/linux/sethostid.c
new file mode 100644
index 0000000000..eb71b74a1d
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sethostid.c
@@ -0,0 +1,2 @@
+#define SET_PROCEDURE 1
+#include "gethostid.c"
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/setipv4sourcefilter.c b/REORG.TODO/sysdeps/unix/sysv/linux/setipv4sourcefilter.c
new file mode 100644
index 0000000000..c4370f90ee
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/setipv4sourcefilter.c
@@ -0,0 +1,65 @@
+/* Set IPv4 source filter. Linux version.
+ Copyright (C) 2004-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@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 <alloca.h>
+#include <errno.h>
+#include <stdlib.h>
+#include <string.h>
+#include <stdint.h>
+#include <netinet/in.h>
+#include <sys/socket.h>
+
+
+int
+setipv4sourcefilter (int s, struct in_addr interface, struct in_addr group,
+ uint32_t fmode, uint32_t numsrc,
+ const struct in_addr *slist)
+{
+ /* We have to create an struct ip_msfilter object which we can pass
+ to the kernel. */
+ size_t needed = IP_MSFILTER_SIZE (numsrc);
+ int use_alloca = __libc_use_alloca (needed);
+
+ struct ip_msfilter *imsf;
+ if (use_alloca)
+ imsf = (struct ip_msfilter *) alloca (needed);
+ else
+ {
+ imsf = (struct ip_msfilter *) malloc (needed);
+ if (imsf == NULL)
+ return -1;
+ }
+
+ imsf->imsf_multiaddr = group;
+ imsf->imsf_interface = interface;
+ imsf->imsf_fmode = fmode;
+ imsf->imsf_numsrc = numsrc;
+ memcpy (imsf->imsf_slist, slist, numsrc * sizeof (struct in_addr));
+
+ int result = __setsockopt (s, SOL_IP, IP_MSFILTER, imsf, needed);
+
+ if (! use_alloca)
+ {
+ int save_errno = errno;
+ free (imsf);
+ __set_errno (save_errno);
+ }
+
+ return result;
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/setregid.c b/REORG.TODO/sysdeps/unix/sysv/linux/setregid.c
new file mode 100644
index 0000000000..b50842b7c0
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/setregid.c
@@ -0,0 +1,34 @@
+/* Copyright (C) 1998-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <unistd.h>
+#include <setxid.h>
+
+
+int
+__setregid (gid_t rgid, gid_t egid)
+{
+#ifdef __NR_setregid32
+ return INLINE_SETXID_SYSCALL (setregid32, 2, rgid, egid);
+#else
+ return INLINE_SETXID_SYSCALL (setregid, 2, rgid, egid);
+#endif
+}
+#ifndef __setregid
+weak_alias (__setregid, setregid)
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/setresgid.c b/REORG.TODO/sysdeps/unix/sysv/linux/setresgid.c
new file mode 100644
index 0000000000..1e9a9b7ec6
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/setresgid.c
@@ -0,0 +1,35 @@
+/* Copyright (C) 1998-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <unistd.h>
+#include <setxid.h>
+
+
+int
+__setresgid (gid_t rgid, gid_t egid, gid_t sgid)
+{
+#ifdef __NR_setresgid32
+ return INLINE_SETXID_SYSCALL (setresgid32, 3, rgid, egid, sgid);
+#else
+ return INLINE_SETXID_SYSCALL (setresgid, 3, rgid, egid, sgid);
+#endif
+}
+libc_hidden_def (__setresgid)
+#ifndef __setresgid
+weak_alias (__setresgid, setresgid)
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/setresuid.c b/REORG.TODO/sysdeps/unix/sysv/linux/setresuid.c
new file mode 100644
index 0000000000..3d3faa9e39
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/setresuid.c
@@ -0,0 +1,35 @@
+/* Copyright (C) 1998-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <unistd.h>
+#include <setxid.h>
+
+
+int
+__setresuid (uid_t ruid, uid_t euid, uid_t suid)
+{
+#ifdef __NR_setresuid32
+ return INLINE_SETXID_SYSCALL (setresuid32, 3, ruid, euid, suid);
+#else
+ return INLINE_SETXID_SYSCALL (setresuid, 3, ruid, euid, suid);
+#endif
+}
+libc_hidden_def (__setresuid)
+#ifndef __setresuid
+weak_alias (__setresuid, setresuid)
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/setreuid.c b/REORG.TODO/sysdeps/unix/sysv/linux/setreuid.c
new file mode 100644
index 0000000000..5cc68ae28d
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/setreuid.c
@@ -0,0 +1,34 @@
+/* Copyright (C) 1998-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <unistd.h>
+#include <setxid.h>
+
+
+int
+__setreuid (uid_t ruid, uid_t euid)
+{
+#ifdef __NR_setreuid32
+ return INLINE_SETXID_SYSCALL (setreuid32, 2, ruid, euid);
+#else
+ return INLINE_SETXID_SYSCALL (setreuid, 2, ruid, euid);
+#endif
+}
+#ifndef __setreuid
+weak_alias (__setreuid, setreuid)
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/setrlimit.c b/REORG.TODO/sysdeps/unix/sysv/linux/setrlimit.c
new file mode 100644
index 0000000000..8773c78236
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/setrlimit.c
@@ -0,0 +1,59 @@
+/* Linux setrlimit implementation (32 bits off_t).
+ Copyright (C) 2016-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <sys/resource.h>
+#include <sys/types.h>
+#include <shlib-compat.h>
+
+#if !__RLIM_T_MATCHES_RLIM64_T
+
+/* The compatibility symbol is meant to match the old __NR_getrlimit syscall
+ (with broken RLIM_INFINITY definition). It should be provided iff
+ __NR_getrlimit and __NR_ugetrlimit are both defined. */
+# ifndef __NR_ugetrlimit
+# undef SHLIB_COMPAT
+# define SHLIB_COMPAT(a, b, c) 0
+# endif
+
+int
+__setrlimit (enum __rlimit_resource resource, const struct rlimit *rlim)
+{
+ struct rlimit64 rlim64;
+
+ if (rlim->rlim_cur == RLIM_INFINITY)
+ rlim64.rlim_cur = RLIM64_INFINITY;
+ else
+ rlim64.rlim_cur = rlim->rlim_cur;
+ if (rlim->rlim_max == RLIM_INFINITY)
+ rlim64.rlim_max = RLIM64_INFINITY;
+ else
+ rlim64.rlim_max = rlim->rlim_max;
+
+ return INLINE_SYSCALL_CALL (prlimit64, 0, resource, &rlim64, NULL);
+}
+
+# if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_2)
+strong_alias (__setrlimit, __setrlimit_1)
+compat_symbol (libc, __setrlimit, setrlimit, GLIBC_2_0);
+versioned_symbol (libc, __setrlimit_1, setrlimit, GLIBC_2_2);
+# else
+weak_alias (__setrlimit, setrlimit)
+# endif
+
+#endif /* __RLIM_T_MATCHES_RLIM64_T */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/setrlimit64.c b/REORG.TODO/sysdeps/unix/sysv/linux/setrlimit64.c
new file mode 100644
index 0000000000..db1960fc18
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/setrlimit64.c
@@ -0,0 +1,46 @@
+/* Linux setrlimit64 implementation (64 bits off_t).
+ Copyright (C) 2010-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 <sys/types.h>
+#include <shlib-compat.h>
+
+/* Add this redirection so the strong_alias for __RLIM_T_MATCHES_RLIM64_T
+ linking setlimit64 to {__}setrlimit does not throw a type error. */
+#undef settrlimit
+#undef __sttrlimit
+#define setrlimit setrlimit_redirect
+#define __setrlimit __setrlimit_redirect
+#include <sys/resource.h>
+#undef setrlimit
+#undef __setrlimit
+
+/* Set the soft and hard limits for RESOURCE to *RLIMITS.
+ Only the super-user can increase hard limits.
+ Return 0 if successful, -1 if not (and sets errno). */
+int
+__setrlimit64 (enum __rlimit_resource resource, const struct rlimit64 *rlimits)
+{
+ return INLINE_SYSCALL_CALL (prlimit64, 0, resource, rlimits, NULL);
+}
+weak_alias (__setrlimit64, setrlimit64)
+
+#if __RLIM_T_MATCHES_RLIM64_T
+strong_alias (__setrlimit64, __setrlimit)
+weak_alias (__setrlimit64, setrlimit)
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/setsockopt.c b/REORG.TODO/sysdeps/unix/sysv/linux/setsockopt.c
new file mode 100644
index 0000000000..9252305d59
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/setsockopt.c
@@ -0,0 +1,35 @@
+/* Copyright (C) 2015-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <signal.h>
+#include <sys/socket.h>
+
+#include <socketcall.h>
+#include <kernel-features.h>
+#include <sys/syscall.h>
+
+int
+setsockopt (int fd, int level, int optname, const void *optval, socklen_t len)
+{
+#ifdef __ASSUME_SETSOCKOPT_SYSCALL
+ return INLINE_SYSCALL (setsockopt, 5, fd, level, optname, optval, len);
+#else
+ return SOCKETCALL (setsockopt, fd, level, optname, optval, len);
+#endif
+}
+weak_alias (setsockopt, __setsockopt)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/setsourcefilter.c b/REORG.TODO/sysdeps/unix/sysv/linux/setsourcefilter.c
new file mode 100644
index 0000000000..b4160ff4d8
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/setsourcefilter.c
@@ -0,0 +1,78 @@
+/* Set source filter. Linux version.
+ Copyright (C) 2004-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@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 <alloca.h>
+#include <errno.h>
+#include <stdlib.h>
+#include <string.h>
+#include <stdint.h>
+#include <netinet/in.h>
+#include <sys/socket.h>
+
+
+/* Defined in getsourcefilter.c. */
+extern int __get_sol (int af, socklen_t len);
+
+
+int
+setsourcefilter (int s, uint32_t interface, const struct sockaddr *group,
+ socklen_t grouplen, uint32_t fmode, uint32_t numsrc,
+ const struct sockaddr_storage *slist)
+{
+ /* We have to create an struct ip_msfilter object which we can pass
+ to the kernel. */
+ size_t needed = GROUP_FILTER_SIZE (numsrc);
+ int use_alloca = __libc_use_alloca (needed);
+
+ struct group_filter *gf;
+ if (use_alloca)
+ gf = (struct group_filter *) alloca (needed);
+ else
+ {
+ gf = (struct group_filter *) malloc (needed);
+ if (gf == NULL)
+ return -1;
+ }
+
+ gf->gf_interface = interface;
+ memcpy (&gf->gf_group, group, grouplen);
+ gf->gf_fmode = fmode;
+ gf->gf_numsrc = numsrc;
+ memcpy (gf->gf_slist, slist, numsrc * sizeof (struct sockaddr_storage));
+
+ /* We need to provide the appropriate socket level value. */
+ int result;
+ int sol = __get_sol (group->sa_family, grouplen);
+ if (sol == -1)
+ {
+ __set_errno (EINVAL);
+ result = -1;
+ }
+ else
+ result = __setsockopt (s, sol, MCAST_MSFILTER, gf, needed);
+
+ if (! use_alloca)
+ {
+ int save_errno = errno;
+ free (gf);
+ __set_errno (save_errno);
+ }
+
+ return result;
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/setuid.c b/REORG.TODO/sysdeps/unix/sysv/linux/setuid.c
new file mode 100644
index 0000000000..2d0775279f
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/setuid.c
@@ -0,0 +1,33 @@
+/* Copyright (C) 1998-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <unistd.h>
+#include <setxid.h>
+
+int
+__setuid (uid_t uid)
+{
+#ifdef __NR_setuid32
+ return INLINE_SETXID_SYSCALL (setuid32, 1, uid);
+#else
+ return INLINE_SETXID_SYSCALL (setuid, 1, uid);
+#endif
+}
+#ifndef __setuid
+weak_alias (__setuid, setuid)
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sh/Implies b/REORG.TODO/sysdeps/unix/sysv/linux/sh/Implies
new file mode 100644
index 0000000000..c15a97e222
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sh/Implies
@@ -0,0 +1 @@
+sh/nptl
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sh/Makefile b/REORG.TODO/sysdeps/unix/sysv/linux/sh/Makefile
new file mode 100644
index 0000000000..dd3b382ac1
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sh/Makefile
@@ -0,0 +1,16 @@
+ifeq ($(subdir),io)
+sysdep_routines += pipe
+endif
+
+ifeq ($(subdir),stdlib)
+gen-as-const-headers += ucontext_i.sym
+endif
+
+ifeq ($(subdir),misc)
+gen-as-const-headers += sigaltstack-offsets.sym
+endif
+
+ifeq ($(subdir),math)
+# The libm.so link can't find __fpscr_values
+libm.so-no-z-defs = yes
+endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sh/Versions b/REORG.TODO/sysdeps/unix/sysv/linux/sh/Versions
new file mode 100644
index 0000000000..e0938c4165
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sh/Versions
@@ -0,0 +1,33 @@
+libc {
+ GLIBC_2.2 {
+ # functions used in other libraries
+ __xstat64; __fxstat64; __lxstat64;
+
+ # a*
+ alphasort64;
+
+ # g*
+ glob64;
+
+ # New rlimit interface
+ getrlimit; setrlimit; getrlimit64;
+
+ # r*
+ readdir64; readdir64_r;
+
+ # s*
+ scandir64;
+
+ # v*
+ versionsort64;
+ }
+ GLIBC_2.3.3 {
+ posix_fadvise64; posix_fallocate64;
+ }
+ GLIBC_2.11 {
+ fallocate64;
+ }
+ GLIBC_2.16 {
+ fanotify_mark;
+ }
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sh/____longjmp_chk.S b/REORG.TODO/sysdeps/unix/sysv/linux/sh/____longjmp_chk.S
new file mode 100644
index 0000000000..386d7038a5
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sh/____longjmp_chk.S
@@ -0,0 +1,122 @@
+/* Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+
+#include <sigaltstack-offsets.h>
+
+ .section .rodata.str1.1,"aMS",@progbits,1
+ .type longjmp_msg,@object
+longjmp_msg:
+ .string "longjmp causes uninitialized stack frame"
+ .size longjmp_msg, .-longjmp_msg
+ .text
+
+#define __longjmp ____longjmp_chk
+
+#ifdef PIC
+# define CALL_FAIL \
+ mov.l .Lfail, r1; \
+ mov.l .Lstr, r4; \
+ mov.l r12, @-r15; \
+ cfi_remember_state; \
+ cfi_adjust_cfa_offset (4); \
+ cfi_rel_offset (r12, 0); \
+ mova .Lgot, r0; \
+ mov.l .Lgot, r12; \
+ add r0, r12; \
+ sts.l pr, @-r15; \
+ cfi_adjust_cfa_offset (4); \
+ cfi_rel_offset (pr, 0); \
+ bsrf r1; \
+ add r12, r4; \
+.Lfail0: \
+ /* Unreachable. */ \
+ .align 2; \
+.Lgot: \
+ .long _GLOBAL_OFFSET_TABLE_; \
+.Lstr: \
+ .long longjmp_msg@GOTOFF; \
+.Lfail: \
+ .long __GI___fortify_fail@PLT-(.Lfail0-.); \
+ cfi_restore_state;
+#else
+# define CALL_FAIL \
+ mov.l .Lfail, r1; \
+ mov.l .Lstr, r4; \
+ sts.l pr, @-r15; \
+ cfi_remember_state; \
+ cfi_adjust_cfa_offset (4); \
+ cfi_rel_offset (pr, 0); \
+ jsr @r1; \
+ nop; \
+ /* Unreachable. */ \
+ .align 2; \
+.Lstr: \
+ .long longjmp_msg; \
+.Lfail: \
+ .long __fortify_fail; \
+ cfi_restore_state;
+#endif
+
+#define CHECK_SP(reg) \
+ /* Jumping to a higher-address frame is always allowed. */ \
+ cmp/hs r15, reg; \
+ bt .Lok; \
+ \
+ mov.l r0, @-r15; /* The return value is already in here. */ \
+ cfi_adjust_cfa_offset (4); \
+ mov.l r1, @-r15; /* PTR_DEMANGLE helper. */ \
+ cfi_adjust_cfa_offset (4); \
+ mov.l r2, @-r15; /* The new SP value is already in here. */ \
+ cfi_adjust_cfa_offset (4); \
+ mov.l r4, @-r15; /* We'll still need this one. */ \
+ cfi_adjust_cfa_offset (4); \
+ add #-sizeSS, r15; \
+ cfi_adjust_cfa_offset (sizeSS); \
+ mov #0, r4; \
+ mov r15, r5; \
+ DO_CALL (sigaltstack, 2); \
+ /* Without working sigaltstack we cannot perform the test. */ \
+ tst r0, r0; \
+ bf .Lok2; \
+ mov.l @(oSS_FLAGS, r15), r0; \
+ tst #SS_ONSTACK, r0; \
+ bt .Lcall_fail; \
+ mov.l @(oSS_SIZE, r15), r2; \
+ mov.l @(oSS_SP, r15), r1; \
+ add r2, r1; \
+ sub r8, r1; \
+ cmp/hi r1, r2; \
+ bf .Lok2; \
+.Lcall_fail: \
+ CALL_FAIL \
+ \
+.Lok2: \
+ add #sizeSS, r15; \
+ cfi_adjust_cfa_offset (-sizeSS); \
+ mov.l @r15+, r4; \
+ cfi_adjust_cfa_offset (-4); \
+ mov.l @r15+, r2; \
+ cfi_adjust_cfa_offset (-4); \
+ mov.l @r15+, r1; \
+ cfi_adjust_cfa_offset (-4); \
+ mov.l @r15+, r0; \
+ cfi_adjust_cfa_offset (-4); \
+.Lok:
+
+#include <__longjmp.S>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sh/arch-fork.h b/REORG.TODO/sysdeps/unix/sysv/linux/sh/arch-fork.h
new file mode 100644
index 0000000000..ca42758989
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sh/arch-fork.h
@@ -0,0 +1,28 @@
+/* ARCH_FORK definition for Linux fork implementation. SH version.
+ Copyright (C) 2003-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sched.h>
+#include <signal.h>
+#include <sysdep.h>
+#include <tls.h>
+
+/* TLS pointer argument is passed as the 5-th argument. */
+#define ARCH_FORK() \
+ INLINE_SYSCALL (clone, 5, \
+ CLONE_CHILD_SETTID | CLONE_CHILD_CLEARTID | SIGCHLD, 0, \
+ NULL, &THREAD_SELF->tid, NULL)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sh/atomic-machine.h b/REORG.TODO/sysdeps/unix/sysv/linux/sh/atomic-machine.h
new file mode 100644
index 0000000000..5a7e953ac4
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sh/atomic-machine.h
@@ -0,0 +1,425 @@
+/* Atomic operations used inside libc. Linux/SH version.
+ Copyright (C) 2003-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <stdint.h>
+
+
+typedef int8_t atomic8_t;
+typedef uint8_t uatomic8_t;
+typedef int_fast8_t atomic_fast8_t;
+typedef uint_fast8_t uatomic_fast8_t;
+
+typedef int16_t atomic16_t;
+typedef uint16_t uatomic16_t;
+typedef int_fast16_t atomic_fast16_t;
+typedef uint_fast16_t uatomic_fast16_t;
+
+typedef int32_t atomic32_t;
+typedef uint32_t uatomic32_t;
+typedef int_fast32_t atomic_fast32_t;
+typedef uint_fast32_t uatomic_fast32_t;
+
+typedef int64_t atomic64_t;
+typedef uint64_t uatomic64_t;
+typedef int_fast64_t atomic_fast64_t;
+typedef uint_fast64_t uatomic_fast64_t;
+
+typedef intptr_t atomicptr_t;
+typedef uintptr_t uatomicptr_t;
+typedef intmax_t atomic_max_t;
+typedef uintmax_t uatomic_max_t;
+
+#define __HAVE_64B_ATOMICS 0
+#define USE_ATOMIC_COMPILER_BUILTINS 0
+
+/* XXX Is this actually correct? */
+#define ATOMIC_EXCHANGE_USES_CAS 1
+
+/* SH kernel has implemented a gUSA ("g" User Space Atomicity) support
+ for the user space atomicity. The atomicity macros use this scheme.
+
+ Reference:
+ Niibe Yutaka, "gUSA: Simple and Efficient User Space Atomicity
+ Emulation with Little Kernel Modification", Linux Conference 2002,
+ Japan. http://lc.linux.or.jp/lc2002/papers/niibe0919h.pdf (in
+ Japanese).
+
+ B.N. Bershad, D. Redell, and J. Ellis, "Fast Mutual Exclusion for
+ Uniprocessors", Proceedings of the Fifth Architectural Support for
+ Programming Languages and Operating Systems (ASPLOS), pp. 223-233,
+ October 1992. http://www.cs.washington.edu/homes/bershad/Papers/Rcs.ps
+
+ SuperH ABI:
+ r15: -(size of atomic instruction sequence) < 0
+ r0: end point
+ r1: saved stack pointer
+*/
+
+#define __arch_compare_and_exchange_val_8_acq(mem, newval, oldval) \
+ ({ __typeof (*(mem)) __result; \
+ __asm __volatile ("\
+ mova 1f,r0\n\
+ .align 2\n\
+ mov r15,r1\n\
+ mov #(0f-1f),r15\n\
+ 0: mov.b @%1,%0\n\
+ cmp/eq %0,%3\n\
+ bf 1f\n\
+ mov.b %2,@%1\n\
+ 1: mov r1,r15"\
+ : "=&r" (__result) : "u" (mem), "u" (newval), "u" (oldval) \
+ : "r0", "r1", "t", "memory"); \
+ __result; })
+
+#define __arch_compare_and_exchange_val_16_acq(mem, newval, oldval) \
+ ({ __typeof (*(mem)) __result; \
+ __asm __volatile ("\
+ mova 1f,r0\n\
+ mov r15,r1\n\
+ .align 2\n\
+ mov #(0f-1f),r15\n\
+ mov #-8,r15\n\
+ 0: mov.w @%1,%0\n\
+ cmp/eq %0,%3\n\
+ bf 1f\n\
+ mov.w %2,@%1\n\
+ 1: mov r1,r15"\
+ : "=&r" (__result) : "u" (mem), "u" (newval), "u" (oldval) \
+ : "r0", "r1", "t", "memory"); \
+ __result; })
+
+#define __arch_compare_and_exchange_val_32_acq(mem, newval, oldval) \
+ ({ __typeof (*(mem)) __result; \
+ __asm __volatile ("\
+ mova 1f,r0\n\
+ .align 2\n\
+ mov r15,r1\n\
+ mov #(0f-1f),r15\n\
+ 0: mov.l @%1,%0\n\
+ cmp/eq %0,%3\n\
+ bf 1f\n\
+ mov.l %2,@%1\n\
+ 1: mov r1,r15"\
+ : "=&r" (__result) : "u" (mem), "u" (newval), "u" (oldval) \
+ : "r0", "r1", "t", "memory"); \
+ __result; })
+
+/* XXX We do not really need 64-bit compare-and-exchange. At least
+ not in the moment. Using it would mean causing portability
+ problems since not many other 32-bit architectures have support for
+ such an operation. So don't define any code for now. */
+
+# define __arch_compare_and_exchange_val_64_acq(mem, newval, oldval) \
+ (abort (), (__typeof (*mem)) 0)
+
+#define atomic_exchange_and_add(mem, value) \
+ ({ __typeof (*(mem)) __result, __tmp, __value = (value); \
+ if (sizeof (*(mem)) == 1) \
+ __asm __volatile ("\
+ mova 1f,r0\n\
+ .align 2\n\
+ mov r15,r1\n\
+ mov #(0f-1f),r15\n\
+ 0: mov.b @%2,%0\n\
+ mov %1,r2\n\
+ add %0,r2\n\
+ mov.b r2,@%2\n\
+ 1: mov r1,r15"\
+ : "=&r" (__result), "=&r" (__tmp) : "u" (mem), "1" (__value) \
+ : "r0", "r1", "r2", "memory"); \
+ else if (sizeof (*(mem)) == 2) \
+ __asm __volatile ("\
+ mova 1f,r0\n\
+ .align 2\n\
+ mov r15,r1\n\
+ mov #(0f-1f),r15\n\
+ 0: mov.w @%2,%0\n\
+ mov %1,r2\n\
+ add %0,r2\n\
+ mov.w r2,@%2\n\
+ 1: mov r1,r15"\
+ : "=&r" (__result), "=&r" (__tmp) : "u" (mem), "1" (__value) \
+ : "r0", "r1", "r2", "memory"); \
+ else if (sizeof (*(mem)) == 4) \
+ __asm __volatile ("\
+ mova 1f,r0\n\
+ .align 2\n\
+ mov r15,r1\n\
+ mov #(0f-1f),r15\n\
+ 0: mov.l @%2,%0\n\
+ mov %1,r2\n\
+ add %0,r2\n\
+ mov.l r2,@%2\n\
+ 1: mov r1,r15"\
+ : "=&r" (__result), "=&r" (__tmp) : "u" (mem), "1" (__value) \
+ : "r0", "r1", "r2", "memory"); \
+ else \
+ { \
+ __typeof (mem) memp = (mem); \
+ do \
+ __result = *memp; \
+ while (__arch_compare_and_exchange_val_64_acq \
+ (memp, __result + __value, __result) == __result); \
+ (void) __value; \
+ } \
+ __result; })
+
+#define atomic_add(mem, value) \
+ (void) ({ __typeof (*(mem)) __tmp, __value = (value); \
+ if (sizeof (*(mem)) == 1) \
+ __asm __volatile ("\
+ mova 1f,r0\n\
+ mov r15,r1\n\
+ .align 2\n\
+ mov #(0f-1f),r15\n\
+ 0: mov.b @%1,r2\n\
+ add %0,r2\n\
+ mov.b r2,@%1\n\
+ 1: mov r1,r15"\
+ : "=&r" (__tmp) : "u" (mem), "0" (__value) \
+ : "r0", "r1", "r2", "memory"); \
+ else if (sizeof (*(mem)) == 2) \
+ __asm __volatile ("\
+ mova 1f,r0\n\
+ mov r15,r1\n\
+ .align 2\n\
+ mov #(0f-1f),r15\n\
+ 0: mov.w @%1,r2\n\
+ add %0,r2\n\
+ mov.w r2,@%1\n\
+ 1: mov r1,r15"\
+ : "=&r" (__tmp) : "u" (mem), "0" (__value) \
+ : "r0", "r1", "r2", "memory"); \
+ else if (sizeof (*(mem)) == 4) \
+ __asm __volatile ("\
+ mova 1f,r0\n\
+ mov r15,r1\n\
+ .align 2\n\
+ mov #(0f-1f),r15\n\
+ 0: mov.l @%1,r2\n\
+ add %0,r2\n\
+ mov.l r2,@%1\n\
+ 1: mov r1,r15"\
+ : "=&r" (__tmp) : "u" (mem), "0" (__value) \
+ : "r0", "r1", "r2", "memory"); \
+ else \
+ { \
+ __typeof (*(mem)) oldval; \
+ __typeof (mem) memp = (mem); \
+ do \
+ oldval = *memp; \
+ while (__arch_compare_and_exchange_val_64_acq \
+ (memp, oldval + __value, oldval) == oldval); \
+ (void) __value; \
+ } \
+ })
+
+#define atomic_add_negative(mem, value) \
+ ({ unsigned char __result; \
+ __typeof (*(mem)) __tmp, __value = (value); \
+ if (sizeof (*(mem)) == 1) \
+ __asm __volatile ("\
+ mova 1f,r0\n\
+ mov r15,r1\n\
+ .align 2\n\
+ mov #(0f-1f),r15\n\
+ 0: mov.b @%2,r2\n\
+ add %1,r2\n\
+ mov.b r2,@%2\n\
+ 1: mov r1,r15\n\
+ shal r2\n\
+ movt %0"\
+ : "=r" (__result), "=&r" (__tmp) : "u" (mem), "1" (__value) \
+ : "r0", "r1", "r2", "t", "memory"); \
+ else if (sizeof (*(mem)) == 2) \
+ __asm __volatile ("\
+ mova 1f,r0\n\
+ mov r15,r1\n\
+ .align 2\n\
+ mov #(0f-1f),r15\n\
+ 0: mov.w @%2,r2\n\
+ add %1,r2\n\
+ mov.w r2,@%2\n\
+ 1: mov r1,r15\n\
+ shal r2\n\
+ movt %0"\
+ : "=r" (__result), "=&r" (__tmp) : "u" (mem), "1" (__value) \
+ : "r0", "r1", "r2", "t", "memory"); \
+ else if (sizeof (*(mem)) == 4) \
+ __asm __volatile ("\
+ mova 1f,r0\n\
+ mov r15,r1\n\
+ .align 2\n\
+ mov #(0f-1f),r15\n\
+ 0: mov.l @%2,r2\n\
+ add %1,r2\n\
+ mov.l r2,@%2\n\
+ 1: mov r1,r15\n\
+ shal r2\n\
+ movt %0"\
+ : "=r" (__result), "=&r" (__tmp) : "u" (mem), "1" (__value) \
+ : "r0", "r1", "r2", "t", "memory"); \
+ else \
+ abort (); \
+ __result; })
+
+#define atomic_add_zero(mem, value) \
+ ({ unsigned char __result; \
+ __typeof (*(mem)) __tmp, __value = (value); \
+ if (sizeof (*(mem)) == 1) \
+ __asm __volatile ("\
+ mova 1f,r0\n\
+ mov r15,r1\n\
+ .align 2\n\
+ mov #(0f-1f),r15\n\
+ 0: mov.b @%2,r2\n\
+ add %1,r2\n\
+ mov.b r2,@%2\n\
+ 1: mov r1,r15\n\
+ tst r2,r2\n\
+ movt %0"\
+ : "=r" (__result), "=&r" (__tmp) : "u" (mem), "1" (__value) \
+ : "r0", "r1", "r2", "t", "memory"); \
+ else if (sizeof (*(mem)) == 2) \
+ __asm __volatile ("\
+ mova 1f,r0\n\
+ mov r15,r1\n\
+ .align 2\n\
+ mov #(0f-1f),r15\n\
+ 0: mov.w @%2,r2\n\
+ add %1,r2\n\
+ mov.w r2,@%2\n\
+ 1: mov r1,r15\n\
+ tst r2,r2\n\
+ movt %0"\
+ : "=r" (__result), "=&r" (__tmp) : "u" (mem), "1" (__value) \
+ : "r0", "r1", "r2", "t", "memory"); \
+ else if (sizeof (*(mem)) == 4) \
+ __asm __volatile ("\
+ mova 1f,r0\n\
+ mov r15,r1\n\
+ .align 2\n\
+ mov #(0f-1f),r15\n\
+ 0: mov.l @%2,r2\n\
+ add %1,r2\n\
+ mov.l r2,@%2\n\
+ 1: mov r1,r15\n\
+ tst r2,r2\n\
+ movt %0"\
+ : "=r" (__result), "=&r" (__tmp) : "u" (mem), "1" (__value) \
+ : "r0", "r1", "r2", "t", "memory"); \
+ else \
+ abort (); \
+ __result; })
+
+#define atomic_increment_and_test(mem) atomic_add_zero((mem), 1)
+#define atomic_decrement_and_test(mem) atomic_add_zero((mem), -1)
+
+#define atomic_bit_set(mem, bit) \
+ (void) ({ unsigned int __mask = 1 << (bit); \
+ if (sizeof (*(mem)) == 1) \
+ __asm __volatile ("\
+ mova 1f,r0\n\
+ mov r15,r1\n\
+ .align 2\n\
+ mov #(0f-1f),r15\n\
+ 0: mov.b @%0,r2\n\
+ or %1,r2\n\
+ mov.b r2,@%0\n\
+ 1: mov r1,r15"\
+ : : "u" (mem), "u" (__mask) \
+ : "r0", "r1", "r2", "memory"); \
+ else if (sizeof (*(mem)) == 2) \
+ __asm __volatile ("\
+ mova 1f,r0\n\
+ mov r15,r1\n\
+ .align 2\n\
+ mov #(0f-1f),r15\n\
+ 0: mov.w @%0,r2\n\
+ or %1,r2\n\
+ mov.w r2,@%0\n\
+ 1: mov r1,r15"\
+ : : "u" (mem), "u" (__mask) \
+ : "r0", "r1", "r2", "memory"); \
+ else if (sizeof (*(mem)) == 4) \
+ __asm __volatile ("\
+ mova 1f,r0\n\
+ mov r15,r1\n\
+ .align 2\n\
+ mov #(0f-1f),r15\n\
+ 0: mov.l @%0,r2\n\
+ or %1,r2\n\
+ mov.l r2,@%0\n\
+ 1: mov r1,r15"\
+ : : "u" (mem), "u" (__mask) \
+ : "r0", "r1", "r2", "memory"); \
+ else \
+ abort (); \
+ })
+
+#define atomic_bit_test_set(mem, bit) \
+ ({ unsigned int __mask = 1 << (bit); \
+ unsigned int __result = __mask; \
+ if (sizeof (*(mem)) == 1) \
+ __asm __volatile ("\
+ mova 1f,r0\n\
+ .align 2\n\
+ mov r15,r1\n\
+ mov #(0f-1f),r15\n\
+ 0: mov.b @%2,r2\n\
+ mov r2,r3\n\
+ or %1,r2\n\
+ mov.b r2,@%2\n\
+ 1: mov r1,r15\n\
+ and r3,%0"\
+ : "=&r" (__result), "=&r" (__mask) \
+ : "u" (mem), "0" (__result), "1" (__mask) \
+ : "r0", "r1", "r2", "r3", "memory"); \
+ else if (sizeof (*(mem)) == 2) \
+ __asm __volatile ("\
+ mova 1f,r0\n\
+ .align 2\n\
+ mov r15,r1\n\
+ mov #(0f-1f),r15\n\
+ 0: mov.w @%2,r2\n\
+ mov r2,r3\n\
+ or %1,r2\n\
+ mov.w %1,@%2\n\
+ 1: mov r1,r15\n\
+ and r3,%0"\
+ : "=&r" (__result), "=&r" (__mask) \
+ : "u" (mem), "0" (__result), "1" (__mask) \
+ : "r0", "r1", "r2", "r3", "memory"); \
+ else if (sizeof (*(mem)) == 4) \
+ __asm __volatile ("\
+ mova 1f,r0\n\
+ .align 2\n\
+ mov r15,r1\n\
+ mov #(0f-1f),r15\n\
+ 0: mov.l @%2,r2\n\
+ mov r2,r3\n\
+ or r2,%1\n\
+ mov.l %1,@%2\n\
+ 1: mov r1,r15\n\
+ and r3,%0"\
+ : "=&r" (__result), "=&r" (__mask) \
+ : "u" (mem), "0" (__result), "1" (__mask) \
+ : "r0", "r1", "r2", "r3", "memory"); \
+ else \
+ abort (); \
+ __result; })
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sh/bits/fcntl.h b/REORG.TODO/sysdeps/unix/sysv/linux/sh/bits/fcntl.h
new file mode 100644
index 0000000000..49ed86b460
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sh/bits/fcntl.h
@@ -0,0 +1,50 @@
+/* O_*, F_*, FD_* bit values for Linux/SH.
+ Copyright (C) 1995-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _FCNTL_H
+# error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
+#endif
+
+
+struct flock
+ {
+ short int l_type; /* Type of lock: F_RDLCK, F_WRLCK, or F_UNLCK. */
+ short int l_whence; /* Where `l_start' is relative to (like `lseek'). */
+#ifndef __USE_FILE_OFFSET64
+ __off_t l_start; /* Offset where the lock begins. */
+ __off_t l_len; /* Size of the locked area; zero means until EOF. */
+#else
+ __off64_t l_start; /* Offset where the lock begins. */
+ __off64_t l_len; /* Size of the locked area; zero means until EOF. */
+#endif
+ __pid_t l_pid; /* Process holding the lock. */
+ };
+
+#ifdef __USE_LARGEFILE64
+struct flock64
+ {
+ short int l_type; /* Type of lock: F_RDLCK, F_WRLCK, or F_UNLCK. */
+ short int l_whence; /* Where `l_start' is relative to (like `lseek'). */
+ __off64_t l_start; /* Offset where the lock begins. */
+ __off64_t l_len; /* Size of the locked area; zero means until EOF. */
+ __pid_t l_pid; /* Process holding the lock. */
+ };
+#endif
+
+/* Include generic Linux declarations. */
+#include <bits/fcntl-linux.h>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sh/bits/mman.h b/REORG.TODO/sysdeps/unix/sysv/linux/sh/bits/mman.h
new file mode 100644
index 0000000000..02588c6d6a
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sh/bits/mman.h
@@ -0,0 +1,40 @@
+/* Definitions for POSIX memory map interface. Linux/SH version.
+ Copyright (C) 1997-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_MMAN_H
+# error "Never include this file directly. Use <sys/mman.h> instead"
+#endif
+
+/* The following definitions basically come from the kernel headers.
+ But the kernel header is not namespace clean. */
+
+/* These are Linux-specific. */
+#ifdef __USE_MISC
+# define MAP_GROWSDOWN 0x0100 /* Stack-like segment. */
+# define MAP_DENYWRITE 0x0800 /* ETXTBSY */
+# define MAP_EXECUTABLE 0x1000 /* Mark it as an executable. */
+# define MAP_LOCKED 0x2000 /* Lock the mapping. */
+# define MAP_NORESERVE 0x4000 /* Don't check for reservations. */
+# define MAP_POPULATE 0x8000 /* Populate (prefault) pagetables. */
+# define MAP_NONBLOCK 0x10000 /* Do not block on IO. */
+# define MAP_STACK 0x20000 /* Allocation is for a stack. */
+# define MAP_HUGETLB 0x40000 /* Create huge page mapping. */
+#endif
+
+/* Include generic Linux declarations. */
+#include <bits/mman-linux.h>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sh/bits/shm.h b/REORG.TODO/sysdeps/unix/sysv/linux/sh/bits/shm.h
new file mode 100644
index 0000000000..d1f47ec820
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sh/bits/shm.h
@@ -0,0 +1,101 @@
+/* Copyright (C) 1995-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_SHM_H
+# error "Never include <bits/shm.h> directly; use <sys/shm.h> instead."
+#endif
+
+#include <bits/types.h>
+
+/* Permission flag for shmget. */
+#define SHM_R 0400 /* or S_IRUGO from <linux/stat.h> */
+#define SHM_W 0200 /* or S_IWUGO from <linux/stat.h> */
+
+/* Flags for `shmat'. */
+#define SHM_RDONLY 010000 /* attach read-only else read-write */
+#define SHM_RND 020000 /* round attach address to SHMLBA */
+#define SHM_REMAP 040000 /* take-over region on attach */
+#define SHM_EXEC 0100000 /* execution access */
+
+/* Commands for `shmctl'. */
+#define SHM_LOCK 11 /* lock segment (root only) */
+#define SHM_UNLOCK 12 /* unlock segment (root only) */
+
+__BEGIN_DECLS
+
+/* Segment low boundary address multiple. */
+#define SHMLBA 0x4000
+
+/* Type to count number of attaches. */
+typedef unsigned long int shmatt_t;
+
+/* Data structure describing a shared memory segment. */
+struct shmid_ds
+ {
+ struct ipc_perm shm_perm; /* operation permission struct */
+ size_t shm_segsz; /* size of segment in bytes */
+ __time_t shm_atime; /* time of last shmat() */
+ unsigned long int __glibc_reserved1;
+ __time_t shm_dtime; /* time of last shmdt() */
+ unsigned long int __glibc_reserved2;
+ __time_t shm_ctime; /* time of last change by shmctl() */
+ unsigned long int __glibc_reserved3;
+ __pid_t shm_cpid; /* pid of creator */
+ __pid_t shm_lpid; /* pid of last shmop */
+ shmatt_t shm_nattch; /* number of current attaches */
+ unsigned long int __glibc_reserved4;
+ unsigned long int __glibc_reserved5;
+ };
+
+#ifdef __USE_MISC
+
+/* ipcs ctl commands */
+# define SHM_STAT 13
+# define SHM_INFO 14
+
+/* shm_mode upper byte flags */
+# define SHM_DEST 01000 /* segment will be destroyed on last detach */
+# define SHM_LOCKED 02000 /* segment will not be swapped */
+# define SHM_HUGETLB 04000 /* segment is mapped via hugetlb */
+# define SHM_NORESERVE 010000 /* don't check for reservations */
+
+struct shminfo
+ {
+ unsigned long int shmmax;
+ unsigned long int shmmin;
+ unsigned long int shmmni;
+ unsigned long int shmseg;
+ unsigned long int shmall;
+ unsigned long int __glibc_reserved1;
+ unsigned long int __glibc_reserved2;
+ unsigned long int __glibc_reserved3;
+ unsigned long int __glibc_reserved4;
+ };
+
+struct shm_info
+ {
+ int used_ids;
+ unsigned long int shm_tot; /* total allocated shm */
+ unsigned long int shm_rss; /* total resident shm */
+ unsigned long int shm_swp; /* total swapped shm */
+ unsigned long int swap_attempts;
+ unsigned long int swap_successes;
+ };
+
+#endif /* __USE_MISC */
+
+__END_DECLS
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sh/brk.c b/REORG.TODO/sysdeps/unix/sysv/linux/sh/brk.c
new file mode 100644
index 0000000000..4d83acf3f5
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sh/brk.c
@@ -0,0 +1,47 @@
+/* brk system call for Linux/SH.
+ Copyright (C) 1999-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <unistd.h>
+#include <sysdep.h>
+
+/* This must be initialized data because commons can't have aliases. */
+void *__curbrk = 0;
+
+int
+__brk (void *addr)
+{
+ void *newbrk;
+ register long r3 asm ("%r3") = SYS_ify (brk);
+ register long r4 asm ("%r4") = (long)addr;
+
+ asm volatile ("trapa #0x11\n\t" SYSCALL_INST_PAD
+ : "=z"(newbrk)
+ : "r" (r3), "r" (r4));
+
+ __curbrk = newbrk;
+
+ if (newbrk < addr)
+ {
+ __set_errno (ENOMEM);
+ return -1;
+ }
+
+ return 0;
+}
+weak_alias (__brk, brk)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sh/c++-types.data b/REORG.TODO/sysdeps/unix/sysv/linux/sh/c++-types.data
new file mode 100644
index 0000000000..fde53bf337
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sh/c++-types.data
@@ -0,0 +1,67 @@
+blkcnt64_t:x
+blkcnt_t:l
+blksize_t:l
+caddr_t:Pc
+clockid_t:i
+clock_t:l
+daddr_t:i
+dev_t:y
+fd_mask:l
+fsblkcnt64_t:y
+fsblkcnt_t:m
+fsfilcnt64_t:y
+fsfilcnt_t:m
+fsid_t:8__fsid_t
+gid_t:j
+id_t:j
+ino64_t:y
+ino_t:m
+int16_t:s
+int32_t:i
+int64_t:x
+int8_t:a
+intptr_t:i
+key_t:i
+loff_t:x
+mode_t:j
+nlink_t:j
+off64_t:x
+off_t:l
+pid_t:i
+pthread_attr_t:14pthread_attr_t
+pthread_barrier_t:17pthread_barrier_t
+pthread_barrierattr_t:21pthread_barrierattr_t
+pthread_cond_t:14pthread_cond_t
+pthread_condattr_t:18pthread_condattr_t
+pthread_key_t:j
+pthread_mutex_t:15pthread_mutex_t
+pthread_mutexattr_t:19pthread_mutexattr_t
+pthread_once_t:i
+pthread_rwlock_t:16pthread_rwlock_t
+pthread_rwlockattr_t:20pthread_rwlockattr_t
+pthread_spinlock_t:i
+pthread_t:m
+quad_t:x
+register_t:i
+rlim64_t:y
+rlim_t:m
+sigset_t:10__sigset_t
+size_t:j
+socklen_t:j
+ssize_t:i
+suseconds_t:l
+time_t:l
+u_char:h
+uid_t:j
+uint:j
+u_int:j
+u_int16_t:t
+u_int32_t:j
+u_int64_t:y
+u_int8_t:h
+ulong:m
+u_long:m
+u_quad_t:y
+useconds_t:j
+ushort:t
+u_short:t
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sh/clone.S b/REORG.TODO/sysdeps/unix/sysv/linux/sh/clone.S
new file mode 100644
index 0000000000..9063b21928
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sh/clone.S
@@ -0,0 +1,103 @@
+/* Copyright (C) 1999-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+/* clone() is even more special than fork() as it mucks with stacks
+ and invokes a function in the right context after its all over. */
+
+#include <sysdep.h>
+#define _ERRNO_H 1
+#include <bits/errno.h>
+#include <tcb-offsets.h>
+
+/* int clone(int (*fn)(void *arg), void *child_stack, int flags, void *arg,
+ pid_t *ptid, void *tls, pid_t *ctid); */
+
+ .text
+ENTRY(__clone)
+ /* sanity check arguments. */
+ tst r4, r4
+ bt/s 0f
+ tst r5, r5
+ bf 1f
+0:
+ bra .Lsyscall_error
+ mov #-EINVAL,r0
+1:
+ /* insert the args onto the new stack */
+ mov.l r7, @-r5
+ /* save the function pointer as the 0th element */
+ mov.l r4, @-r5
+
+ /* do the system call */
+ mov r6, r4
+ mov.l @r15, r6
+ mov.l @(8,r15), r7
+ mov.l @(4,r15), r0
+ mov #+SYS_ify(clone), r3
+ trapa #0x15
+ mov r0, r1
+ mov #-12, r2
+ shad r2, r1
+ not r1, r1 // r1=0 means r0 = -1 to -4095
+ tst r1, r1 // i.e. error in linux
+ bf .Lclone_end
+.Lsyscall_error:
+ SYSCALL_ERROR_HANDLER
+.Lclone_end:
+ tst r0, r0
+ bt 2f
+.Lpseudo_end:
+ rts
+ nop
+2:
+ /* terminate the stack frame */
+ mov #0, r14
+
+ /* thread starts */
+ mov.l @r15, r1
+ jsr @r1
+ mov.l @(4,r15), r4
+
+ /* we are done, passing the return value through r0 */
+ mov.l .L3, r1
+#ifdef SHARED
+ mov.l r12, @-r15
+ sts.l pr, @-r15
+ mov r0, r4
+ mova .LG, r0
+ mov.l .LG, r12
+ add r0, r12
+ mova .L3, r0
+ add r0, r1
+ jsr @r1
+ nop
+ lds.l @r15+, pr
+ rts
+ mov.l @r15+, r12
+#else
+ jmp @r1
+ mov r0, r4
+#endif
+ .align 2
+.LG:
+ .long _GLOBAL_OFFSET_TABLE_
+.L3:
+ .long PLTJMP(C_SYMBOL_NAME(_exit))
+PSEUDO_END (__clone)
+
+libc_hidden_def (__clone)
+weak_alias (__clone, clone)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sh/configure b/REORG.TODO/sysdeps/unix/sysv/linux/sh/configure
new file mode 100644
index 0000000000..6c31f5e249
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sh/configure
@@ -0,0 +1,4 @@
+# This file is generated from configure.ac by Autoconf. DO NOT EDIT!
+ # Local configure fragment for sysdeps/unix/sysv/linux/sh.
+
+libc_cv_gcc_unwind_find_fde=yes
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sh/configure.ac b/REORG.TODO/sysdeps/unix/sysv/linux/sh/configure.ac
new file mode 100644
index 0000000000..85ef0f8ffd
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sh/configure.ac
@@ -0,0 +1,4 @@
+GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
+# Local configure fragment for sysdeps/unix/sysv/linux/sh.
+
+libc_cv_gcc_unwind_find_fde=yes
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sh/fcntl.c b/REORG.TODO/sysdeps/unix/sysv/linux/sh/fcntl.c
new file mode 100644
index 0000000000..ea951bc4f9
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sh/fcntl.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/i386/fcntl.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sh/fxstat.c b/REORG.TODO/sysdeps/unix/sysv/linux/sh/fxstat.c
new file mode 100644
index 0000000000..4f219f0b9d
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sh/fxstat.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/i386/fxstat.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sh/fxstatat.c b/REORG.TODO/sysdeps/unix/sysv/linux/sh/fxstatat.c
new file mode 100644
index 0000000000..0f8b3135d8
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sh/fxstatat.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/i386/fxstatat.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sh/kernel-features.h b/REORG.TODO/sysdeps/unix/sysv/linux/sh/kernel-features.h
new file mode 100644
index 0000000000..175b4f5433
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sh/kernel-features.h
@@ -0,0 +1,54 @@
+/* Set flags signalling availability of kernel features based on given
+ kernel version number. SH version.
+ Copyright (C) 1999-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef __KERNEL_FEATURES_SH__
+# define __KERNEL_FEATURES_SH__
+
+/* SH uses socketcall. */
+#define __ASSUME_SOCKETCALL 1
+
+/* These syscalls were added for SH in 2.6.37. */
+#define __ASSUME_SOCKET_SYSCALL 1
+#define __ASSUME_BIND_SYSCALL 1
+#define __ASSUME_CONNECT_SYSCALL 1
+#define __ASSUME_LISTEN_SYSCALL 1
+#define __ASSUME_GETSOCKNAME_SYSCALL 1
+#define __ASSUME_GETPEERNAME_SYSCALL 1
+#define __ASSUME_SOCKETPAIR_SYSCALL 1
+#define __ASSUME_SEND_SYSCALL 1
+#define __ASSUME_RECV_SYSCALL 1
+#define __ASSUME_SHUTDOWN_SYSCALL 1
+#define __ASSUME_GETSOCKOPT_SYSCALL 1
+#define __ASSUME_SETSOCKOPT_SYSCALL 1
+
+#include_next <kernel-features.h>
+
+/* SH does not have a 64-bit inode field. */
+#undef __ASSUME_ST_INO_64_BIT
+#define __ASSUME_ST_INO_64_BIT 0
+
+/* SH4 ABI does not really require argument alignment for 64-bits, but
+ the kernel interface for p{read,write}64 adds a dummy long argument
+ before the offset. */
+#define __ASSUME_PRW_DUMMY_ARG 1
+
+/* sh only supports ipc syscall. */
+#undef __ASSUME_DIRECT_SYSVIPC_SYSCALLS
+
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sh/ld.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/sh/ld.abilist
new file mode 100644
index 0000000000..fc1c60ea17
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sh/ld.abilist
@@ -0,0 +1,12 @@
+GLIBC_2.2 GLIBC_2.2 A
+GLIBC_2.2 __libc_stack_end D 0x4
+GLIBC_2.2 _dl_mcount F
+GLIBC_2.2 _r_debug D 0x14
+GLIBC_2.2 calloc F
+GLIBC_2.2 free F
+GLIBC_2.2 malloc F
+GLIBC_2.2 realloc F
+GLIBC_2.3 GLIBC_2.3 A
+GLIBC_2.3 __tls_get_addr F
+GLIBC_2.4 GLIBC_2.4 A
+GLIBC_2.4 __stack_chk_guard D 0x4
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sh/libBrokenLocale.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/sh/libBrokenLocale.abilist
new file mode 100644
index 0000000000..21343df781
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sh/libBrokenLocale.abilist
@@ -0,0 +1,2 @@
+GLIBC_2.2 GLIBC_2.2 A
+GLIBC_2.2 __ctype_get_mb_cur_max F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sh/libanl.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/sh/libanl.abilist
new file mode 100644
index 0000000000..edabfb436e
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sh/libanl.abilist
@@ -0,0 +1,5 @@
+GLIBC_2.2.3 GLIBC_2.2.3 A
+GLIBC_2.2.3 gai_cancel F
+GLIBC_2.2.3 gai_error F
+GLIBC_2.2.3 gai_suspend F
+GLIBC_2.2.3 getaddrinfo_a F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sh/libc.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/sh/libc.abilist
new file mode 100644
index 0000000000..f3a70a0f6f
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sh/libc.abilist
@@ -0,0 +1,2178 @@
+GCC_3.0 GCC_3.0 A
+GCC_3.0 _Unwind_Find_FDE F
+GCC_3.0 __deregister_frame_info_bases F
+GCC_3.0 __register_frame_info_bases F
+GCC_3.0 __register_frame_info_table_bases F
+GLIBC_2.10 GLIBC_2.10 A
+GLIBC_2.10 __cxa_at_quick_exit F
+GLIBC_2.10 __posix_getopt F
+GLIBC_2.10 accept4 F
+GLIBC_2.10 endsgent F
+GLIBC_2.10 fallocate F
+GLIBC_2.10 fgetsgent F
+GLIBC_2.10 fgetsgent_r F
+GLIBC_2.10 getsgent F
+GLIBC_2.10 getsgent_r F
+GLIBC_2.10 getsgnam F
+GLIBC_2.10 getsgnam_r F
+GLIBC_2.10 malloc_info F
+GLIBC_2.10 preadv F
+GLIBC_2.10 preadv64 F
+GLIBC_2.10 psiginfo F
+GLIBC_2.10 putsgent F
+GLIBC_2.10 pwritev F
+GLIBC_2.10 pwritev64 F
+GLIBC_2.10 quick_exit F
+GLIBC_2.10 register_printf_modifier F
+GLIBC_2.10 register_printf_specifier F
+GLIBC_2.10 register_printf_type F
+GLIBC_2.10 setsgent F
+GLIBC_2.10 sgetsgent F
+GLIBC_2.10 sgetsgent_r F
+GLIBC_2.11 GLIBC_2.11 A
+GLIBC_2.11 __longjmp_chk F
+GLIBC_2.11 execvpe F
+GLIBC_2.11 fallocate64 F
+GLIBC_2.11 mkostemps F
+GLIBC_2.11 mkostemps64 F
+GLIBC_2.11 mkstemps F
+GLIBC_2.11 mkstemps64 F
+GLIBC_2.12 GLIBC_2.12 A
+GLIBC_2.12 _sys_errlist D 0x21c
+GLIBC_2.12 _sys_nerr D 0x4
+GLIBC_2.12 ntp_gettimex F
+GLIBC_2.12 recvmmsg F
+GLIBC_2.12 sys_errlist D 0x21c
+GLIBC_2.12 sys_nerr D 0x4
+GLIBC_2.13 GLIBC_2.13 A
+GLIBC_2.13 fanotify_init F
+GLIBC_2.13 prlimit F
+GLIBC_2.13 prlimit64 F
+GLIBC_2.14 GLIBC_2.14 A
+GLIBC_2.14 clock_adjtime F
+GLIBC_2.14 name_to_handle_at F
+GLIBC_2.14 open_by_handle_at F
+GLIBC_2.14 sendmmsg F
+GLIBC_2.14 setns F
+GLIBC_2.14 syncfs F
+GLIBC_2.15 GLIBC_2.15 A
+GLIBC_2.15 __fdelt_chk F
+GLIBC_2.15 __fdelt_warn F
+GLIBC_2.15 posix_spawn F
+GLIBC_2.15 posix_spawnp F
+GLIBC_2.15 process_vm_readv F
+GLIBC_2.15 process_vm_writev F
+GLIBC_2.15 scandirat F
+GLIBC_2.15 scandirat64 F
+GLIBC_2.16 GLIBC_2.16 A
+GLIBC_2.16 __getauxval F
+GLIBC_2.16 __poll_chk F
+GLIBC_2.16 __ppoll_chk F
+GLIBC_2.16 aligned_alloc F
+GLIBC_2.16 c16rtomb F
+GLIBC_2.16 c32rtomb F
+GLIBC_2.16 fanotify_mark F
+GLIBC_2.16 getauxval F
+GLIBC_2.16 mbrtoc16 F
+GLIBC_2.16 mbrtoc32 F
+GLIBC_2.16 timespec_get F
+GLIBC_2.17 GLIBC_2.17 A
+GLIBC_2.17 clock_getcpuclockid F
+GLIBC_2.17 clock_getres F
+GLIBC_2.17 clock_gettime F
+GLIBC_2.17 clock_nanosleep F
+GLIBC_2.17 clock_settime F
+GLIBC_2.17 secure_getenv F
+GLIBC_2.18 GLIBC_2.18 A
+GLIBC_2.18 __cxa_thread_atexit_impl F
+GLIBC_2.2 GLIBC_2.2 A
+GLIBC_2.2 _Exit F
+GLIBC_2.2 _IO_2_1_stderr_ D 0x98
+GLIBC_2.2 _IO_2_1_stdin_ D 0x98
+GLIBC_2.2 _IO_2_1_stdout_ D 0x98
+GLIBC_2.2 _IO_adjust_column F
+GLIBC_2.2 _IO_adjust_wcolumn F
+GLIBC_2.2 _IO_default_doallocate F
+GLIBC_2.2 _IO_default_finish F
+GLIBC_2.2 _IO_default_pbackfail F
+GLIBC_2.2 _IO_default_uflow F
+GLIBC_2.2 _IO_default_xsgetn F
+GLIBC_2.2 _IO_default_xsputn F
+GLIBC_2.2 _IO_do_write F
+GLIBC_2.2 _IO_doallocbuf F
+GLIBC_2.2 _IO_fclose F
+GLIBC_2.2 _IO_fdopen F
+GLIBC_2.2 _IO_feof F
+GLIBC_2.2 _IO_ferror F
+GLIBC_2.2 _IO_fflush F
+GLIBC_2.2 _IO_fgetpos F
+GLIBC_2.2 _IO_fgetpos64 F
+GLIBC_2.2 _IO_fgets F
+GLIBC_2.2 _IO_file_attach F
+GLIBC_2.2 _IO_file_close F
+GLIBC_2.2 _IO_file_close_it F
+GLIBC_2.2 _IO_file_doallocate F
+GLIBC_2.2 _IO_file_finish F
+GLIBC_2.2 _IO_file_fopen F
+GLIBC_2.2 _IO_file_init F
+GLIBC_2.2 _IO_file_jumps D 0x54
+GLIBC_2.2 _IO_file_open F
+GLIBC_2.2 _IO_file_overflow F
+GLIBC_2.2 _IO_file_read F
+GLIBC_2.2 _IO_file_seek F
+GLIBC_2.2 _IO_file_seekoff F
+GLIBC_2.2 _IO_file_setbuf F
+GLIBC_2.2 _IO_file_stat F
+GLIBC_2.2 _IO_file_sync F
+GLIBC_2.2 _IO_file_underflow F
+GLIBC_2.2 _IO_file_write F
+GLIBC_2.2 _IO_file_xsputn F
+GLIBC_2.2 _IO_flockfile F
+GLIBC_2.2 _IO_flush_all F
+GLIBC_2.2 _IO_flush_all_linebuffered F
+GLIBC_2.2 _IO_fopen F
+GLIBC_2.2 _IO_fprintf F
+GLIBC_2.2 _IO_fputs F
+GLIBC_2.2 _IO_fread F
+GLIBC_2.2 _IO_free_backup_area F
+GLIBC_2.2 _IO_free_wbackup_area F
+GLIBC_2.2 _IO_fsetpos F
+GLIBC_2.2 _IO_fsetpos64 F
+GLIBC_2.2 _IO_ftell F
+GLIBC_2.2 _IO_ftrylockfile F
+GLIBC_2.2 _IO_funlockfile F
+GLIBC_2.2 _IO_fwrite F
+GLIBC_2.2 _IO_getc F
+GLIBC_2.2 _IO_getline F
+GLIBC_2.2 _IO_getline_info F
+GLIBC_2.2 _IO_gets F
+GLIBC_2.2 _IO_init F
+GLIBC_2.2 _IO_init_marker F
+GLIBC_2.2 _IO_init_wmarker F
+GLIBC_2.2 _IO_iter_begin F
+GLIBC_2.2 _IO_iter_end F
+GLIBC_2.2 _IO_iter_file F
+GLIBC_2.2 _IO_iter_next F
+GLIBC_2.2 _IO_least_wmarker F
+GLIBC_2.2 _IO_link_in F
+GLIBC_2.2 _IO_list_all D 0x4
+GLIBC_2.2 _IO_list_lock F
+GLIBC_2.2 _IO_list_resetlock F
+GLIBC_2.2 _IO_list_unlock F
+GLIBC_2.2 _IO_marker_delta F
+GLIBC_2.2 _IO_marker_difference F
+GLIBC_2.2 _IO_padn F
+GLIBC_2.2 _IO_peekc_locked F
+GLIBC_2.2 _IO_popen F
+GLIBC_2.2 _IO_printf F
+GLIBC_2.2 _IO_proc_close F
+GLIBC_2.2 _IO_proc_open F
+GLIBC_2.2 _IO_putc F
+GLIBC_2.2 _IO_puts F
+GLIBC_2.2 _IO_remove_marker F
+GLIBC_2.2 _IO_seekmark F
+GLIBC_2.2 _IO_seekoff F
+GLIBC_2.2 _IO_seekpos F
+GLIBC_2.2 _IO_seekwmark F
+GLIBC_2.2 _IO_setb F
+GLIBC_2.2 _IO_setbuffer F
+GLIBC_2.2 _IO_setvbuf F
+GLIBC_2.2 _IO_sgetn F
+GLIBC_2.2 _IO_sprintf F
+GLIBC_2.2 _IO_sputbackc F
+GLIBC_2.2 _IO_sputbackwc F
+GLIBC_2.2 _IO_sscanf F
+GLIBC_2.2 _IO_str_init_readonly F
+GLIBC_2.2 _IO_str_init_static F
+GLIBC_2.2 _IO_str_overflow F
+GLIBC_2.2 _IO_str_pbackfail F
+GLIBC_2.2 _IO_str_seekoff F
+GLIBC_2.2 _IO_str_underflow F
+GLIBC_2.2 _IO_sungetc F
+GLIBC_2.2 _IO_sungetwc F
+GLIBC_2.2 _IO_switch_to_get_mode F
+GLIBC_2.2 _IO_switch_to_main_wget_area F
+GLIBC_2.2 _IO_switch_to_wbackup_area F
+GLIBC_2.2 _IO_switch_to_wget_mode F
+GLIBC_2.2 _IO_un_link F
+GLIBC_2.2 _IO_ungetc F
+GLIBC_2.2 _IO_unsave_markers F
+GLIBC_2.2 _IO_unsave_wmarkers F
+GLIBC_2.2 _IO_vfprintf F
+GLIBC_2.2 _IO_vfscanf F
+GLIBC_2.2 _IO_vsprintf F
+GLIBC_2.2 _IO_wdefault_doallocate F
+GLIBC_2.2 _IO_wdefault_finish F
+GLIBC_2.2 _IO_wdefault_pbackfail F
+GLIBC_2.2 _IO_wdefault_uflow F
+GLIBC_2.2 _IO_wdefault_xsgetn F
+GLIBC_2.2 _IO_wdefault_xsputn F
+GLIBC_2.2 _IO_wdo_write F
+GLIBC_2.2 _IO_wdoallocbuf F
+GLIBC_2.2 _IO_wfile_jumps D 0x54
+GLIBC_2.2 _IO_wfile_overflow F
+GLIBC_2.2 _IO_wfile_seekoff F
+GLIBC_2.2 _IO_wfile_sync F
+GLIBC_2.2 _IO_wfile_underflow F
+GLIBC_2.2 _IO_wfile_xsputn F
+GLIBC_2.2 _IO_wmarker_delta F
+GLIBC_2.2 _IO_wsetb F
+GLIBC_2.2 __adjtimex F
+GLIBC_2.2 __after_morecore_hook D 0x4
+GLIBC_2.2 __argz_count F
+GLIBC_2.2 __argz_next F
+GLIBC_2.2 __argz_stringify F
+GLIBC_2.2 __asprintf F
+GLIBC_2.2 __assert F
+GLIBC_2.2 __assert_fail F
+GLIBC_2.2 __assert_perror_fail F
+GLIBC_2.2 __backtrace F
+GLIBC_2.2 __backtrace_symbols F
+GLIBC_2.2 __backtrace_symbols_fd F
+GLIBC_2.2 __bsd_getpgrp F
+GLIBC_2.2 __bzero F
+GLIBC_2.2 __check_rhosts_file D 0x4
+GLIBC_2.2 __clone F
+GLIBC_2.2 __close F
+GLIBC_2.2 __cmsg_nxthdr F
+GLIBC_2.2 __connect F
+GLIBC_2.2 __ctype32_b D 0x4
+GLIBC_2.2 __ctype32_tolower D 0x4
+GLIBC_2.2 __ctype32_toupper D 0x4
+GLIBC_2.2 __ctype_b D 0x4
+GLIBC_2.2 __ctype_get_mb_cur_max F
+GLIBC_2.2 __ctype_tolower D 0x4
+GLIBC_2.2 __ctype_toupper D 0x4
+GLIBC_2.2 __curbrk D 0x4
+GLIBC_2.2 __cxa_atexit F
+GLIBC_2.2 __cxa_finalize F
+GLIBC_2.2 __cyg_profile_func_enter F
+GLIBC_2.2 __cyg_profile_func_exit F
+GLIBC_2.2 __daylight D 0x4
+GLIBC_2.2 __dcgettext F
+GLIBC_2.2 __default_morecore F
+GLIBC_2.2 __deregister_frame_info F
+GLIBC_2.2 __dgettext F
+GLIBC_2.2 __dup2 F
+GLIBC_2.2 __duplocale F
+GLIBC_2.2 __endmntent F
+GLIBC_2.2 __environ D 0x4
+GLIBC_2.2 __errno_location F
+GLIBC_2.2 __fbufsize F
+GLIBC_2.2 __fcntl F
+GLIBC_2.2 __ffs F
+GLIBC_2.2 __finite F
+GLIBC_2.2 __finitef F
+GLIBC_2.2 __finitel F
+GLIBC_2.2 __flbf F
+GLIBC_2.2 __fork F
+GLIBC_2.2 __fpending F
+GLIBC_2.2 __fpu_control D 0x4
+GLIBC_2.2 __fpurge F
+GLIBC_2.2 __freadable F
+GLIBC_2.2 __freading F
+GLIBC_2.2 __free_hook D 0x4
+GLIBC_2.2 __freelocale F
+GLIBC_2.2 __fsetlocking F
+GLIBC_2.2 __fwritable F
+GLIBC_2.2 __fwriting F
+GLIBC_2.2 __fxstat F
+GLIBC_2.2 __fxstat64 F
+GLIBC_2.2 __getdelim F
+GLIBC_2.2 __getmntent_r F
+GLIBC_2.2 __getpagesize F
+GLIBC_2.2 __getpgid F
+GLIBC_2.2 __getpid F
+GLIBC_2.2 __gettimeofday F
+GLIBC_2.2 __gmtime_r F
+GLIBC_2.2 __h_errno_location F
+GLIBC_2.2 __isalnum_l F
+GLIBC_2.2 __isalpha_l F
+GLIBC_2.2 __isascii_l F
+GLIBC_2.2 __isblank_l F
+GLIBC_2.2 __iscntrl_l F
+GLIBC_2.2 __isdigit_l F
+GLIBC_2.2 __isgraph_l F
+GLIBC_2.2 __isinf F
+GLIBC_2.2 __isinff F
+GLIBC_2.2 __isinfl F
+GLIBC_2.2 __islower_l F
+GLIBC_2.2 __isnan F
+GLIBC_2.2 __isnanf F
+GLIBC_2.2 __isnanl F
+GLIBC_2.2 __isprint_l F
+GLIBC_2.2 __ispunct_l F
+GLIBC_2.2 __isspace_l F
+GLIBC_2.2 __isupper_l F
+GLIBC_2.2 __iswalnum_l F
+GLIBC_2.2 __iswalpha_l F
+GLIBC_2.2 __iswblank_l F
+GLIBC_2.2 __iswcntrl_l F
+GLIBC_2.2 __iswctype F
+GLIBC_2.2 __iswctype_l F
+GLIBC_2.2 __iswdigit_l F
+GLIBC_2.2 __iswgraph_l F
+GLIBC_2.2 __iswlower_l F
+GLIBC_2.2 __iswprint_l F
+GLIBC_2.2 __iswpunct_l F
+GLIBC_2.2 __iswspace_l F
+GLIBC_2.2 __iswupper_l F
+GLIBC_2.2 __iswxdigit_l F
+GLIBC_2.2 __isxdigit_l F
+GLIBC_2.2 __ivaliduser F
+GLIBC_2.2 __key_decryptsession_pk_LOCAL D 0x4
+GLIBC_2.2 __key_encryptsession_pk_LOCAL D 0x4
+GLIBC_2.2 __key_gendes_LOCAL D 0x4
+GLIBC_2.2 __libc_allocate_rtsig F
+GLIBC_2.2 __libc_calloc F
+GLIBC_2.2 __libc_current_sigrtmax F
+GLIBC_2.2 __libc_current_sigrtmin F
+GLIBC_2.2 __libc_free F
+GLIBC_2.2 __libc_freeres F
+GLIBC_2.2 __libc_init_first F
+GLIBC_2.2 __libc_mallinfo F
+GLIBC_2.2 __libc_malloc F
+GLIBC_2.2 __libc_mallopt F
+GLIBC_2.2 __libc_memalign F
+GLIBC_2.2 __libc_pvalloc F
+GLIBC_2.2 __libc_realloc F
+GLIBC_2.2 __libc_sa_len F
+GLIBC_2.2 __libc_start_main F
+GLIBC_2.2 __libc_valloc F
+GLIBC_2.2 __lseek F
+GLIBC_2.2 __lxstat F
+GLIBC_2.2 __lxstat64 F
+GLIBC_2.2 __malloc_hook D 0x4
+GLIBC_2.2 __malloc_initialize_hook D 0x4
+GLIBC_2.2 __mbrlen F
+GLIBC_2.2 __mbrtowc F
+GLIBC_2.2 __memalign_hook D 0x4
+GLIBC_2.2 __mempcpy F
+GLIBC_2.2 __mempcpy_small F
+GLIBC_2.2 __monstartup F
+GLIBC_2.2 __morecore D 0x4
+GLIBC_2.2 __newlocale F
+GLIBC_2.2 __nl_langinfo_l F
+GLIBC_2.2 __nss_configure_lookup F
+GLIBC_2.2 __nss_database_lookup F
+GLIBC_2.2 __nss_group_lookup F
+GLIBC_2.2 __nss_hosts_lookup F
+GLIBC_2.2 __nss_next F
+GLIBC_2.2 __nss_passwd_lookup F
+GLIBC_2.2 __open F
+GLIBC_2.2 __open64 F
+GLIBC_2.2 __overflow F
+GLIBC_2.2 __pipe F
+GLIBC_2.2 __poll F
+GLIBC_2.2 __pread64 F
+GLIBC_2.2 __printf_fp F
+GLIBC_2.2 __profile_frequency F
+GLIBC_2.2 __progname D 0x4
+GLIBC_2.2 __progname_full D 0x4
+GLIBC_2.2 __pwrite64 F
+GLIBC_2.2 __rawmemchr F
+GLIBC_2.2 __rcmd_errstr D 0x4
+GLIBC_2.2 __read F
+GLIBC_2.2 __realloc_hook D 0x4
+GLIBC_2.2 __register_frame_info F
+GLIBC_2.2 __res_init F
+GLIBC_2.2 __res_nclose F
+GLIBC_2.2 __res_ninit F
+GLIBC_2.2 __res_randomid F
+GLIBC_2.2 __res_state F
+GLIBC_2.2 __sbrk F
+GLIBC_2.2 __sched_get_priority_max F
+GLIBC_2.2 __sched_get_priority_min F
+GLIBC_2.2 __sched_getparam F
+GLIBC_2.2 __sched_getscheduler F
+GLIBC_2.2 __sched_setscheduler F
+GLIBC_2.2 __sched_yield F
+GLIBC_2.2 __secure_getenv F
+GLIBC_2.2 __select F
+GLIBC_2.2 __send F
+GLIBC_2.2 __setmntent F
+GLIBC_2.2 __setpgid F
+GLIBC_2.2 __sigaction F
+GLIBC_2.2 __sigaddset F
+GLIBC_2.2 __sigdelset F
+GLIBC_2.2 __sigismember F
+GLIBC_2.2 __signbit F
+GLIBC_2.2 __signbitf F
+GLIBC_2.2 __sigpause F
+GLIBC_2.2 __sigsetjmp F
+GLIBC_2.2 __sigsuspend F
+GLIBC_2.2 __statfs F
+GLIBC_2.2 __stpcpy F
+GLIBC_2.2 __stpcpy_small F
+GLIBC_2.2 __stpncpy F
+GLIBC_2.2 __strcasecmp F
+GLIBC_2.2 __strcasecmp_l F
+GLIBC_2.2 __strcasestr F
+GLIBC_2.2 __strcoll_l F
+GLIBC_2.2 __strcpy_small F
+GLIBC_2.2 __strcspn_c1 F
+GLIBC_2.2 __strcspn_c2 F
+GLIBC_2.2 __strcspn_c3 F
+GLIBC_2.2 __strdup F
+GLIBC_2.2 __strerror_r F
+GLIBC_2.2 __strfmon_l F
+GLIBC_2.2 __strncasecmp_l F
+GLIBC_2.2 __strndup F
+GLIBC_2.2 __strpbrk_c2 F
+GLIBC_2.2 __strpbrk_c3 F
+GLIBC_2.2 __strsep_1c F
+GLIBC_2.2 __strsep_2c F
+GLIBC_2.2 __strsep_3c F
+GLIBC_2.2 __strsep_g F
+GLIBC_2.2 __strspn_c1 F
+GLIBC_2.2 __strspn_c2 F
+GLIBC_2.2 __strspn_c3 F
+GLIBC_2.2 __strtod_internal F
+GLIBC_2.2 __strtod_l F
+GLIBC_2.2 __strtof_internal F
+GLIBC_2.2 __strtof_l F
+GLIBC_2.2 __strtok_r F
+GLIBC_2.2 __strtok_r_1c F
+GLIBC_2.2 __strtol_internal F
+GLIBC_2.2 __strtol_l F
+GLIBC_2.2 __strtold_internal F
+GLIBC_2.2 __strtold_l F
+GLIBC_2.2 __strtoll_internal F
+GLIBC_2.2 __strtoll_l F
+GLIBC_2.2 __strtoul_internal F
+GLIBC_2.2 __strtoul_l F
+GLIBC_2.2 __strtoull_internal F
+GLIBC_2.2 __strtoull_l F
+GLIBC_2.2 __strverscmp F
+GLIBC_2.2 __strxfrm_l F
+GLIBC_2.2 __sysconf F
+GLIBC_2.2 __sysctl F
+GLIBC_2.2 __sysv_signal F
+GLIBC_2.2 __timezone D 0x4
+GLIBC_2.2 __toascii_l F
+GLIBC_2.2 __tolower_l F
+GLIBC_2.2 __toupper_l F
+GLIBC_2.2 __towctrans F
+GLIBC_2.2 __towctrans_l F
+GLIBC_2.2 __towlower_l F
+GLIBC_2.2 __towupper_l F
+GLIBC_2.2 __tzname D 0x8
+GLIBC_2.2 __uflow F
+GLIBC_2.2 __underflow F
+GLIBC_2.2 __vfork F
+GLIBC_2.2 __vfscanf F
+GLIBC_2.2 __vsnprintf F
+GLIBC_2.2 __vsscanf F
+GLIBC_2.2 __wait F
+GLIBC_2.2 __waitpid F
+GLIBC_2.2 __wcscasecmp_l F
+GLIBC_2.2 __wcscoll_l F
+GLIBC_2.2 __wcsncasecmp_l F
+GLIBC_2.2 __wcstod_internal F
+GLIBC_2.2 __wcstod_l F
+GLIBC_2.2 __wcstof_internal F
+GLIBC_2.2 __wcstof_l F
+GLIBC_2.2 __wcstol_internal F
+GLIBC_2.2 __wcstol_l F
+GLIBC_2.2 __wcstold_internal F
+GLIBC_2.2 __wcstold_l F
+GLIBC_2.2 __wcstoll_internal F
+GLIBC_2.2 __wcstoll_l F
+GLIBC_2.2 __wcstoul_internal F
+GLIBC_2.2 __wcstoul_l F
+GLIBC_2.2 __wcstoull_internal F
+GLIBC_2.2 __wcstoull_l F
+GLIBC_2.2 __wcsxfrm_l F
+GLIBC_2.2 __wctrans_l F
+GLIBC_2.2 __wctype_l F
+GLIBC_2.2 __woverflow F
+GLIBC_2.2 __write F
+GLIBC_2.2 __wuflow F
+GLIBC_2.2 __wunderflow F
+GLIBC_2.2 __xmknod F
+GLIBC_2.2 __xpg_basename F
+GLIBC_2.2 __xpg_sigpause F
+GLIBC_2.2 __xstat F
+GLIBC_2.2 __xstat64 F
+GLIBC_2.2 _authenticate F
+GLIBC_2.2 _dl_mcount_wrapper F
+GLIBC_2.2 _dl_mcount_wrapper_check F
+GLIBC_2.2 _environ D 0x4
+GLIBC_2.2 _exit F
+GLIBC_2.2 _flushlbf F
+GLIBC_2.2 _libc_intl_domainname D 0x5
+GLIBC_2.2 _longjmp F
+GLIBC_2.2 _mcleanup F
+GLIBC_2.2 _mcount F
+GLIBC_2.2 _nl_default_dirname D 0x12
+GLIBC_2.2 _nl_domain_bindings D 0x4
+GLIBC_2.2 _nl_msg_cat_cntr D 0x4
+GLIBC_2.2 _null_auth D 0xc
+GLIBC_2.2 _obstack D 0x4
+GLIBC_2.2 _obstack_allocated_p F
+GLIBC_2.2 _obstack_begin F
+GLIBC_2.2 _obstack_begin_1 F
+GLIBC_2.2 _obstack_free F
+GLIBC_2.2 _obstack_memory_used F
+GLIBC_2.2 _obstack_newchunk F
+GLIBC_2.2 _res D 0x200
+GLIBC_2.2 _res_hconf D 0x30
+GLIBC_2.2 _rpc_dtablesize F
+GLIBC_2.2 _seterr_reply F
+GLIBC_2.2 _setjmp F
+GLIBC_2.2 _sys_errlist D 0x1f4
+GLIBC_2.2 _sys_nerr D 0x4
+GLIBC_2.2 _sys_siglist D 0x100
+GLIBC_2.2 _tolower F
+GLIBC_2.2 _toupper F
+GLIBC_2.2 a64l F
+GLIBC_2.2 abort F
+GLIBC_2.2 abs F
+GLIBC_2.2 accept F
+GLIBC_2.2 access F
+GLIBC_2.2 acct F
+GLIBC_2.2 addmntent F
+GLIBC_2.2 addseverity F
+GLIBC_2.2 adjtime F
+GLIBC_2.2 adjtimex F
+GLIBC_2.2 advance F
+GLIBC_2.2 alarm F
+GLIBC_2.2 alphasort F
+GLIBC_2.2 alphasort64 F
+GLIBC_2.2 argp_err_exit_status D 0x4
+GLIBC_2.2 argp_error F
+GLIBC_2.2 argp_failure F
+GLIBC_2.2 argp_help F
+GLIBC_2.2 argp_parse F
+GLIBC_2.2 argp_program_bug_address D 0x4
+GLIBC_2.2 argp_program_version D 0x4
+GLIBC_2.2 argp_program_version_hook D 0x4
+GLIBC_2.2 argp_state_help F
+GLIBC_2.2 argp_usage F
+GLIBC_2.2 argz_add F
+GLIBC_2.2 argz_add_sep F
+GLIBC_2.2 argz_append F
+GLIBC_2.2 argz_count F
+GLIBC_2.2 argz_create F
+GLIBC_2.2 argz_create_sep F
+GLIBC_2.2 argz_delete F
+GLIBC_2.2 argz_extract F
+GLIBC_2.2 argz_insert F
+GLIBC_2.2 argz_next F
+GLIBC_2.2 argz_replace F
+GLIBC_2.2 argz_stringify F
+GLIBC_2.2 asctime F
+GLIBC_2.2 asctime_r F
+GLIBC_2.2 asprintf F
+GLIBC_2.2 atexit F
+GLIBC_2.2 atof F
+GLIBC_2.2 atoi F
+GLIBC_2.2 atol F
+GLIBC_2.2 atoll F
+GLIBC_2.2 authdes_create F
+GLIBC_2.2 authdes_getucred F
+GLIBC_2.2 authdes_pk_create F
+GLIBC_2.2 authnone_create F
+GLIBC_2.2 authunix_create F
+GLIBC_2.2 authunix_create_default F
+GLIBC_2.2 backtrace F
+GLIBC_2.2 backtrace_symbols F
+GLIBC_2.2 backtrace_symbols_fd F
+GLIBC_2.2 basename F
+GLIBC_2.2 bcmp F
+GLIBC_2.2 bcopy F
+GLIBC_2.2 bdflush F
+GLIBC_2.2 bind F
+GLIBC_2.2 bind_textdomain_codeset F
+GLIBC_2.2 bindresvport F
+GLIBC_2.2 bindtextdomain F
+GLIBC_2.2 brk F
+GLIBC_2.2 bsd_signal F
+GLIBC_2.2 bsearch F
+GLIBC_2.2 btowc F
+GLIBC_2.2 bzero F
+GLIBC_2.2 calloc F
+GLIBC_2.2 callrpc F
+GLIBC_2.2 canonicalize_file_name F
+GLIBC_2.2 capget F
+GLIBC_2.2 capset F
+GLIBC_2.2 catclose F
+GLIBC_2.2 catgets F
+GLIBC_2.2 catopen F
+GLIBC_2.2 cbc_crypt F
+GLIBC_2.2 cfgetispeed F
+GLIBC_2.2 cfgetospeed F
+GLIBC_2.2 cfmakeraw F
+GLIBC_2.2 cfree F
+GLIBC_2.2 cfsetispeed F
+GLIBC_2.2 cfsetospeed F
+GLIBC_2.2 cfsetspeed F
+GLIBC_2.2 chdir F
+GLIBC_2.2 chflags F
+GLIBC_2.2 chmod F
+GLIBC_2.2 chown F
+GLIBC_2.2 chroot F
+GLIBC_2.2 clearenv F
+GLIBC_2.2 clearerr F
+GLIBC_2.2 clearerr_unlocked F
+GLIBC_2.2 clnt_broadcast F
+GLIBC_2.2 clnt_create F
+GLIBC_2.2 clnt_pcreateerror F
+GLIBC_2.2 clnt_perrno F
+GLIBC_2.2 clnt_perror F
+GLIBC_2.2 clnt_spcreateerror F
+GLIBC_2.2 clnt_sperrno F
+GLIBC_2.2 clnt_sperror F
+GLIBC_2.2 clntraw_create F
+GLIBC_2.2 clnttcp_create F
+GLIBC_2.2 clntudp_bufcreate F
+GLIBC_2.2 clntudp_create F
+GLIBC_2.2 clntunix_create F
+GLIBC_2.2 clock F
+GLIBC_2.2 clone F
+GLIBC_2.2 close F
+GLIBC_2.2 closedir F
+GLIBC_2.2 closelog F
+GLIBC_2.2 confstr F
+GLIBC_2.2 connect F
+GLIBC_2.2 copysign F
+GLIBC_2.2 copysignf F
+GLIBC_2.2 copysignl F
+GLIBC_2.2 creat F
+GLIBC_2.2 creat64 F
+GLIBC_2.2 create_module F
+GLIBC_2.2 ctermid F
+GLIBC_2.2 ctime F
+GLIBC_2.2 ctime_r F
+GLIBC_2.2 cuserid F
+GLIBC_2.2 daemon F
+GLIBC_2.2 daylight D 0x4
+GLIBC_2.2 dcgettext F
+GLIBC_2.2 dcngettext F
+GLIBC_2.2 delete_module F
+GLIBC_2.2 des_setparity F
+GLIBC_2.2 dgettext F
+GLIBC_2.2 difftime F
+GLIBC_2.2 dirfd F
+GLIBC_2.2 dirname F
+GLIBC_2.2 div F
+GLIBC_2.2 dngettext F
+GLIBC_2.2 dprintf F
+GLIBC_2.2 drand48 F
+GLIBC_2.2 drand48_r F
+GLIBC_2.2 dup F
+GLIBC_2.2 dup2 F
+GLIBC_2.2 dysize F
+GLIBC_2.2 ecb_crypt F
+GLIBC_2.2 ecvt F
+GLIBC_2.2 ecvt_r F
+GLIBC_2.2 endaliasent F
+GLIBC_2.2 endfsent F
+GLIBC_2.2 endgrent F
+GLIBC_2.2 endhostent F
+GLIBC_2.2 endmntent F
+GLIBC_2.2 endnetent F
+GLIBC_2.2 endnetgrent F
+GLIBC_2.2 endprotoent F
+GLIBC_2.2 endpwent F
+GLIBC_2.2 endrpcent F
+GLIBC_2.2 endservent F
+GLIBC_2.2 endspent F
+GLIBC_2.2 endttyent F
+GLIBC_2.2 endusershell F
+GLIBC_2.2 endutent F
+GLIBC_2.2 endutxent F
+GLIBC_2.2 environ D 0x4
+GLIBC_2.2 envz_add F
+GLIBC_2.2 envz_entry F
+GLIBC_2.2 envz_get F
+GLIBC_2.2 envz_merge F
+GLIBC_2.2 envz_remove F
+GLIBC_2.2 envz_strip F
+GLIBC_2.2 erand48 F
+GLIBC_2.2 erand48_r F
+GLIBC_2.2 err F
+GLIBC_2.2 error F
+GLIBC_2.2 error_at_line F
+GLIBC_2.2 error_message_count D 0x4
+GLIBC_2.2 error_one_per_line D 0x4
+GLIBC_2.2 error_print_progname D 0x4
+GLIBC_2.2 errx F
+GLIBC_2.2 ether_aton F
+GLIBC_2.2 ether_aton_r F
+GLIBC_2.2 ether_hostton F
+GLIBC_2.2 ether_line F
+GLIBC_2.2 ether_ntoa F
+GLIBC_2.2 ether_ntoa_r F
+GLIBC_2.2 ether_ntohost F
+GLIBC_2.2 euidaccess F
+GLIBC_2.2 execl F
+GLIBC_2.2 execle F
+GLIBC_2.2 execlp F
+GLIBC_2.2 execv F
+GLIBC_2.2 execve F
+GLIBC_2.2 execvp F
+GLIBC_2.2 exit F
+GLIBC_2.2 fattach F
+GLIBC_2.2 fchdir F
+GLIBC_2.2 fchflags F
+GLIBC_2.2 fchmod F
+GLIBC_2.2 fchown F
+GLIBC_2.2 fclose F
+GLIBC_2.2 fcloseall F
+GLIBC_2.2 fcntl F
+GLIBC_2.2 fcvt F
+GLIBC_2.2 fcvt_r F
+GLIBC_2.2 fdatasync F
+GLIBC_2.2 fdetach F
+GLIBC_2.2 fdopen F
+GLIBC_2.2 feof F
+GLIBC_2.2 feof_unlocked F
+GLIBC_2.2 ferror F
+GLIBC_2.2 ferror_unlocked F
+GLIBC_2.2 fexecve F
+GLIBC_2.2 fflush F
+GLIBC_2.2 fflush_unlocked F
+GLIBC_2.2 ffs F
+GLIBC_2.2 ffsl F
+GLIBC_2.2 ffsll F
+GLIBC_2.2 fgetc F
+GLIBC_2.2 fgetc_unlocked F
+GLIBC_2.2 fgetgrent F
+GLIBC_2.2 fgetgrent_r F
+GLIBC_2.2 fgetpos F
+GLIBC_2.2 fgetpos64 F
+GLIBC_2.2 fgetpwent F
+GLIBC_2.2 fgetpwent_r F
+GLIBC_2.2 fgets F
+GLIBC_2.2 fgets_unlocked F
+GLIBC_2.2 fgetspent F
+GLIBC_2.2 fgetspent_r F
+GLIBC_2.2 fgetwc F
+GLIBC_2.2 fgetwc_unlocked F
+GLIBC_2.2 fgetws F
+GLIBC_2.2 fgetws_unlocked F
+GLIBC_2.2 fileno F
+GLIBC_2.2 fileno_unlocked F
+GLIBC_2.2 finite F
+GLIBC_2.2 finitef F
+GLIBC_2.2 finitel F
+GLIBC_2.2 flock F
+GLIBC_2.2 flockfile F
+GLIBC_2.2 fmemopen F
+GLIBC_2.2 fmtmsg F
+GLIBC_2.2 fnmatch F
+GLIBC_2.2 fopen F
+GLIBC_2.2 fopen64 F
+GLIBC_2.2 fopencookie F
+GLIBC_2.2 fork F
+GLIBC_2.2 fpathconf F
+GLIBC_2.2 fprintf F
+GLIBC_2.2 fputc F
+GLIBC_2.2 fputc_unlocked F
+GLIBC_2.2 fputs F
+GLIBC_2.2 fputs_unlocked F
+GLIBC_2.2 fputwc F
+GLIBC_2.2 fputwc_unlocked F
+GLIBC_2.2 fputws F
+GLIBC_2.2 fputws_unlocked F
+GLIBC_2.2 fread F
+GLIBC_2.2 fread_unlocked F
+GLIBC_2.2 free F
+GLIBC_2.2 freeaddrinfo F
+GLIBC_2.2 freopen F
+GLIBC_2.2 freopen64 F
+GLIBC_2.2 frexp F
+GLIBC_2.2 frexpf F
+GLIBC_2.2 frexpl F
+GLIBC_2.2 fscanf F
+GLIBC_2.2 fseek F
+GLIBC_2.2 fseeko F
+GLIBC_2.2 fseeko64 F
+GLIBC_2.2 fsetpos F
+GLIBC_2.2 fsetpos64 F
+GLIBC_2.2 fstatfs F
+GLIBC_2.2 fstatfs64 F
+GLIBC_2.2 fstatvfs F
+GLIBC_2.2 fstatvfs64 F
+GLIBC_2.2 fsync F
+GLIBC_2.2 ftell F
+GLIBC_2.2 ftello F
+GLIBC_2.2 ftello64 F
+GLIBC_2.2 ftime F
+GLIBC_2.2 ftok F
+GLIBC_2.2 ftruncate F
+GLIBC_2.2 ftruncate64 F
+GLIBC_2.2 ftrylockfile F
+GLIBC_2.2 fts_children F
+GLIBC_2.2 fts_close F
+GLIBC_2.2 fts_open F
+GLIBC_2.2 fts_read F
+GLIBC_2.2 fts_set F
+GLIBC_2.2 ftw F
+GLIBC_2.2 ftw64 F
+GLIBC_2.2 funlockfile F
+GLIBC_2.2 fwide F
+GLIBC_2.2 fwprintf F
+GLIBC_2.2 fwrite F
+GLIBC_2.2 fwrite_unlocked F
+GLIBC_2.2 fwscanf F
+GLIBC_2.2 gai_strerror F
+GLIBC_2.2 gcvt F
+GLIBC_2.2 get_avphys_pages F
+GLIBC_2.2 get_current_dir_name F
+GLIBC_2.2 get_kernel_syms F
+GLIBC_2.2 get_myaddress F
+GLIBC_2.2 get_nprocs F
+GLIBC_2.2 get_nprocs_conf F
+GLIBC_2.2 get_phys_pages F
+GLIBC_2.2 getaddrinfo F
+GLIBC_2.2 getaliasbyname F
+GLIBC_2.2 getaliasbyname_r F
+GLIBC_2.2 getaliasent F
+GLIBC_2.2 getaliasent_r F
+GLIBC_2.2 getc F
+GLIBC_2.2 getc_unlocked F
+GLIBC_2.2 getchar F
+GLIBC_2.2 getchar_unlocked F
+GLIBC_2.2 getcontext F
+GLIBC_2.2 getcwd F
+GLIBC_2.2 getdate F
+GLIBC_2.2 getdate_err D 0x4
+GLIBC_2.2 getdate_r F
+GLIBC_2.2 getdelim F
+GLIBC_2.2 getdirentries F
+GLIBC_2.2 getdirentries64 F
+GLIBC_2.2 getdomainname F
+GLIBC_2.2 getdtablesize F
+GLIBC_2.2 getegid F
+GLIBC_2.2 getenv F
+GLIBC_2.2 geteuid F
+GLIBC_2.2 getfsent F
+GLIBC_2.2 getfsfile F
+GLIBC_2.2 getfsspec F
+GLIBC_2.2 getgid F
+GLIBC_2.2 getgrent F
+GLIBC_2.2 getgrent_r F
+GLIBC_2.2 getgrgid F
+GLIBC_2.2 getgrgid_r F
+GLIBC_2.2 getgrnam F
+GLIBC_2.2 getgrnam_r F
+GLIBC_2.2 getgroups F
+GLIBC_2.2 gethostbyaddr F
+GLIBC_2.2 gethostbyaddr_r F
+GLIBC_2.2 gethostbyname F
+GLIBC_2.2 gethostbyname2 F
+GLIBC_2.2 gethostbyname2_r F
+GLIBC_2.2 gethostbyname_r F
+GLIBC_2.2 gethostent F
+GLIBC_2.2 gethostent_r F
+GLIBC_2.2 gethostid F
+GLIBC_2.2 gethostname F
+GLIBC_2.2 getitimer F
+GLIBC_2.2 getline F
+GLIBC_2.2 getloadavg F
+GLIBC_2.2 getlogin F
+GLIBC_2.2 getlogin_r F
+GLIBC_2.2 getmntent F
+GLIBC_2.2 getmntent_r F
+GLIBC_2.2 getmsg F
+GLIBC_2.2 getnameinfo F
+GLIBC_2.2 getnetbyaddr F
+GLIBC_2.2 getnetbyaddr_r F
+GLIBC_2.2 getnetbyname F
+GLIBC_2.2 getnetbyname_r F
+GLIBC_2.2 getnetent F
+GLIBC_2.2 getnetent_r F
+GLIBC_2.2 getnetgrent F
+GLIBC_2.2 getnetgrent_r F
+GLIBC_2.2 getnetname F
+GLIBC_2.2 getopt F
+GLIBC_2.2 getopt_long F
+GLIBC_2.2 getopt_long_only F
+GLIBC_2.2 getpagesize F
+GLIBC_2.2 getpass F
+GLIBC_2.2 getpeername F
+GLIBC_2.2 getpgid F
+GLIBC_2.2 getpgrp F
+GLIBC_2.2 getpid F
+GLIBC_2.2 getpmsg F
+GLIBC_2.2 getppid F
+GLIBC_2.2 getpriority F
+GLIBC_2.2 getprotobyname F
+GLIBC_2.2 getprotobyname_r F
+GLIBC_2.2 getprotobynumber F
+GLIBC_2.2 getprotobynumber_r F
+GLIBC_2.2 getprotoent F
+GLIBC_2.2 getprotoent_r F
+GLIBC_2.2 getpt F
+GLIBC_2.2 getpublickey F
+GLIBC_2.2 getpw F
+GLIBC_2.2 getpwent F
+GLIBC_2.2 getpwent_r F
+GLIBC_2.2 getpwnam F
+GLIBC_2.2 getpwnam_r F
+GLIBC_2.2 getpwuid F
+GLIBC_2.2 getpwuid_r F
+GLIBC_2.2 getresgid F
+GLIBC_2.2 getresuid F
+GLIBC_2.2 getrlimit F
+GLIBC_2.2 getrlimit64 F
+GLIBC_2.2 getrpcbyname F
+GLIBC_2.2 getrpcbyname_r F
+GLIBC_2.2 getrpcbynumber F
+GLIBC_2.2 getrpcbynumber_r F
+GLIBC_2.2 getrpcent F
+GLIBC_2.2 getrpcent_r F
+GLIBC_2.2 getrpcport F
+GLIBC_2.2 getrusage F
+GLIBC_2.2 gets F
+GLIBC_2.2 getsecretkey F
+GLIBC_2.2 getservbyname F
+GLIBC_2.2 getservbyname_r F
+GLIBC_2.2 getservbyport F
+GLIBC_2.2 getservbyport_r F
+GLIBC_2.2 getservent F
+GLIBC_2.2 getservent_r F
+GLIBC_2.2 getsid F
+GLIBC_2.2 getsockname F
+GLIBC_2.2 getsockopt F
+GLIBC_2.2 getspent F
+GLIBC_2.2 getspent_r F
+GLIBC_2.2 getspnam F
+GLIBC_2.2 getspnam_r F
+GLIBC_2.2 getsubopt F
+GLIBC_2.2 gettext F
+GLIBC_2.2 gettimeofday F
+GLIBC_2.2 getttyent F
+GLIBC_2.2 getttynam F
+GLIBC_2.2 getuid F
+GLIBC_2.2 getusershell F
+GLIBC_2.2 getutent F
+GLIBC_2.2 getutent_r F
+GLIBC_2.2 getutid F
+GLIBC_2.2 getutid_r F
+GLIBC_2.2 getutline F
+GLIBC_2.2 getutline_r F
+GLIBC_2.2 getutmp F
+GLIBC_2.2 getutmpx F
+GLIBC_2.2 getutxent F
+GLIBC_2.2 getutxid F
+GLIBC_2.2 getutxline F
+GLIBC_2.2 getw F
+GLIBC_2.2 getwc F
+GLIBC_2.2 getwc_unlocked F
+GLIBC_2.2 getwchar F
+GLIBC_2.2 getwchar_unlocked F
+GLIBC_2.2 getwd F
+GLIBC_2.2 glob F
+GLIBC_2.2 glob64 F
+GLIBC_2.2 glob_pattern_p F
+GLIBC_2.2 globfree F
+GLIBC_2.2 globfree64 F
+GLIBC_2.2 gmtime F
+GLIBC_2.2 gmtime_r F
+GLIBC_2.2 gnu_get_libc_release F
+GLIBC_2.2 gnu_get_libc_version F
+GLIBC_2.2 grantpt F
+GLIBC_2.2 group_member F
+GLIBC_2.2 gsignal F
+GLIBC_2.2 gtty F
+GLIBC_2.2 h_errlist D 0x14
+GLIBC_2.2 h_nerr D 0x4
+GLIBC_2.2 hasmntopt F
+GLIBC_2.2 hcreate F
+GLIBC_2.2 hcreate_r F
+GLIBC_2.2 hdestroy F
+GLIBC_2.2 hdestroy_r F
+GLIBC_2.2 herror F
+GLIBC_2.2 host2netname F
+GLIBC_2.2 hsearch F
+GLIBC_2.2 hsearch_r F
+GLIBC_2.2 hstrerror F
+GLIBC_2.2 htonl F
+GLIBC_2.2 htons F
+GLIBC_2.2 iconv F
+GLIBC_2.2 iconv_close F
+GLIBC_2.2 iconv_open F
+GLIBC_2.2 if_freenameindex F
+GLIBC_2.2 if_indextoname F
+GLIBC_2.2 if_nameindex F
+GLIBC_2.2 if_nametoindex F
+GLIBC_2.2 imaxabs F
+GLIBC_2.2 imaxdiv F
+GLIBC_2.2 in6addr_any D 0x10
+GLIBC_2.2 in6addr_loopback D 0x10
+GLIBC_2.2 index F
+GLIBC_2.2 inet_addr F
+GLIBC_2.2 inet_aton F
+GLIBC_2.2 inet_lnaof F
+GLIBC_2.2 inet_makeaddr F
+GLIBC_2.2 inet_netof F
+GLIBC_2.2 inet_network F
+GLIBC_2.2 inet_nsap_addr F
+GLIBC_2.2 inet_nsap_ntoa F
+GLIBC_2.2 inet_ntoa F
+GLIBC_2.2 inet_ntop F
+GLIBC_2.2 inet_pton F
+GLIBC_2.2 init_module F
+GLIBC_2.2 initgroups F
+GLIBC_2.2 initstate F
+GLIBC_2.2 initstate_r F
+GLIBC_2.2 innetgr F
+GLIBC_2.2 insque F
+GLIBC_2.2 ioctl F
+GLIBC_2.2 iruserok F
+GLIBC_2.2 iruserok_af F
+GLIBC_2.2 isalnum F
+GLIBC_2.2 isalpha F
+GLIBC_2.2 isascii F
+GLIBC_2.2 isastream F
+GLIBC_2.2 isatty F
+GLIBC_2.2 isblank F
+GLIBC_2.2 iscntrl F
+GLIBC_2.2 isdigit F
+GLIBC_2.2 isfdtype F
+GLIBC_2.2 isgraph F
+GLIBC_2.2 isinf F
+GLIBC_2.2 isinff F
+GLIBC_2.2 isinfl F
+GLIBC_2.2 islower F
+GLIBC_2.2 isnan F
+GLIBC_2.2 isnanf F
+GLIBC_2.2 isnanl F
+GLIBC_2.2 isprint F
+GLIBC_2.2 ispunct F
+GLIBC_2.2 isspace F
+GLIBC_2.2 isupper F
+GLIBC_2.2 iswalnum F
+GLIBC_2.2 iswalpha F
+GLIBC_2.2 iswblank F
+GLIBC_2.2 iswcntrl F
+GLIBC_2.2 iswctype F
+GLIBC_2.2 iswdigit F
+GLIBC_2.2 iswgraph F
+GLIBC_2.2 iswlower F
+GLIBC_2.2 iswprint F
+GLIBC_2.2 iswpunct F
+GLIBC_2.2 iswspace F
+GLIBC_2.2 iswupper F
+GLIBC_2.2 iswxdigit F
+GLIBC_2.2 isxdigit F
+GLIBC_2.2 jrand48 F
+GLIBC_2.2 jrand48_r F
+GLIBC_2.2 key_decryptsession F
+GLIBC_2.2 key_decryptsession_pk F
+GLIBC_2.2 key_encryptsession F
+GLIBC_2.2 key_encryptsession_pk F
+GLIBC_2.2 key_gendes F
+GLIBC_2.2 key_get_conv F
+GLIBC_2.2 key_secretkey_is_set F
+GLIBC_2.2 key_setnet F
+GLIBC_2.2 key_setsecret F
+GLIBC_2.2 kill F
+GLIBC_2.2 killpg F
+GLIBC_2.2 klogctl F
+GLIBC_2.2 l64a F
+GLIBC_2.2 labs F
+GLIBC_2.2 lchown F
+GLIBC_2.2 lckpwdf F
+GLIBC_2.2 lcong48 F
+GLIBC_2.2 lcong48_r F
+GLIBC_2.2 ldexp F
+GLIBC_2.2 ldexpf F
+GLIBC_2.2 ldexpl F
+GLIBC_2.2 ldiv F
+GLIBC_2.2 lfind F
+GLIBC_2.2 link F
+GLIBC_2.2 listen F
+GLIBC_2.2 llabs F
+GLIBC_2.2 lldiv F
+GLIBC_2.2 llseek F
+GLIBC_2.2 loc1 D 0x4
+GLIBC_2.2 loc2 D 0x4
+GLIBC_2.2 localeconv F
+GLIBC_2.2 localtime F
+GLIBC_2.2 localtime_r F
+GLIBC_2.2 lockf F
+GLIBC_2.2 lockf64 F
+GLIBC_2.2 locs D 0x4
+GLIBC_2.2 longjmp F
+GLIBC_2.2 lrand48 F
+GLIBC_2.2 lrand48_r F
+GLIBC_2.2 lsearch F
+GLIBC_2.2 lseek F
+GLIBC_2.2 lseek64 F
+GLIBC_2.2 madvise F
+GLIBC_2.2 makecontext F
+GLIBC_2.2 mallinfo F
+GLIBC_2.2 malloc F
+GLIBC_2.2 malloc_get_state F
+GLIBC_2.2 malloc_set_state F
+GLIBC_2.2 malloc_stats F
+GLIBC_2.2 malloc_trim F
+GLIBC_2.2 malloc_usable_size F
+GLIBC_2.2 mallopt F
+GLIBC_2.2 mallwatch D 0x4
+GLIBC_2.2 mblen F
+GLIBC_2.2 mbrlen F
+GLIBC_2.2 mbrtowc F
+GLIBC_2.2 mbsinit F
+GLIBC_2.2 mbsnrtowcs F
+GLIBC_2.2 mbsrtowcs F
+GLIBC_2.2 mbstowcs F
+GLIBC_2.2 mbtowc F
+GLIBC_2.2 mcheck F
+GLIBC_2.2 mcheck_check_all F
+GLIBC_2.2 mcheck_pedantic F
+GLIBC_2.2 mcount F
+GLIBC_2.2 memalign F
+GLIBC_2.2 memccpy F
+GLIBC_2.2 memchr F
+GLIBC_2.2 memcmp F
+GLIBC_2.2 memcpy F
+GLIBC_2.2 memfrob F
+GLIBC_2.2 memmem F
+GLIBC_2.2 memmove F
+GLIBC_2.2 mempcpy F
+GLIBC_2.2 memrchr F
+GLIBC_2.2 memset F
+GLIBC_2.2 mincore F
+GLIBC_2.2 mkdir F
+GLIBC_2.2 mkdtemp F
+GLIBC_2.2 mkfifo F
+GLIBC_2.2 mkstemp F
+GLIBC_2.2 mkstemp64 F
+GLIBC_2.2 mktemp F
+GLIBC_2.2 mktime F
+GLIBC_2.2 mlock F
+GLIBC_2.2 mlockall F
+GLIBC_2.2 mmap F
+GLIBC_2.2 mmap64 F
+GLIBC_2.2 modf F
+GLIBC_2.2 modff F
+GLIBC_2.2 modfl F
+GLIBC_2.2 moncontrol F
+GLIBC_2.2 monstartup F
+GLIBC_2.2 mount F
+GLIBC_2.2 mprobe F
+GLIBC_2.2 mprotect F
+GLIBC_2.2 mrand48 F
+GLIBC_2.2 mrand48_r F
+GLIBC_2.2 mremap F
+GLIBC_2.2 msgctl F
+GLIBC_2.2 msgget F
+GLIBC_2.2 msgrcv F
+GLIBC_2.2 msgsnd F
+GLIBC_2.2 msync F
+GLIBC_2.2 mtrace F
+GLIBC_2.2 munlock F
+GLIBC_2.2 munlockall F
+GLIBC_2.2 munmap F
+GLIBC_2.2 muntrace F
+GLIBC_2.2 nanosleep F
+GLIBC_2.2 netname2host F
+GLIBC_2.2 netname2user F
+GLIBC_2.2 nfsservctl F
+GLIBC_2.2 nftw F
+GLIBC_2.2 nftw64 F
+GLIBC_2.2 ngettext F
+GLIBC_2.2 nice F
+GLIBC_2.2 nl_langinfo F
+GLIBC_2.2 nrand48 F
+GLIBC_2.2 nrand48_r F
+GLIBC_2.2 ntohl F
+GLIBC_2.2 ntohs F
+GLIBC_2.2 ntp_adjtime F
+GLIBC_2.2 ntp_gettime F
+GLIBC_2.2 obstack_alloc_failed_handler D 0x4
+GLIBC_2.2 obstack_exit_failure D 0x4
+GLIBC_2.2 obstack_free F
+GLIBC_2.2 obstack_printf F
+GLIBC_2.2 obstack_vprintf F
+GLIBC_2.2 on_exit F
+GLIBC_2.2 open F
+GLIBC_2.2 open64 F
+GLIBC_2.2 open_memstream F
+GLIBC_2.2 opendir F
+GLIBC_2.2 openlog F
+GLIBC_2.2 optarg D 0x4
+GLIBC_2.2 opterr D 0x4
+GLIBC_2.2 optind D 0x4
+GLIBC_2.2 optopt D 0x4
+GLIBC_2.2 parse_printf_format F
+GLIBC_2.2 passwd2des F
+GLIBC_2.2 pathconf F
+GLIBC_2.2 pause F
+GLIBC_2.2 pclose F
+GLIBC_2.2 perror F
+GLIBC_2.2 personality F
+GLIBC_2.2 pipe F
+GLIBC_2.2 pmap_getmaps F
+GLIBC_2.2 pmap_getport F
+GLIBC_2.2 pmap_rmtcall F
+GLIBC_2.2 pmap_set F
+GLIBC_2.2 pmap_unset F
+GLIBC_2.2 poll F
+GLIBC_2.2 popen F
+GLIBC_2.2 posix_fadvise F
+GLIBC_2.2 posix_fadvise64 F
+GLIBC_2.2 posix_fallocate F
+GLIBC_2.2 posix_fallocate64 F
+GLIBC_2.2 posix_madvise F
+GLIBC_2.2 posix_memalign F
+GLIBC_2.2 posix_spawn F
+GLIBC_2.2 posix_spawn_file_actions_addclose F
+GLIBC_2.2 posix_spawn_file_actions_adddup2 F
+GLIBC_2.2 posix_spawn_file_actions_addopen F
+GLIBC_2.2 posix_spawn_file_actions_destroy F
+GLIBC_2.2 posix_spawn_file_actions_init F
+GLIBC_2.2 posix_spawnattr_destroy F
+GLIBC_2.2 posix_spawnattr_getflags F
+GLIBC_2.2 posix_spawnattr_getpgroup F
+GLIBC_2.2 posix_spawnattr_getschedparam F
+GLIBC_2.2 posix_spawnattr_getschedpolicy F
+GLIBC_2.2 posix_spawnattr_getsigdefault F
+GLIBC_2.2 posix_spawnattr_getsigmask F
+GLIBC_2.2 posix_spawnattr_init F
+GLIBC_2.2 posix_spawnattr_setflags F
+GLIBC_2.2 posix_spawnattr_setpgroup F
+GLIBC_2.2 posix_spawnattr_setschedparam F
+GLIBC_2.2 posix_spawnattr_setschedpolicy F
+GLIBC_2.2 posix_spawnattr_setsigdefault F
+GLIBC_2.2 posix_spawnattr_setsigmask F
+GLIBC_2.2 posix_spawnp F
+GLIBC_2.2 prctl F
+GLIBC_2.2 pread F
+GLIBC_2.2 pread64 F
+GLIBC_2.2 printf F
+GLIBC_2.2 printf_size F
+GLIBC_2.2 printf_size_info F
+GLIBC_2.2 profil F
+GLIBC_2.2 program_invocation_name D 0x4
+GLIBC_2.2 program_invocation_short_name D 0x4
+GLIBC_2.2 pselect F
+GLIBC_2.2 psignal F
+GLIBC_2.2 pthread_attr_destroy F
+GLIBC_2.2 pthread_attr_getdetachstate F
+GLIBC_2.2 pthread_attr_getinheritsched F
+GLIBC_2.2 pthread_attr_getschedparam F
+GLIBC_2.2 pthread_attr_getschedpolicy F
+GLIBC_2.2 pthread_attr_getscope F
+GLIBC_2.2 pthread_attr_init F
+GLIBC_2.2 pthread_attr_setdetachstate F
+GLIBC_2.2 pthread_attr_setinheritsched F
+GLIBC_2.2 pthread_attr_setschedparam F
+GLIBC_2.2 pthread_attr_setschedpolicy F
+GLIBC_2.2 pthread_attr_setscope F
+GLIBC_2.2 pthread_cond_broadcast F
+GLIBC_2.2 pthread_cond_destroy F
+GLIBC_2.2 pthread_cond_init F
+GLIBC_2.2 pthread_cond_signal F
+GLIBC_2.2 pthread_cond_timedwait F
+GLIBC_2.2 pthread_cond_wait F
+GLIBC_2.2 pthread_condattr_destroy F
+GLIBC_2.2 pthread_condattr_init F
+GLIBC_2.2 pthread_equal F
+GLIBC_2.2 pthread_exit F
+GLIBC_2.2 pthread_getschedparam F
+GLIBC_2.2 pthread_mutex_destroy F
+GLIBC_2.2 pthread_mutex_init F
+GLIBC_2.2 pthread_mutex_lock F
+GLIBC_2.2 pthread_mutex_unlock F
+GLIBC_2.2 pthread_self F
+GLIBC_2.2 pthread_setcancelstate F
+GLIBC_2.2 pthread_setcanceltype F
+GLIBC_2.2 pthread_setschedparam F
+GLIBC_2.2 ptrace F
+GLIBC_2.2 ptsname F
+GLIBC_2.2 ptsname_r F
+GLIBC_2.2 putc F
+GLIBC_2.2 putc_unlocked F
+GLIBC_2.2 putchar F
+GLIBC_2.2 putchar_unlocked F
+GLIBC_2.2 putenv F
+GLIBC_2.2 putgrent F
+GLIBC_2.2 putmsg F
+GLIBC_2.2 putpmsg F
+GLIBC_2.2 putpwent F
+GLIBC_2.2 puts F
+GLIBC_2.2 putspent F
+GLIBC_2.2 pututline F
+GLIBC_2.2 pututxline F
+GLIBC_2.2 putw F
+GLIBC_2.2 putwc F
+GLIBC_2.2 putwc_unlocked F
+GLIBC_2.2 putwchar F
+GLIBC_2.2 putwchar_unlocked F
+GLIBC_2.2 pvalloc F
+GLIBC_2.2 pwrite F
+GLIBC_2.2 pwrite64 F
+GLIBC_2.2 qecvt F
+GLIBC_2.2 qecvt_r F
+GLIBC_2.2 qfcvt F
+GLIBC_2.2 qfcvt_r F
+GLIBC_2.2 qgcvt F
+GLIBC_2.2 qsort F
+GLIBC_2.2 query_module F
+GLIBC_2.2 quotactl F
+GLIBC_2.2 raise F
+GLIBC_2.2 rand F
+GLIBC_2.2 rand_r F
+GLIBC_2.2 random F
+GLIBC_2.2 random_r F
+GLIBC_2.2 rawmemchr F
+GLIBC_2.2 rcmd F
+GLIBC_2.2 rcmd_af F
+GLIBC_2.2 re_comp F
+GLIBC_2.2 re_compile_fastmap F
+GLIBC_2.2 re_compile_pattern F
+GLIBC_2.2 re_exec F
+GLIBC_2.2 re_match F
+GLIBC_2.2 re_match_2 F
+GLIBC_2.2 re_max_failures D 0x4
+GLIBC_2.2 re_search F
+GLIBC_2.2 re_search_2 F
+GLIBC_2.2 re_set_registers F
+GLIBC_2.2 re_set_syntax F
+GLIBC_2.2 re_syntax_options D 0x4
+GLIBC_2.2 read F
+GLIBC_2.2 readdir F
+GLIBC_2.2 readdir64 F
+GLIBC_2.2 readdir64_r F
+GLIBC_2.2 readdir_r F
+GLIBC_2.2 readlink F
+GLIBC_2.2 readv F
+GLIBC_2.2 realloc F
+GLIBC_2.2 realpath F
+GLIBC_2.2 reboot F
+GLIBC_2.2 recv F
+GLIBC_2.2 recvfrom F
+GLIBC_2.2 recvmsg F
+GLIBC_2.2 regcomp F
+GLIBC_2.2 regerror F
+GLIBC_2.2 regexec F
+GLIBC_2.2 regfree F
+GLIBC_2.2 register_printf_function F
+GLIBC_2.2 registerrpc F
+GLIBC_2.2 remove F
+GLIBC_2.2 remque F
+GLIBC_2.2 rename F
+GLIBC_2.2 revoke F
+GLIBC_2.2 rewind F
+GLIBC_2.2 rewinddir F
+GLIBC_2.2 rexec F
+GLIBC_2.2 rexec_af F
+GLIBC_2.2 rexecoptions D 0x4
+GLIBC_2.2 rindex F
+GLIBC_2.2 rmdir F
+GLIBC_2.2 rpc_createerr D 0x10
+GLIBC_2.2 rpmatch F
+GLIBC_2.2 rresvport F
+GLIBC_2.2 rresvport_af F
+GLIBC_2.2 rtime F
+GLIBC_2.2 ruserok F
+GLIBC_2.2 ruserok_af F
+GLIBC_2.2 ruserpass F
+GLIBC_2.2 sbrk F
+GLIBC_2.2 scalbn F
+GLIBC_2.2 scalbnf F
+GLIBC_2.2 scalbnl F
+GLIBC_2.2 scandir F
+GLIBC_2.2 scandir64 F
+GLIBC_2.2 scanf F
+GLIBC_2.2 sched_get_priority_max F
+GLIBC_2.2 sched_get_priority_min F
+GLIBC_2.2 sched_getparam F
+GLIBC_2.2 sched_getscheduler F
+GLIBC_2.2 sched_rr_get_interval F
+GLIBC_2.2 sched_setparam F
+GLIBC_2.2 sched_setscheduler F
+GLIBC_2.2 sched_yield F
+GLIBC_2.2 seed48 F
+GLIBC_2.2 seed48_r F
+GLIBC_2.2 seekdir F
+GLIBC_2.2 select F
+GLIBC_2.2 semctl F
+GLIBC_2.2 semget F
+GLIBC_2.2 semop F
+GLIBC_2.2 send F
+GLIBC_2.2 sendfile F
+GLIBC_2.2 sendmsg F
+GLIBC_2.2 sendto F
+GLIBC_2.2 setaliasent F
+GLIBC_2.2 setbuf F
+GLIBC_2.2 setbuffer F
+GLIBC_2.2 setcontext F
+GLIBC_2.2 setdomainname F
+GLIBC_2.2 setegid F
+GLIBC_2.2 setenv F
+GLIBC_2.2 seteuid F
+GLIBC_2.2 setfsent F
+GLIBC_2.2 setfsgid F
+GLIBC_2.2 setfsuid F
+GLIBC_2.2 setgid F
+GLIBC_2.2 setgrent F
+GLIBC_2.2 setgroups F
+GLIBC_2.2 sethostent F
+GLIBC_2.2 sethostid F
+GLIBC_2.2 sethostname F
+GLIBC_2.2 setitimer F
+GLIBC_2.2 setjmp F
+GLIBC_2.2 setlinebuf F
+GLIBC_2.2 setlocale F
+GLIBC_2.2 setlogin F
+GLIBC_2.2 setlogmask F
+GLIBC_2.2 setmntent F
+GLIBC_2.2 setnetent F
+GLIBC_2.2 setnetgrent F
+GLIBC_2.2 setpgid F
+GLIBC_2.2 setpgrp F
+GLIBC_2.2 setpriority F
+GLIBC_2.2 setprotoent F
+GLIBC_2.2 setpwent F
+GLIBC_2.2 setregid F
+GLIBC_2.2 setresgid F
+GLIBC_2.2 setresuid F
+GLIBC_2.2 setreuid F
+GLIBC_2.2 setrlimit F
+GLIBC_2.2 setrlimit64 F
+GLIBC_2.2 setrpcent F
+GLIBC_2.2 setservent F
+GLIBC_2.2 setsid F
+GLIBC_2.2 setsockopt F
+GLIBC_2.2 setspent F
+GLIBC_2.2 setstate F
+GLIBC_2.2 setstate_r F
+GLIBC_2.2 settimeofday F
+GLIBC_2.2 setttyent F
+GLIBC_2.2 setuid F
+GLIBC_2.2 setusershell F
+GLIBC_2.2 setutent F
+GLIBC_2.2 setutxent F
+GLIBC_2.2 setvbuf F
+GLIBC_2.2 sgetspent F
+GLIBC_2.2 sgetspent_r F
+GLIBC_2.2 shmat F
+GLIBC_2.2 shmctl F
+GLIBC_2.2 shmdt F
+GLIBC_2.2 shmget F
+GLIBC_2.2 shutdown F
+GLIBC_2.2 sigaction F
+GLIBC_2.2 sigaddset F
+GLIBC_2.2 sigaltstack F
+GLIBC_2.2 sigandset F
+GLIBC_2.2 sigblock F
+GLIBC_2.2 sigdelset F
+GLIBC_2.2 sigemptyset F
+GLIBC_2.2 sigfillset F
+GLIBC_2.2 siggetmask F
+GLIBC_2.2 sighold F
+GLIBC_2.2 sigignore F
+GLIBC_2.2 siginterrupt F
+GLIBC_2.2 sigisemptyset F
+GLIBC_2.2 sigismember F
+GLIBC_2.2 siglongjmp F
+GLIBC_2.2 signal F
+GLIBC_2.2 sigorset F
+GLIBC_2.2 sigpause F
+GLIBC_2.2 sigpending F
+GLIBC_2.2 sigprocmask F
+GLIBC_2.2 sigqueue F
+GLIBC_2.2 sigrelse F
+GLIBC_2.2 sigreturn F
+GLIBC_2.2 sigset F
+GLIBC_2.2 sigsetmask F
+GLIBC_2.2 sigstack F
+GLIBC_2.2 sigsuspend F
+GLIBC_2.2 sigtimedwait F
+GLIBC_2.2 sigvec F
+GLIBC_2.2 sigwait F
+GLIBC_2.2 sigwaitinfo F
+GLIBC_2.2 sleep F
+GLIBC_2.2 snprintf F
+GLIBC_2.2 socket F
+GLIBC_2.2 socketpair F
+GLIBC_2.2 sprintf F
+GLIBC_2.2 srand F
+GLIBC_2.2 srand48 F
+GLIBC_2.2 srand48_r F
+GLIBC_2.2 srandom F
+GLIBC_2.2 srandom_r F
+GLIBC_2.2 sscanf F
+GLIBC_2.2 ssignal F
+GLIBC_2.2 sstk F
+GLIBC_2.2 statfs F
+GLIBC_2.2 statfs64 F
+GLIBC_2.2 statvfs F
+GLIBC_2.2 statvfs64 F
+GLIBC_2.2 stderr D 0x4
+GLIBC_2.2 stdin D 0x4
+GLIBC_2.2 stdout D 0x4
+GLIBC_2.2 step F
+GLIBC_2.2 stime F
+GLIBC_2.2 stpcpy F
+GLIBC_2.2 stpncpy F
+GLIBC_2.2 strcasecmp F
+GLIBC_2.2 strcasestr F
+GLIBC_2.2 strcat F
+GLIBC_2.2 strchr F
+GLIBC_2.2 strchrnul F
+GLIBC_2.2 strcmp F
+GLIBC_2.2 strcoll F
+GLIBC_2.2 strcpy F
+GLIBC_2.2 strcspn F
+GLIBC_2.2 strdup F
+GLIBC_2.2 strerror F
+GLIBC_2.2 strerror_r F
+GLIBC_2.2 strfmon F
+GLIBC_2.2 strfry F
+GLIBC_2.2 strftime F
+GLIBC_2.2 strlen F
+GLIBC_2.2 strncasecmp F
+GLIBC_2.2 strncat F
+GLIBC_2.2 strncmp F
+GLIBC_2.2 strncpy F
+GLIBC_2.2 strndup F
+GLIBC_2.2 strnlen F
+GLIBC_2.2 strpbrk F
+GLIBC_2.2 strptime F
+GLIBC_2.2 strrchr F
+GLIBC_2.2 strsep F
+GLIBC_2.2 strsignal F
+GLIBC_2.2 strspn F
+GLIBC_2.2 strstr F
+GLIBC_2.2 strtod F
+GLIBC_2.2 strtof F
+GLIBC_2.2 strtoimax F
+GLIBC_2.2 strtok F
+GLIBC_2.2 strtok_r F
+GLIBC_2.2 strtol F
+GLIBC_2.2 strtold F
+GLIBC_2.2 strtoll F
+GLIBC_2.2 strtoq F
+GLIBC_2.2 strtoul F
+GLIBC_2.2 strtoull F
+GLIBC_2.2 strtoumax F
+GLIBC_2.2 strtouq F
+GLIBC_2.2 strverscmp F
+GLIBC_2.2 strxfrm F
+GLIBC_2.2 stty F
+GLIBC_2.2 svc_exit F
+GLIBC_2.2 svc_fdset D 0x80
+GLIBC_2.2 svc_getreq F
+GLIBC_2.2 svc_getreq_common F
+GLIBC_2.2 svc_getreq_poll F
+GLIBC_2.2 svc_getreqset F
+GLIBC_2.2 svc_max_pollfd D 0x4
+GLIBC_2.2 svc_pollfd D 0x4
+GLIBC_2.2 svc_register F
+GLIBC_2.2 svc_run F
+GLIBC_2.2 svc_sendreply F
+GLIBC_2.2 svc_unregister F
+GLIBC_2.2 svcauthdes_stats D 0xc
+GLIBC_2.2 svcerr_auth F
+GLIBC_2.2 svcerr_decode F
+GLIBC_2.2 svcerr_noproc F
+GLIBC_2.2 svcerr_noprog F
+GLIBC_2.2 svcerr_progvers F
+GLIBC_2.2 svcerr_systemerr F
+GLIBC_2.2 svcerr_weakauth F
+GLIBC_2.2 svcfd_create F
+GLIBC_2.2 svcraw_create F
+GLIBC_2.2 svctcp_create F
+GLIBC_2.2 svcudp_bufcreate F
+GLIBC_2.2 svcudp_create F
+GLIBC_2.2 svcudp_enablecache F
+GLIBC_2.2 svcunix_create F
+GLIBC_2.2 svcunixfd_create F
+GLIBC_2.2 swab F
+GLIBC_2.2 swapcontext F
+GLIBC_2.2 swapoff F
+GLIBC_2.2 swapon F
+GLIBC_2.2 swprintf F
+GLIBC_2.2 swscanf F
+GLIBC_2.2 symlink F
+GLIBC_2.2 sync F
+GLIBC_2.2 sys_errlist D 0x1f4
+GLIBC_2.2 sys_nerr D 0x4
+GLIBC_2.2 sys_sigabbrev D 0x100
+GLIBC_2.2 sys_siglist D 0x100
+GLIBC_2.2 syscall F
+GLIBC_2.2 sysconf F
+GLIBC_2.2 sysctl F
+GLIBC_2.2 sysinfo F
+GLIBC_2.2 syslog F
+GLIBC_2.2 system F
+GLIBC_2.2 sysv_signal F
+GLIBC_2.2 tcdrain F
+GLIBC_2.2 tcflow F
+GLIBC_2.2 tcflush F
+GLIBC_2.2 tcgetattr F
+GLIBC_2.2 tcgetpgrp F
+GLIBC_2.2 tcgetsid F
+GLIBC_2.2 tcsendbreak F
+GLIBC_2.2 tcsetattr F
+GLIBC_2.2 tcsetpgrp F
+GLIBC_2.2 tdelete F
+GLIBC_2.2 tdestroy F
+GLIBC_2.2 telldir F
+GLIBC_2.2 tempnam F
+GLIBC_2.2 textdomain F
+GLIBC_2.2 tfind F
+GLIBC_2.2 time F
+GLIBC_2.2 timegm F
+GLIBC_2.2 timelocal F
+GLIBC_2.2 times F
+GLIBC_2.2 timezone D 0x4
+GLIBC_2.2 tmpfile F
+GLIBC_2.2 tmpfile64 F
+GLIBC_2.2 tmpnam F
+GLIBC_2.2 tmpnam_r F
+GLIBC_2.2 toascii F
+GLIBC_2.2 tolower F
+GLIBC_2.2 toupper F
+GLIBC_2.2 towctrans F
+GLIBC_2.2 towlower F
+GLIBC_2.2 towupper F
+GLIBC_2.2 tr_break F
+GLIBC_2.2 truncate F
+GLIBC_2.2 truncate64 F
+GLIBC_2.2 tsearch F
+GLIBC_2.2 ttyname F
+GLIBC_2.2 ttyname_r F
+GLIBC_2.2 ttyslot F
+GLIBC_2.2 twalk F
+GLIBC_2.2 tzname D 0x8
+GLIBC_2.2 tzset F
+GLIBC_2.2 ualarm F
+GLIBC_2.2 ulckpwdf F
+GLIBC_2.2 ulimit F
+GLIBC_2.2 umask F
+GLIBC_2.2 umount F
+GLIBC_2.2 umount2 F
+GLIBC_2.2 uname F
+GLIBC_2.2 ungetc F
+GLIBC_2.2 ungetwc F
+GLIBC_2.2 unlink F
+GLIBC_2.2 unlockpt F
+GLIBC_2.2 unsetenv F
+GLIBC_2.2 updwtmp F
+GLIBC_2.2 updwtmpx F
+GLIBC_2.2 uselib F
+GLIBC_2.2 user2netname F
+GLIBC_2.2 usleep F
+GLIBC_2.2 ustat F
+GLIBC_2.2 utime F
+GLIBC_2.2 utimes F
+GLIBC_2.2 utmpname F
+GLIBC_2.2 utmpxname F
+GLIBC_2.2 valloc F
+GLIBC_2.2 vasprintf F
+GLIBC_2.2 vdprintf F
+GLIBC_2.2 verr F
+GLIBC_2.2 verrx F
+GLIBC_2.2 versionsort F
+GLIBC_2.2 versionsort64 F
+GLIBC_2.2 vfork F
+GLIBC_2.2 vfprintf F
+GLIBC_2.2 vfscanf F
+GLIBC_2.2 vfwprintf F
+GLIBC_2.2 vfwscanf F
+GLIBC_2.2 vhangup F
+GLIBC_2.2 vlimit F
+GLIBC_2.2 vprintf F
+GLIBC_2.2 vscanf F
+GLIBC_2.2 vsnprintf F
+GLIBC_2.2 vsprintf F
+GLIBC_2.2 vsscanf F
+GLIBC_2.2 vswprintf F
+GLIBC_2.2 vswscanf F
+GLIBC_2.2 vsyslog F
+GLIBC_2.2 vtimes F
+GLIBC_2.2 vwarn F
+GLIBC_2.2 vwarnx F
+GLIBC_2.2 vwprintf F
+GLIBC_2.2 vwscanf F
+GLIBC_2.2 wait F
+GLIBC_2.2 wait3 F
+GLIBC_2.2 wait4 F
+GLIBC_2.2 waitid F
+GLIBC_2.2 waitpid F
+GLIBC_2.2 warn F
+GLIBC_2.2 warnx F
+GLIBC_2.2 wcpcpy F
+GLIBC_2.2 wcpncpy F
+GLIBC_2.2 wcrtomb F
+GLIBC_2.2 wcscasecmp F
+GLIBC_2.2 wcscat F
+GLIBC_2.2 wcschr F
+GLIBC_2.2 wcschrnul F
+GLIBC_2.2 wcscmp F
+GLIBC_2.2 wcscoll F
+GLIBC_2.2 wcscpy F
+GLIBC_2.2 wcscspn F
+GLIBC_2.2 wcsdup F
+GLIBC_2.2 wcsftime F
+GLIBC_2.2 wcslen F
+GLIBC_2.2 wcsncasecmp F
+GLIBC_2.2 wcsncat F
+GLIBC_2.2 wcsncmp F
+GLIBC_2.2 wcsncpy F
+GLIBC_2.2 wcsnlen F
+GLIBC_2.2 wcsnrtombs F
+GLIBC_2.2 wcspbrk F
+GLIBC_2.2 wcsrchr F
+GLIBC_2.2 wcsrtombs F
+GLIBC_2.2 wcsspn F
+GLIBC_2.2 wcsstr F
+GLIBC_2.2 wcstod F
+GLIBC_2.2 wcstof F
+GLIBC_2.2 wcstoimax F
+GLIBC_2.2 wcstok F
+GLIBC_2.2 wcstol F
+GLIBC_2.2 wcstold F
+GLIBC_2.2 wcstoll F
+GLIBC_2.2 wcstombs F
+GLIBC_2.2 wcstoq F
+GLIBC_2.2 wcstoul F
+GLIBC_2.2 wcstoull F
+GLIBC_2.2 wcstoumax F
+GLIBC_2.2 wcstouq F
+GLIBC_2.2 wcswcs F
+GLIBC_2.2 wcswidth F
+GLIBC_2.2 wcsxfrm F
+GLIBC_2.2 wctob F
+GLIBC_2.2 wctomb F
+GLIBC_2.2 wctrans F
+GLIBC_2.2 wctype F
+GLIBC_2.2 wcwidth F
+GLIBC_2.2 wmemchr F
+GLIBC_2.2 wmemcmp F
+GLIBC_2.2 wmemcpy F
+GLIBC_2.2 wmemmove F
+GLIBC_2.2 wmempcpy F
+GLIBC_2.2 wmemset F
+GLIBC_2.2 wordexp F
+GLIBC_2.2 wordfree F
+GLIBC_2.2 wprintf F
+GLIBC_2.2 write F
+GLIBC_2.2 writev F
+GLIBC_2.2 wscanf F
+GLIBC_2.2 xdecrypt F
+GLIBC_2.2 xdr_accepted_reply F
+GLIBC_2.2 xdr_array F
+GLIBC_2.2 xdr_authdes_cred F
+GLIBC_2.2 xdr_authdes_verf F
+GLIBC_2.2 xdr_authunix_parms F
+GLIBC_2.2 xdr_bool F
+GLIBC_2.2 xdr_bytes F
+GLIBC_2.2 xdr_callhdr F
+GLIBC_2.2 xdr_callmsg F
+GLIBC_2.2 xdr_char F
+GLIBC_2.2 xdr_cryptkeyarg F
+GLIBC_2.2 xdr_cryptkeyarg2 F
+GLIBC_2.2 xdr_cryptkeyres F
+GLIBC_2.2 xdr_des_block F
+GLIBC_2.2 xdr_double F
+GLIBC_2.2 xdr_enum F
+GLIBC_2.2 xdr_float F
+GLIBC_2.2 xdr_free F
+GLIBC_2.2 xdr_getcredres F
+GLIBC_2.2 xdr_hyper F
+GLIBC_2.2 xdr_int F
+GLIBC_2.2 xdr_int16_t F
+GLIBC_2.2 xdr_int32_t F
+GLIBC_2.2 xdr_int64_t F
+GLIBC_2.2 xdr_int8_t F
+GLIBC_2.2 xdr_key_netstarg F
+GLIBC_2.2 xdr_key_netstres F
+GLIBC_2.2 xdr_keybuf F
+GLIBC_2.2 xdr_keystatus F
+GLIBC_2.2 xdr_long F
+GLIBC_2.2 xdr_longlong_t F
+GLIBC_2.2 xdr_netnamestr F
+GLIBC_2.2 xdr_netobj F
+GLIBC_2.2 xdr_opaque F
+GLIBC_2.2 xdr_opaque_auth F
+GLIBC_2.2 xdr_pmap F
+GLIBC_2.2 xdr_pmaplist F
+GLIBC_2.2 xdr_pointer F
+GLIBC_2.2 xdr_reference F
+GLIBC_2.2 xdr_rejected_reply F
+GLIBC_2.2 xdr_replymsg F
+GLIBC_2.2 xdr_rmtcall_args F
+GLIBC_2.2 xdr_rmtcallres F
+GLIBC_2.2 xdr_short F
+GLIBC_2.2 xdr_sizeof F
+GLIBC_2.2 xdr_string F
+GLIBC_2.2 xdr_u_char F
+GLIBC_2.2 xdr_u_hyper F
+GLIBC_2.2 xdr_u_int F
+GLIBC_2.2 xdr_u_long F
+GLIBC_2.2 xdr_u_longlong_t F
+GLIBC_2.2 xdr_u_short F
+GLIBC_2.2 xdr_uint16_t F
+GLIBC_2.2 xdr_uint32_t F
+GLIBC_2.2 xdr_uint64_t F
+GLIBC_2.2 xdr_uint8_t F
+GLIBC_2.2 xdr_union F
+GLIBC_2.2 xdr_unixcred F
+GLIBC_2.2 xdr_vector F
+GLIBC_2.2 xdr_void F
+GLIBC_2.2 xdr_wrapstring F
+GLIBC_2.2 xdrmem_create F
+GLIBC_2.2 xdrrec_create F
+GLIBC_2.2 xdrrec_endofrecord F
+GLIBC_2.2 xdrrec_eof F
+GLIBC_2.2 xdrrec_skiprecord F
+GLIBC_2.2 xdrstdio_create F
+GLIBC_2.2 xencrypt F
+GLIBC_2.2 xprt_register F
+GLIBC_2.2 xprt_unregister F
+GLIBC_2.2.1 GLIBC_2.2.1 A
+GLIBC_2.2.1 pivot_root F
+GLIBC_2.2.1 posix_openpt F
+GLIBC_2.2.2 GLIBC_2.2.2 A
+GLIBC_2.2.2 __nss_hostname_digits_dots F
+GLIBC_2.2.3 GLIBC_2.2.3 A
+GLIBC_2.2.3 __rpc_thread_createerr F
+GLIBC_2.2.3 __rpc_thread_svc_fdset F
+GLIBC_2.2.3 __rpc_thread_svc_max_pollfd F
+GLIBC_2.2.3 __rpc_thread_svc_pollfd F
+GLIBC_2.2.3 fnmatch F
+GLIBC_2.2.3 sprofil F
+GLIBC_2.2.4 GLIBC_2.2.4 A
+GLIBC_2.2.4 dl_iterate_phdr F
+GLIBC_2.2.4 getgrouplist F
+GLIBC_2.2.4 sockatmark F
+GLIBC_2.2.6 GLIBC_2.2.6 A
+GLIBC_2.2.6 __nanosleep F
+GLIBC_2.22 GLIBC_2.22 A
+GLIBC_2.22 fmemopen F
+GLIBC_2.23 GLIBC_2.23 A
+GLIBC_2.23 fts64_children F
+GLIBC_2.23 fts64_close F
+GLIBC_2.23 fts64_open F
+GLIBC_2.23 fts64_read F
+GLIBC_2.23 fts64_set F
+GLIBC_2.24 GLIBC_2.24 A
+GLIBC_2.24 quick_exit F
+GLIBC_2.25 GLIBC_2.25 A
+GLIBC_2.25 __explicit_bzero_chk F
+GLIBC_2.25 explicit_bzero F
+GLIBC_2.25 getentropy F
+GLIBC_2.25 getrandom F
+GLIBC_2.25 strfromd F
+GLIBC_2.25 strfromf F
+GLIBC_2.25 strfroml F
+GLIBC_2.26 GLIBC_2.26 A
+GLIBC_2.26 preadv2 F
+GLIBC_2.26 preadv64v2 F
+GLIBC_2.26 pwritev2 F
+GLIBC_2.26 pwritev64v2 F
+GLIBC_2.26 reallocarray F
+GLIBC_2.3 GLIBC_2.3 A
+GLIBC_2.3 __ctype_b_loc F
+GLIBC_2.3 __ctype_tolower_loc F
+GLIBC_2.3 __ctype_toupper_loc F
+GLIBC_2.3 __isctype F
+GLIBC_2.3 __strftime_l F
+GLIBC_2.3 __uselocale F
+GLIBC_2.3 __wcsftime_l F
+GLIBC_2.3 _sys_errlist D 0x1f8
+GLIBC_2.3 _sys_nerr D 0x4
+GLIBC_2.3 duplocale F
+GLIBC_2.3 fgetxattr F
+GLIBC_2.3 flistxattr F
+GLIBC_2.3 freeifaddrs F
+GLIBC_2.3 freelocale F
+GLIBC_2.3 fremovexattr F
+GLIBC_2.3 fsetxattr F
+GLIBC_2.3 futimes F
+GLIBC_2.3 getifaddrs F
+GLIBC_2.3 getxattr F
+GLIBC_2.3 isalnum_l F
+GLIBC_2.3 isalpha_l F
+GLIBC_2.3 isblank_l F
+GLIBC_2.3 iscntrl_l F
+GLIBC_2.3 isctype F
+GLIBC_2.3 isdigit_l F
+GLIBC_2.3 isgraph_l F
+GLIBC_2.3 islower_l F
+GLIBC_2.3 isprint_l F
+GLIBC_2.3 ispunct_l F
+GLIBC_2.3 isspace_l F
+GLIBC_2.3 isupper_l F
+GLIBC_2.3 iswalnum_l F
+GLIBC_2.3 iswalpha_l F
+GLIBC_2.3 iswblank_l F
+GLIBC_2.3 iswcntrl_l F
+GLIBC_2.3 iswctype_l F
+GLIBC_2.3 iswdigit_l F
+GLIBC_2.3 iswgraph_l F
+GLIBC_2.3 iswlower_l F
+GLIBC_2.3 iswprint_l F
+GLIBC_2.3 iswpunct_l F
+GLIBC_2.3 iswspace_l F
+GLIBC_2.3 iswupper_l F
+GLIBC_2.3 iswxdigit_l F
+GLIBC_2.3 isxdigit_l F
+GLIBC_2.3 lgetxattr F
+GLIBC_2.3 listxattr F
+GLIBC_2.3 llistxattr F
+GLIBC_2.3 lremovexattr F
+GLIBC_2.3 lsetxattr F
+GLIBC_2.3 lutimes F
+GLIBC_2.3 newlocale F
+GLIBC_2.3 nl_langinfo_l F
+GLIBC_2.3 readahead F
+GLIBC_2.3 realpath F
+GLIBC_2.3 removexattr F
+GLIBC_2.3 sendfile64 F
+GLIBC_2.3 setxattr F
+GLIBC_2.3 strcasecmp_l F
+GLIBC_2.3 strcoll_l F
+GLIBC_2.3 strfmon_l F
+GLIBC_2.3 strftime_l F
+GLIBC_2.3 strncasecmp_l F
+GLIBC_2.3 strtod_l F
+GLIBC_2.3 strtof_l F
+GLIBC_2.3 strtol_l F
+GLIBC_2.3 strtold_l F
+GLIBC_2.3 strtoll_l F
+GLIBC_2.3 strtoul_l F
+GLIBC_2.3 strtoull_l F
+GLIBC_2.3 strxfrm_l F
+GLIBC_2.3 sys_errlist D 0x1f8
+GLIBC_2.3 sys_nerr D 0x4
+GLIBC_2.3 tolower_l F
+GLIBC_2.3 toupper_l F
+GLIBC_2.3 towctrans_l F
+GLIBC_2.3 towlower_l F
+GLIBC_2.3 towupper_l F
+GLIBC_2.3 uselocale F
+GLIBC_2.3 wcscasecmp_l F
+GLIBC_2.3 wcscoll_l F
+GLIBC_2.3 wcsftime_l F
+GLIBC_2.3 wcsncasecmp_l F
+GLIBC_2.3 wcstod_l F
+GLIBC_2.3 wcstof_l F
+GLIBC_2.3 wcstol_l F
+GLIBC_2.3 wcstold_l F
+GLIBC_2.3 wcstoll_l F
+GLIBC_2.3 wcstoul_l F
+GLIBC_2.3 wcstoull_l F
+GLIBC_2.3 wcsxfrm_l F
+GLIBC_2.3 wctrans_l F
+GLIBC_2.3 wctype_l F
+GLIBC_2.3.2 GLIBC_2.3.2 A
+GLIBC_2.3.2 __register_atfork F
+GLIBC_2.3.2 epoll_create F
+GLIBC_2.3.2 epoll_ctl F
+GLIBC_2.3.2 epoll_wait F
+GLIBC_2.3.2 lchmod F
+GLIBC_2.3.2 pthread_cond_broadcast F
+GLIBC_2.3.2 pthread_cond_destroy F
+GLIBC_2.3.2 pthread_cond_init F
+GLIBC_2.3.2 pthread_cond_signal F
+GLIBC_2.3.2 pthread_cond_timedwait F
+GLIBC_2.3.2 pthread_cond_wait F
+GLIBC_2.3.2 strptime_l F
+GLIBC_2.3.3 GLIBC_2.3.3 A
+GLIBC_2.3.3 _sys_siglist D 0x104
+GLIBC_2.3.3 gnu_dev_major F
+GLIBC_2.3.3 gnu_dev_makedev F
+GLIBC_2.3.3 gnu_dev_minor F
+GLIBC_2.3.3 inet6_option_alloc F
+GLIBC_2.3.3 inet6_option_append F
+GLIBC_2.3.3 inet6_option_find F
+GLIBC_2.3.3 inet6_option_init F
+GLIBC_2.3.3 inet6_option_next F
+GLIBC_2.3.3 inet6_option_space F
+GLIBC_2.3.3 nftw F
+GLIBC_2.3.3 nftw64 F
+GLIBC_2.3.3 posix_fadvise64 F
+GLIBC_2.3.3 posix_fallocate64 F
+GLIBC_2.3.3 remap_file_pages F
+GLIBC_2.3.3 sched_getaffinity F
+GLIBC_2.3.3 sched_setaffinity F
+GLIBC_2.3.3 semtimedop F
+GLIBC_2.3.3 sys_sigabbrev D 0x104
+GLIBC_2.3.3 sys_siglist D 0x104
+GLIBC_2.3.4 GLIBC_2.3.4 A
+GLIBC_2.3.4 __chk_fail F
+GLIBC_2.3.4 __fprintf_chk F
+GLIBC_2.3.4 __gets_chk F
+GLIBC_2.3.4 __memcpy_chk F
+GLIBC_2.3.4 __memmove_chk F
+GLIBC_2.3.4 __mempcpy_chk F
+GLIBC_2.3.4 __memset_chk F
+GLIBC_2.3.4 __printf_chk F
+GLIBC_2.3.4 __snprintf_chk F
+GLIBC_2.3.4 __sprintf_chk F
+GLIBC_2.3.4 __stpcpy_chk F
+GLIBC_2.3.4 __strcat_chk F
+GLIBC_2.3.4 __strcpy_chk F
+GLIBC_2.3.4 __strncat_chk F
+GLIBC_2.3.4 __strncpy_chk F
+GLIBC_2.3.4 __vfprintf_chk F
+GLIBC_2.3.4 __vprintf_chk F
+GLIBC_2.3.4 __vsnprintf_chk F
+GLIBC_2.3.4 __vsprintf_chk F
+GLIBC_2.3.4 __xpg_strerror_r F
+GLIBC_2.3.4 getipv4sourcefilter F
+GLIBC_2.3.4 getsourcefilter F
+GLIBC_2.3.4 regexec F
+GLIBC_2.3.4 sched_getaffinity F
+GLIBC_2.3.4 sched_setaffinity F
+GLIBC_2.3.4 setipv4sourcefilter F
+GLIBC_2.3.4 setsourcefilter F
+GLIBC_2.3.4 xdr_quad_t F
+GLIBC_2.3.4 xdr_u_quad_t F
+GLIBC_2.4 GLIBC_2.4 A
+GLIBC_2.4 __confstr_chk F
+GLIBC_2.4 __fgets_chk F
+GLIBC_2.4 __fgets_unlocked_chk F
+GLIBC_2.4 __fgetws_chk F
+GLIBC_2.4 __fgetws_unlocked_chk F
+GLIBC_2.4 __fwprintf_chk F
+GLIBC_2.4 __fxstatat F
+GLIBC_2.4 __fxstatat64 F
+GLIBC_2.4 __getcwd_chk F
+GLIBC_2.4 __getdomainname_chk F
+GLIBC_2.4 __getgroups_chk F
+GLIBC_2.4 __gethostname_chk F
+GLIBC_2.4 __getlogin_r_chk F
+GLIBC_2.4 __getwd_chk F
+GLIBC_2.4 __mbsnrtowcs_chk F
+GLIBC_2.4 __mbsrtowcs_chk F
+GLIBC_2.4 __mbstowcs_chk F
+GLIBC_2.4 __pread64_chk F
+GLIBC_2.4 __pread_chk F
+GLIBC_2.4 __ptsname_r_chk F
+GLIBC_2.4 __read_chk F
+GLIBC_2.4 __readlink_chk F
+GLIBC_2.4 __realpath_chk F
+GLIBC_2.4 __recv_chk F
+GLIBC_2.4 __recvfrom_chk F
+GLIBC_2.4 __stack_chk_fail F
+GLIBC_2.4 __stpncpy_chk F
+GLIBC_2.4 __swprintf_chk F
+GLIBC_2.4 __syslog_chk F
+GLIBC_2.4 __ttyname_r_chk F
+GLIBC_2.4 __vfwprintf_chk F
+GLIBC_2.4 __vswprintf_chk F
+GLIBC_2.4 __vsyslog_chk F
+GLIBC_2.4 __vwprintf_chk F
+GLIBC_2.4 __wcpcpy_chk F
+GLIBC_2.4 __wcpncpy_chk F
+GLIBC_2.4 __wcrtomb_chk F
+GLIBC_2.4 __wcscat_chk F
+GLIBC_2.4 __wcscpy_chk F
+GLIBC_2.4 __wcsncat_chk F
+GLIBC_2.4 __wcsncpy_chk F
+GLIBC_2.4 __wcsnrtombs_chk F
+GLIBC_2.4 __wcsrtombs_chk F
+GLIBC_2.4 __wcstombs_chk F
+GLIBC_2.4 __wctomb_chk F
+GLIBC_2.4 __wmemcpy_chk F
+GLIBC_2.4 __wmemmove_chk F
+GLIBC_2.4 __wmempcpy_chk F
+GLIBC_2.4 __wmemset_chk F
+GLIBC_2.4 __wprintf_chk F
+GLIBC_2.4 __xmknodat F
+GLIBC_2.4 _sys_errlist D 0x210
+GLIBC_2.4 _sys_nerr D 0x4
+GLIBC_2.4 eaccess F
+GLIBC_2.4 faccessat F
+GLIBC_2.4 fchmodat F
+GLIBC_2.4 fchownat F
+GLIBC_2.4 fdopendir F
+GLIBC_2.4 futimesat F
+GLIBC_2.4 inotify_add_watch F
+GLIBC_2.4 inotify_init F
+GLIBC_2.4 inotify_rm_watch F
+GLIBC_2.4 linkat F
+GLIBC_2.4 mkdirat F
+GLIBC_2.4 mkfifoat F
+GLIBC_2.4 open_wmemstream F
+GLIBC_2.4 openat F
+GLIBC_2.4 openat64 F
+GLIBC_2.4 ppoll F
+GLIBC_2.4 readlinkat F
+GLIBC_2.4 renameat F
+GLIBC_2.4 symlinkat F
+GLIBC_2.4 sys_errlist D 0x210
+GLIBC_2.4 sys_nerr D 0x4
+GLIBC_2.4 unlinkat F
+GLIBC_2.4 unshare F
+GLIBC_2.5 GLIBC_2.5 A
+GLIBC_2.5 __readlinkat_chk F
+GLIBC_2.5 inet6_opt_append F
+GLIBC_2.5 inet6_opt_find F
+GLIBC_2.5 inet6_opt_finish F
+GLIBC_2.5 inet6_opt_get_val F
+GLIBC_2.5 inet6_opt_init F
+GLIBC_2.5 inet6_opt_next F
+GLIBC_2.5 inet6_opt_set_val F
+GLIBC_2.5 inet6_rth_add F
+GLIBC_2.5 inet6_rth_getaddr F
+GLIBC_2.5 inet6_rth_init F
+GLIBC_2.5 inet6_rth_reverse F
+GLIBC_2.5 inet6_rth_segments F
+GLIBC_2.5 inet6_rth_space F
+GLIBC_2.5 splice F
+GLIBC_2.5 tee F
+GLIBC_2.5 vmsplice F
+GLIBC_2.6 GLIBC_2.6 A
+GLIBC_2.6 __sched_cpucount F
+GLIBC_2.6 epoll_pwait F
+GLIBC_2.6 futimens F
+GLIBC_2.6 sched_getcpu F
+GLIBC_2.6 strerror_l F
+GLIBC_2.6 sync_file_range F
+GLIBC_2.6 utimensat F
+GLIBC_2.7 GLIBC_2.7 A
+GLIBC_2.7 __fread_chk F
+GLIBC_2.7 __fread_unlocked_chk F
+GLIBC_2.7 __isoc99_fscanf F
+GLIBC_2.7 __isoc99_fwscanf F
+GLIBC_2.7 __isoc99_scanf F
+GLIBC_2.7 __isoc99_sscanf F
+GLIBC_2.7 __isoc99_swscanf F
+GLIBC_2.7 __isoc99_vfscanf F
+GLIBC_2.7 __isoc99_vfwscanf F
+GLIBC_2.7 __isoc99_vscanf F
+GLIBC_2.7 __isoc99_vsscanf F
+GLIBC_2.7 __isoc99_vswscanf F
+GLIBC_2.7 __isoc99_vwscanf F
+GLIBC_2.7 __isoc99_wscanf F
+GLIBC_2.7 __open64_2 F
+GLIBC_2.7 __open_2 F
+GLIBC_2.7 __openat64_2 F
+GLIBC_2.7 __openat_2 F
+GLIBC_2.7 __sched_cpualloc F
+GLIBC_2.7 __sched_cpufree F
+GLIBC_2.7 eventfd F
+GLIBC_2.7 eventfd_read F
+GLIBC_2.7 eventfd_write F
+GLIBC_2.7 mkostemp F
+GLIBC_2.7 mkostemp64 F
+GLIBC_2.7 signalfd F
+GLIBC_2.8 GLIBC_2.8 A
+GLIBC_2.8 __asprintf_chk F
+GLIBC_2.8 __dprintf_chk F
+GLIBC_2.8 __obstack_printf_chk F
+GLIBC_2.8 __obstack_vprintf_chk F
+GLIBC_2.8 __vasprintf_chk F
+GLIBC_2.8 __vdprintf_chk F
+GLIBC_2.8 qsort_r F
+GLIBC_2.8 timerfd_create F
+GLIBC_2.8 timerfd_gettime F
+GLIBC_2.8 timerfd_settime F
+GLIBC_2.9 GLIBC_2.9 A
+GLIBC_2.9 dup3 F
+GLIBC_2.9 epoll_create1 F
+GLIBC_2.9 inotify_init1 F
+GLIBC_2.9 pipe2 F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sh/libcrypt.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/sh/libcrypt.abilist
new file mode 100644
index 0000000000..4db2639336
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sh/libcrypt.abilist
@@ -0,0 +1,8 @@
+GLIBC_2.0 GLIBC_2.0 A
+GLIBC_2.0 crypt F
+GLIBC_2.0 crypt_r F
+GLIBC_2.0 encrypt F
+GLIBC_2.0 encrypt_r F
+GLIBC_2.0 fcrypt F
+GLIBC_2.0 setkey F
+GLIBC_2.0 setkey_r F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sh/libdl.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/sh/libdl.abilist
new file mode 100644
index 0000000000..5536f6e0a9
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sh/libdl.abilist
@@ -0,0 +1,14 @@
+GLIBC_2.0 GLIBC_2.0 A
+GLIBC_2.0 dladdr F
+GLIBC_2.0 dlclose F
+GLIBC_2.0 dlerror F
+GLIBC_2.0 dlopen F
+GLIBC_2.0 dlsym F
+GLIBC_2.1 GLIBC_2.1 A
+GLIBC_2.1 dlopen F
+GLIBC_2.1 dlvsym F
+GLIBC_2.3.3 GLIBC_2.3.3 A
+GLIBC_2.3.3 dladdr1 F
+GLIBC_2.3.3 dlinfo F
+GLIBC_2.3.4 GLIBC_2.3.4 A
+GLIBC_2.3.4 dlmopen F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sh/libm.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/sh/libm.abilist
new file mode 100644
index 0000000000..6b24852b68
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sh/libm.abilist
@@ -0,0 +1,433 @@
+GLIBC_2.15 GLIBC_2.15 A
+GLIBC_2.15 __acos_finite F
+GLIBC_2.15 __acosf_finite F
+GLIBC_2.15 __acosh_finite F
+GLIBC_2.15 __acoshf_finite F
+GLIBC_2.15 __asin_finite F
+GLIBC_2.15 __asinf_finite F
+GLIBC_2.15 __atan2_finite F
+GLIBC_2.15 __atan2f_finite F
+GLIBC_2.15 __atanh_finite F
+GLIBC_2.15 __atanhf_finite F
+GLIBC_2.15 __cosh_finite F
+GLIBC_2.15 __coshf_finite F
+GLIBC_2.15 __exp10_finite F
+GLIBC_2.15 __exp10f_finite F
+GLIBC_2.15 __exp2_finite F
+GLIBC_2.15 __exp2f_finite F
+GLIBC_2.15 __exp_finite F
+GLIBC_2.15 __expf_finite F
+GLIBC_2.15 __fmod_finite F
+GLIBC_2.15 __fmodf_finite F
+GLIBC_2.15 __gamma_r_finite F
+GLIBC_2.15 __gammaf_r_finite F
+GLIBC_2.15 __hypot_finite F
+GLIBC_2.15 __hypotf_finite F
+GLIBC_2.15 __j0_finite F
+GLIBC_2.15 __j0f_finite F
+GLIBC_2.15 __j1_finite F
+GLIBC_2.15 __j1f_finite F
+GLIBC_2.15 __jn_finite F
+GLIBC_2.15 __jnf_finite F
+GLIBC_2.15 __lgamma_r_finite F
+GLIBC_2.15 __lgammaf_r_finite F
+GLIBC_2.15 __log10_finite F
+GLIBC_2.15 __log10f_finite F
+GLIBC_2.15 __log2_finite F
+GLIBC_2.15 __log2f_finite F
+GLIBC_2.15 __log_finite F
+GLIBC_2.15 __logf_finite F
+GLIBC_2.15 __pow_finite F
+GLIBC_2.15 __powf_finite F
+GLIBC_2.15 __remainder_finite F
+GLIBC_2.15 __remainderf_finite F
+GLIBC_2.15 __scalb_finite F
+GLIBC_2.15 __scalbf_finite F
+GLIBC_2.15 __sinh_finite F
+GLIBC_2.15 __sinhf_finite F
+GLIBC_2.15 __sqrt_finite F
+GLIBC_2.15 __sqrtf_finite F
+GLIBC_2.15 __y0_finite F
+GLIBC_2.15 __y0f_finite F
+GLIBC_2.15 __y1_finite F
+GLIBC_2.15 __y1f_finite F
+GLIBC_2.15 __yn_finite F
+GLIBC_2.15 __ynf_finite F
+GLIBC_2.18 GLIBC_2.18 A
+GLIBC_2.18 __issignaling F
+GLIBC_2.18 __issignalingf F
+GLIBC_2.2 GLIBC_2.2 A
+GLIBC_2.2 _LIB_VERSION D 0x4
+GLIBC_2.2 __clog10 F
+GLIBC_2.2 __clog10f F
+GLIBC_2.2 __clog10l F
+GLIBC_2.2 __finite F
+GLIBC_2.2 __finitef F
+GLIBC_2.2 __finitel F
+GLIBC_2.2 __fpclassify F
+GLIBC_2.2 __fpclassifyf F
+GLIBC_2.2 __signbit F
+GLIBC_2.2 __signbitf F
+GLIBC_2.2 acos F
+GLIBC_2.2 acosf F
+GLIBC_2.2 acosh F
+GLIBC_2.2 acoshf F
+GLIBC_2.2 acoshl F
+GLIBC_2.2 acosl F
+GLIBC_2.2 asin F
+GLIBC_2.2 asinf F
+GLIBC_2.2 asinh F
+GLIBC_2.2 asinhf F
+GLIBC_2.2 asinhl F
+GLIBC_2.2 asinl F
+GLIBC_2.2 atan F
+GLIBC_2.2 atan2 F
+GLIBC_2.2 atan2f F
+GLIBC_2.2 atan2l F
+GLIBC_2.2 atanf F
+GLIBC_2.2 atanh F
+GLIBC_2.2 atanhf F
+GLIBC_2.2 atanhl F
+GLIBC_2.2 atanl F
+GLIBC_2.2 cabs F
+GLIBC_2.2 cabsf F
+GLIBC_2.2 cabsl F
+GLIBC_2.2 cacos F
+GLIBC_2.2 cacosf F
+GLIBC_2.2 cacosh F
+GLIBC_2.2 cacoshf F
+GLIBC_2.2 cacoshl F
+GLIBC_2.2 cacosl F
+GLIBC_2.2 carg F
+GLIBC_2.2 cargf F
+GLIBC_2.2 cargl F
+GLIBC_2.2 casin F
+GLIBC_2.2 casinf F
+GLIBC_2.2 casinh F
+GLIBC_2.2 casinhf F
+GLIBC_2.2 casinhl F
+GLIBC_2.2 casinl F
+GLIBC_2.2 catan F
+GLIBC_2.2 catanf F
+GLIBC_2.2 catanh F
+GLIBC_2.2 catanhf F
+GLIBC_2.2 catanhl F
+GLIBC_2.2 catanl F
+GLIBC_2.2 cbrt F
+GLIBC_2.2 cbrtf F
+GLIBC_2.2 cbrtl F
+GLIBC_2.2 ccos F
+GLIBC_2.2 ccosf F
+GLIBC_2.2 ccosh F
+GLIBC_2.2 ccoshf F
+GLIBC_2.2 ccoshl F
+GLIBC_2.2 ccosl F
+GLIBC_2.2 ceil F
+GLIBC_2.2 ceilf F
+GLIBC_2.2 ceill F
+GLIBC_2.2 cexp F
+GLIBC_2.2 cexpf F
+GLIBC_2.2 cexpl F
+GLIBC_2.2 cimag F
+GLIBC_2.2 cimagf F
+GLIBC_2.2 cimagl F
+GLIBC_2.2 clog F
+GLIBC_2.2 clog10 F
+GLIBC_2.2 clog10f F
+GLIBC_2.2 clog10l F
+GLIBC_2.2 clogf F
+GLIBC_2.2 clogl F
+GLIBC_2.2 conj F
+GLIBC_2.2 conjf F
+GLIBC_2.2 conjl F
+GLIBC_2.2 copysign F
+GLIBC_2.2 copysignf F
+GLIBC_2.2 copysignl F
+GLIBC_2.2 cos F
+GLIBC_2.2 cosf F
+GLIBC_2.2 cosh F
+GLIBC_2.2 coshf F
+GLIBC_2.2 coshl F
+GLIBC_2.2 cosl F
+GLIBC_2.2 cpow F
+GLIBC_2.2 cpowf F
+GLIBC_2.2 cpowl F
+GLIBC_2.2 cproj F
+GLIBC_2.2 cprojf F
+GLIBC_2.2 cprojl F
+GLIBC_2.2 creal F
+GLIBC_2.2 crealf F
+GLIBC_2.2 creall F
+GLIBC_2.2 csin F
+GLIBC_2.2 csinf F
+GLIBC_2.2 csinh F
+GLIBC_2.2 csinhf F
+GLIBC_2.2 csinhl F
+GLIBC_2.2 csinl F
+GLIBC_2.2 csqrt F
+GLIBC_2.2 csqrtf F
+GLIBC_2.2 csqrtl F
+GLIBC_2.2 ctan F
+GLIBC_2.2 ctanf F
+GLIBC_2.2 ctanh F
+GLIBC_2.2 ctanhf F
+GLIBC_2.2 ctanhl F
+GLIBC_2.2 ctanl F
+GLIBC_2.2 drem F
+GLIBC_2.2 dremf F
+GLIBC_2.2 dreml F
+GLIBC_2.2 erf F
+GLIBC_2.2 erfc F
+GLIBC_2.2 erfcf F
+GLIBC_2.2 erfcl F
+GLIBC_2.2 erff F
+GLIBC_2.2 erfl F
+GLIBC_2.2 exp F
+GLIBC_2.2 exp10 F
+GLIBC_2.2 exp10f F
+GLIBC_2.2 exp10l F
+GLIBC_2.2 exp2 F
+GLIBC_2.2 exp2f F
+GLIBC_2.2 expf F
+GLIBC_2.2 expl F
+GLIBC_2.2 expm1 F
+GLIBC_2.2 expm1f F
+GLIBC_2.2 expm1l F
+GLIBC_2.2 fabs F
+GLIBC_2.2 fabsf F
+GLIBC_2.2 fabsl F
+GLIBC_2.2 fdim F
+GLIBC_2.2 fdimf F
+GLIBC_2.2 fdiml F
+GLIBC_2.2 feclearexcept F
+GLIBC_2.2 fedisableexcept F
+GLIBC_2.2 feenableexcept F
+GLIBC_2.2 fegetenv F
+GLIBC_2.2 fegetexcept F
+GLIBC_2.2 fegetexceptflag F
+GLIBC_2.2 fegetround F
+GLIBC_2.2 feholdexcept F
+GLIBC_2.2 feraiseexcept F
+GLIBC_2.2 fesetenv F
+GLIBC_2.2 fesetexceptflag F
+GLIBC_2.2 fesetround F
+GLIBC_2.2 fetestexcept F
+GLIBC_2.2 feupdateenv F
+GLIBC_2.2 finite F
+GLIBC_2.2 finitef F
+GLIBC_2.2 finitel F
+GLIBC_2.2 floor F
+GLIBC_2.2 floorf F
+GLIBC_2.2 floorl F
+GLIBC_2.2 fma F
+GLIBC_2.2 fmaf F
+GLIBC_2.2 fmal F
+GLIBC_2.2 fmax F
+GLIBC_2.2 fmaxf F
+GLIBC_2.2 fmaxl F
+GLIBC_2.2 fmin F
+GLIBC_2.2 fminf F
+GLIBC_2.2 fminl F
+GLIBC_2.2 fmod F
+GLIBC_2.2 fmodf F
+GLIBC_2.2 fmodl F
+GLIBC_2.2 frexp F
+GLIBC_2.2 frexpf F
+GLIBC_2.2 frexpl F
+GLIBC_2.2 gamma F
+GLIBC_2.2 gammaf F
+GLIBC_2.2 gammal F
+GLIBC_2.2 hypot F
+GLIBC_2.2 hypotf F
+GLIBC_2.2 hypotl F
+GLIBC_2.2 ilogb F
+GLIBC_2.2 ilogbf F
+GLIBC_2.2 ilogbl F
+GLIBC_2.2 j0 F
+GLIBC_2.2 j0f F
+GLIBC_2.2 j0l F
+GLIBC_2.2 j1 F
+GLIBC_2.2 j1f F
+GLIBC_2.2 j1l F
+GLIBC_2.2 jn F
+GLIBC_2.2 jnf F
+GLIBC_2.2 jnl F
+GLIBC_2.2 ldexp F
+GLIBC_2.2 ldexpf F
+GLIBC_2.2 ldexpl F
+GLIBC_2.2 lgamma F
+GLIBC_2.2 lgamma_r F
+GLIBC_2.2 lgammaf F
+GLIBC_2.2 lgammaf_r F
+GLIBC_2.2 lgammal F
+GLIBC_2.2 lgammal_r F
+GLIBC_2.2 llrint F
+GLIBC_2.2 llrintf F
+GLIBC_2.2 llrintl F
+GLIBC_2.2 llround F
+GLIBC_2.2 llroundf F
+GLIBC_2.2 llroundl F
+GLIBC_2.2 log F
+GLIBC_2.2 log10 F
+GLIBC_2.2 log10f F
+GLIBC_2.2 log10l F
+GLIBC_2.2 log1p F
+GLIBC_2.2 log1pf F
+GLIBC_2.2 log1pl F
+GLIBC_2.2 log2 F
+GLIBC_2.2 log2f F
+GLIBC_2.2 log2l F
+GLIBC_2.2 logb F
+GLIBC_2.2 logbf F
+GLIBC_2.2 logbl F
+GLIBC_2.2 logf F
+GLIBC_2.2 logl F
+GLIBC_2.2 lrint F
+GLIBC_2.2 lrintf F
+GLIBC_2.2 lrintl F
+GLIBC_2.2 lround F
+GLIBC_2.2 lroundf F
+GLIBC_2.2 lroundl F
+GLIBC_2.2 matherr F
+GLIBC_2.2 modf F
+GLIBC_2.2 modff F
+GLIBC_2.2 modfl F
+GLIBC_2.2 nan F
+GLIBC_2.2 nanf F
+GLIBC_2.2 nanl F
+GLIBC_2.2 nearbyint F
+GLIBC_2.2 nearbyintf F
+GLIBC_2.2 nearbyintl F
+GLIBC_2.2 nextafter F
+GLIBC_2.2 nextafterf F
+GLIBC_2.2 nextafterl F
+GLIBC_2.2 nexttoward F
+GLIBC_2.2 nexttowardf F
+GLIBC_2.2 nexttowardl F
+GLIBC_2.2 pow F
+GLIBC_2.2 pow10 F
+GLIBC_2.2 pow10f F
+GLIBC_2.2 pow10l F
+GLIBC_2.2 powf F
+GLIBC_2.2 powl F
+GLIBC_2.2 remainder F
+GLIBC_2.2 remainderf F
+GLIBC_2.2 remainderl F
+GLIBC_2.2 remquo F
+GLIBC_2.2 remquof F
+GLIBC_2.2 remquol F
+GLIBC_2.2 rint F
+GLIBC_2.2 rintf F
+GLIBC_2.2 rintl F
+GLIBC_2.2 round F
+GLIBC_2.2 roundf F
+GLIBC_2.2 roundl F
+GLIBC_2.2 scalb F
+GLIBC_2.2 scalbf F
+GLIBC_2.2 scalbl F
+GLIBC_2.2 scalbln F
+GLIBC_2.2 scalblnf F
+GLIBC_2.2 scalblnl F
+GLIBC_2.2 scalbn F
+GLIBC_2.2 scalbnf F
+GLIBC_2.2 scalbnl F
+GLIBC_2.2 signgam D 0x4
+GLIBC_2.2 significand F
+GLIBC_2.2 significandf F
+GLIBC_2.2 significandl F
+GLIBC_2.2 sin F
+GLIBC_2.2 sincos F
+GLIBC_2.2 sincosf F
+GLIBC_2.2 sincosl F
+GLIBC_2.2 sinf F
+GLIBC_2.2 sinh F
+GLIBC_2.2 sinhf F
+GLIBC_2.2 sinhl F
+GLIBC_2.2 sinl F
+GLIBC_2.2 sqrt F
+GLIBC_2.2 sqrtf F
+GLIBC_2.2 sqrtl F
+GLIBC_2.2 tan F
+GLIBC_2.2 tanf F
+GLIBC_2.2 tanh F
+GLIBC_2.2 tanhf F
+GLIBC_2.2 tanhl F
+GLIBC_2.2 tanl F
+GLIBC_2.2 tgamma F
+GLIBC_2.2 tgammaf F
+GLIBC_2.2 tgammal F
+GLIBC_2.2 trunc F
+GLIBC_2.2 truncf F
+GLIBC_2.2 truncl F
+GLIBC_2.2 y0 F
+GLIBC_2.2 y0f F
+GLIBC_2.2 y0l F
+GLIBC_2.2 y1 F
+GLIBC_2.2 y1f F
+GLIBC_2.2 y1l F
+GLIBC_2.2 yn F
+GLIBC_2.2 ynf F
+GLIBC_2.2 ynl F
+GLIBC_2.23 GLIBC_2.23 A
+GLIBC_2.23 __signgam D 0x4
+GLIBC_2.23 lgamma F
+GLIBC_2.23 lgammaf F
+GLIBC_2.23 lgammal F
+GLIBC_2.24 GLIBC_2.24 A
+GLIBC_2.24 nextdown F
+GLIBC_2.24 nextdownf F
+GLIBC_2.24 nextdownl F
+GLIBC_2.24 nextup F
+GLIBC_2.24 nextupf F
+GLIBC_2.24 nextupl F
+GLIBC_2.25 GLIBC_2.25 A
+GLIBC_2.25 __iseqsig F
+GLIBC_2.25 __iseqsigf F
+GLIBC_2.25 canonicalize F
+GLIBC_2.25 canonicalizef F
+GLIBC_2.25 canonicalizel F
+GLIBC_2.25 fegetmode F
+GLIBC_2.25 fesetexcept F
+GLIBC_2.25 fesetmode F
+GLIBC_2.25 fetestexceptflag F
+GLIBC_2.25 fmaxmag F
+GLIBC_2.25 fmaxmagf F
+GLIBC_2.25 fmaxmagl F
+GLIBC_2.25 fminmag F
+GLIBC_2.25 fminmagf F
+GLIBC_2.25 fminmagl F
+GLIBC_2.25 fromfp F
+GLIBC_2.25 fromfpf F
+GLIBC_2.25 fromfpl F
+GLIBC_2.25 fromfpx F
+GLIBC_2.25 fromfpxf F
+GLIBC_2.25 fromfpxl F
+GLIBC_2.25 getpayload F
+GLIBC_2.25 getpayloadf F
+GLIBC_2.25 getpayloadl F
+GLIBC_2.25 llogb F
+GLIBC_2.25 llogbf F
+GLIBC_2.25 llogbl F
+GLIBC_2.25 roundeven F
+GLIBC_2.25 roundevenf F
+GLIBC_2.25 roundevenl F
+GLIBC_2.25 setpayload F
+GLIBC_2.25 setpayloadf F
+GLIBC_2.25 setpayloadl F
+GLIBC_2.25 setpayloadsig F
+GLIBC_2.25 setpayloadsigf F
+GLIBC_2.25 setpayloadsigl F
+GLIBC_2.25 totalorder F
+GLIBC_2.25 totalorderf F
+GLIBC_2.25 totalorderl F
+GLIBC_2.25 totalordermag F
+GLIBC_2.25 totalordermagf F
+GLIBC_2.25 totalordermagl F
+GLIBC_2.25 ufromfp F
+GLIBC_2.25 ufromfpf F
+GLIBC_2.25 ufromfpl F
+GLIBC_2.25 ufromfpx F
+GLIBC_2.25 ufromfpxf F
+GLIBC_2.25 ufromfpxl F
+GLIBC_2.4 GLIBC_2.4 A
+GLIBC_2.4 exp2l F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sh/libnsl.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/sh/libnsl.abilist
new file mode 100644
index 0000000000..a23db2aeaf
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sh/libnsl.abilist
@@ -0,0 +1,124 @@
+GLIBC_2.0 GLIBC_2.0 A
+GLIBC_2.0 __yp_check F
+GLIBC_2.0 xdr_domainname F
+GLIBC_2.0 xdr_keydat F
+GLIBC_2.0 xdr_mapname F
+GLIBC_2.0 xdr_peername F
+GLIBC_2.0 xdr_valdat F
+GLIBC_2.0 xdr_yp_buf F
+GLIBC_2.0 xdr_ypbind_binding F
+GLIBC_2.0 xdr_ypbind_resp F
+GLIBC_2.0 xdr_ypbind_resptype F
+GLIBC_2.0 xdr_ypbind_setdom F
+GLIBC_2.0 xdr_ypdelete_args F
+GLIBC_2.0 xdr_ypmap_parms F
+GLIBC_2.0 xdr_ypmaplist F
+GLIBC_2.0 xdr_yppush_status F
+GLIBC_2.0 xdr_yppushresp_xfr F
+GLIBC_2.0 xdr_ypreq_key F
+GLIBC_2.0 xdr_ypreq_nokey F
+GLIBC_2.0 xdr_ypreq_xfr F
+GLIBC_2.0 xdr_ypresp_all F
+GLIBC_2.0 xdr_ypresp_key_val F
+GLIBC_2.0 xdr_ypresp_maplist F
+GLIBC_2.0 xdr_ypresp_master F
+GLIBC_2.0 xdr_ypresp_order F
+GLIBC_2.0 xdr_ypresp_val F
+GLIBC_2.0 xdr_ypresp_xfr F
+GLIBC_2.0 xdr_ypstat F
+GLIBC_2.0 xdr_ypupdate_args F
+GLIBC_2.0 xdr_ypxfrstat F
+GLIBC_2.0 yp_all F
+GLIBC_2.0 yp_bind F
+GLIBC_2.0 yp_first F
+GLIBC_2.0 yp_get_default_domain F
+GLIBC_2.0 yp_maplist F
+GLIBC_2.0 yp_master F
+GLIBC_2.0 yp_match F
+GLIBC_2.0 yp_next F
+GLIBC_2.0 yp_order F
+GLIBC_2.0 yp_unbind F
+GLIBC_2.0 yp_update F
+GLIBC_2.0 ypbinderr_string F
+GLIBC_2.0 yperr_string F
+GLIBC_2.0 ypprot_err F
+GLIBC_2.1 GLIBC_2.1 A
+GLIBC_2.1 __free_fdresult F
+GLIBC_2.1 __nis_default_access F
+GLIBC_2.1 __nis_default_group F
+GLIBC_2.1 __nis_default_owner F
+GLIBC_2.1 __nis_default_ttl F
+GLIBC_2.1 __nis_finddirectory F
+GLIBC_2.1 __nis_hash F
+GLIBC_2.1 __nisbind_connect F
+GLIBC_2.1 __nisbind_create F
+GLIBC_2.1 __nisbind_destroy F
+GLIBC_2.1 __nisbind_next F
+GLIBC_2.1 nis_add F
+GLIBC_2.1 nis_add_entry F
+GLIBC_2.1 nis_addmember F
+GLIBC_2.1 nis_checkpoint F
+GLIBC_2.1 nis_clone_directory F
+GLIBC_2.1 nis_clone_object F
+GLIBC_2.1 nis_clone_result F
+GLIBC_2.1 nis_creategroup F
+GLIBC_2.1 nis_destroy_object F
+GLIBC_2.1 nis_destroygroup F
+GLIBC_2.1 nis_dir_cmp F
+GLIBC_2.1 nis_domain_of F
+GLIBC_2.1 nis_domain_of_r F
+GLIBC_2.1 nis_first_entry F
+GLIBC_2.1 nis_free_directory F
+GLIBC_2.1 nis_free_object F
+GLIBC_2.1 nis_free_request F
+GLIBC_2.1 nis_freenames F
+GLIBC_2.1 nis_freeresult F
+GLIBC_2.1 nis_freeservlist F
+GLIBC_2.1 nis_freetags F
+GLIBC_2.1 nis_getnames F
+GLIBC_2.1 nis_getservlist F
+GLIBC_2.1 nis_ismember F
+GLIBC_2.1 nis_leaf_of F
+GLIBC_2.1 nis_leaf_of_r F
+GLIBC_2.1 nis_lerror F
+GLIBC_2.1 nis_list F
+GLIBC_2.1 nis_local_directory F
+GLIBC_2.1 nis_local_group F
+GLIBC_2.1 nis_local_host F
+GLIBC_2.1 nis_local_principal F
+GLIBC_2.1 nis_lookup F
+GLIBC_2.1 nis_mkdir F
+GLIBC_2.1 nis_modify F
+GLIBC_2.1 nis_modify_entry F
+GLIBC_2.1 nis_name_of F
+GLIBC_2.1 nis_name_of_r F
+GLIBC_2.1 nis_next_entry F
+GLIBC_2.1 nis_perror F
+GLIBC_2.1 nis_ping F
+GLIBC_2.1 nis_print_directory F
+GLIBC_2.1 nis_print_entry F
+GLIBC_2.1 nis_print_group F
+GLIBC_2.1 nis_print_group_entry F
+GLIBC_2.1 nis_print_link F
+GLIBC_2.1 nis_print_object F
+GLIBC_2.1 nis_print_result F
+GLIBC_2.1 nis_print_rights F
+GLIBC_2.1 nis_print_table F
+GLIBC_2.1 nis_read_obj F
+GLIBC_2.1 nis_remove F
+GLIBC_2.1 nis_remove_entry F
+GLIBC_2.1 nis_removemember F
+GLIBC_2.1 nis_rmdir F
+GLIBC_2.1 nis_servstate F
+GLIBC_2.1 nis_sperrno F
+GLIBC_2.1 nis_sperror F
+GLIBC_2.1 nis_sperror_r F
+GLIBC_2.1 nis_stats F
+GLIBC_2.1 nis_verifygroup F
+GLIBC_2.1 nis_write_obj F
+GLIBC_2.1 readColdStartFile F
+GLIBC_2.1 writeColdStartFile F
+GLIBC_2.1 xdr_cback_data F
+GLIBC_2.1 xdr_obj_p F
+GLIBC_2.2 GLIBC_2.2 A
+GLIBC_2.2 xdr_ypall F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sh/libpthread.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/sh/libpthread.abilist
new file mode 100644
index 0000000000..a73aa43c55
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sh/libpthread.abilist
@@ -0,0 +1,245 @@
+GLIBC_2.11 GLIBC_2.11 A
+GLIBC_2.11 pthread_sigqueue F
+GLIBC_2.12 GLIBC_2.12 A
+GLIBC_2.12 pthread_getname_np F
+GLIBC_2.12 pthread_mutex_consistent F
+GLIBC_2.12 pthread_mutexattr_getrobust F
+GLIBC_2.12 pthread_mutexattr_setrobust F
+GLIBC_2.12 pthread_setname_np F
+GLIBC_2.18 GLIBC_2.18 A
+GLIBC_2.18 pthread_getattr_default_np F
+GLIBC_2.18 pthread_setattr_default_np F
+GLIBC_2.2 GLIBC_2.2 A
+GLIBC_2.2 _IO_flockfile F
+GLIBC_2.2 _IO_ftrylockfile F
+GLIBC_2.2 _IO_funlockfile F
+GLIBC_2.2 __close F
+GLIBC_2.2 __connect F
+GLIBC_2.2 __errno_location F
+GLIBC_2.2 __fcntl F
+GLIBC_2.2 __fork F
+GLIBC_2.2 __h_errno_location F
+GLIBC_2.2 __libc_allocate_rtsig F
+GLIBC_2.2 __libc_current_sigrtmax F
+GLIBC_2.2 __libc_current_sigrtmin F
+GLIBC_2.2 __lseek F
+GLIBC_2.2 __open F
+GLIBC_2.2 __open64 F
+GLIBC_2.2 __pread64 F
+GLIBC_2.2 __pthread_getspecific F
+GLIBC_2.2 __pthread_key_create F
+GLIBC_2.2 __pthread_mutex_destroy F
+GLIBC_2.2 __pthread_mutex_init F
+GLIBC_2.2 __pthread_mutex_lock F
+GLIBC_2.2 __pthread_mutex_trylock F
+GLIBC_2.2 __pthread_mutex_unlock F
+GLIBC_2.2 __pthread_mutexattr_destroy F
+GLIBC_2.2 __pthread_mutexattr_init F
+GLIBC_2.2 __pthread_mutexattr_settype F
+GLIBC_2.2 __pthread_once F
+GLIBC_2.2 __pthread_rwlock_destroy F
+GLIBC_2.2 __pthread_rwlock_init F
+GLIBC_2.2 __pthread_rwlock_rdlock F
+GLIBC_2.2 __pthread_rwlock_tryrdlock F
+GLIBC_2.2 __pthread_rwlock_trywrlock F
+GLIBC_2.2 __pthread_rwlock_unlock F
+GLIBC_2.2 __pthread_rwlock_wrlock F
+GLIBC_2.2 __pthread_setspecific F
+GLIBC_2.2 __pwrite64 F
+GLIBC_2.2 __read F
+GLIBC_2.2 __res_state F
+GLIBC_2.2 __send F
+GLIBC_2.2 __sigaction F
+GLIBC_2.2 __vfork F
+GLIBC_2.2 __wait F
+GLIBC_2.2 __write F
+GLIBC_2.2 _pthread_cleanup_pop F
+GLIBC_2.2 _pthread_cleanup_pop_restore F
+GLIBC_2.2 _pthread_cleanup_push F
+GLIBC_2.2 _pthread_cleanup_push_defer F
+GLIBC_2.2 accept F
+GLIBC_2.2 close F
+GLIBC_2.2 connect F
+GLIBC_2.2 fcntl F
+GLIBC_2.2 flockfile F
+GLIBC_2.2 fork F
+GLIBC_2.2 fsync F
+GLIBC_2.2 ftrylockfile F
+GLIBC_2.2 funlockfile F
+GLIBC_2.2 longjmp F
+GLIBC_2.2 lseek F
+GLIBC_2.2 lseek64 F
+GLIBC_2.2 msync F
+GLIBC_2.2 nanosleep F
+GLIBC_2.2 open F
+GLIBC_2.2 open64 F
+GLIBC_2.2 pause F
+GLIBC_2.2 pread F
+GLIBC_2.2 pread64 F
+GLIBC_2.2 pthread_atfork F
+GLIBC_2.2 pthread_attr_destroy F
+GLIBC_2.2 pthread_attr_getdetachstate F
+GLIBC_2.2 pthread_attr_getguardsize F
+GLIBC_2.2 pthread_attr_getinheritsched F
+GLIBC_2.2 pthread_attr_getschedparam F
+GLIBC_2.2 pthread_attr_getschedpolicy F
+GLIBC_2.2 pthread_attr_getscope F
+GLIBC_2.2 pthread_attr_getstack F
+GLIBC_2.2 pthread_attr_getstackaddr F
+GLIBC_2.2 pthread_attr_getstacksize F
+GLIBC_2.2 pthread_attr_init F
+GLIBC_2.2 pthread_attr_setdetachstate F
+GLIBC_2.2 pthread_attr_setguardsize F
+GLIBC_2.2 pthread_attr_setinheritsched F
+GLIBC_2.2 pthread_attr_setschedparam F
+GLIBC_2.2 pthread_attr_setschedpolicy F
+GLIBC_2.2 pthread_attr_setscope F
+GLIBC_2.2 pthread_attr_setstack F
+GLIBC_2.2 pthread_attr_setstackaddr F
+GLIBC_2.2 pthread_attr_setstacksize F
+GLIBC_2.2 pthread_barrier_destroy F
+GLIBC_2.2 pthread_barrier_init F
+GLIBC_2.2 pthread_barrier_wait F
+GLIBC_2.2 pthread_barrierattr_destroy F
+GLIBC_2.2 pthread_barrierattr_init F
+GLIBC_2.2 pthread_barrierattr_setpshared F
+GLIBC_2.2 pthread_cancel F
+GLIBC_2.2 pthread_cond_broadcast F
+GLIBC_2.2 pthread_cond_destroy F
+GLIBC_2.2 pthread_cond_init F
+GLIBC_2.2 pthread_cond_signal F
+GLIBC_2.2 pthread_cond_timedwait F
+GLIBC_2.2 pthread_cond_wait F
+GLIBC_2.2 pthread_condattr_destroy F
+GLIBC_2.2 pthread_condattr_getpshared F
+GLIBC_2.2 pthread_condattr_init F
+GLIBC_2.2 pthread_condattr_setpshared F
+GLIBC_2.2 pthread_create F
+GLIBC_2.2 pthread_detach F
+GLIBC_2.2 pthread_equal F
+GLIBC_2.2 pthread_exit F
+GLIBC_2.2 pthread_getconcurrency F
+GLIBC_2.2 pthread_getcpuclockid F
+GLIBC_2.2 pthread_getschedparam F
+GLIBC_2.2 pthread_getspecific F
+GLIBC_2.2 pthread_join F
+GLIBC_2.2 pthread_key_create F
+GLIBC_2.2 pthread_key_delete F
+GLIBC_2.2 pthread_kill F
+GLIBC_2.2 pthread_kill_other_threads_np F
+GLIBC_2.2 pthread_mutex_destroy F
+GLIBC_2.2 pthread_mutex_init F
+GLIBC_2.2 pthread_mutex_lock F
+GLIBC_2.2 pthread_mutex_timedlock F
+GLIBC_2.2 pthread_mutex_trylock F
+GLIBC_2.2 pthread_mutex_unlock F
+GLIBC_2.2 pthread_mutexattr_destroy F
+GLIBC_2.2 pthread_mutexattr_getkind_np F
+GLIBC_2.2 pthread_mutexattr_getpshared F
+GLIBC_2.2 pthread_mutexattr_gettype F
+GLIBC_2.2 pthread_mutexattr_init F
+GLIBC_2.2 pthread_mutexattr_setkind_np F
+GLIBC_2.2 pthread_mutexattr_setpshared F
+GLIBC_2.2 pthread_mutexattr_settype F
+GLIBC_2.2 pthread_once F
+GLIBC_2.2 pthread_rwlock_destroy F
+GLIBC_2.2 pthread_rwlock_init F
+GLIBC_2.2 pthread_rwlock_rdlock F
+GLIBC_2.2 pthread_rwlock_timedrdlock F
+GLIBC_2.2 pthread_rwlock_timedwrlock F
+GLIBC_2.2 pthread_rwlock_tryrdlock F
+GLIBC_2.2 pthread_rwlock_trywrlock F
+GLIBC_2.2 pthread_rwlock_unlock F
+GLIBC_2.2 pthread_rwlock_wrlock F
+GLIBC_2.2 pthread_rwlockattr_destroy F
+GLIBC_2.2 pthread_rwlockattr_getkind_np F
+GLIBC_2.2 pthread_rwlockattr_getpshared F
+GLIBC_2.2 pthread_rwlockattr_init F
+GLIBC_2.2 pthread_rwlockattr_setkind_np F
+GLIBC_2.2 pthread_rwlockattr_setpshared F
+GLIBC_2.2 pthread_self F
+GLIBC_2.2 pthread_setcancelstate F
+GLIBC_2.2 pthread_setcanceltype F
+GLIBC_2.2 pthread_setconcurrency F
+GLIBC_2.2 pthread_setschedparam F
+GLIBC_2.2 pthread_setspecific F
+GLIBC_2.2 pthread_sigmask F
+GLIBC_2.2 pthread_spin_destroy F
+GLIBC_2.2 pthread_spin_init F
+GLIBC_2.2 pthread_spin_lock F
+GLIBC_2.2 pthread_spin_trylock F
+GLIBC_2.2 pthread_spin_unlock F
+GLIBC_2.2 pthread_testcancel F
+GLIBC_2.2 pthread_yield F
+GLIBC_2.2 pwrite F
+GLIBC_2.2 pwrite64 F
+GLIBC_2.2 raise F
+GLIBC_2.2 read F
+GLIBC_2.2 recv F
+GLIBC_2.2 recvfrom F
+GLIBC_2.2 recvmsg F
+GLIBC_2.2 sem_close F
+GLIBC_2.2 sem_destroy F
+GLIBC_2.2 sem_getvalue F
+GLIBC_2.2 sem_init F
+GLIBC_2.2 sem_open F
+GLIBC_2.2 sem_post F
+GLIBC_2.2 sem_timedwait F
+GLIBC_2.2 sem_trywait F
+GLIBC_2.2 sem_unlink F
+GLIBC_2.2 sem_wait F
+GLIBC_2.2 send F
+GLIBC_2.2 sendmsg F
+GLIBC_2.2 sendto F
+GLIBC_2.2 sigaction F
+GLIBC_2.2 siglongjmp F
+GLIBC_2.2 sigwait F
+GLIBC_2.2 system F
+GLIBC_2.2 tcdrain F
+GLIBC_2.2 vfork F
+GLIBC_2.2 wait F
+GLIBC_2.2 waitpid F
+GLIBC_2.2 write F
+GLIBC_2.2.3 GLIBC_2.2.3 A
+GLIBC_2.2.3 pthread_getattr_np F
+GLIBC_2.2.6 GLIBC_2.2.6 A
+GLIBC_2.2.6 __nanosleep F
+GLIBC_2.3.2 GLIBC_2.3.2 A
+GLIBC_2.3.2 pthread_cond_broadcast F
+GLIBC_2.3.2 pthread_cond_destroy F
+GLIBC_2.3.2 pthread_cond_init F
+GLIBC_2.3.2 pthread_cond_signal F
+GLIBC_2.3.2 pthread_cond_timedwait F
+GLIBC_2.3.2 pthread_cond_wait F
+GLIBC_2.3.3 GLIBC_2.3.3 A
+GLIBC_2.3.3 __pthread_cleanup_routine F
+GLIBC_2.3.3 __pthread_register_cancel F
+GLIBC_2.3.3 __pthread_register_cancel_defer F
+GLIBC_2.3.3 __pthread_unregister_cancel F
+GLIBC_2.3.3 __pthread_unregister_cancel_restore F
+GLIBC_2.3.3 __pthread_unwind_next F
+GLIBC_2.3.3 pthread_attr_getaffinity_np F
+GLIBC_2.3.3 pthread_attr_setaffinity_np F
+GLIBC_2.3.3 pthread_barrierattr_getpshared F
+GLIBC_2.3.3 pthread_condattr_getclock F
+GLIBC_2.3.3 pthread_condattr_setclock F
+GLIBC_2.3.3 pthread_getaffinity_np F
+GLIBC_2.3.3 pthread_setaffinity_np F
+GLIBC_2.3.3 pthread_timedjoin_np F
+GLIBC_2.3.3 pthread_tryjoin_np F
+GLIBC_2.3.4 GLIBC_2.3.4 A
+GLIBC_2.3.4 pthread_attr_getaffinity_np F
+GLIBC_2.3.4 pthread_attr_setaffinity_np F
+GLIBC_2.3.4 pthread_getaffinity_np F
+GLIBC_2.3.4 pthread_setaffinity_np F
+GLIBC_2.3.4 pthread_setschedprio F
+GLIBC_2.4 GLIBC_2.4 A
+GLIBC_2.4 pthread_mutex_consistent_np F
+GLIBC_2.4 pthread_mutex_getprioceiling F
+GLIBC_2.4 pthread_mutex_setprioceiling F
+GLIBC_2.4 pthread_mutexattr_getprioceiling F
+GLIBC_2.4 pthread_mutexattr_getprotocol F
+GLIBC_2.4 pthread_mutexattr_getrobust_np F
+GLIBC_2.4 pthread_mutexattr_setprioceiling F
+GLIBC_2.4 pthread_mutexattr_setprotocol F
+GLIBC_2.4 pthread_mutexattr_setrobust_np F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sh/libresolv.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/sh/libresolv.abilist
new file mode 100644
index 0000000000..4d50e7c8c6
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sh/libresolv.abilist
@@ -0,0 +1,100 @@
+GLIBC_2.0 GLIBC_2.0 A
+GLIBC_2.0 __b64_ntop F
+GLIBC_2.0 __b64_pton F
+GLIBC_2.0 __dn_comp F
+GLIBC_2.0 __dn_count_labels F
+GLIBC_2.0 __dn_skipname F
+GLIBC_2.0 __fp_nquery F
+GLIBC_2.0 __fp_query F
+GLIBC_2.0 __fp_resstat F
+GLIBC_2.0 __hostalias F
+GLIBC_2.0 __loc_aton F
+GLIBC_2.0 __loc_ntoa F
+GLIBC_2.0 __p_cdname F
+GLIBC_2.0 __p_cdnname F
+GLIBC_2.0 __p_class F
+GLIBC_2.0 __p_class_syms D 0x54
+GLIBC_2.0 __p_fqname F
+GLIBC_2.0 __p_fqnname F
+GLIBC_2.0 __p_option F
+GLIBC_2.0 __p_query F
+GLIBC_2.0 __p_secstodate F
+GLIBC_2.0 __p_time F
+GLIBC_2.0 __p_type F
+GLIBC_2.0 __p_type_syms D 0x228
+GLIBC_2.0 __putlong F
+GLIBC_2.0 __putshort F
+GLIBC_2.0 __res_close F
+GLIBC_2.0 __res_dnok F
+GLIBC_2.0 __res_hnok F
+GLIBC_2.0 __res_isourserver F
+GLIBC_2.0 __res_mailok F
+GLIBC_2.0 __res_nameinquery F
+GLIBC_2.0 __res_ownok F
+GLIBC_2.0 __res_queriesmatch F
+GLIBC_2.0 __res_send F
+GLIBC_2.0 __sym_ntop F
+GLIBC_2.0 __sym_ntos F
+GLIBC_2.0 __sym_ston F
+GLIBC_2.0 _gethtbyaddr F
+GLIBC_2.0 _gethtbyname F
+GLIBC_2.0 _gethtbyname2 F
+GLIBC_2.0 _gethtent F
+GLIBC_2.0 _getlong F
+GLIBC_2.0 _getshort F
+GLIBC_2.0 _res_opcodes D 0x40
+GLIBC_2.0 _sethtent F
+GLIBC_2.0 dn_expand F
+GLIBC_2.0 inet_net_ntop F
+GLIBC_2.0 inet_net_pton F
+GLIBC_2.0 inet_neta F
+GLIBC_2.0 res_gethostbyaddr F
+GLIBC_2.0 res_gethostbyname F
+GLIBC_2.0 res_gethostbyname2 F
+GLIBC_2.0 res_mkquery F
+GLIBC_2.0 res_query F
+GLIBC_2.0 res_querydomain F
+GLIBC_2.0 res_search F
+GLIBC_2.0 res_send_setqhook F
+GLIBC_2.0 res_send_setrhook F
+GLIBC_2.2 GLIBC_2.2 A
+GLIBC_2.2 __dn_expand F
+GLIBC_2.2 __res_hostalias F
+GLIBC_2.2 __res_mkquery F
+GLIBC_2.2 __res_nmkquery F
+GLIBC_2.2 __res_nquery F
+GLIBC_2.2 __res_nquerydomain F
+GLIBC_2.2 __res_nsearch F
+GLIBC_2.2 __res_nsend F
+GLIBC_2.2 __res_query F
+GLIBC_2.2 __res_querydomain F
+GLIBC_2.2 __res_search F
+GLIBC_2.3.2 GLIBC_2.3.2 A
+GLIBC_2.3.2 __p_rcode F
+GLIBC_2.9 GLIBC_2.9 A
+GLIBC_2.9 ns_datetosecs F
+GLIBC_2.9 ns_format_ttl F
+GLIBC_2.9 ns_get16 F
+GLIBC_2.9 ns_get32 F
+GLIBC_2.9 ns_initparse F
+GLIBC_2.9 ns_makecanon F
+GLIBC_2.9 ns_msg_getflag F
+GLIBC_2.9 ns_name_compress F
+GLIBC_2.9 ns_name_ntol F
+GLIBC_2.9 ns_name_ntop F
+GLIBC_2.9 ns_name_pack F
+GLIBC_2.9 ns_name_pton F
+GLIBC_2.9 ns_name_rollback F
+GLIBC_2.9 ns_name_skip F
+GLIBC_2.9 ns_name_uncompress F
+GLIBC_2.9 ns_name_unpack F
+GLIBC_2.9 ns_parse_ttl F
+GLIBC_2.9 ns_parserr F
+GLIBC_2.9 ns_put16 F
+GLIBC_2.9 ns_put32 F
+GLIBC_2.9 ns_samedomain F
+GLIBC_2.9 ns_samename F
+GLIBC_2.9 ns_skiprr F
+GLIBC_2.9 ns_sprintrr F
+GLIBC_2.9 ns_sprintrrf F
+GLIBC_2.9 ns_subdomain F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sh/librt.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/sh/librt.abilist
new file mode 100644
index 0000000000..15e4418863
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sh/librt.abilist
@@ -0,0 +1,47 @@
+GLIBC_2.1 GLIBC_2.1 A
+GLIBC_2.1 aio_cancel F
+GLIBC_2.1 aio_cancel64 F
+GLIBC_2.1 aio_error F
+GLIBC_2.1 aio_error64 F
+GLIBC_2.1 aio_fsync F
+GLIBC_2.1 aio_fsync64 F
+GLIBC_2.1 aio_init F
+GLIBC_2.1 aio_read F
+GLIBC_2.1 aio_read64 F
+GLIBC_2.1 aio_return F
+GLIBC_2.1 aio_return64 F
+GLIBC_2.1 aio_suspend F
+GLIBC_2.1 aio_suspend64 F
+GLIBC_2.1 aio_write F
+GLIBC_2.1 aio_write64 F
+GLIBC_2.1 lio_listio F
+GLIBC_2.1 lio_listio64 F
+GLIBC_2.2 GLIBC_2.2 A
+GLIBC_2.2 clock_getcpuclockid F
+GLIBC_2.2 clock_getres F
+GLIBC_2.2 clock_gettime F
+GLIBC_2.2 clock_nanosleep F
+GLIBC_2.2 clock_settime F
+GLIBC_2.2 shm_open F
+GLIBC_2.2 shm_unlink F
+GLIBC_2.2 timer_create F
+GLIBC_2.2 timer_delete F
+GLIBC_2.2 timer_getoverrun F
+GLIBC_2.2 timer_gettime F
+GLIBC_2.2 timer_settime F
+GLIBC_2.3.4 GLIBC_2.3.4 A
+GLIBC_2.3.4 mq_close F
+GLIBC_2.3.4 mq_getattr F
+GLIBC_2.3.4 mq_notify F
+GLIBC_2.3.4 mq_open F
+GLIBC_2.3.4 mq_receive F
+GLIBC_2.3.4 mq_send F
+GLIBC_2.3.4 mq_setattr F
+GLIBC_2.3.4 mq_timedreceive F
+GLIBC_2.3.4 mq_timedsend F
+GLIBC_2.3.4 mq_unlink F
+GLIBC_2.4 GLIBC_2.4 A
+GLIBC_2.4 lio_listio F
+GLIBC_2.4 lio_listio64 F
+GLIBC_2.7 GLIBC_2.7 A
+GLIBC_2.7 __mq_open_2 F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sh/libthread_db.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/sh/libthread_db.abilist
new file mode 100644
index 0000000000..a8a8c2c68d
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sh/libthread_db.abilist
@@ -0,0 +1,44 @@
+GLIBC_2.1.3 GLIBC_2.1.3 A
+GLIBC_2.1.3 td_init F
+GLIBC_2.1.3 td_log F
+GLIBC_2.1.3 td_ta_clear_event F
+GLIBC_2.1.3 td_ta_delete F
+GLIBC_2.1.3 td_ta_enable_stats F
+GLIBC_2.1.3 td_ta_event_addr F
+GLIBC_2.1.3 td_ta_event_getmsg F
+GLIBC_2.1.3 td_ta_get_nthreads F
+GLIBC_2.1.3 td_ta_get_ph F
+GLIBC_2.1.3 td_ta_get_stats F
+GLIBC_2.1.3 td_ta_map_id2thr F
+GLIBC_2.1.3 td_ta_map_lwp2thr F
+GLIBC_2.1.3 td_ta_new F
+GLIBC_2.1.3 td_ta_reset_stats F
+GLIBC_2.1.3 td_ta_set_event F
+GLIBC_2.1.3 td_ta_setconcurrency F
+GLIBC_2.1.3 td_ta_thr_iter F
+GLIBC_2.1.3 td_ta_tsd_iter F
+GLIBC_2.1.3 td_thr_clear_event F
+GLIBC_2.1.3 td_thr_dbresume F
+GLIBC_2.1.3 td_thr_dbsuspend F
+GLIBC_2.1.3 td_thr_event_enable F
+GLIBC_2.1.3 td_thr_event_getmsg F
+GLIBC_2.1.3 td_thr_get_info F
+GLIBC_2.1.3 td_thr_getfpregs F
+GLIBC_2.1.3 td_thr_getgregs F
+GLIBC_2.1.3 td_thr_getxregs F
+GLIBC_2.1.3 td_thr_getxregsize F
+GLIBC_2.1.3 td_thr_set_event F
+GLIBC_2.1.3 td_thr_setfpregs F
+GLIBC_2.1.3 td_thr_setgregs F
+GLIBC_2.1.3 td_thr_setprio F
+GLIBC_2.1.3 td_thr_setsigpending F
+GLIBC_2.1.3 td_thr_setxregs F
+GLIBC_2.1.3 td_thr_sigsetmask F
+GLIBC_2.1.3 td_thr_tsd F
+GLIBC_2.1.3 td_thr_validate F
+GLIBC_2.2.3 GLIBC_2.2.3 A
+GLIBC_2.2.3 td_symbol_list F
+GLIBC_2.3 GLIBC_2.3 A
+GLIBC_2.3 td_thr_tls_get_addr F
+GLIBC_2.3.3 GLIBC_2.3.3 A
+GLIBC_2.3.3 td_thr_tlsbase F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sh/libutil.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/sh/libutil.abilist
new file mode 100644
index 0000000000..89c67755c4
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sh/libutil.abilist
@@ -0,0 +1,7 @@
+GLIBC_2.0 GLIBC_2.0 A
+GLIBC_2.0 forkpty F
+GLIBC_2.0 login F
+GLIBC_2.0 login_tty F
+GLIBC_2.0 logout F
+GLIBC_2.0 logwtmp F
+GLIBC_2.0 openpty F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sh/localplt.data b/REORG.TODO/sysdeps/unix/sysv/linux/sh/localplt.data
new file mode 100644
index 0000000000..f1f5effc24
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sh/localplt.data
@@ -0,0 +1,21 @@
+# See scripts/check-localplt.awk for how this file is processed.
+# PLT use is required for the malloc family and for matherr because
+# users can define their own functions and have library internals call them.
+libc.so: calloc
+libc.so: free
+libc.so: malloc
+libc.so: memalign
+libc.so: realloc
+libc.so: _Unwind_Find_FDE
+libc.so: _exit
+libc.so: __errno_location
+libm.so: matherr
+# The main malloc is interposed into the dynamic linker, for
+# allocations after the initial link (when dlopen is used).
+ld.so: malloc
+ld.so: calloc
+ld.so: realloc
+ld.so: free
+# The TLS-enabled version of these functions is interposed from libc.so.
+ld.so: _dl_signal_error
+ld.so: _dl_catch_error
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sh/lockf64.c b/REORG.TODO/sysdeps/unix/sysv/linux/sh/lockf64.c
new file mode 100644
index 0000000000..a88f5a784a
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sh/lockf64.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/i386/lockf64.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sh/lowlevel-atomic.h b/REORG.TODO/sysdeps/unix/sysv/linux/sh/lowlevel-atomic.h
new file mode 100644
index 0000000000..b8cc5b2c4c
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sh/lowlevel-atomic.h
@@ -0,0 +1,80 @@
+/* Copyright (C) 2003-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifdef __ASSEMBLER__
+
+#define _IMP1 #1
+#define _IMM1 #-1
+#define _IMM4 #-4
+#define _IMM6 #-6
+#define _IMM8 #-8
+
+#define INC(mem, reg) \
+ .align 2; \
+ mova 99f, r0; \
+ mov r15, r1; \
+ mov _IMM6, r15; \
+98: mov.l mem, reg; \
+ add _IMP1, reg; \
+ mov.l reg, mem; \
+99: mov r1, r15
+
+#define DEC(mem, reg) \
+ .align 2; \
+ mova 99f, r0; \
+ mov r15, r1; \
+ mov _IMM6, r15; \
+98: mov.l mem, reg; \
+ add _IMM1, reg; \
+ mov.l reg, mem; \
+99: mov r1, r15
+
+#define XADD(reg, mem, old, tmp) \
+ .align 2; \
+ mova 99f, r0; \
+ nop; \
+ mov r15, r1; \
+ mov _IMM8, r15; \
+98: mov.l mem, old; \
+ mov reg, tmp; \
+ add old, tmp; \
+ mov.l tmp, mem; \
+99: mov r1, r15
+
+#define XCHG(reg, mem, old) \
+ .align 2; \
+ mova 99f, r0; \
+ nop; \
+ mov r15, r1; \
+ mov _IMM4, r15; \
+98: mov.l mem, old; \
+ mov.l reg, mem; \
+99: mov r1, r15
+
+#define CMPXCHG(reg, mem, new, old) \
+ .align 2; \
+ mova 99f, r0; \
+ nop; \
+ mov r15, r1; \
+ mov _IMM8, r15; \
+98: mov.l mem, old; \
+ cmp/eq old, reg; \
+ bf 99f; \
+ mov.l new, mem; \
+99: mov r1, r15
+
+#endif /* __ASSEMBLER__ */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sh/lxstat.c b/REORG.TODO/sysdeps/unix/sysv/linux/sh/lxstat.c
new file mode 100644
index 0000000000..2371cd9719
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sh/lxstat.c
@@ -0,0 +1,2 @@
+#include <sysdeps/unix/sysv/linux/i386/lxstat.c>
+
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sh/makecontext.S b/REORG.TODO/sysdeps/unix/sysv/linux/sh/makecontext.S
new file mode 100644
index 0000000000..4506961007
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sh/makecontext.S
@@ -0,0 +1,160 @@
+/* Create new context.
+ Copyright (C) 2005-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#include <abort-instr.h>
+
+#include "ucontext_i.h"
+
+/* void __makecontext (struct ucontext *ucp, void (*func)(), int argc, ...);
+ __makecontext sets up a stack and registers for context to run a given
+ function. The registers are set up like this:
+ r4-r7: parameters 1 to 4
+ r8 : uc_link from ucontext structure
+ pc : (*func) pointer
+ pr : address of exitcode
+ r15 : stack pointer for func. */
+
+ .text
+ .align 5
+ENTRY(__makecontext)
+ mov #4, r3
+ mov.l @(oSS_SP,r4), r1 /* r1 <- ucb->stack_base */
+ mov.l @(oSS_SIZE,r4), r2 /* r2 <- ucb->stack_size */
+ add r1, r2 /* r2 <- stack_top */
+ cmp/gt r3, r6 /* argc > 4? */
+ bf/s 1f
+ shlr2 r2 /* r2 <- stack_top / 4 */
+ sub r6, r2
+ add r3, r2
+1:
+ shll2 r2 /* r2 <- stack_top - ((argc > 4) ? 4 * (argc - 4) : 0 */
+ mov #oR15, r0
+ mov.l @(oLINK,r4), r1
+ mov.l r2, @(r0,r4) /* ucp->r15 <- r2 */
+ mov.l r1, @(oR8,r4) /* ucp->r8 <- ucp->uc_link */
+ mov #oPC, r0
+ mov.l r5, @(r0,r4) /* ucp->PC <- func */
+
+ cmp/pl r6 /* argc > 0? */
+ bf/s .L1
+ dt r6
+ mov.l r7, @(oR4,r4) /* ucp->r4 <- argv[0] */
+ cmp/pl r6 /* argc > 1? */
+ bf/s .L1
+ dt r6
+ mov.l @(0,r15), r1
+ mov.l r1, @(oR5,r4) /* ucp->r5 <- argv[1] */
+ cmp/pl r6 /* argc > 2? */
+ bf/s .L1
+ dt r6
+ mov.l @(4,r15), r1
+ mov.l r1, @(oR6,r4) /* ucp->r6 <- argv[2] */
+ cmp/pl r6 /* argc > 3? */
+ bf/s .L1
+ dt r6
+ mov.l @(8,r15), r1
+ mov.l r1, @(oR7,r4) /* ucp->r7 <- argv[3] */
+ mov #12,r0
+.L0: /* Save remaining argv[] on the stack. */
+ cmp/pl r6
+ bf/s .L1
+ dt r6
+ mov.l @(r0,r15), r1
+ mov.l r1, @r2
+ add #4, r0
+ bra .L0
+ add #4, r2
+.L1:
+#ifdef PIC
+ mova .Lexitcode, r0
+#else
+ mov.l .L2, r0
+#endif
+ add #oPR, r4
+ rts
+ mov.l r0, @r4 /* ucp->pr <- exitcode */
+#ifndef PIC
+ .align 2
+.L2:
+ .long .Lexitcode
+#endif
+ cfi_endproc
+
+ .align 5
+ cfi_startproc
+.Lexitcode:
+#ifdef PIC
+ mov.l r12, @-r15
+ cfi_adjust_cfa_offset (4)
+ cfi_rel_offset (r12, 0)
+ mova .Lgot, r0
+ mov.l .Lgot, r12
+ add r0, r12
+#endif
+ tst r8, r8 /* ucb->uc_link == NULL? */
+ bt/s 2f
+ mov r8, r4 /* r4 <- ucb->uc_link */
+ mov.l .Lsetcontext, r1
+ sts.l pr, @-r15
+ cfi_adjust_cfa_offset (4)
+ cfi_rel_offset (pr, 0)
+#ifdef PIC
+ bsrf r1
+.LPCS0:
+ nop
+#else
+ jsr @r1
+ nop
+#endif
+ /* Restore to keep CFI/CFA balanced. */
+ lds.l @r15+, pr
+ cfi_adjust_cfa_offset (-4)
+ cfi_restore (pr)
+ /* If this returns (which can happen if the syscall fails) we'll exit
+ the program with the return error value (-1). */
+ mov r0, r4
+
+2:
+ mov.l .Lexit, r1
+#ifdef PIC
+ add r12, r1
+#endif
+ jsr @r1
+ nop
+ /* The 'exit' call should never return. In case it does cause the
+ process to terminate. */
+ ABORT_INSTRUCTION_ASM
+
+ .align 2
+#ifdef PIC
+.Lgot:
+ .long _GLOBAL_OFFSET_TABLE_
+.Lsetcontext:
+ .long __setcontext@PLT-(.LPCS0+2-(.))
+.Lexit:
+ .long HIDDEN_JUMPTARGET(exit)@GOTOFF
+#else
+.Lsetcontext:
+ .long __setcontext
+.Lexit:
+ .long HIDDEN_JUMPTARGET(exit)
+#endif
+PSEUDO_END(__makecontext)
+
+weak_alias (__makecontext, makecontext)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sh/pipe.S b/REORG.TODO/sysdeps/unix/sysv/linux/sh/pipe.S
new file mode 100644
index 0000000000..994d11ad5c
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sh/pipe.S
@@ -0,0 +1,42 @@
+/* Copyright (C) 1999-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+
+ENTRY (__libc_pipe)
+ mov #+__NR_pipe, r3
+ trapa #0x10
+ mov r0, r3
+ mov #-12, r2
+ shad r2, r3
+ not r3, r3 // r1=0 means r0 = -1 to -4095
+ tst r3, r3 // i.e. error in linux
+ bt 1f
+ mov.l r0, @r4
+ mov.l r1, @(4, r4)
+ rts
+ mov #0, r0
+1:
+ SYSCALL_ERROR_HANDLER
+.Lpseudo_end:
+ rts
+ nop
+PSEUDO_END (__libc_pipe)
+
+weak_alias (__libc_pipe, __pipe)
+libc_hidden_def (__pipe)
+weak_alias (__libc_pipe, pipe)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sh/profil-counter.h b/REORG.TODO/sysdeps/unix/sysv/linux/sh/profil-counter.h
new file mode 100644
index 0000000000..98db140e04
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sh/profil-counter.h
@@ -0,0 +1,32 @@
+/* Low-level statistical profiling support function. Linux/SH version.
+ Copyright (C) 1996-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <signal.h>
+
+static void
+__profil_counter (int signo, int _a2, int _a3, int _a4, struct sigcontext sc)
+{
+ void *pc;
+ pc = (void *) sc.sc_pc;
+ profil_count (pc);
+
+ /* This is a hack to prevent the compiler from implementing the
+ above function call as a sibcall. The sibcall would overwrite
+ the signal context. */
+ asm volatile ("");
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sh/pt-vfork.S b/REORG.TODO/sysdeps/unix/sysv/linux/sh/pt-vfork.S
new file mode 100644
index 0000000000..65cc3823ac
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sh/pt-vfork.S
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/alpha/pt-vfork.S>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sh/sh3/getcontext.S b/REORG.TODO/sysdeps/unix/sysv/linux/sh/sh3/getcontext.S
new file mode 100644
index 0000000000..c09c16937c
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sh/sh3/getcontext.S
@@ -0,0 +1,87 @@
+/* Save current context.
+ Copyright (C) 2005-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+
+#include "ucontext_i.h"
+
+/* int __getcontext (ucontext_t *uc); */
+
+ .text
+ .align 5
+ENTRY(__getcontext)
+
+ /* Return value of getcontext. R0 is the only register whose
+ value is not preserved. */
+ mov #0, r0
+ mov.l r0, @(oR0,r4)
+ mov.l r1, @(oR1,r4)
+ mov.l r2, @(oR2,r4)
+ mov.l r3, @(oR3,r4)
+ mov.l r4, @(oR4,r4)
+ mov.l r5, @(oR5,r4)
+ mov.l r6, @(oR6,r4)
+ mov.l r7, @(oR7,r4)
+ mov r4, r0
+ add #(oMACL+4), r0
+ sts.l macl, @-r0
+ sts.l mach, @-r0
+ stc.l gbr, @-r0
+
+ /* Save T flag to SR. */
+ movt r1
+ mov.l r1, @-r0
+ sts.l pr, @-r0
+
+ /* The return address of getcontext is the restart pc. */
+ sts.l pr, @-r0
+
+ mov.l r15, @-r0
+ mov.l r14, @-r0
+ mov.l r13, @-r0
+ mov.l r12, @-r0
+ mov.l r11, @-r0
+ mov.l r10, @-r0
+ mov.l r9, @-r0
+ mov.l r8, @-r0
+
+ /* sigprocmask (SIG_BLOCK, NULL, &uc->uc_sigmask). */
+ mov r4, r6
+ add #oSIGMASK, r6
+ mov #SIG_BLOCK, r4
+ mov #0, r5
+ mov #+SYS_ify(sigprocmask), r3
+ trapa #0x13
+ mov r0, r1
+ mov #-12, r2
+ shad r2, r1
+ not r1, r1 // r1=0 means r0 = -1 to -4095
+ tst r1, r1 // i.e. error in linux
+ bf .Lgetcontext_end
+.Lsyscall_error:
+ SYSCALL_ERROR_HANDLER
+.Lgetcontext_end:
+ /* All done, return 0 for success. */
+ mov #0, r0
+.Lpseudo_end:
+ rts
+ nop
+
+PSEUDO_END(__getcontext)
+
+weak_alias (__getcontext, getcontext)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sh/sh3/register-dump.h b/REORG.TODO/sysdeps/unix/sysv/linux/sh/sh3/register-dump.h
new file mode 100644
index 0000000000..f8530c43c0
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sh/sh3/register-dump.h
@@ -0,0 +1,150 @@
+/* Dump registers.
+ Copyright (C) 1999-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sys/uio.h>
+#include <_itoa.h>
+
+/* We will print the register dump in this format:
+
+ R0: XXXXXXXX R1: XXXXXXXX R2: XXXXXXXX R3: XXXXXXXX
+ R4: XXXXXXXX R5: XXXXXXXX R6: XXXXXXXX R7: XXXXXXXX
+ R8: XXXXXXXX R9: XXXXXXXX R10: XXXXXXXX R11: XXXXXXXX
+ R12: XXXXXXXX R13: XXXXXXXX R14: XXXXXXXX R15: XXXXXXXX
+
+MACL: XXXXXXXX MACH: XXXXXXXX
+
+ PC: XXXXXXXX PR: XXXXXXXX GBR: XXXXXXXX SR: XXXXXXXX
+
+ FR0: XXXXXXXX FR1: XXXXXXXX FR2: XXXXXXXX FR3: XXXXXXXX
+ FR4: XXXXXXXX FR5: XXXXXXXX FR6: XXXXXXXX FR7: XXXXXXXX
+ FR8: XXXXXXXX FR9: XXXXXXXX FR10: XXXXXXXX FR11: XXXXXXXX
+FR12: XXXXXXXX FR13: XXXXXXXX FR14: XXXXXXXX FR15: XXXXXXXX
+
+ XR0: XXXXXXXX XR1: XXXXXXXX XR2: XXXXXXXX XR3: XXXXXXXX
+ XR4: XXXXXXXX XR5: XXXXXXXX XR6: XXXXXXXX XR7: XXXXXXXX
+ XR8: XXXXXXXX XR9: XXXXXXXX XR10: XXXXXXXX XR11: XXXXXXXX
+XR12: XXXXXXXX XR13: XXXXXXXX XR14: XXXXXXXX XR15: XXXXXXXX
+
+FPSCR: XXXXXXXX FPUL: XXXXXXXX
+
+ */
+
+static void
+hexvalue (unsigned long int value, char *buf, size_t len)
+{
+ char *cp = _itoa_word (value, buf + len, 16, 0);
+ while (cp > buf)
+ *--cp = '0';
+}
+
+static void
+register_dump (int fd, struct sigcontext *ctx)
+{
+ char regs[22][8];
+ struct iovec iov[112];
+ size_t nr = 0;
+
+#define ADD_STRING(str) \
+ iov[nr].iov_base = (char *) str; \
+ iov[nr].iov_len = strlen (str); \
+ ++nr
+#define ADD_MEM(str, len) \
+ iov[nr].iov_base = str; \
+ iov[nr].iov_len = len; \
+ ++nr
+
+ /* Generate strings of register contents. */
+ hexvalue (ctx->sc_regs[0], regs[0], 8);
+ hexvalue (ctx->sc_regs[1], regs[1], 8);
+ hexvalue (ctx->sc_regs[2], regs[2], 8);
+ hexvalue (ctx->sc_regs[3], regs[3], 8);
+ hexvalue (ctx->sc_regs[4], regs[4], 8);
+ hexvalue (ctx->sc_regs[5], regs[5], 8);
+ hexvalue (ctx->sc_regs[6], regs[6], 8);
+ hexvalue (ctx->sc_regs[7], regs[7], 8);
+ hexvalue (ctx->sc_regs[8], regs[8], 8);
+ hexvalue (ctx->sc_regs[9], regs[9], 8);
+ hexvalue (ctx->sc_regs[10], regs[10], 8);
+ hexvalue (ctx->sc_regs[11], regs[11], 8);
+ hexvalue (ctx->sc_regs[12], regs[12], 8);
+ hexvalue (ctx->sc_regs[13], regs[13], 8);
+ hexvalue (ctx->sc_regs[14], regs[14], 8);
+ hexvalue (ctx->sc_regs[15], regs[15], 8);
+ hexvalue (ctx->sc_macl, regs[16], 8);
+ hexvalue (ctx->sc_mach, regs[17], 8);
+ hexvalue (ctx->sc_pc, regs[18], 8);
+ hexvalue (ctx->sc_pr, regs[19], 8);
+ hexvalue (ctx->sc_gbr, regs[20], 8);
+ hexvalue (ctx->sc_sr, regs[21], 8);
+
+ /* Generate the output. */
+ ADD_STRING ("Register dump:\n\n R0: ");
+ ADD_MEM (regs[0], 8);
+ ADD_STRING (" R1: ");
+ ADD_MEM (regs[1], 8);
+ ADD_STRING (" R2: ");
+ ADD_MEM (regs[2], 8);
+ ADD_STRING (" R3: ");
+ ADD_MEM (regs[3], 8);
+ ADD_STRING ("\n R4: ");
+ ADD_MEM (regs[4], 8);
+ ADD_STRING (" R5: ");
+ ADD_MEM (regs[5], 8);
+ ADD_STRING (" R6: ");
+ ADD_MEM (regs[6], 8);
+ ADD_STRING (" R7: ");
+ ADD_MEM (regs[7], 8);
+ ADD_STRING ("\n R8: ");
+ ADD_MEM (regs[8], 8);
+ ADD_STRING (" R9: ");
+ ADD_MEM (regs[9], 8);
+ ADD_STRING (" R10: ");
+ ADD_MEM (regs[10], 8);
+ ADD_STRING (" R11: ");
+ ADD_MEM (regs[11], 8);
+ ADD_STRING ("\n R12: ");
+ ADD_MEM (regs[12], 8);
+ ADD_STRING (" R13: ");
+ ADD_MEM (regs[13], 8);
+ ADD_STRING (" R14: ");
+ ADD_MEM (regs[14], 8);
+ ADD_STRING (" R15: ");
+ ADD_MEM (regs[15], 8);
+
+ ADD_STRING ("\n\nMACL: ");
+ ADD_MEM (regs[16], 8);
+ ADD_STRING (" MACH: ");
+ ADD_MEM (regs[17], 8);
+
+ ADD_STRING ("\n\n PC: ");
+ ADD_MEM (regs[18], 8);
+ ADD_STRING (" PR: ");
+ ADD_MEM (regs[19], 8);
+ ADD_STRING (" GBR: ");
+ ADD_MEM (regs[20], 8);
+ ADD_STRING (" SR: ");
+ ADD_MEM (regs[21], 8);
+
+ ADD_STRING ("\n");
+
+ /* Write the stuff out. */
+ writev (fd, iov, nr);
+}
+
+
+#define REGISTER_DUMP register_dump (fd, &ctx)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sh/sh3/setcontext.S b/REORG.TODO/sysdeps/unix/sysv/linux/sh/sh3/setcontext.S
new file mode 100644
index 0000000000..d97b064d2f
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sh/sh3/setcontext.S
@@ -0,0 +1,99 @@
+/* Install given context.
+ Copyright (C) 2005-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+
+#include "ucontext_i.h"
+
+/* int __setcontext (const ucontext_t *uc); */
+
+ .text
+ .align 5
+ENTRY(__setcontext)
+
+ mov r4, r8
+
+ /* sigprocmask (SIG_SETMASK, &uc->uc_sigmask, NULL). */
+ mov r4, r5
+ add #oSIGMASK, r5
+ mov #SIG_SETMASK, r4
+ mov #0, r6
+ mov #+SYS_ify(sigprocmask), r3
+ trapa #0x13
+ mov r0, r1
+ mov #-12, r2
+ shad r2, r1
+ not r1, r1 // r1=0 means r0 = -1 to -4095
+ tst r1, r1 // i.e. error in linux
+ bf .Lsetcontext_restore
+.Lsyscall_error:
+ SYSCALL_ERROR_HANDLER
+.Lpseudo_end:
+ rts
+ nop
+
+.Lsetcontext_restore:
+ mov r8, r0
+ add #(oPC), r0
+ mov.l @r0+, r2
+ lds.l @r0+, pr
+
+ /* Restore T frag. */
+ mov.l @r0+, r1
+ shlr r1
+ /* Skip GBR which is used for thread pointer. */
+ add #4, r0
+
+ lds.l @r0+, mach
+ lds.l @r0+, macl
+
+ mov r8, r0
+ add #(oR9), r0
+ mov.l @r0+, r9
+ mov.l @r0+, r10
+ mov.l @r0+, r11
+ mov.l @r0+, r12
+ mov.l @r0+, r13
+ mov.l @r0+, r14
+ mov.l @r0+, r15
+
+ mov r8, r0
+ mov.l @(oR0,r0), r1
+ mov.l r1, @-r15
+ cfi_adjust_cfa_offset(4)
+ cfi_rel_offset (r1, 0)
+ mov.l r2, @-r15
+ cfi_adjust_cfa_offset(4)
+ cfi_rel_offset (r2, 0)
+
+ mov.l @(oR1,r0), r1
+ mov.l @(oR2,r0), r2
+ mov.l @(oR3,r0), r3
+ mov.l @(oR4,r0), r4
+ mov.l @(oR5,r0), r5
+ mov.l @(oR6,r0), r6
+ mov.l @(oR7,r0), r7
+ mov.l @(oR8,r0), r8
+ mov.l @r15+, r0
+ cfi_adjust_cfa_offset(-4)
+ jmp @r0
+ mov.l @r15+, r0
+
+PSEUDO_END(__setcontext)
+
+weak_alias (__setcontext, setcontext)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sh/sh3/swapcontext.S b/REORG.TODO/sysdeps/unix/sysv/linux/sh/sh3/swapcontext.S
new file mode 100644
index 0000000000..986fcee47a
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sh/sh3/swapcontext.S
@@ -0,0 +1,132 @@
+/* Save current context and install the given one.
+ Copyright (C) 2005-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+
+#include "ucontext_i.h"
+
+/* int __swapcontext (ucontext_t *ouc, const ucontext_t *uc); */
+
+ .text
+ .align 5
+ENTRY(__swapcontext)
+
+ /* Return value of getcontext. R0 is the only register whose
+ value is not preserved. */
+ mov #0, r0
+ mov.l r0, @(oR0,r4)
+ mov.l r1, @(oR1,r4)
+ mov.l r2, @(oR2,r4)
+ mov.l r3, @(oR3,r4)
+ mov.l r4, @(oR4,r4)
+ mov.l r5, @(oR5,r4)
+ mov.l r6, @(oR6,r4)
+ mov.l r7, @(oR7,r4)
+ mov r4, r0
+ add #(oMACL+4), r0
+ sts.l macl, @-r0
+ sts.l mach, @-r0
+ stc.l gbr, @-r0
+
+ /* Save T flag to SR. */
+ movt r1
+ mov.l r1, @-r0
+ sts.l pr, @-r0
+
+ /* The return address of getcontext is the restart pc. */
+ sts.l pr, @-r0
+
+ mov.l r15, @-r0
+ mov.l r14, @-r0
+ mov.l r13, @-r0
+ mov.l r12, @-r0
+ mov.l r11, @-r0
+ mov.l r10, @-r0
+ mov.l r9, @-r0
+ mov.l r8, @-r0
+
+ mov r5, r8
+
+ /* sigprocmask (SIG_SETMASK, &uc->uc_sigmask, &ouc->uc_sigmask). */
+ add #oSIGMASK, r5
+ mov r4, r6
+ add #oSIGMASK, r6
+ mov #SIG_SETMASK, r4
+ mov #+SYS_ify(sigprocmask), r3
+ trapa #0x13
+ mov r0, r1
+ mov #-12, r2
+ shad r2, r1
+ not r1, r1 // r1=0 means r0 = -1 to -4095
+ tst r1, r1 // i.e. error in linux
+ bf .Lswapcontext_restore
+.Lsyscall_error:
+ SYSCALL_ERROR_HANDLER
+.Lpseudo_end:
+ rts
+ nop
+.Lswapcontext_restore:
+ mov r8, r0
+ add #(oPC), r0
+ mov.l @r0+, r2
+ lds.l @r0+, pr
+
+ /* Restore T frag. */
+ mov.l @r0+, r1
+ shlr r1
+ /* Skip GBR which is used for thread pointer. */
+ add #4, r0
+
+ lds.l @r0+, mach
+ lds.l @r0+, macl
+
+ mov r8, r0
+ add #(oR9), r0
+ mov.l @r0+, r9
+ mov.l @r0+, r10
+ mov.l @r0+, r11
+ mov.l @r0+, r12
+ mov.l @r0+, r13
+ mov.l @r0+, r14
+ mov.l @r0+, r15
+
+ mov r8, r0
+ mov.l @(oR0,r0), r1
+ mov.l r1, @-r15
+ cfi_adjust_cfa_offset(4)
+ cfi_rel_offset (r1, 0)
+ mov.l r2, @-r15
+ cfi_adjust_cfa_offset(4)
+ cfi_rel_offset (r2, 0)
+
+ mov.l @(oR1,r0), r1
+ mov.l @(oR2,r0), r2
+ mov.l @(oR3,r0), r3
+ mov.l @(oR4,r0), r4
+ mov.l @(oR5,r0), r5
+ mov.l @(oR6,r0), r6
+ mov.l @(oR7,r0), r7
+ mov.l @(oR8,r0), r8
+ mov.l @r15+, r0
+ cfi_adjust_cfa_offset(-4)
+ jmp @r0
+ mov.l @r15+, r0
+
+PSEUDO_END(__swapcontext)
+
+weak_alias (__swapcontext, swapcontext)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sh/sh3/ucontext_i.sym b/REORG.TODO/sysdeps/unix/sysv/linux/sh/sh3/ucontext_i.sym
new file mode 100644
index 0000000000..25f914a93b
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sh/sh3/ucontext_i.sym
@@ -0,0 +1,38 @@
+#include <stddef.h>
+#include <signal.h>
+#include <sys/ucontext.h>
+
+--
+
+SIG_BLOCK
+SIG_SETMASK
+
+#define ucontext(member) offsetof (ucontext_t, member)
+#define mcontext(member) ucontext (uc_mcontext.member)
+
+oLINK ucontext (uc_link)
+oSS_SP ucontext (uc_stack.ss_sp)
+oSS_SIZE ucontext (uc_stack.ss_size)
+oR0 mcontext (gregs[REG_R0])
+oR1 mcontext (gregs[REG_R1])
+oR2 mcontext (gregs[REG_R2])
+oR3 mcontext (gregs[REG_R3])
+oR4 mcontext (gregs[REG_R4])
+oR5 mcontext (gregs[REG_R5])
+oR6 mcontext (gregs[REG_R6])
+oR7 mcontext (gregs[REG_R7])
+oR8 mcontext (gregs[REG_R8])
+oR9 mcontext (gregs[REG_R9])
+oR10 mcontext (gregs[REG_R10])
+oR11 mcontext (gregs[REG_R11])
+oR12 mcontext (gregs[REG_R12])
+oR13 mcontext (gregs[REG_R13])
+oR14 mcontext (gregs[REG_R14])
+oR15 mcontext (gregs[REG_R15])
+oPC mcontext (pc)
+oPR mcontext (pr)
+oSR mcontext (sr)
+oGBR mcontext (gbr)
+oMACH mcontext (mach)
+oMACL mcontext (macl)
+oSIGMASK ucontext (uc_sigmask)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sh/sh4/getcontext.S b/REORG.TODO/sysdeps/unix/sysv/linux/sh/sh4/getcontext.S
new file mode 100644
index 0000000000..40cabd1d91
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sh/sh4/getcontext.S
@@ -0,0 +1,132 @@
+/* Save current context.
+ Copyright (C) 2005-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+
+#include "ucontext_i.h"
+
+/* int __getcontext (ucontext_t *uc); */
+
+ .text
+ .align 5
+ENTRY(__getcontext)
+
+ /* Return value of getcontext. R0 is the only register whose
+ value is not preserved. */
+ mov #0, r0
+ mov.l r0, @(oR0,r4)
+ mov.l r1, @(oR1,r4)
+ mov.l r2, @(oR2,r4)
+ mov.l r3, @(oR3,r4)
+ mov.l r4, @(oR4,r4)
+ mov.l r5, @(oR5,r4)
+ mov.l r6, @(oR6,r4)
+ mov.l r7, @(oR7,r4)
+ mov r4, r0
+ add #(oMACL+4), r0
+ sts.l macl, @-r0
+ sts.l mach, @-r0
+ stc.l gbr, @-r0
+
+ /* Save T flag to SR. */
+ movt r1
+ mov.l r1, @-r0
+ sts.l pr, @-r0
+
+ /* The return address of getcontext is the restart pc. */
+ sts.l pr, @-r0
+
+ mov.l r15, @-r0
+ mov.l r14, @-r0
+ mov.l r13, @-r0
+ mov.l r12, @-r0
+ mov.l r11, @-r0
+ mov.l r10, @-r0
+ mov.l r9, @-r0
+ mov.l r8, @-r0
+
+#ifdef __SH_FPU_ANY__
+ mov r4, r0
+ /* We need 2 add instruction because oFPUL+4 > 127. */
+ add #124,r0
+ add #(oFPUL+4-124),r0
+ sts.l fpul, @-r0
+ sts.l fpscr, @-r0
+ frchg
+ fmov.s fr15, @-r0
+ fmov.s fr14, @-r0
+ fmov.s fr13, @-r0
+ fmov.s fr12, @-r0
+ fmov.s fr11, @-r0
+ fmov.s fr10, @-r0
+ fmov.s fr9, @-r0
+ fmov.s fr8, @-r0
+ fmov.s fr7, @-r0
+ fmov.s fr6, @-r0
+ fmov.s fr5, @-r0
+ fmov.s fr4, @-r0
+ fmov.s fr3, @-r0
+ fmov.s fr2, @-r0
+ fmov.s fr1, @-r0
+ fmov.s fr0, @-r0
+ frchg
+ fmov.s fr15, @-r0
+ fmov.s fr14, @-r0
+ fmov.s fr13, @-r0
+ fmov.s fr12, @-r0
+ fmov.s fr11, @-r0
+ fmov.s fr10, @-r0
+ fmov.s fr9, @-r0
+ fmov.s fr8, @-r0
+ fmov.s fr7, @-r0
+ fmov.s fr6, @-r0
+ fmov.s fr5, @-r0
+ fmov.s fr4, @-r0
+ fmov.s fr3, @-r0
+ fmov.s fr2, @-r0
+ fmov.s fr1, @-r0
+ fmov.s fr0, @-r0
+#endif /* __SH_FPU_ANY__ */
+
+ /* sigprocmask (SIG_BLOCK, NULL, &uc->uc_sigmask). */
+ mov r4, r6
+ /* We need 2 add instruction because oSIGMASK > 127. */
+ add #(oSIGMASK/2), r6
+ add #(oSIGMASK/2), r6
+ mov #SIG_BLOCK, r4
+ mov #0, r5
+ mov #+SYS_ify(sigprocmask), r3
+ trapa #0x13
+ mov r0, r1
+ mov #-12, r2
+ shad r2, r1
+ not r1, r1 // r1=0 means r0 = -1 to -4095
+ tst r1, r1 // i.e. error in linux
+ bf .Lgetcontext_end
+.Lsyscall_error:
+ SYSCALL_ERROR_HANDLER
+.Lgetcontext_end:
+ /* All done, return 0 for success. */
+ mov #0, r0
+.Lpseudo_end:
+ rts
+ nop
+
+PSEUDO_END(__getcontext)
+
+weak_alias (__getcontext, getcontext)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sh/sh4/register-dump.h b/REORG.TODO/sysdeps/unix/sysv/linux/sh/sh4/register-dump.h
new file mode 100644
index 0000000000..5595e90d91
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sh/sh4/register-dump.h
@@ -0,0 +1,263 @@
+/* Dump registers.
+ Copyright (C) 1999-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sys/uio.h>
+#include <_itoa.h>
+
+/* We will print the register dump in this format:
+
+ R0: XXXXXXXX R1: XXXXXXXX R2: XXXXXXXX R3: XXXXXXXX
+ R4: XXXXXXXX R5: XXXXXXXX R6: XXXXXXXX R7: XXXXXXXX
+ R8: XXXXXXXX R9: XXXXXXXX R10: XXXXXXXX R11: XXXXXXXX
+ R12: XXXXXXXX R13: XXXXXXXX R14: XXXXXXXX R15: XXXXXXXX
+
+MACL: XXXXXXXX MACH: XXXXXXXX
+
+ PC: XXXXXXXX PR: XXXXXXXX GBR: XXXXXXXX SR: XXXXXXXX
+
+ FR0: XXXXXXXX FR1: XXXXXXXX FR2: XXXXXXXX FR3: XXXXXXXX
+ FR4: XXXXXXXX FR5: XXXXXXXX FR6: XXXXXXXX FR7: XXXXXXXX
+ FR8: XXXXXXXX FR9: XXXXXXXX FR10: XXXXXXXX FR11: XXXXXXXX
+FR12: XXXXXXXX FR13: XXXXXXXX FR14: XXXXXXXX FR15: XXXXXXXX
+
+ XR0: XXXXXXXX XR1: XXXXXXXX XR2: XXXXXXXX XR3: XXXXXXXX
+ XR4: XXXXXXXX XR5: XXXXXXXX XR6: XXXXXXXX XR7: XXXXXXXX
+ XR8: XXXXXXXX XR9: XXXXXXXX XR10: XXXXXXXX XR11: XXXXXXXX
+XR12: XXXXXXXX XR13: XXXXXXXX XR14: XXXXXXXX XR15: XXXXXXXX
+
+FPSCR: XXXXXXXX FPUL: XXXXXXXX
+
+ */
+
+static void
+hexvalue (unsigned long int value, char *buf, size_t len)
+{
+ char *cp = _itoa_word (value, buf + len, 16, 0);
+ while (cp > buf)
+ *--cp = '0';
+}
+
+static void
+register_dump (int fd, struct sigcontext *ctx)
+{
+ char regs[22][8];
+ struct iovec iov[22 * 2 + 34 * 2 + 2];
+ size_t nr = 0;
+
+#define ADD_STRING(str) \
+ iov[nr].iov_base = (char *) str; \
+ iov[nr].iov_len = strlen (str); \
+ ++nr
+#define ADD_MEM(str, len) \
+ iov[nr].iov_base = str; \
+ iov[nr].iov_len = len; \
+ ++nr
+
+ /* Generate strings of register contents. */
+ hexvalue (ctx->sc_regs[0], regs[0], 8);
+ hexvalue (ctx->sc_regs[1], regs[1], 8);
+ hexvalue (ctx->sc_regs[2], regs[2], 8);
+ hexvalue (ctx->sc_regs[3], regs[3], 8);
+ hexvalue (ctx->sc_regs[4], regs[4], 8);
+ hexvalue (ctx->sc_regs[5], regs[5], 8);
+ hexvalue (ctx->sc_regs[6], regs[6], 8);
+ hexvalue (ctx->sc_regs[7], regs[7], 8);
+ hexvalue (ctx->sc_regs[8], regs[8], 8);
+ hexvalue (ctx->sc_regs[9], regs[9], 8);
+ hexvalue (ctx->sc_regs[10], regs[10], 8);
+ hexvalue (ctx->sc_regs[11], regs[11], 8);
+ hexvalue (ctx->sc_regs[12], regs[12], 8);
+ hexvalue (ctx->sc_regs[13], regs[13], 8);
+ hexvalue (ctx->sc_regs[14], regs[14], 8);
+ hexvalue (ctx->sc_regs[15], regs[15], 8);
+ hexvalue (ctx->sc_macl, regs[16], 8);
+ hexvalue (ctx->sc_mach, regs[17], 8);
+ hexvalue (ctx->sc_pc, regs[18], 8);
+ hexvalue (ctx->sc_pr, regs[19], 8);
+ hexvalue (ctx->sc_gbr, regs[20], 8);
+ hexvalue (ctx->sc_sr, regs[21], 8);
+
+ /* Generate the output. */
+ ADD_STRING ("Register dump:\n\n R0: ");
+ ADD_MEM (regs[0], 8);
+ ADD_STRING (" R1: ");
+ ADD_MEM (regs[1], 8);
+ ADD_STRING (" R2: ");
+ ADD_MEM (regs[2], 8);
+ ADD_STRING (" R3: ");
+ ADD_MEM (regs[3], 8);
+ ADD_STRING ("\n R4: ");
+ ADD_MEM (regs[4], 8);
+ ADD_STRING (" R5: ");
+ ADD_MEM (regs[5], 8);
+ ADD_STRING (" R6: ");
+ ADD_MEM (regs[6], 8);
+ ADD_STRING (" R7: ");
+ ADD_MEM (regs[7], 8);
+ ADD_STRING ("\n R8: ");
+ ADD_MEM (regs[8], 8);
+ ADD_STRING (" R9: ");
+ ADD_MEM (regs[9], 8);
+ ADD_STRING (" R10: ");
+ ADD_MEM (regs[10], 8);
+ ADD_STRING (" R11: ");
+ ADD_MEM (regs[11], 8);
+ ADD_STRING ("\n R12: ");
+ ADD_MEM (regs[12], 8);
+ ADD_STRING (" R13: ");
+ ADD_MEM (regs[13], 8);
+ ADD_STRING (" R14: ");
+ ADD_MEM (regs[14], 8);
+ ADD_STRING (" R15: ");
+ ADD_MEM (regs[15], 8);
+
+ ADD_STRING ("\n\nMACL: ");
+ ADD_MEM (regs[16], 8);
+ ADD_STRING (" MACH: ");
+ ADD_MEM (regs[17], 8);
+
+ ADD_STRING ("\n\n PC: ");
+ ADD_MEM (regs[18], 8);
+ ADD_STRING (" PR: ");
+ ADD_MEM (regs[19], 8);
+ ADD_STRING (" GBR: ");
+ ADD_MEM (regs[20], 8);
+ ADD_STRING (" SR: ");
+ ADD_MEM (regs[21], 8);
+
+ ADD_STRING ("\n");
+
+#ifdef __SH_FPU_ANY__
+ char fpregs[34][8];
+ if (ctx->sc_ownedfp != 0)
+ {
+ hexvalue (ctx->sc_fpregs[0], fpregs[0], 8);
+ hexvalue (ctx->sc_fpregs[1], fpregs[1], 8);
+ hexvalue (ctx->sc_fpregs[2], fpregs[2], 8);
+ hexvalue (ctx->sc_fpregs[3], fpregs[3], 8);
+ hexvalue (ctx->sc_fpregs[4], fpregs[4], 8);
+ hexvalue (ctx->sc_fpregs[5], fpregs[5], 8);
+ hexvalue (ctx->sc_fpregs[6], fpregs[6], 8);
+ hexvalue (ctx->sc_fpregs[7], fpregs[7], 8);
+ hexvalue (ctx->sc_fpregs[8], fpregs[8], 8);
+ hexvalue (ctx->sc_fpregs[9], fpregs[9], 8);
+ hexvalue (ctx->sc_fpregs[10], fpregs[10], 8);
+ hexvalue (ctx->sc_fpregs[11], fpregs[11], 8);
+ hexvalue (ctx->sc_fpregs[12], fpregs[12], 8);
+ hexvalue (ctx->sc_fpregs[13], fpregs[13], 8);
+ hexvalue (ctx->sc_fpregs[14], fpregs[14], 8);
+ hexvalue (ctx->sc_fpregs[15], fpregs[15], 8);
+ hexvalue (ctx->sc_xfpregs[0], fpregs[16], 8);
+ hexvalue (ctx->sc_xfpregs[1], fpregs[17], 8);
+ hexvalue (ctx->sc_xfpregs[2], fpregs[18], 8);
+ hexvalue (ctx->sc_xfpregs[3], fpregs[19], 8);
+ hexvalue (ctx->sc_xfpregs[4], fpregs[20], 8);
+ hexvalue (ctx->sc_xfpregs[5], fpregs[21], 8);
+ hexvalue (ctx->sc_xfpregs[6], fpregs[22], 8);
+ hexvalue (ctx->sc_xfpregs[7], fpregs[23], 8);
+ hexvalue (ctx->sc_xfpregs[8], fpregs[24], 8);
+ hexvalue (ctx->sc_xfpregs[9], fpregs[25], 8);
+ hexvalue (ctx->sc_xfpregs[10], fpregs[26], 8);
+ hexvalue (ctx->sc_xfpregs[11], fpregs[27], 8);
+ hexvalue (ctx->sc_xfpregs[12], fpregs[28], 8);
+ hexvalue (ctx->sc_xfpregs[13], fpregs[29], 8);
+ hexvalue (ctx->sc_xfpregs[14], fpregs[30], 8);
+ hexvalue (ctx->sc_xfpregs[15], fpregs[31], 8);
+ hexvalue (ctx->sc_fpscr, fpregs[32], 8);
+ hexvalue (ctx->sc_fpul, fpregs[33], 8);
+
+ ADD_STRING ("\n\n FR0: ");
+ ADD_MEM (fpregs[0], 8);
+ ADD_STRING (" FR1: ");
+ ADD_MEM (fpregs[1], 8);
+ ADD_STRING (" FR2: ");
+ ADD_MEM (fpregs[2], 8);
+ ADD_STRING (" FR3: ");
+ ADD_MEM (fpregs[3], 8);
+ ADD_STRING ("\n FR4: ");
+ ADD_MEM (fpregs[4], 8);
+ ADD_STRING (" FR5: ");
+ ADD_MEM (fpregs[5], 8);
+ ADD_STRING (" FR6: ");
+ ADD_MEM (fpregs[6], 8);
+ ADD_STRING (" FR7: ");
+ ADD_MEM (fpregs[7], 8);
+ ADD_STRING ("\n FR8: ");
+ ADD_MEM (fpregs[8], 8);
+ ADD_STRING (" FR9: ");
+ ADD_MEM (fpregs[9], 8);
+ ADD_STRING (" FR10: ");
+ ADD_MEM (fpregs[10], 8);
+ ADD_STRING (" FR11: ");
+ ADD_MEM (fpregs[11], 8);
+ ADD_STRING ("\nFR12: ");
+ ADD_MEM (fpregs[12], 8);
+ ADD_STRING (" FR13: ");
+ ADD_MEM (fpregs[13], 8);
+ ADD_STRING (" FR14: ");
+ ADD_MEM (fpregs[14], 8);
+ ADD_STRING (" FR15: ");
+ ADD_MEM (fpregs[15], 8);
+ ADD_STRING ("\n\n XR0: ");
+ ADD_MEM (fpregs[16], 8);
+ ADD_STRING (" XR1: ");
+ ADD_MEM (fpregs[17], 8);
+ ADD_STRING (" XR2: ");
+ ADD_MEM (fpregs[18], 8);
+ ADD_STRING (" XR3: ");
+ ADD_MEM (fpregs[19], 8);
+ ADD_STRING ("\n XR4: ");
+ ADD_MEM (fpregs[20], 8);
+ ADD_STRING (" XR5: ");
+ ADD_MEM (fpregs[21], 8);
+ ADD_STRING (" XR6: ");
+ ADD_MEM (fpregs[22], 8);
+ ADD_STRING (" XR7: ");
+ ADD_MEM (fpregs[23], 8);
+ ADD_STRING ("\n XR8: ");
+ ADD_MEM (fpregs[24], 8);
+ ADD_STRING (" XR9: ");
+ ADD_MEM (fpregs[25], 8);
+ ADD_STRING (" XR10: ");
+ ADD_MEM (fpregs[26], 8);
+ ADD_STRING (" XR11: ");
+ ADD_MEM (fpregs[27], 8);
+ ADD_STRING ("\nXR12: ");
+ ADD_MEM (fpregs[28], 8);
+ ADD_STRING (" XR13: ");
+ ADD_MEM (fpregs[29], 8);
+ ADD_STRING (" XR14: ");
+ ADD_MEM (fpregs[30], 8);
+ ADD_STRING (" XR15: ");
+ ADD_MEM (fpregs[31], 8);
+
+ ADD_STRING ("\n\nFPSCR: ");
+ ADD_MEM (fpregs[32], 8);
+ ADD_STRING (" FPUL: ");
+ ADD_MEM (fpregs[33], 8);
+
+ ADD_STRING ("\n");
+ }
+#endif /* __SH_FPU_ANY__ */
+
+ /* Write the stuff out. */
+ writev (fd, iov, nr);
+}
+
+
+#define REGISTER_DUMP register_dump (fd, &ctx)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sh/sh4/setcontext.S b/REORG.TODO/sysdeps/unix/sysv/linux/sh/sh4/setcontext.S
new file mode 100644
index 0000000000..e6672a6585
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sh/sh4/setcontext.S
@@ -0,0 +1,141 @@
+/* Install given context.
+ Copyright (C) 2005-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+
+#include "ucontext_i.h"
+
+/* int __setcontext (const ucontext_t *uc); */
+
+ .text
+ .align 5
+ENTRY(__setcontext)
+
+ mov r4, r8
+
+ /* sigprocmask (SIG_SETMASK, &uc->uc_sigmask, NULL). */
+ mov r4, r5
+ add #(oSIGMASK/2), r5
+ add #(oSIGMASK/2), r5
+ mov #SIG_SETMASK, r4
+ mov #0, r6
+ mov #+SYS_ify(sigprocmask), r3
+ trapa #0x13
+ mov r0, r1
+ mov #-12, r2
+ shad r2, r1
+ not r1, r1 // r1=0 means r0 = -1 to -4095
+ tst r1, r1 // i.e. error in linux
+ bf .Lsetcontext_restore
+.Lsyscall_error:
+ SYSCALL_ERROR_HANDLER
+.Lpseudo_end:
+ rts
+ nop
+
+.Lsetcontext_restore:
+#ifdef __SH_FPU_ANY__
+ mov r8, r0
+ add #(oFR0),r0
+ fmov.s @r0+, fr0
+ fmov.s @r0+, fr1
+ fmov.s @r0+, fr2
+ fmov.s @r0+, fr3
+ fmov.s @r0+, fr4
+ fmov.s @r0+, fr5
+ fmov.s @r0+, fr6
+ fmov.s @r0+, fr7
+ fmov.s @r0+, fr8
+ fmov.s @r0+, fr9
+ fmov.s @r0+, fr10
+ fmov.s @r0+, fr11
+ fmov.s @r0+, fr12
+ fmov.s @r0+, fr13
+ fmov.s @r0+, fr14
+ fmov.s @r0+, fr15
+ frchg
+ fmov.s @r0+, fr0
+ fmov.s @r0+, fr1
+ fmov.s @r0+, fr2
+ fmov.s @r0+, fr3
+ fmov.s @r0+, fr4
+ fmov.s @r0+, fr5
+ fmov.s @r0+, fr6
+ fmov.s @r0+, fr7
+ fmov.s @r0+, fr8
+ fmov.s @r0+, fr9
+ fmov.s @r0+, fr10
+ fmov.s @r0+, fr11
+ fmov.s @r0+, fr12
+ fmov.s @r0+, fr13
+ fmov.s @r0+, fr14
+ fmov.s @r0+, fr15
+ frchg
+ lds.l @r0+, fpscr
+ lds.l @r0+, fpul
+#endif /* __SH_FPU_ANY__ */
+
+ mov r8, r0
+ add #(oPC), r0
+ mov.l @r0+, r2
+ lds.l @r0+, pr
+
+ /* Restore T frag. */
+ mov.l @r0+, r1
+ shlr r1
+ /* Skip GBR which is used for thread pointer. */
+ add #4, r0
+
+ lds.l @r0+, mach
+ lds.l @r0+, macl
+
+ mov r8, r0
+ add #(oR9), r0
+ mov.l @r0+, r9
+ mov.l @r0+, r10
+ mov.l @r0+, r11
+ mov.l @r0+, r12
+ mov.l @r0+, r13
+ mov.l @r0+, r14
+ mov.l @r0+, r15
+
+ mov r8, r0
+ mov.l @(oR0,r0), r1
+ mov.l r1, @-r15
+ cfi_adjust_cfa_offset(4)
+ cfi_rel_offset (r1, 0)
+ mov.l r2, @-r15
+ cfi_adjust_cfa_offset(4)
+ cfi_rel_offset (r2, 0)
+
+ mov.l @(oR1,r0), r1
+ mov.l @(oR2,r0), r2
+ mov.l @(oR3,r0), r3
+ mov.l @(oR4,r0), r4
+ mov.l @(oR5,r0), r5
+ mov.l @(oR6,r0), r6
+ mov.l @(oR7,r0), r7
+ mov.l @(oR8,r0), r8
+ mov.l @r15+, r0
+ cfi_adjust_cfa_offset(-4)
+ jmp @r0
+ mov.l @r15+, r0
+
+PSEUDO_END(__setcontext)
+
+weak_alias (__setcontext, setcontext)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sh/sh4/swapcontext.S b/REORG.TODO/sysdeps/unix/sysv/linux/sh/sh4/swapcontext.S
new file mode 100644
index 0000000000..5f96790be1
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sh/sh4/swapcontext.S
@@ -0,0 +1,218 @@
+/* Save current context and install the given one.
+ Copyright (C) 2005-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+
+#include "ucontext_i.h"
+
+/* int __swapcontext (ucontext_t *ouc, const ucontext_t *uc); */
+
+ .text
+ .align 5
+ENTRY(__swapcontext)
+
+ /* Return value of getcontext. R0 is the only register whose
+ value is not preserved. */
+ mov #0, r0
+ mov.l r0, @(oR0,r4)
+ mov.l r1, @(oR1,r4)
+ mov.l r2, @(oR2,r4)
+ mov.l r3, @(oR3,r4)
+ mov.l r4, @(oR4,r4)
+ mov.l r5, @(oR5,r4)
+ mov.l r6, @(oR6,r4)
+ mov.l r7, @(oR7,r4)
+ mov r4, r0
+ add #(oMACL+4), r0
+ sts.l macl, @-r0
+ sts.l mach, @-r0
+ stc.l gbr, @-r0
+
+ /* Save T flag to SR. */
+ movt r1
+ mov.l r1, @-r0
+ sts.l pr, @-r0
+
+ /* The return address of getcontext is the restart pc. */
+ sts.l pr, @-r0
+
+ mov.l r15, @-r0
+ mov.l r14, @-r0
+ mov.l r13, @-r0
+ mov.l r12, @-r0
+ mov.l r11, @-r0
+ mov.l r10, @-r0
+ mov.l r9, @-r0
+ mov.l r8, @-r0
+
+#ifdef __SH_FPU_ANY__
+ mov r4, r0
+ /* We need 2 add instruction because oFPUL+4 >= 127. */
+ add #124,r0
+ add #(oFPUL+4-124),r0
+ sts.l fpul, @-r0
+ sts.l fpscr, @-r0
+ frchg
+ fmov.s fr15, @-r0
+ fmov.s fr14, @-r0
+ fmov.s fr13, @-r0
+ fmov.s fr12, @-r0
+ fmov.s fr11, @-r0
+ fmov.s fr10, @-r0
+ fmov.s fr9, @-r0
+ fmov.s fr8, @-r0
+ fmov.s fr7, @-r0
+ fmov.s fr6, @-r0
+ fmov.s fr5, @-r0
+ fmov.s fr4, @-r0
+ fmov.s fr3, @-r0
+ fmov.s fr2, @-r0
+ fmov.s fr1, @-r0
+ fmov.s fr0, @-r0
+ frchg
+ fmov.s fr15, @-r0
+ fmov.s fr14, @-r0
+ fmov.s fr13, @-r0
+ fmov.s fr12, @-r0
+ fmov.s fr11, @-r0
+ fmov.s fr10, @-r0
+ fmov.s fr9, @-r0
+ fmov.s fr8, @-r0
+ fmov.s fr7, @-r0
+ fmov.s fr6, @-r0
+ fmov.s fr5, @-r0
+ fmov.s fr4, @-r0
+ fmov.s fr3, @-r0
+ fmov.s fr2, @-r0
+ fmov.s fr1, @-r0
+ fmov.s fr0, @-r0
+#endif /* __SH_FPU_ANY__ */
+
+ mov r5, r8
+
+ /* sigprocmask (SIG_SETMASK, &uc->uc_sigmask, &ouc->uc_sigmask). */
+ mov #oSIGMASK, r1
+ extu.b r1, r1
+ add r1, r5
+ mov r4, r6
+ add r1, r6
+ mov #SIG_SETMASK, r4
+ mov #+SYS_ify(sigprocmask), r3
+ trapa #0x13
+ mov r0, r1
+ mov #-12, r2
+ shad r2, r1
+ not r1, r1 // r1=0 means r0 = -1 to -4095
+ tst r1, r1 // i.e. error in linux
+ bf .Lswapcontext_restore
+.Lsyscall_error:
+ SYSCALL_ERROR_HANDLER
+.Lpseudo_end:
+ rts
+ nop
+.Lswapcontext_restore:
+#ifdef __SH_FPU_ANY__
+ mov r8, r0
+ add #(oFR0),r0
+ fmov.s @r0+, fr0
+ fmov.s @r0+, fr1
+ fmov.s @r0+, fr2
+ fmov.s @r0+, fr3
+ fmov.s @r0+, fr4
+ fmov.s @r0+, fr5
+ fmov.s @r0+, fr6
+ fmov.s @r0+, fr7
+ fmov.s @r0+, fr8
+ fmov.s @r0+, fr9
+ fmov.s @r0+, fr10
+ fmov.s @r0+, fr11
+ fmov.s @r0+, fr12
+ fmov.s @r0+, fr13
+ fmov.s @r0+, fr14
+ fmov.s @r0+, fr15
+ frchg
+ fmov.s @r0+, fr0
+ fmov.s @r0+, fr1
+ fmov.s @r0+, fr2
+ fmov.s @r0+, fr3
+ fmov.s @r0+, fr4
+ fmov.s @r0+, fr5
+ fmov.s @r0+, fr6
+ fmov.s @r0+, fr7
+ fmov.s @r0+, fr8
+ fmov.s @r0+, fr9
+ fmov.s @r0+, fr10
+ fmov.s @r0+, fr11
+ fmov.s @r0+, fr12
+ fmov.s @r0+, fr13
+ fmov.s @r0+, fr14
+ fmov.s @r0+, fr15
+ frchg
+ lds.l @r0+, fpscr
+ lds.l @r0+, fpul
+#endif /* __SH_FPU_ANY__ */
+
+ mov r8, r0
+ add #(oPC), r0
+ mov.l @r0+, r2
+ lds.l @r0+, pr
+
+ /* Restore T frag. */
+ mov.l @r0+, r1
+ shlr r1
+ /* Skip GBR which is used for thread pointer. */
+ add #4, r0
+
+ lds.l @r0+, mach
+ lds.l @r0+, macl
+
+ mov r8, r0
+ add #(oR9), r0
+ mov.l @r0+, r9
+ mov.l @r0+, r10
+ mov.l @r0+, r11
+ mov.l @r0+, r12
+ mov.l @r0+, r13
+ mov.l @r0+, r14
+ mov.l @r0+, r15
+
+ mov r8, r0
+ mov.l @(oR0,r0), r1
+ mov.l r1, @-r15
+ cfi_adjust_cfa_offset(4)
+ cfi_rel_offset (r1, 0)
+ mov.l r2, @-r15
+ cfi_adjust_cfa_offset(4)
+ cfi_rel_offset (r2, 0)
+
+ mov.l @(oR1,r0), r1
+ mov.l @(oR2,r0), r2
+ mov.l @(oR3,r0), r3
+ mov.l @(oR4,r0), r4
+ mov.l @(oR5,r0), r5
+ mov.l @(oR6,r0), r6
+ mov.l @(oR7,r0), r7
+ mov.l @(oR8,r0), r8
+ mov.l @r15+, r0
+ cfi_adjust_cfa_offset(-4)
+ jmp @r0
+ mov.l @r15+, r0
+
+PSEUDO_END(__swapcontext)
+
+weak_alias (__swapcontext, swapcontext)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sh/sh4/sysdep.h b/REORG.TODO/sysdeps/unix/sysv/linux/sh/sh4/sysdep.h
new file mode 100644
index 0000000000..852f8eed7f
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sh/sh4/sysdep.h
@@ -0,0 +1,4 @@
+/* 4 instruction cycles not accessing cache and TLB are needed after
+ trapa instruction to avoid an SH-4 silicon bug. */
+#define NEED_SYSCALL_INST_PAD
+#include <sysdeps/unix/sysv/linux/sh/sysdep.h>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sh/sh4/ucontext_i.sym b/REORG.TODO/sysdeps/unix/sysv/linux/sh/sh4/ucontext_i.sym
new file mode 100644
index 0000000000..130f60cd96
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sh/sh4/ucontext_i.sym
@@ -0,0 +1,73 @@
+#include <stddef.h>
+#include <signal.h>
+#include <sys/ucontext.h>
+
+--
+
+SIG_BLOCK
+SIG_SETMASK
+
+#define ucontext(member) offsetof (ucontext_t, member)
+#define mcontext(member) ucontext (uc_mcontext.member)
+
+oLINK ucontext (uc_link)
+oSS_SP ucontext (uc_stack.ss_sp)
+oSS_SIZE ucontext (uc_stack.ss_size)
+oR0 mcontext (gregs[REG_R0])
+oR1 mcontext (gregs[REG_R1])
+oR2 mcontext (gregs[REG_R2])
+oR3 mcontext (gregs[REG_R3])
+oR4 mcontext (gregs[REG_R4])
+oR5 mcontext (gregs[REG_R5])
+oR6 mcontext (gregs[REG_R6])
+oR7 mcontext (gregs[REG_R7])
+oR8 mcontext (gregs[REG_R8])
+oR9 mcontext (gregs[REG_R9])
+oR10 mcontext (gregs[REG_R10])
+oR11 mcontext (gregs[REG_R11])
+oR12 mcontext (gregs[REG_R12])
+oR13 mcontext (gregs[REG_R13])
+oR14 mcontext (gregs[REG_R14])
+oR15 mcontext (gregs[REG_R15])
+oPC mcontext (pc)
+oPR mcontext (pr)
+oSR mcontext (sr)
+oGBR mcontext (gbr)
+oMACH mcontext (mach)
+oMACL mcontext (macl)
+oFR0 mcontext (fpregs[0])
+oFR1 mcontext (fpregs[1])
+oFR2 mcontext (fpregs[2])
+oFR3 mcontext (fpregs[3])
+oFR4 mcontext (fpregs[4])
+oFR5 mcontext (fpregs[5])
+oFR6 mcontext (fpregs[6])
+oFR7 mcontext (fpregs[7])
+oFR8 mcontext (fpregs[8])
+oFR9 mcontext (fpregs[9])
+oFR10 mcontext (fpregs[10])
+oFR11 mcontext (fpregs[11])
+oFR12 mcontext (fpregs[12])
+oFR13 mcontext (fpregs[13])
+oFR14 mcontext (fpregs[14])
+oFR15 mcontext (fpregs[15])
+oXFR0 mcontext (xfpregs[0])
+oXFR1 mcontext (xfpregs[1])
+oXFR2 mcontext (xfpregs[2])
+oXFR3 mcontext (xfpregs[3])
+oXFR4 mcontext (xfpregs[4])
+oXFR5 mcontext (xfpregs[5])
+oXFR6 mcontext (xfpregs[6])
+oXFR7 mcontext (xfpregs[7])
+oXFR8 mcontext (xfpregs[8])
+oXFR9 mcontext (xfpregs[9])
+oXFR10 mcontext (xfpregs[10])
+oXFR11 mcontext (xfpregs[11])
+oXFR12 mcontext (xfpregs[12])
+oXFR13 mcontext (xfpregs[13])
+oXFR14 mcontext (xfpregs[14])
+oXFR15 mcontext (xfpregs[15])
+oFPSCR mcontext (fpscr)
+oFPUL mcontext (fpul)
+oOWNEDFP mcontext (ownedfp)
+oSIGMASK ucontext (uc_sigmask)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sh/shlib-versions b/REORG.TODO/sysdeps/unix/sysv/linux/sh/shlib-versions
new file mode 100644
index 0000000000..9333bbd7a3
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sh/shlib-versions
@@ -0,0 +1,5 @@
+libm=6 GLIBC_2.2
+libc=6 GLIBC_2.2
+ld=ld-linux.so.2 GLIBC_2.2
+libBrokenLocale=1 GLIBC_2.2
+libpthread=0 GLIBC_2.2
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sh/sigaltstack-offsets.sym b/REORG.TODO/sysdeps/unix/sysv/linux/sh/sigaltstack-offsets.sym
new file mode 100644
index 0000000000..f73446941a
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sh/sigaltstack-offsets.sym
@@ -0,0 +1,13 @@
+#include <stddef.h>
+#include <signal.h>
+
+--
+
+#define sigaltstack(member) offsetof (stack_t, member)
+
+sizeSS sizeof (stack_t)
+oSS_SP sigaltstack (ss_sp)
+oSS_FLAGS sigaltstack (ss_flags)
+oSS_SIZE sigaltstack (ss_size)
+
+SS_ONSTACK
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sh/sigcontextinfo.h b/REORG.TODO/sysdeps/unix/sysv/linux/sh/sigcontextinfo.h
new file mode 100644
index 0000000000..546f23bb3e
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sh/sigcontextinfo.h
@@ -0,0 +1,26 @@
+/* Copyright (C) 1999-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Philip Blundell <philb@gnu.org>, 1999.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#define SIGCONTEXT int _a2, int _a3, int _a4, struct sigcontext
+
+#define SIGCONTEXT_EXTRA_ARGS _a2, _a3, _a4,
+#define GET_PC(ctx) ((void *) ctx.sc_pc)
+#define GET_FRAME(ctx) ((void *) ctx.sc_regs[14])
+#define GET_STACK(ctx) ((void *) ctx.sc_regs[15])
+#define CALL_SIGHANDLER(handler, signo, ctx) \
+ (handler)((signo), SIGCONTEXT_EXTRA_ARGS (ctx))
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sh/smp.h b/REORG.TODO/sysdeps/unix/sysv/linux/sh/smp.h
new file mode 100644
index 0000000000..8914a5b10c
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sh/smp.h
@@ -0,0 +1,23 @@
+/* Determine whether the host has multiple processors. SH version.
+ Copyright (C) 2002-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public License as
+ published by the Free Software Foundation; either version 2 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with the GNU C Library; see the file COPYING.LIB. If
+ not, see <http://www.gnu.org/licenses/>. */
+
+static inline int
+is_smp_system (void)
+{
+ return 0;
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sh/sys/procfs.h b/REORG.TODO/sysdeps/unix/sysv/linux/sh/sys/procfs.h
new file mode 100644
index 0000000000..414911a661
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sh/sys/procfs.h
@@ -0,0 +1,111 @@
+/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_PROCFS_H
+#define _SYS_PROCFS_H 1
+
+/* This is somehow modelled after the file of the same name on SysVr4
+ systems. It provides a definition of the core file format for ELF
+ used on Linux. */
+
+#include <features.h>
+#include <sys/time.h>
+#include <sys/types.h>
+#include <sys/user.h>
+
+__BEGIN_DECLS
+
+struct elf_siginfo
+ {
+ int si_signo; /* Signal number. */
+ int si_code; /* Extra code. */
+ int si_errno; /* Errno. */
+ };
+
+/* Definitions to generate Intel SVR4-like core files. These mostly
+ have the same names as the SVR4 types with "elf_" tacked on the
+ front to prevent clashes with linux definitions, and the typedef
+ forms have been avoided. This is mostly like the SVR4 structure,
+ but more Linuxy, with things that Linux does not support and which
+ gdb doesn't really use excluded. Fields present but not used are
+ marked with "XXX". */
+struct elf_prstatus
+ {
+#if 0
+ long int pr_flags; /* XXX Process flags. */
+ short int pr_why; /* XXX Reason for process halt. */
+ short int pr_what; /* XXX More detailed reason. */
+#endif
+ struct elf_siginfo pr_info; /* Info associated with signal. */
+ short int pr_cursig; /* Current signal. */
+ unsigned long int pr_sigpend; /* Set of pending signals. */
+ unsigned long int pr_sighold; /* Set of held signals. */
+#if 0
+ stack_t pr_altstack; /* Alternate stack info. */
+ struct sigaction pr_action; /* Signal action for current sig. */
+#endif
+ __pid_t pr_pid;
+ __pid_t pr_ppid;
+ __pid_t pr_pgrp;
+ __pid_t pr_sid;
+ struct timeval pr_utime; /* User time. */
+ struct timeval pr_stime; /* System time. */
+ struct timeval pr_cutime; /* Cumulative user time. */
+ struct timeval pr_cstime; /* Cumulative system time. */
+#if 0
+ long int pr_instr; /* Current instruction. */
+#endif
+ elf_gregset_t pr_reg; /* GP registers. */
+ int pr_fpvalid; /* True if math copro being used. */
+ };
+
+
+#define ELF_PRARGSZ (80) /* Number of chars for args */
+
+struct elf_prpsinfo
+ {
+ char pr_state; /* Numeric process state. */
+ char pr_sname; /* Char for pr_state. */
+ char pr_zomb; /* Zombie. */
+ char pr_nice; /* Nice val. */
+ unsigned long int pr_flag; /* Flags. */
+ unsigned short int pr_uid;
+ unsigned short int pr_gid;
+ int pr_pid, pr_ppid, pr_pgrp, pr_sid;
+ /* Lots missing */
+ char pr_fname[16]; /* Filename of executable. */
+ char pr_psargs[ELF_PRARGSZ]; /* Initial part of arg list. */
+ };
+
+/* Addresses. */
+typedef void *psaddr_t;
+
+/* Register sets. Linux has different names. */
+typedef elf_gregset_t prgregset_t;
+typedef elf_fpregset_t prfpregset_t;
+
+/* We don't have any differences between processes and threads,
+ therefore habe only ine PID type. */
+typedef __pid_t lwpid_t;
+
+
+typedef struct elf_prstatus prstatus_t;
+typedef struct elf_prpsinfo prpsinfo_t;
+
+__END_DECLS
+
+#endif /* sys/procfs.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sh/sys/ucontext.h b/REORG.TODO/sysdeps/unix/sysv/linux/sh/sys/ucontext.h
new file mode 100644
index 0000000000..d44f95e0f9
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sh/sys/ucontext.h
@@ -0,0 +1,127 @@
+/* Copyright (C) 1999-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+/* Where is System V/SH ABI? */
+
+#ifndef _SYS_UCONTEXT_H
+#define _SYS_UCONTEXT_H 1
+
+#include <features.h>
+
+#include <bits/types/sigset_t.h>
+#include <bits/sigcontext.h>
+#include <bits/types/stack_t.h>
+
+
+typedef int greg_t;
+
+/* Number of general registers. */
+#define __NGREG 16
+#ifdef __USE_MISC
+# define NGREG __NGREG
+#endif
+
+/* Container for all general registers. */
+typedef greg_t gregset_t[__NGREG];
+
+#ifdef __USE_MISC
+/* Number of each register is the `gregset_t' array. */
+enum
+{
+ REG_R0 = 0,
+# define REG_R0 REG_R0
+ REG_R1 = 1,
+# define REG_R1 REG_R1
+ REG_R2 = 2,
+# define REG_R2 REG_R2
+ REG_R3 = 3,
+# define REG_R3 REG_R3
+ REG_R4 = 4,
+# define REG_R4 REG_R4
+ REG_R5 = 5,
+# define REG_R5 REG_R5
+ REG_R6 = 6,
+# define REG_R6 REG_R6
+ REG_R7 = 7,
+# define REG_R7 REG_R7
+ REG_R8 = 8,
+# define REG_R8 REG_R8
+ REG_R9 = 9,
+# define REG_R9 REG_R9
+ REG_R10 = 10,
+# define REG_R10 REG_R10
+ REG_R11 = 11,
+# define REG_R11 REG_R11
+ REG_R12 = 12,
+# define REG_R12 REG_R12
+ REG_R13 = 13,
+# define REG_R13 REG_R13
+ REG_R14 = 14,
+# define REG_R14 REG_R14
+ REG_R15 = 15,
+# define REG_R15 REG_R15
+};
+#endif
+
+typedef int freg_t;
+
+/* Number of FPU registers. */
+#define __NFPREG 16
+#ifdef __USE_MISC
+# define NFPREG __NFPREG
+#endif
+
+/* Structure to describe FPU registers. */
+typedef freg_t fpregset_t[__NFPREG];
+
+#ifdef __USE_MISC
+# define __ctx(fld) fld
+#else
+# define __ctx(fld) __ ## fld
+#endif
+
+/* Context to describe whole processor state. */
+typedef struct
+ {
+ unsigned int __ctx(oldmask);
+ gregset_t __ctx(gregs);
+ unsigned int __ctx(pc);
+ unsigned int __ctx(pr);
+ unsigned int __ctx(sr);
+ unsigned int __ctx(gbr);
+ unsigned int __ctx(mach);
+ unsigned int __ctx(macl);
+ fpregset_t __ctx(fpregs);
+ fpregset_t __ctx(xfpregs);
+ unsigned int __ctx(fpscr);
+ unsigned int __ctx(fpul);
+ unsigned int __ctx(ownedfp);
+ } mcontext_t;
+
+#undef __ctx
+
+/* Userlevel context. */
+typedef struct ucontext
+ {
+ unsigned long int uc_flags;
+ struct ucontext *uc_link;
+ stack_t uc_stack;
+ mcontext_t uc_mcontext;
+ sigset_t uc_sigmask;
+ } ucontext_t;
+
+#endif /* sys/ucontext.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sh/sys/user.h b/REORG.TODO/sysdeps/unix/sysv/linux/sh/sys/user.h
new file mode 100644
index 0000000000..2ecda2d962
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sh/sys/user.h
@@ -0,0 +1,67 @@
+/* Copyright (C) 1998-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_USER_H
+#define _SYS_USER_H 1
+
+#include <asm/ptrace.h>
+#include <stddef.h>
+
+/* asm/ptrace.h polutes the namespace. */
+#undef PTRACE_GETREGS
+#undef PTRACE_SETREGS
+#undef PTRACE_GETFPREGS
+#undef PTRACE_SETFPREGS
+#undef PTRACE_GETFDPIC
+#undef PTRACE_GETFDPIC_EXEC
+#undef PTRACE_GETFDPIC_INTERP
+#undef PTRACE_GETDSPREGS
+#undef PTRACE_SETDSPREGS
+
+typedef unsigned long elf_greg_t;
+
+#define ELF_NGREG (sizeof (struct pt_regs) / sizeof (elf_greg_t))
+typedef elf_greg_t elf_gregset_t[ELF_NGREG];
+
+struct user_fpu_struct
+ {
+ unsigned long fp_regs[16];
+ unsigned long xfp_regs[16];
+ unsigned long fpscr;
+ unsigned long fpul;
+ };
+typedef struct user_fpu_struct elf_fpregset_t;
+
+struct user
+ {
+ struct pt_regs regs;
+ struct user_fpu_struct fpu;
+ int u_fpvalid;
+ size_t u_tsize;
+ size_t u_dsize;
+ size_t u_ssize;
+ unsigned long start_code;
+ unsigned long start_data;
+ unsigned long start_stack;
+ long int signal;
+ unsigned long u_ar0;
+ struct user_fpu_struct *u_fpstate;
+ unsigned long magic;
+ char u_comm[32];
+ };
+
+#endif /* sys/user.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sh/syscall.S b/REORG.TODO/sysdeps/unix/sysv/linux/sh/syscall.S
new file mode 100644
index 0000000000..af1695bc44
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sh/syscall.S
@@ -0,0 +1,43 @@
+/* Copyright (C) 2000-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+
+ENTRY (__syscall)
+ mov r4, r3 // syscall number
+ mov r5, r4 // p1
+ mov r6, r5 // p2
+ mov r7, r6 // p3
+ mov.l @r15, r7 // p4
+ mov.l @(4,r15), r0 // p5
+ mov.l @(8,r15), r1 // p6
+ mov.l @(12,r15), r2 // p7
+ trapa #0x17
+ mov r0, r1
+ mov #-12, r2
+ shad r2, r1
+ not r1, r1 // r1=0 means r0 = -1 to -4095
+ tst r1, r1 // i.e. error in linux
+ bf .Lpseudo_end
+ SYSCALL_ERROR_HANDLER
+.Lpseudo_end:
+ rts
+ nop
+
+PSEUDO_END (__syscall)
+
+weak_alias (__syscall, syscall)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sh/syscalls.list b/REORG.TODO/sysdeps/unix/sysv/linux/sh/syscalls.list
new file mode 100644
index 0000000000..32badd1ee0
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sh/syscalls.list
@@ -0,0 +1,22 @@
+# File name Caller Syscall name # args Strong name Weak names
+
+chown - chown32 i:sii __chown chown
+lchown - lchown32 i:sii __lchown lchown
+fchown - fchown32 i:iii __fchown fchown
+
+getegid - getegid32 Ei: __getegid getegid
+geteuid - geteuid32 Ei: __geteuid geteuid
+getgid - getgid32 Ei: __getgid getgid
+getuid - getuid32 Ei: __getuid getuid
+getresgid - getresgid32 i:ppp __getresgid getresgid
+getresuid - getresuid32 i:ppp __getresuid getresuid
+getgroups - getgroups32 i:ip __getgroups getgroups
+
+setfsgid - setfsgid32 Ei:i setfsgid
+setfsuid - setfsuid32 Ei:i setfsuid
+
+prlimit64 EXTRA prlimit64 i:iipp prlimit64
+
+fanotify_mark EXTRA fanotify_mark i:iiiiis __fanotify_mark fanotify_mark@@GLIBC_2.16
+
+personality EXTRA personality Ei:i __personality personality
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sh/sysdep-cancel.h b/REORG.TODO/sysdeps/unix/sysv/linux/sh/sysdep-cancel.h
new file mode 100644
index 0000000000..5645cadbcd
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sh/sysdep-cancel.h
@@ -0,0 +1,169 @@
+/* Copyright (C) 2003-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#include <tls.h>
+#ifndef __ASSEMBLER__
+# include <nptl/pthreadP.h>
+#endif
+
+#if IS_IN (libc) || IS_IN (libpthread) || IS_IN (librt)
+
+# define _IMM12 #-12
+# define _IMM16 #-16
+# define _IMP16 #16
+# undef PSEUDO
+# define PSEUDO(name, syscall_name, args) \
+ .text; \
+ ENTRY (name); \
+ .Lpseudo_start: \
+ SINGLE_THREAD_P; \
+ bf .Lpseudo_cancel; \
+ .type __##syscall_name##_nocancel,@function; \
+ .globl __##syscall_name##_nocancel; \
+ __##syscall_name##_nocancel: \
+ DO_CALL (syscall_name, args); \
+ mov r0,r1; \
+ mov _IMM12,r2; \
+ shad r2,r1; \
+ not r1,r1; \
+ tst r1,r1; \
+ bt .Lsyscall_error; \
+ bra .Lpseudo_end; \
+ nop; \
+ .size __##syscall_name##_nocancel,.-__##syscall_name##_nocancel; \
+ .Lpseudo_cancel: \
+ sts.l pr,@-r15; \
+ cfi_adjust_cfa_offset (4); \
+ cfi_rel_offset (pr, 0); \
+ add _IMM16,r15; \
+ cfi_adjust_cfa_offset (16); \
+ SAVE_ARGS_##args; \
+ CENABLE; \
+ LOAD_ARGS_##args; \
+ add _IMP16,r15; \
+ cfi_adjust_cfa_offset (-16); \
+ lds.l @r15+,pr; \
+ cfi_adjust_cfa_offset (-4); \
+ cfi_restore (pr); \
+ DO_CALL(syscall_name, args); \
+ SYSCALL_INST_PAD; \
+ sts.l pr,@-r15; \
+ cfi_adjust_cfa_offset (4); \
+ cfi_rel_offset (pr, 0); \
+ mov.l r0,@-r15; \
+ cfi_adjust_cfa_offset (4); \
+ cfi_rel_offset (r0, 0); \
+ CDISABLE; \
+ mov.l @r15+,r0; \
+ cfi_adjust_cfa_offset (-4); \
+ cfi_restore (r0); \
+ lds.l @r15+,pr; \
+ cfi_adjust_cfa_offset (-4); \
+ cfi_restore (pr); \
+ mov r0,r1; \
+ mov _IMM12,r2; \
+ shad r2,r1; \
+ not r1,r1; \
+ tst r1,r1; \
+ bf .Lpseudo_end; \
+ .Lsyscall_error: \
+ SYSCALL_ERROR_HANDLER; \
+ .Lpseudo_end:
+
+# undef PSEUDO_END
+# define PSEUDO_END(sym) \
+ END (sym)
+
+# define SAVE_ARGS_0 /* Nothing. */
+# define SAVE_ARGS_1 SAVE_ARGS_0; mov.l r4,@(0,r15); cfi_offset (r4,-4)
+# define SAVE_ARGS_2 SAVE_ARGS_1; mov.l r5,@(4,r15); cfi_offset (r5,-8)
+# define SAVE_ARGS_3 SAVE_ARGS_2; mov.l r6,@(8,r15); cfi_offset (r6,-12)
+# define SAVE_ARGS_4 SAVE_ARGS_3; mov.l r7,@(12,r15); cfi_offset (r7,-16)
+# define SAVE_ARGS_5 SAVE_ARGS_4
+# define SAVE_ARGS_6 SAVE_ARGS_5
+
+# define LOAD_ARGS_0 /* Nothing. */
+# define LOAD_ARGS_1 LOAD_ARGS_0; mov.l @(0,r15),r4; cfi_restore (r4)
+# define LOAD_ARGS_2 LOAD_ARGS_1; mov.l @(4,r15),r5; cfi_restore (r5)
+# define LOAD_ARGS_3 LOAD_ARGS_2; mov.l @(8,r15),r6; cfi_restore (r6)
+# define LOAD_ARGS_4 LOAD_ARGS_3; mov.l @(12,r15),r7; cfi_restore (r7)
+# define LOAD_ARGS_5 LOAD_ARGS_4
+# define LOAD_ARGS_6 LOAD_ARGS_5
+
+# if IS_IN (libpthread)
+# define __local_enable_asynccancel __pthread_enable_asynccancel
+# define __local_disable_asynccancel __pthread_disable_asynccancel
+# elif IS_IN (libc)
+# define __local_enable_asynccancel __libc_enable_asynccancel
+# define __local_disable_asynccancel __libc_disable_asynccancel
+# elif IS_IN (librt)
+# define __local_enable_asynccancel __librt_enable_asynccancel
+# define __local_disable_asynccancel __librt_disable_asynccancel
+# else
+# error Unsupported library
+# endif
+
+# define CENABLE \
+ mov.l 1f,r0; \
+ bsrf r0; \
+ nop; \
+ 0: bra 2f; \
+ mov r0,r2; \
+ .align 2; \
+ 1: .long __local_enable_asynccancel - 0b; \
+ 2:
+
+# define CDISABLE \
+ mov.l 1f,r0; \
+ bsrf r0; \
+ mov r2,r4; \
+ 0: bra 2f; \
+ nop; \
+ .align 2; \
+ 1: .long __local_disable_asynccancel - 0b; \
+ 2:
+
+# ifndef __ASSEMBLER__
+# define SINGLE_THREAD_P \
+ __builtin_expect (THREAD_GETMEM (THREAD_SELF, \
+ header.multiple_threads) == 0, 1)
+# else
+# define SINGLE_THREAD_P \
+ stc gbr,r0; \
+ mov.w 0f,r1; \
+ sub r1,r0; \
+ mov.l @(MULTIPLE_THREADS_OFFSET,r0),r0; \
+ bra 1f; \
+ tst r0,r0; \
+ 0: .word TLS_PRE_TCB_SIZE; \
+ 1:
+
+# endif
+
+#elif !defined __ASSEMBLER__
+
+# define SINGLE_THREAD_P (1)
+# define NO_CANCELLATION 1
+
+#endif
+
+#ifndef __ASSEMBLER__
+# define RTLD_SINGLE_THREAD_P \
+ __builtin_expect (THREAD_GETMEM (THREAD_SELF, \
+ header.multiple_threads) == 0, 1)
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sh/sysdep.S b/REORG.TODO/sysdeps/unix/sysv/linux/sh/sysdep.S
new file mode 100644
index 0000000000..5f11bc737b
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sh/sysdep.S
@@ -0,0 +1,32 @@
+/* Copyright (C) 1995-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+
+/* The syscall stubs jump here when they detect an error.
+ The code for Linux is almost identical to the canonical Unix
+ code, except that the error number in R0 is negated. */
+
+#undef CALL_MCOUNT
+#define CALL_MCOUNT /* Don't insert the profiling call, it clobbers R0. */
+
+ENTRY (__syscall_error)
+ neg r4, r0
+ cfi_endproc
+
+#define __syscall_error __syscall_error_1
+#include <sysdeps/unix/sh/sysdep.S>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sh/sysdep.h b/REORG.TODO/sysdeps/unix/sysv/linux/sh/sysdep.h
new file mode 100644
index 0000000000..b76140cd90
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sh/sysdep.h
@@ -0,0 +1,360 @@
+/* Copyright (C) 1992-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper, <drepper@gnu.ai.mit.edu>, August 1995.
+ Changed by Kaz Kojima, <kkojima@rr.iij4u.or.jp>.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _LINUX_SH_SYSDEP_H
+#define _LINUX_SH_SYSDEP_H 1
+
+/* There is some commonality. */
+#include <sysdeps/unix/sysv/linux/sysdep.h>
+#include <sysdeps/unix/sh/sysdep.h>
+#include <tls.h>
+
+/* For Linux we can use the system call table in the header file
+ /usr/include/asm/unistd.h
+ of the kernel. But these symbols do not follow the SYS_* syntax
+ so we have to redefine the `SYS_ify' macro here. */
+#undef SYS_ify
+#define SYS_ify(syscall_name) (__NR_##syscall_name)
+
+
+#ifdef __ASSEMBLER__
+
+/* Linux uses a negative return value to indicate syscall errors,
+ unlike most Unices, which use the condition codes' carry flag.
+
+ Since version 2.1 the return value of a system call might be
+ negative even if the call succeeded. E.g., the `lseek' system call
+ might return a large offset. Therefore we must not anymore test
+ for < 0, but test for a real error by making sure the value in R0
+ is a real error number. Linus said he will make sure the no syscall
+ returns a value in -1 .. -4095 as a valid result so we can savely
+ test with -4095. */
+
+#define _IMM1 #-1
+#define _IMM12 #-12
+#undef PSEUDO
+#define PSEUDO(name, syscall_name, args) \
+ .text; \
+ ENTRY (name); \
+ DO_CALL (syscall_name, args); \
+ mov r0,r1; \
+ mov _IMM12,r2; \
+ shad r2,r1; \
+ not r1,r1; \
+ tst r1,r1; \
+ bf .Lpseudo_end; \
+ SYSCALL_ERROR_HANDLER; \
+ .Lpseudo_end:
+
+#undef PSEUDO_END
+#define PSEUDO_END(name) \
+ END (name)
+
+#undef PSEUDO_NOERRNO
+#define PSEUDO_NOERRNO(name, syscall_name, args) \
+ .text; \
+ ENTRY (name); \
+ DO_CALL (syscall_name, args)
+
+#undef PSEUDO_END_NOERRNO
+#define PSEUDO_END_NOERRNO(name) \
+ END (name)
+
+#define ret_NOERRNO ret
+
+#define PSEUDO_ERRVAL(name, syscall_name, args) \
+ .text; \
+ ENTRY (name); \
+ DO_CALL (syscall_name, args);
+
+#undef PSEUDO_END_ERRVAL
+#define PSEUDO_END_ERRVAL(name) \
+ END (name)
+
+#define ret_ERRVAL ret
+
+#ifndef PIC
+# define SYSCALL_ERROR_HANDLER \
+ mov.l 0f,r1; \
+ jmp @r1; \
+ mov r0,r4; \
+ .align 2; \
+ 0: .long __syscall_error
+#else
+# if RTLD_PRIVATE_ERRNO
+# define SYSCALL_ERROR_HANDLER \
+ neg r0,r1; \
+ mov r12,r2; \
+ cfi_register (r12, r2); \
+ mov.l 0f,r12; \
+ mova 0f,r0; \
+ add r0,r12; \
+ mov.l 1f,r0; \
+ mov.l r1,@(r0,r12); \
+ mov r2,r12; \
+ cfi_restore (r12); \
+ bra .Lpseudo_end; \
+ mov _IMM1,r0; \
+ .align 2; \
+ 0: .long _GLOBAL_OFFSET_TABLE_; \
+ 1: .long rtld_errno@GOTOFF
+
+# elif defined _LIBC_REENTRANT
+
+# if IS_IN (libc)
+# define SYSCALL_ERROR_ERRNO __libc_errno
+# else
+# define SYSCALL_ERROR_ERRNO errno
+# endif
+# define SYSCALL_ERROR_HANDLER \
+ neg r0,r1; \
+ mov r12,r2; \
+ cfi_register (r12, r2); \
+ mov.l 0f,r12; \
+ mova 0f,r0; \
+ add r0,r12; \
+ mov.l 1f,r0; \
+ stc gbr, r4; \
+ mov.l @(r0,r12),r0; \
+ mov r2,r12; \
+ cfi_restore (r12); \
+ add r4,r0; \
+ mov.l r1,@r0; \
+ bra .Lpseudo_end; \
+ mov _IMM1,r0; \
+ .align 2; \
+ 0: .long _GLOBAL_OFFSET_TABLE_; \
+ 1: .long SYSCALL_ERROR_ERRNO@GOTTPOFF
+# else
+/* Store (-r0) into errno through the GOT. */
+# define SYSCALL_ERROR_HANDLER \
+ neg r0,r1; \
+ mov r12,r2; \
+ cfi_register (r12, r2); \
+ mov.l 0f,r12; \
+ mova 0f,r0; \
+ add r0,r12; \
+ mov.l 1f,r0; \
+ mov.l @(r0,r12),r0; \
+ mov r2,r12; \
+ cfi_restore (r12); \
+ mov.l r1,@r0; \
+ bra .Lpseudo_end; \
+ mov _IMM1,r0; \
+ .align 2; \
+ 0: .long _GLOBAL_OFFSET_TABLE_; \
+ 1: .long errno@GOT
+# endif /* _LIBC_REENTRANT */
+#endif /* PIC */
+
+# ifdef NEED_SYSCALL_INST_PAD
+# define SYSCALL_INST_PAD \
+ or r0,r0; or r0,r0; or r0,r0; or r0,r0; or r0,r0
+# else
+# define SYSCALL_INST_PAD
+# endif
+
+#define SYSCALL_INST0 trapa #0x10
+#define SYSCALL_INST1 trapa #0x11
+#define SYSCALL_INST2 trapa #0x12
+#define SYSCALL_INST3 trapa #0x13
+#define SYSCALL_INST4 trapa #0x14
+#define SYSCALL_INST5 mov.l @(0,r15),r0; trapa #0x15
+#define SYSCALL_INST6 mov.l @(0,r15),r0; mov.l @(4,r15),r1; trapa #0x16
+
+#undef DO_CALL
+#define DO_CALL(syscall_name, args) \
+ mov.l 1f,r3; \
+ SYSCALL_INST##args; \
+ SYSCALL_INST_PAD; \
+ bra 2f; \
+ nop; \
+ .align 2; \
+ 1: .long SYS_ify (syscall_name); \
+ 2:
+
+#else /* not __ASSEMBLER__ */
+
+#define SYSCALL_INST_STR0 "trapa #0x10\n\t"
+#define SYSCALL_INST_STR1 "trapa #0x11\n\t"
+#define SYSCALL_INST_STR2 "trapa #0x12\n\t"
+#define SYSCALL_INST_STR3 "trapa #0x13\n\t"
+#define SYSCALL_INST_STR4 "trapa #0x14\n\t"
+#define SYSCALL_INST_STR5 "trapa #0x15\n\t"
+#define SYSCALL_INST_STR6 "trapa #0x16\n\t"
+
+# ifdef NEED_SYSCALL_INST_PAD
+# define SYSCALL_INST_PAD "\
+ or r0,r0; or r0,r0; or r0,r0; or r0,r0; or r0,r0"
+# else
+# define SYSCALL_INST_PAD
+# endif
+
+#define ASMFMT_0
+#define ASMFMT_1 \
+ , "r" (r4)
+#define ASMFMT_2 \
+ , "r" (r4), "r" (r5)
+#define ASMFMT_3 \
+ , "r" (r4), "r" (r5), "r" (r6)
+#define ASMFMT_4 \
+ , "r" (r4), "r" (r5), "r" (r6), "r" (r7)
+#define ASMFMT_5 \
+ , "r" (r4), "r" (r5), "r" (r6), "r" (r7), "0" (r0)
+#define ASMFMT_6 \
+ , "r" (r4), "r" (r5), "r" (r6), "r" (r7), "0" (r0), "r" (r1)
+#define ASMFMT_7 \
+ , "r" (r4), "r" (r5), "r" (r6), "r" (r7), "0" (r0), "r" (r1), "r" (r2)
+
+#define SUBSTITUTE_ARGS_0()
+#define SUBSTITUTE_ARGS_1(arg1) \
+ long int _arg1 = (long int) (arg1); \
+ register long int r4 asm ("%r4") = (long int) (_arg1)
+#define SUBSTITUTE_ARGS_2(arg1, arg2) \
+ long int _arg1 = (long int) (arg1); \
+ long int _arg2 = (long int) (arg2); \
+ register long int r4 asm ("%r4") = (long int) (_arg1); \
+ register long int r5 asm ("%r5") = (long int) (_arg2)
+#define SUBSTITUTE_ARGS_3(arg1, arg2, arg3) \
+ long int _arg1 = (long int) (arg1); \
+ long int _arg2 = (long int) (arg2); \
+ long int _arg3 = (long int) (arg3); \
+ register long int r4 asm ("%r4") = (long int) (_arg1); \
+ register long int r5 asm ("%r5") = (long int) (_arg2); \
+ register long int r6 asm ("%r6") = (long int) (_arg3)
+#define SUBSTITUTE_ARGS_4(arg1, arg2, arg3, arg4) \
+ long int _arg1 = (long int) (arg1); \
+ long int _arg2 = (long int) (arg2); \
+ long int _arg3 = (long int) (arg3); \
+ long int _arg4 = (long int) (arg4); \
+ register long int r4 asm ("%r4") = (long int) (_arg1); \
+ register long int r5 asm ("%r5") = (long int) (_arg2); \
+ register long int r6 asm ("%r6") = (long int) (_arg3); \
+ register long int r7 asm ("%r7") = (long int) (_arg4)
+#define SUBSTITUTE_ARGS_5(arg1, arg2, arg3, arg4, arg5) \
+ long int _arg1 = (long int) (arg1); \
+ long int _arg2 = (long int) (arg2); \
+ long int _arg3 = (long int) (arg3); \
+ long int _arg4 = (long int) (arg4); \
+ long int _arg5 = (long int) (arg5); \
+ register long int r4 asm ("%r4") = (long int) (_arg1); \
+ register long int r5 asm ("%r5") = (long int) (_arg2); \
+ register long int r6 asm ("%r6") = (long int) (_arg3); \
+ register long int r7 asm ("%r7") = (long int) (_arg4); \
+ register long int r0 asm ("%r0") = (long int) (_arg5)
+#define SUBSTITUTE_ARGS_6(arg1, arg2, arg3, arg4, arg5, arg6) \
+ long int _arg1 = (long int) (arg1); \
+ long int _arg2 = (long int) (arg2); \
+ long int _arg3 = (long int) (arg3); \
+ long int _arg4 = (long int) (arg4); \
+ long int _arg5 = (long int) (arg5); \
+ long int _arg6 = (long int) (arg6); \
+ register long int r4 asm ("%r4") = (long int)(_arg1); \
+ register long int r5 asm ("%r5") = (long int) (_arg2); \
+ register long int r6 asm ("%r6") = (long int) (_arg3); \
+ register long int r7 asm ("%r7") = (long int) (_arg4); \
+ register long int r0 asm ("%r0") = (long int) (_arg5); \
+ register long int r1 asm ("%r1") = (long int) (_arg6)
+#define SUBSTITUTE_ARGS_7(arg1, arg2, arg3, arg4, arg5, arg6, arg7) \
+ long int _arg1 = (long int) (arg1); \
+ long int _arg2 = (long int) (arg2); \
+ long int _arg3 = (long int) (arg3); \
+ long int _arg4 = (long int) (arg4); \
+ long int _arg5 = (long int) (arg5); \
+ long int _arg6 = (long int) (arg6); \
+ long int _arg7 = (long int) (arg7); \
+ register long int r4 asm ("%r4") = (long int) (_arg1); \
+ register long int r5 asm ("%r5") = (long int) (_arg2); \
+ register long int r6 asm ("%r6") = (long int) (_arg3); \
+ register long int r7 asm ("%r7") = (long int) (_arg4); \
+ register long int r0 asm ("%r0") = (long int) (_arg5); \
+ register long int r1 asm ("%r1") = (long int) (_arg6); \
+ register long int r2 asm ("%r2") = (long int) (_arg7)
+
+#undef INLINE_SYSCALL
+#define INLINE_SYSCALL(name, nr, args...) \
+ ({ \
+ unsigned int resultvar = INTERNAL_SYSCALL (name, , nr, args); \
+ if (__builtin_expect (INTERNAL_SYSCALL_ERROR_P (resultvar, ), 0)) \
+ { \
+ __set_errno (INTERNAL_SYSCALL_ERRNO (resultvar, )); \
+ resultvar = 0xffffffff; \
+ } \
+ (int) resultvar; })
+
+#undef INTERNAL_SYSCALL
+#define INTERNAL_SYSCALL(name, err, nr, args...) \
+ ({ \
+ unsigned long int resultvar; \
+ register long int r3 asm ("%r3") = SYS_ify (name); \
+ SUBSTITUTE_ARGS_##nr(args); \
+ \
+ asm volatile (SYSCALL_INST_STR##nr SYSCALL_INST_PAD \
+ : "=z" (resultvar) \
+ : "r" (r3) ASMFMT_##nr \
+ : "memory", "t"); \
+ \
+ (int) resultvar; })
+
+/* The _NCS variant allows non-constant syscall numbers. */
+#define INTERNAL_SYSCALL_NCS(name, err, nr, args...) \
+ ({ \
+ unsigned long int resultvar; \
+ register long int r3 asm ("%r3") = (name); \
+ SUBSTITUTE_ARGS_##nr(args); \
+ \
+ asm volatile (SYSCALL_INST_STR##nr SYSCALL_INST_PAD \
+ : "=z" (resultvar) \
+ : "r" (r3) ASMFMT_##nr \
+ : "memory", "t"); \
+ \
+ (int) resultvar; })
+
+#undef INTERNAL_SYSCALL_DECL
+#define INTERNAL_SYSCALL_DECL(err) do { } while (0)
+
+#undef INTERNAL_SYSCALL_ERROR_P
+#define INTERNAL_SYSCALL_ERROR_P(val, err) \
+ ((unsigned int) (val) >= 0xfffff001u)
+
+#undef INTERNAL_SYSCALL_ERRNO
+#define INTERNAL_SYSCALL_ERRNO(val, err) (-(val))
+
+#endif /* __ASSEMBLER__ */
+
+/* Pointer mangling support. */
+#if IS_IN (rtld)
+/* We cannot use the thread descriptor because in ld.so we use setjmp
+ earlier than the descriptor is initialized. Using a global variable
+ is too complicated here since we have no PC-relative addressing mode. */
+#else
+# ifdef __ASSEMBLER__
+# define PTR_MANGLE(reg, tmp) \
+ stc gbr,tmp; mov.l @(POINTER_GUARD,tmp),tmp; xor tmp,reg
+# define PTR_MANGLE2(reg, tmp) xor tmp,reg
+# define PTR_DEMANGLE(reg, tmp) PTR_MANGLE (reg, tmp)
+# define PTR_DEMANGLE2(reg, tmp) PTR_MANGLE2 (reg, tmp)
+# else
+# define PTR_MANGLE(var) \
+ (var) = (void *) ((uintptr_t) (var) ^ THREAD_GET_POINTER_GUARD ())
+# define PTR_DEMANGLE(var) PTR_MANGLE (var)
+# endif
+#endif
+
+#endif /* linux/sh/sysdep.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sh/vfork.S b/REORG.TODO/sysdeps/unix/sysv/linux/sh/vfork.S
new file mode 100644
index 0000000000..0626bda2df
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sh/vfork.S
@@ -0,0 +1,52 @@
+/* Copyright (C) 2004-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#define _ERRNO_H 1
+#include <bits/errno.h>
+#include <tcb-offsets.h>
+
+/* Clone the calling process, but without copying the whole address space.
+ The calling process is suspended until the new process exits or is
+ replaced by a call to `execve'. Return -1 for errors, 0 to the new process,
+ and the process ID of the new process to the old process. */
+
+ENTRY (__libc_vfork)
+
+ mov.w .L1, r3
+ trapa #0x10
+ mov r0, r1
+
+ mov #-12, r2
+ shad r2, r1
+ not r1, r1 // r1=0 means r0 = -1 to -4095
+ tst r1, r1 // i.e. error in linux
+ bf .Lpseudo_end
+ SYSCALL_ERROR_HANDLER
+.Lpseudo_end:
+ rts
+ nop
+.L1:
+ .word __NR_vfork
+ .align 2
+PSEUDO_END (__libc_vfork)
+
+#if IS_IN (libc)
+weak_alias (__libc_vfork, vfork)
+strong_alias (__libc_vfork, __vfork)
+libc_hidden_def (__vfork)
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sh/xstat.c b/REORG.TODO/sysdeps/unix/sysv/linux/sh/xstat.c
new file mode 100644
index 0000000000..e9869f5508
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sh/xstat.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/i386/xstat.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/shlib-versions b/REORG.TODO/sysdeps/unix/sysv/linux/shlib-versions
new file mode 100644
index 0000000000..9160557733
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/shlib-versions
@@ -0,0 +1,2 @@
+libm=6
+libc=6
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/shm-directory.c b/REORG.TODO/sysdeps/unix/sysv/linux/shm-directory.c
new file mode 100644
index 0000000000..f2c27b188e
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/shm-directory.c
@@ -0,0 +1,147 @@
+/* Determine directory for shm/sem files. Linux 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 "shm-directory.h"
+
+#include <errno.h>
+#include <mntent.h>
+#include <paths.h>
+#include <stdio.h>
+#include <string.h>
+#include <sys/statfs.h>
+#include <libc-lock.h>
+#include "linux_fsinfo.h"
+
+
+/* Mount point of the shared memory filesystem. */
+static struct
+{
+ char *dir;
+ size_t dirlen;
+} mountpoint;
+
+/* This is the default directory. */
+static const char defaultdir[] = "/dev/shm/";
+
+/* Protect the `mountpoint' variable above. */
+__libc_once_define (static, once);
+
+
+/* Determine where the shmfs is mounted (if at all). */
+static void
+where_is_shmfs (void)
+{
+ char buf[512];
+ struct statfs f;
+ struct mntent resmem;
+ struct mntent *mp;
+ FILE *fp;
+
+ /* The canonical place is /dev/shm. This is at least what the
+ documentation tells everybody to do. */
+ if (__statfs (defaultdir, &f) == 0 && (f.f_type == SHMFS_SUPER_MAGIC
+ || f.f_type == RAMFS_MAGIC))
+ {
+ /* It is in the normal place. */
+ mountpoint.dir = (char *) defaultdir;
+ mountpoint.dirlen = sizeof (defaultdir) - 1;
+
+ return;
+ }
+
+ /* OK, do it the hard way. Look through the /proc/mounts file and if
+ this does not exist through /etc/fstab to find the mount point. */
+ fp = __setmntent ("/proc/mounts", "r");
+ if (__glibc_unlikely (fp == NULL))
+ {
+ fp = __setmntent (_PATH_MNTTAB, "r");
+ if (__glibc_unlikely (fp == NULL))
+ /* There is nothing we can do. Blind guesses are not helpful. */
+ return;
+ }
+
+ /* Now read the entries. */
+ while ((mp = __getmntent_r (fp, &resmem, buf, sizeof buf)) != NULL)
+ /* The original name is "shm" but this got changed in early Linux
+ 2.4.x to "tmpfs". */
+ if (strcmp (mp->mnt_type, "tmpfs") == 0
+ || strcmp (mp->mnt_type, "shm") == 0)
+ {
+ /* Found it. There might be more than one place where the
+ filesystem is mounted but one is enough for us. */
+ size_t namelen;
+
+ /* First make sure this really is the correct entry. At least
+ some versions of the kernel give wrong information because
+ of the implicit mount of the shmfs for SysV IPC. */
+ if (__statfs (mp->mnt_dir, &f) != 0 || (f.f_type != SHMFS_SUPER_MAGIC
+ && f.f_type != RAMFS_MAGIC))
+ continue;
+
+ namelen = strlen (mp->mnt_dir);
+
+ if (namelen == 0)
+ /* Hum, maybe some crippled entry. Keep on searching. */
+ continue;
+
+ mountpoint.dir = (char *) malloc (namelen + 2);
+ if (mountpoint.dir != NULL)
+ {
+ char *cp = __mempcpy (mountpoint.dir, mp->mnt_dir, namelen);
+ if (cp[-1] != '/')
+ *cp++ = '/';
+ *cp = '\0';
+ mountpoint.dirlen = cp - mountpoint.dir;
+ }
+
+ break;
+ }
+
+ /* Close the stream. */
+ __endmntent (fp);
+}
+
+
+const char *
+__shm_directory (size_t *len)
+{
+ /* Determine where the shmfs is mounted. */
+ __libc_once (once, where_is_shmfs);
+
+ /* If we don't know the mount points there is nothing we can do. Ever. */
+ if (__glibc_unlikely (mountpoint.dir == NULL))
+ {
+ __set_errno (ENOSYS);
+ return NULL;
+ }
+
+ *len = mountpoint.dirlen;
+ return mountpoint.dir;
+}
+#if IS_IN (libpthread)
+hidden_def (__shm_directory)
+#endif
+
+
+/* Make sure the table is freed if we want to free everything before
+ exiting. */
+libc_freeres_fn (freeit)
+{
+ if (mountpoint.dir != defaultdir)
+ free (mountpoint.dir);
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/shmat.c b/REORG.TODO/sysdeps/unix/sysv/linux/shmat.c
new file mode 100644
index 0000000000..98dcec609b
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/shmat.c
@@ -0,0 +1,46 @@
+/* Copyright (C) 1995-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, August 1995.
+
+ 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/msg.h>
+#include <ipc_priv.h>
+#include <sysdep.h>
+#include <errno.h>
+
+/* Attach the shared memory segment associated with SHMID to the data
+ segment of the calling process. SHMADDR and SHMFLG determine how
+ and where the segment is attached. */
+
+void *
+shmat (int shmid, const void *shmaddr, int shmflg)
+{
+#ifdef __ASSUME_DIRECT_SYSVIPC_SYSCALLS
+ return (void*) INLINE_SYSCALL_CALL (shmat, shmid, shmaddr, shmflg);
+#else
+ INTERNAL_SYSCALL_DECL(err);
+ unsigned long resultvar;
+ void *raddr;
+
+ resultvar = INTERNAL_SYSCALL_CALL (ipc, err, IPCOP_shmat, shmid, shmflg,
+ &raddr, shmaddr);
+ if (INTERNAL_SYSCALL_ERROR_P (resultvar, err))
+ return (void *) INLINE_SYSCALL_ERROR_RETURN_VALUE (INTERNAL_SYSCALL_ERRNO (resultvar,
+ err));
+
+ return raddr;
+#endif
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/shmctl.c b/REORG.TODO/sysdeps/unix/sysv/linux/shmctl.c
new file mode 100644
index 0000000000..96365b51fc
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/shmctl.c
@@ -0,0 +1,73 @@
+/* Copyright (C) 1995-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, August 1995.
+
+ 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/shm.h>
+#include <stdarg.h>
+#include <ipc_priv.h>
+#include <sysdep.h>
+#include <shlib-compat.h>
+#include <errno.h>
+
+
+#ifndef DEFAULT_VERSION
+# define DEFAULT_VERSION GLIBC_2_2
+#endif
+
+
+/* Provide operations to control over shared memory segments. */
+int
+__new_shmctl (int shmid, int cmd, struct shmid_ds *buf)
+{
+#ifdef __ASSUME_DIRECT_SYSVIPC_SYSCALLS
+ return INLINE_SYSCALL_CALL (shmctl, shmid, cmd | __IPC_64, buf);
+#else
+ return INLINE_SYSCALL_CALL (ipc, IPCOP_shmctl, shmid, cmd | __IPC_64, 0,
+ buf);
+#endif
+}
+versioned_symbol (libc, __new_shmctl, shmctl, DEFAULT_VERSION);
+
+
+#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_2)
+struct __old_shmid_ds
+{
+ struct __old_ipc_perm shm_perm; /* operation permission struct */
+ int shm_segsz; /* size of segment in bytes */
+ __time_t shm_atime; /* time of last shmat() */
+ __time_t shm_dtime; /* time of last shmdt() */
+ __time_t shm_ctime; /* time of last change by shmctl() */
+ __ipc_pid_t shm_cpid; /* pid of creator */
+ __ipc_pid_t shm_lpid; /* pid of last shmop */
+ unsigned short int shm_nattch; /* number of current attaches */
+ unsigned short int __shm_npages; /* size of segment (pages) */
+ unsigned long int *__shm_pages; /* array of ptrs to frames -> SHMMAX */
+ struct vm_area_struct *__attaches; /* descriptors for attaches */
+};
+
+int
+attribute_compat_text_section
+__old_shmctl (int shmid, int cmd, struct __old_shmid_ds *buf)
+{
+#ifdef __ASSUME_DIRECT_SYSVIPC_SYSCALLS
+ return INLINE_SYSCALL_CALL (shmctl, shmid, cmd, buf);
+#else
+ return INLINE_SYSCALL_CALL (ipc, IPCOP_shmctl, shmid, cmd, 0, buf);
+#endif
+}
+compat_symbol (libc, __old_shmctl, shmctl, GLIBC_2_0);
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/shmdt.c b/REORG.TODO/sysdeps/unix/sysv/linux/shmdt.c
new file mode 100644
index 0000000000..ee0668b7ce
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/shmdt.c
@@ -0,0 +1,35 @@
+/* Copyright (C) 1995-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, August 1995.
+
+ 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/msg.h>
+#include <ipc_priv.h>
+#include <sysdep.h>
+#include <errno.h>
+
+/* Detach shared memory segment starting at address specified by SHMADDR
+ from the caller's data segment. */
+
+int
+shmdt (const void *shmaddr)
+{
+#ifdef __ASSUME_DIRECT_SYSVIPC_SYSCALLS
+ return INLINE_SYSCALL_CALL (shmdt, shmaddr);
+#else
+ return INLINE_SYSCALL_CALL (ipc, IPCOP_shmdt, 0, 0, 0, shmaddr);
+#endif
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/shmget.c b/REORG.TODO/sysdeps/unix/sysv/linux/shmget.c
new file mode 100644
index 0000000000..ed8ca7d226
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/shmget.c
@@ -0,0 +1,35 @@
+/* Copyright (C) 1995-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, August 1995.
+
+ 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/msg.h>
+#include <ipc_priv.h>
+#include <sysdep.h>
+#include <errno.h>
+
+/* Return an identifier for an shared memory segment of at least size SIZE
+ which is associated with KEY. */
+
+int
+shmget (key_t key, size_t size, int shmflg)
+{
+#ifdef __ASSUME_DIRECT_SYSVIPC_SYSCALLS
+ return INLINE_SYSCALL_CALL (shmget, key, size, shmflg, NULL);
+#else
+ return INLINE_SYSCALL_CALL (ipc, IPCOP_shmget, key, size, shmflg, NULL);
+#endif
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/shutdown.c b/REORG.TODO/sysdeps/unix/sysv/linux/shutdown.c
new file mode 100644
index 0000000000..4de4f9c25d
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/shutdown.c
@@ -0,0 +1,35 @@
+/* Copyright (C) 2015-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <signal.h>
+#include <sys/socket.h>
+
+#include <socketcall.h>
+#include <kernel-features.h>
+#include <sys/syscall.h>
+
+int
+__shutdown (int fd, int how)
+{
+#ifdef __ASSUME_SHUTDOWN_SYSCALL
+ return INLINE_SYSCALL (shutdown, 2, fd, how);
+#else
+ return SOCKETCALL (shutdown, fd, how);
+#endif
+}
+weak_alias (__shutdown, shutdown)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sigaction.c b/REORG.TODO/sysdeps/unix/sysv/linux/sigaction.c
new file mode 100644
index 0000000000..c76c9374c9
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sigaction.c
@@ -0,0 +1,69 @@
+/* Copyright (C) 1997-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <signal.h>
+#include <string.h>
+
+#include <sysdep.h>
+#include <sys/syscall.h>
+
+/* The difference here is that the sigaction structure used in the
+ kernel is not the same as we use in the libc. Therefore we must
+ translate it here. */
+#include <kernel_sigaction.h>
+
+
+/* If ACT is not NULL, change the action for SIG to *ACT.
+ If OACT is not NULL, put the old action for SIG in *OACT. */
+int
+__libc_sigaction (int sig, const struct sigaction *act, struct sigaction *oact)
+{
+ int result;
+
+ struct kernel_sigaction kact, koact;
+
+ if (act)
+ {
+ kact.k_sa_handler = act->sa_handler;
+ memcpy (&kact.sa_mask, &act->sa_mask, sizeof (sigset_t));
+ kact.sa_flags = act->sa_flags;
+#ifdef HAVE_SA_RESTORER
+ kact.sa_restorer = act->sa_restorer;
+#endif
+ }
+
+ /* XXX The size argument hopefully will have to be changed to the
+ real size of the user-level sigset_t. */
+ result = INLINE_SYSCALL (rt_sigaction, 4, sig,
+ act ? &kact : NULL,
+ oact ? &koact : NULL, _NSIG / 8);
+
+ if (oact && result >= 0)
+ {
+ oact->sa_handler = koact.k_sa_handler;
+ memcpy (&oact->sa_mask, &koact.sa_mask, sizeof (sigset_t));
+ oact->sa_flags = koact.sa_flags;
+#ifdef HAVE_SA_RESTORER
+ oact->sa_restorer = koact.sa_restorer;
+#endif
+ }
+ return result;
+}
+libc_hidden_def (__libc_sigaction)
+
+#include <nptl/sigaction.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/siglist.h b/REORG.TODO/sysdeps/unix/sysv/linux/siglist.h
new file mode 100644
index 0000000000..7735a4d25d
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/siglist.h
@@ -0,0 +1,24 @@
+/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+/* This file is included multiple times. */
+
+#include_next <siglist.h> /* Get the canonical list. */
+
+#define OLD_SIGLIST_SIZE 32 /* For GLIBC_2.0 binary compatibility. */
+
+#define OLD2_SIGLIST_SIZE 64 /* For GLIBC_2.1 binary compatibility. */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/signal.c b/REORG.TODO/sysdeps/unix/sysv/linux/signal.c
new file mode 100644
index 0000000000..bc4e4e8447
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/signal.c
@@ -0,0 +1,3 @@
+/* We need this file since otherwise `signal' would be handled as a
+ system call. */
+#include <sysdeps/posix/signal.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/signalfd.c b/REORG.TODO/sysdeps/unix/sysv/linux/signalfd.c
new file mode 100644
index 0000000000..5133443558
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/signalfd.c
@@ -0,0 +1,28 @@
+/* Copyright (C) 2007-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <signal.h>
+#include <sys/signalfd.h>
+#include <sysdep.h>
+
+
+int
+signalfd (int fd, const sigset_t *mask, int flags)
+{
+ return INLINE_SYSCALL (signalfd4, 4, fd, mask, _NSIG / 8, flags);
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sigpending.c b/REORG.TODO/sysdeps/unix/sysv/linux/sigpending.c
new file mode 100644
index 0000000000..ee50be6b87
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sigpending.c
@@ -0,0 +1,32 @@
+/* Copyright (C) 1997-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <signal.h>
+#include <unistd.h>
+
+#include <sysdep.h>
+#include <sys/syscall.h>
+
+
+/* Change the set of blocked signals to SET,
+ wait until a signal arrives, and restore the set of blocked signals. */
+int
+sigpending (sigset_t *set)
+{
+ return INLINE_SYSCALL (rt_sigpending, 2, set, _NSIG / 8);
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sigprocmask.c b/REORG.TODO/sysdeps/unix/sysv/linux/sigprocmask.c
new file mode 100644
index 0000000000..e39e5f6872
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sigprocmask.c
@@ -0,0 +1,56 @@
+/* Copyright (C) 1997-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <signal.h>
+#include <string.h> /* Needed for string function builtin redirection. */
+#include <unistd.h>
+
+#include <sysdep.h>
+#include <sys/syscall.h>
+
+#include <nptl/pthreadP.h> /* SIGCANCEL, SIGSETXID */
+
+
+/* Get and/or change the set of blocked signals. */
+int
+__sigprocmask (int how, const sigset_t *set, sigset_t *oset)
+{
+#ifdef SIGCANCEL
+ sigset_t local_newmask;
+
+ /* The only thing we have to make sure here is that SIGCANCEL and
+ SIGSETXID are not blocked. */
+ if (set != NULL
+ && (__builtin_expect (__sigismember (set, SIGCANCEL), 0)
+# ifdef SIGSETXID
+ || __builtin_expect (__sigismember (set, SIGSETXID), 0)
+# endif
+ ))
+ {
+ local_newmask = *set;
+ __sigdelset (&local_newmask, SIGCANCEL);
+# ifdef SIGSETXID
+ __sigdelset (&local_newmask, SIGSETXID);
+# endif
+ set = &local_newmask;
+ }
+#endif
+
+ return INLINE_SYSCALL (rt_sigprocmask, 4, how, set, oset, _NSIG / 8);
+}
+weak_alias (__sigprocmask, sigprocmask)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sigqueue.c b/REORG.TODO/sysdeps/unix/sysv/linux/sigqueue.c
new file mode 100644
index 0000000000..059e524528
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sigqueue.c
@@ -0,0 +1,48 @@
+/* Copyright (C) 1997-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <signal.h>
+#include <unistd.h>
+#include <string.h>
+
+#include <sysdep.h>
+#include <sys/syscall.h>
+
+#ifdef __NR_rt_sigqueueinfo
+/* Return any pending signal or wait for one for the given time. */
+int
+__sigqueue (pid_t pid, int sig, const union sigval val)
+{
+ siginfo_t info;
+
+ /* First, clear the siginfo_t structure, so that we don't pass our
+ stack content to other tasks. */
+ memset (&info, 0, sizeof (siginfo_t));
+ /* We must pass the information about the data in a siginfo_t value. */
+ info.si_signo = sig;
+ info.si_code = SI_QUEUE;
+ info.si_pid = __getpid ();
+ info.si_uid = __getuid ();
+ info.si_value = val;
+
+ return INLINE_SYSCALL (rt_sigqueueinfo, 3, pid, sig, &info);
+}
+weak_alias (__sigqueue, sigqueue)
+#else
+# include <signal/sigqueue.c>
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sigreturn.c b/REORG.TODO/sysdeps/unix/sysv/linux/sigreturn.c
new file mode 100644
index 0000000000..626b1eb8af
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sigreturn.c
@@ -0,0 +1,3 @@
+/* The sigreturn syscall cannot be explicitly called on Linux, only
+ implicitly by returning from a signal handler. */
+#include <signal/sigreturn.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sigset-cvt-mask.h b/REORG.TODO/sysdeps/unix/sysv/linux/sigset-cvt-mask.h
new file mode 100644
index 0000000000..2620059e9c
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sigset-cvt-mask.h
@@ -0,0 +1,43 @@
+/* Convert between lowlevel sigmask and libc representation of sigset_t.
+ Linux version.
+ Copyright (C) 1998-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Joe Keane <jgk@jgk.org>.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+static inline int __attribute__ ((unused))
+sigset_set_old_mask (sigset_t *set, int mask)
+{
+ unsigned long int *ptr;
+ int cnt;
+
+ ptr = &set->__val[0];
+
+ *ptr++ = (unsigned int) mask;
+
+ cnt = _SIGSET_NWORDS - 2;
+ do
+ *ptr++ = 0ul;
+ while (--cnt >= 0);
+
+ return 0;
+}
+
+static inline int __attribute__ ((unused))
+sigset_get_old_mask (const sigset_t *set)
+{
+ return (unsigned int) set->__val[0];
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sigsetops.h b/REORG.TODO/sysdeps/unix/sysv/linux/sigsetops.h
new file mode 100644
index 0000000000..05a605ff3f
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sigsetops.h
@@ -0,0 +1,108 @@
+/* __sigset_t manipulators. Linux version.
+ Copyright (C) 1991-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SIGSETOPS_H
+#define _SIGSETOPS_H 1
+
+#include <signal.h>
+
+/* Return a mask that includes the bit for SIG only. */
+# define __sigmask(sig) \
+ (((unsigned long int) 1) << (((sig) - 1) % (8 * sizeof (unsigned long int))))
+
+/* Return the word index for SIG. */
+# define __sigword(sig) (((sig) - 1) / (8 * sizeof (unsigned long int)))
+
+# define __sigemptyset(set) \
+ (__extension__ ({ \
+ int __cnt = _SIGSET_NWORDS; \
+ sigset_t *__set = (set); \
+ while (--__cnt >= 0) \
+ __set->__val[__cnt] = 0; \
+ (void)0; \
+ }))
+
+# define __sigfillset(set) \
+ (__extension__ ({ \
+ int __cnt = _SIGSET_NWORDS; \
+ sigset_t *__set = (set); \
+ while (--__cnt >= 0) \
+ __set->__val[__cnt] = ~0UL; \
+ (void)0; \
+ }))
+
+# define __sigisemptyset(set) \
+ (__extension__ ({ \
+ int __cnt = _SIGSET_NWORDS; \
+ const sigset_t *__set = (set); \
+ int __ret = __set->__val[--__cnt]; \
+ while (!__ret && --__cnt >= 0) \
+ __ret = __set->__val[__cnt]; \
+ __ret == 0; \
+ }))
+
+# define __sigandset(dest, left, right) \
+ (__extension__ ({ \
+ int __cnt = _SIGSET_NWORDS; \
+ sigset_t *__dest = (dest); \
+ const sigset_t *__left = (left); \
+ const sigset_t *__right = (right); \
+ while (--__cnt >= 0) \
+ __dest->__val[__cnt] = (__left->__val[__cnt] \
+ & __right->__val[__cnt]); \
+ (void)0; \
+ }))
+
+# define __sigorset(dest, left, right) \
+ (__extension__ ({ \
+ int __cnt = _SIGSET_NWORDS; \
+ sigset_t *__dest = (dest); \
+ const sigset_t *__left = (left); \
+ const sigset_t *__right = (right); \
+ while (--__cnt >= 0) \
+ __dest->__val[__cnt] = (__left->__val[__cnt] \
+ | __right->__val[__cnt]); \
+ (void)0; \
+ }))
+
+/* These macros needn't check for a bogus signal number;
+ error checking is done in the non-__ versions. */
+# define __sigismember(set, sig) \
+ (__extension__ ({ \
+ unsigned long int __mask = __sigmask (sig); \
+ unsigned long int __word = __sigword (sig); \
+ (set)->__val[__word] & __mask ? 1 : 0; \
+ }))
+
+# define __sigaddset(set, sig) \
+ (__extension__ ({ \
+ unsigned long int __mask = __sigmask (sig); \
+ unsigned long int __word = __sigword (sig); \
+ (set)->__val[__word] |= __mask; \
+ (void)0; \
+ }))
+
+# define __sigdelset(set, sig) \
+ (__extension__ ({ \
+ unsigned long int __mask = __sigmask (sig); \
+ unsigned long int __word = __sigword (sig); \
+ (set)->__val[__word] &= ~__mask; \
+ (void)0; \
+ }))
+
+#endif /* bits/sigsetops.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sigstack.c b/REORG.TODO/sysdeps/unix/sysv/linux/sigstack.c
new file mode 100644
index 0000000000..94d9935fc4
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sigstack.c
@@ -0,0 +1,66 @@
+/* Emulate sigstack function using sigaltstack.
+ Copyright (C) 1998-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
+
+ 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 <stddef.h>
+#include <sys/syscall.h>
+
+
+#ifdef __NR_sigaltstack
+int
+sigstack (struct sigstack *ss, struct sigstack *oss)
+{
+ stack_t sas;
+ stack_t *sasp = NULL;
+ stack_t osas;
+ stack_t *osasp = oss == NULL ? NULL : &osas;
+ int result;
+
+ if (ss != NULL)
+ {
+ /* We have to convert the information. */
+ sas.ss_sp = ss->ss_sp;
+ sas.ss_flags = ss->ss_onstack ? SS_ONSTACK : 0;
+
+ /* For the size of the stack we have no value we can pass to the
+ kernel. This is why this function should not be used. We simply
+ assume that all the memory down to address zero (in case the stack
+ grows down) is available. */
+ sas.ss_size = ss->ss_sp - NULL;
+
+ sasp = &sas;
+ }
+
+ /* Call the kernel. */
+ result = __sigaltstack (sasp, osasp);
+
+ /* Convert the result, if wanted and possible. */
+ if (result == 0 && oss != NULL)
+ {
+ oss->ss_sp = osas.ss_sp;
+ oss->ss_onstack = (osas.ss_flags & SS_ONSTACK) != 0;
+ }
+
+ return result;
+}
+
+link_warning (sigstack, "the `sigstack' function is dangerous. `sigaltstack' should be used instead.")
+#else
+# include <signal/sigstack.c>
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sigsuspend.c b/REORG.TODO/sysdeps/unix/sysv/linux/sigsuspend.c
new file mode 100644
index 0000000000..df29abfbe9
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sigsuspend.c
@@ -0,0 +1,30 @@
+/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <signal.h>
+#include <sysdep-cancel.h>
+
+/* Change the set of blocked signals to SET,
+ wait until a signal arrives, and restore the set of blocked signals. */
+int
+__sigsuspend (const sigset_t *set)
+{
+ return SYSCALL_CANCEL (rt_sigsuspend, set, _NSIG / 8);
+}
+libc_hidden_def (__sigsuspend)
+weak_alias (__sigsuspend, sigsuspend)
+strong_alias (__sigsuspend, __libc_sigsuspend)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sigtimedwait.c b/REORG.TODO/sysdeps/unix/sysv/linux/sigtimedwait.c
new file mode 100644
index 0000000000..ab1a84ef1c
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sigtimedwait.c
@@ -0,0 +1,69 @@
+/* Copyright (C) 1997-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <signal.h>
+#include <string.h>
+
+#include <nptl/pthreadP.h>
+#include <sysdep-cancel.h>
+#include <sys/syscall.h>
+
+#ifdef __NR_rt_sigtimedwait
+
+int
+__sigtimedwait (const sigset_t *set, siginfo_t *info,
+ const struct timespec *timeout)
+{
+#ifdef SIGCANCEL
+ sigset_t tmpset;
+ if (set != NULL
+ && (__builtin_expect (__sigismember (set, SIGCANCEL), 0)
+# ifdef SIGSETXID
+ || __builtin_expect (__sigismember (set, SIGSETXID), 0)
+# endif
+ ))
+ {
+ /* Create a temporary mask without the bit for SIGCANCEL set. */
+ // We are not copying more than we have to.
+ memcpy (&tmpset, set, _NSIG / 8);
+ __sigdelset (&tmpset, SIGCANCEL);
+# ifdef SIGSETXID
+ __sigdelset (&tmpset, SIGSETXID);
+# endif
+ set = &tmpset;
+ }
+#endif
+
+ /* XXX The size argument hopefully will have to be changed to the
+ real size of the user-level sigset_t. */
+ int result = SYSCALL_CANCEL (rt_sigtimedwait, set, info, timeout, _NSIG / 8);
+
+ /* The kernel generates a SI_TKILL code in si_code in case tkill is
+ used. tkill is transparently used in raise(). Since having
+ SI_TKILL as a code is useful in general we fold the results
+ here. */
+ if (result != -1 && info != NULL && info->si_code == SI_TKILL)
+ info->si_code = SI_USER;
+
+ return result;
+}
+libc_hidden_def (__sigtimedwait)
+weak_alias (__sigtimedwait, sigtimedwait)
+#else
+# include <signal/sigtimedwait.c>
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sigwait.c b/REORG.TODO/sysdeps/unix/sysv/linux/sigwait.c
new file mode 100644
index 0000000000..48bcd2fda7
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sigwait.c
@@ -0,0 +1,107 @@
+/* Copyright (C) 1997-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <signal.h>
+#define __need_NULL
+#include <stddef.h>
+#include <string.h>
+
+#include <nptl/pthreadP.h>
+#include <sysdep-cancel.h>
+#include <sys/syscall.h>
+
+#ifdef __NR_rt_sigtimedwait
+
+/* Return any pending signal or wait for one for the given time. */
+static int
+do_sigwait (const sigset_t *set, int *sig)
+{
+ int ret;
+
+#ifdef SIGCANCEL
+ sigset_t tmpset;
+ if (set != NULL
+ && (__builtin_expect (__sigismember (set, SIGCANCEL), 0)
+# ifdef SIGSETXID
+ || __builtin_expect (__sigismember (set, SIGSETXID), 0)
+# endif
+ ))
+ {
+ /* Create a temporary mask without the bit for SIGCANCEL set. */
+ // We are not copying more than we have to.
+ memcpy (&tmpset, set, _NSIG / 8);
+ __sigdelset (&tmpset, SIGCANCEL);
+# ifdef SIGSETXID
+ __sigdelset (&tmpset, SIGSETXID);
+# endif
+ set = &tmpset;
+ }
+#endif
+
+ /* XXX The size argument hopefully will have to be changed to the
+ real size of the user-level sigset_t. */
+#ifdef INTERNAL_SYSCALL
+ INTERNAL_SYSCALL_DECL (err);
+ do
+ ret = INTERNAL_SYSCALL (rt_sigtimedwait, err, 4, set,
+ NULL, NULL, _NSIG / 8);
+ while (INTERNAL_SYSCALL_ERROR_P (ret, err)
+ && INTERNAL_SYSCALL_ERRNO (ret, err) == EINTR);
+ if (! INTERNAL_SYSCALL_ERROR_P (ret, err))
+ {
+ *sig = ret;
+ ret = 0;
+ }
+ else
+ ret = INTERNAL_SYSCALL_ERRNO (ret, err);
+#else
+ do
+ ret = INLINE_SYSCALL (rt_sigtimedwait, 4, set, NULL, NULL, _NSIG / 8);
+ while (ret == -1 && errno == EINTR);
+ if (ret != -1)
+ {
+ *sig = ret;
+ ret = 0;
+ }
+ else
+ ret = errno;
+#endif
+
+ return ret;
+}
+
+int
+__sigwait (const sigset_t *set, int *sig)
+{
+ if (SINGLE_THREAD_P)
+ return do_sigwait (set, sig);
+
+ int oldtype = LIBC_CANCEL_ASYNC ();
+
+ int result = do_sigwait (set, sig);
+
+ LIBC_CANCEL_RESET (oldtype);
+
+ return result;
+}
+libc_hidden_def (__sigwait)
+weak_alias (__sigwait, sigwait)
+#else
+# include <sysdeps/posix/sigwait.c>
+#endif
+strong_alias (__sigwait, __libc_sigwait)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sigwaitinfo.c b/REORG.TODO/sysdeps/unix/sysv/linux/sigwaitinfo.c
new file mode 100644
index 0000000000..5a044f08e3
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sigwaitinfo.c
@@ -0,0 +1,73 @@
+/* Copyright (C) 1997-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <signal.h>
+#define __need_NULL
+#include <stddef.h>
+#include <string.h>
+
+#include <nptl/pthreadP.h>
+#include <sysdep-cancel.h>
+#include <sys/syscall.h>
+
+#ifdef __NR_rt_sigtimedwait
+
+/* Return any pending signal or wait for one for the given time. */
+int
+__sigwaitinfo (const sigset_t *set, siginfo_t *info)
+{
+#ifdef SIGCANCEL
+ sigset_t tmpset;
+ if (set != NULL
+ && (__builtin_expect (__sigismember (set, SIGCANCEL), 0)
+# ifdef SIGSETXID
+ || __builtin_expect (__sigismember (set, SIGSETXID), 0)
+# endif
+ ))
+ {
+ /* Create a temporary mask without the bit for SIGCANCEL set. */
+ // We are not copying more than we have to.
+ memcpy (&tmpset, set, _NSIG / 8);
+ __sigdelset (&tmpset, SIGCANCEL);
+# ifdef SIGSETXID
+ __sigdelset (&tmpset, SIGSETXID);
+# endif
+ set = &tmpset;
+ }
+#endif
+
+ /* XXX The size argument hopefully will have to be changed to the
+ real size of the user-level sigset_t. */
+ int result = SYSCALL_CANCEL (rt_sigtimedwait, set, info, NULL, _NSIG / 8);
+
+ /* The kernel generates a SI_TKILL code in si_code in case tkill is
+ used. tkill is transparently used in raise(). Since having
+ SI_TKILL as a code is useful in general we fold the results
+ here. */
+ if (result != -1 && info != NULL && info->si_code == SI_TKILL)
+ info->si_code = SI_USER;
+
+ return result;
+}
+
+libc_hidden_def (__sigwaitinfo)
+weak_alias (__sigwaitinfo, sigwaitinfo)
+#else
+# include <signal/sigwaitinfo.c>
+#endif
+strong_alias (__sigwaitinfo, __libc_sigwaitinfo)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sizes.h b/REORG.TODO/sysdeps/unix/sysv/linux/sizes.h
new file mode 100644
index 0000000000..5de696d348
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sizes.h
@@ -0,0 +1,23 @@
+/* Copyright (C) 1998-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SIZES_H
+#define _SIZES_H 1
+
+#define PTR_SIZE_STR "4"
+
+#endif /* sizes.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/socket.c b/REORG.TODO/sysdeps/unix/sysv/linux/socket.c
new file mode 100644
index 0000000000..99109d4b93
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/socket.c
@@ -0,0 +1,36 @@
+/* Copyright (C) 2015-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <signal.h>
+#include <sys/socket.h>
+
+#include <socketcall.h>
+#include <kernel-features.h>
+#include <sys/syscall.h>
+
+int
+__socket (int fd, int type, int domain)
+{
+#ifdef __ASSUME_SOCKET_SYSCALL
+ return INLINE_SYSCALL (socket, 3, fd, type, domain);
+#else
+ return SOCKETCALL (socket, fd, type, domain);
+#endif
+}
+libc_hidden_def (__socket)
+weak_alias (__socket, socket)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/socketcall.h b/REORG.TODO/sysdeps/unix/sysv/linux/socketcall.h
new file mode 100644
index 0000000000..75f70d0a42
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/socketcall.h
@@ -0,0 +1,104 @@
+/* ID for functions called via socketcall system call.
+ Copyright (C) 1995-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_SOCKETCALL_H
+#define _SYS_SOCKETCALL_H 1
+
+/* Define unique numbers for the operations permitted on socket. Linux
+ uses a single system call for all these functions. The relevant code
+ file is /usr/include/linux/net.h.
+ We cannot use an enum here because the values are used in assembler
+ code. */
+
+#define SOCKOP_invalid -1
+#define SOCKOP_socket 1
+#define SOCKOP_bind 2
+#define SOCKOP_connect 3
+#define SOCKOP_listen 4
+#define SOCKOP_accept 5
+#define SOCKOP_getsockname 6
+#define SOCKOP_getpeername 7
+#define SOCKOP_socketpair 8
+#define SOCKOP_send 9
+#define SOCKOP_recv 10
+#define SOCKOP_sendto 11
+#define SOCKOP_recvfrom 12
+#define SOCKOP_shutdown 13
+#define SOCKOP_setsockopt 14
+#define SOCKOP_getsockopt 15
+#define SOCKOP_sendmsg 16
+#define SOCKOP_recvmsg 17
+#define SOCKOP_accept4 18
+#define SOCKOP_recvmmsg 19
+#define SOCKOP_sendmmsg 20
+
+#define __SOCKETCALL1(name, a1) \
+ INLINE_SYSCALL (socketcall, 2, name, \
+ ((long int [1]) { (long int) (a1) }))
+#define __SOCKETCALL2(name, a1, a2) \
+ INLINE_SYSCALL (socketcall, 2, name, \
+ ((long int [2]) { (long int) (a1), (long int) (a2) }))
+#define __SOCKETCALL3(name, a1, a2, a3) \
+ INLINE_SYSCALL (socketcall, 2, name, \
+ ((long int [3]) { (long int) (a1), (long int) (a2), (long int) (a3) }))
+#define __SOCKETCALL4(name, a1, a2, a3, a4) \
+ INLINE_SYSCALL (socketcall, 2, name, \
+ ((long int [4]) { (long int) (a1), (long int) (a2), (long int) (a3), \
+ (long int) (a4) }))
+#define __SOCKETCALL5(name, a1, a2, a3, a4, a5) \
+ INLINE_SYSCALL (socketcall, 2, name, \
+ ((long int [5]) { (long int) (a1), (long int) (a2), (long int) (a3), \
+ (long int) (a4), (long int) (a5) }))
+#define __SOCKETCALL6(name, a1, a2, a3, a4, a5, a6) \
+ INLINE_SYSCALL (socketcall, 2, name, \
+ ((long int [6]) { (long int) (a1), (long int) (a2), (long int) (a3), \
+ (long int) (a4), (long int) (a5), (long int) (a6) }))
+
+#define __SOCKETCALL_NARGS_X(a,b,c,d,e,f,g,h,n,...) n
+#define __SOCKETCALL_NARGS(...) \
+ __SOCKETCALL_NARGS_X (__VA_ARGS__,7,6,5,4,3,2,1,0,)
+#define __SOCKETCALL_CONCAT_X(a,b) a##b
+#define __SOCKETCALL_CONCAT(a,b) __SOCKETCALL_CONCAT_X (a, b)
+#define __SOCKETCALL_DISP(b,...) \
+ __SOCKETCALL_CONCAT (b,__SOCKETCALL_NARGS(__VA_ARGS__))(__VA_ARGS__)
+
+#define __SOCKETCALL(...) __SOCKETCALL_DISP (__SOCKETCALL, __VA_ARGS__)
+
+
+#define SOCKETCALL(name, args...) \
+ ({ \
+ long int sc_ret = __SOCKETCALL (SOCKOP_##name, args); \
+ sc_ret; \
+ })
+
+
+#if IS_IN (libc)
+# define __pthread_enable_asynccancel __libc_enable_asynccancel
+# define __pthread_disable_asynccancel __libc_disable_asynccancel
+#endif
+
+#define SOCKETCALL_CANCEL(name, args...) \
+ ({ \
+ int oldtype = LIBC_CANCEL_ASYNC (); \
+ long int sc_ret = __SOCKETCALL (SOCKOP_##name, args); \
+ LIBC_CANCEL_RESET (oldtype); \
+ sc_ret; \
+ })
+
+
+#endif /* sys/socketcall.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/socketpair.c b/REORG.TODO/sysdeps/unix/sysv/linux/socketpair.c
new file mode 100644
index 0000000000..66d6da1c23
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/socketpair.c
@@ -0,0 +1,35 @@
+/* Copyright (C) 2015-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <signal.h>
+#include <sys/socket.h>
+
+#include <socketcall.h>
+#include <kernel-features.h>
+#include <sys/syscall.h>
+
+int
+__socketpair (int domain, int type, int protocol, int sv[2])
+{
+#ifdef __ASSUME_SOCKETPAIR_SYSCALL
+ return INLINE_SYSCALL (socketpair, 4, domain, type, protocol, &sv[0]);
+#else
+ return SOCKETCALL (socketpair, domain, type, protocol, sv);
+#endif
+}
+weak_alias (__socketpair, socketpair)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/Implies b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/Implies
new file mode 100644
index 0000000000..a8cc375171
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/Implies
@@ -0,0 +1 @@
+sparc/nptl
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/Makefile b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/Makefile
new file mode 100644
index 0000000000..a67d199eb5
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/Makefile
@@ -0,0 +1,20 @@
+abi-variants := 32 64
+abi-32-options := -U__sparc_v9__ -U__arch64__
+abi-32-condition := __WORDSIZE == 32
+abi-64-options := -D__sparc_v9__ -D__arch64__
+abi-64-condition := __WORDSIZE == 64
+
+ifeq ($(subdir),rt)
+librt-routines += rt-sysdep
+librt-shared-only-routines += rt-sysdep
+endif
+
+ifeq ($(subdir),sysvipc)
+sysdep_routines += getshmlba
+endif
+
+ifeq ($(subdir),nptl)
+# pull in __syscall_error routine
+libpthread-routines += sysdep
+libpthread-shared-only-routines += sysdep
+endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/Versions b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/Versions
new file mode 100644
index 0000000000..4dc1cd720b
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/Versions
@@ -0,0 +1,46 @@
+libc {
+ # The comment lines with "#errlist-compat" are magic; see errlist-compat.awk.
+ # When you get an error from errlist-compat.awk, you need to add a new
+ # version here.
+
+ GLIBC_2.0 {
+ #errlist-compat 127
+ _sys_errlist; sys_errlist; _sys_nerr; sys_nerr;
+ }
+ GLIBC_2.1 {
+ #errlist-compat 127
+ _sys_errlist; sys_errlist; _sys_nerr; sys_nerr;
+ }
+ GLIBC_2.3 {
+ #errlist-compat 128
+ _sys_errlist; sys_errlist; _sys_nerr; sys_nerr;
+ }
+ GLIBC_2.4 {
+ #errlist-compat 134
+ _sys_errlist; sys_errlist; _sys_nerr; sys_nerr;
+ }
+ GLIBC_2.12 {
+ #errlist-compat 135
+ _sys_errlist; sys_errlist; _sys_nerr; sys_nerr;
+ }
+ GLIBC_2.16 {
+ #errlist-compat 136
+ _sys_errlist; sys_errlist; _sys_nerr; sys_nerr;
+
+ __getshmlba;
+ }
+}
+
+libpthread {
+ GLIBC_2.3.3 {
+ # Changed PTHREAD_STACK_MIN.
+ pthread_attr_setstack; pthread_attr_setstacksize;
+ }
+}
+
+librt {
+ GLIBC_2.3 {
+ # AIO functions.
+ aio_cancel; aio_cancel64;
+ }
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/a.out.h b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/a.out.h
new file mode 100644
index 0000000000..593c4cccf4
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/a.out.h
@@ -0,0 +1,174 @@
+#ifndef __A_OUT_GNU_H__
+#define __A_OUT_GNU_H__
+
+#include <bits/a.out.h>
+
+#define __GNU_EXEC_MACROS__
+
+struct exec
+{
+ unsigned char a_dynamic:1; /* A __DYNAMIC is in this image. */
+ unsigned char a_toolversion:7;
+ unsigned char a_machtype;
+ unsigned short a_info;
+ unsigned int a_text; /* Length of text, in bytes. */
+ unsigned int a_data; /* Length of data, in bytes. */
+ unsigned int a_bss; /* Length of bss, in bytes. */
+ unsigned int a_syms; /* Length of symbol table, in bytes. */
+ unsigned int a_entry; /* Where program begins. */
+ unsigned int a_trsize;
+ unsigned int a_drsize;
+};
+
+enum machine_type
+{
+ M_OLDSUN2 = 0,
+ M_68010 = 1,
+ M_68020 = 2,
+ M_SPARC = 3,
+ M_386 = 100,
+ M_MIPS1 = 151,
+ M_MIPS2 = 152
+};
+
+#define N_MAGIC(exec) ((exec).a_info & 0xffff)
+#define N_MACHTYPE(exec) ((enum machine_type)(((exec).a_info >> 16) & 0xff))
+#define N_FLAGS(exec) (((exec).a_info >> 24) & 0xff)
+#define N_SET_INFO(exec, magic, type, flags) \
+ ((exec).a_info = ((magic) & 0xffff) \
+ | (((int)(type) & 0xff) << 16) \
+ | (((flags) & 0xff) << 24))
+#define N_SET_MAGIC(exec, magic) \
+ ((exec).a_info = ((exec).a_info & 0xffff0000) | ((magic) & 0xffff))
+#define N_SET_MACHTYPE(exec, machtype) \
+ ((exec).a_info = \
+ ((exec).a_info&0xff00ffff) | ((((int)(machtype))&0xff) << 16))
+#define N_SET_FLAGS(exec, flags) \
+ ((exec).a_info = \
+ ((exec).a_info&0x00ffffff) | (((flags) & 0xff) << 24))
+
+/* Code indicating object file or impure executable. */
+#define OMAGIC 0407
+/* Code indicating pure executable. */
+#define NMAGIC 0410
+/* Code indicating demand-paged executable. */
+#define ZMAGIC 0413
+/* This indicates a demand-paged executable with the header in the text.
+ The first page is unmapped to help trap NULL pointer references. */
+#define QMAGIC 0314
+/* Code indicating core file. */
+#define CMAGIC 0421
+
+#define N_TRSIZE(a) ((a).a_trsize)
+#define N_DRSIZE(a) ((a).a_drsize)
+#define N_SYMSIZE(a) ((a).a_syms)
+#define N_BADMAG(x) \
+ (N_MAGIC(x) != OMAGIC && N_MAGIC(x) != NMAGIC \
+ && N_MAGIC(x) != ZMAGIC && N_MAGIC(x) != QMAGIC)
+#define _N_HDROFF(x) (1024 - sizeof (struct exec))
+#define N_TXTOFF(x) \
+ (N_MAGIC(x) == ZMAGIC ? 0 : sizeof (struct exec))
+#define N_DATOFF(x) (N_TXTOFF(x) + (x).a_text)
+#define N_TRELOFF(x) (N_DATOFF(x) + (x).a_data)
+#define N_DRELOFF(x) (N_TRELOFF(x) + N_TRSIZE(x))
+#define N_SYMOFF(x) \
+ (N_TXTOFF(x) + (x).a_text + (x).a_data + (x).a_trsize + (x).a_drsize)
+#define N_STROFF(x) (N_SYMOFF(x) + N_SYMSIZE(x))
+
+#define SPARC_PGSIZE 0x2000
+
+/* Address of text segment in memory after it is loaded. */
+#define N_TXTADDR(x) \
+ (unsigned long)(((N_MAGIC(x) == ZMAGIC) && ((x).a_entry < SPARC_PGSIZE)) \
+ ? 0 : SPARC_PGSIZE)
+
+/* Address of data segment in memory after it is loaded. */
+#define SEGMENT_SIZE SPARC_PGSIZE
+
+#define _N_SEGMENT_ROUND(x) (((x) + SEGMENT_SIZE - 1) & ~(SEGMENT_SIZE - 1))
+#define _N_TXTENDADDR(x) (N_TXTADDR(x)+(x).a_text)
+
+#define N_DATADDR(x) \
+ (N_MAGIC(x)==OMAGIC \
+ ? (N_TXTADDR(x) + (x).a_text) \
+ : (unsigned long)(_N_SEGMENT_ROUND (_N_TXTENDADDR(x))))
+#define N_BSSADDR(x) (N_DATADDR(x) + (x).a_data)
+
+#if !defined (N_NLIST_DECLARED)
+struct nlist
+{
+ union
+ {
+ char *n_name;
+ struct nlist *n_next;
+ long n_strx;
+ } n_un;
+ unsigned char n_type;
+ char n_other;
+ short n_desc;
+ unsigned long n_value;
+};
+#endif /* no N_NLIST_DECLARED. */
+
+#define N_UNDF 0
+#define N_ABS 2
+#define N_TEXT 4
+#define N_DATA 6
+#define N_BSS 8
+#define N_FN 15
+#define N_EXT 1
+#define N_TYPE 036
+#define N_STAB 0340
+#define N_INDR 0xa
+#define N_SETA 0x14 /* Absolute set element symbol. */
+#define N_SETT 0x16 /* Text set element symbol. */
+#define N_SETD 0x18 /* Data set element symbol. */
+#define N_SETB 0x1A /* Bss set element symbol. */
+#define N_SETV 0x1C /* Pointer to set vector in data area. */
+
+#if !defined (N_RELOCATION_INFO_DECLARED)
+enum reloc_type
+{
+ RELOC_8,
+ RELOC_16,
+ RELOC_32,
+ RELOC_DISP8,
+ RELOC_DISP16,
+ RELOC_DISP32,
+ RELOC_WDISP30,
+ RELOC_WDISP22,
+ RELOC_HI22,
+ RELOC_22,
+ RELOC_13,
+ RELOC_LO10,
+ RELOC_SFA_BASE,
+ RELOC_SFA_OFF13,
+ RELOC_BASE10,
+ RELOC_BASE13,
+ RELOC_BASE22,
+ RELOC_PC10,
+ RELOC_PC22,
+ RELOC_JMP_TBL,
+ RELOC_SEGOFF16,
+ RELOC_GLOB_DAT,
+ RELOC_JMP_SLOT,
+ RELOC_RELATIVE
+};
+
+/* This structure describes a single relocation to be performed.
+ The text-relocation section of the file is a vector of these structures,
+ all of which apply to the text section.
+ Likewise, the data-relocation section applies to the data section. */
+
+struct relocation_info
+{
+ unsigned int r_address;
+ unsigned int r_index:24;
+ unsigned int r_extern:1;
+ int r_pad:2;
+ enum reloc_type r_type:5;
+ int r_addend;
+};
+#endif /* no N_RELOCATION_INFO_DECLARED. */
+
+#endif /* __A_OUT_GNU_H__ */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/aio_cancel.c b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/aio_cancel.c
new file mode 100644
index 0000000000..0d6da82919
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/aio_cancel.c
@@ -0,0 +1,33 @@
+#include <shlib-compat.h>
+
+#define aio_cancel64 XXX
+#include <aio.h>
+#undef aio_cancel64
+#include <errno.h>
+
+extern __typeof (aio_cancel) __new_aio_cancel;
+extern __typeof (aio_cancel) __old_aio_cancel;
+
+#define aio_cancel __new_aio_cancel
+
+#include <sysdeps/pthread/aio_cancel.c>
+
+#undef aio_cancel
+strong_alias (__new_aio_cancel, __new_aio_cancel64);
+versioned_symbol (librt, __new_aio_cancel, aio_cancel, GLIBC_2_3);
+versioned_symbol (librt, __new_aio_cancel64, aio_cancel64, GLIBC_2_3);
+
+#if SHLIB_COMPAT (librt, GLIBC_2_1, GLIBC_2_3)
+
+#undef ECANCELED
+#define aio_cancel __old_aio_cancel
+#define ECANCELED 125
+
+#include <sysdeps/pthread/aio_cancel.c>
+
+#undef aio_cancel
+strong_alias (__old_aio_cancel, __old_aio_cancel64);
+compat_symbol (librt, __old_aio_cancel, aio_cancel, GLIBC_2_1);
+compat_symbol (librt, __old_aio_cancel64, aio_cancel64, GLIBC_2_1);
+
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/arch-fork.h b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/arch-fork.h
new file mode 100644
index 0000000000..f4c67fb132
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/arch-fork.h
@@ -0,0 +1,27 @@
+/* ARCH_FORK definition for Linux fork implementation. SPARC version.
+ 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 <sched.h>
+#include <signal.h>
+#include <sysdep.h>
+#include <tls.h>
+
+#define ARCH_FORK() \
+ INLINE_CLONE_SYSCALL (CLONE_CHILD_SETTID | CLONE_CHILD_CLEARTID | SIGCHLD, \
+ 0, NULL, NULL, &THREAD_SELF->tid)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/a.out.h b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/a.out.h
new file mode 100644
index 0000000000..228a8d41af
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/a.out.h
@@ -0,0 +1,13 @@
+#ifndef __A_OUT_GNU_H__
+# error "Never use <bits/a.out.h> directly; include <a.out.h> instead."
+#endif
+
+#include <bits/wordsize.h>
+
+#if __WORDSIZE == 64
+
+/* Signal to users of this header that this architecture really doesn't
+ support a.out binary format. */
+#define __NO_A_OUT_SUPPORT 1
+
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/environments.h b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/environments.h
new file mode 100644
index 0000000000..475d5648d0
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/environments.h
@@ -0,0 +1,96 @@
+/* Copyright (C) 1999-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _UNISTD_H
+# error "Never include this file directly. Use <unistd.h> instead"
+#endif
+
+#include <bits/wordsize.h>
+
+/* This header should define the following symbols under the described
+ situations. A value `1' means that the model is always supported,
+ `-1' means it is never supported. Undefined means it cannot be
+ statically decided.
+
+ _POSIX_V7_ILP32_OFF32 32bit int, long, pointers, and off_t type
+ _POSIX_V7_ILP32_OFFBIG 32bit int, long, and pointers and larger off_t type
+
+ _POSIX_V7_LP64_OFF32 64bit long and pointers and 32bit off_t type
+ _POSIX_V7_LPBIG_OFFBIG 64bit long and pointers and large off_t type
+
+ The macros _POSIX_V6_ILP32_OFF32, _POSIX_V6_ILP32_OFFBIG,
+ _POSIX_V6_LP64_OFF32, _POSIX_V6_LPBIG_OFFBIG, _XBS5_ILP32_OFF32,
+ _XBS5_ILP32_OFFBIG, _XBS5_LP64_OFF32, and _XBS5_LPBIG_OFFBIG were
+ used in previous versions of the Unix standard and are available
+ only for compatibility.
+*/
+
+#if __WORDSIZE == 64
+
+/* Environments with 32-bit wide pointers are optionally provided.
+ Therefore following macros aren't defined:
+ # undef _POSIX_V7_ILP32_OFF32
+ # undef _POSIX_V7_ILP32_OFFBIG
+ # undef _POSIX_V6_ILP32_OFF32
+ # undef _POSIX_V6_ILP32_OFFBIG
+ # undef _XBS5_ILP32_OFF32
+ # undef _XBS5_ILP32_OFFBIG
+ and users need to check at runtime. */
+
+/* We also have no use (for now) for an environment with bigger pointers
+ and offsets. */
+# define _POSIX_V7_LPBIG_OFFBIG -1
+# define _POSIX_V6_LPBIG_OFFBIG -1
+# define _XBS5_LPBIG_OFFBIG -1
+
+/* By default we have 64-bit wide `long int', pointers and `off_t'. */
+# define _POSIX_V7_LP64_OFF64 1
+# define _POSIX_V6_LP64_OFF64 1
+# define _XBS5_LP64_OFF64 1
+
+#else /* __WORDSIZE == 32 */
+
+/* By default we have 32-bit wide `int', `long int', pointers and `off_t'
+ and all platforms support LFS. */
+# define _POSIX_V7_ILP32_OFF32 1
+# define _POSIX_V7_ILP32_OFFBIG 1
+# define _POSIX_V6_ILP32_OFF32 1
+# define _POSIX_V6_ILP32_OFFBIG 1
+# define _XBS5_ILP32_OFF32 1
+# define _XBS5_ILP32_OFFBIG 1
+
+/* We optionally provide an environment with the above size but an 64-bit
+ side `off_t'. Therefore we don't define _POSIX_V7_ILP32_OFFBIG. */
+
+/* Environments with 64-bit wide pointers can be provided,
+ so these macros aren't defined:
+ # undef _POSIX_V7_LP64_OFF64
+ # undef _POSIX_V7_LPBIG_OFFBIG
+ # undef _POSIX_V6_LP64_OFF64
+ # undef _POSIX_V6_LPBIG_OFFBIG
+ # undef _XBS5_LP64_OFF64
+ # undef _XBS5_LPBIG_OFFBIG
+ and sysconf tests for it at runtime. */
+
+#endif /* __WORDSIZE == 32 */
+
+#define __ILP32_OFF32_CFLAGS "-m32"
+#define __ILP32_OFFBIG_CFLAGS "-m32 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
+#define __ILP32_OFF32_LDFLAGS "-m32"
+#define __ILP32_OFFBIG_LDFLAGS "-m32"
+#define __LP64_OFF64_CFLAGS "-m64"
+#define __LP64_OFF64_LDFLAGS "-m64"
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/epoll.h b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/epoll.h
new file mode 100644
index 0000000000..69388004f6
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/epoll.h
@@ -0,0 +1,27 @@
+/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_EPOLL_H
+# error "Never use <bits/epoll.h> directly; include <sys/epoll.h> instead."
+#endif
+
+/* Flags to be passed to epoll_create1. */
+enum
+ {
+ EPOLL_CLOEXEC = 0x400000
+#define EPOLL_CLOEXEC EPOLL_CLOEXEC
+ };
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/errno.h b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/errno.h
new file mode 100644
index 0000000000..4a8d8a0879
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/errno.h
@@ -0,0 +1,65 @@
+/* Error constants. Linux/Sparc specific version.
+ Copyright (C) 1996-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifdef _ERRNO_H
+
+# undef EDOM
+# undef EILSEQ
+# undef ERANGE
+# include <linux/errno.h>
+
+/* Linux has no ENOTSUP error code. */
+# define ENOTSUP EOPNOTSUPP
+
+# ifndef ECANCELED
+# define ECANCELED 127
+# endif
+
+/* Support for error codes to support robust mutexes was added later, too. */
+# ifndef EOWNERDEAD
+# define EOWNERDEAD 132
+# define ENOTRECOVERABLE 133
+# endif
+
+# ifndef ERFKILL
+# define ERFKILL 134
+# endif
+
+# ifndef EHWPOISON
+# define EHWPOISON 135
+# endif
+
+# ifndef __ASSEMBLER__
+/* Function to get address of global `errno' variable. */
+extern int *__errno_location (void) __THROW __attribute__ ((__const__));
+
+# if !defined _LIBC || defined _LIBC_REENTRANT
+/* When using threads, errno is a per-thread value. */
+# define errno (*__errno_location ())
+# endif
+# endif /* !__ASSEMBLER__ */
+#endif /* _ERRNO_H */
+
+#if !defined _ERRNO_H && defined __need_Emath
+/* This is ugly but the kernel header is not clean enough. We must
+ define only the values EDOM, EILSEQ and ERANGE in case __need_Emath is
+ defined. */
+# define EDOM 33 /* Math argument out of domain of function. */
+# define EILSEQ 122 /* Illegal byte sequence. */
+# define ERANGE 34 /* Math result not representable. */
+#endif /* !_ERRNO_H && __need_Emath */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/eventfd.h b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/eventfd.h
new file mode 100644
index 0000000000..963761c888
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/eventfd.h
@@ -0,0 +1,31 @@
+/* Copyright (C) 2007-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_EVENTFD_H
+# error "Never use <bits/eventfd.h> directly; include <sys/eventfd.h> instead."
+#endif
+
+/* Flags for eventfd. */
+enum
+ {
+ EFD_SEMAPHORE = 0x000001,
+#define EFD_SEMAPHORE EFD_SEMAPHORE
+ EFD_CLOEXEC = 0x400000,
+#define EFD_CLOEXEC EFD_CLOEXEC
+ EFD_NONBLOCK = 0x004000
+#define EFD_NONBLOCK EFD_NONBLOCK
+ };
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/fcntl.h b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/fcntl.h
new file mode 100644
index 0000000000..bde61c59d8
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/fcntl.h
@@ -0,0 +1,101 @@
+/* O_*, F_*, FD_* bit values for Linux/SPARC.
+ Copyright (C) 1995-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _FCNTL_H
+# error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
+#endif
+
+#include <bits/wordsize.h>
+
+#define O_APPEND 0x0008
+#define O_ASYNC 0x0040
+#define O_CREAT 0x0200 /* not fcntl */
+#define O_TRUNC 0x0400 /* not fcntl */
+#define O_EXCL 0x0800 /* not fcntl */
+#define O_SYNC 0x802000
+#define O_NONBLOCK 0x4000
+#define O_NDELAY (0x0004 | O_NONBLOCK)
+#define O_NOCTTY 0x8000 /* not fcntl */
+
+#define __O_DIRECTORY 0x10000 /* must be a directory */
+#define __O_NOFOLLOW 0x20000 /* don't follow links */
+#define __O_CLOEXEC 0x400000 /* Set close_on_exit. */
+
+#define __O_DIRECT 0x100000 /* direct disk access hint */
+#define __O_NOATIME 0x200000 /* Do not set atime. */
+#define __O_PATH 0x1000000 /* Resolve pathname but do not open file. */
+#define __O_TMPFILE 0x2010000 /* Atomically create nameless file. */
+
+#if __WORDSIZE == 64
+# define __O_LARGEFILE 0
+#else
+# define __O_LARGEFILE 0x40000
+#endif
+
+#define __O_DSYNC 0x2000 /* Synchronize data. */
+
+
+#define __F_GETOWN 5 /* Get owner (process receiving SIGIO). */
+#define __F_SETOWN 6 /* Set owner (process receiving SIGIO). */
+
+#ifndef __USE_FILE_OFFSET64
+# define F_GETLK 7 /* Get record locking info. */
+# define F_SETLK 8 /* Set record locking info (non-blocking). */
+# define F_SETLKW 9 /* Set record locking info (blocking). */
+#endif
+
+#if __WORDSIZE == 64
+# define F_GETLK64 7 /* Get record locking info. */
+# define F_SETLK64 8 /* Set record locking info (non-blocking). */
+# define F_SETLKW64 9 /* Set record locking info (blocking). */
+#endif
+
+/* For posix fcntl() and `l_type' field of a `struct flock' for lockf(). */
+#define F_RDLCK 1 /* Read lock. */
+#define F_WRLCK 2 /* Write lock. */
+#define F_UNLCK 3 /* Remove lock. */
+
+struct flock
+ {
+ short int l_type; /* Type of lock: F_RDLCK, F_WRLCK, or F_UNLCK. */
+ short int l_whence; /* Where `l_start' is relative to (like `lseek'). */
+#ifndef __USE_FILE_OFFSET64
+ __off_t l_start; /* Offset where the lock begins. */
+ __off_t l_len; /* Size of the locked area; zero means until EOF. */
+#else
+ __off64_t l_start; /* Offset where the lock begins. */
+ __off64_t l_len; /* Size of the locked area; zero means until EOF. */
+#endif
+ __pid_t l_pid; /* Process holding the lock. */
+ short int __glibc_reserved;
+ };
+
+#ifdef __USE_LARGEFILE64
+struct flock64
+ {
+ short int l_type; /* Type of lock: F_RDLCK, F_WRLCK, or F_UNLCK. */
+ short int l_whence; /* Where `l_start' is relative to (like `lseek'). */
+ __off64_t l_start; /* Offset where the lock begins. */
+ __off64_t l_len; /* Size of the locked area; zero means until EOF. */
+ __pid_t l_pid; /* Process holding the lock. */
+ short int __glibc_reserved;
+ };
+#endif
+
+/* Include generic Linux declarations. */
+#include <bits/fcntl-linux.h>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/inotify.h b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/inotify.h
new file mode 100644
index 0000000000..1130da9646
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/inotify.h
@@ -0,0 +1,29 @@
+/* Copyright (C) 2005-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_INOTIFY_H
+# error "Never use <bits/inotify.h> directly; include <sys/inotify.h> instead."
+#endif
+
+/* Flags for the parameter of inotify_init1. */
+enum
+ {
+ IN_CLOEXEC = 0x400000,
+#define IN_CLOEXEC IN_CLOEXEC
+ IN_NONBLOCK = 0x004000
+#define IN_NONBLOCK IN_NONBLOCK
+ };
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/ioctls.h b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/ioctls.h
new file mode 100644
index 0000000000..07796fd0ac
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/ioctls.h
@@ -0,0 +1,36 @@
+/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_IOCTL_H
+# error "Never use <bits/ioctls.h> directly; include <sys/ioctl.h> instead."
+#endif
+
+/* Use the definitions from the kernel header files. */
+#include <asm/ioctls.h>
+
+/* Oh well, this is necessary since the kernel data structure is
+ different from the user-level version. */
+#undef TCGETS
+#undef TCSETS
+#undef TCSETSW
+#undef TCSETSF
+#define TCGETS _IOR ('T', 8, char[36])
+#define TCSETS _IOW ('T', 9, char[36])
+#define TCSETSW _IOW ('T', 10, char[36])
+#define TCSETSF _IOW ('T', 11, char[36])
+
+#include <linux/sockios.h>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/ipc.h b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/ipc.h
new file mode 100644
index 0000000000..9e4d1517f1
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/ipc.h
@@ -0,0 +1,61 @@
+/* Copyright (C) 1995-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_IPC_H
+# error "Never use <bits/ipc.h> directly; include <sys/ipc.h> instead."
+#endif
+
+#include <bits/types.h>
+#include <bits/wordsize.h>
+
+/* Mode bits for `msgget', `semget', and `shmget'. */
+#define IPC_CREAT 01000 /* Create key if key does not exist. */
+#define IPC_EXCL 02000 /* Fail if key exists. */
+#define IPC_NOWAIT 04000 /* Return error on wait. */
+
+/* Control commands for `msgctl', `semctl', and `shmctl'. */
+#define IPC_RMID 0 /* Remove identifier. */
+#define IPC_SET 1 /* Set `ipc_perm' options. */
+#define IPC_STAT 2 /* Get `ipc_perm' options. */
+#ifdef __USE_GNU
+# define IPC_INFO 3 /* See ipcs. */
+#endif
+
+/* Special key values. */
+#define IPC_PRIVATE ((__key_t) 0) /* Private key. */
+
+
+/* Data structure used to pass permission information to IPC operations. */
+struct ipc_perm
+ {
+ __key_t __key; /* Key. */
+ __uid_t uid; /* Owner's user ID. */
+ __gid_t gid; /* Owner's group ID. */
+ __uid_t cuid; /* Creator's user ID. */
+ __gid_t cgid; /* Creator's group ID. */
+#if __WORDSIZE == 32
+ unsigned short int __pad1;
+ unsigned short int mode; /* Read/write permission. */
+ unsigned short int __pad2;
+#else
+ __mode_t mode; /* Read/write permission. */
+ unsigned short int __pad1;
+#endif
+ unsigned short int __seq; /* Sequence number. */
+ __extension__ unsigned long long int __glibc_reserved1;
+ __extension__ unsigned long long int __glibc_reserved2;
+ };
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/local_lim.h b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/local_lim.h
new file mode 100644
index 0000000000..090fc6dca1
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/local_lim.h
@@ -0,0 +1,99 @@
+/* Minimum guaranteed maximum values for system limits. Linux/SPARC 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 Library General Public License as
+ published by the Free Software Foundation; either version 2 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with the GNU C Library; see the file COPYING.LIB. If
+ not, see <http://www.gnu.org/licenses/>. */
+
+/* The kernel header pollutes the namespace with the NR_OPEN symbol
+ and defines LINK_MAX although filesystems have different maxima. A
+ similar thing is true for OPEN_MAX: the limit can be changed at
+ runtime and therefore the macro must not be defined. Remove this
+ after including the header if necessary. */
+#ifndef NR_OPEN
+# define __undef_NR_OPEN
+#endif
+#ifndef LINK_MAX
+# define __undef_LINK_MAX
+#endif
+#ifndef OPEN_MAX
+# define __undef_OPEN_MAX
+#endif
+#ifndef ARG_MAX
+# define __undef_ARG_MAX
+#endif
+
+/* The kernel sources contain a file with all the needed information. */
+#include <linux/limits.h>
+
+/* Have to remove NR_OPEN? */
+#ifdef __undef_NR_OPEN
+# undef NR_OPEN
+# undef __undef_NR_OPEN
+#endif
+/* Have to remove LINK_MAX? */
+#ifdef __undef_LINK_MAX
+# undef LINK_MAX
+# undef __undef_LINK_MAX
+#endif
+/* Have to remove OPEN_MAX? */
+#ifdef __undef_OPEN_MAX
+# undef OPEN_MAX
+# undef __undef_OPEN_MAX
+#endif
+/* Have to remove ARG_MAX? */
+#ifdef __undef_ARG_MAX
+# undef ARG_MAX
+# undef __undef_ARG_MAX
+#endif
+
+/* The number of data keys per process. */
+#define _POSIX_THREAD_KEYS_MAX 128
+/* This is the value this implementation supports. */
+#define PTHREAD_KEYS_MAX 1024
+
+/* Controlling the iterations of destructors for thread-specific data. */
+#define _POSIX_THREAD_DESTRUCTOR_ITERATIONS 4
+/* Number of iterations this implementation does. */
+#define PTHREAD_DESTRUCTOR_ITERATIONS _POSIX_THREAD_DESTRUCTOR_ITERATIONS
+
+/* The number of threads per process. */
+#define _POSIX_THREAD_THREADS_MAX 64
+/* We have no predefined limit on the number of threads. */
+#undef PTHREAD_THREADS_MAX
+
+/* Maximum amount by which a process can descrease its asynchronous I/O
+ priority level. */
+#define AIO_PRIO_DELTA_MAX 20
+
+/* Minimum size for a thread. We are free to choose a reasonable value. */
+#define PTHREAD_STACK_MIN 24576
+
+/* Maximum number of timer expiration overruns. */
+#define DELAYTIMER_MAX 2147483647
+
+/* Maximum tty name length. */
+#define TTY_NAME_MAX 32
+
+/* Maximum login name length. This is arbitrary. */
+#define LOGIN_NAME_MAX 256
+
+/* Maximum host name length. */
+#define HOST_NAME_MAX 64
+
+/* Maximum message queue priority level. */
+#define MQ_PRIO_MAX 32768
+
+/* Maximum value the semaphore can have. */
+#define SEM_VALUE_MAX (2147483647)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/long-double.h b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/long-double.h
new file mode 100644
index 0000000000..094e05124b
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/long-double.h
@@ -0,0 +1,26 @@
+/* Properties of long double type. SPARC version.
+ Copyright (C) 2016-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License 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 <bits/wordsize.h>
+
+#if !defined __NO_LONG_DOUBLE_MATH && __WORDSIZE == 32
+# define __LONG_DOUBLE_MATH_OPTIONAL 1
+# ifndef __LONG_DOUBLE_128__
+# define __NO_LONG_DOUBLE_MATH 1
+# endif
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/mman.h b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/mman.h
new file mode 100644
index 0000000000..d20361f5ec
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/mman.h
@@ -0,0 +1,53 @@
+/* Definitions for POSIX memory map interface. Linux/SPARC version.
+ Copyright (C) 1997-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_MMAN_H
+# error "Never use <bits/mman.h> directly; include <sys/mman.h> instead."
+#endif
+
+/* The following definitions basically come from the kernel headers.
+ But the kernel header is not namespace clean. */
+
+
+/* These are Linux-specific. */
+#ifdef __USE_MISC
+# define MAP_GROWSDOWN 0x0200 /* Stack-like segment. */
+# define MAP_DENYWRITE 0x0800 /* ETXTBSY */
+# define MAP_EXECUTABLE 0x1000 /* Mark it as an executable. */
+# define MAP_LOCKED 0x0100 /* Lock the mapping. */
+# define MAP_NORESERVE 0x0040 /* Don't check for reservations. */
+# define _MAP_NEW 0x80000000 /* Binary compatibility with SunOS. */
+# define MAP_POPULATE 0x8000 /* Populate (prefault) pagetables. */
+# define MAP_NONBLOCK 0x10000 /* Do not block on IO. */
+# define MAP_STACK 0x20000 /* Allocation is for a stack. */
+# define MAP_HUGETLB 0x40000 /* Create huge page mapping. */
+#endif
+
+/* Flags for `mlockall'. */
+#define MCL_CURRENT 0x2000 /* Lock all currently mapped pages. */
+#define MCL_FUTURE 0x4000 /* Lock all additions to address
+ space. */
+#define MCL_ONFAULT 0x8000 /* Lock all pages that are
+ faulted in. */
+/* Include generic Linux declarations. */
+#include <bits/mman-linux.h>
+
+/* Other flags. */
+#ifdef __USE_MISC
+# define MAP_RENAME MAP_ANONYMOUS
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/msq.h b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/msq.h
new file mode 100644
index 0000000000..79572212cb
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/msq.h
@@ -0,0 +1,84 @@
+/* Copyright (C) 1995-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_MSG_H
+# error "Never use <bits/msq.h> directly; include <sys/msg.h> instead."
+#endif
+
+#include <bits/types.h>
+#include <bits/wordsize.h>
+
+/* Define options for message queue functions. */
+#define MSG_NOERROR 010000 /* no error if message is too big */
+#ifdef __USE_GNU
+# define MSG_EXCEPT 020000 /* recv any msg except of specified type */
+# define MSG_COPY 040000 /* copy (not remove) all queue messages */
+#endif
+
+/* Types used in the structure definition. */
+typedef unsigned long int msgqnum_t;
+typedef unsigned long int msglen_t;
+
+
+/* Structure of record for one message inside the kernel.
+ The type `struct msg' is opaque. */
+struct msqid_ds
+{
+ struct ipc_perm msg_perm; /* structure describing operation permission */
+#if __WORDSIZE == 32
+ unsigned int __pad1;
+#endif
+ __time_t msg_stime; /* time of last msgsnd command */
+#if __WORDSIZE == 32
+ unsigned int __pad2;
+#endif
+ __time_t msg_rtime; /* time of last msgrcv command */
+#if __WORDSIZE == 32
+ unsigned int __pad3;
+#endif
+ __time_t msg_ctime; /* time of last change */
+ unsigned long int __msg_cbytes; /* current number of bytes on queue */
+ msgqnum_t msg_qnum; /* number of messages currently on queue */
+ msglen_t msg_qbytes; /* max number of bytes allowed on queue */
+ __pid_t msg_lspid; /* pid of last msgsnd() */
+ __pid_t msg_lrpid; /* pid of last msgrcv() */
+ unsigned long int __glibc_reserved1;
+ unsigned long int __glibc_reserved2;
+};
+
+#ifdef __USE_MISC
+
+# define msg_cbytes __msg_cbytes
+
+/* ipcs ctl commands */
+# define MSG_STAT 11
+# define MSG_INFO 12
+
+/* buffer for msgctl calls IPC_INFO, MSG_INFO */
+struct msginfo
+ {
+ int msgpool;
+ int msgmap;
+ int msgmax;
+ int msgmnb;
+ int msgmni;
+ int msgssz;
+ int msgtql;
+ unsigned short int msgseg;
+ };
+
+#endif /* __USE_MISC */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/poll.h b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/poll.h
new file mode 100644
index 0000000000..ace1594786
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/poll.h
@@ -0,0 +1,49 @@
+/* Copyright (C) 1997-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_POLL_H
+# error "Never use <bits/poll.h> directly; include <sys/poll.h> instead."
+#endif
+
+/* Event types that can be polled for. These bits may be set in `events'
+ to indicate the interesting event types; they will appear in `revents'
+ to indicate the status of the file descriptor. */
+#define POLLIN 0x001 /* There is data to read. */
+#define POLLPRI 0x002 /* There is urgent data to read. */
+#define POLLOUT 0x004 /* Writing now will not block. */
+
+#if defined __USE_XOPEN || defined __USE_XOPEN2K8
+/* These values are defined in XPG4.2. */
+# define POLLRDNORM 0x040 /* Normal data may be read. */
+# define POLLRDBAND 0x080 /* Priority data may be read. */
+# define POLLWRNORM POLLOUT /* Writing now will not block. */
+# define POLLWRBAND 0x100 /* Priority data may be written. */
+#endif
+
+#ifdef __USE_GNU
+/* These are extensions for Linux. */
+# define POLLMSG 0x200
+# define POLLREMOVE 0x400
+# define POLLRDHUP 0x800
+#endif
+
+/* Event types always implicitly polled for. These bits need not be set in
+ `events', but they will appear in `revents' to indicate the status of
+ the file descriptor. */
+#define POLLERR 0x008 /* Error condition. */
+#define POLLHUP 0x010 /* Hung up. */
+#define POLLNVAL 0x020 /* Invalid polling request. */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/resource.h b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/resource.h
new file mode 100644
index 0000000000..6b65d3aac7
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/resource.h
@@ -0,0 +1,280 @@
+/* Bit values & structures for resource limits. Linux/SPARC version.
+ Copyright (C) 1994-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_RESOURCE_H
+# error "Never use <bits/resource.h> directly; include <sys/resource.h> instead."
+#endif
+
+#include <bits/types.h>
+
+/* Transmute defines to enumerations. The macro re-definitions are
+ necessary because some programs want to test for operating system
+ features with #ifdef RUSAGE_SELF. In ISO C the reflexive
+ definition is a no-op. */
+
+/* Kinds of resource limit. */
+enum __rlimit_resource
+{
+ /* Per-process CPU limit, in seconds. */
+ RLIMIT_CPU = 0,
+#define RLIMIT_CPU RLIMIT_CPU
+
+ /* Largest file that can be created, in bytes. */
+ RLIMIT_FSIZE = 1,
+#define RLIMIT_FSIZE RLIMIT_FSIZE
+
+ /* Maximum size of data segment, in bytes. */
+ RLIMIT_DATA = 2,
+#define RLIMIT_DATA RLIMIT_DATA
+
+ /* Maximum size of stack segment, in bytes. */
+ RLIMIT_STACK = 3,
+#define RLIMIT_STACK RLIMIT_STACK
+
+ /* Largest core file that can be created, in bytes. */
+ RLIMIT_CORE = 4,
+#define RLIMIT_CORE RLIMIT_CORE
+
+ /* Largest resident set size, in bytes.
+ This affects swapping; processes that are exceeding their
+ resident set size will be more likely to have physical memory
+ taken from them. */
+ __RLIMIT_RSS = 5,
+#define RLIMIT_RSS __RLIMIT_RSS
+
+ /* Number of open files. */
+ RLIMIT_NOFILE = 6,
+ __RLIMIT_OFILE = RLIMIT_NOFILE, /* BSD name for same. */
+#define RLIMIT_NOFILE RLIMIT_NOFILE
+#define RLIMIT_OFILE __RLIMIT_OFILE
+
+ /* Address space limit (?) */
+ RLIMIT_AS = 9,
+#define RLIMIT_AS RLIMIT_AS
+
+ /* Number of processes. */
+ __RLIMIT_NPROC = 7,
+#define RLIMIT_NPROC __RLIMIT_NPROC
+
+ /* Locked-in-memory address space. */
+ __RLIMIT_MEMLOCK = 8,
+#define RLIMIT_MEMLOCK __RLIMIT_MEMLOCK
+
+ /* Maximum number of file locks. */
+ __RLIMIT_LOCKS = 10,
+#define RLIMIT_LOCKS __RLIMIT_LOCKS
+
+ /* Maximum number of pending signals. */
+ __RLIMIT_SIGPENDING = 11,
+#define RLIMIT_SIGPENDING __RLIMIT_SIGPENDING
+
+ /* Maximum bytes in POSIX message queues. */
+ __RLIMIT_MSGQUEUE = 12,
+#define RLIMIT_MSGQUEUE __RLIMIT_MSGQUEUE
+
+ /* Maximum nice priority allowed to raise to.
+ Nice levels 19 .. -20 correspond to 0 .. 39
+ values of this resource limit. */
+ __RLIMIT_NICE = 13,
+#define RLIMIT_NICE __RLIMIT_NICE
+
+ /* Maximum realtime priority allowed for non-priviledged
+ processes. */
+ __RLIMIT_RTPRIO = 14,
+#define RLIMIT_RTPRIO __RLIMIT_RTPRIO
+
+ /* Maximum CPU time in µs that a process scheduled under a real-time
+ scheduling policy may consume without making a blocking system
+ call before being forcibly descheduled. */
+ __RLIMIT_RTTIME = 15,
+#define RLIMIT_RTTIME __RLIMIT_RTTIME
+
+ __RLIMIT_NLIMITS = 16,
+ __RLIM_NLIMITS = __RLIMIT_NLIMITS
+#define RLIMIT_NLIMITS __RLIMIT_NLIMITS
+#define RLIM_NLIMITS __RLIM_NLIMITS
+};
+
+/* Value to indicate that there is no limit. */
+#if __WORDSIZE == 64
+
+#ifndef __USE_FILE_OFFSET64
+# define RLIM_INFINITY ((unsigned long int)(~0UL))
+#else
+# define RLIM_INFINITY 0xffffffffffffffffuLL
+#endif
+
+#ifdef __USE_LARGEFILE64
+# define RLIM64_INFINITY 0xffffffffffffffffuLL
+#endif
+
+#else
+
+#ifndef __USE_FILE_OFFSET64
+# define RLIM_INFINITY ((long int)(~0UL >> 1))
+#else
+# define RLIM_INFINITY 0xffffffffffffffffLL
+#endif
+
+#ifdef __USE_LARGEFILE64
+# define RLIM64_INFINITY 0xffffffffffffffffLL
+#endif
+
+#endif
+
+/* We can represent all limits. */
+#define RLIM_SAVED_MAX RLIM_INFINITY
+#define RLIM_SAVED_CUR RLIM_INFINITY
+
+
+/* Type for resource quantity measurement. */
+#ifndef __USE_FILE_OFFSET64
+typedef __rlim_t rlim_t;
+#else
+typedef __rlim64_t rlim_t;
+#endif
+#ifdef __USE_LARGEFILE64
+typedef __rlim64_t rlim64_t;
+#endif
+
+struct rlimit
+ {
+ /* The current (soft) limit. */
+ rlim_t rlim_cur;
+ /* The hard limit. */
+ rlim_t rlim_max;
+ };
+
+#ifdef __USE_LARGEFILE64
+struct rlimit64
+ {
+ /* The current (soft) limit. */
+ rlim64_t rlim_cur;
+ /* The hard limit. */
+ rlim64_t rlim_max;
+ };
+#endif
+
+/* Whose usage statistics do you want? */
+enum __rusage_who
+{
+ /* The calling process. */
+ RUSAGE_SELF = 0,
+#define RUSAGE_SELF RUSAGE_SELF
+
+ /* All of its terminated child processes. */
+ RUSAGE_CHILDREN = -1
+#define RUSAGE_CHILDREN RUSAGE_CHILDREN
+
+#ifdef __USE_GNU
+ ,
+ /* The calling thread. */
+ RUSAGE_THREAD = 1
+# define RUSAGE_THREAD RUSAGE_THREAD
+ /* Name for the same functionality on Solaris. */
+# define RUSAGE_LWP RUSAGE_THREAD
+#endif
+};
+
+#include <bits/types/struct_timeval.h>
+
+/* Structure which says how much of each resource has been used. */
+struct rusage
+ {
+ /* Total amount of user time used. */
+ struct timeval ru_utime;
+ /* Total amount of system time used. */
+ struct timeval ru_stime;
+ /* Maximum resident set size (in kilobytes). */
+ long int ru_maxrss;
+ /* Amount of sharing of text segment memory
+ with other processes (kilobyte-seconds). */
+ long int ru_ixrss;
+ /* Amount of data segment memory used (kilobyte-seconds). */
+ long int ru_idrss;
+ /* Amount of stack memory used (kilobyte-seconds). */
+ long int ru_isrss;
+ /* Number of soft page faults (i.e. those serviced by reclaiming
+ a page from the list of pages awaiting reallocation. */
+ long int ru_minflt;
+ /* Number of hard page faults (i.e. those that required I/O). */
+ long int ru_majflt;
+ /* Number of times a process was swapped out of physical memory. */
+ long int ru_nswap;
+ /* Number of input operations via the file system. Note: This
+ and `ru_oublock' do not include operations with the cache. */
+ long int ru_inblock;
+ /* Number of output operations via the file system. */
+ long int ru_oublock;
+ /* Number of IPC messages sent. */
+ long int ru_msgsnd;
+ /* Number of IPC messages received. */
+ long int ru_msgrcv;
+ /* Number of signals delivered. */
+ long int ru_nsignals;
+ /* Number of voluntary context switches, i.e. because the process
+ gave up the process before it had to (usually to wait for some
+ resource to be available). */
+ long int ru_nvcsw;
+ /* Number of involuntary context switches, i.e. a higher priority process
+ became runnable or the current process used up its time slice. */
+ long int ru_nivcsw;
+ };
+
+/* Priority limits. */
+#define PRIO_MIN -20 /* Minimum priority a process can have. */
+#define PRIO_MAX 20 /* Maximum priority a process can have. */
+
+/* The type of the WHICH argument to `getpriority' and `setpriority',
+ indicating what flavor of entity the WHO argument specifies. */
+enum __priority_which
+{
+ PRIO_PROCESS = 0, /* WHO is a process ID. */
+#define PRIO_PROCESS PRIO_PROCESS
+ PRIO_PGRP = 1, /* WHO is a process group ID. */
+#define PRIO_PGRP PRIO_PGRP
+ PRIO_USER = 2 /* WHO is a user ID. */
+#define PRIO_USER PRIO_USER
+};
+
+__BEGIN_DECLS
+
+#ifdef __USE_GNU
+/* Modify and return resource limits of a process atomically. */
+# ifndef __USE_FILE_OFFSET64
+extern int prlimit (__pid_t __pid, enum __rlimit_resource __resource,
+ const struct rlimit *__new_limit,
+ struct rlimit *__old_limit) __THROW;
+# else
+# ifdef __REDIRECT_NTH
+extern int __REDIRECT_NTH (prlimit, (__pid_t __pid,
+ enum __rlimit_resource __resource,
+ const struct rlimit *__new_limit,
+ struct rlimit *__old_limit), prlimit64);
+# else
+# define prlimit prlimit64
+# endif
+# endif
+# ifdef __USE_LARGEFILE64
+extern int prlimit64 (__pid_t __pid, enum __rlimit_resource __resource,
+ const struct rlimit64 *__new_limit,
+ struct rlimit64 *__old_limit) __THROW;
+# endif
+#endif
+
+__END_DECLS
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/sem.h b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/sem.h
new file mode 100644
index 0000000000..c3cf059eb8
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/sem.h
@@ -0,0 +1,91 @@
+/* Copyright (C) 1995-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_SEM_H
+# error "Never include <bits/sem.h> directly; use <sys/sem.h> instead."
+#endif
+
+#include <sys/types.h>
+#include <bits/wordsize.h>
+
+/* Flags for `semop'. */
+#define SEM_UNDO 0x1000 /* undo the operation on exit */
+
+/* Commands for `semctl'. */
+#define GETPID 11 /* get sempid */
+#define GETVAL 12 /* get semval */
+#define GETALL 13 /* get all semval's */
+#define GETNCNT 14 /* get semncnt */
+#define GETZCNT 15 /* get semzcnt */
+#define SETVAL 16 /* set semval */
+#define SETALL 17 /* set all semval's */
+
+
+/* Data structure describing a set of semaphores. */
+struct semid_ds
+{
+ struct ipc_perm sem_perm; /* operation permission struct */
+#if __WORDSIZE == 32
+ unsigned int __pad1;
+#endif
+ __time_t sem_otime; /* last semop() time */
+#if __WORDSIZE == 32
+ unsigned int __pad2;
+#endif
+ __time_t sem_ctime; /* last time changed by semctl() */
+ unsigned long int sem_nsems; /* number of semaphores in set */
+ unsigned long int __glibc_reserved1;
+ unsigned long int __glibc_reserved2;
+};
+
+/* The user should define a union like the following to use it for arguments
+ for `semctl'.
+
+ union semun
+ {
+ int val; <= value for SETVAL
+ struct semid_ds *buf; <= buffer for IPC_STAT & IPC_SET
+ unsigned short int *array; <= array for GETALL & SETALL
+ struct seminfo *__buf; <= buffer for IPC_INFO
+ };
+
+ Previous versions of this file used to define this union but this is
+ incorrect. One can test the macro _SEM_SEMUN_UNDEFINED to see whether
+ one must define the union or not. */
+#define _SEM_SEMUN_UNDEFINED 1
+
+#ifdef __USE_MISC
+
+/* ipcs ctl cmds */
+# define SEM_STAT 18
+# define SEM_INFO 19
+
+struct seminfo
+{
+ int semmap;
+ int semmni;
+ int semmns;
+ int semmnu;
+ int semmsl;
+ int semopm;
+ int semume;
+ int semusz;
+ int semvmx;
+ int semaem;
+};
+
+#endif /* __USE_MISC */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/setjmp.h b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/setjmp.h
new file mode 100644
index 0000000000..5e92e829d5
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/setjmp.h
@@ -0,0 +1,67 @@
+/* Copyright (C) 1997-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _BITS_SETJMP_H
+#define _BITS_SETJMP_H 1
+
+#if !defined _SETJMP_H && !defined _PTHREAD_H
+# error "Never include <bits/setjmp.h> directly; use <setjmp.h> instead."
+#endif
+
+#include <bits/wordsize.h>
+
+#if __WORDSIZE == 64
+
+#ifndef _ASM
+typedef struct __sparc64_jmp_buf
+ {
+ struct __sparc64_jmp_buf *__uc_link;
+ unsigned long __uc_flags;
+ unsigned long __uc_sigmask;
+ struct __sparc64_jmp_buf_mcontext
+ {
+ unsigned long __mc_gregs[19];
+ unsigned long __mc_fp;
+ unsigned long __mc_i7;
+ struct __sparc64_jmp_buf_fpu
+ {
+ union
+ {
+ unsigned int __sregs[32];
+ unsigned long __dregs[32];
+ long double __qregs[16];
+ } __mcfpu_fpregs;
+ unsigned long __mcfpu_fprs;
+ unsigned long __mcfpu_gsr;
+ void *__mcfpu_fq;
+ unsigned char __mcfpu_qcnt;
+ unsigned char __mcfpu_qentsz;
+ unsigned char __mcfpu_enab;
+ } __mc_fpregs;
+ } __uc_mcontext;
+ } __jmp_buf[1];
+#endif
+
+#else
+
+#ifndef _ASM
+typedef int __jmp_buf[3];
+#endif
+
+#endif
+
+#endif /* bits/setjmp.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/shm.h b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/shm.h
new file mode 100644
index 0000000000..c7857cc4fa
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/shm.h
@@ -0,0 +1,110 @@
+/* Copyright (C) 1995-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_SHM_H
+# error "Never include <bits/shm.h> directly; use <sys/shm.h> instead."
+#endif
+
+#include <bits/types.h>
+#include <bits/wordsize.h>
+
+/* Permission flag for shmget. */
+#define SHM_R 0400 /* or S_IRUGO from <linux/stat.h> */
+#define SHM_W 0200 /* or S_IWUGO from <linux/stat.h> */
+
+/* Flags for `shmat'. */
+#define SHM_RDONLY 010000 /* attach read-only else read-write */
+#define SHM_RND 020000 /* round attach address to SHMLBA */
+#define SHM_REMAP 040000 /* take-over region on attach */
+#define SHM_EXEC 0100000 /* execution access */
+
+/* Commands for `shmctl'. */
+#define SHM_LOCK 11 /* lock segment (root only) */
+#define SHM_UNLOCK 12 /* unlock segment (root only) */
+
+__BEGIN_DECLS
+
+/* Segment low boundary address multiple. */
+#define SHMLBA (__getshmlba ())
+extern int __getshmlba (void) __attribute__ ((__const__));
+
+
+/* Type to count number of attaches. */
+typedef unsigned long int shmatt_t;
+
+/* Data structure describing a shared memory segment. */
+struct shmid_ds
+ {
+ struct ipc_perm shm_perm; /* operation permission struct */
+#if __WORDSIZE == 32
+ unsigned int __pad1;
+#endif
+ __time_t shm_atime; /* time of last shmat() */
+#if __WORDSIZE == 32
+ unsigned int __pad2;
+#endif
+ __time_t shm_dtime; /* time of last shmdt() */
+#if __WORDSIZE == 32
+ unsigned int __pad3;
+#endif
+ __time_t shm_ctime; /* time of last change by shmctl() */
+ size_t shm_segsz; /* size of segment in bytes */
+ __pid_t shm_cpid; /* pid of creator */
+ __pid_t shm_lpid; /* pid of last shmop */
+ shmatt_t shm_nattch; /* number of current attaches */
+ unsigned long int __glibc_reserved1;
+ unsigned long int __glibc_reserved2;
+ };
+
+#ifdef __USE_MISC
+
+/* ipcs ctl commands */
+# define SHM_STAT 13
+# define SHM_INFO 14
+
+/* shm_mode upper byte flags */
+# define SHM_DEST 01000 /* segment will be destroyed on last detach */
+# define SHM_LOCKED 02000 /* segment will not be swapped */
+# define SHM_HUGETLB 04000 /* segment is mapped via hugetlb */
+# define SHM_NORESERVE 010000 /* don't check for reservations */
+
+struct shminfo
+ {
+ unsigned long shmmax;
+ unsigned long shmmin;
+ unsigned long shmmni;
+ unsigned long shmseg;
+ unsigned long shmall;
+ unsigned long __glibc_reserved1;
+ unsigned long __glibc_reserved2;
+ unsigned long __glibc_reserved3;
+ unsigned long __glibc_reserved4;
+ };
+
+struct shm_info
+ {
+ int used_ids;
+ unsigned long int shm_tot; /* total allocated shm */
+ unsigned long int shm_rss; /* total resident shm */
+ unsigned long int shm_swp; /* total swapped shm */
+ unsigned long int swap_attempts;
+ unsigned long int swap_successes;
+ };
+
+#endif /* __USE_MISC */
+
+__END_DECLS
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/sigaction.h b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/sigaction.h
new file mode 100644
index 0000000000..6ab47f416c
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/sigaction.h
@@ -0,0 +1,82 @@
+/* The proper definitions for Linux/SPARC sigaction.
+ Copyright (C) 1996-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SIGNAL_H
+# error "Never include <bits/sigaction.h> directly; use <signal.h> instead."
+#endif
+
+#include <bits/wordsize.h>
+
+/* Structure describing the action to be taken when a signal arrives. */
+struct sigaction
+ {
+ /* Signal handler. */
+#ifdef __USE_POSIX199309
+ union
+ {
+ /* Used if SA_SIGINFO is not set. */
+ __sighandler_t sa_handler;
+ /* Used if SA_SIGINFO is set. */
+ void (*sa_sigaction) (int, siginfo_t *, void *);
+ }
+ __sigaction_handler;
+# define sa_handler __sigaction_handler.sa_handler
+# define sa_sigaction __sigaction_handler.sa_sigaction
+#else
+ __sighandler_t sa_handler;
+#endif
+
+ /* Additional set of signals to be blocked. */
+ __sigset_t sa_mask;
+
+ /* Special flags. */
+#if __WORDSIZE == 64
+ int __glibc_reserved0;
+#endif
+ int sa_flags;
+
+ /* Not used by Linux/Sparc yet. */
+ void (*sa_restorer) (void);
+ };
+
+
+/* Bits in `sa_flags'. */
+#define SA_NOCLDSTOP 0x00000008 /* Don't send SIGCHLD when children stop. */
+#define SA_NOCLDWAIT 0x00000100 /* Don't create zombie on child death. */
+#define SA_SIGINFO 0x00000200 /* Invoke signal-catching function with
+ three arguments instead of one. */
+#if defined __USE_UNIX98 || defined __USE_MISC
+# define SA_ONSTACK 0x00000001 /* Use signal stack by using `sa_restorer'. */
+#endif
+#if defined __USE_UNIX98 || defined __USE_XOPEN2K8
+# define SA_RESTART 0x00000002 /* Restart syscall on signal return. */
+# define SA_INTERRUPT 0x00000010 /* Historical no-op. */
+# define SA_NOMASK 0x00000020 /* Don't automatically block the signal when
+ its handler is being executed. */
+# define SA_ONESHOT 0x00000004 /* Reset to SIG_DFL on entry to handler. */
+
+/* Some aliases for the SA_ constants. */
+# define SA_NODEFER SA_NOMASK
+# define SA_RESETHAND SA_ONESHOT
+# define SA_STACK SA_ONSTACK
+#endif
+
+/* Values for the HOW argument to `sigprocmask'. */
+#define SIG_BLOCK 1 /* Block signals. */
+#define SIG_UNBLOCK 2 /* Unblock signals. */
+#define SIG_SETMASK 4 /* Set the set of blocked signals. */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/sigcontext.h b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/sigcontext.h
new file mode 100644
index 0000000000..78e09a5809
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/sigcontext.h
@@ -0,0 +1,82 @@
+/* Copyright (C) 2000-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _BITS_SIGCONTEXT_H
+#define _BITS_SIGCONTEXT_H 1
+
+#if !defined _SIGNAL_H && !defined _SYS_UCONTEXT_H
+# error "Never use <bits/sigcontext.h> directly; include <signal.h> instead."
+#endif
+
+#include <bits/wordsize.h>
+
+#if __WORDSIZE == 32
+
+/* It is quite hard to choose what to put here, because
+ Linux/sparc32 had at least 3 totally incompatible
+ signal stack layouts.
+ This one is for the "new" style signals, which are
+ now delivered unless SA_SIGINFO is requested. */
+
+struct sigcontext
+ {
+ struct
+ {
+ unsigned int psr;
+ unsigned int pc;
+ unsigned int npc;
+ unsigned int y;
+ unsigned int u_regs[16]; /* globals and ins */
+ } si_regs;
+ int si_mask;
+ };
+
+#else /* sparc64 */
+
+typedef struct
+ {
+ unsigned int si_float_regs [64];
+ unsigned long si_fsr;
+ unsigned long si_gsr;
+ unsigned long si_fprs;
+ } __siginfo_fpu_t;
+
+struct sigcontext
+ {
+ char sigc_info[128];
+ struct
+ {
+ unsigned long u_regs[16]; /* globals and ins */
+ unsigned long tstate;
+ unsigned long tpc;
+ unsigned long tnpc;
+ unsigned int y;
+ unsigned int fprs;
+ } sigc_regs;
+ __siginfo_fpu_t * sigc_fpu_save;
+ struct
+ {
+ void * ss_sp;
+ int ss_flags;
+ unsigned long ss_size;
+ } sigc_stack;
+ unsigned long sigc_mask;
+};
+
+#endif /* sparc64 */
+
+#endif /* bits/sigcontext.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/siginfo-arch.h b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/siginfo-arch.h
new file mode 100644
index 0000000000..9f79715ebe
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/siginfo-arch.h
@@ -0,0 +1,12 @@
+/* Architecture-specific adjustments to siginfo_t. SPARC version. */
+#ifndef _BITS_SIGINFO_ARCH_H
+#define _BITS_SIGINFO_ARCH_H 1
+
+#define __SI_BAND_TYPE int
+
+#define __SI_SIGFAULT_ADDL \
+ int _si_trapno;
+
+#define si_trapno _sifields._sigfault._si_trapno
+
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/siginfo-consts-arch.h b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/siginfo-consts-arch.h
new file mode 100644
index 0000000000..721dc9cd43
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/siginfo-consts-arch.h
@@ -0,0 +1,12 @@
+/* Architecture-specific additional siginfo constants. SPARC version. */
+#ifndef _BITS_SIGINFO_CONSTS_ARCH_H
+#define _BITS_SIGINFO_CONSTS_ARCH_H 1
+
+/* `si_code' values for SIGEMT signal. */
+enum
+{
+ EMT_TAGOVF = 1 /* Tag overflow. */
+#define EMT_TAGOVF EMT_TAGOVF
+};
+
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/signalfd.h b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/signalfd.h
new file mode 100644
index 0000000000..6a5bea24b7
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/signalfd.h
@@ -0,0 +1,29 @@
+/* Copyright (C) 2007-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_SIGNALFD_H
+# error "Never use <bits/signalfd.h> directly; include <sys/signalfd.h> instead."
+#endif
+
+/* Flags for signalfd. */
+enum
+ {
+ SFD_CLOEXEC = 0x400000,
+#define SFD_CLOEXEC SFD_CLOEXEC
+ SFD_NONBLOCK = 0x004000
+#define SFD_NONBLOCK SFD_NONBLOCK
+ };
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/signum.h b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/signum.h
new file mode 100644
index 0000000000..a0c5be5fa5
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/signum.h
@@ -0,0 +1,83 @@
+/* Signal number definitions. Linux/SPARC version.
+ Copyright (C) 1996-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifdef _SIGNAL_H
+
+/* Fake signal functions. */
+#define SIG_ERR ((__sighandler_t) -1) /* Error return. */
+#define SIG_DFL ((__sighandler_t) 0) /* Default action. */
+#define SIG_IGN ((__sighandler_t) 1) /* Ignore signal. */
+
+#ifdef __USE_XOPEN
+# define SIG_HOLD ((__sighandler_t) 2) /* Add signal to hold mask. */
+#endif
+
+/*
+ * Linux/SPARC has different signal numbers that Linux/i386: I'm trying
+ * to make it OSF/1 binary compatible, at least for normal binaries.
+ */
+#define SIGHUP 1
+#define SIGINT 2
+#define SIGQUIT 3
+#define SIGILL 4
+#define SIGTRAP 5
+#define SIGABRT 6
+#define SIGIOT 6
+#define SIGEMT 7
+#define SIGFPE 8
+#define SIGKILL 9
+#define SIGBUS 10
+#define SIGSEGV 11
+#define SIGSYS 12
+#define SIGPIPE 13
+#define SIGALRM 14
+#define SIGTERM 15
+#define SIGURG 16
+
+/* SunOS values which deviate from the Linux/i386 ones */
+#define SIGSTOP 17
+#define SIGTSTP 18
+#define SIGCONT 19
+#define SIGCHLD 20
+#define SIGCLD SIGCHLD /* Same as SIGCHLD (System V). */
+#define SIGTTIN 21
+#define SIGTTOU 22
+#define SIGIO 23
+#define SIGPOLL SIGIO /* SysV name for SIGIO */
+#define SIGXCPU 24
+#define SIGXFSZ 25
+#define SIGVTALRM 26
+#define SIGPROF 27
+#define SIGWINCH 28
+#define SIGLOST 29
+#define SIGPWR SIGLOST
+#define SIGUSR1 30
+#define SIGUSR2 31
+
+#define _NSIG 65 /* Biggest signal number + 1
+ (including real-time signals). */
+
+#define SIGRTMIN (__libc_current_sigrtmin ())
+#define SIGRTMAX (__libc_current_sigrtmax ())
+
+/* These are the hard limits of the kernel. These values should not be
+ used directly at user level. */
+#define __SIGRTMIN 32
+#define __SIGRTMAX (_NSIG - 1)
+
+#endif /* <signal.h> included. */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/sigstack.h b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/sigstack.h
new file mode 100644
index 0000000000..74670cb037
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/sigstack.h
@@ -0,0 +1,32 @@
+/* sigstack, sigaltstack definitions.
+ Copyright (C) 1998-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _BITS_SIGSTACK_H
+#define _BITS_SIGSTACK_H 1
+
+#if !defined _SIGNAL_H && !defined _SYS_UCONTEXT_H
+# error "Never include this file directly. Use <signal.h> instead"
+#endif
+
+/* Minimum stack size for a signal handler. */
+#define MINSIGSTKSZ 4096
+
+/* System default stack size. */
+#define SIGSTKSZ 16384
+
+#endif /* bits/sigstack.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/socket_type.h b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/socket_type.h
new file mode 100644
index 0000000000..53fcd0c018
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/socket_type.h
@@ -0,0 +1,55 @@
+/* Define enum __socket_type for Linux/SPARC.
+ Copyright (C) 1991-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_SOCKET_H
+# error "Never include <bits/socket_type.h> directly; use <sys/socket.h> instead."
+#endif
+
+/* Types of sockets. */
+enum __socket_type
+{
+ SOCK_STREAM = 1, /* Sequenced, reliable, connection-based
+ byte streams. */
+#define SOCK_STREAM SOCK_STREAM
+ SOCK_DGRAM = 2, /* Connectionless, unreliable datagrams
+ of fixed maximum length. */
+#define SOCK_DGRAM SOCK_DGRAM
+ SOCK_RAW = 3, /* Raw protocol interface. */
+#define SOCK_RAW SOCK_RAW
+ SOCK_RDM = 4, /* Reliably-delivered messages. */
+#define SOCK_RDM SOCK_RDM
+ SOCK_SEQPACKET = 5, /* Sequenced, reliable, connection-based,
+ datagrams of fixed maximum length. */
+#define SOCK_SEQPACKET SOCK_SEQPACKET
+ SOCK_DCCP = 6, /* Datagram Congestion Control Protocol. */
+#define SOCK_DCCP SOCK_DCCP
+ SOCK_PACKET = 10, /* Linux specific way of getting packets
+ at the dev level. For writing rarp and
+ other similar things on the user level. */
+#define SOCK_PACKET SOCK_PACKET
+
+ /* Flags to be ORed into the type parameter of socket and socketpair and
+ used for the flags parameter of paccept. */
+
+ SOCK_CLOEXEC = 0x400000, /* Atomically set close-on-exec flag for the
+ new descriptor(s). */
+#define SOCK_CLOEXEC SOCK_CLOEXEC
+ SOCK_NONBLOCK = 0x004000 /* Atomically mark descriptor(s) as
+ non-blocking. */
+#define SOCK_NONBLOCK SOCK_NONBLOCK
+};
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/stat.h b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/stat.h
new file mode 100644
index 0000000000..87b1c9d1ca
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/stat.h
@@ -0,0 +1,173 @@
+/* Copyright (C) 1992-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#if !defined _SYS_STAT_H && !defined _FCNTL_H
+# error "Never include <bits/stat.h> directly; use <sys/stat.h> instead."
+#endif
+
+#ifndef _BITS_STAT_H
+#define _BITS_STAT_H 1
+
+/* Versions of the `struct stat' data structure. */
+#define _STAT_VER_LINUX_OLD 1
+#define _STAT_VER_KERNEL 1
+#define _STAT_VER_SVR4 2
+#define _STAT_VER_LINUX 3
+#define _STAT_VER _STAT_VER_LINUX /* The one defined below. */
+
+/* Versions of the `xmknod' interface. */
+#define _MKNOD_VER_LINUX 1
+#define _MKNOD_VER_SVR4 2
+#define _MKNOD_VER _MKNOD_VER_LINUX /* The bits defined below. */
+
+
+struct stat
+ {
+ __dev_t st_dev; /* Device. */
+#if __WORDSIZE == 64 || !defined __USE_FILE_OFFSET64
+ unsigned short int __pad1;
+ __ino_t st_ino; /* File serial number. */
+#else
+ __ino64_t st_ino; /* File serial number. */
+#endif
+ __mode_t st_mode; /* File mode. */
+ __nlink_t st_nlink; /* Link count. */
+ __uid_t st_uid; /* User ID of the file's owner. */
+ __gid_t st_gid; /* Group ID of the file's group.*/
+ __dev_t st_rdev; /* Device number, if device. */
+ unsigned short int __pad2;
+#ifndef __USE_FILE_OFFSET64
+ __off_t st_size; /* Size of file, in bytes. */
+#else
+ __off64_t st_size; /* Size of file, in bytes. */
+#endif
+ __blksize_t st_blksize; /* Optimal block size for I/O. */
+
+#ifndef __USE_FILE_OFFSET64
+ __blkcnt_t st_blocks; /* Number 512-byte blocks allocated. */
+#else
+ __blkcnt64_t st_blocks; /* Number 512-byte blocks allocated. */
+#endif
+#ifdef __USE_XOPEN2K8
+ /* Nanosecond resolution timestamps are stored in a format
+ equivalent to 'struct timespec'. This is the type used
+ whenever possible but the Unix namespace rules do not allow the
+ identifier 'timespec' to appear in the <sys/stat.h> header.
+ Therefore we have to handle the use of this header in strictly
+ standard-compliant sources special. */
+ struct timespec st_atim; /* Time of last access. */
+ struct timespec st_mtim; /* Time of last modification. */
+ struct timespec st_ctim; /* Time of last status change. */
+# define st_atime st_atim.tv_sec /* Backward compatibility. */
+# define st_mtime st_mtim.tv_sec
+# define st_ctime st_ctim.tv_sec
+#else
+ __time_t st_atime; /* Time of last access. */
+ unsigned long int st_atimensec; /* Nscecs of last access. */
+ __time_t st_mtime; /* Time of last modification. */
+ unsigned long int st_mtimensec; /* Nsecs of last modification. */
+ __time_t st_ctime; /* Time of last status change. */
+ unsigned long int st_ctimensec; /* Nsecs of last status change. */
+#endif
+ unsigned long int __glibc_reserved4;
+ unsigned long int __glibc_reserved5;
+ };
+
+#ifdef __USE_LARGEFILE64
+struct stat64
+ {
+ __dev_t st_dev; /* Device. */
+# if __WORDSIZE == 64
+ unsigned short int __pad1;
+# endif
+ __ino64_t st_ino; /* File serial number. */
+ __mode_t st_mode; /* File mode. */
+ __nlink_t st_nlink; /* Link count. */
+ __uid_t st_uid; /* User ID of the file's owner. */
+ __gid_t st_gid; /* Group ID of the file's group.*/
+ __dev_t st_rdev; /* Device number, if device. */
+ unsigned short int __pad2;
+ __off64_t st_size; /* Size of file, in bytes. */
+ __blksize_t st_blksize; /* Optimal block size for I/O. */
+
+ __blkcnt64_t st_blocks; /* Number 512-byte blocks allocated. */
+# ifdef __USE_XOPEN2K8
+ /* Nanosecond resolution timestamps are stored in a format
+ equivalent to 'struct timespec'. This is the type used
+ whenever possible but the Unix namespace rules do not allow the
+ identifier 'timespec' to appear in the <sys/stat.h> header.
+ Therefore we have to handle the use of this header in strictly
+ standard-compliant sources special. */
+ struct timespec st_atim; /* Time of last access. */
+ struct timespec st_mtim; /* Time of last modification. */
+ struct timespec st_ctim; /* Time of last status change. */
+# define st_atime st_atim.tv_sec /* Backward compatibility. */
+# define st_mtime st_mtim.tv_sec
+# define st_ctime st_ctim.tv_sec
+# else
+ __time_t st_atime; /* Time of last access. */
+ unsigned long int st_atimensec; /* Nscecs of last access. */
+ __time_t st_mtime; /* Time of last modification. */
+ unsigned long int st_mtimensec; /* Nsecs of last modification. */
+ __time_t st_ctime; /* Time of last status change. */
+ unsigned long int st_ctimensec; /* Nsecs of last status change. */
+# endif
+ unsigned long int __glibc_reserved4;
+ unsigned long int __glibc_reserved5;
+ };
+#endif
+
+/* Tell code we have these members. */
+#define _STATBUF_ST_BLKSIZE
+#define _STATBUF_ST_RDEV
+/* Nanosecond resolution time values are supported. */
+#define _STATBUF_ST_NSEC
+
+/* Encoding of the file mode. */
+
+#define __S_IFMT 0170000 /* These bits determine file type. */
+
+/* File types. */
+#define __S_IFDIR 0040000 /* Directory. */
+#define __S_IFCHR 0020000 /* Character device. */
+#define __S_IFBLK 0060000 /* Block device. */
+#define __S_IFREG 0100000 /* Regular file. */
+#define __S_IFIFO 0010000 /* FIFO. */
+#define __S_IFLNK 0120000 /* Symbolic link. */
+#define __S_IFSOCK 0140000 /* Socket. */
+
+/* POSIX.1b objects. Note that these macros always evaluate to zero. But
+ they do it by enforcing the correct use of the macros. */
+#define __S_TYPEISMQ(buf) ((buf)->st_mode - (buf)->st_mode)
+#define __S_TYPEISSEM(buf) ((buf)->st_mode - (buf)->st_mode)
+#define __S_TYPEISSHM(buf) ((buf)->st_mode - (buf)->st_mode)
+
+/* Protection bits. */
+
+#define __S_ISUID 04000 /* Set user ID on execution. */
+#define __S_ISGID 02000 /* Set group ID on execution. */
+#define __S_ISVTX 01000 /* Save swapped text after use (sticky). */
+#define __S_IREAD 0400 /* Read by owner. */
+#define __S_IWRITE 0200 /* Write by owner. */
+#define __S_IEXEC 0100 /* Execute by owner. */
+
+#ifdef __USE_ATFILE
+# define UTIME_NOW ((1l << 30) - 1l)
+# define UTIME_OMIT ((1l << 30) - 2l)
+#endif
+
+#endif /* bits/stat.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/termios.h b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/termios.h
new file mode 100644
index 0000000000..82678ea156
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/termios.h
@@ -0,0 +1,225 @@
+/* termios type and macro definitions. Linux/SPARC 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 _TERMIOS_H
+# error "Never include <bits/termios.h> directly; use <termios.h> instead."
+#endif
+
+typedef unsigned char cc_t;
+typedef unsigned int speed_t;
+typedef unsigned int tcflag_t;
+
+#define NCCS 17
+struct termios
+ {
+ tcflag_t c_iflag; /* input mode flags */
+ tcflag_t c_oflag; /* output mode flags */
+ tcflag_t c_cflag; /* control mode flags */
+ tcflag_t c_lflag; /* local mode flags */
+ cc_t c_line; /* line discipline */
+ cc_t c_cc[NCCS]; /* control characters */
+ };
+
+/* c_cc characters */
+#define VINTR 0
+#define VQUIT 1
+#define VERASE 2
+#define VKILL 3
+#define VEOF 4
+#define VEOL 5
+#define VEOL2 6
+#define VSWTC 7
+#define VSTART 8
+#define VSTOP 9
+#define VSUSP 10
+#define VDSUSP 11 /* SunOS POSIX nicety I do believe... */
+#define VREPRINT 12
+#define VDISCARD 13
+#define VWERASE 14
+#define VLNEXT 15
+
+/* User apps assume vmin/vtime is shared with eof/eol */
+#define VMIN VEOF
+#define VTIME VEOL
+
+/* c_iflag bits */
+#define IGNBRK 0x00000001
+#define BRKINT 0x00000002
+#define IGNPAR 0x00000004
+#define PARMRK 0x00000008
+#define INPCK 0x00000010
+#define ISTRIP 0x00000020
+#define INLCR 0x00000040
+#define IGNCR 0x00000080
+#define ICRNL 0x00000100
+#define IUCLC 0x00000200
+#define IXON 0x00000400
+#define IXANY 0x00000800
+#define IXOFF 0x00001000
+#define IMAXBEL 0x00002000
+#define IUTF8 0x00004000
+
+/* c_oflag bits */
+#define OPOST 0x00000001
+#define OLCUC 0x00000002
+#define ONLCR 0x00000004
+#define OCRNL 0x00000008
+#define ONOCR 0x00000010
+#define ONLRET 0x00000020
+#define OFILL 0x00000040
+#define OFDEL 0x00000080
+#if defined __USE_MISC || defined __USE_XOPEN
+# define NLDLY 0x00000100
+# define NL0 0x00000000
+# define NL1 0x00000100
+# define CRDLY 0x00000600
+# define CR0 0x00000000
+# define CR1 0x00000200
+# define CR2 0x00000400
+# define CR3 0x00000600
+# define TABDLY 0x00001800
+# define TAB0 0x00000000
+# define TAB1 0x00000800
+# define TAB2 0x00001000
+# define TAB3 0x00001800
+# define BSDLY 0x00002000
+# define BS0 0x00000000
+# define BS1 0x00002000
+#define FFDLY 0x00008000
+#define FF0 0x00000000
+#define FF1 0x00008000
+#endif
+#define VTDLY 0x00004000
+#define VT0 0x00000000
+#define VT1 0x00004000
+
+# if defined __USE_GNU
+#define PAGEOUT 0x00010000 /* SUNOS specific */
+#define WRAP 0x00020000 /* SUNOS specific */
+# endif
+
+#ifdef __USE_MISC
+# define XTABS 0x00001800
+#endif
+
+/* c_cflag bit meaning */
+#ifdef __USE_MISC
+# define CBAUD 0x0000100f
+#endif
+#define B0 0x00000000 /* hang up */
+#define B50 0x00000001
+#define B75 0x00000002
+#define B110 0x00000003
+#define B134 0x00000004
+#define B150 0x00000005
+#define B200 0x00000006
+#define B300 0x00000007
+#define B600 0x00000008
+#define B1200 0x00000009
+#define B1800 0x0000000a
+#define B2400 0x0000000b
+#define B4800 0x0000000c
+#define B9600 0x0000000d
+#define B19200 0x0000000e
+#define B38400 0x0000000f
+#ifdef __USE_MISC
+# define EXTA B19200
+# define EXTB B38400
+#endif
+#define CSIZE 0x00000030
+#define CS5 0x00000000
+#define CS6 0x00000010
+#define CS7 0x00000020
+#define CS8 0x00000030
+#define CSTOPB 0x00000040
+#define CREAD 0x00000080
+#define PARENB 0x00000100
+#define PARODD 0x00000200
+#define HUPCL 0x00000400
+#define CLOCAL 0x00000800
+#ifdef __USE_MISC
+# define CBAUDEX 0x00001000
+#endif
+#define B57600 0x00001001
+#define B115200 0x00001002
+#define B230400 0x00001003
+#define B460800 0x00001004
+#define B76800 0x00001005
+#define B153600 0x00001006
+#define B307200 0x00001007
+#define B614400 0x00001008
+#define B921600 0x00001009
+#define B500000 0x0000100a
+#define B576000 0x0000100b
+#define B1000000 0x0000100c
+#define B1152000 0x0000100d
+#define B1500000 0x0000100e
+#define B2000000 0x0000100f
+#define __MAX_BAUD B2000000
+
+#ifdef __USE_MISC
+# define CIBAUD 0x100f0000 /* input baud rate (not used) */
+# define CMSPAR 0x40000000 /* mark or space (stick) parity */
+# define CRTSCTS 0x80000000 /* flow control */
+#endif
+
+/* c_lflag bits */
+#define ISIG 0x00000001
+#define ICANON 0x00000002
+#if defined __USE_MISC || (defined __USE_XOPEN && !defined __USE_XOPEN2K)
+# define XCASE 0x00000004
+#endif
+#define ECHO 0x00000008
+#define ECHOE 0x00000010
+#define ECHOK 0x00000020
+#define ECHONL 0x00000040
+#define NOFLSH 0x00000080
+#define TOSTOP 0x00000100
+#ifdef __USE_MISC
+# define ECHOCTL 0x00000200
+# define ECHOPRT 0x00000400
+# define ECHOKE 0x00000800
+# define DEFECHO 0x00001000 /* SUNOS thing, what is it? */
+# define FLUSHO 0x00002000
+# define PENDIN 0x00004000
+#endif
+#define IEXTEN 0x00008000
+#ifdef __USE_MISC
+# define EXTPROC 0x00010000
+#endif
+
+# if defined __USE_GNU
+/* ioctl (fd, TIOCSERGETLSR, &result) where result may be as below */
+#define TIOCSER_TEMT 0x01 /* Transmitter physically empty */
+#endif
+
+/* tcflow() and TCXONC use these */
+#define TCOOFF 0
+#define TCOON 1
+#define TCIOFF 2
+#define TCION 3
+
+/* tcflush() and TCFLSH use these */
+#define TCIFLUSH 0
+#define TCOFLUSH 1
+#define TCIOFLUSH 2
+
+/* tcsetattr uses these */
+#define TCSANOW 0
+#define TCSADRAIN 1
+#define TCSAFLUSH 2
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/timerfd.h b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/timerfd.h
new file mode 100644
index 0000000000..d484c352e6
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/timerfd.h
@@ -0,0 +1,29 @@
+/* Copyright (C) 2008-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_TIMERFD_H
+# error "Never use <bits/timerfd.h> directly; include <sys/timerfd.h> instead."
+#endif
+
+/* Bits to be set in the FLAGS parameter of `timerfd_create'. */
+enum
+ {
+ TFD_CLOEXEC = 0x400000,
+#define TFD_CLOEXEC TFD_CLOEXEC
+ TFD_NONBLOCK = 0x004000
+#define TFD_NONBLOCK TFD_NONBLOCK
+ };
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/typesizes.h b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/typesizes.h
new file mode 100644
index 0000000000..e3f9127b05
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/typesizes.h
@@ -0,0 +1,83 @@
+/* bits/typesizes.h -- underlying types for *_t. Linux/SPARC version.
+ Copyright (C) 2002-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _BITS_TYPES_H
+# error "Never include <bits/typesizes.h> directly; use <sys/types.h> instead."
+#endif
+
+#ifndef _BITS_TYPESIZES_H
+#define _BITS_TYPESIZES_H 1
+
+/* See <bits/types.h> for the meaning of these macros. This file exists so
+ that <bits/types.h> need not vary across different GNU platforms. */
+
+#define __DEV_T_TYPE __UQUAD_TYPE
+#define __UID_T_TYPE __U32_TYPE
+#define __GID_T_TYPE __U32_TYPE
+#define __INO_T_TYPE __ULONGWORD_TYPE
+#define __INO64_T_TYPE __UQUAD_TYPE
+#define __MODE_T_TYPE __U32_TYPE
+#define __NLINK_T_TYPE __U32_TYPE
+#define __OFF_T_TYPE __SLONGWORD_TYPE
+#define __OFF64_T_TYPE __SQUAD_TYPE
+#define __PID_T_TYPE __S32_TYPE
+#define __RLIM_T_TYPE __ULONGWORD_TYPE
+#define __RLIM64_T_TYPE __UQUAD_TYPE
+#define __BLKCNT_T_TYPE __SLONGWORD_TYPE
+#define __BLKCNT64_T_TYPE __SQUAD_TYPE
+#define __FSBLKCNT_T_TYPE __ULONGWORD_TYPE
+#define __FSBLKCNT64_T_TYPE __UQUAD_TYPE
+#define __FSFILCNT_T_TYPE __ULONGWORD_TYPE
+#define __FSFILCNT64_T_TYPE __UQUAD_TYPE
+#define __FSWORD_T_TYPE __SWORD_TYPE
+#define __ID_T_TYPE __U32_TYPE
+#define __CLOCK_T_TYPE __SLONGWORD_TYPE
+#define __TIME_T_TYPE __SLONGWORD_TYPE
+#define __USECONDS_T_TYPE __U32_TYPE
+#define __SUSECONDS_T_TYPE __S32_TYPE
+#define __DADDR_T_TYPE __S32_TYPE
+#define __KEY_T_TYPE __S32_TYPE
+#define __CLOCKID_T_TYPE __S32_TYPE
+#define __TIMER_T_TYPE void *
+#define __BLKSIZE_T_TYPE __SLONGWORD_TYPE
+#define __FSID_T_TYPE struct { int __val[2]; }
+#define __SSIZE_T_TYPE __SWORD_TYPE
+#define __SYSCALL_SLONG_TYPE __SLONGWORD_TYPE
+#define __SYSCALL_ULONG_TYPE __ULONGWORD_TYPE
+#define __CPU_MASK_TYPE __ULONGWORD_TYPE
+
+#if defined __arch64__ || defined __sparcv9
+/* Tell the libc code that off_t and off64_t are actually the same type
+ for all ABI purposes, even if possibly expressed as different base types
+ for C type-checking purposes. */
+# define __OFF_T_MATCHES_OFF64_T 1
+
+/* Same for ino_t and ino64_t. */
+# define __INO_T_MATCHES_INO64_T 1
+
+/* And for __rlim_t and __rlim64_t. */
+# define __RLIM_T_MATCHES_RLIM64_T 1
+#else
+# define __RLIM_T_MATCHES_RLIM64_T 0
+#endif
+
+/* Number of descriptors that can fit in an `fd_set'. */
+#define __FD_SETSIZE 1024
+
+
+#endif /* bits/typesizes.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/wordsize.h b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/wordsize.h
new file mode 100644
index 0000000000..7562875ee2
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/wordsize.h
@@ -0,0 +1,11 @@
+/* Determine the wordsize from the preprocessor defines. */
+
+#if defined __arch64__ || defined __sparcv9
+# define __WORDSIZE 64
+# define __WORDSIZE_TIME64_COMPAT32 1
+#else
+# define __WORDSIZE 32
+# define __WORDSIZE32_SIZE_ULONG 0
+# define __WORDSIZE32_PTRDIFF_LONG 0
+# define __WORDSIZE_TIME64_COMPAT32 0
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/configure b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/configure
new file mode 100644
index 0000000000..00fb21e156
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/configure
@@ -0,0 +1,5 @@
+# This file is generated from configure.ac by Autoconf. DO NOT EDIT!
+ # Local configure fragment for sysdeps/unix/sysv/linux/sparc.
+
+libc_cv_gcc_unwind_find_fde=yes
+ldd_rewrite_script=sysdeps/unix/sysv/linux/sparc/ldd-rewrite.sed
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/configure.ac b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/configure.ac
new file mode 100644
index 0000000000..7e2af9847a
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/configure.ac
@@ -0,0 +1,5 @@
+GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
+# Local configure fragment for sysdeps/unix/sysv/linux/sparc.
+
+libc_cv_gcc_unwind_find_fde=yes
+ldd_rewrite_script=sysdeps/unix/sysv/linux/sparc/ldd-rewrite.sed
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/dl-cache.h b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/dl-cache.h
new file mode 100644
index 0000000000..86f4cf4919
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/dl-cache.h
@@ -0,0 +1,38 @@
+/* Support for reading /etc/ld.so.cache files written by Linux ldconfig.
+ Copyright (C) 2003-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#define add_system_dir(dir) \
+ do \
+ { \
+ size_t len = strlen (dir); \
+ char path[len + 3]; \
+ memcpy (path, dir, len + 1); \
+ if (len >= 6 && ! memcmp (path + len - 6, "/lib64", 6)) \
+ { \
+ len -= 2; \
+ path[len] = '\0'; \
+ } \
+ add_dir (path); \
+ if (len >= 4 && ! memcmp (path + len - 4, "/lib", 4)) \
+ { \
+ memcpy (path + len, "64", 3); \
+ add_dir (path); \
+ } \
+ } while (0)
+
+#include <sysdeps/generic/dl-cache.h>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/getrlimit64.c b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/getrlimit64.c
new file mode 100644
index 0000000000..7ffc7dd5dd
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/getrlimit64.c
@@ -0,0 +1,24 @@
+/* Linux getrlimit64 sparc32 implementation (64 bits rlim_t).
+ Copyright (C) 2016-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <shlib-compat.h>
+
+#undef SHLIB_COMPAT
+#define SHLIB_COMPAT(a,b,c) 0
+
+#include <sysdeps/unix/sysv/linux/getrlimit64.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/getshmlba.c b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/getshmlba.c
new file mode 100644
index 0000000000..26a90e707a
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/getshmlba.c
@@ -0,0 +1,39 @@
+/* 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 <unistd.h>
+#include <sys/shm.h>
+#include <ldsodefs.h>
+
+int
+__getshmlba (void)
+{
+ uint64_t hwcap = GLRO(dl_hwcap);
+ int pgsz = GLRO(dl_pagesize);
+
+ if (hwcap & HWCAP_SPARC_V9)
+ {
+ if (pgsz < (16 * 1024))
+ return 16 * 1024;
+ else
+ return pgsz;
+ }
+ else if (!(hwcap & HWCAP_SPARC_FLUSH))
+ return 64 * 1024;
+ else
+ return 256 * 1024;
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/getsysstats.c b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/getsysstats.c
new file mode 100644
index 0000000000..49708495ff
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/getsysstats.c
@@ -0,0 +1,55 @@
+/* Determine various system internal values, Linux/Sparc version.
+ Copyright (C) 1999-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Andreas Schwab <schwab@suse.de> and
+ Jakub Jelinek <jj@ultra.linux.cz>
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+
+/* We need to define a special parser for /proc/cpuinfo. */
+#define GET_NPROCS_PARSER(FD, BUFFER, CP, RE, BUFFER_END, RESULT) \
+ do \
+ { \
+ (RESULT) = 0; \
+ /* Find the line that contains the information about the number of \
+ active cpus. We don't have to fear extremely long lines since \
+ the kernel will not generate them. 8192 bytes are really \
+ enough. */ \
+ char *l; \
+ while ((l = next_line (FD, BUFFER, &CP, &RE, BUFFER_END)) != NULL) \
+ if (sscanf (l, "ncpus active : %d", &(RESULT)) == 1) \
+ break; \
+ } \
+ while (0)
+
+
+/* On the Sparc we can distinguish between the number of configured and
+ active cpus. */
+#define GET_NPROCS_CONF_PARSER(FP, BUFFER, RESULT) \
+ do \
+ { \
+ (RESULT) = 0; \
+ /* Find the line that contains the information about the number of \
+ probed cpus. We don't have to fear extremely long lines since \
+ the kernel will not generate them. 8192 bytes are really \
+ enough. */ \
+ while (__fgets_unlocked ((BUFFER), sizeof (BUFFER), (FP)) != NULL) \
+ if (sscanf (buffer, "ncpus probed : %d", &(RESULT)) == 1) \
+ break; \
+ } \
+ while (0)
+
+#include <sysdeps/unix/sysv/linux/getsysstats.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/kernel-features.h b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/kernel-features.h
new file mode 100644
index 0000000000..3fafab359c
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/kernel-features.h
@@ -0,0 +1,42 @@
+/* Set flags signalling availability of kernel features based on given
+ kernel version number. SPARC version.
+ Copyright (C) 1999-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+/* SPARC uses socketcall. */
+#define __ASSUME_SOCKETCALL 1
+
+#include_next <kernel-features.h>
+
+/* 32-bit SPARC kernels do not support
+ futex_atomic_cmpxchg_inatomic. */
+#if !defined __arch64__ && !defined __sparc_v9__
+# undef __ASSUME_SET_ROBUST_LIST
+#endif
+
+#if !defined __arch64__
+# undef __ASSUME_ACCEPT_SYSCALL
+# undef __ASSUME_CONNECT_SYSCALL
+# undef __ASSUME_RECVFROM_SYSCALL
+#else
+/* sparc64 defines __NR_pause, however it is not supported (ENOSYS).
+ Undefine so pause.c can use a correct alternative. */
+# undef __NR_pause
+#endif
+
+/* sparc only supports ipc syscall. */
+#undef __ASSUME_DIRECT_SYSVIPC_SYSCALLS
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/kernel_termios.h b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/kernel_termios.h
new file mode 100644
index 0000000000..464ddf8135
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/kernel_termios.h
@@ -0,0 +1,37 @@
+/* Copyright (C) 1997-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _KERNEL_TERMIOS_H
+#define _KERNEL_TERMIOS_H 1
+/* The following corresponds to the values from the Linux 2.1.20 kernel. */
+
+/* We need the definition of tcflag_t, cc_t, and speed_t. */
+#include <termios.h>
+
+#define __KERNEL_NCCS 17
+
+struct __kernel_termios
+ {
+ tcflag_t c_iflag; /* input mode flags */
+ tcflag_t c_oflag; /* output mode flags */
+ tcflag_t c_cflag; /* control mode flags */
+ tcflag_t c_lflag; /* local mode flags */
+ cc_t c_line; /* line discipline */
+ cc_t c_cc[__KERNEL_NCCS]; /* control characters */
+ };
+
+#endif /* kernel_termios.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/ldd-rewrite.sed b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/ldd-rewrite.sed
new file mode 100644
index 0000000000..7dc2698fa8
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/ldd-rewrite.sed
@@ -0,0 +1,3 @@
+/LD_TRACE_LOADED_OBJECTS=1/a\
+add_env="$add_env LD_LIBRARY_VERSION=\\$verify_out"
+s_^\(RTLDLIST=\)\(.*lib\)\(\|64\)\(/[^/]*\.so\.[0-9.]*\)[ ]*$_\1"\2\4 \264\4"_
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/lowlevellock.h b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/lowlevellock.h
new file mode 100644
index 0000000000..e36fde6cae
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/lowlevellock.h
@@ -0,0 +1,135 @@
+/* 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/>. */
+
+#ifndef _LOWLEVELLOCK_H
+#define _LOWLEVELLOCK_H 1
+
+#include <time.h>
+#include <sys/param.h>
+#include <bits/pthreadtypes.h>
+#include <atomic.h>
+#include <kernel-features.h>
+
+#include <lowlevellock-futex.h>
+
+static inline int
+__attribute__ ((always_inline))
+__lll_trylock (int *futex)
+{
+ return atomic_compare_and_exchange_val_24_acq (futex, 1, 0) != 0;
+}
+#define lll_trylock(futex) __lll_trylock (&(futex))
+
+static inline int
+__attribute__ ((always_inline))
+__lll_cond_trylock (int *futex)
+{
+ return atomic_compare_and_exchange_val_24_acq (futex, 2, 0) != 0;
+}
+#define lll_cond_trylock(futex) __lll_cond_trylock (&(futex))
+
+
+extern void __lll_lock_wait_private (int *futex) attribute_hidden;
+extern void __lll_lock_wait (int *futex, int private) attribute_hidden;
+
+static inline void
+__attribute__ ((always_inline))
+__lll_lock (int *futex, int private)
+{
+ int val = atomic_compare_and_exchange_val_24_acq (futex, 1, 0);
+
+ if (__glibc_unlikely (val != 0))
+ {
+ if (__builtin_constant_p (private) && private == LLL_PRIVATE)
+ __lll_lock_wait_private (futex);
+ else
+ __lll_lock_wait (futex, private);
+ }
+}
+#define lll_lock(futex, private) __lll_lock (&(futex), private)
+
+static inline void
+__attribute__ ((always_inline))
+__lll_cond_lock (int *futex, int private)
+{
+ int val = atomic_compare_and_exchange_val_24_acq (futex, 2, 0);
+
+ if (__glibc_unlikely (val != 0))
+ __lll_lock_wait (futex, private);
+}
+#define lll_cond_lock(futex, private) __lll_cond_lock (&(futex), private)
+
+
+extern int __lll_timedlock_wait (int *futex, const struct timespec *,
+ int private) attribute_hidden;
+
+static inline int
+__attribute__ ((always_inline))
+__lll_timedlock (int *futex, const struct timespec *abstime, int private)
+{
+ int val = atomic_compare_and_exchange_val_24_acq (futex, 1, 0);
+ int result = 0;
+
+ if (__glibc_unlikely (val != 0))
+ result = __lll_timedlock_wait (futex, abstime, private);
+ return result;
+}
+#define lll_timedlock(futex, abstime, private) \
+ __lll_timedlock (&(futex), abstime, private)
+
+#define lll_unlock(lock, private) \
+ ((void) ({ \
+ int *__futex = &(lock); \
+ int __private = (private); \
+ int __val = atomic_exchange_24_rel (__futex, 0); \
+ if (__glibc_unlikely (__val > 1)) \
+ lll_futex_wake (__futex, 1, __private); \
+ }))
+
+#define lll_islocked(futex) \
+ (futex != 0)
+
+/* Initializers for lock. */
+#define LLL_LOCK_INITIALIZER (0)
+#define LLL_LOCK_INITIALIZER_LOCKED (1)
+
+/* The kernel notifies a process which uses CLONE_CHILD_CLEARTID via futex
+ wakeup when the clone terminates. The memory location contains the
+ thread ID while the clone is running and is reset to zero
+ afterwards. */
+#define lll_wait_tid(tid) \
+ do \
+ { \
+ __typeof (tid) __tid; \
+ while ((__tid = (tid)) != 0) \
+ lll_futex_wait (&(tid), __tid, LLL_SHARED); \
+ } \
+ while (0)
+
+extern int __lll_timedwait_tid (int *, const struct timespec *)
+ attribute_hidden;
+
+#define lll_timedwait_tid(tid, abstime) \
+ ({ \
+ int __res = 0; \
+ if ((tid) != 0) \
+ __res = __lll_timedwait_tid (&(tid), (abstime)); \
+ __res; \
+ })
+
+#endif /* lowlevellock.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/pt-vfork.S b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/pt-vfork.S
new file mode 100644
index 0000000000..65cc3823ac
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/pt-vfork.S
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/alpha/pt-vfork.S>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/readelflib.c b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/readelflib.c
new file mode 100644
index 0000000000..a9737fe89a
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/readelflib.c
@@ -0,0 +1,61 @@
+/* Copyright (C) 1999-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Andreas Jaeger <aj@suse.de>, 1999 and
+ Jakub Jelinek <jakub@redhat.com>, 1999.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+
+int process_elf32_file (const char *file_name, const char *lib, int *flag,
+ unsigned int *osversion, char **soname,
+ void *file_contents, size_t file_length);
+int process_elf64_file (const char *file_name, const char *lib, int *flag,
+ unsigned int *osversion, char **soname,
+ void *file_contents, size_t file_length);
+
+/* Returns 0 if everything is ok, != 0 in case of error. */
+int
+process_elf_file (const char *file_name, const char *lib, int *flag,
+ unsigned int *osversion, char **soname, void *file_contents,
+ size_t file_length)
+{
+ ElfW(Ehdr) *elf_header = (ElfW(Ehdr) *) file_contents;
+ int ret;
+
+ if (elf_header->e_ident [EI_CLASS] == ELFCLASS32)
+ return process_elf32_file (file_name, lib, flag, osversion, soname,
+ file_contents, file_length);
+ else
+ {
+ ret = process_elf64_file (file_name, lib, flag, osversion, soname,
+ file_contents, file_length);
+ /* Sparc 64bit libraries are always libc.so.6+. */
+ if (!ret)
+ *flag = FLAG_SPARC_LIB64|FLAG_ELF_LIBC6;
+ return ret;
+ }
+}
+
+#undef __ELF_NATIVE_CLASS
+#undef process_elf_file
+#define process_elf_file process_elf32_file
+#define __ELF_NATIVE_CLASS 32
+#include "elf/readelflib.c"
+
+#undef __ELF_NATIVE_CLASS
+#undef process_elf_file
+#define process_elf_file process_elf64_file
+#define __ELF_NATIVE_CLASS 64
+#include "elf/readelflib.c"
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/rt-sysdep.c b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/rt-sysdep.c
new file mode 100644
index 0000000000..3ff55952e2
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/rt-sysdep.c
@@ -0,0 +1 @@
+#include <sysdep.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/Implies b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/Implies
new file mode 100644
index 0000000000..efda9d27c0
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/Implies
@@ -0,0 +1,3 @@
+# These supply the ABI compatibility for when long double was double.
+ieee754/ldbl-64-128
+ieee754/ldbl-opt
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/Makefile b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/Makefile
new file mode 100644
index 0000000000..21c7dc1680
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/Makefile
@@ -0,0 +1,28 @@
+# See Makeconfig regarding the use of default-abi.
+default-abi := 32
+
+asm-CPPFLAGS = -D__ASSEMBLY__
+ASFLAGS-.os += -fPIC
+LD += -melf32_sparc
+
+ifeq ($(subdir),stdlib)
+gen-as-const-headers += ucontext_i.sym
+endif
+
+# When I get this to work, this is the right thing
+ifeq ($(subdir),elf)
+CFLAGS-rtld.c += -mcpu=v8
+#rtld-routines += dl-sysdepsparc
+sysdep-others += lddlibc4
+install-bin += lddlibc4
+endif # elf
+
+ifeq ($(subdir),math)
+# These 2 routines are normally in libgcc{.a,_s.so.1}.
+# However, sparc32 -mlong-double-128 libgcc relies on
+# glibc providing _Q_* routines and without these files
+# glibc relies on __multc3/__divtc3 only provided
+# by libgcc if configured with -mlong-double-128.
+# Provide these routines here as well.
+libm-routines += multc3 divtc3
+endif # math
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/Versions b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/Versions
new file mode 100644
index 0000000000..c9a5b3e9d5
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/Versions
@@ -0,0 +1,26 @@
+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.2 {
+ # functions used in other libraries
+ __xstat64; __fxstat64; __lxstat64;
+
+ # g*
+ glob64;
+
+ # r*
+ readdir64; readdir64_r;
+
+ # s*
+ scandir64;
+ }
+ GLIBC_2.3.3 {
+ posix_fadvise64; posix_fallocate64;
+ }
+ GLIBC_2.11 {
+ fallocate64;
+ }
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/____longjmp_chk.S b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/____longjmp_chk.S
new file mode 100644
index 0000000000..ff65bbd487
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/____longjmp_chk.S
@@ -0,0 +1,113 @@
+/* Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#include <jmpbuf-offsets.h>
+
+#define ENV(base,reg) [%base + (reg * 4)]
+#define ST_FLUSH_WINDOWS 3
+
+.section .rodata.str1.1,"aMS",@progbits,1
+ .type longjmp_msg,@object
+longjmp_msg:
+ .string "longjmp causes uninitialized stack frame"
+ .size longjmp_msg, .-longjmp_msg
+
+ .text
+ENTRY (____longjmp_chk)
+ ld ENV(o0,JB_SP), %g5
+#ifdef PTR_DEMANGLE
+ PTR_DEMANGLE (%g5, %g5, %g4)
+#endif
+
+ cmp %sp, %g5
+ bleu .Lok_norestore
+ nop
+
+ save %sp, -80, %sp
+ cfi_remember_state
+ cfi_def_cfa_register(%fp)
+ cfi_window_save
+ cfi_register(%o7, %i7)
+
+ clr %o0
+ add %sp, 64, %o1
+ LOADSYSCALL(sigaltstack)
+ ta 0x10
+ bcs .Lok
+ ld [%sp + 64 + 4], %o2
+ andcc %o2, 0x1, %g0
+ be .Lfail
+ ld [%sp + 64 + 0], %o0
+
+ ld [%sp + 64 + 8], %o1
+ add %o0, %o1, %o0
+ sub %o0, %g5, %o0
+ cmp %o0, %o1
+ bgeu .Lok
+ nop
+
+.Lfail:
+#ifndef PIC
+ sethi %hi(longjmp_msg), %o0
+ or %o0, %lo(longjmp_msg), %o0
+#else
+ SETUP_PIC_REG(l7)
+ sethi %gdop_hix22(longjmp_msg), %o0
+ xor %o0, %gdop_lox10(longjmp_msg), %o0
+ ld [%l7 + %o0], %o0, %gdop(longjmp_msg)
+#endif
+ call HIDDEN_JUMPTARGET(__fortify_fail)
+ nop
+
+.Lok:
+ restore
+ cfi_restore_state
+
+.Lok_norestore:
+ ld ENV(o0,JB_FP), %g3 /* Cache target FP in register %g3. */
+#ifdef PTR_DEMANGLE
+ PTR_DEMANGLE2 (%g3, %g3, %g4)
+#endif
+
+ mov %o0, %g1 /* ENV in %g1 */
+ orcc %o1, %g0, %g2 /* VAL in %g2 */
+ be,a 0f /* Branch if zero; else skip delay slot. */
+ mov 1, %g2 /* Delay slot only hit if zero: VAL = 1. */
+0:
+
+ save %sp, -96, %sp
+ /*
+ * Do a "flush register windows trap". The trap handler in the
+ * kernel writes all the register windows to their stack slots, and
+ * marks them all as invalid (needing to be sucked up from the
+ * stack when used). This ensures that all information needed to
+ * unwind to these callers is in memory, not in the register
+ * windows.
+ */
+ ta ST_FLUSH_WINDOWS
+#ifdef PTR_DEMANGLE
+ ld ENV(g1,JB_PC), %g1 /* Set return PC. */
+ PTR_DEMANGLE2 (%i7, %g1, %g4)
+#else
+ ld ENV(g1,JB_PC), %i7 /* Set return PC. */
+#endif
+ mov %g5, %fp
+ jmp %i7 + 8
+ restore %g2, 0, %o0 /* Restore values from above register frame. */
+
+END(____longjmp_chk)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/brk.c b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/brk.c
new file mode 100644
index 0000000000..7162eb27b7
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/brk.c
@@ -0,0 +1,54 @@
+/* brk system call for Linux/SPARC.
+ Copyright (C) 1995-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Miguel de Icaza (miguel@nuclecu.unam.mx)
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <unistd.h>
+#include <sysdep.h>
+
+/* This must be initialized data because commons can't have aliases. */
+void *__curbrk = 0;
+
+/* Old braindamage in GCC's crtstuff.c requires this symbol in an attempt
+ to work around different old braindamage in the old Linux ELF dynamic
+ linker. */
+weak_alias (__curbrk, ___brk_addr)
+
+int
+__brk (void *addr)
+{
+ void *newbrk;
+
+ {
+ register void *o0 __asm__("%o0") = addr;
+ register int g1 __asm__("%g1") = __NR_brk;
+ __asm ("t 0x10" : "=r"(o0) : "r"(g1), "0"(o0) : "cc");
+ newbrk = o0;
+ }
+
+ __curbrk = newbrk;
+
+ if (newbrk < addr)
+ {
+ __set_errno (ENOMEM);
+ return -1;
+ }
+
+ return 0;
+}
+weak_alias (__brk, brk)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/c++-types.data b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/c++-types.data
new file mode 100644
index 0000000000..b3c19d9c61
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/c++-types.data
@@ -0,0 +1,67 @@
+blkcnt64_t:x
+blkcnt_t:l
+blksize_t:l
+caddr_t:Pc
+clockid_t:i
+clock_t:l
+daddr_t:i
+dev_t:y
+fd_mask:l
+fsblkcnt64_t:y
+fsblkcnt_t:m
+fsfilcnt64_t:y
+fsfilcnt_t:m
+fsid_t:8__fsid_t
+gid_t:j
+id_t:j
+ino64_t:y
+ino_t:m
+int16_t:s
+int32_t:i
+int64_t:x
+int8_t:a
+intptr_t:i
+key_t:i
+loff_t:x
+mode_t:j
+nlink_t:j
+off64_t:x
+off_t:l
+pid_t:i
+pthread_attr_t:14pthread_attr_t
+pthread_barrier_t:17pthread_barrier_t
+pthread_barrierattr_t:21pthread_barrierattr_t
+pthread_cond_t:14pthread_cond_t
+pthread_condattr_t:18pthread_condattr_t
+pthread_key_t:j
+pthread_mutex_t:15pthread_mutex_t
+pthread_mutexattr_t:19pthread_mutexattr_t
+pthread_once_t:i
+pthread_rwlock_t:16pthread_rwlock_t
+pthread_rwlockattr_t:20pthread_rwlockattr_t
+pthread_spinlock_t:i
+pthread_t:m
+quad_t:x
+register_t:i
+rlim64_t:y
+rlim_t:m
+sigset_t:10__sigset_t
+size_t:j
+socklen_t:j
+ssize_t:i
+suseconds_t:i
+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/sparc/sparc32/clone.S b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/clone.S
new file mode 100644
index 0000000000..6d2f5bd55f
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/clone.S
@@ -0,0 +1,90 @@
+/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Richard Henderson (rth@tamu.edu).
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+/* clone() is even more special than fork() as it mucks with stacks
+ and invokes a function in the right context after its all over. */
+
+#include <asm/errno.h>
+#include <asm/unistd.h>
+#include <tcb-offsets.h>
+#include <sysdep.h>
+
+#define CLONE_VM 0x00000100
+
+/* int clone(int (*fn)(void *arg), void *child_stack, int flags, void *arg,
+ pid_t *ptid, void *tls, pid_t *ctid); */
+
+ .text
+ENTRY (__clone)
+ save %sp,-96,%sp
+ cfi_def_cfa_register(%fp)
+ cfi_window_save
+ cfi_register(%o7, %i7)
+
+ /* sanity check arguments */
+ orcc %i0,%g0,%g2
+ be .Leinval
+ orcc %i1,%g0,%o1
+ be .Leinval
+ mov %i2,%o0
+
+ /* The child_stack is the top of the stack, allocate one
+ whole stack frame from that as this is what the kernel
+ expects. */
+ sub %o1, 96, %o1
+ mov %i3, %g3
+
+ /* ptid */
+ mov %i4,%o2
+ /* tls */
+ mov %i5,%o3
+ /* ctid */
+ ld [%fp+92],%o4
+
+ /* Do the system call */
+ set __NR_clone,%g1
+ ta 0x10
+ bcs .Lerror
+ tst %o1
+ bne __thread_start
+ nop
+ jmpl %i7 + 8, %g0
+ restore %o0,%g0,%o0
+
+.Leinval:
+ mov EINVAL, %o0
+.Lerror:
+ call HIDDEN_JUMPTARGET(__errno_location)
+ mov %o0, %i0
+ st %i0,[%o0]
+ jmpl %i7 + 8, %g0
+ restore %g0,-1,%o0
+END(__clone)
+
+ .type __thread_start,@function
+__thread_start:
+ mov %g0, %fp /* terminate backtrace */
+ call %g2
+ mov %g3,%o0
+ call HIDDEN_JUMPTARGET(_exit),0
+ nop
+
+ .size __thread_start, .-__thread_start
+
+libc_hidden_def (__clone)
+weak_alias (__clone, clone)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/fcntl.c b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/fcntl.c
new file mode 100644
index 0000000000..ea951bc4f9
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/fcntl.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/i386/fcntl.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/fpu/Implies b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/fpu/Implies
new file mode 100644
index 0000000000..dbcd1e9e6f
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/fpu/Implies
@@ -0,0 +1,2 @@
+# We must list this here to move it ahead of the ldbl-opt code.
+sparc/sparc32/fpu
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/fxstat.c b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/fxstat.c
new file mode 100644
index 0000000000..4f219f0b9d
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/fxstat.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/i386/fxstat.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/fxstatat.c b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/fxstatat.c
new file mode 100644
index 0000000000..0f8b3135d8
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/fxstatat.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/i386/fxstatat.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/getcontext.S b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/getcontext.S
new file mode 100644
index 0000000000..893d7bf5b5
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/getcontext.S
@@ -0,0 +1,84 @@
+/* Save current context.
+ Copyright (C) 2008-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by David S. Miller <davem@davemloft.net>, 2008.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+
+#include "ucontext_i.h"
+
+/* int __getcontext (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)
+ save %sp, -112, %sp
+ st %g0, [%i0 + UC_MCONTEXT + MC_GREGS + GREG_PSR]
+
+ /* In reality, we only use the GREG_PC value when setting
+ or swapping contexts. But we fill in NPC for completeness. */
+ add %i7, 8, %o0
+ st %o0, [%i0 + UC_MCONTEXT + MC_GREGS + GREG_PC]
+ add %o0, 4, %o0
+ st %o0, [%i0 + UC_MCONTEXT + MC_GREGS + GREG_NPC]
+
+ rd %y, %o1
+ st %o1, [%i0 + UC_MCONTEXT + MC_GREGS + GREG_Y]
+
+ st %g1, [%i0 + UC_MCONTEXT + MC_GREGS + GREG_G1]
+ st %g2, [%i0 + UC_MCONTEXT + MC_GREGS + GREG_G2]
+ st %g3, [%i0 + UC_MCONTEXT + MC_GREGS + GREG_G3]
+ st %g4, [%i0 + UC_MCONTEXT + MC_GREGS + GREG_G4]
+ st %g5, [%i0 + UC_MCONTEXT + MC_GREGS + GREG_G5]
+ st %g6, [%i0 + UC_MCONTEXT + MC_GREGS + GREG_G6]
+ st %g7, [%i0 + UC_MCONTEXT + MC_GREGS + GREG_G7]
+
+ mov SIG_BLOCK, %o0
+ clr %o1
+ add %i0, UC_SIGMASK, %o2
+ mov 8, %o3
+ mov __NR_rt_sigprocmask, %g1
+ ta 0x10
+
+ /* Zero, success, return value. */
+ st %g0, [%i0 + UC_MCONTEXT + MC_GREGS + GREG_O0]
+ st %i1, [%i0 + UC_MCONTEXT + MC_GREGS + GREG_O1]
+ st %i2, [%i0 + UC_MCONTEXT + MC_GREGS + GREG_O2]
+ st %i3, [%i0 + UC_MCONTEXT + MC_GREGS + GREG_O3]
+ st %i4, [%i0 + UC_MCONTEXT + MC_GREGS + GREG_O4]
+ st %i5, [%i0 + UC_MCONTEXT + MC_GREGS + GREG_O5]
+ st %i6, [%i0 + UC_MCONTEXT + MC_GREGS + GREG_O6]
+ st %i7, [%i0 + UC_MCONTEXT + MC_GREGS + GREG_O7]
+
+ st %g0, [%i0 + UC_MCONTEXT + MC_GWINS]
+
+ /* Do not save FPU state, it is volatile across calls. */
+ stb %g0, [%i0 + UC_MCONTEXT + MC_FPREGS + FPU_EN]
+
+ st %g0, [%i0 + UC_MCONTEXT + MC_XRS + XRS_ID]
+ st %g0, [%i0 + UC_MCONTEXT + MC_XRS + XRS_PTR]
+ jmpl %i7 + 8, %g0
+ restore %g0, %g0, %o0
+END(__getcontext)
+
+weak_alias (__getcontext, getcontext)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/getdents64.c b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/getdents64.c
new file mode 100644
index 0000000000..0c75fb5a06
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/getdents64.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/i386/getdents64.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/glob64.c b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/glob64.c
new file mode 100644
index 0000000000..82a9a296a7
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/glob64.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/i386/glob64.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/kernel_stat.h b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/kernel_stat.h
new file mode 100644
index 0000000000..a4416009f1
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/kernel_stat.h
@@ -0,0 +1,35 @@
+/* Definition of `struct stat' used in the kernel */
+struct kernel_stat
+ {
+ unsigned short int st_dev;
+ unsigned long int st_ino;
+ unsigned short int st_mode;
+ short int st_nlink;
+ unsigned short int st_uid;
+ unsigned short int st_gid;
+ unsigned short int st_rdev;
+ long int st_size;
+ struct timespec st_atim;
+ struct timespec st_mtim;
+ struct timespec st_ctim;
+ long int st_blksize;
+ long int st_blocks;
+ unsigned long int __glibc_reserved4;
+ unsigned long int __glibc_reserved5;
+ };
+
+#define _HAVE___UNUSED4
+#define _HAVE___UNUSED5
+
+#define _HAVE_STAT___UNUSED4
+#define _HAVE_STAT___UNUSED5
+#define _HAVE_STAT___PAD1
+#define _HAVE_STAT___PAD2
+#define _HAVE_STAT64___UNUSED4
+#define _HAVE_STAT64___UNUSED5
+#define _HAVE_STAT64___PAD2
+#define _HAVE_STAT_NSEC
+#define _HAVE_STAT64_NSEC
+
+#define XSTAT_IS_XSTAT64 0
+#define STATFS_IS_STATFS64 0
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/ld.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/ld.abilist
new file mode 100644
index 0000000000..fb4bcb016d
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/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_addr F
+GLIBC_2.4 GLIBC_2.4 A
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/libBrokenLocale.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/libBrokenLocale.abilist
new file mode 100644
index 0000000000..4a56bb68a3
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/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/sparc/sparc32/libanl.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/libanl.abilist
new file mode 100644
index 0000000000..edabfb436e
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/libanl.abilist
@@ -0,0 +1,5 @@
+GLIBC_2.2.3 GLIBC_2.2.3 A
+GLIBC_2.2.3 gai_cancel F
+GLIBC_2.2.3 gai_error F
+GLIBC_2.2.3 gai_suspend F
+GLIBC_2.2.3 getaddrinfo_a F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
new file mode 100644
index 0000000000..8c4c2e502c
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
@@ -0,0 +1,2479 @@
+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 .div F
+GLIBC_2.0 .mul F
+GLIBC_2.0 .rem F
+GLIBC_2.0 .udiv F
+GLIBC_2.0 .umul F
+GLIBC_2.0 .urem 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 __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 __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 __uflow 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 0x1fc
+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 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 profil_counter 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 0x1fc
+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 __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 0x1fc
+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 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 0x1fc
+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 __getshmlba F
+GLIBC_2.16 __poll_chk F
+GLIBC_2.16 __ppoll_chk F
+GLIBC_2.16 _sys_errlist D 0x220
+GLIBC_2.16 _sys_nerr D 0x4
+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 sys_errlist D 0x220
+GLIBC_2.16 sys_nerr D 0x4
+GLIBC_2.16 timespec_get F
+GLIBC_2.17 GLIBC_2.17 A
+GLIBC_2.17 clock_getcpuclockid F
+GLIBC_2.17 clock_getres F
+GLIBC_2.17 clock_gettime F
+GLIBC_2.17 clock_nanosleep F
+GLIBC_2.17 clock_settime F
+GLIBC_2.17 secure_getenv F
+GLIBC_2.18 GLIBC_2.18 A
+GLIBC_2.18 __cxa_thread_atexit_impl F
+GLIBC_2.2 GLIBC_2.2 A
+GLIBC_2.2 _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 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 getwc F
+GLIBC_2.2 getwc_unlocked F
+GLIBC_2.2 getwchar F
+GLIBC_2.2 getwchar_unlocked F
+GLIBC_2.2 glob64 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 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 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 0x200
+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 0x200
+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 _Q_add F
+GLIBC_2.4 _Q_cmp F
+GLIBC_2.4 _Q_cmpe F
+GLIBC_2.4 _Q_div F
+GLIBC_2.4 _Q_dtoq F
+GLIBC_2.4 _Q_feq F
+GLIBC_2.4 _Q_fge F
+GLIBC_2.4 _Q_fgt F
+GLIBC_2.4 _Q_fle F
+GLIBC_2.4 _Q_flt F
+GLIBC_2.4 _Q_fne F
+GLIBC_2.4 _Q_itoq F
+GLIBC_2.4 _Q_lltoq F
+GLIBC_2.4 _Q_mul F
+GLIBC_2.4 _Q_neg F
+GLIBC_2.4 _Q_qtod F
+GLIBC_2.4 _Q_qtoi F
+GLIBC_2.4 _Q_qtoll F
+GLIBC_2.4 _Q_qtos F
+GLIBC_2.4 _Q_qtou F
+GLIBC_2.4 _Q_qtoull F
+GLIBC_2.4 _Q_sqrt F
+GLIBC_2.4 _Q_stoq F
+GLIBC_2.4 _Q_sub F
+GLIBC_2.4 _Q_ulltoq F
+GLIBC_2.4 _Q_utoq 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 0x218
+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 0x218
+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 inotify_init1 F
+GLIBC_2.9 pipe2 F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/libcrypt.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/libcrypt.abilist
new file mode 100644
index 0000000000..4db2639336
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/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/sparc/sparc32/libdl.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/libdl.abilist
new file mode 100644
index 0000000000..5536f6e0a9
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/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/sparc/sparc32/libm.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist
new file mode 100644
index 0000000000..f73af6f224
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist
@@ -0,0 +1,568 @@
+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 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 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 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 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 __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 feclearexcept F
+GLIBC_2.2 fedisableexcept F
+GLIBC_2.2 feenableexcept F
+GLIBC_2.2 fegetenv F
+GLIBC_2.2 fegetexcept F
+GLIBC_2.2 fegetexceptflag F
+GLIBC_2.2 feraiseexcept F
+GLIBC_2.2 fesetenv F
+GLIBC_2.2 fesetexceptflag F
+GLIBC_2.2 feupdateenv F
+GLIBC_2.23 GLIBC_2.23 A
+GLIBC_2.23 __signgam D 0x4
+GLIBC_2.23 __sqrtl_finite F
+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/sparc/sparc32/libnsl.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/libnsl.abilist
new file mode 100644
index 0000000000..a23db2aeaf
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/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/sparc/sparc32/libpthread.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
new file mode 100644
index 0000000000..7e121d45f8
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
@@ -0,0 +1,259 @@
+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.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_attr_setstack F
+GLIBC_2.3.3 pthread_attr_setstacksize 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/sparc/sparc32/libresolv.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/libresolv.abilist
new file mode 100644
index 0000000000..4d50e7c8c6
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/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/sparc/sparc32/librt.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
new file mode 100644
index 0000000000..07056199bc
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist
@@ -0,0 +1,50 @@
+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 GLIBC_2.3 A
+GLIBC_2.3 aio_cancel F
+GLIBC_2.3 aio_cancel64 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/sparc/sparc32/libthread_db.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/libthread_db.abilist
new file mode 100644
index 0000000000..a8a8c2c68d
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/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/sparc/sparc32/libutil.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/libutil.abilist
new file mode 100644
index 0000000000..89c67755c4
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/libutil.abilist
@@ -0,0 +1,7 @@
+GLIBC_2.0 GLIBC_2.0 A
+GLIBC_2.0 forkpty F
+GLIBC_2.0 login F
+GLIBC_2.0 login_tty F
+GLIBC_2.0 logout F
+GLIBC_2.0 logwtmp F
+GLIBC_2.0 openpty F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/localplt.data b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/localplt.data
new file mode 100644
index 0000000000..c9786fd6ea
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/localplt.data
@@ -0,0 +1,27 @@
+libc.so: _Q_add ?
+libc.so: _Q_cmp ?
+libc.so: _Q_div ?
+libc.so: _Q_feq ?
+libc.so: _Q_fge ?
+libc.so: _Q_fle ?
+libc.so: _Q_flt ?
+libc.so: _Q_fne ?
+libc.so: _Q_itoq ?
+libc.so: _Q_mul ?
+libc.so: _Q_sub ?
+libc.so: _Unwind_Find_FDE
+libc.so: calloc
+libc.so: free
+libc.so: malloc
+libc.so: memalign
+libc.so: realloc
+libm.so: matherr
+# The main malloc is interposed into the dynamic linker, for
+# allocations after the initial link (when dlopen is used).
+ld.so: malloc
+ld.so: calloc
+ld.so: realloc
+ld.so: free
+# The TLS-enabled version of these functions is interposed from libc.so.
+ld.so: _dl_signal_error
+ld.so: _dl_catch_error
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/lockf64.c b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/lockf64.c
new file mode 100644
index 0000000000..a88f5a784a
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/lockf64.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/i386/lockf64.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/lxstat.c b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/lxstat.c
new file mode 100644
index 0000000000..2371cd9719
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/lxstat.c
@@ -0,0 +1,2 @@
+#include <sysdeps/unix/sysv/linux/i386/lxstat.c>
+
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/makecontext.c b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/makecontext.c
new file mode 100644
index 0000000000..2756bf5346
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/makecontext.c
@@ -0,0 +1,92 @@
+/* Create new context.
+ Copyright (C) 2008-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by David S. Miller <davem@davemloft.net>, 2008.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#include <stdarg.h>
+#include <stdint.h>
+#include <ucontext.h>
+
+/* Sets up the outgoing arguments and the program counter for a user
+ context for the requested function call.
+
+ Returning to the correct parent context is pretty simple on
+ Sparc. We only need to link up the register windows correctly.
+ Since global registers are clobbered by calls, we need not be
+ concerned about those, and thus is all could be worked out without
+ using a trampoline.
+
+ Except that we must deal with the signal mask, thus a trampoline
+ is unavoidable. 32-bit stackframe layout:
+ +-----------------------------------------+
+ | 7th and further parameters |
+ +-----------------------------------------+
+ | backup storage for initial 6 parameters |
+ +-----------------------------------------+
+ | struct return pointer |
+ +-----------------------------------------+
+ | 8 incoming registers |
+ +-----------------------------------------+
+ | 8 local registers |
+ %sp --> +-----------------------------------------+
+
+*/
+
+void
+__makecontext (ucontext_t *ucp, void (*func) (void), int argc, ...)
+{
+ extern void __start_context (void);
+ unsigned long int *sp;
+ va_list ap;
+ int i;
+
+ sp = (unsigned long int *) (ucp->uc_stack.ss_sp + ucp->uc_stack.ss_size);
+ sp -= 16 + 7 + argc;
+ sp = (unsigned long int *) (((uintptr_t) sp) & ~(8 - 1));
+
+ for (i = 0; i < 8; i++)
+ sp[i + 8] = ucp->uc_mcontext.gregs[REG_O0 + i];
+
+ /* The struct return pointer is essentially unused, so we can
+ place the link there. */
+ sp[16] = (unsigned long int) ucp->uc_link;
+
+ va_start (ap, argc);
+
+ /* Fill in outgoing arguments, including those which will
+ end up being passed on the stack. */
+ for (i = 0; i < argc; i++)
+ {
+ unsigned long int arg = va_arg (ap, unsigned long int);
+ if (i < 6)
+ ucp->uc_mcontext.gregs[REG_O0 + i] = arg;
+ else
+ sp[i + 23 - 6] = arg;
+ }
+
+ va_end (ap);
+
+ ucp->uc_mcontext.gregs[REG_O6] = (unsigned long int) sp;
+
+ ucp->uc_mcontext.gregs[REG_O7] = ((unsigned long int) __start_context) - 8;
+
+ ucp->uc_mcontext.gregs[REG_PC] = (unsigned long int) func;
+ ucp->uc_mcontext.gregs[REG_nPC] = ucp->uc_mcontext.gregs[REG_PC] + 4;
+}
+
+weak_alias (__makecontext, makecontext)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/nldbl-abi.h b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/nldbl-abi.h
new file mode 100644
index 0000000000..bd985cc59c
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/nldbl-abi.h
@@ -0,0 +1,8 @@
+/* ABI version for long double switch.
+ This is used by the Versions and math_ldbl_opt.h files in
+ sysdeps/ieee754/ldbl-opt/. It gives the ABI version where
+ long double == double was replaced with proper long double
+ for libm *l functions and libc functions using long double. */
+
+#define NLDBL_VERSION GLIBC_2.4
+#define LONG_DOUBLE_COMPAT_VERSION GLIBC_2_4
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/pipe.S b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/pipe.S
new file mode 100644
index 0000000000..5d06aadbe7
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/pipe.S
@@ -0,0 +1,39 @@
+/* Copyright (C) 1997-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Miguel de Icaza <miguel@gnu.ai.mit.edu>, 1997.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+
+ .text
+ .globl __syscall_error
+ENTRY(__libc_pipe)
+ mov %o0, %o2 /* Save PIPEDES. */
+ mov SYS_ify(pipe),%g1
+ ta 0x10
+ bcc 1f
+ mov %o7, %g1
+ call __syscall_error
+ mov %g1, %o7
+1: st %o0, [%o2] /* PIPEDES[0] = %o0; */
+ st %o1, [%o2 + 4] /* PIPEDES[1] = %o1; */
+ retl
+ clr %o0
+END(__libc_pipe)
+
+weak_alias (__libc_pipe, __pipe)
+libc_hidden_def (__pipe)
+weak_alias (__libc_pipe, pipe)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/profil-counter.h b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/profil-counter.h
new file mode 100644
index 0000000000..44b655a964
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/profil-counter.h
@@ -0,0 +1,28 @@
+/* Low-level statistical profiling support function. Linux/SPARC version.
+ Copyright (C) 1997-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <signal.h>
+
+void
+__profil_counter (int signo, struct sigcontext *si)
+{
+ profil_count ((void *) si->si_regs.pc);
+}
+#ifndef __profil_counter
+weak_alias (__profil_counter, profil_counter)
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/readdir64.c b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/readdir64.c
new file mode 100644
index 0000000000..2ea26dd409
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/readdir64.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/i386/readdir64.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/readdir64_r.c b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/readdir64_r.c
new file mode 100644
index 0000000000..9f54f897e3
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/readdir64_r.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/i386/readdir64_r.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/register-dump.h b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/register-dump.h
new file mode 100644
index 0000000000..62485e8431
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/register-dump.h
@@ -0,0 +1,335 @@
+/* Dump registers.
+ Copyright (C) 1999-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Jakub Jelinek <jakub@redhat.com>, 1999.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sys/uio.h>
+#include <_itoa.h>
+
+/* We will print the register dump in this format:
+
+ PSR: XXXXXXXX PC: XXXXXXXX NPC: XXXXXXXX Y: XXXXXXXX
+ g0: 00000000 g1: XXXXXXXX g2: XXXXXXXX g3: XXXXXXXX
+ g4: XXXXXXXX g5: XXXXXXXX g6: XXXXXXXX g7: XXXXXXXX
+ o0: XXXXXXXX o1: XXXXXXXX o2: XXXXXXXX o3: XXXXXXXX
+ o4: XXXXXXXX o5: XXXXXXXX sp: XXXXXXXX o7: XXXXXXXX
+ l0: XXXXXXXX l1: XXXXXXXX l2: XXXXXXXX l3: XXXXXXXX
+ l4: XXXXXXXX l5: XXXXXXXX l6: XXXXXXXX l7: XXXXXXXX
+ i0: XXXXXXXX i1: XXXXXXXX i2: XXXXXXXX i3: XXXXXXXX
+ i4: XXXXXXXX i5: XXXXXXXX fp: XXXXXXXX i7: XXXXXXXX
+
+ followed on sun4, sun4c, sun4d, sun4m by:
+
+ Old mask: XXXXXXXX FSR: XXXXXXXX FPQ: XXXXXXXX
+ f0: XXXXXXXXXXXXXXXX f2: XXXXXXXXXXXXXXXX f4: XXXXXXXXXXXXXXXX
+ f6: XXXXXXXXXXXXXXXX f8: XXXXXXXXXXXXXXXX f10: XXXXXXXXXXXXXXXX
+ f12: XXXXXXXXXXXXXXXX f14: XXXXXXXXXXXXXXXX f16: XXXXXXXXXXXXXXXX
+ f18: XXXXXXXXXXXXXXXX f20: XXXXXXXXXXXXXXXX f22: XXXXXXXXXXXXXXXX
+ f24: XXXXXXXXXXXXXXXX f26: XXXXXXXXXXXXXXXX f28: XXXXXXXXXXXXXXXX
+ f30: XXXXXXXXXXXXXXXX
+
+ and on sun4u by:
+
+ Old mask: XXXXXXXX XFSR: XXXXXXXXXXXXXXXX GSR: XX FPRS: X
+ f0: XXXXXXXXXXXXXXXX f2: XXXXXXXXXXXXXXXX f4: XXXXXXXXXXXXXXXX
+ f6: XXXXXXXXXXXXXXXX f8: XXXXXXXXXXXXXXXX f10: XXXXXXXXXXXXXXXX
+ f12: XXXXXXXXXXXXXXXX f14: XXXXXXXXXXXXXXXX f16: XXXXXXXXXXXXXXXX
+ f18: XXXXXXXXXXXXXXXX f20: XXXXXXXXXXXXXXXX f22: XXXXXXXXXXXXXXXX
+ f24: XXXXXXXXXXXXXXXX f26: XXXXXXXXXXXXXXXX f28: XXXXXXXXXXXXXXXX
+ f30: XXXXXXXXXXXXXXXX f32: XXXXXXXXXXXXXXXX f34: XXXXXXXXXXXXXXXX
+ f36: XXXXXXXXXXXXXXXX f38: XXXXXXXXXXXXXXXX f40: XXXXXXXXXXXXXXXX
+ f42: XXXXXXXXXXXXXXXX f44: XXXXXXXXXXXXXXXX f46: XXXXXXXXXXXXXXXX
+ f48: XXXXXXXXXXXXXXXX f50: XXXXXXXXXXXXXXXX f52: XXXXXXXXXXXXXXXX
+ f54: XXXXXXXXXXXXXXXX f56: XXXXXXXXXXXXXXXX f58: XXXXXXXXXXXXXXXX
+ f60: XXXXXXXXXXXXXXXX f62: 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';
+}
+
+struct __siginfo_sparc32_fpu
+{
+ unsigned int si_float_regs[32];
+ unsigned int si_fsr;
+ unsigned int si_fpq;
+};
+struct __siginfo_sparc64_fpu
+{
+ unsigned int si_float_regs[64];
+ unsigned int si_xfsr;
+ unsigned int si_fsr;
+ unsigned int _pad1;
+ unsigned int si_gsr;
+ unsigned int _pad2;
+ unsigned int si_fprs;
+};
+
+static void
+register_dump (int fd, SIGCONTEXT ctx)
+{
+ char regs[36][8];
+ char fregs[68][8];
+ struct iovec iov[150];
+ size_t nr = 0;
+ int i;
+ unsigned int *r = (unsigned int *)
+ ctx->si_regs.u_regs[14];
+
+#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->si_regs.psr, regs[0], 8);
+ hexvalue (ctx->si_regs.pc, regs[1], 8);
+ hexvalue (ctx->si_regs.npc, regs[2], 8);
+ hexvalue (ctx->si_regs.y, regs[3], 8);
+ for (i = 1; i <= 15; i++)
+ hexvalue (ctx->si_regs.u_regs[i], regs[3+i], 8);
+ for (i = 0; i <= 15; i++)
+ hexvalue (r[i], regs[19+i], 8);
+ hexvalue (ctx->si_mask, regs[35], 8);
+
+ /* Generate the output. */
+ ADD_STRING ("Register dump:\n\n PSR: ");
+ ADD_MEM (regs[0], 8);
+ ADD_STRING (" PC: ");
+ ADD_MEM (regs[1], 8);
+ ADD_STRING (" NPC: ");
+ ADD_MEM (regs[2], 8);
+ ADD_STRING (" Y: ");
+ ADD_MEM (regs[3], 8);
+ ADD_STRING ("\n g0: 00000000 g1: ");
+ ADD_MEM (regs[4], 8);
+ ADD_STRING (" g2: ");
+ ADD_MEM (regs[5], 8);
+ ADD_STRING (" g3: ");
+ ADD_MEM (regs[6], 8);
+ ADD_STRING ("\n g4: ");
+ ADD_MEM (regs[7], 8);
+ ADD_STRING (" g5: ");
+ ADD_MEM (regs[8], 8);
+ ADD_STRING (" g6: ");
+ ADD_MEM (regs[9], 8);
+ ADD_STRING (" g7: ");
+ ADD_MEM (regs[10], 8);
+ ADD_STRING ("\n o0: ");
+ ADD_MEM (regs[11], 8);
+ ADD_STRING (" o1: ");
+ ADD_MEM (regs[12], 8);
+ ADD_STRING (" o2: ");
+ ADD_MEM (regs[13], 8);
+ ADD_STRING (" o3: ");
+ ADD_MEM (regs[14], 8);
+ ADD_STRING ("\n o4: ");
+ ADD_MEM (regs[15], 8);
+ ADD_STRING (" o5: ");
+ ADD_MEM (regs[16], 8);
+ ADD_STRING (" sp: ");
+ ADD_MEM (regs[17], 8);
+ ADD_STRING (" o7: ");
+ ADD_MEM (regs[18], 8);
+ ADD_STRING ("\n l0: ");
+ ADD_MEM (regs[19], 8);
+ ADD_STRING (" l1: ");
+ ADD_MEM (regs[20], 8);
+ ADD_STRING (" l2: ");
+ ADD_MEM (regs[21], 8);
+ ADD_STRING (" l3: ");
+ ADD_MEM (regs[22], 8);
+ ADD_STRING ("\n l4: ");
+ ADD_MEM (regs[23], 8);
+ ADD_STRING (" l5: ");
+ ADD_MEM (regs[24], 8);
+ ADD_STRING (" l6: ");
+ ADD_MEM (regs[25], 8);
+ ADD_STRING (" l7: ");
+ ADD_MEM (regs[26], 8);
+ ADD_STRING ("\n i0: ");
+ ADD_MEM (regs[27], 8);
+ ADD_STRING (" i1: ");
+ ADD_MEM (regs[28], 8);
+ ADD_STRING (" i2: ");
+ ADD_MEM (regs[29], 8);
+ ADD_STRING (" i3: ");
+ ADD_MEM (regs[30], 8);
+ ADD_STRING ("\n i4: ");
+ ADD_MEM (regs[31], 8);
+ ADD_STRING (" i5: ");
+ ADD_MEM (regs[32], 8);
+ ADD_STRING (" fp: ");
+ ADD_MEM (regs[33], 8);
+ ADD_STRING (" i7: ");
+ ADD_MEM (regs[34], 8);
+ ADD_STRING ("\n\n Old mask: ");
+ ADD_MEM (regs[35], 8);
+
+ if ((ctx->si_regs.psr & 0xff000000) == 0xff000000)
+ {
+ struct __siginfo_sparc64_fpu *f;
+
+ f = *(struct __siginfo_sparc64_fpu **) (ctx + 1);
+ if (f != NULL)
+ {
+ for (i = 0; i < 64; i++)
+ hexvalue (f->si_float_regs[i], fregs[i], 8);
+ hexvalue (f->si_xfsr, fregs[64], 8);
+ hexvalue (f->si_fsr, fregs[65], 8);
+ hexvalue (f->si_gsr, fregs[66], 2);
+ hexvalue (f->si_fprs, fregs[67], 1);
+ ADD_STRING (" XFSR: ");
+ ADD_MEM (fregs[64], 8);
+ ADD_MEM (fregs[65], 8);
+ ADD_STRING (" GSR: ");
+ ADD_MEM (fregs[66], 2);
+ ADD_STRING (" FPRS: ");
+ ADD_MEM (fregs[67], 1);
+ ADD_STRING ("\n f0: ");
+ ADD_MEM (fregs[0], 16);
+ ADD_STRING (" f2: ");
+ ADD_MEM (fregs[2], 16);
+ ADD_STRING (" f4: ");
+ ADD_MEM (fregs[4], 16);
+ ADD_STRING ("\n f6: ");
+ ADD_MEM (fregs[6], 16);
+ ADD_STRING (" f8: ");
+ ADD_MEM (fregs[8], 16);
+ ADD_STRING (" f10: ");
+ ADD_MEM (fregs[10], 16);
+ ADD_STRING ("\n f12: ");
+ ADD_MEM (fregs[12], 16);
+ ADD_STRING (" f14: ");
+ ADD_MEM (fregs[14], 16);
+ ADD_STRING (" f16: ");
+ ADD_MEM (fregs[16], 16);
+ ADD_STRING ("\n f18: ");
+ ADD_MEM (fregs[18], 16);
+ ADD_STRING (" f20: ");
+ ADD_MEM (fregs[20], 16);
+ ADD_STRING (" f22: ");
+ ADD_MEM (fregs[22], 16);
+ ADD_STRING ("\n f24: ");
+ ADD_MEM (fregs[24], 16);
+ ADD_STRING (" f26: ");
+ ADD_MEM (fregs[26], 16);
+ ADD_STRING (" f28: ");
+ ADD_MEM (fregs[28], 16);
+ ADD_STRING ("\n f30: ");
+ ADD_MEM (fregs[30], 16);
+ ADD_STRING (" f32: ");
+ ADD_MEM (fregs[32], 16);
+ ADD_STRING (" f34: ");
+ ADD_MEM (fregs[34], 16);
+ ADD_STRING ("\n f36: ");
+ ADD_MEM (fregs[36], 16);
+ ADD_STRING (" f38: ");
+ ADD_MEM (fregs[38], 16);
+ ADD_STRING (" f40: ");
+ ADD_MEM (fregs[40], 16);
+ ADD_STRING ("\n f42: ");
+ ADD_MEM (fregs[42], 16);
+ ADD_STRING (" f44: ");
+ ADD_MEM (fregs[44], 16);
+ ADD_STRING (" f46: ");
+ ADD_MEM (fregs[46], 16);
+ ADD_STRING ("\n f48: ");
+ ADD_MEM (fregs[48], 16);
+ ADD_STRING (" f50: ");
+ ADD_MEM (fregs[50], 16);
+ ADD_STRING (" f52: ");
+ ADD_MEM (fregs[52], 16);
+ ADD_STRING ("\n f54: ");
+ ADD_MEM (fregs[54], 16);
+ ADD_STRING (" f56: ");
+ ADD_MEM (fregs[56], 16);
+ ADD_STRING (" f58: ");
+ ADD_MEM (fregs[58], 16);
+ ADD_STRING ("\n f60: ");
+ ADD_MEM (fregs[60], 16);
+ ADD_STRING (" f62: ");
+ ADD_MEM (fregs[62], 16);
+ }
+ }
+ else
+ {
+ struct __siginfo_sparc32_fpu *f;
+
+ f = *(struct __siginfo_sparc32_fpu **) (ctx + 1);
+ if (f != NULL)
+ {
+ for (i = 0; i < 32; i++)
+ hexvalue (f->si_float_regs[i], fregs[i], 8);
+ hexvalue (f->si_fsr, fregs[64], 8);
+ hexvalue (f->si_fpq, fregs[65], 8);
+ ADD_STRING (" FSR: ");
+ ADD_MEM (fregs[64], 8);
+ ADD_STRING (" FPQ: ");
+ ADD_MEM (fregs[65], 8);
+ ADD_STRING ("\n f0: ");
+ ADD_MEM (fregs[0], 16);
+ ADD_STRING (" f2: ");
+ ADD_MEM (fregs[2], 16);
+ ADD_STRING (" f4: ");
+ ADD_MEM (fregs[4], 16);
+ ADD_STRING ("\n f6: ");
+ ADD_MEM (fregs[6], 16);
+ ADD_STRING (" f8: ");
+ ADD_MEM (fregs[8], 16);
+ ADD_STRING (" f10: ");
+ ADD_MEM (fregs[10], 16);
+ ADD_STRING ("\n f12: ");
+ ADD_MEM (fregs[12], 16);
+ ADD_STRING (" f14: ");
+ ADD_MEM (fregs[14], 16);
+ ADD_STRING (" f16: ");
+ ADD_MEM (fregs[16], 16);
+ ADD_STRING ("\n f18: ");
+ ADD_MEM (fregs[18], 16);
+ ADD_STRING (" f20: ");
+ ADD_MEM (fregs[20], 16);
+ ADD_STRING (" f22: ");
+ ADD_MEM (fregs[22], 16);
+ ADD_STRING ("\n f24: ");
+ ADD_MEM (fregs[24], 16);
+ ADD_STRING (" f26: ");
+ ADD_MEM (fregs[26], 16);
+ ADD_STRING (" f28: ");
+ ADD_MEM (fregs[28], 16);
+ ADD_STRING ("\n f30: ");
+ ADD_MEM (fregs[30], 16);
+ }
+ }
+
+ 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/sparc/sparc32/scandir64.c b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/scandir64.c
new file mode 100644
index 0000000000..506fd8877c
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/scandir64.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/i386/scandir64.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/setcontext.S b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/setcontext.S
new file mode 100644
index 0000000000..1a5f2de823
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/setcontext.S
@@ -0,0 +1,118 @@
+/* Install given context.
+ Copyright (C) 2008-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by David S. Miller <davem@davemloft.net>, 2008.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#include <sys/trap.h>
+
+#include "ucontext_i.h"
+
+
+/* int __setcontext (const ucontext_t *ucp)
+
+ Restores the machine context in UCP and thereby resumes execution
+ in that context.
+
+ This implementation is intended to be used for *synchronous* context
+ switches only. Therefore, it does not have to restore anything
+ other than the PRESERVED state. */
+
+ENTRY(__setcontext)
+ save %sp, -112, %sp
+
+ mov SIG_SETMASK, %o0
+ add %i0, UC_SIGMASK, %o1
+ clr %o2
+ mov 8, %o3
+ mov __NR_rt_sigprocmask, %g1
+ ta 0x10
+
+ /* This is a bit on the expensive side, and we could optimize
+ the unwind similar to how the 32-bit sparc longjmp code
+ does if performance of this routine really matters. */
+ ta ST_FLUSH_WINDOWS
+
+ ldub [%i0 + UC_MCONTEXT + MC_FPREGS + FPU_EN], %g1
+ cmp %g1, 0
+ be 1f
+ nop
+ ld [%i0 + UC_MCONTEXT + MC_FPREGS + FPU_FSR], %fsr
+ ldd [%i0 + UC_MCONTEXT + MC_FPREGS + FPU_D0], %f0
+ ldd [%i0 + UC_MCONTEXT + MC_FPREGS + FPU_D2], %f2
+ ldd [%i0 + UC_MCONTEXT + MC_FPREGS + FPU_D4], %f4
+ ldd [%i0 + UC_MCONTEXT + MC_FPREGS + FPU_D6], %f6
+ ldd [%i0 + UC_MCONTEXT + MC_FPREGS + FPU_D8], %f8
+ ldd [%i0 + UC_MCONTEXT + MC_FPREGS + FPU_D10], %f10
+ ldd [%i0 + UC_MCONTEXT + MC_FPREGS + FPU_D12], %f12
+ ldd [%i0 + UC_MCONTEXT + MC_FPREGS + FPU_D14], %f14
+ ldd [%i0 + UC_MCONTEXT + MC_FPREGS + FPU_D16], %f16
+ ldd [%i0 + UC_MCONTEXT + MC_FPREGS + FPU_D18], %f18
+ ldd [%i0 + UC_MCONTEXT + MC_FPREGS + FPU_D20], %f20
+ ldd [%i0 + UC_MCONTEXT + MC_FPREGS + FPU_D22], %f22
+ ldd [%i0 + UC_MCONTEXT + MC_FPREGS + FPU_D24], %f24
+ ldd [%i0 + UC_MCONTEXT + MC_FPREGS + FPU_D26], %f26
+ ldd [%i0 + UC_MCONTEXT + MC_FPREGS + FPU_D28], %f28
+ ldd [%i0 + UC_MCONTEXT + MC_FPREGS + FPU_D30], %f30
+1:
+ ld [%i0 + UC_MCONTEXT + MC_GREGS + GREG_Y], %g1
+ wr %g1, 0x0, %y
+
+ /* We specifically do not restore %g1 since we need it here as
+ a temporary. */
+ ld [%i0 + UC_MCONTEXT + MC_GREGS + GREG_G2], %g2
+ ld [%i0 + UC_MCONTEXT + MC_GREGS + GREG_G3], %g3
+ ld [%i0 + UC_MCONTEXT + MC_GREGS + GREG_G4], %g4
+ ld [%i0 + UC_MCONTEXT + MC_GREGS + GREG_G5], %g5
+ ld [%i0 + UC_MCONTEXT + MC_GREGS + GREG_G6], %g6
+ ld [%i0 + UC_MCONTEXT + MC_GREGS + GREG_G7], %g7
+ ld [%i0 + UC_MCONTEXT + MC_GREGS + GREG_O1], %i1
+ ld [%i0 + UC_MCONTEXT + MC_GREGS + GREG_O2], %i2
+ ld [%i0 + UC_MCONTEXT + MC_GREGS + GREG_O3], %i3
+ ld [%i0 + UC_MCONTEXT + MC_GREGS + GREG_O4], %i4
+ ld [%i0 + UC_MCONTEXT + MC_GREGS + GREG_O5], %i5
+ ld [%i0 + UC_MCONTEXT + MC_GREGS + GREG_O6], %i6
+ restore
+ ld [%o0 + UC_MCONTEXT + MC_GREGS + GREG_O7], %o7
+ ld [%o0 + UC_MCONTEXT + MC_GREGS + GREG_PC], %g1
+ jmpl %g1, %g0
+ ld [%o0 + UC_MCONTEXT + MC_GREGS + GREG_O0], %o0
+END(__setcontext)
+
+weak_alias (__setcontext, setcontext)
+
+/* This is the helper code which gets called if a function which is
+ registered with 'makecontext' returns. In this case we have to
+ install the context listed in the uc_link element of the context
+ 'makecontext' manipulated at the time of the 'makecontext' call.
+ If the pointer is NULL the process must terminate. */
+
+ENTRY(__start_context)
+ ld [%sp + (16 * 4)], %g1
+ cmp %g1, 0
+ be,a 1f
+ clr %o0
+ call __setcontext
+ mov %g1, %o0
+ /* If this returns (which can happen if the syscall fails) we'll
+ exit the program with the return error value (-1). */
+1: call HIDDEN_JUMPTARGET(exit)
+ nop
+ /* The 'exit' call should never return. In case it does cause
+ the process to terminate. */
+ unimp
+END(__start_context)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/shlib-versions b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/shlib-versions
new file mode 100644
index 0000000000..ca5d15b1df
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/shlib-versions
@@ -0,0 +1 @@
+ld=ld-linux.so.2
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/sigaction.c b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/sigaction.c
new file mode 100644
index 0000000000..295bfb2d15
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/sigaction.c
@@ -0,0 +1,88 @@
+/* POSIX.1 sigaction call for Linux/SPARC.
+ Copyright (C) 1997-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Miguel de Icaza <miguel@nuclecu.unam.mx>, 1997.
+
+ 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 <syscall.h>
+#include <sys/signal.h>
+#include <errno.h>
+#include <kernel_sigaction.h>
+#include <sysdep.h>
+
+static void __rt_sigreturn_stub (void);
+static void __sigreturn_stub (void);
+
+int
+__libc_sigaction (int sig, const struct sigaction *act, struct sigaction *oact)
+{
+ struct kernel_sigaction kact, koact;
+ unsigned long stub = 0;
+ int ret;
+
+ if (act)
+ {
+ kact.k_sa_handler = act->sa_handler;
+ memcpy (&kact.sa_mask, &act->sa_mask, sizeof (sigset_t));
+ if (((kact.sa_flags = act->sa_flags) & SA_SIGINFO) != 0)
+ stub = (unsigned long) &__rt_sigreturn_stub;
+ else
+ stub = (unsigned long) &__sigreturn_stub;
+ stub -= 8;
+ kact.sa_restorer = NULL;
+ }
+
+ /* XXX The size argument hopefully will have to be changed to the
+ real size of the user-level sigset_t. */
+ ret = INLINE_SYSCALL (rt_sigaction, 5, sig, act ? &kact : 0,
+ oact ? &koact : 0, stub, _NSIG / 8);
+
+ if (oact && ret >= 0)
+ {
+ oact->sa_handler = koact.k_sa_handler;
+ memcpy (&oact->sa_mask, &koact.sa_mask, sizeof (sigset_t));
+ oact->sa_flags = koact.sa_flags;
+ oact->sa_restorer = koact.sa_restorer;
+ }
+ return ret;
+}
+libc_hidden_def (__libc_sigaction)
+
+#include <nptl/sigaction.c>
+
+
+static
+inhibit_stack_protector
+void
+__rt_sigreturn_stub (void)
+{
+ __asm__ ("mov %0, %%g1\n\t"
+ "ta 0x10\n\t"
+ : /* no outputs */
+ : "i" (__NR_rt_sigreturn));
+}
+
+static
+inhibit_stack_protector
+void
+__sigreturn_stub (void)
+{
+ __asm__ ("mov %0, %%g1\n\t"
+ "ta 0x10\n\t"
+ : /* no outputs */
+ : "i" (__NR_sigreturn));
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/sigcontextinfo.h b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/sigcontextinfo.h
new file mode 100644
index 0000000000..99cf6ab7f4
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/sigcontextinfo.h
@@ -0,0 +1,31 @@
+/* Copyright (C) 1999-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Jakub Jelinek <jakub@redhat.com>, 1999.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#define SIGCONTEXT struct sigcontext *
+#define SIGCONTEXT_EXTRA_ARGS
+#define GET_PC(__ctx) ((void *) ((__ctx)->si_regs.pc))
+#define FIRST_FRAME_POINTER \
+ ({ void *ret; \
+ asm volatile ("ta 3; add %%fp, 56, %0" : "=r" (ret)); ret; })
+#define ADVANCE_STACK_FRAME(__next) \
+ ((void *) (((unsigned *)(__next))+14))
+
+#define GET_STACK(__ctx) ((void *) (__ctx)->si_regs.u_regs[14])
+#define GET_FRAME(__ctx) ADVANCE_STACK_FRAME (GET_STACK(__ctx))
+#define CALL_SIGHANDLER(handler, signo, ctx) \
+ (handler)((signo), SIGCONTEXT_EXTRA_ARGS (ctx))
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/fpu/Implies b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/fpu/Implies
new file mode 100644
index 0000000000..70568c5d17
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/fpu/Implies
@@ -0,0 +1,3 @@
+# We must list this here to move it ahead of the ldbl-opt code.
+sparc/sparc32/sparcv9/fpu
+sparc/sparc32/fpu
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/fpu/multiarch/Implies b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/fpu/multiarch/Implies
new file mode 100644
index 0000000000..a380d8a739
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/fpu/multiarch/Implies
@@ -0,0 +1,4 @@
+# We must list this here to move it ahead of the ldbl-opt code.
+sparc/sparc32/sparcv9/fpu/multiarch
+sparc/sparc32/sparcv9/fpu
+sparc/sparc32/fpu
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/get_clockfreq.c b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/get_clockfreq.c
new file mode 100644
index 0000000000..4191085d1f
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/get_clockfreq.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/sparc/sparc64/get_clockfreq.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/swapcontext.S b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/swapcontext.S
new file mode 100644
index 0000000000..7ef57e989b
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/swapcontext.S
@@ -0,0 +1,118 @@
+/* Save current context and install the given one.
+ Copyright (C) 2008-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by David S. Miller <davem@davemloft.net>, 2008.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#include <sys/trap.h>
+
+#include "ucontext_i.h"
+
+
+/* int __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)
+ save %sp, -112, %sp
+ ta ST_FLUSH_WINDOWS
+ st %g0, [%i0 + UC_MCONTEXT + MC_GREGS + GREG_PSR]
+ add %i7, 8, %o0
+ st %o0, [%i0 + UC_MCONTEXT + MC_GREGS + GREG_PC]
+ add %o0, 4, %o0
+ st %o0, [%i0 + UC_MCONTEXT + MC_GREGS + GREG_NPC]
+ rd %y, %o1
+ st %o1, [%i0 + UC_MCONTEXT + MC_GREGS + GREG_Y]
+ st %g1, [%i0 + UC_MCONTEXT + MC_GREGS + GREG_G1]
+ st %g2, [%i0 + UC_MCONTEXT + MC_GREGS + GREG_G2]
+ st %g3, [%i0 + UC_MCONTEXT + MC_GREGS + GREG_G3]
+ st %g4, [%i0 + UC_MCONTEXT + MC_GREGS + GREG_G4]
+ st %g5, [%i0 + UC_MCONTEXT + MC_GREGS + GREG_G5]
+ st %g6, [%i0 + UC_MCONTEXT + MC_GREGS + GREG_G6]
+ st %g7, [%i0 + UC_MCONTEXT + MC_GREGS + GREG_G7]
+ st %g0, [%i0 + UC_MCONTEXT + MC_GREGS + GREG_O0]
+ st %i1, [%i0 + UC_MCONTEXT + MC_GREGS + GREG_O1]
+ st %i2, [%i0 + UC_MCONTEXT + MC_GREGS + GREG_O2]
+ st %i3, [%i0 + UC_MCONTEXT + MC_GREGS + GREG_O3]
+ st %i4, [%i0 + UC_MCONTEXT + MC_GREGS + GREG_O4]
+ st %i5, [%i0 + UC_MCONTEXT + MC_GREGS + GREG_O5]
+ st %i6, [%i0 + UC_MCONTEXT + MC_GREGS + GREG_O6]
+ st %i7, [%i0 + UC_MCONTEXT + MC_GREGS + GREG_O7]
+ st %g0, [%i0 + UC_MCONTEXT + MC_GWINS]
+ stb %g0, [%i0 + UC_MCONTEXT + MC_FPREGS + FPU_EN]
+ st %g0, [%i0 + UC_MCONTEXT + MC_XRS + XRS_ID]
+ st %g0, [%i0 + UC_MCONTEXT + MC_XRS + XRS_PTR]
+
+ mov SIG_SETMASK, %o0
+ add %i1, UC_SIGMASK, %o1
+ add %i0, UC_SIGMASK, %o2
+ mov 8, %o3
+ mov __NR_rt_sigprocmask, %g1
+ ta 0x10
+
+ mov %i1, %i0
+ ldub [%i0 + UC_MCONTEXT + MC_FPREGS + FPU_EN], %g1
+ cmp %g1, 0
+ be 1f
+ nop
+ ld [%i0 + UC_MCONTEXT + MC_FPREGS + FPU_FSR], %fsr
+ ldd [%i0 + UC_MCONTEXT + MC_FPREGS + FPU_D0], %f0
+ ldd [%i0 + UC_MCONTEXT + MC_FPREGS + FPU_D2], %f2
+ ldd [%i0 + UC_MCONTEXT + MC_FPREGS + FPU_D4], %f4
+ ldd [%i0 + UC_MCONTEXT + MC_FPREGS + FPU_D6], %f6
+ ldd [%i0 + UC_MCONTEXT + MC_FPREGS + FPU_D8], %f8
+ ldd [%i0 + UC_MCONTEXT + MC_FPREGS + FPU_D10], %f10
+ ldd [%i0 + UC_MCONTEXT + MC_FPREGS + FPU_D12], %f12
+ ldd [%i0 + UC_MCONTEXT + MC_FPREGS + FPU_D14], %f14
+ ldd [%i0 + UC_MCONTEXT + MC_FPREGS + FPU_D16], %f16
+ ldd [%i0 + UC_MCONTEXT + MC_FPREGS + FPU_D18], %f18
+ ldd [%i0 + UC_MCONTEXT + MC_FPREGS + FPU_D20], %f20
+ ldd [%i0 + UC_MCONTEXT + MC_FPREGS + FPU_D22], %f22
+ ldd [%i0 + UC_MCONTEXT + MC_FPREGS + FPU_D24], %f24
+ ldd [%i0 + UC_MCONTEXT + MC_FPREGS + FPU_D26], %f26
+ ldd [%i0 + UC_MCONTEXT + MC_FPREGS + FPU_D28], %f28
+ ldd [%i0 + UC_MCONTEXT + MC_FPREGS + FPU_D30], %f30
+1:
+ ld [%i0 + UC_MCONTEXT + MC_GREGS + GREG_Y], %g1
+ wr %g1, 0x0, %y
+ ld [%i0 + UC_MCONTEXT + MC_GREGS + GREG_G2], %g2
+ ld [%i0 + UC_MCONTEXT + MC_GREGS + GREG_G3], %g3
+ ld [%i0 + UC_MCONTEXT + MC_GREGS + GREG_G4], %g4
+ ld [%i0 + UC_MCONTEXT + MC_GREGS + GREG_G5], %g5
+ ld [%i0 + UC_MCONTEXT + MC_GREGS + GREG_G6], %g6
+ ld [%i0 + UC_MCONTEXT + MC_GREGS + GREG_G7], %g7
+ ld [%i0 + UC_MCONTEXT + MC_GREGS + GREG_O1], %i1
+ ld [%i0 + UC_MCONTEXT + MC_GREGS + GREG_O2], %i2
+ ld [%i0 + UC_MCONTEXT + MC_GREGS + GREG_O3], %i3
+ ld [%i0 + UC_MCONTEXT + MC_GREGS + GREG_O4], %i4
+ ld [%i0 + UC_MCONTEXT + MC_GREGS + GREG_O5], %i5
+ ld [%i0 + UC_MCONTEXT + MC_GREGS + GREG_O6], %i6
+ restore
+ ld [%o0 + UC_MCONTEXT + MC_GREGS + GREG_O7], %o7
+ ld [%o0 + UC_MCONTEXT + MC_GREGS + GREG_PC], %g1
+ jmpl %g1, %g0
+ ld [%o0 + UC_MCONTEXT + MC_GREGS + GREG_O0], %o0
+END(__swapcontext)
+
+weak_alias (__swapcontext, swapcontext)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/syscall.S b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/syscall.S
new file mode 100644
index 0000000000..5a2ea17d8e
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/syscall.S
@@ -0,0 +1,37 @@
+/* Copyright (C) 1991-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+
+ .text
+ .globl __syscall_error
+ENTRY(syscall)
+ mov %o0, %g1
+ mov %o1, %o0
+ mov %o2, %o1
+ mov %o3, %o2
+ mov %o4, %o3
+ mov %o5, %o4
+ ld [%sp + 92], %o5
+ ta 0x10
+ bcc 1f
+ mov %o7, %g1
+ call __syscall_error
+ mov %g1, %o7
+1: retl
+ nop
+END(syscall)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/syscalls.list b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/syscalls.list
new file mode 100644
index 0000000000..0b6095ffab
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/syscalls.list
@@ -0,0 +1,19 @@
+# File name Caller Syscall name # args Strong name Weak names
+
+chown - chown32 i:sii __chown chown
+lchown - lchown32 i:sii __lchown lchown
+fchown - fchown32 i:iii __fchown fchown
+
+getegid - getegid32 Ei: __getegid getegid
+geteuid - geteuid32 Ei: __geteuid geteuid
+getgid - getgid32 Ei: __getgid getgid
+getuid - getuid32 Ei: __getuid getuid
+getresuid - getresuid32 3 getresuid
+getresgid - getresgid32 3 getresgid
+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
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h
new file mode 100644
index 0000000000..c513212f1e
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h
@@ -0,0 +1,111 @@
+/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Jakub Jelinek <jakub@redhat.com>, 2002.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#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; \
+ .globl __syscall_error; \
+ENTRY(name) \
+ ld [%g7 + MULTIPLE_THREADS_OFFSET], %g1;\
+ cmp %g1, 0; \
+ bne 1f; \
+.type __##syscall_name##_nocancel,@function; \
+.globl __##syscall_name##_nocancel; \
+__##syscall_name##_nocancel: \
+ mov SYS_ify(syscall_name), %g1; \
+ ta 0x10; \
+ bcc 8f; \
+ mov %o7, %g1; \
+ call __syscall_error; \
+ mov %g1, %o7; \
+8: jmpl %o7 + 8, %g0; \
+ nop; \
+.size __##syscall_name##_nocancel,.-__##syscall_name##_nocancel;\
+1: save %sp, -96, %sp; \
+ cfi_def_cfa_register(%fp); \
+ cfi_window_save; \
+ cfi_register(%o7, %i7); \
+ CENABLE; \
+ nop; \
+ mov %o0, %l0; \
+ COPY_ARGS_##args \
+ mov SYS_ify(syscall_name), %g1; \
+ ta 0x10; \
+ bcc 1f; \
+ mov %o0, %l1; \
+ CDISABLE; \
+ mov %l0, %o0; \
+ call __syscall_error; \
+ mov %l1, %o0; \
+ b 2f; \
+ mov -1, %l1; \
+1: CDISABLE; \
+ mov %l0, %o0; \
+2: jmpl %i7 + 8, %g0; \
+ restore %g0, %l1, %o0;
+
+
+# if IS_IN (libpthread)
+# define CENABLE call __pthread_enable_asynccancel
+# define CDISABLE call __pthread_disable_asynccancel
+# elif IS_IN (libc)
+# define CENABLE call __libc_enable_asynccancel
+# define CDISABLE call __libc_disable_asynccancel
+# elif IS_IN (librt)
+# define CENABLE call __librt_enable_asynccancel
+# define CDISABLE call __librt_disable_asynccancel
+# else
+# error Unsupported library
+# endif
+
+#define COPY_ARGS_0 /* Nothing */
+#define COPY_ARGS_1 COPY_ARGS_0 mov %i0, %o0;
+#define COPY_ARGS_2 COPY_ARGS_1 mov %i1, %o1;
+#define COPY_ARGS_3 COPY_ARGS_2 mov %i2, %o2;
+#define COPY_ARGS_4 COPY_ARGS_3 mov %i3, %o3;
+#define COPY_ARGS_5 COPY_ARGS_4 mov %i4, %o4;
+#define COPY_ARGS_6 COPY_ARGS_5 mov %i5, %o5;
+
+# ifndef __ASSEMBLER__
+# define SINGLE_THREAD_P \
+ __builtin_expect (THREAD_GETMEM (THREAD_SELF, \
+ header.multiple_threads) == 0, 1)
+# else
+# define SINGLE_THREAD_P ld [%g7 + MULTIPLE_THREADS_OFFSET], %g1
+# 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/sparc/sparc32/sysdep.h b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h
new file mode 100644
index 0000000000..30aab691e7
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h
@@ -0,0 +1,147 @@
+/* Copyright (C) 1997-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Miguel de Icaza <miguel@gnu.ai.mit.edu>, January 1997.
+
+ 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_SPARC32_SYSDEP_H
+#define _LINUX_SPARC32_SYSDEP_H 1
+
+#include <sysdeps/unix/sysv/linux/sparc/sysdep.h>
+
+#if IS_IN (rtld)
+# include <dl-sysdep.h> /* Defines RTLD_PRIVATE_ERRNO. */
+#endif
+#include <tls.h>
+
+#undef SYS_ify
+#define SYS_ify(syscall_name) __NR_##syscall_name
+
+#ifdef __ASSEMBLER__
+
+#define LOADSYSCALL(x) mov __NR_##x, %g1
+
+#undef PSEUDO
+#define PSEUDO(name, syscall_name, args) \
+ .text; \
+ENTRY(name); \
+ LOADSYSCALL(syscall_name); \
+ ta 0x10; \
+ bcc 1f; \
+ nop; \
+ SYSCALL_ERROR_HANDLER \
+1:
+
+#undef PSEUDO_NOERRNO
+#define PSEUDO_NOERRNO(name, syscall_name, args)\
+ .text; \
+ENTRY(name); \
+ LOADSYSCALL(syscall_name); \
+ ta 0x10;
+
+#undef PSEUDO_ERRVAL
+#define PSEUDO_ERRVAL(name, syscall_name, args) \
+ .text; \
+ENTRY(name); \
+ LOADSYSCALL(syscall_name); \
+ ta 0x10;
+
+#undef PSEUDO_END
+#define PSEUDO_END(name) \
+ END(name)
+
+#ifndef PIC
+# define SYSCALL_ERROR_HANDLER \
+ mov %o7, %g1; \
+ call __syscall_error; \
+ mov %g1, %o7;
+#else
+# if RTLD_PRIVATE_ERRNO
+# define SYSCALL_ERROR_HANDLER \
+0: SETUP_PIC_REG_LEAF(o2,g1) \
+ sethi %gdop_hix22(rtld_errno), %g1; \
+ xor %g1, %gdop_lox10(rtld_errno), %g1;\
+ ld [%o2 + %g1], %g1, %gdop(rtld_errno); \
+ st %o0, [%g1]; \
+ jmp %o7 + 8; \
+ mov -1, %o0;
+# elif defined _LIBC_REENTRANT
+
+# if IS_IN (libc)
+# define SYSCALL_ERROR_ERRNO __libc_errno
+# else
+# define SYSCALL_ERROR_ERRNO errno
+# endif
+# define SYSCALL_ERROR_HANDLER \
+0: SETUP_PIC_REG_LEAF(o2,g1) \
+ sethi %tie_hi22(SYSCALL_ERROR_ERRNO), %g1; \
+ add %g1, %tie_lo10(SYSCALL_ERROR_ERRNO), %g1; \
+ ld [%o2 + %g1], %g1, %tie_ld(SYSCALL_ERROR_ERRNO); \
+ st %o0, [%g7 + %g1]; \
+ jmp %o7 + 8; \
+ mov -1, %o0;
+# else
+# define SYSCALL_ERROR_HANDLER \
+0: SETUP_PIC_REG_LEAF(o2,g1) \
+ sethi %gdop_hix22(errno), %g1;\
+ xor %g1, %gdop_lox10(errno), %g1;\
+ ld [%o2 + %g1], %g1, %gdop(errno);\
+ st %o0, [%g1]; \
+ jmp %o7 + 8; \
+ mov -1, %o0;
+# endif /* _LIBC_REENTRANT */
+#endif /* PIC */
+
+
+#else /* __ASSEMBLER__ */
+
+#define __SYSCALL_STRING \
+ "ta 0x10;" \
+ "bcc 1f;" \
+ " mov 0, %%g1;" \
+ "sub %%g0, %%o0, %%o0;" \
+ "mov 1, %%g1;" \
+ "1:"
+
+#define __SYSCALL_CLOBBERS \
+ "f0", "f1", "f2", "f3", "f4", "f5", "f6", "f7", \
+ "f8", "f9", "f10", "f11", "f12", "f13", "f14", "f15", \
+ "f16", "f17", "f18", "f19", "f20", "f21", "f22", "f23", \
+ "f24", "f25", "f26", "f27", "f28", "f29", "f30", "f31", \
+ "cc", "memory"
+
+#endif /* __ASSEMBLER__ */
+
+/* Pointer mangling support. */
+#if IS_IN (rtld)
+/* We cannot use the thread descriptor because in ld.so we use setjmp
+ earlier than the descriptor is initialized. */
+#else
+# ifdef __ASSEMBLER__
+# define PTR_MANGLE(dreg, reg, tmpreg) \
+ ld [%g7 + POINTER_GUARD], tmpreg; \
+ xor reg, tmpreg, dreg
+# define PTR_DEMANGLE(dreg, reg, tmpreg) PTR_MANGLE (dreg, reg, tmpreg)
+# define PTR_MANGLE2(dreg, reg, tmpreg) \
+ xor reg, tmpreg, dreg
+# define PTR_DEMANGLE2(dreg, reg, tmpreg) PTR_MANGLE2 (dreg, reg, tmpreg)
+# else
+# define PTR_MANGLE(var) \
+ (var) = (__typeof (var)) ((uintptr_t) (var) ^ THREAD_GET_POINTER_GUARD ())
+# define PTR_DEMANGLE(var) PTR_MANGLE (var)
+# endif
+#endif
+
+#endif /* linux/sparc/sysdep.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/ucontext_i.sym b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/ucontext_i.sym
new file mode 100644
index 0000000000..544030ce8b
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/ucontext_i.sym
@@ -0,0 +1,61 @@
+#include <stddef.h>
+#include <signal.h>
+#include <sys/ucontext.h>
+
+--
+
+SIG_BLOCK
+SIG_SETMASK
+
+UC_FLAGS offsetof (ucontext_t, uc_flags)
+UC_LINK offsetof (ucontext_t, uc_link)
+UC_SIGMASK offsetof (ucontext_t, uc_sigmask)
+UC_STACK offsetof (ucontext_t, uc_stack)
+UC_MCONTEXT offsetof (ucontext_t, uc_mcontext)
+MC_GREGS offsetof (mcontext_t, gregs)
+MC_GWINS offsetof (mcontext_t, gwins)
+MC_FPREGS offsetof (mcontext_t, fpregs)
+MC_XRS offsetof (mcontext_t, xrs)
+MC_FILLER offsetof (mcontext_t, filler)
+GREG_PSR (REG_PSR * sizeof(greg_t))
+GREG_PC (REG_PC * sizeof(greg_t))
+GREG_NPC (REG_nPC * sizeof(greg_t))
+GREG_Y (REG_Y * sizeof(greg_t))
+GREG_G1 (REG_G1 * sizeof(greg_t))
+GREG_G2 (REG_G2 * sizeof(greg_t))
+GREG_G3 (REG_G3 * sizeof(greg_t))
+GREG_G4 (REG_G4 * sizeof(greg_t))
+GREG_G5 (REG_G5 * sizeof(greg_t))
+GREG_G6 (REG_G6 * sizeof(greg_t))
+GREG_G7 (REG_G7 * sizeof(greg_t))
+GREG_O0 (REG_O0 * sizeof(greg_t))
+GREG_O1 (REG_O1 * sizeof(greg_t))
+GREG_O2 (REG_O2 * sizeof(greg_t))
+GREG_O3 (REG_O3 * sizeof(greg_t))
+GREG_O4 (REG_O4 * sizeof(greg_t))
+GREG_O5 (REG_O5 * sizeof(greg_t))
+GREG_O6 (REG_O6 * sizeof(greg_t))
+GREG_O7 (REG_O7 * sizeof(greg_t))
+FPU_D0 offsetof (fpregset_t, fpu_fr.fpu_dregs[0])
+FPU_D2 offsetof (fpregset_t, fpu_fr.fpu_dregs[1])
+FPU_D4 offsetof (fpregset_t, fpu_fr.fpu_dregs[2])
+FPU_D6 offsetof (fpregset_t, fpu_fr.fpu_dregs[3])
+FPU_D8 offsetof (fpregset_t, fpu_fr.fpu_dregs[4])
+FPU_D10 offsetof (fpregset_t, fpu_fr.fpu_dregs[5])
+FPU_D12 offsetof (fpregset_t, fpu_fr.fpu_dregs[6])
+FPU_D14 offsetof (fpregset_t, fpu_fr.fpu_dregs[7])
+FPU_D16 offsetof (fpregset_t, fpu_fr.fpu_dregs[8])
+FPU_D18 offsetof (fpregset_t, fpu_fr.fpu_dregs[9])
+FPU_D20 offsetof (fpregset_t, fpu_fr.fpu_dregs[10])
+FPU_D22 offsetof (fpregset_t, fpu_fr.fpu_dregs[11])
+FPU_D24 offsetof (fpregset_t, fpu_fr.fpu_dregs[12])
+FPU_D26 offsetof (fpregset_t, fpu_fr.fpu_dregs[13])
+FPU_D28 offsetof (fpregset_t, fpu_fr.fpu_dregs[14])
+FPU_D30 offsetof (fpregset_t, fpu_fr.fpu_dregs[15])
+FPU_Q offsetof (fpregset_t, fpu_q)
+FPU_FSR offsetof (fpregset_t, fpu_fsr)
+FPU_QCNT offsetof (fpregset_t, fpu_qcnt)
+FPU_Q_ENTRY_SZ offsetof (fpregset_t, fpu_q_entrysize)
+FPU_EN offsetof (fpregset_t, fpu_en)
+XRS_ID offsetof (xrs_t, xrs_id)
+XRS_PTR offsetof (xrs_t, xrs_ptr)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S
new file mode 100644
index 0000000000..fb43b1766f
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S
@@ -0,0 +1,41 @@
+/* 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>
+#include <tcb-offsets.h>
+
+ .text
+ .globl __syscall_error
+ENTRY(__libc_vfork)
+ LOADSYSCALL(vfork)
+ ta 0x10
+ bcc 2f
+ mov %o7, %g1
+ call __syscall_error
+ mov %g1, %o7
+2: sub %o1, 1, %o1
+ andcc %o0, %o1, %o0
+1: retl
+ nop
+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/sparc/sparc32/xstat.c b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/xstat.c
new file mode 100644
index 0000000000..e9869f5508
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/xstat.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/i386/xstat.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/Implies b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/Implies
new file mode 100644
index 0000000000..8d91c80097
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/Implies
@@ -0,0 +1 @@
+unix/sysv/linux/wordsize-64
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/Makefile b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/Makefile
new file mode 100644
index 0000000000..715af3df7b
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/Makefile
@@ -0,0 +1,9 @@
+# See Makeconfig regarding the use of default-abi.
+default-abi := 64
+
+sysdep-CFLAGS += -fcall-used-g6
+LD += -melf64_sparc
+
+ifeq ($(subdir),stdlib)
+sysdep_routines += __start_context
+endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/Versions b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/Versions
new file mode 100644
index 0000000000..fbea1bb2ef
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/Versions
@@ -0,0 +1,19 @@
+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.2.2 {
+ # w*
+ wordexp;
+ }
+}
+
+librt {
+ GLIBC_2.3.3 {
+ # Changed timer_t.
+ timer_create; timer_delete; timer_getoverrun; timer_gettime;
+ timer_settime;
+ }
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/____longjmp_chk.S b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/____longjmp_chk.S
new file mode 100644
index 0000000000..aff42306c9
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/____longjmp_chk.S
@@ -0,0 +1,90 @@
+/* Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+/* longjmp is implemented in terms of the setcontext trap on Linux/Sparc64. */
+
+#include <sysdep.h>
+
+/* Offsets into the jmp_buf structure. */
+
+#define O_mask_was_saved 512
+#define O_gregs 32
+#define O_g1 (O_gregs + 4*8)
+#define O_sp (O_gregs + 17*8)
+
+.section .rodata.str1.1,"aMS",@progbits,1
+ .type longjmp_msg,@object
+longjmp_msg:
+ .string "longjmp causes uninitialized stack frame"
+ .size longjmp_msg, .-longjmp_msg
+
+ .text
+ENTRY (____longjmp_chk)
+ ldx [%o0 + O_sp], %o2
+ cmp %sp, %o2
+ bleu,pt %xcc, .Lok
+ nop
+
+ save %sp, -208, %sp
+ cfi_remember_state
+ cfi_def_cfa_register(%fp)
+ cfi_window_save
+ cfi_register(%o7, %i7)
+ add %fp, 2023, %o1
+ clr %o0
+ LOADSYSCALL(sigaltstack)
+ ta 0x6d
+ bcs,pn %xcc, .Lok2
+ lduw [%fp + 2031], %l2
+ andcc %l2, 0x1, %g0
+ be,pn %xcc, .Lfail
+ ldx [%fp + 2023], %l0
+ ldx [%fp + 2039], %l1
+ sub %l0, STACK_BIAS, %l0
+ add %l0, %l1, %l0
+ sub %l0, %i2, %l0
+ cmp %l0, %l1
+ bgeu,pt %xcc, .Lok2
+ nop
+
+.Lfail:
+#ifndef PIC
+ sethi %hi(longjmp_msg), %o0
+ or %o0, %lo(longjmp_msg), %o0
+#else
+ SETUP_PIC_REG(l7)
+ sethi %gdop_hix22(longjmp_msg), %o0
+ xor %o0, %gdop_lox10(longjmp_msg), %o0
+ ldx [%l7 + %o0], %o0, %gdop(longjmp_msg)
+#endif
+ call HIDDEN_JUMPTARGET(__fortify_fail)
+ nop
+
+.Lok2: restore
+ cfi_restore_state
+
+.Lok:
+ /* Modify the context with the value we want to return. */
+ movre %o1, 1, %o1
+ stx %o1, [%o0 + O_g1]
+
+ /* Let setcontext know if we want to modify the current sigmask. */
+ ld [%o0 + O_mask_was_saved], %o1
+
+ /* And bamf back to where we belong! */
+ ta 0x6f
+END(____longjmp_chk)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/__longjmp.S b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/__longjmp.S
new file mode 100644
index 0000000000..3107179fdc
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/__longjmp.S
@@ -0,0 +1 @@
+/* There is no need for __longjmp what with setcontext. */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/__start_context.S b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/__start_context.S
new file mode 100644
index 0000000000..1e6fcaede0
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/__start_context.S
@@ -0,0 +1,36 @@
+/* Copyright (C) 2012-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+
+ .text
+
+/* This is the helper code which gets called if a function which is
+ registered with 'makecontext' returns. In this case we have to
+ install the context listed in the uc_link element of the context
+ 'makecontext' manipulated at the time of the 'makecontext' call.
+ If the pointer is NULL the process must terminate. */
+
+ENTRY(__start_context)
+ brz,pn %i0, 1f
+ mov 1, %o1
+ call __setcontext
+ mov %i0, %o0
+1: call HIDDEN_JUMPTARGET(exit)
+ mov 0, %o0
+ unimp 0
+END(__start_context)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/brk.S b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/brk.S
new file mode 100644
index 0000000000..32fd3e75d1
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/brk.S
@@ -0,0 +1,105 @@
+/* Copyright (C) 1997-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Richard Henderson <richard@gnu.ai.mit.edu>, 1997.
+
+ 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/>. */
+
+/* __brk is a special syscall under Linux since it never returns an
+ error. Instead, the error condition is indicated by returning the old
+ break value (instead of the new, requested one). */
+
+#include <sysdep.h>
+#define _ERRNO_H
+#include <bits/errno.h>
+
+#ifdef PIC
+.section .bss
+ .align 8
+ .globl __curbrk
+__curbrk: .skip 8
+ .type __curbrk,@object
+ .size __curbrk,8
+#else
+.common __curbrk, 8, 8
+#endif
+
+ .text
+ENTRY (__brk)
+ save %sp, -192, %sp
+ cfi_def_cfa_register(%fp)
+ cfi_window_save
+ cfi_register(%o7, %i7)
+#ifdef PIC
+ SETUP_PIC_REG(l7)
+#endif
+
+ LOADSYSCALL(brk)
+ mov %i0, %o0
+
+ ta 0x6d
+
+ /* All the ways we can fail... */
+ bcs,pn %xcc, .Lerr1
+ nop
+ brz,pt %i0, .Lok
+ subcc %i0, %o0, %g0
+ bne,pn %xcc, .Lerr0
+ nop
+
+ /* Update __curbrk and return cleanly. */
+.Lok:
+#ifndef PIC
+ sethi %hi(__curbrk), %g1
+ or %g1, %lo(__curbrk), %g1
+#else
+ sethi %gdop_hix22(__curbrk), %g1
+ xor %g1, %gdop_lox10(__curbrk), %g1
+ ldx [%l7 + %g1], %g1, %gdop(__curbrk)
+#endif
+ stx %o0, [%g1]
+ mov %g0, %i0
+
+ /* Don't use "ret" cause the preprocessor will eat it. */
+ jmpl %i7+8, %g0
+ restore
+
+ /* What a horrible way to die. */
+.Lerr0: set ENOMEM, %o0
+.Lerr1:
+#ifndef _LIBC_REENTRANT
+#ifndef PIC
+ sethi %hi(errno), %g1
+ or %g1, %lo(errno), %g1
+#else
+ sethi %gdop_hix22(errno), %g1
+ xor %g1, %gdop_lox10(errno), %g1
+ ldx [%l7 + %g1], %g1, %gdop(errno)
+#endif
+ st %o0, [%g1]
+#else
+#if IS_IN (libc)
+ call HIDDEN_JUMPTARGET(__errno_location)
+#else
+ call __errno_location
+#endif
+ mov %o0,%l1
+ st %l1, [%o0]
+#endif
+ sub %g0, 1, %i0
+ jmpl %i7+8, %g0
+ restore
+END (__brk)
+
+weak_alias (__brk, brk)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/bsd-_setjmp.S b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/bsd-_setjmp.S
new file mode 100644
index 0000000000..4e6a2da560
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/bsd-_setjmp.S
@@ -0,0 +1 @@
+/* _setjmp is in setjmp.S */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/bsd-setjmp.S b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/bsd-setjmp.S
new file mode 100644
index 0000000000..1da848d2f1
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/bsd-setjmp.S
@@ -0,0 +1 @@
+/* setjmp is in setjmp.S */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/c++-types.data b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/c++-types.data
new file mode 100644
index 0000000000..5a04f4939a
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/c++-types.data
@@ -0,0 +1,67 @@
+blkcnt64_t:l
+blkcnt_t:l
+blksize_t:l
+caddr_t:Pc
+clockid_t:i
+clock_t:l
+daddr_t:i
+dev_t:m
+fd_mask:l
+fsblkcnt64_t:m
+fsblkcnt_t:m
+fsfilcnt64_t:m
+fsfilcnt_t:m
+fsid_t:8__fsid_t
+gid_t:j
+id_t:j
+ino64_t:m
+ino_t:m
+int16_t:s
+int32_t:i
+int64_t:l
+int8_t:a
+intptr_t:l
+key_t:i
+loff_t:l
+mode_t:j
+nlink_t:j
+off64_t:l
+off_t:l
+pid_t:i
+pthread_attr_t:14pthread_attr_t
+pthread_barrier_t:17pthread_barrier_t
+pthread_barrierattr_t:21pthread_barrierattr_t
+pthread_cond_t:14pthread_cond_t
+pthread_condattr_t:18pthread_condattr_t
+pthread_key_t:j
+pthread_mutex_t:15pthread_mutex_t
+pthread_mutexattr_t:19pthread_mutexattr_t
+pthread_once_t:i
+pthread_rwlock_t:16pthread_rwlock_t
+pthread_rwlockattr_t:20pthread_rwlockattr_t
+pthread_spinlock_t:i
+pthread_t:m
+quad_t:l
+register_t:l
+rlim64_t:m
+rlim_t:m
+sigset_t:10__sigset_t
+size_t:m
+socklen_t:j
+ssize_t:l
+suseconds_t:i
+time_t:l
+u_char:h
+uid_t:j
+uint:j
+u_int:j
+u_int16_t:t
+u_int32_t:j
+u_int64_t:m
+u_int8_t:h
+ulong:m
+u_long:m
+u_quad_t:m
+useconds_t:j
+ushort:t
+u_short:t
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/clone.S b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/clone.S
new file mode 100644
index 0000000000..fc28539a59
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/clone.S
@@ -0,0 +1,87 @@
+/* Copyright (C) 1997-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Richard Henderson (rth@tamu.edu).
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+/* clone() is even more special than fork() as it mucks with stacks
+ and invokes a function in the right context after its all over. */
+
+#include <asm/errno.h>
+#include <asm/unistd.h>
+#include <tcb-offsets.h>
+#include <sysdep.h>
+
+#define CLONE_VM 0x00000100
+
+/* int clone(int (*fn)(void *arg), void *child_stack, int flags, void *arg,
+ pid_t *ptid, void *tls, pid_t *ctid); */
+
+ .register %g2,#scratch
+ .register %g3,#scratch
+
+ .text
+
+ENTRY (__clone)
+ save %sp, -192, %sp
+ cfi_def_cfa_register(%fp)
+ cfi_window_save
+ cfi_register(%o7, %i7)
+
+ /* sanity check arguments */
+ brz,pn %i0, 99f /* fn non-NULL? */
+ mov %i0, %g2
+ brz,pn %i1, 99f /* child_stack non-NULL? */
+ mov %i2, %o0 /* clone flags */
+
+ /* The child_stack is the top of the stack, allocate one
+ whole stack frame from that as this is what the kernel
+ expects. Also, subtract STACK_BIAS. */
+ sub %i1, 192 + 0x7ff, %o1
+ mov %i3, %g3
+
+ mov %i4,%o2 /* PTID */
+ mov %i5,%o3 /* TLS */
+ ldx [%fp+0x7ff+176],%o4 /* CTID */
+
+ /* Do the system call */
+ set __NR_clone, %g1
+ ta 0x6d
+ bcs,pn %xcc, 98f
+ nop
+ brnz,pn %o1, __thread_start
+ nop
+ jmpl %i7 + 8, %g0
+ restore %o0, %g0, %o0
+99: mov EINVAL, %o0
+98: call HIDDEN_JUMPTARGET(__errno_location)
+ mov %o0, %i0
+ st %i0, [%o0]
+ jmpl %i7 + 8, %g0
+ restore %g0,-1,%o0
+END(__clone)
+
+ .type __thread_start,@function
+__thread_start:
+ mov %g0, %fp /* terminate backtrace */
+ call %g2
+ mov %g3,%o0
+ call HIDDEN_JUMPTARGET(_exit),0
+ nop
+
+ .size __thread_start, .-__thread_start
+
+libc_hidden_def (__clone)
+weak_alias (__clone, clone)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/configure b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/configure
new file mode 100644
index 0000000000..8f88eff4a3
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/configure
@@ -0,0 +1,15 @@
+# This file is generated from configure.ac by Autoconf. DO NOT EDIT!
+ # Local configure fragment for sysdeps/unix/sysv/linux/sparc/sparc64.
+
+test -n "$libc_cv_slibdir" ||
+case "$prefix" in
+/usr | /usr/)
+ libc_cv_slibdir=/lib64
+ libc_cv_rtlddir=/lib64
+ if test "$libdir" = '${exec_prefix}/lib'; then
+ libdir='${exec_prefix}/lib64';
+ # Locale data can be shared between 32-bit and 64-bit libraries.
+ libc_cv_complocaledir='${exec_prefix}/lib/locale'
+ fi
+ ;;
+esac
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/configure.ac b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/configure.ac
new file mode 100644
index 0000000000..979bb8d923
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/configure.ac
@@ -0,0 +1,4 @@
+GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
+# Local configure fragment for sysdeps/unix/sysv/linux/sparc/sparc64.
+
+LIBC_SLIBDIR_RTLDDIR([lib64], [lib64])
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/dl-brk.S b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/dl-brk.S
new file mode 100644
index 0000000000..eeb96544e3
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/dl-brk.S
@@ -0,0 +1 @@
+#include <brk.S>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/dl-cache.h b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/dl-cache.h
new file mode 100644
index 0000000000..57c5769179
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/dl-cache.h
@@ -0,0 +1,24 @@
+/* Support for reading /etc/ld.so.cache files written by Linux ldconfig.
+ Copyright (C) 1999-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#define _DL_CACHE_DEFAULT_ID 0x103
+
+#define _dl_cache_check_flags(flags) \
+ ((flags) == _DL_CACHE_DEFAULT_ID)
+
+#include_next <dl-cache.h>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/dl-fxstatat64.c b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/dl-fxstatat64.c
new file mode 100644
index 0000000000..330b33f7c7
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/dl-fxstatat64.c
@@ -0,0 +1 @@
+#include "fxstatat.c"
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/fxstat.c b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/fxstat.c
new file mode 100644
index 0000000000..e328ccbab0
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/fxstat.c
@@ -0,0 +1 @@
+#include "../../i386/fxstat.c"
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/fxstatat.c b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/fxstatat.c
new file mode 100644
index 0000000000..db08af8e0f
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/fxstatat.c
@@ -0,0 +1 @@
+#include "../../i386/fxstatat.c"
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/get_clockfreq.c b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/get_clockfreq.c
new file mode 100644
index 0000000000..a0349790dc
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/get_clockfreq.c
@@ -0,0 +1,250 @@
+/* Get frequency of the system processor. sparc64 version.
+ Copyright (C) 2001-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <ctype.h>
+#include <fcntl.h>
+#include <string.h>
+#include <unistd.h>
+#include <dirent.h>
+#include <stdlib.h>
+#include <inttypes.h>
+#include <sys/ioctl.h>
+#include <asm/openpromio.h>
+
+static hp_timing_t
+__get_clockfreq_via_cpuinfo (void)
+{
+ hp_timing_t result;
+ int fd;
+
+ result = 0;
+
+ fd = __open ("/proc/cpuinfo", O_RDONLY);
+ if (fd != -1)
+ {
+ char buf[8192];
+ ssize_t n;
+
+ n = __read (fd, buf, sizeof buf);
+ if (n > 0)
+ {
+ char *mhz = memmem (buf, n, "Cpu0ClkTck", 7);
+
+ if (mhz != NULL)
+ {
+ char *endp = buf + n;
+
+ /* Search for the beginning of the string. */
+ while (mhz < endp
+ && (*mhz < '0' || *mhz > '9')
+ && (*mhz < 'a' || *mhz > 'f')
+ && *mhz != '\n')
+ ++mhz;
+
+ while (mhz < endp && *mhz != '\n')
+ {
+ if ((*mhz >= '0' && *mhz <= '9') ||
+ (*mhz >= 'a' && *mhz <= 'f'))
+ {
+ result <<= 4;
+ if (*mhz >= '0' && *mhz <= '9')
+ result += *mhz - '0';
+ else
+ result += (*mhz - 'a') + 10;
+ }
+ ++mhz;
+ }
+ }
+ }
+
+ __close (fd);
+ }
+
+ return result;
+}
+
+static hp_timing_t
+__get_clockfreq_via_proc_openprom (void)
+{
+ hp_timing_t result;
+ int obp_fd;
+
+ result = 0;
+
+ obp_fd = __open ("/proc/openprom", O_RDONLY);
+ if (obp_fd != -1)
+ {
+ unsigned long int buf[4096 / sizeof (unsigned long int)];
+ struct dirent *dirp = (struct dirent *) buf;
+ ssize_t len;
+
+ while ((len = __getdents (obp_fd, (char *) dirp, sizeof (buf))) > 0)
+ {
+ struct dirent *this_dirp = dirp;
+
+ while (len > 0)
+ {
+ char node[strlen ("/proc/openprom/")
+ + _D_ALLOC_NAMLEN (this_dirp)
+ + strlen ("/clock-frequency")];
+ char *prop;
+ int fd;
+
+ /* Note that
+ strlen("/clock-frequency") > strlen("/device_type")
+ */
+ __stpcpy (prop = __stpcpy (__stpcpy (node, "/proc/openprom/"),
+ this_dirp->d_name),
+ "/device_type");
+ fd = __open (node, O_RDONLY);
+ if (fd != -1)
+ {
+ char type_string[128];
+ int ret;
+
+ ret = __read (fd, type_string, sizeof (type_string));
+ if (ret > 0 && strncmp (type_string, "'cpu'", 5) == 0)
+ {
+ int clkfreq_fd;
+
+ __stpcpy (prop, "/clock-frequency");
+ clkfreq_fd = __open (node, O_RDONLY);
+ if (clkfreq_fd != -1)
+ {
+ if (__read (clkfreq_fd, type_string,
+ sizeof (type_string)) > 0)
+ result = (hp_timing_t)
+ strtoumax (type_string, NULL, 16);
+ __close (clkfreq_fd);
+ }
+ }
+ __close (fd);
+ }
+
+ if (result != 0)
+ break;
+
+ len -= this_dirp->d_reclen;
+ this_dirp = (struct dirent *)
+ ((char *) this_dirp + this_dirp->d_reclen);
+ }
+ if (result != 0)
+ break;
+ }
+ __close (obp_fd);
+ }
+
+ return result;
+}
+
+static void set_obp_int (struct openpromio *op, int val)
+{
+ char *cp = op->oprom_array;
+ int *ip = (int *) cp;
+
+ *ip = val;
+}
+
+static int get_obp_int (struct openpromio *op)
+{
+ char *cp = op->oprom_array;
+ int *ip = (int *) cp;
+
+ return *ip;
+}
+
+static hp_timing_t
+__get_clockfreq_via_dev_openprom (void)
+{
+ hp_timing_t result;
+ int obp_dev_fd;
+
+ result = 0;
+
+ obp_dev_fd = __open ("/dev/openprom", O_RDONLY);
+ if (obp_dev_fd != -1)
+ {
+ char obp_buf[8192];
+ struct openpromio *obp_cmd = (struct openpromio *)obp_buf;
+ int ret;
+
+ obp_cmd->oprom_size =
+ sizeof (obp_buf) - sizeof (unsigned int);
+ set_obp_int (obp_cmd, 0);
+ ret = __ioctl (obp_dev_fd, OPROMCHILD, (char *) obp_cmd);
+ if (ret == 0)
+ {
+ int cur_node = get_obp_int (obp_cmd);
+
+ while (cur_node != 0 && cur_node != -1)
+ {
+ obp_cmd->oprom_size = sizeof (obp_buf) - sizeof (unsigned int);
+ strcpy (obp_cmd->oprom_array, "device_type");
+ ret = __ioctl (obp_dev_fd, OPROMGETPROP, (char *) obp_cmd);
+ if (ret == 0
+ && strncmp (obp_cmd->oprom_array, "cpu", 3) == 0)
+ {
+ obp_cmd->oprom_size = (sizeof (obp_buf)
+ - sizeof (unsigned int));
+ strcpy (obp_cmd->oprom_array, "clock-frequency");
+ ret = __ioctl (obp_dev_fd, OPROMGETPROP, (char *) obp_cmd);
+ if (ret == 0)
+ result = (hp_timing_t) get_obp_int (obp_cmd);
+ }
+ obp_cmd->oprom_size = sizeof (obp_buf) - sizeof (unsigned int);
+ set_obp_int (obp_cmd, cur_node);
+ ret = __ioctl (obp_dev_fd, OPROMNEXT, (char *) obp_cmd);
+ if (ret < 0)
+ break;
+ cur_node = get_obp_int (obp_cmd);
+ }
+ }
+ }
+
+ return result;
+}
+
+hp_timing_t
+__get_clockfreq (void)
+{
+ static hp_timing_t result;
+
+ /* If this function was called before, we know the result. */
+ if (result != 0)
+ return result;
+
+ /* We first read the information from the /proc/cpuinfo file.
+ It contains at least one line like
+ Cpu0ClkTick : 000000002cb41780
+ We search for this line and convert the number in an integer. */
+ result = __get_clockfreq_via_cpuinfo ();
+ if (result != 0)
+ return result;
+
+ /* If that did not work, try to find an OpenPROM node
+ with device_type equal to 'cpu' using /dev/openprom
+ and fetch the clock-frequency property from there. */
+ result = __get_clockfreq_via_dev_openprom ();
+ if (result != 0)
+ return result;
+
+ /* Finally, try the same lookup as above but using /proc/openprom. */
+ result = __get_clockfreq_via_proc_openprom ();
+
+ return result;
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/getcontext.S b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/getcontext.S
new file mode 100644
index 0000000000..9cdaff9545
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/getcontext.S
@@ -0,0 +1,64 @@
+/* Copyright (C) 1997-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Richard Henderson (rth@tamu.edu).
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#include "ucontext_i.h"
+
+/* int getcontext(ucontext_t *); */
+
+ENTRY(__getcontext)
+
+ ldx [%o0 + UC_LINK], %o1 /* Preserve uc_link field, the
+ trap clears it. */
+ ta 0x6e
+1:
+ ldx [%o0 + UC_M_PC], %o2
+ ldx [%o0 + UC_M_NPC], %o3
+ ldx [%o0 + __UC_SIGMASK], %o4
+ stx %o1, [%o0 + UC_LINK]
+ add %o2, 2f - 1b, %o2
+ stx %o2, [%o0 + UC_M_PC]
+ add %o3, 2f - 1b, %o3
+ stx %o3, [%o0 + UC_M_NPC]
+#if SIGMASK_WORDS == 16
+ stx %o4, [%o0 + UC_SIGMASK]
+ stx %g0, [%o0 + UC_SIGMASK + 8]
+ stx %g0, [%o0 + UC_SIGMASK + 16]
+ stx %g0, [%o0 + UC_SIGMASK + 24]
+ stx %g0, [%o0 + UC_SIGMASK + 32]
+ stx %g0, [%o0 + UC_SIGMASK + 40]
+ stx %g0, [%o0 + UC_SIGMASK + 48]
+ stx %g0, [%o0 + UC_SIGMASK + 56]
+ stx %g0, [%o0 + UC_SIGMASK + 64]
+ stx %g0, [%o0 + UC_SIGMASK + 72]
+ stx %g0, [%o0 + UC_SIGMASK + 80]
+ stx %g0, [%o0 + UC_SIGMASK + 88]
+ stx %g0, [%o0 + UC_SIGMASK + 96]
+ stx %g0, [%o0 + UC_SIGMASK + 104]
+ stx %g0, [%o0 + UC_SIGMASK + 112]
+ stx %g0, [%o0 + UC_SIGMASK + 120]
+#else
+# error Adjust __getcontext
+#endif
+2:
+ retl
+ clr %o0
+
+END(__getcontext)
+
+weak_alias (__getcontext, getcontext)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/ipc_priv.h b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/ipc_priv.h
new file mode 100644
index 0000000000..c588c41908
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/ipc_priv.h
@@ -0,0 +1,41 @@
+/* Old SysV permission definition for Linux. x86_64 version.
+ Copyright (C) 2016-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sys/ipc.h> /* For __key_t */
+
+#define __IPC_64 0x0
+
+struct __old_ipc_perm
+{
+ __key_t __key; /* Key. */
+ unsigned int uid; /* Owner's user ID. */
+ unsigned int gid; /* Owner's group ID. */
+ unsigned int cuid; /* Creator's user ID. */
+ unsigned int cgid; /* Creator's group ID. */
+ unsigned int mode; /* Read/write permission. */
+ unsigned short int __seq; /* Sequence number. */
+};
+
+/* SPARC semctl multiplex syscall expects the union pointed address, not
+ the union address itself. */
+#define SEMCTL_ARG_ADDRESS(__arg) __arg.array
+
+/* Also for msgrcv it does not use the kludge on final 2 arguments. */
+#define MSGRCV_ARGS(__msgp, __msgtyp) __msgp, __msgtyp
+
+#include <ipc_ops.h>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/kernel_stat.h b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/kernel_stat.h
new file mode 100644
index 0000000000..30afb553b9
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/kernel_stat.h
@@ -0,0 +1,48 @@
+/* Definition of `struct stat' used in the kernel */
+struct kernel_stat
+ {
+ unsigned int st_dev;
+ unsigned long int st_ino;
+ unsigned int st_mode;
+ short int st_nlink;
+ unsigned int st_uid;
+ unsigned int st_gid;
+ unsigned int st_rdev;
+ long int st_size;
+ long int st_atime_sec;
+ long int st_mtime_sec;
+ long int st_ctime_sec;
+ long int st_blksize;
+ long int st_blocks;
+ unsigned long int __glibc_reserved1;
+ unsigned long int __glibc_reserved2;
+ };
+
+/* Definition of `struct stat64' used in the kernel. */
+struct kernel_stat64
+ {
+ unsigned long int st_dev;
+ unsigned long int st_ino;
+ unsigned long int st_nlink;
+
+ unsigned int st_mode;
+ unsigned int st_uid;
+ unsigned int st_gid;
+ unsigned int __pad0;
+
+ unsigned long int st_rdev;
+ long int st_size;
+ long int st_blksize;
+ long int st_blocks;
+
+ unsigned long int st_atime_sec;
+ unsigned long int st_atime_nsec;
+ unsigned long int st_mtime_sec;
+ unsigned long int st_mtime_nsec;
+ unsigned long int st_ctime_sec;
+ unsigned long int st_ctime_nsec;
+ long int __glibc_reserved[3];
+ };
+
+#define XSTAT_IS_XSTAT64 1
+#define STATFS_IS_STATFS64 0
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/ld.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/ld.abilist
new file mode 100644
index 0000000000..9b45d5e90c
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/ld.abilist
@@ -0,0 +1,11 @@
+GLIBC_2.2 GLIBC_2.2 A
+GLIBC_2.2 __libc_stack_end D 0x8
+GLIBC_2.2 _dl_mcount F
+GLIBC_2.2 _r_debug D 0x28
+GLIBC_2.2 calloc F
+GLIBC_2.2 free F
+GLIBC_2.2 malloc F
+GLIBC_2.2 realloc F
+GLIBC_2.3 GLIBC_2.3 A
+GLIBC_2.3 __tls_get_addr F
+GLIBC_2.4 GLIBC_2.4 A
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/libBrokenLocale.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/libBrokenLocale.abilist
new file mode 100644
index 0000000000..21343df781
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/libBrokenLocale.abilist
@@ -0,0 +1,2 @@
+GLIBC_2.2 GLIBC_2.2 A
+GLIBC_2.2 __ctype_get_mb_cur_max F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/libanl.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/libanl.abilist
new file mode 100644
index 0000000000..edabfb436e
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/libanl.abilist
@@ -0,0 +1,5 @@
+GLIBC_2.2.3 GLIBC_2.2.3 A
+GLIBC_2.2.3 gai_cancel F
+GLIBC_2.2.3 gai_error F
+GLIBC_2.2.3 gai_suspend F
+GLIBC_2.2.3 getaddrinfo_a F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
new file mode 100644
index 0000000000..1653164d9e
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
@@ -0,0 +1,2220 @@
+GCC_3.0 GCC_3.0 A
+GCC_3.0 _Unwind_Find_FDE F
+GCC_3.0 __deregister_frame_info_bases F
+GCC_3.0 __register_frame_info_bases F
+GCC_3.0 __register_frame_info_table_bases F
+GLIBC_2.10 GLIBC_2.10 A
+GLIBC_2.10 __cxa_at_quick_exit F
+GLIBC_2.10 __posix_getopt F
+GLIBC_2.10 accept4 F
+GLIBC_2.10 endsgent F
+GLIBC_2.10 fallocate F
+GLIBC_2.10 fallocate64 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 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 0x438
+GLIBC_2.12 _sys_nerr D 0x4
+GLIBC_2.12 ntp_gettimex F
+GLIBC_2.12 recvmmsg F
+GLIBC_2.12 sys_errlist D 0x438
+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 __getshmlba F
+GLIBC_2.16 __poll_chk F
+GLIBC_2.16 __ppoll_chk F
+GLIBC_2.16 _sys_errlist D 0x440
+GLIBC_2.16 _sys_nerr D 0x4
+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 sys_errlist D 0x440
+GLIBC_2.16 sys_nerr D 0x4
+GLIBC_2.16 timespec_get F
+GLIBC_2.17 GLIBC_2.17 A
+GLIBC_2.17 clock_getcpuclockid F
+GLIBC_2.17 clock_getres F
+GLIBC_2.17 clock_gettime F
+GLIBC_2.17 clock_nanosleep F
+GLIBC_2.17 clock_settime F
+GLIBC_2.17 secure_getenv F
+GLIBC_2.18 GLIBC_2.18 A
+GLIBC_2.18 __cxa_thread_atexit_impl F
+GLIBC_2.2 GLIBC_2.2 A
+GLIBC_2.2 _Exit F
+GLIBC_2.2 _IO_2_1_stderr_ D 0xe0
+GLIBC_2.2 _IO_2_1_stdin_ D 0xe0
+GLIBC_2.2 _IO_2_1_stdout_ D 0xe0
+GLIBC_2.2 _IO_adjust_column F
+GLIBC_2.2 _IO_adjust_wcolumn F
+GLIBC_2.2 _IO_default_doallocate F
+GLIBC_2.2 _IO_default_finish F
+GLIBC_2.2 _IO_default_pbackfail F
+GLIBC_2.2 _IO_default_uflow F
+GLIBC_2.2 _IO_default_xsgetn F
+GLIBC_2.2 _IO_default_xsputn F
+GLIBC_2.2 _IO_do_write F
+GLIBC_2.2 _IO_doallocbuf F
+GLIBC_2.2 _IO_fclose F
+GLIBC_2.2 _IO_fdopen F
+GLIBC_2.2 _IO_feof F
+GLIBC_2.2 _IO_ferror F
+GLIBC_2.2 _IO_fflush F
+GLIBC_2.2 _IO_fgetpos F
+GLIBC_2.2 _IO_fgetpos64 F
+GLIBC_2.2 _IO_fgets F
+GLIBC_2.2 _IO_file_attach F
+GLIBC_2.2 _IO_file_close F
+GLIBC_2.2 _IO_file_close_it F
+GLIBC_2.2 _IO_file_doallocate F
+GLIBC_2.2 _IO_file_finish F
+GLIBC_2.2 _IO_file_fopen F
+GLIBC_2.2 _IO_file_init F
+GLIBC_2.2 _IO_file_jumps D 0xa8
+GLIBC_2.2 _IO_file_open F
+GLIBC_2.2 _IO_file_overflow F
+GLIBC_2.2 _IO_file_read F
+GLIBC_2.2 _IO_file_seek F
+GLIBC_2.2 _IO_file_seekoff F
+GLIBC_2.2 _IO_file_setbuf F
+GLIBC_2.2 _IO_file_stat F
+GLIBC_2.2 _IO_file_sync F
+GLIBC_2.2 _IO_file_underflow F
+GLIBC_2.2 _IO_file_write F
+GLIBC_2.2 _IO_file_xsputn F
+GLIBC_2.2 _IO_flockfile F
+GLIBC_2.2 _IO_flush_all F
+GLIBC_2.2 _IO_flush_all_linebuffered F
+GLIBC_2.2 _IO_fopen F
+GLIBC_2.2 _IO_fprintf F
+GLIBC_2.2 _IO_fputs F
+GLIBC_2.2 _IO_fread F
+GLIBC_2.2 _IO_free_backup_area F
+GLIBC_2.2 _IO_free_wbackup_area F
+GLIBC_2.2 _IO_fsetpos F
+GLIBC_2.2 _IO_fsetpos64 F
+GLIBC_2.2 _IO_ftell F
+GLIBC_2.2 _IO_ftrylockfile F
+GLIBC_2.2 _IO_funlockfile F
+GLIBC_2.2 _IO_fwrite F
+GLIBC_2.2 _IO_getc F
+GLIBC_2.2 _IO_getline F
+GLIBC_2.2 _IO_getline_info F
+GLIBC_2.2 _IO_gets F
+GLIBC_2.2 _IO_init F
+GLIBC_2.2 _IO_init_marker F
+GLIBC_2.2 _IO_init_wmarker F
+GLIBC_2.2 _IO_iter_begin F
+GLIBC_2.2 _IO_iter_end F
+GLIBC_2.2 _IO_iter_file F
+GLIBC_2.2 _IO_iter_next F
+GLIBC_2.2 _IO_least_wmarker F
+GLIBC_2.2 _IO_link_in F
+GLIBC_2.2 _IO_list_all D 0x8
+GLIBC_2.2 _IO_list_lock F
+GLIBC_2.2 _IO_list_resetlock F
+GLIBC_2.2 _IO_list_unlock F
+GLIBC_2.2 _IO_marker_delta F
+GLIBC_2.2 _IO_marker_difference F
+GLIBC_2.2 _IO_padn F
+GLIBC_2.2 _IO_peekc_locked F
+GLIBC_2.2 _IO_popen F
+GLIBC_2.2 _IO_printf F
+GLIBC_2.2 _IO_proc_close F
+GLIBC_2.2 _IO_proc_open F
+GLIBC_2.2 _IO_putc F
+GLIBC_2.2 _IO_puts F
+GLIBC_2.2 _IO_remove_marker F
+GLIBC_2.2 _IO_seekmark F
+GLIBC_2.2 _IO_seekoff F
+GLIBC_2.2 _IO_seekpos F
+GLIBC_2.2 _IO_seekwmark F
+GLIBC_2.2 _IO_setb F
+GLIBC_2.2 _IO_setbuffer F
+GLIBC_2.2 _IO_setvbuf F
+GLIBC_2.2 _IO_sgetn F
+GLIBC_2.2 _IO_sprintf F
+GLIBC_2.2 _IO_sputbackc F
+GLIBC_2.2 _IO_sputbackwc F
+GLIBC_2.2 _IO_sscanf F
+GLIBC_2.2 _IO_str_init_readonly F
+GLIBC_2.2 _IO_str_init_static F
+GLIBC_2.2 _IO_str_overflow F
+GLIBC_2.2 _IO_str_pbackfail F
+GLIBC_2.2 _IO_str_seekoff F
+GLIBC_2.2 _IO_str_underflow F
+GLIBC_2.2 _IO_sungetc F
+GLIBC_2.2 _IO_sungetwc F
+GLIBC_2.2 _IO_switch_to_get_mode F
+GLIBC_2.2 _IO_switch_to_main_wget_area F
+GLIBC_2.2 _IO_switch_to_wbackup_area F
+GLIBC_2.2 _IO_switch_to_wget_mode F
+GLIBC_2.2 _IO_un_link F
+GLIBC_2.2 _IO_ungetc F
+GLIBC_2.2 _IO_unsave_markers F
+GLIBC_2.2 _IO_unsave_wmarkers F
+GLIBC_2.2 _IO_vfprintf F
+GLIBC_2.2 _IO_vfscanf F
+GLIBC_2.2 _IO_vsprintf F
+GLIBC_2.2 _IO_wdefault_doallocate F
+GLIBC_2.2 _IO_wdefault_finish F
+GLIBC_2.2 _IO_wdefault_pbackfail F
+GLIBC_2.2 _IO_wdefault_uflow F
+GLIBC_2.2 _IO_wdefault_xsgetn F
+GLIBC_2.2 _IO_wdefault_xsputn F
+GLIBC_2.2 _IO_wdo_write F
+GLIBC_2.2 _IO_wdoallocbuf F
+GLIBC_2.2 _IO_wfile_jumps D 0xa8
+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 _Qp_add F
+GLIBC_2.2 _Qp_cmp F
+GLIBC_2.2 _Qp_cmpe F
+GLIBC_2.2 _Qp_div F
+GLIBC_2.2 _Qp_dtoq F
+GLIBC_2.2 _Qp_feq F
+GLIBC_2.2 _Qp_fge F
+GLIBC_2.2 _Qp_fgt F
+GLIBC_2.2 _Qp_fle F
+GLIBC_2.2 _Qp_flt F
+GLIBC_2.2 _Qp_fne F
+GLIBC_2.2 _Qp_itoq F
+GLIBC_2.2 _Qp_mul F
+GLIBC_2.2 _Qp_neg F
+GLIBC_2.2 _Qp_qtod F
+GLIBC_2.2 _Qp_qtoi F
+GLIBC_2.2 _Qp_qtos F
+GLIBC_2.2 _Qp_qtoui F
+GLIBC_2.2 _Qp_qtoux F
+GLIBC_2.2 _Qp_qtox F
+GLIBC_2.2 _Qp_sqrt F
+GLIBC_2.2 _Qp_stoq F
+GLIBC_2.2 _Qp_sub F
+GLIBC_2.2 _Qp_uitoq F
+GLIBC_2.2 _Qp_uxtoq F
+GLIBC_2.2 _Qp_xtoq F
+GLIBC_2.2 __adjtimex F
+GLIBC_2.2 __after_morecore_hook D 0x8
+GLIBC_2.2 __align_cpy_1 F
+GLIBC_2.2 __align_cpy_16 F
+GLIBC_2.2 __align_cpy_2 F
+GLIBC_2.2 __align_cpy_4 F
+GLIBC_2.2 __align_cpy_8 F
+GLIBC_2.2 __argz_count F
+GLIBC_2.2 __argz_next F
+GLIBC_2.2 __argz_stringify F
+GLIBC_2.2 __asprintf F
+GLIBC_2.2 __assert F
+GLIBC_2.2 __assert_fail F
+GLIBC_2.2 __assert_perror_fail F
+GLIBC_2.2 __backtrace F
+GLIBC_2.2 __backtrace_symbols F
+GLIBC_2.2 __backtrace_symbols_fd F
+GLIBC_2.2 __bsd_getpgrp F
+GLIBC_2.2 __bzero F
+GLIBC_2.2 __check_rhosts_file D 0x4
+GLIBC_2.2 __clone F
+GLIBC_2.2 __close F
+GLIBC_2.2 __cmsg_nxthdr F
+GLIBC_2.2 __connect F
+GLIBC_2.2 __ctype32_b D 0x8
+GLIBC_2.2 __ctype32_tolower D 0x8
+GLIBC_2.2 __ctype32_toupper D 0x8
+GLIBC_2.2 __ctype_b D 0x8
+GLIBC_2.2 __ctype_get_mb_cur_max F
+GLIBC_2.2 __ctype_tolower D 0x8
+GLIBC_2.2 __ctype_toupper D 0x8
+GLIBC_2.2 __curbrk D 0x8
+GLIBC_2.2 __cxa_atexit F
+GLIBC_2.2 __cxa_finalize F
+GLIBC_2.2 __cyg_profile_func_enter F
+GLIBC_2.2 __cyg_profile_func_exit F
+GLIBC_2.2 __daylight D 0x4
+GLIBC_2.2 __dcgettext F
+GLIBC_2.2 __default_morecore F
+GLIBC_2.2 __deregister_frame F
+GLIBC_2.2 __deregister_frame_info F
+GLIBC_2.2 __dgettext F
+GLIBC_2.2 __dup2 F
+GLIBC_2.2 __duplocale F
+GLIBC_2.2 __endmntent F
+GLIBC_2.2 __environ D 0x8
+GLIBC_2.2 __errno_location F
+GLIBC_2.2 __fbufsize F
+GLIBC_2.2 __fcntl F
+GLIBC_2.2 __ffs F
+GLIBC_2.2 __finite F
+GLIBC_2.2 __finitef F
+GLIBC_2.2 __finitel F
+GLIBC_2.2 __flbf F
+GLIBC_2.2 __fork F
+GLIBC_2.2 __fpending F
+GLIBC_2.2 __fpu_control D 0x8
+GLIBC_2.2 __fpurge F
+GLIBC_2.2 __frame_state_for F
+GLIBC_2.2 __freadable F
+GLIBC_2.2 __freading F
+GLIBC_2.2 __free_hook D 0x8
+GLIBC_2.2 __freelocale F
+GLIBC_2.2 __fsetlocking F
+GLIBC_2.2 __fwritable F
+GLIBC_2.2 __fwriting F
+GLIBC_2.2 __fxstat F
+GLIBC_2.2 __fxstat64 F
+GLIBC_2.2 __getdelim F
+GLIBC_2.2 __getmntent_r F
+GLIBC_2.2 __getpagesize F
+GLIBC_2.2 __getpgid F
+GLIBC_2.2 __getpid F
+GLIBC_2.2 __gettimeofday F
+GLIBC_2.2 __gmtime_r F
+GLIBC_2.2 __h_errno_location F
+GLIBC_2.2 __isalnum_l F
+GLIBC_2.2 __isalpha_l F
+GLIBC_2.2 __isascii_l F
+GLIBC_2.2 __isblank_l F
+GLIBC_2.2 __iscntrl_l F
+GLIBC_2.2 __isdigit_l F
+GLIBC_2.2 __isgraph_l F
+GLIBC_2.2 __isinf F
+GLIBC_2.2 __isinff F
+GLIBC_2.2 __isinfl F
+GLIBC_2.2 __islower_l F
+GLIBC_2.2 __isnan F
+GLIBC_2.2 __isnanf F
+GLIBC_2.2 __isnanl F
+GLIBC_2.2 __isprint_l F
+GLIBC_2.2 __ispunct_l F
+GLIBC_2.2 __isspace_l F
+GLIBC_2.2 __isupper_l F
+GLIBC_2.2 __iswalnum_l F
+GLIBC_2.2 __iswalpha_l F
+GLIBC_2.2 __iswblank_l F
+GLIBC_2.2 __iswcntrl_l F
+GLIBC_2.2 __iswctype F
+GLIBC_2.2 __iswctype_l F
+GLIBC_2.2 __iswdigit_l F
+GLIBC_2.2 __iswgraph_l F
+GLIBC_2.2 __iswlower_l F
+GLIBC_2.2 __iswprint_l F
+GLIBC_2.2 __iswpunct_l F
+GLIBC_2.2 __iswspace_l F
+GLIBC_2.2 __iswupper_l F
+GLIBC_2.2 __iswxdigit_l F
+GLIBC_2.2 __isxdigit_l F
+GLIBC_2.2 __ivaliduser F
+GLIBC_2.2 __key_decryptsession_pk_LOCAL D 0x8
+GLIBC_2.2 __key_encryptsession_pk_LOCAL D 0x8
+GLIBC_2.2 __key_gendes_LOCAL D 0x8
+GLIBC_2.2 __libc_allocate_rtsig F
+GLIBC_2.2 __libc_calloc F
+GLIBC_2.2 __libc_current_sigrtmax F
+GLIBC_2.2 __libc_current_sigrtmin F
+GLIBC_2.2 __libc_free F
+GLIBC_2.2 __libc_freeres F
+GLIBC_2.2 __libc_init_first F
+GLIBC_2.2 __libc_mallinfo F
+GLIBC_2.2 __libc_malloc F
+GLIBC_2.2 __libc_mallopt F
+GLIBC_2.2 __libc_memalign F
+GLIBC_2.2 __libc_pvalloc F
+GLIBC_2.2 __libc_realloc F
+GLIBC_2.2 __libc_sa_len F
+GLIBC_2.2 __libc_start_main F
+GLIBC_2.2 __libc_valloc F
+GLIBC_2.2 __lseek F
+GLIBC_2.2 __lxstat F
+GLIBC_2.2 __lxstat64 F
+GLIBC_2.2 __malloc_hook D 0x8
+GLIBC_2.2 __malloc_initialize_hook D 0x8
+GLIBC_2.2 __mbrlen F
+GLIBC_2.2 __mbrtowc F
+GLIBC_2.2 __memalign_hook D 0x8
+GLIBC_2.2 __mempcpy F
+GLIBC_2.2 __mempcpy_small F
+GLIBC_2.2 __monstartup F
+GLIBC_2.2 __morecore D 0x8
+GLIBC_2.2 __newlocale F
+GLIBC_2.2 __nl_langinfo_l F
+GLIBC_2.2 __nss_configure_lookup F
+GLIBC_2.2 __nss_database_lookup F
+GLIBC_2.2 __nss_group_lookup F
+GLIBC_2.2 __nss_hosts_lookup F
+GLIBC_2.2 __nss_next F
+GLIBC_2.2 __nss_passwd_lookup F
+GLIBC_2.2 __open F
+GLIBC_2.2 __open64 F
+GLIBC_2.2 __overflow F
+GLIBC_2.2 __pipe F
+GLIBC_2.2 __poll F
+GLIBC_2.2 __pread64 F
+GLIBC_2.2 __printf_fp F
+GLIBC_2.2 __profile_frequency F
+GLIBC_2.2 __progname D 0x8
+GLIBC_2.2 __progname_full D 0x8
+GLIBC_2.2 __pwrite64 F
+GLIBC_2.2 __rawmemchr F
+GLIBC_2.2 __rcmd_errstr D 0x8
+GLIBC_2.2 __read F
+GLIBC_2.2 __realloc_hook D 0x8
+GLIBC_2.2 __register_frame F
+GLIBC_2.2 __register_frame_info F
+GLIBC_2.2 __register_frame_info_table F
+GLIBC_2.2 __register_frame_table F
+GLIBC_2.2 __res_init F
+GLIBC_2.2 __res_nclose F
+GLIBC_2.2 __res_ninit F
+GLIBC_2.2 __res_randomid F
+GLIBC_2.2 __res_state F
+GLIBC_2.2 __sbrk F
+GLIBC_2.2 __sched_get_priority_max F
+GLIBC_2.2 __sched_get_priority_min F
+GLIBC_2.2 __sched_getparam F
+GLIBC_2.2 __sched_getscheduler F
+GLIBC_2.2 __sched_setscheduler F
+GLIBC_2.2 __sched_yield F
+GLIBC_2.2 __secure_getenv F
+GLIBC_2.2 __select F
+GLIBC_2.2 __send F
+GLIBC_2.2 __setmntent F
+GLIBC_2.2 __setpgid F
+GLIBC_2.2 __sigaction F
+GLIBC_2.2 __sigaddset F
+GLIBC_2.2 __sigdelset F
+GLIBC_2.2 __sigismember F
+GLIBC_2.2 __signbit F
+GLIBC_2.2 __signbitf F
+GLIBC_2.2 __signbitl F
+GLIBC_2.2 __sigpause F
+GLIBC_2.2 __sigsetjmp F
+GLIBC_2.2 __sigsuspend F
+GLIBC_2.2 __statfs F
+GLIBC_2.2 __stpcpy F
+GLIBC_2.2 __stpcpy_small F
+GLIBC_2.2 __stpncpy F
+GLIBC_2.2 __strcasecmp F
+GLIBC_2.2 __strcasecmp_l F
+GLIBC_2.2 __strcasestr F
+GLIBC_2.2 __strcoll_l F
+GLIBC_2.2 __strcpy_small F
+GLIBC_2.2 __strcspn_c1 F
+GLIBC_2.2 __strcspn_c2 F
+GLIBC_2.2 __strcspn_c3 F
+GLIBC_2.2 __strdup F
+GLIBC_2.2 __strerror_r F
+GLIBC_2.2 __strfmon_l F
+GLIBC_2.2 __strncasecmp_l F
+GLIBC_2.2 __strndup F
+GLIBC_2.2 __strpbrk_c2 F
+GLIBC_2.2 __strpbrk_c3 F
+GLIBC_2.2 __strsep_1c F
+GLIBC_2.2 __strsep_2c F
+GLIBC_2.2 __strsep_3c F
+GLIBC_2.2 __strsep_g F
+GLIBC_2.2 __strspn_c1 F
+GLIBC_2.2 __strspn_c2 F
+GLIBC_2.2 __strspn_c3 F
+GLIBC_2.2 __strtod_internal F
+GLIBC_2.2 __strtod_l F
+GLIBC_2.2 __strtof_internal F
+GLIBC_2.2 __strtof_l F
+GLIBC_2.2 __strtok_r F
+GLIBC_2.2 __strtok_r_1c F
+GLIBC_2.2 __strtol_internal F
+GLIBC_2.2 __strtol_l F
+GLIBC_2.2 __strtold_internal F
+GLIBC_2.2 __strtold_l F
+GLIBC_2.2 __strtoll_internal F
+GLIBC_2.2 __strtoll_l F
+GLIBC_2.2 __strtoul_internal F
+GLIBC_2.2 __strtoul_l F
+GLIBC_2.2 __strtoull_internal F
+GLIBC_2.2 __strtoull_l F
+GLIBC_2.2 __strverscmp F
+GLIBC_2.2 __strxfrm_l F
+GLIBC_2.2 __sysconf F
+GLIBC_2.2 __sysctl F
+GLIBC_2.2 __sysv_signal F
+GLIBC_2.2 __timezone D 0x8
+GLIBC_2.2 __toascii_l F
+GLIBC_2.2 __tolower_l F
+GLIBC_2.2 __toupper_l F
+GLIBC_2.2 __towctrans F
+GLIBC_2.2 __towctrans_l F
+GLIBC_2.2 __towlower_l F
+GLIBC_2.2 __towupper_l F
+GLIBC_2.2 __tzname D 0x10
+GLIBC_2.2 __uflow F
+GLIBC_2.2 __underflow F
+GLIBC_2.2 __vfork F
+GLIBC_2.2 __vfscanf F
+GLIBC_2.2 __vsnprintf F
+GLIBC_2.2 __vsscanf F
+GLIBC_2.2 __wait F
+GLIBC_2.2 __waitpid F
+GLIBC_2.2 __wcscasecmp_l F
+GLIBC_2.2 __wcscoll_l F
+GLIBC_2.2 __wcsncasecmp_l F
+GLIBC_2.2 __wcstod_internal F
+GLIBC_2.2 __wcstod_l F
+GLIBC_2.2 __wcstof_internal F
+GLIBC_2.2 __wcstof_l F
+GLIBC_2.2 __wcstol_internal F
+GLIBC_2.2 __wcstol_l F
+GLIBC_2.2 __wcstold_internal F
+GLIBC_2.2 __wcstold_l F
+GLIBC_2.2 __wcstoll_internal F
+GLIBC_2.2 __wcstoll_l F
+GLIBC_2.2 __wcstoul_internal F
+GLIBC_2.2 __wcstoul_l F
+GLIBC_2.2 __wcstoull_internal F
+GLIBC_2.2 __wcstoull_l F
+GLIBC_2.2 __wcsxfrm_l F
+GLIBC_2.2 __wctrans_l F
+GLIBC_2.2 __wctype_l F
+GLIBC_2.2 __woverflow F
+GLIBC_2.2 __write F
+GLIBC_2.2 __wuflow F
+GLIBC_2.2 __wunderflow F
+GLIBC_2.2 __xmknod F
+GLIBC_2.2 __xpg_basename F
+GLIBC_2.2 __xpg_sigpause F
+GLIBC_2.2 __xstat F
+GLIBC_2.2 __xstat64 F
+GLIBC_2.2 _authenticate F
+GLIBC_2.2 _dl_mcount_wrapper F
+GLIBC_2.2 _dl_mcount_wrapper_check F
+GLIBC_2.2 _environ D 0x8
+GLIBC_2.2 _exit F
+GLIBC_2.2 _flushlbf F
+GLIBC_2.2 _libc_intl_domainname D 0x5
+GLIBC_2.2 _longjmp F
+GLIBC_2.2 _mcleanup F
+GLIBC_2.2 _mcount F
+GLIBC_2.2 _nl_default_dirname D 0x12
+GLIBC_2.2 _nl_domain_bindings D 0x8
+GLIBC_2.2 _nl_msg_cat_cntr D 0x4
+GLIBC_2.2 _null_auth D 0x18
+GLIBC_2.2 _obstack D 0x8
+GLIBC_2.2 _obstack_allocated_p F
+GLIBC_2.2 _obstack_begin F
+GLIBC_2.2 _obstack_begin_1 F
+GLIBC_2.2 _obstack_free F
+GLIBC_2.2 _obstack_memory_used F
+GLIBC_2.2 _obstack_newchunk F
+GLIBC_2.2 _res D 0x238
+GLIBC_2.2 _res_hconf D 0x48
+GLIBC_2.2 _rpc_dtablesize F
+GLIBC_2.2 _seterr_reply F
+GLIBC_2.2 _setjmp F
+GLIBC_2.2 _sys_errlist D 0x3f8
+GLIBC_2.2 _sys_nerr D 0x4
+GLIBC_2.2 _sys_siglist D 0x200
+GLIBC_2.2 _tolower F
+GLIBC_2.2 _toupper F
+GLIBC_2.2 a64l F
+GLIBC_2.2 abort F
+GLIBC_2.2 abs F
+GLIBC_2.2 accept F
+GLIBC_2.2 access F
+GLIBC_2.2 acct F
+GLIBC_2.2 addmntent F
+GLIBC_2.2 addseverity F
+GLIBC_2.2 adjtime F
+GLIBC_2.2 adjtimex F
+GLIBC_2.2 advance F
+GLIBC_2.2 alarm F
+GLIBC_2.2 alphasort F
+GLIBC_2.2 alphasort64 F
+GLIBC_2.2 argp_err_exit_status D 0x4
+GLIBC_2.2 argp_error F
+GLIBC_2.2 argp_failure F
+GLIBC_2.2 argp_help F
+GLIBC_2.2 argp_parse F
+GLIBC_2.2 argp_program_bug_address D 0x8
+GLIBC_2.2 argp_program_version D 0x8
+GLIBC_2.2 argp_program_version_hook D 0x8
+GLIBC_2.2 argp_state_help F
+GLIBC_2.2 argp_usage F
+GLIBC_2.2 argz_add F
+GLIBC_2.2 argz_add_sep F
+GLIBC_2.2 argz_append F
+GLIBC_2.2 argz_count F
+GLIBC_2.2 argz_create F
+GLIBC_2.2 argz_create_sep F
+GLIBC_2.2 argz_delete F
+GLIBC_2.2 argz_extract F
+GLIBC_2.2 argz_insert F
+GLIBC_2.2 argz_next F
+GLIBC_2.2 argz_replace F
+GLIBC_2.2 argz_stringify F
+GLIBC_2.2 asctime F
+GLIBC_2.2 asctime_r F
+GLIBC_2.2 asprintf F
+GLIBC_2.2 atexit F
+GLIBC_2.2 atof F
+GLIBC_2.2 atoi F
+GLIBC_2.2 atol F
+GLIBC_2.2 atoll F
+GLIBC_2.2 authdes_create F
+GLIBC_2.2 authdes_getucred F
+GLIBC_2.2 authdes_pk_create F
+GLIBC_2.2 authnone_create F
+GLIBC_2.2 authunix_create F
+GLIBC_2.2 authunix_create_default F
+GLIBC_2.2 backtrace F
+GLIBC_2.2 backtrace_symbols F
+GLIBC_2.2 backtrace_symbols_fd F
+GLIBC_2.2 basename F
+GLIBC_2.2 bcmp F
+GLIBC_2.2 bcopy F
+GLIBC_2.2 bdflush F
+GLIBC_2.2 bind F
+GLIBC_2.2 bind_textdomain_codeset F
+GLIBC_2.2 bindresvport F
+GLIBC_2.2 bindtextdomain F
+GLIBC_2.2 brk F
+GLIBC_2.2 bsd_signal F
+GLIBC_2.2 bsearch F
+GLIBC_2.2 btowc F
+GLIBC_2.2 bzero F
+GLIBC_2.2 calloc F
+GLIBC_2.2 callrpc F
+GLIBC_2.2 canonicalize_file_name F
+GLIBC_2.2 capget F
+GLIBC_2.2 capset F
+GLIBC_2.2 catclose F
+GLIBC_2.2 catgets F
+GLIBC_2.2 catopen F
+GLIBC_2.2 cbc_crypt F
+GLIBC_2.2 cfgetispeed F
+GLIBC_2.2 cfgetospeed F
+GLIBC_2.2 cfmakeraw F
+GLIBC_2.2 cfree F
+GLIBC_2.2 cfsetispeed F
+GLIBC_2.2 cfsetospeed F
+GLIBC_2.2 cfsetspeed F
+GLIBC_2.2 chdir F
+GLIBC_2.2 chflags F
+GLIBC_2.2 chmod F
+GLIBC_2.2 chown F
+GLIBC_2.2 chroot F
+GLIBC_2.2 clearenv F
+GLIBC_2.2 clearerr F
+GLIBC_2.2 clearerr_unlocked F
+GLIBC_2.2 clnt_broadcast F
+GLIBC_2.2 clnt_create F
+GLIBC_2.2 clnt_pcreateerror F
+GLIBC_2.2 clnt_perrno F
+GLIBC_2.2 clnt_perror F
+GLIBC_2.2 clnt_spcreateerror F
+GLIBC_2.2 clnt_sperrno F
+GLIBC_2.2 clnt_sperror F
+GLIBC_2.2 clntraw_create F
+GLIBC_2.2 clnttcp_create F
+GLIBC_2.2 clntudp_bufcreate F
+GLIBC_2.2 clntudp_create F
+GLIBC_2.2 clntunix_create F
+GLIBC_2.2 clock F
+GLIBC_2.2 clone F
+GLIBC_2.2 close F
+GLIBC_2.2 closedir F
+GLIBC_2.2 closelog F
+GLIBC_2.2 confstr F
+GLIBC_2.2 connect F
+GLIBC_2.2 copysign F
+GLIBC_2.2 copysignf F
+GLIBC_2.2 copysignl F
+GLIBC_2.2 creat F
+GLIBC_2.2 creat64 F
+GLIBC_2.2 create_module F
+GLIBC_2.2 ctermid F
+GLIBC_2.2 ctime F
+GLIBC_2.2 ctime_r F
+GLIBC_2.2 cuserid F
+GLIBC_2.2 daemon F
+GLIBC_2.2 daylight D 0x4
+GLIBC_2.2 dcgettext F
+GLIBC_2.2 dcngettext F
+GLIBC_2.2 delete_module F
+GLIBC_2.2 des_setparity F
+GLIBC_2.2 dgettext F
+GLIBC_2.2 difftime F
+GLIBC_2.2 dirfd F
+GLIBC_2.2 dirname F
+GLIBC_2.2 div F
+GLIBC_2.2 dngettext F
+GLIBC_2.2 dprintf F
+GLIBC_2.2 drand48 F
+GLIBC_2.2 drand48_r F
+GLIBC_2.2 dup F
+GLIBC_2.2 dup2 F
+GLIBC_2.2 dysize F
+GLIBC_2.2 ecb_crypt F
+GLIBC_2.2 ecvt F
+GLIBC_2.2 ecvt_r F
+GLIBC_2.2 endaliasent F
+GLIBC_2.2 endfsent F
+GLIBC_2.2 endgrent F
+GLIBC_2.2 endhostent F
+GLIBC_2.2 endmntent F
+GLIBC_2.2 endnetent F
+GLIBC_2.2 endnetgrent F
+GLIBC_2.2 endprotoent F
+GLIBC_2.2 endpwent F
+GLIBC_2.2 endrpcent F
+GLIBC_2.2 endservent F
+GLIBC_2.2 endspent F
+GLIBC_2.2 endttyent F
+GLIBC_2.2 endusershell F
+GLIBC_2.2 endutent F
+GLIBC_2.2 endutxent F
+GLIBC_2.2 environ D 0x8
+GLIBC_2.2 envz_add F
+GLIBC_2.2 envz_entry F
+GLIBC_2.2 envz_get F
+GLIBC_2.2 envz_merge F
+GLIBC_2.2 envz_remove F
+GLIBC_2.2 envz_strip F
+GLIBC_2.2 erand48 F
+GLIBC_2.2 erand48_r F
+GLIBC_2.2 err F
+GLIBC_2.2 error F
+GLIBC_2.2 error_at_line F
+GLIBC_2.2 error_message_count D 0x4
+GLIBC_2.2 error_one_per_line D 0x4
+GLIBC_2.2 error_print_progname D 0x8
+GLIBC_2.2 errx F
+GLIBC_2.2 ether_aton F
+GLIBC_2.2 ether_aton_r F
+GLIBC_2.2 ether_hostton F
+GLIBC_2.2 ether_line F
+GLIBC_2.2 ether_ntoa F
+GLIBC_2.2 ether_ntoa_r F
+GLIBC_2.2 ether_ntohost F
+GLIBC_2.2 euidaccess F
+GLIBC_2.2 execl F
+GLIBC_2.2 execle F
+GLIBC_2.2 execlp F
+GLIBC_2.2 execv F
+GLIBC_2.2 execve F
+GLIBC_2.2 execvp F
+GLIBC_2.2 exit F
+GLIBC_2.2 fattach F
+GLIBC_2.2 fchdir F
+GLIBC_2.2 fchflags F
+GLIBC_2.2 fchmod F
+GLIBC_2.2 fchown F
+GLIBC_2.2 fclose F
+GLIBC_2.2 fcloseall F
+GLIBC_2.2 fcntl F
+GLIBC_2.2 fcvt F
+GLIBC_2.2 fcvt_r F
+GLIBC_2.2 fdatasync F
+GLIBC_2.2 fdetach F
+GLIBC_2.2 fdopen F
+GLIBC_2.2 feof F
+GLIBC_2.2 feof_unlocked F
+GLIBC_2.2 ferror F
+GLIBC_2.2 ferror_unlocked F
+GLIBC_2.2 fexecve F
+GLIBC_2.2 fflush F
+GLIBC_2.2 fflush_unlocked F
+GLIBC_2.2 ffs F
+GLIBC_2.2 ffsl F
+GLIBC_2.2 ffsll F
+GLIBC_2.2 fgetc F
+GLIBC_2.2 fgetc_unlocked F
+GLIBC_2.2 fgetgrent F
+GLIBC_2.2 fgetgrent_r F
+GLIBC_2.2 fgetpos F
+GLIBC_2.2 fgetpos64 F
+GLIBC_2.2 fgetpwent F
+GLIBC_2.2 fgetpwent_r F
+GLIBC_2.2 fgets F
+GLIBC_2.2 fgets_unlocked F
+GLIBC_2.2 fgetspent F
+GLIBC_2.2 fgetspent_r F
+GLIBC_2.2 fgetwc F
+GLIBC_2.2 fgetwc_unlocked F
+GLIBC_2.2 fgetws F
+GLIBC_2.2 fgetws_unlocked F
+GLIBC_2.2 fileno F
+GLIBC_2.2 fileno_unlocked F
+GLIBC_2.2 finite F
+GLIBC_2.2 finitef F
+GLIBC_2.2 finitel F
+GLIBC_2.2 flock F
+GLIBC_2.2 flockfile F
+GLIBC_2.2 fmemopen F
+GLIBC_2.2 fmtmsg F
+GLIBC_2.2 fnmatch F
+GLIBC_2.2 fopen F
+GLIBC_2.2 fopen64 F
+GLIBC_2.2 fopencookie F
+GLIBC_2.2 fork F
+GLIBC_2.2 fpathconf F
+GLIBC_2.2 fprintf F
+GLIBC_2.2 fputc F
+GLIBC_2.2 fputc_unlocked F
+GLIBC_2.2 fputs F
+GLIBC_2.2 fputs_unlocked F
+GLIBC_2.2 fputwc F
+GLIBC_2.2 fputwc_unlocked F
+GLIBC_2.2 fputws F
+GLIBC_2.2 fputws_unlocked F
+GLIBC_2.2 fread F
+GLIBC_2.2 fread_unlocked F
+GLIBC_2.2 free F
+GLIBC_2.2 freeaddrinfo F
+GLIBC_2.2 freopen F
+GLIBC_2.2 freopen64 F
+GLIBC_2.2 frexp F
+GLIBC_2.2 frexpf F
+GLIBC_2.2 frexpl F
+GLIBC_2.2 fscanf F
+GLIBC_2.2 fseek F
+GLIBC_2.2 fseeko F
+GLIBC_2.2 fseeko64 F
+GLIBC_2.2 fsetpos F
+GLIBC_2.2 fsetpos64 F
+GLIBC_2.2 fstatfs F
+GLIBC_2.2 fstatfs64 F
+GLIBC_2.2 fstatvfs F
+GLIBC_2.2 fstatvfs64 F
+GLIBC_2.2 fsync F
+GLIBC_2.2 ftell F
+GLIBC_2.2 ftello F
+GLIBC_2.2 ftello64 F
+GLIBC_2.2 ftime F
+GLIBC_2.2 ftok F
+GLIBC_2.2 ftruncate F
+GLIBC_2.2 ftruncate64 F
+GLIBC_2.2 ftrylockfile F
+GLIBC_2.2 fts_children F
+GLIBC_2.2 fts_close F
+GLIBC_2.2 fts_open F
+GLIBC_2.2 fts_read F
+GLIBC_2.2 fts_set F
+GLIBC_2.2 ftw F
+GLIBC_2.2 ftw64 F
+GLIBC_2.2 funlockfile F
+GLIBC_2.2 fwide F
+GLIBC_2.2 fwprintf F
+GLIBC_2.2 fwrite F
+GLIBC_2.2 fwrite_unlocked F
+GLIBC_2.2 fwscanf F
+GLIBC_2.2 gai_strerror F
+GLIBC_2.2 gcvt F
+GLIBC_2.2 get_avphys_pages F
+GLIBC_2.2 get_current_dir_name F
+GLIBC_2.2 get_kernel_syms F
+GLIBC_2.2 get_myaddress F
+GLIBC_2.2 get_nprocs F
+GLIBC_2.2 get_nprocs_conf F
+GLIBC_2.2 get_phys_pages F
+GLIBC_2.2 getaddrinfo F
+GLIBC_2.2 getaliasbyname F
+GLIBC_2.2 getaliasbyname_r F
+GLIBC_2.2 getaliasent F
+GLIBC_2.2 getaliasent_r F
+GLIBC_2.2 getc F
+GLIBC_2.2 getc_unlocked F
+GLIBC_2.2 getchar F
+GLIBC_2.2 getchar_unlocked F
+GLIBC_2.2 getcontext F
+GLIBC_2.2 getcwd F
+GLIBC_2.2 getdate F
+GLIBC_2.2 getdate_err D 0x4
+GLIBC_2.2 getdate_r F
+GLIBC_2.2 getdelim F
+GLIBC_2.2 getdirentries F
+GLIBC_2.2 getdirentries64 F
+GLIBC_2.2 getdomainname F
+GLIBC_2.2 getdtablesize F
+GLIBC_2.2 getegid F
+GLIBC_2.2 getenv F
+GLIBC_2.2 geteuid F
+GLIBC_2.2 getfsent F
+GLIBC_2.2 getfsfile F
+GLIBC_2.2 getfsspec F
+GLIBC_2.2 getgid F
+GLIBC_2.2 getgrent F
+GLIBC_2.2 getgrent_r F
+GLIBC_2.2 getgrgid F
+GLIBC_2.2 getgrgid_r F
+GLIBC_2.2 getgrnam F
+GLIBC_2.2 getgrnam_r F
+GLIBC_2.2 getgroups F
+GLIBC_2.2 gethostbyaddr F
+GLIBC_2.2 gethostbyaddr_r F
+GLIBC_2.2 gethostbyname F
+GLIBC_2.2 gethostbyname2 F
+GLIBC_2.2 gethostbyname2_r F
+GLIBC_2.2 gethostbyname_r F
+GLIBC_2.2 gethostent F
+GLIBC_2.2 gethostent_r F
+GLIBC_2.2 gethostid F
+GLIBC_2.2 gethostname F
+GLIBC_2.2 getitimer F
+GLIBC_2.2 getline F
+GLIBC_2.2 getloadavg F
+GLIBC_2.2 getlogin F
+GLIBC_2.2 getlogin_r F
+GLIBC_2.2 getmntent F
+GLIBC_2.2 getmntent_r F
+GLIBC_2.2 getmsg F
+GLIBC_2.2 getnameinfo F
+GLIBC_2.2 getnetbyaddr F
+GLIBC_2.2 getnetbyaddr_r F
+GLIBC_2.2 getnetbyname F
+GLIBC_2.2 getnetbyname_r F
+GLIBC_2.2 getnetent F
+GLIBC_2.2 getnetent_r F
+GLIBC_2.2 getnetgrent F
+GLIBC_2.2 getnetgrent_r F
+GLIBC_2.2 getnetname F
+GLIBC_2.2 getopt F
+GLIBC_2.2 getopt_long F
+GLIBC_2.2 getopt_long_only F
+GLIBC_2.2 getpagesize F
+GLIBC_2.2 getpass F
+GLIBC_2.2 getpeername F
+GLIBC_2.2 getpgid F
+GLIBC_2.2 getpgrp F
+GLIBC_2.2 getpid F
+GLIBC_2.2 getpmsg F
+GLIBC_2.2 getppid F
+GLIBC_2.2 getpriority F
+GLIBC_2.2 getprotobyname F
+GLIBC_2.2 getprotobyname_r F
+GLIBC_2.2 getprotobynumber F
+GLIBC_2.2 getprotobynumber_r F
+GLIBC_2.2 getprotoent F
+GLIBC_2.2 getprotoent_r F
+GLIBC_2.2 getpt F
+GLIBC_2.2 getpublickey F
+GLIBC_2.2 getpw F
+GLIBC_2.2 getpwent F
+GLIBC_2.2 getpwent_r F
+GLIBC_2.2 getpwnam F
+GLIBC_2.2 getpwnam_r F
+GLIBC_2.2 getpwuid F
+GLIBC_2.2 getpwuid_r F
+GLIBC_2.2 getresgid F
+GLIBC_2.2 getresuid F
+GLIBC_2.2 getrlimit F
+GLIBC_2.2 getrlimit64 F
+GLIBC_2.2 getrpcbyname F
+GLIBC_2.2 getrpcbyname_r F
+GLIBC_2.2 getrpcbynumber F
+GLIBC_2.2 getrpcbynumber_r F
+GLIBC_2.2 getrpcent F
+GLIBC_2.2 getrpcent_r F
+GLIBC_2.2 getrpcport F
+GLIBC_2.2 getrusage F
+GLIBC_2.2 gets F
+GLIBC_2.2 getsecretkey F
+GLIBC_2.2 getservbyname F
+GLIBC_2.2 getservbyname_r F
+GLIBC_2.2 getservbyport F
+GLIBC_2.2 getservbyport_r F
+GLIBC_2.2 getservent F
+GLIBC_2.2 getservent_r F
+GLIBC_2.2 getsid F
+GLIBC_2.2 getsockname F
+GLIBC_2.2 getsockopt F
+GLIBC_2.2 getspent F
+GLIBC_2.2 getspent_r F
+GLIBC_2.2 getspnam F
+GLIBC_2.2 getspnam_r F
+GLIBC_2.2 getsubopt F
+GLIBC_2.2 gettext F
+GLIBC_2.2 gettimeofday F
+GLIBC_2.2 getttyent F
+GLIBC_2.2 getttynam F
+GLIBC_2.2 getuid F
+GLIBC_2.2 getusershell F
+GLIBC_2.2 getutent F
+GLIBC_2.2 getutent_r F
+GLIBC_2.2 getutid F
+GLIBC_2.2 getutid_r F
+GLIBC_2.2 getutline F
+GLIBC_2.2 getutline_r F
+GLIBC_2.2 getutmp F
+GLIBC_2.2 getutmpx F
+GLIBC_2.2 getutxent F
+GLIBC_2.2 getutxid F
+GLIBC_2.2 getutxline F
+GLIBC_2.2 getw F
+GLIBC_2.2 getwc F
+GLIBC_2.2 getwc_unlocked F
+GLIBC_2.2 getwchar F
+GLIBC_2.2 getwchar_unlocked F
+GLIBC_2.2 getwd F
+GLIBC_2.2 glob F
+GLIBC_2.2 glob64 F
+GLIBC_2.2 glob_pattern_p F
+GLIBC_2.2 globfree F
+GLIBC_2.2 globfree64 F
+GLIBC_2.2 gmtime F
+GLIBC_2.2 gmtime_r F
+GLIBC_2.2 gnu_get_libc_release F
+GLIBC_2.2 gnu_get_libc_version F
+GLIBC_2.2 grantpt F
+GLIBC_2.2 group_member F
+GLIBC_2.2 gsignal F
+GLIBC_2.2 gtty F
+GLIBC_2.2 h_errlist D 0x28
+GLIBC_2.2 h_nerr D 0x4
+GLIBC_2.2 hasmntopt F
+GLIBC_2.2 hcreate F
+GLIBC_2.2 hcreate_r F
+GLIBC_2.2 hdestroy F
+GLIBC_2.2 hdestroy_r F
+GLIBC_2.2 herror F
+GLIBC_2.2 host2netname F
+GLIBC_2.2 hsearch F
+GLIBC_2.2 hsearch_r F
+GLIBC_2.2 hstrerror F
+GLIBC_2.2 htonl F
+GLIBC_2.2 htons F
+GLIBC_2.2 iconv F
+GLIBC_2.2 iconv_close F
+GLIBC_2.2 iconv_open F
+GLIBC_2.2 if_freenameindex F
+GLIBC_2.2 if_indextoname F
+GLIBC_2.2 if_nameindex F
+GLIBC_2.2 if_nametoindex F
+GLIBC_2.2 imaxabs F
+GLIBC_2.2 imaxdiv F
+GLIBC_2.2 in6addr_any D 0x10
+GLIBC_2.2 in6addr_loopback D 0x10
+GLIBC_2.2 index F
+GLIBC_2.2 inet_addr F
+GLIBC_2.2 inet_aton F
+GLIBC_2.2 inet_lnaof F
+GLIBC_2.2 inet_makeaddr F
+GLIBC_2.2 inet_netof F
+GLIBC_2.2 inet_network F
+GLIBC_2.2 inet_nsap_addr F
+GLIBC_2.2 inet_nsap_ntoa F
+GLIBC_2.2 inet_ntoa F
+GLIBC_2.2 inet_ntop F
+GLIBC_2.2 inet_pton F
+GLIBC_2.2 init_module F
+GLIBC_2.2 initgroups F
+GLIBC_2.2 initstate F
+GLIBC_2.2 initstate_r F
+GLIBC_2.2 innetgr F
+GLIBC_2.2 insque F
+GLIBC_2.2 ioctl F
+GLIBC_2.2 iruserok F
+GLIBC_2.2 iruserok_af F
+GLIBC_2.2 isalnum F
+GLIBC_2.2 isalpha F
+GLIBC_2.2 isascii F
+GLIBC_2.2 isastream F
+GLIBC_2.2 isatty F
+GLIBC_2.2 isblank F
+GLIBC_2.2 iscntrl F
+GLIBC_2.2 isdigit F
+GLIBC_2.2 isfdtype F
+GLIBC_2.2 isgraph F
+GLIBC_2.2 isinf F
+GLIBC_2.2 isinff F
+GLIBC_2.2 isinfl F
+GLIBC_2.2 islower F
+GLIBC_2.2 isnan F
+GLIBC_2.2 isnanf F
+GLIBC_2.2 isnanl F
+GLIBC_2.2 isprint F
+GLIBC_2.2 ispunct F
+GLIBC_2.2 isspace F
+GLIBC_2.2 isupper F
+GLIBC_2.2 iswalnum F
+GLIBC_2.2 iswalpha F
+GLIBC_2.2 iswblank F
+GLIBC_2.2 iswcntrl F
+GLIBC_2.2 iswctype F
+GLIBC_2.2 iswdigit F
+GLIBC_2.2 iswgraph F
+GLIBC_2.2 iswlower F
+GLIBC_2.2 iswprint F
+GLIBC_2.2 iswpunct F
+GLIBC_2.2 iswspace F
+GLIBC_2.2 iswupper F
+GLIBC_2.2 iswxdigit F
+GLIBC_2.2 isxdigit F
+GLIBC_2.2 jrand48 F
+GLIBC_2.2 jrand48_r F
+GLIBC_2.2 key_decryptsession F
+GLIBC_2.2 key_decryptsession_pk F
+GLIBC_2.2 key_encryptsession F
+GLIBC_2.2 key_encryptsession_pk F
+GLIBC_2.2 key_gendes F
+GLIBC_2.2 key_get_conv F
+GLIBC_2.2 key_secretkey_is_set F
+GLIBC_2.2 key_setnet F
+GLIBC_2.2 key_setsecret F
+GLIBC_2.2 kill F
+GLIBC_2.2 killpg F
+GLIBC_2.2 klogctl F
+GLIBC_2.2 l64a F
+GLIBC_2.2 labs F
+GLIBC_2.2 lchown F
+GLIBC_2.2 lckpwdf F
+GLIBC_2.2 lcong48 F
+GLIBC_2.2 lcong48_r F
+GLIBC_2.2 ldexp F
+GLIBC_2.2 ldexpf F
+GLIBC_2.2 ldexpl F
+GLIBC_2.2 ldiv F
+GLIBC_2.2 lfind F
+GLIBC_2.2 link F
+GLIBC_2.2 listen F
+GLIBC_2.2 llabs F
+GLIBC_2.2 lldiv F
+GLIBC_2.2 llseek F
+GLIBC_2.2 loc1 D 0x8
+GLIBC_2.2 loc2 D 0x8
+GLIBC_2.2 localeconv F
+GLIBC_2.2 localtime F
+GLIBC_2.2 localtime_r F
+GLIBC_2.2 lockf F
+GLIBC_2.2 lockf64 F
+GLIBC_2.2 locs D 0x8
+GLIBC_2.2 longjmp F
+GLIBC_2.2 lrand48 F
+GLIBC_2.2 lrand48_r F
+GLIBC_2.2 lsearch F
+GLIBC_2.2 lseek F
+GLIBC_2.2 lseek64 F
+GLIBC_2.2 madvise F
+GLIBC_2.2 makecontext F
+GLIBC_2.2 mallinfo F
+GLIBC_2.2 malloc F
+GLIBC_2.2 malloc_get_state F
+GLIBC_2.2 malloc_set_state F
+GLIBC_2.2 malloc_stats F
+GLIBC_2.2 malloc_trim F
+GLIBC_2.2 malloc_usable_size F
+GLIBC_2.2 mallopt F
+GLIBC_2.2 mallwatch D 0x8
+GLIBC_2.2 mblen F
+GLIBC_2.2 mbrlen F
+GLIBC_2.2 mbrtowc F
+GLIBC_2.2 mbsinit F
+GLIBC_2.2 mbsnrtowcs F
+GLIBC_2.2 mbsrtowcs F
+GLIBC_2.2 mbstowcs F
+GLIBC_2.2 mbtowc F
+GLIBC_2.2 mcheck F
+GLIBC_2.2 mcheck_check_all F
+GLIBC_2.2 mcheck_pedantic F
+GLIBC_2.2 mcount F
+GLIBC_2.2 memalign F
+GLIBC_2.2 memccpy F
+GLIBC_2.2 memchr F
+GLIBC_2.2 memcmp F
+GLIBC_2.2 memcpy F
+GLIBC_2.2 memfrob F
+GLIBC_2.2 memmem F
+GLIBC_2.2 memmove F
+GLIBC_2.2 mempcpy F
+GLIBC_2.2 memrchr F
+GLIBC_2.2 memset F
+GLIBC_2.2 mincore F
+GLIBC_2.2 mkdir F
+GLIBC_2.2 mkdtemp F
+GLIBC_2.2 mkfifo F
+GLIBC_2.2 mkstemp F
+GLIBC_2.2 mkstemp64 F
+GLIBC_2.2 mktemp F
+GLIBC_2.2 mktime F
+GLIBC_2.2 mlock F
+GLIBC_2.2 mlockall F
+GLIBC_2.2 mmap F
+GLIBC_2.2 mmap64 F
+GLIBC_2.2 modf F
+GLIBC_2.2 modff F
+GLIBC_2.2 modfl F
+GLIBC_2.2 moncontrol F
+GLIBC_2.2 monstartup F
+GLIBC_2.2 mount F
+GLIBC_2.2 mprobe F
+GLIBC_2.2 mprotect F
+GLIBC_2.2 mrand48 F
+GLIBC_2.2 mrand48_r F
+GLIBC_2.2 mremap F
+GLIBC_2.2 msgctl F
+GLIBC_2.2 msgget F
+GLIBC_2.2 msgrcv F
+GLIBC_2.2 msgsnd F
+GLIBC_2.2 msync F
+GLIBC_2.2 mtrace F
+GLIBC_2.2 munlock F
+GLIBC_2.2 munlockall F
+GLIBC_2.2 munmap F
+GLIBC_2.2 muntrace F
+GLIBC_2.2 nanosleep F
+GLIBC_2.2 netname2host F
+GLIBC_2.2 netname2user F
+GLIBC_2.2 nfsservctl F
+GLIBC_2.2 nftw F
+GLIBC_2.2 nftw64 F
+GLIBC_2.2 ngettext F
+GLIBC_2.2 nice F
+GLIBC_2.2 nl_langinfo F
+GLIBC_2.2 nrand48 F
+GLIBC_2.2 nrand48_r F
+GLIBC_2.2 ntohl F
+GLIBC_2.2 ntohs F
+GLIBC_2.2 ntp_adjtime F
+GLIBC_2.2 ntp_gettime F
+GLIBC_2.2 obstack_alloc_failed_handler D 0x8
+GLIBC_2.2 obstack_exit_failure D 0x4
+GLIBC_2.2 obstack_free F
+GLIBC_2.2 obstack_printf F
+GLIBC_2.2 obstack_vprintf F
+GLIBC_2.2 on_exit F
+GLIBC_2.2 open F
+GLIBC_2.2 open64 F
+GLIBC_2.2 open_memstream F
+GLIBC_2.2 opendir F
+GLIBC_2.2 openlog F
+GLIBC_2.2 optarg D 0x8
+GLIBC_2.2 opterr D 0x4
+GLIBC_2.2 optind D 0x4
+GLIBC_2.2 optopt D 0x4
+GLIBC_2.2 parse_printf_format F
+GLIBC_2.2 passwd2des F
+GLIBC_2.2 pathconf F
+GLIBC_2.2 pause F
+GLIBC_2.2 pclose F
+GLIBC_2.2 perror F
+GLIBC_2.2 personality F
+GLIBC_2.2 pipe F
+GLIBC_2.2 pmap_getmaps F
+GLIBC_2.2 pmap_getport F
+GLIBC_2.2 pmap_rmtcall F
+GLIBC_2.2 pmap_set F
+GLIBC_2.2 pmap_unset F
+GLIBC_2.2 poll F
+GLIBC_2.2 popen F
+GLIBC_2.2 posix_fadvise F
+GLIBC_2.2 posix_fadvise64 F
+GLIBC_2.2 posix_fallocate F
+GLIBC_2.2 posix_fallocate64 F
+GLIBC_2.2 posix_madvise F
+GLIBC_2.2 posix_memalign F
+GLIBC_2.2 posix_spawn F
+GLIBC_2.2 posix_spawn_file_actions_addclose F
+GLIBC_2.2 posix_spawn_file_actions_adddup2 F
+GLIBC_2.2 posix_spawn_file_actions_addopen F
+GLIBC_2.2 posix_spawn_file_actions_destroy F
+GLIBC_2.2 posix_spawn_file_actions_init F
+GLIBC_2.2 posix_spawnattr_destroy F
+GLIBC_2.2 posix_spawnattr_getflags F
+GLIBC_2.2 posix_spawnattr_getpgroup F
+GLIBC_2.2 posix_spawnattr_getschedparam F
+GLIBC_2.2 posix_spawnattr_getschedpolicy F
+GLIBC_2.2 posix_spawnattr_getsigdefault F
+GLIBC_2.2 posix_spawnattr_getsigmask F
+GLIBC_2.2 posix_spawnattr_init F
+GLIBC_2.2 posix_spawnattr_setflags F
+GLIBC_2.2 posix_spawnattr_setpgroup F
+GLIBC_2.2 posix_spawnattr_setschedparam F
+GLIBC_2.2 posix_spawnattr_setschedpolicy F
+GLIBC_2.2 posix_spawnattr_setsigdefault F
+GLIBC_2.2 posix_spawnattr_setsigmask F
+GLIBC_2.2 posix_spawnp F
+GLIBC_2.2 prctl F
+GLIBC_2.2 pread F
+GLIBC_2.2 pread64 F
+GLIBC_2.2 printf F
+GLIBC_2.2 printf_size F
+GLIBC_2.2 printf_size_info F
+GLIBC_2.2 profil F
+GLIBC_2.2 profil_counter F
+GLIBC_2.2 program_invocation_name D 0x8
+GLIBC_2.2 program_invocation_short_name D 0x8
+GLIBC_2.2 pselect F
+GLIBC_2.2 psignal F
+GLIBC_2.2 pthread_attr_destroy F
+GLIBC_2.2 pthread_attr_getdetachstate F
+GLIBC_2.2 pthread_attr_getinheritsched F
+GLIBC_2.2 pthread_attr_getschedparam F
+GLIBC_2.2 pthread_attr_getschedpolicy F
+GLIBC_2.2 pthread_attr_getscope F
+GLIBC_2.2 pthread_attr_init F
+GLIBC_2.2 pthread_attr_setdetachstate F
+GLIBC_2.2 pthread_attr_setinheritsched F
+GLIBC_2.2 pthread_attr_setschedparam F
+GLIBC_2.2 pthread_attr_setschedpolicy F
+GLIBC_2.2 pthread_attr_setscope F
+GLIBC_2.2 pthread_cond_broadcast F
+GLIBC_2.2 pthread_cond_destroy F
+GLIBC_2.2 pthread_cond_init F
+GLIBC_2.2 pthread_cond_signal F
+GLIBC_2.2 pthread_cond_timedwait F
+GLIBC_2.2 pthread_cond_wait F
+GLIBC_2.2 pthread_condattr_destroy F
+GLIBC_2.2 pthread_condattr_init F
+GLIBC_2.2 pthread_equal F
+GLIBC_2.2 pthread_exit F
+GLIBC_2.2 pthread_getschedparam F
+GLIBC_2.2 pthread_mutex_destroy F
+GLIBC_2.2 pthread_mutex_init F
+GLIBC_2.2 pthread_mutex_lock F
+GLIBC_2.2 pthread_mutex_unlock F
+GLIBC_2.2 pthread_self F
+GLIBC_2.2 pthread_setcancelstate F
+GLIBC_2.2 pthread_setcanceltype F
+GLIBC_2.2 pthread_setschedparam F
+GLIBC_2.2 ptrace F
+GLIBC_2.2 ptsname F
+GLIBC_2.2 ptsname_r F
+GLIBC_2.2 putc F
+GLIBC_2.2 putc_unlocked F
+GLIBC_2.2 putchar F
+GLIBC_2.2 putchar_unlocked F
+GLIBC_2.2 putenv F
+GLIBC_2.2 putgrent F
+GLIBC_2.2 putmsg F
+GLIBC_2.2 putpmsg F
+GLIBC_2.2 putpwent F
+GLIBC_2.2 puts F
+GLIBC_2.2 putspent F
+GLIBC_2.2 pututline F
+GLIBC_2.2 pututxline F
+GLIBC_2.2 putw F
+GLIBC_2.2 putwc F
+GLIBC_2.2 putwc_unlocked F
+GLIBC_2.2 putwchar F
+GLIBC_2.2 putwchar_unlocked F
+GLIBC_2.2 pvalloc F
+GLIBC_2.2 pwrite F
+GLIBC_2.2 pwrite64 F
+GLIBC_2.2 qecvt F
+GLIBC_2.2 qecvt_r F
+GLIBC_2.2 qfcvt F
+GLIBC_2.2 qfcvt_r F
+GLIBC_2.2 qgcvt F
+GLIBC_2.2 qsort F
+GLIBC_2.2 query_module F
+GLIBC_2.2 quotactl F
+GLIBC_2.2 raise F
+GLIBC_2.2 rand F
+GLIBC_2.2 rand_r F
+GLIBC_2.2 random F
+GLIBC_2.2 random_r F
+GLIBC_2.2 rawmemchr F
+GLIBC_2.2 rcmd F
+GLIBC_2.2 rcmd_af F
+GLIBC_2.2 re_comp F
+GLIBC_2.2 re_compile_fastmap F
+GLIBC_2.2 re_compile_pattern F
+GLIBC_2.2 re_exec F
+GLIBC_2.2 re_match F
+GLIBC_2.2 re_match_2 F
+GLIBC_2.2 re_max_failures D 0x4
+GLIBC_2.2 re_search F
+GLIBC_2.2 re_search_2 F
+GLIBC_2.2 re_set_registers F
+GLIBC_2.2 re_set_syntax F
+GLIBC_2.2 re_syntax_options D 0x8
+GLIBC_2.2 read F
+GLIBC_2.2 readdir F
+GLIBC_2.2 readdir64 F
+GLIBC_2.2 readdir64_r F
+GLIBC_2.2 readdir_r F
+GLIBC_2.2 readlink F
+GLIBC_2.2 readv F
+GLIBC_2.2 realloc F
+GLIBC_2.2 realpath F
+GLIBC_2.2 reboot F
+GLIBC_2.2 recv F
+GLIBC_2.2 recvfrom F
+GLIBC_2.2 recvmsg F
+GLIBC_2.2 regcomp F
+GLIBC_2.2 regerror F
+GLIBC_2.2 regexec F
+GLIBC_2.2 regfree F
+GLIBC_2.2 register_printf_function F
+GLIBC_2.2 registerrpc F
+GLIBC_2.2 remove F
+GLIBC_2.2 remque F
+GLIBC_2.2 rename F
+GLIBC_2.2 revoke F
+GLIBC_2.2 rewind F
+GLIBC_2.2 rewinddir F
+GLIBC_2.2 rexec F
+GLIBC_2.2 rexec_af F
+GLIBC_2.2 rexecoptions D 0x4
+GLIBC_2.2 rindex F
+GLIBC_2.2 rmdir F
+GLIBC_2.2 rpc_createerr D 0x20
+GLIBC_2.2 rpmatch F
+GLIBC_2.2 rresvport F
+GLIBC_2.2 rresvport_af F
+GLIBC_2.2 rtime F
+GLIBC_2.2 ruserok F
+GLIBC_2.2 ruserok_af F
+GLIBC_2.2 ruserpass F
+GLIBC_2.2 sbrk F
+GLIBC_2.2 scalbn F
+GLIBC_2.2 scalbnf F
+GLIBC_2.2 scalbnl F
+GLIBC_2.2 scandir F
+GLIBC_2.2 scandir64 F
+GLIBC_2.2 scanf F
+GLIBC_2.2 sched_get_priority_max F
+GLIBC_2.2 sched_get_priority_min F
+GLIBC_2.2 sched_getparam F
+GLIBC_2.2 sched_getscheduler F
+GLIBC_2.2 sched_rr_get_interval F
+GLIBC_2.2 sched_setparam F
+GLIBC_2.2 sched_setscheduler F
+GLIBC_2.2 sched_yield F
+GLIBC_2.2 seed48 F
+GLIBC_2.2 seed48_r F
+GLIBC_2.2 seekdir F
+GLIBC_2.2 select F
+GLIBC_2.2 semctl F
+GLIBC_2.2 semget F
+GLIBC_2.2 semop F
+GLIBC_2.2 send F
+GLIBC_2.2 sendfile F
+GLIBC_2.2 sendmsg F
+GLIBC_2.2 sendto F
+GLIBC_2.2 setaliasent F
+GLIBC_2.2 setbuf F
+GLIBC_2.2 setbuffer F
+GLIBC_2.2 setcontext F
+GLIBC_2.2 setdomainname F
+GLIBC_2.2 setegid F
+GLIBC_2.2 setenv F
+GLIBC_2.2 seteuid F
+GLIBC_2.2 setfsent F
+GLIBC_2.2 setfsgid F
+GLIBC_2.2 setfsuid F
+GLIBC_2.2 setgid F
+GLIBC_2.2 setgrent F
+GLIBC_2.2 setgroups F
+GLIBC_2.2 sethostent F
+GLIBC_2.2 sethostid F
+GLIBC_2.2 sethostname F
+GLIBC_2.2 setitimer F
+GLIBC_2.2 setjmp F
+GLIBC_2.2 setlinebuf F
+GLIBC_2.2 setlocale F
+GLIBC_2.2 setlogin F
+GLIBC_2.2 setlogmask F
+GLIBC_2.2 setmntent F
+GLIBC_2.2 setnetent F
+GLIBC_2.2 setnetgrent F
+GLIBC_2.2 setpgid F
+GLIBC_2.2 setpgrp F
+GLIBC_2.2 setpriority F
+GLIBC_2.2 setprotoent F
+GLIBC_2.2 setpwent F
+GLIBC_2.2 setregid F
+GLIBC_2.2 setresgid F
+GLIBC_2.2 setresuid F
+GLIBC_2.2 setreuid F
+GLIBC_2.2 setrlimit F
+GLIBC_2.2 setrlimit64 F
+GLIBC_2.2 setrpcent F
+GLIBC_2.2 setservent F
+GLIBC_2.2 setsid F
+GLIBC_2.2 setsockopt F
+GLIBC_2.2 setspent F
+GLIBC_2.2 setstate F
+GLIBC_2.2 setstate_r F
+GLIBC_2.2 settimeofday F
+GLIBC_2.2 setttyent F
+GLIBC_2.2 setuid F
+GLIBC_2.2 setusershell F
+GLIBC_2.2 setutent F
+GLIBC_2.2 setutxent F
+GLIBC_2.2 setvbuf F
+GLIBC_2.2 sgetspent F
+GLIBC_2.2 sgetspent_r F
+GLIBC_2.2 shmat F
+GLIBC_2.2 shmctl F
+GLIBC_2.2 shmdt F
+GLIBC_2.2 shmget F
+GLIBC_2.2 shutdown F
+GLIBC_2.2 sigaction F
+GLIBC_2.2 sigaddset F
+GLIBC_2.2 sigaltstack F
+GLIBC_2.2 sigandset F
+GLIBC_2.2 sigblock F
+GLIBC_2.2 sigdelset F
+GLIBC_2.2 sigemptyset F
+GLIBC_2.2 sigfillset F
+GLIBC_2.2 siggetmask F
+GLIBC_2.2 sighold F
+GLIBC_2.2 sigignore F
+GLIBC_2.2 siginterrupt F
+GLIBC_2.2 sigisemptyset F
+GLIBC_2.2 sigismember F
+GLIBC_2.2 siglongjmp F
+GLIBC_2.2 signal F
+GLIBC_2.2 sigorset F
+GLIBC_2.2 sigpause F
+GLIBC_2.2 sigpending F
+GLIBC_2.2 sigprocmask F
+GLIBC_2.2 sigqueue F
+GLIBC_2.2 sigrelse F
+GLIBC_2.2 sigreturn F
+GLIBC_2.2 sigset F
+GLIBC_2.2 sigsetmask F
+GLIBC_2.2 sigstack F
+GLIBC_2.2 sigsuspend F
+GLIBC_2.2 sigtimedwait F
+GLIBC_2.2 sigvec F
+GLIBC_2.2 sigwait F
+GLIBC_2.2 sigwaitinfo F
+GLIBC_2.2 sleep F
+GLIBC_2.2 snprintf F
+GLIBC_2.2 socket F
+GLIBC_2.2 socketpair F
+GLIBC_2.2 sprintf F
+GLIBC_2.2 srand F
+GLIBC_2.2 srand48 F
+GLIBC_2.2 srand48_r F
+GLIBC_2.2 srandom F
+GLIBC_2.2 srandom_r F
+GLIBC_2.2 sscanf F
+GLIBC_2.2 ssignal F
+GLIBC_2.2 sstk F
+GLIBC_2.2 statfs F
+GLIBC_2.2 statfs64 F
+GLIBC_2.2 statvfs F
+GLIBC_2.2 statvfs64 F
+GLIBC_2.2 stderr D 0x8
+GLIBC_2.2 stdin D 0x8
+GLIBC_2.2 stdout D 0x8
+GLIBC_2.2 step F
+GLIBC_2.2 stime F
+GLIBC_2.2 stpcpy F
+GLIBC_2.2 stpncpy F
+GLIBC_2.2 strcasecmp F
+GLIBC_2.2 strcasestr F
+GLIBC_2.2 strcat F
+GLIBC_2.2 strchr F
+GLIBC_2.2 strchrnul F
+GLIBC_2.2 strcmp F
+GLIBC_2.2 strcoll F
+GLIBC_2.2 strcpy F
+GLIBC_2.2 strcspn F
+GLIBC_2.2 strdup F
+GLIBC_2.2 strerror F
+GLIBC_2.2 strerror_r F
+GLIBC_2.2 strfmon F
+GLIBC_2.2 strfry F
+GLIBC_2.2 strftime F
+GLIBC_2.2 strlen F
+GLIBC_2.2 strncasecmp F
+GLIBC_2.2 strncat F
+GLIBC_2.2 strncmp F
+GLIBC_2.2 strncpy F
+GLIBC_2.2 strndup F
+GLIBC_2.2 strnlen F
+GLIBC_2.2 strpbrk F
+GLIBC_2.2 strptime F
+GLIBC_2.2 strrchr F
+GLIBC_2.2 strsep F
+GLIBC_2.2 strsignal F
+GLIBC_2.2 strspn F
+GLIBC_2.2 strstr F
+GLIBC_2.2 strtod F
+GLIBC_2.2 strtof F
+GLIBC_2.2 strtoimax F
+GLIBC_2.2 strtok F
+GLIBC_2.2 strtok_r F
+GLIBC_2.2 strtol F
+GLIBC_2.2 strtold F
+GLIBC_2.2 strtoll F
+GLIBC_2.2 strtoq F
+GLIBC_2.2 strtoul F
+GLIBC_2.2 strtoull F
+GLIBC_2.2 strtoumax F
+GLIBC_2.2 strtouq F
+GLIBC_2.2 strverscmp F
+GLIBC_2.2 strxfrm F
+GLIBC_2.2 stty F
+GLIBC_2.2 svc_exit F
+GLIBC_2.2 svc_fdset D 0x80
+GLIBC_2.2 svc_getreq F
+GLIBC_2.2 svc_getreq_common F
+GLIBC_2.2 svc_getreq_poll F
+GLIBC_2.2 svc_getreqset F
+GLIBC_2.2 svc_max_pollfd D 0x4
+GLIBC_2.2 svc_pollfd D 0x8
+GLIBC_2.2 svc_register F
+GLIBC_2.2 svc_run F
+GLIBC_2.2 svc_sendreply F
+GLIBC_2.2 svc_unregister F
+GLIBC_2.2 svcauthdes_stats D 0x18
+GLIBC_2.2 svcerr_auth F
+GLIBC_2.2 svcerr_decode F
+GLIBC_2.2 svcerr_noproc F
+GLIBC_2.2 svcerr_noprog F
+GLIBC_2.2 svcerr_progvers F
+GLIBC_2.2 svcerr_systemerr F
+GLIBC_2.2 svcerr_weakauth F
+GLIBC_2.2 svcfd_create F
+GLIBC_2.2 svcraw_create F
+GLIBC_2.2 svctcp_create F
+GLIBC_2.2 svcudp_bufcreate F
+GLIBC_2.2 svcudp_create F
+GLIBC_2.2 svcudp_enablecache F
+GLIBC_2.2 svcunix_create F
+GLIBC_2.2 svcunixfd_create F
+GLIBC_2.2 swab F
+GLIBC_2.2 swapcontext F
+GLIBC_2.2 swapoff F
+GLIBC_2.2 swapon F
+GLIBC_2.2 swprintf F
+GLIBC_2.2 swscanf F
+GLIBC_2.2 symlink F
+GLIBC_2.2 sync F
+GLIBC_2.2 sys_errlist D 0x3f8
+GLIBC_2.2 sys_nerr D 0x4
+GLIBC_2.2 sys_sigabbrev D 0x200
+GLIBC_2.2 sys_siglist D 0x200
+GLIBC_2.2 syscall F
+GLIBC_2.2 sysconf F
+GLIBC_2.2 sysctl F
+GLIBC_2.2 sysinfo F
+GLIBC_2.2 syslog F
+GLIBC_2.2 system F
+GLIBC_2.2 sysv_signal F
+GLIBC_2.2 tcdrain F
+GLIBC_2.2 tcflow F
+GLIBC_2.2 tcflush F
+GLIBC_2.2 tcgetattr F
+GLIBC_2.2 tcgetpgrp F
+GLIBC_2.2 tcgetsid F
+GLIBC_2.2 tcsendbreak F
+GLIBC_2.2 tcsetattr F
+GLIBC_2.2 tcsetpgrp F
+GLIBC_2.2 tdelete F
+GLIBC_2.2 tdestroy F
+GLIBC_2.2 telldir F
+GLIBC_2.2 tempnam F
+GLIBC_2.2 textdomain F
+GLIBC_2.2 tfind F
+GLIBC_2.2 time F
+GLIBC_2.2 timegm F
+GLIBC_2.2 timelocal F
+GLIBC_2.2 times F
+GLIBC_2.2 timezone D 0x8
+GLIBC_2.2 tmpfile F
+GLIBC_2.2 tmpfile64 F
+GLIBC_2.2 tmpnam F
+GLIBC_2.2 tmpnam_r F
+GLIBC_2.2 toascii F
+GLIBC_2.2 tolower F
+GLIBC_2.2 toupper F
+GLIBC_2.2 towctrans F
+GLIBC_2.2 towlower F
+GLIBC_2.2 towupper F
+GLIBC_2.2 tr_break F
+GLIBC_2.2 truncate F
+GLIBC_2.2 truncate64 F
+GLIBC_2.2 tsearch F
+GLIBC_2.2 ttyname F
+GLIBC_2.2 ttyname_r F
+GLIBC_2.2 ttyslot F
+GLIBC_2.2 twalk F
+GLIBC_2.2 tzname D 0x10
+GLIBC_2.2 tzset F
+GLIBC_2.2 ualarm F
+GLIBC_2.2 ulckpwdf F
+GLIBC_2.2 ulimit F
+GLIBC_2.2 umask F
+GLIBC_2.2 umount F
+GLIBC_2.2 umount2 F
+GLIBC_2.2 uname F
+GLIBC_2.2 ungetc F
+GLIBC_2.2 ungetwc F
+GLIBC_2.2 unlink F
+GLIBC_2.2 unlockpt F
+GLIBC_2.2 unsetenv F
+GLIBC_2.2 updwtmp F
+GLIBC_2.2 updwtmpx F
+GLIBC_2.2 uselib F
+GLIBC_2.2 user2netname F
+GLIBC_2.2 usleep F
+GLIBC_2.2 ustat F
+GLIBC_2.2 utime F
+GLIBC_2.2 utimes F
+GLIBC_2.2 utmpname F
+GLIBC_2.2 utmpxname F
+GLIBC_2.2 valloc F
+GLIBC_2.2 vasprintf F
+GLIBC_2.2 vdprintf F
+GLIBC_2.2 verr F
+GLIBC_2.2 verrx F
+GLIBC_2.2 versionsort F
+GLIBC_2.2 versionsort64 F
+GLIBC_2.2 vfork F
+GLIBC_2.2 vfprintf F
+GLIBC_2.2 vfscanf F
+GLIBC_2.2 vfwprintf F
+GLIBC_2.2 vfwscanf F
+GLIBC_2.2 vhangup F
+GLIBC_2.2 vlimit F
+GLIBC_2.2 vprintf F
+GLIBC_2.2 vscanf F
+GLIBC_2.2 vsnprintf F
+GLIBC_2.2 vsprintf F
+GLIBC_2.2 vsscanf F
+GLIBC_2.2 vswprintf F
+GLIBC_2.2 vswscanf F
+GLIBC_2.2 vsyslog F
+GLIBC_2.2 vtimes F
+GLIBC_2.2 vwarn F
+GLIBC_2.2 vwarnx F
+GLIBC_2.2 vwprintf F
+GLIBC_2.2 vwscanf F
+GLIBC_2.2 wait F
+GLIBC_2.2 wait3 F
+GLIBC_2.2 wait4 F
+GLIBC_2.2 waitid F
+GLIBC_2.2 waitpid F
+GLIBC_2.2 warn F
+GLIBC_2.2 warnx F
+GLIBC_2.2 wcpcpy F
+GLIBC_2.2 wcpncpy F
+GLIBC_2.2 wcrtomb F
+GLIBC_2.2 wcscasecmp F
+GLIBC_2.2 wcscat F
+GLIBC_2.2 wcschr F
+GLIBC_2.2 wcschrnul F
+GLIBC_2.2 wcscmp F
+GLIBC_2.2 wcscoll F
+GLIBC_2.2 wcscpy F
+GLIBC_2.2 wcscspn F
+GLIBC_2.2 wcsdup F
+GLIBC_2.2 wcsftime F
+GLIBC_2.2 wcslen F
+GLIBC_2.2 wcsncasecmp F
+GLIBC_2.2 wcsncat F
+GLIBC_2.2 wcsncmp F
+GLIBC_2.2 wcsncpy F
+GLIBC_2.2 wcsnlen F
+GLIBC_2.2 wcsnrtombs F
+GLIBC_2.2 wcspbrk F
+GLIBC_2.2 wcsrchr F
+GLIBC_2.2 wcsrtombs F
+GLIBC_2.2 wcsspn F
+GLIBC_2.2 wcsstr F
+GLIBC_2.2 wcstod F
+GLIBC_2.2 wcstof F
+GLIBC_2.2 wcstoimax F
+GLIBC_2.2 wcstok F
+GLIBC_2.2 wcstol F
+GLIBC_2.2 wcstold F
+GLIBC_2.2 wcstoll F
+GLIBC_2.2 wcstombs F
+GLIBC_2.2 wcstoq F
+GLIBC_2.2 wcstoul F
+GLIBC_2.2 wcstoull F
+GLIBC_2.2 wcstoumax F
+GLIBC_2.2 wcstouq F
+GLIBC_2.2 wcswcs F
+GLIBC_2.2 wcswidth F
+GLIBC_2.2 wcsxfrm F
+GLIBC_2.2 wctob F
+GLIBC_2.2 wctomb F
+GLIBC_2.2 wctrans F
+GLIBC_2.2 wctype F
+GLIBC_2.2 wcwidth F
+GLIBC_2.2 wmemchr F
+GLIBC_2.2 wmemcmp F
+GLIBC_2.2 wmemcpy F
+GLIBC_2.2 wmemmove F
+GLIBC_2.2 wmempcpy F
+GLIBC_2.2 wmemset F
+GLIBC_2.2 wordexp F
+GLIBC_2.2 wordfree F
+GLIBC_2.2 wprintf F
+GLIBC_2.2 write F
+GLIBC_2.2 writev F
+GLIBC_2.2 wscanf F
+GLIBC_2.2 xdecrypt F
+GLIBC_2.2 xdr_accepted_reply F
+GLIBC_2.2 xdr_array F
+GLIBC_2.2 xdr_authdes_cred F
+GLIBC_2.2 xdr_authdes_verf F
+GLIBC_2.2 xdr_authunix_parms F
+GLIBC_2.2 xdr_bool F
+GLIBC_2.2 xdr_bytes F
+GLIBC_2.2 xdr_callhdr F
+GLIBC_2.2 xdr_callmsg F
+GLIBC_2.2 xdr_char F
+GLIBC_2.2 xdr_cryptkeyarg F
+GLIBC_2.2 xdr_cryptkeyarg2 F
+GLIBC_2.2 xdr_cryptkeyres F
+GLIBC_2.2 xdr_des_block F
+GLIBC_2.2 xdr_double F
+GLIBC_2.2 xdr_enum F
+GLIBC_2.2 xdr_float F
+GLIBC_2.2 xdr_free F
+GLIBC_2.2 xdr_getcredres F
+GLIBC_2.2 xdr_hyper F
+GLIBC_2.2 xdr_int F
+GLIBC_2.2 xdr_int16_t F
+GLIBC_2.2 xdr_int32_t F
+GLIBC_2.2 xdr_int64_t F
+GLIBC_2.2 xdr_int8_t F
+GLIBC_2.2 xdr_key_netstarg F
+GLIBC_2.2 xdr_key_netstres F
+GLIBC_2.2 xdr_keybuf F
+GLIBC_2.2 xdr_keystatus F
+GLIBC_2.2 xdr_long F
+GLIBC_2.2 xdr_longlong_t F
+GLIBC_2.2 xdr_netnamestr F
+GLIBC_2.2 xdr_netobj F
+GLIBC_2.2 xdr_opaque F
+GLIBC_2.2 xdr_opaque_auth F
+GLIBC_2.2 xdr_pmap F
+GLIBC_2.2 xdr_pmaplist F
+GLIBC_2.2 xdr_pointer F
+GLIBC_2.2 xdr_reference F
+GLIBC_2.2 xdr_rejected_reply F
+GLIBC_2.2 xdr_replymsg F
+GLIBC_2.2 xdr_rmtcall_args F
+GLIBC_2.2 xdr_rmtcallres F
+GLIBC_2.2 xdr_short F
+GLIBC_2.2 xdr_sizeof F
+GLIBC_2.2 xdr_string F
+GLIBC_2.2 xdr_u_char F
+GLIBC_2.2 xdr_u_hyper F
+GLIBC_2.2 xdr_u_int F
+GLIBC_2.2 xdr_u_long F
+GLIBC_2.2 xdr_u_longlong_t F
+GLIBC_2.2 xdr_u_short F
+GLIBC_2.2 xdr_uint16_t F
+GLIBC_2.2 xdr_uint32_t F
+GLIBC_2.2 xdr_uint64_t F
+GLIBC_2.2 xdr_uint8_t F
+GLIBC_2.2 xdr_union F
+GLIBC_2.2 xdr_unixcred F
+GLIBC_2.2 xdr_vector F
+GLIBC_2.2 xdr_void F
+GLIBC_2.2 xdr_wrapstring F
+GLIBC_2.2 xdrmem_create F
+GLIBC_2.2 xdrrec_create F
+GLIBC_2.2 xdrrec_endofrecord F
+GLIBC_2.2 xdrrec_eof F
+GLIBC_2.2 xdrrec_skiprecord F
+GLIBC_2.2 xdrstdio_create F
+GLIBC_2.2 xencrypt F
+GLIBC_2.2 xprt_register F
+GLIBC_2.2 xprt_unregister F
+GLIBC_2.2.1 GLIBC_2.2.1 A
+GLIBC_2.2.1 pivot_root F
+GLIBC_2.2.1 posix_openpt F
+GLIBC_2.2.2 GLIBC_2.2.2 A
+GLIBC_2.2.2 __nss_hostname_digits_dots F
+GLIBC_2.2.2 wordexp 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 0x400
+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 strtoul_l F
+GLIBC_2.3 strxfrm_l F
+GLIBC_2.3 sys_errlist D 0x400
+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 0x208
+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 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 strtoll_l F
+GLIBC_2.3.3 strtoull_l F
+GLIBC_2.3.3 sys_sigabbrev D 0x208
+GLIBC_2.3.3 sys_siglist D 0x208
+GLIBC_2.3.4 GLIBC_2.3.4 A
+GLIBC_2.3.4 __chk_fail F
+GLIBC_2.3.4 __fprintf_chk F
+GLIBC_2.3.4 __gets_chk F
+GLIBC_2.3.4 __memcpy_chk F
+GLIBC_2.3.4 __memmove_chk F
+GLIBC_2.3.4 __mempcpy_chk F
+GLIBC_2.3.4 __memset_chk F
+GLIBC_2.3.4 __printf_chk F
+GLIBC_2.3.4 __snprintf_chk F
+GLIBC_2.3.4 __sprintf_chk F
+GLIBC_2.3.4 __stpcpy_chk F
+GLIBC_2.3.4 __strcat_chk F
+GLIBC_2.3.4 __strcpy_chk F
+GLIBC_2.3.4 __strncat_chk F
+GLIBC_2.3.4 __strncpy_chk F
+GLIBC_2.3.4 __vfprintf_chk F
+GLIBC_2.3.4 __vprintf_chk F
+GLIBC_2.3.4 __vsnprintf_chk F
+GLIBC_2.3.4 __vsprintf_chk F
+GLIBC_2.3.4 __xpg_strerror_r F
+GLIBC_2.3.4 getipv4sourcefilter F
+GLIBC_2.3.4 getsourcefilter F
+GLIBC_2.3.4 regexec F
+GLIBC_2.3.4 sched_getaffinity F
+GLIBC_2.3.4 sched_setaffinity F
+GLIBC_2.3.4 setipv4sourcefilter F
+GLIBC_2.3.4 setsourcefilter F
+GLIBC_2.3.4 xdr_quad_t F
+GLIBC_2.3.4 xdr_u_quad_t F
+GLIBC_2.4 GLIBC_2.4 A
+GLIBC_2.4 __confstr_chk F
+GLIBC_2.4 __fgets_chk F
+GLIBC_2.4 __fgets_unlocked_chk F
+GLIBC_2.4 __fgetws_chk F
+GLIBC_2.4 __fgetws_unlocked_chk F
+GLIBC_2.4 __fwprintf_chk F
+GLIBC_2.4 __fxstatat F
+GLIBC_2.4 __fxstatat64 F
+GLIBC_2.4 __getcwd_chk F
+GLIBC_2.4 __getdomainname_chk F
+GLIBC_2.4 __getgroups_chk F
+GLIBC_2.4 __gethostname_chk F
+GLIBC_2.4 __getlogin_r_chk F
+GLIBC_2.4 __getwd_chk F
+GLIBC_2.4 __mbsnrtowcs_chk F
+GLIBC_2.4 __mbsrtowcs_chk F
+GLIBC_2.4 __mbstowcs_chk F
+GLIBC_2.4 __pread64_chk F
+GLIBC_2.4 __pread_chk F
+GLIBC_2.4 __ptsname_r_chk F
+GLIBC_2.4 __read_chk F
+GLIBC_2.4 __readlink_chk F
+GLIBC_2.4 __realpath_chk F
+GLIBC_2.4 __recv_chk F
+GLIBC_2.4 __recvfrom_chk F
+GLIBC_2.4 __stack_chk_fail F
+GLIBC_2.4 __stpncpy_chk F
+GLIBC_2.4 __swprintf_chk F
+GLIBC_2.4 __syslog_chk F
+GLIBC_2.4 __ttyname_r_chk F
+GLIBC_2.4 __vfwprintf_chk F
+GLIBC_2.4 __vswprintf_chk F
+GLIBC_2.4 __vsyslog_chk F
+GLIBC_2.4 __vwprintf_chk F
+GLIBC_2.4 __wcpcpy_chk F
+GLIBC_2.4 __wcpncpy_chk F
+GLIBC_2.4 __wcrtomb_chk F
+GLIBC_2.4 __wcscat_chk F
+GLIBC_2.4 __wcscpy_chk F
+GLIBC_2.4 __wcsncat_chk F
+GLIBC_2.4 __wcsncpy_chk F
+GLIBC_2.4 __wcsnrtombs_chk F
+GLIBC_2.4 __wcsrtombs_chk F
+GLIBC_2.4 __wcstombs_chk F
+GLIBC_2.4 __wctomb_chk F
+GLIBC_2.4 __wmemcpy_chk F
+GLIBC_2.4 __wmemmove_chk F
+GLIBC_2.4 __wmempcpy_chk F
+GLIBC_2.4 __wmemset_chk F
+GLIBC_2.4 __wprintf_chk F
+GLIBC_2.4 __xmknodat F
+GLIBC_2.4 _sys_errlist D 0x430
+GLIBC_2.4 _sys_nerr D 0x4
+GLIBC_2.4 eaccess F
+GLIBC_2.4 faccessat F
+GLIBC_2.4 fchmodat F
+GLIBC_2.4 fchownat F
+GLIBC_2.4 fdopendir F
+GLIBC_2.4 futimesat F
+GLIBC_2.4 inotify_add_watch F
+GLIBC_2.4 inotify_init F
+GLIBC_2.4 inotify_rm_watch F
+GLIBC_2.4 linkat F
+GLIBC_2.4 mkdirat F
+GLIBC_2.4 mkfifoat F
+GLIBC_2.4 open_wmemstream F
+GLIBC_2.4 openat F
+GLIBC_2.4 openat64 F
+GLIBC_2.4 ppoll F
+GLIBC_2.4 readlinkat F
+GLIBC_2.4 renameat F
+GLIBC_2.4 symlinkat F
+GLIBC_2.4 sys_errlist D 0x430
+GLIBC_2.4 sys_nerr D 0x4
+GLIBC_2.4 unlinkat F
+GLIBC_2.4 unshare F
+GLIBC_2.5 GLIBC_2.5 A
+GLIBC_2.5 __readlinkat_chk F
+GLIBC_2.5 inet6_opt_append F
+GLIBC_2.5 inet6_opt_find F
+GLIBC_2.5 inet6_opt_finish F
+GLIBC_2.5 inet6_opt_get_val F
+GLIBC_2.5 inet6_opt_init F
+GLIBC_2.5 inet6_opt_next F
+GLIBC_2.5 inet6_opt_set_val F
+GLIBC_2.5 inet6_rth_add F
+GLIBC_2.5 inet6_rth_getaddr F
+GLIBC_2.5 inet6_rth_init F
+GLIBC_2.5 inet6_rth_reverse F
+GLIBC_2.5 inet6_rth_segments F
+GLIBC_2.5 inet6_rth_space F
+GLIBC_2.5 splice F
+GLIBC_2.5 tee F
+GLIBC_2.5 vmsplice F
+GLIBC_2.6 GLIBC_2.6 A
+GLIBC_2.6 __sched_cpucount F
+GLIBC_2.6 epoll_pwait F
+GLIBC_2.6 futimens F
+GLIBC_2.6 sched_getcpu F
+GLIBC_2.6 strerror_l F
+GLIBC_2.6 sync_file_range F
+GLIBC_2.6 utimensat F
+GLIBC_2.7 GLIBC_2.7 A
+GLIBC_2.7 __fread_chk F
+GLIBC_2.7 __fread_unlocked_chk F
+GLIBC_2.7 __isoc99_fscanf F
+GLIBC_2.7 __isoc99_fwscanf F
+GLIBC_2.7 __isoc99_scanf F
+GLIBC_2.7 __isoc99_sscanf F
+GLIBC_2.7 __isoc99_swscanf F
+GLIBC_2.7 __isoc99_vfscanf F
+GLIBC_2.7 __isoc99_vfwscanf F
+GLIBC_2.7 __isoc99_vscanf F
+GLIBC_2.7 __isoc99_vsscanf F
+GLIBC_2.7 __isoc99_vswscanf F
+GLIBC_2.7 __isoc99_vwscanf F
+GLIBC_2.7 __isoc99_wscanf F
+GLIBC_2.7 __open64_2 F
+GLIBC_2.7 __open_2 F
+GLIBC_2.7 __openat64_2 F
+GLIBC_2.7 __openat_2 F
+GLIBC_2.7 __sched_cpualloc F
+GLIBC_2.7 __sched_cpufree F
+GLIBC_2.7 eventfd F
+GLIBC_2.7 eventfd_read F
+GLIBC_2.7 eventfd_write F
+GLIBC_2.7 mkostemp F
+GLIBC_2.7 mkostemp64 F
+GLIBC_2.7 signalfd F
+GLIBC_2.8 GLIBC_2.8 A
+GLIBC_2.8 __asprintf_chk F
+GLIBC_2.8 __dprintf_chk F
+GLIBC_2.8 __obstack_printf_chk F
+GLIBC_2.8 __obstack_vprintf_chk F
+GLIBC_2.8 __vasprintf_chk F
+GLIBC_2.8 __vdprintf_chk F
+GLIBC_2.8 qsort_r F
+GLIBC_2.8 timerfd_create F
+GLIBC_2.8 timerfd_gettime F
+GLIBC_2.8 timerfd_settime F
+GLIBC_2.9 GLIBC_2.9 A
+GLIBC_2.9 dup3 F
+GLIBC_2.9 epoll_create1 F
+GLIBC_2.9 inotify_init1 F
+GLIBC_2.9 pipe2 F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/libcrypt.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/libcrypt.abilist
new file mode 100644
index 0000000000..4db2639336
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/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/sparc/sparc64/libdl.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/libdl.abilist
new file mode 100644
index 0000000000..5536f6e0a9
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/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/sparc/sparc64/libm.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist
new file mode 100644
index 0000000000..d071835880
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist
@@ -0,0 +1,464 @@
+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 _LIB_VERSION D 0x4
+GLIBC_2.2 __clog10 F
+GLIBC_2.2 __clog10f F
+GLIBC_2.2 __clog10l F
+GLIBC_2.2 __finite F
+GLIBC_2.2 __finitef F
+GLIBC_2.2 __finitel F
+GLIBC_2.2 __fpclassify F
+GLIBC_2.2 __fpclassifyf F
+GLIBC_2.2 __fpclassifyl F
+GLIBC_2.2 __signbit F
+GLIBC_2.2 __signbitf F
+GLIBC_2.2 __signbitl F
+GLIBC_2.2 acos F
+GLIBC_2.2 acosf F
+GLIBC_2.2 acosh F
+GLIBC_2.2 acoshf F
+GLIBC_2.2 acoshl F
+GLIBC_2.2 acosl F
+GLIBC_2.2 asin F
+GLIBC_2.2 asinf F
+GLIBC_2.2 asinh F
+GLIBC_2.2 asinhf F
+GLIBC_2.2 asinhl F
+GLIBC_2.2 asinl F
+GLIBC_2.2 atan F
+GLIBC_2.2 atan2 F
+GLIBC_2.2 atan2f F
+GLIBC_2.2 atan2l F
+GLIBC_2.2 atanf F
+GLIBC_2.2 atanh F
+GLIBC_2.2 atanhf F
+GLIBC_2.2 atanhl F
+GLIBC_2.2 atanl F
+GLIBC_2.2 cabs F
+GLIBC_2.2 cabsf F
+GLIBC_2.2 cabsl F
+GLIBC_2.2 cacos F
+GLIBC_2.2 cacosf F
+GLIBC_2.2 cacosh F
+GLIBC_2.2 cacoshf F
+GLIBC_2.2 cacoshl F
+GLIBC_2.2 cacosl F
+GLIBC_2.2 carg F
+GLIBC_2.2 cargf F
+GLIBC_2.2 cargl F
+GLIBC_2.2 casin F
+GLIBC_2.2 casinf F
+GLIBC_2.2 casinh F
+GLIBC_2.2 casinhf F
+GLIBC_2.2 casinhl F
+GLIBC_2.2 casinl F
+GLIBC_2.2 catan F
+GLIBC_2.2 catanf F
+GLIBC_2.2 catanh F
+GLIBC_2.2 catanhf F
+GLIBC_2.2 catanhl F
+GLIBC_2.2 catanl F
+GLIBC_2.2 cbrt F
+GLIBC_2.2 cbrtf F
+GLIBC_2.2 cbrtl F
+GLIBC_2.2 ccos F
+GLIBC_2.2 ccosf F
+GLIBC_2.2 ccosh F
+GLIBC_2.2 ccoshf F
+GLIBC_2.2 ccoshl F
+GLIBC_2.2 ccosl F
+GLIBC_2.2 ceil F
+GLIBC_2.2 ceilf F
+GLIBC_2.2 ceill F
+GLIBC_2.2 cexp F
+GLIBC_2.2 cexpf F
+GLIBC_2.2 cexpl F
+GLIBC_2.2 cimag F
+GLIBC_2.2 cimagf F
+GLIBC_2.2 cimagl F
+GLIBC_2.2 clog F
+GLIBC_2.2 clog10 F
+GLIBC_2.2 clog10f F
+GLIBC_2.2 clog10l F
+GLIBC_2.2 clogf F
+GLIBC_2.2 clogl F
+GLIBC_2.2 conj F
+GLIBC_2.2 conjf F
+GLIBC_2.2 conjl F
+GLIBC_2.2 copysign F
+GLIBC_2.2 copysignf F
+GLIBC_2.2 copysignl F
+GLIBC_2.2 cos F
+GLIBC_2.2 cosf F
+GLIBC_2.2 cosh F
+GLIBC_2.2 coshf F
+GLIBC_2.2 coshl F
+GLIBC_2.2 cosl F
+GLIBC_2.2 cpow F
+GLIBC_2.2 cpowf F
+GLIBC_2.2 cpowl F
+GLIBC_2.2 cproj F
+GLIBC_2.2 cprojf F
+GLIBC_2.2 cprojl F
+GLIBC_2.2 creal F
+GLIBC_2.2 crealf F
+GLIBC_2.2 creall F
+GLIBC_2.2 csin F
+GLIBC_2.2 csinf F
+GLIBC_2.2 csinh F
+GLIBC_2.2 csinhf F
+GLIBC_2.2 csinhl F
+GLIBC_2.2 csinl F
+GLIBC_2.2 csqrt F
+GLIBC_2.2 csqrtf F
+GLIBC_2.2 csqrtl F
+GLIBC_2.2 ctan F
+GLIBC_2.2 ctanf F
+GLIBC_2.2 ctanh F
+GLIBC_2.2 ctanhf F
+GLIBC_2.2 ctanhl F
+GLIBC_2.2 ctanl F
+GLIBC_2.2 drem F
+GLIBC_2.2 dremf F
+GLIBC_2.2 dreml F
+GLIBC_2.2 erf F
+GLIBC_2.2 erfc F
+GLIBC_2.2 erfcf F
+GLIBC_2.2 erfcl F
+GLIBC_2.2 erff F
+GLIBC_2.2 erfl F
+GLIBC_2.2 exp F
+GLIBC_2.2 exp10 F
+GLIBC_2.2 exp10f F
+GLIBC_2.2 exp10l F
+GLIBC_2.2 exp2 F
+GLIBC_2.2 exp2f F
+GLIBC_2.2 exp2l F
+GLIBC_2.2 expf F
+GLIBC_2.2 expl F
+GLIBC_2.2 expm1 F
+GLIBC_2.2 expm1f F
+GLIBC_2.2 expm1l F
+GLIBC_2.2 fabs F
+GLIBC_2.2 fabsf F
+GLIBC_2.2 fabsl F
+GLIBC_2.2 fdim F
+GLIBC_2.2 fdimf F
+GLIBC_2.2 fdiml F
+GLIBC_2.2 feclearexcept F
+GLIBC_2.2 fedisableexcept F
+GLIBC_2.2 feenableexcept F
+GLIBC_2.2 fegetenv F
+GLIBC_2.2 fegetexcept F
+GLIBC_2.2 fegetexceptflag F
+GLIBC_2.2 fegetround F
+GLIBC_2.2 feholdexcept F
+GLIBC_2.2 feraiseexcept F
+GLIBC_2.2 fesetenv F
+GLIBC_2.2 fesetexceptflag F
+GLIBC_2.2 fesetround F
+GLIBC_2.2 fetestexcept F
+GLIBC_2.2 feupdateenv F
+GLIBC_2.2 finite F
+GLIBC_2.2 finitef F
+GLIBC_2.2 finitel F
+GLIBC_2.2 floor F
+GLIBC_2.2 floorf F
+GLIBC_2.2 floorl F
+GLIBC_2.2 fma F
+GLIBC_2.2 fmaf F
+GLIBC_2.2 fmal F
+GLIBC_2.2 fmax F
+GLIBC_2.2 fmaxf F
+GLIBC_2.2 fmaxl F
+GLIBC_2.2 fmin F
+GLIBC_2.2 fminf F
+GLIBC_2.2 fminl F
+GLIBC_2.2 fmod F
+GLIBC_2.2 fmodf F
+GLIBC_2.2 fmodl F
+GLIBC_2.2 frexp F
+GLIBC_2.2 frexpf F
+GLIBC_2.2 frexpl F
+GLIBC_2.2 gamma F
+GLIBC_2.2 gammaf F
+GLIBC_2.2 gammal F
+GLIBC_2.2 hypot F
+GLIBC_2.2 hypotf F
+GLIBC_2.2 hypotl F
+GLIBC_2.2 ilogb F
+GLIBC_2.2 ilogbf F
+GLIBC_2.2 ilogbl F
+GLIBC_2.2 j0 F
+GLIBC_2.2 j0f F
+GLIBC_2.2 j0l F
+GLIBC_2.2 j1 F
+GLIBC_2.2 j1f F
+GLIBC_2.2 j1l F
+GLIBC_2.2 jn F
+GLIBC_2.2 jnf F
+GLIBC_2.2 jnl F
+GLIBC_2.2 ldexp F
+GLIBC_2.2 ldexpf F
+GLIBC_2.2 ldexpl F
+GLIBC_2.2 lgamma F
+GLIBC_2.2 lgamma_r F
+GLIBC_2.2 lgammaf F
+GLIBC_2.2 lgammaf_r F
+GLIBC_2.2 lgammal F
+GLIBC_2.2 lgammal_r F
+GLIBC_2.2 llrint F
+GLIBC_2.2 llrintf F
+GLIBC_2.2 llrintl F
+GLIBC_2.2 llround F
+GLIBC_2.2 llroundf F
+GLIBC_2.2 llroundl F
+GLIBC_2.2 log F
+GLIBC_2.2 log10 F
+GLIBC_2.2 log10f F
+GLIBC_2.2 log10l F
+GLIBC_2.2 log1p F
+GLIBC_2.2 log1pf F
+GLIBC_2.2 log1pl F
+GLIBC_2.2 log2 F
+GLIBC_2.2 log2f F
+GLIBC_2.2 log2l F
+GLIBC_2.2 logb F
+GLIBC_2.2 logbf F
+GLIBC_2.2 logbl F
+GLIBC_2.2 logf F
+GLIBC_2.2 logl F
+GLIBC_2.2 lrint F
+GLIBC_2.2 lrintf F
+GLIBC_2.2 lrintl F
+GLIBC_2.2 lround F
+GLIBC_2.2 lroundf F
+GLIBC_2.2 lroundl F
+GLIBC_2.2 matherr F
+GLIBC_2.2 modf F
+GLIBC_2.2 modff F
+GLIBC_2.2 modfl F
+GLIBC_2.2 nan F
+GLIBC_2.2 nanf F
+GLIBC_2.2 nanl F
+GLIBC_2.2 nearbyint F
+GLIBC_2.2 nearbyintf F
+GLIBC_2.2 nearbyintl F
+GLIBC_2.2 nextafter F
+GLIBC_2.2 nextafterf F
+GLIBC_2.2 nextafterl F
+GLIBC_2.2 nexttoward F
+GLIBC_2.2 nexttowardf F
+GLIBC_2.2 nexttowardl F
+GLIBC_2.2 pow F
+GLIBC_2.2 pow10 F
+GLIBC_2.2 pow10f F
+GLIBC_2.2 pow10l F
+GLIBC_2.2 powf F
+GLIBC_2.2 powl F
+GLIBC_2.2 remainder F
+GLIBC_2.2 remainderf F
+GLIBC_2.2 remainderl F
+GLIBC_2.2 remquo F
+GLIBC_2.2 remquof F
+GLIBC_2.2 remquol F
+GLIBC_2.2 rint F
+GLIBC_2.2 rintf F
+GLIBC_2.2 rintl F
+GLIBC_2.2 round F
+GLIBC_2.2 roundf F
+GLIBC_2.2 roundl F
+GLIBC_2.2 scalb F
+GLIBC_2.2 scalbf F
+GLIBC_2.2 scalbl F
+GLIBC_2.2 scalbln F
+GLIBC_2.2 scalblnf F
+GLIBC_2.2 scalblnl F
+GLIBC_2.2 scalbn F
+GLIBC_2.2 scalbnf F
+GLIBC_2.2 scalbnl F
+GLIBC_2.2 signgam D 0x4
+GLIBC_2.2 significand F
+GLIBC_2.2 significandf F
+GLIBC_2.2 significandl F
+GLIBC_2.2 sin F
+GLIBC_2.2 sincos F
+GLIBC_2.2 sincosf F
+GLIBC_2.2 sincosl F
+GLIBC_2.2 sinf F
+GLIBC_2.2 sinh F
+GLIBC_2.2 sinhf F
+GLIBC_2.2 sinhl F
+GLIBC_2.2 sinl F
+GLIBC_2.2 sqrt F
+GLIBC_2.2 sqrtf F
+GLIBC_2.2 sqrtl F
+GLIBC_2.2 tan F
+GLIBC_2.2 tanf F
+GLIBC_2.2 tanh F
+GLIBC_2.2 tanhf F
+GLIBC_2.2 tanhl F
+GLIBC_2.2 tanl F
+GLIBC_2.2 tgamma F
+GLIBC_2.2 tgammaf F
+GLIBC_2.2 tgammal F
+GLIBC_2.2 trunc F
+GLIBC_2.2 truncf F
+GLIBC_2.2 truncl F
+GLIBC_2.2 y0 F
+GLIBC_2.2 y0f F
+GLIBC_2.2 y0l F
+GLIBC_2.2 y1 F
+GLIBC_2.2 y1f F
+GLIBC_2.2 y1l F
+GLIBC_2.2 yn F
+GLIBC_2.2 ynf F
+GLIBC_2.2 ynl F
+GLIBC_2.23 GLIBC_2.23 A
+GLIBC_2.23 __signgam D 0x4
+GLIBC_2.23 lgamma F
+GLIBC_2.23 lgammaf F
+GLIBC_2.23 lgammal F
+GLIBC_2.24 GLIBC_2.24 A
+GLIBC_2.24 nextdown F
+GLIBC_2.24 nextdownf F
+GLIBC_2.24 nextdownl F
+GLIBC_2.24 nextup F
+GLIBC_2.24 nextupf F
+GLIBC_2.24 nextupl F
+GLIBC_2.25 GLIBC_2.25 A
+GLIBC_2.25 __iseqsig F
+GLIBC_2.25 __iseqsigf F
+GLIBC_2.25 __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
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/libnsl.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/libnsl.abilist
new file mode 100644
index 0000000000..a23db2aeaf
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/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/sparc/sparc64/libpthread.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
new file mode 100644
index 0000000000..d4c8dedd6c
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
@@ -0,0 +1,247 @@
+GLIBC_2.11 GLIBC_2.11 A
+GLIBC_2.11 pthread_sigqueue F
+GLIBC_2.12 GLIBC_2.12 A
+GLIBC_2.12 pthread_getname_np F
+GLIBC_2.12 pthread_mutex_consistent F
+GLIBC_2.12 pthread_mutexattr_getrobust F
+GLIBC_2.12 pthread_mutexattr_setrobust F
+GLIBC_2.12 pthread_setname_np F
+GLIBC_2.18 GLIBC_2.18 A
+GLIBC_2.18 pthread_getattr_default_np F
+GLIBC_2.18 pthread_setattr_default_np F
+GLIBC_2.2 GLIBC_2.2 A
+GLIBC_2.2 _IO_flockfile F
+GLIBC_2.2 _IO_ftrylockfile F
+GLIBC_2.2 _IO_funlockfile F
+GLIBC_2.2 __close F
+GLIBC_2.2 __connect F
+GLIBC_2.2 __errno_location F
+GLIBC_2.2 __fcntl F
+GLIBC_2.2 __fork F
+GLIBC_2.2 __h_errno_location F
+GLIBC_2.2 __libc_allocate_rtsig F
+GLIBC_2.2 __libc_current_sigrtmax F
+GLIBC_2.2 __libc_current_sigrtmin F
+GLIBC_2.2 __lseek F
+GLIBC_2.2 __open F
+GLIBC_2.2 __open64 F
+GLIBC_2.2 __pread64 F
+GLIBC_2.2 __pthread_getspecific F
+GLIBC_2.2 __pthread_key_create F
+GLIBC_2.2 __pthread_mutex_destroy F
+GLIBC_2.2 __pthread_mutex_init F
+GLIBC_2.2 __pthread_mutex_lock F
+GLIBC_2.2 __pthread_mutex_trylock F
+GLIBC_2.2 __pthread_mutex_unlock F
+GLIBC_2.2 __pthread_mutexattr_destroy F
+GLIBC_2.2 __pthread_mutexattr_init F
+GLIBC_2.2 __pthread_mutexattr_settype F
+GLIBC_2.2 __pthread_once F
+GLIBC_2.2 __pthread_rwlock_destroy F
+GLIBC_2.2 __pthread_rwlock_init F
+GLIBC_2.2 __pthread_rwlock_rdlock F
+GLIBC_2.2 __pthread_rwlock_tryrdlock F
+GLIBC_2.2 __pthread_rwlock_trywrlock F
+GLIBC_2.2 __pthread_rwlock_unlock F
+GLIBC_2.2 __pthread_rwlock_wrlock F
+GLIBC_2.2 __pthread_setspecific F
+GLIBC_2.2 __pwrite64 F
+GLIBC_2.2 __read F
+GLIBC_2.2 __res_state F
+GLIBC_2.2 __send F
+GLIBC_2.2 __sigaction F
+GLIBC_2.2 __vfork F
+GLIBC_2.2 __wait F
+GLIBC_2.2 __write F
+GLIBC_2.2 _pthread_cleanup_pop F
+GLIBC_2.2 _pthread_cleanup_pop_restore F
+GLIBC_2.2 _pthread_cleanup_push F
+GLIBC_2.2 _pthread_cleanup_push_defer F
+GLIBC_2.2 accept F
+GLIBC_2.2 close F
+GLIBC_2.2 connect F
+GLIBC_2.2 fcntl F
+GLIBC_2.2 flockfile F
+GLIBC_2.2 fork F
+GLIBC_2.2 fsync F
+GLIBC_2.2 ftrylockfile F
+GLIBC_2.2 funlockfile F
+GLIBC_2.2 longjmp F
+GLIBC_2.2 lseek F
+GLIBC_2.2 lseek64 F
+GLIBC_2.2 msync F
+GLIBC_2.2 nanosleep F
+GLIBC_2.2 open F
+GLIBC_2.2 open64 F
+GLIBC_2.2 pause F
+GLIBC_2.2 pread F
+GLIBC_2.2 pread64 F
+GLIBC_2.2 pthread_atfork F
+GLIBC_2.2 pthread_attr_destroy F
+GLIBC_2.2 pthread_attr_getdetachstate F
+GLIBC_2.2 pthread_attr_getguardsize F
+GLIBC_2.2 pthread_attr_getinheritsched F
+GLIBC_2.2 pthread_attr_getschedparam F
+GLIBC_2.2 pthread_attr_getschedpolicy F
+GLIBC_2.2 pthread_attr_getscope F
+GLIBC_2.2 pthread_attr_getstack F
+GLIBC_2.2 pthread_attr_getstackaddr F
+GLIBC_2.2 pthread_attr_getstacksize F
+GLIBC_2.2 pthread_attr_init F
+GLIBC_2.2 pthread_attr_setdetachstate F
+GLIBC_2.2 pthread_attr_setguardsize F
+GLIBC_2.2 pthread_attr_setinheritsched F
+GLIBC_2.2 pthread_attr_setschedparam F
+GLIBC_2.2 pthread_attr_setschedpolicy F
+GLIBC_2.2 pthread_attr_setscope F
+GLIBC_2.2 pthread_attr_setstack F
+GLIBC_2.2 pthread_attr_setstackaddr F
+GLIBC_2.2 pthread_attr_setstacksize F
+GLIBC_2.2 pthread_barrier_destroy F
+GLIBC_2.2 pthread_barrier_init F
+GLIBC_2.2 pthread_barrier_wait F
+GLIBC_2.2 pthread_barrierattr_destroy F
+GLIBC_2.2 pthread_barrierattr_init F
+GLIBC_2.2 pthread_barrierattr_setpshared F
+GLIBC_2.2 pthread_cancel F
+GLIBC_2.2 pthread_cond_broadcast F
+GLIBC_2.2 pthread_cond_destroy F
+GLIBC_2.2 pthread_cond_init F
+GLIBC_2.2 pthread_cond_signal F
+GLIBC_2.2 pthread_cond_timedwait F
+GLIBC_2.2 pthread_cond_wait F
+GLIBC_2.2 pthread_condattr_destroy F
+GLIBC_2.2 pthread_condattr_getpshared F
+GLIBC_2.2 pthread_condattr_init F
+GLIBC_2.2 pthread_condattr_setpshared F
+GLIBC_2.2 pthread_create F
+GLIBC_2.2 pthread_detach F
+GLIBC_2.2 pthread_equal F
+GLIBC_2.2 pthread_exit F
+GLIBC_2.2 pthread_getconcurrency F
+GLIBC_2.2 pthread_getcpuclockid F
+GLIBC_2.2 pthread_getschedparam F
+GLIBC_2.2 pthread_getspecific F
+GLIBC_2.2 pthread_join F
+GLIBC_2.2 pthread_key_create F
+GLIBC_2.2 pthread_key_delete F
+GLIBC_2.2 pthread_kill F
+GLIBC_2.2 pthread_kill_other_threads_np F
+GLIBC_2.2 pthread_mutex_destroy F
+GLIBC_2.2 pthread_mutex_init F
+GLIBC_2.2 pthread_mutex_lock F
+GLIBC_2.2 pthread_mutex_timedlock F
+GLIBC_2.2 pthread_mutex_trylock F
+GLIBC_2.2 pthread_mutex_unlock F
+GLIBC_2.2 pthread_mutexattr_destroy F
+GLIBC_2.2 pthread_mutexattr_getkind_np F
+GLIBC_2.2 pthread_mutexattr_getpshared F
+GLIBC_2.2 pthread_mutexattr_gettype F
+GLIBC_2.2 pthread_mutexattr_init F
+GLIBC_2.2 pthread_mutexattr_setkind_np F
+GLIBC_2.2 pthread_mutexattr_setpshared F
+GLIBC_2.2 pthread_mutexattr_settype F
+GLIBC_2.2 pthread_once F
+GLIBC_2.2 pthread_rwlock_destroy F
+GLIBC_2.2 pthread_rwlock_init F
+GLIBC_2.2 pthread_rwlock_rdlock F
+GLIBC_2.2 pthread_rwlock_timedrdlock F
+GLIBC_2.2 pthread_rwlock_timedwrlock F
+GLIBC_2.2 pthread_rwlock_tryrdlock F
+GLIBC_2.2 pthread_rwlock_trywrlock F
+GLIBC_2.2 pthread_rwlock_unlock F
+GLIBC_2.2 pthread_rwlock_wrlock F
+GLIBC_2.2 pthread_rwlockattr_destroy F
+GLIBC_2.2 pthread_rwlockattr_getkind_np F
+GLIBC_2.2 pthread_rwlockattr_getpshared F
+GLIBC_2.2 pthread_rwlockattr_init F
+GLIBC_2.2 pthread_rwlockattr_setkind_np F
+GLIBC_2.2 pthread_rwlockattr_setpshared F
+GLIBC_2.2 pthread_self F
+GLIBC_2.2 pthread_setcancelstate F
+GLIBC_2.2 pthread_setcanceltype F
+GLIBC_2.2 pthread_setconcurrency F
+GLIBC_2.2 pthread_setschedparam F
+GLIBC_2.2 pthread_setspecific F
+GLIBC_2.2 pthread_sigmask F
+GLIBC_2.2 pthread_spin_destroy F
+GLIBC_2.2 pthread_spin_init F
+GLIBC_2.2 pthread_spin_lock F
+GLIBC_2.2 pthread_spin_trylock F
+GLIBC_2.2 pthread_spin_unlock F
+GLIBC_2.2 pthread_testcancel F
+GLIBC_2.2 pthread_yield F
+GLIBC_2.2 pwrite F
+GLIBC_2.2 pwrite64 F
+GLIBC_2.2 raise F
+GLIBC_2.2 read F
+GLIBC_2.2 recv F
+GLIBC_2.2 recvfrom F
+GLIBC_2.2 recvmsg F
+GLIBC_2.2 sem_close F
+GLIBC_2.2 sem_destroy F
+GLIBC_2.2 sem_getvalue F
+GLIBC_2.2 sem_init F
+GLIBC_2.2 sem_open F
+GLIBC_2.2 sem_post F
+GLIBC_2.2 sem_timedwait F
+GLIBC_2.2 sem_trywait F
+GLIBC_2.2 sem_unlink F
+GLIBC_2.2 sem_wait F
+GLIBC_2.2 send F
+GLIBC_2.2 sendmsg F
+GLIBC_2.2 sendto F
+GLIBC_2.2 sigaction F
+GLIBC_2.2 siglongjmp F
+GLIBC_2.2 sigwait F
+GLIBC_2.2 system F
+GLIBC_2.2 tcdrain F
+GLIBC_2.2 vfork F
+GLIBC_2.2 wait F
+GLIBC_2.2 waitpid F
+GLIBC_2.2 write F
+GLIBC_2.2.3 GLIBC_2.2.3 A
+GLIBC_2.2.3 pthread_getattr_np F
+GLIBC_2.2.6 GLIBC_2.2.6 A
+GLIBC_2.2.6 __nanosleep F
+GLIBC_2.3.2 GLIBC_2.3.2 A
+GLIBC_2.3.2 pthread_cond_broadcast F
+GLIBC_2.3.2 pthread_cond_destroy F
+GLIBC_2.3.2 pthread_cond_init F
+GLIBC_2.3.2 pthread_cond_signal F
+GLIBC_2.3.2 pthread_cond_timedwait F
+GLIBC_2.3.2 pthread_cond_wait F
+GLIBC_2.3.3 GLIBC_2.3.3 A
+GLIBC_2.3.3 __pthread_cleanup_routine F
+GLIBC_2.3.3 __pthread_register_cancel F
+GLIBC_2.3.3 __pthread_register_cancel_defer F
+GLIBC_2.3.3 __pthread_unregister_cancel F
+GLIBC_2.3.3 __pthread_unregister_cancel_restore F
+GLIBC_2.3.3 __pthread_unwind_next F
+GLIBC_2.3.3 pthread_attr_getaffinity_np F
+GLIBC_2.3.3 pthread_attr_setaffinity_np F
+GLIBC_2.3.3 pthread_attr_setstack F
+GLIBC_2.3.3 pthread_attr_setstacksize 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/sparc/sparc64/libresolv.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/libresolv.abilist
new file mode 100644
index 0000000000..2d92a35e81
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/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 0xa8
+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 0x450
+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 0x80
+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/sparc/sparc64/librt.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
new file mode 100644
index 0000000000..8699f6ccc4
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist
@@ -0,0 +1,56 @@
+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 GLIBC_2.3 A
+GLIBC_2.3 aio_cancel F
+GLIBC_2.3 aio_cancel64 F
+GLIBC_2.3.3 GLIBC_2.3.3 A
+GLIBC_2.3.3 timer_create F
+GLIBC_2.3.3 timer_delete F
+GLIBC_2.3.3 timer_getoverrun F
+GLIBC_2.3.3 timer_gettime F
+GLIBC_2.3.3 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/sparc/sparc64/libthread_db.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/libthread_db.abilist
new file mode 100644
index 0000000000..a8a8c2c68d
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/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/sparc/sparc64/libutil.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/libutil.abilist
new file mode 100644
index 0000000000..89c67755c4
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/libutil.abilist
@@ -0,0 +1,7 @@
+GLIBC_2.0 GLIBC_2.0 A
+GLIBC_2.0 forkpty F
+GLIBC_2.0 login F
+GLIBC_2.0 login_tty F
+GLIBC_2.0 logout F
+GLIBC_2.0 logwtmp F
+GLIBC_2.0 openpty F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/localplt.data b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/localplt.data
new file mode 100644
index 0000000000..912bd1a16e
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/localplt.data
@@ -0,0 +1,29 @@
+libc.so: _Qp_add ?
+libc.so: _Qp_cmp ?
+libc.so: _Qp_div ?
+libc.so: _Qp_feq ?
+libc.so: _Qp_fge ?
+libc.so: _Qp_fle ?
+libc.so: _Qp_flt ?
+libc.so: _Qp_fne ?
+libc.so: _Qp_itoq ?
+libc.so: _Qp_mul ?
+libc.so: _Qp_qtod ?
+libc.so: _Qp_sub ?
+libc.so: _Qp_xtoq ?
+libc.so: _Unwind_Find_FDE
+libc.so: calloc
+libc.so: free
+libc.so: malloc
+libc.so: memalign
+libc.so: realloc
+libm.so: matherr
+# The main malloc is interposed into the dynamic linker, for
+# allocations after the initial link (when dlopen is used).
+ld.so: malloc
+ld.so: calloc
+ld.so: realloc
+ld.so: free
+# The TLS-enabled version of these functions is interposed from libc.so.
+ld.so: _dl_signal_error
+ld.so: _dl_catch_error
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/longjmp.S b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/longjmp.S
new file mode 100644
index 0000000000..770e4def41
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/longjmp.S
@@ -0,0 +1,51 @@
+/* Copyright (C) 1997-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Richard Henderson (rth@tamu.edu).
+
+ 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/>. */
+
+/* longjmp is implemented in terms of the setcontext trap on Linux/Sparc64. */
+
+#include <sysdep.h>
+
+/* Offsets into the jmp_buf structure. */
+
+#define O_mask_was_saved 512
+#define O_gregs 32
+#define O_g1 (O_gregs + 4*8)
+
+
+/* void longjmp (sigjmp_buf env, int val) */
+
+ENTRY(__libc_siglongjmp)
+
+ /* Modify the context with the value we want to return. */
+ movre %o1, 1, %o1
+ stx %o1, [%o0 + O_g1]
+
+ /* Let setcontext know if we want to modify the current sigmask. */
+ ld [%o0 + O_mask_was_saved], %o1
+
+ /* And bamf back to where we belong! */
+ ta 0x6f
+
+END(__libc_siglongjmp)
+
+strong_alias(__libc_siglongjmp, __longjmp)
+strong_alias(__libc_siglongjmp, __libc_longjmp)
+libc_hidden_def (__libc_longjmp)
+weak_alias (__libc_siglongjmp, longjmp)
+weak_alias (__libc_siglongjmp, _longjmp)
+weak_alias (__libc_siglongjmp, siglongjmp)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/lxstat.c b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/lxstat.c
new file mode 100644
index 0000000000..7f1e98e433
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/lxstat.c
@@ -0,0 +1 @@
+#include "../../i386/lxstat.c"
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/makecontext.c b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/makecontext.c
new file mode 100644
index 0000000000..ca174d01c1
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/makecontext.c
@@ -0,0 +1,57 @@
+/* Copyright (C) 2001-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 <stdarg.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <ucontext.h>
+
+extern void __start_context (struct ucontext *ucp);
+
+void
+__makecontext (ucontext_t *ucp, void (*func) (void), int argc, ...)
+{
+ extern void __makecontext_ret (void);
+ unsigned long *sp, *topsp;
+ va_list ap;
+ int i;
+
+ sp = (unsigned long *) ((long) ucp->uc_stack.ss_sp + ucp->uc_stack.ss_size);
+ sp -= (argc > 6 ? argc : 6) + 32;
+ sp = (unsigned long *) (((long) sp) & -16L);
+ topsp = sp + (argc > 6 ? argc : 6) + 16;
+
+ ucp->uc_mcontext.mc_gregs[MC_PC] = (long) func;
+ ucp->uc_mcontext.mc_gregs[MC_NPC] = ((long) func) + 4;
+ ucp->uc_mcontext.mc_gregs[MC_O6] = ((long) sp) - 0x7ff;
+ ucp->uc_mcontext.mc_gregs[MC_O7] = ((long) __start_context) - 8;
+ ucp->uc_mcontext.mc_fp = ((long) topsp) - 0x7ff;
+ ucp->uc_mcontext.mc_i7 = 0;
+ topsp[14] = 0;
+ topsp[15] = 0;
+ sp[8] = (long) ucp->uc_link;
+ va_start (ap, argc);
+ for (i = 0; i < argc; ++i)
+ if (i < 6)
+ ucp->uc_mcontext.mc_gregs[MC_O0 + i] = va_arg (ap, long);
+ else
+ sp[16 + i] = va_arg (ap, long);
+ va_end (ap);
+}
+
+weak_alias (__makecontext, makecontext)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/personality.c b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/personality.c
new file mode 100644
index 0000000000..250e501d91
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/personality.c
@@ -0,0 +1,3 @@
+/* Work around sign extension bug in the kernel. */
+#define PERSONALITY_TRUNCATE_ARGUMENT
+#include <sysdeps/unix/sysv/linux/personality.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/pipe.S b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/pipe.S
new file mode 100644
index 0000000000..83394cd3d0
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/pipe.S
@@ -0,0 +1,40 @@
+/* Copyright (C) 1997-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Miguel de Icaza <miguel@gnu.ai.mit.edu>, 1997.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+
+ .text
+
+ .globl __syscall_error
+ENTRY(__libc_pipe)
+ mov %o0, %o2 /* Save PIPEDES. */
+ LOADSYSCALL(pipe)
+ ta 0x6d
+ bcc,pt %xcc, 1f
+ mov %o7, %g1
+ call __syscall_error
+ mov %g1, %o7
+1: st %o0, [%o2] /* PIPEDES[0] = %o0; */
+ st %o1, [%o2 + 4] /* PIPEDES[1] = %o1; */
+ retl
+ clr %o0
+END(__libc_pipe)
+
+weak_alias (__libc_pipe, __pipe)
+libc_hidden_def (__pipe)
+weak_alias (__libc_pipe, pipe)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/profil-counter.h b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/profil-counter.h
new file mode 100644
index 0000000000..e68083b63d
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/profil-counter.h
@@ -0,0 +1,28 @@
+/* Low-level statistical profiling support function. Linux/Sparc64 version.
+ Copyright (C) 1997-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <signal.h>
+
+void
+__profil_counter (int signo, struct sigcontext *si)
+{
+ profil_count ((void *) si->sigc_regs.tpc);
+}
+#ifndef __profil_counter
+weak_alias (__profil_counter, profil_counter)
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/register-dump.h b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/register-dump.h
new file mode 100644
index 0000000000..7f1d85471e
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/register-dump.h
@@ -0,0 +1,256 @@
+/* Dump registers.
+ Copyright (C) 1999-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Jakub Jelinek <jj@ultra.linux.cz>, 1999.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sys/uio.h>
+#include <_itoa.h>
+
+/* We will print the register dump in this format:
+
+ TSTATE: XXXXXXXXXXXXXXXX TPC: XXXXXXXXXXXXXXXX TNPC: XXXXXXXXXXXXXXXX
+ Y: XXXXXXXX
+ g0: 0000000000000000 g1: XXXXXXXXXXXXXXXX g2: XXXXXXXXXXXXXXXX
+ g3: XXXXXXXXXXXXXXXX g4: XXXXXXXXXXXXXXXX g5: XXXXXXXXXXXXXXXX
+ g6: XXXXXXXXXXXXXXXX g7: XXXXXXXXXXXXXXXX
+ o0: XXXXXXXXXXXXXXXX o1: XXXXXXXXXXXXXXXX o2: XXXXXXXXXXXXXXXX
+ o3: XXXXXXXXXXXXXXXX o4: XXXXXXXXXXXXXXXX o5: XXXXXXXXXXXXXXXX
+ sp: XXXXXXXXXXXXXXXX o7: XXXXXXXXXXXXXXXX
+ l0: XXXXXXXXXXXXXXXX l1: XXXXXXXXXXXXXXXX l2: XXXXXXXXXXXXXXXX
+ l3: XXXXXXXXXXXXXXXX l4: XXXXXXXXXXXXXXXX l5: XXXXXXXXXXXXXXXX
+ l6: XXXXXXXXXXXXXXXX l7: XXXXXXXXXXXXXXXX
+ i0: XXXXXXXXXXXXXXXX i1: XXXXXXXXXXXXXXXX i2: XXXXXXXXXXXXXXXX
+ i3: XXXXXXXXXXXXXXXX i4: XXXXXXXXXXXXXXXX i5: XXXXXXXXXXXXXXXX
+ fp: XXXXXXXXXXXXXXXX i7: XXXXXXXXXXXXXXXX
+
+ Mask: XXXXXXXXXXXXXXXX XFSR: XXXXXXXXXXXXXXXX GSR: XX FPRS: X
+ f0: XXXXXXXXXXXXXXXX f2: XXXXXXXXXXXXXXXX f4: XXXXXXXXXXXXXXXX
+ f6: XXXXXXXXXXXXXXXX f8: XXXXXXXXXXXXXXXX f10: XXXXXXXXXXXXXXXX
+ f12: XXXXXXXXXXXXXXXX f14: XXXXXXXXXXXXXXXX f16: XXXXXXXXXXXXXXXX
+ f18: XXXXXXXXXXXXXXXX f20: XXXXXXXXXXXXXXXX f22: XXXXXXXXXXXXXXXX
+ f24: XXXXXXXXXXXXXXXX f26: XXXXXXXXXXXXXXXX f28: XXXXXXXXXXXXXXXX
+ f30: XXXXXXXXXXXXXXXX f32: XXXXXXXXXXXXXXXX f34: XXXXXXXXXXXXXXXX
+ f36: XXXXXXXXXXXXXXXX f38: XXXXXXXXXXXXXXXX f40: XXXXXXXXXXXXXXXX
+ f42: XXXXXXXXXXXXXXXX f44: XXXXXXXXXXXXXXXX f46: XXXXXXXXXXXXXXXX
+ f48: XXXXXXXXXXXXXXXX f50: XXXXXXXXXXXXXXXX f52: XXXXXXXXXXXXXXXX
+ f54: XXXXXXXXXXXXXXXX f56: XXXXXXXXXXXXXXXX f58: XXXXXXXXXXXXXXXX
+ f60: XXXXXXXXXXXXXXXX f62: 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, SIGCONTEXT ctx)
+{
+ char regs[36][16];
+ char fregs[68][8];
+ struct iovec iov[150];
+ size_t nr = 0;
+ int i;
+ unsigned long *r = (unsigned long *)
+ (ctx->sigc_regs.u_regs[14] + STACK_BIAS);
+ __siginfo_fpu_t *f;
+
+#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->sigc_regs.tstate, regs[0], 16);
+ hexvalue (ctx->sigc_regs.tpc, regs[1], 16);
+ hexvalue (ctx->sigc_regs.tnpc, regs[2], 16);
+ hexvalue (ctx->sigc_regs.y, regs[3], 8);
+ for (i = 1; i <= 15; i++)
+ hexvalue (ctx->sigc_regs.u_regs[i], regs[3+i], 16);
+ for (i = 0; i <= 15; i++)
+ hexvalue (r[i], regs[19+i], 16);
+ hexvalue (ctx->sigc_mask, regs[35], 16);
+
+ /* Generate the output. */
+ ADD_STRING ("Register dump:\n\n TSTATE: ");
+ ADD_MEM (regs[0], 16);
+ ADD_STRING (" TPC: ");
+ ADD_MEM (regs[1], 16);
+ ADD_STRING (" TNPC: ");
+ ADD_MEM (regs[2], 16);
+ ADD_STRING ("\n Y: ");
+ ADD_MEM (regs[3], 8);
+ ADD_STRING ("\n g0: 0000000000000000 g1: ");
+ ADD_MEM (regs[4], 16);
+ ADD_STRING (" g2: ");
+ ADD_MEM (regs[5], 16);
+ ADD_STRING ("\n g3: ");
+ ADD_MEM (regs[6], 16);
+ ADD_STRING (" g4: ");
+ ADD_MEM (regs[7], 16);
+ ADD_STRING (" g5: ");
+ ADD_MEM (regs[8], 16);
+ ADD_STRING ("\n g6: ");
+ ADD_MEM (regs[9], 16);
+ ADD_STRING (" g7: ");
+ ADD_MEM (regs[10], 16);
+ ADD_STRING ("\n o0: ");
+ ADD_MEM (regs[11], 16);
+ ADD_STRING (" o1: ");
+ ADD_MEM (regs[12], 16);
+ ADD_STRING (" o2: ");
+ ADD_MEM (regs[13], 16);
+ ADD_STRING ("\n o3: ");
+ ADD_MEM (regs[14], 16);
+ ADD_STRING (" o4: ");
+ ADD_MEM (regs[15], 16);
+ ADD_STRING (" o5: ");
+ ADD_MEM (regs[16], 16);
+ ADD_STRING ("\n sp: ");
+ ADD_MEM (regs[17], 16);
+ ADD_STRING (" o7: ");
+ ADD_MEM (regs[18], 16);
+ ADD_STRING ("\n l0: ");
+ ADD_MEM (regs[19], 16);
+ ADD_STRING (" l1: ");
+ ADD_MEM (regs[20], 16);
+ ADD_STRING (" l2: ");
+ ADD_MEM (regs[21], 16);
+ ADD_STRING ("\n l3: ");
+ ADD_MEM (regs[22], 16);
+ ADD_STRING (" l4: ");
+ ADD_MEM (regs[23], 16);
+ ADD_STRING (" l5: ");
+ ADD_MEM (regs[24], 16);
+ ADD_STRING ("\n l6: ");
+ ADD_MEM (regs[25], 16);
+ ADD_STRING (" l7: ");
+ ADD_MEM (regs[26], 16);
+ ADD_STRING ("\n i0: ");
+ ADD_MEM (regs[27], 16);
+ ADD_STRING (" i1: ");
+ ADD_MEM (regs[28], 16);
+ ADD_STRING (" i2: ");
+ ADD_MEM (regs[29], 16);
+ ADD_STRING ("\n i3: ");
+ ADD_MEM (regs[30], 16);
+ ADD_STRING (" i4: ");
+ ADD_MEM (regs[31], 16);
+ ADD_STRING (" i5: ");
+ ADD_MEM (regs[32], 16);
+ ADD_STRING ("\n fp: ");
+ ADD_MEM (regs[33], 16);
+ ADD_STRING (" i7: ");
+ ADD_MEM (regs[34], 16);
+ ADD_STRING ("\n\n Mask: ");
+ ADD_MEM (regs[35], 16);
+
+ f = ctx->sigc_fpu_save;
+ if (f != NULL)
+ {
+ for (i = 0; i < 64; i++)
+ hexvalue (f->si_float_regs[i], fregs[i], 8);
+ hexvalue (f->si_fsr, fregs[64], 16);
+ hexvalue (f->si_gsr, fregs[66], 2);
+ hexvalue (f->si_fprs, fregs[67], 1);
+ ADD_STRING (" XFSR: ");
+ ADD_MEM (fregs[64], 16);
+ ADD_STRING (" GSR: ");
+ ADD_MEM (fregs[66], 2);
+ ADD_STRING (" FPRS: ");
+ ADD_MEM (fregs[67], 1);
+ ADD_STRING ("\n f0: ");
+ ADD_MEM (fregs[0], 16);
+ ADD_STRING (" f2: ");
+ ADD_MEM (fregs[2], 16);
+ ADD_STRING (" f4: ");
+ ADD_MEM (fregs[4], 16);
+ ADD_STRING ("\n f6: ");
+ ADD_MEM (fregs[6], 16);
+ ADD_STRING (" f8: ");
+ ADD_MEM (fregs[8], 16);
+ ADD_STRING (" f10: ");
+ ADD_MEM (fregs[10], 16);
+ ADD_STRING ("\n f12: ");
+ ADD_MEM (fregs[12], 16);
+ ADD_STRING (" f14: ");
+ ADD_MEM (fregs[14], 16);
+ ADD_STRING (" f16: ");
+ ADD_MEM (fregs[16], 16);
+ ADD_STRING ("\n f18: ");
+ ADD_MEM (fregs[18], 16);
+ ADD_STRING (" f20: ");
+ ADD_MEM (fregs[20], 16);
+ ADD_STRING (" f22: ");
+ ADD_MEM (fregs[22], 16);
+ ADD_STRING ("\n f24: ");
+ ADD_MEM (fregs[24], 16);
+ ADD_STRING (" f26: ");
+ ADD_MEM (fregs[26], 16);
+ ADD_STRING (" f28: ");
+ ADD_MEM (fregs[28], 16);
+ ADD_STRING ("\n f30: ");
+ ADD_MEM (fregs[30], 16);
+ ADD_STRING (" f32: ");
+ ADD_MEM (fregs[32], 16);
+ ADD_STRING (" f34: ");
+ ADD_MEM (fregs[34], 16);
+ ADD_STRING ("\n f36: ");
+ ADD_MEM (fregs[36], 16);
+ ADD_STRING (" f38: ");
+ ADD_MEM (fregs[38], 16);
+ ADD_STRING (" f40: ");
+ ADD_MEM (fregs[40], 16);
+ ADD_STRING ("\n f42: ");
+ ADD_MEM (fregs[42], 16);
+ ADD_STRING (" f44: ");
+ ADD_MEM (fregs[44], 16);
+ ADD_STRING (" f46: ");
+ ADD_MEM (fregs[46], 16);
+ ADD_STRING ("\n f48: ");
+ ADD_MEM (fregs[48], 16);
+ ADD_STRING (" f50: ");
+ ADD_MEM (fregs[50], 16);
+ ADD_STRING (" f52: ");
+ ADD_MEM (fregs[52], 16);
+ ADD_STRING ("\n f54: ");
+ ADD_MEM (fregs[54], 16);
+ ADD_STRING (" f56: ");
+ ADD_MEM (fregs[56], 16);
+ ADD_STRING (" f58: ");
+ ADD_MEM (fregs[58], 16);
+ ADD_STRING ("\n f60: ");
+ ADD_MEM (fregs[60], 16);
+ ADD_STRING (" f62: ");
+ ADD_MEM (fregs[62], 16);
+ }
+
+ 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/sparc/sparc64/setcontext.S b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/setcontext.S
new file mode 100644
index 0000000000..085db5c0ee
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/setcontext.S
@@ -0,0 +1,38 @@
+/* Copyright (C) 1997-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Richard Henderson (rth@tamu.edu).
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#include "ucontext_i.h"
+
+/* int setcontext(ucontext_t *ctx); */
+.weak setcontext
+ENTRY(setcontext)
+
+ ba,pt %xcc, 1f
+ mov 1, %o1
+
+END(setcontext)
+
+/* int __setcontext(ucontext_t *ctx, int restoremask); */
+ENTRY(__setcontext)
+
+1: ldx [%o0 + UC_SIGMASK], %o2
+ stx %o2, [%o0 + __UC_SIGMASK]
+ ta 0x6f
+
+END(__setcontext)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/setjmp.S b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/setjmp.S
new file mode 100644
index 0000000000..ba32db9c93
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/setjmp.S
@@ -0,0 +1,67 @@
+/* Copyright (C) 1997-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Richard Henderson (rth@tamu.edu).
+
+ 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/>. */
+
+/* __sigsetjmp is implemented in terms of the getcontext trap on
+ Linux/Sparc64. */
+
+#include <sysdep.h>
+
+/* Offsets into the jmp_buf structure. */
+
+#define O_mask_was_saved 512
+#define O_gregs 32
+#define O_g1 (O_gregs + 4*8)
+
+/* int _setjmp(jmp_buf) */
+
+ENTRY(_setjmp)
+ ba __sigsetjmp_local
+ set 0, %o1
+END(_setjmp)
+libc_hidden_def (_setjmp)
+
+/* int setjmp(jmp_buf) */
+
+ENTRY(setjmp)
+ ba,pt %xcc, __sigsetjmp_local
+ set 1, %o1
+END(setjmp)
+
+/* int __sigsetjmp(jmp_buf, savemask) */
+
+ENTRY(__sigsetjmp)
+__sigsetjmp_local:
+
+ /* Record whether the user is intending to save the sigmask. */
+ st %o1, [%o0 + O_mask_was_saved]
+
+ /* Load up our return value, as longjmp is going to override
+ the jmp_buf on its way back. */
+ mov %g0, %g1
+
+ /* And call getcontext! */
+ ta 0x6e
+
+ retl
+ mov %g1, %o0
+
+END(__sigsetjmp)
+hidden_def (__sigsetjmp)
+
+weak_extern(_setjmp)
+weak_extern(setjmp)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/shlib-versions b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/shlib-versions
new file mode 100644
index 0000000000..9333bbd7a3
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/shlib-versions
@@ -0,0 +1,5 @@
+libm=6 GLIBC_2.2
+libc=6 GLIBC_2.2
+ld=ld-linux.so.2 GLIBC_2.2
+libBrokenLocale=1 GLIBC_2.2
+libpthread=0 GLIBC_2.2
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/sigaction.c b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/sigaction.c
new file mode 100644
index 0000000000..78f8a18907
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/sigaction.c
@@ -0,0 +1,78 @@
+/* POSIX.1 sigaction call for Linux/SPARC64.
+ Copyright (C) 1997-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Miguel de Icaza <miguel@nuclecu.unam.mx> and
+ Jakub Jelinek <jj@ultra.linux.cz>.
+
+ 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 <syscall.h>
+#include <sysdep.h>
+#include <sys/signal.h>
+#include <errno.h>
+
+#include <kernel_sigaction.h>
+
+/* SPARC 64bit userland requires a kernel that has rt signals anyway. */
+
+static void __rt_sigreturn_stub (void);
+
+int
+__libc_sigaction (int sig, const struct sigaction *act, struct sigaction *oact)
+{
+ int ret;
+ struct kernel_sigaction kact, koact;
+ unsigned long stub = ((unsigned long) &__rt_sigreturn_stub) - 8;
+
+ if (act)
+ {
+ kact.k_sa_handler = act->sa_handler;
+ memcpy (&kact.sa_mask, &act->sa_mask, sizeof (sigset_t));
+ kact.sa_flags = act->sa_flags;
+ kact.sa_restorer = NULL;
+ }
+
+ /* XXX The size argument hopefully will have to be changed to the
+ real size of the user-level sigset_t. */
+ ret = INLINE_SYSCALL (rt_sigaction, 5, sig,
+ act ? &kact : 0,
+ oact ? &koact : 0, stub, _NSIG / 8);
+
+ if (oact && ret >= 0)
+ {
+ oact->sa_handler = koact.k_sa_handler;
+ memcpy (&oact->sa_mask, &koact.sa_mask, sizeof (sigset_t));
+ oact->sa_flags = koact.sa_flags;
+ oact->sa_restorer = koact.sa_restorer;
+ }
+
+ return ret;
+}
+libc_hidden_def (__libc_sigaction)
+
+#include <nptl/sigaction.c>
+
+
+static
+inhibit_stack_protector
+void
+__rt_sigreturn_stub (void)
+{
+ __asm__ ("mov %0, %%g1\n\t"
+ "ta 0x6d\n\t"
+ : /* no outputs */
+ : "i" (__NR_rt_sigreturn));
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/sigcontextinfo.h b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/sigcontextinfo.h
new file mode 100644
index 0000000000..ba53b4a6e2
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/sigcontextinfo.h
@@ -0,0 +1,31 @@
+/* Copyright (C) 1999-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Jakub Jelinek <jj@ultra.linux.cz>, 1999.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef STACK_BIAS
+#define STACK_BIAS 2047
+#endif
+#define SIGCONTEXT struct sigcontext *
+#define SIGCONTEXT_EXTRA_ARGS
+#define GET_PC(__ctx) ((void *) ((__ctx)->sigc_regs.tpc))
+#define ADVANCE_STACK_FRAME(__next) \
+ ((void *) (((unsigned long *) (((unsigned long int) (__next)) \
+ + STACK_BIAS))+14))
+#define GET_STACK(__ctx) ((void *) ((__ctx)->sigc_regs.u_regs[14]))
+#define GET_FRAME(__ctx) ADVANCE_STACK_FRAME (GET_STACK (__ctx))
+#define CALL_SIGHANDLER(handler, signo, ctx) \
+ (handler)((signo), SIGCONTEXT_EXTRA_ARGS (ctx))
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/sigjmp.S b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/sigjmp.S
new file mode 100644
index 0000000000..940ccbcf68
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/sigjmp.S
@@ -0,0 +1 @@
+/* There is no need for __sigjmp_save what with getcontext. */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/sigpending.c b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/sigpending.c
new file mode 100644
index 0000000000..7e82927435
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/sigpending.c
@@ -0,0 +1,33 @@
+/* Copyright (C) 1997-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <signal.h>
+#include <unistd.h>
+
+#include <sysdep.h>
+#include <sys/syscall.h>
+
+/* Change the set of blocked signals to SET,
+ wait until a signal arrives, and restore the set of blocked signals. */
+int
+sigpending (sigset_t *set)
+{
+ /* XXX The size argument hopefully will have to be changed to the
+ real size of the user-level sigset_t. */
+ return INLINE_SYSCALL (rt_sigpending, 2, set, _NSIG / 8);
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/sigprocmask.c b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/sigprocmask.c
new file mode 100644
index 0000000000..c2205d0044
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/sigprocmask.c
@@ -0,0 +1,33 @@
+/* Copyright (C) 1997-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <signal.h>
+#include <unistd.h>
+
+#include <sysdep.h>
+#include <sys/syscall.h>
+
+/* Get and/or change the set of blocked signals. */
+int
+__sigprocmask (int how, const sigset_t *set, sigset_t *oset)
+{
+ /* XXX The size argument hopefully will have to be changed to the
+ real size of the user-level sigset_t. */
+ return INLINE_SYSCALL (rt_sigprocmask, 4, how, set, oset, _NSIG / 8);
+}
+weak_alias (__sigprocmask, sigprocmask)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/sizes.h b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/sizes.h
new file mode 100644
index 0000000000..24915f6cfb
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/sizes.h
@@ -0,0 +1,23 @@
+/* Copyright (C) 1998-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SIZES_H
+#define _SIZES_H 1
+
+#define PTR_SIZE_STR "8"
+
+#endif /* sizes.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/swapcontext.c b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/swapcontext.c
new file mode 100644
index 0000000000..e871ea3d12
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/swapcontext.c
@@ -0,0 +1,47 @@
+/* Copyright (C) 2001-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 <ucontext.h>
+
+extern int __getcontext (ucontext_t *ucp);
+extern int __setcontext (const ucontext_t *ucp, int restoremask);
+
+int
+__swapcontext (ucontext_t *oucp, const ucontext_t *ucp)
+{
+ extern void __swapcontext_ret (void);
+ /* Save the current machine context to oucp. */
+ __getcontext (oucp);
+ /* Modify oucp to skip the __setcontext call on reactivation. */
+ oucp->uc_mcontext.mc_gregs[MC_PC] = (long) __swapcontext_ret;
+ oucp->uc_mcontext.mc_gregs[MC_NPC] = ((long) __swapcontext_ret) + 4;
+ /* Restore the machine context in ucp. */
+ __setcontext (ucp, 1);
+ return 0;
+}
+
+asm (" \n\
+ .text \n\
+ .type __swapcontext_ret, #function \n\
+__swapcontext_ret: \n\
+ return %i7 + 8 \n\
+ clr %o0 \n\
+ .size __swapcontext_ret, .-__swapcontext_ret \n\
+ ");
+
+weak_alias (__swapcontext, swapcontext)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/syscall.S b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/syscall.S
new file mode 100644
index 0000000000..ac14a7e7de
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/syscall.S
@@ -0,0 +1,39 @@
+/* Copyright (C) 1997-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+ .text
+
+ .globl __syscall_error
+ENTRY(syscall)
+ mov %o0,%g1
+ mov %o1,%o0
+ mov %o2,%o1
+ mov %o3,%o2
+ mov %o4,%o3
+ mov %o5,%o4
+ ldx [%sp + STACK_BIAS + 176],%o5
+
+ ta 0x6d
+
+ bcc,pt %xcc, 1f
+ mov %o7, %g1
+ call __syscall_error
+ mov %g1, %o7
+1: retl
+ nop
+END(syscall)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list
new file mode 100644
index 0000000000..33082f31eb
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list
@@ -0,0 +1,10 @@
+# File name Caller Syscall name # args Strong name Weak names
+
+bind - bind 3 __bind bind
+getpeername - getpeername 3 __getpeername getpeername
+getsockname - getsockname 3 __getsockname getsockname
+getsockopt - getsockopt 5 __getsockopt getsockopt
+listen - listen 2 __listen listen
+setsockopt - setsockopt 5 __setsockopt setsockopt
+shutdown - shutdown 2 __shutdown shutdown
+socketpair - socketpair 4 __socketpair socketpair
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h
new file mode 100644
index 0000000000..45fbd737e0
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h
@@ -0,0 +1,109 @@
+/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Jakub Jelinek <jakub@redhat.com>, 2002.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#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; \
+ .globl __syscall_error; \
+ENTRY(name) \
+ ld [%g7 + MULTIPLE_THREADS_OFFSET], %g1;\
+ brnz,pn %g1, 1f; \
+.type __##syscall_name##_nocancel,@function; \
+.globl __##syscall_name##_nocancel; \
+__##syscall_name##_nocancel: \
+ mov SYS_ify(syscall_name), %g1; \
+ ta 0x6d; \
+ bcc,pt %xcc, 8f; \
+ mov %o7, %g1; \
+ call __syscall_error; \
+ mov %g1, %o7; \
+8: jmpl %o7 + 8, %g0; \
+ nop; \
+.size __##syscall_name##_nocancel,.-__##syscall_name##_nocancel;\
+1: save %sp, -192, %sp; \
+ cfi_def_cfa_register(%fp); \
+ cfi_window_save; \
+ cfi_register(%o7, %i7); \
+ CENABLE; \
+ nop; \
+ mov %o0, %l0; \
+ COPY_ARGS_##args \
+ mov SYS_ify(syscall_name), %g1; \
+ ta 0x6d; \
+ bcc,pt %xcc, 1f; \
+ mov %o0, %l1; \
+ CDISABLE; \
+ mov %l0, %o0; \
+ call __syscall_error; \
+ mov %l1, %o0; \
+ ba,pt %xcc, 2f; \
+ mov -1, %l1; \
+1: CDISABLE; \
+ mov %l0, %o0; \
+2: jmpl %i7 + 8, %g0; \
+ restore %g0, %l1, %o0;
+
+# if IS_IN (libpthread)
+# define CENABLE call __pthread_enable_asynccancel
+# define CDISABLE call __pthread_disable_asynccancel
+# elif IS_IN (libc)
+# define CENABLE call __libc_enable_asynccancel
+# define CDISABLE call __libc_disable_asynccancel
+# elif IS_IN (librt)
+# define CENABLE call __librt_enable_asynccancel
+# define CDISABLE call __librt_disable_asynccancel
+# else
+# error Unsupported library
+# endif
+
+#define COPY_ARGS_0 /* Nothing */
+#define COPY_ARGS_1 COPY_ARGS_0 mov %i0, %o0;
+#define COPY_ARGS_2 COPY_ARGS_1 mov %i1, %o1;
+#define COPY_ARGS_3 COPY_ARGS_2 mov %i2, %o2;
+#define COPY_ARGS_4 COPY_ARGS_3 mov %i3, %o3;
+#define COPY_ARGS_5 COPY_ARGS_4 mov %i4, %o4;
+#define COPY_ARGS_6 COPY_ARGS_5 mov %i5, %o5;
+
+# ifndef __ASSEMBLER__
+# define SINGLE_THREAD_P \
+ __builtin_expect (THREAD_GETMEM (THREAD_SELF, \
+ header.multiple_threads) == 0, 1)
+# else
+# define SINGLE_THREAD_P ld [%g7 + MULTIPLE_THREADS_OFFSET], %g1
+# 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/sparc/sparc64/sysdep.h b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h
new file mode 100644
index 0000000000..ea6bf5146a
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h
@@ -0,0 +1,162 @@
+/* Copyright (C) 1997-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Richard Henderson <richard@gnu.ai.mit.edu>, 1997.
+
+ 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_SPARC64_SYSDEP_H
+#define _LINUX_SPARC64_SYSDEP_H 1
+
+#include <sysdeps/unix/sysv/linux/sparc/sysdep.h>
+
+#if IS_IN (rtld)
+# include <dl-sysdep.h> /* Defines RTLD_PRIVATE_ERRNO. */
+#endif
+#include <tls.h>
+
+#undef SYS_ify
+#define SYS_ify(syscall_name) __NR_##syscall_name
+
+/* This is a kludge to make syscalls.list find these under the names
+ pread and pwrite, since some kernel headers define those names
+ and some define the *64 names for the same system calls. */
+#if !defined __NR_pread && defined __NR_pread64
+# define __NR_pread __NR_pread64
+#endif
+#if !defined __NR_pwrite && defined __NR_pwrite64
+# define __NR_pwrite __NR_pwrite64
+#endif
+
+#ifdef __ASSEMBLER__
+
+#define LOADSYSCALL(x) mov __NR_##x, %g1
+
+#undef PSEUDO
+#define PSEUDO(name, syscall_name, args) \
+ .text; \
+ENTRY(name); \
+ LOADSYSCALL(syscall_name); \
+ ta 0x6d; \
+ bcc,pt %xcc, 1f; \
+ nop; \
+ SYSCALL_ERROR_HANDLER \
+1:
+
+#undef PSEUDO_NOERRNO
+#define PSEUDO_NOERRNO(name, syscall_name, args)\
+ .text; \
+ENTRY(name); \
+ LOADSYSCALL(syscall_name); \
+ ta 0x6d;
+
+#undef PSEUDO_ERRVAL
+#define PSEUDO_ERRVAL(name, syscall_name, args) \
+ .text; \
+ENTRY(name); \
+ LOADSYSCALL(syscall_name); \
+ ta 0x6d;
+
+#undef PSEUDO_END
+#define PSEUDO_END(name) \
+ END(name)
+
+#ifndef PIC
+# define SYSCALL_ERROR_HANDLER \
+ mov %o7, %g1; \
+ call __syscall_error; \
+ mov %g1, %o7;
+#else
+# if RTLD_PRIVATE_ERRNO
+# define SYSCALL_ERROR_HANDLER \
+0: SETUP_PIC_REG_LEAF(o2,g1) \
+ sethi %gdop_hix22(rtld_errno), %g1; \
+ xor %g1, %gdop_lox10(rtld_errno), %g1;\
+ ldx [%o2 + %g1], %g1, %gdop(rtld_errno); \
+ st %o0, [%g1]; \
+ jmp %o7 + 8; \
+ mov -1, %o0;
+# elif defined _LIBC_REENTRANT
+
+# if IS_IN (libc)
+# define SYSCALL_ERROR_ERRNO __libc_errno
+# else
+# define SYSCALL_ERROR_ERRNO errno
+# endif
+# define SYSCALL_ERROR_HANDLER \
+0: SETUP_PIC_REG_LEAF(o2,g1) \
+ sethi %tie_hi22(SYSCALL_ERROR_ERRNO), %g1; \
+ add %g1, %tie_lo10(SYSCALL_ERROR_ERRNO), %g1; \
+ ldx [%o2 + %g1], %g1, %tie_ldx(SYSCALL_ERROR_ERRNO);\
+ st %o0, [%g7 + %g1]; \
+ jmp %o7 + 8; \
+ mov -1, %o0;
+# else
+# define SYSCALL_ERROR_HANDLER \
+0: SETUP_PIC_REG_LEAF(o2,g1) \
+ sethi %gdop_hix22(errno), %g1;\
+ xor %g1, %gdop_lox10(errno), %g1;\
+ ldx [%o2 + %g1], %g1, %gdop(errno);\
+ st %o0, [%g1]; \
+ jmp %o7 + 8; \
+ mov -1, %o0;
+# endif /* _LIBC_REENTRANT */
+#endif /* PIC */
+
+#else /* __ASSEMBLER__ */
+
+#define __SYSCALL_STRING \
+ "ta 0x6d;" \
+ "bcc,pt %%xcc, 1f;" \
+ " mov 0, %%g1;" \
+ "sub %%g0, %%o0, %%o0;" \
+ "mov 1, %%g1;" \
+ "1:"
+
+#define __SYSCALL_CLOBBERS \
+ "f0", "f1", "f2", "f3", "f4", "f5", "f6", "f7", \
+ "f8", "f9", "f10", "f11", "f12", "f13", "f14", "f15", \
+ "f16", "f17", "f18", "f19", "f20", "f21", "f22", "f23", \
+ "f24", "f25", "f26", "f27", "f28", "f29", "f30", "f31", \
+ "f32", "f34", "f36", "f38", "f40", "f42", "f44", "f46", \
+ "f48", "f50", "f52", "f54", "f56", "f58", "f60", "f62", \
+ "cc", "memory"
+
+#endif /* __ASSEMBLER__ */
+
+/* This is the offset from the %sp to the backing store above the
+ register windows. So if you poke stack memory directly you add this. */
+#define STACK_BIAS 2047
+
+/* 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
+# ifdef __ASSEMBLER__
+# define PTR_MANGLE(dreg, reg, tmpreg) \
+ ldx [%g7 + POINTER_GUARD], tmpreg; \
+ xor reg, tmpreg, dreg
+# define PTR_DEMANGLE(dreg, reg, tmpreg) PTR_MANGLE (dreg, reg, tmpreg)
+# define PTR_MANGLE2(dreg, reg, tmpreg) \
+ xor reg, tmpreg, dreg
+# define PTR_DEMANGLE2(dreg, reg, tmpreg) PTR_MANGLE2 (dreg, reg, tmpreg)
+# else
+# define PTR_MANGLE(var) \
+ (var) = (__typeof (var)) ((uintptr_t) (var) ^ THREAD_GET_POINTER_GUARD ())
+# define PTR_DEMANGLE(var) PTR_MANGLE (var)
+# endif
+#endif
+
+#endif /* linux/sparc64/sysdep.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/time.c b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/time.c
new file mode 100644
index 0000000000..509b580c55
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/time.c
@@ -0,0 +1 @@
+#include <sysdeps/posix/time.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/timer_create.c b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/timer_create.c
new file mode 100644
index 0000000000..d307135003
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/timer_create.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/x86_64/timer_create.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/timer_delete.c b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/timer_delete.c
new file mode 100644
index 0000000000..2dd94f5c7a
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/timer_delete.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/x86_64/timer_delete.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/timer_getoverr.c b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/timer_getoverr.c
new file mode 100644
index 0000000000..22eaff5cda
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/timer_getoverr.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/x86_64/timer_getoverr.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/timer_gettime.c b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/timer_gettime.c
new file mode 100644
index 0000000000..cea524bae5
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/timer_gettime.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/x86_64/timer_gettime.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/timer_settime.c b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/timer_settime.c
new file mode 100644
index 0000000000..fa231149d5
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/timer_settime.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/x86_64/timer_settime.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/ucontext_i.h b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/ucontext_i.h
new file mode 100644
index 0000000000..bd6599ed02
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/ucontext_i.h
@@ -0,0 +1,27 @@
+/* Copyright (C) 2001-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/>. */
+
+/* Constants shared between setcontext() and getcontext(). Don't
+ install this header file. */
+
+#define UC_LINK 0
+#define __UC_SIGMASK 16
+#define UC_M_PC 40
+#define UC_M_NPC 48
+#define UC_SIGMASK 536
+#define SIGMASK_WORDS 16
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S
new file mode 100644
index 0000000000..5ff1cca898
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S
@@ -0,0 +1,41 @@
+/* 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>
+#include <tcb-offsets.h>
+
+ .text
+ .globl __syscall_error
+ENTRY(__libc_vfork)
+ LOADSYSCALL(vfork)
+ ta 0x6d
+ bcc,pt %xcc, 2f
+ mov %o7, %g1
+ call __syscall_error
+ mov %g1, %o7
+2: sub %o1, 1, %o1
+ andcc %o0, %o1, %o0
+1: retl
+ nop
+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/sparc/sparc64/wordexp.c b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/wordexp.c
new file mode 100644
index 0000000000..45178d106d
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/wordexp.c
@@ -0,0 +1,59 @@
+/* Copyright (C) 2001-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <shlib-compat.h>
+
+/* For Linux/Alpha we have to make the wordexp symbols versioned. */
+#define wordexp(words, pwordexp, flags) \
+ __new_wordexp (words, pwordexp, flags)
+
+#include <posix/wordexp.c>
+
+versioned_symbol (libc, __new_wordexp, wordexp, GLIBC_2_2_2);
+
+
+#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_2_2)
+/* The old, incorrect wordexp_t definition. */
+typedef struct
+ {
+ int we_wordc; /* Count of words matched. */
+ char **we_wordv; /* List of expanded words. */
+ int we_offs; /* Slots to reserve in `we_wordv'. */
+ } old_wordexp_t;
+
+
+int
+attribute_compat_text_section
+__old_wordexp (const char *words, old_wordexp_t *pwordexp, int flags)
+{
+ wordexp_t we;
+ int result;
+
+ we.we_wordc = pwordexp->we_wordc;
+ we.we_wordv = pwordexp->we_wordv;
+ we.we_offs = pwordexp->we_offs;
+
+ result = __new_wordexp (words, &we, flags);
+
+ pwordexp->we_wordc = we.we_wordc;
+ pwordexp->we_wordv = we.we_wordv;
+ pwordexp->we_offs = we.we_offs;
+
+ return result;
+}
+compat_symbol (libc, __old_wordexp, wordexp, GLIBC_2_1);
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/xstat.c b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/xstat.c
new file mode 100644
index 0000000000..c3b00cb1d4
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/xstat.c
@@ -0,0 +1 @@
+#include "../../i386/xstat.c"
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/xstatconv.c b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/xstatconv.c
new file mode 100644
index 0000000000..8bc62b815c
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/xstatconv.c
@@ -0,0 +1,124 @@
+/* Convert between the kernel's `struct stat' format, and libc's.
+ Copyright (C) 1991-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <assert.h>
+#include <errno.h>
+#include <sys/stat.h>
+#include <kernel_stat.h>
+#include <string.h>
+
+int
+__xstat_conv (int vers, struct kernel_stat *kbuf, void *ubuf)
+{
+ switch (vers)
+ {
+ case _STAT_VER_KERNEL:
+ /* Nothing to do. The struct is in the form the kernel expects.
+ We should have short-circuted before we got here, but for
+ completeness... */
+ *(struct kernel_stat *) ubuf = *kbuf;
+ break;
+
+ case _STAT_VER_LINUX:
+ {
+ struct stat *buf = ubuf;
+
+ /* Convert to current kernel version of `struct stat'. */
+ buf->st_dev = kbuf->st_dev;
+ buf->__pad1 = 0;
+ buf->st_ino = kbuf->st_ino;
+ buf->st_mode = kbuf->st_mode;
+ buf->st_nlink = kbuf->st_nlink;
+ buf->st_uid = kbuf->st_uid;
+ buf->st_gid = kbuf->st_gid;
+ buf->st_rdev = kbuf->st_rdev;
+ buf->__pad2 = 0;
+ buf->st_size = kbuf->st_size;
+ buf->st_blksize = kbuf->st_blksize;
+ buf->st_blocks = kbuf->st_blocks;
+ buf->st_atim.tv_sec = kbuf->st_atime_sec;
+ buf->st_atim.tv_nsec = 0;
+ buf->st_mtim.tv_sec = kbuf->st_mtime_sec;
+ buf->st_mtim.tv_nsec = 0;
+ buf->st_ctim.tv_sec = kbuf->st_ctime_sec;
+ buf->st_ctim.tv_nsec = 0;
+ buf->__glibc_reserved4 = 0;
+ buf->__glibc_reserved5 = 0;
+ }
+ break;
+
+ default:
+ __set_errno (EINVAL);
+ return -1;
+ }
+
+ return 0;
+}
+
+int
+__xstat32_conv (int vers, struct stat64 *sbuf, struct stat *buf)
+{
+ struct kernel_stat64 *kbuf;
+
+ /* *stat64 syscalls on sparc64 really fill in struct kernel_stat64,
+ rather than struct stat64. But it is the same size as
+ struct kernel_stat64, so use this hack so that we can reuse
+ i386 {,f,l}xstat{,at}.c routines. */
+ __asm ("" : "=r" (kbuf) : "0" (sbuf));
+ assert (sizeof (struct stat) == sizeof (struct stat64));
+ assert (sizeof (struct stat64) >= sizeof (struct kernel_stat64));
+
+ switch (vers)
+ {
+ case _STAT_VER_LINUX:
+ {
+ /* Convert current kernel version of `struct stat64' to
+ `struct stat'. */
+ buf->st_dev = kbuf->st_dev;
+ buf->__pad1 = 0;
+ buf->st_ino = kbuf->st_ino;
+ buf->st_mode = kbuf->st_mode;
+ buf->st_nlink = kbuf->st_nlink;
+ buf->st_uid = kbuf->st_uid;
+ buf->st_gid = kbuf->st_gid;
+ buf->st_rdev = kbuf->st_rdev;
+ buf->__pad2 = 0;
+ buf->st_size = kbuf->st_size;
+ buf->st_blksize = kbuf->st_blksize;
+ buf->st_blocks = kbuf->st_blocks;
+ buf->st_atim.tv_sec = kbuf->st_atime_sec;
+ buf->st_atim.tv_nsec = kbuf->st_atime_nsec;
+ buf->st_mtim.tv_sec = kbuf->st_mtime_sec;
+ buf->st_mtim.tv_nsec = kbuf->st_mtime_nsec;
+ buf->st_ctim.tv_sec = kbuf->st_ctime_sec;
+ buf->st_ctim.tv_nsec = kbuf->st_ctime_nsec;
+ buf->__glibc_reserved4 = 0;
+ buf->__glibc_reserved5 = 0;
+ }
+ break;
+
+ /* If struct stat64 is different from struct stat then
+ _STAT_VER_KERNEL does not make sense. */
+ case _STAT_VER_KERNEL:
+ default:
+ __set_errno (EINVAL);
+ return -1;
+ }
+
+ return 0;
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sys/procfs.h b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sys/procfs.h
new file mode 100644
index 0000000000..e41331ac7c
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sys/procfs.h
@@ -0,0 +1,210 @@
+/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_PROCFS_H
+#define _SYS_PROCFS_H 1
+
+/* This is somehow modelled after the file of the same name on SysVr4
+ systems. It provides a definition of the core file format for ELF
+ used on Linux. */
+
+#include <features.h>
+#include <signal.h>
+#include <sys/time.h>
+#include <sys/types.h>
+#include <sys/ucontext.h>
+#include <sys/user.h>
+#include <bits/wordsize.h>
+
+__BEGIN_DECLS
+
+#if __WORDSIZE == 64
+
+#define ELF_NGREG 36
+
+typedef struct
+ {
+ unsigned long pr_regs[32];
+ unsigned long pr_fsr;
+ unsigned long pr_gsr;
+ unsigned long pr_fprs;
+ } elf_fpregset_t;
+
+#else /* sparc32 */
+
+#define ELF_NGREG 38
+
+typedef struct
+ {
+ union
+ {
+ unsigned long pr_regs[32];
+ double pr_dregs[16];
+ } pr_fr;
+ unsigned long __glibc_reserved;
+ unsigned long pr_fsr;
+ unsigned char pr_qcnt;
+ unsigned char pr_q_entrysize;
+ unsigned char pr_en;
+ unsigned int pr_q[64];
+ } elf_fpregset_t;
+
+#endif /* sparc32 */
+
+typedef unsigned long elf_greg_t;
+typedef elf_greg_t elf_gregset_t[ELF_NGREG];
+
+struct elf_siginfo
+ {
+ int si_signo; /* Signal number. */
+ int si_code; /* Extra code. */
+ int si_errno; /* Errno. */
+ };
+
+/* Definitions to generate Intel SVR4-like core files. These mostly
+ have the same names as the SVR4 types with "elf_" tacked on the
+ front to prevent clashes with linux definitions, and the typedef
+ forms have been avoided. This is mostly like the SVR4 structure,
+ but more Linuxy, with things that Linux does not support and which
+ gdb doesn't really use excluded. Fields present but not used are
+ marked with "XXX". */
+struct elf_prstatus
+ {
+ struct elf_siginfo pr_info; /* Info associated with signal. */
+ short int pr_cursig; /* Current signal. */
+ unsigned long int pr_sigpend; /* Set of pending signals. */
+ unsigned long int pr_sighold; /* Set of held signals. */
+ __pid_t pr_pid;
+ __pid_t pr_ppid;
+ __pid_t pr_pgrp;
+ __pid_t pr_sid;
+ struct timeval pr_utime; /* User time. */
+ struct timeval pr_stime; /* System time. */
+ struct timeval pr_cutime; /* Cumulative user time. */
+ struct timeval pr_cstime; /* Cumulative system time. */
+ elf_gregset_t pr_reg; /* GP registers. */
+ int pr_fpvalid; /* True if math copro being used. */
+ };
+
+
+#define ELF_PRARGSZ (80) /* Number of chars for args */
+
+struct elf_prpsinfo
+ {
+ char pr_state; /* Numeric process state. */
+ char pr_sname; /* Char for pr_state. */
+ char pr_zomb; /* Zombie. */
+ char pr_nice; /* Nice val. */
+ unsigned long int pr_flag; /* Flags. */
+#if __WORDSIZE == 64
+ unsigned int pr_uid;
+ unsigned int pr_gid;
+#else
+ unsigned short int pr_uid;
+ unsigned short int pr_gid;
+#endif
+ int pr_pid, pr_ppid, pr_pgrp, pr_sid;
+ /* Lots missing */
+ char pr_fname[16]; /* Filename of executable. */
+ char pr_psargs[ELF_PRARGSZ]; /* Initial part of arg list. */
+ };
+
+/* Addresses. */
+typedef void *psaddr_t;
+
+/* Register sets. Linux has different names. */
+typedef elf_gregset_t prgregset_t;
+typedef elf_fpregset_t prfpregset_t;
+
+/* We don't have any differences between processes and threads,
+ therefore have only one PID type. */
+typedef __pid_t lwpid_t;
+
+
+typedef struct elf_prstatus prstatus_t;
+typedef struct elf_prpsinfo prpsinfo_t;
+
+#if __WORDSIZE == 64
+
+/* Provide 32-bit variants so that BFD can read 32-bit
+ core files. */
+#define ELF_NGREG32 38
+typedef struct
+ {
+ union
+ {
+ unsigned int pr_regs[32];
+ double pr_dregs[16];
+ } pr_fr;
+ unsigned int __glibc_reserved;
+ unsigned int pr_fsr;
+ unsigned char pr_qcnt;
+ unsigned char pr_q_entrysize;
+ unsigned char pr_en;
+ unsigned int pr_q[64];
+ } elf_fpregset_t32;
+
+typedef unsigned int elf_greg_t32;
+typedef elf_greg_t32 elf_gregset_t32[ELF_NGREG32];
+
+struct elf_prstatus32
+ {
+ struct elf_siginfo pr_info; /* Info associated with signal. */
+ short int pr_cursig; /* Current signal. */
+ unsigned int pr_sigpend; /* Set of pending signals. */
+ unsigned int pr_sighold; /* Set of held signals. */
+ __pid_t pr_pid;
+ __pid_t pr_ppid;
+ __pid_t pr_pgrp;
+ __pid_t pr_sid;
+ struct
+ {
+ int tv_sec, tv_usec;
+ } pr_utime, /* User time. */
+ pr_stime, /* System time. */
+ pr_cutime, /* Cumulative user time. */
+ pr_cstime; /* Cumulative system time. */
+ elf_gregset_t32 pr_reg; /* GP registers. */
+ int pr_fpvalid; /* True if math copro being used. */
+ };
+
+struct elf_prpsinfo32
+ {
+ char pr_state; /* Numeric process state. */
+ char pr_sname; /* Char for pr_state. */
+ char pr_zomb; /* Zombie. */
+ char pr_nice; /* Nice val. */
+ unsigned int pr_flag; /* Flags. */
+ unsigned short int pr_uid;
+ unsigned short int pr_gid;
+ int pr_pid, pr_ppid, pr_pgrp, pr_sid;
+ /* Lots missing */
+ char pr_fname[16]; /* Filename of executable. */
+ char pr_psargs[ELF_PRARGSZ]; /* Initial part of arg list. */
+ };
+
+typedef elf_gregset_t32 prgregset32_t;
+typedef elf_fpregset_t32 prfpregset32_t;
+
+typedef struct elf_prstatus32 prstatus32_t;
+typedef struct elf_prpsinfo32 prpsinfo32_t;
+
+#endif /* sparc64 */
+
+__END_DECLS
+
+#endif /* sys/procfs.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sys/ptrace.h b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sys/ptrace.h
new file mode 100644
index 0000000000..f60549427f
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sys/ptrace.h
@@ -0,0 +1,281 @@
+/* `ptrace' debugger support interface. Linux/SPARC version.
+ Copyright (C) 1996-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_PTRACE_H
+#define _SYS_PTRACE_H 1
+
+#include <features.h>
+#include <bits/types.h>
+#include <bits/wordsize.h>
+
+/* Linux/SPARC kernels up to 2.3.18 do not care much
+ about what namespace polution, so use a kludge now. */
+#undef PTRACE_GETREGS
+#undef PTRACE_SETREGS
+#undef PTRACE_GETFPREGS
+#undef PTRACE_SETFPREGS
+#undef PTRACE_READDATA
+#undef PTRACE_WRITEDATA
+#undef PTRACE_READTEXT
+#undef PTRACE_WRITETEXT
+#undef PTRACE_SUNDETACH
+
+__BEGIN_DECLS
+
+/* Type of the REQUEST argument to `ptrace.' */
+enum __ptrace_request
+{
+ /* Indicate that the process making this request should be traced.
+ All signals received by this process can be intercepted by its
+ parent, and its parent can use the other `ptrace' requests. */
+ PTRACE_TRACEME = 0,
+#define PT_TRACE_ME PTRACE_TRACEME
+
+ /* Return the word in the process's text space at address ADDR. */
+ PTRACE_PEEKTEXT = 1,
+#define PT_READ_I PTRACE_PEEKTEXT
+
+ /* Return the word in the process's data space at address ADDR. */
+ PTRACE_PEEKDATA = 2,
+#define PT_READ_D PTRACE_PEEKDATA
+
+ /* Return the word in the process's user area at offset ADDR. */
+ PTRACE_PEEKUSER = 3,
+#define PT_READ_U PTRACE_PEEKUSER
+
+ /* Write the word DATA into the process's text space at address ADDR. */
+ PTRACE_POKETEXT = 4,
+#define PT_WRITE_I PTRACE_POKETEXT
+
+ /* Write the word DATA into the process's data space at address ADDR. */
+ PTRACE_POKEDATA = 5,
+#define PT_WRITE_D PTRACE_POKEDATA
+
+ /* Write the word DATA into the process's user area at offset ADDR. */
+ PTRACE_POKEUSER = 6,
+#define PT_WRITE_U PTRACE_POKEUSER
+
+ /* Continue the process. */
+ PTRACE_CONT = 7,
+#define PT_CONTINUE PTRACE_CONT
+
+ /* Kill the process. */
+ PTRACE_KILL = 8,
+#define PT_KILL PTRACE_KILL
+
+ /* Single step the process.
+ This is not supported on all machines. */
+ PTRACE_SINGLESTEP = 9,
+#define PT_STEP PTRACE_SINGLESTEP
+
+ /* Detach from a process attached to with PTRACE_ATTACH. */
+ PTRACE_DETACH = 11,
+#define PT_DETACH PTRACE_DETACH
+
+ /* This define is needed for older programs which were
+ trying to work around sparc-linux ptrace nastiness. */
+#define PTRACE_SUNDETACH PTRACE_DETACH
+
+#if __WORDSIZE == 32
+
+ /* Get all general purpose registers used by a processes.
+ This is not supported on all machines. */
+ PTRACE_GETREGS = 12,
+#define PT_GETREGS PTRACE_GETREGS
+
+ /* Set all general purpose registers used by a processes.
+ This is not supported on all machines. */
+ PTRACE_SETREGS = 13,
+#define PT_SETREGS PTRACE_SETREGS
+
+ /* Get all floating point registers used by a processes.
+ This is not supported on all machines. */
+ PTRACE_GETFPREGS = 14,
+#define PT_GETFPREGS PTRACE_GETFPREGS
+
+ /* Set all floating point registers used by a processes.
+ This is not supported on all machines. */
+ PTRACE_SETFPREGS = 15,
+#define PT_SETFPREGS PTRACE_SETFPREGS
+
+#endif
+
+ /* Attach to a process that is already running. */
+ PTRACE_ATTACH = 16,
+#define PT_ATTACH PTRACE_ATTACH
+
+ /* Write several bytes at a time. */
+ PTRACE_WRITEDATA = 17,
+#define PTRACE_WRITEDATA PTRACE_WRITEDATA
+
+ /* Read several bytes at a time. */
+ PTRACE_READTEXT = 18,
+#define PTRACE_READTEXT PTRACE_READTEXT
+#define PTRACE_READDATA PTRACE_READTEXT
+
+ /* Write several bytes at a time. */
+ PTRACE_WRITETEXT = 19,
+#define PTRACE_WRITETEXT PTRACE_WRITETEXT
+
+#if __WORDSIZE == 64
+
+ /* Get all general purpose registers used by a processes.
+ This is not supported on all machines. */
+ PTRACE_GETREGS = 22,
+#define PT_GETREGS PTRACE_GETREGS
+
+ /* Set all general purpose registers used by a processes.
+ This is not supported on all machines. */
+ PTRACE_SETREGS = 23,
+#define PT_SETREGS PTRACE_SETREGS
+
+#endif
+
+ /* Continue and stop at the next (return from) syscall. */
+ PTRACE_SYSCALL = 24,
+#define PTRACE_SYSCALL PTRACE_SYSCALL
+
+#if __WORDSIZE == 64
+
+ /* Get all floating point registers used by a processes.
+ This is not supported on all machines. */
+ PTRACE_GETFPREGS = 25,
+#define PT_GETFPREGS PTRACE_GETFPREGS
+
+ /* Set all floating point registers used by a processes.
+ This is not supported on all machines. */
+ PTRACE_SETFPREGS = 26,
+#define PT_SETFPREGS PTRACE_SETFPREGS
+
+#endif
+
+ /* Set ptrace filter options. */
+ PTRACE_SETOPTIONS = 0x4200,
+#define PT_SETOPTIONS PTRACE_SETOPTIONS
+
+ /* Get last ptrace message. */
+ PTRACE_GETEVENTMSG = 0x4201,
+#define PT_GETEVENTMSG PTRACE_GETEVENTMSG
+
+ /* Get siginfo for process. */
+ PTRACE_GETSIGINFO = 0x4202,
+#define PT_GETSIGINFO PTRACE_GETSIGINFO
+
+ /* Set new siginfo for process. */
+ PTRACE_SETSIGINFO = 0x4203,
+#define PT_SETSIGINFO PTRACE_SETSIGINFO
+
+ /* Get register content. */
+ PTRACE_GETREGSET = 0x4204,
+#define PTRACE_GETREGSET PTRACE_GETREGSET
+
+ /* Set register content. */
+ PTRACE_SETREGSET = 0x4205,
+#define PTRACE_SETREGSET PTRACE_SETREGSET
+
+ /* Like PTRACE_ATTACH, but do not force tracee to trap and do not affect
+ signal or group stop state. */
+ PTRACE_SEIZE = 0x4206,
+#define PTRACE_SEIZE PTRACE_SEIZE
+
+ /* Trap seized tracee. */
+ PTRACE_INTERRUPT = 0x4207,
+#define PTRACE_INTERRUPT PTRACE_INTERRUPT
+
+ /* Wait for next group event. */
+ PTRACE_LISTEN = 0x4208,
+#define PTRACE_LISTEN PTRACE_LISTEN
+
+ PTRACE_PEEKSIGINFO = 0x4209,
+#define PTRACE_PEEKSIGINFO PTRACE_PEEKSIGINFO
+
+ PTRACE_GETSIGMASK = 0x420a,
+#define PTRACE_GETSIGMASK PTRACE_GETSIGMASK
+
+ PTRACE_SETSIGMASK = 0x420b,
+#define PTRACE_SETSIGMASK PTRACE_SETSIGMASK
+
+ PTRACE_SECCOMP_GET_FILTER = 0x420c
+#define PTRACE_SECCOMP_GET_FILTER PTRACE_SECCOMP_GET_FILTER
+};
+
+
+/* Flag for PTRACE_LISTEN. */
+enum __ptrace_flags
+{
+ PTRACE_SEIZE_DEVEL = 0x80000000
+};
+
+/* Options set using PTRACE_SETOPTIONS. */
+enum __ptrace_setoptions
+{
+ PTRACE_O_TRACESYSGOOD = 0x00000001,
+ PTRACE_O_TRACEFORK = 0x00000002,
+ PTRACE_O_TRACEVFORK = 0x00000004,
+ PTRACE_O_TRACECLONE = 0x00000008,
+ PTRACE_O_TRACEEXEC = 0x00000010,
+ PTRACE_O_TRACEVFORKDONE = 0x00000020,
+ PTRACE_O_TRACEEXIT = 0x00000040,
+ PTRACE_O_TRACESECCOMP = 0x00000080,
+ PTRACE_O_EXITKILL = 0x00100000,
+ PTRACE_O_SUSPEND_SECCOMP = 0x00200000,
+ PTRACE_O_MASK = 0x003000ff
+};
+
+enum __ptrace_eventcodes
+{
+/* Wait extended result codes for the above trace options. */
+ PTRACE_EVENT_FORK = 1,
+ PTRACE_EVENT_VFORK = 2,
+ PTRACE_EVENT_CLONE = 3,
+ PTRACE_EVENT_EXEC = 4,
+ PTRACE_EVENT_VFORK_DONE = 5,
+ PTRACE_EVENT_EXIT = 6,
+ PTRACE_EVENT_SECCOMP = 7,
+/* Extended result codes enabled by means other than options. */
+ PTRACE_EVENT_STOP = 128
+};
+
+/* Arguments for PTRACE_PEEKSIGINFO. */
+struct __ptrace_peeksiginfo_args
+{
+ __uint64_t off; /* From which siginfo to start. */
+ __uint32_t flags; /* Flags for peeksiginfo. */
+ __int32_t nr; /* How many siginfos to take. */
+};
+
+enum __ptrace_peeksiginfo_flags
+{
+ /* Read signals from a shared (process wide) queue. */
+ PTRACE_PEEKSIGINFO_SHARED = (1 << 0)
+};
+
+/* Perform process tracing functions. REQUEST is one of the values
+ above, and determines the action to be taken.
+ For all requests except PTRACE_TRACEME, PID specifies the process to be
+ traced.
+
+ PID and the other arguments described above for the various requests should
+ appear (those that are used for the particular request) as:
+ pid_t PID, void *ADDR, int DATA, void *ADDR2
+ after REQUEST. */
+extern long int ptrace (enum __ptrace_request __request, ...) __THROW;
+
+__END_DECLS
+
+#endif /* _SYS_PTRACE_H */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sys/trap.h b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sys/trap.h
new file mode 100644
index 0000000000..99b9c60e06
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sys/trap.h
@@ -0,0 +1,7 @@
+/* Include Linux/SPARC specific trap definitions. */
+#ifndef _SYS_TRAP_H
+#define _SYS_TRAP_H 1
+
+#include <asm/traps.h>
+
+#endif /* sys/trap.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sys/ucontext.h b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sys/ucontext.h
new file mode 100644
index 0000000000..7ce5f2b881
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sys/ucontext.h
@@ -0,0 +1,274 @@
+/* Copyright (C) 1998-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_UCONTEXT_H
+#define _SYS_UCONTEXT_H 1
+
+#include <features.h>
+
+#include <bits/types/sigset_t.h>
+#include <bits/sigcontext.h>
+#include <bits/types/stack_t.h>
+
+#include <bits/wordsize.h>
+
+
+#if __WORDSIZE == 64
+
+#define MC_TSTATE 0
+#define MC_PC 1
+#define MC_NPC 2
+#define MC_Y 3
+#define MC_G1 4
+#define MC_G2 5
+#define MC_G3 6
+#define MC_G4 7
+#define MC_G5 8
+#define MC_G6 9
+#define MC_G7 10
+#define MC_O0 11
+#define MC_O1 12
+#define MC_O2 13
+#define MC_O3 14
+#define MC_O4 15
+#define MC_O5 16
+#define MC_O6 17
+#define MC_O7 18
+#define MC_NGREG 19
+
+typedef unsigned long mc_greg_t;
+typedef mc_greg_t mc_gregset_t[MC_NGREG];
+
+#define MC_MAXFPQ 16
+struct mc_fq {
+ unsigned long *mcfq_addr;
+ unsigned int mcfq_insn;
+};
+
+struct mc_fpu {
+ union {
+ unsigned int sregs[32];
+ unsigned long dregs[32];
+ long double qregs[16];
+ } mcfpu_fregs;
+ unsigned long mcfpu_fsr;
+ unsigned long mcfpu_fprs;
+ unsigned long mcfpu_gsr;
+ struct mc_fq *mcfpu_fq;
+ unsigned char mcfpu_qcnt;
+ unsigned char mcfpu_qentsz;
+ unsigned char mcfpu_enab;
+};
+typedef struct mc_fpu mc_fpu_t;
+
+typedef struct {
+ mc_gregset_t mc_gregs;
+ mc_greg_t mc_fp;
+ mc_greg_t mc_i7;
+ mc_fpu_t mc_fpregs;
+} mcontext_t;
+
+typedef struct ucontext {
+ struct ucontext *uc_link;
+ unsigned long uc_flags;
+ unsigned long __uc_sigmask;
+ mcontext_t uc_mcontext;
+ stack_t uc_stack;
+ sigset_t uc_sigmask;
+} ucontext_t;
+
+#endif /* __WORDISIZE == 64 */
+
+/*
+ * Location of the users' stored registers relative to R0.
+ * Usage is as an index into a gregset_t array or as u.u_ar0[XX].
+ */
+#define REG_PSR (0)
+#define REG_PC (1)
+#define REG_nPC (2)
+#define REG_Y (3)
+#define REG_G1 (4)
+#define REG_G2 (5)
+#define REG_G3 (6)
+#define REG_G4 (7)
+#define REG_G5 (8)
+#define REG_G6 (9)
+#define REG_G7 (10)
+#define REG_O0 (11)
+#define REG_O1 (12)
+#define REG_O2 (13)
+#define REG_O3 (14)
+#define REG_O4 (15)
+#define REG_O5 (16)
+#define REG_O6 (17)
+#define REG_O7 (18)
+
+/*
+ * A gregset_t is defined as an array type for compatibility with the reference
+ * source. This is important due to differences in the way the C language
+ * treats arrays and structures as parameters.
+ *
+ * Note that NGREG is really (sizeof (struct regs) / sizeof (greg_t)),
+ * but that the ABI defines it absolutely to be 21 (resp. 19).
+ */
+
+#if __WORDSIZE == 64
+
+#define REG_ASI (19)
+#define REG_FPRS (20)
+
+#define NGREG 21
+typedef long greg_t;
+
+#else /* __WORDSIZE == 32 */
+
+#define NGREG 19
+typedef int greg_t;
+
+#endif /* __WORDSIZE == 32 */
+
+typedef greg_t gregset_t[NGREG];
+
+/*
+ * The following structures define how a register window can appear on the
+ * stack. This structure is available (when required) through the `gwins'
+ * field of an mcontext (nested within ucontext). SPARC_MAXWINDOW is the
+ * maximum number of outstanding regiters window defined in the SPARC
+ * architecture (*not* implementation).
+ */
+#define SPARC_MAXREGWINDOW 31 /* max windows in SPARC arch. */
+struct rwindow
+ {
+ greg_t rw_local[8]; /* locals */
+ greg_t rw_in[8]; /* ins */
+ };
+
+#define rw_fp rw_in[6] /* frame pointer */
+#define rw_rtn rw_in[7] /* return address */
+
+typedef struct gwindows
+ {
+ int wbcnt;
+ int *spbuf[SPARC_MAXREGWINDOW];
+ struct rwindow wbuf[SPARC_MAXREGWINDOW];
+ } gwindows_t;
+
+/*
+ * Floating point definitions.
+ */
+
+#define MAXFPQ 16 /* max # of fpu queue entries currently supported */
+
+/*
+ * struct fq defines the minimal format of a floating point instruction queue
+ * entry. The size of entries in the floating point queue are implementation
+ * dependent. The union FQu is guarenteed to be the first field in any ABI
+ * conformant system implementation. Any additional fields provided by an
+ * implementation should not be used applications designed to be ABI conformant. */
+
+struct fpq
+ {
+ unsigned long *fpq_addr; /* address */
+ unsigned long fpq_instr; /* instruction */
+ };
+
+struct fq
+ {
+ union /* FPU inst/addr queue */
+ {
+ double whole;
+ struct fpq fpq;
+ } FQu;
+ };
+
+#define FPU_REGS_TYPE unsigned
+#define FPU_DREGS_TYPE unsigned long long
+#define V7_FPU_FSR_TYPE unsigned
+#define V9_FPU_FSR_TYPE unsigned long long
+#define V9_FPU_FPRS_TYPE unsigned
+
+#if __WORDSIZE == 64
+
+typedef struct fpu
+ {
+ union { /* FPU floating point regs */
+ unsigned fpu_regs[32]; /* 32 singles */
+ double fpu_dregs[32]; /* 32 doubles */
+ long double fpu_qregs[16]; /* 16 quads */
+ } fpu_fr;
+ struct fq *fpu_q; /* ptr to array of FQ entries */
+ unsigned long fpu_fsr; /* FPU status register */
+ unsigned char fpu_qcnt; /* # of entries in saved FQ */
+ unsigned char fpu_q_entrysize; /* # of bytes per FQ entry */
+ unsigned char fpu_en; /* flag signifying fpu in use */
+ } fpregset_t;
+
+#else /* __WORDSIZE == 32 */
+
+typedef struct fpu
+ {
+ union { /* FPU floating point regs */
+ __extension__ unsigned long long fpu_regs[32]; /* 32 singles */
+ double fpu_dregs[16]; /* 16 doubles */
+ } fpu_fr;
+ struct fq *fpu_q; /* ptr to array of FQ entries */
+ unsigned fpu_fsr; /* FPU status register */
+ unsigned char fpu_qcnt; /* # of entries in saved FQ */
+ unsigned char fpu_q_entrysize; /* # of bytes per FQ entry */
+ unsigned char fpu_en; /* flag signifying fpu in use */
+ } fpregset_t;
+
+/*
+ * The following structure is for associating extra register state with
+ * the ucontext structure and is kept within the uc_mcontext filler area.
+ *
+ * If (xrs_id == XRS_ID) then the xrs_ptr field is a valid pointer to
+ * extra register state. The exact format of the extra register state
+ * pointed to by xrs_ptr is platform-dependent.
+ *
+ * Note: a platform may or may not manage extra register state.
+ */
+typedef struct
+ {
+ unsigned int xrs_id; /* indicates xrs_ptr validity */
+ void * xrs_ptr; /* ptr to extra reg state */
+ } xrs_t;
+
+#define XRS_ID 0x78727300 /* the string "xrs" */
+
+typedef struct
+ {
+ gregset_t gregs; /* general register set */
+ gwindows_t *gwins; /* POSSIBLE pointer to register windows */
+ fpregset_t fpregs; /* floating point register set */
+ xrs_t xrs; /* POSSIBLE extra register state association */
+ long filler[19];
+ } mcontext_t;
+
+
+/* Userlevel context. */
+typedef struct ucontext
+ {
+ unsigned long uc_flags;
+ struct ucontext *uc_link;
+ sigset_t uc_sigmask;
+ stack_t uc_stack;
+ mcontext_t uc_mcontext;
+ } ucontext_t;
+
+#endif /* __WORDSIZE == 32 */
+#endif /* sys/ucontext.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sys/user.h b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sys/user.h
new file mode 100644
index 0000000000..e9e41ed64e
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sys/user.h
@@ -0,0 +1,86 @@
+/* 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/>. */
+
+#ifndef _SYS_USER_H
+#define _SYS_USER_H 1
+
+#include <stddef.h>
+
+struct sunos_regs
+{
+ unsigned int psr, pc, npc, y;
+ unsigned int regs[15];
+};
+
+struct sunos_fpqueue
+{
+ unsigned int *addr;
+ unsigned int inst;
+};
+
+struct sunos_fp
+{
+ union
+ {
+ unsigned int regs[32];
+ double reg_dbls[16];
+ } fregs;
+ unsigned int fsr;
+ unsigned int flags;
+ unsigned int extra;
+ unsigned int fpq_count;
+ struct sunos_fpqueue fpq[16];
+};
+
+struct sunos_fpu
+{
+ struct sunos_fp fpstatus;
+};
+
+/* The SunOS core file header layout. */
+struct user {
+ unsigned int magic;
+ unsigned int len;
+ struct sunos_regs regs;
+ struct
+ {
+ unsigned char a_dynamic :1;
+ unsigned char a_toolversion :7;
+ unsigned char a_machtype;
+ unsigned short a_info;
+ unsigned int a_text;
+ unsigned int a_data;
+ unsigned int a_bss;
+ unsigned int a_syms;
+ unsigned int a_entry;
+ unsigned int a_trsize;
+ unsigned int a_drsize;
+ } uexec;
+ int signal;
+ size_t u_tsize;
+ size_t u_dsize;
+ size_t u_ssize;
+ char u_comm[17];
+ struct sunos_fpu fpu;
+ unsigned int sigcode;
+};
+
+#define NBPG 0x2000
+#define UPAGES 1
+#define SUNOS_CORE_MAGIC 0x080456
+
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sysdep.c b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sysdep.c
new file mode 100644
index 0000000000..f86414570d
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sysdep.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/powerpc/sysdep.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sysdep.h b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sysdep.h
new file mode 100644
index 0000000000..3400f6959a
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sysdep.h
@@ -0,0 +1,185 @@
+/* Copyright (C) 2000-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Jakub Jelinek <jakub@redhat.com>, 2000.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _LINUX_SPARC_SYSDEP_H
+#define _LINUX_SPARC_SYSDEP_H 1
+
+#include <sysdeps/unix/sysdep.h>
+#include <sysdeps/unix/sysv/linux/sysdep.h>
+#include <sysdeps/sparc/sysdep.h>
+
+#ifdef __ASSEMBLER__
+
+#define ret retl; nop
+#define ret_NOERRNO retl; nop
+#define ret_ERRVAL retl; nop
+#define r0 %o0
+#define r1 %o1
+#define MOVE(x,y) mov x, y
+
+#else /* __ASSEMBLER__ */
+
+#undef INLINE_SYSCALL
+#define INLINE_SYSCALL(name, nr, args...) \
+({ INTERNAL_SYSCALL_DECL(err); \
+ unsigned long resultvar = INTERNAL_SYSCALL(name, err, nr, args);\
+ if (INTERNAL_SYSCALL_ERROR_P (resultvar, err)) \
+ { \
+ __set_errno (INTERNAL_SYSCALL_ERRNO (resultvar, err)); \
+ resultvar = (unsigned long) -1; \
+ } \
+ (long) resultvar; \
+})
+
+#undef INTERNAL_SYSCALL_DECL
+#define INTERNAL_SYSCALL_DECL(err) \
+ register long err __asm__("g1");
+
+#undef INTERNAL_SYSCALL
+#define INTERNAL_SYSCALL(name, err, nr, args...) \
+ inline_syscall##nr(__SYSCALL_STRING, err, __NR_##name, args)
+
+#undef INTERNAL_SYSCALL_NCS
+#define INTERNAL_SYSCALL_NCS(name, err, nr, args...) \
+ inline_syscall##nr(__SYSCALL_STRING, err, name, args)
+
+#undef INTERNAL_SYSCALL_ERROR_P
+#define INTERNAL_SYSCALL_ERROR_P(val, err) \
+ ((void) (val), __builtin_expect((err) != 0, 0))
+
+#undef INTERNAL_SYSCALL_ERRNO
+#define INTERNAL_SYSCALL_ERRNO(val, err) (-(val))
+
+#define inline_syscall0(string,err,name,dummy...) \
+({ \
+ register long __o0 __asm__ ("o0"); \
+ err = name; \
+ __asm __volatile (string : "=r" (err), "=r" (__o0) : \
+ "0" (err) : \
+ __SYSCALL_CLOBBERS); \
+ __o0; \
+})
+
+#define inline_syscall1(string,err,name,arg1) \
+({ \
+ register long __o0 __asm__ ("o0") = (long)(arg1); \
+ err = name; \
+ __asm __volatile (string : "=r" (err), "=r" (__o0) : \
+ "0" (err), "1" (__o0) : \
+ __SYSCALL_CLOBBERS); \
+ __o0; \
+})
+
+#define inline_syscall2(string,err,name,arg1,arg2) \
+({ \
+ register long __o0 __asm__ ("o0") = (long)(arg1); \
+ register long __o1 __asm__ ("o1") = (long)(arg2); \
+ err = name; \
+ __asm __volatile (string : "=r" (err), "=r" (__o0) : \
+ "0" (err), "1" (__o0), "r" (__o1) : \
+ __SYSCALL_CLOBBERS); \
+ __o0; \
+})
+
+#define inline_syscall3(string,err,name,arg1,arg2,arg3) \
+({ \
+ register long __o0 __asm__ ("o0") = (long)(arg1); \
+ register long __o1 __asm__ ("o1") = (long)(arg2); \
+ register long __o2 __asm__ ("o2") = (long)(arg3); \
+ err = name; \
+ __asm __volatile (string : "=r" (err), "=r" (__o0) : \
+ "0" (err), "1" (__o0), "r" (__o1), \
+ "r" (__o2) : \
+ __SYSCALL_CLOBBERS); \
+ __o0; \
+})
+
+#define inline_syscall4(string,err,name,arg1,arg2,arg3,arg4) \
+({ \
+ register long __o0 __asm__ ("o0") = (long)(arg1); \
+ register long __o1 __asm__ ("o1") = (long)(arg2); \
+ register long __o2 __asm__ ("o2") = (long)(arg3); \
+ register long __o3 __asm__ ("o3") = (long)(arg4); \
+ err = name; \
+ __asm __volatile (string : "=r" (err), "=r" (__o0) : \
+ "0" (err), "1" (__o0), "r" (__o1), \
+ "r" (__o2), "r" (__o3) : \
+ __SYSCALL_CLOBBERS); \
+ __o0; \
+})
+
+#define inline_syscall5(string,err,name,arg1,arg2,arg3,arg4,arg5) \
+({ \
+ register long __o0 __asm__ ("o0") = (long)(arg1); \
+ register long __o1 __asm__ ("o1") = (long)(arg2); \
+ register long __o2 __asm__ ("o2") = (long)(arg3); \
+ register long __o3 __asm__ ("o3") = (long)(arg4); \
+ register long __o4 __asm__ ("o4") = (long)(arg5); \
+ err = name; \
+ __asm __volatile (string : "=r" (err), "=r" (__o0) : \
+ "0" (err), "1" (__o0), "r" (__o1), \
+ "r" (__o2), "r" (__o3), "r" (__o4) : \
+ __SYSCALL_CLOBBERS); \
+ __o0; \
+})
+
+#define inline_syscall6(string,err,name,arg1,arg2,arg3,arg4,arg5,arg6) \
+({ \
+ register long __o0 __asm__ ("o0") = (long)(arg1); \
+ register long __o1 __asm__ ("o1") = (long)(arg2); \
+ register long __o2 __asm__ ("o2") = (long)(arg3); \
+ register long __o3 __asm__ ("o3") = (long)(arg4); \
+ register long __o4 __asm__ ("o4") = (long)(arg5); \
+ register long __o5 __asm__ ("o5") = (long)(arg6); \
+ err = name; \
+ __asm __volatile (string : "=r" (err), "=r" (__o0) : \
+ "0" (err), "1" (__o0), "r" (__o1), \
+ "r" (__o2), "r" (__o3), "r" (__o4), \
+ "r" (__o5) : \
+ __SYSCALL_CLOBBERS); \
+ __o0; \
+})
+
+#define INLINE_CLONE_SYSCALL(arg1,arg2,arg3,arg4,arg5) \
+({ \
+ register long __o0 __asm__ ("o0") = (long)(arg1); \
+ register long __o1 __asm__ ("o1") = (long)(arg2); \
+ register long __o2 __asm__ ("o2") = (long)(arg3); \
+ register long __o3 __asm__ ("o3") = (long)(arg4); \
+ register long __o4 __asm__ ("o4") = (long)(arg5); \
+ register long __g1 __asm__ ("g1") = __NR_clone; \
+ __asm __volatile (__SYSCALL_STRING : \
+ "=r" (__g1), "=r" (__o0), "=r" (__o1) : \
+ "0" (__g1), "1" (__o0), "2" (__o1), \
+ "r" (__o2), "r" (__o3), "r" (__o4) : \
+ __SYSCALL_CLOBBERS); \
+ if (INTERNAL_SYSCALL_ERROR_P (__o0, __g1)) \
+ { \
+ __set_errno (INTERNAL_SYSCALL_ERRNO (__o0, __g1)); \
+ __o0 = -1L; \
+ } \
+ else \
+ { \
+ __o0 &= (__o1 - 1); \
+ } \
+ __o0; \
+})
+
+#endif /* __ASSEMBLER__ */
+
+#endif /* _LINUX_SPARC_SYSDEP_H */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/system.c b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/system.c
new file mode 100644
index 0000000000..2fc196bf5a
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/system.c
@@ -0,0 +1,29 @@
+/* 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/>. */
+
+/* We have to and actually can handle cancelable system(). The big
+ problem: we have to kill the child process if necessary. To do
+ this a cleanup handler has to be registered and is has to be able
+ to find the PID of the child. The main problem is to reliable have
+ the PID when needed. It is not necessary for the parent thread to
+ return. It might still be in the kernel when the cancellation
+ request comes. Therefore we have to use the clone() calls ability
+ to have the kernel write the PID into the user-level variable. */
+#define FORK() \
+ INLINE_CLONE_SYSCALL (CLONE_PARENT_SETTID | SIGCHLD, 0, &pid, NULL, NULL)
+
+#include "../system.c"
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/spawni.c b/REORG.TODO/sysdeps/unix/sysv/linux/spawni.c
new file mode 100644
index 0000000000..c56f894a82
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/spawni.c
@@ -0,0 +1,397 @@
+/* POSIX spawn interface. Linux version.
+ Copyright (C) 2016-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <spawn.h>
+#include <assert.h>
+#include <fcntl.h>
+#include <paths.h>
+#include <string.h>
+#include <sys/resource.h>
+#include <sys/wait.h>
+#include <sys/param.h>
+#include <sys/mman.h>
+#include <not-cancel.h>
+#include <local-setxid.h>
+#include <shlib-compat.h>
+#include <nptl/pthreadP.h>
+#include <dl-sysdep.h>
+#include <libc-pointer-arith.h>
+#include <ldsodefs.h>
+#include "spawn_int.h"
+
+/* The Linux implementation of posix_spawn{p} uses the clone syscall directly
+ with CLONE_VM and CLONE_VFORK flags and an allocated stack. The new stack
+ and start function solves most the vfork limitation (possible parent
+ clobber due stack spilling). The remaining issue are:
+
+ 1. That no signal handlers must run in child context, to avoid corrupting
+ parent's state.
+ 2. The parent must ensure child's stack freeing.
+ 3. Child must synchronize with parent to enforce 2. and to possible
+ return execv issues.
+
+ The first issue is solved by blocking all signals in child, even
+ the NPTL-internal ones (SIGCANCEL and SIGSETXID). The second and
+ third issue is done by a stack allocation in parent, and by using a
+ field in struct spawn_args where the child can write an error
+ code. CLONE_VFORK ensures that the parent does not run until the
+ child has either exec'ed successfully or exited. */
+
+
+/* The Unix standard contains a long explanation of the way to signal
+ an error after the fork() was successful. Since no new wait status
+ was wanted there is no way to signal an error using one of the
+ available methods. The committee chose to signal an error by a
+ normal program exit with the exit code 127. */
+#define SPAWN_ERROR 127
+
+#ifdef __ia64__
+# define CLONE(__fn, __stackbase, __stacksize, __flags, __args) \
+ __clone2 (__fn, __stackbase, __stacksize, __flags, __args, 0, 0, 0)
+#else
+# define CLONE(__fn, __stack, __stacksize, __flags, __args) \
+ __clone (__fn, __stack, __flags, __args)
+#endif
+
+/* Since ia64 wants the stackbase w/clone2, re-use the grows-up macro. */
+#if _STACK_GROWS_UP || defined (__ia64__)
+# define STACK(__stack, __stack_size) (__stack)
+#elif _STACK_GROWS_DOWN
+# define STACK(__stack, __stack_size) (__stack + __stack_size)
+#endif
+
+
+struct posix_spawn_args
+{
+ sigset_t oldmask;
+ const char *file;
+ int (*exec) (const char *, char *const *, char *const *);
+ const posix_spawn_file_actions_t *fa;
+ const posix_spawnattr_t *restrict attr;
+ char *const *argv;
+ ptrdiff_t argc;
+ char *const *envp;
+ int xflags;
+ int err;
+};
+
+/* Older version requires that shell script without shebang definition
+ to be called explicitly using /bin/sh (_PATH_BSHELL). */
+static void
+maybe_script_execute (struct posix_spawn_args *args)
+{
+ if (SHLIB_COMPAT (libc, GLIBC_2_2, GLIBC_2_15)
+ && (args->xflags & SPAWN_XFLAGS_TRY_SHELL) && errno == ENOEXEC)
+ {
+ char *const *argv = args->argv;
+ ptrdiff_t argc = args->argc;
+
+ /* Construct an argument list for the shell. */
+ char *new_argv[argc + 1];
+ new_argv[0] = (char *) _PATH_BSHELL;
+ new_argv[1] = (char *) args->file;
+ if (argc > 1)
+ memcpy (new_argv + 2, argv + 1, argc * sizeof(char *));
+ else
+ new_argv[2] = NULL;
+
+ /* Execute the shell. */
+ args->exec (new_argv[0], new_argv, args->envp);
+ }
+}
+
+/* Function used in the clone call to setup the signals mask, posix_spawn
+ attributes, and file actions. It run on its own stack (provided by the
+ posix_spawn call). */
+static int
+__spawni_child (void *arguments)
+{
+ struct posix_spawn_args *args = arguments;
+ const posix_spawnattr_t *restrict attr = args->attr;
+ const posix_spawn_file_actions_t *file_actions = args->fa;
+
+ /* The child must ensure that no signal handler are enabled because it shared
+ memory with parent, so the signal disposition must be either SIG_DFL or
+ SIG_IGN. It does by iterating over all signals and although it could
+ possibly be more optimized (by tracking which signal potentially have a
+ signal handler), it might requires system specific solutions (since the
+ sigset_t data type can be very different on different architectures). */
+ struct sigaction sa;
+ memset (&sa, '\0', sizeof (sa));
+
+ sigset_t hset;
+ __sigprocmask (SIG_BLOCK, 0, &hset);
+ for (int sig = 1; sig < _NSIG; ++sig)
+ {
+ if ((attr->__flags & POSIX_SPAWN_SETSIGDEF)
+ && sigismember (&attr->__sd, sig))
+ {
+ sa.sa_handler = SIG_DFL;
+ }
+ else if (sigismember (&hset, sig))
+ {
+ if (__nptl_is_internal_signal (sig))
+ sa.sa_handler = SIG_IGN;
+ else
+ {
+ __libc_sigaction (sig, 0, &sa);
+ if (sa.sa_handler == SIG_IGN)
+ continue;
+ sa.sa_handler = SIG_DFL;
+ }
+ }
+ else
+ continue;
+
+ __libc_sigaction (sig, &sa, 0);
+ }
+
+#ifdef _POSIX_PRIORITY_SCHEDULING
+ /* Set the scheduling algorithm and parameters. */
+ if ((attr->__flags & (POSIX_SPAWN_SETSCHEDPARAM | POSIX_SPAWN_SETSCHEDULER))
+ == POSIX_SPAWN_SETSCHEDPARAM)
+ {
+ if (__sched_setparam (0, &attr->__sp) == -1)
+ goto fail;
+ }
+ else if ((attr->__flags & POSIX_SPAWN_SETSCHEDULER) != 0)
+ {
+ if (__sched_setscheduler (0, attr->__policy, &attr->__sp) == -1)
+ goto fail;
+ }
+#endif
+
+ if ((attr->__flags & POSIX_SPAWN_SETSID) != 0
+ && __setsid () < 0)
+ goto fail;
+
+ /* Set the process group ID. */
+ if ((attr->__flags & POSIX_SPAWN_SETPGROUP) != 0
+ && __setpgid (0, attr->__pgrp) != 0)
+ goto fail;
+
+ /* Set the effective user and group IDs. */
+ if ((attr->__flags & POSIX_SPAWN_RESETIDS) != 0
+ && (local_seteuid (__getuid ()) != 0
+ || local_setegid (__getgid ()) != 0))
+ goto fail;
+
+ /* Execute the file actions. */
+ if (file_actions != 0)
+ {
+ int cnt;
+ struct rlimit64 fdlimit;
+ bool have_fdlimit = false;
+
+ for (cnt = 0; cnt < file_actions->__used; ++cnt)
+ {
+ struct __spawn_action *action = &file_actions->__actions[cnt];
+
+ switch (action->tag)
+ {
+ case spawn_do_close:
+ if (close_not_cancel (action->action.close_action.fd) != 0)
+ {
+ if (!have_fdlimit)
+ {
+ __getrlimit64 (RLIMIT_NOFILE, &fdlimit);
+ have_fdlimit = true;
+ }
+
+ /* Signal errors only for file descriptors out of range. */
+ if (action->action.close_action.fd < 0
+ || action->action.close_action.fd >= fdlimit.rlim_cur)
+ goto fail;
+ }
+ break;
+
+ case spawn_do_open:
+ {
+ /* POSIX states that if fildes was already an open file descriptor,
+ it shall be closed before the new file is opened. This avoid
+ pontential issues when posix_spawn plus addopen action is called
+ with the process already at maximum number of file descriptor
+ opened and also for multiple actions on single-open special
+ paths (like /dev/watchdog). */
+ close_not_cancel (action->action.open_action.fd);
+
+ int ret = open_not_cancel (action->action.open_action.path,
+ action->action.
+ open_action.oflag | O_LARGEFILE,
+ action->action.open_action.mode);
+
+ if (ret == -1)
+ goto fail;
+
+ int new_fd = ret;
+
+ /* Make sure the desired file descriptor is used. */
+ if (ret != action->action.open_action.fd)
+ {
+ if (__dup2 (new_fd, action->action.open_action.fd)
+ != action->action.open_action.fd)
+ goto fail;
+
+ if (close_not_cancel (new_fd) != 0)
+ goto fail;
+ }
+ }
+ break;
+
+ case spawn_do_dup2:
+ if (__dup2 (action->action.dup2_action.fd,
+ action->action.dup2_action.newfd)
+ != action->action.dup2_action.newfd)
+ goto fail;
+ break;
+ }
+ }
+ }
+
+ /* Set the initial signal mask of the child if POSIX_SPAWN_SETSIGMASK
+ is set, otherwise restore the previous one. */
+ __sigprocmask (SIG_SETMASK, (attr->__flags & POSIX_SPAWN_SETSIGMASK)
+ ? &attr->__ss : &args->oldmask, 0);
+
+ args->err = 0;
+ args->exec (args->file, args->argv, args->envp);
+
+ /* This is compatibility function required to enable posix_spawn run
+ script without shebang definition for older posix_spawn versions
+ (2.15). */
+ maybe_script_execute (args);
+
+fail:
+ /* errno should have an appropriate non-zero value; otherwise,
+ there's a bug in glibc or the kernel. For lack of an error code
+ (EINTERNALBUG) describing that, use ECHILD. Another option would
+ be to set args->err to some negative sentinel and have the parent
+ abort(), but that seems needlessly harsh. */
+ args->err = errno ? : ECHILD;
+ _exit (SPAWN_ERROR);
+}
+
+/* Spawn a new process executing PATH with the attributes describes in *ATTRP.
+ Before running the process perform the actions described in FILE-ACTIONS. */
+static int
+__spawnix (pid_t * pid, const char *file,
+ const posix_spawn_file_actions_t * file_actions,
+ const posix_spawnattr_t * attrp, char *const argv[],
+ char *const envp[], int xflags,
+ int (*exec) (const char *, char *const *, char *const *))
+{
+ pid_t new_pid;
+ struct posix_spawn_args args;
+ int ec;
+
+ /* To avoid imposing hard limits on posix_spawn{p} the total number of
+ arguments is first calculated to allocate a mmap to hold all possible
+ values. */
+ ptrdiff_t argc = 0;
+ /* Linux allows at most max (0x7FFFFFFF, 1/4 stack size) arguments
+ to be used in a execve call. We limit to INT_MAX minus one due the
+ compatiblity code that may execute a shell script (maybe_script_execute)
+ where it will construct another argument list with an additional
+ argument. */
+ ptrdiff_t limit = INT_MAX - 1;
+ while (argv[argc++] != NULL)
+ if (argc == limit)
+ {
+ errno = E2BIG;
+ return errno;
+ }
+
+ int prot = (PROT_READ | PROT_WRITE
+ | ((GL (dl_stack_flags) & PF_X) ? PROT_EXEC : 0));
+
+ /* Add a slack area for child's stack. */
+ size_t argv_size = (argc * sizeof (void *)) + 512;
+ /* We need at least a few pages in case the compiler's stack checking is
+ enabled. In some configs, it is known to use at least 24KiB. We use
+ 32KiB to be "safe" from anything the compiler might do. Besides, the
+ extra pages won't actually be allocated unless they get used. */
+ argv_size += (32 * 1024);
+ size_t stack_size = ALIGN_UP (argv_size, GLRO(dl_pagesize));
+ void *stack = __mmap (NULL, stack_size, prot,
+ MAP_PRIVATE | MAP_ANONYMOUS | MAP_STACK, -1, 0);
+ if (__glibc_unlikely (stack == MAP_FAILED))
+ return errno;
+
+ /* Disable asynchronous cancellation. */
+ int state;
+ __libc_ptf_call (__pthread_setcancelstate,
+ (PTHREAD_CANCEL_DISABLE, &state), 0);
+
+ /* Child must set args.err to something non-negative - we rely on
+ the parent and child sharing VM. */
+ args.err = -1;
+ args.file = file;
+ args.exec = exec;
+ args.fa = file_actions;
+ args.attr = attrp ? attrp : &(const posix_spawnattr_t) { 0 };
+ args.argv = argv;
+ args.argc = argc;
+ args.envp = envp;
+ args.xflags = xflags;
+
+ __libc_signal_block_all (&args.oldmask);
+
+ /* The clone flags used will create a new child that will run in the same
+ memory space (CLONE_VM) and the execution of calling thread will be
+ suspend until the child calls execve or _exit.
+
+ Also since the calling thread execution will be suspend, there is not
+ need for CLONE_SETTLS. Although parent and child share the same TLS
+ namespace, there will be no concurrent access for TLS variables (errno
+ for instance). */
+ new_pid = CLONE (__spawni_child, STACK (stack, stack_size), stack_size,
+ CLONE_VM | CLONE_VFORK | SIGCHLD, &args);
+
+ if (new_pid > 0)
+ {
+ ec = args.err;
+ assert (ec >= 0);
+ if (ec != 0)
+ __waitpid (new_pid, NULL, 0);
+ }
+ else
+ ec = -new_pid;
+
+ __munmap (stack, stack_size);
+
+ if ((ec == 0) && (pid != NULL))
+ *pid = new_pid;
+
+ __libc_signal_restore_set (&args.oldmask);
+
+ __libc_ptf_call (__pthread_setcancelstate, (state, NULL), 0);
+
+ return ec;
+}
+
+/* Spawn a new process executing PATH with the attributes describes in *ATTRP.
+ Before running the process perform the actions described in FILE-ACTIONS. */
+int
+__spawni (pid_t * pid, const char *file,
+ const posix_spawn_file_actions_t * acts,
+ const posix_spawnattr_t * attrp, char *const argv[],
+ char *const envp[], int xflags)
+{
+ return __spawnix (pid, file, acts, attrp, argv, envp, xflags,
+ xflags & SPAWN_XFLAGS_USE_PATH ? __execvpe : __execve);
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/speed.c b/REORG.TODO/sysdeps/unix/sysv/linux/speed.c
new file mode 100644
index 0000000000..c91be94af3
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/speed.c
@@ -0,0 +1,97 @@
+/* `struct termios' speed frobnication functions. Linux version.
+ Copyright (C) 1991-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <stddef.h>
+#include <errno.h>
+#include <termios.h>
+
+
+/* This is a gross hack around a kernel bug. If the cfsetispeed functions
+ is called with the SPEED argument set to zero this means use the same
+ speed as for output. But we don't have independent input and output
+ speeds and therefore cannot record this.
+
+ We use an unused bit in the `c_iflag' field to keep track of this
+ use of `cfsetispeed'. The value here must correspond to the one used
+ in `tcsetattr.c'. */
+#define IBAUD0 020000000000
+
+
+/* Return the output baud rate stored in *TERMIOS_P. */
+speed_t
+cfgetospeed (const struct termios *termios_p)
+{
+ return termios_p->c_cflag & (CBAUD | CBAUDEX);
+}
+
+/* Return the input baud rate stored in *TERMIOS_P.
+ Although for Linux there is no difference between input and output
+ speed, the numerical 0 is a special case for the input baud rate. It
+ should set the input baud rate to the output baud rate. */
+speed_t
+cfgetispeed (const struct termios *termios_p)
+{
+ return ((termios_p->c_iflag & IBAUD0)
+ ? 0 : termios_p->c_cflag & (CBAUD | CBAUDEX));
+}
+
+/* Set the output baud rate stored in *TERMIOS_P to SPEED. */
+int
+cfsetospeed (struct termios *termios_p, speed_t speed)
+{
+ if ((speed & ~CBAUD) != 0
+ && (speed < B57600 || speed > __MAX_BAUD))
+ return INLINE_SYSCALL_ERROR_RETURN_VALUE (EINVAL);
+
+#ifdef _HAVE_STRUCT_TERMIOS_C_OSPEED
+ termios_p->c_ospeed = speed;
+#endif
+ termios_p->c_cflag &= ~(CBAUD | CBAUDEX);
+ termios_p->c_cflag |= speed;
+
+ return 0;
+}
+libc_hidden_def (cfsetospeed)
+
+
+/* Set the input baud rate stored in *TERMIOS_P to SPEED.
+ Although for Linux there is no difference between input and output
+ speed, the numerical 0 is a special case for the input baud rate. It
+ should set the input baud rate to the output baud rate. */
+int
+cfsetispeed (struct termios *termios_p, speed_t speed)
+{
+ if ((speed & ~CBAUD) != 0
+ && (speed < B57600 || speed > __MAX_BAUD))
+ return INLINE_SYSCALL_ERROR_RETURN_VALUE (EINVAL);
+
+#ifdef _HAVE_STRUCT_TERMIOS_C_ISPEED
+ termios_p->c_ispeed = speed;
+#endif
+ if (speed == 0)
+ termios_p->c_iflag |= IBAUD0;
+ else
+ {
+ termios_p->c_iflag &= ~IBAUD0;
+ termios_p->c_cflag &= ~(CBAUD | CBAUDEX);
+ termios_p->c_cflag |= speed;
+ }
+
+ return 0;
+}
+libc_hidden_def (cfsetispeed)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/splice.c b/REORG.TODO/sysdeps/unix/sysv/linux/splice.c
new file mode 100644
index 0000000000..2aaf878c60
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/splice.c
@@ -0,0 +1,27 @@
+/* Splice data to/from a pipe Linux implementation.
+ Copyright (C) 2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <fcntl.h>
+#include <sysdep-cancel.h>
+
+ssize_t
+splice (int fd_in, loff_t *off_in, int fd_out, loff_t *off_out, size_t len,
+ unsigned int flags)
+{
+ return SYSCALL_CANCEL (splice, fd_in, off_in, fd_out, off_out, len, flags);
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/statfs64.c b/REORG.TODO/sysdeps/unix/sysv/linux/statfs64.c
new file mode 100644
index 0000000000..291e421927
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/statfs64.c
@@ -0,0 +1,95 @@
+/* Return information about the filesystem on which FILE resides.
+ Copyright (C) 1996-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <string.h>
+#include <stddef.h>
+#include <sysdep.h>
+#include <kernel_stat.h>
+
+/* Hide the prototypes for __statfs and statfs so that GCC will not
+ complain about the different function signatures if they are aliased
+ to __stat64. If STATFS_IS_STATFS64 is not zero then the statfs and
+ statfs64 structures have an identical layout but different type names. */
+
+#if STATFS_IS_STATFS64
+# define __statfs __statfs_disable
+# define statfs statfs_disable
+#endif
+#include <sys/statfs.h>
+
+#include <kernel-features.h>
+
+
+# if __ASSUME_STATFS64 == 0
+int __no_statfs64 attribute_hidden;
+#endif
+
+/* Return information about the filesystem on which FILE resides. */
+int
+__statfs64 (const char *file, struct statfs64 *buf)
+{
+#ifdef __NR_statfs64
+# if __ASSUME_STATFS64 == 0
+ if (! __no_statfs64)
+# endif
+ {
+ int result = INLINE_SYSCALL (statfs64, 3, file, sizeof (*buf), buf);
+
+# if __ASSUME_STATFS64 == 0
+ if (result == 0 || errno != ENOSYS)
+# endif
+ return result;
+
+# if __ASSUME_STATFS64 == 0
+ __no_statfs64 = 1;
+# endif
+ }
+#endif
+
+#if __ASSUME_STATFS64 == 0
+ struct statfs buf32;
+
+ if (__statfs (file, &buf32) < 0)
+ return -1;
+
+ buf->f_type = buf32.f_type;
+ buf->f_bsize = buf32.f_bsize;
+ buf->f_blocks = buf32.f_blocks;
+ buf->f_bfree = buf32.f_bfree;
+ buf->f_bavail = buf32.f_bavail;
+ buf->f_files = buf32.f_files;
+ buf->f_ffree = buf32.f_ffree;
+ buf->f_fsid = buf32.f_fsid;
+ buf->f_namelen = buf32.f_namelen;
+ buf->f_frsize = buf32.f_frsize;
+ memcpy (buf->f_spare, buf32.f_spare, sizeof (buf32.f_spare));
+
+ return 0;
+#endif
+}
+weak_alias (__statfs64, statfs64)
+
+#undef __statfs
+#undef statfs
+
+#if STATFS_IS_STATFS64
+weak_alias (__statfs64, __statfs)
+weak_alias (__statfs64, statfs)
+libc_hidden_ver (__statfs64, __statfs)
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/statvfs.c b/REORG.TODO/sysdeps/unix/sysv/linux/statvfs.c
new file mode 100644
index 0000000000..744336e33b
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/statvfs.c
@@ -0,0 +1,44 @@
+/* Copyright (C) 1998-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
+
+ 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 <stddef.h>
+#include <sys/stat.h>
+#include <sys/statfs.h>
+#include <sys/statvfs.h>
+
+extern void __internal_statvfs (const char *name, struct statvfs *buf,
+ struct statfs *fsbuf, int fd);
+
+
+int
+__statvfs (const char *file, struct statvfs *buf)
+{
+ struct statfs fsbuf;
+
+ /* Get as much information as possible from the system. */
+ if (__statfs (file, &fsbuf) < 0)
+ return -1;
+
+ /* Convert the result. */
+ __internal_statvfs (file, buf, &fsbuf, -1);
+
+ /* We signal success if the statfs call succeeded. */
+ return 0;
+}
+weak_alias (__statvfs, statvfs)
+libc_hidden_weak (statvfs)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/statvfs64.c b/REORG.TODO/sysdeps/unix/sysv/linux/statvfs64.c
new file mode 100644
index 0000000000..a89f720b38
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/statvfs64.c
@@ -0,0 +1,69 @@
+/* Return information about the filesystem on which FILE resides.
+ Copyright (C) 1998-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <stddef.h>
+#include <string.h>
+#include <sys/stat.h>
+#include <sys/statfs.h>
+#include <sys/statvfs.h>
+#include <kernel-features.h>
+
+
+extern void __internal_statvfs64 (const char *name, struct statvfs64 *buf,
+ struct statfs64 *fsbuf, int fd);
+
+
+/* Return information about the filesystem on which FILE resides. */
+int
+__statvfs64 (const char *file, struct statvfs64 *buf)
+{
+ struct statfs64 fsbuf;
+ int res = __statfs64 (file, &fsbuf);
+
+#ifndef __ASSUME_STATFS64
+ if (res < 0 && errno == ENOSYS)
+ {
+ struct statvfs buf32;
+
+ res = statvfs (file, &buf32);
+ if (res == 0)
+ {
+ buf->f_bsize = buf32.f_bsize;
+ buf->f_frsize = buf32.f_frsize;
+ buf->f_blocks = buf32.f_blocks;
+ buf->f_bfree = buf32.f_bfree;
+ buf->f_bavail = buf32.f_bavail;
+ buf->f_files = buf32.f_files;
+ buf->f_ffree = buf32.f_ffree;
+ buf->f_favail = buf32.f_favail;
+ buf->f_fsid = buf32.f_fsid;
+ buf->f_flag = buf32.f_flag;
+ buf->f_namemax = buf32.f_namemax;
+ memcpy (buf->__f_spare, buf32.__f_spare, sizeof (buf32.__f_spare));
+ }
+ }
+#endif
+
+ if (res == 0)
+ /* Convert the result. */
+ __internal_statvfs64 (file, buf, &fsbuf, -1);
+
+ return res;
+}
+weak_alias (__statvfs64, statvfs64)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sync_file_range.c b/REORG.TODO/sysdeps/unix/sysv/linux/sync_file_range.c
new file mode 100644
index 0000000000..356d522faf
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sync_file_range.c
@@ -0,0 +1,33 @@
+/* Selective file content synch'ing.
+ Copyright (C) 2006-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <fcntl.h>
+#include <sysdep-cancel.h>
+
+int
+sync_file_range (int fd, __off64_t offset, __off64_t len, unsigned int flags)
+{
+#if defined (__NR_sync_file_range2)
+ return SYSCALL_CANCEL (sync_file_range2, fd, flags, SYSCALL_LL64 (offset),
+ SYSCALL_LL64 (len));
+#elif defined (__NR_sync_file_range)
+ return SYSCALL_CANCEL (sync_file_range, fd,
+ __ALIGNMENT_ARG SYSCALL_LL64 (offset),
+ SYSCALL_LL64 (len), flags);
+#endif
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sys/acct.h b/REORG.TODO/sysdeps/unix/sysv/linux/sys/acct.h
new file mode 100644
index 0000000000..b4809ce9af
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sys/acct.h
@@ -0,0 +1,106 @@
+/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_ACCT_H
+#define _SYS_ACCT_H 1
+
+#include <sys/types.h>
+#include <stdint.h>
+#include <endian.h>
+#include <bits/types/time_t.h>
+
+__BEGIN_DECLS
+
+#define ACCT_COMM 16
+
+/*
+ comp_t is a 16-bit "floating" point number with a 3-bit base 8
+ exponent and a 13-bit fraction. See linux/kernel/acct.c for the
+ specific encoding system used.
+*/
+
+typedef uint16_t comp_t;
+
+struct acct
+{
+ char ac_flag; /* Flags. */
+ uint16_t ac_uid; /* Real user ID. */
+ uint16_t ac_gid; /* Real group ID. */
+ uint16_t ac_tty; /* Controlling terminal. */
+ uint32_t ac_btime; /* Beginning time. */
+ comp_t ac_utime; /* User time. */
+ comp_t ac_stime; /* System time. */
+ comp_t ac_etime; /* Elapsed time. */
+ comp_t ac_mem; /* Average memory usage. */
+ comp_t ac_io; /* Chars transferred. */
+ comp_t ac_rw; /* Blocks read or written. */
+ comp_t ac_minflt; /* Minor pagefaults. */
+ comp_t ac_majflt; /* Major pagefaults. */
+ comp_t ac_swaps; /* Number of swaps. */
+ uint32_t ac_exitcode; /* Process exitcode. */
+ char ac_comm[ACCT_COMM+1]; /* Command name. */
+ char ac_pad[10]; /* Padding bytes. */
+};
+
+
+struct acct_v3
+{
+ char ac_flag; /* Flags */
+ char ac_version; /* Always set to ACCT_VERSION */
+ uint16_t ac_tty; /* Control Terminal */
+ uint32_t ac_exitcode; /* Exitcode */
+ uint32_t ac_uid; /* Real User ID */
+ uint32_t ac_gid; /* Real Group ID */
+ uint32_t ac_pid; /* Process ID */
+ uint32_t ac_ppid; /* Parent Process ID */
+ uint32_t ac_btime; /* Process Creation Time */
+ float ac_etime; /* Elapsed Time */
+ comp_t ac_utime; /* User Time */
+ comp_t ac_stime; /* System Time */
+ comp_t ac_mem; /* Average Memory Usage */
+ comp_t ac_io; /* Chars Transferred */
+ comp_t ac_rw; /* Blocks Read or Written */
+ comp_t ac_minflt; /* Minor Pagefaults */
+ comp_t ac_majflt; /* Major Pagefaults */
+ comp_t ac_swaps; /* Number of Swaps */
+ char ac_comm[ACCT_COMM]; /* Command Name */
+};
+
+
+enum
+ {
+ AFORK = 0x01, /* Has executed fork, but no exec. */
+ ASU = 0x02, /* Used super-user privileges. */
+ ACORE = 0x08, /* Dumped core. */
+ AXSIG = 0x10 /* Killed by a signal. */
+ };
+
+#if __BYTE_ORDER == __BIG_ENDIAN
+# define ACCT_BYTEORDER 0x80 /* Accounting file is big endian. */
+#else
+# define ACCT_BYTEORDER 0x00 /* Accounting file is little endian. */
+#endif
+
+#define AHZ 100
+
+
+/* Switch process accounting on and off. */
+extern int acct (const char *__filename) __THROW;
+
+__END_DECLS
+
+#endif /* sys/acct.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sys/epoll.h b/REORG.TODO/sysdeps/unix/sysv/linux/sys/epoll.h
new file mode 100644
index 0000000000..1498058396
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sys/epoll.h
@@ -0,0 +1,138 @@
+/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_EPOLL_H
+#define _SYS_EPOLL_H 1
+
+#include <stdint.h>
+#include <sys/types.h>
+
+#include <bits/types/sigset_t.h>
+
+/* Get the platform-dependent flags. */
+#include <bits/epoll.h>
+
+#ifndef __EPOLL_PACKED
+# define __EPOLL_PACKED
+#endif
+
+
+enum EPOLL_EVENTS
+ {
+ EPOLLIN = 0x001,
+#define EPOLLIN EPOLLIN
+ EPOLLPRI = 0x002,
+#define EPOLLPRI EPOLLPRI
+ EPOLLOUT = 0x004,
+#define EPOLLOUT EPOLLOUT
+ EPOLLRDNORM = 0x040,
+#define EPOLLRDNORM EPOLLRDNORM
+ EPOLLRDBAND = 0x080,
+#define EPOLLRDBAND EPOLLRDBAND
+ EPOLLWRNORM = 0x100,
+#define EPOLLWRNORM EPOLLWRNORM
+ EPOLLWRBAND = 0x200,
+#define EPOLLWRBAND EPOLLWRBAND
+ EPOLLMSG = 0x400,
+#define EPOLLMSG EPOLLMSG
+ EPOLLERR = 0x008,
+#define EPOLLERR EPOLLERR
+ EPOLLHUP = 0x010,
+#define EPOLLHUP EPOLLHUP
+ EPOLLRDHUP = 0x2000,
+#define EPOLLRDHUP EPOLLRDHUP
+ EPOLLEXCLUSIVE = 1u << 28,
+#define EPOLLEXCLUSIVE EPOLLEXCLUSIVE
+ EPOLLWAKEUP = 1u << 29,
+#define EPOLLWAKEUP EPOLLWAKEUP
+ EPOLLONESHOT = 1u << 30,
+#define EPOLLONESHOT EPOLLONESHOT
+ EPOLLET = 1u << 31
+#define EPOLLET EPOLLET
+ };
+
+
+/* Valid opcodes ( "op" parameter ) to issue to epoll_ctl(). */
+#define EPOLL_CTL_ADD 1 /* Add a file descriptor to the interface. */
+#define EPOLL_CTL_DEL 2 /* Remove a file descriptor from the interface. */
+#define EPOLL_CTL_MOD 3 /* Change file descriptor epoll_event structure. */
+
+
+typedef union epoll_data
+{
+ void *ptr;
+ int fd;
+ uint32_t u32;
+ uint64_t u64;
+} epoll_data_t;
+
+struct epoll_event
+{
+ uint32_t events; /* Epoll events */
+ epoll_data_t data; /* User data variable */
+} __EPOLL_PACKED;
+
+
+__BEGIN_DECLS
+
+/* Creates an epoll instance. Returns an fd for the new instance.
+ The "size" parameter is a hint specifying the number of file
+ descriptors to be associated with the new instance. The fd
+ returned by epoll_create() should be closed with close(). */
+extern int epoll_create (int __size) __THROW;
+
+/* Same as epoll_create but with an FLAGS parameter. The unused SIZE
+ parameter has been dropped. */
+extern int epoll_create1 (int __flags) __THROW;
+
+
+/* Manipulate an epoll instance "epfd". Returns 0 in case of success,
+ -1 in case of error ( the "errno" variable will contain the
+ specific error code ) The "op" parameter is one of the EPOLL_CTL_*
+ constants defined above. The "fd" parameter is the target of the
+ operation. The "event" parameter describes which events the caller
+ is interested in and any associated user data. */
+extern int epoll_ctl (int __epfd, int __op, int __fd,
+ struct epoll_event *__event) __THROW;
+
+
+/* Wait for events on an epoll instance "epfd". Returns the number of
+ triggered events returned in "events" buffer. Or -1 in case of
+ error with the "errno" variable set to the specific error code. The
+ "events" parameter is a buffer that will contain triggered
+ events. The "maxevents" is the maximum number of events to be
+ returned ( usually size of "events" ). The "timeout" parameter
+ specifies the maximum wait time in milliseconds (-1 == infinite).
+
+ This function is a cancellation point and therefore not marked with
+ __THROW. */
+extern int epoll_wait (int __epfd, struct epoll_event *__events,
+ int __maxevents, int __timeout);
+
+
+/* Same as epoll_wait, but the thread's signal mask is temporarily
+ and atomically replaced with the one provided as parameter.
+
+ This function is a cancellation point and therefore not marked with
+ __THROW. */
+extern int epoll_pwait (int __epfd, struct epoll_event *__events,
+ int __maxevents, int __timeout,
+ const __sigset_t *__ss);
+
+__END_DECLS
+
+#endif /* sys/epoll.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sys/eventfd.h b/REORG.TODO/sysdeps/unix/sysv/linux/sys/eventfd.h
new file mode 100644
index 0000000000..74d836a5d6
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sys/eventfd.h
@@ -0,0 +1,44 @@
+/* Copyright (C) 2007-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_EVENTFD_H
+#define _SYS_EVENTFD_H 1
+
+#include <stdint.h>
+
+/* Get the platform-dependent flags. */
+#include <bits/eventfd.h>
+
+/* Type for event counter. */
+typedef uint64_t eventfd_t;
+
+
+__BEGIN_DECLS
+
+/* Return file descriptor for generic event channel. Set initial
+ value to COUNT. */
+extern int eventfd (unsigned int __count, int __flags) __THROW;
+
+/* Read event counter and possibly wait for events. */
+extern int eventfd_read (int __fd, eventfd_t *__value);
+
+/* Increment event counter. */
+extern int eventfd_write (int __fd, eventfd_t __value);
+
+__END_DECLS
+
+#endif /* sys/eventfd.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sys/fanotify.h b/REORG.TODO/sysdeps/unix/sysv/linux/sys/fanotify.h
new file mode 100644
index 0000000000..d7e921e595
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sys/fanotify.h
@@ -0,0 +1,38 @@
+/* Copyright (C) 2010-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_FANOTIFY_H
+#define _SYS_FANOTIFY_H 1
+
+#include <stdint.h>
+#include <linux/fanotify.h>
+
+
+__BEGIN_DECLS
+
+/* Create and initialize fanotify group. */
+extern int fanotify_init (unsigned int __flags, unsigned int __event_f_flags)
+ __THROW;
+
+/* Add, remove, or modify an fanotify mark on a filesystem object. */
+extern int fanotify_mark (int __fanotify_fd, unsigned int __flags,
+ uint64_t __mask, int __dfd, const char *__pathname)
+ __THROW;
+
+__END_DECLS
+
+#endif /* sys/fanotify.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sys/fsuid.h b/REORG.TODO/sysdeps/unix/sysv/linux/sys/fsuid.h
new file mode 100644
index 0000000000..3b6b2b6b32
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sys/fsuid.h
@@ -0,0 +1,35 @@
+/* Copyright (C) 1997-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_FSUID_H
+#define _SYS_FSUID_H 1
+
+#include <features.h>
+#include <sys/types.h>
+
+__BEGIN_DECLS
+
+/* Change uid used for file access control to UID, without affecting
+ other privileges (such as who can send signals at the process). */
+extern int setfsuid (__uid_t __uid) __THROW;
+
+/* Ditto for group id. */
+extern int setfsgid (__gid_t __gid) __THROW;
+
+__END_DECLS
+
+#endif /* fsuid.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sys/inotify.h b/REORG.TODO/sysdeps/unix/sysv/linux/sys/inotify.h
new file mode 100644
index 0000000000..c74477873b
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sys/inotify.h
@@ -0,0 +1,99 @@
+/* Copyright (C) 2005-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_INOTIFY_H
+#define _SYS_INOTIFY_H 1
+
+#include <stdint.h>
+
+/* Get the platform-dependent flags. */
+#include <bits/inotify.h>
+
+
+/* Structure describing an inotify event. */
+struct inotify_event
+{
+ int wd; /* Watch descriptor. */
+ uint32_t mask; /* Watch mask. */
+ uint32_t cookie; /* Cookie to synchronize two events. */
+ uint32_t len; /* Length (including NULs) of name. */
+ char name __flexarr; /* Name. */
+};
+
+
+/* Supported events suitable for MASK parameter of INOTIFY_ADD_WATCH. */
+#define IN_ACCESS 0x00000001 /* File was accessed. */
+#define IN_MODIFY 0x00000002 /* File was modified. */
+#define IN_ATTRIB 0x00000004 /* Metadata changed. */
+#define IN_CLOSE_WRITE 0x00000008 /* Writtable file was closed. */
+#define IN_CLOSE_NOWRITE 0x00000010 /* Unwrittable file closed. */
+#define IN_CLOSE (IN_CLOSE_WRITE | IN_CLOSE_NOWRITE) /* Close. */
+#define IN_OPEN 0x00000020 /* File was opened. */
+#define IN_MOVED_FROM 0x00000040 /* File was moved from X. */
+#define IN_MOVED_TO 0x00000080 /* File was moved to Y. */
+#define IN_MOVE (IN_MOVED_FROM | IN_MOVED_TO) /* Moves. */
+#define IN_CREATE 0x00000100 /* Subfile was created. */
+#define IN_DELETE 0x00000200 /* Subfile was deleted. */
+#define IN_DELETE_SELF 0x00000400 /* Self was deleted. */
+#define IN_MOVE_SELF 0x00000800 /* Self was moved. */
+
+/* Events sent by the kernel. */
+#define IN_UNMOUNT 0x00002000 /* Backing fs was unmounted. */
+#define IN_Q_OVERFLOW 0x00004000 /* Event queued overflowed. */
+#define IN_IGNORED 0x00008000 /* File was ignored. */
+
+/* Helper events. */
+#define IN_CLOSE (IN_CLOSE_WRITE | IN_CLOSE_NOWRITE) /* Close. */
+#define IN_MOVE (IN_MOVED_FROM | IN_MOVED_TO) /* Moves. */
+
+/* Special flags. */
+#define IN_ONLYDIR 0x01000000 /* Only watch the path if it is a
+ directory. */
+#define IN_DONT_FOLLOW 0x02000000 /* Do not follow a sym link. */
+#define IN_EXCL_UNLINK 0x04000000 /* Exclude events on unlinked
+ objects. */
+#define IN_MASK_ADD 0x20000000 /* Add to the mask of an already
+ existing watch. */
+#define IN_ISDIR 0x40000000 /* Event occurred against dir. */
+#define IN_ONESHOT 0x80000000 /* Only send event once. */
+
+/* All events which a program can wait on. */
+#define IN_ALL_EVENTS (IN_ACCESS | IN_MODIFY | IN_ATTRIB | IN_CLOSE_WRITE \
+ | IN_CLOSE_NOWRITE | IN_OPEN | IN_MOVED_FROM \
+ | IN_MOVED_TO | IN_CREATE | IN_DELETE \
+ | IN_DELETE_SELF | IN_MOVE_SELF)
+
+
+__BEGIN_DECLS
+
+/* Create and initialize inotify instance. */
+extern int inotify_init (void) __THROW;
+
+/* Create and initialize inotify instance. */
+extern int inotify_init1 (int __flags) __THROW;
+
+/* Add watch of object NAME to inotify instance FD. Notify about
+ events specified by MASK. */
+extern int inotify_add_watch (int __fd, const char *__name, uint32_t __mask)
+ __THROW;
+
+/* Remove the watch specified by WD from the inotify instance FD. */
+extern int inotify_rm_watch (int __fd, int __wd) __THROW;
+
+__END_DECLS
+
+#endif /* sys/inotify.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sys/kd.h b/REORG.TODO/sysdeps/unix/sysv/linux/sys/kd.h
new file mode 100644
index 0000000000..272b7d62ea
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sys/kd.h
@@ -0,0 +1,34 @@
+/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_KD_H
+#define _SYS_KD_H 1
+
+/* Make sure the <linux/types.h> header is not loaded. */
+#ifndef _LINUX_TYPES_H
+# define _LINUX_TYPES_H 1
+# define __undef_LINUX_TYPES_H
+#endif
+
+#include <linux/kd.h>
+
+#ifdef __undef_LINUX_TYPES_H
+# undef _LINUX_TYPES_H
+# undef __undef_LINUX_TYPES_H
+#endif
+
+#endif /* sys/kd.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sys/klog.h b/REORG.TODO/sysdeps/unix/sysv/linux/sys/klog.h
new file mode 100644
index 0000000000..33bd751341
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sys/klog.h
@@ -0,0 +1,33 @@
+/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_KLOG_H
+
+#define _SYS_KLOG_H 1
+#include <features.h>
+
+__BEGIN_DECLS
+
+/* Control the kernel's logging facility. This corresponds exactly to
+ the kernel's syslog system call, but that name is easily confused
+ with the user-level syslog facility, which is something completely
+ different. */
+extern int klogctl (int __type, char *__bufp, int __len) __THROW;
+
+__END_DECLS
+
+#endif /* _SYS_KLOG_H */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sys/mount.h b/REORG.TODO/sysdeps/unix/sysv/linux/sys/mount.h
new file mode 100644
index 0000000000..55424e77ea
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sys/mount.h
@@ -0,0 +1,150 @@
+/* Header file for mounting/unmount Linux filesystems.
+ Copyright (C) 1996-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+/* This is taken from /usr/include/linux/fs.h. */
+
+#ifndef _SYS_MOUNT_H
+#define _SYS_MOUNT_H 1
+
+#include <features.h>
+#include <sys/ioctl.h>
+
+#define BLOCK_SIZE 1024
+#define BLOCK_SIZE_BITS 10
+
+
+/* These are the fs-independent mount-flags: up to 16 flags are
+ supported */
+enum
+{
+ MS_RDONLY = 1, /* Mount read-only. */
+#define MS_RDONLY MS_RDONLY
+ MS_NOSUID = 2, /* Ignore suid and sgid bits. */
+#define MS_NOSUID MS_NOSUID
+ MS_NODEV = 4, /* Disallow access to device special files. */
+#define MS_NODEV MS_NODEV
+ MS_NOEXEC = 8, /* Disallow program execution. */
+#define MS_NOEXEC MS_NOEXEC
+ MS_SYNCHRONOUS = 16, /* Writes are synced at once. */
+#define MS_SYNCHRONOUS MS_SYNCHRONOUS
+ MS_REMOUNT = 32, /* Alter flags of a mounted FS. */
+#define MS_REMOUNT MS_REMOUNT
+ MS_MANDLOCK = 64, /* Allow mandatory locks on an FS. */
+#define MS_MANDLOCK MS_MANDLOCK
+ MS_DIRSYNC = 128, /* Directory modifications are synchronous. */
+#define MS_DIRSYNC MS_DIRSYNC
+ MS_NOATIME = 1024, /* Do not update access times. */
+#define MS_NOATIME MS_NOATIME
+ MS_NODIRATIME = 2048, /* Do not update directory access times. */
+#define MS_NODIRATIME MS_NODIRATIME
+ MS_BIND = 4096, /* Bind directory at different place. */
+#define MS_BIND MS_BIND
+ MS_MOVE = 8192,
+#define MS_MOVE MS_MOVE
+ MS_REC = 16384,
+#define MS_REC MS_REC
+ MS_SILENT = 32768,
+#define MS_SILENT MS_SILENT
+ MS_POSIXACL = 1 << 16, /* VFS does not apply the umask. */
+#define MS_POSIXACL MS_POSIXACL
+ MS_UNBINDABLE = 1 << 17, /* Change to unbindable. */
+#define MS_UNBINDABLE MS_UNBINDABLE
+ MS_PRIVATE = 1 << 18, /* Change to private. */
+#define MS_PRIVATE MS_PRIVATE
+ MS_SLAVE = 1 << 19, /* Change to slave. */
+#define MS_SLAVE MS_SLAVE
+ MS_SHARED = 1 << 20, /* Change to shared. */
+#define MS_SHARED MS_SHARED
+ MS_RELATIME = 1 << 21, /* Update atime relative to mtime/ctime. */
+#define MS_RELATIME MS_RELATIME
+ MS_KERNMOUNT = 1 << 22, /* This is a kern_mount call. */
+#define MS_KERNMOUNT MS_KERNMOUNT
+ MS_I_VERSION = 1 << 23, /* Update inode I_version field. */
+#define MS_I_VERSION MS_I_VERSION
+ MS_STRICTATIME = 1 << 24, /* Always perform atime updates. */
+#define MS_STRICTATIME MS_STRICTATIME
+ MS_LAZYTIME = 1 << 25, /* Update the on-disk [acm]times lazily. */
+#define MS_LAZYTIME MS_LAZYTIME
+ MS_ACTIVE = 1 << 30,
+#define MS_ACTIVE MS_ACTIVE
+ MS_NOUSER = 1 << 31
+#define MS_NOUSER MS_NOUSER
+};
+
+/* Flags that can be altered by MS_REMOUNT */
+#define MS_RMT_MASK (MS_RDONLY|MS_SYNCHRONOUS|MS_MANDLOCK|MS_I_VERSION \
+ |MS_LAZYTIME)
+
+
+/* Magic mount flag number. Has to be or-ed to the flag values. */
+
+#define MS_MGC_VAL 0xc0ed0000 /* Magic flag number to indicate "new" flags */
+#define MS_MGC_MSK 0xffff0000 /* Magic flag number mask */
+
+
+/* The read-only stuff doesn't really belong here, but any other place
+ is probably as bad and I don't want to create yet another include
+ file. */
+
+#define BLKROSET _IO(0x12, 93) /* Set device read-only (0 = read-write). */
+#define BLKROGET _IO(0x12, 94) /* Get read-only status (0 = read_write). */
+#define BLKRRPART _IO(0x12, 95) /* Re-read partition table. */
+#define BLKGETSIZE _IO(0x12, 96) /* Return device size. */
+#define BLKFLSBUF _IO(0x12, 97) /* Flush buffer cache. */
+#define BLKRASET _IO(0x12, 98) /* Set read ahead for block device. */
+#define BLKRAGET _IO(0x12, 99) /* Get current read ahead setting. */
+#define BLKFRASET _IO(0x12,100) /* Set filesystem read-ahead. */
+#define BLKFRAGET _IO(0x12,101) /* Get filesystem read-ahead. */
+#define BLKSECTSET _IO(0x12,102) /* Set max sectors per request. */
+#define BLKSECTGET _IO(0x12,103) /* Get max sectors per request. */
+#define BLKSSZGET _IO(0x12,104) /* Get block device sector size. */
+#define BLKBSZGET _IOR(0x12,112,size_t)
+#define BLKBSZSET _IOW(0x12,113,size_t)
+#define BLKGETSIZE64 _IOR(0x12,114,size_t) /* return device size. */
+
+
+/* Possible value for FLAGS parameter of `umount2'. */
+enum
+{
+ MNT_FORCE = 1, /* Force unmounting. */
+#define MNT_FORCE MNT_FORCE
+ MNT_DETACH = 2, /* Just detach from the tree. */
+#define MNT_DETACH MNT_DETACH
+ MNT_EXPIRE = 4, /* Mark for expiry. */
+#define MNT_EXPIRE MNT_EXPIRE
+ UMOUNT_NOFOLLOW = 8 /* Don't follow symlink on umount. */
+#define UMOUNT_NOFOLLOW UMOUNT_NOFOLLOW
+};
+
+
+__BEGIN_DECLS
+
+/* Mount a filesystem. */
+extern int mount (const char *__special_file, const char *__dir,
+ const char *__fstype, unsigned long int __rwflag,
+ const void *__data) __THROW;
+
+/* Unmount a filesystem. */
+extern int umount (const char *__special_file) __THROW;
+
+/* Unmount a filesystem. Force unmounting if FLAGS is set to MNT_FORCE. */
+extern int umount2 (const char *__special_file, int __flags) __THROW;
+
+__END_DECLS
+
+#endif /* _SYS_MOUNT_H */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sys/pci.h b/REORG.TODO/sysdeps/unix/sysv/linux/sys/pci.h
new file mode 100644
index 0000000000..49cd2d5048
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sys/pci.h
@@ -0,0 +1,24 @@
+/* Copyright (C) 1997-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_PCI_H
+#define _SYS_PCI_H 1
+
+/* We use the constants from the kernel. */
+#include <linux/pci.h>
+
+#endif /* sys/pci.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sys/personality.h b/REORG.TODO/sysdeps/unix/sysv/linux/sys/personality.h
new file mode 100644
index 0000000000..114695cb15
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sys/personality.h
@@ -0,0 +1,80 @@
+/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+/* Taken verbatim from Linux 2.6 (include/linux/personality.h). */
+
+#ifndef _SYS_PERSONALITY_H
+#define _SYS_PERSONALITY_H 1
+
+#include <features.h>
+
+/* Flags for bug emulation.
+ These occupy the top three bytes. */
+enum
+ {
+ UNAME26 = 0x0020000,
+ ADDR_NO_RANDOMIZE = 0x0040000,
+ FDPIC_FUNCPTRS = 0x0080000,
+ MMAP_PAGE_ZERO = 0x0100000,
+ ADDR_COMPAT_LAYOUT = 0x0200000,
+ READ_IMPLIES_EXEC = 0x0400000,
+ ADDR_LIMIT_32BIT = 0x0800000,
+ SHORT_INODE = 0x1000000,
+ WHOLE_SECONDS = 0x2000000,
+ STICKY_TIMEOUTS = 0x4000000,
+ ADDR_LIMIT_3GB = 0x8000000
+ };
+
+/* Personality types.
+
+ These go in the low byte. Avoid using the top bit, it will
+ conflict with error returns. */
+enum
+ {
+ PER_LINUX = 0x0000,
+ PER_LINUX_32BIT = 0x0000 | ADDR_LIMIT_32BIT,
+ PER_LINUX_FDPIC = 0x0000 | FDPIC_FUNCPTRS,
+ PER_SVR4 = 0x0001 | STICKY_TIMEOUTS | MMAP_PAGE_ZERO,
+ PER_SVR3 = 0x0002 | STICKY_TIMEOUTS | SHORT_INODE,
+ PER_SCOSVR3 = 0x0003 | STICKY_TIMEOUTS | WHOLE_SECONDS | SHORT_INODE,
+ PER_OSR5 = 0x0003 | STICKY_TIMEOUTS | WHOLE_SECONDS,
+ PER_WYSEV386 = 0x0004 | STICKY_TIMEOUTS | SHORT_INODE,
+ PER_ISCR4 = 0x0005 | STICKY_TIMEOUTS,
+ PER_BSD = 0x0006,
+ PER_SUNOS = 0x0006 | STICKY_TIMEOUTS,
+ PER_XENIX = 0x0007 | STICKY_TIMEOUTS | SHORT_INODE,
+ PER_LINUX32 = 0x0008,
+ PER_LINUX32_3GB = 0x0008 | ADDR_LIMIT_3GB,
+ PER_IRIX32 = 0x0009 | STICKY_TIMEOUTS, /* IRIX5 32-bit */
+ PER_IRIXN32 = 0x000a | STICKY_TIMEOUTS, /* IRIX6 new 32-bit */
+ PER_IRIX64 = 0x000b | STICKY_TIMEOUTS, /* IRIX6 64-bit */
+ PER_RISCOS = 0x000c,
+ PER_SOLARIS = 0x000d | STICKY_TIMEOUTS,
+ PER_UW7 = 0x000e | STICKY_TIMEOUTS | MMAP_PAGE_ZERO,
+ PER_OSF4 = 0x000f,
+ PER_HPUX = 0x0010,
+ PER_MASK = 0x00ff,
+ };
+
+__BEGIN_DECLS
+
+/* Set different ABIs (personalities). */
+extern int personality (unsigned long int __persona) __THROW;
+
+__END_DECLS
+
+#endif /* sys/personality.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sys/prctl.h b/REORG.TODO/sysdeps/unix/sysv/linux/sys/prctl.h
new file mode 100644
index 0000000000..446ca202d3
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sys/prctl.h
@@ -0,0 +1,31 @@
+/* Copyright (C) 1997-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_PRCTL_H
+#define _SYS_PRCTL_H 1
+
+#include <features.h>
+#include <linux/prctl.h> /* The magic values come from here */
+
+__BEGIN_DECLS
+
+/* Control process execution. */
+extern int prctl (int __option, ...) __THROW;
+
+__END_DECLS
+
+#endif /* sys/prctl.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sys/procfs.h b/REORG.TODO/sysdeps/unix/sysv/linux/sys/procfs.h
new file mode 100644
index 0000000000..b3b2cf3e12
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sys/procfs.h
@@ -0,0 +1,114 @@
+/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_PROCFS_H
+#define _SYS_PROCFS_H 1
+
+/* This is somehow modelled after the file of the same name on SysVr4
+ systems. It provides a definition of the core file format for ELF
+ used on Linux. */
+
+#include <features.h>
+#include <signal.h>
+#include <sys/time.h>
+#include <sys/types.h>
+#include <sys/ucontext.h>
+#include <sys/user.h>
+#include <asm/elf.h>
+
+__BEGIN_DECLS
+
+struct elf_siginfo
+ {
+ int si_signo; /* Signal number. */
+ int si_code; /* Extra code. */
+ int si_errno; /* Errno. */
+ };
+
+/* Definitions to generate Intel SVR4-like core files. These mostly
+ have the same names as the SVR4 types with "elf_" tacked on the
+ front to prevent clashes with linux definitions, and the typedef
+ forms have been avoided. This is mostly like the SVR4 structure,
+ but more Linuxy, with things that Linux does not support and which
+ gdb doesn't really use excluded. Fields present but not used are
+ marked with "XXX". */
+struct elf_prstatus
+ {
+#if 0
+ long int pr_flags; /* XXX Process flags. */
+ short int pr_why; /* XXX Reason for process halt. */
+ short int pr_what; /* XXX More detailed reason. */
+#endif
+ struct elf_siginfo pr_info; /* Info associated with signal. */
+ short int pr_cursig; /* Current signal. */
+ unsigned long int pr_sigpend; /* Set of pending signals. */
+ unsigned long int pr_sighold; /* Set of held signals. */
+#if 0
+ stack_t pr_altstack; /* Alternate stack info. */
+ struct sigaction pr_action; /* Signal action for current sig. */
+#endif
+ __pid_t pr_pid;
+ __pid_t pr_ppid;
+ __pid_t pr_pgrp;
+ __pid_t pr_sid;
+ struct timeval pr_utime; /* User time. */
+ struct timeval pr_stime; /* System time. */
+ struct timeval pr_cutime; /* Cumulative user time. */
+ struct timeval pr_cstime; /* Cumulative system time. */
+#if 0
+ long int pr_instr; /* Current instruction. */
+#endif
+ elf_gregset_t pr_reg; /* GP registers. */
+ int pr_fpvalid; /* True if math copro being used. */
+ };
+
+
+#define ELF_PRARGSZ (80) /* Number of chars for args */
+
+struct elf_prpsinfo
+ {
+ char pr_state; /* Numeric process state. */
+ char pr_sname; /* Char for pr_state. */
+ char pr_zomb; /* Zombie. */
+ char pr_nice; /* Nice val. */
+ unsigned long int pr_flag; /* Flags. */
+ unsigned short int pr_uid;
+ unsigned short int pr_gid;
+ int pr_pid, pr_ppid, pr_pgrp, pr_sid;
+ /* Lots missing */
+ char pr_fname[16]; /* Filename of executable. */
+ char pr_psargs[ELF_PRARGSZ]; /* Initial part of arg list. */
+ };
+
+/* Addresses. */
+typedef void *psaddr_t;
+
+/* Register sets. Linux has different names. */
+typedef gregset_t prgregset_t;
+typedef fpregset_t prfpregset_t;
+
+/* We don't have any differences between processes and threads,
+ therefore habe only ine PID type. */
+typedef __pid_t lwpid_t;
+
+
+typedef struct elf_prstatus prstatus_t;
+typedef struct elf_prpsinfo prpsinfo_t;
+
+__END_DECLS
+
+#endif /* sys/procfs.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sys/ptrace.h b/REORG.TODO/sysdeps/unix/sysv/linux/sys/ptrace.h
new file mode 100644
index 0000000000..1daadd1950
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sys/ptrace.h
@@ -0,0 +1,229 @@
+/* `ptrace' debugger support interface. Linux version.
+ Copyright (C) 1996-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_PTRACE_H
+#define _SYS_PTRACE_H 1
+
+#include <features.h>
+#include <bits/types.h>
+
+__BEGIN_DECLS
+
+/* Type of the REQUEST argument to `ptrace.' */
+enum __ptrace_request
+{
+ /* Indicate that the process making this request should be traced.
+ All signals received by this process can be intercepted by its
+ parent, and its parent can use the other `ptrace' requests. */
+ PTRACE_TRACEME = 0,
+#define PT_TRACE_ME PTRACE_TRACEME
+
+ /* Return the word in the process's text space at address ADDR. */
+ PTRACE_PEEKTEXT = 1,
+#define PT_READ_I PTRACE_PEEKTEXT
+
+ /* Return the word in the process's data space at address ADDR. */
+ PTRACE_PEEKDATA = 2,
+#define PT_READ_D PTRACE_PEEKDATA
+
+ /* Return the word in the process's user area at offset ADDR. */
+ PTRACE_PEEKUSER = 3,
+#define PT_READ_U PTRACE_PEEKUSER
+
+ /* Write the word DATA into the process's text space at address ADDR. */
+ PTRACE_POKETEXT = 4,
+#define PT_WRITE_I PTRACE_POKETEXT
+
+ /* Write the word DATA into the process's data space at address ADDR. */
+ PTRACE_POKEDATA = 5,
+#define PT_WRITE_D PTRACE_POKEDATA
+
+ /* Write the word DATA into the process's user area at offset ADDR. */
+ PTRACE_POKEUSER = 6,
+#define PT_WRITE_U PTRACE_POKEUSER
+
+ /* Continue the process. */
+ PTRACE_CONT = 7,
+#define PT_CONTINUE PTRACE_CONT
+
+ /* Kill the process. */
+ PTRACE_KILL = 8,
+#define PT_KILL PTRACE_KILL
+
+ /* Single step the process.
+ This is not supported on all machines. */
+ PTRACE_SINGLESTEP = 9,
+#define PT_STEP PTRACE_SINGLESTEP
+
+ /* Get all general purpose registers used by a processes.
+ This is not supported on all machines. */
+ PTRACE_GETREGS = 12,
+#define PT_GETREGS PTRACE_GETREGS
+
+ /* Set all general purpose registers used by a processes.
+ This is not supported on all machines. */
+ PTRACE_SETREGS = 13,
+#define PT_SETREGS PTRACE_SETREGS
+
+ /* Get all floating point registers used by a processes.
+ This is not supported on all machines. */
+ PTRACE_GETFPREGS = 14,
+#define PT_GETFPREGS PTRACE_GETFPREGS
+
+ /* Set all floating point registers used by a processes.
+ This is not supported on all machines. */
+ PTRACE_SETFPREGS = 15,
+#define PT_SETFPREGS PTRACE_SETFPREGS
+
+ /* Attach to a process that is already running. */
+ PTRACE_ATTACH = 16,
+#define PT_ATTACH PTRACE_ATTACH
+
+ /* Detach from a process attached to with PTRACE_ATTACH. */
+ PTRACE_DETACH = 17,
+#define PT_DETACH PTRACE_DETACH
+
+ /* Get all extended floating point registers used by a processes.
+ This is not supported on all machines. */
+ PTRACE_GETFPXREGS = 18,
+#define PT_GETFPXREGS PTRACE_GETFPXREGS
+
+ /* Set all extended floating point registers used by a processes.
+ This is not supported on all machines. */
+ PTRACE_SETFPXREGS = 19,
+#define PT_SETFPXREGS PTRACE_SETFPXREGS
+
+ /* Continue and stop at the next (return from) syscall. */
+ PTRACE_SYSCALL = 24,
+#define PT_SYSCALL PTRACE_SYSCALL
+
+ /* Set ptrace filter options. */
+ PTRACE_SETOPTIONS = 0x4200,
+#define PT_SETOPTIONS PTRACE_SETOPTIONS
+
+ /* Get last ptrace message. */
+ PTRACE_GETEVENTMSG = 0x4201,
+#define PT_GETEVENTMSG PTRACE_GETEVENTMSG
+
+ /* Get siginfo for process. */
+ PTRACE_GETSIGINFO = 0x4202,
+#define PT_GETSIGINFO PTRACE_GETSIGINFO
+
+ /* Set new siginfo for process. */
+ PTRACE_SETSIGINFO = 0x4203,
+#define PT_SETSIGINFO PTRACE_SETSIGINFO
+
+ /* Get register content. */
+ PTRACE_GETREGSET = 0x4204,
+#define PTRACE_GETREGSET PTRACE_GETREGSET
+
+ /* Set register content. */
+ PTRACE_SETREGSET = 0x4205,
+#define PTRACE_SETREGSET PTRACE_SETREGSET
+
+ /* Like PTRACE_ATTACH, but do not force tracee to trap and do not affect
+ signal or group stop state. */
+ PTRACE_SEIZE = 0x4206,
+#define PTRACE_SEIZE PTRACE_SEIZE
+
+ /* Trap seized tracee. */
+ PTRACE_INTERRUPT = 0x4207,
+#define PTRACE_INTERRUPT PTRACE_INTERRUPT
+
+ /* Wait for next group event. */
+ PTRACE_LISTEN = 0x4208,
+#define PTRACE_LISTEN PTRACE_LISTEN
+
+ PTRACE_PEEKSIGINFO = 0x4209,
+#define PTRACE_PEEKSIGINFO PTRACE_PEEKSIGINFO
+
+ PTRACE_GETSIGMASK = 0x420a,
+#define PTRACE_GETSIGMASK PTRACE_GETSIGMASK
+
+ PTRACE_SETSIGMASK = 0x420b,
+#define PTRACE_SETSIGMASK PTRACE_SETSIGMASK
+
+ PTRACE_SECCOMP_GET_FILTER = 0x420c
+#define PTRACE_SECCOMP_GET_FILTER PTRACE_SECCOMP_GET_FILTER
+};
+
+
+/* Flag for PTRACE_LISTEN. */
+enum __ptrace_flags
+{
+ PTRACE_SEIZE_DEVEL = 0x80000000
+};
+
+/* Options set using PTRACE_SETOPTIONS. */
+enum __ptrace_setoptions
+{
+ PTRACE_O_TRACESYSGOOD = 0x00000001,
+ PTRACE_O_TRACEFORK = 0x00000002,
+ PTRACE_O_TRACEVFORK = 0x00000004,
+ PTRACE_O_TRACECLONE = 0x00000008,
+ PTRACE_O_TRACEEXEC = 0x00000010,
+ PTRACE_O_TRACEVFORKDONE = 0x00000020,
+ PTRACE_O_TRACEEXIT = 0x00000040,
+ PTRACE_O_TRACESECCOMP = 0x00000080,
+ PTRACE_O_EXITKILL = 0x00100000,
+ PTRACE_O_SUSPEND_SECCOMP = 0x00200000,
+ PTRACE_O_MASK = 0x003000ff
+};
+
+enum __ptrace_eventcodes
+{
+/* Wait extended result codes for the above trace options. */
+ PTRACE_EVENT_FORK = 1,
+ PTRACE_EVENT_VFORK = 2,
+ PTRACE_EVENT_CLONE = 3,
+ PTRACE_EVENT_EXEC = 4,
+ PTRACE_EVENT_VFORK_DONE = 5,
+ PTRACE_EVENT_EXIT = 6,
+ PTRACE_EVENT_SECCOMP = 7,
+/* Extended result codes enabled by means other than options. */
+ PTRACE_EVENT_STOP = 128
+};
+
+/* Arguments for PTRACE_PEEKSIGINFO. */
+struct __ptrace_peeksiginfo_args
+{
+ __uint64_t off; /* From which siginfo to start. */
+ __uint32_t flags; /* Flags for peeksiginfo. */
+ __int32_t nr; /* How many siginfos to take. */
+};
+
+enum __ptrace_peeksiginfo_flags
+{
+ /* Read signals from a shared (process wide) queue. */
+ PTRACE_PEEKSIGINFO_SHARED = (1 << 0)
+};
+
+/* Perform process tracing functions. REQUEST is one of the values
+ above, and determines the action to be taken.
+ For all requests except PTRACE_TRACEME, PID specifies the process to be
+ traced.
+
+ PID and the other arguments described above for the various requests should
+ appear (those that are used for the particular request) as:
+ pid_t PID, void *ADDR, int DATA, void *ADDR2
+ after REQUEST. */
+extern long int ptrace (enum __ptrace_request __request, ...) __THROW;
+
+__END_DECLS
+
+#endif /* _SYS_PTRACE_H */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sys/quota.h b/REORG.TODO/sysdeps/unix/sysv/linux/sys/quota.h
new file mode 100644
index 0000000000..13c28a7b6c
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sys/quota.h
@@ -0,0 +1,135 @@
+/* This just represents the non-kernel parts of <linux/quota.h>.
+ Copyright (C) 1998-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+/*
+ * Copyright (c) 1982, 1986 Regents of the University of California.
+ * All rights reserved.
+ *
+ * This code is derived from software contributed to Berkeley by
+ * Robert Elz at The University of Melbourne.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 4. Neither the name of the University nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#ifndef _SYS_QUOTA_H
+#define _SYS_QUOTA_H 1
+
+#include <features.h>
+#include <sys/types.h>
+
+#include <linux/quota.h>
+
+/*
+ * Convert diskblocks to blocks and the other way around.
+ * currently only to fool the BSD source. :-)
+ */
+#define dbtob(num) ((num) << 10)
+#define btodb(num) ((num) >> 10)
+
+/*
+ * Convert count of filesystem blocks to diskquota blocks, meant for
+ * filesystems where i_blksize != 1024.
+ */
+#define fs_to_dq_blocks(num, blksize) (((num) * (blksize)) / 1024)
+
+/*
+ * Definitions for disk quotas imposed on the average user
+ * (big brother finally hits Linux).
+ *
+ * The following constants define the amount of time given a user
+ * before the soft limits are treated as hard limits (usually resulting
+ * in an allocation failure). The timer is started when the user crosses
+ * their soft limit, it is reset when they go below their soft limit.
+ */
+#define MAX_IQ_TIME 604800 /* (7*24*60*60) 1 week */
+#define MAX_DQ_TIME 604800 /* (7*24*60*60) 1 week */
+
+#define QUOTAFILENAME "quota"
+#define QUOTAGROUP "staff"
+
+#define NR_DQHASH 43 /* Just an arbitrary number any suggestions ? */
+#define NR_DQUOTS 256 /* Number of quotas active at one time */
+
+/* Old name for struct if_dqblk. */
+struct dqblk
+ {
+ __uint64_t dqb_bhardlimit; /* absolute limit on disk quota blocks alloc */
+ __uint64_t dqb_bsoftlimit; /* preferred limit on disk quota blocks */
+ __uint64_t dqb_curspace; /* current quota block count */
+ __uint64_t dqb_ihardlimit; /* maximum # allocated inodes */
+ __uint64_t dqb_isoftlimit; /* preferred inode limit */
+ __uint64_t dqb_curinodes; /* current # allocated inodes */
+ __uint64_t dqb_btime; /* time limit for excessive disk use */
+ __uint64_t dqb_itime; /* time limit for excessive files */
+ __uint32_t dqb_valid; /* bitmask of QIF_* constants */
+ };
+
+/*
+ * Shorthand notation.
+ */
+#define dq_bhardlimit dq_dqb.dqb_bhardlimit
+#define dq_bsoftlimit dq_dqb.dqb_bsoftlimit
+#define dq_curspace dq_dqb.dqb_curspace
+#define dq_valid dq_dqb.dqb_valid
+#define dq_ihardlimit dq_dqb.dqb_ihardlimit
+#define dq_isoftlimit dq_dqb.dqb_isoftlimit
+#define dq_curinodes dq_dqb.dqb_curinodes
+#define dq_btime dq_dqb.dqb_btime
+#define dq_itime dq_dqb.dqb_itime
+
+#define dqoff(UID) ((loff_t)((UID) * sizeof (struct dqblk)))
+
+/* Old name for struct if_dqinfo. */
+struct dqinfo
+ {
+ __uint64_t dqi_bgrace;
+ __uint64_t dqi_igrace;
+ __uint32_t dqi_flags;
+ __uint32_t dqi_valid;
+ };
+
+__BEGIN_DECLS
+
+extern int quotactl (int __cmd, const char *__special, int __id,
+ __caddr_t __addr) __THROW;
+
+__END_DECLS
+
+#endif /* sys/quota.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sys/raw.h b/REORG.TODO/sysdeps/unix/sysv/linux/sys/raw.h
new file mode 100644
index 0000000000..0713a0521c
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sys/raw.h
@@ -0,0 +1,38 @@
+/* Copyright (C) 1999-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_RAW_H
+#define _SYS_RAW_H 1
+
+#include <stdint.h>
+#include <sys/ioctl.h>
+
+/* The major device number for raw devices. */
+#define RAW_MAJOR 162
+
+/* `ioctl' commands for raw devices. */
+#define RAW_SETBIND _IO(0xac, 0)
+#define RAW_GETBIND _IO(0xac, 1)
+
+struct raw_config_request
+{
+ int raw_minor;
+ uint64_t block_major;
+ uint64_t block_minor;
+};
+
+#endif /* sys/raw.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sys/reboot.h b/REORG.TODO/sysdeps/unix/sysv/linux/sys/reboot.h
new file mode 100644
index 0000000000..fafd2fb0c1
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sys/reboot.h
@@ -0,0 +1,54 @@
+/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+/* This file should define RB_* macros to be used as flag
+ bits in the argument to the `reboot' system call. */
+
+#ifndef _SYS_REBOOT_H
+#define _SYS_REBOOT_H 1
+
+#include <features.h>
+
+/* Perform a hard reset now. */
+#define RB_AUTOBOOT 0x01234567
+
+/* Halt the system. */
+#define RB_HALT_SYSTEM 0xcdef0123
+
+/* Enable reboot using Ctrl-Alt-Delete keystroke. */
+#define RB_ENABLE_CAD 0x89abcdef
+
+/* Disable reboot using Ctrl-Alt-Delete keystroke. */
+#define RB_DISABLE_CAD 0
+
+/* Stop system and switch power off if possible. */
+#define RB_POWER_OFF 0x4321fedc
+
+/* Suspend system using software suspend. */
+#define RB_SW_SUSPEND 0xd000fce2
+
+/* Reboot system into new kernel. */
+#define RB_KEXEC 0x45584543
+
+__BEGIN_DECLS
+
+/* Reboot or halt the system. */
+extern int reboot (int __howto) __THROW;
+
+__END_DECLS
+
+#endif /* _SYS_REBOOT_H */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sys/signalfd.h b/REORG.TODO/sysdeps/unix/sysv/linux/sys/signalfd.h
new file mode 100644
index 0000000000..a01c7d1cc1
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sys/signalfd.h
@@ -0,0 +1,57 @@
+/* Copyright (C) 2007-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_SIGNALFD_H
+#define _SYS_SIGNALFD_H 1
+
+#include <stdint.h>
+#include <bits/types/sigset_t.h>
+
+/* Get the platform-dependent flags. */
+#include <bits/signalfd.h>
+
+struct signalfd_siginfo
+{
+ uint32_t ssi_signo;
+ int32_t ssi_errno;
+ int32_t ssi_code;
+ uint32_t ssi_pid;
+ uint32_t ssi_uid;
+ int32_t ssi_fd;
+ uint32_t ssi_tid;
+ uint32_t ssi_band;
+ uint32_t ssi_overrun;
+ uint32_t ssi_trapno;
+ int32_t ssi_status;
+ int32_t ssi_int;
+ uint64_t ssi_ptr;
+ uint64_t ssi_utime;
+ uint64_t ssi_stime;
+ uint64_t ssi_addr;
+ uint8_t __pad[48];
+};
+
+__BEGIN_DECLS
+
+/* Request notification for delivery of signals in MASK to be
+ performed using descriptor FD.*/
+extern int signalfd (int __fd, const sigset_t *__mask, int __flags)
+ __THROW __nonnull ((2));
+
+__END_DECLS
+
+#endif /* sys/signalfd.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sys/soundcard.h b/REORG.TODO/sysdeps/unix/sysv/linux/sys/soundcard.h
new file mode 100644
index 0000000000..fade986fe4
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sys/soundcard.h
@@ -0,0 +1 @@
+#include <linux/soundcard.h>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sys/swap.h b/REORG.TODO/sysdeps/unix/sysv/linux/sys/swap.h
new file mode 100644
index 0000000000..5201c78e7a
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sys/swap.h
@@ -0,0 +1,43 @@
+/* Calls to enable and disable swapping on specified locations. Linux version.
+ Copyright (C) 1996-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_SWAP_H
+
+#define _SYS_SWAP_H 1
+#include <features.h>
+
+/* The swap priority is encoded as:
+ (prio << SWAP_FLAG_PRIO_SHIFT) & SWAP_FLAG_PRIO_MASK
+*/
+#define SWAP_FLAG_PREFER 0x8000 /* Set if swap priority is specified. */
+#define SWAP_FLAG_PRIO_MASK 0x7fff
+#define SWAP_FLAG_PRIO_SHIFT 0
+#define SWAP_FLAG_DISCARD 0x10000 /* Discard swap cluster after use. */
+
+__BEGIN_DECLS
+
+/* Make the block special device PATH available to the system for swapping.
+ This call is restricted to the super-user. */
+extern int swapon (const char *__path, int __flags) __THROW;
+
+/* Stop using block special device PATH for swapping. */
+extern int swapoff (const char *__path) __THROW;
+
+__END_DECLS
+
+#endif /* _SYS_SWAP_H */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sys/syscall.h b/REORG.TODO/sysdeps/unix/sysv/linux/sys/syscall.h
new file mode 100644
index 0000000000..b54fad3fa1
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sys/syscall.h
@@ -0,0 +1,34 @@
+/* Copyright (C) 1995-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYSCALL_H
+#define _SYSCALL_H 1
+
+/* This file should list the numbers of the system calls the system knows.
+ But instead of duplicating this we use the information available
+ from the kernel sources. */
+#include <asm/unistd.h>
+
+#ifndef _LIBC
+/* The Linux kernel header file defines macros `__NR_<name>', but some
+ programs expect the traditional form `SYS_<name>'. So in building libc
+ we scan the kernel's list and produce <bits/syscall.h> with macros for
+ all the `SYS_' names. */
+# include <bits/syscall.h>
+#endif
+
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sys/sysctl.h b/REORG.TODO/sysdeps/unix/sysv/linux/sys/sysctl.h
new file mode 100644
index 0000000000..f646fe8765
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sys/sysctl.h
@@ -0,0 +1,73 @@
+/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_SYSCTL_H
+#define _SYS_SYSCTL_H 1
+
+#include <features.h>
+#define __need_size_t
+#include <stddef.h>
+/* Prevent more kernel headers than necessary to be included. */
+#ifndef _LINUX_KERNEL_H
+# define _LINUX_KERNEL_H 1
+# define __undef_LINUX_KERNEL_H
+#endif
+#ifndef _LINUX_TYPES_H
+# define _LINUX_TYPES_H 1
+# define __undef_LINUX_TYPES_H
+#endif
+#ifndef _LINUX_LIST_H
+# define _LINUX_LIST_H 1
+# define __undef_LINUX_LIST_H
+#endif
+#ifndef __LINUX_COMPILER_H
+# define __LINUX_COMPILER_H 1
+# define __user
+# define __undef__LINUX_COMPILER_H
+#endif
+
+#include <linux/sysctl.h>
+
+#ifdef __undef_LINUX_KERNEL_H
+# undef _LINUX_KERNEL_H
+# undef __undef_LINUX_KERNEL_H
+#endif
+#ifdef __undef_LINUX_TYPES_H
+# undef _LINUX_TYPES_H
+# undef __undef_LINUX_TYPES_H
+#endif
+#ifdef __undef_LINUX_LIST_H
+# undef _LINUX_LIST_H
+# undef __undef_LINUX_LIST_H
+#endif
+#ifdef __undef__LINUX_COMPILER_H
+# undef __LINUX_COMPILER_H
+# undef __user
+# undef __undef__LINUX_COMPILER_H
+#endif
+
+#include <bits/sysctl.h>
+
+__BEGIN_DECLS
+
+/* Read or write system parameters. */
+extern int sysctl (int *__name, int __nlen, void *__oldval,
+ size_t *__oldlenp, void *__newval, size_t __newlen) __THROW;
+
+__END_DECLS
+
+#endif /* _SYS_SYSCTL_H */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sys/sysinfo.h b/REORG.TODO/sysdeps/unix/sysv/linux/sys/sysinfo.h
new file mode 100644
index 0000000000..72797eac2d
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sys/sysinfo.h
@@ -0,0 +1,47 @@
+/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_SYSINFO_H
+#define _SYS_SYSINFO_H 1
+
+#include <features.h>
+
+/* Get sysinfo structure from kernel header. */
+#include <linux/kernel.h>
+
+__BEGIN_DECLS
+
+/* Returns information on overall system statistics. */
+extern int sysinfo (struct sysinfo *__info) __THROW;
+
+
+/* Return number of configured processors. */
+extern int get_nprocs_conf (void) __THROW;
+
+/* Return number of available processors. */
+extern int get_nprocs (void) __THROW;
+
+
+/* Return number of physical pages of memory in the system. */
+extern long int get_phys_pages (void) __THROW;
+
+/* Return number of available physical pages of memory in the system. */
+extern long int get_avphys_pages (void) __THROW;
+
+__END_DECLS
+
+#endif /* sys/sysinfo.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sys/timerfd.h b/REORG.TODO/sysdeps/unix/sysv/linux/sys/timerfd.h
new file mode 100644
index 0000000000..9811afe0fa
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sys/timerfd.h
@@ -0,0 +1,55 @@
+/* Copyright (C) 2008-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_TIMERFD_H
+#define _SYS_TIMERFD_H 1
+
+#include <time.h>
+#include <bits/types/struct_itimerspec.h>
+
+/* Get the platform-dependent flags. */
+#include <bits/timerfd.h>
+
+
+/* Bits to be set in the FLAGS parameter of `timerfd_settime'. */
+enum
+ {
+ TFD_TIMER_ABSTIME = 1 << 0,
+#define TFD_TIMER_ABSTIME TFD_TIMER_ABSTIME
+ TFD_TIMER_CANCEL_ON_SET = 1 << 1
+#define TFD_TIMER_CANCEL_ON_SET TFD_TIMER_CANCEL_ON_SET
+ };
+
+
+__BEGIN_DECLS
+
+/* Return file descriptor for new interval timer source. */
+extern int timerfd_create (__clockid_t __clock_id, int __flags) __THROW;
+
+/* Set next expiration time of interval timer source UFD to UTMR. If
+ FLAGS has the TFD_TIMER_ABSTIME flag set the timeout value is
+ absolute. Optionally return the old expiration time in OTMR. */
+extern int timerfd_settime (int __ufd, int __flags,
+ const struct itimerspec *__utmr,
+ struct itimerspec *__otmr) __THROW;
+
+/* Return the next expiration time of UFD. */
+extern int timerfd_gettime (int __ufd, struct itimerspec *__otmr) __THROW;
+
+__END_DECLS
+
+#endif /* sys/timerfd.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sys/timex.h b/REORG.TODO/sysdeps/unix/sysv/linux/sys/timex.h
new file mode 100644
index 0000000000..3f1b013afd
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sys/timex.h
@@ -0,0 +1,71 @@
+/* Copyright (C) 1995-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_TIMEX_H
+#define _SYS_TIMEX_H 1
+
+#include <features.h>
+#include <sys/time.h>
+
+/* These definitions from linux/timex.h as of 2.6.30. */
+
+#include <bits/timex.h>
+
+#define NTP_API 4 /* NTP API version */
+
+struct ntptimeval
+{
+ struct timeval time; /* current time (ro) */
+ long int maxerror; /* maximum error (us) (ro) */
+ long int esterror; /* estimated error (us) (ro) */
+ long int tai; /* TAI offset (ro) */
+
+ long int __glibc_reserved1;
+ long int __glibc_reserved2;
+ long int __glibc_reserved3;
+ long int __glibc_reserved4;
+};
+
+/* Clock states (time_state) */
+#define TIME_OK 0 /* clock synchronized, no leap second */
+#define TIME_INS 1 /* insert leap second */
+#define TIME_DEL 2 /* delete leap second */
+#define TIME_OOP 3 /* leap second in progress */
+#define TIME_WAIT 4 /* leap second has occurred */
+#define TIME_ERROR 5 /* clock not synchronized */
+#define TIME_BAD TIME_ERROR /* bw compat */
+
+/* Maximum time constant of the PLL. */
+#define MAXTC 6
+
+__BEGIN_DECLS
+
+extern int __adjtimex (struct timex *__ntx) __THROW;
+extern int adjtimex (struct timex *__ntx) __THROW;
+
+#ifdef __REDIRECT_NTH
+extern int __REDIRECT_NTH (ntp_gettime, (struct ntptimeval *__ntv),
+ ntp_gettimex);
+#else
+extern int ntp_gettimex (struct ntptimeval *__ntv) __THROW;
+# define ntp_gettime ntp_gettimex
+#endif
+extern int ntp_adjtime (struct timex *__tntx) __THROW;
+
+__END_DECLS
+
+#endif /* sys/timex.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sys/ttydefaults.h b/REORG.TODO/sysdeps/unix/sysv/linux/sys/ttydefaults.h
new file mode 100644
index 0000000000..9be168b831
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sys/ttydefaults.h
@@ -0,0 +1,100 @@
+/*-
+ * Copyright (c) 1982, 1986, 1993
+ * The Regents of the University of California. All rights reserved.
+ * (c) UNIX System Laboratories, Inc.
+ * All or some portions of this file are derived from material licensed
+ * to the University of California by American Telephone and Telegraph
+ * Co. or Unix System Laboratories, Inc. and are reproduced herein with
+ * the permission of UNIX System Laboratories, Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 4. Neither the name of the University nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ * @(#)ttydefaults.h 8.4 (Berkeley) 1/21/94
+ */
+
+/*
+ * System wide defaults for terminal state. Linux version.
+ */
+#ifndef _SYS_TTYDEFAULTS_H_
+#define _SYS_TTYDEFAULTS_H_
+
+/*
+ * Defaults on "first" open.
+ */
+#define TTYDEF_IFLAG (BRKINT | ISTRIP | ICRNL | IMAXBEL | IXON | IXANY)
+#define TTYDEF_OFLAG (OPOST | ONLCR | XTABS)
+#define TTYDEF_LFLAG (ECHO | ICANON | ISIG | IEXTEN | ECHOE|ECHOKE|ECHOCTL)
+#define TTYDEF_CFLAG (CREAD | CS7 | PARENB | HUPCL)
+#define TTYDEF_SPEED (B9600)
+
+/*
+ * Control Character Defaults
+ */
+#define CTRL(x) (x&037)
+#define CEOF CTRL('d')
+#ifdef _POSIX_VDISABLE
+# define CEOL _POSIX_VDISABLE
+#else
+# define CEOL '\0' /* XXX avoid _POSIX_VDISABLE */
+#endif
+#define CERASE 0177
+#define CINTR CTRL('c')
+#ifdef _POSIX_VDISABLE
+# define CSTATUS _POSIX_VDISABLE
+#else
+# define CSTATUS '\0' /* XXX avoid _POSIX_VDISABLE */
+#endif
+#define CKILL CTRL('u')
+#define CMIN 1
+#define CQUIT 034 /* FS, ^\ */
+#define CSUSP CTRL('z')
+#define CTIME 0
+#define CDSUSP CTRL('y')
+#define CSTART CTRL('q')
+#define CSTOP CTRL('s')
+#define CLNEXT CTRL('v')
+#define CDISCARD CTRL('o')
+#define CWERASE CTRL('w')
+#define CREPRINT CTRL('r')
+#define CEOT CEOF
+/* compat */
+#define CBRK CEOL
+#define CRPRNT CREPRINT
+#define CFLUSH CDISCARD
+
+/* PROTECTED INCLUSION ENDS HERE */
+#endif /* !_SYS_TTYDEFAULTS_H_ */
+
+/*
+ * #define TTYDEFCHARS to include an array of default control characters.
+ */
+#ifdef TTYDEFCHARS
+cc_t ttydefchars[NCCS] = {
+ CEOF, CEOL, CEOL, CERASE, CWERASE, CKILL, CREPRINT,
+ _POSIX_VDISABLE, CINTR, CQUIT, CSUSP, CDSUSP, CSTART, CSTOP, CLNEXT,
+ CDISCARD, CMIN, CTIME, CSTATUS, _POSIX_VDISABLE
+};
+#undef TTYDEFCHARS
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sys/user.h b/REORG.TODO/sysdeps/unix/sysv/linux/sys/user.h
new file mode 100644
index 0000000000..03e56c3d7f
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sys/user.h
@@ -0,0 +1 @@
+#error "This file is machine-dependent and not provided for this machine."
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sys/vt.h b/REORG.TODO/sysdeps/unix/sysv/linux/sys/vt.h
new file mode 100644
index 0000000000..834abfbc8f
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sys/vt.h
@@ -0,0 +1 @@
+#include <linux/vt.h>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/syscalls.list b/REORG.TODO/sysdeps/unix/sysv/linux/syscalls.list
new file mode 100644
index 0000000000..8bfb080d80
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/syscalls.list
@@ -0,0 +1,111 @@
+# File name Caller Syscall name Args Strong name Weak names
+
+adjtimex adjtime adjtimex i:p __adjtimex adjtimex ntp_adjtime
+alarm - alarm i:i alarm
+bdflush EXTRA bdflush i:ii __compat_bdflush bdflush@GLIBC_2.0:GLIBC_2.23
+capget EXTRA capget i:pp capget
+capset EXTRA capset i:pp capset
+clock_adjtime EXTRA clock_adjtime i:ip clock_adjtime
+create_module EXTRA create_module 3 __compat_create_module create_module@GLIBC_2.0:GLIBC_2.23
+delete_module EXTRA delete_module 3 delete_module
+epoll_create EXTRA epoll_create i:i epoll_create
+epoll_create1 EXTRA epoll_create1 i:i epoll_create1
+epoll_ctl EXTRA epoll_ctl i:iiip epoll_ctl
+eventfd EXTRA eventfd2 i:ii eventfd
+execve - execve i:spp __execve execve
+flock - flock i:ii __flock flock
+get_kernel_syms EXTRA get_kernel_syms i:p __compat_get_kernel_syms get_kernel_syms@GLIBC_2.0:GLIBC_2.23
+getpid - getpid Ei: __getpid getpid
+getegid - getegid Ei: __getegid getegid
+geteuid - geteuid Ei: __geteuid geteuid
+getpgid - getpgid i:i __getpgid getpgid
+getpgrp - getpgrp Ei: getpgrp
+getpmsg - getpmsg i:ipppp getpmsg
+getppid - getppid Ei: __getppid getppid
+getresuid - getresuid i:ppp getresuid
+getresgid - getresgid i:ppp getresgid
+getsid - getsid i:i getsid
+init_module EXTRA init_module 5 init_module
+inotify_add_watch EXTRA inotify_add_watch i:isi inotify_add_watch
+inotify_init EXTRA inotify_init i: inotify_init
+inotify_init1 EXTRA inotify_init1 i:I inotify_init1
+inotify_rm_watch EXTRA inotify_rm_watch i:ii inotify_rm_watch
+ioperm - ioperm i:iii ioperm
+iopl - iopl i:i iopl
+klogctl EXTRA syslog i:isi klogctl
+lchown - lchown i:sii __lchown lchown
+mincore - mincore i:anV mincore
+mlock - mlock i:bn mlock
+mlockall - mlockall i:i mlockall
+mount EXTRA mount i:sssip __mount mount
+mremap EXTRA mremap b:ainip __mremap mremap
+munlock - munlock i:ai munlock
+munlockall - munlockall i: munlockall
+nfsservctl EXTRA nfsservctl i:ipp nfsservctl
+pipe - pipe i:f __pipe pipe
+pipe2 - pipe2 i:fi __pipe2 pipe2
+pivot_root EXTRA pivot_root i:ss pivot_root
+prctl EXTRA prctl i:iiiii __prctl prctl
+putpmsg - putpmsg i:ippii putpmsg
+query_module EXTRA query_module i:sipip __compat_query_module query_module@GLIBC_2.0:GLIBC_2.23
+quotactl EXTRA quotactl i:isip quotactl
+remap_file_pages - remap_file_pages i:piiii __remap_file_pages remap_file_pages
+sched_getp - sched_getparam i:ip __sched_getparam sched_getparam
+sched_gets - sched_getscheduler i:i __sched_getscheduler sched_getscheduler
+sched_primax - sched_get_priority_max i:i __sched_get_priority_max sched_get_priority_max
+sched_primin - sched_get_priority_min i:i __sched_get_priority_min sched_get_priority_min
+sched_rr_gi - sched_rr_get_interval i:ip __sched_rr_get_interval sched_rr_get_interval
+sched_setp - sched_setparam i:ip __sched_setparam sched_setparam
+sched_sets - sched_setscheduler i:iip __sched_setscheduler sched_setscheduler
+sched_yield - sched_yield i: __sched_yield sched_yield
+sendfile - sendfile i:iipi sendfile
+sendfile64 - sendfile64 i:iipi sendfile64
+setfsgid EXTRA setfsgid i:i setfsgid
+setfsuid EXTRA setfsuid i:i setfsuid
+setpgid - setpgid i:ii __setpgid setpgid
+sigaltstack - sigaltstack i:PP __sigaltstack sigaltstack
+stime - stime i:p stime
+sysinfo EXTRA sysinfo i:p __sysinfo sysinfo
+swapon - swapon i:si __swapon swapon
+swapoff - swapoff i:s __swapoff swapoff
+unshare EXTRA unshare i:i unshare
+uselib EXTRA uselib i:s __compat_uselib uselib@GLIBC_2.0:GLIBC_2.23
+utime - utime i:sP utime
+wait4 - wait4 i:iWiP __wait4 wait4
+
+chown - chown i:sii __libc_chown __chown chown
+
+fchownat - fchownat i:isiii fchownat
+linkat - linkat i:isisi linkat
+mkdirat - mkdirat i:isi mkdirat
+readlinkat - readlinkat i:issi readlinkat
+symlinkat - symlinkat i:sis symlinkat
+unlinkat - unlinkat i:isi unlinkat
+
+setxattr - setxattr i:sspii setxattr
+lsetxattr - lsetxattr i:sspii lsetxattr
+fsetxattr - fsetxattr i:ispii fsetxattr
+getxattr - getxattr i:sspi getxattr
+lgetxattr - lgetxattr i:sspi lgetxattr
+fgetxattr - fgetxattr i:ispi fgetxattr
+listxattr - listxattr i:ssi listxattr
+llistxattr - llistxattr i:ssi llistxattr
+flistxattr - flistxattr i:isi flistxattr
+removexattr - removexattr i:ss removexattr
+lremovexattr - lremovexattr i:ss lremovexattr
+fremovexattr - fremovexattr i:is fremovexattr
+
+mq_setattr - mq_getsetattr i:ipp mq_setattr
+
+timerfd_create EXTRA timerfd_create i:ii timerfd_create
+timerfd_settime EXTRA timerfd_settime i:iipp timerfd_settime
+timerfd_gettime EXTRA timerfd_gettime i:ip timerfd_gettime
+
+fanotify_init EXTRA fanotify_init i:ii fanotify_init
+
+name_to_handle_at EXTRA name_to_handle_at i:isppi name_to_handle_at
+
+setns EXTRA setns i:ii setns
+
+process_vm_readv EXTRA process_vm_readv i:ipipii process_vm_readv
+process_vm_writev EXTRA process_vm_writev i:ipipii process_vm_writev
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sysconf.c b/REORG.TODO/sysdeps/unix/sysv/linux/sysconf.c
new file mode 100644
index 0000000000..db20977cb8
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sysconf.c
@@ -0,0 +1,146 @@
+/* Get file-specific information about a file. Linux version.
+ Copyright (C) 2003-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <fcntl.h>
+#include <stdlib.h>
+#include <sysdep.h>
+#include <time.h>
+#include <unistd.h>
+#include <sys/resource.h>
+#include <sys/param.h>
+#include <not-cancel.h>
+#include <ldsodefs.h>
+
+/* Legacy value of ARG_MAX. The macro is now not defined since the
+ actual value varies based on the stack size. */
+#define legacy_ARG_MAX 131072
+
+
+static long int posix_sysconf (int name);
+
+
+#ifndef HAS_CPUCLOCK
+static long int
+has_cpuclock (int name)
+{
+# if defined __NR_clock_getres || HP_TIMING_AVAIL
+ /* If we have HP_TIMING, we will fall back on that if the system
+ call does not work, so we support it either way. */
+# if !HP_TIMING_AVAIL
+ /* Check using the clock_getres system call. */
+ struct timespec ts;
+ INTERNAL_SYSCALL_DECL (err);
+ int r = INTERNAL_SYSCALL (clock_getres, err, 2,
+ (name == _SC_CPUTIME
+ ? CLOCK_PROCESS_CPUTIME_ID
+ : CLOCK_THREAD_CPUTIME_ID),
+ &ts);
+ if (INTERNAL_SYSCALL_ERROR_P (r, err))
+ return -1;
+# endif
+ return _POSIX_VERSION;
+# else
+ return -1;
+# endif
+}
+# define HAS_CPUCLOCK(name) has_cpuclock (name)
+#endif
+
+
+/* Get the value of the system variable NAME. */
+long int
+__sysconf (int name)
+{
+ const char *procfname = NULL;
+
+ switch (name)
+ {
+ struct rlimit rlimit;
+#ifdef __NR_clock_getres
+ case _SC_MONOTONIC_CLOCK:
+ /* Check using the clock_getres system call. */
+ {
+ struct timespec ts;
+ INTERNAL_SYSCALL_DECL (err);
+ int r;
+ r = INTERNAL_SYSCALL (clock_getres, err, 2, CLOCK_MONOTONIC, &ts);
+ return INTERNAL_SYSCALL_ERROR_P (r, err) ? -1 : _POSIX_VERSION;
+ }
+#endif
+
+ case _SC_CPUTIME:
+ case _SC_THREAD_CPUTIME:
+ return HAS_CPUCLOCK (name);
+
+ case _SC_ARG_MAX:
+ /* Use getrlimit to get the stack limit. */
+ if (__getrlimit (RLIMIT_STACK, &rlimit) == 0)
+ return MAX (legacy_ARG_MAX, rlimit.rlim_cur / 4);
+
+ return legacy_ARG_MAX;
+
+ case _SC_NGROUPS_MAX:
+ /* Try to read the information from the /proc/sys/kernel/ngroups_max
+ file. */
+ procfname = "/proc/sys/kernel/ngroups_max";
+ break;
+
+ case _SC_SIGQUEUE_MAX:
+ if (__getrlimit (RLIMIT_SIGPENDING, &rlimit) == 0)
+ return rlimit.rlim_cur;
+
+ /* The /proc/sys/kernel/rtsig-max file contains the answer. */
+ procfname = "/proc/sys/kernel/rtsig-max";
+ break;
+
+ default:
+ break;
+ }
+
+ if (procfname != NULL)
+ {
+ int fd = open_not_cancel_2 (procfname, O_RDONLY);
+ if (fd != -1)
+ {
+ /* This is more than enough, the file contains a single integer. */
+ char buf[32];
+ ssize_t n;
+ n = TEMP_FAILURE_RETRY (read_not_cancel (fd, buf, sizeof (buf) - 1));
+ close_not_cancel_no_status (fd);
+
+ if (n > 0)
+ {
+ /* Terminate the string. */
+ buf[n] = '\0';
+
+ char *endp;
+ long int res = strtol (buf, &endp, 10);
+ if (endp != buf && (*endp == '\0' || *endp == '\n'))
+ return res;
+ }
+ }
+ }
+
+ return posix_sysconf (name);
+}
+
+/* Now the POSIX version. */
+#undef __sysconf
+#define __sysconf static posix_sysconf
+#include <sysdeps/posix/sysconf.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sysctl.c b/REORG.TODO/sysdeps/unix/sysv/linux/sysctl.c
new file mode 100644
index 0000000000..52f21e3869
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sysctl.c
@@ -0,0 +1,43 @@
+/* Read or write system information. Linux version.
+ Copyright (C) 1996-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <string.h> /* For the real memset prototype. */
+#include <sys/sysctl.h>
+
+#include <sysdep.h>
+#include <sys/syscall.h>
+
+int
+__sysctl (int *name, int nlen, void *oldval, size_t *oldlenp,
+ void *newval, size_t newlen)
+{
+ struct __sysctl_args args =
+ {
+ .name = name,
+ .nlen = nlen,
+ .oldval = oldval,
+ .oldlenp = oldlenp,
+ .newval = newval,
+ .newlen = newlen
+ };
+
+ return INLINE_SYSCALL (_sysctl, 1, &args);
+}
+libc_hidden_def (__sysctl)
+weak_alias (__sysctl, sysctl)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sysctl.mk b/REORG.TODO/sysdeps/unix/sysv/linux/sysctl.mk
new file mode 100644
index 0000000000..8d04d12e25
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sysctl.mk
@@ -0,0 +1,3 @@
+# sysctl system call has been deprecated. It is provided for backward
+# compatility. New target shouldn't add it (see x86_64/x32/sysctl.mk).
+sysdep_routines += sysctl
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sysdep-vdso.h b/REORG.TODO/sysdeps/unix/sysv/linux/sysdep-vdso.h
new file mode 100644
index 0000000000..faf5698b61
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sysdep-vdso.h
@@ -0,0 +1,98 @@
+/* vDSO common definition for Linux.
+ Copyright (C) 2015-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef SYSDEP_VDSO_LINUX_H
+# define SYSDEP_VDSO_LINUX_H
+
+#define VDSO_SYMBOL(__name) __vdso_##__name
+
+#ifndef INTERNAL_VSYSCALL_CALL
+# define INTERNAL_VSYSCALL_CALL(funcptr, err, nr, args...) \
+ funcptr (args)
+#endif
+
+#ifdef SHARED
+
+# ifdef HAVE_VSYSCALL
+
+# include <libc-vdso.h>
+
+# define INLINE_VSYSCALL(name, nr, args...) \
+ ({ \
+ __label__ out; \
+ __label__ iserr; \
+ INTERNAL_SYSCALL_DECL (sc_err); \
+ long int sc_ret; \
+ \
+ __typeof (__vdso_##name) vdsop = __vdso_##name; \
+ PTR_DEMANGLE (vdsop); \
+ if (vdsop != NULL) \
+ { \
+ sc_ret = INTERNAL_VSYSCALL_CALL (vdsop, sc_err, nr, ##args); \
+ if (!INTERNAL_SYSCALL_ERROR_P (sc_ret, sc_err)) \
+ goto out; \
+ if (INTERNAL_SYSCALL_ERRNO (sc_ret, sc_err) != ENOSYS) \
+ goto iserr; \
+ } \
+ \
+ sc_ret = INTERNAL_SYSCALL (name, sc_err, nr, ##args); \
+ if (INTERNAL_SYSCALL_ERROR_P (sc_ret, sc_err)) \
+ { \
+ iserr: \
+ __set_errno (INTERNAL_SYSCALL_ERRNO (sc_ret, sc_err)); \
+ sc_ret = -1L; \
+ } \
+ out: \
+ sc_ret; \
+ })
+
+# define INTERNAL_VSYSCALL(name, err, nr, args...) \
+ ({ \
+ __label__ out; \
+ long v_ret; \
+ \
+ __typeof (__vdso_##name) vdsop = __vdso_##name; \
+ PTR_DEMANGLE (vdsop); \
+ if (vdsop != NULL) \
+ { \
+ v_ret = INTERNAL_VSYSCALL_CALL (vdsop, err, nr, ##args); \
+ if (!INTERNAL_SYSCALL_ERROR_P (v_ret, err) \
+ || INTERNAL_SYSCALL_ERRNO (v_ret, err) != ENOSYS) \
+ goto out; \
+ } \
+ v_ret = INTERNAL_SYSCALL (name, err, nr, ##args); \
+ out: \
+ v_ret; \
+ })
+# else
+# define INLINE_VSYSCALL(name, nr, args...) \
+ INLINE_SYSCALL (name, nr, ##args)
+# define INTERNAL_VSYSCALL(name, err, nr, args...) \
+ INTERNAL_SYSCALL (name, err, nr, ##args)
+# endif /* HAVE_VSYSCALL */
+
+# else /* SHARED */
+
+# define INLINE_VSYSCALL(name, nr, args...) \
+ INLINE_SYSCALL (name, nr, ##args)
+# define INTERNAL_VSYSCALL(name, err, nr, args...) \
+ INTERNAL_SYSCALL (name, err, nr, ##args)
+
+#endif /* SHARED */
+
+#endif /* SYSDEP_VDSO_LINUX_H */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sysdep.h b/REORG.TODO/sysdeps/unix/sysv/linux/sysdep.h
new file mode 100644
index 0000000000..1c24766e48
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/sysdep.h
@@ -0,0 +1,68 @@
+/* Copyright (C) 2015-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <bits/wordsize.h>
+#include <kernel-features.h>
+
+/* Set error number and return -1. A target may choose to return the
+ internal function, __syscall_error, which sets errno and returns -1.
+ We use -1l, instead of -1, so that it can be casted to (void *). */
+#define INLINE_SYSCALL_ERROR_RETURN_VALUE(err) \
+ ({ \
+ __set_errno (err); \
+ -1l; \
+ })
+
+/* Provide a dummy argument that can be used to force register
+ alignment for register pairs if required by the syscall ABI. */
+#ifdef __ASSUME_ALIGNED_REGISTER_PAIRS
+#define __ALIGNMENT_ARG 0,
+#define __ALIGNMENT_COUNT(a,b) b
+#else
+#define __ALIGNMENT_ARG
+#define __ALIGNMENT_COUNT(a,b) a
+#endif
+
+/* Provide a common macro to pass 64-bit value on syscalls. */
+#if __WORDSIZE == 64 || defined __ASSUME_WORDSIZE64_ILP32
+# define SYSCALL_LL(val) (val)
+# define SYSCALL_LL64(val) (val)
+#else
+#define SYSCALL_LL(val) \
+ __LONG_LONG_PAIR ((val) >> 31, (val))
+#define SYSCALL_LL64(val) \
+ __LONG_LONG_PAIR ((long) ((val) >> 32), (long) ((val) & 0xffffffff))
+#endif
+
+/* Provide a common macro to pass 64-bit value on pread and pwrite
+ syscalls. */
+#ifdef __ASSUME_PRW_DUMMY_ARG
+# define SYSCALL_LL_PRW(val) 0, SYSCALL_LL (val)
+# define SYSCALL_LL64_PRW(val) 0, SYSCALL_LL64 (val)
+#else
+# define SYSCALL_LL_PRW(val) __ALIGNMENT_ARG SYSCALL_LL (val)
+# define SYSCALL_LL64_PRW(val) __ALIGNMENT_ARG SYSCALL_LL64 (val)
+#endif
+
+/* Provide a macro to pass the off{64}_t argument on p{readv,writev}{64}. */
+#define LO_HI_LONG(val) \
+ (long) (val), \
+ (long) (((uint64_t) (val)) >> 32)
+
+/* Exports the __send symbol on send.c linux implementation (some ABI have
+ it missing due the usage of a old generic version without it). */
+#define HAVE_INTERNAL_SEND_SYMBOL 1
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/syslog.c b/REORG.TODO/sysdeps/unix/sysv/linux/syslog.c
new file mode 100644
index 0000000000..cf8ce23385
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/syslog.c
@@ -0,0 +1,4 @@
+#define NO_SIGPIPE
+#define send_flags MSG_NOSIGNAL
+
+#include <misc/syslog.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/system.c b/REORG.TODO/sysdeps/unix/sysv/linux/system.c
new file mode 100644
index 0000000000..012ffd828d
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/system.c
@@ -0,0 +1,76 @@
+/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sched.h>
+#include <signal.h>
+#include <string.h> /* For the real memset prototype. */
+#include <sysdep.h>
+#include <unistd.h>
+#include <sys/wait.h>
+#include <libc-lock.h>
+
+/* We have to and actually can handle cancelable system(). The big
+ problem: we have to kill the child process if necessary. To do
+ this a cleanup handler has to be registered and is has to be able
+ to find the PID of the child. The main problem is to reliable have
+ the PID when needed. It is not necessary for the parent thread to
+ return. It might still be in the kernel when the cancellation
+ request comes. Therefore we have to use the clone() calls ability
+ to have the kernel write the PID into the user-level variable. */
+#ifndef FORK
+# define FORK() \
+ INLINE_SYSCALL (clone, 3, CLONE_PARENT_SETTID | SIGCHLD, 0, &pid)
+#endif
+
+#ifdef _LIBC_REENTRANT
+static void cancel_handler (void *arg);
+
+# define CLEANUP_HANDLER \
+ __libc_cleanup_region_start (1, cancel_handler, &pid)
+
+# define CLEANUP_RESET \
+ __libc_cleanup_region_end (0)
+#endif
+
+
+/* Linux has waitpid(), so override the generic unix version. */
+#include <sysdeps/posix/system.c>
+
+
+#ifdef _LIBC_REENTRANT
+/* The cancellation handler. */
+static void
+cancel_handler (void *arg)
+{
+ pid_t child = *(pid_t *) arg;
+
+ INTERNAL_SYSCALL_DECL (err);
+ INTERNAL_SYSCALL (kill, err, 2, child, SIGKILL);
+
+ TEMP_FAILURE_RETRY (__waitpid (child, NULL, 0));
+
+ DO_LOCK ();
+
+ if (SUB_REF () == 0)
+ {
+ (void) __sigaction (SIGQUIT, &quit, (struct sigaction *) NULL);
+ (void) __sigaction (SIGINT, &intr, (struct sigaction *) NULL);
+ }
+
+ DO_UNLOCK ();
+}
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/tcdrain.c b/REORG.TODO/sysdeps/unix/sysv/linux/tcdrain.c
new file mode 100644
index 0000000000..07f20c172f
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/tcdrain.c
@@ -0,0 +1,30 @@
+/* Copyright (C) 1995-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <termios.h>
+#include <sys/ioctl.h>
+#include <sysdep-cancel.h>
+
+/* Wait for pending output to be written on FD. */
+int
+__libc_tcdrain (int fd)
+{
+ /* With an argument of 1, TCSBRK for output to be drain. */
+ return SYSCALL_CANCEL (ioctl, fd, TCSBRK, 1);
+}
+weak_alias (__libc_tcdrain, tcdrain)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/tcflow.c b/REORG.TODO/sysdeps/unix/sysv/linux/tcflow.c
new file mode 100644
index 0000000000..da3f1554c7
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/tcflow.c
@@ -0,0 +1,28 @@
+/* tcflow -- Suspend or restart transmission on termios file descriptor.
+ 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/>. */
+
+#include <errno.h>
+#include <termios.h>
+#include <sys/ioctl.h>
+
+/* Suspend or restart transmission on FD. */
+int
+tcflow (int fd, int action)
+{
+ return __ioctl (fd, TCXONC, action);
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/tcflush.c b/REORG.TODO/sysdeps/unix/sysv/linux/tcflush.c
new file mode 100644
index 0000000000..e5fec93c4d
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/tcflush.c
@@ -0,0 +1,28 @@
+/* tcflush -- Flush pending data on termios file descriptor. Linux version.
+ Copyright (C) 1993-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <termios.h>
+#include <sys/ioctl.h>
+
+/* Flush pending data on FD. */
+int
+tcflush (int fd, int queue_selector)
+{
+ return __ioctl (fd, TCFLSH, queue_selector);
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/tcgetattr.c b/REORG.TODO/sysdeps/unix/sysv/linux/tcgetattr.c
new file mode 100644
index 0000000000..b1d73d042a
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/tcgetattr.c
@@ -0,0 +1,79 @@
+/* Copyright (C) 1992-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 <string.h>
+#include <termios.h>
+#include <unistd.h>
+#include <sys/ioctl.h>
+#include <sys/types.h>
+#include <sysdep.h>
+
+/* The difference here is that the termios structure used in the
+ kernel is not the same as we use in the libc. Therefore we must
+ translate it here. */
+#include <kernel_termios.h>
+
+/* Put the state of FD into *TERMIOS_P. */
+int
+__tcgetattr (int fd, struct termios *termios_p)
+{
+ struct __kernel_termios k_termios;
+ int retval;
+
+ retval = INLINE_SYSCALL (ioctl, 3, fd, TCGETS, &k_termios);
+
+ if (__glibc_likely (retval == 0))
+ {
+ termios_p->c_iflag = k_termios.c_iflag;
+ termios_p->c_oflag = k_termios.c_oflag;
+ termios_p->c_cflag = k_termios.c_cflag;
+ termios_p->c_lflag = k_termios.c_lflag;
+ termios_p->c_line = k_termios.c_line;
+#ifdef _HAVE_STRUCT_TERMIOS_C_ISPEED
+# ifdef _HAVE_C_ISPEED
+ termios_p->c_ispeed = k_termios.c_ispeed;
+# else
+ termios_p->c_ispeed = k_termios.c_cflag & (CBAUD | CBAUDEX);
+# endif
+#endif
+#ifdef _HAVE_STRUCT_TERMIOS_C_OSPEED
+# ifdef _HAVE_C_OSPEED
+ termios_p->c_ospeed = k_termios.c_ospeed;
+# else
+ termios_p->c_ospeed = k_termios.c_cflag & (CBAUD | CBAUDEX);
+# endif
+#endif
+ if (sizeof (cc_t) == 1 || _POSIX_VDISABLE == 0
+ || (unsigned char) _POSIX_VDISABLE == (unsigned char) -1)
+ memset (__mempcpy (&termios_p->c_cc[0], &k_termios.c_cc[0],
+ __KERNEL_NCCS * sizeof (cc_t)),
+ _POSIX_VDISABLE, (NCCS - __KERNEL_NCCS) * sizeof (cc_t));
+ else
+ {
+ memcpy (&termios_p->c_cc[0], &k_termios.c_cc[0],
+ __KERNEL_NCCS * sizeof (cc_t));
+
+ for (size_t cnt = __KERNEL_NCCS; cnt < NCCS; ++cnt)
+ termios_p->c_cc[cnt] = _POSIX_VDISABLE;
+ }
+ }
+
+ return retval;
+}
+
+weak_alias (__tcgetattr, tcgetattr)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/tcgetpgrp.c b/REORG.TODO/sysdeps/unix/sysv/linux/tcgetpgrp.c
new file mode 100644
index 0000000000..d899fc78f8
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/tcgetpgrp.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/bsd/tcgetpgrp.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/tcsendbrk.c b/REORG.TODO/sysdeps/unix/sysv/linux/tcsendbrk.c
new file mode 100644
index 0000000000..3197020c97
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/tcsendbrk.c
@@ -0,0 +1,44 @@
+/* Send break to terminal.
+ Copyright (C) 1996-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <stddef.h>
+#include <termios.h>
+#include <sys/ioctl.h>
+
+/* Send zero bits on FD. */
+int
+tcsendbreak (int fd, int duration)
+{
+ /* The break lasts 0.25 to 0.5 seconds if DURATION is zero,
+ and an implementation-defined period if DURATION is nonzero.
+ We define a positive DURATION to be number of milliseconds to break. */
+ if (duration <= 0)
+ return __ioctl (fd, TCSBRK, 0);
+
+#ifdef TCSBRKP
+ /* Probably Linux-specific: a positive third TCSBRKP ioctl argument is
+ defined to be the number of 100ms units to break. */
+ return __ioctl (fd, TCSBRKP, (duration + 99) / 100);
+#else
+ /* ioctl can't send a break of any other duration for us.
+ This could be changed to use trickery (e.g. lower speed and
+ send a '\0') to send the break, but for now just return an error. */
+ return INLINE_SYSCALL_ERROR_RETURN_VALUE (EINVAL);
+#endif
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/tcsetattr.c b/REORG.TODO/sysdeps/unix/sysv/linux/tcsetattr.c
new file mode 100644
index 0000000000..c7d1d6539e
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/tcsetattr.c
@@ -0,0 +1,80 @@
+/* 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/>. */
+
+#include <errno.h>
+#include <string.h>
+#include <termios.h>
+#include <sys/ioctl.h>
+#include <sys/types.h>
+#include <sysdep.h>
+
+/* The difference here is that the termios structure used in the
+ kernel is not the same as we use in the libc. Therefore we must
+ translate it here. */
+#include <kernel_termios.h>
+
+
+/* This is a gross hack around a kernel bug. If the cfsetispeed functions
+ is called with the SPEED argument set to zero this means use the same
+ speed as for output. But we don't have independent input and output
+ speeds and therefore cannot record this.
+
+ We use an unused bit in the `c_iflag' field to keep track of this
+ use of `cfsetispeed'. The value here must correspond to the one used
+ in `speed.c'. */
+#define IBAUD0 020000000000
+
+
+/* Set the state of FD to *TERMIOS_P. */
+int
+tcsetattr (int fd, int optional_actions, const struct termios *termios_p)
+{
+ struct __kernel_termios k_termios;
+ unsigned long int cmd;
+
+ switch (optional_actions)
+ {
+ case TCSANOW:
+ cmd = TCSETS;
+ break;
+ case TCSADRAIN:
+ cmd = TCSETSW;
+ break;
+ case TCSAFLUSH:
+ cmd = TCSETSF;
+ break;
+ default:
+ return INLINE_SYSCALL_ERROR_RETURN_VALUE (EINVAL);
+ }
+
+ k_termios.c_iflag = termios_p->c_iflag & ~IBAUD0;
+ k_termios.c_oflag = termios_p->c_oflag;
+ k_termios.c_cflag = termios_p->c_cflag;
+ k_termios.c_lflag = termios_p->c_lflag;
+ k_termios.c_line = termios_p->c_line;
+#if defined _HAVE_C_ISPEED && defined _HAVE_STRUCT_TERMIOS_C_ISPEED
+ k_termios.c_ispeed = termios_p->c_ispeed;
+#endif
+#if defined _HAVE_C_OSPEED && defined _HAVE_STRUCT_TERMIOS_C_OSPEED
+ k_termios.c_ospeed = termios_p->c_ospeed;
+#endif
+ memcpy (&k_termios.c_cc[0], &termios_p->c_cc[0],
+ __KERNEL_NCCS * sizeof (cc_t));
+
+ return INLINE_SYSCALL (ioctl, 3, fd, cmd, &k_termios);
+}
+libc_hidden_def (tcsetattr)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/tcsetpgrp.c b/REORG.TODO/sysdeps/unix/sysv/linux/tcsetpgrp.c
new file mode 100644
index 0000000000..e4d4833901
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/tcsetpgrp.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/bsd/tcsetpgrp.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/tee.c b/REORG.TODO/sysdeps/unix/sysv/linux/tee.c
new file mode 100644
index 0000000000..3d503fb1c9
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/tee.c
@@ -0,0 +1,26 @@
+/* Linux duplicating pipe content implementation.
+ Copyright (C) 2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <fcntl.h>
+#include <sysdep-cancel.h>
+
+ssize_t
+tee (int src, int dest, size_t len, unsigned int flags)
+{
+ return SYSCALL_CANCEL (tee, src, dest, len, flags);
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/termio.h b/REORG.TODO/sysdeps/unix/sysv/linux/termio.h
new file mode 100644
index 0000000000..0e610f0c56
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/termio.h
@@ -0,0 +1,6 @@
+/* Compatible <termio.h> for old `struct termio' ioctl interface.
+ This is obsolete; use the POSIX.1 `struct termios' interface
+ defined in <termios.h> instead. */
+
+#include <termios.h>
+#include <sys/ioctl.h>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/test-errno-linux.c b/REORG.TODO/sysdeps/unix/sysv/linux/test-errno-linux.c
new file mode 100644
index 0000000000..87ed103c99
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/test-errno-linux.c
@@ -0,0 +1,181 @@
+/* Test that failing system calls do set errno to the correct value.
+ Linux sycalls version.
+
+ Copyright (C) 2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <fcntl.h>
+#include <mqueue.h>
+#include <sched.h>
+#include <signal.h>
+#include <stdio.h>
+#include <string.h>
+#include <time.h>
+#include <unistd.h>
+#include <sys/epoll.h>
+#include <sys/eventfd.h>
+#include <sys/file.h>
+#include <sys/fsuid.h>
+#include <sys/inotify.h>
+#include <sys/mman.h>
+#include <sys/poll.h>
+#include <sys/quota.h>
+#include <sys/resource.h>
+#include <sys/select.h>
+#include <sys/sendfile.h>
+#include <sys/swap.h>
+#include <sys/time.h>
+#include <sys/types.h>
+#include <sys/wait.h>
+
+/* This is not an exhaustive test: only system calls that can be
+ persuaded to fail with a consistent error code and no side effects
+ are included. Usually these are failures due to invalid arguments,
+ with errno code EBADF or EINVAL. The order of argument checks is
+ unspecified, so we must take care to provide arguments that only
+ allow _one_ failure mode.
+
+ Note that all system calls that can fail with EFAULT are permitted
+ to deliver a SIGSEGV signal instead, so we avoid supplying invalid
+ pointers in general, and we do not attempt to test system calls
+ that can only fail with EFAULT (e.g. gettimeofday, gethostname).
+
+ Also note that root-only system calls (e.g. acct, reboot) may, when
+ the test is run as an unprivileged user, fail due to insufficient
+ privileges before bothering to do argument checks, so those are not
+ tested either.
+
+ Also, system calls that take enum or a set of flags as argument is
+ not tested if POSIX doesn't specify exact binary values for all
+ flags, and so any value passed to flags may become valid.
+
+ Some tests assume "/bin/sh" names a file that exists and is not a
+ directory. */
+
+#define test_wrp_rv(rtype, prtype, experr, syscall, ...) \
+ (__extension__ ({ \
+ errno = 0xdead; \
+ rtype ret = syscall (__VA_ARGS__); \
+ int err = errno; \
+ int fail; \
+ if ((ret == (rtype) -1) && (err == experr)) \
+ fail = 0; \
+ else \
+ { \
+ fail = 1; \
+ if (ret != (rtype) -1) \
+ printf ("FAIL: " #syscall ": didn't fail as expected" \
+ " (return "prtype")\n", ret); \
+ else if (err == 0xdead) \
+ puts ("FAIL: " #syscall ": didn't update errno"); \
+ else if (err != experr) \
+ printf ("FAIL: " #syscall \
+ ": errno is: %d (%s) expected: %d (%s)\n", \
+ err, strerror (err), experr, strerror (experr));\
+ } \
+ fail; \
+ }))
+
+#define test_wrp_rv2(rtype, prtype, experr1, experr2, syscall, ...) \
+ (__extension__ ({ \
+ errno = 0xdead; \
+ rtype ret = syscall (__VA_ARGS__); \
+ int err = errno; \
+ int fail; \
+ if ((ret == (rtype) -1) && ((err == experr1) || (err == experr2))) \
+ fail = 0; \
+ else \
+ { \
+ fail = 1; \
+ if (ret != (rtype) -1) \
+ printf ("FAIL: " #syscall ": didn't fail as expected" \
+ " (return "prtype")\n", ret); \
+ else if (err == 0xdead) \
+ puts ("FAIL: " #syscall ": didn't update errno"); \
+ else if (err != experr1 && err != experr2) \
+ printf ("FAIL: " #syscall \
+ ": errno is: %d (%s) expected: %d (%s) or %d (%s)\n", \
+ err, strerror (err), experr1, strerror (experr1), \
+ experr2, strerror (experr2)); \
+ } \
+ fail; \
+ }))
+
+#define test_wrp(experr, syscall, ...) \
+ test_wrp_rv(int, "%d", experr, syscall, __VA_ARGS__)
+
+#define test_wrp2(experr1, experr2, syscall, ...) \
+ test_wrp_rv2(int, "%d", experr1, experr2, syscall, __VA_ARGS__)
+
+static int
+do_test (void)
+{
+ fd_set rs, ws, es;
+ int status;
+ off_t off;
+ stack_t ss;
+ struct dqblk dqblk;
+ struct epoll_event epoll_event;
+ struct pollfd pollfd;
+ struct sched_param sch_param;
+ struct timespec ts;
+ struct timeval tv;
+ unsigned char vec[16];
+ ss.ss_flags = ~SS_DISABLE;
+ ts.tv_sec = -1;
+
+ int fails = 0;
+ fails |= test_wrp (EINVAL, epoll_create, -1);
+ fails |= test_wrp (EINVAL, epoll_create1, EPOLL_CLOEXEC + 1);
+ fails |= test_wrp (EBADF, epoll_ctl, -1, EPOLL_CTL_ADD, 0, &epoll_event);
+ fails |= test_wrp (EBADF, epoll_wait, -1, &epoll_event, 1, 1);
+ fails |= test_wrp (EBADF, fdatasync, -1);
+ fails |= test_wrp (EBADF, flock, -1, LOCK_SH);
+ fails |= test_wrp (ESRCH, getpgid, -1);
+ /* Linux v3.8 (676a0675c) removed the test to check at least one valid
+ bit in flags (to return EINVAL). It was later added back in v3.9
+ (04df32fa1). */
+ fails |= test_wrp2 (EINVAL, EBADF, inotify_add_watch, -1, "/", 0);
+ fails |= test_wrp (EINVAL, mincore, (void *) -1, 0, vec);
+ /* mlock fails if the result of the addition addr+len was less than addr
+ (which indicates final address overflow), however on 32 bits binaries
+ running on 64 bits kernels, internal syscall address check won't result
+ in an invalid address and thus syscalls fails later in vma
+ allocation. */
+ fails |= test_wrp2 (EINVAL, ENOMEM, mlock, (void *) -1, 1);
+ fails |= test_wrp (EINVAL, nanosleep, &ts, &ts);
+ fails |= test_wrp (EINVAL, poll, &pollfd, -1, 0);
+ /* quotactl returns ENOSYS for kernels not configured with CONFIG_QUOTA. */
+ fails |= test_wrp2 (ENODEV, ENOSYS, quotactl, Q_GETINFO, NULL, -1,
+ (caddr_t) &dqblk);
+ fails |= test_wrp (EINVAL, sched_getparam, -1, &sch_param);
+ fails |= test_wrp (EINVAL, sched_getscheduler, -1);
+ fails |= test_wrp (EINVAL, sched_get_priority_max, -1);
+ fails |= test_wrp (EINVAL, sched_get_priority_min, -1);
+ fails |= test_wrp (EINVAL, sched_rr_get_interval, -1, &ts);
+ fails |= test_wrp (EINVAL, sched_setparam, -1, &sch_param);
+ fails |= test_wrp (EINVAL, sched_setscheduler, -1, 0, &sch_param);
+ fails |= test_wrp (EINVAL, select, -1, &rs, &ws, &es, &tv);
+ fails |= test_wrp (EBADF, sendfile, -1, -1, &off, 0);
+ fails |= test_wrp (EINVAL, sigaltstack, &ss, NULL);
+ fails |= test_wrp (ECHILD, wait4, -1, &status, 0, NULL);
+
+ return fails;
+}
+
+#include "support/test-driver.c"
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/tile/Implies b/REORG.TODO/sysdeps/unix/sysv/linux/tile/Implies
new file mode 100644
index 0000000000..e050152859
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/tile/Implies
@@ -0,0 +1 @@
+tile/nptl
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/tile/Makefile b/REORG.TODO/sysdeps/unix/sysv/linux/tile/Makefile
new file mode 100644
index 0000000000..04605a69ac
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/tile/Makefile
@@ -0,0 +1,28 @@
+ifeq ($(subdir),misc)
+
+# <sys/reg.h> provides something like x86 compatibility.
+# New code should probably use <arch/abi.h> instead.
+sysdep_headers += sys/reg.h
+
+# MIPS-style cacheflush routine
+sysdep_headers += sys/cachectl.h
+sysdep_routines += cacheflush
+
+# Control dataplane properties of current thread (compatibility only).
+sysdep_routines += set_dataplane
+
+endif
+
+ifeq ($(subdir),elf)
+sysdep_routines += dl-vdso
+ifeq ($(build-shared),yes)
+# This is needed for DSO loading from static binaries.
+sysdep-dl-routines += dl-static
+endif
+endif
+
+ifeq ($(subdir),nptl)
+# pull in __syscall_error routine
+libpthread-routines += sysdep
+libpthread-shared-only-routines += sysdep
+endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/tile/Versions b/REORG.TODO/sysdeps/unix/sysv/linux/tile/Versions
new file mode 100644
index 0000000000..13da68fa79
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/tile/Versions
@@ -0,0 +1,18 @@
+ld {
+ GLIBC_PRIVATE {
+ # used for loading by static libraries
+ _dl_var_init;
+ }
+}
+libc {
+ GLIBC_2.12 {
+ _flush_cache;
+ cacheflush;
+ fallocate64;
+ set_dataplane;
+ }
+ GLIBC_PRIVATE {
+ __syscall_error;
+ __vdso_clock_gettime;
+ }
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/tile/arch-fork.h b/REORG.TODO/sysdeps/unix/sysv/linux/tile/arch-fork.h
new file mode 100644
index 0000000000..6952305d5a
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/tile/arch-fork.h
@@ -0,0 +1,29 @@
+/* ARCH_FORK definition for Linux fork implementation. Tile* version.
+ Copyright (C) 2011-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
+ Based on work contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sched.h>
+#include <signal.h>
+#include <sysdep.h>
+#include <tls.h>
+
+#define ARCH_FORK() \
+ INLINE_SYSCALL (clone, 4, \
+ CLONE_CHILD_SETTID | CLONE_CHILD_CLEARTID | SIGCHLD, \
+ 0, NULL, &THREAD_SELF->tid)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/tile/bits/environments.h b/REORG.TODO/sysdeps/unix/sysv/linux/tile/bits/environments.h
new file mode 100644
index 0000000000..67cfc846ca
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/tile/bits/environments.h
@@ -0,0 +1,100 @@
+/* Copyright (C) 2011-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
+
+ 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 _UNISTD_H
+# error "Never include this file directly. Use <unistd.h> instead"
+#endif
+
+#include <bits/wordsize.h>
+
+/* This header should define the following symbols under the described
+ situations. A value `1' means that the model is always supported,
+ `-1' means it is never supported. Undefined means it cannot be
+ statically decided.
+
+ _POSIX_V7_ILP32_OFF32 32bit int, long, pointers, and off_t type
+ _POSIX_V7_ILP32_OFFBIG 32bit int, long, and pointers and larger off_t type
+
+ _POSIX_V7_LP64_OFF32 64bit long and pointers and 32bit off_t type
+ _POSIX_V7_LPBIG_OFFBIG 64bit long and pointers and large off_t type
+
+ The macros _POSIX_V6_ILP32_OFF32, _POSIX_V6_ILP32_OFFBIG,
+ _POSIX_V6_LP64_OFF32, _POSIX_V6_LPBIG_OFFBIG, _XBS5_ILP32_OFF32,
+ _XBS5_ILP32_OFFBIG, _XBS5_LP64_OFF32, and _XBS5_LPBIG_OFFBIG were
+ used in previous versions of the Unix standard and are available
+ only for compatibility.
+*/
+
+#if __WORDSIZE == 64
+
+/* Environments with 32-bit wide pointers are optionally provided.
+ Therefore following macros aren't defined:
+ # undef _POSIX_V7_ILP32_OFF32
+ # undef _POSIX_V7_ILP32_OFFBIG
+ # undef _POSIX_V6_ILP32_OFF32
+ # undef _POSIX_V6_ILP32_OFFBIG
+ # undef _XBS5_ILP32_OFF32
+ # undef _XBS5_ILP32_OFFBIG
+ and users need to check at runtime. */
+
+/* We also have no use (for now) for an environment with bigger pointers
+ and offsets. */
+# define _POSIX_V7_LPBIG_OFFBIG -1
+# define _POSIX_V6_LPBIG_OFFBIG -1
+# define _XBS5_LPBIG_OFFBIG -1
+
+/* By default we have 64-bit wide `long int', pointers and `off_t'. */
+# define _POSIX_V7_LP64_OFF64 1
+# define _POSIX_V6_LP64_OFF64 1
+# define _XBS5_LP64_OFF64 1
+
+#else /* __WORDSIZE == 32 */
+
+/* By default we have 32-bit wide `int', `long int', pointers and `off_t'
+ and all platforms support LFS. */
+# define _POSIX_V7_ILP32_OFF32 1
+# define _POSIX_V7_ILP32_OFFBIG 1
+# define _POSIX_V6_ILP32_OFF32 1
+# define _POSIX_V6_ILP32_OFFBIG 1
+# define _XBS5_ILP32_OFF32 1
+# define _XBS5_ILP32_OFFBIG 1
+
+/* We optionally provide an environment with the above size but an 64-bit
+ side `off_t'. Therefore we don't define _POSIX_V7_ILP32_OFFBIG. */
+
+/* Environments with 64-bit wide pointers can be provided,
+ so these macros aren't defined:
+ # undef _POSIX_V7_LP64_OFF64
+ # undef _POSIX_V7_LPBIG_OFFBIG
+ # undef _POSIX_V6_LP64_OFF64
+ # undef _POSIX_V6_LPBIG_OFFBIG
+ # undef _XBS5_LP64_OFF64
+ # undef _XBS5_LPBIG_OFFBIG
+ and sysconf tests for it at runtime. */
+
+#endif /* __WORDSIZE == 32 */
+
+#ifdef __tilegx__
+/* Only TILE-Gx has the ability to choose 32- or 64-bit. */
+#define __ILP32_OFF32_CFLAGS "-m32"
+#define __ILP32_OFFBIG_CFLAGS "-m32 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
+#define __ILP32_OFF32_LDFLAGS "-m32"
+#define __ILP32_OFFBIG_LDFLAGS "-m32"
+#define __LP64_OFF64_CFLAGS "-m64"
+#define __LP64_OFF64_LDFLAGS "-m64"
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/tile/bits/local_lim.h b/REORG.TODO/sysdeps/unix/sysv/linux/tile/bits/local_lim.h
new file mode 100644
index 0000000000..2566bcacad
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/tile/bits/local_lim.h
@@ -0,0 +1,100 @@
+/* Copyright (C) 2011-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+/* The kernel header pollutes the namespace with the NR_OPEN symbol
+ and defines LINK_MAX although filesystems have different maxima. A
+ similar thing is true for OPEN_MAX: the limit can be changed at
+ runtime and therefore the macro must not be defined. Remove this
+ after including the header if necessary. */
+#ifndef NR_OPEN
+# define __undef_NR_OPEN
+#endif
+#ifndef LINK_MAX
+# define __undef_LINK_MAX
+#endif
+#ifndef OPEN_MAX
+# define __undef_OPEN_MAX
+#endif
+#ifndef ARG_MAX
+# define __undef_ARG_MAX
+#endif
+
+/* The kernel sources contain a file with all the needed information. */
+#include <linux/limits.h>
+
+/* Have to remove NR_OPEN? */
+#ifdef __undef_NR_OPEN
+# undef NR_OPEN
+# undef __undef_NR_OPEN
+#endif
+/* Have to remove LINK_MAX? */
+#ifdef __undef_LINK_MAX
+# undef LINK_MAX
+# undef __undef_LINK_MAX
+#endif
+/* Have to remove OPEN_MAX? */
+#ifdef __undef_OPEN_MAX
+# undef OPEN_MAX
+# undef __undef_OPEN_MAX
+#endif
+/* Have to remove ARG_MAX? */
+#ifdef __undef_ARG_MAX
+# undef ARG_MAX
+# undef __undef_ARG_MAX
+#endif
+
+/* The number of data keys per process. */
+#define _POSIX_THREAD_KEYS_MAX 128
+/* This is the value this implementation supports. */
+#define PTHREAD_KEYS_MAX 1024
+
+/* Controlling the iterations of destructors for thread-specific data. */
+#define _POSIX_THREAD_DESTRUCTOR_ITERATIONS 4
+/* Number of iterations this implementation does. */
+#define PTHREAD_DESTRUCTOR_ITERATIONS _POSIX_THREAD_DESTRUCTOR_ITERATIONS
+
+/* The number of threads per process. */
+#define _POSIX_THREAD_THREADS_MAX 64
+/* We have no predefined limit on the number of threads. */
+#undef PTHREAD_THREADS_MAX
+
+/* Maximum amount by which a process can descrease its asynchronous I/O
+ priority level. */
+#define AIO_PRIO_DELTA_MAX 20
+
+/* Minimum size for a thread. At least two pages for systems with 64k
+ pages. */
+#define PTHREAD_STACK_MIN 131072
+
+/* Maximum number of timer expiration overruns. */
+#define DELAYTIMER_MAX 2147483647
+
+/* Maximum tty name length. */
+#define TTY_NAME_MAX 32
+
+/* Maximum login name length. This is arbitrary. */
+#define LOGIN_NAME_MAX 256
+
+/* Maximum host name length. */
+#define HOST_NAME_MAX 64
+
+/* Maximum message queue priority level. */
+#define MQ_PRIO_MAX 32768
+
+/* Maximum value the semaphore can have. */
+#define SEM_VALUE_MAX (2147483647)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/tile/bits/mman.h b/REORG.TODO/sysdeps/unix/sysv/linux/tile/bits/mman.h
new file mode 100644
index 0000000000..6c9148e88c
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/tile/bits/mman.h
@@ -0,0 +1,40 @@
+/* Copyright (C) 2011-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_MMAN_H
+# error "Never use <bits/mman.h> directly; include <sys/mman.h> instead."
+#endif
+
+/* The following definitions basically come from the kernel headers.
+ But the kernel header is not namespace clean. */
+
+#ifdef __USE_MISC
+/* These are Linux-specific. */
+# define MAP_NONBLOCK 0x00080 /* Do not block on IO. */
+# define MAP_GROWSDOWN 0x00100 /* Stack-like segment. */
+# define MAP_STACK MAP_GROWSDOWN /* Provide convenience alias. */
+# define MAP_LOCKED 0x00200 /* Lock the mapping. */
+# define MAP_NORESERVE 0x00400 /* Don't check for reservations. */
+# define MAP_DENYWRITE 0x00800 /* ETXTBSY */
+# define MAP_EXECUTABLE 0x01000 /* Mark it as an executable. */
+# define MAP_POPULATE 0x00040 /* Populate (prefault) pagetables. */
+# define MAP_HUGETLB 0x04000 /* Create huge page mapping. */
+#endif
+
+/* Include generic Linux declarations. */
+#include <bits/mman-linux.h>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/tile/bits/sigaction.h b/REORG.TODO/sysdeps/unix/sysv/linux/tile/bits/sigaction.h
new file mode 100644
index 0000000000..5a9ae2888a
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/tile/bits/sigaction.h
@@ -0,0 +1,77 @@
+/* Copyright (C) 2011-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SIGNAL_H
+# error "Never include <bits/sigaction.h> directly; use <signal.h> instead."
+#endif
+
+/* Structure describing the action to be taken when a signal arrives. */
+struct sigaction
+ {
+ /* Signal handler. */
+#ifdef __USE_POSIX199309
+ union
+ {
+ /* Used if SA_SIGINFO is not set. */
+ __sighandler_t sa_handler;
+ /* Used if SA_SIGINFO is set. */
+ void (*sa_sigaction) (int, siginfo_t *, void *);
+ }
+ __sigaction_handler;
+# define sa_handler __sigaction_handler.sa_handler
+# define sa_sigaction __sigaction_handler.sa_sigaction
+#else
+ __sighandler_t sa_handler;
+#endif
+
+ /* Additional set of signals to be blocked. */
+ __sigset_t sa_mask;
+
+ /* Special flags. */
+ int sa_flags;
+
+ /* Restore handler. */
+ void (*sa_restorer) (void);
+ };
+
+/* Bits in `sa_flags'. */
+#define SA_NOCLDSTOP 1 /* Don't send SIGCHLD when children stop. */
+#define SA_NOCLDWAIT 2 /* Don't create zombie on child death. */
+#define SA_SIGINFO 4 /* Invoke signal-catching function with
+ three arguments instead of one. */
+#if defined __USE_UNIX98 || defined __USE_MISC
+# define SA_NOPTRACE 0x02000000 /* Don't ptrace this signal. */
+# define SA_ONSTACK 0x08000000 /* Use signal stack by using `sa_restorer'. */
+# define SA_RESTART 0x10000000 /* Restart syscall on signal return. */
+# define SA_NODEFER 0x40000000 /* Don't automatically block the signal when
+ its handler is being executed. */
+# define SA_RESETHAND 0x80000000 /* Reset to SIG_DFL on entry to handler. */
+#endif
+#ifdef __USE_MISC
+# define SA_INTERRUPT 0x20000000 /* Historical no-op. */
+
+/* Some aliases for the SA_ constants. */
+# define SA_NOMASK SA_NODEFER
+# define SA_ONESHOT SA_RESETHAND
+# define SA_STACK SA_ONSTACK
+#endif
+
+/* Values for the HOW argument to `sigprocmask'. */
+#define SIG_BLOCK 0 /* Block signals. */
+#define SIG_UNBLOCK 1 /* Unblock signals. */
+#define SIG_SETMASK 2 /* Set the set of blocked signals. */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/tile/bits/siginfo-arch.h b/REORG.TODO/sysdeps/unix/sysv/linux/tile/bits/siginfo-arch.h
new file mode 100644
index 0000000000..7d0c24c84b
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/tile/bits/siginfo-arch.h
@@ -0,0 +1,10 @@
+/* Architecture-specific adjustments to siginfo_t. Tile version. */
+#ifndef _BITS_SIGINFO_ARCH_H
+#define _BITS_SIGINFO_ARCH_H 1
+
+#define __SI_SIGFAULT_ADDL \
+ int _si_trapno;
+
+#define si_trapno _sifields._sigfault._si_trapno
+
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/tile/bits/siginfo-consts-arch.h b/REORG.TODO/sysdeps/unix/sysv/linux/tile/bits/siginfo-consts-arch.h
new file mode 100644
index 0000000000..2e76d2082a
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/tile/bits/siginfo-consts-arch.h
@@ -0,0 +1,14 @@
+/* Architecture-specific additional siginfo constants. Tile version. */
+#ifndef _BITS_SIGINFO_CONSTS_ARCH_H
+#define _BITS_SIGINFO_CONSTS_ARCH_H 1
+
+/* `si_code' values for SIGILL signal. */
+enum
+{
+ ILL_DBLFLT = ILL_BADSTK + 1, /* Double fault. */
+#define ILL_DBLFLT ILL_DBLFLT
+ ILL_HARDWALL /* User networks hardwall violation. */
+#define ILL_HARDWALL ILL_HARDWALL
+};
+
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/tile/cacheflush.c b/REORG.TODO/sysdeps/unix/sysv/linux/tile/cacheflush.c
new file mode 100644
index 0000000000..c96077011d
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/tile/cacheflush.c
@@ -0,0 +1,34 @@
+/* Copyright (C) 2011-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
+
+ 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 <stddef.h>
+#include <unistd.h>
+
+/* Flush cache(s). */
+int
+_flush_cache (char *addr, const int nbytes, const int op)
+{
+#ifdef __NR_cacheflush
+ return INLINE_SYSCALL (cacheflush, 3, addr, nbytes, op);
+#else
+ __set_errno (ENOSYS);
+ return -1;
+#endif
+}
+weak_alias (_flush_cache, cacheflush)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/tile/clone.S b/REORG.TODO/sysdeps/unix/sysv/linux/tile/clone.S
new file mode 100644
index 0000000000..d7d2a3b968
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/tile/clone.S
@@ -0,0 +1,178 @@
+/* Copyright (C) 2011-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
+
+ 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 it's all over. */
+
+#include <sysdep.h>
+#define _ERRNO_H 1
+#include <bits/errno.h>
+
+#include <asm/unistd.h>
+#include <arch/abi.h>
+#include <tls.h>
+#include <linux/sched.h>
+
+/* What we save where in the stack frame; must include all callee-saves. */
+#define FRAME_NEXT_LR (0 * REGSIZE) /* reserved by ABI; not used here */
+#define FRAME_SP (1 * REGSIZE)
+#define FRAME_R30 (2 * REGSIZE)
+#define FRAME_R31 (3 * REGSIZE)
+#define FRAME_R32 (4 * REGSIZE)
+#define FRAME_SIZE (5 * REGSIZE)
+
+/* int clone(int (*fn)(void *arg), void *child_stack, int flags, void *arg,
+ pid_t *ptid, struct user_desc *tls, pid_t *ctid); */
+
+ .text
+ENTRY (__clone)
+ /* Create a stack frame so we can pass callee-saves to new task. */
+ {
+ move r10, sp
+ ST sp, lr
+ ADDI_PTR sp, sp, -FRAME_SIZE
+ }
+ cfi_offset (lr, 0)
+ cfi_def_cfa_offset (FRAME_SIZE)
+ ADDI_PTR r11, sp, FRAME_SP
+ {
+ ST r11, r10
+ ADDI_PTR r11, sp, FRAME_R30
+ }
+ {
+ ST r11, r30
+ ADDI_PTR r11, sp, FRAME_R31
+ }
+ cfi_offset (r30, FRAME_R30 - FRAME_SIZE)
+ {
+ ST r11, r31
+ ADDI_PTR r11, sp, FRAME_R32
+ }
+ cfi_offset (r31, FRAME_R31 - FRAME_SIZE)
+ ST r11, r32
+ cfi_offset (r32, FRAME_R32 - FRAME_SIZE)
+
+ /* sanity check arguments */
+ BEQZ r0, .Linvalid
+ BEQZ r1, .Linvalid
+
+ /* Make sure child stack is properly aligned, and set up the
+ top frame so that we can call out of it immediately in the
+ child. Setting it up here means we fault in the parent if
+ it's bogus, which is probably cleaner than faulting first
+ thing in the child. */
+ ADDI_PTR r1, r1, -C_ABI_SAVE_AREA_SIZE
+ andi r1, r1, -C_ABI_SAVE_AREA_SIZE
+ ADDI_PTR r9, r1, REGSIZE /* sp of this frame on entry, i.e. zero */
+ ST r9, zero
+
+ /* We need to switch the argument convention around from
+ libc to kernel:
+
+ libc:
+ r0 fn
+ r1 child_stack
+ r2 flags
+ r3 arg
+ r4 ptid
+ r5 tls
+ r6 ctid
+
+ kernel:
+ r0 flags
+ r1 child_stack [same as libc]
+ r2 ptid
+ r3 ctid
+ r4 tls
+
+ Plus the callee-saves as described at .Lthread_start, below. */
+ {
+ move r32, r0
+ move r0, r2
+ }
+ {
+ move r31, r3
+ move r3, r6
+ }
+ {
+ move r30, r2
+ move r2, r4
+ }
+ {
+ move r4, r5
+ moveli TREG_SYSCALL_NR_NAME, __NR_clone
+ }
+ swint1
+ BEQZ r0, .Lthread_start /* If in child task. */
+
+.Ldone:
+ /* Restore the callee-saved registers and return. */
+ ADDLI_PTR lr, sp, FRAME_SIZE
+ {
+ LD lr, lr
+ ADDLI_PTR r30, sp, FRAME_R30
+ }
+ {
+ LD r30, r30
+ ADDLI_PTR r31, sp, FRAME_R31
+ }
+ {
+ LD r31, r31
+ ADDLI_PTR r32, sp, FRAME_R32
+ }
+ {
+ LD r32, r32
+ ADDI_PTR sp, sp, FRAME_SIZE
+ }
+ cfi_def_cfa_offset (0)
+
+ BNEZ r1, .Lerror
+ jrp lr
+
+.Lerror:
+ j SYSCALL_ERROR_NAME
+
+.Linvalid:
+ {
+ movei r1, EINVAL
+ j .Ldone
+ }
+
+/* This function expects to receive:
+
+ sp: the top of a valid stack area
+ r30: clone() flags
+ r31: the argument to pass to the user function
+ r32: the user function pointer */
+
+.Lthread_start:
+ cfi_def_cfa_offset (FRAME_SIZE)
+ cfi_undefined (lr)
+ {
+ /* Invoke user function with specified argument. */
+ move r0, r31
+ jalr r32
+ }
+ {
+ j HIDDEN_JUMPTARGET(_exit)
+ info INFO_OP_CANNOT_BACKTRACE /* Notify backtracer to stop. */
+ }
+PSEUDO_END (__clone)
+
+libc_hidden_def (__clone)
+weak_alias (__clone, clone)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/tile/dl-static.c b/REORG.TODO/sysdeps/unix/sysv/linux/tile/dl-static.c
new file mode 100644
index 0000000000..09792b701a
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/tile/dl-static.c
@@ -0,0 +1,84 @@
+/* Variable initialization. Tile version.
+ Copyright (C) 2001-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <ldsodefs.h>
+
+#ifdef SHARED
+
+void
+_dl_var_init (void *array[])
+{
+ /* It has to match "variables" below. */
+ enum
+ {
+ DL_PAGESIZE = 0
+ };
+
+ GLRO(dl_pagesize) = *((size_t *) array[DL_PAGESIZE]);
+}
+
+#else
+
+static void *variables[] =
+{
+ &GLRO(dl_pagesize)
+};
+
+static void
+_dl_unprotect_relro (struct link_map *l)
+{
+ ElfW(Addr) start = ((l->l_addr + l->l_relro_addr)
+ & ~(GLRO(dl_pagesize) - 1));
+ ElfW(Addr) end = ((l->l_addr + l->l_relro_addr + l->l_relro_size)
+ & ~(GLRO(dl_pagesize) - 1));
+
+ if (start != end)
+ __mprotect ((void *) start, end - start, PROT_READ | PROT_WRITE);
+}
+
+void
+_dl_static_init (struct link_map *l)
+{
+ struct link_map *rtld_map = l;
+ struct r_scope_elem **scope;
+ const ElfW(Sym) *ref = NULL;
+ lookup_t loadbase;
+ void (*f) (void *[]);
+ size_t i;
+
+ loadbase = _dl_lookup_symbol_x ("_dl_var_init", l, &ref, l->l_local_scope,
+ NULL, 0, 1, NULL);
+
+ for (scope = l->l_local_scope; *scope != NULL; scope++)
+ for (i = 0; i < (*scope)->r_nlist; i++)
+ if ((*scope)->r_list[i] == loadbase)
+ {
+ rtld_map = (*scope)->r_list[i];
+ break;
+ }
+
+ if (ref != NULL)
+ {
+ f = (void (*) (void *[])) DL_SYMBOL_ADDRESS (loadbase, ref);
+ _dl_unprotect_relro (rtld_map);
+ f (variables);
+ _dl_protect_relro (rtld_map);
+ }
+}
+
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/tile/getcontext.S b/REORG.TODO/sysdeps/unix/sysv/linux/tile/getcontext.S
new file mode 100644
index 0000000000..e7561ea798
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/tile/getcontext.S
@@ -0,0 +1,95 @@
+/* Copyright (C) 2011-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
+
+ 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 <arch/abi.h>
+
+#include "ucontext_i.h"
+
+/* int getcontext (ucontext_t *ucp) */
+
+ .text
+ENTRY (__getcontext)
+ FEEDBACK_ENTER(__getcontext)
+
+ /* Save the callee-saved GPRs. There's no need to save the
+ caller-saved GPRs since the eventual setcontext() or
+ swapcontext() will assume those registers are all dead.
+ Save value "1" to uc_flags to later recognize getcontext(). */
+ { movei r11, 1; ADDI_PTR r10, r0, UC_FLAGS_OFFSET }
+ { ST_PTR r10, r11; addli r10, r0, UC_REG(30) }
+ { ST r10, r30; ADDI_PTR r10, r10, REGSIZE }
+ { ST r10, r31; ADDI_PTR r10, r10, REGSIZE }
+ { ST r10, r32; ADDI_PTR r10, r10, REGSIZE }
+ { ST r10, r33; ADDI_PTR r10, r10, REGSIZE }
+ { ST r10, r34; ADDI_PTR r10, r10, REGSIZE }
+ { ST r10, r35; ADDI_PTR r10, r10, REGSIZE }
+ { ST r10, r36; ADDI_PTR r10, r10, REGSIZE }
+ { ST r10, r37; ADDI_PTR r10, r10, REGSIZE }
+ { ST r10, r38; ADDI_PTR r10, r10, REGSIZE }
+ { ST r10, r39; ADDI_PTR r10, r10, REGSIZE }
+ { ST r10, r40; ADDI_PTR r10, r10, REGSIZE }
+ { ST r10, r41; ADDI_PTR r10, r10, REGSIZE }
+ { ST r10, r42; ADDI_PTR r10, r10, REGSIZE }
+ { ST r10, r43; ADDI_PTR r10, r10, REGSIZE }
+ { ST r10, r44; ADDI_PTR r10, r10, REGSIZE }
+ { ST r10, r45; ADDI_PTR r10, r10, REGSIZE }
+ { ST r10, r46; ADDI_PTR r10, r10, REGSIZE }
+ { ST r10, r47; ADDI_PTR r10, r10, REGSIZE }
+ { ST r10, r48; ADDI_PTR r10, r10, REGSIZE }
+ { ST r10, r49; ADDI_PTR r10, r10, REGSIZE }
+ { ST r10, r50; ADDI_PTR r10, r10, REGSIZE }
+ { ST r10, r51; ADDI_PTR r10, r10, REGSIZE }
+ { ST r10, r52; ADDI_PTR r10, r10, REGSIZE }
+ { ST r10, tp; ADDI_PTR r10, r10, REGSIZE }
+ { ST r10, sp; ADDI_PTR r10, r10, REGSIZE }
+ { ST r10, lr; ADDI_PTR r10, r10, REGSIZE }
+ lnk r11 /* Point PC at the "jrp lr" instruction. */
+ addli r11, r11, .Lreturn - .
+ { ST r10, r11; ADDI_PTR r10, r10, REGSIZE }
+ mfspr r11, INTERRUPT_CRITICAL_SECTION
+ {
+ ST r10, r11
+ movei r1, 0
+ }
+
+ /* rt_sigprocmask (SIG_BLOCK, NULL, &ucp->uc_sigmask, _NSIG / 8) */
+ {
+ movei r3, _NSIG / 8
+ addli r2, r0, UC_SIGMASK_OFFSET
+ }
+ {
+ movei r0, SIG_BLOCK
+ moveli TREG_SYSCALL_NR_NAME, __NR_rt_sigprocmask
+ }
+ swint1
+ BNEZ r1, .Lsyscall_error
+
+.Lreturn:
+ {
+ movei r0, 0
+ jrp lr
+ }
+
+.Lsyscall_error:
+ j SYSCALL_ERROR_NAME
+
+END (__getcontext)
+.hidden __getcontext
+
+weak_alias (__getcontext, getcontext)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/tile/init-first.c b/REORG.TODO/sysdeps/unix/sysv/linux/tile/init-first.c
new file mode 100644
index 0000000000..8def5c4257
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/tile/init-first.c
@@ -0,0 +1,48 @@
+/* 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/>. */
+
+#ifdef SHARED
+#include <dl-vdso.h>
+#include <libc-vdso.h>
+
+struct syscall_return_value (*VDSO_SYMBOL(gettimeofday)) (struct timeval *,
+ void *)
+ attribute_hidden;
+
+struct syscall_return_value (*VDSO_SYMBOL(clock_gettime)) (clockid_t,
+ struct timespec *)
+ __attribute__ ((nocommon));
+
+
+static inline void
+_libc_vdso_platform_setup (void)
+{
+ PREPARE_VERSION (linux26, "LINUX_2.6", 61765110);
+
+ void *p = _dl_vdso_vsym ("__vdso_gettimeofday", &linux26);
+ PTR_MANGLE (p);
+ VDSO_SYMBOL (gettimeofday) = p;
+
+ p = _dl_vdso_vsym ("__vdso_clock_gettime", &linux26);
+ PTR_MANGLE (p);
+ VDSO_SYMBOL (clock_gettime) = p;
+}
+
+#define VDSO_SETUP _libc_vdso_platform_setup
+#endif
+
+#include <csu/init-first.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/tile/ipc_priv.h b/REORG.TODO/sysdeps/unix/sysv/linux/tile/ipc_priv.h
new file mode 100644
index 0000000000..476dc188e4
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/tile/ipc_priv.h
@@ -0,0 +1,21 @@
+/* Old SysV permission definition for Linux. Tile version.
+ Copyright (C) 2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sys/ipc.h> /* For __key_t */
+
+#define __IPC_64 0x0
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/tile/kernel-features.h b/REORG.TODO/sysdeps/unix/sysv/linux/tile/kernel-features.h
new file mode 100644
index 0000000000..d7d0915283
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/tile/kernel-features.h
@@ -0,0 +1,27 @@
+/* Copyright (C) 2011-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
+
+ 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_next <kernel-features.h>
+
+/* Define this if your 32-bit syscall API requires 64-bit register
+ pairs to start with an even-number register. */
+#ifndef _LP64
+# define __ASSUME_ALIGNED_REGISTER_PAIRS 1
+# define __ASSUME_FADVISE64_64_NO_ALIGN 1
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/tile/ldsodefs.h b/REORG.TODO/sysdeps/unix/sysv/linux/tile/ldsodefs.h
new file mode 100644
index 0000000000..74ce6aa797
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/tile/ldsodefs.h
@@ -0,0 +1,32 @@
+/* Run-time dynamic linker data structures for loaded ELF shared objects. Tile.
+ Copyright (C) 2001-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _LDSODEFS_H
+
+/* Get the real definitions. */
+#include_next <ldsodefs.h>
+
+/* Now define our stuff. */
+
+/* We need special support to initialize DSO loaded for statically linked
+ binaries. */
+extern void _dl_static_init (struct link_map *map);
+#undef DL_STATIC_INIT
+#define DL_STATIC_INIT(map) _dl_static_init (map)
+
+#endif /* ldsodefs.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/tile/libc-vdso.h b/REORG.TODO/sysdeps/unix/sysv/linux/tile/libc-vdso.h
new file mode 100644
index 0000000000..8df48aa087
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/tile/libc-vdso.h
@@ -0,0 +1,42 @@
+/* Resolve function pointers to VDSO functions.
+ Copyright (C) 2012-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+
+#ifndef _LIBC_VDSO_H
+#define _LIBC_VDSO_H
+
+#ifdef SHARED
+
+#include <sysdep-vdso.h>
+
+struct syscall_return_value
+{
+ long int value;
+ long int error;
+};
+
+extern struct syscall_return_value (*VDSO_SYMBOL (gettimeofday)) (struct
+ timeval *,
+ void *)
+ attribute_hidden;
+
+extern struct syscall_return_value (*VDSO_SYMBOL (clock_gettime)) (clockid_t,
+ struct
+ timespec *);
+#endif
+#endif /* _LIBC_VDSO_H */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/tile/makecontext.c b/REORG.TODO/sysdeps/unix/sysv/linux/tile/makecontext.c
new file mode 100644
index 0000000000..26e4d426ef
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/tile/makecontext.c
@@ -0,0 +1,67 @@
+/* Copyright (C) 2011-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <stdarg.h>
+#include <stdio.h>
+#include <stdint.h>
+#include <stdlib.h>
+#include <ucontext.h>
+#include <arch/abi.h>
+
+void
+__makecontext (ucontext_t *ucp, void (*func) (void), int argc, ...)
+{
+ extern void __startcontext (void);
+ uint_reg_t *sp, *args;
+ va_list ap;
+ int i;
+
+ /* Initialize the top of stack. */
+ sp = (uint_reg_t *) ((((intptr_t) ucp->uc_stack.ss_sp
+ + ucp->uc_stack.ss_size) & -16L) - 16);
+
+ /* Allow room for memory-passed arguments if necessary. */
+ if (argc > 10)
+ sp -= 2 + (argc - 10);
+
+ sp[0] = sp[1] = 0;
+
+ /* Set parameters. */
+ va_start (ap, argc);
+ args = &ucp->uc_mcontext.gregs[0];
+ for (i = 0; i < argc; i++)
+ {
+ if (i == 10)
+ args = &sp[2];
+ *args++ = va_arg (ap, long);
+ }
+ va_end (ap);
+
+ /* Start in the trampoline. */
+ ucp->uc_mcontext.pc = (long) __startcontext;
+
+ /* Set stack pointer. */
+ ucp->uc_mcontext.sp = (long) sp;
+
+ /* Pass FUNC to __startcontext in r31. */
+ ucp->uc_mcontext.gregs[31] = (long) func;
+
+ /* Pass ucp->uc_link to __startcontext in r30. */
+ ucp->uc_mcontext.gregs[30] = (long) ucp->uc_link;
+}
+weak_alias (__makecontext, makecontext)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/tile/profil-counter.h b/REORG.TODO/sysdeps/unix/sysv/linux/tile/profil-counter.h
new file mode 100644
index 0000000000..1633e5d6c5
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/tile/profil-counter.h
@@ -0,0 +1,26 @@
+/* Copyright (C) 2011-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
+
+ 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 *) GET_PC (scp));
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/tile/pt-vfork.c b/REORG.TODO/sysdeps/unix/sysv/linux/tile/pt-vfork.c
new file mode 100644
index 0000000000..5fbc6526aa
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/tile/pt-vfork.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/aarch64/pt-vfork.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/tile/set_dataplane.c b/REORG.TODO/sysdeps/unix/sysv/linux/tile/set_dataplane.c
new file mode 100644
index 0000000000..62e45fbb9f
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/tile/set_dataplane.c
@@ -0,0 +1,39 @@
+/* Copyright (C) 2011-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
+
+ 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 <stddef.h>
+#include <unistd.h>
+#include <shlib-compat.h>
+
+/* Request dataplane modes from the kernel (compatibility only). */
+#if SHLIB_COMPAT (libc, GLIBC_2_12, GLIBC_2_25)
+int
+attribute_compat_text_section
+__old_set_dataplane (int flags)
+{
+#ifdef __NR_set_dataplane
+ return INLINE_SYSCALL (set_dataplane, 1, flags);
+#else
+ __set_errno (ENOSYS);
+ return -1;
+#endif
+}
+
+compat_symbol (libc, __old_set_dataplane, set_dataplane, GLIBC_2_12);
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/tile/setcontext.S b/REORG.TODO/sysdeps/unix/sysv/linux/tile/setcontext.S
new file mode 100644
index 0000000000..8039e7ecc0
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/tile/setcontext.S
@@ -0,0 +1,206 @@
+/* Copyright (C) 2011-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
+
+ 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 <asm/errno.h>
+#include <arch/spr_def.h>
+#include <arch/abi.h>
+
+#include "ucontext_i.h"
+
+/* PL to return to via iret in setcontext */
+#define RETURN_PL 0
+
+/* int setcontext (const ucontext_t *ucp) */
+
+ .text
+ENTRY (__setcontext)
+ FEEDBACK_ENTER(__setcontext)
+
+ /* See if this is a true signal context (flags == 0).
+ If so, restore by invoking rt_sigreturn(). */
+#if UC_FLAGS_OFFSET != 0
+# error "Add offset to r0 prior to load."
+#endif
+ LD_PTR r10, r0
+ {
+ BEQZ r10, .Lsigreturn
+ addi r10, r10, -1 /* Confirm that it has value "1". */
+ }
+ BNEZ r10, .Lbadcontext
+
+ /* Save lr and r0 briefly on the stack and set the signal mask:
+ rt_sigprocmask (SIG_SETMASK, &ucp->uc_sigmask, NULL, _NSIG / 8). */
+ {
+ ST sp, lr
+ ADDI_PTR r11, sp, -(2 * REGSIZE)
+ move r10, sp
+ }
+ ADDI_PTR sp, sp, -(3 * REGSIZE)
+ cfi_def_cfa_offset (3 * REGSIZE)
+ cfi_offset (lr, 0)
+ {
+ ST r11, r10
+ ADDI_PTR r10, sp, (2 * REGSIZE)
+ }
+ {
+ ST r10, r0
+ ADDLI_PTR r1, r0, UC_SIGMASK_OFFSET
+ }
+ cfi_offset (r0, -REGSIZE)
+ {
+ movei r3, _NSIG / 8
+ movei r2, 0
+ }
+ {
+ movei r0, SIG_SETMASK
+ moveli TREG_SYSCALL_NR_NAME, __NR_rt_sigprocmask
+ }
+ swint1
+ ADDI_PTR r11, sp, 2 * REGSIZE /* Restore uc_context to r11. */
+ {
+ LD r11, r11
+ ADDI_PTR sp, sp, 3 * REGSIZE
+ }
+ cfi_def_cfa_offset (0)
+ LD lr, sp
+ {
+ ADDI_PTR r10, r11, UC_REG(0)
+ BNEZ r1, .Lsyscall_error
+ }
+
+ /* Restore the argument registers; note they will be random
+ unless makecontext() has been called. */
+ { LD r0, r10; ADDI_PTR r10, r10, REGSIZE }
+ { LD r1, r10; ADDI_PTR r10, r10, REGSIZE }
+ { LD r2, r10; ADDI_PTR r10, r10, REGSIZE }
+ { LD r3, r10; ADDI_PTR r10, r10, REGSIZE }
+ { LD r4, r10; ADDI_PTR r10, r10, REGSIZE }
+ { LD r5, r10; ADDI_PTR r10, r10, REGSIZE }
+ { LD r6, r10; ADDI_PTR r10, r10, REGSIZE }
+ { LD r7, r10; ADDI_PTR r10, r10, REGSIZE }
+ { LD r8, r10; ADDI_PTR r10, r10, REGSIZE }
+ { LD r9, r10; ADDLI_PTR r10, r10, UC_REG(30) - UC_REG(9) }
+
+ /* Restore the callee-saved GPRs. */
+ { LD r30, r10; ADDI_PTR r10, r10, REGSIZE }
+ { LD r31, r10; ADDI_PTR r10, r10, REGSIZE }
+ { LD r32, r10; ADDI_PTR r10, r10, REGSIZE }
+ { LD r33, r10; ADDI_PTR r10, r10, REGSIZE }
+ { LD r34, r10; ADDI_PTR r10, r10, REGSIZE }
+ { LD r35, r10; ADDI_PTR r10, r10, REGSIZE }
+ { LD r36, r10; ADDI_PTR r10, r10, REGSIZE }
+ { LD r37, r10; ADDI_PTR r10, r10, REGSIZE }
+ { LD r38, r10; ADDI_PTR r10, r10, REGSIZE }
+ { LD r39, r10; ADDI_PTR r10, r10, REGSIZE }
+ { LD r40, r10; ADDI_PTR r10, r10, REGSIZE }
+ { LD r41, r10; ADDI_PTR r10, r10, REGSIZE }
+ { LD r42, r10; ADDI_PTR r10, r10, REGSIZE }
+ { LD r43, r10; ADDI_PTR r10, r10, REGSIZE }
+ { LD r44, r10; ADDI_PTR r10, r10, REGSIZE }
+ { LD r45, r10; ADDI_PTR r10, r10, REGSIZE }
+ { LD r46, r10; ADDI_PTR r10, r10, REGSIZE }
+ { LD r47, r10; ADDI_PTR r10, r10, REGSIZE }
+ { LD r48, r10; ADDI_PTR r10, r10, REGSIZE }
+ { LD r49, r10; ADDI_PTR r10, r10, REGSIZE }
+ { LD r50, r10; ADDI_PTR r10, r10, REGSIZE }
+ { LD r51, r10; ADDI_PTR r10, r10, REGSIZE }
+ { LD r52, r10; ADDI_PTR r10, r10, REGSIZE * 2 }
+ /* Skip tp since it must not change for a given thread. */
+ { LD sp, r10; ADDI_PTR r10, r10, REGSIZE }
+ { LD lr, r10; ADDI_PTR r10, r10, REGSIZE }
+ { LD r11, r10; ADDI_PTR r10, r10, REGSIZE }
+
+ /* Construct an iret context; we set ICS so we can validly load
+ EX_CONTEXT for iret without being interrupted halfway through. */
+ {
+ LD r12, r10
+ movei r13, 1
+ }
+ {
+ mtspr INTERRUPT_CRITICAL_SECTION, r13
+ shli r12, r12, SPR_EX_CONTEXT_0_1__ICS_SHIFT
+ }
+ {
+ mtspr EX_CONTEXT_0_0, r11
+ ori r12, r12, RETURN_PL
+ }
+ mtspr EX_CONTEXT_0_1, r12
+ iret
+ jrp lr /* keep the backtracer happy */
+
+.Lsigreturn:
+ /* This is a context obtained from a signal handler.
+ Perform a full restore by pushing the context
+ passed onto a simulated signal frame on the stack
+ and call the signal return syscall as if a signal
+ handler exited normally. */
+ {
+ ADDLI_PTR sp, sp, -(C_ABI_SAVE_AREA_SIZE + SI_MAX_SIZE + UC_SIZE)
+ ADDLI_PTR r1, sp, -UC_SIZE
+ }
+ cfi_def_cfa_offset (C_ABI_SAVE_AREA_SIZE + SI_MAX_SIZE + UC_SIZE)
+ moveli r2, UC_SIZE / REGSIZE
+0: {
+ LD r10, r0
+ ADDI_PTR r0, r0, REGSIZE
+ }
+ {
+ ST r1, r10
+ ADDI_PTR r1, r1, REGSIZE
+ addi r2, r2, -1
+ }
+ BNEZ r2, 0b
+ moveli TREG_SYSCALL_NR_NAME, __NR_rt_sigreturn
+ swint1
+
+ /* Restore the stack and fall through to the error
+ path. Successful rt_sigreturn never returns to
+ its calling place. */
+ ADDLI_PTR sp, sp, (C_ABI_SAVE_AREA_SIZE + SI_MAX_SIZE + UC_SIZE)
+ cfi_def_cfa_offset (0)
+
+.Lsyscall_error:
+ j SYSCALL_ERROR_NAME
+
+.Lbadcontext:
+ {
+ movei r1, EINVAL
+ j SYSCALL_ERROR_NAME
+ }
+
+END (__setcontext)
+
+.hidden __setcontext
+weak_alias (__setcontext, setcontext)
+
+ENTRY (__startcontext)
+ cfi_undefined (lr)
+ FEEDBACK_ENTER(__startcontext)
+ jalr r31
+ BEQZ r30, 1f
+ {
+ move r0, r30
+ jal __setcontext
+ }
+1: {
+ movei r0, 0
+ j HIDDEN_JUMPTARGET(exit)
+ }
+END (__startcontext)
+.hidden __startcontext
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/tile/shlib-versions b/REORG.TODO/sysdeps/unix/sysv/linux/tile/shlib-versions
new file mode 100644
index 0000000000..b4360d35e1
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/tile/shlib-versions
@@ -0,0 +1,2 @@
+# glibc 2.12 was released to customers; 2.15 was the first community version.
+DEFAULT GLIBC_2.12 GLIBC_2.15
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/tile/sigcontextinfo.h b/REORG.TODO/sysdeps/unix/sysv/linux/tile/sigcontextinfo.h
new file mode 100644
index 0000000000..8908c589d3
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/tile/sigcontextinfo.h
@@ -0,0 +1,27 @@
+/* Copyright (C) 2011-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
+
+ 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 <arch/abi.h>
+
+#define SIGCONTEXT siginfo_t *_si, struct ucontext *
+#define SIGCONTEXT_EXTRA_ARGS _si,
+#define GET_PC(ctx) ((void *) (long) ctx->uc_mcontext.pc)
+#define GET_FRAME(ctx) ((void *) (long) ctx->uc_mcontext.regs[TREG_FP])
+#define GET_STACK(ctx) ((void *) (long) ctx->uc_mcontext.sp)
+#define CALL_SIGHANDLER(handler, signo, ctx) \
+ (handler)((signo), SIGCONTEXT_EXTRA_ARGS (ctx))
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/tile/swapcontext.S b/REORG.TODO/sysdeps/unix/sysv/linux/tile/swapcontext.S
new file mode 100644
index 0000000000..1778dfaa22
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/tile/swapcontext.S
@@ -0,0 +1,89 @@
+/* Copyright (C) 2011-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+
+#include "ucontext_i.h"
+
+/* int swapcontext (ucontext_t *oucp, const ucontext_t *ucp) */
+
+ .text
+ENTRY (__swapcontext)
+ FEEDBACK_ENTER(__swapcontext)
+ /* Set up a frame and save r0 and r1. */
+ {
+ ST sp, lr
+ ADDI_PTR r11, sp, -(3 * REGSIZE)
+ move r10, sp
+ }
+ ADDI_PTR sp, sp, -(4 * REGSIZE)
+ cfi_def_cfa_offset (4 * REGSIZE)
+ cfi_offset (lr, 0)
+ {
+ ST r11, r10
+ ADDI_PTR r10, sp, (2 * REGSIZE)
+ }
+ {
+ ST r10, r0
+ ADDI_PTR r10, sp, (3 * REGSIZE)
+ }
+ ST r10, r1
+
+ /* Save the current context. */
+ jal __getcontext
+
+ /* Tear down the frame and restore r0, r1, and lr. */
+ {
+ BNEZ r0, .Lerror
+ ADDI_PTR r1, sp, 3 * REGSIZE
+ }
+ {
+ LD r1, r1
+ ADDI_PTR r0, sp, 2 * REGSIZE
+ }
+ {
+ LD r0, r0
+ ADDI_PTR sp, sp, 4 * REGSIZE
+ }
+ cfi_def_cfa_offset (0)
+ {
+ LD lr, sp
+ ADDLI_PTR r10, r0, UC_REG(54)
+ }
+
+ /* Update the stored sp and lr. */
+ {
+ ST r10, sp
+ ADDLI_PTR r10, r0, UC_REG(55)
+ }
+ ST r10, lr
+
+ /* Tail-call setcontext to finish up. */
+ {
+ move r0, r1
+ j __setcontext
+ }
+
+.Lerror:
+ ADDI_PTR sp, sp, 4 * REGSIZE
+ cfi_def_cfa_offset (0)
+ LD lr, sp
+ jrp lr
+END (__swapcontext)
+
+weak_alias (__swapcontext, swapcontext)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/tile/sys/cachectl.h b/REORG.TODO/sysdeps/unix/sysv/linux/tile/sys/cachectl.h
new file mode 100644
index 0000000000..3f4e723e24
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/tile/sys/cachectl.h
@@ -0,0 +1,36 @@
+/* Copyright (C) 2011-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_CACHECTL_H
+#define _SYS_CACHECTL_H 1
+
+#include <features.h>
+
+/* Get the kernel definition for the op bits. */
+#include <asm/cachectl.h>
+
+__BEGIN_DECLS
+
+#ifdef __USE_MISC
+extern int cacheflush (void *__addr, const int __nbytes, const int __op) __THROW;
+#endif
+extern int _flush_cache (char *__addr, const int __nbytes, const int __op) __THROW;
+
+__END_DECLS
+
+#endif /* sys/cachectl.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/tile/sys/procfs.h b/REORG.TODO/sysdeps/unix/sysv/linux/tile/sys/procfs.h
new file mode 100644
index 0000000000..ce3e33ddef
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/tile/sys/procfs.h
@@ -0,0 +1,128 @@
+/* Copyright (C) 2011-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_PROCFS_H
+#define _SYS_PROCFS_H 1
+
+/* This is somewhat modelled after the file of the same name on SVR4
+ systems. It provides a definition of the core file format for ELF
+ used on Linux. It doesn't have anything to do with the /proc file
+ system, even though Linux has one.
+
+ Anyway, the whole purpose of this file is for GDB and GDB only.
+ Don't read too much into it. Don't use it for anything other than
+ GDB unless you know what you are doing. */
+
+#include <features.h>
+#include <sys/time.h>
+#include <sys/types.h>
+
+#define __need_int_reg_t
+#include <arch/abi.h>
+
+__BEGIN_DECLS
+
+/* Type for a general-purpose register. */
+typedef __uint_reg_t elf_greg_t;
+
+/* And the whole bunch of them. We could have used `struct pt_regs'
+ from <asm/ptrace.h> directly in the typedef, but tradition says that
+ the register set is an array, which does have some peculiar
+ semantics, so leave it that way. */
+#define ELF_NGREG 64
+#define ELF_NFPREG 0
+typedef elf_greg_t elf_gregset_t[ELF_NGREG];
+typedef elf_greg_t elf_fpregset_t[ELF_NFPREG];
+
+/* Signal info. */
+struct elf_siginfo
+ {
+ int si_signo; /* Signal number. */
+ int si_code; /* Extra code. */
+ int si_errno; /* Errno. */
+ };
+
+
+/* Definitions to generate Intel SVR4-like core files. These mostly
+ have the same names as the SVR4 types with "elf_" tacked on the
+ front to prevent clashes with Linux definitions, and the typedef
+ forms have been avoided. This is mostly like the SVR4 structure,
+ but more Linuxy, with things that Linux does not support and which
+ GDB doesn't really use excluded. */
+
+struct elf_prstatus
+ {
+ struct elf_siginfo pr_info; /* Info associated with signal. */
+ short int pr_cursig; /* Current signal. */
+ unsigned long int pr_sigpend; /* Set of pending signals. */
+ unsigned long int pr_sighold; /* Set of held signals. */
+ __pid_t pr_pid;
+ __pid_t pr_ppid;
+ __pid_t pr_pgrp;
+ __pid_t pr_sid;
+ struct timeval pr_utime; /* User time. */
+ struct timeval pr_stime; /* System time. */
+ struct timeval pr_cutime; /* Cumulative user time. */
+ struct timeval pr_cstime; /* Cumulative system time. */
+ elf_gregset_t pr_reg; /* GP registers. */
+ int pr_fpvalid; /* True if math copro being used. */
+ };
+
+
+#define ELF_PRARGSZ (80) /* Number of chars for args. */
+
+struct elf_prpsinfo
+ {
+ char pr_state; /* Numeric process state. */
+ char pr_sname; /* Char for pr_state. */
+ char pr_zomb; /* Zombie. */
+ char pr_nice; /* Nice val. */
+ unsigned long int pr_flag; /* Flags. */
+ unsigned int pr_uid;
+ unsigned int pr_gid;
+ int pr_pid, pr_ppid, pr_pgrp, pr_sid;
+ /* Lots missing */
+ char pr_fname[16]; /* Filename of executable. */
+ char pr_psargs[ELF_PRARGSZ]; /* Initial part of arg list. */
+ };
+
+
+/* The rest of this file provides the types for emulation of the
+ Solaris <proc_service.h> interfaces that should be implemented by
+ users of libthread_db. */
+
+/* Addresses. */
+typedef void *psaddr_t;
+
+/* Register sets. Linux has different names. */
+typedef elf_gregset_t prgregset_t;
+
+/* Provide dummy declaration here; we don't have FP registers. */
+typedef elf_fpregset_t prfpregset_t;
+
+/* We don't have any differences between processes and threads,
+ therefore have only one PID type. */
+typedef __pid_t lwpid_t;
+
+/* Process status and info. In the end we do provide typedefs for them. */
+typedef struct elf_prstatus prstatus_t;
+typedef struct elf_prpsinfo prpsinfo_t;
+
+__END_DECLS
+
+#endif /* sys/procfs.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/tile/sys/ptrace.h b/REORG.TODO/sysdeps/unix/sysv/linux/tile/sys/ptrace.h
new file mode 100644
index 0000000000..6287e42952
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/tile/sys/ptrace.h
@@ -0,0 +1,196 @@
+/* Copyright (C) 2011-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_PTRACE_H
+#define _SYS_PTRACE_H 1
+
+#include <features.h>
+#include <bits/types.h>
+
+__BEGIN_DECLS
+
+/* Type of the REQUEST argument to `ptrace.' */
+enum __ptrace_request
+{
+ /* Indicate that the process making this request should be traced.
+ All signals received by this process can be intercepted by its
+ parent, and its parent can use the other `ptrace' requests. */
+ PTRACE_TRACEME = 0,
+#define PT_TRACE_ME PTRACE_TRACEME
+
+ /* Return the word in the process's text space at address ADDR. */
+ PTRACE_PEEKTEXT = 1,
+#define PT_READ_I PTRACE_PEEKTEXT
+
+ /* Return the word in the process's data space at address ADDR. */
+ PTRACE_PEEKDATA = 2,
+#define PT_READ_D PTRACE_PEEKDATA
+
+ /* Return the word in the process's user area at offset ADDR. */
+ PTRACE_PEEKUSER = 3,
+#define PT_READ_U PTRACE_PEEKUSER
+
+ /* Write the word DATA into the process's text space at address ADDR. */
+ PTRACE_POKETEXT = 4,
+#define PT_WRITE_I PTRACE_POKETEXT
+
+ /* Write the word DATA into the process's data space at address ADDR. */
+ PTRACE_POKEDATA = 5,
+#define PT_WRITE_D PTRACE_POKEDATA
+
+ /* Write the word DATA into the process's user area at offset ADDR. */
+ PTRACE_POKEUSER = 6,
+#define PT_WRITE_U PTRACE_POKEUSER
+
+ /* Continue the process. */
+ PTRACE_CONT = 7,
+#define PT_CONTINUE PTRACE_CONT
+
+ /* Kill the process. */
+ PTRACE_KILL = 8,
+#define PT_KILL PTRACE_KILL
+
+ /* Single step the process. */
+ PTRACE_SINGLESTEP = 9,
+#define PT_STEP PTRACE_SINGLESTEP
+
+ /* Get all general purpose registers used by a processes. */
+ PTRACE_GETREGS = 12,
+#define PT_GETREGS PTRACE_GETREGS
+
+ /* Set all general purpose registers used by a processes. */
+ PTRACE_SETREGS = 13,
+#define PT_SETREGS PTRACE_SETREGS
+
+ /* Attach to a process that is already running. */
+ PTRACE_ATTACH = 16,
+#define PT_ATTACH PTRACE_ATTACH
+
+ /* Detach from a process attached to with PTRACE_ATTACH. */
+ PTRACE_DETACH = 17,
+#define PT_DETACH PTRACE_DETACH
+
+ /* Continue and stop at the next (return from) syscall. */
+ PTRACE_SYSCALL = 24,
+#define PT_SYSCALL PTRACE_SYSCALL
+
+ /* Set ptrace filter options. */
+ PTRACE_SETOPTIONS = 0x4200,
+#define PT_SETOPTIONS PTRACE_SETOPTIONS
+
+ /* Get last ptrace message. */
+ PTRACE_GETEVENTMSG = 0x4201,
+#define PT_GETEVENTMSG PTRACE_GETEVENTMSG
+
+ /* Get siginfo for process. */
+ PTRACE_GETSIGINFO = 0x4202,
+#define PT_GETSIGINFO PTRACE_GETSIGINFO
+
+ /* Set new siginfo for process. */
+ PTRACE_SETSIGINFO = 0x4203,
+#define PT_SETSIGINFO PTRACE_SETSIGINFO
+
+ /* Set register content. */
+ PTRACE_SETREGSET = 0x4205,
+#define PTRACE_SETREGSET PTRACE_SETREGSET
+
+ /* Like PTRACE_ATTACH, but do not force tracee to trap and do not affect
+ signal or group stop state. */
+ PTRACE_SEIZE = 0x4206,
+#define PTRACE_SEIZE PTRACE_SEIZE
+
+ /* Trap seized tracee. */
+ PTRACE_INTERRUPT = 0x4207,
+#define PTRACE_INTERRUPT PTRACE_INTERRUPT
+
+ /* Wait for next group event. */
+ PTRACE_LISTEN = 0x4208,
+#define PTRACE_LISTEN PTRACE_LISTEN
+
+ PTRACE_PEEKSIGINFO = 0x4209,
+#define PTRACE_PEEKSIGINFO PTRACE_PEEKSIGINFO
+
+ PTRACE_GETSIGMASK = 0x420a,
+#define PTRACE_GETSIGMASK PTRACE_GETSIGMASK
+
+ PTRACE_SETSIGMASK = 0x420b,
+#define PTRACE_SETSIGMASK PTRACE_SETSIGMASK
+
+ PTRACE_SECCOMP_GET_FILTER = 0x420c
+#define PTRACE_SECCOMP_GET_FILTER PTRACE_SECCOMP_GET_FILTER
+};
+
+
+/* Options set using PTRACE_SETOPTIONS. */
+enum __ptrace_setoptions
+{
+ PTRACE_O_TRACESYSGOOD = 0x00000001,
+ PTRACE_O_TRACEFORK = 0x00000002,
+ PTRACE_O_TRACEVFORK = 0x00000004,
+ PTRACE_O_TRACECLONE = 0x00000008,
+ PTRACE_O_TRACEEXEC = 0x00000010,
+ PTRACE_O_TRACEVFORKDONE = 0x00000020,
+ PTRACE_O_TRACEEXIT = 0x00000040,
+ PTRACE_O_TRACESECCOMP = 0x00000080,
+ PTRACE_O_EXITKILL = 0x00100000,
+ PTRACE_O_SUSPEND_SECCOMP = 0x00200000,
+ PTRACE_O_MASK = 0x003000ff
+};
+
+enum __ptrace_eventcodes
+{
+/* Wait extended result codes for the above trace options. */
+ PTRACE_EVENT_FORK = 1,
+ PTRACE_EVENT_VFORK = 2,
+ PTRACE_EVENT_CLONE = 3,
+ PTRACE_EVENT_EXEC = 4,
+ PTRACE_EVENT_VFORK_DONE = 5,
+ PTRACE_EVENT_EXIT = 6,
+ PTRACE_EVENT_SECCOMP = 7,
+/* Extended result codes enabled by means other than options. */
+ PTRACE_EVENT_STOP = 128
+};
+
+/* Arguments for PTRACE_PEEKSIGINFO. */
+struct __ptrace_peeksiginfo_args
+{
+ __uint64_t off; /* From which siginfo to start. */
+ __uint32_t flags; /* Flags for peeksiginfo. */
+ __int32_t nr; /* How many siginfos to take. */
+};
+
+enum __ptrace_peeksiginfo_flags
+{
+ /* Read signals from a shared (process wide) queue. */
+ PTRACE_PEEKSIGINFO_SHARED = (1 << 0)
+};
+
+/* Perform process tracing functions. REQUEST is one of the values
+ above, and determines the action to be taken.
+ For all requests except PTRACE_TRACEME, PID specifies the process to be
+ traced.
+
+ PID and the other arguments described above for the various requests should
+ appear (those that are used for the particular request) as:
+ pid_t PID, void *ADDR, int DATA, void *ADDR2
+ after REQUEST. */
+extern long int ptrace (enum __ptrace_request __request, ...) __THROW;
+
+__END_DECLS
+
+#endif /* _SYS_PTRACE_H */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/tile/sys/reg.h b/REORG.TODO/sysdeps/unix/sysv/linux/tile/sys/reg.h
new file mode 100644
index 0000000000..1ab17ce82a
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/tile/sys/reg.h
@@ -0,0 +1,2 @@
+/* The traditional purpose of "sys/reg.h" is satisfied by "arch/abi.h". */
+#include <arch/abi.h>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/tile/sys/ucontext.h b/REORG.TODO/sysdeps/unix/sysv/linux/tile/sys/ucontext.h
new file mode 100644
index 0000000000..7e5cf4a831
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/tile/sys/ucontext.h
@@ -0,0 +1,72 @@
+/* Copyright (C) 2011-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_UCONTEXT_H
+#define _SYS_UCONTEXT_H 1
+
+#include <features.h>
+
+#include <bits/types/sigset_t.h>
+#include <bits/sigcontext.h>
+#include <bits/types/stack_t.h>
+
+#ifdef __USE_MISC
+/* Get register type and register names. */
+# include <arch/abi.h>
+
+
+/* Type for general register. */
+typedef uint_reg_t greg_t;
+
+/* Number of general registers. Must agree with <asm/ptrace.h>. */
+# define NGREG 64
+
+/* Container for all general registers. */
+typedef greg_t gregset_t[NGREG];
+#endif
+
+#ifdef __USE_GNU
+/* Names for interesting registers in the `gregset_t' array. */
+enum
+{
+ /* ... r0 through r51 are just 0 through 51 ... */
+ REG_FP = TREG_FP,
+# define REG_FP REG_FP
+ REG_TP = TREG_TP,
+# define REG_TP REG_TP
+ REG_SP = TREG_SP,
+# define REG_SP REG_SP
+ REG_LR = TREG_LR,
+# define REG_LR REG_LR
+};
+#endif
+
+/* A machine context is exactly a sigcontext. */
+typedef struct sigcontext mcontext_t;
+
+/* Userlevel context. */
+typedef struct ucontext
+ {
+ unsigned long int uc_flags;
+ struct ucontext *uc_link;
+ stack_t uc_stack;
+ mcontext_t uc_mcontext;
+ sigset_t uc_sigmask;
+ } ucontext_t;
+
+#endif /* sys/ucontext.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/tile/sys/user.h b/REORG.TODO/sysdeps/unix/sysv/linux/tile/sys/user.h
new file mode 100644
index 0000000000..c871f1a03d
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/tile/sys/user.h
@@ -0,0 +1 @@
+/* This file is not needed, but in practice gdb might try to include it. */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/tile/syscall.S b/REORG.TODO/sysdeps/unix/sysv/linux/tile/syscall.S
new file mode 100644
index 0000000000..627ab0ee51
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/tile/syscall.S
@@ -0,0 +1,32 @@
+/* Copyright (C) 2011-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
+
+ 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 <arch/abi.h>
+
+ .text
+ENTRY (syscall)
+ FEEDBACK_ENTER(syscall)
+ { move TREG_SYSCALL_NR_NAME, r0; move r0, r1 }
+ { move r1, r2; move r2, r3 }
+ { move r3, r4; move r4, r5 }
+ { move r5, r6; move r6, r7 }
+ swint1
+ BNEZ r1, 0f
+ jrp lr
+PSEUDO_END (syscall)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/tile/sysconf.c b/REORG.TODO/sysdeps/unix/sysv/linux/tile/sysconf.c
new file mode 100644
index 0000000000..a2241935a2
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/tile/sysconf.c
@@ -0,0 +1,75 @@
+/* Copyright (C) 2014-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <unistd.h>
+#include <sys/sysinfo.h>
+#include <arch/chip.h>
+
+static long int linux_sysconf (int name);
+
+/* Get the value of the system variable NAME. */
+long int
+__sysconf (int name)
+{
+ /* Currently we support only tilepro and tilegx, which have
+ statically-known cache sizes. */
+ switch (name)
+ {
+ /* Level 1 cache. */
+ case _SC_LEVEL1_ICACHE_SIZE:
+ return CHIP_L1I_CACHE_SIZE();
+ case _SC_LEVEL1_ICACHE_ASSOC:
+ return CHIP_L1I_ASSOC();
+ case _SC_LEVEL1_ICACHE_LINESIZE:
+ return CHIP_L1I_LINE_SIZE();
+ case _SC_LEVEL1_DCACHE_SIZE:
+ return CHIP_L1D_CACHE_SIZE();
+ case _SC_LEVEL1_DCACHE_ASSOC:
+ return CHIP_L1D_ASSOC();
+ case _SC_LEVEL1_DCACHE_LINESIZE:
+ return CHIP_L1D_LINE_SIZE();
+
+ /* Level 2 cache. */
+ case _SC_LEVEL2_CACHE_SIZE:
+ return CHIP_L2_CACHE_SIZE();
+ case _SC_LEVEL2_CACHE_ASSOC:
+ return CHIP_L2_ASSOC();
+ case _SC_LEVEL2_CACHE_LINESIZE:
+ return CHIP_L2_LINE_SIZE();
+
+ /* Level 3 cache is layered on level 2 cache. */
+ case _SC_LEVEL3_CACHE_SIZE:
+ return CHIP_L2_CACHE_SIZE() * __get_nprocs();
+ case _SC_LEVEL3_CACHE_ASSOC:
+ return CHIP_L2_ASSOC();
+ case _SC_LEVEL3_CACHE_LINESIZE:
+ return CHIP_L2_LINE_SIZE();
+
+ /* No level 4 cache. */
+ case _SC_LEVEL4_CACHE_SIZE:
+ case _SC_LEVEL4_CACHE_ASSOC:
+ case _SC_LEVEL4_CACHE_LINESIZE:
+ return -1;
+ }
+
+ return linux_sysconf (name);
+}
+
+/* Now the generic Linux version. */
+#undef __sysconf
+#define __sysconf static linux_sysconf
+#include <sysdeps/unix/sysv/linux/sysconf.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/tile/sysdep-cancel.h b/REORG.TODO/sysdeps/unix/sysv/linux/tile/sysdep-cancel.h
new file mode 100644
index 0000000000..092a90c312
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/tile/sysdep-cancel.h
@@ -0,0 +1,154 @@
+/* Copyright (C) 2011-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
+
+ 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)
+
+/* Allow hacking in some extra code if desired. */
+#ifndef PSEUDO_EXTRA
+#define PSEUDO_EXTRA
+#endif
+
+#undef PSEUDO
+#define PSEUDO(name, syscall_name, args) \
+ ENTRY(__##syscall_name##_nocancel); \
+ PSEUDO_EXTRA \
+ moveli TREG_SYSCALL_NR_NAME, SYS_ify(syscall_name); \
+ swint1; \
+ BNEZ r1, 0f; \
+ jrp lr; \
+ END(__##syscall_name##_nocancel); \
+ ENTRY (name) \
+ SINGLE_THREAD_P(r11); \
+ BEQZ r11, L(pseudo_cancel); \
+ PSEUDO_EXTRA \
+ moveli TREG_SYSCALL_NR_NAME, SYS_ify(syscall_name); \
+ swint1; \
+ BNEZ r1, 0f; \
+ jrp lr; \
+ L(pseudo_cancel): \
+ { \
+ move r11, sp; \
+ ST sp, lr; \
+ ADDI_PTR sp, sp, -STKSPACE; \
+ }; \
+ cfi_offset (lr, 0); \
+ cfi_def_cfa_offset (STKSPACE); \
+ { \
+ ADDI_PTR r12, sp, REGSIZE; \
+ ADDI_PTR r13, sp, 2 * REGSIZE; /* set up for PUSHARGS_0 */ \
+ }; \
+ ST r12, r11; \
+ PUSHARGS_##args /* save syscall args */ \
+ CENABLE; \
+ ADDI_PTR r12, sp, 10 * REGSIZE; \
+ { \
+ ST r12, r0; /* save mask */ \
+ ADDI_PTR r13, sp, 2 * REGSIZE; /* set up for POPARGS_0 */ \
+ }; \
+ POPARGS_##args /* restore syscall args */ \
+ PSEUDO_EXTRA \
+ moveli TREG_SYSCALL_NR_NAME, SYS_ify(syscall_name); \
+ swint1; \
+ ADDI_PTR r12, sp, 12 * REGSIZE; \
+ { \
+ ST r12, r1; /* save syscall result */ \
+ ADDI_PTR r12, sp, 11 * REGSIZE; \
+ }; \
+ { \
+ ST r12, r0; \
+ ADDI_PTR r13, sp, 10 * REGSIZE; \
+ }; \
+ LD r0, r13; /* pass mask as arg1 */ \
+ CDISABLE; \
+ { \
+ ADDI_PTR lr, sp, STKSPACE; \
+ ADDI_PTR r0, sp, 11 * REGSIZE; \
+ }; \
+ { \
+ LD r0, r0; \
+ ADDI_PTR r1, sp, 12 * REGSIZE; \
+ }; \
+ LD r1, r1; \
+ { \
+ LD lr, lr; \
+ ADDI_PTR sp, sp, STKSPACE; \
+ }; \
+ cfi_def_cfa_offset (0); \
+ BNEZ r1, 0f
+
+# define PUSHARGS_0 /* nothing to do */
+# define PUSHARGS_1 PUSHARGS_0 { ADDI_PTR r14, sp, 3 * REGSIZE; ST r13, r0 };
+# define PUSHARGS_2 PUSHARGS_1 { ADDI_PTR r13, sp, 4 * REGSIZE; ST r14, r1 };
+# define PUSHARGS_3 PUSHARGS_2 { ADDI_PTR r14, sp, 5 * REGSIZE; ST r13, r2 };
+# define PUSHARGS_4 PUSHARGS_3 { ADDI_PTR r13, sp, 6 * REGSIZE; ST r14, r3 };
+# define PUSHARGS_5 PUSHARGS_4 { ADDI_PTR r14, sp, 7 * REGSIZE; ST r13, r4 };
+# define PUSHARGS_6 PUSHARGS_5 { ADDI_PTR r13, sp, 8 * REGSIZE; ST r14, r5 };
+# define PUSHARGS_7 PUSHARGS_6 { ADDI_PTR r14, sp, 9 * REGSIZE; ST r13, r6 };
+
+# define POPARGS_0 /* nothing to do */
+# define POPARGS_1 POPARGS_0 { ADDI_PTR r14, sp, 3 * REGSIZE; LD r0, r13 };
+# define POPARGS_2 POPARGS_1 { ADDI_PTR r13, sp, 4 * REGSIZE; LD r1, r14 };
+# define POPARGS_3 POPARGS_2 { ADDI_PTR r14, sp, 5 * REGSIZE; LD r2, r13 };
+# define POPARGS_4 POPARGS_3 { ADDI_PTR r13, sp, 6 * REGSIZE; LD r3, r14 };
+# define POPARGS_5 POPARGS_4 { ADDI_PTR r14, sp, 7 * REGSIZE; LD r4, r13 };
+# define POPARGS_6 POPARGS_5 { ADDI_PTR r13, sp, 8 * REGSIZE; LD r5, r14 };
+# define POPARGS_7 POPARGS_6 { ADDI_PTR r14, sp, 9 * REGSIZE; LD r6, r13 };
+
+# define STKSPACE (13 * REGSIZE)
+
+# if IS_IN (libpthread)
+# define CENABLE jal __pthread_enable_asynccancel
+# define CDISABLE jal __pthread_disable_asynccancel
+# elif IS_IN (librt)
+# define CENABLE jal __librt_enable_asynccancel
+# define CDISABLE jal __librt_disable_asynccancel
+# else
+# define CENABLE jal __libc_enable_asynccancel
+# define CDISABLE jal __libc_disable_asynccancel
+# endif
+
+# ifndef __ASSEMBLER__
+# define SINGLE_THREAD_P \
+ __builtin_expect (THREAD_GETMEM (THREAD_SELF, \
+ header.multiple_threads) \
+ == 0, 1)
+# else
+# define SINGLE_THREAD_P(reg) \
+ ADDLI_PTR reg, tp, MULTIPLE_THREADS_OFFSET; \
+ LD reg, reg; \
+ CMPEQI reg, reg, 0
+#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/tile/sysdep.c b/REORG.TODO/sysdeps/unix/sysv/linux/tile/sysdep.c
new file mode 100644
index 0000000000..1303651346
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/tile/sysdep.c
@@ -0,0 +1,33 @@
+/* Copyright (C) 2011-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#include <errno.h>
+
+int __syscall_error (int dummy, int err);
+hidden_proto (__syscall_error)
+
+/* This routine is jumped to by all the syscall handlers, to stash
+ an error number into errno. */
+int
+__syscall_error (int dummy, int err)
+{
+ __set_errno (err);
+ return -1;
+}
+hidden_def (__syscall_error)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/tile/sysdep.h b/REORG.TODO/sysdeps/unix/sysv/linux/tile/sysdep.h
new file mode 100644
index 0000000000..fb1b89c280
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/tile/sysdep.h
@@ -0,0 +1,243 @@
+/* Copyright (C) 2011-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
+
+ 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 <asm/unistd.h>
+#include <sysdeps/tile/sysdep.h>
+#include <sysdeps/unix/sysv/linux/generic/sysdep.h>
+#include <sys/syscall.h>
+
+#undef SYS_ify
+#define SYS_ify(syscall_name) __NR_##syscall_name
+
+
+#ifdef __ASSEMBLER__
+
+/* The actual implementation of doing a syscall. */
+#define DO_CALL(syscall_name, args) \
+ moveli TREG_SYSCALL_NR_NAME, SYS_ify(syscall_name); \
+ swint1
+
+/* TILE Linux returns the result in r0 (or a negative errno).
+ The kernel "owns" the code to decide if a given value is an error,
+ and puts errno in r1 if so, or otherwise zero. */
+#define PSEUDO(name, syscall_name, args) \
+ ENTRY (name); \
+ DO_CALL(syscall_name, args); \
+ BNEZ r1, 0f
+
+#define ret jrp lr
+
+#ifndef PIC
+/* For static code, on error jump to __syscall_error directly. */
+# define SYSCALL_ERROR_NAME __syscall_error
+#elif IS_IN (libc) || IS_IN (libpthread)
+/* Use the internal name for libc/libpthread shared objects. */
+# define SYSCALL_ERROR_NAME __GI___syscall_error
+#else
+/* Otherwise, on error do a full PLT jump. */
+# define SYSCALL_ERROR_NAME plt(__syscall_error)
+#endif
+
+#undef PSEUDO_END
+#define PSEUDO_END(name) \
+0: \
+ j SYSCALL_ERROR_NAME; \
+ END (name)
+
+#undef PSEUDO_NOERRNO
+#define PSEUDO_NOERRNO(name, syscall_name, args) \
+ ENTRY (name); \
+ DO_CALL(syscall_name, args)
+
+#define ret_NOERRNO jrp lr
+
+#undef PSEUDO_END_NOERRNO
+#define PSEUDO_END_NOERRNO(name) \
+ END (name)
+
+/* Convenience wrappers. */
+#define SYSCALL__(name, args) PSEUDO (__##name, name, args)
+#define SYSCALL(name, args) PSEUDO (name, name, args)
+
+#else /* not __ASSEMBLER__ */
+
+#include <errno.h>
+
+/* Define a macro which expands inline into the wrapper code for a system
+ call. */
+# undef INLINE_SYSCALL
+# define INLINE_SYSCALL(name, nr, args...) \
+ ({ \
+ INTERNAL_SYSCALL_DECL (_sc_err); \
+ unsigned long _sc_val = INTERNAL_SYSCALL (name, _sc_err, nr, args); \
+ if (__builtin_expect (INTERNAL_SYSCALL_ERROR_P (_sc_val, _sc_err), 0)) \
+ { \
+ __set_errno (INTERNAL_SYSCALL_ERRNO (_sc_val, _sc_err)); \
+ _sc_val = -1; \
+ } \
+ (long) _sc_val; \
+ })
+
+#undef INTERNAL_SYSCALL
+#define INTERNAL_SYSCALL(name, err, nr, args...) \
+ internal_syscall##nr (SYS_ify (name), err, args)
+
+#undef INTERNAL_SYSCALL_NCS
+#define INTERNAL_SYSCALL_NCS(number, err, nr, args...) \
+ internal_syscall##nr (number, err, args)
+
+#undef INTERNAL_SYSCALL_DECL
+#define INTERNAL_SYSCALL_DECL(err) int err
+
+#undef INTERNAL_SYSCALL_ERROR_P
+#define INTERNAL_SYSCALL_ERROR_P(val, err) ({ (void) (val); (err) != 0; })
+
+#undef INTERNAL_SYSCALL_ERRNO
+#define INTERNAL_SYSCALL_ERRNO(val, err) ({ (void) (val); (err); })
+
+#define internal_syscall0(num, err, dummy...) \
+ ({ \
+ long _sys_result, __SYSCALL_CLOBBER_DECLS; \
+ __asm__ __volatile__ ( \
+ "swint1" \
+ : "=R00" (_sys_result), "=R01" (err), __SYSCALL_CLOBBER_OUTPUTS \
+ : "R10" (num) \
+ : __SYSCALL_CLOBBERS); \
+ _sys_result; \
+ })
+
+#define internal_syscall1(num, err, arg0) \
+ ({ \
+ long _sys_result, __SYSCALL_CLOBBER_DECLS; \
+ __asm__ __volatile__ ( \
+ "swint1" \
+ : "=R00" (_sys_result), "=R01" (err), __SYSCALL_CLOBBER_OUTPUTS \
+ : "R10" (num), "R00" (arg0) \
+ : __SYSCALL_CLOBBERS); \
+ _sys_result; \
+ })
+
+#define internal_syscall2(num, err, arg0, arg1) \
+ ({ \
+ long _sys_result, __SYSCALL_CLOBBER_DECLS; \
+ __asm__ __volatile__ ( \
+ "swint1" \
+ : "=R00" (_sys_result), "=R01" (err), __SYSCALL_CLOBBER_OUTPUTS \
+ : "R10" (num), "R00" (arg0), "R01" (arg1) \
+ : __SYSCALL_CLOBBERS); \
+ _sys_result; \
+ })
+
+#define internal_syscall3(num, err, arg0, arg1, arg2) \
+ ({ \
+ long _sys_result, __SYSCALL_CLOBBER_DECLS; \
+ __asm__ __volatile__ ( \
+ "swint1" \
+ : "=R00" (_sys_result), "=R01" (err), __SYSCALL_CLOBBER_OUTPUTS \
+ : "R10" (num), "R00" (arg0), "R01" (arg1), "R02" (arg2) \
+ : __SYSCALL_CLOBBERS); \
+ _sys_result; \
+ })
+
+#define internal_syscall4(num, err, arg0, arg1, arg2, arg3) \
+ ({ \
+ long _sys_result, __SYSCALL_CLOBBER_DECLS; \
+ __asm__ __volatile__ ( \
+ "swint1" \
+ : "=R00" (_sys_result), "=R01" (err), __SYSCALL_CLOBBER_OUTPUTS \
+ : "R10" (num), "R00" (arg0), "R01" (arg1), "R02" (arg2), \
+ "R03" (arg3) \
+ : __SYSCALL_CLOBBERS); \
+ _sys_result; \
+ })
+
+#define internal_syscall5(num, err, arg0, arg1, arg2, arg3, arg4) \
+ ({ \
+ long _sys_result, __SYSCALL_CLOBBER_DECLS; \
+ __asm__ __volatile__ ( \
+ "swint1" \
+ : "=R00" (_sys_result), "=R01" (err), __SYSCALL_CLOBBER_OUTPUTS \
+ : "R10" (num), "R00" (arg0), "R01" (arg1), "R02" (arg2), \
+ "R03" (arg3), "R04" (arg4) \
+ : __SYSCALL_CLOBBERS); \
+ _sys_result; \
+ })
+
+#define internal_syscall6(num, err, arg0, arg1, arg2, arg3, arg4, arg5) \
+ ({ \
+ long _sys_result, __SYSCALL_CLOBBER_DECLS; \
+ __asm__ __volatile__ ( \
+ "swint1" \
+ : "=R00" (_sys_result), "=R01" (err), __SYSCALL_CLOBBER_OUTPUTS \
+ : "R10" (num), "R00" (arg0), "R01" (arg1), "R02" (arg2), \
+ "R03" (arg3), "R04" (arg4), "R05" (arg5) \
+ : __SYSCALL_CLOBBERS); \
+ _sys_result; \
+ })
+
+#undef __SYSCALL_CLOBBERS
+#define __SYSCALL_CLOBBERS \
+ "r6", "r7", \
+ "r8", "r9", "r11", "r12", "r13", "r14", "r15", \
+ "r16", "r17", "r18", "r19", "r20", "r21", "r22", "r23", \
+ "r24", "r25", "r26", "r27", "r28", "r29", "memory"
+
+/* gcc doesn't seem to allow an input operand to be clobbered, so we
+ fake it with dummy outputs. */
+#define __SYSCALL_CLOBBER_DECLS \
+ _clobber_r2, _clobber_r3, _clobber_r4, _clobber_r5, _clobber_r10
+
+#define __SYSCALL_CLOBBER_OUTPUTS \
+ "=R02" (_clobber_r2), "=R03" (_clobber_r3), "=R04" (_clobber_r4), \
+ "=R05" (_clobber_r5), "=R10" (_clobber_r10)
+
+
+#define INTERNAL_VSYSCALL_CALL(funcptr, err, nr, args...) \
+ ({ \
+ struct syscall_return_value _sc_rv = funcptr (args); \
+ err = _sc_rv.error; \
+ _sc_rv.value; \
+ })
+
+/* List of system calls which are supported as vsyscalls. */
+#define HAVE_CLOCK_GETTIME_VSYSCALL 1
+#define HAVE_GETTIMEOFDAY_VSYSCALL 1
+
+/* Previously tile used the generic version without the libc_hidden_def
+ which lead in a non existent __send symbol in libc.so. */
+#undef HAVE_INTERNAL_SEND_SYMBOL
+
+#endif /* __ASSEMBLER__ */
+
+/* Pointer mangling support. */
+#if IS_IN (rtld)
+/* We cannot use the thread descriptor because in ld.so we use setjmp
+ earlier than the descriptor is initialized. */
+#else
+# ifdef __ASSEMBLER__
+# define PTR_MANGLE(reg, tmpreg) \
+ ADDLI_PTR tmpreg, pt, POINTER_GUARD; \
+ LD tmpreg, tmpreg; \
+ xor reg, tmpreg, reg
+# define PTR_DEMANGLE(reg, tmpreg) PTR_MANGLE (reg, tmpreg)
+# else
+# define PTR_MANGLE(var) \
+ (var) = (__typeof (var)) ((uintptr_t) (var) ^ THREAD_GET_POINTER_GUARD ())
+# define PTR_DEMANGLE(var) PTR_MANGLE (var)
+# endif
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/Makefile b/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/Makefile
new file mode 100644
index 0000000000..4f101f334a
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/Makefile
@@ -0,0 +1,6 @@
+# Provide biarch definitions.
+abi-variants := 64 32
+abi-64-options := -D__LP64__
+abi-64-condition := __WORDSIZE == 64
+abi-32-options := -U__LP64__
+abi-32-condition := __WORDSIZE == 32
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/configure b/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/configure
new file mode 100644
index 0000000000..36e42e07e9
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/configure
@@ -0,0 +1,21 @@
+# This file is generated from configure.ac by Autoconf. DO NOT EDIT!
+ # Local configure fragment for sysdeps/unix/sysv/linux/tile/tilegx
+
+ldd_rewrite_script=$dir/ldd-rewrite.sed
+
+case $machine in
+tile/tilegx/tilegx32)
+ test -n "$libc_cv_slibdir" ||
+case "$prefix" in
+/usr | /usr/)
+ libc_cv_slibdir=/lib32
+ libc_cv_rtlddir=/lib32
+ if test "$libdir" = '${exec_prefix}/lib'; then
+ libdir='${exec_prefix}/lib32';
+ # Locale data can be shared between 32-bit and 64-bit libraries.
+ libc_cv_complocaledir='${exec_prefix}/lib/locale'
+ fi
+ ;;
+esac
+ ;;
+esac
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/configure.ac b/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/configure.ac
new file mode 100644
index 0000000000..baca1f62a8
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/configure.ac
@@ -0,0 +1,10 @@
+GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
+# Local configure fragment for sysdeps/unix/sysv/linux/tile/tilegx
+
+ldd_rewrite_script=$dir/ldd-rewrite.sed
+
+case $machine in
+tile/tilegx/tilegx32)
+ LIBC_SLIBDIR_RTLDDIR([lib32], [lib32])
+ ;;
+esac
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/ioctl.S b/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/ioctl.S
new file mode 100644
index 0000000000..e2bf44c75d
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/ioctl.S
@@ -0,0 +1,41 @@
+/* Copyright (C) 2011-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
+
+ 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/>. */
+
+
+/* TILE-Gx specifies that "unsigned int" is sign extended in the high
+ 32 bits. But since the userspace API claims to be "unsigned long",
+ calls into __ioctl() will not be sign extended, but rather pass all
+ 64 bits of the argument. Therefore, when we pass the "request"
+ value to the kernel, we must explicitly sign-extend it to match the
+ kernel's internal use of "unsigned int" as the second argument,
+ which we do by casting to "unsigned int". */
+
+#include <sysdep.h>
+
+ .text
+ENTRY (__ioctl)
+ FEEDBACK_ENTER(__ioctl)
+ {
+ addxi r1, r1, 0
+ moveli TREG_SYSCALL_NR_NAME, __NR_ioctl
+ }
+ swint1
+ BNEZ r1, 0f
+ jrp lr
+PSEUDO_END (__ioctl)
+weak_alias (__ioctl, ioctl)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/ldconfig.h b/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/ldconfig.h
new file mode 100644
index 0000000000..6185e300fe
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/ldconfig.h
@@ -0,0 +1,26 @@
+/* Copyright (C) 2011-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdeps/generic/ldconfig.h>
+
+#define SYSDEP_KNOWN_INTERPRETER_NAMES \
+ { "/lib/ld.so.1", FLAG_ELF_LIBC6 }, \
+ { "/lib32/ld.so.1", FLAG_ELF_LIBC6 },
+#define SYSDEP_KNOWN_LIBRARY_NAMES \
+ { "libc.so.6", FLAG_ELF_LIBC6 }, \
+ { "libm.so.6", FLAG_ELF_LIBC6 },
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/ldd-rewrite.sed b/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/ldd-rewrite.sed
new file mode 100644
index 0000000000..8b0bb691cc
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/ldd-rewrite.sed
@@ -0,0 +1 @@
+s_^\(RTLDLIST=\)\(.*lib\)\(\|32\)\(/[^/]*\.so\.[0-9.]*\)[ ]*$_\1"\2\4 \232\4"_
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/register-dump.h b/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/register-dump.h
new file mode 100644
index 0000000000..491413e980
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/register-dump.h
@@ -0,0 +1,123 @@
+/* Copyright (C) 2011-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sys/uio.h>
+#include <_itoa.h>
+
+/* We will print the register dump in this format:
+
+ R0: XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
+ R4: XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
+ R8: XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
+ R12: XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
+ R16: XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
+ R20: XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
+ R24: XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
+ R28: XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
+ R32: XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
+ R36: XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
+ R40: XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
+ R44: XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
+ R48: XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
+ R52: XXXXXXXXXXXXXXXX TP: XXXXXXXXXXXXXXXX
+ SP: XXXXXXXXXXXXXXXX LR: XXXXXXXXXXXXXXXX
+
+ PC: XXXXXXXXXXXXXXXX ICS: X FAULTNUM: XX
+
+ */
+
+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, mcontext_t *ctx)
+{
+ char regs[59][16];
+ struct iovec iov[132];
+ size_t nr = 0;
+ unsigned int i;
+
+#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. */
+ for (i = 0; i < 56; ++i)
+ hexvalue (ctx->gregs[i], regs[i], 16);
+ hexvalue (ctx->pc, regs[56], 16);
+ hexvalue (ctx->ics, regs[57], 1);
+ hexvalue (ctx->faultnum, regs[58], 2);
+
+ /* Generate the output. */
+ for (i = 0; i < 56;)
+ {
+ const char *prefixes[] = {
+ "Register dump:\n\n R0: ",
+ "\n R4: ",
+ "\n R8: ",
+ "\n R12: ",
+ "\n R16: ",
+ "\n R20: ",
+ "\n R24: ",
+ "\n R28: ",
+ "\n R32: ",
+ "\n R36: ",
+ "\n R40: ",
+ "\n R44: ",
+ "\n R48: "
+ };
+ ADD_STRING (prefixes[i / 4]);
+ do
+ {
+ ADD_MEM (regs[i], 16);
+ ADD_STRING (" ");
+ }
+ while (++i % 4);
+ }
+ ADD_STRING ("\n R52: ");
+ ADD_MEM (regs[52], 16);
+ ADD_STRING (" TP: ");
+ ADD_MEM (regs[53], 16);
+ ADD_STRING ("\n SP: ");
+ ADD_MEM (regs[54], 16);
+ ADD_STRING (" LR: ");
+ ADD_MEM (regs[55], 16);
+ ADD_STRING ("\n\n PC: ");
+ ADD_MEM (regs[56], 16);
+ ADD_STRING (" ICS: ");
+ ADD_MEM (regs[57], 1);
+ ADD_STRING (" FAULTNUM: ");
+ ADD_MEM (regs[58], 2);
+ ADD_STRING ("\n");
+
+ /* Write the stuff out. */
+ writev (fd, iov, nr);
+}
+
+
+#define REGISTER_DUMP register_dump (fd, &ctx->uc_mcontext)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/sched_getcpu.c b/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/sched_getcpu.c
new file mode 100644
index 0000000000..807913c7d1
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/sched_getcpu.c
@@ -0,0 +1,87 @@
+/* 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 <errno.h>
+#include <stddef.h>
+#include <fcntl.h>
+#include <unistd.h>
+#include <sched.h>
+#include <sysdep.h>
+#include <arch/spr_def.h>
+
+
+/* The count of cores horizontally (X dimension) on the chip. */
+static int chip_width;
+
+/* Read the chip "width" from the /sys filesystem. */
+static int
+initialize_chip_width (void)
+{
+ int w = 0;
+ int fd;
+
+ fd = __open ("/sys/devices/system/cpu/chip_width", O_RDONLY);
+ if (fd >= 0)
+ {
+ char buf[64];
+ ssize_t n;
+ int i;
+
+ n = __read (fd, buf, sizeof (buf));
+ __close (fd);
+
+ for (i = 0; i < n; ++i)
+ {
+ if (buf[i] < '0' || buf[i] > '9')
+ break;
+ w = (w * 10) + (buf[i] - '0');
+ }
+ }
+
+ /* Store a negative value so we don't try again. */
+ if (w == 0)
+ w = -1;
+
+ /* Using an atomic idempotent write here makes this thread-safe. */
+ chip_width = w;
+ return w;
+}
+
+int
+sched_getcpu (void)
+{
+ unsigned int coord;
+ int w = chip_width;
+
+ if (__builtin_expect (w <= 0, 0))
+ {
+ if (w == 0)
+ w = initialize_chip_width ();
+ if (w < 0)
+ {
+ unsigned int cpu;
+ int r = INLINE_SYSCALL (getcpu, 3, &cpu, NULL, NULL);
+ return r == -1 ? r : cpu;
+ }
+ }
+
+ /* Assign 64-bit value to a 32-bit variable to ensure 32-bit multiply. */
+ coord = __insn_mfspr (SPR_TILE_COORD);
+
+ /* Extract Y coord from bits 7..10 and X coord from bits 18..21. */
+ return ((coord >> 7) & 0xf) * w + ((coord >> 18) & 0xf);
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/Implies b/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/Implies
new file mode 100644
index 0000000000..9090d3fb8b
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/Implies
@@ -0,0 +1,4 @@
+unix/sysv/linux/tile/tilegx
+unix/sysv/linux/tile
+unix/sysv/linux/generic/wordsize-32
+unix/sysv/linux/generic
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/Makefile b/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/Makefile
new file mode 100644
index 0000000000..1e9d29be31
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/Makefile
@@ -0,0 +1 @@
+default-abi := 32
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/c++-types.data b/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/c++-types.data
new file mode 100644
index 0000000000..1a7bcb38d3
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/c++-types.data
@@ -0,0 +1,67 @@
+blkcnt64_t:x
+blkcnt_t:l
+blksize_t:i
+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:x
+rlim64_t:y
+rlim_t:m
+sigset_t:10__sigset_t
+size_t:j
+socklen_t:j
+ssize_t:i
+suseconds_t:l
+time_t:l
+u_char:h
+uid_t:j
+uint:j
+u_int:j
+u_int16_t:t
+u_int32_t:j
+u_int64_t:y
+u_int8_t:h
+ulong:m
+u_long:m
+u_quad_t:y
+useconds_t:j
+ushort:t
+u_short:t
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/ld.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/ld.abilist
new file mode 100644
index 0000000000..f166310147
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/ld.abilist
@@ -0,0 +1,9 @@
+GLIBC_2.12 GLIBC_2.12 A
+GLIBC_2.12 __libc_stack_end D 0x4
+GLIBC_2.12 __tls_get_addr F
+GLIBC_2.12 _dl_mcount F
+GLIBC_2.12 _r_debug D 0x14
+GLIBC_2.12 calloc F
+GLIBC_2.12 free F
+GLIBC_2.12 malloc F
+GLIBC_2.12 realloc F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libBrokenLocale.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libBrokenLocale.abilist
new file mode 100644
index 0000000000..0d64827515
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libBrokenLocale.abilist
@@ -0,0 +1,2 @@
+GLIBC_2.12 GLIBC_2.12 A
+GLIBC_2.12 __ctype_get_mb_cur_max F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libanl.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libanl.abilist
new file mode 100644
index 0000000000..a3b1cc08bf
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libanl.abilist
@@ -0,0 +1,5 @@
+GLIBC_2.12 GLIBC_2.12 A
+GLIBC_2.12 gai_cancel F
+GLIBC_2.12 gai_error F
+GLIBC_2.12 gai_suspend F
+GLIBC_2.12 getaddrinfo_a F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libc.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libc.abilist
new file mode 100644
index 0000000000..41647d4610
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libc.abilist
@@ -0,0 +1,2112 @@
+GLIBC_2.12 GLIBC_2.12 A
+GLIBC_2.12 _Exit F
+GLIBC_2.12 _IO_2_1_stderr_ D 0xa0
+GLIBC_2.12 _IO_2_1_stdin_ D 0xa0
+GLIBC_2.12 _IO_2_1_stdout_ D 0xa0
+GLIBC_2.12 _IO_adjust_column F
+GLIBC_2.12 _IO_adjust_wcolumn F
+GLIBC_2.12 _IO_default_doallocate F
+GLIBC_2.12 _IO_default_finish F
+GLIBC_2.12 _IO_default_pbackfail F
+GLIBC_2.12 _IO_default_uflow F
+GLIBC_2.12 _IO_default_xsgetn F
+GLIBC_2.12 _IO_default_xsputn F
+GLIBC_2.12 _IO_do_write F
+GLIBC_2.12 _IO_doallocbuf F
+GLIBC_2.12 _IO_fclose F
+GLIBC_2.12 _IO_fdopen F
+GLIBC_2.12 _IO_feof F
+GLIBC_2.12 _IO_ferror F
+GLIBC_2.12 _IO_fflush F
+GLIBC_2.12 _IO_fgetpos F
+GLIBC_2.12 _IO_fgetpos64 F
+GLIBC_2.12 _IO_fgets F
+GLIBC_2.12 _IO_file_attach F
+GLIBC_2.12 _IO_file_close F
+GLIBC_2.12 _IO_file_close_it F
+GLIBC_2.12 _IO_file_doallocate F
+GLIBC_2.12 _IO_file_finish F
+GLIBC_2.12 _IO_file_fopen F
+GLIBC_2.12 _IO_file_init F
+GLIBC_2.12 _IO_file_jumps D 0x54
+GLIBC_2.12 _IO_file_open F
+GLIBC_2.12 _IO_file_overflow F
+GLIBC_2.12 _IO_file_read F
+GLIBC_2.12 _IO_file_seek F
+GLIBC_2.12 _IO_file_seekoff F
+GLIBC_2.12 _IO_file_setbuf F
+GLIBC_2.12 _IO_file_stat F
+GLIBC_2.12 _IO_file_sync F
+GLIBC_2.12 _IO_file_underflow F
+GLIBC_2.12 _IO_file_write F
+GLIBC_2.12 _IO_file_xsputn F
+GLIBC_2.12 _IO_flockfile F
+GLIBC_2.12 _IO_flush_all F
+GLIBC_2.12 _IO_flush_all_linebuffered F
+GLIBC_2.12 _IO_fopen F
+GLIBC_2.12 _IO_fprintf F
+GLIBC_2.12 _IO_fputs F
+GLIBC_2.12 _IO_fread F
+GLIBC_2.12 _IO_free_backup_area F
+GLIBC_2.12 _IO_free_wbackup_area F
+GLIBC_2.12 _IO_fsetpos F
+GLIBC_2.12 _IO_fsetpos64 F
+GLIBC_2.12 _IO_ftell F
+GLIBC_2.12 _IO_ftrylockfile F
+GLIBC_2.12 _IO_funlockfile F
+GLIBC_2.12 _IO_fwrite F
+GLIBC_2.12 _IO_getc F
+GLIBC_2.12 _IO_getline F
+GLIBC_2.12 _IO_getline_info F
+GLIBC_2.12 _IO_gets F
+GLIBC_2.12 _IO_init F
+GLIBC_2.12 _IO_init_marker F
+GLIBC_2.12 _IO_init_wmarker F
+GLIBC_2.12 _IO_iter_begin F
+GLIBC_2.12 _IO_iter_end F
+GLIBC_2.12 _IO_iter_file F
+GLIBC_2.12 _IO_iter_next F
+GLIBC_2.12 _IO_least_wmarker F
+GLIBC_2.12 _IO_link_in F
+GLIBC_2.12 _IO_list_all D 0x4
+GLIBC_2.12 _IO_list_lock F
+GLIBC_2.12 _IO_list_resetlock F
+GLIBC_2.12 _IO_list_unlock F
+GLIBC_2.12 _IO_marker_delta F
+GLIBC_2.12 _IO_marker_difference F
+GLIBC_2.12 _IO_padn F
+GLIBC_2.12 _IO_peekc_locked F
+GLIBC_2.12 _IO_popen F
+GLIBC_2.12 _IO_printf F
+GLIBC_2.12 _IO_proc_close F
+GLIBC_2.12 _IO_proc_open F
+GLIBC_2.12 _IO_putc F
+GLIBC_2.12 _IO_puts F
+GLIBC_2.12 _IO_remove_marker F
+GLIBC_2.12 _IO_seekmark F
+GLIBC_2.12 _IO_seekoff F
+GLIBC_2.12 _IO_seekpos F
+GLIBC_2.12 _IO_seekwmark F
+GLIBC_2.12 _IO_setb F
+GLIBC_2.12 _IO_setbuffer F
+GLIBC_2.12 _IO_setvbuf F
+GLIBC_2.12 _IO_sgetn F
+GLIBC_2.12 _IO_sprintf F
+GLIBC_2.12 _IO_sputbackc F
+GLIBC_2.12 _IO_sputbackwc F
+GLIBC_2.12 _IO_sscanf F
+GLIBC_2.12 _IO_str_init_readonly F
+GLIBC_2.12 _IO_str_init_static F
+GLIBC_2.12 _IO_str_overflow F
+GLIBC_2.12 _IO_str_pbackfail F
+GLIBC_2.12 _IO_str_seekoff F
+GLIBC_2.12 _IO_str_underflow F
+GLIBC_2.12 _IO_sungetc F
+GLIBC_2.12 _IO_sungetwc F
+GLIBC_2.12 _IO_switch_to_get_mode F
+GLIBC_2.12 _IO_switch_to_main_wget_area F
+GLIBC_2.12 _IO_switch_to_wbackup_area F
+GLIBC_2.12 _IO_switch_to_wget_mode F
+GLIBC_2.12 _IO_un_link F
+GLIBC_2.12 _IO_ungetc F
+GLIBC_2.12 _IO_unsave_markers F
+GLIBC_2.12 _IO_unsave_wmarkers F
+GLIBC_2.12 _IO_vfprintf F
+GLIBC_2.12 _IO_vfscanf F
+GLIBC_2.12 _IO_vsprintf F
+GLIBC_2.12 _IO_wdefault_doallocate F
+GLIBC_2.12 _IO_wdefault_finish F
+GLIBC_2.12 _IO_wdefault_pbackfail F
+GLIBC_2.12 _IO_wdefault_uflow F
+GLIBC_2.12 _IO_wdefault_xsgetn F
+GLIBC_2.12 _IO_wdefault_xsputn F
+GLIBC_2.12 _IO_wdo_write F
+GLIBC_2.12 _IO_wdoallocbuf F
+GLIBC_2.12 _IO_wfile_jumps D 0x54
+GLIBC_2.12 _IO_wfile_overflow F
+GLIBC_2.12 _IO_wfile_seekoff F
+GLIBC_2.12 _IO_wfile_sync F
+GLIBC_2.12 _IO_wfile_underflow F
+GLIBC_2.12 _IO_wfile_xsputn F
+GLIBC_2.12 _IO_wmarker_delta F
+GLIBC_2.12 _IO_wsetb F
+GLIBC_2.12 ___brk_addr D 0x4
+GLIBC_2.12 __adjtimex F
+GLIBC_2.12 __after_morecore_hook D 0x4
+GLIBC_2.12 __argz_count F
+GLIBC_2.12 __argz_next F
+GLIBC_2.12 __argz_stringify F
+GLIBC_2.12 __asprintf F
+GLIBC_2.12 __asprintf_chk F
+GLIBC_2.12 __assert F
+GLIBC_2.12 __assert_fail F
+GLIBC_2.12 __assert_perror_fail F
+GLIBC_2.12 __backtrace F
+GLIBC_2.12 __backtrace_symbols F
+GLIBC_2.12 __backtrace_symbols_fd F
+GLIBC_2.12 __bsd_getpgrp F
+GLIBC_2.12 __bzero F
+GLIBC_2.12 __check_rhosts_file D 0x4
+GLIBC_2.12 __chk_fail F
+GLIBC_2.12 __clone F
+GLIBC_2.12 __close F
+GLIBC_2.12 __cmsg_nxthdr F
+GLIBC_2.12 __confstr_chk F
+GLIBC_2.12 __connect F
+GLIBC_2.12 __ctype_b_loc F
+GLIBC_2.12 __ctype_get_mb_cur_max F
+GLIBC_2.12 __ctype_tolower_loc F
+GLIBC_2.12 __ctype_toupper_loc F
+GLIBC_2.12 __curbrk D 0x4
+GLIBC_2.12 __cxa_at_quick_exit F
+GLIBC_2.12 __cxa_atexit F
+GLIBC_2.12 __cxa_finalize F
+GLIBC_2.12 __cyg_profile_func_enter F
+GLIBC_2.12 __cyg_profile_func_exit F
+GLIBC_2.12 __daylight D 0x4
+GLIBC_2.12 __dcgettext F
+GLIBC_2.12 __default_morecore F
+GLIBC_2.12 __dgettext F
+GLIBC_2.12 __dprintf_chk F
+GLIBC_2.12 __dup2 F
+GLIBC_2.12 __duplocale F
+GLIBC_2.12 __endmntent F
+GLIBC_2.12 __environ D 0x4
+GLIBC_2.12 __errno_location F
+GLIBC_2.12 __fbufsize F
+GLIBC_2.12 __fcntl F
+GLIBC_2.12 __ffs F
+GLIBC_2.12 __fgets_chk F
+GLIBC_2.12 __fgets_unlocked_chk F
+GLIBC_2.12 __fgetws_chk F
+GLIBC_2.12 __fgetws_unlocked_chk F
+GLIBC_2.12 __finite F
+GLIBC_2.12 __finitef F
+GLIBC_2.12 __flbf F
+GLIBC_2.12 __fork F
+GLIBC_2.12 __fpending F
+GLIBC_2.12 __fprintf_chk F
+GLIBC_2.12 __fpu_control D 0x4
+GLIBC_2.12 __fpurge F
+GLIBC_2.12 __fread_chk F
+GLIBC_2.12 __fread_unlocked_chk F
+GLIBC_2.12 __freadable F
+GLIBC_2.12 __freading F
+GLIBC_2.12 __free_hook D 0x4
+GLIBC_2.12 __freelocale F
+GLIBC_2.12 __fsetlocking F
+GLIBC_2.12 __fwprintf_chk F
+GLIBC_2.12 __fwritable F
+GLIBC_2.12 __fwriting F
+GLIBC_2.12 __fxstat F
+GLIBC_2.12 __fxstat64 F
+GLIBC_2.12 __fxstatat F
+GLIBC_2.12 __fxstatat64 F
+GLIBC_2.12 __getcwd_chk F
+GLIBC_2.12 __getdelim F
+GLIBC_2.12 __getdomainname_chk F
+GLIBC_2.12 __getgroups_chk F
+GLIBC_2.12 __gethostname_chk F
+GLIBC_2.12 __getlogin_r_chk F
+GLIBC_2.12 __getmntent_r F
+GLIBC_2.12 __getpagesize F
+GLIBC_2.12 __getpgid F
+GLIBC_2.12 __getpid F
+GLIBC_2.12 __gets_chk F
+GLIBC_2.12 __gettimeofday F
+GLIBC_2.12 __getwd_chk F
+GLIBC_2.12 __gmtime_r F
+GLIBC_2.12 __h_errno_location F
+GLIBC_2.12 __isalnum_l F
+GLIBC_2.12 __isalpha_l F
+GLIBC_2.12 __isascii_l F
+GLIBC_2.12 __isblank_l F
+GLIBC_2.12 __iscntrl_l F
+GLIBC_2.12 __isctype F
+GLIBC_2.12 __isdigit_l F
+GLIBC_2.12 __isgraph_l F
+GLIBC_2.12 __isinf F
+GLIBC_2.12 __isinff F
+GLIBC_2.12 __islower_l F
+GLIBC_2.12 __isnan F
+GLIBC_2.12 __isnanf F
+GLIBC_2.12 __isoc99_fscanf F
+GLIBC_2.12 __isoc99_fwscanf F
+GLIBC_2.12 __isoc99_scanf F
+GLIBC_2.12 __isoc99_sscanf F
+GLIBC_2.12 __isoc99_swscanf F
+GLIBC_2.12 __isoc99_vfscanf F
+GLIBC_2.12 __isoc99_vfwscanf F
+GLIBC_2.12 __isoc99_vscanf F
+GLIBC_2.12 __isoc99_vsscanf F
+GLIBC_2.12 __isoc99_vswscanf F
+GLIBC_2.12 __isoc99_vwscanf F
+GLIBC_2.12 __isoc99_wscanf F
+GLIBC_2.12 __isprint_l F
+GLIBC_2.12 __ispunct_l F
+GLIBC_2.12 __isspace_l F
+GLIBC_2.12 __isupper_l F
+GLIBC_2.12 __iswalnum_l F
+GLIBC_2.12 __iswalpha_l F
+GLIBC_2.12 __iswblank_l F
+GLIBC_2.12 __iswcntrl_l F
+GLIBC_2.12 __iswctype F
+GLIBC_2.12 __iswctype_l F
+GLIBC_2.12 __iswdigit_l F
+GLIBC_2.12 __iswgraph_l F
+GLIBC_2.12 __iswlower_l F
+GLIBC_2.12 __iswprint_l F
+GLIBC_2.12 __iswpunct_l F
+GLIBC_2.12 __iswspace_l F
+GLIBC_2.12 __iswupper_l F
+GLIBC_2.12 __iswxdigit_l F
+GLIBC_2.12 __isxdigit_l F
+GLIBC_2.12 __ivaliduser F
+GLIBC_2.12 __key_decryptsession_pk_LOCAL D 0x4
+GLIBC_2.12 __key_encryptsession_pk_LOCAL D 0x4
+GLIBC_2.12 __key_gendes_LOCAL D 0x4
+GLIBC_2.12 __libc_allocate_rtsig F
+GLIBC_2.12 __libc_calloc F
+GLIBC_2.12 __libc_current_sigrtmax F
+GLIBC_2.12 __libc_current_sigrtmin F
+GLIBC_2.12 __libc_free F
+GLIBC_2.12 __libc_freeres F
+GLIBC_2.12 __libc_init_first F
+GLIBC_2.12 __libc_mallinfo F
+GLIBC_2.12 __libc_malloc F
+GLIBC_2.12 __libc_mallopt F
+GLIBC_2.12 __libc_memalign F
+GLIBC_2.12 __libc_pvalloc F
+GLIBC_2.12 __libc_realloc F
+GLIBC_2.12 __libc_sa_len F
+GLIBC_2.12 __libc_start_main F
+GLIBC_2.12 __libc_valloc F
+GLIBC_2.12 __longjmp_chk F
+GLIBC_2.12 __lseek F
+GLIBC_2.12 __lxstat F
+GLIBC_2.12 __lxstat64 F
+GLIBC_2.12 __malloc_hook D 0x4
+GLIBC_2.12 __malloc_initialize_hook D 0x4
+GLIBC_2.12 __mbrlen F
+GLIBC_2.12 __mbrtowc F
+GLIBC_2.12 __mbsnrtowcs_chk F
+GLIBC_2.12 __mbsrtowcs_chk F
+GLIBC_2.12 __mbstowcs_chk F
+GLIBC_2.12 __mcount F
+GLIBC_2.12 __memalign_hook D 0x4
+GLIBC_2.12 __memcpy_chk F
+GLIBC_2.12 __memmove_chk F
+GLIBC_2.12 __mempcpy F
+GLIBC_2.12 __mempcpy_chk F
+GLIBC_2.12 __mempcpy_small F
+GLIBC_2.12 __memset_chk F
+GLIBC_2.12 __monstartup F
+GLIBC_2.12 __morecore D 0x4
+GLIBC_2.12 __nanosleep F
+GLIBC_2.12 __newlocale F
+GLIBC_2.12 __nl_langinfo_l F
+GLIBC_2.12 __nss_configure_lookup F
+GLIBC_2.12 __nss_database_lookup F
+GLIBC_2.12 __nss_group_lookup F
+GLIBC_2.12 __nss_hostname_digits_dots F
+GLIBC_2.12 __nss_hosts_lookup F
+GLIBC_2.12 __nss_next F
+GLIBC_2.12 __nss_passwd_lookup F
+GLIBC_2.12 __obstack_printf_chk F
+GLIBC_2.12 __obstack_vprintf_chk F
+GLIBC_2.12 __open F
+GLIBC_2.12 __open64 F
+GLIBC_2.12 __open64_2 F
+GLIBC_2.12 __open_2 F
+GLIBC_2.12 __openat64_2 F
+GLIBC_2.12 __openat_2 F
+GLIBC_2.12 __overflow F
+GLIBC_2.12 __pipe F
+GLIBC_2.12 __poll F
+GLIBC_2.12 __posix_getopt F
+GLIBC_2.12 __pread64 F
+GLIBC_2.12 __pread64_chk F
+GLIBC_2.12 __pread_chk F
+GLIBC_2.12 __printf_chk F
+GLIBC_2.12 __printf_fp F
+GLIBC_2.12 __profile_frequency F
+GLIBC_2.12 __progname D 0x4
+GLIBC_2.12 __progname_full D 0x4
+GLIBC_2.12 __ptsname_r_chk F
+GLIBC_2.12 __pwrite64 F
+GLIBC_2.12 __rawmemchr F
+GLIBC_2.12 __rcmd_errstr D 0x4
+GLIBC_2.12 __read F
+GLIBC_2.12 __read_chk F
+GLIBC_2.12 __readlink_chk F
+GLIBC_2.12 __readlinkat_chk F
+GLIBC_2.12 __realloc_hook D 0x4
+GLIBC_2.12 __realpath_chk F
+GLIBC_2.12 __recv_chk F
+GLIBC_2.12 __recvfrom_chk F
+GLIBC_2.12 __register_atfork F
+GLIBC_2.12 __res_init F
+GLIBC_2.12 __res_nclose F
+GLIBC_2.12 __res_ninit F
+GLIBC_2.12 __res_randomid F
+GLIBC_2.12 __res_state F
+GLIBC_2.12 __rpc_thread_createerr F
+GLIBC_2.12 __rpc_thread_svc_fdset F
+GLIBC_2.12 __rpc_thread_svc_max_pollfd F
+GLIBC_2.12 __rpc_thread_svc_pollfd F
+GLIBC_2.12 __sbrk F
+GLIBC_2.12 __sched_cpualloc F
+GLIBC_2.12 __sched_cpucount F
+GLIBC_2.12 __sched_cpufree F
+GLIBC_2.12 __sched_get_priority_max F
+GLIBC_2.12 __sched_get_priority_min F
+GLIBC_2.12 __sched_getparam F
+GLIBC_2.12 __sched_getscheduler F
+GLIBC_2.12 __sched_setscheduler F
+GLIBC_2.12 __sched_yield F
+GLIBC_2.12 __secure_getenv F
+GLIBC_2.12 __select F
+GLIBC_2.12 __setmntent F
+GLIBC_2.12 __setpgid F
+GLIBC_2.12 __sigaction F
+GLIBC_2.12 __sigaddset F
+GLIBC_2.12 __sigdelset F
+GLIBC_2.12 __sigismember F
+GLIBC_2.12 __signbit F
+GLIBC_2.12 __signbitf F
+GLIBC_2.12 __sigpause F
+GLIBC_2.12 __sigsetjmp F
+GLIBC_2.12 __sigsuspend F
+GLIBC_2.12 __snprintf_chk F
+GLIBC_2.12 __sprintf_chk F
+GLIBC_2.12 __stack_chk_fail F
+GLIBC_2.12 __statfs F
+GLIBC_2.12 __stpcpy F
+GLIBC_2.12 __stpcpy_chk F
+GLIBC_2.12 __stpcpy_small F
+GLIBC_2.12 __stpncpy F
+GLIBC_2.12 __stpncpy_chk F
+GLIBC_2.12 __strcasecmp F
+GLIBC_2.12 __strcasecmp_l F
+GLIBC_2.12 __strcasestr F
+GLIBC_2.12 __strcat_chk F
+GLIBC_2.12 __strcoll_l F
+GLIBC_2.12 __strcpy_chk F
+GLIBC_2.12 __strcpy_small F
+GLIBC_2.12 __strcspn_c1 F
+GLIBC_2.12 __strcspn_c2 F
+GLIBC_2.12 __strcspn_c3 F
+GLIBC_2.12 __strdup F
+GLIBC_2.12 __strerror_r F
+GLIBC_2.12 __strfmon_l F
+GLIBC_2.12 __strftime_l F
+GLIBC_2.12 __strncasecmp_l F
+GLIBC_2.12 __strncat_chk F
+GLIBC_2.12 __strncpy_chk F
+GLIBC_2.12 __strndup F
+GLIBC_2.12 __strpbrk_c2 F
+GLIBC_2.12 __strpbrk_c3 F
+GLIBC_2.12 __strsep_1c F
+GLIBC_2.12 __strsep_2c F
+GLIBC_2.12 __strsep_3c F
+GLIBC_2.12 __strsep_g F
+GLIBC_2.12 __strspn_c1 F
+GLIBC_2.12 __strspn_c2 F
+GLIBC_2.12 __strspn_c3 F
+GLIBC_2.12 __strtod_internal F
+GLIBC_2.12 __strtod_l F
+GLIBC_2.12 __strtof_internal F
+GLIBC_2.12 __strtof_l F
+GLIBC_2.12 __strtok_r F
+GLIBC_2.12 __strtok_r_1c F
+GLIBC_2.12 __strtol_internal F
+GLIBC_2.12 __strtol_l F
+GLIBC_2.12 __strtold_internal F
+GLIBC_2.12 __strtold_l F
+GLIBC_2.12 __strtoll_internal F
+GLIBC_2.12 __strtoll_l F
+GLIBC_2.12 __strtoul_internal F
+GLIBC_2.12 __strtoul_l F
+GLIBC_2.12 __strtoull_internal F
+GLIBC_2.12 __strtoull_l F
+GLIBC_2.12 __strverscmp F
+GLIBC_2.12 __strxfrm_l F
+GLIBC_2.12 __swprintf_chk F
+GLIBC_2.12 __sysconf F
+GLIBC_2.12 __syslog_chk F
+GLIBC_2.12 __sysv_signal F
+GLIBC_2.12 __timezone D 0x4
+GLIBC_2.12 __toascii_l F
+GLIBC_2.12 __tolower_l F
+GLIBC_2.12 __toupper_l F
+GLIBC_2.12 __towctrans F
+GLIBC_2.12 __towctrans_l F
+GLIBC_2.12 __towlower_l F
+GLIBC_2.12 __towupper_l F
+GLIBC_2.12 __ttyname_r_chk F
+GLIBC_2.12 __tzname D 0x8
+GLIBC_2.12 __uflow F
+GLIBC_2.12 __underflow F
+GLIBC_2.12 __uselocale F
+GLIBC_2.12 __vasprintf_chk F
+GLIBC_2.12 __vdprintf_chk F
+GLIBC_2.12 __vfork F
+GLIBC_2.12 __vfprintf_chk F
+GLIBC_2.12 __vfscanf F
+GLIBC_2.12 __vfwprintf_chk F
+GLIBC_2.12 __vprintf_chk F
+GLIBC_2.12 __vsnprintf F
+GLIBC_2.12 __vsnprintf_chk F
+GLIBC_2.12 __vsprintf_chk F
+GLIBC_2.12 __vsscanf F
+GLIBC_2.12 __vswprintf_chk F
+GLIBC_2.12 __vsyslog_chk F
+GLIBC_2.12 __vwprintf_chk F
+GLIBC_2.12 __wait F
+GLIBC_2.12 __waitpid F
+GLIBC_2.12 __wcpcpy_chk F
+GLIBC_2.12 __wcpncpy_chk F
+GLIBC_2.12 __wcrtomb_chk F
+GLIBC_2.12 __wcscasecmp_l F
+GLIBC_2.12 __wcscat_chk F
+GLIBC_2.12 __wcscoll_l F
+GLIBC_2.12 __wcscpy_chk F
+GLIBC_2.12 __wcsftime_l F
+GLIBC_2.12 __wcsncasecmp_l F
+GLIBC_2.12 __wcsncat_chk F
+GLIBC_2.12 __wcsncpy_chk F
+GLIBC_2.12 __wcsnrtombs_chk F
+GLIBC_2.12 __wcsrtombs_chk F
+GLIBC_2.12 __wcstod_internal F
+GLIBC_2.12 __wcstod_l F
+GLIBC_2.12 __wcstof_internal F
+GLIBC_2.12 __wcstof_l F
+GLIBC_2.12 __wcstol_internal F
+GLIBC_2.12 __wcstol_l F
+GLIBC_2.12 __wcstold_internal F
+GLIBC_2.12 __wcstold_l F
+GLIBC_2.12 __wcstoll_internal F
+GLIBC_2.12 __wcstoll_l F
+GLIBC_2.12 __wcstombs_chk F
+GLIBC_2.12 __wcstoul_internal F
+GLIBC_2.12 __wcstoul_l F
+GLIBC_2.12 __wcstoull_internal F
+GLIBC_2.12 __wcstoull_l F
+GLIBC_2.12 __wcsxfrm_l F
+GLIBC_2.12 __wctomb_chk F
+GLIBC_2.12 __wctrans_l F
+GLIBC_2.12 __wctype_l F
+GLIBC_2.12 __wmemcpy_chk F
+GLIBC_2.12 __wmemmove_chk F
+GLIBC_2.12 __wmempcpy_chk F
+GLIBC_2.12 __wmemset_chk F
+GLIBC_2.12 __woverflow F
+GLIBC_2.12 __wprintf_chk F
+GLIBC_2.12 __write F
+GLIBC_2.12 __wuflow F
+GLIBC_2.12 __wunderflow F
+GLIBC_2.12 __xmknod F
+GLIBC_2.12 __xmknodat F
+GLIBC_2.12 __xpg_basename F
+GLIBC_2.12 __xpg_sigpause F
+GLIBC_2.12 __xpg_strerror_r F
+GLIBC_2.12 __xstat F
+GLIBC_2.12 __xstat64 F
+GLIBC_2.12 _authenticate F
+GLIBC_2.12 _dl_mcount_wrapper F
+GLIBC_2.12 _dl_mcount_wrapper_check F
+GLIBC_2.12 _environ D 0x4
+GLIBC_2.12 _exit F
+GLIBC_2.12 _flush_cache F
+GLIBC_2.12 _flushlbf F
+GLIBC_2.12 _libc_intl_domainname D 0x5
+GLIBC_2.12 _longjmp F
+GLIBC_2.12 _mcleanup F
+GLIBC_2.12 _mcount F
+GLIBC_2.12 _nl_default_dirname D 0x12
+GLIBC_2.12 _nl_domain_bindings D 0x4
+GLIBC_2.12 _nl_msg_cat_cntr D 0x4
+GLIBC_2.12 _null_auth D 0xc
+GLIBC_2.12 _obstack_allocated_p F
+GLIBC_2.12 _obstack_begin F
+GLIBC_2.12 _obstack_begin_1 F
+GLIBC_2.12 _obstack_free F
+GLIBC_2.12 _obstack_memory_used F
+GLIBC_2.12 _obstack_newchunk F
+GLIBC_2.12 _res D 0x200
+GLIBC_2.12 _res_hconf D 0x30
+GLIBC_2.12 _rpc_dtablesize F
+GLIBC_2.12 _seterr_reply F
+GLIBC_2.12 _setjmp F
+GLIBC_2.12 _sys_errlist D 0x21c
+GLIBC_2.12 _sys_nerr D 0x4
+GLIBC_2.12 _sys_siglist D 0x104
+GLIBC_2.12 _tolower F
+GLIBC_2.12 _toupper F
+GLIBC_2.12 a64l F
+GLIBC_2.12 abort F
+GLIBC_2.12 abs F
+GLIBC_2.12 accept F
+GLIBC_2.12 accept4 F
+GLIBC_2.12 access F
+GLIBC_2.12 acct F
+GLIBC_2.12 addmntent F
+GLIBC_2.12 addseverity F
+GLIBC_2.12 adjtime F
+GLIBC_2.12 adjtimex F
+GLIBC_2.12 advance F
+GLIBC_2.12 alarm F
+GLIBC_2.12 alphasort F
+GLIBC_2.12 alphasort64 F
+GLIBC_2.12 argp_err_exit_status D 0x4
+GLIBC_2.12 argp_error F
+GLIBC_2.12 argp_failure F
+GLIBC_2.12 argp_help F
+GLIBC_2.12 argp_parse F
+GLIBC_2.12 argp_program_bug_address D 0x4
+GLIBC_2.12 argp_program_version D 0x4
+GLIBC_2.12 argp_program_version_hook D 0x4
+GLIBC_2.12 argp_state_help F
+GLIBC_2.12 argp_usage F
+GLIBC_2.12 argz_add F
+GLIBC_2.12 argz_add_sep F
+GLIBC_2.12 argz_append F
+GLIBC_2.12 argz_count F
+GLIBC_2.12 argz_create F
+GLIBC_2.12 argz_create_sep F
+GLIBC_2.12 argz_delete F
+GLIBC_2.12 argz_extract F
+GLIBC_2.12 argz_insert F
+GLIBC_2.12 argz_next F
+GLIBC_2.12 argz_replace F
+GLIBC_2.12 argz_stringify F
+GLIBC_2.12 asctime F
+GLIBC_2.12 asctime_r F
+GLIBC_2.12 asprintf F
+GLIBC_2.12 atof F
+GLIBC_2.12 atoi F
+GLIBC_2.12 atol F
+GLIBC_2.12 atoll F
+GLIBC_2.12 authdes_create F
+GLIBC_2.12 authdes_getucred F
+GLIBC_2.12 authdes_pk_create F
+GLIBC_2.12 authnone_create F
+GLIBC_2.12 authunix_create F
+GLIBC_2.12 authunix_create_default F
+GLIBC_2.12 backtrace F
+GLIBC_2.12 backtrace_symbols F
+GLIBC_2.12 backtrace_symbols_fd F
+GLIBC_2.12 basename F
+GLIBC_2.12 bcmp F
+GLIBC_2.12 bcopy F
+GLIBC_2.12 bdflush F
+GLIBC_2.12 bind F
+GLIBC_2.12 bind_textdomain_codeset F
+GLIBC_2.12 bindresvport F
+GLIBC_2.12 bindtextdomain F
+GLIBC_2.12 brk F
+GLIBC_2.12 bsd_signal F
+GLIBC_2.12 bsearch F
+GLIBC_2.12 btowc F
+GLIBC_2.12 bzero F
+GLIBC_2.12 cacheflush F
+GLIBC_2.12 calloc F
+GLIBC_2.12 callrpc F
+GLIBC_2.12 canonicalize_file_name F
+GLIBC_2.12 capget F
+GLIBC_2.12 capset F
+GLIBC_2.12 catclose F
+GLIBC_2.12 catgets F
+GLIBC_2.12 catopen F
+GLIBC_2.12 cbc_crypt F
+GLIBC_2.12 cfgetispeed F
+GLIBC_2.12 cfgetospeed F
+GLIBC_2.12 cfmakeraw F
+GLIBC_2.12 cfree F
+GLIBC_2.12 cfsetispeed F
+GLIBC_2.12 cfsetospeed F
+GLIBC_2.12 cfsetspeed F
+GLIBC_2.12 chdir F
+GLIBC_2.12 chflags F
+GLIBC_2.12 chmod F
+GLIBC_2.12 chown F
+GLIBC_2.12 chroot F
+GLIBC_2.12 clearenv F
+GLIBC_2.12 clearerr F
+GLIBC_2.12 clearerr_unlocked F
+GLIBC_2.12 clnt_broadcast F
+GLIBC_2.12 clnt_create F
+GLIBC_2.12 clnt_pcreateerror F
+GLIBC_2.12 clnt_perrno F
+GLIBC_2.12 clnt_perror F
+GLIBC_2.12 clnt_spcreateerror F
+GLIBC_2.12 clnt_sperrno F
+GLIBC_2.12 clnt_sperror F
+GLIBC_2.12 clntraw_create F
+GLIBC_2.12 clnttcp_create F
+GLIBC_2.12 clntudp_bufcreate F
+GLIBC_2.12 clntudp_create F
+GLIBC_2.12 clntunix_create F
+GLIBC_2.12 clock F
+GLIBC_2.12 clone F
+GLIBC_2.12 close F
+GLIBC_2.12 closedir F
+GLIBC_2.12 closelog F
+GLIBC_2.12 confstr F
+GLIBC_2.12 connect F
+GLIBC_2.12 copysign F
+GLIBC_2.12 copysignf F
+GLIBC_2.12 copysignl F
+GLIBC_2.12 creat F
+GLIBC_2.12 creat64 F
+GLIBC_2.12 create_module F
+GLIBC_2.12 ctermid F
+GLIBC_2.12 ctime F
+GLIBC_2.12 ctime_r F
+GLIBC_2.12 cuserid F
+GLIBC_2.12 daemon F
+GLIBC_2.12 daylight D 0x4
+GLIBC_2.12 dcgettext F
+GLIBC_2.12 dcngettext F
+GLIBC_2.12 delete_module F
+GLIBC_2.12 des_setparity F
+GLIBC_2.12 dgettext F
+GLIBC_2.12 difftime F
+GLIBC_2.12 dirfd F
+GLIBC_2.12 dirname F
+GLIBC_2.12 div F
+GLIBC_2.12 dl_iterate_phdr F
+GLIBC_2.12 dngettext F
+GLIBC_2.12 dprintf F
+GLIBC_2.12 drand48 F
+GLIBC_2.12 drand48_r F
+GLIBC_2.12 dup F
+GLIBC_2.12 dup2 F
+GLIBC_2.12 dup3 F
+GLIBC_2.12 duplocale F
+GLIBC_2.12 dysize F
+GLIBC_2.12 eaccess F
+GLIBC_2.12 ecb_crypt F
+GLIBC_2.12 ecvt F
+GLIBC_2.12 ecvt_r F
+GLIBC_2.12 endaliasent F
+GLIBC_2.12 endfsent F
+GLIBC_2.12 endgrent F
+GLIBC_2.12 endhostent F
+GLIBC_2.12 endmntent F
+GLIBC_2.12 endnetent F
+GLIBC_2.12 endnetgrent F
+GLIBC_2.12 endprotoent F
+GLIBC_2.12 endpwent F
+GLIBC_2.12 endrpcent F
+GLIBC_2.12 endservent F
+GLIBC_2.12 endsgent F
+GLIBC_2.12 endspent F
+GLIBC_2.12 endttyent F
+GLIBC_2.12 endusershell F
+GLIBC_2.12 endutent F
+GLIBC_2.12 endutxent F
+GLIBC_2.12 environ D 0x4
+GLIBC_2.12 envz_add F
+GLIBC_2.12 envz_entry F
+GLIBC_2.12 envz_get F
+GLIBC_2.12 envz_merge F
+GLIBC_2.12 envz_remove F
+GLIBC_2.12 envz_strip F
+GLIBC_2.12 epoll_create F
+GLIBC_2.12 epoll_create1 F
+GLIBC_2.12 epoll_ctl F
+GLIBC_2.12 epoll_pwait F
+GLIBC_2.12 epoll_wait F
+GLIBC_2.12 erand48 F
+GLIBC_2.12 erand48_r F
+GLIBC_2.12 err F
+GLIBC_2.12 error F
+GLIBC_2.12 error_at_line F
+GLIBC_2.12 error_message_count D 0x4
+GLIBC_2.12 error_one_per_line D 0x4
+GLIBC_2.12 error_print_progname D 0x4
+GLIBC_2.12 errx F
+GLIBC_2.12 ether_aton F
+GLIBC_2.12 ether_aton_r F
+GLIBC_2.12 ether_hostton F
+GLIBC_2.12 ether_line F
+GLIBC_2.12 ether_ntoa F
+GLIBC_2.12 ether_ntoa_r F
+GLIBC_2.12 ether_ntohost F
+GLIBC_2.12 euidaccess F
+GLIBC_2.12 eventfd F
+GLIBC_2.12 eventfd_read F
+GLIBC_2.12 eventfd_write F
+GLIBC_2.12 execl F
+GLIBC_2.12 execle F
+GLIBC_2.12 execlp F
+GLIBC_2.12 execv F
+GLIBC_2.12 execve F
+GLIBC_2.12 execvp F
+GLIBC_2.12 execvpe F
+GLIBC_2.12 exit F
+GLIBC_2.12 faccessat F
+GLIBC_2.12 fallocate F
+GLIBC_2.12 fallocate64 F
+GLIBC_2.12 fattach F
+GLIBC_2.12 fchdir F
+GLIBC_2.12 fchflags F
+GLIBC_2.12 fchmod F
+GLIBC_2.12 fchmodat F
+GLIBC_2.12 fchown F
+GLIBC_2.12 fchownat F
+GLIBC_2.12 fclose F
+GLIBC_2.12 fcloseall F
+GLIBC_2.12 fcntl F
+GLIBC_2.12 fcvt F
+GLIBC_2.12 fcvt_r F
+GLIBC_2.12 fdatasync F
+GLIBC_2.12 fdetach F
+GLIBC_2.12 fdopen F
+GLIBC_2.12 fdopendir F
+GLIBC_2.12 feof F
+GLIBC_2.12 feof_unlocked F
+GLIBC_2.12 ferror F
+GLIBC_2.12 ferror_unlocked F
+GLIBC_2.12 fexecve F
+GLIBC_2.12 fflush F
+GLIBC_2.12 fflush_unlocked F
+GLIBC_2.12 ffs F
+GLIBC_2.12 ffsl F
+GLIBC_2.12 ffsll F
+GLIBC_2.12 fgetc F
+GLIBC_2.12 fgetc_unlocked F
+GLIBC_2.12 fgetgrent F
+GLIBC_2.12 fgetgrent_r F
+GLIBC_2.12 fgetpos F
+GLIBC_2.12 fgetpos64 F
+GLIBC_2.12 fgetpwent F
+GLIBC_2.12 fgetpwent_r F
+GLIBC_2.12 fgets F
+GLIBC_2.12 fgets_unlocked F
+GLIBC_2.12 fgetsgent F
+GLIBC_2.12 fgetsgent_r F
+GLIBC_2.12 fgetspent F
+GLIBC_2.12 fgetspent_r F
+GLIBC_2.12 fgetwc F
+GLIBC_2.12 fgetwc_unlocked F
+GLIBC_2.12 fgetws F
+GLIBC_2.12 fgetws_unlocked F
+GLIBC_2.12 fgetxattr F
+GLIBC_2.12 fileno F
+GLIBC_2.12 fileno_unlocked F
+GLIBC_2.12 finite F
+GLIBC_2.12 finitef F
+GLIBC_2.12 finitel F
+GLIBC_2.12 flistxattr F
+GLIBC_2.12 flock F
+GLIBC_2.12 flockfile F
+GLIBC_2.12 fmemopen F
+GLIBC_2.12 fmtmsg F
+GLIBC_2.12 fnmatch F
+GLIBC_2.12 fopen F
+GLIBC_2.12 fopen64 F
+GLIBC_2.12 fopencookie F
+GLIBC_2.12 fork F
+GLIBC_2.12 fpathconf F
+GLIBC_2.12 fprintf F
+GLIBC_2.12 fputc F
+GLIBC_2.12 fputc_unlocked F
+GLIBC_2.12 fputs F
+GLIBC_2.12 fputs_unlocked F
+GLIBC_2.12 fputwc F
+GLIBC_2.12 fputwc_unlocked F
+GLIBC_2.12 fputws F
+GLIBC_2.12 fputws_unlocked F
+GLIBC_2.12 fread F
+GLIBC_2.12 fread_unlocked F
+GLIBC_2.12 free F
+GLIBC_2.12 freeaddrinfo F
+GLIBC_2.12 freeifaddrs F
+GLIBC_2.12 freelocale F
+GLIBC_2.12 fremovexattr F
+GLIBC_2.12 freopen F
+GLIBC_2.12 freopen64 F
+GLIBC_2.12 frexp F
+GLIBC_2.12 frexpf F
+GLIBC_2.12 frexpl F
+GLIBC_2.12 fscanf F
+GLIBC_2.12 fseek F
+GLIBC_2.12 fseeko F
+GLIBC_2.12 fseeko64 F
+GLIBC_2.12 fsetpos F
+GLIBC_2.12 fsetpos64 F
+GLIBC_2.12 fsetxattr F
+GLIBC_2.12 fstatfs F
+GLIBC_2.12 fstatfs64 F
+GLIBC_2.12 fstatvfs F
+GLIBC_2.12 fstatvfs64 F
+GLIBC_2.12 fsync F
+GLIBC_2.12 ftell F
+GLIBC_2.12 ftello F
+GLIBC_2.12 ftello64 F
+GLIBC_2.12 ftime F
+GLIBC_2.12 ftok F
+GLIBC_2.12 ftruncate F
+GLIBC_2.12 ftruncate64 F
+GLIBC_2.12 ftrylockfile F
+GLIBC_2.12 fts_children F
+GLIBC_2.12 fts_close F
+GLIBC_2.12 fts_open F
+GLIBC_2.12 fts_read F
+GLIBC_2.12 fts_set F
+GLIBC_2.12 ftw F
+GLIBC_2.12 ftw64 F
+GLIBC_2.12 funlockfile F
+GLIBC_2.12 futimens F
+GLIBC_2.12 futimes F
+GLIBC_2.12 futimesat F
+GLIBC_2.12 fwide F
+GLIBC_2.12 fwprintf F
+GLIBC_2.12 fwrite F
+GLIBC_2.12 fwrite_unlocked F
+GLIBC_2.12 fwscanf F
+GLIBC_2.12 gai_strerror F
+GLIBC_2.12 gcvt F
+GLIBC_2.12 get_avphys_pages F
+GLIBC_2.12 get_current_dir_name F
+GLIBC_2.12 get_kernel_syms F
+GLIBC_2.12 get_myaddress F
+GLIBC_2.12 get_nprocs F
+GLIBC_2.12 get_nprocs_conf F
+GLIBC_2.12 get_phys_pages F
+GLIBC_2.12 getaddrinfo F
+GLIBC_2.12 getaliasbyname F
+GLIBC_2.12 getaliasbyname_r F
+GLIBC_2.12 getaliasent F
+GLIBC_2.12 getaliasent_r F
+GLIBC_2.12 getc F
+GLIBC_2.12 getc_unlocked F
+GLIBC_2.12 getchar F
+GLIBC_2.12 getchar_unlocked F
+GLIBC_2.12 getcontext F
+GLIBC_2.12 getcwd F
+GLIBC_2.12 getdate F
+GLIBC_2.12 getdate_err D 0x4
+GLIBC_2.12 getdate_r F
+GLIBC_2.12 getdelim F
+GLIBC_2.12 getdirentries F
+GLIBC_2.12 getdirentries64 F
+GLIBC_2.12 getdomainname F
+GLIBC_2.12 getdtablesize F
+GLIBC_2.12 getegid F
+GLIBC_2.12 getenv F
+GLIBC_2.12 geteuid F
+GLIBC_2.12 getfsent F
+GLIBC_2.12 getfsfile F
+GLIBC_2.12 getfsspec F
+GLIBC_2.12 getgid F
+GLIBC_2.12 getgrent F
+GLIBC_2.12 getgrent_r F
+GLIBC_2.12 getgrgid F
+GLIBC_2.12 getgrgid_r F
+GLIBC_2.12 getgrnam F
+GLIBC_2.12 getgrnam_r F
+GLIBC_2.12 getgrouplist F
+GLIBC_2.12 getgroups F
+GLIBC_2.12 gethostbyaddr F
+GLIBC_2.12 gethostbyaddr_r F
+GLIBC_2.12 gethostbyname F
+GLIBC_2.12 gethostbyname2 F
+GLIBC_2.12 gethostbyname2_r F
+GLIBC_2.12 gethostbyname_r F
+GLIBC_2.12 gethostent F
+GLIBC_2.12 gethostent_r F
+GLIBC_2.12 gethostid F
+GLIBC_2.12 gethostname F
+GLIBC_2.12 getifaddrs F
+GLIBC_2.12 getipv4sourcefilter F
+GLIBC_2.12 getitimer F
+GLIBC_2.12 getline F
+GLIBC_2.12 getloadavg F
+GLIBC_2.12 getlogin F
+GLIBC_2.12 getlogin_r F
+GLIBC_2.12 getmntent F
+GLIBC_2.12 getmntent_r F
+GLIBC_2.12 getmsg F
+GLIBC_2.12 getnameinfo F
+GLIBC_2.12 getnetbyaddr F
+GLIBC_2.12 getnetbyaddr_r F
+GLIBC_2.12 getnetbyname F
+GLIBC_2.12 getnetbyname_r F
+GLIBC_2.12 getnetent F
+GLIBC_2.12 getnetent_r F
+GLIBC_2.12 getnetgrent F
+GLIBC_2.12 getnetgrent_r F
+GLIBC_2.12 getnetname F
+GLIBC_2.12 getopt F
+GLIBC_2.12 getopt_long F
+GLIBC_2.12 getopt_long_only F
+GLIBC_2.12 getpagesize F
+GLIBC_2.12 getpass F
+GLIBC_2.12 getpeername F
+GLIBC_2.12 getpgid F
+GLIBC_2.12 getpgrp F
+GLIBC_2.12 getpid F
+GLIBC_2.12 getpmsg F
+GLIBC_2.12 getppid F
+GLIBC_2.12 getpriority F
+GLIBC_2.12 getprotobyname F
+GLIBC_2.12 getprotobyname_r F
+GLIBC_2.12 getprotobynumber F
+GLIBC_2.12 getprotobynumber_r F
+GLIBC_2.12 getprotoent F
+GLIBC_2.12 getprotoent_r F
+GLIBC_2.12 getpt F
+GLIBC_2.12 getpublickey F
+GLIBC_2.12 getpw F
+GLIBC_2.12 getpwent F
+GLIBC_2.12 getpwent_r F
+GLIBC_2.12 getpwnam F
+GLIBC_2.12 getpwnam_r F
+GLIBC_2.12 getpwuid F
+GLIBC_2.12 getpwuid_r F
+GLIBC_2.12 getresgid F
+GLIBC_2.12 getresuid F
+GLIBC_2.12 getrlimit F
+GLIBC_2.12 getrlimit64 F
+GLIBC_2.12 getrpcbyname F
+GLIBC_2.12 getrpcbyname_r F
+GLIBC_2.12 getrpcbynumber F
+GLIBC_2.12 getrpcbynumber_r F
+GLIBC_2.12 getrpcent F
+GLIBC_2.12 getrpcent_r F
+GLIBC_2.12 getrpcport F
+GLIBC_2.12 getrusage F
+GLIBC_2.12 gets F
+GLIBC_2.12 getsecretkey F
+GLIBC_2.12 getservbyname F
+GLIBC_2.12 getservbyname_r F
+GLIBC_2.12 getservbyport F
+GLIBC_2.12 getservbyport_r F
+GLIBC_2.12 getservent F
+GLIBC_2.12 getservent_r F
+GLIBC_2.12 getsgent F
+GLIBC_2.12 getsgent_r F
+GLIBC_2.12 getsgnam F
+GLIBC_2.12 getsgnam_r F
+GLIBC_2.12 getsid F
+GLIBC_2.12 getsockname F
+GLIBC_2.12 getsockopt F
+GLIBC_2.12 getsourcefilter F
+GLIBC_2.12 getspent F
+GLIBC_2.12 getspent_r F
+GLIBC_2.12 getspnam F
+GLIBC_2.12 getspnam_r F
+GLIBC_2.12 getsubopt F
+GLIBC_2.12 gettext F
+GLIBC_2.12 gettimeofday F
+GLIBC_2.12 getttyent F
+GLIBC_2.12 getttynam F
+GLIBC_2.12 getuid F
+GLIBC_2.12 getusershell F
+GLIBC_2.12 getutent F
+GLIBC_2.12 getutent_r F
+GLIBC_2.12 getutid F
+GLIBC_2.12 getutid_r F
+GLIBC_2.12 getutline F
+GLIBC_2.12 getutline_r F
+GLIBC_2.12 getutmp F
+GLIBC_2.12 getutmpx F
+GLIBC_2.12 getutxent F
+GLIBC_2.12 getutxid F
+GLIBC_2.12 getutxline F
+GLIBC_2.12 getw F
+GLIBC_2.12 getwc F
+GLIBC_2.12 getwc_unlocked F
+GLIBC_2.12 getwchar F
+GLIBC_2.12 getwchar_unlocked F
+GLIBC_2.12 getwd F
+GLIBC_2.12 getxattr F
+GLIBC_2.12 glob F
+GLIBC_2.12 glob64 F
+GLIBC_2.12 glob_pattern_p F
+GLIBC_2.12 globfree F
+GLIBC_2.12 globfree64 F
+GLIBC_2.12 gmtime F
+GLIBC_2.12 gmtime_r F
+GLIBC_2.12 gnu_dev_major F
+GLIBC_2.12 gnu_dev_makedev F
+GLIBC_2.12 gnu_dev_minor F
+GLIBC_2.12 gnu_get_libc_release F
+GLIBC_2.12 gnu_get_libc_version F
+GLIBC_2.12 grantpt F
+GLIBC_2.12 group_member F
+GLIBC_2.12 gsignal F
+GLIBC_2.12 gtty F
+GLIBC_2.12 h_errlist D 0x14
+GLIBC_2.12 h_nerr D 0x4
+GLIBC_2.12 hasmntopt F
+GLIBC_2.12 hcreate F
+GLIBC_2.12 hcreate_r F
+GLIBC_2.12 hdestroy F
+GLIBC_2.12 hdestroy_r F
+GLIBC_2.12 herror F
+GLIBC_2.12 host2netname F
+GLIBC_2.12 hsearch F
+GLIBC_2.12 hsearch_r F
+GLIBC_2.12 hstrerror F
+GLIBC_2.12 htonl F
+GLIBC_2.12 htons F
+GLIBC_2.12 iconv F
+GLIBC_2.12 iconv_close F
+GLIBC_2.12 iconv_open F
+GLIBC_2.12 if_freenameindex F
+GLIBC_2.12 if_indextoname F
+GLIBC_2.12 if_nameindex F
+GLIBC_2.12 if_nametoindex F
+GLIBC_2.12 imaxabs F
+GLIBC_2.12 imaxdiv F
+GLIBC_2.12 in6addr_any D 0x10
+GLIBC_2.12 in6addr_loopback D 0x10
+GLIBC_2.12 index F
+GLIBC_2.12 inet6_opt_append F
+GLIBC_2.12 inet6_opt_find F
+GLIBC_2.12 inet6_opt_finish F
+GLIBC_2.12 inet6_opt_get_val F
+GLIBC_2.12 inet6_opt_init F
+GLIBC_2.12 inet6_opt_next F
+GLIBC_2.12 inet6_opt_set_val F
+GLIBC_2.12 inet6_option_alloc F
+GLIBC_2.12 inet6_option_append F
+GLIBC_2.12 inet6_option_find F
+GLIBC_2.12 inet6_option_init F
+GLIBC_2.12 inet6_option_next F
+GLIBC_2.12 inet6_option_space F
+GLIBC_2.12 inet6_rth_add F
+GLIBC_2.12 inet6_rth_getaddr F
+GLIBC_2.12 inet6_rth_init F
+GLIBC_2.12 inet6_rth_reverse F
+GLIBC_2.12 inet6_rth_segments F
+GLIBC_2.12 inet6_rth_space F
+GLIBC_2.12 inet_addr F
+GLIBC_2.12 inet_aton F
+GLIBC_2.12 inet_lnaof F
+GLIBC_2.12 inet_makeaddr F
+GLIBC_2.12 inet_netof F
+GLIBC_2.12 inet_network F
+GLIBC_2.12 inet_nsap_addr F
+GLIBC_2.12 inet_nsap_ntoa F
+GLIBC_2.12 inet_ntoa F
+GLIBC_2.12 inet_ntop F
+GLIBC_2.12 inet_pton F
+GLIBC_2.12 init_module F
+GLIBC_2.12 initgroups F
+GLIBC_2.12 initstate F
+GLIBC_2.12 initstate_r F
+GLIBC_2.12 innetgr F
+GLIBC_2.12 inotify_add_watch F
+GLIBC_2.12 inotify_init F
+GLIBC_2.12 inotify_init1 F
+GLIBC_2.12 inotify_rm_watch F
+GLIBC_2.12 insque F
+GLIBC_2.12 ioctl F
+GLIBC_2.12 iruserok F
+GLIBC_2.12 iruserok_af F
+GLIBC_2.12 isalnum F
+GLIBC_2.12 isalnum_l F
+GLIBC_2.12 isalpha F
+GLIBC_2.12 isalpha_l F
+GLIBC_2.12 isascii F
+GLIBC_2.12 isastream F
+GLIBC_2.12 isatty F
+GLIBC_2.12 isblank F
+GLIBC_2.12 isblank_l F
+GLIBC_2.12 iscntrl F
+GLIBC_2.12 iscntrl_l F
+GLIBC_2.12 isctype F
+GLIBC_2.12 isdigit F
+GLIBC_2.12 isdigit_l F
+GLIBC_2.12 isfdtype F
+GLIBC_2.12 isgraph F
+GLIBC_2.12 isgraph_l F
+GLIBC_2.12 isinf F
+GLIBC_2.12 isinff F
+GLIBC_2.12 isinfl F
+GLIBC_2.12 islower F
+GLIBC_2.12 islower_l F
+GLIBC_2.12 isnan F
+GLIBC_2.12 isnanf F
+GLIBC_2.12 isnanl F
+GLIBC_2.12 isprint F
+GLIBC_2.12 isprint_l F
+GLIBC_2.12 ispunct F
+GLIBC_2.12 ispunct_l F
+GLIBC_2.12 isspace F
+GLIBC_2.12 isspace_l F
+GLIBC_2.12 isupper F
+GLIBC_2.12 isupper_l F
+GLIBC_2.12 iswalnum F
+GLIBC_2.12 iswalnum_l F
+GLIBC_2.12 iswalpha F
+GLIBC_2.12 iswalpha_l F
+GLIBC_2.12 iswblank F
+GLIBC_2.12 iswblank_l F
+GLIBC_2.12 iswcntrl F
+GLIBC_2.12 iswcntrl_l F
+GLIBC_2.12 iswctype F
+GLIBC_2.12 iswctype_l F
+GLIBC_2.12 iswdigit F
+GLIBC_2.12 iswdigit_l F
+GLIBC_2.12 iswgraph F
+GLIBC_2.12 iswgraph_l F
+GLIBC_2.12 iswlower F
+GLIBC_2.12 iswlower_l F
+GLIBC_2.12 iswprint F
+GLIBC_2.12 iswprint_l F
+GLIBC_2.12 iswpunct F
+GLIBC_2.12 iswpunct_l F
+GLIBC_2.12 iswspace F
+GLIBC_2.12 iswspace_l F
+GLIBC_2.12 iswupper F
+GLIBC_2.12 iswupper_l F
+GLIBC_2.12 iswxdigit F
+GLIBC_2.12 iswxdigit_l F
+GLIBC_2.12 isxdigit F
+GLIBC_2.12 isxdigit_l F
+GLIBC_2.12 jrand48 F
+GLIBC_2.12 jrand48_r F
+GLIBC_2.12 key_decryptsession F
+GLIBC_2.12 key_decryptsession_pk F
+GLIBC_2.12 key_encryptsession F
+GLIBC_2.12 key_encryptsession_pk F
+GLIBC_2.12 key_gendes F
+GLIBC_2.12 key_get_conv F
+GLIBC_2.12 key_secretkey_is_set F
+GLIBC_2.12 key_setnet F
+GLIBC_2.12 key_setsecret F
+GLIBC_2.12 kill F
+GLIBC_2.12 killpg F
+GLIBC_2.12 klogctl F
+GLIBC_2.12 l64a F
+GLIBC_2.12 labs F
+GLIBC_2.12 lchmod F
+GLIBC_2.12 lchown F
+GLIBC_2.12 lckpwdf F
+GLIBC_2.12 lcong48 F
+GLIBC_2.12 lcong48_r F
+GLIBC_2.12 ldexp F
+GLIBC_2.12 ldexpf F
+GLIBC_2.12 ldexpl F
+GLIBC_2.12 ldiv F
+GLIBC_2.12 lfind F
+GLIBC_2.12 lgetxattr F
+GLIBC_2.12 link F
+GLIBC_2.12 linkat F
+GLIBC_2.12 listen F
+GLIBC_2.12 listxattr F
+GLIBC_2.12 llabs F
+GLIBC_2.12 lldiv F
+GLIBC_2.12 llistxattr F
+GLIBC_2.12 llseek F
+GLIBC_2.12 loc1 D 0x4
+GLIBC_2.12 loc2 D 0x4
+GLIBC_2.12 localeconv F
+GLIBC_2.12 localtime F
+GLIBC_2.12 localtime_r F
+GLIBC_2.12 lockf F
+GLIBC_2.12 lockf64 F
+GLIBC_2.12 locs D 0x4
+GLIBC_2.12 longjmp F
+GLIBC_2.12 lrand48 F
+GLIBC_2.12 lrand48_r F
+GLIBC_2.12 lremovexattr F
+GLIBC_2.12 lsearch F
+GLIBC_2.12 lseek F
+GLIBC_2.12 lseek64 F
+GLIBC_2.12 lsetxattr F
+GLIBC_2.12 lutimes F
+GLIBC_2.12 madvise F
+GLIBC_2.12 makecontext F
+GLIBC_2.12 mallinfo F
+GLIBC_2.12 malloc F
+GLIBC_2.12 malloc_get_state F
+GLIBC_2.12 malloc_info F
+GLIBC_2.12 malloc_set_state F
+GLIBC_2.12 malloc_stats F
+GLIBC_2.12 malloc_trim F
+GLIBC_2.12 malloc_usable_size F
+GLIBC_2.12 mallopt F
+GLIBC_2.12 mallwatch D 0x4
+GLIBC_2.12 mblen F
+GLIBC_2.12 mbrlen F
+GLIBC_2.12 mbrtowc F
+GLIBC_2.12 mbsinit F
+GLIBC_2.12 mbsnrtowcs F
+GLIBC_2.12 mbsrtowcs F
+GLIBC_2.12 mbstowcs F
+GLIBC_2.12 mbtowc F
+GLIBC_2.12 mcheck F
+GLIBC_2.12 mcheck_check_all F
+GLIBC_2.12 mcheck_pedantic F
+GLIBC_2.12 mcount F
+GLIBC_2.12 memalign F
+GLIBC_2.12 memccpy F
+GLIBC_2.12 memchr F
+GLIBC_2.12 memcmp F
+GLIBC_2.12 memcpy F
+GLIBC_2.12 memfrob F
+GLIBC_2.12 memmem F
+GLIBC_2.12 memmove F
+GLIBC_2.12 mempcpy F
+GLIBC_2.12 memrchr F
+GLIBC_2.12 memset F
+GLIBC_2.12 mincore F
+GLIBC_2.12 mkdir F
+GLIBC_2.12 mkdirat F
+GLIBC_2.12 mkdtemp F
+GLIBC_2.12 mkfifo F
+GLIBC_2.12 mkfifoat F
+GLIBC_2.12 mkostemp F
+GLIBC_2.12 mkostemp64 F
+GLIBC_2.12 mkostemps F
+GLIBC_2.12 mkostemps64 F
+GLIBC_2.12 mkstemp F
+GLIBC_2.12 mkstemp64 F
+GLIBC_2.12 mkstemps F
+GLIBC_2.12 mkstemps64 F
+GLIBC_2.12 mktemp F
+GLIBC_2.12 mktime F
+GLIBC_2.12 mlock F
+GLIBC_2.12 mlockall F
+GLIBC_2.12 mmap F
+GLIBC_2.12 mmap64 F
+GLIBC_2.12 modf F
+GLIBC_2.12 modff F
+GLIBC_2.12 modfl F
+GLIBC_2.12 moncontrol F
+GLIBC_2.12 monstartup F
+GLIBC_2.12 mount F
+GLIBC_2.12 mprobe F
+GLIBC_2.12 mprotect F
+GLIBC_2.12 mrand48 F
+GLIBC_2.12 mrand48_r F
+GLIBC_2.12 mremap F
+GLIBC_2.12 msgctl F
+GLIBC_2.12 msgget F
+GLIBC_2.12 msgrcv F
+GLIBC_2.12 msgsnd F
+GLIBC_2.12 msync F
+GLIBC_2.12 mtrace F
+GLIBC_2.12 munlock F
+GLIBC_2.12 munlockall F
+GLIBC_2.12 munmap F
+GLIBC_2.12 muntrace F
+GLIBC_2.12 nanosleep F
+GLIBC_2.12 netname2host F
+GLIBC_2.12 netname2user F
+GLIBC_2.12 newlocale F
+GLIBC_2.12 nfsservctl F
+GLIBC_2.12 nftw F
+GLIBC_2.12 nftw64 F
+GLIBC_2.12 ngettext F
+GLIBC_2.12 nice F
+GLIBC_2.12 nl_langinfo F
+GLIBC_2.12 nl_langinfo_l F
+GLIBC_2.12 nrand48 F
+GLIBC_2.12 nrand48_r F
+GLIBC_2.12 ntohl F
+GLIBC_2.12 ntohs F
+GLIBC_2.12 ntp_adjtime F
+GLIBC_2.12 ntp_gettime F
+GLIBC_2.12 ntp_gettimex F
+GLIBC_2.12 obstack_alloc_failed_handler D 0x4
+GLIBC_2.12 obstack_exit_failure D 0x4
+GLIBC_2.12 obstack_free F
+GLIBC_2.12 obstack_printf F
+GLIBC_2.12 obstack_vprintf F
+GLIBC_2.12 on_exit F
+GLIBC_2.12 open F
+GLIBC_2.12 open64 F
+GLIBC_2.12 open_memstream F
+GLIBC_2.12 open_wmemstream F
+GLIBC_2.12 openat F
+GLIBC_2.12 openat64 F
+GLIBC_2.12 opendir F
+GLIBC_2.12 openlog F
+GLIBC_2.12 optarg D 0x4
+GLIBC_2.12 opterr D 0x4
+GLIBC_2.12 optind D 0x4
+GLIBC_2.12 optopt D 0x4
+GLIBC_2.12 parse_printf_format F
+GLIBC_2.12 passwd2des F
+GLIBC_2.12 pathconf F
+GLIBC_2.12 pause F
+GLIBC_2.12 pclose F
+GLIBC_2.12 perror F
+GLIBC_2.12 personality F
+GLIBC_2.12 pipe F
+GLIBC_2.12 pipe2 F
+GLIBC_2.12 pivot_root F
+GLIBC_2.12 pmap_getmaps F
+GLIBC_2.12 pmap_getport F
+GLIBC_2.12 pmap_rmtcall F
+GLIBC_2.12 pmap_set F
+GLIBC_2.12 pmap_unset F
+GLIBC_2.12 poll F
+GLIBC_2.12 popen F
+GLIBC_2.12 posix_fadvise F
+GLIBC_2.12 posix_fadvise64 F
+GLIBC_2.12 posix_fallocate F
+GLIBC_2.12 posix_fallocate64 F
+GLIBC_2.12 posix_madvise F
+GLIBC_2.12 posix_memalign F
+GLIBC_2.12 posix_openpt F
+GLIBC_2.12 posix_spawn F
+GLIBC_2.12 posix_spawn_file_actions_addclose F
+GLIBC_2.12 posix_spawn_file_actions_adddup2 F
+GLIBC_2.12 posix_spawn_file_actions_addopen F
+GLIBC_2.12 posix_spawn_file_actions_destroy F
+GLIBC_2.12 posix_spawn_file_actions_init F
+GLIBC_2.12 posix_spawnattr_destroy F
+GLIBC_2.12 posix_spawnattr_getflags F
+GLIBC_2.12 posix_spawnattr_getpgroup F
+GLIBC_2.12 posix_spawnattr_getschedparam F
+GLIBC_2.12 posix_spawnattr_getschedpolicy F
+GLIBC_2.12 posix_spawnattr_getsigdefault F
+GLIBC_2.12 posix_spawnattr_getsigmask F
+GLIBC_2.12 posix_spawnattr_init F
+GLIBC_2.12 posix_spawnattr_setflags F
+GLIBC_2.12 posix_spawnattr_setpgroup F
+GLIBC_2.12 posix_spawnattr_setschedparam F
+GLIBC_2.12 posix_spawnattr_setschedpolicy F
+GLIBC_2.12 posix_spawnattr_setsigdefault F
+GLIBC_2.12 posix_spawnattr_setsigmask F
+GLIBC_2.12 posix_spawnp F
+GLIBC_2.12 ppoll F
+GLIBC_2.12 prctl F
+GLIBC_2.12 pread F
+GLIBC_2.12 pread64 F
+GLIBC_2.12 preadv F
+GLIBC_2.12 preadv64 F
+GLIBC_2.12 printf F
+GLIBC_2.12 printf_size F
+GLIBC_2.12 printf_size_info F
+GLIBC_2.12 profil F
+GLIBC_2.12 program_invocation_name D 0x4
+GLIBC_2.12 program_invocation_short_name D 0x4
+GLIBC_2.12 pselect F
+GLIBC_2.12 psiginfo F
+GLIBC_2.12 psignal F
+GLIBC_2.12 pthread_attr_destroy F
+GLIBC_2.12 pthread_attr_getdetachstate F
+GLIBC_2.12 pthread_attr_getinheritsched F
+GLIBC_2.12 pthread_attr_getschedparam F
+GLIBC_2.12 pthread_attr_getschedpolicy F
+GLIBC_2.12 pthread_attr_getscope F
+GLIBC_2.12 pthread_attr_init F
+GLIBC_2.12 pthread_attr_setdetachstate F
+GLIBC_2.12 pthread_attr_setinheritsched F
+GLIBC_2.12 pthread_attr_setschedparam F
+GLIBC_2.12 pthread_attr_setschedpolicy F
+GLIBC_2.12 pthread_attr_setscope F
+GLIBC_2.12 pthread_cond_broadcast F
+GLIBC_2.12 pthread_cond_destroy F
+GLIBC_2.12 pthread_cond_init F
+GLIBC_2.12 pthread_cond_signal F
+GLIBC_2.12 pthread_cond_timedwait F
+GLIBC_2.12 pthread_cond_wait F
+GLIBC_2.12 pthread_condattr_destroy F
+GLIBC_2.12 pthread_condattr_init F
+GLIBC_2.12 pthread_equal F
+GLIBC_2.12 pthread_exit F
+GLIBC_2.12 pthread_getschedparam F
+GLIBC_2.12 pthread_mutex_destroy F
+GLIBC_2.12 pthread_mutex_init F
+GLIBC_2.12 pthread_mutex_lock F
+GLIBC_2.12 pthread_mutex_unlock F
+GLIBC_2.12 pthread_self F
+GLIBC_2.12 pthread_setcancelstate F
+GLIBC_2.12 pthread_setcanceltype F
+GLIBC_2.12 pthread_setschedparam F
+GLIBC_2.12 ptrace F
+GLIBC_2.12 ptsname F
+GLIBC_2.12 ptsname_r F
+GLIBC_2.12 putc F
+GLIBC_2.12 putc_unlocked F
+GLIBC_2.12 putchar F
+GLIBC_2.12 putchar_unlocked F
+GLIBC_2.12 putenv F
+GLIBC_2.12 putgrent F
+GLIBC_2.12 putmsg F
+GLIBC_2.12 putpmsg F
+GLIBC_2.12 putpwent F
+GLIBC_2.12 puts F
+GLIBC_2.12 putsgent F
+GLIBC_2.12 putspent F
+GLIBC_2.12 pututline F
+GLIBC_2.12 pututxline F
+GLIBC_2.12 putw F
+GLIBC_2.12 putwc F
+GLIBC_2.12 putwc_unlocked F
+GLIBC_2.12 putwchar F
+GLIBC_2.12 putwchar_unlocked F
+GLIBC_2.12 pvalloc F
+GLIBC_2.12 pwrite F
+GLIBC_2.12 pwrite64 F
+GLIBC_2.12 pwritev F
+GLIBC_2.12 pwritev64 F
+GLIBC_2.12 qecvt F
+GLIBC_2.12 qecvt_r F
+GLIBC_2.12 qfcvt F
+GLIBC_2.12 qfcvt_r F
+GLIBC_2.12 qgcvt F
+GLIBC_2.12 qsort F
+GLIBC_2.12 qsort_r F
+GLIBC_2.12 query_module F
+GLIBC_2.12 quick_exit F
+GLIBC_2.12 quotactl F
+GLIBC_2.12 raise F
+GLIBC_2.12 rand F
+GLIBC_2.12 rand_r F
+GLIBC_2.12 random F
+GLIBC_2.12 random_r F
+GLIBC_2.12 rawmemchr F
+GLIBC_2.12 rcmd F
+GLIBC_2.12 rcmd_af F
+GLIBC_2.12 re_comp F
+GLIBC_2.12 re_compile_fastmap F
+GLIBC_2.12 re_compile_pattern F
+GLIBC_2.12 re_exec F
+GLIBC_2.12 re_match F
+GLIBC_2.12 re_match_2 F
+GLIBC_2.12 re_search F
+GLIBC_2.12 re_search_2 F
+GLIBC_2.12 re_set_registers F
+GLIBC_2.12 re_set_syntax F
+GLIBC_2.12 re_syntax_options D 0x4
+GLIBC_2.12 read F
+GLIBC_2.12 readahead F
+GLIBC_2.12 readdir F
+GLIBC_2.12 readdir64 F
+GLIBC_2.12 readdir64_r F
+GLIBC_2.12 readdir_r F
+GLIBC_2.12 readlink F
+GLIBC_2.12 readlinkat F
+GLIBC_2.12 readv F
+GLIBC_2.12 realloc F
+GLIBC_2.12 realpath F
+GLIBC_2.12 reboot F
+GLIBC_2.12 recv F
+GLIBC_2.12 recvfrom F
+GLIBC_2.12 recvmmsg F
+GLIBC_2.12 recvmsg F
+GLIBC_2.12 regcomp F
+GLIBC_2.12 regerror F
+GLIBC_2.12 regexec F
+GLIBC_2.12 regfree F
+GLIBC_2.12 register_printf_function F
+GLIBC_2.12 register_printf_modifier F
+GLIBC_2.12 register_printf_specifier F
+GLIBC_2.12 register_printf_type F
+GLIBC_2.12 registerrpc F
+GLIBC_2.12 remap_file_pages F
+GLIBC_2.12 remove F
+GLIBC_2.12 removexattr F
+GLIBC_2.12 remque F
+GLIBC_2.12 rename F
+GLIBC_2.12 renameat F
+GLIBC_2.12 revoke F
+GLIBC_2.12 rewind F
+GLIBC_2.12 rewinddir F
+GLIBC_2.12 rexec F
+GLIBC_2.12 rexec_af F
+GLIBC_2.12 rexecoptions D 0x4
+GLIBC_2.12 rindex F
+GLIBC_2.12 rmdir F
+GLIBC_2.12 rpc_createerr D 0x10
+GLIBC_2.12 rpmatch F
+GLIBC_2.12 rresvport F
+GLIBC_2.12 rresvport_af F
+GLIBC_2.12 rtime F
+GLIBC_2.12 ruserok F
+GLIBC_2.12 ruserok_af F
+GLIBC_2.12 ruserpass F
+GLIBC_2.12 sbrk F
+GLIBC_2.12 scalbn F
+GLIBC_2.12 scalbnf F
+GLIBC_2.12 scalbnl F
+GLIBC_2.12 scandir F
+GLIBC_2.12 scandir64 F
+GLIBC_2.12 scanf F
+GLIBC_2.12 sched_get_priority_max F
+GLIBC_2.12 sched_get_priority_min F
+GLIBC_2.12 sched_getaffinity F
+GLIBC_2.12 sched_getcpu F
+GLIBC_2.12 sched_getparam F
+GLIBC_2.12 sched_getscheduler F
+GLIBC_2.12 sched_rr_get_interval F
+GLIBC_2.12 sched_setaffinity F
+GLIBC_2.12 sched_setparam F
+GLIBC_2.12 sched_setscheduler F
+GLIBC_2.12 sched_yield F
+GLIBC_2.12 seed48 F
+GLIBC_2.12 seed48_r F
+GLIBC_2.12 seekdir F
+GLIBC_2.12 select F
+GLIBC_2.12 semctl F
+GLIBC_2.12 semget F
+GLIBC_2.12 semop F
+GLIBC_2.12 semtimedop F
+GLIBC_2.12 send F
+GLIBC_2.12 sendfile F
+GLIBC_2.12 sendfile64 F
+GLIBC_2.12 sendmsg F
+GLIBC_2.12 sendto F
+GLIBC_2.12 set_dataplane F
+GLIBC_2.12 setaliasent F
+GLIBC_2.12 setbuf F
+GLIBC_2.12 setbuffer F
+GLIBC_2.12 setcontext F
+GLIBC_2.12 setdomainname F
+GLIBC_2.12 setegid F
+GLIBC_2.12 setenv F
+GLIBC_2.12 seteuid F
+GLIBC_2.12 setfsent F
+GLIBC_2.12 setfsgid F
+GLIBC_2.12 setfsuid F
+GLIBC_2.12 setgid F
+GLIBC_2.12 setgrent F
+GLIBC_2.12 setgroups F
+GLIBC_2.12 sethostent F
+GLIBC_2.12 sethostid F
+GLIBC_2.12 sethostname F
+GLIBC_2.12 setipv4sourcefilter F
+GLIBC_2.12 setitimer F
+GLIBC_2.12 setjmp F
+GLIBC_2.12 setlinebuf F
+GLIBC_2.12 setlocale F
+GLIBC_2.12 setlogin F
+GLIBC_2.12 setlogmask F
+GLIBC_2.12 setmntent F
+GLIBC_2.12 setnetent F
+GLIBC_2.12 setnetgrent F
+GLIBC_2.12 setpgid F
+GLIBC_2.12 setpgrp F
+GLIBC_2.12 setpriority F
+GLIBC_2.12 setprotoent F
+GLIBC_2.12 setpwent F
+GLIBC_2.12 setregid F
+GLIBC_2.12 setresgid F
+GLIBC_2.12 setresuid F
+GLIBC_2.12 setreuid F
+GLIBC_2.12 setrlimit F
+GLIBC_2.12 setrlimit64 F
+GLIBC_2.12 setrpcent F
+GLIBC_2.12 setservent F
+GLIBC_2.12 setsgent F
+GLIBC_2.12 setsid F
+GLIBC_2.12 setsockopt F
+GLIBC_2.12 setsourcefilter F
+GLIBC_2.12 setspent F
+GLIBC_2.12 setstate F
+GLIBC_2.12 setstate_r F
+GLIBC_2.12 settimeofday F
+GLIBC_2.12 setttyent F
+GLIBC_2.12 setuid F
+GLIBC_2.12 setusershell F
+GLIBC_2.12 setutent F
+GLIBC_2.12 setutxent F
+GLIBC_2.12 setvbuf F
+GLIBC_2.12 setxattr F
+GLIBC_2.12 sgetsgent F
+GLIBC_2.12 sgetsgent_r F
+GLIBC_2.12 sgetspent F
+GLIBC_2.12 sgetspent_r F
+GLIBC_2.12 shmat F
+GLIBC_2.12 shmctl F
+GLIBC_2.12 shmdt F
+GLIBC_2.12 shmget F
+GLIBC_2.12 shutdown F
+GLIBC_2.12 sigaction F
+GLIBC_2.12 sigaddset F
+GLIBC_2.12 sigaltstack F
+GLIBC_2.12 sigandset F
+GLIBC_2.12 sigblock F
+GLIBC_2.12 sigdelset F
+GLIBC_2.12 sigemptyset F
+GLIBC_2.12 sigfillset F
+GLIBC_2.12 siggetmask F
+GLIBC_2.12 sighold F
+GLIBC_2.12 sigignore F
+GLIBC_2.12 siginterrupt F
+GLIBC_2.12 sigisemptyset F
+GLIBC_2.12 sigismember F
+GLIBC_2.12 siglongjmp F
+GLIBC_2.12 signal F
+GLIBC_2.12 signalfd F
+GLIBC_2.12 sigorset F
+GLIBC_2.12 sigpause F
+GLIBC_2.12 sigpending F
+GLIBC_2.12 sigprocmask F
+GLIBC_2.12 sigqueue F
+GLIBC_2.12 sigrelse F
+GLIBC_2.12 sigreturn F
+GLIBC_2.12 sigset F
+GLIBC_2.12 sigsetmask F
+GLIBC_2.12 sigstack F
+GLIBC_2.12 sigsuspend F
+GLIBC_2.12 sigtimedwait F
+GLIBC_2.12 sigvec F
+GLIBC_2.12 sigwait F
+GLIBC_2.12 sigwaitinfo F
+GLIBC_2.12 sleep F
+GLIBC_2.12 snprintf F
+GLIBC_2.12 sockatmark F
+GLIBC_2.12 socket F
+GLIBC_2.12 socketpair F
+GLIBC_2.12 splice F
+GLIBC_2.12 sprintf F
+GLIBC_2.12 sprofil F
+GLIBC_2.12 srand F
+GLIBC_2.12 srand48 F
+GLIBC_2.12 srand48_r F
+GLIBC_2.12 srandom F
+GLIBC_2.12 srandom_r F
+GLIBC_2.12 sscanf F
+GLIBC_2.12 ssignal F
+GLIBC_2.12 sstk F
+GLIBC_2.12 statfs F
+GLIBC_2.12 statfs64 F
+GLIBC_2.12 statvfs F
+GLIBC_2.12 statvfs64 F
+GLIBC_2.12 stderr D 0x4
+GLIBC_2.12 stdin D 0x4
+GLIBC_2.12 stdout D 0x4
+GLIBC_2.12 step F
+GLIBC_2.12 stime F
+GLIBC_2.12 stpcpy F
+GLIBC_2.12 stpncpy F
+GLIBC_2.12 strcasecmp F
+GLIBC_2.12 strcasecmp_l F
+GLIBC_2.12 strcasestr F
+GLIBC_2.12 strcat F
+GLIBC_2.12 strchr F
+GLIBC_2.12 strchrnul F
+GLIBC_2.12 strcmp F
+GLIBC_2.12 strcoll F
+GLIBC_2.12 strcoll_l F
+GLIBC_2.12 strcpy F
+GLIBC_2.12 strcspn F
+GLIBC_2.12 strdup F
+GLIBC_2.12 strerror F
+GLIBC_2.12 strerror_l F
+GLIBC_2.12 strerror_r F
+GLIBC_2.12 strfmon F
+GLIBC_2.12 strfmon_l F
+GLIBC_2.12 strfry F
+GLIBC_2.12 strftime F
+GLIBC_2.12 strftime_l F
+GLIBC_2.12 strlen F
+GLIBC_2.12 strncasecmp F
+GLIBC_2.12 strncasecmp_l F
+GLIBC_2.12 strncat F
+GLIBC_2.12 strncmp F
+GLIBC_2.12 strncpy F
+GLIBC_2.12 strndup F
+GLIBC_2.12 strnlen F
+GLIBC_2.12 strpbrk F
+GLIBC_2.12 strptime F
+GLIBC_2.12 strptime_l F
+GLIBC_2.12 strrchr F
+GLIBC_2.12 strsep F
+GLIBC_2.12 strsignal F
+GLIBC_2.12 strspn F
+GLIBC_2.12 strstr F
+GLIBC_2.12 strtod F
+GLIBC_2.12 strtod_l F
+GLIBC_2.12 strtof F
+GLIBC_2.12 strtof_l F
+GLIBC_2.12 strtoimax F
+GLIBC_2.12 strtok F
+GLIBC_2.12 strtok_r F
+GLIBC_2.12 strtol F
+GLIBC_2.12 strtol_l F
+GLIBC_2.12 strtold F
+GLIBC_2.12 strtold_l F
+GLIBC_2.12 strtoll F
+GLIBC_2.12 strtoll_l F
+GLIBC_2.12 strtoq F
+GLIBC_2.12 strtoul F
+GLIBC_2.12 strtoul_l F
+GLIBC_2.12 strtoull F
+GLIBC_2.12 strtoull_l F
+GLIBC_2.12 strtoumax F
+GLIBC_2.12 strtouq F
+GLIBC_2.12 strverscmp F
+GLIBC_2.12 strxfrm F
+GLIBC_2.12 strxfrm_l F
+GLIBC_2.12 stty F
+GLIBC_2.12 svc_exit F
+GLIBC_2.12 svc_fdset D 0x80
+GLIBC_2.12 svc_getreq F
+GLIBC_2.12 svc_getreq_common F
+GLIBC_2.12 svc_getreq_poll F
+GLIBC_2.12 svc_getreqset F
+GLIBC_2.12 svc_max_pollfd D 0x4
+GLIBC_2.12 svc_pollfd D 0x4
+GLIBC_2.12 svc_register F
+GLIBC_2.12 svc_run F
+GLIBC_2.12 svc_sendreply F
+GLIBC_2.12 svc_unregister F
+GLIBC_2.12 svcauthdes_stats D 0xc
+GLIBC_2.12 svcerr_auth F
+GLIBC_2.12 svcerr_decode F
+GLIBC_2.12 svcerr_noproc F
+GLIBC_2.12 svcerr_noprog F
+GLIBC_2.12 svcerr_progvers F
+GLIBC_2.12 svcerr_systemerr F
+GLIBC_2.12 svcerr_weakauth F
+GLIBC_2.12 svcfd_create F
+GLIBC_2.12 svcraw_create F
+GLIBC_2.12 svctcp_create F
+GLIBC_2.12 svcudp_bufcreate F
+GLIBC_2.12 svcudp_create F
+GLIBC_2.12 svcudp_enablecache F
+GLIBC_2.12 svcunix_create F
+GLIBC_2.12 svcunixfd_create F
+GLIBC_2.12 swab F
+GLIBC_2.12 swapcontext F
+GLIBC_2.12 swapoff F
+GLIBC_2.12 swapon F
+GLIBC_2.12 swprintf F
+GLIBC_2.12 swscanf F
+GLIBC_2.12 symlink F
+GLIBC_2.12 symlinkat F
+GLIBC_2.12 sync F
+GLIBC_2.12 sync_file_range F
+GLIBC_2.12 sys_errlist D 0x21c
+GLIBC_2.12 sys_nerr D 0x4
+GLIBC_2.12 sys_sigabbrev D 0x104
+GLIBC_2.12 sys_siglist D 0x104
+GLIBC_2.12 syscall F
+GLIBC_2.12 sysconf F
+GLIBC_2.12 sysctl F
+GLIBC_2.12 sysinfo F
+GLIBC_2.12 syslog F
+GLIBC_2.12 system F
+GLIBC_2.12 sysv_signal F
+GLIBC_2.12 tcdrain F
+GLIBC_2.12 tcflow F
+GLIBC_2.12 tcflush F
+GLIBC_2.12 tcgetattr F
+GLIBC_2.12 tcgetpgrp F
+GLIBC_2.12 tcgetsid F
+GLIBC_2.12 tcsendbreak F
+GLIBC_2.12 tcsetattr F
+GLIBC_2.12 tcsetpgrp F
+GLIBC_2.12 tdelete F
+GLIBC_2.12 tdestroy F
+GLIBC_2.12 tee F
+GLIBC_2.12 telldir F
+GLIBC_2.12 tempnam F
+GLIBC_2.12 textdomain F
+GLIBC_2.12 tfind F
+GLIBC_2.12 time F
+GLIBC_2.12 timegm F
+GLIBC_2.12 timelocal F
+GLIBC_2.12 timerfd_create F
+GLIBC_2.12 timerfd_gettime F
+GLIBC_2.12 timerfd_settime F
+GLIBC_2.12 times F
+GLIBC_2.12 timezone D 0x4
+GLIBC_2.12 tmpfile F
+GLIBC_2.12 tmpfile64 F
+GLIBC_2.12 tmpnam F
+GLIBC_2.12 tmpnam_r F
+GLIBC_2.12 toascii F
+GLIBC_2.12 tolower F
+GLIBC_2.12 tolower_l F
+GLIBC_2.12 toupper F
+GLIBC_2.12 toupper_l F
+GLIBC_2.12 towctrans F
+GLIBC_2.12 towctrans_l F
+GLIBC_2.12 towlower F
+GLIBC_2.12 towlower_l F
+GLIBC_2.12 towupper F
+GLIBC_2.12 towupper_l F
+GLIBC_2.12 tr_break F
+GLIBC_2.12 truncate F
+GLIBC_2.12 truncate64 F
+GLIBC_2.12 tsearch F
+GLIBC_2.12 ttyname F
+GLIBC_2.12 ttyname_r F
+GLIBC_2.12 ttyslot F
+GLIBC_2.12 twalk F
+GLIBC_2.12 tzname D 0x8
+GLIBC_2.12 tzset F
+GLIBC_2.12 ualarm F
+GLIBC_2.12 ulckpwdf F
+GLIBC_2.12 ulimit F
+GLIBC_2.12 umask F
+GLIBC_2.12 umount F
+GLIBC_2.12 umount2 F
+GLIBC_2.12 uname F
+GLIBC_2.12 ungetc F
+GLIBC_2.12 ungetwc F
+GLIBC_2.12 unlink F
+GLIBC_2.12 unlinkat F
+GLIBC_2.12 unlockpt F
+GLIBC_2.12 unsetenv F
+GLIBC_2.12 unshare F
+GLIBC_2.12 updwtmp F
+GLIBC_2.12 updwtmpx F
+GLIBC_2.12 uselib F
+GLIBC_2.12 uselocale F
+GLIBC_2.12 user2netname F
+GLIBC_2.12 usleep F
+GLIBC_2.12 ustat F
+GLIBC_2.12 utime F
+GLIBC_2.12 utimensat F
+GLIBC_2.12 utimes F
+GLIBC_2.12 utmpname F
+GLIBC_2.12 utmpxname F
+GLIBC_2.12 valloc F
+GLIBC_2.12 vasprintf F
+GLIBC_2.12 vdprintf F
+GLIBC_2.12 verr F
+GLIBC_2.12 verrx F
+GLIBC_2.12 versionsort F
+GLIBC_2.12 versionsort64 F
+GLIBC_2.12 vfork F
+GLIBC_2.12 vfprintf F
+GLIBC_2.12 vfscanf F
+GLIBC_2.12 vfwprintf F
+GLIBC_2.12 vfwscanf F
+GLIBC_2.12 vhangup F
+GLIBC_2.12 vlimit F
+GLIBC_2.12 vmsplice F
+GLIBC_2.12 vprintf F
+GLIBC_2.12 vscanf F
+GLIBC_2.12 vsnprintf F
+GLIBC_2.12 vsprintf F
+GLIBC_2.12 vsscanf F
+GLIBC_2.12 vswprintf F
+GLIBC_2.12 vswscanf F
+GLIBC_2.12 vsyslog F
+GLIBC_2.12 vtimes F
+GLIBC_2.12 vwarn F
+GLIBC_2.12 vwarnx F
+GLIBC_2.12 vwprintf F
+GLIBC_2.12 vwscanf F
+GLIBC_2.12 wait F
+GLIBC_2.12 wait3 F
+GLIBC_2.12 wait4 F
+GLIBC_2.12 waitid F
+GLIBC_2.12 waitpid F
+GLIBC_2.12 warn F
+GLIBC_2.12 warnx F
+GLIBC_2.12 wcpcpy F
+GLIBC_2.12 wcpncpy F
+GLIBC_2.12 wcrtomb F
+GLIBC_2.12 wcscasecmp F
+GLIBC_2.12 wcscasecmp_l F
+GLIBC_2.12 wcscat F
+GLIBC_2.12 wcschr F
+GLIBC_2.12 wcschrnul F
+GLIBC_2.12 wcscmp F
+GLIBC_2.12 wcscoll F
+GLIBC_2.12 wcscoll_l F
+GLIBC_2.12 wcscpy F
+GLIBC_2.12 wcscspn F
+GLIBC_2.12 wcsdup F
+GLIBC_2.12 wcsftime F
+GLIBC_2.12 wcsftime_l F
+GLIBC_2.12 wcslen F
+GLIBC_2.12 wcsncasecmp F
+GLIBC_2.12 wcsncasecmp_l F
+GLIBC_2.12 wcsncat F
+GLIBC_2.12 wcsncmp F
+GLIBC_2.12 wcsncpy F
+GLIBC_2.12 wcsnlen F
+GLIBC_2.12 wcsnrtombs F
+GLIBC_2.12 wcspbrk F
+GLIBC_2.12 wcsrchr F
+GLIBC_2.12 wcsrtombs F
+GLIBC_2.12 wcsspn F
+GLIBC_2.12 wcsstr F
+GLIBC_2.12 wcstod F
+GLIBC_2.12 wcstod_l F
+GLIBC_2.12 wcstof F
+GLIBC_2.12 wcstof_l F
+GLIBC_2.12 wcstoimax F
+GLIBC_2.12 wcstok F
+GLIBC_2.12 wcstol F
+GLIBC_2.12 wcstol_l F
+GLIBC_2.12 wcstold F
+GLIBC_2.12 wcstold_l F
+GLIBC_2.12 wcstoll F
+GLIBC_2.12 wcstoll_l F
+GLIBC_2.12 wcstombs F
+GLIBC_2.12 wcstoq F
+GLIBC_2.12 wcstoul F
+GLIBC_2.12 wcstoul_l F
+GLIBC_2.12 wcstoull F
+GLIBC_2.12 wcstoull_l F
+GLIBC_2.12 wcstoumax F
+GLIBC_2.12 wcstouq F
+GLIBC_2.12 wcswcs F
+GLIBC_2.12 wcswidth F
+GLIBC_2.12 wcsxfrm F
+GLIBC_2.12 wcsxfrm_l F
+GLIBC_2.12 wctob F
+GLIBC_2.12 wctomb F
+GLIBC_2.12 wctrans F
+GLIBC_2.12 wctrans_l F
+GLIBC_2.12 wctype F
+GLIBC_2.12 wctype_l F
+GLIBC_2.12 wcwidth F
+GLIBC_2.12 wmemchr F
+GLIBC_2.12 wmemcmp F
+GLIBC_2.12 wmemcpy F
+GLIBC_2.12 wmemmove F
+GLIBC_2.12 wmempcpy F
+GLIBC_2.12 wmemset F
+GLIBC_2.12 wordexp F
+GLIBC_2.12 wordfree F
+GLIBC_2.12 wprintf F
+GLIBC_2.12 write F
+GLIBC_2.12 writev F
+GLIBC_2.12 wscanf F
+GLIBC_2.12 xdecrypt F
+GLIBC_2.12 xdr_accepted_reply F
+GLIBC_2.12 xdr_array F
+GLIBC_2.12 xdr_authdes_cred F
+GLIBC_2.12 xdr_authdes_verf F
+GLIBC_2.12 xdr_authunix_parms F
+GLIBC_2.12 xdr_bool F
+GLIBC_2.12 xdr_bytes F
+GLIBC_2.12 xdr_callhdr F
+GLIBC_2.12 xdr_callmsg F
+GLIBC_2.12 xdr_char F
+GLIBC_2.12 xdr_cryptkeyarg F
+GLIBC_2.12 xdr_cryptkeyarg2 F
+GLIBC_2.12 xdr_cryptkeyres F
+GLIBC_2.12 xdr_des_block F
+GLIBC_2.12 xdr_double F
+GLIBC_2.12 xdr_enum F
+GLIBC_2.12 xdr_float F
+GLIBC_2.12 xdr_free F
+GLIBC_2.12 xdr_getcredres F
+GLIBC_2.12 xdr_hyper F
+GLIBC_2.12 xdr_int F
+GLIBC_2.12 xdr_int16_t F
+GLIBC_2.12 xdr_int32_t F
+GLIBC_2.12 xdr_int64_t F
+GLIBC_2.12 xdr_int8_t F
+GLIBC_2.12 xdr_key_netstarg F
+GLIBC_2.12 xdr_key_netstres F
+GLIBC_2.12 xdr_keybuf F
+GLIBC_2.12 xdr_keystatus F
+GLIBC_2.12 xdr_long F
+GLIBC_2.12 xdr_longlong_t F
+GLIBC_2.12 xdr_netnamestr F
+GLIBC_2.12 xdr_netobj F
+GLIBC_2.12 xdr_opaque F
+GLIBC_2.12 xdr_opaque_auth F
+GLIBC_2.12 xdr_pmap F
+GLIBC_2.12 xdr_pmaplist F
+GLIBC_2.12 xdr_pointer F
+GLIBC_2.12 xdr_quad_t F
+GLIBC_2.12 xdr_reference F
+GLIBC_2.12 xdr_rejected_reply F
+GLIBC_2.12 xdr_replymsg F
+GLIBC_2.12 xdr_rmtcall_args F
+GLIBC_2.12 xdr_rmtcallres F
+GLIBC_2.12 xdr_short F
+GLIBC_2.12 xdr_sizeof F
+GLIBC_2.12 xdr_string F
+GLIBC_2.12 xdr_u_char F
+GLIBC_2.12 xdr_u_hyper F
+GLIBC_2.12 xdr_u_int F
+GLIBC_2.12 xdr_u_long F
+GLIBC_2.12 xdr_u_longlong_t F
+GLIBC_2.12 xdr_u_quad_t F
+GLIBC_2.12 xdr_u_short F
+GLIBC_2.12 xdr_uint16_t F
+GLIBC_2.12 xdr_uint32_t F
+GLIBC_2.12 xdr_uint64_t F
+GLIBC_2.12 xdr_uint8_t F
+GLIBC_2.12 xdr_union F
+GLIBC_2.12 xdr_unixcred F
+GLIBC_2.12 xdr_vector F
+GLIBC_2.12 xdr_void F
+GLIBC_2.12 xdr_wrapstring F
+GLIBC_2.12 xdrmem_create F
+GLIBC_2.12 xdrrec_create F
+GLIBC_2.12 xdrrec_endofrecord F
+GLIBC_2.12 xdrrec_eof F
+GLIBC_2.12 xdrrec_skiprecord F
+GLIBC_2.12 xdrstdio_create F
+GLIBC_2.12 xencrypt F
+GLIBC_2.12 xprt_register F
+GLIBC_2.12 xprt_unregister F
+GLIBC_2.15 GLIBC_2.15 A
+GLIBC_2.15 __fdelt_chk F
+GLIBC_2.15 __fdelt_warn F
+GLIBC_2.15 clock_adjtime F
+GLIBC_2.15 fanotify_init F
+GLIBC_2.15 fanotify_mark F
+GLIBC_2.15 name_to_handle_at F
+GLIBC_2.15 open_by_handle_at F
+GLIBC_2.15 posix_spawn F
+GLIBC_2.15 posix_spawnp F
+GLIBC_2.15 prlimit F
+GLIBC_2.15 prlimit64 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.15 sendmmsg F
+GLIBC_2.15 setns F
+GLIBC_2.15 syncfs 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.22 GLIBC_2.22 A
+GLIBC_2.22 fmemopen F
+GLIBC_2.23 GLIBC_2.23 A
+GLIBC_2.23 fts64_children F
+GLIBC_2.23 fts64_close F
+GLIBC_2.23 fts64_open F
+GLIBC_2.23 fts64_read F
+GLIBC_2.23 fts64_set F
+GLIBC_2.24 GLIBC_2.24 A
+GLIBC_2.24 quick_exit F
+GLIBC_2.25 GLIBC_2.25 A
+GLIBC_2.25 __explicit_bzero_chk F
+GLIBC_2.25 explicit_bzero F
+GLIBC_2.25 getentropy F
+GLIBC_2.25 getrandom F
+GLIBC_2.25 strfromd F
+GLIBC_2.25 strfromf F
+GLIBC_2.25 strfroml F
+GLIBC_2.26 GLIBC_2.26 A
+GLIBC_2.26 preadv2 F
+GLIBC_2.26 preadv64v2 F
+GLIBC_2.26 pwritev2 F
+GLIBC_2.26 pwritev64v2 F
+GLIBC_2.26 reallocarray F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libcrypt.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libcrypt.abilist
new file mode 100644
index 0000000000..d5643802b7
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libcrypt.abilist
@@ -0,0 +1,8 @@
+GLIBC_2.12 GLIBC_2.12 A
+GLIBC_2.12 crypt F
+GLIBC_2.12 crypt_r F
+GLIBC_2.12 encrypt F
+GLIBC_2.12 encrypt_r F
+GLIBC_2.12 fcrypt F
+GLIBC_2.12 setkey F
+GLIBC_2.12 setkey_r F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libdl.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libdl.abilist
new file mode 100644
index 0000000000..cabc30c239
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libdl.abilist
@@ -0,0 +1,10 @@
+GLIBC_2.12 GLIBC_2.12 A
+GLIBC_2.12 dladdr F
+GLIBC_2.12 dladdr1 F
+GLIBC_2.12 dlclose F
+GLIBC_2.12 dlerror F
+GLIBC_2.12 dlinfo F
+GLIBC_2.12 dlmopen F
+GLIBC_2.12 dlopen F
+GLIBC_2.12 dlsym F
+GLIBC_2.12 dlvsym F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libm.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libm.abilist
new file mode 100644
index 0000000000..0059c27fa2
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libm.abilist
@@ -0,0 +1,431 @@
+GLIBC_2.12 GLIBC_2.12 A
+GLIBC_2.12 _LIB_VERSION D 0x4
+GLIBC_2.12 __clog10 F
+GLIBC_2.12 __clog10f F
+GLIBC_2.12 __clog10l F
+GLIBC_2.12 __finite F
+GLIBC_2.12 __finitef F
+GLIBC_2.12 __fpclassify F
+GLIBC_2.12 __fpclassifyf F
+GLIBC_2.12 __signbit F
+GLIBC_2.12 __signbitf F
+GLIBC_2.12 acos F
+GLIBC_2.12 acosf F
+GLIBC_2.12 acosh F
+GLIBC_2.12 acoshf F
+GLIBC_2.12 acoshl F
+GLIBC_2.12 acosl F
+GLIBC_2.12 asin F
+GLIBC_2.12 asinf F
+GLIBC_2.12 asinh F
+GLIBC_2.12 asinhf F
+GLIBC_2.12 asinhl F
+GLIBC_2.12 asinl F
+GLIBC_2.12 atan F
+GLIBC_2.12 atan2 F
+GLIBC_2.12 atan2f F
+GLIBC_2.12 atan2l F
+GLIBC_2.12 atanf F
+GLIBC_2.12 atanh F
+GLIBC_2.12 atanhf F
+GLIBC_2.12 atanhl F
+GLIBC_2.12 atanl F
+GLIBC_2.12 cabs F
+GLIBC_2.12 cabsf F
+GLIBC_2.12 cabsl F
+GLIBC_2.12 cacos F
+GLIBC_2.12 cacosf F
+GLIBC_2.12 cacosh F
+GLIBC_2.12 cacoshf F
+GLIBC_2.12 cacoshl F
+GLIBC_2.12 cacosl F
+GLIBC_2.12 carg F
+GLIBC_2.12 cargf F
+GLIBC_2.12 cargl F
+GLIBC_2.12 casin F
+GLIBC_2.12 casinf F
+GLIBC_2.12 casinh F
+GLIBC_2.12 casinhf F
+GLIBC_2.12 casinhl F
+GLIBC_2.12 casinl F
+GLIBC_2.12 catan F
+GLIBC_2.12 catanf F
+GLIBC_2.12 catanh F
+GLIBC_2.12 catanhf F
+GLIBC_2.12 catanhl F
+GLIBC_2.12 catanl F
+GLIBC_2.12 cbrt F
+GLIBC_2.12 cbrtf F
+GLIBC_2.12 cbrtl F
+GLIBC_2.12 ccos F
+GLIBC_2.12 ccosf F
+GLIBC_2.12 ccosh F
+GLIBC_2.12 ccoshf F
+GLIBC_2.12 ccoshl F
+GLIBC_2.12 ccosl F
+GLIBC_2.12 ceil F
+GLIBC_2.12 ceilf F
+GLIBC_2.12 ceill F
+GLIBC_2.12 cexp F
+GLIBC_2.12 cexpf F
+GLIBC_2.12 cexpl F
+GLIBC_2.12 cimag F
+GLIBC_2.12 cimagf F
+GLIBC_2.12 cimagl F
+GLIBC_2.12 clog F
+GLIBC_2.12 clog10 F
+GLIBC_2.12 clog10f F
+GLIBC_2.12 clog10l F
+GLIBC_2.12 clogf F
+GLIBC_2.12 clogl F
+GLIBC_2.12 conj F
+GLIBC_2.12 conjf F
+GLIBC_2.12 conjl F
+GLIBC_2.12 copysign F
+GLIBC_2.12 copysignf F
+GLIBC_2.12 copysignl F
+GLIBC_2.12 cos F
+GLIBC_2.12 cosf F
+GLIBC_2.12 cosh F
+GLIBC_2.12 coshf F
+GLIBC_2.12 coshl F
+GLIBC_2.12 cosl F
+GLIBC_2.12 cpow F
+GLIBC_2.12 cpowf F
+GLIBC_2.12 cpowl F
+GLIBC_2.12 cproj F
+GLIBC_2.12 cprojf F
+GLIBC_2.12 cprojl F
+GLIBC_2.12 creal F
+GLIBC_2.12 crealf F
+GLIBC_2.12 creall F
+GLIBC_2.12 csin F
+GLIBC_2.12 csinf F
+GLIBC_2.12 csinh F
+GLIBC_2.12 csinhf F
+GLIBC_2.12 csinhl F
+GLIBC_2.12 csinl F
+GLIBC_2.12 csqrt F
+GLIBC_2.12 csqrtf F
+GLIBC_2.12 csqrtl F
+GLIBC_2.12 ctan F
+GLIBC_2.12 ctanf F
+GLIBC_2.12 ctanh F
+GLIBC_2.12 ctanhf F
+GLIBC_2.12 ctanhl F
+GLIBC_2.12 ctanl F
+GLIBC_2.12 drem F
+GLIBC_2.12 dremf F
+GLIBC_2.12 dreml F
+GLIBC_2.12 erf F
+GLIBC_2.12 erfc F
+GLIBC_2.12 erfcf F
+GLIBC_2.12 erfcl F
+GLIBC_2.12 erff F
+GLIBC_2.12 erfl F
+GLIBC_2.12 exp F
+GLIBC_2.12 exp10 F
+GLIBC_2.12 exp10f F
+GLIBC_2.12 exp10l F
+GLIBC_2.12 exp2 F
+GLIBC_2.12 exp2f F
+GLIBC_2.12 exp2l F
+GLIBC_2.12 expf F
+GLIBC_2.12 expl F
+GLIBC_2.12 expm1 F
+GLIBC_2.12 expm1f F
+GLIBC_2.12 expm1l F
+GLIBC_2.12 fabs F
+GLIBC_2.12 fabsf F
+GLIBC_2.12 fabsl F
+GLIBC_2.12 fdim F
+GLIBC_2.12 fdimf F
+GLIBC_2.12 fdiml F
+GLIBC_2.12 feclearexcept F
+GLIBC_2.12 fedisableexcept F
+GLIBC_2.12 feenableexcept F
+GLIBC_2.12 fegetenv F
+GLIBC_2.12 fegetexcept F
+GLIBC_2.12 fegetexceptflag F
+GLIBC_2.12 fegetround F
+GLIBC_2.12 feholdexcept F
+GLIBC_2.12 feraiseexcept F
+GLIBC_2.12 fesetenv F
+GLIBC_2.12 fesetexceptflag F
+GLIBC_2.12 fesetround F
+GLIBC_2.12 fetestexcept F
+GLIBC_2.12 feupdateenv F
+GLIBC_2.12 finite F
+GLIBC_2.12 finitef F
+GLIBC_2.12 finitel F
+GLIBC_2.12 floor F
+GLIBC_2.12 floorf F
+GLIBC_2.12 floorl F
+GLIBC_2.12 fma F
+GLIBC_2.12 fmaf F
+GLIBC_2.12 fmal F
+GLIBC_2.12 fmax F
+GLIBC_2.12 fmaxf F
+GLIBC_2.12 fmaxl F
+GLIBC_2.12 fmin F
+GLIBC_2.12 fminf F
+GLIBC_2.12 fminl F
+GLIBC_2.12 fmod F
+GLIBC_2.12 fmodf F
+GLIBC_2.12 fmodl F
+GLIBC_2.12 frexp F
+GLIBC_2.12 frexpf F
+GLIBC_2.12 frexpl F
+GLIBC_2.12 gamma F
+GLIBC_2.12 gammaf F
+GLIBC_2.12 gammal F
+GLIBC_2.12 hypot F
+GLIBC_2.12 hypotf F
+GLIBC_2.12 hypotl F
+GLIBC_2.12 ilogb F
+GLIBC_2.12 ilogbf F
+GLIBC_2.12 ilogbl F
+GLIBC_2.12 j0 F
+GLIBC_2.12 j0f F
+GLIBC_2.12 j0l F
+GLIBC_2.12 j1 F
+GLIBC_2.12 j1f F
+GLIBC_2.12 j1l F
+GLIBC_2.12 jn F
+GLIBC_2.12 jnf F
+GLIBC_2.12 jnl F
+GLIBC_2.12 ldexp F
+GLIBC_2.12 ldexpf F
+GLIBC_2.12 ldexpl F
+GLIBC_2.12 lgamma F
+GLIBC_2.12 lgamma_r F
+GLIBC_2.12 lgammaf F
+GLIBC_2.12 lgammaf_r F
+GLIBC_2.12 lgammal F
+GLIBC_2.12 lgammal_r F
+GLIBC_2.12 llrint F
+GLIBC_2.12 llrintf F
+GLIBC_2.12 llrintl F
+GLIBC_2.12 llround F
+GLIBC_2.12 llroundf F
+GLIBC_2.12 llroundl F
+GLIBC_2.12 log F
+GLIBC_2.12 log10 F
+GLIBC_2.12 log10f F
+GLIBC_2.12 log10l F
+GLIBC_2.12 log1p F
+GLIBC_2.12 log1pf F
+GLIBC_2.12 log1pl F
+GLIBC_2.12 log2 F
+GLIBC_2.12 log2f F
+GLIBC_2.12 log2l F
+GLIBC_2.12 logb F
+GLIBC_2.12 logbf F
+GLIBC_2.12 logbl F
+GLIBC_2.12 logf F
+GLIBC_2.12 logl F
+GLIBC_2.12 lrint F
+GLIBC_2.12 lrintf F
+GLIBC_2.12 lrintl F
+GLIBC_2.12 lround F
+GLIBC_2.12 lroundf F
+GLIBC_2.12 lroundl F
+GLIBC_2.12 matherr F
+GLIBC_2.12 modf F
+GLIBC_2.12 modff F
+GLIBC_2.12 modfl F
+GLIBC_2.12 nan F
+GLIBC_2.12 nanf F
+GLIBC_2.12 nanl F
+GLIBC_2.12 nearbyint F
+GLIBC_2.12 nearbyintf F
+GLIBC_2.12 nearbyintl F
+GLIBC_2.12 nextafter F
+GLIBC_2.12 nextafterf F
+GLIBC_2.12 nextafterl F
+GLIBC_2.12 nexttoward F
+GLIBC_2.12 nexttowardf F
+GLIBC_2.12 nexttowardl F
+GLIBC_2.12 pow F
+GLIBC_2.12 pow10 F
+GLIBC_2.12 pow10f F
+GLIBC_2.12 pow10l F
+GLIBC_2.12 powf F
+GLIBC_2.12 powl F
+GLIBC_2.12 remainder F
+GLIBC_2.12 remainderf F
+GLIBC_2.12 remainderl F
+GLIBC_2.12 remquo F
+GLIBC_2.12 remquof F
+GLIBC_2.12 remquol F
+GLIBC_2.12 rint F
+GLIBC_2.12 rintf F
+GLIBC_2.12 rintl F
+GLIBC_2.12 round F
+GLIBC_2.12 roundf F
+GLIBC_2.12 roundl F
+GLIBC_2.12 scalb F
+GLIBC_2.12 scalbf F
+GLIBC_2.12 scalbl F
+GLIBC_2.12 scalbln F
+GLIBC_2.12 scalblnf F
+GLIBC_2.12 scalblnl F
+GLIBC_2.12 scalbn F
+GLIBC_2.12 scalbnf F
+GLIBC_2.12 scalbnl F
+GLIBC_2.12 signgam D 0x4
+GLIBC_2.12 significand F
+GLIBC_2.12 significandf F
+GLIBC_2.12 significandl F
+GLIBC_2.12 sin F
+GLIBC_2.12 sincos F
+GLIBC_2.12 sincosf F
+GLIBC_2.12 sincosl F
+GLIBC_2.12 sinf F
+GLIBC_2.12 sinh F
+GLIBC_2.12 sinhf F
+GLIBC_2.12 sinhl F
+GLIBC_2.12 sinl F
+GLIBC_2.12 sqrt F
+GLIBC_2.12 sqrtf F
+GLIBC_2.12 sqrtl F
+GLIBC_2.12 tan F
+GLIBC_2.12 tanf F
+GLIBC_2.12 tanh F
+GLIBC_2.12 tanhf F
+GLIBC_2.12 tanhl F
+GLIBC_2.12 tanl F
+GLIBC_2.12 tgamma F
+GLIBC_2.12 tgammaf F
+GLIBC_2.12 tgammal F
+GLIBC_2.12 trunc F
+GLIBC_2.12 truncf F
+GLIBC_2.12 truncl F
+GLIBC_2.12 y0 F
+GLIBC_2.12 y0f F
+GLIBC_2.12 y0l F
+GLIBC_2.12 y1 F
+GLIBC_2.12 y1f F
+GLIBC_2.12 y1l F
+GLIBC_2.12 yn F
+GLIBC_2.12 ynf F
+GLIBC_2.12 ynl 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 __asin_finite F
+GLIBC_2.15 __asinf_finite F
+GLIBC_2.15 __atan2_finite F
+GLIBC_2.15 __atan2f_finite F
+GLIBC_2.15 __atanh_finite F
+GLIBC_2.15 __atanhf_finite F
+GLIBC_2.15 __cosh_finite F
+GLIBC_2.15 __coshf_finite F
+GLIBC_2.15 __exp10_finite F
+GLIBC_2.15 __exp10f_finite F
+GLIBC_2.15 __exp2_finite F
+GLIBC_2.15 __exp2f_finite F
+GLIBC_2.15 __exp_finite F
+GLIBC_2.15 __expf_finite F
+GLIBC_2.15 __fmod_finite F
+GLIBC_2.15 __fmodf_finite F
+GLIBC_2.15 __gamma_r_finite F
+GLIBC_2.15 __gammaf_r_finite F
+GLIBC_2.15 __hypot_finite F
+GLIBC_2.15 __hypotf_finite F
+GLIBC_2.15 __j0_finite F
+GLIBC_2.15 __j0f_finite F
+GLIBC_2.15 __j1_finite F
+GLIBC_2.15 __j1f_finite F
+GLIBC_2.15 __jn_finite F
+GLIBC_2.15 __jnf_finite F
+GLIBC_2.15 __lgamma_r_finite F
+GLIBC_2.15 __lgammaf_r_finite F
+GLIBC_2.15 __log10_finite F
+GLIBC_2.15 __log10f_finite F
+GLIBC_2.15 __log2_finite F
+GLIBC_2.15 __log2f_finite F
+GLIBC_2.15 __log_finite F
+GLIBC_2.15 __logf_finite F
+GLIBC_2.15 __pow_finite F
+GLIBC_2.15 __powf_finite F
+GLIBC_2.15 __remainder_finite F
+GLIBC_2.15 __remainderf_finite F
+GLIBC_2.15 __scalb_finite F
+GLIBC_2.15 __scalbf_finite F
+GLIBC_2.15 __sinh_finite F
+GLIBC_2.15 __sinhf_finite F
+GLIBC_2.15 __sqrt_finite F
+GLIBC_2.15 __sqrtf_finite F
+GLIBC_2.15 __y0_finite F
+GLIBC_2.15 __y0f_finite F
+GLIBC_2.15 __y1_finite F
+GLIBC_2.15 __y1f_finite F
+GLIBC_2.15 __yn_finite F
+GLIBC_2.15 __ynf_finite F
+GLIBC_2.18 GLIBC_2.18 A
+GLIBC_2.18 __issignaling F
+GLIBC_2.18 __issignalingf F
+GLIBC_2.23 GLIBC_2.23 A
+GLIBC_2.23 __signgam D 0x4
+GLIBC_2.23 lgamma F
+GLIBC_2.23 lgammaf F
+GLIBC_2.23 lgammal F
+GLIBC_2.24 GLIBC_2.24 A
+GLIBC_2.24 nextdown F
+GLIBC_2.24 nextdownf F
+GLIBC_2.24 nextdownl F
+GLIBC_2.24 nextup F
+GLIBC_2.24 nextupf F
+GLIBC_2.24 nextupl F
+GLIBC_2.25 GLIBC_2.25 A
+GLIBC_2.25 __iseqsig F
+GLIBC_2.25 __iseqsigf F
+GLIBC_2.25 canonicalize F
+GLIBC_2.25 canonicalizef F
+GLIBC_2.25 canonicalizel F
+GLIBC_2.25 fegetmode F
+GLIBC_2.25 fesetexcept F
+GLIBC_2.25 fesetmode F
+GLIBC_2.25 fetestexceptflag F
+GLIBC_2.25 fmaxmag F
+GLIBC_2.25 fmaxmagf F
+GLIBC_2.25 fmaxmagl F
+GLIBC_2.25 fminmag F
+GLIBC_2.25 fminmagf F
+GLIBC_2.25 fminmagl F
+GLIBC_2.25 fromfp F
+GLIBC_2.25 fromfpf F
+GLIBC_2.25 fromfpl F
+GLIBC_2.25 fromfpx F
+GLIBC_2.25 fromfpxf F
+GLIBC_2.25 fromfpxl F
+GLIBC_2.25 getpayload F
+GLIBC_2.25 getpayloadf F
+GLIBC_2.25 getpayloadl F
+GLIBC_2.25 llogb F
+GLIBC_2.25 llogbf F
+GLIBC_2.25 llogbl F
+GLIBC_2.25 roundeven F
+GLIBC_2.25 roundevenf F
+GLIBC_2.25 roundevenl F
+GLIBC_2.25 setpayload F
+GLIBC_2.25 setpayloadf F
+GLIBC_2.25 setpayloadl F
+GLIBC_2.25 setpayloadsig F
+GLIBC_2.25 setpayloadsigf F
+GLIBC_2.25 setpayloadsigl F
+GLIBC_2.25 totalorder F
+GLIBC_2.25 totalorderf F
+GLIBC_2.25 totalorderl F
+GLIBC_2.25 totalordermag F
+GLIBC_2.25 totalordermagf F
+GLIBC_2.25 totalordermagl F
+GLIBC_2.25 ufromfp F
+GLIBC_2.25 ufromfpf F
+GLIBC_2.25 ufromfpl F
+GLIBC_2.25 ufromfpx F
+GLIBC_2.25 ufromfpxf F
+GLIBC_2.25 ufromfpxl F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libnsl.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libnsl.abilist
new file mode 100644
index 0000000000..0277e5c1a8
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libnsl.abilist
@@ -0,0 +1,122 @@
+GLIBC_2.12 GLIBC_2.12 A
+GLIBC_2.12 __free_fdresult F
+GLIBC_2.12 __nis_default_access F
+GLIBC_2.12 __nis_default_group F
+GLIBC_2.12 __nis_default_owner F
+GLIBC_2.12 __nis_default_ttl F
+GLIBC_2.12 __nis_finddirectory F
+GLIBC_2.12 __nis_hash F
+GLIBC_2.12 __nisbind_connect F
+GLIBC_2.12 __nisbind_create F
+GLIBC_2.12 __nisbind_destroy F
+GLIBC_2.12 __nisbind_next F
+GLIBC_2.12 __yp_check F
+GLIBC_2.12 nis_add F
+GLIBC_2.12 nis_add_entry F
+GLIBC_2.12 nis_addmember F
+GLIBC_2.12 nis_checkpoint F
+GLIBC_2.12 nis_clone_directory F
+GLIBC_2.12 nis_clone_object F
+GLIBC_2.12 nis_clone_result F
+GLIBC_2.12 nis_creategroup F
+GLIBC_2.12 nis_destroy_object F
+GLIBC_2.12 nis_destroygroup F
+GLIBC_2.12 nis_dir_cmp F
+GLIBC_2.12 nis_domain_of F
+GLIBC_2.12 nis_domain_of_r F
+GLIBC_2.12 nis_first_entry F
+GLIBC_2.12 nis_free_directory F
+GLIBC_2.12 nis_free_object F
+GLIBC_2.12 nis_free_request F
+GLIBC_2.12 nis_freenames F
+GLIBC_2.12 nis_freeresult F
+GLIBC_2.12 nis_freeservlist F
+GLIBC_2.12 nis_freetags F
+GLIBC_2.12 nis_getnames F
+GLIBC_2.12 nis_getservlist F
+GLIBC_2.12 nis_ismember F
+GLIBC_2.12 nis_leaf_of F
+GLIBC_2.12 nis_leaf_of_r F
+GLIBC_2.12 nis_lerror F
+GLIBC_2.12 nis_list F
+GLIBC_2.12 nis_local_directory F
+GLIBC_2.12 nis_local_group F
+GLIBC_2.12 nis_local_host F
+GLIBC_2.12 nis_local_principal F
+GLIBC_2.12 nis_lookup F
+GLIBC_2.12 nis_mkdir F
+GLIBC_2.12 nis_modify F
+GLIBC_2.12 nis_modify_entry F
+GLIBC_2.12 nis_name_of F
+GLIBC_2.12 nis_name_of_r F
+GLIBC_2.12 nis_next_entry F
+GLIBC_2.12 nis_perror F
+GLIBC_2.12 nis_ping F
+GLIBC_2.12 nis_print_directory F
+GLIBC_2.12 nis_print_entry F
+GLIBC_2.12 nis_print_group F
+GLIBC_2.12 nis_print_group_entry F
+GLIBC_2.12 nis_print_link F
+GLIBC_2.12 nis_print_object F
+GLIBC_2.12 nis_print_result F
+GLIBC_2.12 nis_print_rights F
+GLIBC_2.12 nis_print_table F
+GLIBC_2.12 nis_read_obj F
+GLIBC_2.12 nis_remove F
+GLIBC_2.12 nis_remove_entry F
+GLIBC_2.12 nis_removemember F
+GLIBC_2.12 nis_rmdir F
+GLIBC_2.12 nis_servstate F
+GLIBC_2.12 nis_sperrno F
+GLIBC_2.12 nis_sperror F
+GLIBC_2.12 nis_sperror_r F
+GLIBC_2.12 nis_stats F
+GLIBC_2.12 nis_verifygroup F
+GLIBC_2.12 nis_write_obj F
+GLIBC_2.12 readColdStartFile F
+GLIBC_2.12 writeColdStartFile F
+GLIBC_2.12 xdr_cback_data F
+GLIBC_2.12 xdr_domainname F
+GLIBC_2.12 xdr_keydat F
+GLIBC_2.12 xdr_mapname F
+GLIBC_2.12 xdr_obj_p F
+GLIBC_2.12 xdr_peername F
+GLIBC_2.12 xdr_valdat F
+GLIBC_2.12 xdr_yp_buf F
+GLIBC_2.12 xdr_ypall F
+GLIBC_2.12 xdr_ypbind_binding F
+GLIBC_2.12 xdr_ypbind_resp F
+GLIBC_2.12 xdr_ypbind_resptype F
+GLIBC_2.12 xdr_ypbind_setdom F
+GLIBC_2.12 xdr_ypdelete_args F
+GLIBC_2.12 xdr_ypmap_parms F
+GLIBC_2.12 xdr_ypmaplist F
+GLIBC_2.12 xdr_yppush_status F
+GLIBC_2.12 xdr_yppushresp_xfr F
+GLIBC_2.12 xdr_ypreq_key F
+GLIBC_2.12 xdr_ypreq_nokey F
+GLIBC_2.12 xdr_ypreq_xfr F
+GLIBC_2.12 xdr_ypresp_all F
+GLIBC_2.12 xdr_ypresp_key_val F
+GLIBC_2.12 xdr_ypresp_maplist F
+GLIBC_2.12 xdr_ypresp_master F
+GLIBC_2.12 xdr_ypresp_order F
+GLIBC_2.12 xdr_ypresp_val F
+GLIBC_2.12 xdr_ypresp_xfr F
+GLIBC_2.12 xdr_ypstat F
+GLIBC_2.12 xdr_ypupdate_args F
+GLIBC_2.12 xdr_ypxfrstat F
+GLIBC_2.12 yp_all F
+GLIBC_2.12 yp_bind F
+GLIBC_2.12 yp_first F
+GLIBC_2.12 yp_get_default_domain F
+GLIBC_2.12 yp_maplist F
+GLIBC_2.12 yp_master F
+GLIBC_2.12 yp_match F
+GLIBC_2.12 yp_next F
+GLIBC_2.12 yp_order F
+GLIBC_2.12 yp_unbind F
+GLIBC_2.12 yp_update F
+GLIBC_2.12 ypbinderr_string F
+GLIBC_2.12 yperr_string F
+GLIBC_2.12 ypprot_err F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libpthread.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libpthread.abilist
new file mode 100644
index 0000000000..d16158f938
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libpthread.abilist
@@ -0,0 +1,226 @@
+GLIBC_2.12 GLIBC_2.12 A
+GLIBC_2.12 _IO_flockfile F
+GLIBC_2.12 _IO_ftrylockfile F
+GLIBC_2.12 _IO_funlockfile F
+GLIBC_2.12 __close F
+GLIBC_2.12 __connect F
+GLIBC_2.12 __errno_location F
+GLIBC_2.12 __fcntl F
+GLIBC_2.12 __fork F
+GLIBC_2.12 __h_errno_location F
+GLIBC_2.12 __libc_allocate_rtsig F
+GLIBC_2.12 __libc_current_sigrtmax F
+GLIBC_2.12 __libc_current_sigrtmin F
+GLIBC_2.12 __lseek F
+GLIBC_2.12 __nanosleep F
+GLIBC_2.12 __open F
+GLIBC_2.12 __open64 F
+GLIBC_2.12 __pread64 F
+GLIBC_2.12 __pthread_cleanup_routine F
+GLIBC_2.12 __pthread_getspecific F
+GLIBC_2.12 __pthread_key_create F
+GLIBC_2.12 __pthread_mutex_destroy F
+GLIBC_2.12 __pthread_mutex_init F
+GLIBC_2.12 __pthread_mutex_lock F
+GLIBC_2.12 __pthread_mutex_trylock F
+GLIBC_2.12 __pthread_mutex_unlock F
+GLIBC_2.12 __pthread_mutexattr_destroy F
+GLIBC_2.12 __pthread_mutexattr_init F
+GLIBC_2.12 __pthread_mutexattr_settype F
+GLIBC_2.12 __pthread_once F
+GLIBC_2.12 __pthread_register_cancel F
+GLIBC_2.12 __pthread_register_cancel_defer F
+GLIBC_2.12 __pthread_rwlock_destroy F
+GLIBC_2.12 __pthread_rwlock_init F
+GLIBC_2.12 __pthread_rwlock_rdlock F
+GLIBC_2.12 __pthread_rwlock_tryrdlock F
+GLIBC_2.12 __pthread_rwlock_trywrlock F
+GLIBC_2.12 __pthread_rwlock_unlock F
+GLIBC_2.12 __pthread_rwlock_wrlock F
+GLIBC_2.12 __pthread_setspecific F
+GLIBC_2.12 __pthread_unregister_cancel F
+GLIBC_2.12 __pthread_unregister_cancel_restore F
+GLIBC_2.12 __pthread_unwind_next F
+GLIBC_2.12 __pwrite64 F
+GLIBC_2.12 __read F
+GLIBC_2.12 __res_state F
+GLIBC_2.12 __send F
+GLIBC_2.12 __sigaction F
+GLIBC_2.12 __vfork F
+GLIBC_2.12 __wait F
+GLIBC_2.12 __write F
+GLIBC_2.12 _pthread_cleanup_pop F
+GLIBC_2.12 _pthread_cleanup_pop_restore F
+GLIBC_2.12 _pthread_cleanup_push F
+GLIBC_2.12 _pthread_cleanup_push_defer F
+GLIBC_2.12 accept F
+GLIBC_2.12 close F
+GLIBC_2.12 connect F
+GLIBC_2.12 fcntl F
+GLIBC_2.12 flockfile F
+GLIBC_2.12 fork F
+GLIBC_2.12 fsync F
+GLIBC_2.12 ftrylockfile F
+GLIBC_2.12 funlockfile F
+GLIBC_2.12 longjmp F
+GLIBC_2.12 lseek F
+GLIBC_2.12 lseek64 F
+GLIBC_2.12 msync F
+GLIBC_2.12 nanosleep F
+GLIBC_2.12 open F
+GLIBC_2.12 open64 F
+GLIBC_2.12 pause F
+GLIBC_2.12 pread F
+GLIBC_2.12 pread64 F
+GLIBC_2.12 pthread_attr_destroy F
+GLIBC_2.12 pthread_attr_getaffinity_np F
+GLIBC_2.12 pthread_attr_getdetachstate F
+GLIBC_2.12 pthread_attr_getguardsize F
+GLIBC_2.12 pthread_attr_getinheritsched F
+GLIBC_2.12 pthread_attr_getschedparam F
+GLIBC_2.12 pthread_attr_getschedpolicy F
+GLIBC_2.12 pthread_attr_getscope F
+GLIBC_2.12 pthread_attr_getstack F
+GLIBC_2.12 pthread_attr_getstackaddr F
+GLIBC_2.12 pthread_attr_getstacksize F
+GLIBC_2.12 pthread_attr_init F
+GLIBC_2.12 pthread_attr_setaffinity_np F
+GLIBC_2.12 pthread_attr_setdetachstate F
+GLIBC_2.12 pthread_attr_setguardsize F
+GLIBC_2.12 pthread_attr_setinheritsched F
+GLIBC_2.12 pthread_attr_setschedparam F
+GLIBC_2.12 pthread_attr_setschedpolicy F
+GLIBC_2.12 pthread_attr_setscope F
+GLIBC_2.12 pthread_attr_setstack F
+GLIBC_2.12 pthread_attr_setstackaddr F
+GLIBC_2.12 pthread_attr_setstacksize F
+GLIBC_2.12 pthread_barrier_destroy F
+GLIBC_2.12 pthread_barrier_init F
+GLIBC_2.12 pthread_barrier_wait F
+GLIBC_2.12 pthread_barrierattr_destroy F
+GLIBC_2.12 pthread_barrierattr_getpshared F
+GLIBC_2.12 pthread_barrierattr_init F
+GLIBC_2.12 pthread_barrierattr_setpshared F
+GLIBC_2.12 pthread_cancel F
+GLIBC_2.12 pthread_cond_broadcast F
+GLIBC_2.12 pthread_cond_destroy F
+GLIBC_2.12 pthread_cond_init F
+GLIBC_2.12 pthread_cond_signal F
+GLIBC_2.12 pthread_cond_timedwait F
+GLIBC_2.12 pthread_cond_wait F
+GLIBC_2.12 pthread_condattr_destroy F
+GLIBC_2.12 pthread_condattr_getclock F
+GLIBC_2.12 pthread_condattr_getpshared F
+GLIBC_2.12 pthread_condattr_init F
+GLIBC_2.12 pthread_condattr_setclock F
+GLIBC_2.12 pthread_condattr_setpshared F
+GLIBC_2.12 pthread_create F
+GLIBC_2.12 pthread_detach F
+GLIBC_2.12 pthread_equal F
+GLIBC_2.12 pthread_exit F
+GLIBC_2.12 pthread_getaffinity_np F
+GLIBC_2.12 pthread_getattr_np F
+GLIBC_2.12 pthread_getconcurrency F
+GLIBC_2.12 pthread_getcpuclockid F
+GLIBC_2.12 pthread_getname_np F
+GLIBC_2.12 pthread_getschedparam F
+GLIBC_2.12 pthread_getspecific F
+GLIBC_2.12 pthread_join F
+GLIBC_2.12 pthread_key_create F
+GLIBC_2.12 pthread_key_delete F
+GLIBC_2.12 pthread_kill F
+GLIBC_2.12 pthread_kill_other_threads_np F
+GLIBC_2.12 pthread_mutex_consistent F
+GLIBC_2.12 pthread_mutex_consistent_np F
+GLIBC_2.12 pthread_mutex_destroy F
+GLIBC_2.12 pthread_mutex_getprioceiling F
+GLIBC_2.12 pthread_mutex_init F
+GLIBC_2.12 pthread_mutex_lock F
+GLIBC_2.12 pthread_mutex_setprioceiling F
+GLIBC_2.12 pthread_mutex_timedlock F
+GLIBC_2.12 pthread_mutex_trylock F
+GLIBC_2.12 pthread_mutex_unlock F
+GLIBC_2.12 pthread_mutexattr_destroy F
+GLIBC_2.12 pthread_mutexattr_getkind_np F
+GLIBC_2.12 pthread_mutexattr_getprioceiling F
+GLIBC_2.12 pthread_mutexattr_getprotocol F
+GLIBC_2.12 pthread_mutexattr_getpshared F
+GLIBC_2.12 pthread_mutexattr_getrobust F
+GLIBC_2.12 pthread_mutexattr_getrobust_np F
+GLIBC_2.12 pthread_mutexattr_gettype F
+GLIBC_2.12 pthread_mutexattr_init F
+GLIBC_2.12 pthread_mutexattr_setkind_np F
+GLIBC_2.12 pthread_mutexattr_setprioceiling F
+GLIBC_2.12 pthread_mutexattr_setprotocol F
+GLIBC_2.12 pthread_mutexattr_setpshared F
+GLIBC_2.12 pthread_mutexattr_setrobust F
+GLIBC_2.12 pthread_mutexattr_setrobust_np F
+GLIBC_2.12 pthread_mutexattr_settype F
+GLIBC_2.12 pthread_once F
+GLIBC_2.12 pthread_rwlock_destroy F
+GLIBC_2.12 pthread_rwlock_init F
+GLIBC_2.12 pthread_rwlock_rdlock F
+GLIBC_2.12 pthread_rwlock_timedrdlock F
+GLIBC_2.12 pthread_rwlock_timedwrlock F
+GLIBC_2.12 pthread_rwlock_tryrdlock F
+GLIBC_2.12 pthread_rwlock_trywrlock F
+GLIBC_2.12 pthread_rwlock_unlock F
+GLIBC_2.12 pthread_rwlock_wrlock F
+GLIBC_2.12 pthread_rwlockattr_destroy F
+GLIBC_2.12 pthread_rwlockattr_getkind_np F
+GLIBC_2.12 pthread_rwlockattr_getpshared F
+GLIBC_2.12 pthread_rwlockattr_init F
+GLIBC_2.12 pthread_rwlockattr_setkind_np F
+GLIBC_2.12 pthread_rwlockattr_setpshared F
+GLIBC_2.12 pthread_self F
+GLIBC_2.12 pthread_setaffinity_np F
+GLIBC_2.12 pthread_setcancelstate F
+GLIBC_2.12 pthread_setcanceltype F
+GLIBC_2.12 pthread_setconcurrency F
+GLIBC_2.12 pthread_setname_np F
+GLIBC_2.12 pthread_setschedparam F
+GLIBC_2.12 pthread_setschedprio F
+GLIBC_2.12 pthread_setspecific F
+GLIBC_2.12 pthread_sigmask F
+GLIBC_2.12 pthread_sigqueue F
+GLIBC_2.12 pthread_spin_destroy F
+GLIBC_2.12 pthread_spin_init F
+GLIBC_2.12 pthread_spin_lock F
+GLIBC_2.12 pthread_spin_trylock F
+GLIBC_2.12 pthread_spin_unlock F
+GLIBC_2.12 pthread_testcancel F
+GLIBC_2.12 pthread_timedjoin_np F
+GLIBC_2.12 pthread_tryjoin_np F
+GLIBC_2.12 pthread_yield F
+GLIBC_2.12 pwrite F
+GLIBC_2.12 pwrite64 F
+GLIBC_2.12 raise F
+GLIBC_2.12 read F
+GLIBC_2.12 recv F
+GLIBC_2.12 recvfrom F
+GLIBC_2.12 recvmsg F
+GLIBC_2.12 sem_close F
+GLIBC_2.12 sem_destroy F
+GLIBC_2.12 sem_getvalue F
+GLIBC_2.12 sem_init F
+GLIBC_2.12 sem_open F
+GLIBC_2.12 sem_post F
+GLIBC_2.12 sem_timedwait F
+GLIBC_2.12 sem_trywait F
+GLIBC_2.12 sem_unlink F
+GLIBC_2.12 sem_wait F
+GLIBC_2.12 send F
+GLIBC_2.12 sendmsg F
+GLIBC_2.12 sendto F
+GLIBC_2.12 sigaction F
+GLIBC_2.12 siglongjmp F
+GLIBC_2.12 sigwait F
+GLIBC_2.12 system F
+GLIBC_2.12 tcdrain F
+GLIBC_2.12 vfork F
+GLIBC_2.12 wait F
+GLIBC_2.12 waitpid F
+GLIBC_2.12 write F
+GLIBC_2.18 GLIBC_2.18 A
+GLIBC_2.18 pthread_getattr_default_np F
+GLIBC_2.18 pthread_setattr_default_np F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libresolv.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libresolv.abilist
new file mode 100644
index 0000000000..aa2fefa6e4
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libresolv.abilist
@@ -0,0 +1,92 @@
+GLIBC_2.12 GLIBC_2.12 A
+GLIBC_2.12 __b64_ntop F
+GLIBC_2.12 __b64_pton F
+GLIBC_2.12 __dn_comp F
+GLIBC_2.12 __dn_count_labels F
+GLIBC_2.12 __dn_expand F
+GLIBC_2.12 __dn_skipname F
+GLIBC_2.12 __fp_nquery F
+GLIBC_2.12 __fp_query F
+GLIBC_2.12 __fp_resstat F
+GLIBC_2.12 __hostalias F
+GLIBC_2.12 __loc_aton F
+GLIBC_2.12 __loc_ntoa F
+GLIBC_2.12 __p_cdname F
+GLIBC_2.12 __p_cdnname F
+GLIBC_2.12 __p_class F
+GLIBC_2.12 __p_class_syms D 0x54
+GLIBC_2.12 __p_fqname F
+GLIBC_2.12 __p_fqnname F
+GLIBC_2.12 __p_option F
+GLIBC_2.12 __p_query F
+GLIBC_2.12 __p_rcode F
+GLIBC_2.12 __p_secstodate F
+GLIBC_2.12 __p_time F
+GLIBC_2.12 __p_type F
+GLIBC_2.12 __p_type_syms D 0x228
+GLIBC_2.12 __putlong F
+GLIBC_2.12 __putshort F
+GLIBC_2.12 __res_close F
+GLIBC_2.12 __res_dnok F
+GLIBC_2.12 __res_hnok F
+GLIBC_2.12 __res_hostalias F
+GLIBC_2.12 __res_isourserver F
+GLIBC_2.12 __res_mailok F
+GLIBC_2.12 __res_mkquery F
+GLIBC_2.12 __res_nameinquery F
+GLIBC_2.12 __res_nmkquery F
+GLIBC_2.12 __res_nquery F
+GLIBC_2.12 __res_nquerydomain F
+GLIBC_2.12 __res_nsearch F
+GLIBC_2.12 __res_nsend F
+GLIBC_2.12 __res_ownok F
+GLIBC_2.12 __res_queriesmatch F
+GLIBC_2.12 __res_query F
+GLIBC_2.12 __res_querydomain F
+GLIBC_2.12 __res_search F
+GLIBC_2.12 __res_send F
+GLIBC_2.12 __sym_ntop F
+GLIBC_2.12 __sym_ntos F
+GLIBC_2.12 __sym_ston F
+GLIBC_2.12 _gethtbyaddr F
+GLIBC_2.12 _gethtbyname F
+GLIBC_2.12 _gethtbyname2 F
+GLIBC_2.12 _gethtent F
+GLIBC_2.12 _getlong F
+GLIBC_2.12 _getshort F
+GLIBC_2.12 _res_opcodes D 0x40
+GLIBC_2.12 _sethtent F
+GLIBC_2.12 inet_net_ntop F
+GLIBC_2.12 inet_net_pton F
+GLIBC_2.12 inet_neta F
+GLIBC_2.12 ns_datetosecs F
+GLIBC_2.12 ns_format_ttl F
+GLIBC_2.12 ns_get16 F
+GLIBC_2.12 ns_get32 F
+GLIBC_2.12 ns_initparse F
+GLIBC_2.12 ns_makecanon F
+GLIBC_2.12 ns_msg_getflag F
+GLIBC_2.12 ns_name_compress F
+GLIBC_2.12 ns_name_ntol F
+GLIBC_2.12 ns_name_ntop F
+GLIBC_2.12 ns_name_pack F
+GLIBC_2.12 ns_name_pton F
+GLIBC_2.12 ns_name_rollback F
+GLIBC_2.12 ns_name_skip F
+GLIBC_2.12 ns_name_uncompress F
+GLIBC_2.12 ns_name_unpack F
+GLIBC_2.12 ns_parse_ttl F
+GLIBC_2.12 ns_parserr F
+GLIBC_2.12 ns_put16 F
+GLIBC_2.12 ns_put32 F
+GLIBC_2.12 ns_samedomain F
+GLIBC_2.12 ns_samename F
+GLIBC_2.12 ns_skiprr F
+GLIBC_2.12 ns_sprintrr F
+GLIBC_2.12 ns_sprintrrf F
+GLIBC_2.12 ns_subdomain F
+GLIBC_2.12 res_gethostbyaddr F
+GLIBC_2.12 res_gethostbyname F
+GLIBC_2.12 res_gethostbyname2 F
+GLIBC_2.12 res_send_setqhook F
+GLIBC_2.12 res_send_setrhook F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/librt.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/librt.abilist
new file mode 100644
index 0000000000..14f5c8245d
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/librt.abilist
@@ -0,0 +1,41 @@
+GLIBC_2.12 GLIBC_2.12 A
+GLIBC_2.12 __mq_open_2 F
+GLIBC_2.12 aio_cancel F
+GLIBC_2.12 aio_cancel64 F
+GLIBC_2.12 aio_error F
+GLIBC_2.12 aio_error64 F
+GLIBC_2.12 aio_fsync F
+GLIBC_2.12 aio_fsync64 F
+GLIBC_2.12 aio_init F
+GLIBC_2.12 aio_read F
+GLIBC_2.12 aio_read64 F
+GLIBC_2.12 aio_return F
+GLIBC_2.12 aio_return64 F
+GLIBC_2.12 aio_suspend F
+GLIBC_2.12 aio_suspend64 F
+GLIBC_2.12 aio_write F
+GLIBC_2.12 aio_write64 F
+GLIBC_2.12 clock_getcpuclockid F
+GLIBC_2.12 clock_getres F
+GLIBC_2.12 clock_gettime F
+GLIBC_2.12 clock_nanosleep F
+GLIBC_2.12 clock_settime F
+GLIBC_2.12 lio_listio F
+GLIBC_2.12 lio_listio64 F
+GLIBC_2.12 mq_close F
+GLIBC_2.12 mq_getattr F
+GLIBC_2.12 mq_notify F
+GLIBC_2.12 mq_open F
+GLIBC_2.12 mq_receive F
+GLIBC_2.12 mq_send F
+GLIBC_2.12 mq_setattr F
+GLIBC_2.12 mq_timedreceive F
+GLIBC_2.12 mq_timedsend F
+GLIBC_2.12 mq_unlink F
+GLIBC_2.12 shm_open F
+GLIBC_2.12 shm_unlink F
+GLIBC_2.12 timer_create F
+GLIBC_2.12 timer_delete F
+GLIBC_2.12 timer_getoverrun F
+GLIBC_2.12 timer_gettime F
+GLIBC_2.12 timer_settime F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libthread_db.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libthread_db.abilist
new file mode 100644
index 0000000000..4aade0b7e0
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libthread_db.abilist
@@ -0,0 +1,41 @@
+GLIBC_2.12 GLIBC_2.12 A
+GLIBC_2.12 td_init F
+GLIBC_2.12 td_log F
+GLIBC_2.12 td_symbol_list F
+GLIBC_2.12 td_ta_clear_event F
+GLIBC_2.12 td_ta_delete F
+GLIBC_2.12 td_ta_enable_stats F
+GLIBC_2.12 td_ta_event_addr F
+GLIBC_2.12 td_ta_event_getmsg F
+GLIBC_2.12 td_ta_get_nthreads F
+GLIBC_2.12 td_ta_get_ph F
+GLIBC_2.12 td_ta_get_stats F
+GLIBC_2.12 td_ta_map_id2thr F
+GLIBC_2.12 td_ta_map_lwp2thr F
+GLIBC_2.12 td_ta_new F
+GLIBC_2.12 td_ta_reset_stats F
+GLIBC_2.12 td_ta_set_event F
+GLIBC_2.12 td_ta_setconcurrency F
+GLIBC_2.12 td_ta_thr_iter F
+GLIBC_2.12 td_ta_tsd_iter F
+GLIBC_2.12 td_thr_clear_event F
+GLIBC_2.12 td_thr_dbresume F
+GLIBC_2.12 td_thr_dbsuspend F
+GLIBC_2.12 td_thr_event_enable F
+GLIBC_2.12 td_thr_event_getmsg F
+GLIBC_2.12 td_thr_get_info F
+GLIBC_2.12 td_thr_getfpregs F
+GLIBC_2.12 td_thr_getgregs F
+GLIBC_2.12 td_thr_getxregs F
+GLIBC_2.12 td_thr_getxregsize F
+GLIBC_2.12 td_thr_set_event F
+GLIBC_2.12 td_thr_setfpregs F
+GLIBC_2.12 td_thr_setgregs F
+GLIBC_2.12 td_thr_setprio F
+GLIBC_2.12 td_thr_setsigpending F
+GLIBC_2.12 td_thr_setxregs F
+GLIBC_2.12 td_thr_sigsetmask F
+GLIBC_2.12 td_thr_tls_get_addr F
+GLIBC_2.12 td_thr_tlsbase F
+GLIBC_2.12 td_thr_tsd F
+GLIBC_2.12 td_thr_validate F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libutil.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libutil.abilist
new file mode 100644
index 0000000000..e4d432643c
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libutil.abilist
@@ -0,0 +1,7 @@
+GLIBC_2.12 GLIBC_2.12 A
+GLIBC_2.12 forkpty F
+GLIBC_2.12 login F
+GLIBC_2.12 login_tty F
+GLIBC_2.12 logout F
+GLIBC_2.12 logwtmp F
+GLIBC_2.12 openpty F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/Implies b/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/Implies
new file mode 100644
index 0000000000..e4e0800c0a
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/Implies
@@ -0,0 +1,4 @@
+unix/sysv/linux/tile/tilegx
+unix/sysv/linux/tile
+unix/sysv/linux/generic
+unix/sysv/linux/wordsize-64
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/Makefile b/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/Makefile
new file mode 100644
index 0000000000..c8991d31e4
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/Makefile
@@ -0,0 +1 @@
+default-abi := 64
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/c++-types.data b/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/c++-types.data
new file mode 100644
index 0000000000..ac925ccb36
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/c++-types.data
@@ -0,0 +1,67 @@
+blkcnt64_t:l
+blkcnt_t:l
+blksize_t:i
+caddr_t:Pc
+clockid_t:i
+clock_t:l
+daddr_t:i
+dev_t:m
+fd_mask:l
+fsblkcnt64_t:m
+fsblkcnt_t:m
+fsfilcnt64_t:m
+fsfilcnt_t:m
+fsid_t:8__fsid_t
+gid_t:j
+id_t:j
+ino64_t:m
+ino_t:m
+int16_t:s
+int32_t:i
+int64_t:l
+int8_t:a
+intptr_t:l
+key_t:i
+loff_t:l
+mode_t:j
+nlink_t:j
+off64_t:l
+off_t:l
+pid_t:i
+pthread_attr_t:14pthread_attr_t
+pthread_barrier_t:17pthread_barrier_t
+pthread_barrierattr_t:21pthread_barrierattr_t
+pthread_cond_t:14pthread_cond_t
+pthread_condattr_t:18pthread_condattr_t
+pthread_key_t:j
+pthread_mutex_t:15pthread_mutex_t
+pthread_mutexattr_t:19pthread_mutexattr_t
+pthread_once_t:i
+pthread_rwlock_t:16pthread_rwlock_t
+pthread_rwlockattr_t:20pthread_rwlockattr_t
+pthread_spinlock_t:i
+pthread_t:m
+quad_t:l
+register_t:l
+rlim64_t:m
+rlim_t:m
+sigset_t:10__sigset_t
+size_t:m
+socklen_t:j
+ssize_t:l
+suseconds_t:l
+time_t:l
+u_char:h
+uid_t:j
+uint:j
+u_int:j
+u_int16_t:t
+u_int32_t:j
+u_int64_t:m
+u_int8_t:h
+ulong:m
+u_long:m
+u_quad_t:m
+useconds_t:j
+ushort:t
+u_short:t
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/ld.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/ld.abilist
new file mode 100644
index 0000000000..ab74e7ecd1
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/ld.abilist
@@ -0,0 +1,9 @@
+GLIBC_2.12 GLIBC_2.12 A
+GLIBC_2.12 __libc_stack_end D 0x8
+GLIBC_2.12 __tls_get_addr F
+GLIBC_2.12 _dl_mcount F
+GLIBC_2.12 _r_debug D 0x28
+GLIBC_2.12 calloc F
+GLIBC_2.12 free F
+GLIBC_2.12 malloc F
+GLIBC_2.12 realloc F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libBrokenLocale.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libBrokenLocale.abilist
new file mode 100644
index 0000000000..0d64827515
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libBrokenLocale.abilist
@@ -0,0 +1,2 @@
+GLIBC_2.12 GLIBC_2.12 A
+GLIBC_2.12 __ctype_get_mb_cur_max F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libanl.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libanl.abilist
new file mode 100644
index 0000000000..a3b1cc08bf
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libanl.abilist
@@ -0,0 +1,5 @@
+GLIBC_2.12 GLIBC_2.12 A
+GLIBC_2.12 gai_cancel F
+GLIBC_2.12 gai_error F
+GLIBC_2.12 gai_suspend F
+GLIBC_2.12 getaddrinfo_a F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libc.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libc.abilist
new file mode 100644
index 0000000000..1088923e59
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libc.abilist
@@ -0,0 +1,2112 @@
+GLIBC_2.12 GLIBC_2.12 A
+GLIBC_2.12 _Exit F
+GLIBC_2.12 _IO_2_1_stderr_ D 0xe0
+GLIBC_2.12 _IO_2_1_stdin_ D 0xe0
+GLIBC_2.12 _IO_2_1_stdout_ D 0xe0
+GLIBC_2.12 _IO_adjust_column F
+GLIBC_2.12 _IO_adjust_wcolumn F
+GLIBC_2.12 _IO_default_doallocate F
+GLIBC_2.12 _IO_default_finish F
+GLIBC_2.12 _IO_default_pbackfail F
+GLIBC_2.12 _IO_default_uflow F
+GLIBC_2.12 _IO_default_xsgetn F
+GLIBC_2.12 _IO_default_xsputn F
+GLIBC_2.12 _IO_do_write F
+GLIBC_2.12 _IO_doallocbuf F
+GLIBC_2.12 _IO_fclose F
+GLIBC_2.12 _IO_fdopen F
+GLIBC_2.12 _IO_feof F
+GLIBC_2.12 _IO_ferror F
+GLIBC_2.12 _IO_fflush F
+GLIBC_2.12 _IO_fgetpos F
+GLIBC_2.12 _IO_fgetpos64 F
+GLIBC_2.12 _IO_fgets F
+GLIBC_2.12 _IO_file_attach F
+GLIBC_2.12 _IO_file_close F
+GLIBC_2.12 _IO_file_close_it F
+GLIBC_2.12 _IO_file_doallocate F
+GLIBC_2.12 _IO_file_finish F
+GLIBC_2.12 _IO_file_fopen F
+GLIBC_2.12 _IO_file_init F
+GLIBC_2.12 _IO_file_jumps D 0xa8
+GLIBC_2.12 _IO_file_open F
+GLIBC_2.12 _IO_file_overflow F
+GLIBC_2.12 _IO_file_read F
+GLIBC_2.12 _IO_file_seek F
+GLIBC_2.12 _IO_file_seekoff F
+GLIBC_2.12 _IO_file_setbuf F
+GLIBC_2.12 _IO_file_stat F
+GLIBC_2.12 _IO_file_sync F
+GLIBC_2.12 _IO_file_underflow F
+GLIBC_2.12 _IO_file_write F
+GLIBC_2.12 _IO_file_xsputn F
+GLIBC_2.12 _IO_flockfile F
+GLIBC_2.12 _IO_flush_all F
+GLIBC_2.12 _IO_flush_all_linebuffered F
+GLIBC_2.12 _IO_fopen F
+GLIBC_2.12 _IO_fprintf F
+GLIBC_2.12 _IO_fputs F
+GLIBC_2.12 _IO_fread F
+GLIBC_2.12 _IO_free_backup_area F
+GLIBC_2.12 _IO_free_wbackup_area F
+GLIBC_2.12 _IO_fsetpos F
+GLIBC_2.12 _IO_fsetpos64 F
+GLIBC_2.12 _IO_ftell F
+GLIBC_2.12 _IO_ftrylockfile F
+GLIBC_2.12 _IO_funlockfile F
+GLIBC_2.12 _IO_fwrite F
+GLIBC_2.12 _IO_getc F
+GLIBC_2.12 _IO_getline F
+GLIBC_2.12 _IO_getline_info F
+GLIBC_2.12 _IO_gets F
+GLIBC_2.12 _IO_init F
+GLIBC_2.12 _IO_init_marker F
+GLIBC_2.12 _IO_init_wmarker F
+GLIBC_2.12 _IO_iter_begin F
+GLIBC_2.12 _IO_iter_end F
+GLIBC_2.12 _IO_iter_file F
+GLIBC_2.12 _IO_iter_next F
+GLIBC_2.12 _IO_least_wmarker F
+GLIBC_2.12 _IO_link_in F
+GLIBC_2.12 _IO_list_all D 0x8
+GLIBC_2.12 _IO_list_lock F
+GLIBC_2.12 _IO_list_resetlock F
+GLIBC_2.12 _IO_list_unlock F
+GLIBC_2.12 _IO_marker_delta F
+GLIBC_2.12 _IO_marker_difference F
+GLIBC_2.12 _IO_padn F
+GLIBC_2.12 _IO_peekc_locked F
+GLIBC_2.12 _IO_popen F
+GLIBC_2.12 _IO_printf F
+GLIBC_2.12 _IO_proc_close F
+GLIBC_2.12 _IO_proc_open F
+GLIBC_2.12 _IO_putc F
+GLIBC_2.12 _IO_puts F
+GLIBC_2.12 _IO_remove_marker F
+GLIBC_2.12 _IO_seekmark F
+GLIBC_2.12 _IO_seekoff F
+GLIBC_2.12 _IO_seekpos F
+GLIBC_2.12 _IO_seekwmark F
+GLIBC_2.12 _IO_setb F
+GLIBC_2.12 _IO_setbuffer F
+GLIBC_2.12 _IO_setvbuf F
+GLIBC_2.12 _IO_sgetn F
+GLIBC_2.12 _IO_sprintf F
+GLIBC_2.12 _IO_sputbackc F
+GLIBC_2.12 _IO_sputbackwc F
+GLIBC_2.12 _IO_sscanf F
+GLIBC_2.12 _IO_str_init_readonly F
+GLIBC_2.12 _IO_str_init_static F
+GLIBC_2.12 _IO_str_overflow F
+GLIBC_2.12 _IO_str_pbackfail F
+GLIBC_2.12 _IO_str_seekoff F
+GLIBC_2.12 _IO_str_underflow F
+GLIBC_2.12 _IO_sungetc F
+GLIBC_2.12 _IO_sungetwc F
+GLIBC_2.12 _IO_switch_to_get_mode F
+GLIBC_2.12 _IO_switch_to_main_wget_area F
+GLIBC_2.12 _IO_switch_to_wbackup_area F
+GLIBC_2.12 _IO_switch_to_wget_mode F
+GLIBC_2.12 _IO_un_link F
+GLIBC_2.12 _IO_ungetc F
+GLIBC_2.12 _IO_unsave_markers F
+GLIBC_2.12 _IO_unsave_wmarkers F
+GLIBC_2.12 _IO_vfprintf F
+GLIBC_2.12 _IO_vfscanf F
+GLIBC_2.12 _IO_vsprintf F
+GLIBC_2.12 _IO_wdefault_doallocate F
+GLIBC_2.12 _IO_wdefault_finish F
+GLIBC_2.12 _IO_wdefault_pbackfail F
+GLIBC_2.12 _IO_wdefault_uflow F
+GLIBC_2.12 _IO_wdefault_xsgetn F
+GLIBC_2.12 _IO_wdefault_xsputn F
+GLIBC_2.12 _IO_wdo_write F
+GLIBC_2.12 _IO_wdoallocbuf F
+GLIBC_2.12 _IO_wfile_jumps D 0xa8
+GLIBC_2.12 _IO_wfile_overflow F
+GLIBC_2.12 _IO_wfile_seekoff F
+GLIBC_2.12 _IO_wfile_sync F
+GLIBC_2.12 _IO_wfile_underflow F
+GLIBC_2.12 _IO_wfile_xsputn F
+GLIBC_2.12 _IO_wmarker_delta F
+GLIBC_2.12 _IO_wsetb F
+GLIBC_2.12 ___brk_addr D 0x8
+GLIBC_2.12 __adjtimex F
+GLIBC_2.12 __after_morecore_hook D 0x8
+GLIBC_2.12 __argz_count F
+GLIBC_2.12 __argz_next F
+GLIBC_2.12 __argz_stringify F
+GLIBC_2.12 __asprintf F
+GLIBC_2.12 __asprintf_chk F
+GLIBC_2.12 __assert F
+GLIBC_2.12 __assert_fail F
+GLIBC_2.12 __assert_perror_fail F
+GLIBC_2.12 __backtrace F
+GLIBC_2.12 __backtrace_symbols F
+GLIBC_2.12 __backtrace_symbols_fd F
+GLIBC_2.12 __bsd_getpgrp F
+GLIBC_2.12 __bzero F
+GLIBC_2.12 __check_rhosts_file D 0x4
+GLIBC_2.12 __chk_fail F
+GLIBC_2.12 __clone F
+GLIBC_2.12 __close F
+GLIBC_2.12 __cmsg_nxthdr F
+GLIBC_2.12 __confstr_chk F
+GLIBC_2.12 __connect F
+GLIBC_2.12 __ctype_b_loc F
+GLIBC_2.12 __ctype_get_mb_cur_max F
+GLIBC_2.12 __ctype_tolower_loc F
+GLIBC_2.12 __ctype_toupper_loc F
+GLIBC_2.12 __curbrk D 0x8
+GLIBC_2.12 __cxa_at_quick_exit F
+GLIBC_2.12 __cxa_atexit F
+GLIBC_2.12 __cxa_finalize F
+GLIBC_2.12 __cyg_profile_func_enter F
+GLIBC_2.12 __cyg_profile_func_exit F
+GLIBC_2.12 __daylight D 0x4
+GLIBC_2.12 __dcgettext F
+GLIBC_2.12 __default_morecore F
+GLIBC_2.12 __dgettext F
+GLIBC_2.12 __dprintf_chk F
+GLIBC_2.12 __dup2 F
+GLIBC_2.12 __duplocale F
+GLIBC_2.12 __endmntent F
+GLIBC_2.12 __environ D 0x8
+GLIBC_2.12 __errno_location F
+GLIBC_2.12 __fbufsize F
+GLIBC_2.12 __fcntl F
+GLIBC_2.12 __ffs F
+GLIBC_2.12 __fgets_chk F
+GLIBC_2.12 __fgets_unlocked_chk F
+GLIBC_2.12 __fgetws_chk F
+GLIBC_2.12 __fgetws_unlocked_chk F
+GLIBC_2.12 __finite F
+GLIBC_2.12 __finitef F
+GLIBC_2.12 __flbf F
+GLIBC_2.12 __fork F
+GLIBC_2.12 __fpending F
+GLIBC_2.12 __fprintf_chk F
+GLIBC_2.12 __fpu_control D 0x4
+GLIBC_2.12 __fpurge F
+GLIBC_2.12 __fread_chk F
+GLIBC_2.12 __fread_unlocked_chk F
+GLIBC_2.12 __freadable F
+GLIBC_2.12 __freading F
+GLIBC_2.12 __free_hook D 0x8
+GLIBC_2.12 __freelocale F
+GLIBC_2.12 __fsetlocking F
+GLIBC_2.12 __fwprintf_chk F
+GLIBC_2.12 __fwritable F
+GLIBC_2.12 __fwriting F
+GLIBC_2.12 __fxstat F
+GLIBC_2.12 __fxstat64 F
+GLIBC_2.12 __fxstatat F
+GLIBC_2.12 __fxstatat64 F
+GLIBC_2.12 __getcwd_chk F
+GLIBC_2.12 __getdelim F
+GLIBC_2.12 __getdomainname_chk F
+GLIBC_2.12 __getgroups_chk F
+GLIBC_2.12 __gethostname_chk F
+GLIBC_2.12 __getlogin_r_chk F
+GLIBC_2.12 __getmntent_r F
+GLIBC_2.12 __getpagesize F
+GLIBC_2.12 __getpgid F
+GLIBC_2.12 __getpid F
+GLIBC_2.12 __gets_chk F
+GLIBC_2.12 __gettimeofday F
+GLIBC_2.12 __getwd_chk F
+GLIBC_2.12 __gmtime_r F
+GLIBC_2.12 __h_errno_location F
+GLIBC_2.12 __isalnum_l F
+GLIBC_2.12 __isalpha_l F
+GLIBC_2.12 __isascii_l F
+GLIBC_2.12 __isblank_l F
+GLIBC_2.12 __iscntrl_l F
+GLIBC_2.12 __isctype F
+GLIBC_2.12 __isdigit_l F
+GLIBC_2.12 __isgraph_l F
+GLIBC_2.12 __isinf F
+GLIBC_2.12 __isinff F
+GLIBC_2.12 __islower_l F
+GLIBC_2.12 __isnan F
+GLIBC_2.12 __isnanf F
+GLIBC_2.12 __isoc99_fscanf F
+GLIBC_2.12 __isoc99_fwscanf F
+GLIBC_2.12 __isoc99_scanf F
+GLIBC_2.12 __isoc99_sscanf F
+GLIBC_2.12 __isoc99_swscanf F
+GLIBC_2.12 __isoc99_vfscanf F
+GLIBC_2.12 __isoc99_vfwscanf F
+GLIBC_2.12 __isoc99_vscanf F
+GLIBC_2.12 __isoc99_vsscanf F
+GLIBC_2.12 __isoc99_vswscanf F
+GLIBC_2.12 __isoc99_vwscanf F
+GLIBC_2.12 __isoc99_wscanf F
+GLIBC_2.12 __isprint_l F
+GLIBC_2.12 __ispunct_l F
+GLIBC_2.12 __isspace_l F
+GLIBC_2.12 __isupper_l F
+GLIBC_2.12 __iswalnum_l F
+GLIBC_2.12 __iswalpha_l F
+GLIBC_2.12 __iswblank_l F
+GLIBC_2.12 __iswcntrl_l F
+GLIBC_2.12 __iswctype F
+GLIBC_2.12 __iswctype_l F
+GLIBC_2.12 __iswdigit_l F
+GLIBC_2.12 __iswgraph_l F
+GLIBC_2.12 __iswlower_l F
+GLIBC_2.12 __iswprint_l F
+GLIBC_2.12 __iswpunct_l F
+GLIBC_2.12 __iswspace_l F
+GLIBC_2.12 __iswupper_l F
+GLIBC_2.12 __iswxdigit_l F
+GLIBC_2.12 __isxdigit_l F
+GLIBC_2.12 __ivaliduser F
+GLIBC_2.12 __key_decryptsession_pk_LOCAL D 0x8
+GLIBC_2.12 __key_encryptsession_pk_LOCAL D 0x8
+GLIBC_2.12 __key_gendes_LOCAL D 0x8
+GLIBC_2.12 __libc_allocate_rtsig F
+GLIBC_2.12 __libc_calloc F
+GLIBC_2.12 __libc_current_sigrtmax F
+GLIBC_2.12 __libc_current_sigrtmin F
+GLIBC_2.12 __libc_free F
+GLIBC_2.12 __libc_freeres F
+GLIBC_2.12 __libc_init_first F
+GLIBC_2.12 __libc_mallinfo F
+GLIBC_2.12 __libc_malloc F
+GLIBC_2.12 __libc_mallopt F
+GLIBC_2.12 __libc_memalign F
+GLIBC_2.12 __libc_pvalloc F
+GLIBC_2.12 __libc_realloc F
+GLIBC_2.12 __libc_sa_len F
+GLIBC_2.12 __libc_start_main F
+GLIBC_2.12 __libc_valloc F
+GLIBC_2.12 __longjmp_chk F
+GLIBC_2.12 __lseek F
+GLIBC_2.12 __lxstat F
+GLIBC_2.12 __lxstat64 F
+GLIBC_2.12 __malloc_hook D 0x8
+GLIBC_2.12 __malloc_initialize_hook D 0x8
+GLIBC_2.12 __mbrlen F
+GLIBC_2.12 __mbrtowc F
+GLIBC_2.12 __mbsnrtowcs_chk F
+GLIBC_2.12 __mbsrtowcs_chk F
+GLIBC_2.12 __mbstowcs_chk F
+GLIBC_2.12 __mcount F
+GLIBC_2.12 __memalign_hook D 0x8
+GLIBC_2.12 __memcpy_chk F
+GLIBC_2.12 __memmove_chk F
+GLIBC_2.12 __mempcpy F
+GLIBC_2.12 __mempcpy_chk F
+GLIBC_2.12 __mempcpy_small F
+GLIBC_2.12 __memset_chk F
+GLIBC_2.12 __monstartup F
+GLIBC_2.12 __morecore D 0x8
+GLIBC_2.12 __nanosleep F
+GLIBC_2.12 __newlocale F
+GLIBC_2.12 __nl_langinfo_l F
+GLIBC_2.12 __nss_configure_lookup F
+GLIBC_2.12 __nss_database_lookup F
+GLIBC_2.12 __nss_group_lookup F
+GLIBC_2.12 __nss_hostname_digits_dots F
+GLIBC_2.12 __nss_hosts_lookup F
+GLIBC_2.12 __nss_next F
+GLIBC_2.12 __nss_passwd_lookup F
+GLIBC_2.12 __obstack_printf_chk F
+GLIBC_2.12 __obstack_vprintf_chk F
+GLIBC_2.12 __open F
+GLIBC_2.12 __open64 F
+GLIBC_2.12 __open64_2 F
+GLIBC_2.12 __open_2 F
+GLIBC_2.12 __openat64_2 F
+GLIBC_2.12 __openat_2 F
+GLIBC_2.12 __overflow F
+GLIBC_2.12 __pipe F
+GLIBC_2.12 __poll F
+GLIBC_2.12 __posix_getopt F
+GLIBC_2.12 __pread64 F
+GLIBC_2.12 __pread64_chk F
+GLIBC_2.12 __pread_chk F
+GLIBC_2.12 __printf_chk F
+GLIBC_2.12 __printf_fp F
+GLIBC_2.12 __profile_frequency F
+GLIBC_2.12 __progname D 0x8
+GLIBC_2.12 __progname_full D 0x8
+GLIBC_2.12 __ptsname_r_chk F
+GLIBC_2.12 __pwrite64 F
+GLIBC_2.12 __rawmemchr F
+GLIBC_2.12 __rcmd_errstr D 0x8
+GLIBC_2.12 __read F
+GLIBC_2.12 __read_chk F
+GLIBC_2.12 __readlink_chk F
+GLIBC_2.12 __readlinkat_chk F
+GLIBC_2.12 __realloc_hook D 0x8
+GLIBC_2.12 __realpath_chk F
+GLIBC_2.12 __recv_chk F
+GLIBC_2.12 __recvfrom_chk F
+GLIBC_2.12 __register_atfork F
+GLIBC_2.12 __res_init F
+GLIBC_2.12 __res_nclose F
+GLIBC_2.12 __res_ninit F
+GLIBC_2.12 __res_randomid F
+GLIBC_2.12 __res_state F
+GLIBC_2.12 __rpc_thread_createerr F
+GLIBC_2.12 __rpc_thread_svc_fdset F
+GLIBC_2.12 __rpc_thread_svc_max_pollfd F
+GLIBC_2.12 __rpc_thread_svc_pollfd F
+GLIBC_2.12 __sbrk F
+GLIBC_2.12 __sched_cpualloc F
+GLIBC_2.12 __sched_cpucount F
+GLIBC_2.12 __sched_cpufree F
+GLIBC_2.12 __sched_get_priority_max F
+GLIBC_2.12 __sched_get_priority_min F
+GLIBC_2.12 __sched_getparam F
+GLIBC_2.12 __sched_getscheduler F
+GLIBC_2.12 __sched_setscheduler F
+GLIBC_2.12 __sched_yield F
+GLIBC_2.12 __secure_getenv F
+GLIBC_2.12 __select F
+GLIBC_2.12 __setmntent F
+GLIBC_2.12 __setpgid F
+GLIBC_2.12 __sigaction F
+GLIBC_2.12 __sigaddset F
+GLIBC_2.12 __sigdelset F
+GLIBC_2.12 __sigismember F
+GLIBC_2.12 __signbit F
+GLIBC_2.12 __signbitf F
+GLIBC_2.12 __sigpause F
+GLIBC_2.12 __sigsetjmp F
+GLIBC_2.12 __sigsuspend F
+GLIBC_2.12 __snprintf_chk F
+GLIBC_2.12 __sprintf_chk F
+GLIBC_2.12 __stack_chk_fail F
+GLIBC_2.12 __statfs F
+GLIBC_2.12 __stpcpy F
+GLIBC_2.12 __stpcpy_chk F
+GLIBC_2.12 __stpcpy_small F
+GLIBC_2.12 __stpncpy F
+GLIBC_2.12 __stpncpy_chk F
+GLIBC_2.12 __strcasecmp F
+GLIBC_2.12 __strcasecmp_l F
+GLIBC_2.12 __strcasestr F
+GLIBC_2.12 __strcat_chk F
+GLIBC_2.12 __strcoll_l F
+GLIBC_2.12 __strcpy_chk F
+GLIBC_2.12 __strcpy_small F
+GLIBC_2.12 __strcspn_c1 F
+GLIBC_2.12 __strcspn_c2 F
+GLIBC_2.12 __strcspn_c3 F
+GLIBC_2.12 __strdup F
+GLIBC_2.12 __strerror_r F
+GLIBC_2.12 __strfmon_l F
+GLIBC_2.12 __strftime_l F
+GLIBC_2.12 __strncasecmp_l F
+GLIBC_2.12 __strncat_chk F
+GLIBC_2.12 __strncpy_chk F
+GLIBC_2.12 __strndup F
+GLIBC_2.12 __strpbrk_c2 F
+GLIBC_2.12 __strpbrk_c3 F
+GLIBC_2.12 __strsep_1c F
+GLIBC_2.12 __strsep_2c F
+GLIBC_2.12 __strsep_3c F
+GLIBC_2.12 __strsep_g F
+GLIBC_2.12 __strspn_c1 F
+GLIBC_2.12 __strspn_c2 F
+GLIBC_2.12 __strspn_c3 F
+GLIBC_2.12 __strtod_internal F
+GLIBC_2.12 __strtod_l F
+GLIBC_2.12 __strtof_internal F
+GLIBC_2.12 __strtof_l F
+GLIBC_2.12 __strtok_r F
+GLIBC_2.12 __strtok_r_1c F
+GLIBC_2.12 __strtol_internal F
+GLIBC_2.12 __strtol_l F
+GLIBC_2.12 __strtold_internal F
+GLIBC_2.12 __strtold_l F
+GLIBC_2.12 __strtoll_internal F
+GLIBC_2.12 __strtoll_l F
+GLIBC_2.12 __strtoul_internal F
+GLIBC_2.12 __strtoul_l F
+GLIBC_2.12 __strtoull_internal F
+GLIBC_2.12 __strtoull_l F
+GLIBC_2.12 __strverscmp F
+GLIBC_2.12 __strxfrm_l F
+GLIBC_2.12 __swprintf_chk F
+GLIBC_2.12 __sysconf F
+GLIBC_2.12 __syslog_chk F
+GLIBC_2.12 __sysv_signal F
+GLIBC_2.12 __timezone D 0x8
+GLIBC_2.12 __toascii_l F
+GLIBC_2.12 __tolower_l F
+GLIBC_2.12 __toupper_l F
+GLIBC_2.12 __towctrans F
+GLIBC_2.12 __towctrans_l F
+GLIBC_2.12 __towlower_l F
+GLIBC_2.12 __towupper_l F
+GLIBC_2.12 __ttyname_r_chk F
+GLIBC_2.12 __tzname D 0x10
+GLIBC_2.12 __uflow F
+GLIBC_2.12 __underflow F
+GLIBC_2.12 __uselocale F
+GLIBC_2.12 __vasprintf_chk F
+GLIBC_2.12 __vdprintf_chk F
+GLIBC_2.12 __vfork F
+GLIBC_2.12 __vfprintf_chk F
+GLIBC_2.12 __vfscanf F
+GLIBC_2.12 __vfwprintf_chk F
+GLIBC_2.12 __vprintf_chk F
+GLIBC_2.12 __vsnprintf F
+GLIBC_2.12 __vsnprintf_chk F
+GLIBC_2.12 __vsprintf_chk F
+GLIBC_2.12 __vsscanf F
+GLIBC_2.12 __vswprintf_chk F
+GLIBC_2.12 __vsyslog_chk F
+GLIBC_2.12 __vwprintf_chk F
+GLIBC_2.12 __wait F
+GLIBC_2.12 __waitpid F
+GLIBC_2.12 __wcpcpy_chk F
+GLIBC_2.12 __wcpncpy_chk F
+GLIBC_2.12 __wcrtomb_chk F
+GLIBC_2.12 __wcscasecmp_l F
+GLIBC_2.12 __wcscat_chk F
+GLIBC_2.12 __wcscoll_l F
+GLIBC_2.12 __wcscpy_chk F
+GLIBC_2.12 __wcsftime_l F
+GLIBC_2.12 __wcsncasecmp_l F
+GLIBC_2.12 __wcsncat_chk F
+GLIBC_2.12 __wcsncpy_chk F
+GLIBC_2.12 __wcsnrtombs_chk F
+GLIBC_2.12 __wcsrtombs_chk F
+GLIBC_2.12 __wcstod_internal F
+GLIBC_2.12 __wcstod_l F
+GLIBC_2.12 __wcstof_internal F
+GLIBC_2.12 __wcstof_l F
+GLIBC_2.12 __wcstol_internal F
+GLIBC_2.12 __wcstol_l F
+GLIBC_2.12 __wcstold_internal F
+GLIBC_2.12 __wcstold_l F
+GLIBC_2.12 __wcstoll_internal F
+GLIBC_2.12 __wcstoll_l F
+GLIBC_2.12 __wcstombs_chk F
+GLIBC_2.12 __wcstoul_internal F
+GLIBC_2.12 __wcstoul_l F
+GLIBC_2.12 __wcstoull_internal F
+GLIBC_2.12 __wcstoull_l F
+GLIBC_2.12 __wcsxfrm_l F
+GLIBC_2.12 __wctomb_chk F
+GLIBC_2.12 __wctrans_l F
+GLIBC_2.12 __wctype_l F
+GLIBC_2.12 __wmemcpy_chk F
+GLIBC_2.12 __wmemmove_chk F
+GLIBC_2.12 __wmempcpy_chk F
+GLIBC_2.12 __wmemset_chk F
+GLIBC_2.12 __woverflow F
+GLIBC_2.12 __wprintf_chk F
+GLIBC_2.12 __write F
+GLIBC_2.12 __wuflow F
+GLIBC_2.12 __wunderflow F
+GLIBC_2.12 __xmknod F
+GLIBC_2.12 __xmknodat F
+GLIBC_2.12 __xpg_basename F
+GLIBC_2.12 __xpg_sigpause F
+GLIBC_2.12 __xpg_strerror_r F
+GLIBC_2.12 __xstat F
+GLIBC_2.12 __xstat64 F
+GLIBC_2.12 _authenticate F
+GLIBC_2.12 _dl_mcount_wrapper F
+GLIBC_2.12 _dl_mcount_wrapper_check F
+GLIBC_2.12 _environ D 0x8
+GLIBC_2.12 _exit F
+GLIBC_2.12 _flush_cache F
+GLIBC_2.12 _flushlbf F
+GLIBC_2.12 _libc_intl_domainname D 0x5
+GLIBC_2.12 _longjmp F
+GLIBC_2.12 _mcleanup F
+GLIBC_2.12 _mcount F
+GLIBC_2.12 _nl_default_dirname D 0x12
+GLIBC_2.12 _nl_domain_bindings D 0x8
+GLIBC_2.12 _nl_msg_cat_cntr D 0x4
+GLIBC_2.12 _null_auth D 0x18
+GLIBC_2.12 _obstack_allocated_p F
+GLIBC_2.12 _obstack_begin F
+GLIBC_2.12 _obstack_begin_1 F
+GLIBC_2.12 _obstack_free F
+GLIBC_2.12 _obstack_memory_used F
+GLIBC_2.12 _obstack_newchunk F
+GLIBC_2.12 _res D 0x238
+GLIBC_2.12 _res_hconf D 0x48
+GLIBC_2.12 _rpc_dtablesize F
+GLIBC_2.12 _seterr_reply F
+GLIBC_2.12 _setjmp F
+GLIBC_2.12 _sys_errlist D 0x438
+GLIBC_2.12 _sys_nerr D 0x4
+GLIBC_2.12 _sys_siglist D 0x208
+GLIBC_2.12 _tolower F
+GLIBC_2.12 _toupper F
+GLIBC_2.12 a64l F
+GLIBC_2.12 abort F
+GLIBC_2.12 abs F
+GLIBC_2.12 accept F
+GLIBC_2.12 accept4 F
+GLIBC_2.12 access F
+GLIBC_2.12 acct F
+GLIBC_2.12 addmntent F
+GLIBC_2.12 addseverity F
+GLIBC_2.12 adjtime F
+GLIBC_2.12 adjtimex F
+GLIBC_2.12 advance F
+GLIBC_2.12 alarm F
+GLIBC_2.12 alphasort F
+GLIBC_2.12 alphasort64 F
+GLIBC_2.12 argp_err_exit_status D 0x4
+GLIBC_2.12 argp_error F
+GLIBC_2.12 argp_failure F
+GLIBC_2.12 argp_help F
+GLIBC_2.12 argp_parse F
+GLIBC_2.12 argp_program_bug_address D 0x8
+GLIBC_2.12 argp_program_version D 0x8
+GLIBC_2.12 argp_program_version_hook D 0x8
+GLIBC_2.12 argp_state_help F
+GLIBC_2.12 argp_usage F
+GLIBC_2.12 argz_add F
+GLIBC_2.12 argz_add_sep F
+GLIBC_2.12 argz_append F
+GLIBC_2.12 argz_count F
+GLIBC_2.12 argz_create F
+GLIBC_2.12 argz_create_sep F
+GLIBC_2.12 argz_delete F
+GLIBC_2.12 argz_extract F
+GLIBC_2.12 argz_insert F
+GLIBC_2.12 argz_next F
+GLIBC_2.12 argz_replace F
+GLIBC_2.12 argz_stringify F
+GLIBC_2.12 asctime F
+GLIBC_2.12 asctime_r F
+GLIBC_2.12 asprintf F
+GLIBC_2.12 atof F
+GLIBC_2.12 atoi F
+GLIBC_2.12 atol F
+GLIBC_2.12 atoll F
+GLIBC_2.12 authdes_create F
+GLIBC_2.12 authdes_getucred F
+GLIBC_2.12 authdes_pk_create F
+GLIBC_2.12 authnone_create F
+GLIBC_2.12 authunix_create F
+GLIBC_2.12 authunix_create_default F
+GLIBC_2.12 backtrace F
+GLIBC_2.12 backtrace_symbols F
+GLIBC_2.12 backtrace_symbols_fd F
+GLIBC_2.12 basename F
+GLIBC_2.12 bcmp F
+GLIBC_2.12 bcopy F
+GLIBC_2.12 bdflush F
+GLIBC_2.12 bind F
+GLIBC_2.12 bind_textdomain_codeset F
+GLIBC_2.12 bindresvport F
+GLIBC_2.12 bindtextdomain F
+GLIBC_2.12 brk F
+GLIBC_2.12 bsd_signal F
+GLIBC_2.12 bsearch F
+GLIBC_2.12 btowc F
+GLIBC_2.12 bzero F
+GLIBC_2.12 cacheflush F
+GLIBC_2.12 calloc F
+GLIBC_2.12 callrpc F
+GLIBC_2.12 canonicalize_file_name F
+GLIBC_2.12 capget F
+GLIBC_2.12 capset F
+GLIBC_2.12 catclose F
+GLIBC_2.12 catgets F
+GLIBC_2.12 catopen F
+GLIBC_2.12 cbc_crypt F
+GLIBC_2.12 cfgetispeed F
+GLIBC_2.12 cfgetospeed F
+GLIBC_2.12 cfmakeraw F
+GLIBC_2.12 cfree F
+GLIBC_2.12 cfsetispeed F
+GLIBC_2.12 cfsetospeed F
+GLIBC_2.12 cfsetspeed F
+GLIBC_2.12 chdir F
+GLIBC_2.12 chflags F
+GLIBC_2.12 chmod F
+GLIBC_2.12 chown F
+GLIBC_2.12 chroot F
+GLIBC_2.12 clearenv F
+GLIBC_2.12 clearerr F
+GLIBC_2.12 clearerr_unlocked F
+GLIBC_2.12 clnt_broadcast F
+GLIBC_2.12 clnt_create F
+GLIBC_2.12 clnt_pcreateerror F
+GLIBC_2.12 clnt_perrno F
+GLIBC_2.12 clnt_perror F
+GLIBC_2.12 clnt_spcreateerror F
+GLIBC_2.12 clnt_sperrno F
+GLIBC_2.12 clnt_sperror F
+GLIBC_2.12 clntraw_create F
+GLIBC_2.12 clnttcp_create F
+GLIBC_2.12 clntudp_bufcreate F
+GLIBC_2.12 clntudp_create F
+GLIBC_2.12 clntunix_create F
+GLIBC_2.12 clock F
+GLIBC_2.12 clone F
+GLIBC_2.12 close F
+GLIBC_2.12 closedir F
+GLIBC_2.12 closelog F
+GLIBC_2.12 confstr F
+GLIBC_2.12 connect F
+GLIBC_2.12 copysign F
+GLIBC_2.12 copysignf F
+GLIBC_2.12 copysignl F
+GLIBC_2.12 creat F
+GLIBC_2.12 creat64 F
+GLIBC_2.12 create_module F
+GLIBC_2.12 ctermid F
+GLIBC_2.12 ctime F
+GLIBC_2.12 ctime_r F
+GLIBC_2.12 cuserid F
+GLIBC_2.12 daemon F
+GLIBC_2.12 daylight D 0x4
+GLIBC_2.12 dcgettext F
+GLIBC_2.12 dcngettext F
+GLIBC_2.12 delete_module F
+GLIBC_2.12 des_setparity F
+GLIBC_2.12 dgettext F
+GLIBC_2.12 difftime F
+GLIBC_2.12 dirfd F
+GLIBC_2.12 dirname F
+GLIBC_2.12 div F
+GLIBC_2.12 dl_iterate_phdr F
+GLIBC_2.12 dngettext F
+GLIBC_2.12 dprintf F
+GLIBC_2.12 drand48 F
+GLIBC_2.12 drand48_r F
+GLIBC_2.12 dup F
+GLIBC_2.12 dup2 F
+GLIBC_2.12 dup3 F
+GLIBC_2.12 duplocale F
+GLIBC_2.12 dysize F
+GLIBC_2.12 eaccess F
+GLIBC_2.12 ecb_crypt F
+GLIBC_2.12 ecvt F
+GLIBC_2.12 ecvt_r F
+GLIBC_2.12 endaliasent F
+GLIBC_2.12 endfsent F
+GLIBC_2.12 endgrent F
+GLIBC_2.12 endhostent F
+GLIBC_2.12 endmntent F
+GLIBC_2.12 endnetent F
+GLIBC_2.12 endnetgrent F
+GLIBC_2.12 endprotoent F
+GLIBC_2.12 endpwent F
+GLIBC_2.12 endrpcent F
+GLIBC_2.12 endservent F
+GLIBC_2.12 endsgent F
+GLIBC_2.12 endspent F
+GLIBC_2.12 endttyent F
+GLIBC_2.12 endusershell F
+GLIBC_2.12 endutent F
+GLIBC_2.12 endutxent F
+GLIBC_2.12 environ D 0x8
+GLIBC_2.12 envz_add F
+GLIBC_2.12 envz_entry F
+GLIBC_2.12 envz_get F
+GLIBC_2.12 envz_merge F
+GLIBC_2.12 envz_remove F
+GLIBC_2.12 envz_strip F
+GLIBC_2.12 epoll_create F
+GLIBC_2.12 epoll_create1 F
+GLIBC_2.12 epoll_ctl F
+GLIBC_2.12 epoll_pwait F
+GLIBC_2.12 epoll_wait F
+GLIBC_2.12 erand48 F
+GLIBC_2.12 erand48_r F
+GLIBC_2.12 err F
+GLIBC_2.12 error F
+GLIBC_2.12 error_at_line F
+GLIBC_2.12 error_message_count D 0x4
+GLIBC_2.12 error_one_per_line D 0x4
+GLIBC_2.12 error_print_progname D 0x8
+GLIBC_2.12 errx F
+GLIBC_2.12 ether_aton F
+GLIBC_2.12 ether_aton_r F
+GLIBC_2.12 ether_hostton F
+GLIBC_2.12 ether_line F
+GLIBC_2.12 ether_ntoa F
+GLIBC_2.12 ether_ntoa_r F
+GLIBC_2.12 ether_ntohost F
+GLIBC_2.12 euidaccess F
+GLIBC_2.12 eventfd F
+GLIBC_2.12 eventfd_read F
+GLIBC_2.12 eventfd_write F
+GLIBC_2.12 execl F
+GLIBC_2.12 execle F
+GLIBC_2.12 execlp F
+GLIBC_2.12 execv F
+GLIBC_2.12 execve F
+GLIBC_2.12 execvp F
+GLIBC_2.12 execvpe F
+GLIBC_2.12 exit F
+GLIBC_2.12 faccessat F
+GLIBC_2.12 fallocate F
+GLIBC_2.12 fallocate64 F
+GLIBC_2.12 fattach F
+GLIBC_2.12 fchdir F
+GLIBC_2.12 fchflags F
+GLIBC_2.12 fchmod F
+GLIBC_2.12 fchmodat F
+GLIBC_2.12 fchown F
+GLIBC_2.12 fchownat F
+GLIBC_2.12 fclose F
+GLIBC_2.12 fcloseall F
+GLIBC_2.12 fcntl F
+GLIBC_2.12 fcvt F
+GLIBC_2.12 fcvt_r F
+GLIBC_2.12 fdatasync F
+GLIBC_2.12 fdetach F
+GLIBC_2.12 fdopen F
+GLIBC_2.12 fdopendir F
+GLIBC_2.12 feof F
+GLIBC_2.12 feof_unlocked F
+GLIBC_2.12 ferror F
+GLIBC_2.12 ferror_unlocked F
+GLIBC_2.12 fexecve F
+GLIBC_2.12 fflush F
+GLIBC_2.12 fflush_unlocked F
+GLIBC_2.12 ffs F
+GLIBC_2.12 ffsl F
+GLIBC_2.12 ffsll F
+GLIBC_2.12 fgetc F
+GLIBC_2.12 fgetc_unlocked F
+GLIBC_2.12 fgetgrent F
+GLIBC_2.12 fgetgrent_r F
+GLIBC_2.12 fgetpos F
+GLIBC_2.12 fgetpos64 F
+GLIBC_2.12 fgetpwent F
+GLIBC_2.12 fgetpwent_r F
+GLIBC_2.12 fgets F
+GLIBC_2.12 fgets_unlocked F
+GLIBC_2.12 fgetsgent F
+GLIBC_2.12 fgetsgent_r F
+GLIBC_2.12 fgetspent F
+GLIBC_2.12 fgetspent_r F
+GLIBC_2.12 fgetwc F
+GLIBC_2.12 fgetwc_unlocked F
+GLIBC_2.12 fgetws F
+GLIBC_2.12 fgetws_unlocked F
+GLIBC_2.12 fgetxattr F
+GLIBC_2.12 fileno F
+GLIBC_2.12 fileno_unlocked F
+GLIBC_2.12 finite F
+GLIBC_2.12 finitef F
+GLIBC_2.12 finitel F
+GLIBC_2.12 flistxattr F
+GLIBC_2.12 flock F
+GLIBC_2.12 flockfile F
+GLIBC_2.12 fmemopen F
+GLIBC_2.12 fmtmsg F
+GLIBC_2.12 fnmatch F
+GLIBC_2.12 fopen F
+GLIBC_2.12 fopen64 F
+GLIBC_2.12 fopencookie F
+GLIBC_2.12 fork F
+GLIBC_2.12 fpathconf F
+GLIBC_2.12 fprintf F
+GLIBC_2.12 fputc F
+GLIBC_2.12 fputc_unlocked F
+GLIBC_2.12 fputs F
+GLIBC_2.12 fputs_unlocked F
+GLIBC_2.12 fputwc F
+GLIBC_2.12 fputwc_unlocked F
+GLIBC_2.12 fputws F
+GLIBC_2.12 fputws_unlocked F
+GLIBC_2.12 fread F
+GLIBC_2.12 fread_unlocked F
+GLIBC_2.12 free F
+GLIBC_2.12 freeaddrinfo F
+GLIBC_2.12 freeifaddrs F
+GLIBC_2.12 freelocale F
+GLIBC_2.12 fremovexattr F
+GLIBC_2.12 freopen F
+GLIBC_2.12 freopen64 F
+GLIBC_2.12 frexp F
+GLIBC_2.12 frexpf F
+GLIBC_2.12 frexpl F
+GLIBC_2.12 fscanf F
+GLIBC_2.12 fseek F
+GLIBC_2.12 fseeko F
+GLIBC_2.12 fseeko64 F
+GLIBC_2.12 fsetpos F
+GLIBC_2.12 fsetpos64 F
+GLIBC_2.12 fsetxattr F
+GLIBC_2.12 fstatfs F
+GLIBC_2.12 fstatfs64 F
+GLIBC_2.12 fstatvfs F
+GLIBC_2.12 fstatvfs64 F
+GLIBC_2.12 fsync F
+GLIBC_2.12 ftell F
+GLIBC_2.12 ftello F
+GLIBC_2.12 ftello64 F
+GLIBC_2.12 ftime F
+GLIBC_2.12 ftok F
+GLIBC_2.12 ftruncate F
+GLIBC_2.12 ftruncate64 F
+GLIBC_2.12 ftrylockfile F
+GLIBC_2.12 fts_children F
+GLIBC_2.12 fts_close F
+GLIBC_2.12 fts_open F
+GLIBC_2.12 fts_read F
+GLIBC_2.12 fts_set F
+GLIBC_2.12 ftw F
+GLIBC_2.12 ftw64 F
+GLIBC_2.12 funlockfile F
+GLIBC_2.12 futimens F
+GLIBC_2.12 futimes F
+GLIBC_2.12 futimesat F
+GLIBC_2.12 fwide F
+GLIBC_2.12 fwprintf F
+GLIBC_2.12 fwrite F
+GLIBC_2.12 fwrite_unlocked F
+GLIBC_2.12 fwscanf F
+GLIBC_2.12 gai_strerror F
+GLIBC_2.12 gcvt F
+GLIBC_2.12 get_avphys_pages F
+GLIBC_2.12 get_current_dir_name F
+GLIBC_2.12 get_kernel_syms F
+GLIBC_2.12 get_myaddress F
+GLIBC_2.12 get_nprocs F
+GLIBC_2.12 get_nprocs_conf F
+GLIBC_2.12 get_phys_pages F
+GLIBC_2.12 getaddrinfo F
+GLIBC_2.12 getaliasbyname F
+GLIBC_2.12 getaliasbyname_r F
+GLIBC_2.12 getaliasent F
+GLIBC_2.12 getaliasent_r F
+GLIBC_2.12 getc F
+GLIBC_2.12 getc_unlocked F
+GLIBC_2.12 getchar F
+GLIBC_2.12 getchar_unlocked F
+GLIBC_2.12 getcontext F
+GLIBC_2.12 getcwd F
+GLIBC_2.12 getdate F
+GLIBC_2.12 getdate_err D 0x4
+GLIBC_2.12 getdate_r F
+GLIBC_2.12 getdelim F
+GLIBC_2.12 getdirentries F
+GLIBC_2.12 getdirentries64 F
+GLIBC_2.12 getdomainname F
+GLIBC_2.12 getdtablesize F
+GLIBC_2.12 getegid F
+GLIBC_2.12 getenv F
+GLIBC_2.12 geteuid F
+GLIBC_2.12 getfsent F
+GLIBC_2.12 getfsfile F
+GLIBC_2.12 getfsspec F
+GLIBC_2.12 getgid F
+GLIBC_2.12 getgrent F
+GLIBC_2.12 getgrent_r F
+GLIBC_2.12 getgrgid F
+GLIBC_2.12 getgrgid_r F
+GLIBC_2.12 getgrnam F
+GLIBC_2.12 getgrnam_r F
+GLIBC_2.12 getgrouplist F
+GLIBC_2.12 getgroups F
+GLIBC_2.12 gethostbyaddr F
+GLIBC_2.12 gethostbyaddr_r F
+GLIBC_2.12 gethostbyname F
+GLIBC_2.12 gethostbyname2 F
+GLIBC_2.12 gethostbyname2_r F
+GLIBC_2.12 gethostbyname_r F
+GLIBC_2.12 gethostent F
+GLIBC_2.12 gethostent_r F
+GLIBC_2.12 gethostid F
+GLIBC_2.12 gethostname F
+GLIBC_2.12 getifaddrs F
+GLIBC_2.12 getipv4sourcefilter F
+GLIBC_2.12 getitimer F
+GLIBC_2.12 getline F
+GLIBC_2.12 getloadavg F
+GLIBC_2.12 getlogin F
+GLIBC_2.12 getlogin_r F
+GLIBC_2.12 getmntent F
+GLIBC_2.12 getmntent_r F
+GLIBC_2.12 getmsg F
+GLIBC_2.12 getnameinfo F
+GLIBC_2.12 getnetbyaddr F
+GLIBC_2.12 getnetbyaddr_r F
+GLIBC_2.12 getnetbyname F
+GLIBC_2.12 getnetbyname_r F
+GLIBC_2.12 getnetent F
+GLIBC_2.12 getnetent_r F
+GLIBC_2.12 getnetgrent F
+GLIBC_2.12 getnetgrent_r F
+GLIBC_2.12 getnetname F
+GLIBC_2.12 getopt F
+GLIBC_2.12 getopt_long F
+GLIBC_2.12 getopt_long_only F
+GLIBC_2.12 getpagesize F
+GLIBC_2.12 getpass F
+GLIBC_2.12 getpeername F
+GLIBC_2.12 getpgid F
+GLIBC_2.12 getpgrp F
+GLIBC_2.12 getpid F
+GLIBC_2.12 getpmsg F
+GLIBC_2.12 getppid F
+GLIBC_2.12 getpriority F
+GLIBC_2.12 getprotobyname F
+GLIBC_2.12 getprotobyname_r F
+GLIBC_2.12 getprotobynumber F
+GLIBC_2.12 getprotobynumber_r F
+GLIBC_2.12 getprotoent F
+GLIBC_2.12 getprotoent_r F
+GLIBC_2.12 getpt F
+GLIBC_2.12 getpublickey F
+GLIBC_2.12 getpw F
+GLIBC_2.12 getpwent F
+GLIBC_2.12 getpwent_r F
+GLIBC_2.12 getpwnam F
+GLIBC_2.12 getpwnam_r F
+GLIBC_2.12 getpwuid F
+GLIBC_2.12 getpwuid_r F
+GLIBC_2.12 getresgid F
+GLIBC_2.12 getresuid F
+GLIBC_2.12 getrlimit F
+GLIBC_2.12 getrlimit64 F
+GLIBC_2.12 getrpcbyname F
+GLIBC_2.12 getrpcbyname_r F
+GLIBC_2.12 getrpcbynumber F
+GLIBC_2.12 getrpcbynumber_r F
+GLIBC_2.12 getrpcent F
+GLIBC_2.12 getrpcent_r F
+GLIBC_2.12 getrpcport F
+GLIBC_2.12 getrusage F
+GLIBC_2.12 gets F
+GLIBC_2.12 getsecretkey F
+GLIBC_2.12 getservbyname F
+GLIBC_2.12 getservbyname_r F
+GLIBC_2.12 getservbyport F
+GLIBC_2.12 getservbyport_r F
+GLIBC_2.12 getservent F
+GLIBC_2.12 getservent_r F
+GLIBC_2.12 getsgent F
+GLIBC_2.12 getsgent_r F
+GLIBC_2.12 getsgnam F
+GLIBC_2.12 getsgnam_r F
+GLIBC_2.12 getsid F
+GLIBC_2.12 getsockname F
+GLIBC_2.12 getsockopt F
+GLIBC_2.12 getsourcefilter F
+GLIBC_2.12 getspent F
+GLIBC_2.12 getspent_r F
+GLIBC_2.12 getspnam F
+GLIBC_2.12 getspnam_r F
+GLIBC_2.12 getsubopt F
+GLIBC_2.12 gettext F
+GLIBC_2.12 gettimeofday F
+GLIBC_2.12 getttyent F
+GLIBC_2.12 getttynam F
+GLIBC_2.12 getuid F
+GLIBC_2.12 getusershell F
+GLIBC_2.12 getutent F
+GLIBC_2.12 getutent_r F
+GLIBC_2.12 getutid F
+GLIBC_2.12 getutid_r F
+GLIBC_2.12 getutline F
+GLIBC_2.12 getutline_r F
+GLIBC_2.12 getutmp F
+GLIBC_2.12 getutmpx F
+GLIBC_2.12 getutxent F
+GLIBC_2.12 getutxid F
+GLIBC_2.12 getutxline F
+GLIBC_2.12 getw F
+GLIBC_2.12 getwc F
+GLIBC_2.12 getwc_unlocked F
+GLIBC_2.12 getwchar F
+GLIBC_2.12 getwchar_unlocked F
+GLIBC_2.12 getwd F
+GLIBC_2.12 getxattr F
+GLIBC_2.12 glob F
+GLIBC_2.12 glob64 F
+GLIBC_2.12 glob_pattern_p F
+GLIBC_2.12 globfree F
+GLIBC_2.12 globfree64 F
+GLIBC_2.12 gmtime F
+GLIBC_2.12 gmtime_r F
+GLIBC_2.12 gnu_dev_major F
+GLIBC_2.12 gnu_dev_makedev F
+GLIBC_2.12 gnu_dev_minor F
+GLIBC_2.12 gnu_get_libc_release F
+GLIBC_2.12 gnu_get_libc_version F
+GLIBC_2.12 grantpt F
+GLIBC_2.12 group_member F
+GLIBC_2.12 gsignal F
+GLIBC_2.12 gtty F
+GLIBC_2.12 h_errlist D 0x28
+GLIBC_2.12 h_nerr D 0x4
+GLIBC_2.12 hasmntopt F
+GLIBC_2.12 hcreate F
+GLIBC_2.12 hcreate_r F
+GLIBC_2.12 hdestroy F
+GLIBC_2.12 hdestroy_r F
+GLIBC_2.12 herror F
+GLIBC_2.12 host2netname F
+GLIBC_2.12 hsearch F
+GLIBC_2.12 hsearch_r F
+GLIBC_2.12 hstrerror F
+GLIBC_2.12 htonl F
+GLIBC_2.12 htons F
+GLIBC_2.12 iconv F
+GLIBC_2.12 iconv_close F
+GLIBC_2.12 iconv_open F
+GLIBC_2.12 if_freenameindex F
+GLIBC_2.12 if_indextoname F
+GLIBC_2.12 if_nameindex F
+GLIBC_2.12 if_nametoindex F
+GLIBC_2.12 imaxabs F
+GLIBC_2.12 imaxdiv F
+GLIBC_2.12 in6addr_any D 0x10
+GLIBC_2.12 in6addr_loopback D 0x10
+GLIBC_2.12 index F
+GLIBC_2.12 inet6_opt_append F
+GLIBC_2.12 inet6_opt_find F
+GLIBC_2.12 inet6_opt_finish F
+GLIBC_2.12 inet6_opt_get_val F
+GLIBC_2.12 inet6_opt_init F
+GLIBC_2.12 inet6_opt_next F
+GLIBC_2.12 inet6_opt_set_val F
+GLIBC_2.12 inet6_option_alloc F
+GLIBC_2.12 inet6_option_append F
+GLIBC_2.12 inet6_option_find F
+GLIBC_2.12 inet6_option_init F
+GLIBC_2.12 inet6_option_next F
+GLIBC_2.12 inet6_option_space F
+GLIBC_2.12 inet6_rth_add F
+GLIBC_2.12 inet6_rth_getaddr F
+GLIBC_2.12 inet6_rth_init F
+GLIBC_2.12 inet6_rth_reverse F
+GLIBC_2.12 inet6_rth_segments F
+GLIBC_2.12 inet6_rth_space F
+GLIBC_2.12 inet_addr F
+GLIBC_2.12 inet_aton F
+GLIBC_2.12 inet_lnaof F
+GLIBC_2.12 inet_makeaddr F
+GLIBC_2.12 inet_netof F
+GLIBC_2.12 inet_network F
+GLIBC_2.12 inet_nsap_addr F
+GLIBC_2.12 inet_nsap_ntoa F
+GLIBC_2.12 inet_ntoa F
+GLIBC_2.12 inet_ntop F
+GLIBC_2.12 inet_pton F
+GLIBC_2.12 init_module F
+GLIBC_2.12 initgroups F
+GLIBC_2.12 initstate F
+GLIBC_2.12 initstate_r F
+GLIBC_2.12 innetgr F
+GLIBC_2.12 inotify_add_watch F
+GLIBC_2.12 inotify_init F
+GLIBC_2.12 inotify_init1 F
+GLIBC_2.12 inotify_rm_watch F
+GLIBC_2.12 insque F
+GLIBC_2.12 ioctl F
+GLIBC_2.12 iruserok F
+GLIBC_2.12 iruserok_af F
+GLIBC_2.12 isalnum F
+GLIBC_2.12 isalnum_l F
+GLIBC_2.12 isalpha F
+GLIBC_2.12 isalpha_l F
+GLIBC_2.12 isascii F
+GLIBC_2.12 isastream F
+GLIBC_2.12 isatty F
+GLIBC_2.12 isblank F
+GLIBC_2.12 isblank_l F
+GLIBC_2.12 iscntrl F
+GLIBC_2.12 iscntrl_l F
+GLIBC_2.12 isctype F
+GLIBC_2.12 isdigit F
+GLIBC_2.12 isdigit_l F
+GLIBC_2.12 isfdtype F
+GLIBC_2.12 isgraph F
+GLIBC_2.12 isgraph_l F
+GLIBC_2.12 isinf F
+GLIBC_2.12 isinff F
+GLIBC_2.12 isinfl F
+GLIBC_2.12 islower F
+GLIBC_2.12 islower_l F
+GLIBC_2.12 isnan F
+GLIBC_2.12 isnanf F
+GLIBC_2.12 isnanl F
+GLIBC_2.12 isprint F
+GLIBC_2.12 isprint_l F
+GLIBC_2.12 ispunct F
+GLIBC_2.12 ispunct_l F
+GLIBC_2.12 isspace F
+GLIBC_2.12 isspace_l F
+GLIBC_2.12 isupper F
+GLIBC_2.12 isupper_l F
+GLIBC_2.12 iswalnum F
+GLIBC_2.12 iswalnum_l F
+GLIBC_2.12 iswalpha F
+GLIBC_2.12 iswalpha_l F
+GLIBC_2.12 iswblank F
+GLIBC_2.12 iswblank_l F
+GLIBC_2.12 iswcntrl F
+GLIBC_2.12 iswcntrl_l F
+GLIBC_2.12 iswctype F
+GLIBC_2.12 iswctype_l F
+GLIBC_2.12 iswdigit F
+GLIBC_2.12 iswdigit_l F
+GLIBC_2.12 iswgraph F
+GLIBC_2.12 iswgraph_l F
+GLIBC_2.12 iswlower F
+GLIBC_2.12 iswlower_l F
+GLIBC_2.12 iswprint F
+GLIBC_2.12 iswprint_l F
+GLIBC_2.12 iswpunct F
+GLIBC_2.12 iswpunct_l F
+GLIBC_2.12 iswspace F
+GLIBC_2.12 iswspace_l F
+GLIBC_2.12 iswupper F
+GLIBC_2.12 iswupper_l F
+GLIBC_2.12 iswxdigit F
+GLIBC_2.12 iswxdigit_l F
+GLIBC_2.12 isxdigit F
+GLIBC_2.12 isxdigit_l F
+GLIBC_2.12 jrand48 F
+GLIBC_2.12 jrand48_r F
+GLIBC_2.12 key_decryptsession F
+GLIBC_2.12 key_decryptsession_pk F
+GLIBC_2.12 key_encryptsession F
+GLIBC_2.12 key_encryptsession_pk F
+GLIBC_2.12 key_gendes F
+GLIBC_2.12 key_get_conv F
+GLIBC_2.12 key_secretkey_is_set F
+GLIBC_2.12 key_setnet F
+GLIBC_2.12 key_setsecret F
+GLIBC_2.12 kill F
+GLIBC_2.12 killpg F
+GLIBC_2.12 klogctl F
+GLIBC_2.12 l64a F
+GLIBC_2.12 labs F
+GLIBC_2.12 lchmod F
+GLIBC_2.12 lchown F
+GLIBC_2.12 lckpwdf F
+GLIBC_2.12 lcong48 F
+GLIBC_2.12 lcong48_r F
+GLIBC_2.12 ldexp F
+GLIBC_2.12 ldexpf F
+GLIBC_2.12 ldexpl F
+GLIBC_2.12 ldiv F
+GLIBC_2.12 lfind F
+GLIBC_2.12 lgetxattr F
+GLIBC_2.12 link F
+GLIBC_2.12 linkat F
+GLIBC_2.12 listen F
+GLIBC_2.12 listxattr F
+GLIBC_2.12 llabs F
+GLIBC_2.12 lldiv F
+GLIBC_2.12 llistxattr F
+GLIBC_2.12 llseek F
+GLIBC_2.12 loc1 D 0x8
+GLIBC_2.12 loc2 D 0x8
+GLIBC_2.12 localeconv F
+GLIBC_2.12 localtime F
+GLIBC_2.12 localtime_r F
+GLIBC_2.12 lockf F
+GLIBC_2.12 lockf64 F
+GLIBC_2.12 locs D 0x8
+GLIBC_2.12 longjmp F
+GLIBC_2.12 lrand48 F
+GLIBC_2.12 lrand48_r F
+GLIBC_2.12 lremovexattr F
+GLIBC_2.12 lsearch F
+GLIBC_2.12 lseek F
+GLIBC_2.12 lseek64 F
+GLIBC_2.12 lsetxattr F
+GLIBC_2.12 lutimes F
+GLIBC_2.12 madvise F
+GLIBC_2.12 makecontext F
+GLIBC_2.12 mallinfo F
+GLIBC_2.12 malloc F
+GLIBC_2.12 malloc_get_state F
+GLIBC_2.12 malloc_info F
+GLIBC_2.12 malloc_set_state F
+GLIBC_2.12 malloc_stats F
+GLIBC_2.12 malloc_trim F
+GLIBC_2.12 malloc_usable_size F
+GLIBC_2.12 mallopt F
+GLIBC_2.12 mallwatch D 0x8
+GLIBC_2.12 mblen F
+GLIBC_2.12 mbrlen F
+GLIBC_2.12 mbrtowc F
+GLIBC_2.12 mbsinit F
+GLIBC_2.12 mbsnrtowcs F
+GLIBC_2.12 mbsrtowcs F
+GLIBC_2.12 mbstowcs F
+GLIBC_2.12 mbtowc F
+GLIBC_2.12 mcheck F
+GLIBC_2.12 mcheck_check_all F
+GLIBC_2.12 mcheck_pedantic F
+GLIBC_2.12 mcount F
+GLIBC_2.12 memalign F
+GLIBC_2.12 memccpy F
+GLIBC_2.12 memchr F
+GLIBC_2.12 memcmp F
+GLIBC_2.12 memcpy F
+GLIBC_2.12 memfrob F
+GLIBC_2.12 memmem F
+GLIBC_2.12 memmove F
+GLIBC_2.12 mempcpy F
+GLIBC_2.12 memrchr F
+GLIBC_2.12 memset F
+GLIBC_2.12 mincore F
+GLIBC_2.12 mkdir F
+GLIBC_2.12 mkdirat F
+GLIBC_2.12 mkdtemp F
+GLIBC_2.12 mkfifo F
+GLIBC_2.12 mkfifoat F
+GLIBC_2.12 mkostemp F
+GLIBC_2.12 mkostemp64 F
+GLIBC_2.12 mkostemps F
+GLIBC_2.12 mkostemps64 F
+GLIBC_2.12 mkstemp F
+GLIBC_2.12 mkstemp64 F
+GLIBC_2.12 mkstemps F
+GLIBC_2.12 mkstemps64 F
+GLIBC_2.12 mktemp F
+GLIBC_2.12 mktime F
+GLIBC_2.12 mlock F
+GLIBC_2.12 mlockall F
+GLIBC_2.12 mmap F
+GLIBC_2.12 mmap64 F
+GLIBC_2.12 modf F
+GLIBC_2.12 modff F
+GLIBC_2.12 modfl F
+GLIBC_2.12 moncontrol F
+GLIBC_2.12 monstartup F
+GLIBC_2.12 mount F
+GLIBC_2.12 mprobe F
+GLIBC_2.12 mprotect F
+GLIBC_2.12 mrand48 F
+GLIBC_2.12 mrand48_r F
+GLIBC_2.12 mremap F
+GLIBC_2.12 msgctl F
+GLIBC_2.12 msgget F
+GLIBC_2.12 msgrcv F
+GLIBC_2.12 msgsnd F
+GLIBC_2.12 msync F
+GLIBC_2.12 mtrace F
+GLIBC_2.12 munlock F
+GLIBC_2.12 munlockall F
+GLIBC_2.12 munmap F
+GLIBC_2.12 muntrace F
+GLIBC_2.12 nanosleep F
+GLIBC_2.12 netname2host F
+GLIBC_2.12 netname2user F
+GLIBC_2.12 newlocale F
+GLIBC_2.12 nfsservctl F
+GLIBC_2.12 nftw F
+GLIBC_2.12 nftw64 F
+GLIBC_2.12 ngettext F
+GLIBC_2.12 nice F
+GLIBC_2.12 nl_langinfo F
+GLIBC_2.12 nl_langinfo_l F
+GLIBC_2.12 nrand48 F
+GLIBC_2.12 nrand48_r F
+GLIBC_2.12 ntohl F
+GLIBC_2.12 ntohs F
+GLIBC_2.12 ntp_adjtime F
+GLIBC_2.12 ntp_gettime F
+GLIBC_2.12 ntp_gettimex F
+GLIBC_2.12 obstack_alloc_failed_handler D 0x8
+GLIBC_2.12 obstack_exit_failure D 0x4
+GLIBC_2.12 obstack_free F
+GLIBC_2.12 obstack_printf F
+GLIBC_2.12 obstack_vprintf F
+GLIBC_2.12 on_exit F
+GLIBC_2.12 open F
+GLIBC_2.12 open64 F
+GLIBC_2.12 open_memstream F
+GLIBC_2.12 open_wmemstream F
+GLIBC_2.12 openat F
+GLIBC_2.12 openat64 F
+GLIBC_2.12 opendir F
+GLIBC_2.12 openlog F
+GLIBC_2.12 optarg D 0x8
+GLIBC_2.12 opterr D 0x4
+GLIBC_2.12 optind D 0x4
+GLIBC_2.12 optopt D 0x4
+GLIBC_2.12 parse_printf_format F
+GLIBC_2.12 passwd2des F
+GLIBC_2.12 pathconf F
+GLIBC_2.12 pause F
+GLIBC_2.12 pclose F
+GLIBC_2.12 perror F
+GLIBC_2.12 personality F
+GLIBC_2.12 pipe F
+GLIBC_2.12 pipe2 F
+GLIBC_2.12 pivot_root F
+GLIBC_2.12 pmap_getmaps F
+GLIBC_2.12 pmap_getport F
+GLIBC_2.12 pmap_rmtcall F
+GLIBC_2.12 pmap_set F
+GLIBC_2.12 pmap_unset F
+GLIBC_2.12 poll F
+GLIBC_2.12 popen F
+GLIBC_2.12 posix_fadvise F
+GLIBC_2.12 posix_fadvise64 F
+GLIBC_2.12 posix_fallocate F
+GLIBC_2.12 posix_fallocate64 F
+GLIBC_2.12 posix_madvise F
+GLIBC_2.12 posix_memalign F
+GLIBC_2.12 posix_openpt F
+GLIBC_2.12 posix_spawn F
+GLIBC_2.12 posix_spawn_file_actions_addclose F
+GLIBC_2.12 posix_spawn_file_actions_adddup2 F
+GLIBC_2.12 posix_spawn_file_actions_addopen F
+GLIBC_2.12 posix_spawn_file_actions_destroy F
+GLIBC_2.12 posix_spawn_file_actions_init F
+GLIBC_2.12 posix_spawnattr_destroy F
+GLIBC_2.12 posix_spawnattr_getflags F
+GLIBC_2.12 posix_spawnattr_getpgroup F
+GLIBC_2.12 posix_spawnattr_getschedparam F
+GLIBC_2.12 posix_spawnattr_getschedpolicy F
+GLIBC_2.12 posix_spawnattr_getsigdefault F
+GLIBC_2.12 posix_spawnattr_getsigmask F
+GLIBC_2.12 posix_spawnattr_init F
+GLIBC_2.12 posix_spawnattr_setflags F
+GLIBC_2.12 posix_spawnattr_setpgroup F
+GLIBC_2.12 posix_spawnattr_setschedparam F
+GLIBC_2.12 posix_spawnattr_setschedpolicy F
+GLIBC_2.12 posix_spawnattr_setsigdefault F
+GLIBC_2.12 posix_spawnattr_setsigmask F
+GLIBC_2.12 posix_spawnp F
+GLIBC_2.12 ppoll F
+GLIBC_2.12 prctl F
+GLIBC_2.12 pread F
+GLIBC_2.12 pread64 F
+GLIBC_2.12 preadv F
+GLIBC_2.12 preadv64 F
+GLIBC_2.12 printf F
+GLIBC_2.12 printf_size F
+GLIBC_2.12 printf_size_info F
+GLIBC_2.12 profil F
+GLIBC_2.12 program_invocation_name D 0x8
+GLIBC_2.12 program_invocation_short_name D 0x8
+GLIBC_2.12 pselect F
+GLIBC_2.12 psiginfo F
+GLIBC_2.12 psignal F
+GLIBC_2.12 pthread_attr_destroy F
+GLIBC_2.12 pthread_attr_getdetachstate F
+GLIBC_2.12 pthread_attr_getinheritsched F
+GLIBC_2.12 pthread_attr_getschedparam F
+GLIBC_2.12 pthread_attr_getschedpolicy F
+GLIBC_2.12 pthread_attr_getscope F
+GLIBC_2.12 pthread_attr_init F
+GLIBC_2.12 pthread_attr_setdetachstate F
+GLIBC_2.12 pthread_attr_setinheritsched F
+GLIBC_2.12 pthread_attr_setschedparam F
+GLIBC_2.12 pthread_attr_setschedpolicy F
+GLIBC_2.12 pthread_attr_setscope F
+GLIBC_2.12 pthread_cond_broadcast F
+GLIBC_2.12 pthread_cond_destroy F
+GLIBC_2.12 pthread_cond_init F
+GLIBC_2.12 pthread_cond_signal F
+GLIBC_2.12 pthread_cond_timedwait F
+GLIBC_2.12 pthread_cond_wait F
+GLIBC_2.12 pthread_condattr_destroy F
+GLIBC_2.12 pthread_condattr_init F
+GLIBC_2.12 pthread_equal F
+GLIBC_2.12 pthread_exit F
+GLIBC_2.12 pthread_getschedparam F
+GLIBC_2.12 pthread_mutex_destroy F
+GLIBC_2.12 pthread_mutex_init F
+GLIBC_2.12 pthread_mutex_lock F
+GLIBC_2.12 pthread_mutex_unlock F
+GLIBC_2.12 pthread_self F
+GLIBC_2.12 pthread_setcancelstate F
+GLIBC_2.12 pthread_setcanceltype F
+GLIBC_2.12 pthread_setschedparam F
+GLIBC_2.12 ptrace F
+GLIBC_2.12 ptsname F
+GLIBC_2.12 ptsname_r F
+GLIBC_2.12 putc F
+GLIBC_2.12 putc_unlocked F
+GLIBC_2.12 putchar F
+GLIBC_2.12 putchar_unlocked F
+GLIBC_2.12 putenv F
+GLIBC_2.12 putgrent F
+GLIBC_2.12 putmsg F
+GLIBC_2.12 putpmsg F
+GLIBC_2.12 putpwent F
+GLIBC_2.12 puts F
+GLIBC_2.12 putsgent F
+GLIBC_2.12 putspent F
+GLIBC_2.12 pututline F
+GLIBC_2.12 pututxline F
+GLIBC_2.12 putw F
+GLIBC_2.12 putwc F
+GLIBC_2.12 putwc_unlocked F
+GLIBC_2.12 putwchar F
+GLIBC_2.12 putwchar_unlocked F
+GLIBC_2.12 pvalloc F
+GLIBC_2.12 pwrite F
+GLIBC_2.12 pwrite64 F
+GLIBC_2.12 pwritev F
+GLIBC_2.12 pwritev64 F
+GLIBC_2.12 qecvt F
+GLIBC_2.12 qecvt_r F
+GLIBC_2.12 qfcvt F
+GLIBC_2.12 qfcvt_r F
+GLIBC_2.12 qgcvt F
+GLIBC_2.12 qsort F
+GLIBC_2.12 qsort_r F
+GLIBC_2.12 query_module F
+GLIBC_2.12 quick_exit F
+GLIBC_2.12 quotactl F
+GLIBC_2.12 raise F
+GLIBC_2.12 rand F
+GLIBC_2.12 rand_r F
+GLIBC_2.12 random F
+GLIBC_2.12 random_r F
+GLIBC_2.12 rawmemchr F
+GLIBC_2.12 rcmd F
+GLIBC_2.12 rcmd_af F
+GLIBC_2.12 re_comp F
+GLIBC_2.12 re_compile_fastmap F
+GLIBC_2.12 re_compile_pattern F
+GLIBC_2.12 re_exec F
+GLIBC_2.12 re_match F
+GLIBC_2.12 re_match_2 F
+GLIBC_2.12 re_search F
+GLIBC_2.12 re_search_2 F
+GLIBC_2.12 re_set_registers F
+GLIBC_2.12 re_set_syntax F
+GLIBC_2.12 re_syntax_options D 0x8
+GLIBC_2.12 read F
+GLIBC_2.12 readahead F
+GLIBC_2.12 readdir F
+GLIBC_2.12 readdir64 F
+GLIBC_2.12 readdir64_r F
+GLIBC_2.12 readdir_r F
+GLIBC_2.12 readlink F
+GLIBC_2.12 readlinkat F
+GLIBC_2.12 readv F
+GLIBC_2.12 realloc F
+GLIBC_2.12 realpath F
+GLIBC_2.12 reboot F
+GLIBC_2.12 recv F
+GLIBC_2.12 recvfrom F
+GLIBC_2.12 recvmmsg F
+GLIBC_2.12 recvmsg F
+GLIBC_2.12 regcomp F
+GLIBC_2.12 regerror F
+GLIBC_2.12 regexec F
+GLIBC_2.12 regfree F
+GLIBC_2.12 register_printf_function F
+GLIBC_2.12 register_printf_modifier F
+GLIBC_2.12 register_printf_specifier F
+GLIBC_2.12 register_printf_type F
+GLIBC_2.12 registerrpc F
+GLIBC_2.12 remap_file_pages F
+GLIBC_2.12 remove F
+GLIBC_2.12 removexattr F
+GLIBC_2.12 remque F
+GLIBC_2.12 rename F
+GLIBC_2.12 renameat F
+GLIBC_2.12 revoke F
+GLIBC_2.12 rewind F
+GLIBC_2.12 rewinddir F
+GLIBC_2.12 rexec F
+GLIBC_2.12 rexec_af F
+GLIBC_2.12 rexecoptions D 0x4
+GLIBC_2.12 rindex F
+GLIBC_2.12 rmdir F
+GLIBC_2.12 rpc_createerr D 0x20
+GLIBC_2.12 rpmatch F
+GLIBC_2.12 rresvport F
+GLIBC_2.12 rresvport_af F
+GLIBC_2.12 rtime F
+GLIBC_2.12 ruserok F
+GLIBC_2.12 ruserok_af F
+GLIBC_2.12 ruserpass F
+GLIBC_2.12 sbrk F
+GLIBC_2.12 scalbn F
+GLIBC_2.12 scalbnf F
+GLIBC_2.12 scalbnl F
+GLIBC_2.12 scandir F
+GLIBC_2.12 scandir64 F
+GLIBC_2.12 scanf F
+GLIBC_2.12 sched_get_priority_max F
+GLIBC_2.12 sched_get_priority_min F
+GLIBC_2.12 sched_getaffinity F
+GLIBC_2.12 sched_getcpu F
+GLIBC_2.12 sched_getparam F
+GLIBC_2.12 sched_getscheduler F
+GLIBC_2.12 sched_rr_get_interval F
+GLIBC_2.12 sched_setaffinity F
+GLIBC_2.12 sched_setparam F
+GLIBC_2.12 sched_setscheduler F
+GLIBC_2.12 sched_yield F
+GLIBC_2.12 seed48 F
+GLIBC_2.12 seed48_r F
+GLIBC_2.12 seekdir F
+GLIBC_2.12 select F
+GLIBC_2.12 semctl F
+GLIBC_2.12 semget F
+GLIBC_2.12 semop F
+GLIBC_2.12 semtimedop F
+GLIBC_2.12 send F
+GLIBC_2.12 sendfile F
+GLIBC_2.12 sendfile64 F
+GLIBC_2.12 sendmsg F
+GLIBC_2.12 sendto F
+GLIBC_2.12 set_dataplane F
+GLIBC_2.12 setaliasent F
+GLIBC_2.12 setbuf F
+GLIBC_2.12 setbuffer F
+GLIBC_2.12 setcontext F
+GLIBC_2.12 setdomainname F
+GLIBC_2.12 setegid F
+GLIBC_2.12 setenv F
+GLIBC_2.12 seteuid F
+GLIBC_2.12 setfsent F
+GLIBC_2.12 setfsgid F
+GLIBC_2.12 setfsuid F
+GLIBC_2.12 setgid F
+GLIBC_2.12 setgrent F
+GLIBC_2.12 setgroups F
+GLIBC_2.12 sethostent F
+GLIBC_2.12 sethostid F
+GLIBC_2.12 sethostname F
+GLIBC_2.12 setipv4sourcefilter F
+GLIBC_2.12 setitimer F
+GLIBC_2.12 setjmp F
+GLIBC_2.12 setlinebuf F
+GLIBC_2.12 setlocale F
+GLIBC_2.12 setlogin F
+GLIBC_2.12 setlogmask F
+GLIBC_2.12 setmntent F
+GLIBC_2.12 setnetent F
+GLIBC_2.12 setnetgrent F
+GLIBC_2.12 setpgid F
+GLIBC_2.12 setpgrp F
+GLIBC_2.12 setpriority F
+GLIBC_2.12 setprotoent F
+GLIBC_2.12 setpwent F
+GLIBC_2.12 setregid F
+GLIBC_2.12 setresgid F
+GLIBC_2.12 setresuid F
+GLIBC_2.12 setreuid F
+GLIBC_2.12 setrlimit F
+GLIBC_2.12 setrlimit64 F
+GLIBC_2.12 setrpcent F
+GLIBC_2.12 setservent F
+GLIBC_2.12 setsgent F
+GLIBC_2.12 setsid F
+GLIBC_2.12 setsockopt F
+GLIBC_2.12 setsourcefilter F
+GLIBC_2.12 setspent F
+GLIBC_2.12 setstate F
+GLIBC_2.12 setstate_r F
+GLIBC_2.12 settimeofday F
+GLIBC_2.12 setttyent F
+GLIBC_2.12 setuid F
+GLIBC_2.12 setusershell F
+GLIBC_2.12 setutent F
+GLIBC_2.12 setutxent F
+GLIBC_2.12 setvbuf F
+GLIBC_2.12 setxattr F
+GLIBC_2.12 sgetsgent F
+GLIBC_2.12 sgetsgent_r F
+GLIBC_2.12 sgetspent F
+GLIBC_2.12 sgetspent_r F
+GLIBC_2.12 shmat F
+GLIBC_2.12 shmctl F
+GLIBC_2.12 shmdt F
+GLIBC_2.12 shmget F
+GLIBC_2.12 shutdown F
+GLIBC_2.12 sigaction F
+GLIBC_2.12 sigaddset F
+GLIBC_2.12 sigaltstack F
+GLIBC_2.12 sigandset F
+GLIBC_2.12 sigblock F
+GLIBC_2.12 sigdelset F
+GLIBC_2.12 sigemptyset F
+GLIBC_2.12 sigfillset F
+GLIBC_2.12 siggetmask F
+GLIBC_2.12 sighold F
+GLIBC_2.12 sigignore F
+GLIBC_2.12 siginterrupt F
+GLIBC_2.12 sigisemptyset F
+GLIBC_2.12 sigismember F
+GLIBC_2.12 siglongjmp F
+GLIBC_2.12 signal F
+GLIBC_2.12 signalfd F
+GLIBC_2.12 sigorset F
+GLIBC_2.12 sigpause F
+GLIBC_2.12 sigpending F
+GLIBC_2.12 sigprocmask F
+GLIBC_2.12 sigqueue F
+GLIBC_2.12 sigrelse F
+GLIBC_2.12 sigreturn F
+GLIBC_2.12 sigset F
+GLIBC_2.12 sigsetmask F
+GLIBC_2.12 sigstack F
+GLIBC_2.12 sigsuspend F
+GLIBC_2.12 sigtimedwait F
+GLIBC_2.12 sigvec F
+GLIBC_2.12 sigwait F
+GLIBC_2.12 sigwaitinfo F
+GLIBC_2.12 sleep F
+GLIBC_2.12 snprintf F
+GLIBC_2.12 sockatmark F
+GLIBC_2.12 socket F
+GLIBC_2.12 socketpair F
+GLIBC_2.12 splice F
+GLIBC_2.12 sprintf F
+GLIBC_2.12 sprofil F
+GLIBC_2.12 srand F
+GLIBC_2.12 srand48 F
+GLIBC_2.12 srand48_r F
+GLIBC_2.12 srandom F
+GLIBC_2.12 srandom_r F
+GLIBC_2.12 sscanf F
+GLIBC_2.12 ssignal F
+GLIBC_2.12 sstk F
+GLIBC_2.12 statfs F
+GLIBC_2.12 statfs64 F
+GLIBC_2.12 statvfs F
+GLIBC_2.12 statvfs64 F
+GLIBC_2.12 stderr D 0x8
+GLIBC_2.12 stdin D 0x8
+GLIBC_2.12 stdout D 0x8
+GLIBC_2.12 step F
+GLIBC_2.12 stime F
+GLIBC_2.12 stpcpy F
+GLIBC_2.12 stpncpy F
+GLIBC_2.12 strcasecmp F
+GLIBC_2.12 strcasecmp_l F
+GLIBC_2.12 strcasestr F
+GLIBC_2.12 strcat F
+GLIBC_2.12 strchr F
+GLIBC_2.12 strchrnul F
+GLIBC_2.12 strcmp F
+GLIBC_2.12 strcoll F
+GLIBC_2.12 strcoll_l F
+GLIBC_2.12 strcpy F
+GLIBC_2.12 strcspn F
+GLIBC_2.12 strdup F
+GLIBC_2.12 strerror F
+GLIBC_2.12 strerror_l F
+GLIBC_2.12 strerror_r F
+GLIBC_2.12 strfmon F
+GLIBC_2.12 strfmon_l F
+GLIBC_2.12 strfry F
+GLIBC_2.12 strftime F
+GLIBC_2.12 strftime_l F
+GLIBC_2.12 strlen F
+GLIBC_2.12 strncasecmp F
+GLIBC_2.12 strncasecmp_l F
+GLIBC_2.12 strncat F
+GLIBC_2.12 strncmp F
+GLIBC_2.12 strncpy F
+GLIBC_2.12 strndup F
+GLIBC_2.12 strnlen F
+GLIBC_2.12 strpbrk F
+GLIBC_2.12 strptime F
+GLIBC_2.12 strptime_l F
+GLIBC_2.12 strrchr F
+GLIBC_2.12 strsep F
+GLIBC_2.12 strsignal F
+GLIBC_2.12 strspn F
+GLIBC_2.12 strstr F
+GLIBC_2.12 strtod F
+GLIBC_2.12 strtod_l F
+GLIBC_2.12 strtof F
+GLIBC_2.12 strtof_l F
+GLIBC_2.12 strtoimax F
+GLIBC_2.12 strtok F
+GLIBC_2.12 strtok_r F
+GLIBC_2.12 strtol F
+GLIBC_2.12 strtol_l F
+GLIBC_2.12 strtold F
+GLIBC_2.12 strtold_l F
+GLIBC_2.12 strtoll F
+GLIBC_2.12 strtoll_l F
+GLIBC_2.12 strtoq F
+GLIBC_2.12 strtoul F
+GLIBC_2.12 strtoul_l F
+GLIBC_2.12 strtoull F
+GLIBC_2.12 strtoull_l F
+GLIBC_2.12 strtoumax F
+GLIBC_2.12 strtouq F
+GLIBC_2.12 strverscmp F
+GLIBC_2.12 strxfrm F
+GLIBC_2.12 strxfrm_l F
+GLIBC_2.12 stty F
+GLIBC_2.12 svc_exit F
+GLIBC_2.12 svc_fdset D 0x80
+GLIBC_2.12 svc_getreq F
+GLIBC_2.12 svc_getreq_common F
+GLIBC_2.12 svc_getreq_poll F
+GLIBC_2.12 svc_getreqset F
+GLIBC_2.12 svc_max_pollfd D 0x4
+GLIBC_2.12 svc_pollfd D 0x8
+GLIBC_2.12 svc_register F
+GLIBC_2.12 svc_run F
+GLIBC_2.12 svc_sendreply F
+GLIBC_2.12 svc_unregister F
+GLIBC_2.12 svcauthdes_stats D 0x18
+GLIBC_2.12 svcerr_auth F
+GLIBC_2.12 svcerr_decode F
+GLIBC_2.12 svcerr_noproc F
+GLIBC_2.12 svcerr_noprog F
+GLIBC_2.12 svcerr_progvers F
+GLIBC_2.12 svcerr_systemerr F
+GLIBC_2.12 svcerr_weakauth F
+GLIBC_2.12 svcfd_create F
+GLIBC_2.12 svcraw_create F
+GLIBC_2.12 svctcp_create F
+GLIBC_2.12 svcudp_bufcreate F
+GLIBC_2.12 svcudp_create F
+GLIBC_2.12 svcudp_enablecache F
+GLIBC_2.12 svcunix_create F
+GLIBC_2.12 svcunixfd_create F
+GLIBC_2.12 swab F
+GLIBC_2.12 swapcontext F
+GLIBC_2.12 swapoff F
+GLIBC_2.12 swapon F
+GLIBC_2.12 swprintf F
+GLIBC_2.12 swscanf F
+GLIBC_2.12 symlink F
+GLIBC_2.12 symlinkat F
+GLIBC_2.12 sync F
+GLIBC_2.12 sync_file_range F
+GLIBC_2.12 sys_errlist D 0x438
+GLIBC_2.12 sys_nerr D 0x4
+GLIBC_2.12 sys_sigabbrev D 0x208
+GLIBC_2.12 sys_siglist D 0x208
+GLIBC_2.12 syscall F
+GLIBC_2.12 sysconf F
+GLIBC_2.12 sysctl F
+GLIBC_2.12 sysinfo F
+GLIBC_2.12 syslog F
+GLIBC_2.12 system F
+GLIBC_2.12 sysv_signal F
+GLIBC_2.12 tcdrain F
+GLIBC_2.12 tcflow F
+GLIBC_2.12 tcflush F
+GLIBC_2.12 tcgetattr F
+GLIBC_2.12 tcgetpgrp F
+GLIBC_2.12 tcgetsid F
+GLIBC_2.12 tcsendbreak F
+GLIBC_2.12 tcsetattr F
+GLIBC_2.12 tcsetpgrp F
+GLIBC_2.12 tdelete F
+GLIBC_2.12 tdestroy F
+GLIBC_2.12 tee F
+GLIBC_2.12 telldir F
+GLIBC_2.12 tempnam F
+GLIBC_2.12 textdomain F
+GLIBC_2.12 tfind F
+GLIBC_2.12 time F
+GLIBC_2.12 timegm F
+GLIBC_2.12 timelocal F
+GLIBC_2.12 timerfd_create F
+GLIBC_2.12 timerfd_gettime F
+GLIBC_2.12 timerfd_settime F
+GLIBC_2.12 times F
+GLIBC_2.12 timezone D 0x8
+GLIBC_2.12 tmpfile F
+GLIBC_2.12 tmpfile64 F
+GLIBC_2.12 tmpnam F
+GLIBC_2.12 tmpnam_r F
+GLIBC_2.12 toascii F
+GLIBC_2.12 tolower F
+GLIBC_2.12 tolower_l F
+GLIBC_2.12 toupper F
+GLIBC_2.12 toupper_l F
+GLIBC_2.12 towctrans F
+GLIBC_2.12 towctrans_l F
+GLIBC_2.12 towlower F
+GLIBC_2.12 towlower_l F
+GLIBC_2.12 towupper F
+GLIBC_2.12 towupper_l F
+GLIBC_2.12 tr_break F
+GLIBC_2.12 truncate F
+GLIBC_2.12 truncate64 F
+GLIBC_2.12 tsearch F
+GLIBC_2.12 ttyname F
+GLIBC_2.12 ttyname_r F
+GLIBC_2.12 ttyslot F
+GLIBC_2.12 twalk F
+GLIBC_2.12 tzname D 0x10
+GLIBC_2.12 tzset F
+GLIBC_2.12 ualarm F
+GLIBC_2.12 ulckpwdf F
+GLIBC_2.12 ulimit F
+GLIBC_2.12 umask F
+GLIBC_2.12 umount F
+GLIBC_2.12 umount2 F
+GLIBC_2.12 uname F
+GLIBC_2.12 ungetc F
+GLIBC_2.12 ungetwc F
+GLIBC_2.12 unlink F
+GLIBC_2.12 unlinkat F
+GLIBC_2.12 unlockpt F
+GLIBC_2.12 unsetenv F
+GLIBC_2.12 unshare F
+GLIBC_2.12 updwtmp F
+GLIBC_2.12 updwtmpx F
+GLIBC_2.12 uselib F
+GLIBC_2.12 uselocale F
+GLIBC_2.12 user2netname F
+GLIBC_2.12 usleep F
+GLIBC_2.12 ustat F
+GLIBC_2.12 utime F
+GLIBC_2.12 utimensat F
+GLIBC_2.12 utimes F
+GLIBC_2.12 utmpname F
+GLIBC_2.12 utmpxname F
+GLIBC_2.12 valloc F
+GLIBC_2.12 vasprintf F
+GLIBC_2.12 vdprintf F
+GLIBC_2.12 verr F
+GLIBC_2.12 verrx F
+GLIBC_2.12 versionsort F
+GLIBC_2.12 versionsort64 F
+GLIBC_2.12 vfork F
+GLIBC_2.12 vfprintf F
+GLIBC_2.12 vfscanf F
+GLIBC_2.12 vfwprintf F
+GLIBC_2.12 vfwscanf F
+GLIBC_2.12 vhangup F
+GLIBC_2.12 vlimit F
+GLIBC_2.12 vmsplice F
+GLIBC_2.12 vprintf F
+GLIBC_2.12 vscanf F
+GLIBC_2.12 vsnprintf F
+GLIBC_2.12 vsprintf F
+GLIBC_2.12 vsscanf F
+GLIBC_2.12 vswprintf F
+GLIBC_2.12 vswscanf F
+GLIBC_2.12 vsyslog F
+GLIBC_2.12 vtimes F
+GLIBC_2.12 vwarn F
+GLIBC_2.12 vwarnx F
+GLIBC_2.12 vwprintf F
+GLIBC_2.12 vwscanf F
+GLIBC_2.12 wait F
+GLIBC_2.12 wait3 F
+GLIBC_2.12 wait4 F
+GLIBC_2.12 waitid F
+GLIBC_2.12 waitpid F
+GLIBC_2.12 warn F
+GLIBC_2.12 warnx F
+GLIBC_2.12 wcpcpy F
+GLIBC_2.12 wcpncpy F
+GLIBC_2.12 wcrtomb F
+GLIBC_2.12 wcscasecmp F
+GLIBC_2.12 wcscasecmp_l F
+GLIBC_2.12 wcscat F
+GLIBC_2.12 wcschr F
+GLIBC_2.12 wcschrnul F
+GLIBC_2.12 wcscmp F
+GLIBC_2.12 wcscoll F
+GLIBC_2.12 wcscoll_l F
+GLIBC_2.12 wcscpy F
+GLIBC_2.12 wcscspn F
+GLIBC_2.12 wcsdup F
+GLIBC_2.12 wcsftime F
+GLIBC_2.12 wcsftime_l F
+GLIBC_2.12 wcslen F
+GLIBC_2.12 wcsncasecmp F
+GLIBC_2.12 wcsncasecmp_l F
+GLIBC_2.12 wcsncat F
+GLIBC_2.12 wcsncmp F
+GLIBC_2.12 wcsncpy F
+GLIBC_2.12 wcsnlen F
+GLIBC_2.12 wcsnrtombs F
+GLIBC_2.12 wcspbrk F
+GLIBC_2.12 wcsrchr F
+GLIBC_2.12 wcsrtombs F
+GLIBC_2.12 wcsspn F
+GLIBC_2.12 wcsstr F
+GLIBC_2.12 wcstod F
+GLIBC_2.12 wcstod_l F
+GLIBC_2.12 wcstof F
+GLIBC_2.12 wcstof_l F
+GLIBC_2.12 wcstoimax F
+GLIBC_2.12 wcstok F
+GLIBC_2.12 wcstol F
+GLIBC_2.12 wcstol_l F
+GLIBC_2.12 wcstold F
+GLIBC_2.12 wcstold_l F
+GLIBC_2.12 wcstoll F
+GLIBC_2.12 wcstoll_l F
+GLIBC_2.12 wcstombs F
+GLIBC_2.12 wcstoq F
+GLIBC_2.12 wcstoul F
+GLIBC_2.12 wcstoul_l F
+GLIBC_2.12 wcstoull F
+GLIBC_2.12 wcstoull_l F
+GLIBC_2.12 wcstoumax F
+GLIBC_2.12 wcstouq F
+GLIBC_2.12 wcswcs F
+GLIBC_2.12 wcswidth F
+GLIBC_2.12 wcsxfrm F
+GLIBC_2.12 wcsxfrm_l F
+GLIBC_2.12 wctob F
+GLIBC_2.12 wctomb F
+GLIBC_2.12 wctrans F
+GLIBC_2.12 wctrans_l F
+GLIBC_2.12 wctype F
+GLIBC_2.12 wctype_l F
+GLIBC_2.12 wcwidth F
+GLIBC_2.12 wmemchr F
+GLIBC_2.12 wmemcmp F
+GLIBC_2.12 wmemcpy F
+GLIBC_2.12 wmemmove F
+GLIBC_2.12 wmempcpy F
+GLIBC_2.12 wmemset F
+GLIBC_2.12 wordexp F
+GLIBC_2.12 wordfree F
+GLIBC_2.12 wprintf F
+GLIBC_2.12 write F
+GLIBC_2.12 writev F
+GLIBC_2.12 wscanf F
+GLIBC_2.12 xdecrypt F
+GLIBC_2.12 xdr_accepted_reply F
+GLIBC_2.12 xdr_array F
+GLIBC_2.12 xdr_authdes_cred F
+GLIBC_2.12 xdr_authdes_verf F
+GLIBC_2.12 xdr_authunix_parms F
+GLIBC_2.12 xdr_bool F
+GLIBC_2.12 xdr_bytes F
+GLIBC_2.12 xdr_callhdr F
+GLIBC_2.12 xdr_callmsg F
+GLIBC_2.12 xdr_char F
+GLIBC_2.12 xdr_cryptkeyarg F
+GLIBC_2.12 xdr_cryptkeyarg2 F
+GLIBC_2.12 xdr_cryptkeyres F
+GLIBC_2.12 xdr_des_block F
+GLIBC_2.12 xdr_double F
+GLIBC_2.12 xdr_enum F
+GLIBC_2.12 xdr_float F
+GLIBC_2.12 xdr_free F
+GLIBC_2.12 xdr_getcredres F
+GLIBC_2.12 xdr_hyper F
+GLIBC_2.12 xdr_int F
+GLIBC_2.12 xdr_int16_t F
+GLIBC_2.12 xdr_int32_t F
+GLIBC_2.12 xdr_int64_t F
+GLIBC_2.12 xdr_int8_t F
+GLIBC_2.12 xdr_key_netstarg F
+GLIBC_2.12 xdr_key_netstres F
+GLIBC_2.12 xdr_keybuf F
+GLIBC_2.12 xdr_keystatus F
+GLIBC_2.12 xdr_long F
+GLIBC_2.12 xdr_longlong_t F
+GLIBC_2.12 xdr_netnamestr F
+GLIBC_2.12 xdr_netobj F
+GLIBC_2.12 xdr_opaque F
+GLIBC_2.12 xdr_opaque_auth F
+GLIBC_2.12 xdr_pmap F
+GLIBC_2.12 xdr_pmaplist F
+GLIBC_2.12 xdr_pointer F
+GLIBC_2.12 xdr_quad_t F
+GLIBC_2.12 xdr_reference F
+GLIBC_2.12 xdr_rejected_reply F
+GLIBC_2.12 xdr_replymsg F
+GLIBC_2.12 xdr_rmtcall_args F
+GLIBC_2.12 xdr_rmtcallres F
+GLIBC_2.12 xdr_short F
+GLIBC_2.12 xdr_sizeof F
+GLIBC_2.12 xdr_string F
+GLIBC_2.12 xdr_u_char F
+GLIBC_2.12 xdr_u_hyper F
+GLIBC_2.12 xdr_u_int F
+GLIBC_2.12 xdr_u_long F
+GLIBC_2.12 xdr_u_longlong_t F
+GLIBC_2.12 xdr_u_quad_t F
+GLIBC_2.12 xdr_u_short F
+GLIBC_2.12 xdr_uint16_t F
+GLIBC_2.12 xdr_uint32_t F
+GLIBC_2.12 xdr_uint64_t F
+GLIBC_2.12 xdr_uint8_t F
+GLIBC_2.12 xdr_union F
+GLIBC_2.12 xdr_unixcred F
+GLIBC_2.12 xdr_vector F
+GLIBC_2.12 xdr_void F
+GLIBC_2.12 xdr_wrapstring F
+GLIBC_2.12 xdrmem_create F
+GLIBC_2.12 xdrrec_create F
+GLIBC_2.12 xdrrec_endofrecord F
+GLIBC_2.12 xdrrec_eof F
+GLIBC_2.12 xdrrec_skiprecord F
+GLIBC_2.12 xdrstdio_create F
+GLIBC_2.12 xencrypt F
+GLIBC_2.12 xprt_register F
+GLIBC_2.12 xprt_unregister F
+GLIBC_2.15 GLIBC_2.15 A
+GLIBC_2.15 __fdelt_chk F
+GLIBC_2.15 __fdelt_warn F
+GLIBC_2.15 clock_adjtime F
+GLIBC_2.15 fanotify_init F
+GLIBC_2.15 fanotify_mark F
+GLIBC_2.15 name_to_handle_at F
+GLIBC_2.15 open_by_handle_at F
+GLIBC_2.15 posix_spawn F
+GLIBC_2.15 posix_spawnp F
+GLIBC_2.15 prlimit F
+GLIBC_2.15 prlimit64 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.15 sendmmsg F
+GLIBC_2.15 setns F
+GLIBC_2.15 syncfs 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.22 GLIBC_2.22 A
+GLIBC_2.22 fmemopen F
+GLIBC_2.23 GLIBC_2.23 A
+GLIBC_2.23 fts64_children F
+GLIBC_2.23 fts64_close F
+GLIBC_2.23 fts64_open F
+GLIBC_2.23 fts64_read F
+GLIBC_2.23 fts64_set F
+GLIBC_2.24 GLIBC_2.24 A
+GLIBC_2.24 quick_exit F
+GLIBC_2.25 GLIBC_2.25 A
+GLIBC_2.25 __explicit_bzero_chk F
+GLIBC_2.25 explicit_bzero F
+GLIBC_2.25 getentropy F
+GLIBC_2.25 getrandom F
+GLIBC_2.25 strfromd F
+GLIBC_2.25 strfromf F
+GLIBC_2.25 strfroml F
+GLIBC_2.26 GLIBC_2.26 A
+GLIBC_2.26 preadv2 F
+GLIBC_2.26 preadv64v2 F
+GLIBC_2.26 pwritev2 F
+GLIBC_2.26 pwritev64v2 F
+GLIBC_2.26 reallocarray F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libcrypt.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libcrypt.abilist
new file mode 100644
index 0000000000..d5643802b7
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libcrypt.abilist
@@ -0,0 +1,8 @@
+GLIBC_2.12 GLIBC_2.12 A
+GLIBC_2.12 crypt F
+GLIBC_2.12 crypt_r F
+GLIBC_2.12 encrypt F
+GLIBC_2.12 encrypt_r F
+GLIBC_2.12 fcrypt F
+GLIBC_2.12 setkey F
+GLIBC_2.12 setkey_r F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libdl.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libdl.abilist
new file mode 100644
index 0000000000..cabc30c239
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libdl.abilist
@@ -0,0 +1,10 @@
+GLIBC_2.12 GLIBC_2.12 A
+GLIBC_2.12 dladdr F
+GLIBC_2.12 dladdr1 F
+GLIBC_2.12 dlclose F
+GLIBC_2.12 dlerror F
+GLIBC_2.12 dlinfo F
+GLIBC_2.12 dlmopen F
+GLIBC_2.12 dlopen F
+GLIBC_2.12 dlsym F
+GLIBC_2.12 dlvsym F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libm.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libm.abilist
new file mode 100644
index 0000000000..0059c27fa2
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libm.abilist
@@ -0,0 +1,431 @@
+GLIBC_2.12 GLIBC_2.12 A
+GLIBC_2.12 _LIB_VERSION D 0x4
+GLIBC_2.12 __clog10 F
+GLIBC_2.12 __clog10f F
+GLIBC_2.12 __clog10l F
+GLIBC_2.12 __finite F
+GLIBC_2.12 __finitef F
+GLIBC_2.12 __fpclassify F
+GLIBC_2.12 __fpclassifyf F
+GLIBC_2.12 __signbit F
+GLIBC_2.12 __signbitf F
+GLIBC_2.12 acos F
+GLIBC_2.12 acosf F
+GLIBC_2.12 acosh F
+GLIBC_2.12 acoshf F
+GLIBC_2.12 acoshl F
+GLIBC_2.12 acosl F
+GLIBC_2.12 asin F
+GLIBC_2.12 asinf F
+GLIBC_2.12 asinh F
+GLIBC_2.12 asinhf F
+GLIBC_2.12 asinhl F
+GLIBC_2.12 asinl F
+GLIBC_2.12 atan F
+GLIBC_2.12 atan2 F
+GLIBC_2.12 atan2f F
+GLIBC_2.12 atan2l F
+GLIBC_2.12 atanf F
+GLIBC_2.12 atanh F
+GLIBC_2.12 atanhf F
+GLIBC_2.12 atanhl F
+GLIBC_2.12 atanl F
+GLIBC_2.12 cabs F
+GLIBC_2.12 cabsf F
+GLIBC_2.12 cabsl F
+GLIBC_2.12 cacos F
+GLIBC_2.12 cacosf F
+GLIBC_2.12 cacosh F
+GLIBC_2.12 cacoshf F
+GLIBC_2.12 cacoshl F
+GLIBC_2.12 cacosl F
+GLIBC_2.12 carg F
+GLIBC_2.12 cargf F
+GLIBC_2.12 cargl F
+GLIBC_2.12 casin F
+GLIBC_2.12 casinf F
+GLIBC_2.12 casinh F
+GLIBC_2.12 casinhf F
+GLIBC_2.12 casinhl F
+GLIBC_2.12 casinl F
+GLIBC_2.12 catan F
+GLIBC_2.12 catanf F
+GLIBC_2.12 catanh F
+GLIBC_2.12 catanhf F
+GLIBC_2.12 catanhl F
+GLIBC_2.12 catanl F
+GLIBC_2.12 cbrt F
+GLIBC_2.12 cbrtf F
+GLIBC_2.12 cbrtl F
+GLIBC_2.12 ccos F
+GLIBC_2.12 ccosf F
+GLIBC_2.12 ccosh F
+GLIBC_2.12 ccoshf F
+GLIBC_2.12 ccoshl F
+GLIBC_2.12 ccosl F
+GLIBC_2.12 ceil F
+GLIBC_2.12 ceilf F
+GLIBC_2.12 ceill F
+GLIBC_2.12 cexp F
+GLIBC_2.12 cexpf F
+GLIBC_2.12 cexpl F
+GLIBC_2.12 cimag F
+GLIBC_2.12 cimagf F
+GLIBC_2.12 cimagl F
+GLIBC_2.12 clog F
+GLIBC_2.12 clog10 F
+GLIBC_2.12 clog10f F
+GLIBC_2.12 clog10l F
+GLIBC_2.12 clogf F
+GLIBC_2.12 clogl F
+GLIBC_2.12 conj F
+GLIBC_2.12 conjf F
+GLIBC_2.12 conjl F
+GLIBC_2.12 copysign F
+GLIBC_2.12 copysignf F
+GLIBC_2.12 copysignl F
+GLIBC_2.12 cos F
+GLIBC_2.12 cosf F
+GLIBC_2.12 cosh F
+GLIBC_2.12 coshf F
+GLIBC_2.12 coshl F
+GLIBC_2.12 cosl F
+GLIBC_2.12 cpow F
+GLIBC_2.12 cpowf F
+GLIBC_2.12 cpowl F
+GLIBC_2.12 cproj F
+GLIBC_2.12 cprojf F
+GLIBC_2.12 cprojl F
+GLIBC_2.12 creal F
+GLIBC_2.12 crealf F
+GLIBC_2.12 creall F
+GLIBC_2.12 csin F
+GLIBC_2.12 csinf F
+GLIBC_2.12 csinh F
+GLIBC_2.12 csinhf F
+GLIBC_2.12 csinhl F
+GLIBC_2.12 csinl F
+GLIBC_2.12 csqrt F
+GLIBC_2.12 csqrtf F
+GLIBC_2.12 csqrtl F
+GLIBC_2.12 ctan F
+GLIBC_2.12 ctanf F
+GLIBC_2.12 ctanh F
+GLIBC_2.12 ctanhf F
+GLIBC_2.12 ctanhl F
+GLIBC_2.12 ctanl F
+GLIBC_2.12 drem F
+GLIBC_2.12 dremf F
+GLIBC_2.12 dreml F
+GLIBC_2.12 erf F
+GLIBC_2.12 erfc F
+GLIBC_2.12 erfcf F
+GLIBC_2.12 erfcl F
+GLIBC_2.12 erff F
+GLIBC_2.12 erfl F
+GLIBC_2.12 exp F
+GLIBC_2.12 exp10 F
+GLIBC_2.12 exp10f F
+GLIBC_2.12 exp10l F
+GLIBC_2.12 exp2 F
+GLIBC_2.12 exp2f F
+GLIBC_2.12 exp2l F
+GLIBC_2.12 expf F
+GLIBC_2.12 expl F
+GLIBC_2.12 expm1 F
+GLIBC_2.12 expm1f F
+GLIBC_2.12 expm1l F
+GLIBC_2.12 fabs F
+GLIBC_2.12 fabsf F
+GLIBC_2.12 fabsl F
+GLIBC_2.12 fdim F
+GLIBC_2.12 fdimf F
+GLIBC_2.12 fdiml F
+GLIBC_2.12 feclearexcept F
+GLIBC_2.12 fedisableexcept F
+GLIBC_2.12 feenableexcept F
+GLIBC_2.12 fegetenv F
+GLIBC_2.12 fegetexcept F
+GLIBC_2.12 fegetexceptflag F
+GLIBC_2.12 fegetround F
+GLIBC_2.12 feholdexcept F
+GLIBC_2.12 feraiseexcept F
+GLIBC_2.12 fesetenv F
+GLIBC_2.12 fesetexceptflag F
+GLIBC_2.12 fesetround F
+GLIBC_2.12 fetestexcept F
+GLIBC_2.12 feupdateenv F
+GLIBC_2.12 finite F
+GLIBC_2.12 finitef F
+GLIBC_2.12 finitel F
+GLIBC_2.12 floor F
+GLIBC_2.12 floorf F
+GLIBC_2.12 floorl F
+GLIBC_2.12 fma F
+GLIBC_2.12 fmaf F
+GLIBC_2.12 fmal F
+GLIBC_2.12 fmax F
+GLIBC_2.12 fmaxf F
+GLIBC_2.12 fmaxl F
+GLIBC_2.12 fmin F
+GLIBC_2.12 fminf F
+GLIBC_2.12 fminl F
+GLIBC_2.12 fmod F
+GLIBC_2.12 fmodf F
+GLIBC_2.12 fmodl F
+GLIBC_2.12 frexp F
+GLIBC_2.12 frexpf F
+GLIBC_2.12 frexpl F
+GLIBC_2.12 gamma F
+GLIBC_2.12 gammaf F
+GLIBC_2.12 gammal F
+GLIBC_2.12 hypot F
+GLIBC_2.12 hypotf F
+GLIBC_2.12 hypotl F
+GLIBC_2.12 ilogb F
+GLIBC_2.12 ilogbf F
+GLIBC_2.12 ilogbl F
+GLIBC_2.12 j0 F
+GLIBC_2.12 j0f F
+GLIBC_2.12 j0l F
+GLIBC_2.12 j1 F
+GLIBC_2.12 j1f F
+GLIBC_2.12 j1l F
+GLIBC_2.12 jn F
+GLIBC_2.12 jnf F
+GLIBC_2.12 jnl F
+GLIBC_2.12 ldexp F
+GLIBC_2.12 ldexpf F
+GLIBC_2.12 ldexpl F
+GLIBC_2.12 lgamma F
+GLIBC_2.12 lgamma_r F
+GLIBC_2.12 lgammaf F
+GLIBC_2.12 lgammaf_r F
+GLIBC_2.12 lgammal F
+GLIBC_2.12 lgammal_r F
+GLIBC_2.12 llrint F
+GLIBC_2.12 llrintf F
+GLIBC_2.12 llrintl F
+GLIBC_2.12 llround F
+GLIBC_2.12 llroundf F
+GLIBC_2.12 llroundl F
+GLIBC_2.12 log F
+GLIBC_2.12 log10 F
+GLIBC_2.12 log10f F
+GLIBC_2.12 log10l F
+GLIBC_2.12 log1p F
+GLIBC_2.12 log1pf F
+GLIBC_2.12 log1pl F
+GLIBC_2.12 log2 F
+GLIBC_2.12 log2f F
+GLIBC_2.12 log2l F
+GLIBC_2.12 logb F
+GLIBC_2.12 logbf F
+GLIBC_2.12 logbl F
+GLIBC_2.12 logf F
+GLIBC_2.12 logl F
+GLIBC_2.12 lrint F
+GLIBC_2.12 lrintf F
+GLIBC_2.12 lrintl F
+GLIBC_2.12 lround F
+GLIBC_2.12 lroundf F
+GLIBC_2.12 lroundl F
+GLIBC_2.12 matherr F
+GLIBC_2.12 modf F
+GLIBC_2.12 modff F
+GLIBC_2.12 modfl F
+GLIBC_2.12 nan F
+GLIBC_2.12 nanf F
+GLIBC_2.12 nanl F
+GLIBC_2.12 nearbyint F
+GLIBC_2.12 nearbyintf F
+GLIBC_2.12 nearbyintl F
+GLIBC_2.12 nextafter F
+GLIBC_2.12 nextafterf F
+GLIBC_2.12 nextafterl F
+GLIBC_2.12 nexttoward F
+GLIBC_2.12 nexttowardf F
+GLIBC_2.12 nexttowardl F
+GLIBC_2.12 pow F
+GLIBC_2.12 pow10 F
+GLIBC_2.12 pow10f F
+GLIBC_2.12 pow10l F
+GLIBC_2.12 powf F
+GLIBC_2.12 powl F
+GLIBC_2.12 remainder F
+GLIBC_2.12 remainderf F
+GLIBC_2.12 remainderl F
+GLIBC_2.12 remquo F
+GLIBC_2.12 remquof F
+GLIBC_2.12 remquol F
+GLIBC_2.12 rint F
+GLIBC_2.12 rintf F
+GLIBC_2.12 rintl F
+GLIBC_2.12 round F
+GLIBC_2.12 roundf F
+GLIBC_2.12 roundl F
+GLIBC_2.12 scalb F
+GLIBC_2.12 scalbf F
+GLIBC_2.12 scalbl F
+GLIBC_2.12 scalbln F
+GLIBC_2.12 scalblnf F
+GLIBC_2.12 scalblnl F
+GLIBC_2.12 scalbn F
+GLIBC_2.12 scalbnf F
+GLIBC_2.12 scalbnl F
+GLIBC_2.12 signgam D 0x4
+GLIBC_2.12 significand F
+GLIBC_2.12 significandf F
+GLIBC_2.12 significandl F
+GLIBC_2.12 sin F
+GLIBC_2.12 sincos F
+GLIBC_2.12 sincosf F
+GLIBC_2.12 sincosl F
+GLIBC_2.12 sinf F
+GLIBC_2.12 sinh F
+GLIBC_2.12 sinhf F
+GLIBC_2.12 sinhl F
+GLIBC_2.12 sinl F
+GLIBC_2.12 sqrt F
+GLIBC_2.12 sqrtf F
+GLIBC_2.12 sqrtl F
+GLIBC_2.12 tan F
+GLIBC_2.12 tanf F
+GLIBC_2.12 tanh F
+GLIBC_2.12 tanhf F
+GLIBC_2.12 tanhl F
+GLIBC_2.12 tanl F
+GLIBC_2.12 tgamma F
+GLIBC_2.12 tgammaf F
+GLIBC_2.12 tgammal F
+GLIBC_2.12 trunc F
+GLIBC_2.12 truncf F
+GLIBC_2.12 truncl F
+GLIBC_2.12 y0 F
+GLIBC_2.12 y0f F
+GLIBC_2.12 y0l F
+GLIBC_2.12 y1 F
+GLIBC_2.12 y1f F
+GLIBC_2.12 y1l F
+GLIBC_2.12 yn F
+GLIBC_2.12 ynf F
+GLIBC_2.12 ynl 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 __asin_finite F
+GLIBC_2.15 __asinf_finite F
+GLIBC_2.15 __atan2_finite F
+GLIBC_2.15 __atan2f_finite F
+GLIBC_2.15 __atanh_finite F
+GLIBC_2.15 __atanhf_finite F
+GLIBC_2.15 __cosh_finite F
+GLIBC_2.15 __coshf_finite F
+GLIBC_2.15 __exp10_finite F
+GLIBC_2.15 __exp10f_finite F
+GLIBC_2.15 __exp2_finite F
+GLIBC_2.15 __exp2f_finite F
+GLIBC_2.15 __exp_finite F
+GLIBC_2.15 __expf_finite F
+GLIBC_2.15 __fmod_finite F
+GLIBC_2.15 __fmodf_finite F
+GLIBC_2.15 __gamma_r_finite F
+GLIBC_2.15 __gammaf_r_finite F
+GLIBC_2.15 __hypot_finite F
+GLIBC_2.15 __hypotf_finite F
+GLIBC_2.15 __j0_finite F
+GLIBC_2.15 __j0f_finite F
+GLIBC_2.15 __j1_finite F
+GLIBC_2.15 __j1f_finite F
+GLIBC_2.15 __jn_finite F
+GLIBC_2.15 __jnf_finite F
+GLIBC_2.15 __lgamma_r_finite F
+GLIBC_2.15 __lgammaf_r_finite F
+GLIBC_2.15 __log10_finite F
+GLIBC_2.15 __log10f_finite F
+GLIBC_2.15 __log2_finite F
+GLIBC_2.15 __log2f_finite F
+GLIBC_2.15 __log_finite F
+GLIBC_2.15 __logf_finite F
+GLIBC_2.15 __pow_finite F
+GLIBC_2.15 __powf_finite F
+GLIBC_2.15 __remainder_finite F
+GLIBC_2.15 __remainderf_finite F
+GLIBC_2.15 __scalb_finite F
+GLIBC_2.15 __scalbf_finite F
+GLIBC_2.15 __sinh_finite F
+GLIBC_2.15 __sinhf_finite F
+GLIBC_2.15 __sqrt_finite F
+GLIBC_2.15 __sqrtf_finite F
+GLIBC_2.15 __y0_finite F
+GLIBC_2.15 __y0f_finite F
+GLIBC_2.15 __y1_finite F
+GLIBC_2.15 __y1f_finite F
+GLIBC_2.15 __yn_finite F
+GLIBC_2.15 __ynf_finite F
+GLIBC_2.18 GLIBC_2.18 A
+GLIBC_2.18 __issignaling F
+GLIBC_2.18 __issignalingf F
+GLIBC_2.23 GLIBC_2.23 A
+GLIBC_2.23 __signgam D 0x4
+GLIBC_2.23 lgamma F
+GLIBC_2.23 lgammaf F
+GLIBC_2.23 lgammal F
+GLIBC_2.24 GLIBC_2.24 A
+GLIBC_2.24 nextdown F
+GLIBC_2.24 nextdownf F
+GLIBC_2.24 nextdownl F
+GLIBC_2.24 nextup F
+GLIBC_2.24 nextupf F
+GLIBC_2.24 nextupl F
+GLIBC_2.25 GLIBC_2.25 A
+GLIBC_2.25 __iseqsig F
+GLIBC_2.25 __iseqsigf F
+GLIBC_2.25 canonicalize F
+GLIBC_2.25 canonicalizef F
+GLIBC_2.25 canonicalizel F
+GLIBC_2.25 fegetmode F
+GLIBC_2.25 fesetexcept F
+GLIBC_2.25 fesetmode F
+GLIBC_2.25 fetestexceptflag F
+GLIBC_2.25 fmaxmag F
+GLIBC_2.25 fmaxmagf F
+GLIBC_2.25 fmaxmagl F
+GLIBC_2.25 fminmag F
+GLIBC_2.25 fminmagf F
+GLIBC_2.25 fminmagl F
+GLIBC_2.25 fromfp F
+GLIBC_2.25 fromfpf F
+GLIBC_2.25 fromfpl F
+GLIBC_2.25 fromfpx F
+GLIBC_2.25 fromfpxf F
+GLIBC_2.25 fromfpxl F
+GLIBC_2.25 getpayload F
+GLIBC_2.25 getpayloadf F
+GLIBC_2.25 getpayloadl F
+GLIBC_2.25 llogb F
+GLIBC_2.25 llogbf F
+GLIBC_2.25 llogbl F
+GLIBC_2.25 roundeven F
+GLIBC_2.25 roundevenf F
+GLIBC_2.25 roundevenl F
+GLIBC_2.25 setpayload F
+GLIBC_2.25 setpayloadf F
+GLIBC_2.25 setpayloadl F
+GLIBC_2.25 setpayloadsig F
+GLIBC_2.25 setpayloadsigf F
+GLIBC_2.25 setpayloadsigl F
+GLIBC_2.25 totalorder F
+GLIBC_2.25 totalorderf F
+GLIBC_2.25 totalorderl F
+GLIBC_2.25 totalordermag F
+GLIBC_2.25 totalordermagf F
+GLIBC_2.25 totalordermagl F
+GLIBC_2.25 ufromfp F
+GLIBC_2.25 ufromfpf F
+GLIBC_2.25 ufromfpl F
+GLIBC_2.25 ufromfpx F
+GLIBC_2.25 ufromfpxf F
+GLIBC_2.25 ufromfpxl F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libnsl.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libnsl.abilist
new file mode 100644
index 0000000000..0277e5c1a8
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libnsl.abilist
@@ -0,0 +1,122 @@
+GLIBC_2.12 GLIBC_2.12 A
+GLIBC_2.12 __free_fdresult F
+GLIBC_2.12 __nis_default_access F
+GLIBC_2.12 __nis_default_group F
+GLIBC_2.12 __nis_default_owner F
+GLIBC_2.12 __nis_default_ttl F
+GLIBC_2.12 __nis_finddirectory F
+GLIBC_2.12 __nis_hash F
+GLIBC_2.12 __nisbind_connect F
+GLIBC_2.12 __nisbind_create F
+GLIBC_2.12 __nisbind_destroy F
+GLIBC_2.12 __nisbind_next F
+GLIBC_2.12 __yp_check F
+GLIBC_2.12 nis_add F
+GLIBC_2.12 nis_add_entry F
+GLIBC_2.12 nis_addmember F
+GLIBC_2.12 nis_checkpoint F
+GLIBC_2.12 nis_clone_directory F
+GLIBC_2.12 nis_clone_object F
+GLIBC_2.12 nis_clone_result F
+GLIBC_2.12 nis_creategroup F
+GLIBC_2.12 nis_destroy_object F
+GLIBC_2.12 nis_destroygroup F
+GLIBC_2.12 nis_dir_cmp F
+GLIBC_2.12 nis_domain_of F
+GLIBC_2.12 nis_domain_of_r F
+GLIBC_2.12 nis_first_entry F
+GLIBC_2.12 nis_free_directory F
+GLIBC_2.12 nis_free_object F
+GLIBC_2.12 nis_free_request F
+GLIBC_2.12 nis_freenames F
+GLIBC_2.12 nis_freeresult F
+GLIBC_2.12 nis_freeservlist F
+GLIBC_2.12 nis_freetags F
+GLIBC_2.12 nis_getnames F
+GLIBC_2.12 nis_getservlist F
+GLIBC_2.12 nis_ismember F
+GLIBC_2.12 nis_leaf_of F
+GLIBC_2.12 nis_leaf_of_r F
+GLIBC_2.12 nis_lerror F
+GLIBC_2.12 nis_list F
+GLIBC_2.12 nis_local_directory F
+GLIBC_2.12 nis_local_group F
+GLIBC_2.12 nis_local_host F
+GLIBC_2.12 nis_local_principal F
+GLIBC_2.12 nis_lookup F
+GLIBC_2.12 nis_mkdir F
+GLIBC_2.12 nis_modify F
+GLIBC_2.12 nis_modify_entry F
+GLIBC_2.12 nis_name_of F
+GLIBC_2.12 nis_name_of_r F
+GLIBC_2.12 nis_next_entry F
+GLIBC_2.12 nis_perror F
+GLIBC_2.12 nis_ping F
+GLIBC_2.12 nis_print_directory F
+GLIBC_2.12 nis_print_entry F
+GLIBC_2.12 nis_print_group F
+GLIBC_2.12 nis_print_group_entry F
+GLIBC_2.12 nis_print_link F
+GLIBC_2.12 nis_print_object F
+GLIBC_2.12 nis_print_result F
+GLIBC_2.12 nis_print_rights F
+GLIBC_2.12 nis_print_table F
+GLIBC_2.12 nis_read_obj F
+GLIBC_2.12 nis_remove F
+GLIBC_2.12 nis_remove_entry F
+GLIBC_2.12 nis_removemember F
+GLIBC_2.12 nis_rmdir F
+GLIBC_2.12 nis_servstate F
+GLIBC_2.12 nis_sperrno F
+GLIBC_2.12 nis_sperror F
+GLIBC_2.12 nis_sperror_r F
+GLIBC_2.12 nis_stats F
+GLIBC_2.12 nis_verifygroup F
+GLIBC_2.12 nis_write_obj F
+GLIBC_2.12 readColdStartFile F
+GLIBC_2.12 writeColdStartFile F
+GLIBC_2.12 xdr_cback_data F
+GLIBC_2.12 xdr_domainname F
+GLIBC_2.12 xdr_keydat F
+GLIBC_2.12 xdr_mapname F
+GLIBC_2.12 xdr_obj_p F
+GLIBC_2.12 xdr_peername F
+GLIBC_2.12 xdr_valdat F
+GLIBC_2.12 xdr_yp_buf F
+GLIBC_2.12 xdr_ypall F
+GLIBC_2.12 xdr_ypbind_binding F
+GLIBC_2.12 xdr_ypbind_resp F
+GLIBC_2.12 xdr_ypbind_resptype F
+GLIBC_2.12 xdr_ypbind_setdom F
+GLIBC_2.12 xdr_ypdelete_args F
+GLIBC_2.12 xdr_ypmap_parms F
+GLIBC_2.12 xdr_ypmaplist F
+GLIBC_2.12 xdr_yppush_status F
+GLIBC_2.12 xdr_yppushresp_xfr F
+GLIBC_2.12 xdr_ypreq_key F
+GLIBC_2.12 xdr_ypreq_nokey F
+GLIBC_2.12 xdr_ypreq_xfr F
+GLIBC_2.12 xdr_ypresp_all F
+GLIBC_2.12 xdr_ypresp_key_val F
+GLIBC_2.12 xdr_ypresp_maplist F
+GLIBC_2.12 xdr_ypresp_master F
+GLIBC_2.12 xdr_ypresp_order F
+GLIBC_2.12 xdr_ypresp_val F
+GLIBC_2.12 xdr_ypresp_xfr F
+GLIBC_2.12 xdr_ypstat F
+GLIBC_2.12 xdr_ypupdate_args F
+GLIBC_2.12 xdr_ypxfrstat F
+GLIBC_2.12 yp_all F
+GLIBC_2.12 yp_bind F
+GLIBC_2.12 yp_first F
+GLIBC_2.12 yp_get_default_domain F
+GLIBC_2.12 yp_maplist F
+GLIBC_2.12 yp_master F
+GLIBC_2.12 yp_match F
+GLIBC_2.12 yp_next F
+GLIBC_2.12 yp_order F
+GLIBC_2.12 yp_unbind F
+GLIBC_2.12 yp_update F
+GLIBC_2.12 ypbinderr_string F
+GLIBC_2.12 yperr_string F
+GLIBC_2.12 ypprot_err F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libpthread.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libpthread.abilist
new file mode 100644
index 0000000000..d16158f938
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libpthread.abilist
@@ -0,0 +1,226 @@
+GLIBC_2.12 GLIBC_2.12 A
+GLIBC_2.12 _IO_flockfile F
+GLIBC_2.12 _IO_ftrylockfile F
+GLIBC_2.12 _IO_funlockfile F
+GLIBC_2.12 __close F
+GLIBC_2.12 __connect F
+GLIBC_2.12 __errno_location F
+GLIBC_2.12 __fcntl F
+GLIBC_2.12 __fork F
+GLIBC_2.12 __h_errno_location F
+GLIBC_2.12 __libc_allocate_rtsig F
+GLIBC_2.12 __libc_current_sigrtmax F
+GLIBC_2.12 __libc_current_sigrtmin F
+GLIBC_2.12 __lseek F
+GLIBC_2.12 __nanosleep F
+GLIBC_2.12 __open F
+GLIBC_2.12 __open64 F
+GLIBC_2.12 __pread64 F
+GLIBC_2.12 __pthread_cleanup_routine F
+GLIBC_2.12 __pthread_getspecific F
+GLIBC_2.12 __pthread_key_create F
+GLIBC_2.12 __pthread_mutex_destroy F
+GLIBC_2.12 __pthread_mutex_init F
+GLIBC_2.12 __pthread_mutex_lock F
+GLIBC_2.12 __pthread_mutex_trylock F
+GLIBC_2.12 __pthread_mutex_unlock F
+GLIBC_2.12 __pthread_mutexattr_destroy F
+GLIBC_2.12 __pthread_mutexattr_init F
+GLIBC_2.12 __pthread_mutexattr_settype F
+GLIBC_2.12 __pthread_once F
+GLIBC_2.12 __pthread_register_cancel F
+GLIBC_2.12 __pthread_register_cancel_defer F
+GLIBC_2.12 __pthread_rwlock_destroy F
+GLIBC_2.12 __pthread_rwlock_init F
+GLIBC_2.12 __pthread_rwlock_rdlock F
+GLIBC_2.12 __pthread_rwlock_tryrdlock F
+GLIBC_2.12 __pthread_rwlock_trywrlock F
+GLIBC_2.12 __pthread_rwlock_unlock F
+GLIBC_2.12 __pthread_rwlock_wrlock F
+GLIBC_2.12 __pthread_setspecific F
+GLIBC_2.12 __pthread_unregister_cancel F
+GLIBC_2.12 __pthread_unregister_cancel_restore F
+GLIBC_2.12 __pthread_unwind_next F
+GLIBC_2.12 __pwrite64 F
+GLIBC_2.12 __read F
+GLIBC_2.12 __res_state F
+GLIBC_2.12 __send F
+GLIBC_2.12 __sigaction F
+GLIBC_2.12 __vfork F
+GLIBC_2.12 __wait F
+GLIBC_2.12 __write F
+GLIBC_2.12 _pthread_cleanup_pop F
+GLIBC_2.12 _pthread_cleanup_pop_restore F
+GLIBC_2.12 _pthread_cleanup_push F
+GLIBC_2.12 _pthread_cleanup_push_defer F
+GLIBC_2.12 accept F
+GLIBC_2.12 close F
+GLIBC_2.12 connect F
+GLIBC_2.12 fcntl F
+GLIBC_2.12 flockfile F
+GLIBC_2.12 fork F
+GLIBC_2.12 fsync F
+GLIBC_2.12 ftrylockfile F
+GLIBC_2.12 funlockfile F
+GLIBC_2.12 longjmp F
+GLIBC_2.12 lseek F
+GLIBC_2.12 lseek64 F
+GLIBC_2.12 msync F
+GLIBC_2.12 nanosleep F
+GLIBC_2.12 open F
+GLIBC_2.12 open64 F
+GLIBC_2.12 pause F
+GLIBC_2.12 pread F
+GLIBC_2.12 pread64 F
+GLIBC_2.12 pthread_attr_destroy F
+GLIBC_2.12 pthread_attr_getaffinity_np F
+GLIBC_2.12 pthread_attr_getdetachstate F
+GLIBC_2.12 pthread_attr_getguardsize F
+GLIBC_2.12 pthread_attr_getinheritsched F
+GLIBC_2.12 pthread_attr_getschedparam F
+GLIBC_2.12 pthread_attr_getschedpolicy F
+GLIBC_2.12 pthread_attr_getscope F
+GLIBC_2.12 pthread_attr_getstack F
+GLIBC_2.12 pthread_attr_getstackaddr F
+GLIBC_2.12 pthread_attr_getstacksize F
+GLIBC_2.12 pthread_attr_init F
+GLIBC_2.12 pthread_attr_setaffinity_np F
+GLIBC_2.12 pthread_attr_setdetachstate F
+GLIBC_2.12 pthread_attr_setguardsize F
+GLIBC_2.12 pthread_attr_setinheritsched F
+GLIBC_2.12 pthread_attr_setschedparam F
+GLIBC_2.12 pthread_attr_setschedpolicy F
+GLIBC_2.12 pthread_attr_setscope F
+GLIBC_2.12 pthread_attr_setstack F
+GLIBC_2.12 pthread_attr_setstackaddr F
+GLIBC_2.12 pthread_attr_setstacksize F
+GLIBC_2.12 pthread_barrier_destroy F
+GLIBC_2.12 pthread_barrier_init F
+GLIBC_2.12 pthread_barrier_wait F
+GLIBC_2.12 pthread_barrierattr_destroy F
+GLIBC_2.12 pthread_barrierattr_getpshared F
+GLIBC_2.12 pthread_barrierattr_init F
+GLIBC_2.12 pthread_barrierattr_setpshared F
+GLIBC_2.12 pthread_cancel F
+GLIBC_2.12 pthread_cond_broadcast F
+GLIBC_2.12 pthread_cond_destroy F
+GLIBC_2.12 pthread_cond_init F
+GLIBC_2.12 pthread_cond_signal F
+GLIBC_2.12 pthread_cond_timedwait F
+GLIBC_2.12 pthread_cond_wait F
+GLIBC_2.12 pthread_condattr_destroy F
+GLIBC_2.12 pthread_condattr_getclock F
+GLIBC_2.12 pthread_condattr_getpshared F
+GLIBC_2.12 pthread_condattr_init F
+GLIBC_2.12 pthread_condattr_setclock F
+GLIBC_2.12 pthread_condattr_setpshared F
+GLIBC_2.12 pthread_create F
+GLIBC_2.12 pthread_detach F
+GLIBC_2.12 pthread_equal F
+GLIBC_2.12 pthread_exit F
+GLIBC_2.12 pthread_getaffinity_np F
+GLIBC_2.12 pthread_getattr_np F
+GLIBC_2.12 pthread_getconcurrency F
+GLIBC_2.12 pthread_getcpuclockid F
+GLIBC_2.12 pthread_getname_np F
+GLIBC_2.12 pthread_getschedparam F
+GLIBC_2.12 pthread_getspecific F
+GLIBC_2.12 pthread_join F
+GLIBC_2.12 pthread_key_create F
+GLIBC_2.12 pthread_key_delete F
+GLIBC_2.12 pthread_kill F
+GLIBC_2.12 pthread_kill_other_threads_np F
+GLIBC_2.12 pthread_mutex_consistent F
+GLIBC_2.12 pthread_mutex_consistent_np F
+GLIBC_2.12 pthread_mutex_destroy F
+GLIBC_2.12 pthread_mutex_getprioceiling F
+GLIBC_2.12 pthread_mutex_init F
+GLIBC_2.12 pthread_mutex_lock F
+GLIBC_2.12 pthread_mutex_setprioceiling F
+GLIBC_2.12 pthread_mutex_timedlock F
+GLIBC_2.12 pthread_mutex_trylock F
+GLIBC_2.12 pthread_mutex_unlock F
+GLIBC_2.12 pthread_mutexattr_destroy F
+GLIBC_2.12 pthread_mutexattr_getkind_np F
+GLIBC_2.12 pthread_mutexattr_getprioceiling F
+GLIBC_2.12 pthread_mutexattr_getprotocol F
+GLIBC_2.12 pthread_mutexattr_getpshared F
+GLIBC_2.12 pthread_mutexattr_getrobust F
+GLIBC_2.12 pthread_mutexattr_getrobust_np F
+GLIBC_2.12 pthread_mutexattr_gettype F
+GLIBC_2.12 pthread_mutexattr_init F
+GLIBC_2.12 pthread_mutexattr_setkind_np F
+GLIBC_2.12 pthread_mutexattr_setprioceiling F
+GLIBC_2.12 pthread_mutexattr_setprotocol F
+GLIBC_2.12 pthread_mutexattr_setpshared F
+GLIBC_2.12 pthread_mutexattr_setrobust F
+GLIBC_2.12 pthread_mutexattr_setrobust_np F
+GLIBC_2.12 pthread_mutexattr_settype F
+GLIBC_2.12 pthread_once F
+GLIBC_2.12 pthread_rwlock_destroy F
+GLIBC_2.12 pthread_rwlock_init F
+GLIBC_2.12 pthread_rwlock_rdlock F
+GLIBC_2.12 pthread_rwlock_timedrdlock F
+GLIBC_2.12 pthread_rwlock_timedwrlock F
+GLIBC_2.12 pthread_rwlock_tryrdlock F
+GLIBC_2.12 pthread_rwlock_trywrlock F
+GLIBC_2.12 pthread_rwlock_unlock F
+GLIBC_2.12 pthread_rwlock_wrlock F
+GLIBC_2.12 pthread_rwlockattr_destroy F
+GLIBC_2.12 pthread_rwlockattr_getkind_np F
+GLIBC_2.12 pthread_rwlockattr_getpshared F
+GLIBC_2.12 pthread_rwlockattr_init F
+GLIBC_2.12 pthread_rwlockattr_setkind_np F
+GLIBC_2.12 pthread_rwlockattr_setpshared F
+GLIBC_2.12 pthread_self F
+GLIBC_2.12 pthread_setaffinity_np F
+GLIBC_2.12 pthread_setcancelstate F
+GLIBC_2.12 pthread_setcanceltype F
+GLIBC_2.12 pthread_setconcurrency F
+GLIBC_2.12 pthread_setname_np F
+GLIBC_2.12 pthread_setschedparam F
+GLIBC_2.12 pthread_setschedprio F
+GLIBC_2.12 pthread_setspecific F
+GLIBC_2.12 pthread_sigmask F
+GLIBC_2.12 pthread_sigqueue F
+GLIBC_2.12 pthread_spin_destroy F
+GLIBC_2.12 pthread_spin_init F
+GLIBC_2.12 pthread_spin_lock F
+GLIBC_2.12 pthread_spin_trylock F
+GLIBC_2.12 pthread_spin_unlock F
+GLIBC_2.12 pthread_testcancel F
+GLIBC_2.12 pthread_timedjoin_np F
+GLIBC_2.12 pthread_tryjoin_np F
+GLIBC_2.12 pthread_yield F
+GLIBC_2.12 pwrite F
+GLIBC_2.12 pwrite64 F
+GLIBC_2.12 raise F
+GLIBC_2.12 read F
+GLIBC_2.12 recv F
+GLIBC_2.12 recvfrom F
+GLIBC_2.12 recvmsg F
+GLIBC_2.12 sem_close F
+GLIBC_2.12 sem_destroy F
+GLIBC_2.12 sem_getvalue F
+GLIBC_2.12 sem_init F
+GLIBC_2.12 sem_open F
+GLIBC_2.12 sem_post F
+GLIBC_2.12 sem_timedwait F
+GLIBC_2.12 sem_trywait F
+GLIBC_2.12 sem_unlink F
+GLIBC_2.12 sem_wait F
+GLIBC_2.12 send F
+GLIBC_2.12 sendmsg F
+GLIBC_2.12 sendto F
+GLIBC_2.12 sigaction F
+GLIBC_2.12 siglongjmp F
+GLIBC_2.12 sigwait F
+GLIBC_2.12 system F
+GLIBC_2.12 tcdrain F
+GLIBC_2.12 vfork F
+GLIBC_2.12 wait F
+GLIBC_2.12 waitpid F
+GLIBC_2.12 write F
+GLIBC_2.18 GLIBC_2.18 A
+GLIBC_2.18 pthread_getattr_default_np F
+GLIBC_2.18 pthread_setattr_default_np F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libresolv.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libresolv.abilist
new file mode 100644
index 0000000000..bd81642e3d
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libresolv.abilist
@@ -0,0 +1,92 @@
+GLIBC_2.12 GLIBC_2.12 A
+GLIBC_2.12 __b64_ntop F
+GLIBC_2.12 __b64_pton F
+GLIBC_2.12 __dn_comp F
+GLIBC_2.12 __dn_count_labels F
+GLIBC_2.12 __dn_expand F
+GLIBC_2.12 __dn_skipname F
+GLIBC_2.12 __fp_nquery F
+GLIBC_2.12 __fp_query F
+GLIBC_2.12 __fp_resstat F
+GLIBC_2.12 __hostalias F
+GLIBC_2.12 __loc_aton F
+GLIBC_2.12 __loc_ntoa F
+GLIBC_2.12 __p_cdname F
+GLIBC_2.12 __p_cdnname F
+GLIBC_2.12 __p_class F
+GLIBC_2.12 __p_class_syms D 0xa8
+GLIBC_2.12 __p_fqname F
+GLIBC_2.12 __p_fqnname F
+GLIBC_2.12 __p_option F
+GLIBC_2.12 __p_query F
+GLIBC_2.12 __p_rcode F
+GLIBC_2.12 __p_secstodate F
+GLIBC_2.12 __p_time F
+GLIBC_2.12 __p_type F
+GLIBC_2.12 __p_type_syms D 0x450
+GLIBC_2.12 __putlong F
+GLIBC_2.12 __putshort F
+GLIBC_2.12 __res_close F
+GLIBC_2.12 __res_dnok F
+GLIBC_2.12 __res_hnok F
+GLIBC_2.12 __res_hostalias F
+GLIBC_2.12 __res_isourserver F
+GLIBC_2.12 __res_mailok F
+GLIBC_2.12 __res_mkquery F
+GLIBC_2.12 __res_nameinquery F
+GLIBC_2.12 __res_nmkquery F
+GLIBC_2.12 __res_nquery F
+GLIBC_2.12 __res_nquerydomain F
+GLIBC_2.12 __res_nsearch F
+GLIBC_2.12 __res_nsend F
+GLIBC_2.12 __res_ownok F
+GLIBC_2.12 __res_queriesmatch F
+GLIBC_2.12 __res_query F
+GLIBC_2.12 __res_querydomain F
+GLIBC_2.12 __res_search F
+GLIBC_2.12 __res_send F
+GLIBC_2.12 __sym_ntop F
+GLIBC_2.12 __sym_ntos F
+GLIBC_2.12 __sym_ston F
+GLIBC_2.12 _gethtbyaddr F
+GLIBC_2.12 _gethtbyname F
+GLIBC_2.12 _gethtbyname2 F
+GLIBC_2.12 _gethtent F
+GLIBC_2.12 _getlong F
+GLIBC_2.12 _getshort F
+GLIBC_2.12 _res_opcodes D 0x80
+GLIBC_2.12 _sethtent F
+GLIBC_2.12 inet_net_ntop F
+GLIBC_2.12 inet_net_pton F
+GLIBC_2.12 inet_neta F
+GLIBC_2.12 ns_datetosecs F
+GLIBC_2.12 ns_format_ttl F
+GLIBC_2.12 ns_get16 F
+GLIBC_2.12 ns_get32 F
+GLIBC_2.12 ns_initparse F
+GLIBC_2.12 ns_makecanon F
+GLIBC_2.12 ns_msg_getflag F
+GLIBC_2.12 ns_name_compress F
+GLIBC_2.12 ns_name_ntol F
+GLIBC_2.12 ns_name_ntop F
+GLIBC_2.12 ns_name_pack F
+GLIBC_2.12 ns_name_pton F
+GLIBC_2.12 ns_name_rollback F
+GLIBC_2.12 ns_name_skip F
+GLIBC_2.12 ns_name_uncompress F
+GLIBC_2.12 ns_name_unpack F
+GLIBC_2.12 ns_parse_ttl F
+GLIBC_2.12 ns_parserr F
+GLIBC_2.12 ns_put16 F
+GLIBC_2.12 ns_put32 F
+GLIBC_2.12 ns_samedomain F
+GLIBC_2.12 ns_samename F
+GLIBC_2.12 ns_skiprr F
+GLIBC_2.12 ns_sprintrr F
+GLIBC_2.12 ns_sprintrrf F
+GLIBC_2.12 ns_subdomain F
+GLIBC_2.12 res_gethostbyaddr F
+GLIBC_2.12 res_gethostbyname F
+GLIBC_2.12 res_gethostbyname2 F
+GLIBC_2.12 res_send_setqhook F
+GLIBC_2.12 res_send_setrhook F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/librt.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/librt.abilist
new file mode 100644
index 0000000000..14f5c8245d
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/librt.abilist
@@ -0,0 +1,41 @@
+GLIBC_2.12 GLIBC_2.12 A
+GLIBC_2.12 __mq_open_2 F
+GLIBC_2.12 aio_cancel F
+GLIBC_2.12 aio_cancel64 F
+GLIBC_2.12 aio_error F
+GLIBC_2.12 aio_error64 F
+GLIBC_2.12 aio_fsync F
+GLIBC_2.12 aio_fsync64 F
+GLIBC_2.12 aio_init F
+GLIBC_2.12 aio_read F
+GLIBC_2.12 aio_read64 F
+GLIBC_2.12 aio_return F
+GLIBC_2.12 aio_return64 F
+GLIBC_2.12 aio_suspend F
+GLIBC_2.12 aio_suspend64 F
+GLIBC_2.12 aio_write F
+GLIBC_2.12 aio_write64 F
+GLIBC_2.12 clock_getcpuclockid F
+GLIBC_2.12 clock_getres F
+GLIBC_2.12 clock_gettime F
+GLIBC_2.12 clock_nanosleep F
+GLIBC_2.12 clock_settime F
+GLIBC_2.12 lio_listio F
+GLIBC_2.12 lio_listio64 F
+GLIBC_2.12 mq_close F
+GLIBC_2.12 mq_getattr F
+GLIBC_2.12 mq_notify F
+GLIBC_2.12 mq_open F
+GLIBC_2.12 mq_receive F
+GLIBC_2.12 mq_send F
+GLIBC_2.12 mq_setattr F
+GLIBC_2.12 mq_timedreceive F
+GLIBC_2.12 mq_timedsend F
+GLIBC_2.12 mq_unlink F
+GLIBC_2.12 shm_open F
+GLIBC_2.12 shm_unlink F
+GLIBC_2.12 timer_create F
+GLIBC_2.12 timer_delete F
+GLIBC_2.12 timer_getoverrun F
+GLIBC_2.12 timer_gettime F
+GLIBC_2.12 timer_settime F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libthread_db.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libthread_db.abilist
new file mode 100644
index 0000000000..4aade0b7e0
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libthread_db.abilist
@@ -0,0 +1,41 @@
+GLIBC_2.12 GLIBC_2.12 A
+GLIBC_2.12 td_init F
+GLIBC_2.12 td_log F
+GLIBC_2.12 td_symbol_list F
+GLIBC_2.12 td_ta_clear_event F
+GLIBC_2.12 td_ta_delete F
+GLIBC_2.12 td_ta_enable_stats F
+GLIBC_2.12 td_ta_event_addr F
+GLIBC_2.12 td_ta_event_getmsg F
+GLIBC_2.12 td_ta_get_nthreads F
+GLIBC_2.12 td_ta_get_ph F
+GLIBC_2.12 td_ta_get_stats F
+GLIBC_2.12 td_ta_map_id2thr F
+GLIBC_2.12 td_ta_map_lwp2thr F
+GLIBC_2.12 td_ta_new F
+GLIBC_2.12 td_ta_reset_stats F
+GLIBC_2.12 td_ta_set_event F
+GLIBC_2.12 td_ta_setconcurrency F
+GLIBC_2.12 td_ta_thr_iter F
+GLIBC_2.12 td_ta_tsd_iter F
+GLIBC_2.12 td_thr_clear_event F
+GLIBC_2.12 td_thr_dbresume F
+GLIBC_2.12 td_thr_dbsuspend F
+GLIBC_2.12 td_thr_event_enable F
+GLIBC_2.12 td_thr_event_getmsg F
+GLIBC_2.12 td_thr_get_info F
+GLIBC_2.12 td_thr_getfpregs F
+GLIBC_2.12 td_thr_getgregs F
+GLIBC_2.12 td_thr_getxregs F
+GLIBC_2.12 td_thr_getxregsize F
+GLIBC_2.12 td_thr_set_event F
+GLIBC_2.12 td_thr_setfpregs F
+GLIBC_2.12 td_thr_setgregs F
+GLIBC_2.12 td_thr_setprio F
+GLIBC_2.12 td_thr_setsigpending F
+GLIBC_2.12 td_thr_setxregs F
+GLIBC_2.12 td_thr_sigsetmask F
+GLIBC_2.12 td_thr_tls_get_addr F
+GLIBC_2.12 td_thr_tlsbase F
+GLIBC_2.12 td_thr_tsd F
+GLIBC_2.12 td_thr_validate F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libutil.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libutil.abilist
new file mode 100644
index 0000000000..e4d432643c
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libutil.abilist
@@ -0,0 +1,7 @@
+GLIBC_2.12 GLIBC_2.12 A
+GLIBC_2.12 forkpty F
+GLIBC_2.12 login F
+GLIBC_2.12 login_tty F
+GLIBC_2.12 logout F
+GLIBC_2.12 logwtmp F
+GLIBC_2.12 openpty F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilepro/Implies b/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilepro/Implies
new file mode 100644
index 0000000000..0023bb77aa
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilepro/Implies
@@ -0,0 +1,3 @@
+unix/sysv/linux/tile
+unix/sysv/linux/generic/wordsize-32
+unix/sysv/linux/generic
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilepro/c++-types.data b/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilepro/c++-types.data
new file mode 100644
index 0000000000..303f4570c8
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilepro/c++-types.data
@@ -0,0 +1,67 @@
+blkcnt64_t:x
+blkcnt_t:l
+blksize_t:i
+caddr_t:Pc
+clockid_t:i
+clock_t:l
+daddr_t:i
+dev_t:y
+fd_mask:l
+fsblkcnt64_t:y
+fsblkcnt_t:m
+fsfilcnt64_t:y
+fsfilcnt_t:m
+fsid_t:8__fsid_t
+gid_t:j
+id_t:j
+ino64_t:y
+ino_t:m
+int16_t:s
+int32_t:i
+int64_t:x
+int8_t:a
+intptr_t:i
+key_t:i
+loff_t:x
+mode_t:j
+nlink_t:j
+off64_t:x
+off_t:l
+pid_t:i
+pthread_attr_t:14pthread_attr_t
+pthread_barrier_t:17pthread_barrier_t
+pthread_barrierattr_t:21pthread_barrierattr_t
+pthread_cond_t:14pthread_cond_t
+pthread_condattr_t:18pthread_condattr_t
+pthread_key_t:j
+pthread_mutex_t:15pthread_mutex_t
+pthread_mutexattr_t:19pthread_mutexattr_t
+pthread_once_t:i
+pthread_rwlock_t:16pthread_rwlock_t
+pthread_rwlockattr_t:20pthread_rwlockattr_t
+pthread_spinlock_t:i
+pthread_t:m
+quad_t:x
+register_t:i
+rlim64_t:y
+rlim_t:m
+sigset_t:10__sigset_t
+size_t:j
+socklen_t:j
+ssize_t:i
+suseconds_t:l
+time_t:l
+u_char:h
+uid_t:j
+uint:j
+u_int:j
+u_int16_t:t
+u_int32_t:j
+u_int64_t:y
+u_int8_t:h
+ulong:m
+u_long:m
+u_quad_t:y
+useconds_t:j
+ushort:t
+u_short:t
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilepro/ld.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilepro/ld.abilist
new file mode 100644
index 0000000000..f166310147
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilepro/ld.abilist
@@ -0,0 +1,9 @@
+GLIBC_2.12 GLIBC_2.12 A
+GLIBC_2.12 __libc_stack_end D 0x4
+GLIBC_2.12 __tls_get_addr F
+GLIBC_2.12 _dl_mcount F
+GLIBC_2.12 _r_debug D 0x14
+GLIBC_2.12 calloc F
+GLIBC_2.12 free F
+GLIBC_2.12 malloc F
+GLIBC_2.12 realloc F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilepro/ldconfig.h b/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilepro/ldconfig.h
new file mode 100644
index 0000000000..527825c106
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilepro/ldconfig.h
@@ -0,0 +1,25 @@
+/* Copyright (C) 2011-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdeps/generic/ldconfig.h>
+
+#define SYSDEP_KNOWN_INTERPRETER_NAMES \
+ { "/lib/ld.so.1", FLAG_ELF_LIBC6 },
+#define SYSDEP_KNOWN_LIBRARY_NAMES \
+ { "libc.so.6", FLAG_ELF_LIBC6 }, \
+ { "libm.so.6", FLAG_ELF_LIBC6 },
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilepro/libBrokenLocale.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilepro/libBrokenLocale.abilist
new file mode 100644
index 0000000000..0d64827515
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilepro/libBrokenLocale.abilist
@@ -0,0 +1,2 @@
+GLIBC_2.12 GLIBC_2.12 A
+GLIBC_2.12 __ctype_get_mb_cur_max F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilepro/libanl.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilepro/libanl.abilist
new file mode 100644
index 0000000000..a3b1cc08bf
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilepro/libanl.abilist
@@ -0,0 +1,5 @@
+GLIBC_2.12 GLIBC_2.12 A
+GLIBC_2.12 gai_cancel F
+GLIBC_2.12 gai_error F
+GLIBC_2.12 gai_suspend F
+GLIBC_2.12 getaddrinfo_a F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilepro/libc.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilepro/libc.abilist
new file mode 100644
index 0000000000..41647d4610
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilepro/libc.abilist
@@ -0,0 +1,2112 @@
+GLIBC_2.12 GLIBC_2.12 A
+GLIBC_2.12 _Exit F
+GLIBC_2.12 _IO_2_1_stderr_ D 0xa0
+GLIBC_2.12 _IO_2_1_stdin_ D 0xa0
+GLIBC_2.12 _IO_2_1_stdout_ D 0xa0
+GLIBC_2.12 _IO_adjust_column F
+GLIBC_2.12 _IO_adjust_wcolumn F
+GLIBC_2.12 _IO_default_doallocate F
+GLIBC_2.12 _IO_default_finish F
+GLIBC_2.12 _IO_default_pbackfail F
+GLIBC_2.12 _IO_default_uflow F
+GLIBC_2.12 _IO_default_xsgetn F
+GLIBC_2.12 _IO_default_xsputn F
+GLIBC_2.12 _IO_do_write F
+GLIBC_2.12 _IO_doallocbuf F
+GLIBC_2.12 _IO_fclose F
+GLIBC_2.12 _IO_fdopen F
+GLIBC_2.12 _IO_feof F
+GLIBC_2.12 _IO_ferror F
+GLIBC_2.12 _IO_fflush F
+GLIBC_2.12 _IO_fgetpos F
+GLIBC_2.12 _IO_fgetpos64 F
+GLIBC_2.12 _IO_fgets F
+GLIBC_2.12 _IO_file_attach F
+GLIBC_2.12 _IO_file_close F
+GLIBC_2.12 _IO_file_close_it F
+GLIBC_2.12 _IO_file_doallocate F
+GLIBC_2.12 _IO_file_finish F
+GLIBC_2.12 _IO_file_fopen F
+GLIBC_2.12 _IO_file_init F
+GLIBC_2.12 _IO_file_jumps D 0x54
+GLIBC_2.12 _IO_file_open F
+GLIBC_2.12 _IO_file_overflow F
+GLIBC_2.12 _IO_file_read F
+GLIBC_2.12 _IO_file_seek F
+GLIBC_2.12 _IO_file_seekoff F
+GLIBC_2.12 _IO_file_setbuf F
+GLIBC_2.12 _IO_file_stat F
+GLIBC_2.12 _IO_file_sync F
+GLIBC_2.12 _IO_file_underflow F
+GLIBC_2.12 _IO_file_write F
+GLIBC_2.12 _IO_file_xsputn F
+GLIBC_2.12 _IO_flockfile F
+GLIBC_2.12 _IO_flush_all F
+GLIBC_2.12 _IO_flush_all_linebuffered F
+GLIBC_2.12 _IO_fopen F
+GLIBC_2.12 _IO_fprintf F
+GLIBC_2.12 _IO_fputs F
+GLIBC_2.12 _IO_fread F
+GLIBC_2.12 _IO_free_backup_area F
+GLIBC_2.12 _IO_free_wbackup_area F
+GLIBC_2.12 _IO_fsetpos F
+GLIBC_2.12 _IO_fsetpos64 F
+GLIBC_2.12 _IO_ftell F
+GLIBC_2.12 _IO_ftrylockfile F
+GLIBC_2.12 _IO_funlockfile F
+GLIBC_2.12 _IO_fwrite F
+GLIBC_2.12 _IO_getc F
+GLIBC_2.12 _IO_getline F
+GLIBC_2.12 _IO_getline_info F
+GLIBC_2.12 _IO_gets F
+GLIBC_2.12 _IO_init F
+GLIBC_2.12 _IO_init_marker F
+GLIBC_2.12 _IO_init_wmarker F
+GLIBC_2.12 _IO_iter_begin F
+GLIBC_2.12 _IO_iter_end F
+GLIBC_2.12 _IO_iter_file F
+GLIBC_2.12 _IO_iter_next F
+GLIBC_2.12 _IO_least_wmarker F
+GLIBC_2.12 _IO_link_in F
+GLIBC_2.12 _IO_list_all D 0x4
+GLIBC_2.12 _IO_list_lock F
+GLIBC_2.12 _IO_list_resetlock F
+GLIBC_2.12 _IO_list_unlock F
+GLIBC_2.12 _IO_marker_delta F
+GLIBC_2.12 _IO_marker_difference F
+GLIBC_2.12 _IO_padn F
+GLIBC_2.12 _IO_peekc_locked F
+GLIBC_2.12 _IO_popen F
+GLIBC_2.12 _IO_printf F
+GLIBC_2.12 _IO_proc_close F
+GLIBC_2.12 _IO_proc_open F
+GLIBC_2.12 _IO_putc F
+GLIBC_2.12 _IO_puts F
+GLIBC_2.12 _IO_remove_marker F
+GLIBC_2.12 _IO_seekmark F
+GLIBC_2.12 _IO_seekoff F
+GLIBC_2.12 _IO_seekpos F
+GLIBC_2.12 _IO_seekwmark F
+GLIBC_2.12 _IO_setb F
+GLIBC_2.12 _IO_setbuffer F
+GLIBC_2.12 _IO_setvbuf F
+GLIBC_2.12 _IO_sgetn F
+GLIBC_2.12 _IO_sprintf F
+GLIBC_2.12 _IO_sputbackc F
+GLIBC_2.12 _IO_sputbackwc F
+GLIBC_2.12 _IO_sscanf F
+GLIBC_2.12 _IO_str_init_readonly F
+GLIBC_2.12 _IO_str_init_static F
+GLIBC_2.12 _IO_str_overflow F
+GLIBC_2.12 _IO_str_pbackfail F
+GLIBC_2.12 _IO_str_seekoff F
+GLIBC_2.12 _IO_str_underflow F
+GLIBC_2.12 _IO_sungetc F
+GLIBC_2.12 _IO_sungetwc F
+GLIBC_2.12 _IO_switch_to_get_mode F
+GLIBC_2.12 _IO_switch_to_main_wget_area F
+GLIBC_2.12 _IO_switch_to_wbackup_area F
+GLIBC_2.12 _IO_switch_to_wget_mode F
+GLIBC_2.12 _IO_un_link F
+GLIBC_2.12 _IO_ungetc F
+GLIBC_2.12 _IO_unsave_markers F
+GLIBC_2.12 _IO_unsave_wmarkers F
+GLIBC_2.12 _IO_vfprintf F
+GLIBC_2.12 _IO_vfscanf F
+GLIBC_2.12 _IO_vsprintf F
+GLIBC_2.12 _IO_wdefault_doallocate F
+GLIBC_2.12 _IO_wdefault_finish F
+GLIBC_2.12 _IO_wdefault_pbackfail F
+GLIBC_2.12 _IO_wdefault_uflow F
+GLIBC_2.12 _IO_wdefault_xsgetn F
+GLIBC_2.12 _IO_wdefault_xsputn F
+GLIBC_2.12 _IO_wdo_write F
+GLIBC_2.12 _IO_wdoallocbuf F
+GLIBC_2.12 _IO_wfile_jumps D 0x54
+GLIBC_2.12 _IO_wfile_overflow F
+GLIBC_2.12 _IO_wfile_seekoff F
+GLIBC_2.12 _IO_wfile_sync F
+GLIBC_2.12 _IO_wfile_underflow F
+GLIBC_2.12 _IO_wfile_xsputn F
+GLIBC_2.12 _IO_wmarker_delta F
+GLIBC_2.12 _IO_wsetb F
+GLIBC_2.12 ___brk_addr D 0x4
+GLIBC_2.12 __adjtimex F
+GLIBC_2.12 __after_morecore_hook D 0x4
+GLIBC_2.12 __argz_count F
+GLIBC_2.12 __argz_next F
+GLIBC_2.12 __argz_stringify F
+GLIBC_2.12 __asprintf F
+GLIBC_2.12 __asprintf_chk F
+GLIBC_2.12 __assert F
+GLIBC_2.12 __assert_fail F
+GLIBC_2.12 __assert_perror_fail F
+GLIBC_2.12 __backtrace F
+GLIBC_2.12 __backtrace_symbols F
+GLIBC_2.12 __backtrace_symbols_fd F
+GLIBC_2.12 __bsd_getpgrp F
+GLIBC_2.12 __bzero F
+GLIBC_2.12 __check_rhosts_file D 0x4
+GLIBC_2.12 __chk_fail F
+GLIBC_2.12 __clone F
+GLIBC_2.12 __close F
+GLIBC_2.12 __cmsg_nxthdr F
+GLIBC_2.12 __confstr_chk F
+GLIBC_2.12 __connect F
+GLIBC_2.12 __ctype_b_loc F
+GLIBC_2.12 __ctype_get_mb_cur_max F
+GLIBC_2.12 __ctype_tolower_loc F
+GLIBC_2.12 __ctype_toupper_loc F
+GLIBC_2.12 __curbrk D 0x4
+GLIBC_2.12 __cxa_at_quick_exit F
+GLIBC_2.12 __cxa_atexit F
+GLIBC_2.12 __cxa_finalize F
+GLIBC_2.12 __cyg_profile_func_enter F
+GLIBC_2.12 __cyg_profile_func_exit F
+GLIBC_2.12 __daylight D 0x4
+GLIBC_2.12 __dcgettext F
+GLIBC_2.12 __default_morecore F
+GLIBC_2.12 __dgettext F
+GLIBC_2.12 __dprintf_chk F
+GLIBC_2.12 __dup2 F
+GLIBC_2.12 __duplocale F
+GLIBC_2.12 __endmntent F
+GLIBC_2.12 __environ D 0x4
+GLIBC_2.12 __errno_location F
+GLIBC_2.12 __fbufsize F
+GLIBC_2.12 __fcntl F
+GLIBC_2.12 __ffs F
+GLIBC_2.12 __fgets_chk F
+GLIBC_2.12 __fgets_unlocked_chk F
+GLIBC_2.12 __fgetws_chk F
+GLIBC_2.12 __fgetws_unlocked_chk F
+GLIBC_2.12 __finite F
+GLIBC_2.12 __finitef F
+GLIBC_2.12 __flbf F
+GLIBC_2.12 __fork F
+GLIBC_2.12 __fpending F
+GLIBC_2.12 __fprintf_chk F
+GLIBC_2.12 __fpu_control D 0x4
+GLIBC_2.12 __fpurge F
+GLIBC_2.12 __fread_chk F
+GLIBC_2.12 __fread_unlocked_chk F
+GLIBC_2.12 __freadable F
+GLIBC_2.12 __freading F
+GLIBC_2.12 __free_hook D 0x4
+GLIBC_2.12 __freelocale F
+GLIBC_2.12 __fsetlocking F
+GLIBC_2.12 __fwprintf_chk F
+GLIBC_2.12 __fwritable F
+GLIBC_2.12 __fwriting F
+GLIBC_2.12 __fxstat F
+GLIBC_2.12 __fxstat64 F
+GLIBC_2.12 __fxstatat F
+GLIBC_2.12 __fxstatat64 F
+GLIBC_2.12 __getcwd_chk F
+GLIBC_2.12 __getdelim F
+GLIBC_2.12 __getdomainname_chk F
+GLIBC_2.12 __getgroups_chk F
+GLIBC_2.12 __gethostname_chk F
+GLIBC_2.12 __getlogin_r_chk F
+GLIBC_2.12 __getmntent_r F
+GLIBC_2.12 __getpagesize F
+GLIBC_2.12 __getpgid F
+GLIBC_2.12 __getpid F
+GLIBC_2.12 __gets_chk F
+GLIBC_2.12 __gettimeofday F
+GLIBC_2.12 __getwd_chk F
+GLIBC_2.12 __gmtime_r F
+GLIBC_2.12 __h_errno_location F
+GLIBC_2.12 __isalnum_l F
+GLIBC_2.12 __isalpha_l F
+GLIBC_2.12 __isascii_l F
+GLIBC_2.12 __isblank_l F
+GLIBC_2.12 __iscntrl_l F
+GLIBC_2.12 __isctype F
+GLIBC_2.12 __isdigit_l F
+GLIBC_2.12 __isgraph_l F
+GLIBC_2.12 __isinf F
+GLIBC_2.12 __isinff F
+GLIBC_2.12 __islower_l F
+GLIBC_2.12 __isnan F
+GLIBC_2.12 __isnanf F
+GLIBC_2.12 __isoc99_fscanf F
+GLIBC_2.12 __isoc99_fwscanf F
+GLIBC_2.12 __isoc99_scanf F
+GLIBC_2.12 __isoc99_sscanf F
+GLIBC_2.12 __isoc99_swscanf F
+GLIBC_2.12 __isoc99_vfscanf F
+GLIBC_2.12 __isoc99_vfwscanf F
+GLIBC_2.12 __isoc99_vscanf F
+GLIBC_2.12 __isoc99_vsscanf F
+GLIBC_2.12 __isoc99_vswscanf F
+GLIBC_2.12 __isoc99_vwscanf F
+GLIBC_2.12 __isoc99_wscanf F
+GLIBC_2.12 __isprint_l F
+GLIBC_2.12 __ispunct_l F
+GLIBC_2.12 __isspace_l F
+GLIBC_2.12 __isupper_l F
+GLIBC_2.12 __iswalnum_l F
+GLIBC_2.12 __iswalpha_l F
+GLIBC_2.12 __iswblank_l F
+GLIBC_2.12 __iswcntrl_l F
+GLIBC_2.12 __iswctype F
+GLIBC_2.12 __iswctype_l F
+GLIBC_2.12 __iswdigit_l F
+GLIBC_2.12 __iswgraph_l F
+GLIBC_2.12 __iswlower_l F
+GLIBC_2.12 __iswprint_l F
+GLIBC_2.12 __iswpunct_l F
+GLIBC_2.12 __iswspace_l F
+GLIBC_2.12 __iswupper_l F
+GLIBC_2.12 __iswxdigit_l F
+GLIBC_2.12 __isxdigit_l F
+GLIBC_2.12 __ivaliduser F
+GLIBC_2.12 __key_decryptsession_pk_LOCAL D 0x4
+GLIBC_2.12 __key_encryptsession_pk_LOCAL D 0x4
+GLIBC_2.12 __key_gendes_LOCAL D 0x4
+GLIBC_2.12 __libc_allocate_rtsig F
+GLIBC_2.12 __libc_calloc F
+GLIBC_2.12 __libc_current_sigrtmax F
+GLIBC_2.12 __libc_current_sigrtmin F
+GLIBC_2.12 __libc_free F
+GLIBC_2.12 __libc_freeres F
+GLIBC_2.12 __libc_init_first F
+GLIBC_2.12 __libc_mallinfo F
+GLIBC_2.12 __libc_malloc F
+GLIBC_2.12 __libc_mallopt F
+GLIBC_2.12 __libc_memalign F
+GLIBC_2.12 __libc_pvalloc F
+GLIBC_2.12 __libc_realloc F
+GLIBC_2.12 __libc_sa_len F
+GLIBC_2.12 __libc_start_main F
+GLIBC_2.12 __libc_valloc F
+GLIBC_2.12 __longjmp_chk F
+GLIBC_2.12 __lseek F
+GLIBC_2.12 __lxstat F
+GLIBC_2.12 __lxstat64 F
+GLIBC_2.12 __malloc_hook D 0x4
+GLIBC_2.12 __malloc_initialize_hook D 0x4
+GLIBC_2.12 __mbrlen F
+GLIBC_2.12 __mbrtowc F
+GLIBC_2.12 __mbsnrtowcs_chk F
+GLIBC_2.12 __mbsrtowcs_chk F
+GLIBC_2.12 __mbstowcs_chk F
+GLIBC_2.12 __mcount F
+GLIBC_2.12 __memalign_hook D 0x4
+GLIBC_2.12 __memcpy_chk F
+GLIBC_2.12 __memmove_chk F
+GLIBC_2.12 __mempcpy F
+GLIBC_2.12 __mempcpy_chk F
+GLIBC_2.12 __mempcpy_small F
+GLIBC_2.12 __memset_chk F
+GLIBC_2.12 __monstartup F
+GLIBC_2.12 __morecore D 0x4
+GLIBC_2.12 __nanosleep F
+GLIBC_2.12 __newlocale F
+GLIBC_2.12 __nl_langinfo_l F
+GLIBC_2.12 __nss_configure_lookup F
+GLIBC_2.12 __nss_database_lookup F
+GLIBC_2.12 __nss_group_lookup F
+GLIBC_2.12 __nss_hostname_digits_dots F
+GLIBC_2.12 __nss_hosts_lookup F
+GLIBC_2.12 __nss_next F
+GLIBC_2.12 __nss_passwd_lookup F
+GLIBC_2.12 __obstack_printf_chk F
+GLIBC_2.12 __obstack_vprintf_chk F
+GLIBC_2.12 __open F
+GLIBC_2.12 __open64 F
+GLIBC_2.12 __open64_2 F
+GLIBC_2.12 __open_2 F
+GLIBC_2.12 __openat64_2 F
+GLIBC_2.12 __openat_2 F
+GLIBC_2.12 __overflow F
+GLIBC_2.12 __pipe F
+GLIBC_2.12 __poll F
+GLIBC_2.12 __posix_getopt F
+GLIBC_2.12 __pread64 F
+GLIBC_2.12 __pread64_chk F
+GLIBC_2.12 __pread_chk F
+GLIBC_2.12 __printf_chk F
+GLIBC_2.12 __printf_fp F
+GLIBC_2.12 __profile_frequency F
+GLIBC_2.12 __progname D 0x4
+GLIBC_2.12 __progname_full D 0x4
+GLIBC_2.12 __ptsname_r_chk F
+GLIBC_2.12 __pwrite64 F
+GLIBC_2.12 __rawmemchr F
+GLIBC_2.12 __rcmd_errstr D 0x4
+GLIBC_2.12 __read F
+GLIBC_2.12 __read_chk F
+GLIBC_2.12 __readlink_chk F
+GLIBC_2.12 __readlinkat_chk F
+GLIBC_2.12 __realloc_hook D 0x4
+GLIBC_2.12 __realpath_chk F
+GLIBC_2.12 __recv_chk F
+GLIBC_2.12 __recvfrom_chk F
+GLIBC_2.12 __register_atfork F
+GLIBC_2.12 __res_init F
+GLIBC_2.12 __res_nclose F
+GLIBC_2.12 __res_ninit F
+GLIBC_2.12 __res_randomid F
+GLIBC_2.12 __res_state F
+GLIBC_2.12 __rpc_thread_createerr F
+GLIBC_2.12 __rpc_thread_svc_fdset F
+GLIBC_2.12 __rpc_thread_svc_max_pollfd F
+GLIBC_2.12 __rpc_thread_svc_pollfd F
+GLIBC_2.12 __sbrk F
+GLIBC_2.12 __sched_cpualloc F
+GLIBC_2.12 __sched_cpucount F
+GLIBC_2.12 __sched_cpufree F
+GLIBC_2.12 __sched_get_priority_max F
+GLIBC_2.12 __sched_get_priority_min F
+GLIBC_2.12 __sched_getparam F
+GLIBC_2.12 __sched_getscheduler F
+GLIBC_2.12 __sched_setscheduler F
+GLIBC_2.12 __sched_yield F
+GLIBC_2.12 __secure_getenv F
+GLIBC_2.12 __select F
+GLIBC_2.12 __setmntent F
+GLIBC_2.12 __setpgid F
+GLIBC_2.12 __sigaction F
+GLIBC_2.12 __sigaddset F
+GLIBC_2.12 __sigdelset F
+GLIBC_2.12 __sigismember F
+GLIBC_2.12 __signbit F
+GLIBC_2.12 __signbitf F
+GLIBC_2.12 __sigpause F
+GLIBC_2.12 __sigsetjmp F
+GLIBC_2.12 __sigsuspend F
+GLIBC_2.12 __snprintf_chk F
+GLIBC_2.12 __sprintf_chk F
+GLIBC_2.12 __stack_chk_fail F
+GLIBC_2.12 __statfs F
+GLIBC_2.12 __stpcpy F
+GLIBC_2.12 __stpcpy_chk F
+GLIBC_2.12 __stpcpy_small F
+GLIBC_2.12 __stpncpy F
+GLIBC_2.12 __stpncpy_chk F
+GLIBC_2.12 __strcasecmp F
+GLIBC_2.12 __strcasecmp_l F
+GLIBC_2.12 __strcasestr F
+GLIBC_2.12 __strcat_chk F
+GLIBC_2.12 __strcoll_l F
+GLIBC_2.12 __strcpy_chk F
+GLIBC_2.12 __strcpy_small F
+GLIBC_2.12 __strcspn_c1 F
+GLIBC_2.12 __strcspn_c2 F
+GLIBC_2.12 __strcspn_c3 F
+GLIBC_2.12 __strdup F
+GLIBC_2.12 __strerror_r F
+GLIBC_2.12 __strfmon_l F
+GLIBC_2.12 __strftime_l F
+GLIBC_2.12 __strncasecmp_l F
+GLIBC_2.12 __strncat_chk F
+GLIBC_2.12 __strncpy_chk F
+GLIBC_2.12 __strndup F
+GLIBC_2.12 __strpbrk_c2 F
+GLIBC_2.12 __strpbrk_c3 F
+GLIBC_2.12 __strsep_1c F
+GLIBC_2.12 __strsep_2c F
+GLIBC_2.12 __strsep_3c F
+GLIBC_2.12 __strsep_g F
+GLIBC_2.12 __strspn_c1 F
+GLIBC_2.12 __strspn_c2 F
+GLIBC_2.12 __strspn_c3 F
+GLIBC_2.12 __strtod_internal F
+GLIBC_2.12 __strtod_l F
+GLIBC_2.12 __strtof_internal F
+GLIBC_2.12 __strtof_l F
+GLIBC_2.12 __strtok_r F
+GLIBC_2.12 __strtok_r_1c F
+GLIBC_2.12 __strtol_internal F
+GLIBC_2.12 __strtol_l F
+GLIBC_2.12 __strtold_internal F
+GLIBC_2.12 __strtold_l F
+GLIBC_2.12 __strtoll_internal F
+GLIBC_2.12 __strtoll_l F
+GLIBC_2.12 __strtoul_internal F
+GLIBC_2.12 __strtoul_l F
+GLIBC_2.12 __strtoull_internal F
+GLIBC_2.12 __strtoull_l F
+GLIBC_2.12 __strverscmp F
+GLIBC_2.12 __strxfrm_l F
+GLIBC_2.12 __swprintf_chk F
+GLIBC_2.12 __sysconf F
+GLIBC_2.12 __syslog_chk F
+GLIBC_2.12 __sysv_signal F
+GLIBC_2.12 __timezone D 0x4
+GLIBC_2.12 __toascii_l F
+GLIBC_2.12 __tolower_l F
+GLIBC_2.12 __toupper_l F
+GLIBC_2.12 __towctrans F
+GLIBC_2.12 __towctrans_l F
+GLIBC_2.12 __towlower_l F
+GLIBC_2.12 __towupper_l F
+GLIBC_2.12 __ttyname_r_chk F
+GLIBC_2.12 __tzname D 0x8
+GLIBC_2.12 __uflow F
+GLIBC_2.12 __underflow F
+GLIBC_2.12 __uselocale F
+GLIBC_2.12 __vasprintf_chk F
+GLIBC_2.12 __vdprintf_chk F
+GLIBC_2.12 __vfork F
+GLIBC_2.12 __vfprintf_chk F
+GLIBC_2.12 __vfscanf F
+GLIBC_2.12 __vfwprintf_chk F
+GLIBC_2.12 __vprintf_chk F
+GLIBC_2.12 __vsnprintf F
+GLIBC_2.12 __vsnprintf_chk F
+GLIBC_2.12 __vsprintf_chk F
+GLIBC_2.12 __vsscanf F
+GLIBC_2.12 __vswprintf_chk F
+GLIBC_2.12 __vsyslog_chk F
+GLIBC_2.12 __vwprintf_chk F
+GLIBC_2.12 __wait F
+GLIBC_2.12 __waitpid F
+GLIBC_2.12 __wcpcpy_chk F
+GLIBC_2.12 __wcpncpy_chk F
+GLIBC_2.12 __wcrtomb_chk F
+GLIBC_2.12 __wcscasecmp_l F
+GLIBC_2.12 __wcscat_chk F
+GLIBC_2.12 __wcscoll_l F
+GLIBC_2.12 __wcscpy_chk F
+GLIBC_2.12 __wcsftime_l F
+GLIBC_2.12 __wcsncasecmp_l F
+GLIBC_2.12 __wcsncat_chk F
+GLIBC_2.12 __wcsncpy_chk F
+GLIBC_2.12 __wcsnrtombs_chk F
+GLIBC_2.12 __wcsrtombs_chk F
+GLIBC_2.12 __wcstod_internal F
+GLIBC_2.12 __wcstod_l F
+GLIBC_2.12 __wcstof_internal F
+GLIBC_2.12 __wcstof_l F
+GLIBC_2.12 __wcstol_internal F
+GLIBC_2.12 __wcstol_l F
+GLIBC_2.12 __wcstold_internal F
+GLIBC_2.12 __wcstold_l F
+GLIBC_2.12 __wcstoll_internal F
+GLIBC_2.12 __wcstoll_l F
+GLIBC_2.12 __wcstombs_chk F
+GLIBC_2.12 __wcstoul_internal F
+GLIBC_2.12 __wcstoul_l F
+GLIBC_2.12 __wcstoull_internal F
+GLIBC_2.12 __wcstoull_l F
+GLIBC_2.12 __wcsxfrm_l F
+GLIBC_2.12 __wctomb_chk F
+GLIBC_2.12 __wctrans_l F
+GLIBC_2.12 __wctype_l F
+GLIBC_2.12 __wmemcpy_chk F
+GLIBC_2.12 __wmemmove_chk F
+GLIBC_2.12 __wmempcpy_chk F
+GLIBC_2.12 __wmemset_chk F
+GLIBC_2.12 __woverflow F
+GLIBC_2.12 __wprintf_chk F
+GLIBC_2.12 __write F
+GLIBC_2.12 __wuflow F
+GLIBC_2.12 __wunderflow F
+GLIBC_2.12 __xmknod F
+GLIBC_2.12 __xmknodat F
+GLIBC_2.12 __xpg_basename F
+GLIBC_2.12 __xpg_sigpause F
+GLIBC_2.12 __xpg_strerror_r F
+GLIBC_2.12 __xstat F
+GLIBC_2.12 __xstat64 F
+GLIBC_2.12 _authenticate F
+GLIBC_2.12 _dl_mcount_wrapper F
+GLIBC_2.12 _dl_mcount_wrapper_check F
+GLIBC_2.12 _environ D 0x4
+GLIBC_2.12 _exit F
+GLIBC_2.12 _flush_cache F
+GLIBC_2.12 _flushlbf F
+GLIBC_2.12 _libc_intl_domainname D 0x5
+GLIBC_2.12 _longjmp F
+GLIBC_2.12 _mcleanup F
+GLIBC_2.12 _mcount F
+GLIBC_2.12 _nl_default_dirname D 0x12
+GLIBC_2.12 _nl_domain_bindings D 0x4
+GLIBC_2.12 _nl_msg_cat_cntr D 0x4
+GLIBC_2.12 _null_auth D 0xc
+GLIBC_2.12 _obstack_allocated_p F
+GLIBC_2.12 _obstack_begin F
+GLIBC_2.12 _obstack_begin_1 F
+GLIBC_2.12 _obstack_free F
+GLIBC_2.12 _obstack_memory_used F
+GLIBC_2.12 _obstack_newchunk F
+GLIBC_2.12 _res D 0x200
+GLIBC_2.12 _res_hconf D 0x30
+GLIBC_2.12 _rpc_dtablesize F
+GLIBC_2.12 _seterr_reply F
+GLIBC_2.12 _setjmp F
+GLIBC_2.12 _sys_errlist D 0x21c
+GLIBC_2.12 _sys_nerr D 0x4
+GLIBC_2.12 _sys_siglist D 0x104
+GLIBC_2.12 _tolower F
+GLIBC_2.12 _toupper F
+GLIBC_2.12 a64l F
+GLIBC_2.12 abort F
+GLIBC_2.12 abs F
+GLIBC_2.12 accept F
+GLIBC_2.12 accept4 F
+GLIBC_2.12 access F
+GLIBC_2.12 acct F
+GLIBC_2.12 addmntent F
+GLIBC_2.12 addseverity F
+GLIBC_2.12 adjtime F
+GLIBC_2.12 adjtimex F
+GLIBC_2.12 advance F
+GLIBC_2.12 alarm F
+GLIBC_2.12 alphasort F
+GLIBC_2.12 alphasort64 F
+GLIBC_2.12 argp_err_exit_status D 0x4
+GLIBC_2.12 argp_error F
+GLIBC_2.12 argp_failure F
+GLIBC_2.12 argp_help F
+GLIBC_2.12 argp_parse F
+GLIBC_2.12 argp_program_bug_address D 0x4
+GLIBC_2.12 argp_program_version D 0x4
+GLIBC_2.12 argp_program_version_hook D 0x4
+GLIBC_2.12 argp_state_help F
+GLIBC_2.12 argp_usage F
+GLIBC_2.12 argz_add F
+GLIBC_2.12 argz_add_sep F
+GLIBC_2.12 argz_append F
+GLIBC_2.12 argz_count F
+GLIBC_2.12 argz_create F
+GLIBC_2.12 argz_create_sep F
+GLIBC_2.12 argz_delete F
+GLIBC_2.12 argz_extract F
+GLIBC_2.12 argz_insert F
+GLIBC_2.12 argz_next F
+GLIBC_2.12 argz_replace F
+GLIBC_2.12 argz_stringify F
+GLIBC_2.12 asctime F
+GLIBC_2.12 asctime_r F
+GLIBC_2.12 asprintf F
+GLIBC_2.12 atof F
+GLIBC_2.12 atoi F
+GLIBC_2.12 atol F
+GLIBC_2.12 atoll F
+GLIBC_2.12 authdes_create F
+GLIBC_2.12 authdes_getucred F
+GLIBC_2.12 authdes_pk_create F
+GLIBC_2.12 authnone_create F
+GLIBC_2.12 authunix_create F
+GLIBC_2.12 authunix_create_default F
+GLIBC_2.12 backtrace F
+GLIBC_2.12 backtrace_symbols F
+GLIBC_2.12 backtrace_symbols_fd F
+GLIBC_2.12 basename F
+GLIBC_2.12 bcmp F
+GLIBC_2.12 bcopy F
+GLIBC_2.12 bdflush F
+GLIBC_2.12 bind F
+GLIBC_2.12 bind_textdomain_codeset F
+GLIBC_2.12 bindresvport F
+GLIBC_2.12 bindtextdomain F
+GLIBC_2.12 brk F
+GLIBC_2.12 bsd_signal F
+GLIBC_2.12 bsearch F
+GLIBC_2.12 btowc F
+GLIBC_2.12 bzero F
+GLIBC_2.12 cacheflush F
+GLIBC_2.12 calloc F
+GLIBC_2.12 callrpc F
+GLIBC_2.12 canonicalize_file_name F
+GLIBC_2.12 capget F
+GLIBC_2.12 capset F
+GLIBC_2.12 catclose F
+GLIBC_2.12 catgets F
+GLIBC_2.12 catopen F
+GLIBC_2.12 cbc_crypt F
+GLIBC_2.12 cfgetispeed F
+GLIBC_2.12 cfgetospeed F
+GLIBC_2.12 cfmakeraw F
+GLIBC_2.12 cfree F
+GLIBC_2.12 cfsetispeed F
+GLIBC_2.12 cfsetospeed F
+GLIBC_2.12 cfsetspeed F
+GLIBC_2.12 chdir F
+GLIBC_2.12 chflags F
+GLIBC_2.12 chmod F
+GLIBC_2.12 chown F
+GLIBC_2.12 chroot F
+GLIBC_2.12 clearenv F
+GLIBC_2.12 clearerr F
+GLIBC_2.12 clearerr_unlocked F
+GLIBC_2.12 clnt_broadcast F
+GLIBC_2.12 clnt_create F
+GLIBC_2.12 clnt_pcreateerror F
+GLIBC_2.12 clnt_perrno F
+GLIBC_2.12 clnt_perror F
+GLIBC_2.12 clnt_spcreateerror F
+GLIBC_2.12 clnt_sperrno F
+GLIBC_2.12 clnt_sperror F
+GLIBC_2.12 clntraw_create F
+GLIBC_2.12 clnttcp_create F
+GLIBC_2.12 clntudp_bufcreate F
+GLIBC_2.12 clntudp_create F
+GLIBC_2.12 clntunix_create F
+GLIBC_2.12 clock F
+GLIBC_2.12 clone F
+GLIBC_2.12 close F
+GLIBC_2.12 closedir F
+GLIBC_2.12 closelog F
+GLIBC_2.12 confstr F
+GLIBC_2.12 connect F
+GLIBC_2.12 copysign F
+GLIBC_2.12 copysignf F
+GLIBC_2.12 copysignl F
+GLIBC_2.12 creat F
+GLIBC_2.12 creat64 F
+GLIBC_2.12 create_module F
+GLIBC_2.12 ctermid F
+GLIBC_2.12 ctime F
+GLIBC_2.12 ctime_r F
+GLIBC_2.12 cuserid F
+GLIBC_2.12 daemon F
+GLIBC_2.12 daylight D 0x4
+GLIBC_2.12 dcgettext F
+GLIBC_2.12 dcngettext F
+GLIBC_2.12 delete_module F
+GLIBC_2.12 des_setparity F
+GLIBC_2.12 dgettext F
+GLIBC_2.12 difftime F
+GLIBC_2.12 dirfd F
+GLIBC_2.12 dirname F
+GLIBC_2.12 div F
+GLIBC_2.12 dl_iterate_phdr F
+GLIBC_2.12 dngettext F
+GLIBC_2.12 dprintf F
+GLIBC_2.12 drand48 F
+GLIBC_2.12 drand48_r F
+GLIBC_2.12 dup F
+GLIBC_2.12 dup2 F
+GLIBC_2.12 dup3 F
+GLIBC_2.12 duplocale F
+GLIBC_2.12 dysize F
+GLIBC_2.12 eaccess F
+GLIBC_2.12 ecb_crypt F
+GLIBC_2.12 ecvt F
+GLIBC_2.12 ecvt_r F
+GLIBC_2.12 endaliasent F
+GLIBC_2.12 endfsent F
+GLIBC_2.12 endgrent F
+GLIBC_2.12 endhostent F
+GLIBC_2.12 endmntent F
+GLIBC_2.12 endnetent F
+GLIBC_2.12 endnetgrent F
+GLIBC_2.12 endprotoent F
+GLIBC_2.12 endpwent F
+GLIBC_2.12 endrpcent F
+GLIBC_2.12 endservent F
+GLIBC_2.12 endsgent F
+GLIBC_2.12 endspent F
+GLIBC_2.12 endttyent F
+GLIBC_2.12 endusershell F
+GLIBC_2.12 endutent F
+GLIBC_2.12 endutxent F
+GLIBC_2.12 environ D 0x4
+GLIBC_2.12 envz_add F
+GLIBC_2.12 envz_entry F
+GLIBC_2.12 envz_get F
+GLIBC_2.12 envz_merge F
+GLIBC_2.12 envz_remove F
+GLIBC_2.12 envz_strip F
+GLIBC_2.12 epoll_create F
+GLIBC_2.12 epoll_create1 F
+GLIBC_2.12 epoll_ctl F
+GLIBC_2.12 epoll_pwait F
+GLIBC_2.12 epoll_wait F
+GLIBC_2.12 erand48 F
+GLIBC_2.12 erand48_r F
+GLIBC_2.12 err F
+GLIBC_2.12 error F
+GLIBC_2.12 error_at_line F
+GLIBC_2.12 error_message_count D 0x4
+GLIBC_2.12 error_one_per_line D 0x4
+GLIBC_2.12 error_print_progname D 0x4
+GLIBC_2.12 errx F
+GLIBC_2.12 ether_aton F
+GLIBC_2.12 ether_aton_r F
+GLIBC_2.12 ether_hostton F
+GLIBC_2.12 ether_line F
+GLIBC_2.12 ether_ntoa F
+GLIBC_2.12 ether_ntoa_r F
+GLIBC_2.12 ether_ntohost F
+GLIBC_2.12 euidaccess F
+GLIBC_2.12 eventfd F
+GLIBC_2.12 eventfd_read F
+GLIBC_2.12 eventfd_write F
+GLIBC_2.12 execl F
+GLIBC_2.12 execle F
+GLIBC_2.12 execlp F
+GLIBC_2.12 execv F
+GLIBC_2.12 execve F
+GLIBC_2.12 execvp F
+GLIBC_2.12 execvpe F
+GLIBC_2.12 exit F
+GLIBC_2.12 faccessat F
+GLIBC_2.12 fallocate F
+GLIBC_2.12 fallocate64 F
+GLIBC_2.12 fattach F
+GLIBC_2.12 fchdir F
+GLIBC_2.12 fchflags F
+GLIBC_2.12 fchmod F
+GLIBC_2.12 fchmodat F
+GLIBC_2.12 fchown F
+GLIBC_2.12 fchownat F
+GLIBC_2.12 fclose F
+GLIBC_2.12 fcloseall F
+GLIBC_2.12 fcntl F
+GLIBC_2.12 fcvt F
+GLIBC_2.12 fcvt_r F
+GLIBC_2.12 fdatasync F
+GLIBC_2.12 fdetach F
+GLIBC_2.12 fdopen F
+GLIBC_2.12 fdopendir F
+GLIBC_2.12 feof F
+GLIBC_2.12 feof_unlocked F
+GLIBC_2.12 ferror F
+GLIBC_2.12 ferror_unlocked F
+GLIBC_2.12 fexecve F
+GLIBC_2.12 fflush F
+GLIBC_2.12 fflush_unlocked F
+GLIBC_2.12 ffs F
+GLIBC_2.12 ffsl F
+GLIBC_2.12 ffsll F
+GLIBC_2.12 fgetc F
+GLIBC_2.12 fgetc_unlocked F
+GLIBC_2.12 fgetgrent F
+GLIBC_2.12 fgetgrent_r F
+GLIBC_2.12 fgetpos F
+GLIBC_2.12 fgetpos64 F
+GLIBC_2.12 fgetpwent F
+GLIBC_2.12 fgetpwent_r F
+GLIBC_2.12 fgets F
+GLIBC_2.12 fgets_unlocked F
+GLIBC_2.12 fgetsgent F
+GLIBC_2.12 fgetsgent_r F
+GLIBC_2.12 fgetspent F
+GLIBC_2.12 fgetspent_r F
+GLIBC_2.12 fgetwc F
+GLIBC_2.12 fgetwc_unlocked F
+GLIBC_2.12 fgetws F
+GLIBC_2.12 fgetws_unlocked F
+GLIBC_2.12 fgetxattr F
+GLIBC_2.12 fileno F
+GLIBC_2.12 fileno_unlocked F
+GLIBC_2.12 finite F
+GLIBC_2.12 finitef F
+GLIBC_2.12 finitel F
+GLIBC_2.12 flistxattr F
+GLIBC_2.12 flock F
+GLIBC_2.12 flockfile F
+GLIBC_2.12 fmemopen F
+GLIBC_2.12 fmtmsg F
+GLIBC_2.12 fnmatch F
+GLIBC_2.12 fopen F
+GLIBC_2.12 fopen64 F
+GLIBC_2.12 fopencookie F
+GLIBC_2.12 fork F
+GLIBC_2.12 fpathconf F
+GLIBC_2.12 fprintf F
+GLIBC_2.12 fputc F
+GLIBC_2.12 fputc_unlocked F
+GLIBC_2.12 fputs F
+GLIBC_2.12 fputs_unlocked F
+GLIBC_2.12 fputwc F
+GLIBC_2.12 fputwc_unlocked F
+GLIBC_2.12 fputws F
+GLIBC_2.12 fputws_unlocked F
+GLIBC_2.12 fread F
+GLIBC_2.12 fread_unlocked F
+GLIBC_2.12 free F
+GLIBC_2.12 freeaddrinfo F
+GLIBC_2.12 freeifaddrs F
+GLIBC_2.12 freelocale F
+GLIBC_2.12 fremovexattr F
+GLIBC_2.12 freopen F
+GLIBC_2.12 freopen64 F
+GLIBC_2.12 frexp F
+GLIBC_2.12 frexpf F
+GLIBC_2.12 frexpl F
+GLIBC_2.12 fscanf F
+GLIBC_2.12 fseek F
+GLIBC_2.12 fseeko F
+GLIBC_2.12 fseeko64 F
+GLIBC_2.12 fsetpos F
+GLIBC_2.12 fsetpos64 F
+GLIBC_2.12 fsetxattr F
+GLIBC_2.12 fstatfs F
+GLIBC_2.12 fstatfs64 F
+GLIBC_2.12 fstatvfs F
+GLIBC_2.12 fstatvfs64 F
+GLIBC_2.12 fsync F
+GLIBC_2.12 ftell F
+GLIBC_2.12 ftello F
+GLIBC_2.12 ftello64 F
+GLIBC_2.12 ftime F
+GLIBC_2.12 ftok F
+GLIBC_2.12 ftruncate F
+GLIBC_2.12 ftruncate64 F
+GLIBC_2.12 ftrylockfile F
+GLIBC_2.12 fts_children F
+GLIBC_2.12 fts_close F
+GLIBC_2.12 fts_open F
+GLIBC_2.12 fts_read F
+GLIBC_2.12 fts_set F
+GLIBC_2.12 ftw F
+GLIBC_2.12 ftw64 F
+GLIBC_2.12 funlockfile F
+GLIBC_2.12 futimens F
+GLIBC_2.12 futimes F
+GLIBC_2.12 futimesat F
+GLIBC_2.12 fwide F
+GLIBC_2.12 fwprintf F
+GLIBC_2.12 fwrite F
+GLIBC_2.12 fwrite_unlocked F
+GLIBC_2.12 fwscanf F
+GLIBC_2.12 gai_strerror F
+GLIBC_2.12 gcvt F
+GLIBC_2.12 get_avphys_pages F
+GLIBC_2.12 get_current_dir_name F
+GLIBC_2.12 get_kernel_syms F
+GLIBC_2.12 get_myaddress F
+GLIBC_2.12 get_nprocs F
+GLIBC_2.12 get_nprocs_conf F
+GLIBC_2.12 get_phys_pages F
+GLIBC_2.12 getaddrinfo F
+GLIBC_2.12 getaliasbyname F
+GLIBC_2.12 getaliasbyname_r F
+GLIBC_2.12 getaliasent F
+GLIBC_2.12 getaliasent_r F
+GLIBC_2.12 getc F
+GLIBC_2.12 getc_unlocked F
+GLIBC_2.12 getchar F
+GLIBC_2.12 getchar_unlocked F
+GLIBC_2.12 getcontext F
+GLIBC_2.12 getcwd F
+GLIBC_2.12 getdate F
+GLIBC_2.12 getdate_err D 0x4
+GLIBC_2.12 getdate_r F
+GLIBC_2.12 getdelim F
+GLIBC_2.12 getdirentries F
+GLIBC_2.12 getdirentries64 F
+GLIBC_2.12 getdomainname F
+GLIBC_2.12 getdtablesize F
+GLIBC_2.12 getegid F
+GLIBC_2.12 getenv F
+GLIBC_2.12 geteuid F
+GLIBC_2.12 getfsent F
+GLIBC_2.12 getfsfile F
+GLIBC_2.12 getfsspec F
+GLIBC_2.12 getgid F
+GLIBC_2.12 getgrent F
+GLIBC_2.12 getgrent_r F
+GLIBC_2.12 getgrgid F
+GLIBC_2.12 getgrgid_r F
+GLIBC_2.12 getgrnam F
+GLIBC_2.12 getgrnam_r F
+GLIBC_2.12 getgrouplist F
+GLIBC_2.12 getgroups F
+GLIBC_2.12 gethostbyaddr F
+GLIBC_2.12 gethostbyaddr_r F
+GLIBC_2.12 gethostbyname F
+GLIBC_2.12 gethostbyname2 F
+GLIBC_2.12 gethostbyname2_r F
+GLIBC_2.12 gethostbyname_r F
+GLIBC_2.12 gethostent F
+GLIBC_2.12 gethostent_r F
+GLIBC_2.12 gethostid F
+GLIBC_2.12 gethostname F
+GLIBC_2.12 getifaddrs F
+GLIBC_2.12 getipv4sourcefilter F
+GLIBC_2.12 getitimer F
+GLIBC_2.12 getline F
+GLIBC_2.12 getloadavg F
+GLIBC_2.12 getlogin F
+GLIBC_2.12 getlogin_r F
+GLIBC_2.12 getmntent F
+GLIBC_2.12 getmntent_r F
+GLIBC_2.12 getmsg F
+GLIBC_2.12 getnameinfo F
+GLIBC_2.12 getnetbyaddr F
+GLIBC_2.12 getnetbyaddr_r F
+GLIBC_2.12 getnetbyname F
+GLIBC_2.12 getnetbyname_r F
+GLIBC_2.12 getnetent F
+GLIBC_2.12 getnetent_r F
+GLIBC_2.12 getnetgrent F
+GLIBC_2.12 getnetgrent_r F
+GLIBC_2.12 getnetname F
+GLIBC_2.12 getopt F
+GLIBC_2.12 getopt_long F
+GLIBC_2.12 getopt_long_only F
+GLIBC_2.12 getpagesize F
+GLIBC_2.12 getpass F
+GLIBC_2.12 getpeername F
+GLIBC_2.12 getpgid F
+GLIBC_2.12 getpgrp F
+GLIBC_2.12 getpid F
+GLIBC_2.12 getpmsg F
+GLIBC_2.12 getppid F
+GLIBC_2.12 getpriority F
+GLIBC_2.12 getprotobyname F
+GLIBC_2.12 getprotobyname_r F
+GLIBC_2.12 getprotobynumber F
+GLIBC_2.12 getprotobynumber_r F
+GLIBC_2.12 getprotoent F
+GLIBC_2.12 getprotoent_r F
+GLIBC_2.12 getpt F
+GLIBC_2.12 getpublickey F
+GLIBC_2.12 getpw F
+GLIBC_2.12 getpwent F
+GLIBC_2.12 getpwent_r F
+GLIBC_2.12 getpwnam F
+GLIBC_2.12 getpwnam_r F
+GLIBC_2.12 getpwuid F
+GLIBC_2.12 getpwuid_r F
+GLIBC_2.12 getresgid F
+GLIBC_2.12 getresuid F
+GLIBC_2.12 getrlimit F
+GLIBC_2.12 getrlimit64 F
+GLIBC_2.12 getrpcbyname F
+GLIBC_2.12 getrpcbyname_r F
+GLIBC_2.12 getrpcbynumber F
+GLIBC_2.12 getrpcbynumber_r F
+GLIBC_2.12 getrpcent F
+GLIBC_2.12 getrpcent_r F
+GLIBC_2.12 getrpcport F
+GLIBC_2.12 getrusage F
+GLIBC_2.12 gets F
+GLIBC_2.12 getsecretkey F
+GLIBC_2.12 getservbyname F
+GLIBC_2.12 getservbyname_r F
+GLIBC_2.12 getservbyport F
+GLIBC_2.12 getservbyport_r F
+GLIBC_2.12 getservent F
+GLIBC_2.12 getservent_r F
+GLIBC_2.12 getsgent F
+GLIBC_2.12 getsgent_r F
+GLIBC_2.12 getsgnam F
+GLIBC_2.12 getsgnam_r F
+GLIBC_2.12 getsid F
+GLIBC_2.12 getsockname F
+GLIBC_2.12 getsockopt F
+GLIBC_2.12 getsourcefilter F
+GLIBC_2.12 getspent F
+GLIBC_2.12 getspent_r F
+GLIBC_2.12 getspnam F
+GLIBC_2.12 getspnam_r F
+GLIBC_2.12 getsubopt F
+GLIBC_2.12 gettext F
+GLIBC_2.12 gettimeofday F
+GLIBC_2.12 getttyent F
+GLIBC_2.12 getttynam F
+GLIBC_2.12 getuid F
+GLIBC_2.12 getusershell F
+GLIBC_2.12 getutent F
+GLIBC_2.12 getutent_r F
+GLIBC_2.12 getutid F
+GLIBC_2.12 getutid_r F
+GLIBC_2.12 getutline F
+GLIBC_2.12 getutline_r F
+GLIBC_2.12 getutmp F
+GLIBC_2.12 getutmpx F
+GLIBC_2.12 getutxent F
+GLIBC_2.12 getutxid F
+GLIBC_2.12 getutxline F
+GLIBC_2.12 getw F
+GLIBC_2.12 getwc F
+GLIBC_2.12 getwc_unlocked F
+GLIBC_2.12 getwchar F
+GLIBC_2.12 getwchar_unlocked F
+GLIBC_2.12 getwd F
+GLIBC_2.12 getxattr F
+GLIBC_2.12 glob F
+GLIBC_2.12 glob64 F
+GLIBC_2.12 glob_pattern_p F
+GLIBC_2.12 globfree F
+GLIBC_2.12 globfree64 F
+GLIBC_2.12 gmtime F
+GLIBC_2.12 gmtime_r F
+GLIBC_2.12 gnu_dev_major F
+GLIBC_2.12 gnu_dev_makedev F
+GLIBC_2.12 gnu_dev_minor F
+GLIBC_2.12 gnu_get_libc_release F
+GLIBC_2.12 gnu_get_libc_version F
+GLIBC_2.12 grantpt F
+GLIBC_2.12 group_member F
+GLIBC_2.12 gsignal F
+GLIBC_2.12 gtty F
+GLIBC_2.12 h_errlist D 0x14
+GLIBC_2.12 h_nerr D 0x4
+GLIBC_2.12 hasmntopt F
+GLIBC_2.12 hcreate F
+GLIBC_2.12 hcreate_r F
+GLIBC_2.12 hdestroy F
+GLIBC_2.12 hdestroy_r F
+GLIBC_2.12 herror F
+GLIBC_2.12 host2netname F
+GLIBC_2.12 hsearch F
+GLIBC_2.12 hsearch_r F
+GLIBC_2.12 hstrerror F
+GLIBC_2.12 htonl F
+GLIBC_2.12 htons F
+GLIBC_2.12 iconv F
+GLIBC_2.12 iconv_close F
+GLIBC_2.12 iconv_open F
+GLIBC_2.12 if_freenameindex F
+GLIBC_2.12 if_indextoname F
+GLIBC_2.12 if_nameindex F
+GLIBC_2.12 if_nametoindex F
+GLIBC_2.12 imaxabs F
+GLIBC_2.12 imaxdiv F
+GLIBC_2.12 in6addr_any D 0x10
+GLIBC_2.12 in6addr_loopback D 0x10
+GLIBC_2.12 index F
+GLIBC_2.12 inet6_opt_append F
+GLIBC_2.12 inet6_opt_find F
+GLIBC_2.12 inet6_opt_finish F
+GLIBC_2.12 inet6_opt_get_val F
+GLIBC_2.12 inet6_opt_init F
+GLIBC_2.12 inet6_opt_next F
+GLIBC_2.12 inet6_opt_set_val F
+GLIBC_2.12 inet6_option_alloc F
+GLIBC_2.12 inet6_option_append F
+GLIBC_2.12 inet6_option_find F
+GLIBC_2.12 inet6_option_init F
+GLIBC_2.12 inet6_option_next F
+GLIBC_2.12 inet6_option_space F
+GLIBC_2.12 inet6_rth_add F
+GLIBC_2.12 inet6_rth_getaddr F
+GLIBC_2.12 inet6_rth_init F
+GLIBC_2.12 inet6_rth_reverse F
+GLIBC_2.12 inet6_rth_segments F
+GLIBC_2.12 inet6_rth_space F
+GLIBC_2.12 inet_addr F
+GLIBC_2.12 inet_aton F
+GLIBC_2.12 inet_lnaof F
+GLIBC_2.12 inet_makeaddr F
+GLIBC_2.12 inet_netof F
+GLIBC_2.12 inet_network F
+GLIBC_2.12 inet_nsap_addr F
+GLIBC_2.12 inet_nsap_ntoa F
+GLIBC_2.12 inet_ntoa F
+GLIBC_2.12 inet_ntop F
+GLIBC_2.12 inet_pton F
+GLIBC_2.12 init_module F
+GLIBC_2.12 initgroups F
+GLIBC_2.12 initstate F
+GLIBC_2.12 initstate_r F
+GLIBC_2.12 innetgr F
+GLIBC_2.12 inotify_add_watch F
+GLIBC_2.12 inotify_init F
+GLIBC_2.12 inotify_init1 F
+GLIBC_2.12 inotify_rm_watch F
+GLIBC_2.12 insque F
+GLIBC_2.12 ioctl F
+GLIBC_2.12 iruserok F
+GLIBC_2.12 iruserok_af F
+GLIBC_2.12 isalnum F
+GLIBC_2.12 isalnum_l F
+GLIBC_2.12 isalpha F
+GLIBC_2.12 isalpha_l F
+GLIBC_2.12 isascii F
+GLIBC_2.12 isastream F
+GLIBC_2.12 isatty F
+GLIBC_2.12 isblank F
+GLIBC_2.12 isblank_l F
+GLIBC_2.12 iscntrl F
+GLIBC_2.12 iscntrl_l F
+GLIBC_2.12 isctype F
+GLIBC_2.12 isdigit F
+GLIBC_2.12 isdigit_l F
+GLIBC_2.12 isfdtype F
+GLIBC_2.12 isgraph F
+GLIBC_2.12 isgraph_l F
+GLIBC_2.12 isinf F
+GLIBC_2.12 isinff F
+GLIBC_2.12 isinfl F
+GLIBC_2.12 islower F
+GLIBC_2.12 islower_l F
+GLIBC_2.12 isnan F
+GLIBC_2.12 isnanf F
+GLIBC_2.12 isnanl F
+GLIBC_2.12 isprint F
+GLIBC_2.12 isprint_l F
+GLIBC_2.12 ispunct F
+GLIBC_2.12 ispunct_l F
+GLIBC_2.12 isspace F
+GLIBC_2.12 isspace_l F
+GLIBC_2.12 isupper F
+GLIBC_2.12 isupper_l F
+GLIBC_2.12 iswalnum F
+GLIBC_2.12 iswalnum_l F
+GLIBC_2.12 iswalpha F
+GLIBC_2.12 iswalpha_l F
+GLIBC_2.12 iswblank F
+GLIBC_2.12 iswblank_l F
+GLIBC_2.12 iswcntrl F
+GLIBC_2.12 iswcntrl_l F
+GLIBC_2.12 iswctype F
+GLIBC_2.12 iswctype_l F
+GLIBC_2.12 iswdigit F
+GLIBC_2.12 iswdigit_l F
+GLIBC_2.12 iswgraph F
+GLIBC_2.12 iswgraph_l F
+GLIBC_2.12 iswlower F
+GLIBC_2.12 iswlower_l F
+GLIBC_2.12 iswprint F
+GLIBC_2.12 iswprint_l F
+GLIBC_2.12 iswpunct F
+GLIBC_2.12 iswpunct_l F
+GLIBC_2.12 iswspace F
+GLIBC_2.12 iswspace_l F
+GLIBC_2.12 iswupper F
+GLIBC_2.12 iswupper_l F
+GLIBC_2.12 iswxdigit F
+GLIBC_2.12 iswxdigit_l F
+GLIBC_2.12 isxdigit F
+GLIBC_2.12 isxdigit_l F
+GLIBC_2.12 jrand48 F
+GLIBC_2.12 jrand48_r F
+GLIBC_2.12 key_decryptsession F
+GLIBC_2.12 key_decryptsession_pk F
+GLIBC_2.12 key_encryptsession F
+GLIBC_2.12 key_encryptsession_pk F
+GLIBC_2.12 key_gendes F
+GLIBC_2.12 key_get_conv F
+GLIBC_2.12 key_secretkey_is_set F
+GLIBC_2.12 key_setnet F
+GLIBC_2.12 key_setsecret F
+GLIBC_2.12 kill F
+GLIBC_2.12 killpg F
+GLIBC_2.12 klogctl F
+GLIBC_2.12 l64a F
+GLIBC_2.12 labs F
+GLIBC_2.12 lchmod F
+GLIBC_2.12 lchown F
+GLIBC_2.12 lckpwdf F
+GLIBC_2.12 lcong48 F
+GLIBC_2.12 lcong48_r F
+GLIBC_2.12 ldexp F
+GLIBC_2.12 ldexpf F
+GLIBC_2.12 ldexpl F
+GLIBC_2.12 ldiv F
+GLIBC_2.12 lfind F
+GLIBC_2.12 lgetxattr F
+GLIBC_2.12 link F
+GLIBC_2.12 linkat F
+GLIBC_2.12 listen F
+GLIBC_2.12 listxattr F
+GLIBC_2.12 llabs F
+GLIBC_2.12 lldiv F
+GLIBC_2.12 llistxattr F
+GLIBC_2.12 llseek F
+GLIBC_2.12 loc1 D 0x4
+GLIBC_2.12 loc2 D 0x4
+GLIBC_2.12 localeconv F
+GLIBC_2.12 localtime F
+GLIBC_2.12 localtime_r F
+GLIBC_2.12 lockf F
+GLIBC_2.12 lockf64 F
+GLIBC_2.12 locs D 0x4
+GLIBC_2.12 longjmp F
+GLIBC_2.12 lrand48 F
+GLIBC_2.12 lrand48_r F
+GLIBC_2.12 lremovexattr F
+GLIBC_2.12 lsearch F
+GLIBC_2.12 lseek F
+GLIBC_2.12 lseek64 F
+GLIBC_2.12 lsetxattr F
+GLIBC_2.12 lutimes F
+GLIBC_2.12 madvise F
+GLIBC_2.12 makecontext F
+GLIBC_2.12 mallinfo F
+GLIBC_2.12 malloc F
+GLIBC_2.12 malloc_get_state F
+GLIBC_2.12 malloc_info F
+GLIBC_2.12 malloc_set_state F
+GLIBC_2.12 malloc_stats F
+GLIBC_2.12 malloc_trim F
+GLIBC_2.12 malloc_usable_size F
+GLIBC_2.12 mallopt F
+GLIBC_2.12 mallwatch D 0x4
+GLIBC_2.12 mblen F
+GLIBC_2.12 mbrlen F
+GLIBC_2.12 mbrtowc F
+GLIBC_2.12 mbsinit F
+GLIBC_2.12 mbsnrtowcs F
+GLIBC_2.12 mbsrtowcs F
+GLIBC_2.12 mbstowcs F
+GLIBC_2.12 mbtowc F
+GLIBC_2.12 mcheck F
+GLIBC_2.12 mcheck_check_all F
+GLIBC_2.12 mcheck_pedantic F
+GLIBC_2.12 mcount F
+GLIBC_2.12 memalign F
+GLIBC_2.12 memccpy F
+GLIBC_2.12 memchr F
+GLIBC_2.12 memcmp F
+GLIBC_2.12 memcpy F
+GLIBC_2.12 memfrob F
+GLIBC_2.12 memmem F
+GLIBC_2.12 memmove F
+GLIBC_2.12 mempcpy F
+GLIBC_2.12 memrchr F
+GLIBC_2.12 memset F
+GLIBC_2.12 mincore F
+GLIBC_2.12 mkdir F
+GLIBC_2.12 mkdirat F
+GLIBC_2.12 mkdtemp F
+GLIBC_2.12 mkfifo F
+GLIBC_2.12 mkfifoat F
+GLIBC_2.12 mkostemp F
+GLIBC_2.12 mkostemp64 F
+GLIBC_2.12 mkostemps F
+GLIBC_2.12 mkostemps64 F
+GLIBC_2.12 mkstemp F
+GLIBC_2.12 mkstemp64 F
+GLIBC_2.12 mkstemps F
+GLIBC_2.12 mkstemps64 F
+GLIBC_2.12 mktemp F
+GLIBC_2.12 mktime F
+GLIBC_2.12 mlock F
+GLIBC_2.12 mlockall F
+GLIBC_2.12 mmap F
+GLIBC_2.12 mmap64 F
+GLIBC_2.12 modf F
+GLIBC_2.12 modff F
+GLIBC_2.12 modfl F
+GLIBC_2.12 moncontrol F
+GLIBC_2.12 monstartup F
+GLIBC_2.12 mount F
+GLIBC_2.12 mprobe F
+GLIBC_2.12 mprotect F
+GLIBC_2.12 mrand48 F
+GLIBC_2.12 mrand48_r F
+GLIBC_2.12 mremap F
+GLIBC_2.12 msgctl F
+GLIBC_2.12 msgget F
+GLIBC_2.12 msgrcv F
+GLIBC_2.12 msgsnd F
+GLIBC_2.12 msync F
+GLIBC_2.12 mtrace F
+GLIBC_2.12 munlock F
+GLIBC_2.12 munlockall F
+GLIBC_2.12 munmap F
+GLIBC_2.12 muntrace F
+GLIBC_2.12 nanosleep F
+GLIBC_2.12 netname2host F
+GLIBC_2.12 netname2user F
+GLIBC_2.12 newlocale F
+GLIBC_2.12 nfsservctl F
+GLIBC_2.12 nftw F
+GLIBC_2.12 nftw64 F
+GLIBC_2.12 ngettext F
+GLIBC_2.12 nice F
+GLIBC_2.12 nl_langinfo F
+GLIBC_2.12 nl_langinfo_l F
+GLIBC_2.12 nrand48 F
+GLIBC_2.12 nrand48_r F
+GLIBC_2.12 ntohl F
+GLIBC_2.12 ntohs F
+GLIBC_2.12 ntp_adjtime F
+GLIBC_2.12 ntp_gettime F
+GLIBC_2.12 ntp_gettimex F
+GLIBC_2.12 obstack_alloc_failed_handler D 0x4
+GLIBC_2.12 obstack_exit_failure D 0x4
+GLIBC_2.12 obstack_free F
+GLIBC_2.12 obstack_printf F
+GLIBC_2.12 obstack_vprintf F
+GLIBC_2.12 on_exit F
+GLIBC_2.12 open F
+GLIBC_2.12 open64 F
+GLIBC_2.12 open_memstream F
+GLIBC_2.12 open_wmemstream F
+GLIBC_2.12 openat F
+GLIBC_2.12 openat64 F
+GLIBC_2.12 opendir F
+GLIBC_2.12 openlog F
+GLIBC_2.12 optarg D 0x4
+GLIBC_2.12 opterr D 0x4
+GLIBC_2.12 optind D 0x4
+GLIBC_2.12 optopt D 0x4
+GLIBC_2.12 parse_printf_format F
+GLIBC_2.12 passwd2des F
+GLIBC_2.12 pathconf F
+GLIBC_2.12 pause F
+GLIBC_2.12 pclose F
+GLIBC_2.12 perror F
+GLIBC_2.12 personality F
+GLIBC_2.12 pipe F
+GLIBC_2.12 pipe2 F
+GLIBC_2.12 pivot_root F
+GLIBC_2.12 pmap_getmaps F
+GLIBC_2.12 pmap_getport F
+GLIBC_2.12 pmap_rmtcall F
+GLIBC_2.12 pmap_set F
+GLIBC_2.12 pmap_unset F
+GLIBC_2.12 poll F
+GLIBC_2.12 popen F
+GLIBC_2.12 posix_fadvise F
+GLIBC_2.12 posix_fadvise64 F
+GLIBC_2.12 posix_fallocate F
+GLIBC_2.12 posix_fallocate64 F
+GLIBC_2.12 posix_madvise F
+GLIBC_2.12 posix_memalign F
+GLIBC_2.12 posix_openpt F
+GLIBC_2.12 posix_spawn F
+GLIBC_2.12 posix_spawn_file_actions_addclose F
+GLIBC_2.12 posix_spawn_file_actions_adddup2 F
+GLIBC_2.12 posix_spawn_file_actions_addopen F
+GLIBC_2.12 posix_spawn_file_actions_destroy F
+GLIBC_2.12 posix_spawn_file_actions_init F
+GLIBC_2.12 posix_spawnattr_destroy F
+GLIBC_2.12 posix_spawnattr_getflags F
+GLIBC_2.12 posix_spawnattr_getpgroup F
+GLIBC_2.12 posix_spawnattr_getschedparam F
+GLIBC_2.12 posix_spawnattr_getschedpolicy F
+GLIBC_2.12 posix_spawnattr_getsigdefault F
+GLIBC_2.12 posix_spawnattr_getsigmask F
+GLIBC_2.12 posix_spawnattr_init F
+GLIBC_2.12 posix_spawnattr_setflags F
+GLIBC_2.12 posix_spawnattr_setpgroup F
+GLIBC_2.12 posix_spawnattr_setschedparam F
+GLIBC_2.12 posix_spawnattr_setschedpolicy F
+GLIBC_2.12 posix_spawnattr_setsigdefault F
+GLIBC_2.12 posix_spawnattr_setsigmask F
+GLIBC_2.12 posix_spawnp F
+GLIBC_2.12 ppoll F
+GLIBC_2.12 prctl F
+GLIBC_2.12 pread F
+GLIBC_2.12 pread64 F
+GLIBC_2.12 preadv F
+GLIBC_2.12 preadv64 F
+GLIBC_2.12 printf F
+GLIBC_2.12 printf_size F
+GLIBC_2.12 printf_size_info F
+GLIBC_2.12 profil F
+GLIBC_2.12 program_invocation_name D 0x4
+GLIBC_2.12 program_invocation_short_name D 0x4
+GLIBC_2.12 pselect F
+GLIBC_2.12 psiginfo F
+GLIBC_2.12 psignal F
+GLIBC_2.12 pthread_attr_destroy F
+GLIBC_2.12 pthread_attr_getdetachstate F
+GLIBC_2.12 pthread_attr_getinheritsched F
+GLIBC_2.12 pthread_attr_getschedparam F
+GLIBC_2.12 pthread_attr_getschedpolicy F
+GLIBC_2.12 pthread_attr_getscope F
+GLIBC_2.12 pthread_attr_init F
+GLIBC_2.12 pthread_attr_setdetachstate F
+GLIBC_2.12 pthread_attr_setinheritsched F
+GLIBC_2.12 pthread_attr_setschedparam F
+GLIBC_2.12 pthread_attr_setschedpolicy F
+GLIBC_2.12 pthread_attr_setscope F
+GLIBC_2.12 pthread_cond_broadcast F
+GLIBC_2.12 pthread_cond_destroy F
+GLIBC_2.12 pthread_cond_init F
+GLIBC_2.12 pthread_cond_signal F
+GLIBC_2.12 pthread_cond_timedwait F
+GLIBC_2.12 pthread_cond_wait F
+GLIBC_2.12 pthread_condattr_destroy F
+GLIBC_2.12 pthread_condattr_init F
+GLIBC_2.12 pthread_equal F
+GLIBC_2.12 pthread_exit F
+GLIBC_2.12 pthread_getschedparam F
+GLIBC_2.12 pthread_mutex_destroy F
+GLIBC_2.12 pthread_mutex_init F
+GLIBC_2.12 pthread_mutex_lock F
+GLIBC_2.12 pthread_mutex_unlock F
+GLIBC_2.12 pthread_self F
+GLIBC_2.12 pthread_setcancelstate F
+GLIBC_2.12 pthread_setcanceltype F
+GLIBC_2.12 pthread_setschedparam F
+GLIBC_2.12 ptrace F
+GLIBC_2.12 ptsname F
+GLIBC_2.12 ptsname_r F
+GLIBC_2.12 putc F
+GLIBC_2.12 putc_unlocked F
+GLIBC_2.12 putchar F
+GLIBC_2.12 putchar_unlocked F
+GLIBC_2.12 putenv F
+GLIBC_2.12 putgrent F
+GLIBC_2.12 putmsg F
+GLIBC_2.12 putpmsg F
+GLIBC_2.12 putpwent F
+GLIBC_2.12 puts F
+GLIBC_2.12 putsgent F
+GLIBC_2.12 putspent F
+GLIBC_2.12 pututline F
+GLIBC_2.12 pututxline F
+GLIBC_2.12 putw F
+GLIBC_2.12 putwc F
+GLIBC_2.12 putwc_unlocked F
+GLIBC_2.12 putwchar F
+GLIBC_2.12 putwchar_unlocked F
+GLIBC_2.12 pvalloc F
+GLIBC_2.12 pwrite F
+GLIBC_2.12 pwrite64 F
+GLIBC_2.12 pwritev F
+GLIBC_2.12 pwritev64 F
+GLIBC_2.12 qecvt F
+GLIBC_2.12 qecvt_r F
+GLIBC_2.12 qfcvt F
+GLIBC_2.12 qfcvt_r F
+GLIBC_2.12 qgcvt F
+GLIBC_2.12 qsort F
+GLIBC_2.12 qsort_r F
+GLIBC_2.12 query_module F
+GLIBC_2.12 quick_exit F
+GLIBC_2.12 quotactl F
+GLIBC_2.12 raise F
+GLIBC_2.12 rand F
+GLIBC_2.12 rand_r F
+GLIBC_2.12 random F
+GLIBC_2.12 random_r F
+GLIBC_2.12 rawmemchr F
+GLIBC_2.12 rcmd F
+GLIBC_2.12 rcmd_af F
+GLIBC_2.12 re_comp F
+GLIBC_2.12 re_compile_fastmap F
+GLIBC_2.12 re_compile_pattern F
+GLIBC_2.12 re_exec F
+GLIBC_2.12 re_match F
+GLIBC_2.12 re_match_2 F
+GLIBC_2.12 re_search F
+GLIBC_2.12 re_search_2 F
+GLIBC_2.12 re_set_registers F
+GLIBC_2.12 re_set_syntax F
+GLIBC_2.12 re_syntax_options D 0x4
+GLIBC_2.12 read F
+GLIBC_2.12 readahead F
+GLIBC_2.12 readdir F
+GLIBC_2.12 readdir64 F
+GLIBC_2.12 readdir64_r F
+GLIBC_2.12 readdir_r F
+GLIBC_2.12 readlink F
+GLIBC_2.12 readlinkat F
+GLIBC_2.12 readv F
+GLIBC_2.12 realloc F
+GLIBC_2.12 realpath F
+GLIBC_2.12 reboot F
+GLIBC_2.12 recv F
+GLIBC_2.12 recvfrom F
+GLIBC_2.12 recvmmsg F
+GLIBC_2.12 recvmsg F
+GLIBC_2.12 regcomp F
+GLIBC_2.12 regerror F
+GLIBC_2.12 regexec F
+GLIBC_2.12 regfree F
+GLIBC_2.12 register_printf_function F
+GLIBC_2.12 register_printf_modifier F
+GLIBC_2.12 register_printf_specifier F
+GLIBC_2.12 register_printf_type F
+GLIBC_2.12 registerrpc F
+GLIBC_2.12 remap_file_pages F
+GLIBC_2.12 remove F
+GLIBC_2.12 removexattr F
+GLIBC_2.12 remque F
+GLIBC_2.12 rename F
+GLIBC_2.12 renameat F
+GLIBC_2.12 revoke F
+GLIBC_2.12 rewind F
+GLIBC_2.12 rewinddir F
+GLIBC_2.12 rexec F
+GLIBC_2.12 rexec_af F
+GLIBC_2.12 rexecoptions D 0x4
+GLIBC_2.12 rindex F
+GLIBC_2.12 rmdir F
+GLIBC_2.12 rpc_createerr D 0x10
+GLIBC_2.12 rpmatch F
+GLIBC_2.12 rresvport F
+GLIBC_2.12 rresvport_af F
+GLIBC_2.12 rtime F
+GLIBC_2.12 ruserok F
+GLIBC_2.12 ruserok_af F
+GLIBC_2.12 ruserpass F
+GLIBC_2.12 sbrk F
+GLIBC_2.12 scalbn F
+GLIBC_2.12 scalbnf F
+GLIBC_2.12 scalbnl F
+GLIBC_2.12 scandir F
+GLIBC_2.12 scandir64 F
+GLIBC_2.12 scanf F
+GLIBC_2.12 sched_get_priority_max F
+GLIBC_2.12 sched_get_priority_min F
+GLIBC_2.12 sched_getaffinity F
+GLIBC_2.12 sched_getcpu F
+GLIBC_2.12 sched_getparam F
+GLIBC_2.12 sched_getscheduler F
+GLIBC_2.12 sched_rr_get_interval F
+GLIBC_2.12 sched_setaffinity F
+GLIBC_2.12 sched_setparam F
+GLIBC_2.12 sched_setscheduler F
+GLIBC_2.12 sched_yield F
+GLIBC_2.12 seed48 F
+GLIBC_2.12 seed48_r F
+GLIBC_2.12 seekdir F
+GLIBC_2.12 select F
+GLIBC_2.12 semctl F
+GLIBC_2.12 semget F
+GLIBC_2.12 semop F
+GLIBC_2.12 semtimedop F
+GLIBC_2.12 send F
+GLIBC_2.12 sendfile F
+GLIBC_2.12 sendfile64 F
+GLIBC_2.12 sendmsg F
+GLIBC_2.12 sendto F
+GLIBC_2.12 set_dataplane F
+GLIBC_2.12 setaliasent F
+GLIBC_2.12 setbuf F
+GLIBC_2.12 setbuffer F
+GLIBC_2.12 setcontext F
+GLIBC_2.12 setdomainname F
+GLIBC_2.12 setegid F
+GLIBC_2.12 setenv F
+GLIBC_2.12 seteuid F
+GLIBC_2.12 setfsent F
+GLIBC_2.12 setfsgid F
+GLIBC_2.12 setfsuid F
+GLIBC_2.12 setgid F
+GLIBC_2.12 setgrent F
+GLIBC_2.12 setgroups F
+GLIBC_2.12 sethostent F
+GLIBC_2.12 sethostid F
+GLIBC_2.12 sethostname F
+GLIBC_2.12 setipv4sourcefilter F
+GLIBC_2.12 setitimer F
+GLIBC_2.12 setjmp F
+GLIBC_2.12 setlinebuf F
+GLIBC_2.12 setlocale F
+GLIBC_2.12 setlogin F
+GLIBC_2.12 setlogmask F
+GLIBC_2.12 setmntent F
+GLIBC_2.12 setnetent F
+GLIBC_2.12 setnetgrent F
+GLIBC_2.12 setpgid F
+GLIBC_2.12 setpgrp F
+GLIBC_2.12 setpriority F
+GLIBC_2.12 setprotoent F
+GLIBC_2.12 setpwent F
+GLIBC_2.12 setregid F
+GLIBC_2.12 setresgid F
+GLIBC_2.12 setresuid F
+GLIBC_2.12 setreuid F
+GLIBC_2.12 setrlimit F
+GLIBC_2.12 setrlimit64 F
+GLIBC_2.12 setrpcent F
+GLIBC_2.12 setservent F
+GLIBC_2.12 setsgent F
+GLIBC_2.12 setsid F
+GLIBC_2.12 setsockopt F
+GLIBC_2.12 setsourcefilter F
+GLIBC_2.12 setspent F
+GLIBC_2.12 setstate F
+GLIBC_2.12 setstate_r F
+GLIBC_2.12 settimeofday F
+GLIBC_2.12 setttyent F
+GLIBC_2.12 setuid F
+GLIBC_2.12 setusershell F
+GLIBC_2.12 setutent F
+GLIBC_2.12 setutxent F
+GLIBC_2.12 setvbuf F
+GLIBC_2.12 setxattr F
+GLIBC_2.12 sgetsgent F
+GLIBC_2.12 sgetsgent_r F
+GLIBC_2.12 sgetspent F
+GLIBC_2.12 sgetspent_r F
+GLIBC_2.12 shmat F
+GLIBC_2.12 shmctl F
+GLIBC_2.12 shmdt F
+GLIBC_2.12 shmget F
+GLIBC_2.12 shutdown F
+GLIBC_2.12 sigaction F
+GLIBC_2.12 sigaddset F
+GLIBC_2.12 sigaltstack F
+GLIBC_2.12 sigandset F
+GLIBC_2.12 sigblock F
+GLIBC_2.12 sigdelset F
+GLIBC_2.12 sigemptyset F
+GLIBC_2.12 sigfillset F
+GLIBC_2.12 siggetmask F
+GLIBC_2.12 sighold F
+GLIBC_2.12 sigignore F
+GLIBC_2.12 siginterrupt F
+GLIBC_2.12 sigisemptyset F
+GLIBC_2.12 sigismember F
+GLIBC_2.12 siglongjmp F
+GLIBC_2.12 signal F
+GLIBC_2.12 signalfd F
+GLIBC_2.12 sigorset F
+GLIBC_2.12 sigpause F
+GLIBC_2.12 sigpending F
+GLIBC_2.12 sigprocmask F
+GLIBC_2.12 sigqueue F
+GLIBC_2.12 sigrelse F
+GLIBC_2.12 sigreturn F
+GLIBC_2.12 sigset F
+GLIBC_2.12 sigsetmask F
+GLIBC_2.12 sigstack F
+GLIBC_2.12 sigsuspend F
+GLIBC_2.12 sigtimedwait F
+GLIBC_2.12 sigvec F
+GLIBC_2.12 sigwait F
+GLIBC_2.12 sigwaitinfo F
+GLIBC_2.12 sleep F
+GLIBC_2.12 snprintf F
+GLIBC_2.12 sockatmark F
+GLIBC_2.12 socket F
+GLIBC_2.12 socketpair F
+GLIBC_2.12 splice F
+GLIBC_2.12 sprintf F
+GLIBC_2.12 sprofil F
+GLIBC_2.12 srand F
+GLIBC_2.12 srand48 F
+GLIBC_2.12 srand48_r F
+GLIBC_2.12 srandom F
+GLIBC_2.12 srandom_r F
+GLIBC_2.12 sscanf F
+GLIBC_2.12 ssignal F
+GLIBC_2.12 sstk F
+GLIBC_2.12 statfs F
+GLIBC_2.12 statfs64 F
+GLIBC_2.12 statvfs F
+GLIBC_2.12 statvfs64 F
+GLIBC_2.12 stderr D 0x4
+GLIBC_2.12 stdin D 0x4
+GLIBC_2.12 stdout D 0x4
+GLIBC_2.12 step F
+GLIBC_2.12 stime F
+GLIBC_2.12 stpcpy F
+GLIBC_2.12 stpncpy F
+GLIBC_2.12 strcasecmp F
+GLIBC_2.12 strcasecmp_l F
+GLIBC_2.12 strcasestr F
+GLIBC_2.12 strcat F
+GLIBC_2.12 strchr F
+GLIBC_2.12 strchrnul F
+GLIBC_2.12 strcmp F
+GLIBC_2.12 strcoll F
+GLIBC_2.12 strcoll_l F
+GLIBC_2.12 strcpy F
+GLIBC_2.12 strcspn F
+GLIBC_2.12 strdup F
+GLIBC_2.12 strerror F
+GLIBC_2.12 strerror_l F
+GLIBC_2.12 strerror_r F
+GLIBC_2.12 strfmon F
+GLIBC_2.12 strfmon_l F
+GLIBC_2.12 strfry F
+GLIBC_2.12 strftime F
+GLIBC_2.12 strftime_l F
+GLIBC_2.12 strlen F
+GLIBC_2.12 strncasecmp F
+GLIBC_2.12 strncasecmp_l F
+GLIBC_2.12 strncat F
+GLIBC_2.12 strncmp F
+GLIBC_2.12 strncpy F
+GLIBC_2.12 strndup F
+GLIBC_2.12 strnlen F
+GLIBC_2.12 strpbrk F
+GLIBC_2.12 strptime F
+GLIBC_2.12 strptime_l F
+GLIBC_2.12 strrchr F
+GLIBC_2.12 strsep F
+GLIBC_2.12 strsignal F
+GLIBC_2.12 strspn F
+GLIBC_2.12 strstr F
+GLIBC_2.12 strtod F
+GLIBC_2.12 strtod_l F
+GLIBC_2.12 strtof F
+GLIBC_2.12 strtof_l F
+GLIBC_2.12 strtoimax F
+GLIBC_2.12 strtok F
+GLIBC_2.12 strtok_r F
+GLIBC_2.12 strtol F
+GLIBC_2.12 strtol_l F
+GLIBC_2.12 strtold F
+GLIBC_2.12 strtold_l F
+GLIBC_2.12 strtoll F
+GLIBC_2.12 strtoll_l F
+GLIBC_2.12 strtoq F
+GLIBC_2.12 strtoul F
+GLIBC_2.12 strtoul_l F
+GLIBC_2.12 strtoull F
+GLIBC_2.12 strtoull_l F
+GLIBC_2.12 strtoumax F
+GLIBC_2.12 strtouq F
+GLIBC_2.12 strverscmp F
+GLIBC_2.12 strxfrm F
+GLIBC_2.12 strxfrm_l F
+GLIBC_2.12 stty F
+GLIBC_2.12 svc_exit F
+GLIBC_2.12 svc_fdset D 0x80
+GLIBC_2.12 svc_getreq F
+GLIBC_2.12 svc_getreq_common F
+GLIBC_2.12 svc_getreq_poll F
+GLIBC_2.12 svc_getreqset F
+GLIBC_2.12 svc_max_pollfd D 0x4
+GLIBC_2.12 svc_pollfd D 0x4
+GLIBC_2.12 svc_register F
+GLIBC_2.12 svc_run F
+GLIBC_2.12 svc_sendreply F
+GLIBC_2.12 svc_unregister F
+GLIBC_2.12 svcauthdes_stats D 0xc
+GLIBC_2.12 svcerr_auth F
+GLIBC_2.12 svcerr_decode F
+GLIBC_2.12 svcerr_noproc F
+GLIBC_2.12 svcerr_noprog F
+GLIBC_2.12 svcerr_progvers F
+GLIBC_2.12 svcerr_systemerr F
+GLIBC_2.12 svcerr_weakauth F
+GLIBC_2.12 svcfd_create F
+GLIBC_2.12 svcraw_create F
+GLIBC_2.12 svctcp_create F
+GLIBC_2.12 svcudp_bufcreate F
+GLIBC_2.12 svcudp_create F
+GLIBC_2.12 svcudp_enablecache F
+GLIBC_2.12 svcunix_create F
+GLIBC_2.12 svcunixfd_create F
+GLIBC_2.12 swab F
+GLIBC_2.12 swapcontext F
+GLIBC_2.12 swapoff F
+GLIBC_2.12 swapon F
+GLIBC_2.12 swprintf F
+GLIBC_2.12 swscanf F
+GLIBC_2.12 symlink F
+GLIBC_2.12 symlinkat F
+GLIBC_2.12 sync F
+GLIBC_2.12 sync_file_range F
+GLIBC_2.12 sys_errlist D 0x21c
+GLIBC_2.12 sys_nerr D 0x4
+GLIBC_2.12 sys_sigabbrev D 0x104
+GLIBC_2.12 sys_siglist D 0x104
+GLIBC_2.12 syscall F
+GLIBC_2.12 sysconf F
+GLIBC_2.12 sysctl F
+GLIBC_2.12 sysinfo F
+GLIBC_2.12 syslog F
+GLIBC_2.12 system F
+GLIBC_2.12 sysv_signal F
+GLIBC_2.12 tcdrain F
+GLIBC_2.12 tcflow F
+GLIBC_2.12 tcflush F
+GLIBC_2.12 tcgetattr F
+GLIBC_2.12 tcgetpgrp F
+GLIBC_2.12 tcgetsid F
+GLIBC_2.12 tcsendbreak F
+GLIBC_2.12 tcsetattr F
+GLIBC_2.12 tcsetpgrp F
+GLIBC_2.12 tdelete F
+GLIBC_2.12 tdestroy F
+GLIBC_2.12 tee F
+GLIBC_2.12 telldir F
+GLIBC_2.12 tempnam F
+GLIBC_2.12 textdomain F
+GLIBC_2.12 tfind F
+GLIBC_2.12 time F
+GLIBC_2.12 timegm F
+GLIBC_2.12 timelocal F
+GLIBC_2.12 timerfd_create F
+GLIBC_2.12 timerfd_gettime F
+GLIBC_2.12 timerfd_settime F
+GLIBC_2.12 times F
+GLIBC_2.12 timezone D 0x4
+GLIBC_2.12 tmpfile F
+GLIBC_2.12 tmpfile64 F
+GLIBC_2.12 tmpnam F
+GLIBC_2.12 tmpnam_r F
+GLIBC_2.12 toascii F
+GLIBC_2.12 tolower F
+GLIBC_2.12 tolower_l F
+GLIBC_2.12 toupper F
+GLIBC_2.12 toupper_l F
+GLIBC_2.12 towctrans F
+GLIBC_2.12 towctrans_l F
+GLIBC_2.12 towlower F
+GLIBC_2.12 towlower_l F
+GLIBC_2.12 towupper F
+GLIBC_2.12 towupper_l F
+GLIBC_2.12 tr_break F
+GLIBC_2.12 truncate F
+GLIBC_2.12 truncate64 F
+GLIBC_2.12 tsearch F
+GLIBC_2.12 ttyname F
+GLIBC_2.12 ttyname_r F
+GLIBC_2.12 ttyslot F
+GLIBC_2.12 twalk F
+GLIBC_2.12 tzname D 0x8
+GLIBC_2.12 tzset F
+GLIBC_2.12 ualarm F
+GLIBC_2.12 ulckpwdf F
+GLIBC_2.12 ulimit F
+GLIBC_2.12 umask F
+GLIBC_2.12 umount F
+GLIBC_2.12 umount2 F
+GLIBC_2.12 uname F
+GLIBC_2.12 ungetc F
+GLIBC_2.12 ungetwc F
+GLIBC_2.12 unlink F
+GLIBC_2.12 unlinkat F
+GLIBC_2.12 unlockpt F
+GLIBC_2.12 unsetenv F
+GLIBC_2.12 unshare F
+GLIBC_2.12 updwtmp F
+GLIBC_2.12 updwtmpx F
+GLIBC_2.12 uselib F
+GLIBC_2.12 uselocale F
+GLIBC_2.12 user2netname F
+GLIBC_2.12 usleep F
+GLIBC_2.12 ustat F
+GLIBC_2.12 utime F
+GLIBC_2.12 utimensat F
+GLIBC_2.12 utimes F
+GLIBC_2.12 utmpname F
+GLIBC_2.12 utmpxname F
+GLIBC_2.12 valloc F
+GLIBC_2.12 vasprintf F
+GLIBC_2.12 vdprintf F
+GLIBC_2.12 verr F
+GLIBC_2.12 verrx F
+GLIBC_2.12 versionsort F
+GLIBC_2.12 versionsort64 F
+GLIBC_2.12 vfork F
+GLIBC_2.12 vfprintf F
+GLIBC_2.12 vfscanf F
+GLIBC_2.12 vfwprintf F
+GLIBC_2.12 vfwscanf F
+GLIBC_2.12 vhangup F
+GLIBC_2.12 vlimit F
+GLIBC_2.12 vmsplice F
+GLIBC_2.12 vprintf F
+GLIBC_2.12 vscanf F
+GLIBC_2.12 vsnprintf F
+GLIBC_2.12 vsprintf F
+GLIBC_2.12 vsscanf F
+GLIBC_2.12 vswprintf F
+GLIBC_2.12 vswscanf F
+GLIBC_2.12 vsyslog F
+GLIBC_2.12 vtimes F
+GLIBC_2.12 vwarn F
+GLIBC_2.12 vwarnx F
+GLIBC_2.12 vwprintf F
+GLIBC_2.12 vwscanf F
+GLIBC_2.12 wait F
+GLIBC_2.12 wait3 F
+GLIBC_2.12 wait4 F
+GLIBC_2.12 waitid F
+GLIBC_2.12 waitpid F
+GLIBC_2.12 warn F
+GLIBC_2.12 warnx F
+GLIBC_2.12 wcpcpy F
+GLIBC_2.12 wcpncpy F
+GLIBC_2.12 wcrtomb F
+GLIBC_2.12 wcscasecmp F
+GLIBC_2.12 wcscasecmp_l F
+GLIBC_2.12 wcscat F
+GLIBC_2.12 wcschr F
+GLIBC_2.12 wcschrnul F
+GLIBC_2.12 wcscmp F
+GLIBC_2.12 wcscoll F
+GLIBC_2.12 wcscoll_l F
+GLIBC_2.12 wcscpy F
+GLIBC_2.12 wcscspn F
+GLIBC_2.12 wcsdup F
+GLIBC_2.12 wcsftime F
+GLIBC_2.12 wcsftime_l F
+GLIBC_2.12 wcslen F
+GLIBC_2.12 wcsncasecmp F
+GLIBC_2.12 wcsncasecmp_l F
+GLIBC_2.12 wcsncat F
+GLIBC_2.12 wcsncmp F
+GLIBC_2.12 wcsncpy F
+GLIBC_2.12 wcsnlen F
+GLIBC_2.12 wcsnrtombs F
+GLIBC_2.12 wcspbrk F
+GLIBC_2.12 wcsrchr F
+GLIBC_2.12 wcsrtombs F
+GLIBC_2.12 wcsspn F
+GLIBC_2.12 wcsstr F
+GLIBC_2.12 wcstod F
+GLIBC_2.12 wcstod_l F
+GLIBC_2.12 wcstof F
+GLIBC_2.12 wcstof_l F
+GLIBC_2.12 wcstoimax F
+GLIBC_2.12 wcstok F
+GLIBC_2.12 wcstol F
+GLIBC_2.12 wcstol_l F
+GLIBC_2.12 wcstold F
+GLIBC_2.12 wcstold_l F
+GLIBC_2.12 wcstoll F
+GLIBC_2.12 wcstoll_l F
+GLIBC_2.12 wcstombs F
+GLIBC_2.12 wcstoq F
+GLIBC_2.12 wcstoul F
+GLIBC_2.12 wcstoul_l F
+GLIBC_2.12 wcstoull F
+GLIBC_2.12 wcstoull_l F
+GLIBC_2.12 wcstoumax F
+GLIBC_2.12 wcstouq F
+GLIBC_2.12 wcswcs F
+GLIBC_2.12 wcswidth F
+GLIBC_2.12 wcsxfrm F
+GLIBC_2.12 wcsxfrm_l F
+GLIBC_2.12 wctob F
+GLIBC_2.12 wctomb F
+GLIBC_2.12 wctrans F
+GLIBC_2.12 wctrans_l F
+GLIBC_2.12 wctype F
+GLIBC_2.12 wctype_l F
+GLIBC_2.12 wcwidth F
+GLIBC_2.12 wmemchr F
+GLIBC_2.12 wmemcmp F
+GLIBC_2.12 wmemcpy F
+GLIBC_2.12 wmemmove F
+GLIBC_2.12 wmempcpy F
+GLIBC_2.12 wmemset F
+GLIBC_2.12 wordexp F
+GLIBC_2.12 wordfree F
+GLIBC_2.12 wprintf F
+GLIBC_2.12 write F
+GLIBC_2.12 writev F
+GLIBC_2.12 wscanf F
+GLIBC_2.12 xdecrypt F
+GLIBC_2.12 xdr_accepted_reply F
+GLIBC_2.12 xdr_array F
+GLIBC_2.12 xdr_authdes_cred F
+GLIBC_2.12 xdr_authdes_verf F
+GLIBC_2.12 xdr_authunix_parms F
+GLIBC_2.12 xdr_bool F
+GLIBC_2.12 xdr_bytes F
+GLIBC_2.12 xdr_callhdr F
+GLIBC_2.12 xdr_callmsg F
+GLIBC_2.12 xdr_char F
+GLIBC_2.12 xdr_cryptkeyarg F
+GLIBC_2.12 xdr_cryptkeyarg2 F
+GLIBC_2.12 xdr_cryptkeyres F
+GLIBC_2.12 xdr_des_block F
+GLIBC_2.12 xdr_double F
+GLIBC_2.12 xdr_enum F
+GLIBC_2.12 xdr_float F
+GLIBC_2.12 xdr_free F
+GLIBC_2.12 xdr_getcredres F
+GLIBC_2.12 xdr_hyper F
+GLIBC_2.12 xdr_int F
+GLIBC_2.12 xdr_int16_t F
+GLIBC_2.12 xdr_int32_t F
+GLIBC_2.12 xdr_int64_t F
+GLIBC_2.12 xdr_int8_t F
+GLIBC_2.12 xdr_key_netstarg F
+GLIBC_2.12 xdr_key_netstres F
+GLIBC_2.12 xdr_keybuf F
+GLIBC_2.12 xdr_keystatus F
+GLIBC_2.12 xdr_long F
+GLIBC_2.12 xdr_longlong_t F
+GLIBC_2.12 xdr_netnamestr F
+GLIBC_2.12 xdr_netobj F
+GLIBC_2.12 xdr_opaque F
+GLIBC_2.12 xdr_opaque_auth F
+GLIBC_2.12 xdr_pmap F
+GLIBC_2.12 xdr_pmaplist F
+GLIBC_2.12 xdr_pointer F
+GLIBC_2.12 xdr_quad_t F
+GLIBC_2.12 xdr_reference F
+GLIBC_2.12 xdr_rejected_reply F
+GLIBC_2.12 xdr_replymsg F
+GLIBC_2.12 xdr_rmtcall_args F
+GLIBC_2.12 xdr_rmtcallres F
+GLIBC_2.12 xdr_short F
+GLIBC_2.12 xdr_sizeof F
+GLIBC_2.12 xdr_string F
+GLIBC_2.12 xdr_u_char F
+GLIBC_2.12 xdr_u_hyper F
+GLIBC_2.12 xdr_u_int F
+GLIBC_2.12 xdr_u_long F
+GLIBC_2.12 xdr_u_longlong_t F
+GLIBC_2.12 xdr_u_quad_t F
+GLIBC_2.12 xdr_u_short F
+GLIBC_2.12 xdr_uint16_t F
+GLIBC_2.12 xdr_uint32_t F
+GLIBC_2.12 xdr_uint64_t F
+GLIBC_2.12 xdr_uint8_t F
+GLIBC_2.12 xdr_union F
+GLIBC_2.12 xdr_unixcred F
+GLIBC_2.12 xdr_vector F
+GLIBC_2.12 xdr_void F
+GLIBC_2.12 xdr_wrapstring F
+GLIBC_2.12 xdrmem_create F
+GLIBC_2.12 xdrrec_create F
+GLIBC_2.12 xdrrec_endofrecord F
+GLIBC_2.12 xdrrec_eof F
+GLIBC_2.12 xdrrec_skiprecord F
+GLIBC_2.12 xdrstdio_create F
+GLIBC_2.12 xencrypt F
+GLIBC_2.12 xprt_register F
+GLIBC_2.12 xprt_unregister F
+GLIBC_2.15 GLIBC_2.15 A
+GLIBC_2.15 __fdelt_chk F
+GLIBC_2.15 __fdelt_warn F
+GLIBC_2.15 clock_adjtime F
+GLIBC_2.15 fanotify_init F
+GLIBC_2.15 fanotify_mark F
+GLIBC_2.15 name_to_handle_at F
+GLIBC_2.15 open_by_handle_at F
+GLIBC_2.15 posix_spawn F
+GLIBC_2.15 posix_spawnp F
+GLIBC_2.15 prlimit F
+GLIBC_2.15 prlimit64 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.15 sendmmsg F
+GLIBC_2.15 setns F
+GLIBC_2.15 syncfs 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.22 GLIBC_2.22 A
+GLIBC_2.22 fmemopen F
+GLIBC_2.23 GLIBC_2.23 A
+GLIBC_2.23 fts64_children F
+GLIBC_2.23 fts64_close F
+GLIBC_2.23 fts64_open F
+GLIBC_2.23 fts64_read F
+GLIBC_2.23 fts64_set F
+GLIBC_2.24 GLIBC_2.24 A
+GLIBC_2.24 quick_exit F
+GLIBC_2.25 GLIBC_2.25 A
+GLIBC_2.25 __explicit_bzero_chk F
+GLIBC_2.25 explicit_bzero F
+GLIBC_2.25 getentropy F
+GLIBC_2.25 getrandom F
+GLIBC_2.25 strfromd F
+GLIBC_2.25 strfromf F
+GLIBC_2.25 strfroml F
+GLIBC_2.26 GLIBC_2.26 A
+GLIBC_2.26 preadv2 F
+GLIBC_2.26 preadv64v2 F
+GLIBC_2.26 pwritev2 F
+GLIBC_2.26 pwritev64v2 F
+GLIBC_2.26 reallocarray F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilepro/libcrypt.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilepro/libcrypt.abilist
new file mode 100644
index 0000000000..d5643802b7
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilepro/libcrypt.abilist
@@ -0,0 +1,8 @@
+GLIBC_2.12 GLIBC_2.12 A
+GLIBC_2.12 crypt F
+GLIBC_2.12 crypt_r F
+GLIBC_2.12 encrypt F
+GLIBC_2.12 encrypt_r F
+GLIBC_2.12 fcrypt F
+GLIBC_2.12 setkey F
+GLIBC_2.12 setkey_r F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilepro/libdl.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilepro/libdl.abilist
new file mode 100644
index 0000000000..cabc30c239
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilepro/libdl.abilist
@@ -0,0 +1,10 @@
+GLIBC_2.12 GLIBC_2.12 A
+GLIBC_2.12 dladdr F
+GLIBC_2.12 dladdr1 F
+GLIBC_2.12 dlclose F
+GLIBC_2.12 dlerror F
+GLIBC_2.12 dlinfo F
+GLIBC_2.12 dlmopen F
+GLIBC_2.12 dlopen F
+GLIBC_2.12 dlsym F
+GLIBC_2.12 dlvsym F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilepro/libm.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilepro/libm.abilist
new file mode 100644
index 0000000000..0059c27fa2
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilepro/libm.abilist
@@ -0,0 +1,431 @@
+GLIBC_2.12 GLIBC_2.12 A
+GLIBC_2.12 _LIB_VERSION D 0x4
+GLIBC_2.12 __clog10 F
+GLIBC_2.12 __clog10f F
+GLIBC_2.12 __clog10l F
+GLIBC_2.12 __finite F
+GLIBC_2.12 __finitef F
+GLIBC_2.12 __fpclassify F
+GLIBC_2.12 __fpclassifyf F
+GLIBC_2.12 __signbit F
+GLIBC_2.12 __signbitf F
+GLIBC_2.12 acos F
+GLIBC_2.12 acosf F
+GLIBC_2.12 acosh F
+GLIBC_2.12 acoshf F
+GLIBC_2.12 acoshl F
+GLIBC_2.12 acosl F
+GLIBC_2.12 asin F
+GLIBC_2.12 asinf F
+GLIBC_2.12 asinh F
+GLIBC_2.12 asinhf F
+GLIBC_2.12 asinhl F
+GLIBC_2.12 asinl F
+GLIBC_2.12 atan F
+GLIBC_2.12 atan2 F
+GLIBC_2.12 atan2f F
+GLIBC_2.12 atan2l F
+GLIBC_2.12 atanf F
+GLIBC_2.12 atanh F
+GLIBC_2.12 atanhf F
+GLIBC_2.12 atanhl F
+GLIBC_2.12 atanl F
+GLIBC_2.12 cabs F
+GLIBC_2.12 cabsf F
+GLIBC_2.12 cabsl F
+GLIBC_2.12 cacos F
+GLIBC_2.12 cacosf F
+GLIBC_2.12 cacosh F
+GLIBC_2.12 cacoshf F
+GLIBC_2.12 cacoshl F
+GLIBC_2.12 cacosl F
+GLIBC_2.12 carg F
+GLIBC_2.12 cargf F
+GLIBC_2.12 cargl F
+GLIBC_2.12 casin F
+GLIBC_2.12 casinf F
+GLIBC_2.12 casinh F
+GLIBC_2.12 casinhf F
+GLIBC_2.12 casinhl F
+GLIBC_2.12 casinl F
+GLIBC_2.12 catan F
+GLIBC_2.12 catanf F
+GLIBC_2.12 catanh F
+GLIBC_2.12 catanhf F
+GLIBC_2.12 catanhl F
+GLIBC_2.12 catanl F
+GLIBC_2.12 cbrt F
+GLIBC_2.12 cbrtf F
+GLIBC_2.12 cbrtl F
+GLIBC_2.12 ccos F
+GLIBC_2.12 ccosf F
+GLIBC_2.12 ccosh F
+GLIBC_2.12 ccoshf F
+GLIBC_2.12 ccoshl F
+GLIBC_2.12 ccosl F
+GLIBC_2.12 ceil F
+GLIBC_2.12 ceilf F
+GLIBC_2.12 ceill F
+GLIBC_2.12 cexp F
+GLIBC_2.12 cexpf F
+GLIBC_2.12 cexpl F
+GLIBC_2.12 cimag F
+GLIBC_2.12 cimagf F
+GLIBC_2.12 cimagl F
+GLIBC_2.12 clog F
+GLIBC_2.12 clog10 F
+GLIBC_2.12 clog10f F
+GLIBC_2.12 clog10l F
+GLIBC_2.12 clogf F
+GLIBC_2.12 clogl F
+GLIBC_2.12 conj F
+GLIBC_2.12 conjf F
+GLIBC_2.12 conjl F
+GLIBC_2.12 copysign F
+GLIBC_2.12 copysignf F
+GLIBC_2.12 copysignl F
+GLIBC_2.12 cos F
+GLIBC_2.12 cosf F
+GLIBC_2.12 cosh F
+GLIBC_2.12 coshf F
+GLIBC_2.12 coshl F
+GLIBC_2.12 cosl F
+GLIBC_2.12 cpow F
+GLIBC_2.12 cpowf F
+GLIBC_2.12 cpowl F
+GLIBC_2.12 cproj F
+GLIBC_2.12 cprojf F
+GLIBC_2.12 cprojl F
+GLIBC_2.12 creal F
+GLIBC_2.12 crealf F
+GLIBC_2.12 creall F
+GLIBC_2.12 csin F
+GLIBC_2.12 csinf F
+GLIBC_2.12 csinh F
+GLIBC_2.12 csinhf F
+GLIBC_2.12 csinhl F
+GLIBC_2.12 csinl F
+GLIBC_2.12 csqrt F
+GLIBC_2.12 csqrtf F
+GLIBC_2.12 csqrtl F
+GLIBC_2.12 ctan F
+GLIBC_2.12 ctanf F
+GLIBC_2.12 ctanh F
+GLIBC_2.12 ctanhf F
+GLIBC_2.12 ctanhl F
+GLIBC_2.12 ctanl F
+GLIBC_2.12 drem F
+GLIBC_2.12 dremf F
+GLIBC_2.12 dreml F
+GLIBC_2.12 erf F
+GLIBC_2.12 erfc F
+GLIBC_2.12 erfcf F
+GLIBC_2.12 erfcl F
+GLIBC_2.12 erff F
+GLIBC_2.12 erfl F
+GLIBC_2.12 exp F
+GLIBC_2.12 exp10 F
+GLIBC_2.12 exp10f F
+GLIBC_2.12 exp10l F
+GLIBC_2.12 exp2 F
+GLIBC_2.12 exp2f F
+GLIBC_2.12 exp2l F
+GLIBC_2.12 expf F
+GLIBC_2.12 expl F
+GLIBC_2.12 expm1 F
+GLIBC_2.12 expm1f F
+GLIBC_2.12 expm1l F
+GLIBC_2.12 fabs F
+GLIBC_2.12 fabsf F
+GLIBC_2.12 fabsl F
+GLIBC_2.12 fdim F
+GLIBC_2.12 fdimf F
+GLIBC_2.12 fdiml F
+GLIBC_2.12 feclearexcept F
+GLIBC_2.12 fedisableexcept F
+GLIBC_2.12 feenableexcept F
+GLIBC_2.12 fegetenv F
+GLIBC_2.12 fegetexcept F
+GLIBC_2.12 fegetexceptflag F
+GLIBC_2.12 fegetround F
+GLIBC_2.12 feholdexcept F
+GLIBC_2.12 feraiseexcept F
+GLIBC_2.12 fesetenv F
+GLIBC_2.12 fesetexceptflag F
+GLIBC_2.12 fesetround F
+GLIBC_2.12 fetestexcept F
+GLIBC_2.12 feupdateenv F
+GLIBC_2.12 finite F
+GLIBC_2.12 finitef F
+GLIBC_2.12 finitel F
+GLIBC_2.12 floor F
+GLIBC_2.12 floorf F
+GLIBC_2.12 floorl F
+GLIBC_2.12 fma F
+GLIBC_2.12 fmaf F
+GLIBC_2.12 fmal F
+GLIBC_2.12 fmax F
+GLIBC_2.12 fmaxf F
+GLIBC_2.12 fmaxl F
+GLIBC_2.12 fmin F
+GLIBC_2.12 fminf F
+GLIBC_2.12 fminl F
+GLIBC_2.12 fmod F
+GLIBC_2.12 fmodf F
+GLIBC_2.12 fmodl F
+GLIBC_2.12 frexp F
+GLIBC_2.12 frexpf F
+GLIBC_2.12 frexpl F
+GLIBC_2.12 gamma F
+GLIBC_2.12 gammaf F
+GLIBC_2.12 gammal F
+GLIBC_2.12 hypot F
+GLIBC_2.12 hypotf F
+GLIBC_2.12 hypotl F
+GLIBC_2.12 ilogb F
+GLIBC_2.12 ilogbf F
+GLIBC_2.12 ilogbl F
+GLIBC_2.12 j0 F
+GLIBC_2.12 j0f F
+GLIBC_2.12 j0l F
+GLIBC_2.12 j1 F
+GLIBC_2.12 j1f F
+GLIBC_2.12 j1l F
+GLIBC_2.12 jn F
+GLIBC_2.12 jnf F
+GLIBC_2.12 jnl F
+GLIBC_2.12 ldexp F
+GLIBC_2.12 ldexpf F
+GLIBC_2.12 ldexpl F
+GLIBC_2.12 lgamma F
+GLIBC_2.12 lgamma_r F
+GLIBC_2.12 lgammaf F
+GLIBC_2.12 lgammaf_r F
+GLIBC_2.12 lgammal F
+GLIBC_2.12 lgammal_r F
+GLIBC_2.12 llrint F
+GLIBC_2.12 llrintf F
+GLIBC_2.12 llrintl F
+GLIBC_2.12 llround F
+GLIBC_2.12 llroundf F
+GLIBC_2.12 llroundl F
+GLIBC_2.12 log F
+GLIBC_2.12 log10 F
+GLIBC_2.12 log10f F
+GLIBC_2.12 log10l F
+GLIBC_2.12 log1p F
+GLIBC_2.12 log1pf F
+GLIBC_2.12 log1pl F
+GLIBC_2.12 log2 F
+GLIBC_2.12 log2f F
+GLIBC_2.12 log2l F
+GLIBC_2.12 logb F
+GLIBC_2.12 logbf F
+GLIBC_2.12 logbl F
+GLIBC_2.12 logf F
+GLIBC_2.12 logl F
+GLIBC_2.12 lrint F
+GLIBC_2.12 lrintf F
+GLIBC_2.12 lrintl F
+GLIBC_2.12 lround F
+GLIBC_2.12 lroundf F
+GLIBC_2.12 lroundl F
+GLIBC_2.12 matherr F
+GLIBC_2.12 modf F
+GLIBC_2.12 modff F
+GLIBC_2.12 modfl F
+GLIBC_2.12 nan F
+GLIBC_2.12 nanf F
+GLIBC_2.12 nanl F
+GLIBC_2.12 nearbyint F
+GLIBC_2.12 nearbyintf F
+GLIBC_2.12 nearbyintl F
+GLIBC_2.12 nextafter F
+GLIBC_2.12 nextafterf F
+GLIBC_2.12 nextafterl F
+GLIBC_2.12 nexttoward F
+GLIBC_2.12 nexttowardf F
+GLIBC_2.12 nexttowardl F
+GLIBC_2.12 pow F
+GLIBC_2.12 pow10 F
+GLIBC_2.12 pow10f F
+GLIBC_2.12 pow10l F
+GLIBC_2.12 powf F
+GLIBC_2.12 powl F
+GLIBC_2.12 remainder F
+GLIBC_2.12 remainderf F
+GLIBC_2.12 remainderl F
+GLIBC_2.12 remquo F
+GLIBC_2.12 remquof F
+GLIBC_2.12 remquol F
+GLIBC_2.12 rint F
+GLIBC_2.12 rintf F
+GLIBC_2.12 rintl F
+GLIBC_2.12 round F
+GLIBC_2.12 roundf F
+GLIBC_2.12 roundl F
+GLIBC_2.12 scalb F
+GLIBC_2.12 scalbf F
+GLIBC_2.12 scalbl F
+GLIBC_2.12 scalbln F
+GLIBC_2.12 scalblnf F
+GLIBC_2.12 scalblnl F
+GLIBC_2.12 scalbn F
+GLIBC_2.12 scalbnf F
+GLIBC_2.12 scalbnl F
+GLIBC_2.12 signgam D 0x4
+GLIBC_2.12 significand F
+GLIBC_2.12 significandf F
+GLIBC_2.12 significandl F
+GLIBC_2.12 sin F
+GLIBC_2.12 sincos F
+GLIBC_2.12 sincosf F
+GLIBC_2.12 sincosl F
+GLIBC_2.12 sinf F
+GLIBC_2.12 sinh F
+GLIBC_2.12 sinhf F
+GLIBC_2.12 sinhl F
+GLIBC_2.12 sinl F
+GLIBC_2.12 sqrt F
+GLIBC_2.12 sqrtf F
+GLIBC_2.12 sqrtl F
+GLIBC_2.12 tan F
+GLIBC_2.12 tanf F
+GLIBC_2.12 tanh F
+GLIBC_2.12 tanhf F
+GLIBC_2.12 tanhl F
+GLIBC_2.12 tanl F
+GLIBC_2.12 tgamma F
+GLIBC_2.12 tgammaf F
+GLIBC_2.12 tgammal F
+GLIBC_2.12 trunc F
+GLIBC_2.12 truncf F
+GLIBC_2.12 truncl F
+GLIBC_2.12 y0 F
+GLIBC_2.12 y0f F
+GLIBC_2.12 y0l F
+GLIBC_2.12 y1 F
+GLIBC_2.12 y1f F
+GLIBC_2.12 y1l F
+GLIBC_2.12 yn F
+GLIBC_2.12 ynf F
+GLIBC_2.12 ynl 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 __asin_finite F
+GLIBC_2.15 __asinf_finite F
+GLIBC_2.15 __atan2_finite F
+GLIBC_2.15 __atan2f_finite F
+GLIBC_2.15 __atanh_finite F
+GLIBC_2.15 __atanhf_finite F
+GLIBC_2.15 __cosh_finite F
+GLIBC_2.15 __coshf_finite F
+GLIBC_2.15 __exp10_finite F
+GLIBC_2.15 __exp10f_finite F
+GLIBC_2.15 __exp2_finite F
+GLIBC_2.15 __exp2f_finite F
+GLIBC_2.15 __exp_finite F
+GLIBC_2.15 __expf_finite F
+GLIBC_2.15 __fmod_finite F
+GLIBC_2.15 __fmodf_finite F
+GLIBC_2.15 __gamma_r_finite F
+GLIBC_2.15 __gammaf_r_finite F
+GLIBC_2.15 __hypot_finite F
+GLIBC_2.15 __hypotf_finite F
+GLIBC_2.15 __j0_finite F
+GLIBC_2.15 __j0f_finite F
+GLIBC_2.15 __j1_finite F
+GLIBC_2.15 __j1f_finite F
+GLIBC_2.15 __jn_finite F
+GLIBC_2.15 __jnf_finite F
+GLIBC_2.15 __lgamma_r_finite F
+GLIBC_2.15 __lgammaf_r_finite F
+GLIBC_2.15 __log10_finite F
+GLIBC_2.15 __log10f_finite F
+GLIBC_2.15 __log2_finite F
+GLIBC_2.15 __log2f_finite F
+GLIBC_2.15 __log_finite F
+GLIBC_2.15 __logf_finite F
+GLIBC_2.15 __pow_finite F
+GLIBC_2.15 __powf_finite F
+GLIBC_2.15 __remainder_finite F
+GLIBC_2.15 __remainderf_finite F
+GLIBC_2.15 __scalb_finite F
+GLIBC_2.15 __scalbf_finite F
+GLIBC_2.15 __sinh_finite F
+GLIBC_2.15 __sinhf_finite F
+GLIBC_2.15 __sqrt_finite F
+GLIBC_2.15 __sqrtf_finite F
+GLIBC_2.15 __y0_finite F
+GLIBC_2.15 __y0f_finite F
+GLIBC_2.15 __y1_finite F
+GLIBC_2.15 __y1f_finite F
+GLIBC_2.15 __yn_finite F
+GLIBC_2.15 __ynf_finite F
+GLIBC_2.18 GLIBC_2.18 A
+GLIBC_2.18 __issignaling F
+GLIBC_2.18 __issignalingf F
+GLIBC_2.23 GLIBC_2.23 A
+GLIBC_2.23 __signgam D 0x4
+GLIBC_2.23 lgamma F
+GLIBC_2.23 lgammaf F
+GLIBC_2.23 lgammal F
+GLIBC_2.24 GLIBC_2.24 A
+GLIBC_2.24 nextdown F
+GLIBC_2.24 nextdownf F
+GLIBC_2.24 nextdownl F
+GLIBC_2.24 nextup F
+GLIBC_2.24 nextupf F
+GLIBC_2.24 nextupl F
+GLIBC_2.25 GLIBC_2.25 A
+GLIBC_2.25 __iseqsig F
+GLIBC_2.25 __iseqsigf F
+GLIBC_2.25 canonicalize F
+GLIBC_2.25 canonicalizef F
+GLIBC_2.25 canonicalizel F
+GLIBC_2.25 fegetmode F
+GLIBC_2.25 fesetexcept F
+GLIBC_2.25 fesetmode F
+GLIBC_2.25 fetestexceptflag F
+GLIBC_2.25 fmaxmag F
+GLIBC_2.25 fmaxmagf F
+GLIBC_2.25 fmaxmagl F
+GLIBC_2.25 fminmag F
+GLIBC_2.25 fminmagf F
+GLIBC_2.25 fminmagl F
+GLIBC_2.25 fromfp F
+GLIBC_2.25 fromfpf F
+GLIBC_2.25 fromfpl F
+GLIBC_2.25 fromfpx F
+GLIBC_2.25 fromfpxf F
+GLIBC_2.25 fromfpxl F
+GLIBC_2.25 getpayload F
+GLIBC_2.25 getpayloadf F
+GLIBC_2.25 getpayloadl F
+GLIBC_2.25 llogb F
+GLIBC_2.25 llogbf F
+GLIBC_2.25 llogbl F
+GLIBC_2.25 roundeven F
+GLIBC_2.25 roundevenf F
+GLIBC_2.25 roundevenl F
+GLIBC_2.25 setpayload F
+GLIBC_2.25 setpayloadf F
+GLIBC_2.25 setpayloadl F
+GLIBC_2.25 setpayloadsig F
+GLIBC_2.25 setpayloadsigf F
+GLIBC_2.25 setpayloadsigl F
+GLIBC_2.25 totalorder F
+GLIBC_2.25 totalorderf F
+GLIBC_2.25 totalorderl F
+GLIBC_2.25 totalordermag F
+GLIBC_2.25 totalordermagf F
+GLIBC_2.25 totalordermagl F
+GLIBC_2.25 ufromfp F
+GLIBC_2.25 ufromfpf F
+GLIBC_2.25 ufromfpl F
+GLIBC_2.25 ufromfpx F
+GLIBC_2.25 ufromfpxf F
+GLIBC_2.25 ufromfpxl F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilepro/libnsl.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilepro/libnsl.abilist
new file mode 100644
index 0000000000..0277e5c1a8
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilepro/libnsl.abilist
@@ -0,0 +1,122 @@
+GLIBC_2.12 GLIBC_2.12 A
+GLIBC_2.12 __free_fdresult F
+GLIBC_2.12 __nis_default_access F
+GLIBC_2.12 __nis_default_group F
+GLIBC_2.12 __nis_default_owner F
+GLIBC_2.12 __nis_default_ttl F
+GLIBC_2.12 __nis_finddirectory F
+GLIBC_2.12 __nis_hash F
+GLIBC_2.12 __nisbind_connect F
+GLIBC_2.12 __nisbind_create F
+GLIBC_2.12 __nisbind_destroy F
+GLIBC_2.12 __nisbind_next F
+GLIBC_2.12 __yp_check F
+GLIBC_2.12 nis_add F
+GLIBC_2.12 nis_add_entry F
+GLIBC_2.12 nis_addmember F
+GLIBC_2.12 nis_checkpoint F
+GLIBC_2.12 nis_clone_directory F
+GLIBC_2.12 nis_clone_object F
+GLIBC_2.12 nis_clone_result F
+GLIBC_2.12 nis_creategroup F
+GLIBC_2.12 nis_destroy_object F
+GLIBC_2.12 nis_destroygroup F
+GLIBC_2.12 nis_dir_cmp F
+GLIBC_2.12 nis_domain_of F
+GLIBC_2.12 nis_domain_of_r F
+GLIBC_2.12 nis_first_entry F
+GLIBC_2.12 nis_free_directory F
+GLIBC_2.12 nis_free_object F
+GLIBC_2.12 nis_free_request F
+GLIBC_2.12 nis_freenames F
+GLIBC_2.12 nis_freeresult F
+GLIBC_2.12 nis_freeservlist F
+GLIBC_2.12 nis_freetags F
+GLIBC_2.12 nis_getnames F
+GLIBC_2.12 nis_getservlist F
+GLIBC_2.12 nis_ismember F
+GLIBC_2.12 nis_leaf_of F
+GLIBC_2.12 nis_leaf_of_r F
+GLIBC_2.12 nis_lerror F
+GLIBC_2.12 nis_list F
+GLIBC_2.12 nis_local_directory F
+GLIBC_2.12 nis_local_group F
+GLIBC_2.12 nis_local_host F
+GLIBC_2.12 nis_local_principal F
+GLIBC_2.12 nis_lookup F
+GLIBC_2.12 nis_mkdir F
+GLIBC_2.12 nis_modify F
+GLIBC_2.12 nis_modify_entry F
+GLIBC_2.12 nis_name_of F
+GLIBC_2.12 nis_name_of_r F
+GLIBC_2.12 nis_next_entry F
+GLIBC_2.12 nis_perror F
+GLIBC_2.12 nis_ping F
+GLIBC_2.12 nis_print_directory F
+GLIBC_2.12 nis_print_entry F
+GLIBC_2.12 nis_print_group F
+GLIBC_2.12 nis_print_group_entry F
+GLIBC_2.12 nis_print_link F
+GLIBC_2.12 nis_print_object F
+GLIBC_2.12 nis_print_result F
+GLIBC_2.12 nis_print_rights F
+GLIBC_2.12 nis_print_table F
+GLIBC_2.12 nis_read_obj F
+GLIBC_2.12 nis_remove F
+GLIBC_2.12 nis_remove_entry F
+GLIBC_2.12 nis_removemember F
+GLIBC_2.12 nis_rmdir F
+GLIBC_2.12 nis_servstate F
+GLIBC_2.12 nis_sperrno F
+GLIBC_2.12 nis_sperror F
+GLIBC_2.12 nis_sperror_r F
+GLIBC_2.12 nis_stats F
+GLIBC_2.12 nis_verifygroup F
+GLIBC_2.12 nis_write_obj F
+GLIBC_2.12 readColdStartFile F
+GLIBC_2.12 writeColdStartFile F
+GLIBC_2.12 xdr_cback_data F
+GLIBC_2.12 xdr_domainname F
+GLIBC_2.12 xdr_keydat F
+GLIBC_2.12 xdr_mapname F
+GLIBC_2.12 xdr_obj_p F
+GLIBC_2.12 xdr_peername F
+GLIBC_2.12 xdr_valdat F
+GLIBC_2.12 xdr_yp_buf F
+GLIBC_2.12 xdr_ypall F
+GLIBC_2.12 xdr_ypbind_binding F
+GLIBC_2.12 xdr_ypbind_resp F
+GLIBC_2.12 xdr_ypbind_resptype F
+GLIBC_2.12 xdr_ypbind_setdom F
+GLIBC_2.12 xdr_ypdelete_args F
+GLIBC_2.12 xdr_ypmap_parms F
+GLIBC_2.12 xdr_ypmaplist F
+GLIBC_2.12 xdr_yppush_status F
+GLIBC_2.12 xdr_yppushresp_xfr F
+GLIBC_2.12 xdr_ypreq_key F
+GLIBC_2.12 xdr_ypreq_nokey F
+GLIBC_2.12 xdr_ypreq_xfr F
+GLIBC_2.12 xdr_ypresp_all F
+GLIBC_2.12 xdr_ypresp_key_val F
+GLIBC_2.12 xdr_ypresp_maplist F
+GLIBC_2.12 xdr_ypresp_master F
+GLIBC_2.12 xdr_ypresp_order F
+GLIBC_2.12 xdr_ypresp_val F
+GLIBC_2.12 xdr_ypresp_xfr F
+GLIBC_2.12 xdr_ypstat F
+GLIBC_2.12 xdr_ypupdate_args F
+GLIBC_2.12 xdr_ypxfrstat F
+GLIBC_2.12 yp_all F
+GLIBC_2.12 yp_bind F
+GLIBC_2.12 yp_first F
+GLIBC_2.12 yp_get_default_domain F
+GLIBC_2.12 yp_maplist F
+GLIBC_2.12 yp_master F
+GLIBC_2.12 yp_match F
+GLIBC_2.12 yp_next F
+GLIBC_2.12 yp_order F
+GLIBC_2.12 yp_unbind F
+GLIBC_2.12 yp_update F
+GLIBC_2.12 ypbinderr_string F
+GLIBC_2.12 yperr_string F
+GLIBC_2.12 ypprot_err F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilepro/libpthread.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilepro/libpthread.abilist
new file mode 100644
index 0000000000..d16158f938
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilepro/libpthread.abilist
@@ -0,0 +1,226 @@
+GLIBC_2.12 GLIBC_2.12 A
+GLIBC_2.12 _IO_flockfile F
+GLIBC_2.12 _IO_ftrylockfile F
+GLIBC_2.12 _IO_funlockfile F
+GLIBC_2.12 __close F
+GLIBC_2.12 __connect F
+GLIBC_2.12 __errno_location F
+GLIBC_2.12 __fcntl F
+GLIBC_2.12 __fork F
+GLIBC_2.12 __h_errno_location F
+GLIBC_2.12 __libc_allocate_rtsig F
+GLIBC_2.12 __libc_current_sigrtmax F
+GLIBC_2.12 __libc_current_sigrtmin F
+GLIBC_2.12 __lseek F
+GLIBC_2.12 __nanosleep F
+GLIBC_2.12 __open F
+GLIBC_2.12 __open64 F
+GLIBC_2.12 __pread64 F
+GLIBC_2.12 __pthread_cleanup_routine F
+GLIBC_2.12 __pthread_getspecific F
+GLIBC_2.12 __pthread_key_create F
+GLIBC_2.12 __pthread_mutex_destroy F
+GLIBC_2.12 __pthread_mutex_init F
+GLIBC_2.12 __pthread_mutex_lock F
+GLIBC_2.12 __pthread_mutex_trylock F
+GLIBC_2.12 __pthread_mutex_unlock F
+GLIBC_2.12 __pthread_mutexattr_destroy F
+GLIBC_2.12 __pthread_mutexattr_init F
+GLIBC_2.12 __pthread_mutexattr_settype F
+GLIBC_2.12 __pthread_once F
+GLIBC_2.12 __pthread_register_cancel F
+GLIBC_2.12 __pthread_register_cancel_defer F
+GLIBC_2.12 __pthread_rwlock_destroy F
+GLIBC_2.12 __pthread_rwlock_init F
+GLIBC_2.12 __pthread_rwlock_rdlock F
+GLIBC_2.12 __pthread_rwlock_tryrdlock F
+GLIBC_2.12 __pthread_rwlock_trywrlock F
+GLIBC_2.12 __pthread_rwlock_unlock F
+GLIBC_2.12 __pthread_rwlock_wrlock F
+GLIBC_2.12 __pthread_setspecific F
+GLIBC_2.12 __pthread_unregister_cancel F
+GLIBC_2.12 __pthread_unregister_cancel_restore F
+GLIBC_2.12 __pthread_unwind_next F
+GLIBC_2.12 __pwrite64 F
+GLIBC_2.12 __read F
+GLIBC_2.12 __res_state F
+GLIBC_2.12 __send F
+GLIBC_2.12 __sigaction F
+GLIBC_2.12 __vfork F
+GLIBC_2.12 __wait F
+GLIBC_2.12 __write F
+GLIBC_2.12 _pthread_cleanup_pop F
+GLIBC_2.12 _pthread_cleanup_pop_restore F
+GLIBC_2.12 _pthread_cleanup_push F
+GLIBC_2.12 _pthread_cleanup_push_defer F
+GLIBC_2.12 accept F
+GLIBC_2.12 close F
+GLIBC_2.12 connect F
+GLIBC_2.12 fcntl F
+GLIBC_2.12 flockfile F
+GLIBC_2.12 fork F
+GLIBC_2.12 fsync F
+GLIBC_2.12 ftrylockfile F
+GLIBC_2.12 funlockfile F
+GLIBC_2.12 longjmp F
+GLIBC_2.12 lseek F
+GLIBC_2.12 lseek64 F
+GLIBC_2.12 msync F
+GLIBC_2.12 nanosleep F
+GLIBC_2.12 open F
+GLIBC_2.12 open64 F
+GLIBC_2.12 pause F
+GLIBC_2.12 pread F
+GLIBC_2.12 pread64 F
+GLIBC_2.12 pthread_attr_destroy F
+GLIBC_2.12 pthread_attr_getaffinity_np F
+GLIBC_2.12 pthread_attr_getdetachstate F
+GLIBC_2.12 pthread_attr_getguardsize F
+GLIBC_2.12 pthread_attr_getinheritsched F
+GLIBC_2.12 pthread_attr_getschedparam F
+GLIBC_2.12 pthread_attr_getschedpolicy F
+GLIBC_2.12 pthread_attr_getscope F
+GLIBC_2.12 pthread_attr_getstack F
+GLIBC_2.12 pthread_attr_getstackaddr F
+GLIBC_2.12 pthread_attr_getstacksize F
+GLIBC_2.12 pthread_attr_init F
+GLIBC_2.12 pthread_attr_setaffinity_np F
+GLIBC_2.12 pthread_attr_setdetachstate F
+GLIBC_2.12 pthread_attr_setguardsize F
+GLIBC_2.12 pthread_attr_setinheritsched F
+GLIBC_2.12 pthread_attr_setschedparam F
+GLIBC_2.12 pthread_attr_setschedpolicy F
+GLIBC_2.12 pthread_attr_setscope F
+GLIBC_2.12 pthread_attr_setstack F
+GLIBC_2.12 pthread_attr_setstackaddr F
+GLIBC_2.12 pthread_attr_setstacksize F
+GLIBC_2.12 pthread_barrier_destroy F
+GLIBC_2.12 pthread_barrier_init F
+GLIBC_2.12 pthread_barrier_wait F
+GLIBC_2.12 pthread_barrierattr_destroy F
+GLIBC_2.12 pthread_barrierattr_getpshared F
+GLIBC_2.12 pthread_barrierattr_init F
+GLIBC_2.12 pthread_barrierattr_setpshared F
+GLIBC_2.12 pthread_cancel F
+GLIBC_2.12 pthread_cond_broadcast F
+GLIBC_2.12 pthread_cond_destroy F
+GLIBC_2.12 pthread_cond_init F
+GLIBC_2.12 pthread_cond_signal F
+GLIBC_2.12 pthread_cond_timedwait F
+GLIBC_2.12 pthread_cond_wait F
+GLIBC_2.12 pthread_condattr_destroy F
+GLIBC_2.12 pthread_condattr_getclock F
+GLIBC_2.12 pthread_condattr_getpshared F
+GLIBC_2.12 pthread_condattr_init F
+GLIBC_2.12 pthread_condattr_setclock F
+GLIBC_2.12 pthread_condattr_setpshared F
+GLIBC_2.12 pthread_create F
+GLIBC_2.12 pthread_detach F
+GLIBC_2.12 pthread_equal F
+GLIBC_2.12 pthread_exit F
+GLIBC_2.12 pthread_getaffinity_np F
+GLIBC_2.12 pthread_getattr_np F
+GLIBC_2.12 pthread_getconcurrency F
+GLIBC_2.12 pthread_getcpuclockid F
+GLIBC_2.12 pthread_getname_np F
+GLIBC_2.12 pthread_getschedparam F
+GLIBC_2.12 pthread_getspecific F
+GLIBC_2.12 pthread_join F
+GLIBC_2.12 pthread_key_create F
+GLIBC_2.12 pthread_key_delete F
+GLIBC_2.12 pthread_kill F
+GLIBC_2.12 pthread_kill_other_threads_np F
+GLIBC_2.12 pthread_mutex_consistent F
+GLIBC_2.12 pthread_mutex_consistent_np F
+GLIBC_2.12 pthread_mutex_destroy F
+GLIBC_2.12 pthread_mutex_getprioceiling F
+GLIBC_2.12 pthread_mutex_init F
+GLIBC_2.12 pthread_mutex_lock F
+GLIBC_2.12 pthread_mutex_setprioceiling F
+GLIBC_2.12 pthread_mutex_timedlock F
+GLIBC_2.12 pthread_mutex_trylock F
+GLIBC_2.12 pthread_mutex_unlock F
+GLIBC_2.12 pthread_mutexattr_destroy F
+GLIBC_2.12 pthread_mutexattr_getkind_np F
+GLIBC_2.12 pthread_mutexattr_getprioceiling F
+GLIBC_2.12 pthread_mutexattr_getprotocol F
+GLIBC_2.12 pthread_mutexattr_getpshared F
+GLIBC_2.12 pthread_mutexattr_getrobust F
+GLIBC_2.12 pthread_mutexattr_getrobust_np F
+GLIBC_2.12 pthread_mutexattr_gettype F
+GLIBC_2.12 pthread_mutexattr_init F
+GLIBC_2.12 pthread_mutexattr_setkind_np F
+GLIBC_2.12 pthread_mutexattr_setprioceiling F
+GLIBC_2.12 pthread_mutexattr_setprotocol F
+GLIBC_2.12 pthread_mutexattr_setpshared F
+GLIBC_2.12 pthread_mutexattr_setrobust F
+GLIBC_2.12 pthread_mutexattr_setrobust_np F
+GLIBC_2.12 pthread_mutexattr_settype F
+GLIBC_2.12 pthread_once F
+GLIBC_2.12 pthread_rwlock_destroy F
+GLIBC_2.12 pthread_rwlock_init F
+GLIBC_2.12 pthread_rwlock_rdlock F
+GLIBC_2.12 pthread_rwlock_timedrdlock F
+GLIBC_2.12 pthread_rwlock_timedwrlock F
+GLIBC_2.12 pthread_rwlock_tryrdlock F
+GLIBC_2.12 pthread_rwlock_trywrlock F
+GLIBC_2.12 pthread_rwlock_unlock F
+GLIBC_2.12 pthread_rwlock_wrlock F
+GLIBC_2.12 pthread_rwlockattr_destroy F
+GLIBC_2.12 pthread_rwlockattr_getkind_np F
+GLIBC_2.12 pthread_rwlockattr_getpshared F
+GLIBC_2.12 pthread_rwlockattr_init F
+GLIBC_2.12 pthread_rwlockattr_setkind_np F
+GLIBC_2.12 pthread_rwlockattr_setpshared F
+GLIBC_2.12 pthread_self F
+GLIBC_2.12 pthread_setaffinity_np F
+GLIBC_2.12 pthread_setcancelstate F
+GLIBC_2.12 pthread_setcanceltype F
+GLIBC_2.12 pthread_setconcurrency F
+GLIBC_2.12 pthread_setname_np F
+GLIBC_2.12 pthread_setschedparam F
+GLIBC_2.12 pthread_setschedprio F
+GLIBC_2.12 pthread_setspecific F
+GLIBC_2.12 pthread_sigmask F
+GLIBC_2.12 pthread_sigqueue F
+GLIBC_2.12 pthread_spin_destroy F
+GLIBC_2.12 pthread_spin_init F
+GLIBC_2.12 pthread_spin_lock F
+GLIBC_2.12 pthread_spin_trylock F
+GLIBC_2.12 pthread_spin_unlock F
+GLIBC_2.12 pthread_testcancel F
+GLIBC_2.12 pthread_timedjoin_np F
+GLIBC_2.12 pthread_tryjoin_np F
+GLIBC_2.12 pthread_yield F
+GLIBC_2.12 pwrite F
+GLIBC_2.12 pwrite64 F
+GLIBC_2.12 raise F
+GLIBC_2.12 read F
+GLIBC_2.12 recv F
+GLIBC_2.12 recvfrom F
+GLIBC_2.12 recvmsg F
+GLIBC_2.12 sem_close F
+GLIBC_2.12 sem_destroy F
+GLIBC_2.12 sem_getvalue F
+GLIBC_2.12 sem_init F
+GLIBC_2.12 sem_open F
+GLIBC_2.12 sem_post F
+GLIBC_2.12 sem_timedwait F
+GLIBC_2.12 sem_trywait F
+GLIBC_2.12 sem_unlink F
+GLIBC_2.12 sem_wait F
+GLIBC_2.12 send F
+GLIBC_2.12 sendmsg F
+GLIBC_2.12 sendto F
+GLIBC_2.12 sigaction F
+GLIBC_2.12 siglongjmp F
+GLIBC_2.12 sigwait F
+GLIBC_2.12 system F
+GLIBC_2.12 tcdrain F
+GLIBC_2.12 vfork F
+GLIBC_2.12 wait F
+GLIBC_2.12 waitpid F
+GLIBC_2.12 write F
+GLIBC_2.18 GLIBC_2.18 A
+GLIBC_2.18 pthread_getattr_default_np F
+GLIBC_2.18 pthread_setattr_default_np F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilepro/libresolv.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilepro/libresolv.abilist
new file mode 100644
index 0000000000..aa2fefa6e4
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilepro/libresolv.abilist
@@ -0,0 +1,92 @@
+GLIBC_2.12 GLIBC_2.12 A
+GLIBC_2.12 __b64_ntop F
+GLIBC_2.12 __b64_pton F
+GLIBC_2.12 __dn_comp F
+GLIBC_2.12 __dn_count_labels F
+GLIBC_2.12 __dn_expand F
+GLIBC_2.12 __dn_skipname F
+GLIBC_2.12 __fp_nquery F
+GLIBC_2.12 __fp_query F
+GLIBC_2.12 __fp_resstat F
+GLIBC_2.12 __hostalias F
+GLIBC_2.12 __loc_aton F
+GLIBC_2.12 __loc_ntoa F
+GLIBC_2.12 __p_cdname F
+GLIBC_2.12 __p_cdnname F
+GLIBC_2.12 __p_class F
+GLIBC_2.12 __p_class_syms D 0x54
+GLIBC_2.12 __p_fqname F
+GLIBC_2.12 __p_fqnname F
+GLIBC_2.12 __p_option F
+GLIBC_2.12 __p_query F
+GLIBC_2.12 __p_rcode F
+GLIBC_2.12 __p_secstodate F
+GLIBC_2.12 __p_time F
+GLIBC_2.12 __p_type F
+GLIBC_2.12 __p_type_syms D 0x228
+GLIBC_2.12 __putlong F
+GLIBC_2.12 __putshort F
+GLIBC_2.12 __res_close F
+GLIBC_2.12 __res_dnok F
+GLIBC_2.12 __res_hnok F
+GLIBC_2.12 __res_hostalias F
+GLIBC_2.12 __res_isourserver F
+GLIBC_2.12 __res_mailok F
+GLIBC_2.12 __res_mkquery F
+GLIBC_2.12 __res_nameinquery F
+GLIBC_2.12 __res_nmkquery F
+GLIBC_2.12 __res_nquery F
+GLIBC_2.12 __res_nquerydomain F
+GLIBC_2.12 __res_nsearch F
+GLIBC_2.12 __res_nsend F
+GLIBC_2.12 __res_ownok F
+GLIBC_2.12 __res_queriesmatch F
+GLIBC_2.12 __res_query F
+GLIBC_2.12 __res_querydomain F
+GLIBC_2.12 __res_search F
+GLIBC_2.12 __res_send F
+GLIBC_2.12 __sym_ntop F
+GLIBC_2.12 __sym_ntos F
+GLIBC_2.12 __sym_ston F
+GLIBC_2.12 _gethtbyaddr F
+GLIBC_2.12 _gethtbyname F
+GLIBC_2.12 _gethtbyname2 F
+GLIBC_2.12 _gethtent F
+GLIBC_2.12 _getlong F
+GLIBC_2.12 _getshort F
+GLIBC_2.12 _res_opcodes D 0x40
+GLIBC_2.12 _sethtent F
+GLIBC_2.12 inet_net_ntop F
+GLIBC_2.12 inet_net_pton F
+GLIBC_2.12 inet_neta F
+GLIBC_2.12 ns_datetosecs F
+GLIBC_2.12 ns_format_ttl F
+GLIBC_2.12 ns_get16 F
+GLIBC_2.12 ns_get32 F
+GLIBC_2.12 ns_initparse F
+GLIBC_2.12 ns_makecanon F
+GLIBC_2.12 ns_msg_getflag F
+GLIBC_2.12 ns_name_compress F
+GLIBC_2.12 ns_name_ntol F
+GLIBC_2.12 ns_name_ntop F
+GLIBC_2.12 ns_name_pack F
+GLIBC_2.12 ns_name_pton F
+GLIBC_2.12 ns_name_rollback F
+GLIBC_2.12 ns_name_skip F
+GLIBC_2.12 ns_name_uncompress F
+GLIBC_2.12 ns_name_unpack F
+GLIBC_2.12 ns_parse_ttl F
+GLIBC_2.12 ns_parserr F
+GLIBC_2.12 ns_put16 F
+GLIBC_2.12 ns_put32 F
+GLIBC_2.12 ns_samedomain F
+GLIBC_2.12 ns_samename F
+GLIBC_2.12 ns_skiprr F
+GLIBC_2.12 ns_sprintrr F
+GLIBC_2.12 ns_sprintrrf F
+GLIBC_2.12 ns_subdomain F
+GLIBC_2.12 res_gethostbyaddr F
+GLIBC_2.12 res_gethostbyname F
+GLIBC_2.12 res_gethostbyname2 F
+GLIBC_2.12 res_send_setqhook F
+GLIBC_2.12 res_send_setrhook F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilepro/librt.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilepro/librt.abilist
new file mode 100644
index 0000000000..14f5c8245d
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilepro/librt.abilist
@@ -0,0 +1,41 @@
+GLIBC_2.12 GLIBC_2.12 A
+GLIBC_2.12 __mq_open_2 F
+GLIBC_2.12 aio_cancel F
+GLIBC_2.12 aio_cancel64 F
+GLIBC_2.12 aio_error F
+GLIBC_2.12 aio_error64 F
+GLIBC_2.12 aio_fsync F
+GLIBC_2.12 aio_fsync64 F
+GLIBC_2.12 aio_init F
+GLIBC_2.12 aio_read F
+GLIBC_2.12 aio_read64 F
+GLIBC_2.12 aio_return F
+GLIBC_2.12 aio_return64 F
+GLIBC_2.12 aio_suspend F
+GLIBC_2.12 aio_suspend64 F
+GLIBC_2.12 aio_write F
+GLIBC_2.12 aio_write64 F
+GLIBC_2.12 clock_getcpuclockid F
+GLIBC_2.12 clock_getres F
+GLIBC_2.12 clock_gettime F
+GLIBC_2.12 clock_nanosleep F
+GLIBC_2.12 clock_settime F
+GLIBC_2.12 lio_listio F
+GLIBC_2.12 lio_listio64 F
+GLIBC_2.12 mq_close F
+GLIBC_2.12 mq_getattr F
+GLIBC_2.12 mq_notify F
+GLIBC_2.12 mq_open F
+GLIBC_2.12 mq_receive F
+GLIBC_2.12 mq_send F
+GLIBC_2.12 mq_setattr F
+GLIBC_2.12 mq_timedreceive F
+GLIBC_2.12 mq_timedsend F
+GLIBC_2.12 mq_unlink F
+GLIBC_2.12 shm_open F
+GLIBC_2.12 shm_unlink F
+GLIBC_2.12 timer_create F
+GLIBC_2.12 timer_delete F
+GLIBC_2.12 timer_getoverrun F
+GLIBC_2.12 timer_gettime F
+GLIBC_2.12 timer_settime F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilepro/libthread_db.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilepro/libthread_db.abilist
new file mode 100644
index 0000000000..4aade0b7e0
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilepro/libthread_db.abilist
@@ -0,0 +1,41 @@
+GLIBC_2.12 GLIBC_2.12 A
+GLIBC_2.12 td_init F
+GLIBC_2.12 td_log F
+GLIBC_2.12 td_symbol_list F
+GLIBC_2.12 td_ta_clear_event F
+GLIBC_2.12 td_ta_delete F
+GLIBC_2.12 td_ta_enable_stats F
+GLIBC_2.12 td_ta_event_addr F
+GLIBC_2.12 td_ta_event_getmsg F
+GLIBC_2.12 td_ta_get_nthreads F
+GLIBC_2.12 td_ta_get_ph F
+GLIBC_2.12 td_ta_get_stats F
+GLIBC_2.12 td_ta_map_id2thr F
+GLIBC_2.12 td_ta_map_lwp2thr F
+GLIBC_2.12 td_ta_new F
+GLIBC_2.12 td_ta_reset_stats F
+GLIBC_2.12 td_ta_set_event F
+GLIBC_2.12 td_ta_setconcurrency F
+GLIBC_2.12 td_ta_thr_iter F
+GLIBC_2.12 td_ta_tsd_iter F
+GLIBC_2.12 td_thr_clear_event F
+GLIBC_2.12 td_thr_dbresume F
+GLIBC_2.12 td_thr_dbsuspend F
+GLIBC_2.12 td_thr_event_enable F
+GLIBC_2.12 td_thr_event_getmsg F
+GLIBC_2.12 td_thr_get_info F
+GLIBC_2.12 td_thr_getfpregs F
+GLIBC_2.12 td_thr_getgregs F
+GLIBC_2.12 td_thr_getxregs F
+GLIBC_2.12 td_thr_getxregsize F
+GLIBC_2.12 td_thr_set_event F
+GLIBC_2.12 td_thr_setfpregs F
+GLIBC_2.12 td_thr_setgregs F
+GLIBC_2.12 td_thr_setprio F
+GLIBC_2.12 td_thr_setsigpending F
+GLIBC_2.12 td_thr_setxregs F
+GLIBC_2.12 td_thr_sigsetmask F
+GLIBC_2.12 td_thr_tls_get_addr F
+GLIBC_2.12 td_thr_tlsbase F
+GLIBC_2.12 td_thr_tsd F
+GLIBC_2.12 td_thr_validate F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilepro/libutil.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilepro/libutil.abilist
new file mode 100644
index 0000000000..e4d432643c
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilepro/libutil.abilist
@@ -0,0 +1,7 @@
+GLIBC_2.12 GLIBC_2.12 A
+GLIBC_2.12 forkpty F
+GLIBC_2.12 login F
+GLIBC_2.12 login_tty F
+GLIBC_2.12 logout F
+GLIBC_2.12 logwtmp F
+GLIBC_2.12 openpty F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilepro/register-dump.h b/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilepro/register-dump.h
new file mode 100644
index 0000000000..da48526c83
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/tile/tilepro/register-dump.h
@@ -0,0 +1,111 @@
+/* Copyright (C) 2011-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
+ Based on work contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sys/uio.h>
+#include <_itoa.h>
+
+/* We will print the register dump in this format:
+
+ R0: XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
+ R8: XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
+ R16: XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
+ R24: XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
+ R32: XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
+ R40: XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
+ R48: XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
+ R52: XXXXXXXX TP: XXXXXXXX SP: XXXXXXXX LR: XXXXXXXX
+
+ PC: XXXXXXXX ICS: X FAULTNUM: XX
+
+ */
+
+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, mcontext_t *ctx)
+{
+ char regs[59][8];
+ struct iovec iov[143];
+ size_t nr = 0;
+ unsigned int i;
+
+#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. */
+ for (i = 0; i < 56; ++i)
+ hexvalue (ctx->gregs[i], regs[i], 8);
+ hexvalue (ctx->pc, regs[56], 8);
+ hexvalue (ctx->ics, regs[57], 1);
+ hexvalue (ctx->faultnum, regs[58], 2);
+
+ /* Generate the output. */
+ for (i = 0; i < 52;)
+ {
+ const char *prefixes[] = {
+ "Register dump:\n\n R0: ",
+ "\n R8: ",
+ "\n R16: ",
+ "\n R24: ",
+ "\n R32: ",
+ "\n R40: ",
+ "\n R48: "
+ };
+ ADD_STRING (prefixes[i / 8]);
+ do
+ {
+ ADD_MEM (regs[i], 8);
+ ADD_STRING (" ");
+ }
+ while (++i % 8 && i < 52);
+ }
+ ADD_STRING ("\n R52: ");
+ ADD_MEM (regs[52], 8);
+ ADD_STRING (" TP: ");
+ ADD_MEM (regs[53], 8);
+ ADD_STRING (" SP: ");
+ ADD_MEM (regs[54], 8);
+ ADD_STRING (" LR: ");
+ ADD_MEM (regs[55], 8);
+ ADD_STRING ("\n\n PC: ");
+ ADD_MEM (regs[56], 8);
+ ADD_STRING (" ICS: ");
+ ADD_MEM (regs[57], 1);
+ ADD_STRING (" FAULTNUM: ");
+ ADD_MEM (regs[58], 2);
+ ADD_STRING ("\n");
+
+ /* Write the stuff out. */
+ writev (fd, iov, nr);
+}
+
+
+#define REGISTER_DUMP register_dump (fd, &ctx->uc_mcontext)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/tile/ucontext_i.h b/REORG.TODO/sysdeps/unix/sysv/linux/tile/ucontext_i.h
new file mode 100644
index 0000000000..3b26be5429
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/tile/ucontext_i.h
@@ -0,0 +1,42 @@
+/* Copyright (C) 2011-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
+
+ 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/>. */
+
+/* Definitions of offsets within the ucontext_t structure. Note
+ that for convenience we use __SIZEOF_POINTER__ for "long" and
+ "ssize_t" fields (and their unsigned counterparts) as well. */
+
+#define UC_FLAGS_OFFSET 0
+#define UC_LINK_OFFSET (UC_FLAGS_OFFSET + __SIZEOF_POINTER__)
+#define UC_STACK_SP_OFFSET (UC_LINK_OFFSET + __SIZEOF_POINTER__)
+#define UC_STACK_FLAGS_OFFSET (UC_STACK_SP_OFFSET + __SIZEOF_POINTER__)
+#define UC_STACK_SIZE_OFFSET (UC_STACK_FLAGS_OFFSET + __SIZEOF_POINTER__)
+#define UC_STACK_MCONTEXT_OFFSET \
+ ((UC_STACK_SIZE_OFFSET + __SIZEOF_POINTER__ + REGSIZE - 1) & -REGSIZE)
+#define UC_REG(i) (UC_STACK_MCONTEXT_OFFSET + ((i) * REGSIZE))
+#define UC_NREGS 64
+#define UC_SIGMASK_OFFSET UC_REG(UC_NREGS)
+#define UC_SIZE (UC_SIGMASK_OFFSET + (_NSIG / 8))
+
+/* From <asm/siginfo.h> */
+#define SI_MAX_SIZE 128
+
+/* From <asm/signal.h> */
+#define _NSIG 64
+#define SIG_BLOCK 0 /* for blocking signals */
+#define SIG_UNBLOCK 1 /* for unblocking signals */
+#define SIG_SETMASK 2 /* for setting the signal mask */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/tile/vfork.S b/REORG.TODO/sysdeps/unix/sysv/linux/tile/vfork.S
new file mode 100644
index 0000000000..725bd4b939
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/tile/vfork.S
@@ -0,0 +1,49 @@
+/* Copyright (C) 2011-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
+
+ 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 __ASSEMBLY__ /* for kernel headers */
+#include <linux/sched.h>
+#include <asm/signal.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. */
+
+ .text
+ENTRY (__vfork)
+ {
+ moveli r0, CLONE_VFORK | CLONE_VM | SIGCHLD
+ move r1, zero
+ }
+ {
+ move r2, zero
+ move r3, zero
+ }
+ moveli TREG_SYSCALL_NR_NAME, __NR_clone
+ swint1
+
+ BNEZ r1, 0f
+ jrp lr
+PSEUDO_END (__vfork)
+libc_hidden_def (__vfork)
+
+weak_alias (__vfork, vfork)
+strong_alias (__vfork, __libc_vfork)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/time.c b/REORG.TODO/sysdeps/unix/sysv/linux/time.c
new file mode 100644
index 0000000000..72d4040cbc
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/time.c
@@ -0,0 +1,41 @@
+/* Copyright (C) 2005-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <stddef.h>
+#include <time.h>
+
+#include <sysdep.h>
+
+#ifdef __NR_time
+
+time_t
+time (time_t *t)
+{
+ INTERNAL_SYSCALL_DECL (err);
+ time_t res = INTERNAL_SYSCALL (time, err, 1, NULL);
+ /* There cannot be any error. */
+ if (t != NULL)
+ *t = res;
+ return res;
+}
+libc_hidden_def (time)
+
+#else
+
+# include <sysdeps/posix/time.c>
+
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/timer_create.c b/REORG.TODO/sysdeps/unix/sysv/linux/timer_create.c
new file mode 100644
index 0000000000..48a703c065
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/timer_create.c
@@ -0,0 +1,176 @@
+/* Copyright (C) 2003-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@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; see the file COPYING.LIB. If
+ not, see <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <pthread.h>
+#include <signal.h>
+#include <stdlib.h>
+#include <string.h>
+#include <time.h>
+#include <sysdep.h>
+#include <internaltypes.h>
+#include <nptl/pthreadP.h>
+#include "kernel-posix-timers.h"
+#include "kernel-posix-cpu-timers.h"
+
+
+#ifdef timer_create_alias
+# define timer_create timer_create_alias
+#endif
+
+
+int
+timer_create (clockid_t clock_id, struct sigevent *evp, timer_t *timerid)
+{
+#undef timer_create
+ {
+ clockid_t syscall_clockid = (clock_id == CLOCK_PROCESS_CPUTIME_ID
+ ? MAKE_PROCESS_CPUCLOCK (0, CPUCLOCK_SCHED)
+ : clock_id == CLOCK_THREAD_CPUTIME_ID
+ ? MAKE_THREAD_CPUCLOCK (0, CPUCLOCK_SCHED)
+ : clock_id);
+
+ /* If the user wants notification via a thread we need to handle
+ this special. */
+ if (evp == NULL
+ || __builtin_expect (evp->sigev_notify != SIGEV_THREAD, 1))
+ {
+ struct sigevent local_evp;
+
+ /* We avoid allocating too much memory by basically
+ using struct timer as a derived class with the
+ first two elements being in the superclass. We only
+ need these two elements here. */
+ struct timer *newp = (struct timer *) malloc (offsetof (struct timer,
+ thrfunc));
+ if (newp == NULL)
+ /* No more memory. */
+ return -1;
+
+ if (evp == NULL)
+ {
+ /* The kernel has to pass up the timer ID which is a
+ userlevel object. Therefore we cannot leave it up to
+ the kernel to determine it. */
+ local_evp.sigev_notify = SIGEV_SIGNAL;
+ local_evp.sigev_signo = SIGALRM;
+ local_evp.sigev_value.sival_ptr = newp;
+
+ evp = &local_evp;
+ }
+
+ kernel_timer_t ktimerid;
+ int retval = INLINE_SYSCALL (timer_create, 3, syscall_clockid, evp,
+ &ktimerid);
+
+ if (retval != -1)
+ {
+ newp->sigev_notify = (evp != NULL
+ ? evp->sigev_notify : SIGEV_SIGNAL);
+ newp->ktimerid = ktimerid;
+
+ *timerid = (timer_t) newp;
+ }
+ else
+ {
+ /* Cannot allocate the timer, fail. */
+ free (newp);
+ retval = -1;
+ }
+
+ return retval;
+ }
+ else
+ {
+ /* Create the helper thread. */
+ pthread_once (&__helper_once, __start_helper_thread);
+ if (__helper_tid == 0)
+ {
+ /* No resources to start the helper thread. */
+ __set_errno (EAGAIN);
+ return -1;
+ }
+
+ struct timer *newp;
+ newp = (struct timer *) malloc (sizeof (struct timer));
+ if (newp == NULL)
+ return -1;
+
+ /* Copy the thread parameters the user provided. */
+ newp->sival = evp->sigev_value;
+ newp->thrfunc = evp->sigev_notify_function;
+ newp->sigev_notify = SIGEV_THREAD;
+
+ /* We cannot simply copy the thread attributes since the
+ implementation might keep internal information for
+ each instance. */
+ (void) pthread_attr_init (&newp->attr);
+ if (evp->sigev_notify_attributes != NULL)
+ {
+ struct pthread_attr *nattr;
+ struct pthread_attr *oattr;
+
+ nattr = (struct pthread_attr *) &newp->attr;
+ oattr = (struct pthread_attr *) evp->sigev_notify_attributes;
+
+ nattr->schedparam = oattr->schedparam;
+ nattr->schedpolicy = oattr->schedpolicy;
+ nattr->flags = oattr->flags;
+ nattr->guardsize = oattr->guardsize;
+ nattr->stackaddr = oattr->stackaddr;
+ nattr->stacksize = oattr->stacksize;
+ }
+
+ /* In any case set the detach flag. */
+ (void) pthread_attr_setdetachstate (&newp->attr,
+ PTHREAD_CREATE_DETACHED);
+
+ /* Create the event structure for the kernel timer. */
+ struct sigevent sev =
+ { .sigev_value.sival_ptr = newp,
+ .sigev_signo = SIGTIMER,
+ .sigev_notify = SIGEV_SIGNAL | SIGEV_THREAD_ID,
+ ._sigev_un = { ._pad = { [0] = __helper_tid } } };
+
+ /* Create the timer. */
+ INTERNAL_SYSCALL_DECL (err);
+ int res;
+ res = INTERNAL_SYSCALL (timer_create, err, 3,
+ syscall_clockid, &sev, &newp->ktimerid);
+ if (! INTERNAL_SYSCALL_ERROR_P (res, err))
+ {
+ /* Add to the queue of active timers with thread
+ delivery. */
+ pthread_mutex_lock (&__active_timer_sigev_thread_lock);
+ newp->next = __active_timer_sigev_thread;
+ __active_timer_sigev_thread = newp;
+ pthread_mutex_unlock (&__active_timer_sigev_thread_lock);
+
+ *timerid = (timer_t) newp;
+ return 0;
+ }
+
+ /* Free the resources. */
+ free (newp);
+
+ __set_errno (INTERNAL_SYSCALL_ERRNO (res, err));
+
+ return -1;
+ }
+ }
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/timer_delete.c b/REORG.TODO/sysdeps/unix/sysv/linux/timer_delete.c
new file mode 100644
index 0000000000..9ef06c429e
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/timer_delete.c
@@ -0,0 +1,72 @@
+/* Copyright (C) 2003-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@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; see the file COPYING.LIB. If
+ not, see <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <stdlib.h>
+#include <time.h>
+#include <sysdep.h>
+#include "kernel-posix-timers.h"
+
+
+#ifdef timer_delete_alias
+# define timer_delete timer_delete_alias
+#endif
+
+
+int
+timer_delete (timer_t timerid)
+{
+#undef timer_delete
+ struct timer *kt = (struct timer *) timerid;
+
+ /* Delete the kernel timer object. */
+ int res = INLINE_SYSCALL (timer_delete, 1, kt->ktimerid);
+
+ if (res == 0)
+ {
+ if (kt->sigev_notify == SIGEV_THREAD)
+ {
+ /* Remove the timer from the list. */
+ pthread_mutex_lock (&__active_timer_sigev_thread_lock);
+ if (__active_timer_sigev_thread == kt)
+ __active_timer_sigev_thread = kt->next;
+ else
+ {
+ struct timer *prevp = __active_timer_sigev_thread;
+ while (prevp->next != NULL)
+ if (prevp->next == kt)
+ {
+ prevp->next = kt->next;
+ break;
+ }
+ else
+ prevp = prevp->next;
+ }
+ pthread_mutex_unlock (&__active_timer_sigev_thread_lock);
+ }
+
+ /* Free the memory. */
+ (void) free (kt);
+
+ return 0;
+ }
+
+ /* The kernel timer is not known or something else bad happened.
+ Return the error. */
+ return -1;
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/timer_getoverr.c b/REORG.TODO/sysdeps/unix/sysv/linux/timer_getoverr.c
new file mode 100644
index 0000000000..a520fb653b
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/timer_getoverr.c
@@ -0,0 +1,40 @@
+/* Copyright (C) 2003-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@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; see the file COPYING.LIB. If
+ not, see <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <time.h>
+#include <sysdep.h>
+#include "kernel-posix-timers.h"
+
+
+#ifdef timer_getoverrun_alias
+# define timer_getoverrun timer_getoverrun_alias
+#endif
+
+
+int
+timer_getoverrun (timer_t timerid)
+{
+#undef timer_getoverrun
+ struct timer *kt = (struct timer *) timerid;
+
+ /* Get the information from the kernel. */
+ int res = INLINE_SYSCALL (timer_getoverrun, 1, kt->ktimerid);
+
+ return res;
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/timer_gettime.c b/REORG.TODO/sysdeps/unix/sysv/linux/timer_gettime.c
new file mode 100644
index 0000000000..849c56a30a
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/timer_gettime.c
@@ -0,0 +1,41 @@
+/* Copyright (C) 2003-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@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; see the file COPYING.LIB. If
+ not, see <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <stdlib.h>
+#include <time.h>
+#include <sysdep.h>
+#include "kernel-posix-timers.h"
+
+
+#ifdef timer_gettime_alias
+# define timer_gettime timer_gettime_alias
+#endif
+
+
+int
+timer_gettime (timer_t timerid, struct itimerspec *value)
+{
+#undef timer_gettime
+ struct timer *kt = (struct timer *) timerid;
+
+ /* Delete the kernel timer object. */
+ int res = INLINE_SYSCALL (timer_gettime, 2, kt->ktimerid, value);
+
+ return res;
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/timer_routines.c b/REORG.TODO/sysdeps/unix/sysv/linux/timer_routines.c
new file mode 100644
index 0000000000..1d81304678
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/timer_routines.c
@@ -0,0 +1,191 @@
+/* Copyright (C) 2003-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@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; see the file COPYING.LIB. If
+ not, see <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <setjmp.h>
+#include <signal.h>
+#include <stdbool.h>
+#include <sysdep-cancel.h>
+#include <nptl/pthreadP.h>
+#include "kernel-posix-timers.h"
+
+
+/* List of active SIGEV_THREAD timers. */
+struct timer *__active_timer_sigev_thread;
+/* Lock for the __active_timer_sigev_thread. */
+pthread_mutex_t __active_timer_sigev_thread_lock = PTHREAD_MUTEX_INITIALIZER;
+
+
+struct thread_start_data
+{
+ void (*thrfunc) (sigval_t);
+ sigval_t sival;
+};
+
+
+/* Helper thread to call the user-provided function. */
+static void *
+timer_sigev_thread (void *arg)
+{
+ /* The parent thread has all signals blocked. This is a bit
+ surprising for user code, although valid. We unblock all
+ signals. */
+ sigset_t ss;
+ sigemptyset (&ss);
+ INTERNAL_SYSCALL_DECL (err);
+ INTERNAL_SYSCALL (rt_sigprocmask, err, 4, SIG_SETMASK, &ss, NULL, _NSIG / 8);
+
+ struct thread_start_data *td = (struct thread_start_data *) arg;
+
+ void (*thrfunc) (sigval_t) = td->thrfunc;
+ sigval_t sival = td->sival;
+
+ /* The TD object was allocated in timer_helper_thread. */
+ free (td);
+
+ /* Call the user-provided function. */
+ thrfunc (sival);
+
+ return NULL;
+}
+
+
+/* Helper function to support starting threads for SIGEV_THREAD. */
+static void *
+timer_helper_thread (void *arg)
+{
+ /* Wait for the SIGTIMER signal, allowing the setXid signal, and
+ none else. */
+ sigset_t ss;
+ sigemptyset (&ss);
+ __sigaddset (&ss, SIGTIMER);
+
+ /* Endless loop of waiting for signals. The loop is only ended when
+ the thread is canceled. */
+ while (1)
+ {
+ siginfo_t si;
+
+ /* sigwaitinfo cannot be used here, since it deletes
+ SIGCANCEL == SIGTIMER from the set. */
+
+ /* XXX The size argument hopefully will have to be changed to the
+ real size of the user-level sigset_t. */
+ int result = SYSCALL_CANCEL (rt_sigtimedwait, &ss, &si, NULL, _NSIG / 8);
+
+ if (result > 0)
+ {
+ if (si.si_code == SI_TIMER)
+ {
+ struct timer *tk = (struct timer *) si.si_ptr;
+
+ /* Check the timer is still used and will not go away
+ while we are reading the values here. */
+ pthread_mutex_lock (&__active_timer_sigev_thread_lock);
+
+ struct timer *runp = __active_timer_sigev_thread;
+ while (runp != NULL)
+ if (runp == tk)
+ break;
+ else
+ runp = runp->next;
+
+ if (runp != NULL)
+ {
+ struct thread_start_data *td = malloc (sizeof (*td));
+
+ /* There is not much we can do if the allocation fails. */
+ if (td != NULL)
+ {
+ /* This is the signal we are waiting for. */
+ td->thrfunc = tk->thrfunc;
+ td->sival = tk->sival;
+
+ pthread_t th;
+ (void) pthread_create (&th, &tk->attr,
+ timer_sigev_thread, td);
+ }
+ }
+
+ pthread_mutex_unlock (&__active_timer_sigev_thread_lock);
+ }
+ else if (si.si_code == SI_TKILL)
+ /* The thread is canceled. */
+ pthread_exit (NULL);
+ }
+ }
+}
+
+
+/* Control variable for helper thread creation. */
+pthread_once_t __helper_once attribute_hidden;
+
+
+/* TID of the helper thread. */
+pid_t __helper_tid attribute_hidden;
+
+
+/* Reset variables so that after a fork a new helper thread gets started. */
+static void
+reset_helper_control (void)
+{
+ __helper_once = PTHREAD_ONCE_INIT;
+ __helper_tid = 0;
+}
+
+
+void
+attribute_hidden
+__start_helper_thread (void)
+{
+ /* The helper thread needs only very little resources
+ and should go away automatically when canceled. */
+ pthread_attr_t attr;
+ (void) pthread_attr_init (&attr);
+ (void) pthread_attr_setstacksize (&attr, __pthread_get_minstack (&attr));
+
+ /* Block all signals in the helper thread but SIGSETXID. To do this
+ thoroughly we temporarily have to block all signals here. The
+ helper can lose wakeups if SIGCANCEL is not blocked throughout,
+ but sigfillset omits it SIGSETXID. So, we add SIGCANCEL back
+ explicitly here. */
+ sigset_t ss;
+ sigset_t oss;
+ sigfillset (&ss);
+ __sigaddset (&ss, SIGCANCEL);
+ INTERNAL_SYSCALL_DECL (err);
+ INTERNAL_SYSCALL (rt_sigprocmask, err, 4, SIG_SETMASK, &ss, &oss, _NSIG / 8);
+
+ /* Create the helper thread for this timer. */
+ pthread_t th;
+ int res = pthread_create (&th, &attr, timer_helper_thread, NULL);
+ if (res == 0)
+ /* We managed to start the helper thread. */
+ __helper_tid = ((struct pthread *) th)->tid;
+
+ /* Restore the signal mask. */
+ INTERNAL_SYSCALL (rt_sigprocmask, err, 4, SIG_SETMASK, &oss, NULL,
+ _NSIG / 8);
+
+ /* No need for the attribute anymore. */
+ (void) pthread_attr_destroy (&attr);
+
+ /* We have to make sure that after fork()ing a new helper thread can
+ be created. */
+ pthread_atfork (NULL, NULL, reset_helper_control);
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/timer_settime.c b/REORG.TODO/sysdeps/unix/sysv/linux/timer_settime.c
new file mode 100644
index 0000000000..ba35036355
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/timer_settime.c
@@ -0,0 +1,43 @@
+/* Copyright (C) 2003-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@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; see the file COPYING.LIB. If
+ not, see <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <stdlib.h>
+#include <time.h>
+#include <sysdep.h>
+#include "kernel-posix-timers.h"
+
+
+#ifdef timer_settime_alias
+# define timer_settime timer_settime_alias
+#endif
+
+
+int
+timer_settime (timer_t timerid, int flags, const struct itimerspec *value,
+ struct itimerspec *ovalue)
+{
+#undef timer_settime
+ struct timer *kt = (struct timer *) timerid;
+
+ /* Delete the kernel timer object. */
+ int res = INLINE_SYSCALL (timer_settime, 4, kt->ktimerid, flags,
+ value, ovalue);
+
+ return res;
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/times.c b/REORG.TODO/sysdeps/unix/sysv/linux/times.c
new file mode 100644
index 0000000000..63c8bf8ff0
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/times.c
@@ -0,0 +1,67 @@
+/* Copyright (C) 2008-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <sys/times.h>
+#include <sysdep.h>
+
+
+clock_t
+__times (struct tms *buf)
+{
+ INTERNAL_SYSCALL_DECL (err);
+ clock_t ret = INTERNAL_SYSCALL (times, err, 1, buf);
+ if (INTERNAL_SYSCALL_ERROR_P (ret, err)
+ && __builtin_expect (INTERNAL_SYSCALL_ERRNO (ret, err) == EFAULT, 0)
+ && buf)
+ {
+ /* This might be an error or not. For architectures which have no
+ separate return value and error indicators we cannot
+ distinguish a return value of e.g. (clock_t) -14 from -EFAULT.
+ Therefore the only course of action is to dereference the user
+ -supplied structure on a return of (clock_t) -14. This will crash
+ applications which pass in an invalid non-NULL BUF pointer.
+ Note that Linux allows BUF to be NULL in which case we skip this. */
+#define touch(v) \
+ do { \
+ clock_t temp = v; \
+ asm volatile ("" : "+r" (temp)); \
+ v = temp; \
+ } while (0)
+ touch (buf->tms_utime);
+ touch (buf->tms_stime);
+ touch (buf->tms_cutime);
+ touch (buf->tms_cstime);
+
+ /* If we come here the memory is valid and the kernel did not
+ return an EFAULT error, but rather e.g. (clock_t) -14.
+ Return the value given by the kernel. */
+ }
+
+ /* On Linux this function never fails except with EFAULT.
+ POSIX says that returning a value (clock_t) -1 indicates an error,
+ but on Linux this is simply one of the valid clock values after
+ clock_t wraps. Therefore when we would return (clock_t) -1, we
+ instead return (clock_t) 0, and loose a tick of accuracy (having
+ returned 0 for two consecutive calls even though the clock
+ advanced). */
+ if (ret == (clock_t) -1)
+ return (clock_t) 0;
+
+ return ret;
+}
+weak_alias (__times, times)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/timespec_get.c b/REORG.TODO/sysdeps/unix/sysv/linux/timespec_get.c
new file mode 100644
index 0000000000..1f63e57e39
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/timespec_get.c
@@ -0,0 +1,46 @@
+/* Copyright (C) 2011-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License.
+
+ 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 <time.h>
+#include <sysdep.h>
+#include <errno.h>
+
+#ifdef HAVE_CLOCK_GETTIME_VSYSCALL
+# define HAVE_VSYSCALL
+#endif
+#include <sysdep-vdso.h>
+
+/* Set TS to calendar time based in time base BASE. */
+int
+timespec_get (struct timespec *ts, int base)
+{
+ switch (base)
+ {
+ int res;
+ INTERNAL_SYSCALL_DECL (err);
+ case TIME_UTC:
+ res = INTERNAL_VSYSCALL (clock_gettime, err, 2, CLOCK_REALTIME, ts);
+ if (INTERNAL_SYSCALL_ERROR_P (res, err))
+ return 0;
+ break;
+
+ default:
+ return 0;
+ }
+
+ return base;
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/truncate.c b/REORG.TODO/sysdeps/unix/sysv/linux/truncate.c
new file mode 100644
index 0000000000..d6bf764ea5
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/truncate.c
@@ -0,0 +1,35 @@
+/* Copyright (C) 2016-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <unistd.h>
+#include <sysdep.h>
+#include <errno.h>
+
+#ifndef __OFF_T_MATCHES_OFF64_T
+/* Truncate PATH to LENGTH bytes. */
+int
+__truncate (const char *path, off_t length)
+{
+# ifndef __NR_truncate
+ return INLINE_SYSCALL_CALL (truncate64, path,
+ __ALIGNMENT_ARG SYSCALL_LL (length));
+# else
+ return INLINE_SYSCALL_CALL (truncate, path, length);
+# endif
+}
+weak_alias (__truncate, truncate)
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/truncate64.c b/REORG.TODO/sysdeps/unix/sysv/linux/truncate64.c
new file mode 100644
index 0000000000..9ea03c6bed
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/truncate64.c
@@ -0,0 +1,37 @@
+/* Copyright (C) 1997-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <unistd.h>
+#include <sysdep.h>
+#include <errno.h>
+
+#ifndef __NR_truncate64
+# define __NR_truncate64 __NR_truncate
+#endif
+
+/* Truncate PATH to LENGTH bytes. */
+int
+__truncate64 (const char *path, off64_t length)
+{
+ return INLINE_SYSCALL_CALL (truncate64, path,
+ __ALIGNMENT_ARG SYSCALL_LL64 (length));
+}
+weak_alias (__truncate64, truncate64)
+
+#ifdef __OFF_T_MATCHES_OFF64_T
+weak_alias (__truncate64, truncate);
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/tst-affinity-pid.c b/REORG.TODO/sysdeps/unix/sysv/linux/tst-affinity-pid.c
new file mode 100644
index 0000000000..8874c8ee67
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/tst-affinity-pid.c
@@ -0,0 +1,201 @@
+/* Test for sched_getaffinity and sched_setaffinity, PID version.
+ Copyright (C) 2015-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+/* Function definitions for the benefit of tst-skeleton-affinity.c.
+ This variant forks a child process which then invokes
+ sched_getaffinity and sched_setaffinity on the parent PID. */
+
+#include <errno.h>
+#include <stdlib.h>
+#include <sched.h>
+#include <stdbool.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <sys/wait.h>
+#include <unistd.h>
+
+static int
+write_fully (int fd, const void *buffer, size_t length)
+{
+ const void *end = buffer + length;
+ while (buffer < end)
+ {
+ ssize_t bytes_written = TEMP_FAILURE_RETRY
+ (write (fd, buffer, end - buffer));
+ if (bytes_written < 0)
+ return -1;
+ if (bytes_written == 0)
+ {
+ errno = ENOSPC;
+ return -1;
+ }
+ buffer += bytes_written;
+ }
+ return 0;
+}
+
+static ssize_t
+read_fully (int fd, void *buffer, size_t length)
+{
+ const void *start = buffer;
+ const void *end = buffer + length;
+ while (buffer < end)
+ {
+ ssize_t bytes_read = TEMP_FAILURE_RETRY
+ (read (fd, buffer, end - buffer));
+ if (bytes_read < 0)
+ return -1;
+ if (bytes_read == 0)
+ return buffer - start;
+ buffer += bytes_read;
+ }
+ return length;
+}
+
+static int
+process_child_response (int *pipes, pid_t child,
+ cpu_set_t *set, size_t size)
+{
+ close (pipes[1]);
+
+ int value_from_child;
+ ssize_t bytes_read = read_fully
+ (pipes[0], &value_from_child, sizeof (value_from_child));
+ if (bytes_read < 0)
+ {
+ printf ("error: read from child: %m\n");
+ exit (1);
+ }
+ if (bytes_read != sizeof (value_from_child))
+ {
+ printf ("error: not enough bytes from child: %zd\n", bytes_read);
+ exit (1);
+ }
+ if (value_from_child == 0)
+ {
+ bytes_read = read_fully (pipes[0], set, size);
+ if (bytes_read < 0)
+ {
+ printf ("error: read: %m\n");
+ exit (1);
+ }
+ if (bytes_read != size)
+ {
+ printf ("error: not enough bytes from child: %zd\n", bytes_read);
+ exit (1);
+ }
+ }
+
+ int status;
+ if (waitpid (child, &status, 0) < 0)
+ {
+ printf ("error: waitpid: %m\n");
+ exit (1);
+ }
+ if (!(WIFEXITED (status) && WEXITSTATUS (status) == 0))
+ {
+ printf ("error: invalid status from : %m\n");
+ exit (1);
+ }
+
+ close (pipes[0]);
+
+ if (value_from_child != 0)
+ {
+ errno = value_from_child;
+ return -1;
+ }
+ return 0;
+}
+
+static int
+getaffinity (size_t size, cpu_set_t *set)
+{
+ int pipes[2];
+ if (pipe (pipes) < 0)
+ {
+ printf ("error: pipe: %m\n");
+ exit (1);
+ }
+
+ int ret = fork ();
+ if (ret < 0)
+ {
+ printf ("error: fork: %m\n");
+ exit (1);
+ }
+ if (ret == 0)
+ {
+ /* Child. */
+ int ret = sched_getaffinity (getppid (), size, set);
+ if (ret < 0)
+ ret = errno;
+ if (write_fully (pipes[1], &ret, sizeof (ret)) < 0
+ || write_fully (pipes[1], set, size) < 0
+ || (ret == 0 && write_fully (pipes[1], set, size) < 0))
+ {
+ printf ("error: write: %m\n");
+ _exit (1);
+ }
+ _exit (0);
+ }
+
+ /* Parent. */
+ return process_child_response (pipes, ret, set, size);
+}
+
+static int
+setaffinity (size_t size, const cpu_set_t *set)
+{
+ int pipes[2];
+ if (pipe (pipes) < 0)
+ {
+ printf ("error: pipe: %m\n");
+ exit (1);
+ }
+
+ int ret = fork ();
+ if (ret < 0)
+ {
+ printf ("error: fork: %m\n");
+ exit (1);
+ }
+ if (ret == 0)
+ {
+ /* Child. */
+ int ret = sched_setaffinity (getppid (), size, set);
+ if (write_fully (pipes[1], &ret, sizeof (ret)) < 0)
+ {
+ printf ("error: write: %m\n");
+ _exit (1);
+ }
+ _exit (0);
+ }
+
+ /* Parent. There is no affinity mask to read from the child, so the
+ size is 0. */
+ return process_child_response (pipes, ret, NULL, 0);
+}
+
+struct conf;
+static bool early_test (struct conf *unused)
+{
+ return true;
+}
+
+#include "tst-skeleton-affinity.c"
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/tst-affinity.c b/REORG.TODO/sysdeps/unix/sysv/linux/tst-affinity.c
new file mode 100644
index 0000000000..876544c88e
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/tst-affinity.c
@@ -0,0 +1,43 @@
+/* Single-threaded test for sched_getaffinity and sched_setaffinity.
+ Copyright (C) 2015-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+/* Function definitions for the benefit of
+ tst-skeleton-affinity.c. */
+
+#include <stdbool.h>
+#include <sched.h>
+
+static int
+getaffinity (size_t size, cpu_set_t *set)
+{
+ return sched_getaffinity (0, size, set);
+}
+
+static int
+setaffinity (size_t size, const cpu_set_t *set)
+{
+ return sched_setaffinity (0, size, set);
+}
+
+struct conf;
+static bool early_test (struct conf *unused)
+{
+ return true;
+}
+
+#include "tst-skeleton-affinity.c"
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/tst-align-clone.c b/REORG.TODO/sysdeps/unix/sysv/linux/tst-align-clone.c
new file mode 100644
index 0000000000..026dc58812
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/tst-align-clone.c
@@ -0,0 +1,95 @@
+/* Copyright (C) 2004-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sched.h>
+#include <stdbool.h>
+#include <stdint.h>
+#include <stdio.h>
+#include <string.h>
+#include <sys/wait.h>
+#include <unistd.h>
+#include <tst-stack-align.h>
+#include <stackinfo.h>
+
+static int
+f (void *arg)
+{
+ bool ok = true;
+
+ puts ("in f");
+
+ if (TEST_STACK_ALIGN ())
+ ok = false;
+
+ return ok ? 0 : 1;
+}
+
+static int
+do_test (void)
+{
+ bool ok = true;
+
+ puts ("in main");
+
+ if (TEST_STACK_ALIGN ())
+ ok = false;
+
+#ifdef __ia64__
+ extern int __clone2 (int (*__fn) (void *__arg), void *__child_stack_base,
+ size_t __child_stack_size, int __flags,
+ void *__arg, ...);
+ char st[256 * 1024];
+ pid_t p = __clone2 (f, st, sizeof (st), 0, 0);
+#else
+ char st[128 * 1024] __attribute__ ((aligned));
+# if _STACK_GROWS_DOWN
+ pid_t p = clone (f, st + sizeof (st), 0, 0);
+# elif _STACK_GROWS_UP
+ pid_t p = clone (f, st, 0, 0);
+# else
+# error "Define either _STACK_GROWS_DOWN or _STACK_GROWS_UP"
+# endif
+#endif
+ if (p == -1)
+ {
+ printf("clone failed: %m\n");
+ return 1;
+ }
+
+ int e;
+ if (waitpid (p, &e, __WCLONE) != p)
+ {
+ puts ("waitpid failed");
+ kill (p, SIGKILL);
+ return 1;
+ }
+ if (!WIFEXITED (e))
+ {
+ if (WIFSIGNALED (e))
+ printf ("died from signal %s\n", strsignal (WTERMSIG (e)));
+ else
+ puts ("did not terminate correctly");
+ return 1;
+ }
+ if (WEXITSTATUS (e) != 0)
+ ok = false;
+
+ return ok ? 0 : 1;
+}
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/tst-clone.c b/REORG.TODO/sysdeps/unix/sysv/linux/tst-clone.c
new file mode 100644
index 0000000000..1da749db8d
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/tst-clone.c
@@ -0,0 +1,60 @@
+/* Test for proper error/errno handling in clone.
+ Copyright (C) 2006-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+/* BZ #2386 */
+#include <errno.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <sched.h>
+
+#ifdef __ia64__
+extern int __clone2 (int (*__fn) (void *__arg), void *__child_stack_base,
+ size_t __child_stack_size, int __flags, void *__arg, ...);
+#endif
+
+int child_fn(void *arg)
+{
+ puts ("FAIL: in child_fn(); should not be here");
+ exit(1);
+}
+
+static int
+do_test (void)
+{
+ int result;
+
+#ifdef __ia64__
+ result = __clone2 (child_fn, NULL, 0, 0, NULL, NULL, NULL);
+#else
+ result = clone (child_fn, NULL, 0, NULL);
+#endif
+
+ if (errno != EINVAL || result != -1)
+ {
+ printf ("FAIL: clone()=%d (wanted -1) errno=%d (wanted %d)\n",
+ result, errno, EINVAL);
+ return 1;
+ }
+
+ puts ("All OK");
+ return 0;
+}
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/tst-clone2.c b/REORG.TODO/sysdeps/unix/sysv/linux/tst-clone2.c
new file mode 100644
index 0000000000..f53efd505c
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/tst-clone2.c
@@ -0,0 +1,146 @@
+/* Test if CLONE_VM does not change pthread pid/tid field (BZ #19957)
+ Copyright (C) 2016-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sched.h>
+#include <signal.h>
+#include <string.h>
+#include <stdio.h>
+#include <fcntl.h>
+#include <unistd.h>
+#include <stddef.h>
+#include <stdbool.h>
+#include <stdint.h>
+#include <stdlib.h>
+#include <sys/types.h>
+#include <sys/wait.h>
+#include <sys/syscall.h>
+
+#include <stackinfo.h> /* For _STACK_GROWS_{UP,DOWN}. */
+
+#include <support/check.h>
+
+static int sig;
+static int pipefd[2];
+
+static int
+f (void *a)
+{
+ close (pipefd[0]);
+
+ pid_t ppid = getppid ();
+ pid_t pid = getpid ();
+ pid_t tid = syscall (__NR_gettid);
+
+ if (write (pipefd[1], &ppid, sizeof ppid) != sizeof (ppid))
+ FAIL_EXIT1 ("write ppid failed\n");
+ if (write (pipefd[1], &pid, sizeof pid) != sizeof (pid))
+ FAIL_EXIT1 ("write pid failed\n");
+ if (write (pipefd[1], &tid, sizeof tid) != sizeof (tid))
+ FAIL_EXIT1 ("write tid failed\n");
+
+ return 0;
+}
+
+
+static int
+do_test (void)
+{
+ sig = SIGRTMIN;
+ sigset_t ss;
+ sigemptyset (&ss);
+ sigaddset (&ss, sig);
+ if (sigprocmask (SIG_BLOCK, &ss, NULL) != 0)
+ FAIL_EXIT1 ("sigprocmask failed: %m");
+
+ if (pipe2 (pipefd, O_CLOEXEC))
+ FAIL_EXIT1 ("pipe failed: %m");
+
+ int clone_flags = 0;
+#ifdef __ia64__
+ extern int __clone2 (int (*__fn) (void *__arg), void *__child_stack_base,
+ size_t __child_stack_size, int __flags,
+ void *__arg, ...);
+ char st[256 * 1024] __attribute__ ((aligned));
+ pid_t p = __clone2 (f, st, sizeof (st), clone_flags, 0);
+#else
+ char st[128 * 1024] __attribute__ ((aligned));
+#if _STACK_GROWS_DOWN
+ pid_t p = clone (f, st + sizeof (st), clone_flags, 0);
+#elif _STACK_GROWS_UP
+ pid_t p = clone (f, st, clone_flags, 0);
+#else
+#error "Define either _STACK_GROWS_DOWN or _STACK_GROWS_UP"
+#endif
+#endif
+
+ close (pipefd[1]);
+
+ if (p == -1)
+ FAIL_EXIT1("clone failed: %m");
+
+ pid_t ppid, pid, tid;
+ if (read (pipefd[0], &ppid, sizeof pid) != sizeof pid)
+ {
+ kill (p, SIGKILL);
+ FAIL_EXIT1 ("read ppid failed: %m");
+ }
+ if (read (pipefd[0], &pid, sizeof pid) != sizeof pid)
+ {
+ kill (p, SIGKILL);
+ FAIL_EXIT1 ("read pid failed: %m");
+ }
+ if (read (pipefd[0], &tid, sizeof tid) != sizeof tid)
+ {
+ kill (p, SIGKILL);
+ FAIL_EXIT1 ("read tid failed: %m");
+ }
+
+ close (pipefd[0]);
+
+ int ret = 0;
+
+ pid_t own_pid = getpid ();
+ pid_t own_tid = syscall (__NR_gettid);
+
+ /* Some sanity checks for clone syscall: returned ppid should be current
+ pid and both returned tid/pid should be different from current one. */
+ if ((ppid != own_pid) || (pid == own_pid) || (tid == own_tid))
+ FAIL_RET ("ppid=%i pid=%i tid=%i | own_pid=%i own_tid=%i",
+ (int)ppid, (int)pid, (int)tid, (int)own_pid, (int)own_tid);
+
+ int e;
+ if (waitpid (p, &e, __WCLONE) != p)
+ {
+ kill (p, SIGKILL);
+ FAIL_EXIT1 ("waitpid failed");
+ }
+ if (!WIFEXITED (e))
+ {
+ if (WIFSIGNALED (e))
+ printf ("died from signal %s\n", strsignal (WTERMSIG (e)));
+ else
+ puts ("did not terminate correctly");
+ exit (EXIT_FAILURE);
+ }
+ if (WEXITSTATUS (e) != 0)
+ FAIL_EXIT1 ("exit code %d", WEXITSTATUS (e));
+
+ return ret;
+}
+
+#include <support/test-driver.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/tst-fallocate-common.c b/REORG.TODO/sysdeps/unix/sysv/linux/tst-fallocate-common.c
new file mode 100644
index 0000000000..7f2e55cf36
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/tst-fallocate-common.c
@@ -0,0 +1,98 @@
+/* Basic fallocate test (no specific flags is checked).
+ Copyright (C) 2016-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <fcntl.h>
+#include <limits.h>
+#include <stdint.h>
+#include <string.h>
+#include <sys/stat.h>
+#include <sys/types.h>
+#include <unistd.h>
+
+#include <support/support.h>
+#include <support/check.h>
+#include <support/temp_file.h>
+
+#define XSTR(s) STR(S)
+#define STR(s) #s
+
+static char *temp_filename;
+static int temp_fd;
+
+static void
+do_prepare (int argc, char **argv)
+{
+ temp_fd = create_temp_file ("tst-fallocate.", &temp_filename);
+ if (temp_fd == -1)
+ FAIL_EXIT1 ("cannot create temporary file: %m");
+}
+#define PREPARE do_prepare
+
+static int
+do_test_with_offset (off_t offset)
+{
+ int ret;
+ struct stat finfo;
+#define BLK_SIZE 1024
+ char bwrite[BLK_SIZE] = { 0xf0 };
+ char bread[BLK_SIZE];
+
+ /* It tries to fallocate 1024 bytes from 'offset' and then write 1024 bytes.
+ After both operation rewind the file descriptor and read 1024 bytes
+ and check if both buffer have the same contents. */
+ ret = fallocate (temp_fd, 0, offset, BLK_SIZE);
+ if (ret == -1)
+ {
+ /* fallocate might not be fully supported by underlying filesystem (for
+ instance some NFS versions). */
+ if (errno == EOPNOTSUPP)
+ FAIL_EXIT (77, "fallocate not supported");
+ FAIL_EXIT1 ("fallocate failed");
+ }
+
+ ret = fstat (temp_fd, &finfo);
+ if (ret == -1)
+ FAIL_EXIT1 ("fstat failed");
+
+ if (finfo.st_size < (offset + BLK_SIZE))
+ FAIL_EXIT1 ("size of first fallocate less than expected (%llu)",
+ (long long unsigned int)offset + BLK_SIZE);
+
+ if (lseek (temp_fd, offset, SEEK_SET) == (off_t) -1)
+ FAIL_EXIT1 ("fseek (0, SEEK_SET) failed");
+
+ if (write (temp_fd, bwrite, BLK_SIZE) != BLK_SIZE)
+ FAIL_EXIT1 ("fail trying to write " XSTR (BLK_SIZE) " bytes");
+
+ if (lseek (temp_fd, offset, SEEK_SET) == (off_t) -1)
+ FAIL_EXIT1 ("fseek (0, SEEK_SET) failed");
+
+ if (read (temp_fd, bread, BLK_SIZE) != BLK_SIZE)
+ FAIL_EXIT1 ("fail trying to read " XSTR (BLK_SIZE) " bytes");
+
+ if (memcmp (bwrite, bread, BLK_SIZE) != 0)
+ FAIL_EXIT1 ("buffer written different than buffer readed");
+
+ return 0;
+}
+
+/* This function is defined by the individual tests. */
+static int do_test (void);
+
+#include <support/test-driver.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/tst-fallocate.c b/REORG.TODO/sysdeps/unix/sysv/linux/tst-fallocate.c
new file mode 100644
index 0000000000..a7f80d9478
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/tst-fallocate.c
@@ -0,0 +1,25 @@
+/* Basic fallocate test (no specific flags is checked).
+ Copyright (C) 2016-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include "tst-fallocate-common.c"
+
+static int
+do_test (void)
+{
+ return do_test_with_offset (0);
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/tst-fallocate64.c b/REORG.TODO/sysdeps/unix/sysv/linux/tst-fallocate64.c
new file mode 100644
index 0000000000..c5b13a203b
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/tst-fallocate64.c
@@ -0,0 +1,47 @@
+/* Basic fallocate64 test (no specific flags is checked).
+ Copyright (C) 2016-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#define _FILE_OFFSET_BITS 64
+#include "tst-fallocate-common.c"
+
+static int
+do_test (void)
+{
+ ssize_t ret;
+
+ ret = do_test_with_offset (0);
+ if (ret == 1)
+ return 1;
+
+ off_t base_offset = UINT32_MAX + 2048LL;
+ ret = do_test_with_offset (base_offset);
+ if (ret == 1)
+ return 1;
+
+ struct stat st;
+ if (fstat (temp_fd, &st) == -1)
+ FAIL_EXIT1 ("fstat on temporary file failed: %m");
+
+ /* The file size should >= base_offset plus bytes written. */
+ off_t expected_value = base_offset + ret;
+ if (st.st_size < expected_value)
+ FAIL_EXIT1 ("file size less than expected (%jd > %jd)",
+ (intmax_t) expected_value, (intmax_t) st.st_size);
+
+ return 0;
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/tst-fanotify.c b/REORG.TODO/sysdeps/unix/sysv/linux/tst-fanotify.c
new file mode 100644
index 0000000000..2009b41d55
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/tst-fanotify.c
@@ -0,0 +1,61 @@
+/* Basic fanotify test.
+ Copyright (C) 2013-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 <config.h>
+#include <errno.h>
+#include <fcntl.h>
+#include <stdio.h>
+#include <sys/fanotify.h>
+
+static int
+do_test (void)
+{
+ int fd, ret;
+
+ fd = fanotify_init (0, 0);
+ if (fd < 0)
+ {
+ switch (errno)
+ {
+ case ENOSYS:
+ puts ("SKIP: missing support for fanotify (check CONFIG_FANOTIFY=y)");
+ return 0;
+ case EPERM:
+ puts ("SKIP: missing proper permissions for runtime test");
+ return 0;
+ }
+
+ perror ("fanotify_init (0, 0) failed");
+ return 1;
+ }
+
+ ret = fanotify_mark (fd, FAN_MARK_ADD | FAN_MARK_MOUNT, FAN_ACCESS
+ | FAN_MODIFY | FAN_OPEN | FAN_CLOSE | FAN_ONDIR
+ | FAN_EVENT_ON_CHILD, AT_FDCWD, ".");
+ if (ret)
+ {
+ perror ("fanotify_mark (...) failed");
+ return 1;
+ }
+
+ puts ("All OK");
+ return 0;
+}
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/tst-getpid1.c b/REORG.TODO/sysdeps/unix/sysv/linux/tst-getpid1.c
new file mode 100644
index 0000000000..253ebf2e15
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/tst-getpid1.c
@@ -0,0 +1,122 @@
+#include <sched.h>
+#include <signal.h>
+#include <string.h>
+#include <stdio.h>
+#include <unistd.h>
+#include <sys/types.h>
+#include <sys/wait.h>
+#include <stackinfo.h>
+
+#ifndef TEST_CLONE_FLAGS
+#define TEST_CLONE_FLAGS 0
+#endif
+
+static int sig;
+
+static int
+f (void *a)
+{
+ puts ("in f");
+ union sigval sival;
+ sival.sival_int = getpid ();
+ printf ("pid = %d\n", sival.sival_int);
+ if (sigqueue (getppid (), sig, sival) != 0)
+ return 1;
+ return 0;
+}
+
+
+static int
+do_test (void)
+{
+ int mypid = getpid ();
+
+ sig = SIGRTMIN;
+ sigset_t ss;
+ sigemptyset (&ss);
+ sigaddset (&ss, sig);
+ if (sigprocmask (SIG_BLOCK, &ss, NULL) != 0)
+ {
+ printf ("sigprocmask failed: %m\n");
+ return 1;
+ }
+
+#ifdef __ia64__
+ extern int __clone2 (int (*__fn) (void *__arg), void *__child_stack_base,
+ size_t __child_stack_size, int __flags,
+ void *__arg, ...);
+ char st[256 * 1024] __attribute__ ((aligned));
+ pid_t p = __clone2 (f, st, sizeof (st), TEST_CLONE_FLAGS, 0);
+#else
+ char st[128 * 1024] __attribute__ ((aligned));
+# if _STACK_GROWS_DOWN
+ pid_t p = clone (f, st + sizeof (st), TEST_CLONE_FLAGS, 0);
+# elif _STACK_GROWS_UP
+ pid_t p = clone (f, st, TEST_CLONE_FLAGS, 0);
+# else
+# error "Define either _STACK_GROWS_DOWN or _STACK_GROWS_UP"
+# endif
+#endif
+ if (p == -1)
+ {
+ printf("clone failed: %m\n");
+ return 1;
+ }
+ printf ("new thread: %d\n", (int) p);
+
+ siginfo_t si;
+ do
+ if (sigwaitinfo (&ss, &si) < 0)
+ {
+ printf("sigwaitinfo failed: %m\n");
+ kill (p, SIGKILL);
+ return 1;
+ }
+ while (si.si_signo != sig || si.si_code != SI_QUEUE);
+
+ int e;
+ if (waitpid (p, &e, __WCLONE) != p)
+ {
+ puts ("waitpid failed");
+ kill (p, SIGKILL);
+ return 1;
+ }
+ if (!WIFEXITED (e))
+ {
+ if (WIFSIGNALED (e))
+ printf ("died from signal %s\n", strsignal (WTERMSIG (e)));
+ else
+ puts ("did not terminate correctly");
+ return 1;
+ }
+ if (WEXITSTATUS (e) != 0)
+ {
+ printf ("exit code %d\n", WEXITSTATUS (e));
+ return 1;
+ }
+
+ if (si.si_int != (int) p)
+ {
+ printf ("expected PID %d, got si_int %d\n", (int) p, si.si_int);
+ kill (p, SIGKILL);
+ return 1;
+ }
+
+ if (si.si_pid != p)
+ {
+ printf ("expected PID %d, got si_pid %d\n", (int) p, (int) si.si_pid);
+ kill (p, SIGKILL);
+ return 1;
+ }
+
+ if (getpid () != mypid)
+ {
+ puts ("my PID changed");
+ return 1;
+ }
+
+ return 0;
+}
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/tst-personality.c b/REORG.TODO/sysdeps/unix/sysv/linux/tst-personality.c
new file mode 100644
index 0000000000..c52a1eff7a
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/tst-personality.c
@@ -0,0 +1,45 @@
+/* BZ #19408 linux personality syscall wrapper test.
+
+ Copyright (C) 2015-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <sys/personality.h>
+
+static int
+do_test (void)
+{
+ int rc = 0;
+ unsigned int test_persona = -EINVAL;
+ unsigned int saved_persona;
+
+ errno = 0xdefaced;
+ saved_persona = personality (0xffffffff);
+
+ if (personality (test_persona) != saved_persona ||
+ personality (0xffffffff) == -1 ||
+ personality (PER_LINUX) == -1 ||
+ personality (0xffffffff) != PER_LINUX ||
+ 0xdefaced != errno)
+ rc = 1;
+
+ (void) personality (saved_persona);
+ return rc;
+}
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/tst-quota.c b/REORG.TODO/sysdeps/unix/sysv/linux/tst-quota.c
new file mode 100644
index 0000000000..41943c7e35
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/tst-quota.c
@@ -0,0 +1,58 @@
+/* Copyright (C) 2016-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sys/quota.h>
+
+#include <stdbool.h>
+#include <stdio.h>
+
+static bool errors;
+
+void
+check_size (const char *name1, size_t size1,
+ const char *name2, size_t size2)
+{
+ const char *prefix;
+ const char *op;
+ if (size1 != size2)
+ {
+ prefix = "error";
+ op = "!=";
+ errors = true;
+ }
+ else
+ {
+ prefix = "info";
+ op = "==";
+ }
+ printf ("%s: sizeof (%s) [%zu] %s sizeof (%s) [%zu]\n",
+ prefix, name1, size1, op, name2, size2);
+}
+
+#define CHECK_SIZE(type1, type2) \
+ check_size (#type1, sizeof (type1), #type2, sizeof (type2))
+
+int
+do_test (void)
+{
+ CHECK_SIZE (struct if_dqblk, struct dqblk);
+ CHECK_SIZE (struct if_dqinfo, struct dqinfo);
+ return errors;
+}
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/tst-setgetname.c b/REORG.TODO/sysdeps/unix/sysv/linux/tst-setgetname.c
new file mode 100644
index 0000000000..0ab35e60f9
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/tst-setgetname.c
@@ -0,0 +1,302 @@
+/* Test pthread_setname_np and pthread_getname_np.
+ Copyright (C) 2013-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; see the file COPYING.LIB. If
+ not, see <http://www.gnu.org/licenses/>. */
+#include <stdio.h>
+#include <stdlib.h>
+#include <pthread.h>
+#include <string.h>
+#include <sys/syscall.h>
+#include <unistd.h>
+#include <fcntl.h>
+#include <errno.h>
+
+/* New name of process. */
+#define NEW_NAME "setname"
+
+/* Name of process which is one byte too big
+ e.g. 17 bytes including null-terminator */
+#define BIG_NAME "....V....X....XV"
+
+/* Longest name of a process
+ e.g. 16 bytes including null-terminator. */
+#define LONGEST_NAME "....V....X....X"
+
+/* One less than longest name with unique
+ characters to detect modification. */
+#define CANARY_NAME "abcdefghijklmn"
+
+/* On Linux the maximum length of the name of a task *including* the null
+ terminator. */
+#define TASK_COMM_LEN 16
+
+long
+gettid (void)
+{
+ return syscall(__NR_gettid);
+}
+
+/* On Linux we can read this task's name from /proc. */
+int
+get_self_comm (long tid, char *buf, size_t len)
+{
+ int res = 0;
+#define FMT "/proc/self/task/%lu/comm"
+ char fname[sizeof (FMT) + 32];
+ sprintf (fname, FMT, (unsigned long) tid);
+
+ int fd = open (fname, O_RDONLY);
+ if (fd == -1)
+ return errno;
+
+ ssize_t n = read (fd, (void *) buf, len);
+ if (n < 0)
+ res = errno;
+ else
+ {
+ if (buf[n - 1] == '\n')
+ buf[n - 1] = '\0';
+ else if (n == len)
+ res = ERANGE;
+ else
+ buf[n] = '\0';
+ }
+
+ close (fd);
+ return res;
+}
+
+int
+do_test (int argc, char **argv)
+{
+ pthread_t self;
+ int res;
+ int ret = 0;
+ char name[TASK_COMM_LEN];
+ char name_check[TASK_COMM_LEN];
+
+ memset (name, '\0', TASK_COMM_LEN);
+ memset (name_check, '\0', TASK_COMM_LEN);
+
+ /* Test 1: Get the name of the task via pthread_getname_np and /proc
+ and verify that they both match. */
+ self = pthread_self ();
+ res = pthread_getname_np (self, name, TASK_COMM_LEN);
+
+ if (res == 0)
+ {
+ res = get_self_comm (gettid (), name_check, TASK_COMM_LEN);
+
+ if (res == 0)
+ {
+ if (strncmp (name, name_check, strlen (BIG_NAME)) == 0)
+ printf ("PASS: Test 1 - pthread_getname_np and /proc agree.\n");
+ else
+ {
+ printf ("FAIL: Test 1 - pthread_getname_np and /proc differ"
+ " i.e. %s != %s\n", name, name_check);
+ ret++;
+ }
+ }
+ else
+ {
+ printf ("FAIL: Test 1 - unable read task name via proc.\n");
+ ret++;
+ }
+ }
+ else
+ {
+ printf ("FAIL: Test 1 - pthread_getname_np failed with error %d\n", res);
+ ret++;
+ }
+
+ /* Test 2: Test setting the name and then independently verify it
+ was set. */
+ res = pthread_setname_np (self, NEW_NAME);
+
+ if (res == 0)
+ {
+ res = get_self_comm (gettid (), name_check, TASK_COMM_LEN);
+ if (res == 0)
+ {
+ if (strncmp (NEW_NAME, name_check, strlen (BIG_NAME)) == 0)
+ printf ("PASS: Test 2 - Value used in pthread_setname_np and"
+ " /proc agree.\n");
+ else
+ {
+ printf ("FAIL: Test 2 - Value used in pthread_setname_np"
+ " and /proc differ i.e. %s != %s\n",
+ NEW_NAME, name_check);
+ ret++;
+ }
+ }
+ else
+ {
+ printf ("FAIL: Test 2 - unable to read task name via proc.\n");
+ ret++;
+ }
+ }
+ else
+ {
+ printf ("FAIL: Test 2 - pthread_setname_np failed with error %d\n", res);
+ ret++;
+ }
+
+ /* Test 3: Test setting a name that is one-byte too big. */
+ res = pthread_getname_np (self, name, TASK_COMM_LEN);
+
+ if (res == 0)
+ {
+ res = pthread_setname_np (self, BIG_NAME);
+ if (res != 0)
+ {
+ if (res == ERANGE)
+ {
+ printf ("PASS: Test 3 - pthread_setname_np returned ERANGE"
+ " for a process name that was too long.\n");
+
+ /* Verify the old name didn't change. */
+ res = get_self_comm (gettid (), name_check, TASK_COMM_LEN);
+ if (res == 0)
+ {
+ if (strncmp (name, name_check, strlen (BIG_NAME)) == 0)
+ printf ("PASS: Test 3 - Original name unchanged after"
+ " pthread_setname_np returned ERANGE.\n");
+ else
+ {
+ printf ("FAIL: Test 3 - Original name changed after"
+ " pthread_setname_np returned ERANGE"
+ " i.e. %s != %s\n",
+ name, name_check);
+ ret++;
+ }
+ }
+ else
+ {
+ printf ("FAIL: Test 3 - unable to read task name.\n");
+ ret++;
+ }
+ }
+ else
+ {
+ printf ("FAIL: Test 3 - Wrong error returned"
+ " i.e. ERANGE != %d\n", res);
+ ret++;
+ }
+ }
+ else
+ {
+ printf ("FAIL: Test 3 - Too-long name accepted by"
+ " pthread_setname_np.\n");
+ ret++;
+ }
+ }
+ else
+ {
+ printf ("FAIL: Test 3 - Unable to get original name.\n");
+ ret++;
+ }
+
+ /* Test 4: Verify that setting the longest name works. */
+ res = pthread_setname_np (self, LONGEST_NAME);
+
+ if (res == 0)
+ {
+ res = get_self_comm (gettid (), name_check, TASK_COMM_LEN);
+ if (res == 0)
+ {
+ if (strncmp (LONGEST_NAME, name_check, strlen (BIG_NAME)) == 0)
+ printf ("PASS: Test 4 - Longest name set via pthread_setname_np"
+ " agrees with /proc.\n");
+ else
+ {
+ printf ("FAIL: Test 4 - Value used in pthread_setname_np and /proc"
+ " differ i.e. %s != %s\n", LONGEST_NAME, name_check);
+ ret++;
+ }
+ }
+ else
+ {
+ printf ("FAIL: Test 4 - unable to read task name via proc.\n");
+ ret++;
+ }
+ }
+ else
+ {
+ printf ("FAIL: Test 4 - pthread_setname_np failed with error %d\n", res);
+ ret++;
+ }
+
+ /* Test 5: Verify that getting a long name into a small buffer fails. */
+ strncpy (name, CANARY_NAME, strlen (CANARY_NAME) + 1);
+
+ /* Claim the buffer length is strlen (LONGEST_NAME). This is one character
+ too small to hold LONGEST_NAME *and* the null terminator. We should get
+ back ERANGE and name should be unmodified. */
+ res = pthread_getname_np (self, name, strlen (LONGEST_NAME));
+
+ if (res != 0)
+ {
+ if (res == ERANGE)
+ {
+ if (strncmp (CANARY_NAME, name, strlen (BIG_NAME)) == 0)
+ {
+ printf ("PASS: Test 5 - ERANGE and buffer unmodified.\n");
+ }
+ else
+ {
+ printf ("FAIL: Test 5 - Original buffer modified.\n");
+ ret++;
+ }
+ }
+ else
+ {
+ printf ("FAIL: Test 5 - Did not return ERANGE for small buffer.\n");
+ ret++;
+ }
+ }
+ else
+ {
+ printf ("FAIL: Test 5 - Returned name longer than buffer.\n");
+ ret++;
+ }
+
+ /* Test 6: Lastly make sure we can read back the longest name. */
+ res = pthread_getname_np (self, name, strlen (LONGEST_NAME) + 1);
+
+ if (res == 0)
+ {
+ if (strncmp (LONGEST_NAME, name, strlen (BIG_NAME)) == 0)
+ {
+ printf ("PASS: Test 6 - Read back longest name correctly.\n");
+ }
+ else
+ {
+ printf ("FAIL: Test 6 - Read \"%s\" instead of longest name.\n",
+ name);
+ ret++;
+ }
+ }
+ else
+ {
+ printf ("FAIL: Test 6 - pthread_getname_np failed with error %d\n", res);
+ ret++;
+ }
+
+ return ret;
+}
+
+#include <test-skeleton.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/tst-skeleton-affinity.c b/REORG.TODO/sysdeps/unix/sysv/linux/tst-skeleton-affinity.c
new file mode 100644
index 0000000000..b2be8239f2
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/tst-skeleton-affinity.c
@@ -0,0 +1,278 @@
+/* Generic test case for CPU affinity functions.
+ Copyright (C) 2015-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+/* This file is included by the tst-affinity*.c files to test the two
+ variants of the functions, under different conditions. The
+ following functions have to be definied:
+
+ static int getaffinity (size_t, cpu_set_t *);
+ static int setaffinity (size_t, const cpu_set_t *);
+ static bool early_test (struct conf *);
+
+ The first two functions shall affect the affinity mask for the
+ current thread and return 0 for success, -1 for error (with an
+ error code in errno).
+
+ early_test is invoked before the tests in this file affect the
+ affinity masks. If it returns true, testing continues, otherwise
+ no more tests run and the overall test exits with status 1.
+*/
+
+#include <errno.h>
+#include <limits.h>
+#include <sched.h>
+#include <stdbool.h>
+#include <stdio.h>
+
+/* CPU set configuration determined. Can be used from early_test. */
+struct conf
+{
+ int set_size; /* in bits */
+ int last_cpu;
+};
+
+static int
+find_set_size (void)
+{
+ /* There is considerable controversy about how to determine the size
+ of the kernel CPU mask. The probing loop below is only intended
+ for testing purposes. */
+ for (int num_cpus = 64; num_cpus <= INT_MAX / 2; ++num_cpus)
+ {
+ cpu_set_t *set = CPU_ALLOC (num_cpus);
+ size_t size = CPU_ALLOC_SIZE (num_cpus);
+
+ if (set == NULL)
+ {
+ printf ("error: CPU_ALLOC (%d) failed\n", num_cpus);
+ return -1;
+ }
+ if (getaffinity (size, set) == 0)
+ {
+ CPU_FREE (set);
+ return num_cpus;
+ }
+ if (errno != EINVAL)
+ {
+ printf ("error: getaffinity for %d CPUs: %m\n", num_cpus);
+ CPU_FREE (set);
+ return -1;
+ }
+ CPU_FREE (set);
+ }
+ puts ("error: Cannot find maximum CPU number");
+ return -1;
+}
+
+static int
+find_last_cpu (const cpu_set_t *set, size_t size)
+{
+ /* We need to determine the set size with CPU_COUNT_S and the
+ cpus_found counter because there is no direct way to obtain the
+ actual CPU set size, in bits, from the value of
+ CPU_ALLOC_SIZE. */
+ size_t cpus_found = 0;
+ size_t total_cpus = CPU_COUNT_S (size, set);
+ int last_cpu = -1;
+
+ for (int cpu = 0; cpus_found < total_cpus; ++cpu)
+ {
+ if (CPU_ISSET_S (cpu, size, set))
+ {
+ last_cpu = cpu;
+ ++cpus_found;
+ }
+ }
+ return last_cpu;
+}
+
+static void
+setup_conf (struct conf *conf)
+{
+ *conf = (struct conf) {-1, -1};
+ conf->set_size = find_set_size ();
+ if (conf->set_size > 0)
+ {
+ cpu_set_t *set = CPU_ALLOC (conf->set_size);
+
+ if (set == NULL)
+ {
+ printf ("error: CPU_ALLOC (%d) failed\n", conf->set_size);
+ CPU_FREE (set);
+ return;
+ }
+ if (getaffinity (CPU_ALLOC_SIZE (conf->set_size), set) < 0)
+ {
+ printf ("error: getaffinity failed: %m\n");
+ CPU_FREE (set);
+ return;
+ }
+ conf->last_cpu = find_last_cpu (set, CPU_ALLOC_SIZE (conf->set_size));
+ if (conf->last_cpu < 0)
+ puts ("info: No test CPU found");
+ CPU_FREE (set);
+ }
+}
+
+static bool
+test_size (const struct conf *conf, size_t size)
+{
+ if (size < conf->set_size)
+ {
+ printf ("info: Test not run for CPU set size %zu\n", size);
+ return true;
+ }
+
+ cpu_set_t *initial_set = CPU_ALLOC (size);
+ cpu_set_t *set2 = CPU_ALLOC (size);
+ cpu_set_t *active_cpu_set = CPU_ALLOC (size);
+
+ if (initial_set == NULL || set2 == NULL || active_cpu_set == NULL)
+ {
+ printf ("error: size %zu: CPU_ALLOC failed\n", size);
+ return false;
+ }
+ size_t kernel_size = CPU_ALLOC_SIZE (size);
+
+ if (getaffinity (kernel_size, initial_set) < 0)
+ {
+ printf ("error: size %zu: getaffinity: %m\n", size);
+ return false;
+ }
+ if (setaffinity (kernel_size, initial_set) < 0)
+ {
+ printf ("error: size %zu: setaffinity: %m\n", size);
+ return true;
+ }
+
+ /* Use one-CPU set to test switching between CPUs. */
+ int last_active_cpu = -1;
+ for (int cpu = 0; cpu <= conf->last_cpu; ++cpu)
+ {
+ int active_cpu = sched_getcpu ();
+ if (last_active_cpu >= 0 && last_active_cpu != active_cpu)
+ {
+ printf ("error: Unexpected CPU %d, expected %d\n",
+ active_cpu, last_active_cpu);
+ return false;
+ }
+
+ if (!CPU_ISSET_S (cpu, kernel_size, initial_set))
+ continue;
+ last_active_cpu = cpu;
+
+ CPU_ZERO_S (kernel_size, active_cpu_set);
+ CPU_SET_S (cpu, kernel_size, active_cpu_set);
+ if (setaffinity (kernel_size, active_cpu_set) < 0)
+ {
+ printf ("error: size %zu: setaffinity (%d): %m\n", size, cpu);
+ return false;
+ }
+ active_cpu = sched_getcpu ();
+ if (active_cpu != cpu)
+ {
+ printf ("error: Unexpected CPU %d, expected %d\n", active_cpu, cpu);
+ return false;
+ }
+ if (getaffinity (kernel_size, set2) < 0)
+ {
+ printf ("error: size %zu: getaffinity (2): %m\n", size);
+ return false;
+ }
+ if (!CPU_EQUAL_S (kernel_size, active_cpu_set, set2))
+ {
+ printf ("error: size %zu: CPU sets do not match\n", size);
+ return false;
+ }
+ }
+
+ /* Test setting the all-ones set. */
+ for (int cpu = 0; cpu < size; ++cpu)
+ CPU_SET_S (cpu, kernel_size, set2);
+ if (setaffinity (kernel_size, set2) < 0)
+ {
+ printf ("error: size %zu: setaffinity (3): %m\n", size);
+ return false;
+ }
+
+ if (setaffinity (kernel_size, initial_set) < 0)
+ {
+ printf ("error: size %zu: setaffinity (4): %m\n", size);
+ return false;
+ }
+ if (getaffinity (kernel_size, set2) < 0)
+ {
+ printf ("error: size %zu: getaffinity (3): %m\n", size);
+ return false;
+ }
+ if (!CPU_EQUAL_S (kernel_size, initial_set, set2))
+ {
+ printf ("error: size %zu: CPU sets do not match (2)\n", size);
+ return false;
+ }
+
+ CPU_FREE (initial_set);
+ CPU_FREE (set2);
+ CPU_FREE (active_cpu_set);
+
+ return true;
+}
+
+static int
+do_test (void)
+{
+ {
+ cpu_set_t set;
+ if (getaffinity (sizeof (set), &set) < 0 && errno == ENOSYS)
+ {
+ puts ("warning: getaffinity not supported, test cannot run");
+ return 0;
+ }
+ if (sched_getcpu () < 0 && errno == ENOSYS)
+ {
+ puts ("warning: sched_getcpu not supported, test cannot run");
+ return 0;
+ }
+ }
+
+ struct conf conf;
+ setup_conf (&conf);
+ printf ("info: Detected CPU set size (in bits): %d\n", conf.set_size);
+ printf ("info: Maximum test CPU: %d\n", conf.last_cpu);
+ if (conf.set_size < 0 || conf.last_cpu < 0)
+ return 1;
+
+ if (!early_test (&conf))
+ return 1;
+
+ bool error = false;
+ error |= !test_size (&conf, 1024);
+ error |= !test_size (&conf, conf.set_size);
+ error |= !test_size (&conf, 2);
+ error |= !test_size (&conf, 32);
+ error |= !test_size (&conf, 40);
+ error |= !test_size (&conf, 64);
+ error |= !test_size (&conf, 96);
+ error |= !test_size (&conf, 128);
+ error |= !test_size (&conf, 256);
+ error |= !test_size (&conf, 8192);
+ return error;
+}
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/tst-skeleton-thread-affinity.c b/REORG.TODO/sysdeps/unix/sysv/linux/tst-skeleton-thread-affinity.c
new file mode 100644
index 0000000000..91ed987563
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/tst-skeleton-thread-affinity.c
@@ -0,0 +1,280 @@
+/* Generic test for CPU affinity functions, multi-threaded variant.
+ Copyright (C) 2015-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+/* Before including this file, a test has to declare the helper
+ getaffinity and setaffinity functions described in
+ tst-skeleton-affinity.c, which is included below. */
+
+#include <errno.h>
+#include <pthread.h>
+#include <stdbool.h>
+#include <stdlib.h>
+#include <sys/time.h>
+
+struct conf;
+static bool early_test (struct conf *);
+
+/* Arbitrary run time for each pass. */
+#define PASS_TIMEOUT 2
+
+/* There are two passes (one with sched_yield, one without), and we
+ double the timeout to be on the safe side. */
+#define TIMEOUT (2 * PASS_TIMEOUT * 2)
+
+#include "tst-skeleton-affinity.c"
+
+/* 0 if still running, 1 of stopping requested. */
+static int still_running;
+
+/* 0 if no scheduling failures, 1 if failures are encountered. */
+static int failed;
+
+static void *
+thread_burn_one_cpu (void *closure)
+{
+ int cpu = (uintptr_t) closure;
+ while (__atomic_load_n (&still_running, __ATOMIC_RELAXED) == 0)
+ {
+ int current = sched_getcpu ();
+ if (sched_getcpu () != cpu)
+ {
+ printf ("error: Pinned thread %d ran on impossible cpu %d\n",
+ cpu, current);
+ __atomic_store_n (&failed, 1, __ATOMIC_RELAXED);
+ /* Terminate early. */
+ __atomic_store_n (&still_running, 1, __ATOMIC_RELAXED);
+ }
+ }
+ return NULL;
+}
+
+struct burn_thread
+{
+ pthread_t self;
+ struct conf *conf;
+ cpu_set_t *initial_set;
+ cpu_set_t *seen_set;
+ int thread;
+};
+
+static void *
+thread_burn_any_cpu (void *closure)
+{
+ struct burn_thread *param = closure;
+
+ /* Schedule this thread around a bit to see if it lands on another
+ CPU. Run this for 2 seconds, once with sched_yield, once
+ without. */
+ for (int pass = 1; pass <= 2; ++pass)
+ {
+ time_t start = time (NULL);
+ while (time (NULL) - start <= PASS_TIMEOUT)
+ {
+ int cpu = sched_getcpu ();
+ if (cpu > param->conf->last_cpu
+ || !CPU_ISSET_S (cpu, CPU_ALLOC_SIZE (param->conf->set_size),
+ param->initial_set))
+ {
+ printf ("error: Unpinned thread %d ran on impossible CPU %d\n",
+ param->thread, cpu);
+ __atomic_store_n (&failed, 1, __ATOMIC_RELAXED);
+ return NULL;
+ }
+ CPU_SET_S (cpu, CPU_ALLOC_SIZE (param->conf->set_size),
+ param->seen_set);
+ if (pass == 1)
+ sched_yield ();
+ }
+ }
+ return NULL;
+}
+
+static void
+stop_and_join_threads (struct conf *conf, cpu_set_t *set,
+ pthread_t *pinned_first, pthread_t *pinned_last,
+ struct burn_thread *other_first,
+ struct burn_thread *other_last)
+{
+ __atomic_store_n (&still_running, 1, __ATOMIC_RELAXED);
+ for (pthread_t *p = pinned_first; p < pinned_last; ++p)
+ {
+ int cpu = p - pinned_first;
+ if (!CPU_ISSET_S (cpu, CPU_ALLOC_SIZE (conf->set_size), set))
+ continue;
+
+ int ret = pthread_join (*p, NULL);
+ if (ret != 0)
+ {
+ printf ("error: Failed to join thread %d: %s\n", cpu, strerror (ret));
+ fflush (stdout);
+ /* Cannot shut down cleanly with threads still running. */
+ abort ();
+ }
+ }
+
+ for (struct burn_thread *p = other_first; p < other_last; ++p)
+ {
+ int cpu = p - other_first;
+ if (!CPU_ISSET_S (cpu, CPU_ALLOC_SIZE (conf->set_size), set))
+ continue;
+
+ int ret = pthread_join (p->self, NULL);
+ if (ret != 0)
+ {
+ printf ("error: Failed to join thread %d: %s\n", cpu, strerror (ret));
+ fflush (stdout);
+ /* Cannot shut down cleanly with threads still running. */
+ abort ();
+ }
+ }
+}
+
+/* Tries to check that the initial set of CPUs is complete and that
+ the main thread will not run on any other threads. */
+static bool
+early_test (struct conf *conf)
+{
+ pthread_t *pinned_threads
+ = calloc (conf->last_cpu + 1, sizeof (*pinned_threads));
+ struct burn_thread *other_threads
+ = calloc (conf->last_cpu + 1, sizeof (*other_threads));
+ cpu_set_t *initial_set = CPU_ALLOC (conf->set_size);
+ cpu_set_t *scratch_set = CPU_ALLOC (conf->set_size);
+
+ if (pinned_threads == NULL || other_threads == NULL
+ || initial_set == NULL || scratch_set == NULL)
+ {
+ puts ("error: Memory allocation failure");
+ return false;
+ }
+ if (getaffinity (CPU_ALLOC_SIZE (conf->set_size), initial_set) < 0)
+ {
+ printf ("error: pthread_getaffinity_np failed: %m\n");
+ return false;
+ }
+ for (int cpu = 0; cpu <= conf->last_cpu; ++cpu)
+ {
+ if (!CPU_ISSET_S (cpu, CPU_ALLOC_SIZE (conf->set_size), initial_set))
+ continue;
+ other_threads[cpu].conf = conf;
+ other_threads[cpu].initial_set = initial_set;
+ other_threads[cpu].thread = cpu;
+ other_threads[cpu].seen_set = CPU_ALLOC (conf->set_size);
+ if (other_threads[cpu].seen_set == NULL)
+ {
+ puts ("error: Memory allocation failure");
+ return false;
+ }
+ CPU_ZERO_S (CPU_ALLOC_SIZE (conf->set_size),
+ other_threads[cpu].seen_set);
+ }
+
+ pthread_attr_t attr;
+ int ret = pthread_attr_init (&attr);
+ if (ret != 0)
+ {
+ printf ("error: pthread_attr_init failed: %s\n", strerror (ret));
+ return false;
+ }
+
+ /* Spawn a thread pinned to each available CPU. */
+ for (int cpu = 0; cpu <= conf->last_cpu; ++cpu)
+ {
+ if (!CPU_ISSET_S (cpu, CPU_ALLOC_SIZE (conf->set_size), initial_set))
+ continue;
+ CPU_ZERO_S (CPU_ALLOC_SIZE (conf->set_size), scratch_set);
+ CPU_SET_S (cpu, CPU_ALLOC_SIZE (conf->set_size), scratch_set);
+ ret = pthread_attr_setaffinity_np
+ (&attr, CPU_ALLOC_SIZE (conf->set_size), scratch_set);
+ if (ret != 0)
+ {
+ printf ("error: pthread_attr_setaffinity_np for CPU %d failed: %s\n",
+ cpu, strerror (ret));
+ stop_and_join_threads (conf, initial_set,
+ pinned_threads, pinned_threads + cpu,
+ NULL, NULL);
+ return false;
+ }
+ ret = pthread_create (pinned_threads + cpu, &attr,
+ thread_burn_one_cpu, (void *) (uintptr_t) cpu);
+ if (ret != 0)
+ {
+ printf ("error: pthread_create for CPU %d failed: %s\n",
+ cpu, strerror (ret));
+ stop_and_join_threads (conf, initial_set,
+ pinned_threads, pinned_threads + cpu,
+ NULL, NULL);
+ return false;
+ }
+ }
+
+ /* Spawn another set of threads running on all CPUs. */
+ for (int cpu = 0; cpu <= conf->last_cpu; ++cpu)
+ {
+ if (!CPU_ISSET_S (cpu, CPU_ALLOC_SIZE (conf->set_size), initial_set))
+ continue;
+ ret = pthread_create (&other_threads[cpu].self, NULL,
+ thread_burn_any_cpu, other_threads + cpu);
+ if (ret != 0)
+ {
+ printf ("error: pthread_create for thread %d failed: %s\n",
+ cpu, strerror (ret));
+ stop_and_join_threads (conf, initial_set,
+ pinned_threads,
+ pinned_threads + conf->last_cpu + 1,
+ other_threads, other_threads + cpu);
+ return false;
+ }
+ }
+
+ /* Main thread. */
+ struct burn_thread main_thread;
+ main_thread.conf = conf;
+ main_thread.initial_set = initial_set;
+ main_thread.seen_set = scratch_set;
+ main_thread.thread = -1;
+ CPU_ZERO_S (CPU_ALLOC_SIZE (conf->set_size), main_thread.seen_set);
+ thread_burn_any_cpu (&main_thread);
+ stop_and_join_threads (conf, initial_set,
+ pinned_threads,
+ pinned_threads + conf->last_cpu + 1,
+ other_threads, other_threads + conf->last_cpu + 1);
+
+ printf ("info: Main thread ran on %d CPU(s) of %d available CPU(s)\n",
+ CPU_COUNT_S (CPU_ALLOC_SIZE (conf->set_size), scratch_set),
+ CPU_COUNT_S (CPU_ALLOC_SIZE (conf->set_size), initial_set));
+ CPU_ZERO_S (CPU_ALLOC_SIZE (conf->set_size), scratch_set);
+ for (int cpu = 0; cpu <= conf->last_cpu; ++cpu)
+ {
+ if (!CPU_ISSET_S (cpu, CPU_ALLOC_SIZE (conf->set_size), initial_set))
+ continue;
+ CPU_OR_S (CPU_ALLOC_SIZE (conf->set_size),
+ scratch_set, scratch_set, other_threads[cpu].seen_set);
+ CPU_FREE (other_threads[cpu].seen_set);
+ }
+ printf ("info: Other threads ran on %d CPU(s)\n",
+ CPU_COUNT_S (CPU_ALLOC_SIZE (conf->set_size), scratch_set));;
+
+
+ pthread_attr_destroy (&attr);
+ CPU_FREE (scratch_set);
+ CPU_FREE (initial_set);
+ free (pinned_threads);
+ free (other_threads);
+ return failed == 0;
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/tst-sync_file_range.c b/REORG.TODO/sysdeps/unix/sysv/linux/tst-sync_file_range.c
new file mode 100644
index 0000000000..73cbcb3247
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/tst-sync_file_range.c
@@ -0,0 +1,132 @@
+/* Basic sync_file_range (not specific flag is checked).
+ Copyright (C) 2016-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+/* sync_file_range is only define for LFS. */
+#define _FILE_OFFSET_BITS 64
+#include <errno.h>
+#include <fcntl.h>
+#include <limits.h>
+#include <stdint.h>
+#include <stdlib.h>
+#include <sys/stat.h>
+
+#include <support/temp_file.h>
+#include <support/check.h>
+
+#define XSTR(s) STR(S)
+#define STR(s) #s
+
+static char *temp_filename;
+static int temp_fd;
+
+static char fifoname[] = "/tmp/tst-posix_fadvise-fifo-XXXXXX";
+static int fifofd;
+
+void
+do_prepare (int argc, char **argv)
+{
+ temp_fd = create_temp_file ("tst-file_sync_range.", &temp_filename);
+ if (temp_fd == -1)
+ FAIL_EXIT1 ("cannot create temporary file: %m");
+
+ if (mktemp (fifoname) == NULL)
+ FAIL_EXIT1 ("cannot generate temp file name: %m");
+ add_temp_file (fifoname);
+
+ if (mkfifo (fifoname, S_IWUSR | S_IRUSR) != 0)
+ FAIL_EXIT1 ("cannot create fifo: %m");
+
+ fifofd = open (fifoname, O_RDONLY | O_NONBLOCK);
+ if (fifofd == -1)
+ FAIL_EXIT1 ("cannot open fifo: %m");
+}
+#define PREPARE do_prepare
+
+static int
+do_test (void)
+{
+ int ret;
+
+ /* This tests first check for some invalid usage and then check for
+ a simple usage. It does not cover for all possible issue since for
+ EIO/ENOMEM/ENOSPC would require to create very specific scenarios that
+ are outside the current test coverage (basically correct kernel argument
+ passing. */
+
+ /* Check for invalid file descriptor. */
+ if ((ret = sync_file_range (-1, 0, 0, 0)) != -1)
+ FAIL_EXIT1 ("sync_file_range did not fail on an invalid descriptor "
+ "(returned %d, expected -1)", ret);
+ if (errno != EBADF)
+ FAIL_EXIT1 ("sync_file_range on an invalid descriptor did not set errno to "
+ "EBADF (%d)", errno);
+
+ if ((ret = sync_file_range (fifofd, 0, 0, 0)) != -1)
+ FAIL_EXIT1 ("sync_file_range did not fail on an invalid descriptor "
+ "(returned %d, expected -1)", ret);
+ if (errno != ESPIPE)
+ FAIL_EXIT1 ("sync_file_range on an invalid descriptor did not set errno to "
+ "EBADF (%d)", errno);
+
+ /* Check for invalid flags (it must be
+ SYNC_FILE_RANGE_{WAIT_BEFORE,WRITE,WAIT_AFTER) or a 'or' combination of
+ them. */
+ if ((ret = sync_file_range (temp_fd, 0, 0, -1)) != -1)
+ FAIL_EXIT1 ("sync_file_range did not failed with invalid flags "
+ "(returned %d, " "expected -1)", ret);
+ if (errno != EINVAL)
+ FAIL_EXIT1 ("sync_file_range with invalid flag did not set errno to "
+ "EINVAL (%d)", errno);
+
+ /* Check for negative offset. */
+ if ((ret = sync_file_range (temp_fd, -1, 1, 0)) != -1)
+ FAIL_EXIT1 ("sync_file_range did not failed with invalid offset "
+ "(returned %d, expected -1)", ret);
+ if (errno != EINVAL)
+ FAIL_EXIT1 ("sync_file_range with invalid offset did not set errno to "
+ "EINVAL (%d)", errno);
+
+ /* offset + nbytes must be a positive value. */
+ if ((ret = sync_file_range (temp_fd, 1024, -2048, 0)) != -1)
+ FAIL_EXIT1 ("sync_file_range did not failed with invalid nbytes (returned %d, "
+ "expected -1)", ret);
+ if (errno != EINVAL)
+ FAIL_EXIT1 ("sync_file_range with invalid offset did not set errno to "
+ "EINVAL (%d)", errno);
+
+ /* offset + nbytes must be larger or equal than offset */
+ if ((ret = sync_file_range (temp_fd, -1024, 1024, 0)) != -1)
+ FAIL_EXIT1 ("sync_file_range did not failed with invalid offset "
+ "(returned %d, expected -1)", ret);
+ if (errno != EINVAL)
+ FAIL_EXIT1 ("sync_file_range with invalid offset did not set errno to "
+ "EINVAL (%d)", errno);
+
+ /* Check simple successful case. */
+ if ((ret = sync_file_range (temp_fd, 0, 1024, 0)) == -1)
+ FAIL_EXIT1 ("sync_file_range failed (errno = %d)", errno);
+
+ /* Finally check also a successful case with a 64-bit offset. */
+ off_t large_offset = UINT32_MAX + 2048LL;
+ if ((ret = sync_file_range (temp_fd, large_offset, 1024, 0)) == -1)
+ FAIL_EXIT1 ("sync_file_range failed (errno = %d)", errno);
+
+ return 0;
+}
+
+#include <support/test-driver.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/tst-thread-affinity-pthread.c b/REORG.TODO/sysdeps/unix/sysv/linux/tst-thread-affinity-pthread.c
new file mode 100644
index 0000000000..d4eff9a0e8
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/tst-thread-affinity-pthread.c
@@ -0,0 +1,49 @@
+/* Multi-threaded test for pthread_getaffinity_np, pthread_setaffinity_np.
+ Copyright (C) 2015-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <pthread.h>
+
+/* Defined for the benefit of tst-skeleton-thread-affinity.c, included
+ below. */
+
+static int
+setaffinity (size_t size, const cpu_set_t *set)
+{
+ int ret = pthread_setaffinity_np (pthread_self (), size, set);
+ if (ret != 0)
+ {
+ errno = ret;
+ return -1;
+ }
+ return 0;
+}
+
+static int
+getaffinity (size_t size, cpu_set_t *set)
+{
+ int ret = pthread_getaffinity_np (pthread_self (), size, set);
+ if (ret != 0)
+ {
+ errno = ret;
+ return -1;
+ }
+ return 0;
+}
+
+#include "tst-skeleton-thread-affinity.c"
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/tst-thread-affinity-pthread2.c b/REORG.TODO/sysdeps/unix/sysv/linux/tst-thread-affinity-pthread2.c
new file mode 100644
index 0000000000..4a1a377e5e
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/tst-thread-affinity-pthread2.c
@@ -0,0 +1,95 @@
+/* Separate thread test for pthread_getaffinity_np, pthread_setaffinity_np.
+ Copyright (C) 2015-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <pthread.h>
+#include <stdbool.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+/* Defined for the benefit of tst-skeleton-thread-affinity.c, included
+ below. This variant runs the functions on a separate thread. */
+
+struct affinity_access_task
+{
+ pthread_t thread;
+ cpu_set_t *set;
+ size_t size;
+ bool get;
+ int result;
+};
+
+static void *
+affinity_access_thread (void *closure)
+{
+ struct affinity_access_task *task = closure;
+ if (task->get)
+ task->result = pthread_getaffinity_np
+ (task->thread, task->size, task->set);
+ else
+ task->result = pthread_setaffinity_np
+ (task->thread, task->size, task->set);
+ return NULL;
+}
+
+static int
+run_affinity_access_thread (cpu_set_t *set, size_t size, bool get)
+{
+ struct affinity_access_task task =
+ {
+ .thread = pthread_self (),
+ .set = set,
+ .size = size,
+ .get = get
+ };
+ pthread_t thr;
+ int ret = pthread_create (&thr, NULL, affinity_access_thread, &task);
+ if (ret != 0)
+ {
+ errno = ret;
+ printf ("error: could not create affinity access thread: %m\n");
+ abort ();
+ }
+ ret = pthread_join (thr, NULL);
+ if (ret != 0)
+ {
+ errno = ret;
+ printf ("error: could not join affinity access thread: %m\n");
+ abort ();
+ }
+ if (task.result != 0)
+ {
+ errno = task.result;
+ return -1;
+ }
+ return 0;
+}
+
+static int
+setaffinity (size_t size, const cpu_set_t *set)
+{
+ return run_affinity_access_thread ((cpu_set_t *) set, size, false);
+}
+
+static int
+getaffinity (size_t size, cpu_set_t *set)
+{
+ return run_affinity_access_thread (set, size, true);
+}
+
+#include "tst-skeleton-thread-affinity.c"
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/tst-thread-affinity-sched.c b/REORG.TODO/sysdeps/unix/sysv/linux/tst-thread-affinity-sched.c
new file mode 100644
index 0000000000..8cbf589bcb
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/tst-thread-affinity-sched.c
@@ -0,0 +1,36 @@
+/* Multi-threaded test for sched_getaffinity_np, sched_setaffinity_np.
+ Copyright (C) 2015-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sched.h>
+
+/* Defined for the benefit of tst-skeleton-thread-affinity.c, included
+ below. */
+
+static int
+getaffinity (size_t size, cpu_set_t *set)
+{
+ return sched_getaffinity (0, size, set);
+}
+
+static int
+setaffinity (size_t size, const cpu_set_t *set)
+{
+ return sched_setaffinity (0, size, set);
+}
+
+#include "tst-skeleton-thread-affinity.c"
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/ttyname.c b/REORG.TODO/sysdeps/unix/sysv/linux/ttyname.c
new file mode 100644
index 0000000000..5909cb765f
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/ttyname.c
@@ -0,0 +1,223 @@
+/* Copyright (C) 1991-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <limits.h>
+#include <stddef.h>
+#include <dirent.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <termios.h>
+#include <unistd.h>
+#include <string.h>
+#include <stdlib.h>
+
+#include <_itoa.h>
+
+#include "ttyname.h"
+
+#if 0
+/* Is this used anywhere? It is not exported. */
+char *__ttyname;
+#endif
+
+static char *getttyname (const char *dev, dev_t mydev,
+ ino64_t myino, int save, int *dostat)
+ internal_function;
+
+
+libc_freeres_ptr (static char *getttyname_name);
+
+static char *
+internal_function attribute_compat_text_section
+getttyname (const char *dev, dev_t mydev, ino64_t myino, int save, int *dostat)
+{
+ static size_t namelen;
+ struct stat64 st;
+ DIR *dirstream;
+ struct dirent64 *d;
+ size_t devlen = strlen (dev) + 1;
+
+ dirstream = __opendir (dev);
+ if (dirstream == NULL)
+ {
+ *dostat = -1;
+ return NULL;
+ }
+
+ /* Prepare for the loop. If we already have a buffer copy the directory
+ name we look at into it. */
+ if (devlen < namelen)
+ *((char *) __mempcpy (getttyname_name, dev, devlen - 1)) = '/';
+
+ while ((d = __readdir64 (dirstream)) != NULL)
+ if ((d->d_fileno == myino || *dostat)
+ && strcmp (d->d_name, "stdin")
+ && strcmp (d->d_name, "stdout")
+ && strcmp (d->d_name, "stderr"))
+ {
+ size_t dlen = _D_ALLOC_NAMLEN (d);
+ if (devlen + dlen > namelen)
+ {
+ free (getttyname_name);
+ namelen = 2 * (devlen + dlen); /* Big enough. */
+ getttyname_name = malloc (namelen);
+ if (! getttyname_name)
+ {
+ *dostat = -1;
+ /* Perhaps it helps to free the directory stream buffer. */
+ (void) __closedir (dirstream);
+ return NULL;
+ }
+ *((char *) __mempcpy (getttyname_name, dev, devlen - 1)) = '/';
+ }
+ memcpy (&getttyname_name[devlen], d->d_name, dlen);
+ if (__xstat64 (_STAT_VER, getttyname_name, &st) == 0
+#ifdef _STATBUF_ST_RDEV
+ && S_ISCHR (st.st_mode) && st.st_rdev == mydev
+#else
+ && d->d_fileno == myino && st.st_dev == mydev
+#endif
+ )
+ {
+ (void) __closedir (dirstream);
+#if 0
+ __ttyname = getttyname_name;
+#endif
+ __set_errno (save);
+ return getttyname_name;
+ }
+ }
+
+ (void) __closedir (dirstream);
+ __set_errno (save);
+ return NULL;
+}
+
+
+/* Static buffer in `ttyname'. */
+libc_freeres_ptr (static char *ttyname_buf);
+
+
+/* Return the pathname of the terminal FD is open on, or NULL on errors.
+ The returned storage is good only until the next call to this function. */
+char *
+ttyname (int fd)
+{
+ static size_t buflen;
+ char procname[30];
+ struct stat64 st, st1;
+ int dostat = 0;
+ char *name;
+ int save = errno;
+ struct termios term;
+
+ /* isatty check, tcgetattr is used because it sets the correct
+ errno (EBADF resp. ENOTTY) on error. */
+ if (__glibc_unlikely (__tcgetattr (fd, &term) < 0))
+ return NULL;
+
+ if (__fxstat64 (_STAT_VER, fd, &st) < 0)
+ return NULL;
+
+ /* We try using the /proc filesystem. */
+ *_fitoa_word (fd, __stpcpy (procname, "/proc/self/fd/"), 10, 0) = '\0';
+
+ if (buflen == 0)
+ {
+ buflen = 4095;
+ ttyname_buf = (char *) malloc (buflen + 1);
+ if (ttyname_buf == NULL)
+ {
+ buflen = 0;
+ return NULL;
+ }
+ }
+
+ ssize_t len = __readlink (procname, ttyname_buf, buflen);
+ if (__glibc_likely (len != -1))
+ {
+ if ((size_t) len >= buflen)
+ return NULL;
+
+#define UNREACHABLE_LEN strlen ("(unreachable)")
+ if (len > UNREACHABLE_LEN
+ && memcmp (ttyname_buf, "(unreachable)", UNREACHABLE_LEN) == 0)
+ {
+ memmove (ttyname_buf, ttyname_buf + UNREACHABLE_LEN,
+ len - UNREACHABLE_LEN);
+ len -= UNREACHABLE_LEN;
+ }
+
+ /* readlink need not terminate the string. */
+ ttyname_buf[len] = '\0';
+
+ /* Verify readlink result, fall back on iterating through devices. */
+ if (ttyname_buf[0] == '/'
+ && __xstat64 (_STAT_VER, ttyname_buf, &st1) == 0
+#ifdef _STATBUF_ST_RDEV
+ && S_ISCHR (st1.st_mode)
+ && st1.st_rdev == st.st_rdev
+#endif
+ && st1.st_ino == st.st_ino
+ && st1.st_dev == st.st_dev)
+ return ttyname_buf;
+
+ /* If the link doesn't exist, then it points to a device in another
+ namespace. */
+ if (is_pty (&st))
+ {
+ __set_errno (ENODEV);
+ return NULL;
+ }
+ }
+
+ if (__xstat64 (_STAT_VER, "/dev/pts", &st1) == 0 && S_ISDIR (st1.st_mode))
+ {
+#ifdef _STATBUF_ST_RDEV
+ name = getttyname ("/dev/pts", st.st_rdev, st.st_ino, save, &dostat);
+#else
+ name = getttyname ("/dev/pts", st.st_dev, st.st_ino, save, &dostat);
+#endif
+ }
+ else
+ {
+ __set_errno (save);
+ name = NULL;
+ }
+
+ if (!name && dostat != -1)
+ {
+#ifdef _STATBUF_ST_RDEV
+ name = getttyname ("/dev", st.st_rdev, st.st_ino, save, &dostat);
+#else
+ name = getttyname ("/dev", st.st_dev, st.st_ino, save, &dostat);
+#endif
+ }
+
+ if (!name && dostat != -1)
+ {
+ dostat = 1;
+#ifdef _STATBUF_ST_RDEV
+ name = getttyname ("/dev", st.st_rdev, st.st_ino, save, &dostat);
+#else
+ name = getttyname ("/dev", st.st_dev, st.st_ino, save, &dostat);
+#endif
+ }
+
+ return name;
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/ttyname.h b/REORG.TODO/sysdeps/unix/sysv/linux/ttyname.h
new file mode 100644
index 0000000000..2e415e4e9c
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/ttyname.h
@@ -0,0 +1,34 @@
+/* Copyright (C) 2016-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation; either version 2.1 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; see the file COPYING.LIB. If
+ not, see <http://www.gnu.org/licenses/>. */
+
+#include <unistd.h>
+#include <sys/sysmacros.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+
+/* Return true if this is a UNIX98 pty device, as defined in
+ linux/Documentation/devices.txt. */
+static inline int
+is_pty (struct stat64 *sb)
+{
+#ifdef _STATBUF_ST_RDEV
+ int m = major (sb->st_rdev);
+ return (136 <= m && m <= 143);
+#else
+ return false;
+#endif
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/ttyname_r.c b/REORG.TODO/sysdeps/unix/sysv/linux/ttyname_r.c
new file mode 100644
index 0000000000..dc863526ba
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/ttyname_r.c
@@ -0,0 +1,221 @@
+/* Copyright (C) 1991-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <limits.h>
+#include <stddef.h>
+#include <dirent.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <termios.h>
+#include <unistd.h>
+#include <string.h>
+#include <stdlib.h>
+
+#include <_itoa.h>
+
+#include "ttyname.h"
+
+static int getttyname_r (char *buf, size_t buflen,
+ dev_t mydev, ino64_t myino, int save,
+ int *dostat) internal_function;
+
+static int
+internal_function attribute_compat_text_section
+getttyname_r (char *buf, size_t buflen, dev_t mydev, ino64_t myino,
+ int save, int *dostat)
+{
+ struct stat64 st;
+ DIR *dirstream;
+ struct dirent64 *d;
+ size_t devlen = strlen (buf);
+
+ dirstream = __opendir (buf);
+ if (dirstream == NULL)
+ {
+ *dostat = -1;
+ return errno;
+ }
+
+ while ((d = __readdir64 (dirstream)) != NULL)
+ if ((d->d_fileno == myino || *dostat)
+ && strcmp (d->d_name, "stdin")
+ && strcmp (d->d_name, "stdout")
+ && strcmp (d->d_name, "stderr"))
+ {
+ char *cp;
+ size_t needed = _D_EXACT_NAMLEN (d) + 1;
+
+ if (needed > buflen)
+ {
+ *dostat = -1;
+ (void) __closedir (dirstream);
+ __set_errno (ERANGE);
+ return ERANGE;
+ }
+
+ cp = __stpncpy (buf + devlen, d->d_name, needed);
+ cp[0] = '\0';
+
+ if (__xstat64 (_STAT_VER, buf, &st) == 0
+#ifdef _STATBUF_ST_RDEV
+ && S_ISCHR (st.st_mode) && st.st_rdev == mydev
+#else
+ && d->d_fileno == myino && st.st_dev == mydev
+#endif
+ )
+ {
+ (void) __closedir (dirstream);
+ __set_errno (save);
+ return 0;
+ }
+ }
+
+ (void) __closedir (dirstream);
+ __set_errno (save);
+ /* It is not clear what to return in this case. `isatty' says FD
+ refers to a TTY but no entry in /dev has this inode. */
+ return ENOTTY;
+}
+
+/* Store at most BUFLEN character of the pathname of the terminal FD is
+ open on in BUF. Return 0 on success, otherwise an error number. */
+int
+__ttyname_r (int fd, char *buf, size_t buflen)
+{
+ char procname[30];
+ struct stat64 st, st1;
+ int dostat = 0;
+ int save = errno;
+
+ /* Test for the absolute minimal size. This makes life easier inside
+ the loop. */
+ if (!buf)
+ {
+ __set_errno (EINVAL);
+ return EINVAL;
+ }
+
+ if (buflen < sizeof ("/dev/pts/"))
+ {
+ __set_errno (ERANGE);
+ return ERANGE;
+ }
+
+ /* isatty check, tcgetattr is used because it sets the correct
+ errno (EBADF resp. ENOTTY) on error. */
+ struct termios term;
+ if (__glibc_unlikely (__tcgetattr (fd, &term) < 0))
+ return errno;
+
+ if (__fxstat64 (_STAT_VER, fd, &st) < 0)
+ return errno;
+
+ /* We try using the /proc filesystem. */
+ *_fitoa_word (fd, __stpcpy (procname, "/proc/self/fd/"), 10, 0) = '\0';
+
+ ssize_t ret = __readlink (procname, buf, buflen - 1);
+ if (__glibc_unlikely (ret == -1 && errno == ENAMETOOLONG))
+ {
+ __set_errno (ERANGE);
+ return ERANGE;
+ }
+
+ if (__glibc_likely (ret != -1))
+ {
+#define UNREACHABLE_LEN strlen ("(unreachable)")
+ if (ret > UNREACHABLE_LEN
+ && memcmp (buf, "(unreachable)", UNREACHABLE_LEN) == 0)
+ {
+ memmove (buf, buf + UNREACHABLE_LEN, ret - UNREACHABLE_LEN);
+ ret -= UNREACHABLE_LEN;
+ }
+
+ /* readlink need not terminate the string. */
+ buf[ret] = '\0';
+
+ /* Verify readlink result, fall back on iterating through devices. */
+ if (buf[0] == '/'
+ && __xstat64 (_STAT_VER, buf, &st1) == 0
+#ifdef _STATBUF_ST_RDEV
+ && S_ISCHR (st1.st_mode)
+ && st1.st_rdev == st.st_rdev
+#endif
+ && st1.st_ino == st.st_ino
+ && st1.st_dev == st.st_dev)
+ return 0;
+
+ /* If the link doesn't exist, then it points to a device in another
+ * namespace.
+ */
+ if (is_pty (&st))
+ {
+ __set_errno (ENODEV);
+ return ENODEV;
+ }
+ }
+
+ /* Prepare the result buffer. */
+ memcpy (buf, "/dev/pts/", sizeof ("/dev/pts/"));
+ buflen -= sizeof ("/dev/pts/") - 1;
+
+ if (__xstat64 (_STAT_VER, buf, &st1) == 0 && S_ISDIR (st1.st_mode))
+ {
+#ifdef _STATBUF_ST_RDEV
+ ret = getttyname_r (buf, buflen, st.st_rdev, st.st_ino, save,
+ &dostat);
+#else
+ ret = getttyname_r (buf, buflen, st.st_dev, st.st_ino, save,
+ &dostat);
+#endif
+ }
+ else
+ {
+ __set_errno (save);
+ ret = ENOENT;
+ }
+
+ if (ret && dostat != -1)
+ {
+ buf[sizeof ("/dev/") - 1] = '\0';
+ buflen += sizeof ("pts/") - 1;
+#ifdef _STATBUF_ST_RDEV
+ ret = getttyname_r (buf, buflen, st.st_rdev, st.st_ino, save,
+ &dostat);
+#else
+ ret = getttyname_r (buf, buflen, st.st_dev, st.st_ino, save,
+ &dostat);
+#endif
+ }
+
+ if (ret && dostat != -1)
+ {
+ buf[sizeof ("/dev/") - 1] = '\0';
+ dostat = 1;
+#ifdef _STATBUF_ST_RDEV
+ ret = getttyname_r (buf, buflen, st.st_rdev, st.st_ino,
+ save, &dostat);
+#else
+ ret = getttyname_r (buf, buflen, st.st_dev, st.st_ino,
+ save, &dostat);
+#endif
+ }
+
+ return ret;
+}
+
+weak_alias (__ttyname_r, ttyname_r)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/ualarm.c b/REORG.TODO/sysdeps/unix/sysv/linux/ualarm.c
new file mode 100644
index 0000000000..5522f58892
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/ualarm.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/bsd/ualarm.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/umount.S b/REORG.TODO/sysdeps/unix/sysv/linux/umount.S
new file mode 100644
index 0000000000..e18463e2e6
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/umount.S
@@ -0,0 +1,12 @@
+/* This hack is necessary since the kernel people are making "strange"
+ changes. They simply rename old system calls. */
+
+#include <sysdep.h>
+#ifdef __NR_oldumount
+PSEUDO (__umount, oldumount, 1)
+#else
+PSEUDO (__umount, umount, 1)
+#endif
+ ret
+PSEUDO_END(__umount)
+weak_alias (__umount, umount)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/umount2.S b/REORG.TODO/sysdeps/unix/sysv/linux/umount2.S
new file mode 100644
index 0000000000..92241bbf97
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/umount2.S
@@ -0,0 +1,13 @@
+/* umount system call with two parameters. */
+
+#include <sysdep.h>
+#if defined __NR_oldumount || defined __NR_umount2
+#ifdef __NR_oldumount
+PSEUDO (__umount2, umount, 2)
+#else
+PSEUDO (__umount2, umount2, 2)
+#endif
+ ret
+PSEUDO_END(__umount2)
+weak_alias (__umount2, umount2)
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/unlockpt.c b/REORG.TODO/sysdeps/unix/sysv/linux/unlockpt.c
new file mode 100644
index 0000000000..4fa0082b4f
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/unlockpt.c
@@ -0,0 +1,48 @@
+/* Copyright (C) 1998-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Zack Weinberg <zack@rabi.phys.columbia.edu>, 1998.
+
+ 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 <stdlib.h>
+#include <sys/ioctl.h>
+#include <termios.h>
+
+
+/* Unlock the slave pseudo terminal associated with the master pseudo
+ terminal specified by FD. */
+int
+unlockpt (int fd)
+{
+#ifdef TIOCSPTLCK
+ int save_errno = errno;
+ int unlock = 0;
+
+ if (__ioctl (fd, TIOCSPTLCK, &unlock))
+ {
+ if (errno == EINVAL)
+ {
+ __set_errno (save_errno);
+ return 0;
+ }
+ else
+ return -1;
+ }
+#endif
+ /* If we have no TIOCSPTLCK ioctl, all slave pseudo terminals are
+ unlocked by default. */
+ return 0;
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/updwtmp.c b/REORG.TODO/sysdeps/unix/sysv/linux/updwtmp.c
new file mode 100644
index 0000000000..334d2272c6
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/updwtmp.c
@@ -0,0 +1,33 @@
+/* Copyright (C) 1998-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Mark Kettenis <kettenis@phys.uva.nl>, 1998.
+
+ 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 <unistd.h>
+
+#define TRANSFORM_UTMP_FILE_NAME(file_name) \
+ ((strcmp (file_name, _PATH_UTMP) == 0 \
+ && __access (_PATH_UTMP "x", F_OK) == 0) ? (_PATH_UTMP "x") : \
+ ((strcmp (file_name, _PATH_WTMP) == 0 \
+ && __access ( _PATH_WTMP "x", F_OK) == 0) ? (_PATH_WTMP "x") : \
+ ((strcmp (file_name, _PATH_UTMP "x") == 0 \
+ && __access (_PATH_UTMP "x", F_OK) != 0) ? _PATH_UTMP : \
+ ((strcmp (file_name, _PATH_WTMP "x") == 0 \
+ && __access (_PATH_WTMP "x", F_OK) != 0) ? _PATH_WTMP : \
+ file_name))))
+
+#include <login/updwtmp.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/ustat.c b/REORG.TODO/sysdeps/unix/sysv/linux/ustat.c
new file mode 100644
index 0000000000..bcb2893372
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/ustat.c
@@ -0,0 +1,37 @@
+/* Copyright (C) 1997-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
+
+ 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 <sys/ustat.h>
+#include <sys/sysmacros.h>
+
+#include <sysdep.h>
+#include <sys/syscall.h>
+
+int
+ustat (dev_t dev, struct ustat *ubuf)
+{
+ unsigned long long int k_dev;
+
+ /* We must convert the value to dev_t type used by the kernel. */
+ k_dev = dev & ((1ULL << 32) - 1);
+ if (k_dev != dev)
+ return INLINE_SYSCALL_ERROR_RETURN_VALUE (EINVAL);
+
+ return INLINE_SYSCALL (ustat, 2, (unsigned int) k_dev, ubuf);
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/utimensat.c b/REORG.TODO/sysdeps/unix/sysv/linux/utimensat.c
new file mode 100644
index 0000000000..87f1ef04e0
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/utimensat.c
@@ -0,0 +1,36 @@
+/* Change access and modification times of open file. Linux version.
+ Copyright (C) 2007-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <sys/stat.h>
+#include <sysdep.h>
+
+
+/* Change the access time of FILE to TSP[0] and
+ the modification time of FILE to TSP[1].
+
+ Starting with 2.6.22 the Linux kernel has the utimensat syscall. */
+int
+utimensat (int fd, const char *file, const struct timespec tsp[2],
+ int flags)
+{
+ if (file == NULL)
+ return INLINE_SYSCALL_ERROR_RETURN_VALUE (EINVAL);
+ /* Avoid implicit array coercion in syscall macros. */
+ return INLINE_SYSCALL (utimensat, 4, fd, file, &tsp[0], flags);
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/utimes.c b/REORG.TODO/sysdeps/unix/sysv/linux/utimes.c
new file mode 100644
index 0000000000..038ff20ba0
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/utimes.c
@@ -0,0 +1,36 @@
+/* Copyright (C) 1995-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <stddef.h>
+#include <utime.h>
+#include <sys/time.h>
+#include <sysdep.h>
+
+
+/* Consider moving to syscalls.list. */
+
+/* Change the access time of FILE to TVP[0] and
+ the modification time of FILE to TVP[1]. */
+int
+__utimes (const char *file, const struct timeval tvp[2])
+{
+ /* Avoid implicit array coercion in syscall macros. */
+ return INLINE_SYSCALL (utimes, 2, file, &tvp[0]);
+}
+
+weak_alias (__utimes, utimes)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/utmp_file.c b/REORG.TODO/sysdeps/unix/sysv/linux/utmp_file.c
new file mode 100644
index 0000000000..748d31d885
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/utmp_file.c
@@ -0,0 +1,33 @@
+/* Copyright (C) 1998-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Mark Kettenis <kettenis@phys.uva.nl>, 1998.
+
+ 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 <unistd.h>
+
+#define TRANSFORM_UTMP_FILE_NAME(file_name) \
+ ((strcmp (file_name, _PATH_UTMP) == 0 \
+ && __access (_PATH_UTMP "x", F_OK) == 0) ? (_PATH_UTMP "x") : \
+ ((strcmp (file_name, _PATH_WTMP) == 0 \
+ && __access ( _PATH_WTMP "x", F_OK) == 0) ? (_PATH_WTMP "x") : \
+ ((strcmp (file_name, _PATH_UTMP "x") == 0 \
+ && __access (_PATH_UTMP "x", F_OK) != 0) ? _PATH_UTMP : \
+ ((strcmp (file_name, _PATH_WTMP "x") == 0 \
+ && __access (_PATH_WTMP "x", F_OK) != 0) ? _PATH_WTMP : \
+ file_name))))
+
+#include <login/utmp_file.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/vfork.c b/REORG.TODO/sysdeps/unix/sysv/linux/vfork.c
new file mode 100644
index 0000000000..c8c13d0fd5
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/vfork.c
@@ -0,0 +1 @@
+#include <posix/vfork.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/vmsplice.c b/REORG.TODO/sysdeps/unix/sysv/linux/vmsplice.c
new file mode 100644
index 0000000000..01dac13a51
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/vmsplice.c
@@ -0,0 +1,27 @@
+/* Splice user pages into a pipe Linux implementation.
+ Copyright (C) 2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <fcntl.h>
+#include <sys/uio.h>
+#include <sysdep-cancel.h>
+
+ssize_t
+vmsplice (int fd, const struct iovec *iov, size_t count, unsigned int flags)
+{
+ return SYSCALL_CANCEL (vmsplice, fd, iov, count, flags);
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/wait.c b/REORG.TODO/sysdeps/unix/sysv/linux/wait.c
new file mode 100644
index 0000000000..da59b9232e
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/wait.c
@@ -0,0 +1,35 @@
+/* Copyright (C) 1991-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sys/wait.h>
+#include <errno.h>
+#include <sys/resource.h>
+#include <stddef.h>
+#include <sysdep-cancel.h>
+
+/* Wait for a child to die. When one does, put its status in *STAT_LOC
+ and return its process ID. For errors, return (pid_t) -1. */
+pid_t
+__libc_wait (int *stat_loc)
+{
+ pid_t result = SYSCALL_CANCEL (wait4, WAIT_ANY, stat_loc, 0,
+ (struct rusage *) NULL);
+ return result;
+}
+
+weak_alias (__libc_wait, __wait)
+weak_alias (__libc_wait, wait)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/wait3.c b/REORG.TODO/sysdeps/unix/sysv/linux/wait3.c
new file mode 100644
index 0000000000..2ff027f0e1
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/wait3.c
@@ -0,0 +1 @@
+#include <sysdeps/unix/bsd/wait3.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/waitid.c b/REORG.TODO/sysdeps/unix/sysv/linux/waitid.c
new file mode 100644
index 0000000000..2cc7e463cb
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/waitid.c
@@ -0,0 +1,32 @@
+/* Linux implementation of waitid.
+ Copyright (C) 2004-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <stddef.h>
+#include <errno.h>
+#include <sys/wait.h>
+#include <sysdep-cancel.h>
+
+int
+__waitid (idtype_t idtype, id_t id, siginfo_t *infop, int options)
+{
+ /* The unused fifth argument is a `struct rusage *' that we could
+ pass if we were using waitid to simulate wait3/wait4. */
+ return SYSCALL_CANCEL (waitid, idtype, id, infop, options, NULL);
+}
+weak_alias (__waitid, waitid)
+strong_alias (__waitid, __libc_waitid)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/waitpid.c b/REORG.TODO/sysdeps/unix/sysv/linux/waitpid.c
new file mode 100644
index 0000000000..2fed421c90
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/waitpid.c
@@ -0,0 +1,33 @@
+/* Copyright (C) 1991-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <sysdep-cancel.h>
+#include <stdlib.h>
+#include <sys/wait.h>
+
+__pid_t
+__waitpid (__pid_t pid, int *stat_loc, int options)
+{
+#ifdef __NR_waitpid
+ return SYSCALL_CANCEL (waitpid, pid, stat_loc, options);
+#else
+ return SYSCALL_CANCEL (wait4, pid, stat_loc, options, NULL);
+#endif
+}
+libc_hidden_def (__waitpid)
+weak_alias (__waitpid, waitpid)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/Versions b/REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/Versions
new file mode 100644
index 0000000000..a3b40ccd17
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/Versions
@@ -0,0 +1,5 @@
+libc {
+ GLIBC_2.10 {
+ fallocate64;
+ }
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/aio_read.c b/REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/aio_read.c
new file mode 100644
index 0000000000..d10fc4320b
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/aio_read.c
@@ -0,0 +1,7 @@
+#define aio_read64 __renamed_aio_read64
+
+#include "../../../../pthread/aio_read.c"
+
+#undef aio_read64
+
+weak_alias (aio_read, aio_read64)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/aio_read64.c b/REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/aio_read64.c
new file mode 100644
index 0000000000..6a6a102c8d
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/aio_read64.c
@@ -0,0 +1 @@
+/* Defined in aio_read.c. */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/aio_write.c b/REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/aio_write.c
new file mode 100644
index 0000000000..b0fb469cb2
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/aio_write.c
@@ -0,0 +1,7 @@
+#define aio_write64 __renamed_aio_write64
+
+#include "../../../../pthread/aio_write.c"
+
+#undef aio_write64
+
+weak_alias (aio_write, aio_write64)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/aio_write64.c b/REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/aio_write64.c
new file mode 100644
index 0000000000..ced07fa273
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/aio_write64.c
@@ -0,0 +1 @@
+/* Defined in aio_write.c. */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/dl-fxstatat64.c b/REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/dl-fxstatat64.c
new file mode 100644
index 0000000000..330b33f7c7
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/dl-fxstatat64.c
@@ -0,0 +1 @@
+#include "fxstatat.c"
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/fstatfs64.c b/REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/fstatfs64.c
new file mode 100644
index 0000000000..2be4e59ba4
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/fstatfs64.c
@@ -0,0 +1 @@
+/* fstatfs64 is the same as fstatfs. */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/fstatvfs.c b/REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/fstatvfs.c
new file mode 100644
index 0000000000..5803b6f882
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/fstatvfs.c
@@ -0,0 +1,5 @@
+#define __fstatvfs64(file, buf) __no_fstatvfs64(file, buf)
+#define fstatvfs64(file, buf) no_fstatvfs64(file, buf)
+#include "../fstatvfs.c"
+strong_alias (__fstatvfs, __fstatvfs64)
+weak_alias (__fstatvfs, fstatvfs64)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/fstatvfs64.c b/REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/fstatvfs64.c
new file mode 100644
index 0000000000..60f3dfec61
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/fstatvfs64.c
@@ -0,0 +1 @@
+/* fstatvfs64 is the same as fstatvfs. */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/fxstat.c b/REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/fxstat.c
new file mode 100644
index 0000000000..00f0517772
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/fxstat.c
@@ -0,0 +1,45 @@
+/* fxstat using old-style Unix fstat system call.
+ Copyright (C) 1991-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+/* Ho hum, since xstat == xstat64 we must get rid of the prototype or gcc
+ will complain since they don't strictly match. */
+#define __fxstat64 __fxstat64_disable
+
+#include <errno.h>
+#include <stddef.h>
+#include <sys/stat.h>
+
+#include <sysdep.h>
+#include <sys/syscall.h>
+
+/* Get information about the file FD in BUF. */
+int
+__fxstat (int vers, int fd, struct stat *buf)
+{
+ if (vers == _STAT_VER_KERNEL || vers == _STAT_VER_LINUX)
+ return INLINE_SYSCALL (fstat, 2, fd, buf);
+
+ __set_errno (EINVAL);
+ return -1;
+}
+
+hidden_def (__fxstat)
+weak_alias (__fxstat, _fxstat);
+#undef __fxstat64
+strong_alias (__fxstat, __fxstat64);
+hidden_ver (__fxstat, __fxstat64)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/fxstat64.c b/REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/fxstat64.c
new file mode 100644
index 0000000000..9eff9ebeb7
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/fxstat64.c
@@ -0,0 +1 @@
+/* fxstat64 is in fxstat.c */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/fxstatat.c b/REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/fxstatat.c
new file mode 100644
index 0000000000..f00bf01ee9
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/fxstatat.c
@@ -0,0 +1,48 @@
+/* Copyright (C) 2005-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+/* Ho hum, since fxstatat == fxstatat64 we must get rid of the
+ prototype or gcc will complain since they don't strictly match. */
+#define __fxstatat64 __fxstatat64_disable
+
+#include <errno.h>
+#include <fcntl.h>
+#include <stddef.h>
+#include <stdio.h>
+#include <string.h>
+#include <sys/stat.h>
+
+#include <sysdep.h>
+#include <sys/syscall.h>
+
+
+/* Get information about the file NAME relative to FD in ST. */
+int
+__fxstatat (int vers, int fd, const char *file, struct stat *st, int flag)
+{
+ if (vers != _STAT_VER_KERNEL && vers != _STAT_VER_LINUX)
+ {
+ __set_errno (EINVAL);
+ return -1;
+ }
+
+ return INLINE_SYSCALL (newfstatat, 4, fd, file, st, flag);
+}
+libc_hidden_def (__fxstatat)
+#undef __fxstatat64
+strong_alias (__fxstatat, __fxstatat64);
+strong_alias (__fxstatat64, __GI___fxstatat64)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/fxstatat64.c b/REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/fxstatat64.c
new file mode 100644
index 0000000000..05e7f413bb
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/fxstatat64.c
@@ -0,0 +1 @@
+/* fxstatat64 is in fxstatat.c */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/getdents.c b/REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/getdents.c
new file mode 100644
index 0000000000..5ea4c572a3
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/getdents.c
@@ -0,0 +1,4 @@
+#define __getdents64 __no___getdents64_decl
+#include <sysdeps/unix/sysv/linux/getdents.c>
+#undef __getdents64
+weak_alias (__getdents, __getdents64);
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/getdents64.c b/REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/getdents64.c
new file mode 100644
index 0000000000..0df2c8f4c6
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/getdents64.c
@@ -0,0 +1 @@
+/* getdents64 is in getdents.c */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/getdirentries.c b/REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/getdirentries.c
new file mode 100644
index 0000000000..298d1e9e91
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/getdirentries.c
@@ -0,0 +1,3 @@
+#include "../getdirentries.c"
+
+weak_alias (getdirentries, getdirentries64)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/getdirentries64.c b/REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/getdirentries64.c
new file mode 100644
index 0000000000..622baf0c87
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/getdirentries64.c
@@ -0,0 +1 @@
+/* Defined in getdirentries.c. */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/glob64.c b/REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/glob64.c
new file mode 100644
index 0000000000..eab7703d5c
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/glob64.c
@@ -0,0 +1,2 @@
+/* This file is here so sysdeps/gnu/glob64.c doesn't take precedence. */
+#include <sysdeps/wordsize-64/glob64.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/internal_statvfs64.c b/REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/internal_statvfs64.c
new file mode 100644
index 0000000000..d2a3509c6d
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/internal_statvfs64.c
@@ -0,0 +1 @@
+/* Nothing. */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/lio_listio.c b/REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/lio_listio.c
new file mode 100644
index 0000000000..25ee5a3507
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/lio_listio.c
@@ -0,0 +1,13 @@
+#define lio_listio64 __renamed_lio_listio64
+
+#include "../../../../pthread/lio_listio.c"
+
+#undef lio_listio64
+
+#if SHLIB_COMPAT (librt, GLIBC_2_1, GLIBC_2_4)
+strong_alias (__lio_listio_21, __lio_listio64_21)
+compat_symbol (librt, __lio_listio64_21, lio_listio64, GLIBC_2_1);
+#endif
+
+strong_alias (__lio_listio_item_notify, __lio_listio64_item_notify)
+versioned_symbol (librt, __lio_listio64_item_notify, lio_listio64, GLIBC_2_4);
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/lio_listio64.c b/REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/lio_listio64.c
new file mode 100644
index 0000000000..1dabae3692
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/lio_listio64.c
@@ -0,0 +1 @@
+/* Defined in lio_listio.c. */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/lxstat.c b/REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/lxstat.c
new file mode 100644
index 0000000000..dad9e267d7
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/lxstat.c
@@ -0,0 +1,45 @@
+/* lxstat using old-style Unix lstat system call.
+ Copyright (C) 1991-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+/* Ho hum, since xstat == xstat64 we must get rid of the prototype or gcc
+ will complain since they don't strictly match. */
+#define __lxstat64 __lxstat64_disable
+
+#include <errno.h>
+#include <stddef.h>
+#include <sys/stat.h>
+
+#include <sysdep.h>
+#include <sys/syscall.h>
+
+/* Get information about the file FD in BUF. */
+int
+__lxstat (int vers, const char *name, struct stat *buf)
+{
+ if (vers == _STAT_VER_KERNEL || vers == _STAT_VER_LINUX)
+ return INLINE_SYSCALL (lstat, 2, name, buf);
+
+ __set_errno (EINVAL);
+ return -1;
+}
+
+hidden_def (__lxstat)
+weak_alias (__lxstat, _lxstat);
+#undef __lxstat64
+strong_alias (__lxstat, __lxstat64);
+hidden_ver (__lxstat, __lxstat64)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/lxstat64.c b/REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/lxstat64.c
new file mode 100644
index 0000000000..bb5dbd0fff
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/lxstat64.c
@@ -0,0 +1 @@
+/* lxstat64 is in lxstat.c */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/openat.c b/REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/openat.c
new file mode 100644
index 0000000000..be31a35105
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/openat.c
@@ -0,0 +1,11 @@
+#define __openat64 __rename___openat64
+#define openat64 __rename_openat64
+
+#include "../openat.c"
+
+#undef __openat64
+#undef openat64
+
+strong_alias (__openat, __openat64)
+hidden_ver (__openat, __openat64)
+weak_alias (openat, openat64)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/openat64.c b/REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/openat64.c
new file mode 100644
index 0000000000..b4a864b040
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/openat64.c
@@ -0,0 +1 @@
+/* Defined in openat.c. */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/readdir.c b/REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/readdir.c
new file mode 100644
index 0000000000..e197d93b00
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/readdir.c
@@ -0,0 +1,7 @@
+#define readdir64 __no_readdir64_decl
+#define __readdir64 __no___readdir64_decl
+#include <sysdeps/posix/readdir.c>
+#undef __readdir64
+strong_alias (__readdir, __readdir64)
+#undef readdir64
+weak_alias (__readdir, readdir64)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/readdir64.c b/REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/readdir64.c
new file mode 100644
index 0000000000..9796431dc4
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/readdir64.c
@@ -0,0 +1 @@
+/* readdir64 is in readdir.c */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/readdir64_r.c b/REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/readdir64_r.c
new file mode 100644
index 0000000000..b8fe9a31b4
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/readdir64_r.c
@@ -0,0 +1 @@
+/* readdir64_r is in readdir_r.c */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/readdir_r.c b/REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/readdir_r.c
new file mode 100644
index 0000000000..290f2c8f6c
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/readdir_r.c
@@ -0,0 +1,4 @@
+#define readdir64_r __no_readdir64_r_decl
+#include <sysdeps/posix/readdir_r.c>
+#undef readdir64_r
+weak_alias (__readdir_r, readdir64_r)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/sendfile64.c b/REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/sendfile64.c
new file mode 100644
index 0000000000..4c451bd093
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/sendfile64.c
@@ -0,0 +1 @@
+/* sendfile64 is alias of sendfile syscall. */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/statfs64.c b/REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/statfs64.c
new file mode 100644
index 0000000000..06bc68826f
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/statfs64.c
@@ -0,0 +1 @@
+/* statfs64 is the same as statfs. */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/statvfs.c b/REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/statvfs.c
new file mode 100644
index 0000000000..1e1c96333b
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/statvfs.c
@@ -0,0 +1,5 @@
+#define __statvfs64(file, buf) __no_statvfs64(file, buf)
+#define statvfs64(file, buf) no_statvfs64(file, buf)
+#include "../statvfs.c"
+strong_alias (__statvfs, __statvfs64)
+weak_alias (__statvfs, statvfs64)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/statvfs64.c b/REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/statvfs64.c
new file mode 100644
index 0000000000..510015e420
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/statvfs64.c
@@ -0,0 +1 @@
+/* statvfs64 is the same as statvfs. */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/syscalls.list b/REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/syscalls.list
new file mode 100644
index 0000000000..5c78677d77
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/syscalls.list
@@ -0,0 +1,11 @@
+# File name Caller Syscall name # args Strong name Weak names
+
+fstatfs - fstatfs i:ip __fstatfs fstatfs fstatfs64 __fstatfs64
+statfs - statfs i:sp __statfs statfs statfs64
+readahead - readahead i:iii __readahead readahead
+sendfile - sendfile i:iipi sendfile sendfile64
+sync_file_range - sync_file_range Ci:iiii sync_file_range
+prlimit EXTRA prlimit64 i:iipp prlimit prlimit64
+
+fanotify_mark EXTRA fanotify_mark i:iiiis fanotify_mark
+personality EXTRA personality i:i __personality personality
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/xstat.c b/REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/xstat.c
new file mode 100644
index 0000000000..af9f5dd5bd
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/xstat.c
@@ -0,0 +1,44 @@
+/* xstat using old-style Unix stat system call.
+ Copyright (C) 1991-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+/* Ho hum, since xstat == xstat64 we must get rid of the prototype or gcc
+ will complain since they don't strictly match. */
+#define __xstat64 __xstat64_disable
+
+#include <errno.h>
+#include <stddef.h>
+#include <sys/stat.h>
+
+#include <sysdep.h>
+#include <sys/syscall.h>
+
+/* Get information about the file NAME in BUF. */
+int
+__xstat (int vers, const char *name, struct stat *buf)
+{
+ if (vers == _STAT_VER_KERNEL || vers == _STAT_VER_LINUX)
+ return INLINE_SYSCALL (stat, 2, name, buf);
+
+ __set_errno (EINVAL);
+ return -1;
+}
+hidden_def (__xstat)
+weak_alias (__xstat, _xstat);
+#undef __xstat64
+strong_alias (__xstat, __xstat64);
+hidden_ver (__xstat, __xstat64)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/xstat64.c b/REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/xstat64.c
new file mode 100644
index 0000000000..e7acd3b45e
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/wordsize-64/xstat64.c
@@ -0,0 +1 @@
+/* xstat64 is in xstat.c */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/write.c b/REORG.TODO/sysdeps/unix/sysv/linux/write.c
new file mode 100644
index 0000000000..d49514502e
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/write.c
@@ -0,0 +1,33 @@
+/* Linux write syscall implementation.
+ Copyright (C) 2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <unistd.h>
+#include <sysdep-cancel.h>
+
+/* Write NBYTES of BUF to FD. Return the number written, or -1. */
+ssize_t
+__libc_write (int fd, const void *buf, size_t nbytes)
+{
+ return SYSCALL_CANCEL (write, fd, buf, nbytes);
+}
+libc_hidden_def (__libc_write)
+
+weak_alias (__libc_write, __write)
+libc_hidden_weak (__write)
+weak_alias (__libc_write, write)
+libc_hidden_weak (write)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/writev.c b/REORG.TODO/sysdeps/unix/sysv/linux/writev.c
new file mode 100644
index 0000000000..1b56cbb709
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/writev.c
@@ -0,0 +1,27 @@
+/* Linux writev syscall implementation.
+ Copyright (C) 2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <unistd.h>
+#include <sysdep-cancel.h>
+
+ssize_t
+__writev (int fd, const struct iovec *iov, int iovcnt)
+{
+ return SYSCALL_CANCEL (writev, fd, iov, iovcnt);
+}
+weak_alias (__writev, writev)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86/Implies b/REORG.TODO/sysdeps/unix/sysv/linux/x86/Implies
new file mode 100644
index 0000000000..e454b288aa
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86/Implies
@@ -0,0 +1 @@
+x86/nptl
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86/Makefile b/REORG.TODO/sysdeps/unix/sysv/linux/x86/Makefile
new file mode 100644
index 0000000000..9e6ec44b3a
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86/Makefile
@@ -0,0 +1,24 @@
+# We don't need any header files.
+abi-includes :=
+
+abi-variants := 32 64 x32
+
+abi-32-options := -D__i386__ -U__x86_64__
+abi-32-condition := !defined __x86_64__
+abi-64-options := -U__i386__ -D__x86_64__ -U__ILP32__ -D__LP64__
+abi-64-condition := defined __x86_64__ && defined __LP64__
+abi-x32-options := -U__i386__ -D__x86_64__ -D__ILP32__ -U__LP64__
+abi-x32-condition := defined __x86_64__ && defined __ILP32__
+
+ifeq ($(subdir),misc)
+sysdep_headers += sys/elf.h sys/perm.h sys/reg.h sys/vm86.h sys/debugreg.h sys/io.h
+endif
+
+ifeq ($(subdir),nptl)
+libpthread-sysdep_routines += elision-lock elision-unlock elision-timed \
+ elision-trylock
+endif
+
+ifeq ($(subdir),elf)
+sysdep_routines += dl-vdso
+endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86/bits/a.out.h b/REORG.TODO/sysdeps/unix/sysv/linux/x86/bits/a.out.h
new file mode 100644
index 0000000000..0e4a7c911f
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86/bits/a.out.h
@@ -0,0 +1,11 @@
+#ifndef __A_OUT_GNU_H__
+# error "Never use <bits/a.out.h> directly; include <a.out.h> instead."
+#endif
+
+#ifdef __x86_64__
+
+/* Signal to users of this header that this architecture really doesn't
+ support a.out binary format. */
+#define __NO_A_OUT_SUPPORT 1
+
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86/bits/environments.h b/REORG.TODO/sysdeps/unix/sysv/linux/x86/bits/environments.h
new file mode 100644
index 0000000000..2fc65cf9ec
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86/bits/environments.h
@@ -0,0 +1,105 @@
+/* Copyright (C) 1999-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _UNISTD_H
+# error "Never include this file directly. Use <unistd.h> instead"
+#endif
+
+#include <bits/wordsize.h>
+
+/* This header should define the following symbols under the described
+ situations. A value `1' means that the model is always supported,
+ `-1' means it is never supported. Undefined means it cannot be
+ statically decided.
+
+ _POSIX_V7_ILP32_OFF32 32bit int, long, pointers, and off_t type
+ _POSIX_V7_ILP32_OFFBIG 32bit int, long, and pointers and larger off_t type
+
+ _POSIX_V7_LP64_OFF32 64bit long and pointers and 32bit off_t type
+ _POSIX_V7_LPBIG_OFFBIG 64bit long and pointers and large off_t type
+
+ The macros _POSIX_V6_ILP32_OFF32, _POSIX_V6_ILP32_OFFBIG,
+ _POSIX_V6_LP64_OFF32, _POSIX_V6_LPBIG_OFFBIG, _XBS5_ILP32_OFF32,
+ _XBS5_ILP32_OFFBIG, _XBS5_LP64_OFF32, and _XBS5_LPBIG_OFFBIG were
+ used in previous versions of the Unix standard and are available
+ only for compatibility.
+*/
+
+#if __WORDSIZE == 64
+
+/* Environments with 32-bit wide pointers are optionally provided.
+ Therefore following macros aren't defined:
+ # undef _POSIX_V7_ILP32_OFF32
+ # undef _POSIX_V7_ILP32_OFFBIG
+ # undef _POSIX_V6_ILP32_OFF32
+ # undef _POSIX_V6_ILP32_OFFBIG
+ # undef _XBS5_ILP32_OFF32
+ # undef _XBS5_ILP32_OFFBIG
+ and users need to check at runtime. */
+
+/* We also have no use (for now) for an environment with bigger pointers
+ and offsets. */
+# define _POSIX_V7_LPBIG_OFFBIG -1
+# define _POSIX_V6_LPBIG_OFFBIG -1
+# define _XBS5_LPBIG_OFFBIG -1
+
+/* By default we have 64-bit wide `long int', pointers and `off_t'. */
+# define _POSIX_V7_LP64_OFF64 1
+# define _POSIX_V6_LP64_OFF64 1
+# define _XBS5_LP64_OFF64 1
+
+#else /* __WORDSIZE == 32 */
+
+/* We have 32-bit wide `int', `long int' and pointers and all platforms
+ support LFS. -mx32 has 64-bit wide `off_t'. */
+# define _POSIX_V7_ILP32_OFFBIG 1
+# define _POSIX_V6_ILP32_OFFBIG 1
+# define _XBS5_ILP32_OFFBIG 1
+
+# ifndef __x86_64__
+/* -m32 has 32-bit wide `off_t'. */
+# define _POSIX_V7_ILP32_OFF32 1
+# define _POSIX_V6_ILP32_OFF32 1
+# define _XBS5_ILP32_OFF32 1
+# endif
+
+/* We optionally provide an environment with the above size but an 64-bit
+ side `off_t'. Therefore we don't define _POSIX_V7_ILP32_OFFBIG. */
+
+/* Environments with 64-bit wide pointers can be provided,
+ so these macros aren't defined:
+ # undef _POSIX_V7_LP64_OFF64
+ # undef _POSIX_V7_LPBIG_OFFBIG
+ # undef _POSIX_V6_LP64_OFF64
+ # undef _POSIX_V6_LPBIG_OFFBIG
+ # undef _XBS5_LP64_OFF64
+ # undef _XBS5_LPBIG_OFFBIG
+ and sysconf tests for it at runtime. */
+
+#endif /* __WORDSIZE == 32 */
+
+#define __ILP32_OFF32_CFLAGS "-m32"
+#define __ILP32_OFF32_LDFLAGS "-m32"
+#if defined __x86_64__ && defined __ILP32__
+# define __ILP32_OFFBIG_CFLAGS "-mx32"
+# define __ILP32_OFFBIG_LDFLAGS "-mx32"
+#else
+# define __ILP32_OFFBIG_CFLAGS "-m32 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
+# define __ILP32_OFFBIG_LDFLAGS "-m32"
+#endif
+#define __LP64_OFF64_CFLAGS "-m64"
+#define __LP64_OFF64_LDFLAGS "-m64"
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86/bits/epoll.h b/REORG.TODO/sysdeps/unix/sysv/linux/x86/bits/epoll.h
new file mode 100644
index 0000000000..96c9403619
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86/bits/epoll.h
@@ -0,0 +1,29 @@
+/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_EPOLL_H
+# error "Never use <bits/epoll.h> directly; include <sys/epoll.h> instead."
+#endif
+
+/* Flags to be passed to epoll_create1. */
+enum
+ {
+ EPOLL_CLOEXEC = 02000000
+#define EPOLL_CLOEXEC EPOLL_CLOEXEC
+ };
+
+#define __EPOLL_PACKED __attribute__ ((__packed__))
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86/bits/fcntl.h b/REORG.TODO/sysdeps/unix/sysv/linux/x86/bits/fcntl.h
new file mode 100644
index 0000000000..2cf690c9a6
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86/bits/fcntl.h
@@ -0,0 +1,61 @@
+/* O_*, F_*, FD_* bit values for Linux/x86.
+ Copyright (C) 2001-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _FCNTL_H
+# error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
+#endif
+
+#ifdef __x86_64__
+# define __O_LARGEFILE 0
+#endif
+
+#ifdef __x86_64__
+/* Not necessary, we always have 64-bit offsets. */
+# define F_GETLK64 5 /* Get record locking info. */
+# define F_SETLK64 6 /* Set record locking info (non-blocking). */
+# define F_SETLKW64 7 /* Set record locking info (blocking). */
+#endif
+
+
+struct flock
+ {
+ short int l_type; /* Type of lock: F_RDLCK, F_WRLCK, or F_UNLCK. */
+ short int l_whence; /* Where `l_start' is relative to (like `lseek'). */
+#ifndef __USE_FILE_OFFSET64
+ __off_t l_start; /* Offset where the lock begins. */
+ __off_t l_len; /* Size of the locked area; zero means until EOF. */
+#else
+ __off64_t l_start; /* Offset where the lock begins. */
+ __off64_t l_len; /* Size of the locked area; zero means until EOF. */
+#endif
+ __pid_t l_pid; /* Process holding the lock. */
+ };
+
+#ifdef __USE_LARGEFILE64
+struct flock64
+ {
+ short int l_type; /* Type of lock: F_RDLCK, F_WRLCK, or F_UNLCK. */
+ short int l_whence; /* Where `l_start' is relative to (like `lseek'). */
+ __off64_t l_start; /* Offset where the lock begins. */
+ __off64_t l_len; /* Size of the locked area; zero means until EOF. */
+ __pid_t l_pid; /* Process holding the lock. */
+ };
+#endif
+
+/* Include generic Linux declarations. */
+#include <bits/fcntl-linux.h>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86/bits/ipctypes.h b/REORG.TODO/sysdeps/unix/sysv/linux/x86/bits/ipctypes.h
new file mode 100644
index 0000000000..486b0148c1
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86/bits/ipctypes.h
@@ -0,0 +1,33 @@
+/* bits/ipctypes.h -- Define some types used by SysV IPC/MSG/SHM.
+ Copyright (C) 2012-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_IPC_H
+# error "Never use <bits/ipctypes.h> directly; include <sys/ipc.h> instead."
+#endif
+
+#ifndef _BITS_IPCTYPES_H
+#define _BITS_IPCTYPES_H 1
+
+/* Used in `struct shmid_ds'. */
+# ifdef __x86_64__
+typedef int __ipc_pid_t;
+# else
+typedef unsigned short int __ipc_pid_t;
+# endif
+
+#endif /* bits/ipctypes.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86/bits/mman.h b/REORG.TODO/sysdeps/unix/sysv/linux/x86/bits/mman.h
new file mode 100644
index 0000000000..017abf2f29
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86/bits/mman.h
@@ -0,0 +1,45 @@
+/* Definitions for POSIX memory map interface. Linux/x86_64 version.
+ Copyright (C) 2001-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_MMAN_H
+# error "Never use <bits/mman.h> directly; include <sys/mman.h> instead."
+#endif
+
+/* The following definitions basically come from the kernel headers.
+ But the kernel header is not namespace clean. */
+
+/* Other flags. */
+#ifdef __USE_MISC
+# define MAP_32BIT 0x40 /* Only give out 32-bit addresses. */
+#endif
+
+/* These are Linux-specific. */
+#ifdef __USE_MISC
+# define MAP_GROWSDOWN 0x00100 /* Stack-like segment. */
+# define MAP_DENYWRITE 0x00800 /* ETXTBSY */
+# define MAP_EXECUTABLE 0x01000 /* Mark it as an executable. */
+# define MAP_LOCKED 0x02000 /* Lock the mapping. */
+# define MAP_NORESERVE 0x04000 /* Don't check for reservations. */
+# define MAP_POPULATE 0x08000 /* Populate (prefault) pagetables. */
+# define MAP_NONBLOCK 0x10000 /* Do not block on IO. */
+# define MAP_STACK 0x20000 /* Allocation is for a stack. */
+# define MAP_HUGETLB 0x40000 /* Create huge page mapping. */
+#endif
+
+/* Include generic Linux declarations. */
+#include <bits/mman-linux.h>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86/bits/msq.h b/REORG.TODO/sysdeps/unix/sysv/linux/x86/bits/msq.h
new file mode 100644
index 0000000000..78b575c740
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86/bits/msq.h
@@ -0,0 +1,82 @@
+/* Copyright (C) 1995-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_MSG_H
+# error "Never use <bits/msq.h> directly; include <sys/msg.h> instead."
+#endif
+
+#include <bits/types.h>
+
+/* Define options for message queue functions. */
+#define MSG_NOERROR 010000 /* no error if message is too big */
+#ifdef __USE_GNU
+# define MSG_EXCEPT 020000 /* recv any msg except of specified type */
+# define MSG_COPY 040000 /* copy (not remove) all queue messages */
+#endif
+
+/* Types used in the structure definition. */
+typedef __syscall_ulong_t msgqnum_t;
+typedef __syscall_ulong_t msglen_t;
+
+/* Structure of record for one message inside the kernel.
+ The type `struct msg' is opaque. */
+struct msqid_ds
+{
+ struct ipc_perm msg_perm; /* structure describing operation permission */
+ __time_t msg_stime; /* time of last msgsnd command */
+#ifndef __x86_64__
+ unsigned long int __glibc_reserved1;
+#endif
+ __time_t msg_rtime; /* time of last msgrcv command */
+#ifndef __x86_64__
+ unsigned long int __glibc_reserved2;
+#endif
+ __time_t msg_ctime; /* time of last change */
+#ifndef __x86_64__
+ unsigned long int __glibc_reserved3;
+#endif
+ __syscall_ulong_t __msg_cbytes; /* current number of bytes on queue */
+ msgqnum_t msg_qnum; /* number of messages currently on queue */
+ msglen_t msg_qbytes; /* max number of bytes allowed on queue */
+ __pid_t msg_lspid; /* pid of last msgsnd() */
+ __pid_t msg_lrpid; /* pid of last msgrcv() */
+ __syscall_ulong_t __glibc_reserved4;
+ __syscall_ulong_t __glibc_reserved5;
+};
+
+#ifdef __USE_MISC
+
+# define msg_cbytes __msg_cbytes
+
+/* ipcs ctl commands */
+# define MSG_STAT 11
+# define MSG_INFO 12
+
+/* buffer for msgctl calls IPC_INFO, MSG_INFO */
+struct msginfo
+ {
+ int msgpool;
+ int msgmap;
+ int msgmax;
+ int msgmnb;
+ int msgmni;
+ int msgssz;
+ int msgtql;
+ unsigned short int msgseg;
+ };
+
+#endif /* __USE_MISC */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86/bits/sem.h b/REORG.TODO/sysdeps/unix/sysv/linux/x86/bits/sem.h
new file mode 100644
index 0000000000..b3e0047dd2
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86/bits/sem.h
@@ -0,0 +1,86 @@
+/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_SEM_H
+# error "Never include <bits/sem.h> directly; use <sys/sem.h> instead."
+#endif
+
+#include <sys/types.h>
+
+/* Flags for `semop'. */
+#define SEM_UNDO 0x1000 /* undo the operation on exit */
+
+/* Commands for `semctl'. */
+#define GETPID 11 /* get sempid */
+#define GETVAL 12 /* get semval */
+#define GETALL 13 /* get all semval's */
+#define GETNCNT 14 /* get semncnt */
+#define GETZCNT 15 /* get semzcnt */
+#define SETVAL 16 /* set semval */
+#define SETALL 17 /* set all semval's */
+
+
+/* Data structure describing a set of semaphores. */
+struct semid_ds
+{
+ struct ipc_perm sem_perm; /* operation permission struct */
+ __time_t sem_otime; /* last semop() time */
+ __syscall_ulong_t __glibc_reserved1;
+ __time_t sem_ctime; /* last time changed by semctl() */
+ __syscall_ulong_t __glibc_reserved2;
+ __syscall_ulong_t sem_nsems; /* number of semaphores in set */
+ __syscall_ulong_t __glibc_reserved3;
+ __syscall_ulong_t __glibc_reserved4;
+};
+
+/* The user should define a union like the following to use it for arguments
+ for `semctl'.
+
+ union semun
+ {
+ int val; <= value for SETVAL
+ struct semid_ds *buf; <= buffer for IPC_STAT & IPC_SET
+ unsigned short int *array; <= array for GETALL & SETALL
+ struct seminfo *__buf; <= buffer for IPC_INFO
+ };
+
+ Previous versions of this file used to define this union but this is
+ incorrect. One can test the macro _SEM_SEMUN_UNDEFINED to see whether
+ one must define the union or not. */
+#define _SEM_SEMUN_UNDEFINED 1
+
+#ifdef __USE_MISC
+
+/* ipcs ctl cmds */
+# define SEM_STAT 18
+# define SEM_INFO 19
+
+struct seminfo
+{
+ int semmap;
+ int semmni;
+ int semmns;
+ int semmnu;
+ int semmsl;
+ int semopm;
+ int semume;
+ int semusz;
+ int semvmx;
+ int semaem;
+};
+
+#endif /* __USE_MISC */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86/bits/shm.h b/REORG.TODO/sysdeps/unix/sysv/linux/x86/bits/shm.h
new file mode 100644
index 0000000000..5f8e2e1575
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86/bits/shm.h
@@ -0,0 +1,109 @@
+/* Copyright (C) 1995-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_SHM_H
+# error "Never include <bits/shm.h> directly; use <sys/shm.h> instead."
+#endif
+
+#include <bits/types.h>
+
+/* Permission flag for shmget. */
+#define SHM_R 0400 /* or S_IRUGO from <linux/stat.h> */
+#define SHM_W 0200 /* or S_IWUGO from <linux/stat.h> */
+
+/* Flags for `shmat'. */
+#define SHM_RDONLY 010000 /* attach read-only else read-write */
+#define SHM_RND 020000 /* round attach address to SHMLBA */
+#define SHM_REMAP 040000 /* take-over region on attach */
+#define SHM_EXEC 0100000 /* execution access */
+
+/* Commands for `shmctl'. */
+#define SHM_LOCK 11 /* lock segment (root only) */
+#define SHM_UNLOCK 12 /* unlock segment (root only) */
+
+__BEGIN_DECLS
+
+/* Segment low boundary address multiple. */
+#define SHMLBA (__getpagesize ())
+extern int __getpagesize (void) __THROW __attribute__ ((__const__));
+
+
+/* Type to count number of attaches. */
+typedef __syscall_ulong_t shmatt_t;
+
+/* Data structure describing a shared memory segment. */
+struct shmid_ds
+ {
+ struct ipc_perm shm_perm; /* operation permission struct */
+ size_t shm_segsz; /* size of segment in bytes */
+ __time_t shm_atime; /* time of last shmat() */
+#ifndef __x86_64__
+ unsigned long int __glibc_reserved1;
+#endif
+ __time_t shm_dtime; /* time of last shmdt() */
+#ifndef __x86_64__
+ unsigned long int __glibc_reserved2;
+#endif
+ __time_t shm_ctime; /* time of last change by shmctl() */
+#ifndef __x86_64__
+ unsigned long int __glibc_reserved3;
+#endif
+ __pid_t shm_cpid; /* pid of creator */
+ __pid_t shm_lpid; /* pid of last shmop */
+ shmatt_t shm_nattch; /* number of current attaches */
+ __syscall_ulong_t __glibc_reserved4;
+ __syscall_ulong_t __glibc_reserved5;
+ };
+
+#ifdef __USE_MISC
+
+/* ipcs ctl commands */
+# define SHM_STAT 13
+# define SHM_INFO 14
+
+/* shm_mode upper byte flags */
+# define SHM_DEST 01000 /* segment will be destroyed on last detach */
+# define SHM_LOCKED 02000 /* segment will not be swapped */
+# define SHM_HUGETLB 04000 /* segment is mapped via hugetlb */
+# define SHM_NORESERVE 010000 /* don't check for reservations */
+
+struct shminfo
+ {
+ __syscall_ulong_t shmmax;
+ __syscall_ulong_t shmmin;
+ __syscall_ulong_t shmmni;
+ __syscall_ulong_t shmseg;
+ __syscall_ulong_t shmall;
+ __syscall_ulong_t __glibc_reserved1;
+ __syscall_ulong_t __glibc_reserved2;
+ __syscall_ulong_t __glibc_reserved3;
+ __syscall_ulong_t __glibc_reserved4;
+ };
+
+struct shm_info
+ {
+ int used_ids;
+ __syscall_ulong_t shm_tot; /* total allocated shm */
+ __syscall_ulong_t shm_rss; /* total resident shm */
+ __syscall_ulong_t shm_swp; /* total swapped shm */
+ __syscall_ulong_t swap_attempts;
+ __syscall_ulong_t swap_successes;
+ };
+
+#endif /* __USE_MISC */
+
+__END_DECLS
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86/bits/sigcontext.h b/REORG.TODO/sysdeps/unix/sysv/linux/x86/bits/sigcontext.h
new file mode 100644
index 0000000000..cff595b94a
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86/bits/sigcontext.h
@@ -0,0 +1,196 @@
+/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _BITS_SIGCONTEXT_H
+#define _BITS_SIGCONTEXT_H 1
+
+#if !defined _SIGNAL_H && !defined _SYS_UCONTEXT_H
+# error "Never use <bits/sigcontext.h> directly; include <signal.h> instead."
+#endif
+
+#include <bits/types.h>
+
+#define FP_XSTATE_MAGIC1 0x46505853U
+#define FP_XSTATE_MAGIC2 0x46505845U
+#define FP_XSTATE_MAGIC2_SIZE sizeof(FP_XSTATE_MAGIC2)
+
+struct _fpx_sw_bytes
+{
+ __uint32_t magic1;
+ __uint32_t extended_size;
+ __uint64_t xstate_bv;
+ __uint32_t xstate_size;
+ __uint32_t __glibc_reserved1[7];
+};
+
+struct _fpreg
+{
+ unsigned short significand[4];
+ unsigned short exponent;
+};
+
+struct _fpxreg
+{
+ unsigned short significand[4];
+ unsigned short exponent;
+ unsigned short __glibc_reserved1[3];
+};
+
+struct _xmmreg
+{
+ __uint32_t element[4];
+};
+
+
+
+#ifndef __x86_64__
+
+struct _fpstate
+{
+ /* Regular FPU environment. */
+ __uint32_t cw;
+ __uint32_t sw;
+ __uint32_t tag;
+ __uint32_t ipoff;
+ __uint32_t cssel;
+ __uint32_t dataoff;
+ __uint32_t datasel;
+ struct _fpreg _st[8];
+ unsigned short status;
+ unsigned short magic;
+
+ /* FXSR FPU environment. */
+ __uint32_t _fxsr_env[6];
+ __uint32_t mxcsr;
+ __uint32_t __glibc_reserved1;
+ struct _fpxreg _fxsr_st[8];
+ struct _xmmreg _xmm[8];
+ __uint32_t __glibc_reserved2[56];
+};
+
+#ifndef sigcontext_struct
+/* Kernel headers before 2.1.1 define a struct sigcontext_struct, but
+ we need sigcontext. Some packages have come to rely on
+ sigcontext_struct being defined on 32-bit x86, so define this for
+ their benefit. */
+# define sigcontext_struct sigcontext
+#endif
+
+#define X86_FXSR_MAGIC 0x0000
+
+struct sigcontext
+{
+ unsigned short gs, __gsh;
+ unsigned short fs, __fsh;
+ unsigned short es, __esh;
+ unsigned short ds, __dsh;
+ unsigned long edi;
+ unsigned long esi;
+ unsigned long ebp;
+ unsigned long esp;
+ unsigned long ebx;
+ unsigned long edx;
+ unsigned long ecx;
+ unsigned long eax;
+ unsigned long trapno;
+ unsigned long err;
+ unsigned long eip;
+ unsigned short cs, __csh;
+ unsigned long eflags;
+ unsigned long esp_at_signal;
+ unsigned short ss, __ssh;
+ struct _fpstate * fpstate;
+ unsigned long oldmask;
+ unsigned long cr2;
+};
+
+#else /* __x86_64__ */
+
+struct _fpstate
+{
+ /* FPU environment matching the 64-bit FXSAVE layout. */
+ __uint16_t cwd;
+ __uint16_t swd;
+ __uint16_t ftw;
+ __uint16_t fop;
+ __uint64_t rip;
+ __uint64_t rdp;
+ __uint32_t mxcsr;
+ __uint32_t mxcr_mask;
+ struct _fpxreg _st[8];
+ struct _xmmreg _xmm[16];
+ __uint32_t __glibc_reserved1[24];
+};
+
+struct sigcontext
+{
+ __uint64_t r8;
+ __uint64_t r9;
+ __uint64_t r10;
+ __uint64_t r11;
+ __uint64_t r12;
+ __uint64_t r13;
+ __uint64_t r14;
+ __uint64_t r15;
+ __uint64_t rdi;
+ __uint64_t rsi;
+ __uint64_t rbp;
+ __uint64_t rbx;
+ __uint64_t rdx;
+ __uint64_t rax;
+ __uint64_t rcx;
+ __uint64_t rsp;
+ __uint64_t rip;
+ __uint64_t eflags;
+ unsigned short cs;
+ unsigned short gs;
+ unsigned short fs;
+ unsigned short __pad0;
+ __uint64_t err;
+ __uint64_t trapno;
+ __uint64_t oldmask;
+ __uint64_t cr2;
+ __extension__ union
+ {
+ struct _fpstate * fpstate;
+ __uint64_t __fpstate_word;
+ };
+ __uint64_t __reserved1 [8];
+};
+
+#endif /* __x86_64__ */
+
+struct _xsave_hdr
+{
+ __uint64_t xstate_bv;
+ __uint64_t __glibc_reserved1[2];
+ __uint64_t __glibc_reserved2[5];
+};
+
+struct _ymmh_state
+{
+ __uint32_t ymmh_space[64];
+};
+
+struct _xstate
+{
+ struct _fpstate fpstate;
+ struct _xsave_hdr xstate_hdr;
+ struct _ymmh_state ymmh;
+};
+
+#endif /* _BITS_SIGCONTEXT_H */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86/bits/siginfo-arch.h b/REORG.TODO/sysdeps/unix/sysv/linux/x86/bits/siginfo-arch.h
new file mode 100644
index 0000000000..7688a8d66d
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86/bits/siginfo-arch.h
@@ -0,0 +1,17 @@
+/* Architecture-specific adjustments to siginfo_t. x86 version. */
+#ifndef _BITS_SIGINFO_ARCH_H
+#define _BITS_SIGINFO_ARCH_H 1
+
+#if defined __x86_64__ && __WORDSIZE == 32
+/* si_utime and si_stime must be 4 byte aligned for x32 to match the
+ kernel. We align siginfo_t to 8 bytes so that si_utime and
+ si_stime are actually aligned to 8 bytes since their offsets are
+ multiple of 8 bytes. Note: with some compilers, the alignment
+ attribute would be ignored if it were put in __SI_CLOCK_T instead
+ of encapsulated in a typedef. */
+typedef __clock_t __attribute__ ((__aligned__ (4))) __sigchld_clock_t;
+# define __SI_ALIGNMENT __attribute__ ((__aligned__ (8)))
+# define __SI_CLOCK_T __sigchld_clock_t
+#endif
+
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86/bits/stat.h b/REORG.TODO/sysdeps/unix/sysv/linux/x86/bits/stat.h
new file mode 100644
index 0000000000..5a44b40c86
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86/bits/stat.h
@@ -0,0 +1,210 @@
+/* Copyright (C) 1999-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#if !defined _SYS_STAT_H && !defined _FCNTL_H
+# error "Never include <bits/stat.h> directly; use <sys/stat.h> instead."
+#endif
+
+#ifndef _BITS_STAT_H
+#define _BITS_STAT_H 1
+
+/* Versions of the `struct stat' data structure. */
+#ifndef __x86_64__
+# define _STAT_VER_LINUX_OLD 1
+# define _STAT_VER_KERNEL 1
+# define _STAT_VER_SVR4 2
+# define _STAT_VER_LINUX 3
+
+/* i386 versions of the `xmknod' interface. */
+# define _MKNOD_VER_LINUX 1
+# define _MKNOD_VER_SVR4 2
+# define _MKNOD_VER _MKNOD_VER_LINUX /* The bits defined below. */
+#else
+# define _STAT_VER_KERNEL 0
+# define _STAT_VER_LINUX 1
+
+/* x86-64 versions of the `xmknod' interface. */
+# define _MKNOD_VER_LINUX 0
+#endif
+
+#define _STAT_VER _STAT_VER_LINUX
+
+struct stat
+ {
+ __dev_t st_dev; /* Device. */
+#ifndef __x86_64__
+ unsigned short int __pad1;
+#endif
+#if defined __x86_64__ || !defined __USE_FILE_OFFSET64
+ __ino_t st_ino; /* File serial number. */
+#else
+ __ino_t __st_ino; /* 32bit file serial number. */
+#endif
+#ifndef __x86_64__
+ __mode_t st_mode; /* File mode. */
+ __nlink_t st_nlink; /* Link count. */
+#else
+ __nlink_t st_nlink; /* Link count. */
+ __mode_t st_mode; /* File mode. */
+#endif
+ __uid_t st_uid; /* User ID of the file's owner. */
+ __gid_t st_gid; /* Group ID of the file's group.*/
+#ifdef __x86_64__
+ int __pad0;
+#endif
+ __dev_t st_rdev; /* Device number, if device. */
+#ifndef __x86_64__
+ unsigned short int __pad2;
+#endif
+#if defined __x86_64__ || !defined __USE_FILE_OFFSET64
+ __off_t st_size; /* Size of file, in bytes. */
+#else
+ __off64_t st_size; /* Size of file, in bytes. */
+#endif
+ __blksize_t st_blksize; /* Optimal block size for I/O. */
+#if defined __x86_64__ || !defined __USE_FILE_OFFSET64
+ __blkcnt_t st_blocks; /* Number 512-byte blocks allocated. */
+#else
+ __blkcnt64_t st_blocks; /* Number 512-byte blocks allocated. */
+#endif
+#ifdef __USE_XOPEN2K8
+ /* Nanosecond resolution timestamps are stored in a format
+ equivalent to 'struct timespec'. This is the type used
+ whenever possible but the Unix namespace rules do not allow the
+ identifier 'timespec' to appear in the <sys/stat.h> header.
+ Therefore we have to handle the use of this header in strictly
+ standard-compliant sources special. */
+ struct timespec st_atim; /* Time of last access. */
+ struct timespec st_mtim; /* Time of last modification. */
+ struct timespec st_ctim; /* Time of last status change. */
+# define st_atime st_atim.tv_sec /* Backward compatibility. */
+# define st_mtime st_mtim.tv_sec
+# define st_ctime st_ctim.tv_sec
+#else
+ __time_t st_atime; /* Time of last access. */
+ __syscall_ulong_t st_atimensec; /* Nscecs of last access. */
+ __time_t st_mtime; /* Time of last modification. */
+ __syscall_ulong_t st_mtimensec; /* Nsecs of last modification. */
+ __time_t st_ctime; /* Time of last status change. */
+ __syscall_ulong_t st_ctimensec; /* Nsecs of last status change. */
+#endif
+#ifdef __x86_64__
+ __syscall_slong_t __glibc_reserved[3];
+#else
+# ifndef __USE_FILE_OFFSET64
+ unsigned long int __glibc_reserved4;
+ unsigned long int __glibc_reserved5;
+# else
+ __ino64_t st_ino; /* File serial number. */
+# endif
+#endif
+ };
+
+#ifdef __USE_LARGEFILE64
+/* Note stat64 has the same shape as stat for x86-64. */
+struct stat64
+ {
+ __dev_t st_dev; /* Device. */
+# ifdef __x86_64__
+ __ino64_t st_ino; /* File serial number. */
+ __nlink_t st_nlink; /* Link count. */
+ __mode_t st_mode; /* File mode. */
+# else
+ unsigned int __pad1;
+ __ino_t __st_ino; /* 32bit file serial number. */
+ __mode_t st_mode; /* File mode. */
+ __nlink_t st_nlink; /* Link count. */
+# endif
+ __uid_t st_uid; /* User ID of the file's owner. */
+ __gid_t st_gid; /* Group ID of the file's group.*/
+# ifdef __x86_64__
+ int __pad0;
+ __dev_t st_rdev; /* Device number, if device. */
+ __off_t st_size; /* Size of file, in bytes. */
+# else
+ __dev_t st_rdev; /* Device number, if device. */
+ unsigned int __pad2;
+ __off64_t st_size; /* Size of file, in bytes. */
+# endif
+ __blksize_t st_blksize; /* Optimal block size for I/O. */
+ __blkcnt64_t st_blocks; /* Nr. 512-byte blocks allocated. */
+# ifdef __USE_XOPEN2K8
+ /* Nanosecond resolution timestamps are stored in a format
+ equivalent to 'struct timespec'. This is the type used
+ whenever possible but the Unix namespace rules do not allow the
+ identifier 'timespec' to appear in the <sys/stat.h> header.
+ Therefore we have to handle the use of this header in strictly
+ standard-compliant sources special. */
+ struct timespec st_atim; /* Time of last access. */
+ struct timespec st_mtim; /* Time of last modification. */
+ struct timespec st_ctim; /* Time of last status change. */
+# else
+ __time_t st_atime; /* Time of last access. */
+ __syscall_ulong_t st_atimensec; /* Nscecs of last access. */
+ __time_t st_mtime; /* Time of last modification. */
+ __syscall_ulong_t st_mtimensec; /* Nsecs of last modification. */
+ __time_t st_ctime; /* Time of last status change. */
+ __syscall_ulong_t st_ctimensec; /* Nsecs of last status change. */
+# endif
+# ifdef __x86_64__
+ __syscall_slong_t __glibc_reserved[3];
+# else
+ __ino64_t st_ino; /* File serial number. */
+# endif
+ };
+#endif
+
+/* Tell code we have these members. */
+#define _STATBUF_ST_BLKSIZE
+#define _STATBUF_ST_RDEV
+/* Nanosecond resolution time values are supported. */
+#define _STATBUF_ST_NSEC
+
+/* Encoding of the file mode. */
+
+#define __S_IFMT 0170000 /* These bits determine file type. */
+
+/* File types. */
+#define __S_IFDIR 0040000 /* Directory. */
+#define __S_IFCHR 0020000 /* Character device. */
+#define __S_IFBLK 0060000 /* Block device. */
+#define __S_IFREG 0100000 /* Regular file. */
+#define __S_IFIFO 0010000 /* FIFO. */
+#define __S_IFLNK 0120000 /* Symbolic link. */
+#define __S_IFSOCK 0140000 /* Socket. */
+
+/* POSIX.1b objects. Note that these macros always evaluate to zero. But
+ they do it by enforcing the correct use of the macros. */
+#define __S_TYPEISMQ(buf) ((buf)->st_mode - (buf)->st_mode)
+#define __S_TYPEISSEM(buf) ((buf)->st_mode - (buf)->st_mode)
+#define __S_TYPEISSHM(buf) ((buf)->st_mode - (buf)->st_mode)
+
+/* Protection bits. */
+
+#define __S_ISUID 04000 /* Set user ID on execution. */
+#define __S_ISGID 02000 /* Set group ID on execution. */
+#define __S_ISVTX 01000 /* Save swapped text after use (sticky). */
+#define __S_IREAD 0400 /* Read by owner. */
+#define __S_IWRITE 0200 /* Write by owner. */
+#define __S_IEXEC 0100 /* Execute by owner. */
+
+#ifdef __USE_ATFILE
+# define UTIME_NOW ((1l << 30) - 1l)
+# define UTIME_OMIT ((1l << 30) - 2l)
+#endif
+
+#endif /* bits/stat.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86/bits/sysctl.h b/REORG.TODO/sysdeps/unix/sysv/linux/x86/bits/sysctl.h
new file mode 100644
index 0000000000..399261a2c9
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86/bits/sysctl.h
@@ -0,0 +1,20 @@
+/* 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/>. */
+
+#if defined __x86_64__ && defined __ILP32__
+# error "sysctl system call is unsupported in x32 kernel"
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86/bits/typesizes.h b/REORG.TODO/sysdeps/unix/sysv/linux/x86/bits/typesizes.h
new file mode 100644
index 0000000000..73962eb859
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86/bits/typesizes.h
@@ -0,0 +1,95 @@
+/* bits/typesizes.h -- underlying types for *_t. Linux/x86-64 version.
+ Copyright (C) 2012-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _BITS_TYPES_H
+# error "Never include <bits/typesizes.h> directly; use <sys/types.h> instead."
+#endif
+
+#ifndef _BITS_TYPESIZES_H
+#define _BITS_TYPESIZES_H 1
+
+/* See <bits/types.h> for the meaning of these macros. This file exists so
+ that <bits/types.h> need not vary across different GNU platforms. */
+
+/* X32 kernel interface is 64-bit. */
+#if defined __x86_64__ && defined __ILP32__
+# define __SYSCALL_SLONG_TYPE __SQUAD_TYPE
+# define __SYSCALL_ULONG_TYPE __UQUAD_TYPE
+#else
+# define __SYSCALL_SLONG_TYPE __SLONGWORD_TYPE
+# define __SYSCALL_ULONG_TYPE __ULONGWORD_TYPE
+#endif
+
+#define __DEV_T_TYPE __UQUAD_TYPE
+#define __UID_T_TYPE __U32_TYPE
+#define __GID_T_TYPE __U32_TYPE
+#define __INO_T_TYPE __SYSCALL_ULONG_TYPE
+#define __INO64_T_TYPE __UQUAD_TYPE
+#define __MODE_T_TYPE __U32_TYPE
+#ifdef __x86_64__
+# define __NLINK_T_TYPE __SYSCALL_ULONG_TYPE
+# define __FSWORD_T_TYPE __SYSCALL_SLONG_TYPE
+#else
+# define __NLINK_T_TYPE __UWORD_TYPE
+# define __FSWORD_T_TYPE __SWORD_TYPE
+#endif
+#define __OFF_T_TYPE __SYSCALL_SLONG_TYPE
+#define __OFF64_T_TYPE __SQUAD_TYPE
+#define __PID_T_TYPE __S32_TYPE
+#define __RLIM_T_TYPE __SYSCALL_ULONG_TYPE
+#define __RLIM64_T_TYPE __UQUAD_TYPE
+#define __BLKCNT_T_TYPE __SYSCALL_SLONG_TYPE
+#define __BLKCNT64_T_TYPE __SQUAD_TYPE
+#define __FSBLKCNT_T_TYPE __SYSCALL_ULONG_TYPE
+#define __FSBLKCNT64_T_TYPE __UQUAD_TYPE
+#define __FSFILCNT_T_TYPE __SYSCALL_ULONG_TYPE
+#define __FSFILCNT64_T_TYPE __UQUAD_TYPE
+#define __ID_T_TYPE __U32_TYPE
+#define __CLOCK_T_TYPE __SYSCALL_SLONG_TYPE
+#define __TIME_T_TYPE __SYSCALL_SLONG_TYPE
+#define __USECONDS_T_TYPE __U32_TYPE
+#define __SUSECONDS_T_TYPE __SYSCALL_SLONG_TYPE
+#define __DADDR_T_TYPE __S32_TYPE
+#define __KEY_T_TYPE __S32_TYPE
+#define __CLOCKID_T_TYPE __S32_TYPE
+#define __TIMER_T_TYPE void *
+#define __BLKSIZE_T_TYPE __SYSCALL_SLONG_TYPE
+#define __FSID_T_TYPE struct { int __val[2]; }
+#define __SSIZE_T_TYPE __SWORD_TYPE
+#define __CPU_MASK_TYPE __SYSCALL_ULONG_TYPE
+
+#ifdef __x86_64__
+/* Tell the libc code that off_t and off64_t are actually the same type
+ for all ABI purposes, even if possibly expressed as different base types
+ for C type-checking purposes. */
+# define __OFF_T_MATCHES_OFF64_T 1
+
+/* Same for ino_t and ino64_t. */
+# define __INO_T_MATCHES_INO64_T 1
+
+/* And for __rlim_t and __rlim64_t. */
+# define __RLIM_T_MATCHES_RLIM64_T 1
+#else
+# define __RLIM_T_MATCHES_RLIM64_T 0
+#endif
+
+/* Number of descriptors that can fit in an `fd_set'. */
+#define __FD_SETSIZE 1024
+
+
+#endif /* bits/typesizes.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86/elision-conf.c b/REORG.TODO/sysdeps/unix/sysv/linux/x86/elision-conf.c
new file mode 100644
index 0000000000..673b0005a7
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86/elision-conf.c
@@ -0,0 +1,78 @@
+/* elision-conf.c: Lock elision tunable parameters.
+ Copyright (C) 2013-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 "config.h"
+#include <pthreadP.h>
+#include <init-arch.h>
+#include <elision-conf.h>
+#include <unistd.h>
+
+/* Reasonable initial tuning values, may be revised in the future.
+ This is a conservative initial value. */
+
+struct elision_config __elision_aconf =
+ {
+ /* How often to not attempt to use elision if a transaction aborted
+ because the lock is already acquired. Expressed in number of lock
+ acquisition attempts. */
+ .skip_lock_busy = 3,
+ /* How often to not attempt to use elision if a transaction aborted due
+ to reasons other than other threads' memory accesses. Expressed in
+ number of lock acquisition attempts. */
+ .skip_lock_internal_abort = 3,
+ /* How often we retry using elision if there is chance for the transaction
+ to finish execution (e.g., it wasn't aborted due to the lock being
+ already acquired. */
+ .retry_try_xbegin = 3,
+ /* Same as SKIP_LOCK_INTERNAL_ABORT but for trylock. */
+ .skip_trylock_internal_abort = 3,
+ };
+
+/* Force elision for all new locks. This is used to decide whether existing
+ DEFAULT locks should be automatically upgraded to elision in
+ pthread_mutex_lock(). Disabled for suid programs. Only used when elision
+ is available. */
+
+int __pthread_force_elision attribute_hidden;
+
+/* Initialize elison. */
+
+static void
+elision_init (int argc __attribute__ ((unused)),
+ char **argv __attribute__ ((unused)),
+ char **environ)
+{
+ int elision_available = HAS_CPU_FEATURE (RTM);
+#ifdef ENABLE_LOCK_ELISION
+ __pthread_force_elision = __libc_enable_secure ? 0 : elision_available;
+#endif
+ if (!elision_available)
+ __elision_aconf.retry_try_xbegin = 0; /* Disable elision on rwlocks */
+}
+
+#ifdef SHARED
+# define INIT_SECTION ".init_array"
+#else
+# define INIT_SECTION ".preinit_array"
+#endif
+
+void (*const __pthread_init_array []) (int, char **, char **)
+ __attribute__ ((section (INIT_SECTION), aligned (sizeof (void *)))) =
+{
+ &elision_init
+};
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86/elision-conf.h b/REORG.TODO/sysdeps/unix/sysv/linux/x86/elision-conf.h
new file mode 100644
index 0000000000..f187d72d40
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86/elision-conf.h
@@ -0,0 +1,41 @@
+/* elision-conf.h: Lock elision tunable parameters.
+ Copyright (C) 2013-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 _ELISION_CONF_H
+#define _ELISION_CONF_H 1
+
+#include <pthread.h>
+#include <time.h>
+
+/* Should make sure there is no false sharing on this. */
+
+struct elision_config
+{
+ int skip_lock_busy;
+ int skip_lock_internal_abort;
+ int retry_try_xbegin;
+ int skip_trylock_internal_abort;
+};
+
+extern struct elision_config __elision_aconf attribute_hidden;
+
+extern int __pthread_force_elision attribute_hidden;
+
+/* Tell the test suite to test elision for this architecture. */
+#define HAVE_ELISION 1
+
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86/elision-lock.c b/REORG.TODO/sysdeps/unix/sysv/linux/x86/elision-lock.c
new file mode 100644
index 0000000000..f5ff111dd3
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86/elision-lock.c
@@ -0,0 +1,107 @@
+/* elision-lock.c: Elided pthread mutex lock.
+ Copyright (C) 2011-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <pthread.h>
+#include "pthreadP.h"
+#include "lowlevellock.h"
+#include "hle.h"
+#include <elision-conf.h>
+
+#if !defined(LLL_LOCK) && !defined(EXTRAARG)
+/* Make sure the configuration code is always linked in for static
+ libraries. */
+#include "elision-conf.c"
+#endif
+
+#ifndef EXTRAARG
+#define EXTRAARG
+#endif
+#ifndef LLL_LOCK
+#define LLL_LOCK(a,b) lll_lock(a,b), 0
+#endif
+
+#define aconf __elision_aconf
+
+/* Adaptive lock using transactions.
+ By default the lock region is run as a transaction, and when it
+ aborts or the lock is busy the lock adapts itself. */
+
+int
+__lll_lock_elision (int *futex, short *adapt_count, EXTRAARG int private)
+{
+ /* adapt_count can be accessed concurrently; these accesses can be both
+ inside of transactions (if critical sections are nested and the outer
+ critical section uses lock elision) and outside of transactions. Thus,
+ we need to use atomic accesses to avoid data races. However, the
+ value of adapt_count is just a hint, so relaxed MO accesses are
+ sufficient. */
+ if (atomic_load_relaxed (adapt_count) <= 0)
+ {
+ unsigned status;
+ int try_xbegin;
+
+ for (try_xbegin = aconf.retry_try_xbegin;
+ try_xbegin > 0;
+ try_xbegin--)
+ {
+ if ((status = _xbegin()) == _XBEGIN_STARTED)
+ {
+ if (*futex == 0)
+ return 0;
+
+ /* Lock was busy. Fall back to normal locking.
+ Could also _xend here but xabort with 0xff code
+ is more visible in the profiler. */
+ _xabort (_ABORT_LOCK_BUSY);
+ }
+
+ if (!(status & _XABORT_RETRY))
+ {
+ if ((status & _XABORT_EXPLICIT)
+ && _XABORT_CODE (status) == _ABORT_LOCK_BUSY)
+ {
+ /* Right now we skip here. Better would be to wait a bit
+ and retry. This likely needs some spinning. See
+ above for why relaxed MO is sufficient. */
+ if (atomic_load_relaxed (adapt_count)
+ != aconf.skip_lock_busy)
+ atomic_store_relaxed (adapt_count, aconf.skip_lock_busy);
+ }
+ /* Internal abort. There is no chance for retry.
+ Use the normal locking and next time use lock.
+ Be careful to avoid writing to the lock. See above for why
+ relaxed MO is sufficient. */
+ else if (atomic_load_relaxed (adapt_count)
+ != aconf.skip_lock_internal_abort)
+ atomic_store_relaxed (adapt_count,
+ aconf.skip_lock_internal_abort);
+ break;
+ }
+ }
+ }
+ else
+ {
+ /* Use a normal lock until the threshold counter runs out.
+ Lost updates possible. */
+ atomic_store_relaxed (adapt_count,
+ atomic_load_relaxed (adapt_count) - 1);
+ }
+
+ /* Use a normal lock here. */
+ return LLL_LOCK ((*futex), private);
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86/elision-timed.c b/REORG.TODO/sysdeps/unix/sysv/linux/x86/elision-timed.c
new file mode 100644
index 0000000000..47b81c08c8
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86/elision-timed.c
@@ -0,0 +1,26 @@
+/* elision-timed.c: Lock elision timed lock.
+ Copyright (C) 2013-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 <time.h>
+#include <elision-conf.h>
+#include "lowlevellock.h"
+#define __lll_lock_elision __lll_timedlock_elision
+#define EXTRAARG const struct timespec *t,
+#undef LLL_LOCK
+#define LLL_LOCK(a, b) lll_timedlock(a, t, b)
+#include "elision-lock.c"
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86/elision-trylock.c b/REORG.TODO/sysdeps/unix/sysv/linux/x86/elision-trylock.c
new file mode 100644
index 0000000000..c19293bf7a
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86/elision-trylock.c
@@ -0,0 +1,75 @@
+/* elision-trylock.c: Lock eliding trylock for pthreads.
+ Copyright (C) 2013-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 <pthread.h>
+#include <pthreadP.h>
+#include <lowlevellock.h>
+#include "hle.h"
+#include <elision-conf.h>
+
+#define aconf __elision_aconf
+
+/* Try to elide a futex trylock. FUTEX is the futex variable. ADAPT_COUNT is
+ the adaptation counter in the mutex. */
+
+int
+__lll_trylock_elision (int *futex, short *adapt_count)
+{
+ /* Implement POSIX semantics by forbiding nesting
+ trylock. Sorry. After the abort the code is re-executed
+ non transactional and if the lock was already locked
+ return an error. */
+ _xabort (_ABORT_NESTED_TRYLOCK);
+
+ /* Only try a transaction if it's worth it. See __lll_lock_elision for
+ why we need atomic accesses. Relaxed MO is sufficient because this is
+ just a hint. */
+ if (atomic_load_relaxed (adapt_count) <= 0)
+ {
+ unsigned status;
+
+ if ((status = _xbegin()) == _XBEGIN_STARTED)
+ {
+ if (*futex == 0)
+ return 0;
+
+ /* Lock was busy. Fall back to normal locking.
+ Could also _xend here but xabort with 0xff code
+ is more visible in the profiler. */
+ _xabort (_ABORT_LOCK_BUSY);
+ }
+
+ if (!(status & _XABORT_RETRY))
+ {
+ /* Internal abort. No chance for retry. For future
+ locks don't try speculation for some time. See above for MO. */
+ if (atomic_load_relaxed (adapt_count)
+ != aconf.skip_lock_internal_abort)
+ atomic_store_relaxed (adapt_count, aconf.skip_lock_internal_abort);
+ }
+ /* Could do some retries here. */
+ }
+ else
+ {
+ /* Lost updates are possible but harmless (see above). */
+ atomic_store_relaxed (adapt_count,
+ atomic_load_relaxed (adapt_count) - 1);
+ }
+
+ return lll_trylock (*futex);
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86/elision-unlock.c b/REORG.TODO/sysdeps/unix/sysv/linux/x86/elision-unlock.c
new file mode 100644
index 0000000000..a3d07cbf21
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86/elision-unlock.c
@@ -0,0 +1,33 @@
+/* elision-unlock.c: Commit an elided pthread lock.
+ Copyright (C) 2013-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 "pthreadP.h"
+#include "lowlevellock.h"
+#include "hle.h"
+
+int
+__lll_unlock_elision(int *lock, int private)
+{
+ /* When the lock was free we're in a transaction.
+ When you crash here you unlocked a free lock. */
+ if (*lock == 0)
+ _xend();
+ else
+ lll_unlock ((*lock), private);
+ return 0;
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86/force-elision.h b/REORG.TODO/sysdeps/unix/sysv/linux/x86/force-elision.h
new file mode 100644
index 0000000000..2e93a0699a
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86/force-elision.h
@@ -0,0 +1,26 @@
+/* force-elision.h: Automatic enabling of elision for mutexes
+ Copyright (C) 2013-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/>. */
+
+/* Automatically enable elision for existing user lock kinds. */
+#define FORCE_ELISION(m, s) \
+ if (__pthread_force_elision \
+ && (m->__data.__kind & PTHREAD_MUTEX_ELISION_FLAGS_NP) == 0) \
+ { \
+ mutex->__data.__kind |= PTHREAD_MUTEX_ELISION_NP; \
+ s; \
+ }
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86/gettimeofday.c b/REORG.TODO/sysdeps/unix/sysv/linux/x86/gettimeofday.c
new file mode 100644
index 0000000000..fee2fd2da3
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86/gettimeofday.c
@@ -0,0 +1,61 @@
+/* gettimeofday - get the time. Linux/x86 version.
+ Copyright (C) 2015-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sys/time.h>
+
+#ifdef SHARED
+
+# include <dl-vdso.h>
+# include <errno.h>
+
+static int
+__gettimeofday_syscall (struct timeval *tv, struct timezone *tz)
+{
+ return INLINE_SYSCALL (gettimeofday, 2, tv, tz);
+}
+
+# ifndef __gettimeofday_type
+/* The i386 gettimeofday.c includes this file with a defined
+ __gettimeofday_type macro. For x86_64 we have to define it to __gettimeofday
+ as the internal symbol is the ifunc'ed one. */
+# define __gettimeofday_type __gettimeofday
+# endif
+
+# undef INIT_ARCH
+# define INIT_ARCH() PREPARE_VERSION_KNOWN (linux26, LINUX_2_6)
+/* If the vDSO is not available we fall back to syscall. */
+libc_ifunc_hidden (__gettimeofday_type, __gettimeofday,
+ (_dl_vdso_vsym ("__vdso_gettimeofday", &linux26)
+ ?: &__gettimeofday_syscall))
+libc_hidden_def (__gettimeofday)
+
+#else
+
+# include <sysdep.h>
+# include <errno.h>
+
+int
+__gettimeofday (struct timeval *tv, struct timezone *tz)
+{
+ return INLINE_SYSCALL (gettimeofday, 2, tv, tz);
+}
+libc_hidden_def (__gettimeofday)
+
+#endif
+weak_alias (__gettimeofday, gettimeofday)
+libc_hidden_weak (gettimeofday)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86/hle.h b/REORG.TODO/sysdeps/unix/sysv/linux/x86/hle.h
new file mode 100644
index 0000000000..4a7b9e3bf7
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86/hle.h
@@ -0,0 +1,75 @@
+/* Shared RTM header. Emulate TSX intrinsics for compilers and assemblers
+ that do not support the intrinsics and instructions yet. */
+#ifndef _HLE_H
+#define _HLE_H 1
+
+#ifdef __ASSEMBLER__
+
+.macro XBEGIN target
+ .byte 0xc7,0xf8
+ .long \target-1f
+1:
+.endm
+
+.macro XEND
+ .byte 0x0f,0x01,0xd5
+.endm
+
+.macro XABORT code
+ .byte 0xc6,0xf8,\code
+.endm
+
+.macro XTEST
+ .byte 0x0f,0x01,0xd6
+.endm
+
+#endif
+
+/* Official RTM intrinsics interface matching gcc/icc, but works
+ on older gcc compatible compilers and binutils.
+ We should somehow detect if the compiler supports it, because
+ it may be able to generate slightly better code. */
+
+#define _XBEGIN_STARTED (~0u)
+#define _XABORT_EXPLICIT (1 << 0)
+#define _XABORT_RETRY (1 << 1)
+#define _XABORT_CONFLICT (1 << 2)
+#define _XABORT_CAPACITY (1 << 3)
+#define _XABORT_DEBUG (1 << 4)
+#define _XABORT_NESTED (1 << 5)
+#define _XABORT_CODE(x) (((x) >> 24) & 0xff)
+
+#define _ABORT_LOCK_BUSY 0xff
+#define _ABORT_LOCK_IS_LOCKED 0xfe
+#define _ABORT_NESTED_TRYLOCK 0xfd
+
+#ifndef __ASSEMBLER__
+
+#define __force_inline __attribute__((__always_inline__)) inline
+
+static __force_inline int _xbegin(void)
+{
+ int ret = _XBEGIN_STARTED;
+ asm volatile (".byte 0xc7,0xf8 ; .long 0" : "+a" (ret) :: "memory");
+ return ret;
+}
+
+static __force_inline void _xend(void)
+{
+ asm volatile (".byte 0x0f,0x01,0xd5" ::: "memory");
+}
+
+static __force_inline void _xabort(const unsigned int status)
+{
+ asm volatile (".byte 0xc6,0xf8,%P0" :: "i" (status) : "memory");
+}
+
+static __force_inline int _xtest(void)
+{
+ unsigned char out;
+ asm volatile (".byte 0x0f,0x01,0xd6 ; setnz %0" : "=r" (out) :: "memory");
+ return out;
+}
+
+#endif
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86/libc-vdso.h b/REORG.TODO/sysdeps/unix/sysv/linux/x86/libc-vdso.h
new file mode 100644
index 0000000000..6cc3285461
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86/libc-vdso.h
@@ -0,0 +1,36 @@
+/* Resolve function pointers to VDSO functions.
+ Copyright (C) 2005-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _LIBC_VDSO_H
+#define _LIBC_VDSO_H
+
+#include <time.h>
+#include <sys/time.h>
+
+#ifdef SHARED
+
+# include <sysdep-vdso.h>
+
+extern long int (*VDSO_SYMBOL(clock_gettime)) (clockid_t, struct timespec *)
+ attribute_hidden;
+
+extern long int (*VDSO_SYMBOL(getcpu)) (unsigned *, unsigned *, void *);
+
+#endif
+
+#endif /* _LIBC_VDSO_H */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86/pthread_mutex_cond_lock.c b/REORG.TODO/sysdeps/unix/sysv/linux/x86/pthread_mutex_cond_lock.c
new file mode 100644
index 0000000000..a4e61c38c1
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86/pthread_mutex_cond_lock.c
@@ -0,0 +1,22 @@
+/* Copyright (C) 2013-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+/* The cond lock is not actually elided yet, but we still need to handle
+ already elided locks. */
+#include <elision-conf.h>
+
+#include <nptl/pthread_mutex_cond_lock.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86/pthread_mutex_lock.c b/REORG.TODO/sysdeps/unix/sysv/linux/x86/pthread_mutex_lock.c
new file mode 100644
index 0000000000..8a40c86502
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86/pthread_mutex_lock.c
@@ -0,0 +1,22 @@
+/* Elided version of pthread_mutex_lock.
+ Copyright (C) 2011-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <elision-conf.h>
+#include "force-elision.h"
+
+#include "nptl/pthread_mutex_lock.c"
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86/pthread_mutex_timedlock.c b/REORG.TODO/sysdeps/unix/sysv/linux/x86/pthread_mutex_timedlock.c
new file mode 100644
index 0000000000..33fe1b46de
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86/pthread_mutex_timedlock.c
@@ -0,0 +1,22 @@
+/* Elided version of pthread_mutex_timedlock.
+ Copyright (C) 2011-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <elision-conf.h>
+#include "force-elision.h"
+
+#include "nptl/pthread_mutex_timedlock.c"
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86/pthread_mutex_trylock.c b/REORG.TODO/sysdeps/unix/sysv/linux/x86/pthread_mutex_trylock.c
new file mode 100644
index 0000000000..435839a292
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86/pthread_mutex_trylock.c
@@ -0,0 +1,22 @@
+/* Elided version of pthread_mutex_trylock.
+ Copyright (C) 2011-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <elision-conf.h>
+#include "force-elision.h"
+
+#include "nptl/pthread_mutex_trylock.c"
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86/sys/debugreg.h b/REORG.TODO/sysdeps/unix/sysv/linux/x86/sys/debugreg.h
new file mode 100644
index 0000000000..eaa79a882b
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86/sys/debugreg.h
@@ -0,0 +1,88 @@
+/* Copyright (C) 2001-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_DEBUGREG_H
+#define _SYS_DEBUGREG_H 1
+
+/* Indicate the register numbers for a number of the specific
+ debug registers. Registers 0-3 contain the addresses we wish to trap on */
+#define DR_FIRSTADDR 0 /* u_debugreg[DR_FIRSTADDR] */
+#define DR_LASTADDR 3 /* u_debugreg[DR_LASTADDR] */
+
+#define DR_STATUS 6 /* u_debugreg[DR_STATUS] */
+#define DR_CONTROL 7 /* u_debugreg[DR_CONTROL] */
+
+/* Define a few things for the status register. We can use this to determine
+ which debugging register was responsible for the trap. The other bits
+ are either reserved or not of interest to us. */
+
+#define DR_TRAP0 (0x1) /* db0 */
+#define DR_TRAP1 (0x2) /* db1 */
+#define DR_TRAP2 (0x4) /* db2 */
+#define DR_TRAP3 (0x8) /* db3 */
+
+#define DR_STEP (0x4000) /* single-step */
+#define DR_SWITCH (0x8000) /* task switch */
+
+/* Now define a bunch of things for manipulating the control register.
+ The top two bytes of the control register consist of 4 fields of 4
+ bits - each field corresponds to one of the four debug registers,
+ and indicates what types of access we trap on, and how large the data
+ field is that we are looking at */
+
+#define DR_CONTROL_SHIFT 16 /* Skip this many bits in ctl register */
+#define DR_CONTROL_SIZE 4 /* 4 control bits per register */
+
+#define DR_RW_EXECUTE (0x0) /* Settings for the access types to trap on */
+#define DR_RW_WRITE (0x1)
+#define DR_RW_READ (0x3)
+
+#define DR_LEN_1 (0x0) /* Settings for data length to trap on */
+#define DR_LEN_2 (0x4)
+#define DR_LEN_4 (0xC)
+#ifdef __x86_64__
+# define DR_LEN_8 (0x8)
+#endif
+
+/* The low byte to the control register determine which registers are
+ enabled. There are 4 fields of two bits. One bit is "local", meaning
+ that the processor will reset the bit after a task switch and the other
+ is global meaning that we have to explicitly reset the bit. With linux,
+ you can use either one, since we explicitly zero the register when we enter
+ kernel mode. */
+
+#define DR_LOCAL_ENABLE_SHIFT 0 /* Extra shift to the local enable bit */
+#define DR_GLOBAL_ENABLE_SHIFT 1 /* Extra shift to the global enable bit */
+#define DR_ENABLE_SIZE 2 /* 2 enable bits per register */
+
+#define DR_LOCAL_ENABLE_MASK (0x55) /* Set local bits for all 4 regs */
+#define DR_GLOBAL_ENABLE_MASK (0xAA) /* Set global bits for all 4 regs */
+
+/* The second byte to the control register has a few special
+ things. */
+
+
+
+#ifdef __x86_64__
+# define DR_CONTROL_RESERVED (0xFFFFFFFF0000FC00ULL) /* Reserved */
+#else
+# define DR_CONTROL_RESERVED (0x00FC00U) /* Reserved */
+#endif
+#define DR_LOCAL_SLOWDOWN (0x100) /* Local slow the pipeline */
+#define DR_GLOBAL_SLOWDOWN (0x200) /* Global slow the pipeline */
+
+#endif /* sys/debugreg.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86/sys/elf.h b/REORG.TODO/sysdeps/unix/sysv/linux/x86/sys/elf.h
new file mode 100644
index 0000000000..9b58e1a540
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86/sys/elf.h
@@ -0,0 +1,29 @@
+/* Copyright (C) 1998-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_ELF_H
+#define _SYS_ELF_H 1
+
+#ifdef __x86_64__
+# error This header is unsupported on x86-64.
+#else
+# warning "This header is obsolete; use <sys/procfs.h> instead."
+
+# include <sys/procfs.h>
+#endif
+
+#endif /* _SYS_ELF_H */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86/sys/io.h b/REORG.TODO/sysdeps/unix/sysv/linux/x86/sys/io.h
new file mode 100644
index 0000000000..3041a59c1a
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86/sys/io.h
@@ -0,0 +1,183 @@
+/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_IO_H
+#define _SYS_IO_H 1
+
+#include <features.h>
+
+__BEGIN_DECLS
+
+/* If TURN_ON is TRUE, request for permission to do direct i/o on the
+ port numbers in the range [FROM,FROM+NUM-1]. Otherwise, turn I/O
+ permission off for that range. This call requires root privileges.
+
+ Portability note: not all Linux platforms support this call. Most
+ platforms based on the PC I/O architecture probably will, however.
+ E.g., Linux/Alpha for Alpha PCs supports this. */
+extern int ioperm (unsigned long int __from, unsigned long int __num,
+ int __turn_on) __THROW;
+
+/* Set the I/O privilege level to LEVEL. If LEVEL>3, permission to
+ access any I/O port is granted. This call requires root
+ privileges. */
+extern int iopl (int __level) __THROW;
+
+#if defined __GNUC__ && __GNUC__ >= 2
+
+static __inline unsigned char
+inb (unsigned short int __port)
+{
+ unsigned char _v;
+
+ __asm__ __volatile__ ("inb %w1,%0":"=a" (_v):"Nd" (__port));
+ return _v;
+}
+
+static __inline unsigned char
+inb_p (unsigned short int __port)
+{
+ unsigned char _v;
+
+ __asm__ __volatile__ ("inb %w1,%0\noutb %%al,$0x80":"=a" (_v):"Nd" (__port));
+ return _v;
+}
+
+static __inline unsigned short int
+inw (unsigned short int __port)
+{
+ unsigned short _v;
+
+ __asm__ __volatile__ ("inw %w1,%0":"=a" (_v):"Nd" (__port));
+ return _v;
+}
+
+static __inline unsigned short int
+inw_p (unsigned short int __port)
+{
+ unsigned short int _v;
+
+ __asm__ __volatile__ ("inw %w1,%0\noutb %%al,$0x80":"=a" (_v):"Nd" (__port));
+ return _v;
+}
+
+static __inline unsigned int
+inl (unsigned short int __port)
+{
+ unsigned int _v;
+
+ __asm__ __volatile__ ("inl %w1,%0":"=a" (_v):"Nd" (__port));
+ return _v;
+}
+
+static __inline unsigned int
+inl_p (unsigned short int __port)
+{
+ unsigned int _v;
+ __asm__ __volatile__ ("inl %w1,%0\noutb %%al,$0x80":"=a" (_v):"Nd" (__port));
+ return _v;
+}
+
+static __inline void
+outb (unsigned char __value, unsigned short int __port)
+{
+ __asm__ __volatile__ ("outb %b0,%w1": :"a" (__value), "Nd" (__port));
+}
+
+static __inline void
+outb_p (unsigned char __value, unsigned short int __port)
+{
+ __asm__ __volatile__ ("outb %b0,%w1\noutb %%al,$0x80": :"a" (__value),
+ "Nd" (__port));
+}
+
+static __inline void
+outw (unsigned short int __value, unsigned short int __port)
+{
+ __asm__ __volatile__ ("outw %w0,%w1": :"a" (__value), "Nd" (__port));
+
+}
+
+static __inline void
+outw_p (unsigned short int __value, unsigned short int __port)
+{
+ __asm__ __volatile__ ("outw %w0,%w1\noutb %%al,$0x80": :"a" (__value),
+ "Nd" (__port));
+}
+
+static __inline void
+outl (unsigned int __value, unsigned short int __port)
+{
+ __asm__ __volatile__ ("outl %0,%w1": :"a" (__value), "Nd" (__port));
+}
+
+static __inline void
+outl_p (unsigned int __value, unsigned short int __port)
+{
+ __asm__ __volatile__ ("outl %0,%w1\noutb %%al,$0x80": :"a" (__value),
+ "Nd" (__port));
+}
+
+static __inline void
+insb (unsigned short int __port, void *__addr, unsigned long int __count)
+{
+ __asm__ __volatile__ ("cld ; rep ; insb":"=D" (__addr), "=c" (__count)
+ :"d" (__port), "0" (__addr), "1" (__count));
+}
+
+static __inline void
+insw (unsigned short int __port, void *__addr, unsigned long int __count)
+{
+ __asm__ __volatile__ ("cld ; rep ; insw":"=D" (__addr), "=c" (__count)
+ :"d" (__port), "0" (__addr), "1" (__count));
+}
+
+static __inline void
+insl (unsigned short int __port, void *__addr, unsigned long int __count)
+{
+ __asm__ __volatile__ ("cld ; rep ; insl":"=D" (__addr), "=c" (__count)
+ :"d" (__port), "0" (__addr), "1" (__count));
+}
+
+static __inline void
+outsb (unsigned short int __port, const void *__addr,
+ unsigned long int __count)
+{
+ __asm__ __volatile__ ("cld ; rep ; outsb":"=S" (__addr), "=c" (__count)
+ :"d" (__port), "0" (__addr), "1" (__count));
+}
+
+static __inline void
+outsw (unsigned short int __port, const void *__addr,
+ unsigned long int __count)
+{
+ __asm__ __volatile__ ("cld ; rep ; outsw":"=S" (__addr), "=c" (__count)
+ :"d" (__port), "0" (__addr), "1" (__count));
+}
+
+static __inline void
+outsl (unsigned short int __port, const void *__addr,
+ unsigned long int __count)
+{
+ __asm__ __volatile__ ("cld ; rep ; outsl":"=S" (__addr), "=c" (__count)
+ :"d" (__port), "0" (__addr), "1" (__count));
+}
+
+#endif /* GNU C */
+
+__END_DECLS
+#endif /* _SYS_IO_H */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86/sys/perm.h b/REORG.TODO/sysdeps/unix/sysv/linux/x86/sys/perm.h
new file mode 100644
index 0000000000..a6e0c0c5a3
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86/sys/perm.h
@@ -0,0 +1,35 @@
+/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_PERM_H
+
+#define _SYS_PERM_H 1
+#include <features.h>
+
+__BEGIN_DECLS
+
+/* Set port input/output permissions. */
+extern int ioperm (unsigned long int __from, unsigned long int __num,
+ int __turn_on) __THROW;
+
+
+/* Change I/O privilege level. */
+extern int iopl (int __level) __THROW;
+
+__END_DECLS
+
+#endif /* _SYS_PERM_H */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86/sys/procfs.h b/REORG.TODO/sysdeps/unix/sysv/linux/x86/sys/procfs.h
new file mode 100644
index 0000000000..577c3de655
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86/sys/procfs.h
@@ -0,0 +1,145 @@
+/* Copyright (C) 2001-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_PROCFS_H
+#define _SYS_PROCFS_H 1
+
+/* This is somewhat modelled after the file of the same name on SVR4
+ systems. It provides a definition of the core file format for ELF
+ used on Linux. It doesn't have anything to do with the /proc file
+ system, even though Linux has one.
+
+ Anyway, the whole purpose of this file is for GDB and GDB only.
+ Don't read too much into it. Don't use it for anything other than
+ GDB unless you know what you are doing. */
+
+#include <features.h>
+#include <sys/time.h>
+#include <sys/types.h>
+#include <sys/user.h>
+
+__BEGIN_DECLS
+
+/* Type for a general-purpose register. */
+#ifdef __x86_64__
+__extension__ typedef unsigned long long elf_greg_t;
+#else
+typedef unsigned long elf_greg_t;
+#endif
+
+/* And the whole bunch of them. We could have used `struct
+ user_regs_struct' directly in the typedef, but tradition says that
+ the register set is an array, which does have some peculiar
+ semantics, so leave it that way. */
+#define ELF_NGREG (sizeof (struct user_regs_struct) / sizeof(elf_greg_t))
+typedef elf_greg_t elf_gregset_t[ELF_NGREG];
+
+#ifndef __x86_64__
+/* Register set for the floating-point registers. */
+typedef struct user_fpregs_struct elf_fpregset_t;
+
+/* Register set for the extended floating-point registers. Includes
+ the Pentium III SSE registers in addition to the classic
+ floating-point stuff. */
+typedef struct user_fpxregs_struct elf_fpxregset_t;
+#else
+/* Register set for the extended floating-point registers. Includes
+ the Pentium III SSE registers in addition to the classic
+ floating-point stuff. */
+typedef struct user_fpregs_struct elf_fpregset_t;
+#endif
+
+/* Signal info. */
+struct elf_siginfo
+ {
+ int si_signo; /* Signal number. */
+ int si_code; /* Extra code. */
+ int si_errno; /* Errno. */
+ };
+
+
+/* Definitions to generate Intel SVR4-like core files. These mostly
+ have the same names as the SVR4 types with "elf_" tacked on the
+ front to prevent clashes with Linux definitions, and the typedef
+ forms have been avoided. This is mostly like the SVR4 structure,
+ but more Linuxy, with things that Linux does not support and which
+ GDB doesn't really use excluded. */
+
+struct elf_prstatus
+ {
+ struct elf_siginfo pr_info; /* Info associated with signal. */
+ short int pr_cursig; /* Current signal. */
+ unsigned long int pr_sigpend; /* Set of pending signals. */
+ unsigned long int pr_sighold; /* Set of held signals. */
+ __pid_t pr_pid;
+ __pid_t pr_ppid;
+ __pid_t pr_pgrp;
+ __pid_t pr_sid;
+ struct timeval pr_utime; /* User time. */
+ struct timeval pr_stime; /* System time. */
+ struct timeval pr_cutime; /* Cumulative user time. */
+ struct timeval pr_cstime; /* Cumulative system time. */
+ elf_gregset_t pr_reg; /* GP registers. */
+ int pr_fpvalid; /* True if math copro being used. */
+ };
+
+
+#define ELF_PRARGSZ (80) /* Number of chars for args. */
+
+struct elf_prpsinfo
+ {
+ char pr_state; /* Numeric process state. */
+ char pr_sname; /* Char for pr_state. */
+ char pr_zomb; /* Zombie. */
+ char pr_nice; /* Nice val. */
+ unsigned long int pr_flag; /* Flags. */
+#if __WORDSIZE == 32
+ unsigned short int pr_uid;
+ unsigned short int pr_gid;
+#else
+ unsigned int pr_uid;
+ unsigned int pr_gid;
+#endif
+ int pr_pid, pr_ppid, pr_pgrp, pr_sid;
+ /* Lots missing */
+ char pr_fname[16]; /* Filename of executable. */
+ char pr_psargs[ELF_PRARGSZ]; /* Initial part of arg list. */
+ };
+
+
+/* The rest of this file provides the types for emulation of the
+ Solaris <proc_service.h> interfaces that should be implemented by
+ users of libthread_db. */
+
+/* Addresses. */
+typedef void *psaddr_t;
+
+/* Register sets. Linux has different names. */
+typedef elf_gregset_t prgregset_t;
+typedef elf_fpregset_t prfpregset_t;
+
+/* We don't have any differences between processes and threads,
+ therefore have only one PID type. */
+typedef __pid_t lwpid_t;
+
+/* Process status and info. In the end we do provide typedefs for them. */
+typedef struct elf_prstatus prstatus_t;
+typedef struct elf_prpsinfo prpsinfo_t;
+
+__END_DECLS
+
+#endif /* sys/procfs.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86/sys/reg.h b/REORG.TODO/sysdeps/unix/sysv/linux/x86/sys/reg.h
new file mode 100644
index 0000000000..ceca1334e3
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86/sys/reg.h
@@ -0,0 +1,77 @@
+/* Copyright (C) 2001-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_REG_H
+#define _SYS_REG_H 1
+
+
+#ifdef __x86_64__
+/* Index into an array of 8 byte longs returned from ptrace for
+ location of the users' stored general purpose registers. */
+
+# define R15 0
+# define R14 1
+# define R13 2
+# define R12 3
+# define RBP 4
+# define RBX 5
+# define R11 6
+# define R10 7
+# define R9 8
+# define R8 9
+# define RAX 10
+# define RCX 11
+# define RDX 12
+# define RSI 13
+# define RDI 14
+# define ORIG_RAX 15
+# define RIP 16
+# define CS 17
+# define EFLAGS 18
+# define RSP 19
+# define SS 20
+# define FS_BASE 21
+# define GS_BASE 22
+# define DS 23
+# define ES 24
+# define FS 25
+# define GS 26
+#else
+
+/* Index into an array of 4 byte integers returned from ptrace for
+ * location of the users' stored general purpose registers. */
+
+# define EBX 0
+# define ECX 1
+# define EDX 2
+# define ESI 3
+# define EDI 4
+# define EBP 5
+# define EAX 6
+# define DS 7
+# define ES 8
+# define FS 9
+# define GS 10
+# define ORIG_EAX 11
+# define EIP 12
+# define CS 13
+# define EFL 14
+# define UESP 15
+# define SS 16
+#endif
+
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86/sys/ucontext.h b/REORG.TODO/sysdeps/unix/sysv/linux/x86/sys/ucontext.h
new file mode 100644
index 0000000000..5fd64bf801
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86/sys/ucontext.h
@@ -0,0 +1,260 @@
+/* Copyright (C) 2001-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_UCONTEXT_H
+#define _SYS_UCONTEXT_H 1
+
+#include <features.h>
+
+#include <bits/types/sigset_t.h>
+#include <bits/sigcontext.h>
+#include <bits/types/stack_t.h>
+
+
+#ifdef __USE_MISC
+# define __ctx(fld) fld
+#else
+# define __ctx(fld) __ ## fld
+#endif
+
+#ifdef __x86_64__
+
+/* Type for general register. */
+__extension__ typedef long long int greg_t;
+
+/* Number of general registers. */
+#define __NGREG 23
+#ifdef __USE_MISC
+# define NGREG __NGREG
+#endif
+
+/* Container for all general registers. */
+typedef greg_t gregset_t[__NGREG];
+
+#ifdef __USE_GNU
+/* Number of each register in the `gregset_t' array. */
+enum
+{
+ REG_R8 = 0,
+# define REG_R8 REG_R8
+ REG_R9,
+# define REG_R9 REG_R9
+ REG_R10,
+# define REG_R10 REG_R10
+ REG_R11,
+# define REG_R11 REG_R11
+ REG_R12,
+# define REG_R12 REG_R12
+ REG_R13,
+# define REG_R13 REG_R13
+ REG_R14,
+# define REG_R14 REG_R14
+ REG_R15,
+# define REG_R15 REG_R15
+ REG_RDI,
+# define REG_RDI REG_RDI
+ REG_RSI,
+# define REG_RSI REG_RSI
+ REG_RBP,
+# define REG_RBP REG_RBP
+ REG_RBX,
+# define REG_RBX REG_RBX
+ REG_RDX,
+# define REG_RDX REG_RDX
+ REG_RAX,
+# define REG_RAX REG_RAX
+ REG_RCX,
+# define REG_RCX REG_RCX
+ REG_RSP,
+# define REG_RSP REG_RSP
+ REG_RIP,
+# define REG_RIP REG_RIP
+ REG_EFL,
+# define REG_EFL REG_EFL
+ REG_CSGSFS, /* Actually short cs, gs, fs, __pad0. */
+# define REG_CSGSFS REG_CSGSFS
+ REG_ERR,
+# define REG_ERR REG_ERR
+ REG_TRAPNO,
+# define REG_TRAPNO REG_TRAPNO
+ REG_OLDMASK,
+# define REG_OLDMASK REG_OLDMASK
+ REG_CR2
+# define REG_CR2 REG_CR2
+};
+#endif
+
+struct _libc_fpxreg
+{
+ unsigned short int __ctx(significand)[4];
+ unsigned short int __ctx(exponent);
+ unsigned short int __glibc_reserved1[3];
+};
+
+struct _libc_xmmreg
+{
+ __uint32_t element[4];
+};
+
+struct _libc_fpstate
+{
+ /* 64-bit FXSAVE format. */
+ __uint16_t __ctx(cwd);
+ __uint16_t __ctx(swd);
+ __uint16_t __ctx(ftw);
+ __uint16_t __ctx(fop);
+ __uint64_t __ctx(rip);
+ __uint64_t __ctx(rdp);
+ __uint32_t __ctx(mxcsr);
+ __uint32_t __ctx(mxcr_mask);
+ struct _libc_fpxreg _st[8];
+ struct _libc_xmmreg _xmm[16];
+ __uint32_t __glibc_reserved1[24];
+};
+
+/* Structure to describe FPU registers. */
+typedef struct _libc_fpstate *fpregset_t;
+
+/* Context to describe whole processor state. */
+typedef struct
+ {
+ gregset_t __ctx(gregs);
+ /* Note that fpregs is a pointer. */
+ fpregset_t __ctx(fpregs);
+ __extension__ unsigned long long __reserved1 [8];
+} mcontext_t;
+
+/* Userlevel context. */
+typedef struct ucontext
+ {
+ unsigned long int uc_flags;
+ struct ucontext *uc_link;
+ stack_t uc_stack;
+ mcontext_t uc_mcontext;
+ sigset_t uc_sigmask;
+ struct _libc_fpstate __fpregs_mem;
+ } ucontext_t;
+
+#else /* !__x86_64__ */
+
+/* Type for general register. */
+typedef int greg_t;
+
+/* Number of general registers. */
+#define __NGREG 19
+#ifdef __USE_MISC
+# define NGREG __NGREG
+#endif
+
+/* Container for all general registers. */
+typedef greg_t gregset_t[__NGREG];
+
+#ifdef __USE_GNU
+/* Number of each register is the `gregset_t' array. */
+enum
+{
+ REG_GS = 0,
+# define REG_GS REG_GS
+ REG_FS,
+# define REG_FS REG_FS
+ REG_ES,
+# define REG_ES REG_ES
+ REG_DS,
+# define REG_DS REG_DS
+ REG_EDI,
+# define REG_EDI REG_EDI
+ REG_ESI,
+# define REG_ESI REG_ESI
+ REG_EBP,
+# define REG_EBP REG_EBP
+ REG_ESP,
+# define REG_ESP REG_ESP
+ REG_EBX,
+# define REG_EBX REG_EBX
+ REG_EDX,
+# define REG_EDX REG_EDX
+ REG_ECX,
+# define REG_ECX REG_ECX
+ REG_EAX,
+# define REG_EAX REG_EAX
+ REG_TRAPNO,
+# define REG_TRAPNO REG_TRAPNO
+ REG_ERR,
+# define REG_ERR REG_ERR
+ REG_EIP,
+# define REG_EIP REG_EIP
+ REG_CS,
+# define REG_CS REG_CS
+ REG_EFL,
+# define REG_EFL REG_EFL
+ REG_UESP,
+# define REG_UESP REG_UESP
+ REG_SS
+# define REG_SS REG_SS
+};
+#endif
+
+/* Definitions taken from the kernel headers. */
+struct _libc_fpreg
+{
+ unsigned short int __ctx(significand)[4];
+ unsigned short int __ctx(exponent);
+};
+
+struct _libc_fpstate
+{
+ unsigned long int __ctx(cw);
+ unsigned long int __ctx(sw);
+ unsigned long int __ctx(tag);
+ unsigned long int __ctx(ipoff);
+ unsigned long int __ctx(cssel);
+ unsigned long int __ctx(dataoff);
+ unsigned long int __ctx(datasel);
+ struct _libc_fpreg _st[8];
+ unsigned long int __ctx(status);
+};
+
+/* Structure to describe FPU registers. */
+typedef struct _libc_fpstate *fpregset_t;
+
+/* Context to describe whole processor state. */
+typedef struct
+ {
+ gregset_t __ctx(gregs);
+ /* Due to Linux's history we have to use a pointer here. The SysV/i386
+ ABI requires a struct with the values. */
+ fpregset_t __ctx(fpregs);
+ unsigned long int __ctx(oldmask);
+ unsigned long int __ctx(cr2);
+ } mcontext_t;
+
+/* Userlevel context. */
+typedef struct ucontext
+ {
+ unsigned long int uc_flags;
+ struct ucontext *uc_link;
+ stack_t uc_stack;
+ mcontext_t uc_mcontext;
+ sigset_t uc_sigmask;
+ struct _libc_fpstate __fpregs_mem;
+ } ucontext_t;
+
+#endif /* !__x86_64__ */
+
+#undef __ctx
+
+#endif /* sys/ucontext.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86/sys/user.h b/REORG.TODO/sysdeps/unix/sysv/linux/x86/sys/user.h
new file mode 100644
index 0000000000..b705239e61
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86/sys/user.h
@@ -0,0 +1,180 @@
+/* Copyright (C) 2001-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_USER_H
+#define _SYS_USER_H 1
+
+/* The whole purpose of this file is for GDB and GDB only. Don't read
+ too much into it. Don't use it for anything other than GDB unless
+ you know what you are doing. */
+
+#ifdef __x86_64__
+
+struct user_fpregs_struct
+{
+ unsigned short int cwd;
+ unsigned short int swd;
+ unsigned short int ftw;
+ unsigned short int fop;
+ __extension__ unsigned long long int rip;
+ __extension__ unsigned long long int rdp;
+ unsigned int mxcsr;
+ unsigned int mxcr_mask;
+ unsigned int st_space[32]; /* 8*16 bytes for each FP-reg = 128 bytes */
+ unsigned int xmm_space[64]; /* 16*16 bytes for each XMM-reg = 256 bytes */
+ unsigned int padding[24];
+};
+
+struct user_regs_struct
+{
+ __extension__ unsigned long long int r15;
+ __extension__ unsigned long long int r14;
+ __extension__ unsigned long long int r13;
+ __extension__ unsigned long long int r12;
+ __extension__ unsigned long long int rbp;
+ __extension__ unsigned long long int rbx;
+ __extension__ unsigned long long int r11;
+ __extension__ unsigned long long int r10;
+ __extension__ unsigned long long int r9;
+ __extension__ unsigned long long int r8;
+ __extension__ unsigned long long int rax;
+ __extension__ unsigned long long int rcx;
+ __extension__ unsigned long long int rdx;
+ __extension__ unsigned long long int rsi;
+ __extension__ unsigned long long int rdi;
+ __extension__ unsigned long long int orig_rax;
+ __extension__ unsigned long long int rip;
+ __extension__ unsigned long long int cs;
+ __extension__ unsigned long long int eflags;
+ __extension__ unsigned long long int rsp;
+ __extension__ unsigned long long int ss;
+ __extension__ unsigned long long int fs_base;
+ __extension__ unsigned long long int gs_base;
+ __extension__ unsigned long long int ds;
+ __extension__ unsigned long long int es;
+ __extension__ unsigned long long int fs;
+ __extension__ unsigned long long int gs;
+};
+
+struct user
+{
+ struct user_regs_struct regs;
+ int u_fpvalid;
+ struct user_fpregs_struct i387;
+ __extension__ unsigned long long int u_tsize;
+ __extension__ unsigned long long int u_dsize;
+ __extension__ unsigned long long int u_ssize;
+ __extension__ unsigned long long int start_code;
+ __extension__ unsigned long long int start_stack;
+ __extension__ long long int signal;
+ int reserved;
+ __extension__ union
+ {
+ struct user_regs_struct* u_ar0;
+ __extension__ unsigned long long int __u_ar0_word;
+ };
+ __extension__ union
+ {
+ struct user_fpregs_struct* u_fpstate;
+ __extension__ unsigned long long int __u_fpstate_word;
+ };
+ __extension__ unsigned long long int magic;
+ char u_comm [32];
+ __extension__ unsigned long long int u_debugreg [8];
+};
+
+#else
+/* These are the 32-bit x86 structures. */
+struct user_fpregs_struct
+{
+ long int cwd;
+ long int swd;
+ long int twd;
+ long int fip;
+ long int fcs;
+ long int foo;
+ long int fos;
+ long int st_space [20];
+};
+
+struct user_fpxregs_struct
+{
+ unsigned short int cwd;
+ unsigned short int swd;
+ unsigned short int twd;
+ unsigned short int fop;
+ long int fip;
+ long int fcs;
+ long int foo;
+ long int fos;
+ long int mxcsr;
+ long int reserved;
+ long int st_space[32]; /* 8*16 bytes for each FP-reg = 128 bytes */
+ long int xmm_space[32]; /* 8*16 bytes for each XMM-reg = 128 bytes */
+ long int padding[56];
+};
+
+struct user_regs_struct
+{
+ long int ebx;
+ long int ecx;
+ long int edx;
+ long int esi;
+ long int edi;
+ long int ebp;
+ long int eax;
+ long int xds;
+ long int xes;
+ long int xfs;
+ long int xgs;
+ long int orig_eax;
+ long int eip;
+ long int xcs;
+ long int eflags;
+ long int esp;
+ long int xss;
+};
+
+struct user
+{
+ struct user_regs_struct regs;
+ int u_fpvalid;
+ struct user_fpregs_struct i387;
+ unsigned long int u_tsize;
+ unsigned long int u_dsize;
+ unsigned long int u_ssize;
+ unsigned long int start_code;
+ unsigned long int start_stack;
+ long int signal;
+ int reserved;
+ struct user_regs_struct* u_ar0;
+ struct user_fpregs_struct* u_fpstate;
+ unsigned long int magic;
+ char u_comm [32];
+ int u_debugreg [8];
+};
+#endif /* __x86_64__ */
+
+#define PAGE_SHIFT 12
+#define PAGE_SIZE (1UL << PAGE_SHIFT)
+#define PAGE_MASK (~(PAGE_SIZE-1))
+#define NBPG PAGE_SIZE
+#define UPAGES 1
+#define HOST_TEXT_START_ADDR (u.start_code)
+#define HOST_STACK_END_ADDR (u.start_stack + u.u_ssize * NBPG)
+
+#endif /* _SYS_USER_H */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86/sys/vm86.h b/REORG.TODO/sysdeps/unix/sysv/linux/x86/sys/vm86.h
new file mode 100644
index 0000000000..07f09c2030
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86/sys/vm86.h
@@ -0,0 +1,38 @@
+/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _SYS_VM86_H
+
+#define _SYS_VM86_H 1
+#include <features.h>
+
+#ifdef __x86_64__
+# error This header is unsupported on x86-64.
+#else
+/* Get constants and data types from kernel header file. */
+# include <asm/vm86.h>
+
+__BEGIN_DECLS
+
+/* Enter virtual 8086 mode. */
+extern int vm86 (unsigned long int __subfunction,
+ struct vm86plus_struct *__info) __THROW;
+
+__END_DECLS
+# endif
+
+#endif /* _SYS_VM86_H */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86/sysconf.c b/REORG.TODO/sysdeps/unix/sysv/linux/x86/sysconf.c
new file mode 100644
index 0000000000..ec4e620d2a
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86/sysconf.c
@@ -0,0 +1,42 @@
+/* Get file-specific information about a file. Linux version.
+ Copyright (C) 2003-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <assert.h>
+#include <stdbool.h>
+#include <stdlib.h>
+#include <unistd.h>
+
+
+static long int linux_sysconf (int name);
+extern long int __cache_sysconf (int) attribute_hidden;
+
+
+/* Get the value of the system variable NAME. */
+long int
+__sysconf (int name)
+{
+ if (name >= _SC_LEVEL1_ICACHE_SIZE && name <= _SC_LEVEL4_CACHE_LINESIZE)
+ return __cache_sysconf (name);
+
+ return linux_sysconf (name);
+}
+
+/* Now the generic Linux version. */
+#undef __sysconf
+#define __sysconf static linux_sysconf
+#include "../sysconf.c"
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86/time.c b/REORG.TODO/sysdeps/unix/sysv/linux/x86/time.c
new file mode 100644
index 0000000000..fac81b3812
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86/time.c
@@ -0,0 +1,59 @@
+/* time -- Get number of seconds since Epoch. Linux/x86 version.
+ Copyright (C) 2015-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <time.h>
+
+#ifdef SHARED
+
+#include <dl-vdso.h>
+#include <errno.h>
+
+static time_t
+__time_syscall (time_t *t)
+{
+ INTERNAL_SYSCALL_DECL (err);
+ return INTERNAL_SYSCALL (time, err, 1, t);
+}
+
+# ifndef time_type
+/* The i386 time.c includes this file with a defined time_type macro.
+ For x86_64 we have to define it to time as the internal symbol is the
+ ifunc'ed one. */
+# define time_type time
+# endif
+
+#undef INIT_ARCH
+#define INIT_ARCH() PREPARE_VERSION_KNOWN (linux26, LINUX_2_6);
+/* If the vDSO is not available we fall back on the syscall. */
+libc_ifunc_hidden (time_type, time,
+ (_dl_vdso_vsym ("__vdso_time", &linux26)
+ ?: &__time_syscall))
+libc_hidden_def (time)
+
+#else
+
+# include <sysdep.h>
+
+time_t
+time (time_t *t)
+{
+ INTERNAL_SYSCALL_DECL (err);
+ return INTERNAL_SYSCALL (time, err, 1, t);
+}
+
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/64/Makefile b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/64/Makefile
new file mode 100644
index 0000000000..a7b6dc5a53
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/64/Makefile
@@ -0,0 +1,2 @@
+# The default ABI is 64.
+default-abi := 64
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/64/c++-types.data b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/64/c++-types.data
new file mode 100644
index 0000000000..23c11dc41b
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/64/c++-types.data
@@ -0,0 +1,67 @@
+blkcnt64_t:l
+blkcnt_t:l
+blksize_t:l
+caddr_t:Pc
+clockid_t:i
+clock_t:l
+daddr_t:i
+dev_t:m
+fd_mask:l
+fsblkcnt64_t:m
+fsblkcnt_t:m
+fsfilcnt64_t:m
+fsfilcnt_t:m
+fsid_t:8__fsid_t
+gid_t:j
+id_t:j
+ino64_t:m
+ino_t:m
+int16_t:s
+int32_t:i
+int64_t:l
+int8_t:a
+intptr_t:l
+key_t:i
+loff_t:l
+mode_t:j
+nlink_t:m
+off64_t:l
+off_t:l
+pid_t:i
+pthread_attr_t:14pthread_attr_t
+pthread_barrier_t:17pthread_barrier_t
+pthread_barrierattr_t:21pthread_barrierattr_t
+pthread_cond_t:14pthread_cond_t
+pthread_condattr_t:18pthread_condattr_t
+pthread_key_t:j
+pthread_mutex_t:15pthread_mutex_t
+pthread_mutexattr_t:19pthread_mutexattr_t
+pthread_once_t:i
+pthread_rwlock_t:16pthread_rwlock_t
+pthread_rwlockattr_t:20pthread_rwlockattr_t
+pthread_spinlock_t:i
+pthread_t:m
+quad_t:l
+register_t:l
+rlim64_t:m
+rlim_t:m
+sigset_t:10__sigset_t
+size_t:m
+socklen_t:j
+ssize_t:l
+suseconds_t:l
+time_t:l
+u_char:h
+uid_t:j
+uint:j
+u_int:j
+u_int16_t:t
+u_int32_t:j
+u_int64_t:m
+u_int8_t:h
+ulong:m
+u_long:m
+u_quad_t:m
+useconds_t:j
+ushort:t
+u_short:t
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/64/configure b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/64/configure
new file mode 100644
index 0000000000..9d1a8d271d
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/64/configure
@@ -0,0 +1,15 @@
+# This file is generated from configure.ac by Autoconf. DO NOT EDIT!
+ # Local configure fragment for sysdeps/unix/sysv/linux/x86_64/64.
+
+test -n "$libc_cv_slibdir" ||
+case "$prefix" in
+/usr | /usr/)
+ libc_cv_slibdir=/lib64
+ libc_cv_rtlddir=/lib64
+ if test "$libdir" = '${exec_prefix}/lib'; then
+ libdir='${exec_prefix}/lib64';
+ # Locale data can be shared between 32-bit and 64-bit libraries.
+ libc_cv_complocaledir='${exec_prefix}/lib/locale'
+ fi
+ ;;
+esac
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/64/configure.ac b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/64/configure.ac
new file mode 100644
index 0000000000..8e863b94ad
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/64/configure.ac
@@ -0,0 +1,4 @@
+GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
+# Local configure fragment for sysdeps/unix/sysv/linux/x86_64/64.
+
+LIBC_SLIBDIR_RTLDDIR([lib64], [lib64])
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/64/dl-librecon.h b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/64/dl-librecon.h
new file mode 100644
index 0000000000..8d474d0d04
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/64/dl-librecon.h
@@ -0,0 +1,44 @@
+/* Optional code to distinguish library flavours. x86-64 version.
+ Copyright (C) 2015-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _DL_LIBRECON_H
+
+#include <sysdeps/unix/sysv/linux/dl-librecon.h>
+
+/* Recognizing extra environment variables. For 64-bit applications,
+ branch prediction performance may be negatively impacted when the
+ target of a branch is more than 4GB away from the branch. Add the
+ Prefer_MAP_32BIT_EXEC bit so that mmap will try to map executable
+ pages with MAP_32BIT first. NB: MAP_32BIT will map to lower 2GB,
+ not lower 4GB, address. Prefer_MAP_32BIT_EXEC reduces bits available
+ for address space layout randomization (ASLR). Prefer_MAP_32BIT_EXEC
+ is always disabled for SUID programs and can be enabled by setting
+ environment variable, LD_PREFER_MAP_32BIT_EXEC. */
+#define EXTRA_LD_ENVVARS \
+ case 21: \
+ if (memcmp (envline, "PREFER_MAP_32BIT_EXEC", 21) == 0) \
+ GLRO(dl_x86_cpu_features).feature[index_arch_Prefer_MAP_32BIT_EXEC] \
+ |= bit_arch_Prefer_MAP_32BIT_EXEC; \
+ break;
+
+/* Extra unsecure variables. The names are all stuffed in a single
+ string which means they have to be terminated with a '\0' explicitly. */
+#define EXTRA_UNSECURE_ENVVARS \
+ "LD_PREFER_MAP_32BIT_EXEC\0"
+
+#endif /* dl-librecon.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/64/ld.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/64/ld.abilist
new file mode 100644
index 0000000000..07cab4bd7a
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/64/ld.abilist
@@ -0,0 +1,11 @@
+GLIBC_2.2.5 GLIBC_2.2.5 A
+GLIBC_2.2.5 __libc_stack_end D 0x8
+GLIBC_2.2.5 _dl_mcount F
+GLIBC_2.2.5 _r_debug D 0x28
+GLIBC_2.2.5 calloc F
+GLIBC_2.2.5 free F
+GLIBC_2.2.5 malloc F
+GLIBC_2.2.5 realloc F
+GLIBC_2.3 GLIBC_2.3 A
+GLIBC_2.3 __tls_get_addr F
+GLIBC_2.4 GLIBC_2.4 A
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/64/libBrokenLocale.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/64/libBrokenLocale.abilist
new file mode 100644
index 0000000000..907c72986f
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/64/libBrokenLocale.abilist
@@ -0,0 +1,2 @@
+GLIBC_2.2.5 GLIBC_2.2.5 A
+GLIBC_2.2.5 __ctype_get_mb_cur_max F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/64/libanl.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/64/libanl.abilist
new file mode 100644
index 0000000000..a104f7562a
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/64/libanl.abilist
@@ -0,0 +1,5 @@
+GLIBC_2.2.5 GLIBC_2.2.5 A
+GLIBC_2.2.5 gai_cancel F
+GLIBC_2.2.5 gai_error F
+GLIBC_2.2.5 gai_suspend F
+GLIBC_2.2.5 getaddrinfo_a F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
new file mode 100644
index 0000000000..513524d932
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
@@ -0,0 +1,2171 @@
+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 fallocate64 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 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 0x438
+GLIBC_2.12 _sys_nerr D 0x4
+GLIBC_2.12 ntp_gettimex F
+GLIBC_2.12 recvmmsg F
+GLIBC_2.12 sys_errlist D 0x438
+GLIBC_2.12 sys_nerr D 0x4
+GLIBC_2.13 GLIBC_2.13 A
+GLIBC_2.13 __fentry__ F
+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 memcpy 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.2.5 GLIBC_2.2.5 A
+GLIBC_2.2.5 _Exit F
+GLIBC_2.2.5 _IO_2_1_stderr_ D 0xe0
+GLIBC_2.2.5 _IO_2_1_stdin_ D 0xe0
+GLIBC_2.2.5 _IO_2_1_stdout_ D 0xe0
+GLIBC_2.2.5 _IO_adjust_column F
+GLIBC_2.2.5 _IO_adjust_wcolumn F
+GLIBC_2.2.5 _IO_default_doallocate F
+GLIBC_2.2.5 _IO_default_finish F
+GLIBC_2.2.5 _IO_default_pbackfail F
+GLIBC_2.2.5 _IO_default_uflow F
+GLIBC_2.2.5 _IO_default_xsgetn F
+GLIBC_2.2.5 _IO_default_xsputn F
+GLIBC_2.2.5 _IO_do_write F
+GLIBC_2.2.5 _IO_doallocbuf F
+GLIBC_2.2.5 _IO_fclose F
+GLIBC_2.2.5 _IO_fdopen F
+GLIBC_2.2.5 _IO_feof F
+GLIBC_2.2.5 _IO_ferror F
+GLIBC_2.2.5 _IO_fflush F
+GLIBC_2.2.5 _IO_fgetpos F
+GLIBC_2.2.5 _IO_fgetpos64 F
+GLIBC_2.2.5 _IO_fgets F
+GLIBC_2.2.5 _IO_file_attach F
+GLIBC_2.2.5 _IO_file_close F
+GLIBC_2.2.5 _IO_file_close_it F
+GLIBC_2.2.5 _IO_file_doallocate F
+GLIBC_2.2.5 _IO_file_finish F
+GLIBC_2.2.5 _IO_file_fopen F
+GLIBC_2.2.5 _IO_file_init F
+GLIBC_2.2.5 _IO_file_jumps D 0xa8
+GLIBC_2.2.5 _IO_file_open F
+GLIBC_2.2.5 _IO_file_overflow F
+GLIBC_2.2.5 _IO_file_read F
+GLIBC_2.2.5 _IO_file_seek F
+GLIBC_2.2.5 _IO_file_seekoff F
+GLIBC_2.2.5 _IO_file_setbuf F
+GLIBC_2.2.5 _IO_file_stat F
+GLIBC_2.2.5 _IO_file_sync F
+GLIBC_2.2.5 _IO_file_underflow F
+GLIBC_2.2.5 _IO_file_write F
+GLIBC_2.2.5 _IO_file_xsputn F
+GLIBC_2.2.5 _IO_flockfile F
+GLIBC_2.2.5 _IO_flush_all F
+GLIBC_2.2.5 _IO_flush_all_linebuffered F
+GLIBC_2.2.5 _IO_fopen F
+GLIBC_2.2.5 _IO_fprintf F
+GLIBC_2.2.5 _IO_fputs F
+GLIBC_2.2.5 _IO_fread F
+GLIBC_2.2.5 _IO_free_backup_area F
+GLIBC_2.2.5 _IO_free_wbackup_area F
+GLIBC_2.2.5 _IO_fsetpos F
+GLIBC_2.2.5 _IO_fsetpos64 F
+GLIBC_2.2.5 _IO_ftell F
+GLIBC_2.2.5 _IO_ftrylockfile F
+GLIBC_2.2.5 _IO_funlockfile F
+GLIBC_2.2.5 _IO_fwrite F
+GLIBC_2.2.5 _IO_getc F
+GLIBC_2.2.5 _IO_getline F
+GLIBC_2.2.5 _IO_getline_info F
+GLIBC_2.2.5 _IO_gets F
+GLIBC_2.2.5 _IO_init F
+GLIBC_2.2.5 _IO_init_marker F
+GLIBC_2.2.5 _IO_init_wmarker F
+GLIBC_2.2.5 _IO_iter_begin F
+GLIBC_2.2.5 _IO_iter_end F
+GLIBC_2.2.5 _IO_iter_file F
+GLIBC_2.2.5 _IO_iter_next F
+GLIBC_2.2.5 _IO_least_wmarker F
+GLIBC_2.2.5 _IO_link_in F
+GLIBC_2.2.5 _IO_list_all D 0x8
+GLIBC_2.2.5 _IO_list_lock F
+GLIBC_2.2.5 _IO_list_resetlock F
+GLIBC_2.2.5 _IO_list_unlock F
+GLIBC_2.2.5 _IO_marker_delta F
+GLIBC_2.2.5 _IO_marker_difference F
+GLIBC_2.2.5 _IO_padn F
+GLIBC_2.2.5 _IO_peekc_locked F
+GLIBC_2.2.5 _IO_popen F
+GLIBC_2.2.5 _IO_printf F
+GLIBC_2.2.5 _IO_proc_close F
+GLIBC_2.2.5 _IO_proc_open F
+GLIBC_2.2.5 _IO_putc F
+GLIBC_2.2.5 _IO_puts F
+GLIBC_2.2.5 _IO_remove_marker F
+GLIBC_2.2.5 _IO_seekmark F
+GLIBC_2.2.5 _IO_seekoff F
+GLIBC_2.2.5 _IO_seekpos F
+GLIBC_2.2.5 _IO_seekwmark F
+GLIBC_2.2.5 _IO_setb F
+GLIBC_2.2.5 _IO_setbuffer F
+GLIBC_2.2.5 _IO_setvbuf F
+GLIBC_2.2.5 _IO_sgetn F
+GLIBC_2.2.5 _IO_sprintf F
+GLIBC_2.2.5 _IO_sputbackc F
+GLIBC_2.2.5 _IO_sputbackwc F
+GLIBC_2.2.5 _IO_sscanf F
+GLIBC_2.2.5 _IO_str_init_readonly F
+GLIBC_2.2.5 _IO_str_init_static F
+GLIBC_2.2.5 _IO_str_overflow F
+GLIBC_2.2.5 _IO_str_pbackfail F
+GLIBC_2.2.5 _IO_str_seekoff F
+GLIBC_2.2.5 _IO_str_underflow F
+GLIBC_2.2.5 _IO_sungetc F
+GLIBC_2.2.5 _IO_sungetwc F
+GLIBC_2.2.5 _IO_switch_to_get_mode F
+GLIBC_2.2.5 _IO_switch_to_main_wget_area F
+GLIBC_2.2.5 _IO_switch_to_wbackup_area F
+GLIBC_2.2.5 _IO_switch_to_wget_mode F
+GLIBC_2.2.5 _IO_un_link F
+GLIBC_2.2.5 _IO_ungetc F
+GLIBC_2.2.5 _IO_unsave_markers F
+GLIBC_2.2.5 _IO_unsave_wmarkers F
+GLIBC_2.2.5 _IO_vfprintf F
+GLIBC_2.2.5 _IO_vfscanf F
+GLIBC_2.2.5 _IO_vsprintf F
+GLIBC_2.2.5 _IO_wdefault_doallocate F
+GLIBC_2.2.5 _IO_wdefault_finish F
+GLIBC_2.2.5 _IO_wdefault_pbackfail F
+GLIBC_2.2.5 _IO_wdefault_uflow F
+GLIBC_2.2.5 _IO_wdefault_xsgetn F
+GLIBC_2.2.5 _IO_wdefault_xsputn F
+GLIBC_2.2.5 _IO_wdo_write F
+GLIBC_2.2.5 _IO_wdoallocbuf F
+GLIBC_2.2.5 _IO_wfile_jumps D 0xa8
+GLIBC_2.2.5 _IO_wfile_overflow F
+GLIBC_2.2.5 _IO_wfile_seekoff F
+GLIBC_2.2.5 _IO_wfile_sync F
+GLIBC_2.2.5 _IO_wfile_underflow F
+GLIBC_2.2.5 _IO_wfile_xsputn F
+GLIBC_2.2.5 _IO_wmarker_delta F
+GLIBC_2.2.5 _IO_wsetb F
+GLIBC_2.2.5 __adjtimex F
+GLIBC_2.2.5 __after_morecore_hook D 0x8
+GLIBC_2.2.5 __arch_prctl F
+GLIBC_2.2.5 __argz_count F
+GLIBC_2.2.5 __argz_next F
+GLIBC_2.2.5 __argz_stringify F
+GLIBC_2.2.5 __asprintf F
+GLIBC_2.2.5 __assert F
+GLIBC_2.2.5 __assert_fail F
+GLIBC_2.2.5 __assert_perror_fail F
+GLIBC_2.2.5 __backtrace F
+GLIBC_2.2.5 __backtrace_symbols F
+GLIBC_2.2.5 __backtrace_symbols_fd F
+GLIBC_2.2.5 __bsd_getpgrp F
+GLIBC_2.2.5 __bzero F
+GLIBC_2.2.5 __check_rhosts_file D 0x4
+GLIBC_2.2.5 __clone F
+GLIBC_2.2.5 __close F
+GLIBC_2.2.5 __cmsg_nxthdr F
+GLIBC_2.2.5 __connect F
+GLIBC_2.2.5 __ctype32_b D 0x8
+GLIBC_2.2.5 __ctype32_tolower D 0x8
+GLIBC_2.2.5 __ctype32_toupper D 0x8
+GLIBC_2.2.5 __ctype_b D 0x8
+GLIBC_2.2.5 __ctype_get_mb_cur_max F
+GLIBC_2.2.5 __ctype_tolower D 0x8
+GLIBC_2.2.5 __ctype_toupper D 0x8
+GLIBC_2.2.5 __curbrk D 0x8
+GLIBC_2.2.5 __cxa_atexit F
+GLIBC_2.2.5 __cxa_finalize F
+GLIBC_2.2.5 __cyg_profile_func_enter F
+GLIBC_2.2.5 __cyg_profile_func_exit F
+GLIBC_2.2.5 __daylight D 0x4
+GLIBC_2.2.5 __dcgettext F
+GLIBC_2.2.5 __default_morecore F
+GLIBC_2.2.5 __dgettext F
+GLIBC_2.2.5 __dup2 F
+GLIBC_2.2.5 __duplocale F
+GLIBC_2.2.5 __endmntent F
+GLIBC_2.2.5 __environ D 0x8
+GLIBC_2.2.5 __errno_location F
+GLIBC_2.2.5 __fbufsize F
+GLIBC_2.2.5 __fcntl F
+GLIBC_2.2.5 __ffs F
+GLIBC_2.2.5 __finite F
+GLIBC_2.2.5 __finitef F
+GLIBC_2.2.5 __finitel F
+GLIBC_2.2.5 __flbf F
+GLIBC_2.2.5 __fork F
+GLIBC_2.2.5 __fpending F
+GLIBC_2.2.5 __fpu_control D 0x2
+GLIBC_2.2.5 __fpurge F
+GLIBC_2.2.5 __freadable F
+GLIBC_2.2.5 __freading F
+GLIBC_2.2.5 __free_hook D 0x8
+GLIBC_2.2.5 __freelocale F
+GLIBC_2.2.5 __fsetlocking F
+GLIBC_2.2.5 __fwritable F
+GLIBC_2.2.5 __fwriting F
+GLIBC_2.2.5 __fxstat F
+GLIBC_2.2.5 __fxstat64 F
+GLIBC_2.2.5 __getdelim F
+GLIBC_2.2.5 __getmntent_r F
+GLIBC_2.2.5 __getpagesize F
+GLIBC_2.2.5 __getpgid F
+GLIBC_2.2.5 __getpid F
+GLIBC_2.2.5 __gettimeofday F
+GLIBC_2.2.5 __gmtime_r F
+GLIBC_2.2.5 __h_errno_location F
+GLIBC_2.2.5 __isalnum_l F
+GLIBC_2.2.5 __isalpha_l F
+GLIBC_2.2.5 __isascii_l F
+GLIBC_2.2.5 __isblank_l F
+GLIBC_2.2.5 __iscntrl_l F
+GLIBC_2.2.5 __isdigit_l F
+GLIBC_2.2.5 __isgraph_l F
+GLIBC_2.2.5 __isinf F
+GLIBC_2.2.5 __isinff F
+GLIBC_2.2.5 __isinfl F
+GLIBC_2.2.5 __islower_l F
+GLIBC_2.2.5 __isnan F
+GLIBC_2.2.5 __isnanf F
+GLIBC_2.2.5 __isnanl F
+GLIBC_2.2.5 __isprint_l F
+GLIBC_2.2.5 __ispunct_l F
+GLIBC_2.2.5 __isspace_l F
+GLIBC_2.2.5 __isupper_l F
+GLIBC_2.2.5 __iswalnum_l F
+GLIBC_2.2.5 __iswalpha_l F
+GLIBC_2.2.5 __iswblank_l F
+GLIBC_2.2.5 __iswcntrl_l F
+GLIBC_2.2.5 __iswctype F
+GLIBC_2.2.5 __iswctype_l F
+GLIBC_2.2.5 __iswdigit_l F
+GLIBC_2.2.5 __iswgraph_l F
+GLIBC_2.2.5 __iswlower_l F
+GLIBC_2.2.5 __iswprint_l F
+GLIBC_2.2.5 __iswpunct_l F
+GLIBC_2.2.5 __iswspace_l F
+GLIBC_2.2.5 __iswupper_l F
+GLIBC_2.2.5 __iswxdigit_l F
+GLIBC_2.2.5 __isxdigit_l F
+GLIBC_2.2.5 __ivaliduser F
+GLIBC_2.2.5 __key_decryptsession_pk_LOCAL D 0x8
+GLIBC_2.2.5 __key_encryptsession_pk_LOCAL D 0x8
+GLIBC_2.2.5 __key_gendes_LOCAL D 0x8
+GLIBC_2.2.5 __libc_allocate_rtsig F
+GLIBC_2.2.5 __libc_calloc F
+GLIBC_2.2.5 __libc_current_sigrtmax F
+GLIBC_2.2.5 __libc_current_sigrtmin F
+GLIBC_2.2.5 __libc_free F
+GLIBC_2.2.5 __libc_freeres F
+GLIBC_2.2.5 __libc_init_first F
+GLIBC_2.2.5 __libc_mallinfo F
+GLIBC_2.2.5 __libc_malloc F
+GLIBC_2.2.5 __libc_mallopt F
+GLIBC_2.2.5 __libc_memalign F
+GLIBC_2.2.5 __libc_pvalloc F
+GLIBC_2.2.5 __libc_realloc F
+GLIBC_2.2.5 __libc_sa_len F
+GLIBC_2.2.5 __libc_start_main F
+GLIBC_2.2.5 __libc_valloc F
+GLIBC_2.2.5 __lseek F
+GLIBC_2.2.5 __lxstat F
+GLIBC_2.2.5 __lxstat64 F
+GLIBC_2.2.5 __malloc_hook D 0x8
+GLIBC_2.2.5 __malloc_initialize_hook D 0x8
+GLIBC_2.2.5 __mbrlen F
+GLIBC_2.2.5 __mbrtowc F
+GLIBC_2.2.5 __memalign_hook D 0x8
+GLIBC_2.2.5 __mempcpy F
+GLIBC_2.2.5 __mempcpy_small F
+GLIBC_2.2.5 __monstartup F
+GLIBC_2.2.5 __morecore D 0x8
+GLIBC_2.2.5 __newlocale F
+GLIBC_2.2.5 __nl_langinfo_l F
+GLIBC_2.2.5 __nss_configure_lookup F
+GLIBC_2.2.5 __nss_database_lookup F
+GLIBC_2.2.5 __nss_group_lookup F
+GLIBC_2.2.5 __nss_hostname_digits_dots F
+GLIBC_2.2.5 __nss_hosts_lookup F
+GLIBC_2.2.5 __nss_next F
+GLIBC_2.2.5 __nss_passwd_lookup F
+GLIBC_2.2.5 __open F
+GLIBC_2.2.5 __open64 F
+GLIBC_2.2.5 __overflow F
+GLIBC_2.2.5 __pipe F
+GLIBC_2.2.5 __poll F
+GLIBC_2.2.5 __pread64 F
+GLIBC_2.2.5 __printf_fp F
+GLIBC_2.2.5 __profile_frequency F
+GLIBC_2.2.5 __progname D 0x8
+GLIBC_2.2.5 __progname_full D 0x8
+GLIBC_2.2.5 __pwrite64 F
+GLIBC_2.2.5 __rawmemchr F
+GLIBC_2.2.5 __rcmd_errstr D 0x8
+GLIBC_2.2.5 __read F
+GLIBC_2.2.5 __realloc_hook D 0x8
+GLIBC_2.2.5 __res_init F
+GLIBC_2.2.5 __res_nclose F
+GLIBC_2.2.5 __res_ninit F
+GLIBC_2.2.5 __res_randomid F
+GLIBC_2.2.5 __res_state F
+GLIBC_2.2.5 __rpc_thread_createerr F
+GLIBC_2.2.5 __rpc_thread_svc_fdset F
+GLIBC_2.2.5 __rpc_thread_svc_max_pollfd F
+GLIBC_2.2.5 __rpc_thread_svc_pollfd F
+GLIBC_2.2.5 __sbrk F
+GLIBC_2.2.5 __sched_get_priority_max F
+GLIBC_2.2.5 __sched_get_priority_min F
+GLIBC_2.2.5 __sched_getparam F
+GLIBC_2.2.5 __sched_getscheduler F
+GLIBC_2.2.5 __sched_setscheduler F
+GLIBC_2.2.5 __sched_yield F
+GLIBC_2.2.5 __secure_getenv F
+GLIBC_2.2.5 __select F
+GLIBC_2.2.5 __send F
+GLIBC_2.2.5 __setmntent F
+GLIBC_2.2.5 __setpgid F
+GLIBC_2.2.5 __sigaction F
+GLIBC_2.2.5 __sigaddset F
+GLIBC_2.2.5 __sigdelset F
+GLIBC_2.2.5 __sigismember F
+GLIBC_2.2.5 __signbit F
+GLIBC_2.2.5 __signbitf F
+GLIBC_2.2.5 __signbitl F
+GLIBC_2.2.5 __sigpause F
+GLIBC_2.2.5 __sigsetjmp F
+GLIBC_2.2.5 __sigsuspend F
+GLIBC_2.2.5 __statfs F
+GLIBC_2.2.5 __stpcpy F
+GLIBC_2.2.5 __stpcpy_small F
+GLIBC_2.2.5 __stpncpy F
+GLIBC_2.2.5 __strcasecmp F
+GLIBC_2.2.5 __strcasecmp_l F
+GLIBC_2.2.5 __strcasestr F
+GLIBC_2.2.5 __strcoll_l F
+GLIBC_2.2.5 __strcpy_small F
+GLIBC_2.2.5 __strcspn_c1 F
+GLIBC_2.2.5 __strcspn_c2 F
+GLIBC_2.2.5 __strcspn_c3 F
+GLIBC_2.2.5 __strdup F
+GLIBC_2.2.5 __strerror_r F
+GLIBC_2.2.5 __strfmon_l F
+GLIBC_2.2.5 __strncasecmp_l F
+GLIBC_2.2.5 __strndup F
+GLIBC_2.2.5 __strpbrk_c2 F
+GLIBC_2.2.5 __strpbrk_c3 F
+GLIBC_2.2.5 __strsep_1c F
+GLIBC_2.2.5 __strsep_2c F
+GLIBC_2.2.5 __strsep_3c F
+GLIBC_2.2.5 __strsep_g F
+GLIBC_2.2.5 __strspn_c1 F
+GLIBC_2.2.5 __strspn_c2 F
+GLIBC_2.2.5 __strspn_c3 F
+GLIBC_2.2.5 __strtod_internal F
+GLIBC_2.2.5 __strtod_l F
+GLIBC_2.2.5 __strtof_internal F
+GLIBC_2.2.5 __strtof_l F
+GLIBC_2.2.5 __strtok_r F
+GLIBC_2.2.5 __strtok_r_1c F
+GLIBC_2.2.5 __strtol_internal F
+GLIBC_2.2.5 __strtol_l F
+GLIBC_2.2.5 __strtold_internal F
+GLIBC_2.2.5 __strtold_l F
+GLIBC_2.2.5 __strtoll_internal F
+GLIBC_2.2.5 __strtoll_l F
+GLIBC_2.2.5 __strtoul_internal F
+GLIBC_2.2.5 __strtoul_l F
+GLIBC_2.2.5 __strtoull_internal F
+GLIBC_2.2.5 __strtoull_l F
+GLIBC_2.2.5 __strverscmp F
+GLIBC_2.2.5 __strxfrm_l F
+GLIBC_2.2.5 __sysconf F
+GLIBC_2.2.5 __sysctl F
+GLIBC_2.2.5 __sysv_signal F
+GLIBC_2.2.5 __timezone D 0x8
+GLIBC_2.2.5 __toascii_l F
+GLIBC_2.2.5 __tolower_l F
+GLIBC_2.2.5 __toupper_l F
+GLIBC_2.2.5 __towctrans F
+GLIBC_2.2.5 __towctrans_l F
+GLIBC_2.2.5 __towlower_l F
+GLIBC_2.2.5 __towupper_l F
+GLIBC_2.2.5 __tzname D 0x10
+GLIBC_2.2.5 __uflow F
+GLIBC_2.2.5 __underflow F
+GLIBC_2.2.5 __vfork F
+GLIBC_2.2.5 __vfscanf F
+GLIBC_2.2.5 __vsnprintf F
+GLIBC_2.2.5 __vsscanf F
+GLIBC_2.2.5 __wait F
+GLIBC_2.2.5 __waitpid F
+GLIBC_2.2.5 __wcscasecmp_l F
+GLIBC_2.2.5 __wcscoll_l F
+GLIBC_2.2.5 __wcsncasecmp_l F
+GLIBC_2.2.5 __wcstod_internal F
+GLIBC_2.2.5 __wcstod_l F
+GLIBC_2.2.5 __wcstof_internal F
+GLIBC_2.2.5 __wcstof_l F
+GLIBC_2.2.5 __wcstol_internal F
+GLIBC_2.2.5 __wcstol_l F
+GLIBC_2.2.5 __wcstold_internal F
+GLIBC_2.2.5 __wcstold_l F
+GLIBC_2.2.5 __wcstoll_internal F
+GLIBC_2.2.5 __wcstoll_l F
+GLIBC_2.2.5 __wcstoul_internal F
+GLIBC_2.2.5 __wcstoul_l F
+GLIBC_2.2.5 __wcstoull_internal F
+GLIBC_2.2.5 __wcstoull_l F
+GLIBC_2.2.5 __wcsxfrm_l F
+GLIBC_2.2.5 __wctrans_l F
+GLIBC_2.2.5 __wctype_l F
+GLIBC_2.2.5 __woverflow F
+GLIBC_2.2.5 __write F
+GLIBC_2.2.5 __wuflow F
+GLIBC_2.2.5 __wunderflow F
+GLIBC_2.2.5 __xmknod F
+GLIBC_2.2.5 __xpg_basename F
+GLIBC_2.2.5 __xpg_sigpause F
+GLIBC_2.2.5 __xstat F
+GLIBC_2.2.5 __xstat64 F
+GLIBC_2.2.5 _authenticate F
+GLIBC_2.2.5 _dl_mcount_wrapper F
+GLIBC_2.2.5 _dl_mcount_wrapper_check F
+GLIBC_2.2.5 _environ D 0x8
+GLIBC_2.2.5 _exit F
+GLIBC_2.2.5 _flushlbf F
+GLIBC_2.2.5 _libc_intl_domainname D 0x5
+GLIBC_2.2.5 _longjmp F
+GLIBC_2.2.5 _mcleanup F
+GLIBC_2.2.5 _mcount F
+GLIBC_2.2.5 _nl_default_dirname D 0x12
+GLIBC_2.2.5 _nl_domain_bindings D 0x8
+GLIBC_2.2.5 _nl_msg_cat_cntr D 0x4
+GLIBC_2.2.5 _null_auth D 0x18
+GLIBC_2.2.5 _obstack D 0x8
+GLIBC_2.2.5 _obstack_allocated_p F
+GLIBC_2.2.5 _obstack_begin F
+GLIBC_2.2.5 _obstack_begin_1 F
+GLIBC_2.2.5 _obstack_free F
+GLIBC_2.2.5 _obstack_memory_used F
+GLIBC_2.2.5 _obstack_newchunk F
+GLIBC_2.2.5 _res D 0x238
+GLIBC_2.2.5 _res_hconf D 0x48
+GLIBC_2.2.5 _rpc_dtablesize F
+GLIBC_2.2.5 _seterr_reply F
+GLIBC_2.2.5 _setjmp F
+GLIBC_2.2.5 _sys_errlist D 0x3e8
+GLIBC_2.2.5 _sys_nerr D 0x4
+GLIBC_2.2.5 _sys_siglist D 0x200
+GLIBC_2.2.5 _tolower F
+GLIBC_2.2.5 _toupper F
+GLIBC_2.2.5 a64l F
+GLIBC_2.2.5 abort F
+GLIBC_2.2.5 abs F
+GLIBC_2.2.5 accept F
+GLIBC_2.2.5 access F
+GLIBC_2.2.5 acct F
+GLIBC_2.2.5 addmntent F
+GLIBC_2.2.5 addseverity F
+GLIBC_2.2.5 adjtime F
+GLIBC_2.2.5 adjtimex F
+GLIBC_2.2.5 advance F
+GLIBC_2.2.5 alarm F
+GLIBC_2.2.5 alphasort F
+GLIBC_2.2.5 alphasort64 F
+GLIBC_2.2.5 arch_prctl F
+GLIBC_2.2.5 argp_err_exit_status D 0x4
+GLIBC_2.2.5 argp_error F
+GLIBC_2.2.5 argp_failure F
+GLIBC_2.2.5 argp_help F
+GLIBC_2.2.5 argp_parse F
+GLIBC_2.2.5 argp_program_bug_address D 0x8
+GLIBC_2.2.5 argp_program_version D 0x8
+GLIBC_2.2.5 argp_program_version_hook D 0x8
+GLIBC_2.2.5 argp_state_help F
+GLIBC_2.2.5 argp_usage F
+GLIBC_2.2.5 argz_add F
+GLIBC_2.2.5 argz_add_sep F
+GLIBC_2.2.5 argz_append F
+GLIBC_2.2.5 argz_count F
+GLIBC_2.2.5 argz_create F
+GLIBC_2.2.5 argz_create_sep F
+GLIBC_2.2.5 argz_delete F
+GLIBC_2.2.5 argz_extract F
+GLIBC_2.2.5 argz_insert F
+GLIBC_2.2.5 argz_next F
+GLIBC_2.2.5 argz_replace F
+GLIBC_2.2.5 argz_stringify F
+GLIBC_2.2.5 asctime F
+GLIBC_2.2.5 asctime_r F
+GLIBC_2.2.5 asprintf F
+GLIBC_2.2.5 atof F
+GLIBC_2.2.5 atoi F
+GLIBC_2.2.5 atol F
+GLIBC_2.2.5 atoll F
+GLIBC_2.2.5 authdes_create F
+GLIBC_2.2.5 authdes_getucred F
+GLIBC_2.2.5 authdes_pk_create F
+GLIBC_2.2.5 authnone_create F
+GLIBC_2.2.5 authunix_create F
+GLIBC_2.2.5 authunix_create_default F
+GLIBC_2.2.5 backtrace F
+GLIBC_2.2.5 backtrace_symbols F
+GLIBC_2.2.5 backtrace_symbols_fd F
+GLIBC_2.2.5 basename F
+GLIBC_2.2.5 bcmp F
+GLIBC_2.2.5 bcopy F
+GLIBC_2.2.5 bdflush F
+GLIBC_2.2.5 bind F
+GLIBC_2.2.5 bind_textdomain_codeset F
+GLIBC_2.2.5 bindresvport F
+GLIBC_2.2.5 bindtextdomain F
+GLIBC_2.2.5 brk F
+GLIBC_2.2.5 bsd_signal F
+GLIBC_2.2.5 bsearch F
+GLIBC_2.2.5 btowc F
+GLIBC_2.2.5 bzero F
+GLIBC_2.2.5 calloc F
+GLIBC_2.2.5 callrpc F
+GLIBC_2.2.5 canonicalize_file_name F
+GLIBC_2.2.5 capget F
+GLIBC_2.2.5 capset F
+GLIBC_2.2.5 catclose F
+GLIBC_2.2.5 catgets F
+GLIBC_2.2.5 catopen F
+GLIBC_2.2.5 cbc_crypt F
+GLIBC_2.2.5 cfgetispeed F
+GLIBC_2.2.5 cfgetospeed F
+GLIBC_2.2.5 cfmakeraw F
+GLIBC_2.2.5 cfree F
+GLIBC_2.2.5 cfsetispeed F
+GLIBC_2.2.5 cfsetospeed F
+GLIBC_2.2.5 cfsetspeed F
+GLIBC_2.2.5 chdir F
+GLIBC_2.2.5 chflags F
+GLIBC_2.2.5 chmod F
+GLIBC_2.2.5 chown F
+GLIBC_2.2.5 chroot F
+GLIBC_2.2.5 clearenv F
+GLIBC_2.2.5 clearerr F
+GLIBC_2.2.5 clearerr_unlocked F
+GLIBC_2.2.5 clnt_broadcast F
+GLIBC_2.2.5 clnt_create F
+GLIBC_2.2.5 clnt_pcreateerror F
+GLIBC_2.2.5 clnt_perrno F
+GLIBC_2.2.5 clnt_perror F
+GLIBC_2.2.5 clnt_spcreateerror F
+GLIBC_2.2.5 clnt_sperrno F
+GLIBC_2.2.5 clnt_sperror F
+GLIBC_2.2.5 clntraw_create F
+GLIBC_2.2.5 clnttcp_create F
+GLIBC_2.2.5 clntudp_bufcreate F
+GLIBC_2.2.5 clntudp_create F
+GLIBC_2.2.5 clntunix_create F
+GLIBC_2.2.5 clock F
+GLIBC_2.2.5 clone F
+GLIBC_2.2.5 close F
+GLIBC_2.2.5 closedir F
+GLIBC_2.2.5 closelog F
+GLIBC_2.2.5 confstr F
+GLIBC_2.2.5 connect F
+GLIBC_2.2.5 copysign F
+GLIBC_2.2.5 copysignf F
+GLIBC_2.2.5 copysignl F
+GLIBC_2.2.5 creat F
+GLIBC_2.2.5 creat64 F
+GLIBC_2.2.5 create_module F
+GLIBC_2.2.5 ctermid F
+GLIBC_2.2.5 ctime F
+GLIBC_2.2.5 ctime_r F
+GLIBC_2.2.5 cuserid F
+GLIBC_2.2.5 daemon F
+GLIBC_2.2.5 daylight D 0x4
+GLIBC_2.2.5 dcgettext F
+GLIBC_2.2.5 dcngettext F
+GLIBC_2.2.5 delete_module F
+GLIBC_2.2.5 des_setparity F
+GLIBC_2.2.5 dgettext F
+GLIBC_2.2.5 difftime F
+GLIBC_2.2.5 dirfd F
+GLIBC_2.2.5 dirname F
+GLIBC_2.2.5 div F
+GLIBC_2.2.5 dl_iterate_phdr F
+GLIBC_2.2.5 dngettext F
+GLIBC_2.2.5 dprintf F
+GLIBC_2.2.5 drand48 F
+GLIBC_2.2.5 drand48_r F
+GLIBC_2.2.5 dup F
+GLIBC_2.2.5 dup2 F
+GLIBC_2.2.5 dysize F
+GLIBC_2.2.5 ecb_crypt F
+GLIBC_2.2.5 ecvt F
+GLIBC_2.2.5 ecvt_r F
+GLIBC_2.2.5 endaliasent F
+GLIBC_2.2.5 endfsent F
+GLIBC_2.2.5 endgrent F
+GLIBC_2.2.5 endhostent F
+GLIBC_2.2.5 endmntent F
+GLIBC_2.2.5 endnetent F
+GLIBC_2.2.5 endnetgrent F
+GLIBC_2.2.5 endprotoent F
+GLIBC_2.2.5 endpwent F
+GLIBC_2.2.5 endrpcent F
+GLIBC_2.2.5 endservent F
+GLIBC_2.2.5 endspent F
+GLIBC_2.2.5 endttyent F
+GLIBC_2.2.5 endusershell F
+GLIBC_2.2.5 endutent F
+GLIBC_2.2.5 endutxent F
+GLIBC_2.2.5 environ D 0x8
+GLIBC_2.2.5 envz_add F
+GLIBC_2.2.5 envz_entry F
+GLIBC_2.2.5 envz_get F
+GLIBC_2.2.5 envz_merge F
+GLIBC_2.2.5 envz_remove F
+GLIBC_2.2.5 envz_strip F
+GLIBC_2.2.5 erand48 F
+GLIBC_2.2.5 erand48_r F
+GLIBC_2.2.5 err F
+GLIBC_2.2.5 error F
+GLIBC_2.2.5 error_at_line F
+GLIBC_2.2.5 error_message_count D 0x4
+GLIBC_2.2.5 error_one_per_line D 0x4
+GLIBC_2.2.5 error_print_progname D 0x8
+GLIBC_2.2.5 errx F
+GLIBC_2.2.5 ether_aton F
+GLIBC_2.2.5 ether_aton_r F
+GLIBC_2.2.5 ether_hostton F
+GLIBC_2.2.5 ether_line F
+GLIBC_2.2.5 ether_ntoa F
+GLIBC_2.2.5 ether_ntoa_r F
+GLIBC_2.2.5 ether_ntohost F
+GLIBC_2.2.5 euidaccess F
+GLIBC_2.2.5 execl F
+GLIBC_2.2.5 execle F
+GLIBC_2.2.5 execlp F
+GLIBC_2.2.5 execv F
+GLIBC_2.2.5 execve F
+GLIBC_2.2.5 execvp F
+GLIBC_2.2.5 exit F
+GLIBC_2.2.5 fattach F
+GLIBC_2.2.5 fchdir F
+GLIBC_2.2.5 fchflags F
+GLIBC_2.2.5 fchmod F
+GLIBC_2.2.5 fchown F
+GLIBC_2.2.5 fclose F
+GLIBC_2.2.5 fcloseall F
+GLIBC_2.2.5 fcntl F
+GLIBC_2.2.5 fcvt F
+GLIBC_2.2.5 fcvt_r F
+GLIBC_2.2.5 fdatasync F
+GLIBC_2.2.5 fdetach F
+GLIBC_2.2.5 fdopen F
+GLIBC_2.2.5 feof F
+GLIBC_2.2.5 feof_unlocked F
+GLIBC_2.2.5 ferror F
+GLIBC_2.2.5 ferror_unlocked F
+GLIBC_2.2.5 fexecve F
+GLIBC_2.2.5 fflush F
+GLIBC_2.2.5 fflush_unlocked F
+GLIBC_2.2.5 ffs F
+GLIBC_2.2.5 ffsl F
+GLIBC_2.2.5 ffsll F
+GLIBC_2.2.5 fgetc F
+GLIBC_2.2.5 fgetc_unlocked F
+GLIBC_2.2.5 fgetgrent F
+GLIBC_2.2.5 fgetgrent_r F
+GLIBC_2.2.5 fgetpos F
+GLIBC_2.2.5 fgetpos64 F
+GLIBC_2.2.5 fgetpwent F
+GLIBC_2.2.5 fgetpwent_r F
+GLIBC_2.2.5 fgets F
+GLIBC_2.2.5 fgets_unlocked F
+GLIBC_2.2.5 fgetspent F
+GLIBC_2.2.5 fgetspent_r F
+GLIBC_2.2.5 fgetwc F
+GLIBC_2.2.5 fgetwc_unlocked F
+GLIBC_2.2.5 fgetws F
+GLIBC_2.2.5 fgetws_unlocked F
+GLIBC_2.2.5 fileno F
+GLIBC_2.2.5 fileno_unlocked F
+GLIBC_2.2.5 finite F
+GLIBC_2.2.5 finitef F
+GLIBC_2.2.5 finitel F
+GLIBC_2.2.5 flock F
+GLIBC_2.2.5 flockfile F
+GLIBC_2.2.5 fmemopen F
+GLIBC_2.2.5 fmtmsg F
+GLIBC_2.2.5 fnmatch F
+GLIBC_2.2.5 fopen F
+GLIBC_2.2.5 fopen64 F
+GLIBC_2.2.5 fopencookie F
+GLIBC_2.2.5 fork F
+GLIBC_2.2.5 fpathconf F
+GLIBC_2.2.5 fprintf F
+GLIBC_2.2.5 fputc F
+GLIBC_2.2.5 fputc_unlocked F
+GLIBC_2.2.5 fputs F
+GLIBC_2.2.5 fputs_unlocked F
+GLIBC_2.2.5 fputwc F
+GLIBC_2.2.5 fputwc_unlocked F
+GLIBC_2.2.5 fputws F
+GLIBC_2.2.5 fputws_unlocked F
+GLIBC_2.2.5 fread F
+GLIBC_2.2.5 fread_unlocked F
+GLIBC_2.2.5 free F
+GLIBC_2.2.5 freeaddrinfo F
+GLIBC_2.2.5 freopen F
+GLIBC_2.2.5 freopen64 F
+GLIBC_2.2.5 frexp F
+GLIBC_2.2.5 frexpf F
+GLIBC_2.2.5 frexpl F
+GLIBC_2.2.5 fscanf F
+GLIBC_2.2.5 fseek F
+GLIBC_2.2.5 fseeko F
+GLIBC_2.2.5 fseeko64 F
+GLIBC_2.2.5 fsetpos F
+GLIBC_2.2.5 fsetpos64 F
+GLIBC_2.2.5 fstatfs F
+GLIBC_2.2.5 fstatfs64 F
+GLIBC_2.2.5 fstatvfs F
+GLIBC_2.2.5 fstatvfs64 F
+GLIBC_2.2.5 fsync F
+GLIBC_2.2.5 ftell F
+GLIBC_2.2.5 ftello F
+GLIBC_2.2.5 ftello64 F
+GLIBC_2.2.5 ftime F
+GLIBC_2.2.5 ftok F
+GLIBC_2.2.5 ftruncate F
+GLIBC_2.2.5 ftruncate64 F
+GLIBC_2.2.5 ftrylockfile F
+GLIBC_2.2.5 fts_children F
+GLIBC_2.2.5 fts_close F
+GLIBC_2.2.5 fts_open F
+GLIBC_2.2.5 fts_read F
+GLIBC_2.2.5 fts_set F
+GLIBC_2.2.5 ftw F
+GLIBC_2.2.5 ftw64 F
+GLIBC_2.2.5 funlockfile F
+GLIBC_2.2.5 fwide F
+GLIBC_2.2.5 fwprintf F
+GLIBC_2.2.5 fwrite F
+GLIBC_2.2.5 fwrite_unlocked F
+GLIBC_2.2.5 fwscanf F
+GLIBC_2.2.5 gai_strerror F
+GLIBC_2.2.5 gcvt F
+GLIBC_2.2.5 get_avphys_pages F
+GLIBC_2.2.5 get_current_dir_name F
+GLIBC_2.2.5 get_kernel_syms F
+GLIBC_2.2.5 get_myaddress F
+GLIBC_2.2.5 get_nprocs F
+GLIBC_2.2.5 get_nprocs_conf F
+GLIBC_2.2.5 get_phys_pages F
+GLIBC_2.2.5 getaddrinfo F
+GLIBC_2.2.5 getaliasbyname F
+GLIBC_2.2.5 getaliasbyname_r F
+GLIBC_2.2.5 getaliasent F
+GLIBC_2.2.5 getaliasent_r F
+GLIBC_2.2.5 getc F
+GLIBC_2.2.5 getc_unlocked F
+GLIBC_2.2.5 getchar F
+GLIBC_2.2.5 getchar_unlocked F
+GLIBC_2.2.5 getcontext F
+GLIBC_2.2.5 getcwd F
+GLIBC_2.2.5 getdate F
+GLIBC_2.2.5 getdate_err D 0x4
+GLIBC_2.2.5 getdate_r F
+GLIBC_2.2.5 getdelim F
+GLIBC_2.2.5 getdirentries F
+GLIBC_2.2.5 getdirentries64 F
+GLIBC_2.2.5 getdomainname F
+GLIBC_2.2.5 getdtablesize F
+GLIBC_2.2.5 getegid F
+GLIBC_2.2.5 getenv F
+GLIBC_2.2.5 geteuid F
+GLIBC_2.2.5 getfsent F
+GLIBC_2.2.5 getfsfile F
+GLIBC_2.2.5 getfsspec F
+GLIBC_2.2.5 getgid F
+GLIBC_2.2.5 getgrent F
+GLIBC_2.2.5 getgrent_r F
+GLIBC_2.2.5 getgrgid F
+GLIBC_2.2.5 getgrgid_r F
+GLIBC_2.2.5 getgrnam F
+GLIBC_2.2.5 getgrnam_r F
+GLIBC_2.2.5 getgrouplist F
+GLIBC_2.2.5 getgroups F
+GLIBC_2.2.5 gethostbyaddr F
+GLIBC_2.2.5 gethostbyaddr_r F
+GLIBC_2.2.5 gethostbyname F
+GLIBC_2.2.5 gethostbyname2 F
+GLIBC_2.2.5 gethostbyname2_r F
+GLIBC_2.2.5 gethostbyname_r F
+GLIBC_2.2.5 gethostent F
+GLIBC_2.2.5 gethostent_r F
+GLIBC_2.2.5 gethostid F
+GLIBC_2.2.5 gethostname F
+GLIBC_2.2.5 getitimer F
+GLIBC_2.2.5 getline F
+GLIBC_2.2.5 getloadavg F
+GLIBC_2.2.5 getlogin F
+GLIBC_2.2.5 getlogin_r F
+GLIBC_2.2.5 getmntent F
+GLIBC_2.2.5 getmntent_r F
+GLIBC_2.2.5 getmsg F
+GLIBC_2.2.5 getnameinfo F
+GLIBC_2.2.5 getnetbyaddr F
+GLIBC_2.2.5 getnetbyaddr_r F
+GLIBC_2.2.5 getnetbyname F
+GLIBC_2.2.5 getnetbyname_r F
+GLIBC_2.2.5 getnetent F
+GLIBC_2.2.5 getnetent_r F
+GLIBC_2.2.5 getnetgrent F
+GLIBC_2.2.5 getnetgrent_r F
+GLIBC_2.2.5 getnetname F
+GLIBC_2.2.5 getopt F
+GLIBC_2.2.5 getopt_long F
+GLIBC_2.2.5 getopt_long_only F
+GLIBC_2.2.5 getpagesize F
+GLIBC_2.2.5 getpass F
+GLIBC_2.2.5 getpeername F
+GLIBC_2.2.5 getpgid F
+GLIBC_2.2.5 getpgrp F
+GLIBC_2.2.5 getpid F
+GLIBC_2.2.5 getpmsg F
+GLIBC_2.2.5 getppid F
+GLIBC_2.2.5 getpriority F
+GLIBC_2.2.5 getprotobyname F
+GLIBC_2.2.5 getprotobyname_r F
+GLIBC_2.2.5 getprotobynumber F
+GLIBC_2.2.5 getprotobynumber_r F
+GLIBC_2.2.5 getprotoent F
+GLIBC_2.2.5 getprotoent_r F
+GLIBC_2.2.5 getpt F
+GLIBC_2.2.5 getpublickey F
+GLIBC_2.2.5 getpw F
+GLIBC_2.2.5 getpwent F
+GLIBC_2.2.5 getpwent_r F
+GLIBC_2.2.5 getpwnam F
+GLIBC_2.2.5 getpwnam_r F
+GLIBC_2.2.5 getpwuid F
+GLIBC_2.2.5 getpwuid_r F
+GLIBC_2.2.5 getresgid F
+GLIBC_2.2.5 getresuid F
+GLIBC_2.2.5 getrlimit F
+GLIBC_2.2.5 getrlimit64 F
+GLIBC_2.2.5 getrpcbyname F
+GLIBC_2.2.5 getrpcbyname_r F
+GLIBC_2.2.5 getrpcbynumber F
+GLIBC_2.2.5 getrpcbynumber_r F
+GLIBC_2.2.5 getrpcent F
+GLIBC_2.2.5 getrpcent_r F
+GLIBC_2.2.5 getrpcport F
+GLIBC_2.2.5 getrusage F
+GLIBC_2.2.5 gets F
+GLIBC_2.2.5 getsecretkey F
+GLIBC_2.2.5 getservbyname F
+GLIBC_2.2.5 getservbyname_r F
+GLIBC_2.2.5 getservbyport F
+GLIBC_2.2.5 getservbyport_r F
+GLIBC_2.2.5 getservent F
+GLIBC_2.2.5 getservent_r F
+GLIBC_2.2.5 getsid F
+GLIBC_2.2.5 getsockname F
+GLIBC_2.2.5 getsockopt F
+GLIBC_2.2.5 getspent F
+GLIBC_2.2.5 getspent_r F
+GLIBC_2.2.5 getspnam F
+GLIBC_2.2.5 getspnam_r F
+GLIBC_2.2.5 getsubopt F
+GLIBC_2.2.5 gettext F
+GLIBC_2.2.5 gettimeofday F
+GLIBC_2.2.5 getttyent F
+GLIBC_2.2.5 getttynam F
+GLIBC_2.2.5 getuid F
+GLIBC_2.2.5 getusershell F
+GLIBC_2.2.5 getutent F
+GLIBC_2.2.5 getutent_r F
+GLIBC_2.2.5 getutid F
+GLIBC_2.2.5 getutid_r F
+GLIBC_2.2.5 getutline F
+GLIBC_2.2.5 getutline_r F
+GLIBC_2.2.5 getutmp F
+GLIBC_2.2.5 getutmpx F
+GLIBC_2.2.5 getutxent F
+GLIBC_2.2.5 getutxid F
+GLIBC_2.2.5 getutxline F
+GLIBC_2.2.5 getw F
+GLIBC_2.2.5 getwc F
+GLIBC_2.2.5 getwc_unlocked F
+GLIBC_2.2.5 getwchar F
+GLIBC_2.2.5 getwchar_unlocked F
+GLIBC_2.2.5 getwd F
+GLIBC_2.2.5 glob F
+GLIBC_2.2.5 glob64 F
+GLIBC_2.2.5 glob_pattern_p F
+GLIBC_2.2.5 globfree F
+GLIBC_2.2.5 globfree64 F
+GLIBC_2.2.5 gmtime F
+GLIBC_2.2.5 gmtime_r F
+GLIBC_2.2.5 gnu_get_libc_release F
+GLIBC_2.2.5 gnu_get_libc_version F
+GLIBC_2.2.5 grantpt F
+GLIBC_2.2.5 group_member F
+GLIBC_2.2.5 gsignal F
+GLIBC_2.2.5 gtty F
+GLIBC_2.2.5 h_errlist D 0x28
+GLIBC_2.2.5 h_nerr D 0x4
+GLIBC_2.2.5 hasmntopt F
+GLIBC_2.2.5 hcreate F
+GLIBC_2.2.5 hcreate_r F
+GLIBC_2.2.5 hdestroy F
+GLIBC_2.2.5 hdestroy_r F
+GLIBC_2.2.5 herror F
+GLIBC_2.2.5 host2netname F
+GLIBC_2.2.5 hsearch F
+GLIBC_2.2.5 hsearch_r F
+GLIBC_2.2.5 hstrerror F
+GLIBC_2.2.5 htonl F
+GLIBC_2.2.5 htons F
+GLIBC_2.2.5 iconv F
+GLIBC_2.2.5 iconv_close F
+GLIBC_2.2.5 iconv_open F
+GLIBC_2.2.5 if_freenameindex F
+GLIBC_2.2.5 if_indextoname F
+GLIBC_2.2.5 if_nameindex F
+GLIBC_2.2.5 if_nametoindex F
+GLIBC_2.2.5 imaxabs F
+GLIBC_2.2.5 imaxdiv F
+GLIBC_2.2.5 in6addr_any D 0x10
+GLIBC_2.2.5 in6addr_loopback D 0x10
+GLIBC_2.2.5 index F
+GLIBC_2.2.5 inet_addr F
+GLIBC_2.2.5 inet_aton F
+GLIBC_2.2.5 inet_lnaof F
+GLIBC_2.2.5 inet_makeaddr F
+GLIBC_2.2.5 inet_netof F
+GLIBC_2.2.5 inet_network F
+GLIBC_2.2.5 inet_nsap_addr F
+GLIBC_2.2.5 inet_nsap_ntoa F
+GLIBC_2.2.5 inet_ntoa F
+GLIBC_2.2.5 inet_ntop F
+GLIBC_2.2.5 inet_pton F
+GLIBC_2.2.5 init_module F
+GLIBC_2.2.5 initgroups F
+GLIBC_2.2.5 initstate F
+GLIBC_2.2.5 initstate_r F
+GLIBC_2.2.5 innetgr F
+GLIBC_2.2.5 insque F
+GLIBC_2.2.5 ioctl F
+GLIBC_2.2.5 ioperm F
+GLIBC_2.2.5 iopl F
+GLIBC_2.2.5 iruserok F
+GLIBC_2.2.5 iruserok_af F
+GLIBC_2.2.5 isalnum F
+GLIBC_2.2.5 isalpha F
+GLIBC_2.2.5 isascii F
+GLIBC_2.2.5 isastream F
+GLIBC_2.2.5 isatty F
+GLIBC_2.2.5 isblank F
+GLIBC_2.2.5 iscntrl F
+GLIBC_2.2.5 isdigit F
+GLIBC_2.2.5 isfdtype F
+GLIBC_2.2.5 isgraph F
+GLIBC_2.2.5 isinf F
+GLIBC_2.2.5 isinff F
+GLIBC_2.2.5 isinfl F
+GLIBC_2.2.5 islower F
+GLIBC_2.2.5 isnan F
+GLIBC_2.2.5 isnanf F
+GLIBC_2.2.5 isnanl F
+GLIBC_2.2.5 isprint F
+GLIBC_2.2.5 ispunct F
+GLIBC_2.2.5 isspace F
+GLIBC_2.2.5 isupper F
+GLIBC_2.2.5 iswalnum F
+GLIBC_2.2.5 iswalpha F
+GLIBC_2.2.5 iswblank F
+GLIBC_2.2.5 iswcntrl F
+GLIBC_2.2.5 iswctype F
+GLIBC_2.2.5 iswdigit F
+GLIBC_2.2.5 iswgraph F
+GLIBC_2.2.5 iswlower F
+GLIBC_2.2.5 iswprint F
+GLIBC_2.2.5 iswpunct F
+GLIBC_2.2.5 iswspace F
+GLIBC_2.2.5 iswupper F
+GLIBC_2.2.5 iswxdigit F
+GLIBC_2.2.5 isxdigit F
+GLIBC_2.2.5 jrand48 F
+GLIBC_2.2.5 jrand48_r F
+GLIBC_2.2.5 key_decryptsession F
+GLIBC_2.2.5 key_decryptsession_pk F
+GLIBC_2.2.5 key_encryptsession F
+GLIBC_2.2.5 key_encryptsession_pk F
+GLIBC_2.2.5 key_gendes F
+GLIBC_2.2.5 key_get_conv F
+GLIBC_2.2.5 key_secretkey_is_set F
+GLIBC_2.2.5 key_setnet F
+GLIBC_2.2.5 key_setsecret F
+GLIBC_2.2.5 kill F
+GLIBC_2.2.5 killpg F
+GLIBC_2.2.5 klogctl F
+GLIBC_2.2.5 l64a F
+GLIBC_2.2.5 labs F
+GLIBC_2.2.5 lchown F
+GLIBC_2.2.5 lckpwdf F
+GLIBC_2.2.5 lcong48 F
+GLIBC_2.2.5 lcong48_r F
+GLIBC_2.2.5 ldexp F
+GLIBC_2.2.5 ldexpf F
+GLIBC_2.2.5 ldexpl F
+GLIBC_2.2.5 ldiv F
+GLIBC_2.2.5 lfind F
+GLIBC_2.2.5 link F
+GLIBC_2.2.5 listen F
+GLIBC_2.2.5 llabs F
+GLIBC_2.2.5 lldiv F
+GLIBC_2.2.5 llseek F
+GLIBC_2.2.5 loc1 D 0x8
+GLIBC_2.2.5 loc2 D 0x8
+GLIBC_2.2.5 localeconv F
+GLIBC_2.2.5 localtime F
+GLIBC_2.2.5 localtime_r F
+GLIBC_2.2.5 lockf F
+GLIBC_2.2.5 lockf64 F
+GLIBC_2.2.5 locs D 0x8
+GLIBC_2.2.5 longjmp F
+GLIBC_2.2.5 lrand48 F
+GLIBC_2.2.5 lrand48_r F
+GLIBC_2.2.5 lsearch F
+GLIBC_2.2.5 lseek F
+GLIBC_2.2.5 lseek64 F
+GLIBC_2.2.5 madvise F
+GLIBC_2.2.5 makecontext F
+GLIBC_2.2.5 mallinfo F
+GLIBC_2.2.5 malloc F
+GLIBC_2.2.5 malloc_get_state F
+GLIBC_2.2.5 malloc_set_state F
+GLIBC_2.2.5 malloc_stats F
+GLIBC_2.2.5 malloc_trim F
+GLIBC_2.2.5 malloc_usable_size F
+GLIBC_2.2.5 mallopt F
+GLIBC_2.2.5 mallwatch D 0x8
+GLIBC_2.2.5 mblen F
+GLIBC_2.2.5 mbrlen F
+GLIBC_2.2.5 mbrtowc F
+GLIBC_2.2.5 mbsinit F
+GLIBC_2.2.5 mbsnrtowcs F
+GLIBC_2.2.5 mbsrtowcs F
+GLIBC_2.2.5 mbstowcs F
+GLIBC_2.2.5 mbtowc F
+GLIBC_2.2.5 mcheck F
+GLIBC_2.2.5 mcheck_check_all F
+GLIBC_2.2.5 mcheck_pedantic F
+GLIBC_2.2.5 mcount F
+GLIBC_2.2.5 memalign F
+GLIBC_2.2.5 memccpy F
+GLIBC_2.2.5 memchr F
+GLIBC_2.2.5 memcmp F
+GLIBC_2.2.5 memcpy F
+GLIBC_2.2.5 memfrob F
+GLIBC_2.2.5 memmem F
+GLIBC_2.2.5 memmove F
+GLIBC_2.2.5 mempcpy F
+GLIBC_2.2.5 memrchr F
+GLIBC_2.2.5 memset F
+GLIBC_2.2.5 mincore F
+GLIBC_2.2.5 mkdir F
+GLIBC_2.2.5 mkdtemp F
+GLIBC_2.2.5 mkfifo F
+GLIBC_2.2.5 mkstemp F
+GLIBC_2.2.5 mkstemp64 F
+GLIBC_2.2.5 mktemp F
+GLIBC_2.2.5 mktime F
+GLIBC_2.2.5 mlock F
+GLIBC_2.2.5 mlockall F
+GLIBC_2.2.5 mmap F
+GLIBC_2.2.5 mmap64 F
+GLIBC_2.2.5 modf F
+GLIBC_2.2.5 modff F
+GLIBC_2.2.5 modfl F
+GLIBC_2.2.5 modify_ldt F
+GLIBC_2.2.5 moncontrol F
+GLIBC_2.2.5 monstartup F
+GLIBC_2.2.5 mount F
+GLIBC_2.2.5 mprobe F
+GLIBC_2.2.5 mprotect F
+GLIBC_2.2.5 mrand48 F
+GLIBC_2.2.5 mrand48_r F
+GLIBC_2.2.5 mremap F
+GLIBC_2.2.5 msgctl F
+GLIBC_2.2.5 msgget F
+GLIBC_2.2.5 msgrcv F
+GLIBC_2.2.5 msgsnd F
+GLIBC_2.2.5 msync F
+GLIBC_2.2.5 mtrace F
+GLIBC_2.2.5 munlock F
+GLIBC_2.2.5 munlockall F
+GLIBC_2.2.5 munmap F
+GLIBC_2.2.5 muntrace F
+GLIBC_2.2.5 nanosleep F
+GLIBC_2.2.5 netname2host F
+GLIBC_2.2.5 netname2user F
+GLIBC_2.2.5 nfsservctl F
+GLIBC_2.2.5 nftw F
+GLIBC_2.2.5 nftw64 F
+GLIBC_2.2.5 ngettext F
+GLIBC_2.2.5 nice F
+GLIBC_2.2.5 nl_langinfo F
+GLIBC_2.2.5 nrand48 F
+GLIBC_2.2.5 nrand48_r F
+GLIBC_2.2.5 ntohl F
+GLIBC_2.2.5 ntohs F
+GLIBC_2.2.5 ntp_adjtime F
+GLIBC_2.2.5 ntp_gettime F
+GLIBC_2.2.5 obstack_alloc_failed_handler D 0x8
+GLIBC_2.2.5 obstack_exit_failure D 0x4
+GLIBC_2.2.5 obstack_free F
+GLIBC_2.2.5 obstack_printf F
+GLIBC_2.2.5 obstack_vprintf F
+GLIBC_2.2.5 on_exit F
+GLIBC_2.2.5 open F
+GLIBC_2.2.5 open64 F
+GLIBC_2.2.5 open_memstream F
+GLIBC_2.2.5 opendir F
+GLIBC_2.2.5 openlog F
+GLIBC_2.2.5 optarg D 0x8
+GLIBC_2.2.5 opterr D 0x4
+GLIBC_2.2.5 optind D 0x4
+GLIBC_2.2.5 optopt D 0x4
+GLIBC_2.2.5 parse_printf_format F
+GLIBC_2.2.5 passwd2des F
+GLIBC_2.2.5 pathconf F
+GLIBC_2.2.5 pause F
+GLIBC_2.2.5 pclose F
+GLIBC_2.2.5 perror F
+GLIBC_2.2.5 personality F
+GLIBC_2.2.5 pipe F
+GLIBC_2.2.5 pivot_root F
+GLIBC_2.2.5 pmap_getmaps F
+GLIBC_2.2.5 pmap_getport F
+GLIBC_2.2.5 pmap_rmtcall F
+GLIBC_2.2.5 pmap_set F
+GLIBC_2.2.5 pmap_unset F
+GLIBC_2.2.5 poll F
+GLIBC_2.2.5 popen F
+GLIBC_2.2.5 posix_fadvise F
+GLIBC_2.2.5 posix_fadvise64 F
+GLIBC_2.2.5 posix_fallocate F
+GLIBC_2.2.5 posix_fallocate64 F
+GLIBC_2.2.5 posix_madvise F
+GLIBC_2.2.5 posix_memalign F
+GLIBC_2.2.5 posix_openpt F
+GLIBC_2.2.5 posix_spawn F
+GLIBC_2.2.5 posix_spawn_file_actions_addclose F
+GLIBC_2.2.5 posix_spawn_file_actions_adddup2 F
+GLIBC_2.2.5 posix_spawn_file_actions_addopen F
+GLIBC_2.2.5 posix_spawn_file_actions_destroy F
+GLIBC_2.2.5 posix_spawn_file_actions_init F
+GLIBC_2.2.5 posix_spawnattr_destroy F
+GLIBC_2.2.5 posix_spawnattr_getflags F
+GLIBC_2.2.5 posix_spawnattr_getpgroup F
+GLIBC_2.2.5 posix_spawnattr_getschedparam F
+GLIBC_2.2.5 posix_spawnattr_getschedpolicy F
+GLIBC_2.2.5 posix_spawnattr_getsigdefault F
+GLIBC_2.2.5 posix_spawnattr_getsigmask F
+GLIBC_2.2.5 posix_spawnattr_init F
+GLIBC_2.2.5 posix_spawnattr_setflags F
+GLIBC_2.2.5 posix_spawnattr_setpgroup F
+GLIBC_2.2.5 posix_spawnattr_setschedparam F
+GLIBC_2.2.5 posix_spawnattr_setschedpolicy F
+GLIBC_2.2.5 posix_spawnattr_setsigdefault F
+GLIBC_2.2.5 posix_spawnattr_setsigmask F
+GLIBC_2.2.5 posix_spawnp F
+GLIBC_2.2.5 prctl F
+GLIBC_2.2.5 pread F
+GLIBC_2.2.5 pread64 F
+GLIBC_2.2.5 printf F
+GLIBC_2.2.5 printf_size F
+GLIBC_2.2.5 printf_size_info F
+GLIBC_2.2.5 profil F
+GLIBC_2.2.5 program_invocation_name D 0x8
+GLIBC_2.2.5 program_invocation_short_name D 0x8
+GLIBC_2.2.5 pselect F
+GLIBC_2.2.5 psignal F
+GLIBC_2.2.5 pthread_attr_destroy F
+GLIBC_2.2.5 pthread_attr_getdetachstate F
+GLIBC_2.2.5 pthread_attr_getinheritsched F
+GLIBC_2.2.5 pthread_attr_getschedparam F
+GLIBC_2.2.5 pthread_attr_getschedpolicy F
+GLIBC_2.2.5 pthread_attr_getscope F
+GLIBC_2.2.5 pthread_attr_init F
+GLIBC_2.2.5 pthread_attr_setdetachstate F
+GLIBC_2.2.5 pthread_attr_setinheritsched F
+GLIBC_2.2.5 pthread_attr_setschedparam F
+GLIBC_2.2.5 pthread_attr_setschedpolicy F
+GLIBC_2.2.5 pthread_attr_setscope F
+GLIBC_2.2.5 pthread_cond_broadcast F
+GLIBC_2.2.5 pthread_cond_destroy F
+GLIBC_2.2.5 pthread_cond_init F
+GLIBC_2.2.5 pthread_cond_signal F
+GLIBC_2.2.5 pthread_cond_timedwait F
+GLIBC_2.2.5 pthread_cond_wait F
+GLIBC_2.2.5 pthread_condattr_destroy F
+GLIBC_2.2.5 pthread_condattr_init F
+GLIBC_2.2.5 pthread_equal F
+GLIBC_2.2.5 pthread_exit F
+GLIBC_2.2.5 pthread_getschedparam F
+GLIBC_2.2.5 pthread_mutex_destroy F
+GLIBC_2.2.5 pthread_mutex_init F
+GLIBC_2.2.5 pthread_mutex_lock F
+GLIBC_2.2.5 pthread_mutex_unlock F
+GLIBC_2.2.5 pthread_self F
+GLIBC_2.2.5 pthread_setcancelstate F
+GLIBC_2.2.5 pthread_setcanceltype F
+GLIBC_2.2.5 pthread_setschedparam F
+GLIBC_2.2.5 ptrace F
+GLIBC_2.2.5 ptsname F
+GLIBC_2.2.5 ptsname_r F
+GLIBC_2.2.5 putc F
+GLIBC_2.2.5 putc_unlocked F
+GLIBC_2.2.5 putchar F
+GLIBC_2.2.5 putchar_unlocked F
+GLIBC_2.2.5 putenv F
+GLIBC_2.2.5 putgrent F
+GLIBC_2.2.5 putmsg F
+GLIBC_2.2.5 putpmsg F
+GLIBC_2.2.5 putpwent F
+GLIBC_2.2.5 puts F
+GLIBC_2.2.5 putspent F
+GLIBC_2.2.5 pututline F
+GLIBC_2.2.5 pututxline F
+GLIBC_2.2.5 putw F
+GLIBC_2.2.5 putwc F
+GLIBC_2.2.5 putwc_unlocked F
+GLIBC_2.2.5 putwchar F
+GLIBC_2.2.5 putwchar_unlocked F
+GLIBC_2.2.5 pvalloc F
+GLIBC_2.2.5 pwrite F
+GLIBC_2.2.5 pwrite64 F
+GLIBC_2.2.5 qecvt F
+GLIBC_2.2.5 qecvt_r F
+GLIBC_2.2.5 qfcvt F
+GLIBC_2.2.5 qfcvt_r F
+GLIBC_2.2.5 qgcvt F
+GLIBC_2.2.5 qsort F
+GLIBC_2.2.5 query_module F
+GLIBC_2.2.5 quotactl F
+GLIBC_2.2.5 raise F
+GLIBC_2.2.5 rand F
+GLIBC_2.2.5 rand_r F
+GLIBC_2.2.5 random F
+GLIBC_2.2.5 random_r F
+GLIBC_2.2.5 rawmemchr F
+GLIBC_2.2.5 rcmd F
+GLIBC_2.2.5 rcmd_af F
+GLIBC_2.2.5 re_comp F
+GLIBC_2.2.5 re_compile_fastmap F
+GLIBC_2.2.5 re_compile_pattern F
+GLIBC_2.2.5 re_exec F
+GLIBC_2.2.5 re_match F
+GLIBC_2.2.5 re_match_2 F
+GLIBC_2.2.5 re_max_failures D 0x4
+GLIBC_2.2.5 re_search F
+GLIBC_2.2.5 re_search_2 F
+GLIBC_2.2.5 re_set_registers F
+GLIBC_2.2.5 re_set_syntax F
+GLIBC_2.2.5 re_syntax_options D 0x8
+GLIBC_2.2.5 read F
+GLIBC_2.2.5 readdir F
+GLIBC_2.2.5 readdir64 F
+GLIBC_2.2.5 readdir64_r F
+GLIBC_2.2.5 readdir_r F
+GLIBC_2.2.5 readlink F
+GLIBC_2.2.5 readv F
+GLIBC_2.2.5 realloc F
+GLIBC_2.2.5 realpath F
+GLIBC_2.2.5 reboot F
+GLIBC_2.2.5 recv F
+GLIBC_2.2.5 recvfrom F
+GLIBC_2.2.5 recvmsg F
+GLIBC_2.2.5 regcomp F
+GLIBC_2.2.5 regerror F
+GLIBC_2.2.5 regexec F
+GLIBC_2.2.5 regfree F
+GLIBC_2.2.5 register_printf_function F
+GLIBC_2.2.5 registerrpc F
+GLIBC_2.2.5 remove F
+GLIBC_2.2.5 remque F
+GLIBC_2.2.5 rename F
+GLIBC_2.2.5 revoke F
+GLIBC_2.2.5 rewind F
+GLIBC_2.2.5 rewinddir F
+GLIBC_2.2.5 rexec F
+GLIBC_2.2.5 rexec_af F
+GLIBC_2.2.5 rexecoptions D 0x4
+GLIBC_2.2.5 rindex F
+GLIBC_2.2.5 rmdir F
+GLIBC_2.2.5 rpc_createerr D 0x20
+GLIBC_2.2.5 rpmatch F
+GLIBC_2.2.5 rresvport F
+GLIBC_2.2.5 rresvport_af F
+GLIBC_2.2.5 rtime F
+GLIBC_2.2.5 ruserok F
+GLIBC_2.2.5 ruserok_af F
+GLIBC_2.2.5 ruserpass F
+GLIBC_2.2.5 sbrk F
+GLIBC_2.2.5 scalbn F
+GLIBC_2.2.5 scalbnf F
+GLIBC_2.2.5 scalbnl F
+GLIBC_2.2.5 scandir F
+GLIBC_2.2.5 scandir64 F
+GLIBC_2.2.5 scanf F
+GLIBC_2.2.5 sched_get_priority_max F
+GLIBC_2.2.5 sched_get_priority_min F
+GLIBC_2.2.5 sched_getparam F
+GLIBC_2.2.5 sched_getscheduler F
+GLIBC_2.2.5 sched_rr_get_interval F
+GLIBC_2.2.5 sched_setparam F
+GLIBC_2.2.5 sched_setscheduler F
+GLIBC_2.2.5 sched_yield F
+GLIBC_2.2.5 seed48 F
+GLIBC_2.2.5 seed48_r F
+GLIBC_2.2.5 seekdir F
+GLIBC_2.2.5 select F
+GLIBC_2.2.5 semctl F
+GLIBC_2.2.5 semget F
+GLIBC_2.2.5 semop F
+GLIBC_2.2.5 send F
+GLIBC_2.2.5 sendfile F
+GLIBC_2.2.5 sendmsg F
+GLIBC_2.2.5 sendto F
+GLIBC_2.2.5 setaliasent F
+GLIBC_2.2.5 setbuf F
+GLIBC_2.2.5 setbuffer F
+GLIBC_2.2.5 setcontext F
+GLIBC_2.2.5 setdomainname F
+GLIBC_2.2.5 setegid F
+GLIBC_2.2.5 setenv F
+GLIBC_2.2.5 seteuid F
+GLIBC_2.2.5 setfsent F
+GLIBC_2.2.5 setfsgid F
+GLIBC_2.2.5 setfsuid F
+GLIBC_2.2.5 setgid F
+GLIBC_2.2.5 setgrent F
+GLIBC_2.2.5 setgroups F
+GLIBC_2.2.5 sethostent F
+GLIBC_2.2.5 sethostid F
+GLIBC_2.2.5 sethostname F
+GLIBC_2.2.5 setitimer F
+GLIBC_2.2.5 setjmp F
+GLIBC_2.2.5 setlinebuf F
+GLIBC_2.2.5 setlocale F
+GLIBC_2.2.5 setlogin F
+GLIBC_2.2.5 setlogmask F
+GLIBC_2.2.5 setmntent F
+GLIBC_2.2.5 setnetent F
+GLIBC_2.2.5 setnetgrent F
+GLIBC_2.2.5 setpgid F
+GLIBC_2.2.5 setpgrp F
+GLIBC_2.2.5 setpriority F
+GLIBC_2.2.5 setprotoent F
+GLIBC_2.2.5 setpwent F
+GLIBC_2.2.5 setregid F
+GLIBC_2.2.5 setresgid F
+GLIBC_2.2.5 setresuid F
+GLIBC_2.2.5 setreuid F
+GLIBC_2.2.5 setrlimit F
+GLIBC_2.2.5 setrlimit64 F
+GLIBC_2.2.5 setrpcent F
+GLIBC_2.2.5 setservent F
+GLIBC_2.2.5 setsid F
+GLIBC_2.2.5 setsockopt F
+GLIBC_2.2.5 setspent F
+GLIBC_2.2.5 setstate F
+GLIBC_2.2.5 setstate_r F
+GLIBC_2.2.5 settimeofday F
+GLIBC_2.2.5 setttyent F
+GLIBC_2.2.5 setuid F
+GLIBC_2.2.5 setusershell F
+GLIBC_2.2.5 setutent F
+GLIBC_2.2.5 setutxent F
+GLIBC_2.2.5 setvbuf F
+GLIBC_2.2.5 sgetspent F
+GLIBC_2.2.5 sgetspent_r F
+GLIBC_2.2.5 shmat F
+GLIBC_2.2.5 shmctl F
+GLIBC_2.2.5 shmdt F
+GLIBC_2.2.5 shmget F
+GLIBC_2.2.5 shutdown F
+GLIBC_2.2.5 sigaction F
+GLIBC_2.2.5 sigaddset F
+GLIBC_2.2.5 sigaltstack F
+GLIBC_2.2.5 sigandset F
+GLIBC_2.2.5 sigblock F
+GLIBC_2.2.5 sigdelset F
+GLIBC_2.2.5 sigemptyset F
+GLIBC_2.2.5 sigfillset F
+GLIBC_2.2.5 siggetmask F
+GLIBC_2.2.5 sighold F
+GLIBC_2.2.5 sigignore F
+GLIBC_2.2.5 siginterrupt F
+GLIBC_2.2.5 sigisemptyset F
+GLIBC_2.2.5 sigismember F
+GLIBC_2.2.5 siglongjmp F
+GLIBC_2.2.5 signal F
+GLIBC_2.2.5 sigorset F
+GLIBC_2.2.5 sigpause F
+GLIBC_2.2.5 sigpending F
+GLIBC_2.2.5 sigprocmask F
+GLIBC_2.2.5 sigqueue F
+GLIBC_2.2.5 sigrelse F
+GLIBC_2.2.5 sigreturn F
+GLIBC_2.2.5 sigset F
+GLIBC_2.2.5 sigsetmask F
+GLIBC_2.2.5 sigstack F
+GLIBC_2.2.5 sigsuspend F
+GLIBC_2.2.5 sigtimedwait F
+GLIBC_2.2.5 sigvec F
+GLIBC_2.2.5 sigwait F
+GLIBC_2.2.5 sigwaitinfo F
+GLIBC_2.2.5 sleep F
+GLIBC_2.2.5 snprintf F
+GLIBC_2.2.5 sockatmark F
+GLIBC_2.2.5 socket F
+GLIBC_2.2.5 socketpair F
+GLIBC_2.2.5 sprintf F
+GLIBC_2.2.5 sprofil F
+GLIBC_2.2.5 srand F
+GLIBC_2.2.5 srand48 F
+GLIBC_2.2.5 srand48_r F
+GLIBC_2.2.5 srandom F
+GLIBC_2.2.5 srandom_r F
+GLIBC_2.2.5 sscanf F
+GLIBC_2.2.5 ssignal F
+GLIBC_2.2.5 sstk F
+GLIBC_2.2.5 statfs F
+GLIBC_2.2.5 statfs64 F
+GLIBC_2.2.5 statvfs F
+GLIBC_2.2.5 statvfs64 F
+GLIBC_2.2.5 stderr D 0x8
+GLIBC_2.2.5 stdin D 0x8
+GLIBC_2.2.5 stdout D 0x8
+GLIBC_2.2.5 step F
+GLIBC_2.2.5 stime F
+GLIBC_2.2.5 stpcpy F
+GLIBC_2.2.5 stpncpy F
+GLIBC_2.2.5 strcasecmp F
+GLIBC_2.2.5 strcasestr F
+GLIBC_2.2.5 strcat F
+GLIBC_2.2.5 strchr F
+GLIBC_2.2.5 strchrnul F
+GLIBC_2.2.5 strcmp F
+GLIBC_2.2.5 strcoll F
+GLIBC_2.2.5 strcpy F
+GLIBC_2.2.5 strcspn F
+GLIBC_2.2.5 strdup F
+GLIBC_2.2.5 strerror F
+GLIBC_2.2.5 strerror_r F
+GLIBC_2.2.5 strfmon F
+GLIBC_2.2.5 strfry F
+GLIBC_2.2.5 strftime F
+GLIBC_2.2.5 strlen F
+GLIBC_2.2.5 strncasecmp F
+GLIBC_2.2.5 strncat F
+GLIBC_2.2.5 strncmp F
+GLIBC_2.2.5 strncpy F
+GLIBC_2.2.5 strndup F
+GLIBC_2.2.5 strnlen F
+GLIBC_2.2.5 strpbrk F
+GLIBC_2.2.5 strptime F
+GLIBC_2.2.5 strrchr F
+GLIBC_2.2.5 strsep F
+GLIBC_2.2.5 strsignal F
+GLIBC_2.2.5 strspn F
+GLIBC_2.2.5 strstr F
+GLIBC_2.2.5 strtod F
+GLIBC_2.2.5 strtof F
+GLIBC_2.2.5 strtoimax F
+GLIBC_2.2.5 strtok F
+GLIBC_2.2.5 strtok_r F
+GLIBC_2.2.5 strtol F
+GLIBC_2.2.5 strtold F
+GLIBC_2.2.5 strtoll F
+GLIBC_2.2.5 strtoq F
+GLIBC_2.2.5 strtoul F
+GLIBC_2.2.5 strtoull F
+GLIBC_2.2.5 strtoumax F
+GLIBC_2.2.5 strtouq F
+GLIBC_2.2.5 strverscmp F
+GLIBC_2.2.5 strxfrm F
+GLIBC_2.2.5 stty F
+GLIBC_2.2.5 svc_exit F
+GLIBC_2.2.5 svc_fdset D 0x80
+GLIBC_2.2.5 svc_getreq F
+GLIBC_2.2.5 svc_getreq_common F
+GLIBC_2.2.5 svc_getreq_poll F
+GLIBC_2.2.5 svc_getreqset F
+GLIBC_2.2.5 svc_max_pollfd D 0x4
+GLIBC_2.2.5 svc_pollfd D 0x8
+GLIBC_2.2.5 svc_register F
+GLIBC_2.2.5 svc_run F
+GLIBC_2.2.5 svc_sendreply F
+GLIBC_2.2.5 svc_unregister F
+GLIBC_2.2.5 svcauthdes_stats D 0x18
+GLIBC_2.2.5 svcerr_auth F
+GLIBC_2.2.5 svcerr_decode F
+GLIBC_2.2.5 svcerr_noproc F
+GLIBC_2.2.5 svcerr_noprog F
+GLIBC_2.2.5 svcerr_progvers F
+GLIBC_2.2.5 svcerr_systemerr F
+GLIBC_2.2.5 svcerr_weakauth F
+GLIBC_2.2.5 svcfd_create F
+GLIBC_2.2.5 svcraw_create F
+GLIBC_2.2.5 svctcp_create F
+GLIBC_2.2.5 svcudp_bufcreate F
+GLIBC_2.2.5 svcudp_create F
+GLIBC_2.2.5 svcudp_enablecache F
+GLIBC_2.2.5 svcunix_create F
+GLIBC_2.2.5 svcunixfd_create F
+GLIBC_2.2.5 swab F
+GLIBC_2.2.5 swapcontext F
+GLIBC_2.2.5 swapoff F
+GLIBC_2.2.5 swapon F
+GLIBC_2.2.5 swprintf F
+GLIBC_2.2.5 swscanf F
+GLIBC_2.2.5 symlink F
+GLIBC_2.2.5 sync F
+GLIBC_2.2.5 sys_errlist D 0x3e8
+GLIBC_2.2.5 sys_nerr D 0x4
+GLIBC_2.2.5 sys_sigabbrev D 0x200
+GLIBC_2.2.5 sys_siglist D 0x200
+GLIBC_2.2.5 syscall F
+GLIBC_2.2.5 sysconf F
+GLIBC_2.2.5 sysctl F
+GLIBC_2.2.5 sysinfo F
+GLIBC_2.2.5 syslog F
+GLIBC_2.2.5 system F
+GLIBC_2.2.5 sysv_signal F
+GLIBC_2.2.5 tcdrain F
+GLIBC_2.2.5 tcflow F
+GLIBC_2.2.5 tcflush F
+GLIBC_2.2.5 tcgetattr F
+GLIBC_2.2.5 tcgetpgrp F
+GLIBC_2.2.5 tcgetsid F
+GLIBC_2.2.5 tcsendbreak F
+GLIBC_2.2.5 tcsetattr F
+GLIBC_2.2.5 tcsetpgrp F
+GLIBC_2.2.5 tdelete F
+GLIBC_2.2.5 tdestroy F
+GLIBC_2.2.5 telldir F
+GLIBC_2.2.5 tempnam F
+GLIBC_2.2.5 textdomain F
+GLIBC_2.2.5 tfind F
+GLIBC_2.2.5 time F
+GLIBC_2.2.5 timegm F
+GLIBC_2.2.5 timelocal F
+GLIBC_2.2.5 times F
+GLIBC_2.2.5 timezone D 0x8
+GLIBC_2.2.5 tmpfile F
+GLIBC_2.2.5 tmpfile64 F
+GLIBC_2.2.5 tmpnam F
+GLIBC_2.2.5 tmpnam_r F
+GLIBC_2.2.5 toascii F
+GLIBC_2.2.5 tolower F
+GLIBC_2.2.5 toupper F
+GLIBC_2.2.5 towctrans F
+GLIBC_2.2.5 towlower F
+GLIBC_2.2.5 towupper F
+GLIBC_2.2.5 tr_break F
+GLIBC_2.2.5 truncate F
+GLIBC_2.2.5 truncate64 F
+GLIBC_2.2.5 tsearch F
+GLIBC_2.2.5 ttyname F
+GLIBC_2.2.5 ttyname_r F
+GLIBC_2.2.5 ttyslot F
+GLIBC_2.2.5 twalk F
+GLIBC_2.2.5 tzname D 0x10
+GLIBC_2.2.5 tzset F
+GLIBC_2.2.5 ualarm F
+GLIBC_2.2.5 ulckpwdf F
+GLIBC_2.2.5 ulimit F
+GLIBC_2.2.5 umask F
+GLIBC_2.2.5 umount F
+GLIBC_2.2.5 umount2 F
+GLIBC_2.2.5 uname F
+GLIBC_2.2.5 ungetc F
+GLIBC_2.2.5 ungetwc F
+GLIBC_2.2.5 unlink F
+GLIBC_2.2.5 unlockpt F
+GLIBC_2.2.5 unsetenv F
+GLIBC_2.2.5 updwtmp F
+GLIBC_2.2.5 updwtmpx F
+GLIBC_2.2.5 uselib F
+GLIBC_2.2.5 user2netname F
+GLIBC_2.2.5 usleep F
+GLIBC_2.2.5 ustat F
+GLIBC_2.2.5 utime F
+GLIBC_2.2.5 utimes F
+GLIBC_2.2.5 utmpname F
+GLIBC_2.2.5 utmpxname F
+GLIBC_2.2.5 valloc F
+GLIBC_2.2.5 vasprintf F
+GLIBC_2.2.5 vdprintf F
+GLIBC_2.2.5 verr F
+GLIBC_2.2.5 verrx F
+GLIBC_2.2.5 versionsort F
+GLIBC_2.2.5 versionsort64 F
+GLIBC_2.2.5 vfork F
+GLIBC_2.2.5 vfprintf F
+GLIBC_2.2.5 vfscanf F
+GLIBC_2.2.5 vfwprintf F
+GLIBC_2.2.5 vfwscanf F
+GLIBC_2.2.5 vhangup F
+GLIBC_2.2.5 vlimit F
+GLIBC_2.2.5 vprintf F
+GLIBC_2.2.5 vscanf F
+GLIBC_2.2.5 vsnprintf F
+GLIBC_2.2.5 vsprintf F
+GLIBC_2.2.5 vsscanf F
+GLIBC_2.2.5 vswprintf F
+GLIBC_2.2.5 vswscanf F
+GLIBC_2.2.5 vsyslog F
+GLIBC_2.2.5 vtimes F
+GLIBC_2.2.5 vwarn F
+GLIBC_2.2.5 vwarnx F
+GLIBC_2.2.5 vwprintf F
+GLIBC_2.2.5 vwscanf F
+GLIBC_2.2.5 wait F
+GLIBC_2.2.5 wait3 F
+GLIBC_2.2.5 wait4 F
+GLIBC_2.2.5 waitid F
+GLIBC_2.2.5 waitpid F
+GLIBC_2.2.5 warn F
+GLIBC_2.2.5 warnx F
+GLIBC_2.2.5 wcpcpy F
+GLIBC_2.2.5 wcpncpy F
+GLIBC_2.2.5 wcrtomb F
+GLIBC_2.2.5 wcscasecmp F
+GLIBC_2.2.5 wcscat F
+GLIBC_2.2.5 wcschr F
+GLIBC_2.2.5 wcschrnul F
+GLIBC_2.2.5 wcscmp F
+GLIBC_2.2.5 wcscoll F
+GLIBC_2.2.5 wcscpy F
+GLIBC_2.2.5 wcscspn F
+GLIBC_2.2.5 wcsdup F
+GLIBC_2.2.5 wcsftime F
+GLIBC_2.2.5 wcslen F
+GLIBC_2.2.5 wcsncasecmp F
+GLIBC_2.2.5 wcsncat F
+GLIBC_2.2.5 wcsncmp F
+GLIBC_2.2.5 wcsncpy F
+GLIBC_2.2.5 wcsnlen F
+GLIBC_2.2.5 wcsnrtombs F
+GLIBC_2.2.5 wcspbrk F
+GLIBC_2.2.5 wcsrchr F
+GLIBC_2.2.5 wcsrtombs F
+GLIBC_2.2.5 wcsspn F
+GLIBC_2.2.5 wcsstr F
+GLIBC_2.2.5 wcstod F
+GLIBC_2.2.5 wcstof F
+GLIBC_2.2.5 wcstoimax F
+GLIBC_2.2.5 wcstok F
+GLIBC_2.2.5 wcstol F
+GLIBC_2.2.5 wcstold F
+GLIBC_2.2.5 wcstoll F
+GLIBC_2.2.5 wcstombs F
+GLIBC_2.2.5 wcstoq F
+GLIBC_2.2.5 wcstoul F
+GLIBC_2.2.5 wcstoull F
+GLIBC_2.2.5 wcstoumax F
+GLIBC_2.2.5 wcstouq F
+GLIBC_2.2.5 wcswcs F
+GLIBC_2.2.5 wcswidth F
+GLIBC_2.2.5 wcsxfrm F
+GLIBC_2.2.5 wctob F
+GLIBC_2.2.5 wctomb F
+GLIBC_2.2.5 wctrans F
+GLIBC_2.2.5 wctype F
+GLIBC_2.2.5 wcwidth F
+GLIBC_2.2.5 wmemchr F
+GLIBC_2.2.5 wmemcmp F
+GLIBC_2.2.5 wmemcpy F
+GLIBC_2.2.5 wmemmove F
+GLIBC_2.2.5 wmempcpy F
+GLIBC_2.2.5 wmemset F
+GLIBC_2.2.5 wordexp F
+GLIBC_2.2.5 wordfree F
+GLIBC_2.2.5 wprintf F
+GLIBC_2.2.5 write F
+GLIBC_2.2.5 writev F
+GLIBC_2.2.5 wscanf F
+GLIBC_2.2.5 xdecrypt F
+GLIBC_2.2.5 xdr_accepted_reply F
+GLIBC_2.2.5 xdr_array F
+GLIBC_2.2.5 xdr_authdes_cred F
+GLIBC_2.2.5 xdr_authdes_verf F
+GLIBC_2.2.5 xdr_authunix_parms F
+GLIBC_2.2.5 xdr_bool F
+GLIBC_2.2.5 xdr_bytes F
+GLIBC_2.2.5 xdr_callhdr F
+GLIBC_2.2.5 xdr_callmsg F
+GLIBC_2.2.5 xdr_char F
+GLIBC_2.2.5 xdr_cryptkeyarg F
+GLIBC_2.2.5 xdr_cryptkeyarg2 F
+GLIBC_2.2.5 xdr_cryptkeyres F
+GLIBC_2.2.5 xdr_des_block F
+GLIBC_2.2.5 xdr_double F
+GLIBC_2.2.5 xdr_enum F
+GLIBC_2.2.5 xdr_float F
+GLIBC_2.2.5 xdr_free F
+GLIBC_2.2.5 xdr_getcredres F
+GLIBC_2.2.5 xdr_hyper F
+GLIBC_2.2.5 xdr_int F
+GLIBC_2.2.5 xdr_int16_t F
+GLIBC_2.2.5 xdr_int32_t F
+GLIBC_2.2.5 xdr_int64_t F
+GLIBC_2.2.5 xdr_int8_t F
+GLIBC_2.2.5 xdr_key_netstarg F
+GLIBC_2.2.5 xdr_key_netstres F
+GLIBC_2.2.5 xdr_keybuf F
+GLIBC_2.2.5 xdr_keystatus F
+GLIBC_2.2.5 xdr_long F
+GLIBC_2.2.5 xdr_longlong_t F
+GLIBC_2.2.5 xdr_netnamestr F
+GLIBC_2.2.5 xdr_netobj F
+GLIBC_2.2.5 xdr_opaque F
+GLIBC_2.2.5 xdr_opaque_auth F
+GLIBC_2.2.5 xdr_pmap F
+GLIBC_2.2.5 xdr_pmaplist F
+GLIBC_2.2.5 xdr_pointer F
+GLIBC_2.2.5 xdr_reference F
+GLIBC_2.2.5 xdr_rejected_reply F
+GLIBC_2.2.5 xdr_replymsg F
+GLIBC_2.2.5 xdr_rmtcall_args F
+GLIBC_2.2.5 xdr_rmtcallres F
+GLIBC_2.2.5 xdr_short F
+GLIBC_2.2.5 xdr_sizeof F
+GLIBC_2.2.5 xdr_string F
+GLIBC_2.2.5 xdr_u_char F
+GLIBC_2.2.5 xdr_u_hyper F
+GLIBC_2.2.5 xdr_u_int F
+GLIBC_2.2.5 xdr_u_long F
+GLIBC_2.2.5 xdr_u_longlong_t F
+GLIBC_2.2.5 xdr_u_short F
+GLIBC_2.2.5 xdr_uint16_t F
+GLIBC_2.2.5 xdr_uint32_t F
+GLIBC_2.2.5 xdr_uint64_t F
+GLIBC_2.2.5 xdr_uint8_t F
+GLIBC_2.2.5 xdr_union F
+GLIBC_2.2.5 xdr_unixcred F
+GLIBC_2.2.5 xdr_vector F
+GLIBC_2.2.5 xdr_void F
+GLIBC_2.2.5 xdr_wrapstring F
+GLIBC_2.2.5 xdrmem_create F
+GLIBC_2.2.5 xdrrec_create F
+GLIBC_2.2.5 xdrrec_endofrecord F
+GLIBC_2.2.5 xdrrec_eof F
+GLIBC_2.2.5 xdrrec_skiprecord F
+GLIBC_2.2.5 xdrstdio_create F
+GLIBC_2.2.5 xencrypt F
+GLIBC_2.2.5 xprt_register F
+GLIBC_2.2.5 xprt_unregister 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 0x3f0
+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 strtoul_l F
+GLIBC_2.3 strxfrm_l F
+GLIBC_2.3 sys_errlist D 0x3f0
+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 0x208
+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 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 strtoll_l F
+GLIBC_2.3.3 strtoull_l F
+GLIBC_2.3.3 sys_sigabbrev D 0x208
+GLIBC_2.3.3 sys_siglist D 0x208
+GLIBC_2.3.4 GLIBC_2.3.4 A
+GLIBC_2.3.4 __chk_fail F
+GLIBC_2.3.4 __fprintf_chk F
+GLIBC_2.3.4 __gets_chk F
+GLIBC_2.3.4 __memcpy_chk F
+GLIBC_2.3.4 __memmove_chk F
+GLIBC_2.3.4 __mempcpy_chk F
+GLIBC_2.3.4 __memset_chk F
+GLIBC_2.3.4 __printf_chk F
+GLIBC_2.3.4 __snprintf_chk F
+GLIBC_2.3.4 __sprintf_chk F
+GLIBC_2.3.4 __stpcpy_chk F
+GLIBC_2.3.4 __strcat_chk F
+GLIBC_2.3.4 __strcpy_chk F
+GLIBC_2.3.4 __strncat_chk F
+GLIBC_2.3.4 __strncpy_chk F
+GLIBC_2.3.4 __vfprintf_chk F
+GLIBC_2.3.4 __vprintf_chk F
+GLIBC_2.3.4 __vsnprintf_chk F
+GLIBC_2.3.4 __vsprintf_chk F
+GLIBC_2.3.4 __xpg_strerror_r F
+GLIBC_2.3.4 getipv4sourcefilter F
+GLIBC_2.3.4 getsourcefilter F
+GLIBC_2.3.4 regexec F
+GLIBC_2.3.4 sched_getaffinity F
+GLIBC_2.3.4 sched_setaffinity F
+GLIBC_2.3.4 setipv4sourcefilter F
+GLIBC_2.3.4 setsourcefilter F
+GLIBC_2.3.4 xdr_quad_t F
+GLIBC_2.3.4 xdr_u_quad_t F
+GLIBC_2.4 GLIBC_2.4 A
+GLIBC_2.4 __confstr_chk F
+GLIBC_2.4 __fgets_chk F
+GLIBC_2.4 __fgets_unlocked_chk F
+GLIBC_2.4 __fgetws_chk F
+GLIBC_2.4 __fgetws_unlocked_chk F
+GLIBC_2.4 __fwprintf_chk F
+GLIBC_2.4 __fxstatat F
+GLIBC_2.4 __fxstatat64 F
+GLIBC_2.4 __getcwd_chk F
+GLIBC_2.4 __getdomainname_chk F
+GLIBC_2.4 __getgroups_chk F
+GLIBC_2.4 __gethostname_chk F
+GLIBC_2.4 __getlogin_r_chk F
+GLIBC_2.4 __getwd_chk F
+GLIBC_2.4 __mbsnrtowcs_chk F
+GLIBC_2.4 __mbsrtowcs_chk F
+GLIBC_2.4 __mbstowcs_chk F
+GLIBC_2.4 __pread64_chk F
+GLIBC_2.4 __pread_chk F
+GLIBC_2.4 __ptsname_r_chk F
+GLIBC_2.4 __read_chk F
+GLIBC_2.4 __readlink_chk F
+GLIBC_2.4 __realpath_chk F
+GLIBC_2.4 __recv_chk F
+GLIBC_2.4 __recvfrom_chk F
+GLIBC_2.4 __stack_chk_fail F
+GLIBC_2.4 __stpncpy_chk F
+GLIBC_2.4 __swprintf_chk F
+GLIBC_2.4 __syslog_chk F
+GLIBC_2.4 __ttyname_r_chk F
+GLIBC_2.4 __vfwprintf_chk F
+GLIBC_2.4 __vswprintf_chk F
+GLIBC_2.4 __vsyslog_chk F
+GLIBC_2.4 __vwprintf_chk F
+GLIBC_2.4 __wcpcpy_chk F
+GLIBC_2.4 __wcpncpy_chk F
+GLIBC_2.4 __wcrtomb_chk F
+GLIBC_2.4 __wcscat_chk F
+GLIBC_2.4 __wcscpy_chk F
+GLIBC_2.4 __wcsncat_chk F
+GLIBC_2.4 __wcsncpy_chk F
+GLIBC_2.4 __wcsnrtombs_chk F
+GLIBC_2.4 __wcsrtombs_chk F
+GLIBC_2.4 __wcstombs_chk F
+GLIBC_2.4 __wctomb_chk F
+GLIBC_2.4 __wmemcpy_chk F
+GLIBC_2.4 __wmemmove_chk F
+GLIBC_2.4 __wmempcpy_chk F
+GLIBC_2.4 __wmemset_chk F
+GLIBC_2.4 __wprintf_chk F
+GLIBC_2.4 __xmknodat F
+GLIBC_2.4 _sys_errlist D 0x420
+GLIBC_2.4 _sys_nerr D 0x4
+GLIBC_2.4 eaccess F
+GLIBC_2.4 faccessat F
+GLIBC_2.4 fchmodat F
+GLIBC_2.4 fchownat F
+GLIBC_2.4 fdopendir F
+GLIBC_2.4 futimesat F
+GLIBC_2.4 inotify_add_watch F
+GLIBC_2.4 inotify_init F
+GLIBC_2.4 inotify_rm_watch F
+GLIBC_2.4 linkat F
+GLIBC_2.4 mkdirat F
+GLIBC_2.4 mkfifoat F
+GLIBC_2.4 open_wmemstream F
+GLIBC_2.4 openat F
+GLIBC_2.4 openat64 F
+GLIBC_2.4 ppoll F
+GLIBC_2.4 readlinkat F
+GLIBC_2.4 renameat F
+GLIBC_2.4 symlinkat F
+GLIBC_2.4 sys_errlist D 0x420
+GLIBC_2.4 sys_nerr D 0x4
+GLIBC_2.4 unlinkat F
+GLIBC_2.4 unshare F
+GLIBC_2.5 GLIBC_2.5 A
+GLIBC_2.5 __readlinkat_chk F
+GLIBC_2.5 inet6_opt_append F
+GLIBC_2.5 inet6_opt_find F
+GLIBC_2.5 inet6_opt_finish F
+GLIBC_2.5 inet6_opt_get_val F
+GLIBC_2.5 inet6_opt_init F
+GLIBC_2.5 inet6_opt_next F
+GLIBC_2.5 inet6_opt_set_val F
+GLIBC_2.5 inet6_rth_add F
+GLIBC_2.5 inet6_rth_getaddr F
+GLIBC_2.5 inet6_rth_init F
+GLIBC_2.5 inet6_rth_reverse F
+GLIBC_2.5 inet6_rth_segments F
+GLIBC_2.5 inet6_rth_space F
+GLIBC_2.5 splice F
+GLIBC_2.5 tee F
+GLIBC_2.5 vmsplice F
+GLIBC_2.6 GLIBC_2.6 A
+GLIBC_2.6 __sched_cpucount F
+GLIBC_2.6 epoll_pwait F
+GLIBC_2.6 futimens F
+GLIBC_2.6 sched_getcpu F
+GLIBC_2.6 strerror_l F
+GLIBC_2.6 sync_file_range F
+GLIBC_2.6 utimensat F
+GLIBC_2.7 GLIBC_2.7 A
+GLIBC_2.7 __fread_chk F
+GLIBC_2.7 __fread_unlocked_chk F
+GLIBC_2.7 __isoc99_fscanf F
+GLIBC_2.7 __isoc99_fwscanf F
+GLIBC_2.7 __isoc99_scanf F
+GLIBC_2.7 __isoc99_sscanf F
+GLIBC_2.7 __isoc99_swscanf F
+GLIBC_2.7 __isoc99_vfscanf F
+GLIBC_2.7 __isoc99_vfwscanf F
+GLIBC_2.7 __isoc99_vscanf F
+GLIBC_2.7 __isoc99_vsscanf F
+GLIBC_2.7 __isoc99_vswscanf F
+GLIBC_2.7 __isoc99_vwscanf F
+GLIBC_2.7 __isoc99_wscanf F
+GLIBC_2.7 __open64_2 F
+GLIBC_2.7 __open_2 F
+GLIBC_2.7 __openat64_2 F
+GLIBC_2.7 __openat_2 F
+GLIBC_2.7 __sched_cpualloc F
+GLIBC_2.7 __sched_cpufree F
+GLIBC_2.7 eventfd F
+GLIBC_2.7 eventfd_read F
+GLIBC_2.7 eventfd_write F
+GLIBC_2.7 mkostemp F
+GLIBC_2.7 mkostemp64 F
+GLIBC_2.7 signalfd F
+GLIBC_2.8 GLIBC_2.8 A
+GLIBC_2.8 __asprintf_chk F
+GLIBC_2.8 __dprintf_chk F
+GLIBC_2.8 __obstack_printf_chk F
+GLIBC_2.8 __obstack_vprintf_chk F
+GLIBC_2.8 __vasprintf_chk F
+GLIBC_2.8 __vdprintf_chk F
+GLIBC_2.8 qsort_r F
+GLIBC_2.8 timerfd_create F
+GLIBC_2.8 timerfd_gettime F
+GLIBC_2.8 timerfd_settime F
+GLIBC_2.9 GLIBC_2.9 A
+GLIBC_2.9 dup3 F
+GLIBC_2.9 epoll_create1 F
+GLIBC_2.9 inotify_init1 F
+GLIBC_2.9 pipe2 F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/64/libcrypt.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/64/libcrypt.abilist
new file mode 100644
index 0000000000..df20c0f259
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/64/libcrypt.abilist
@@ -0,0 +1,8 @@
+GLIBC_2.2.5 GLIBC_2.2.5 A
+GLIBC_2.2.5 crypt F
+GLIBC_2.2.5 crypt_r F
+GLIBC_2.2.5 encrypt F
+GLIBC_2.2.5 encrypt_r F
+GLIBC_2.2.5 fcrypt F
+GLIBC_2.2.5 setkey F
+GLIBC_2.2.5 setkey_r F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/64/libdl.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/64/libdl.abilist
new file mode 100644
index 0000000000..ca3d1f7936
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/64/libdl.abilist
@@ -0,0 +1,12 @@
+GLIBC_2.2.5 GLIBC_2.2.5 A
+GLIBC_2.2.5 dladdr F
+GLIBC_2.2.5 dlclose F
+GLIBC_2.2.5 dlerror F
+GLIBC_2.2.5 dlopen F
+GLIBC_2.2.5 dlsym F
+GLIBC_2.2.5 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/x86_64/64/libm.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist
new file mode 100644
index 0000000000..fc68ef679a
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist
@@ -0,0 +1,465 @@
+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.5 GLIBC_2.2.5 A
+GLIBC_2.2.5 _LIB_VERSION D 0x4
+GLIBC_2.2.5 __clog10 F
+GLIBC_2.2.5 __clog10f F
+GLIBC_2.2.5 __clog10l F
+GLIBC_2.2.5 __finite F
+GLIBC_2.2.5 __finitef F
+GLIBC_2.2.5 __finitel F
+GLIBC_2.2.5 __fpclassify F
+GLIBC_2.2.5 __fpclassifyf F
+GLIBC_2.2.5 __fpclassifyl F
+GLIBC_2.2.5 __signbit F
+GLIBC_2.2.5 __signbitf F
+GLIBC_2.2.5 __signbitl F
+GLIBC_2.2.5 acos F
+GLIBC_2.2.5 acosf F
+GLIBC_2.2.5 acosh F
+GLIBC_2.2.5 acoshf F
+GLIBC_2.2.5 acoshl F
+GLIBC_2.2.5 acosl F
+GLIBC_2.2.5 asin F
+GLIBC_2.2.5 asinf F
+GLIBC_2.2.5 asinh F
+GLIBC_2.2.5 asinhf F
+GLIBC_2.2.5 asinhl F
+GLIBC_2.2.5 asinl F
+GLIBC_2.2.5 atan F
+GLIBC_2.2.5 atan2 F
+GLIBC_2.2.5 atan2f F
+GLIBC_2.2.5 atan2l F
+GLIBC_2.2.5 atanf F
+GLIBC_2.2.5 atanh F
+GLIBC_2.2.5 atanhf F
+GLIBC_2.2.5 atanhl F
+GLIBC_2.2.5 atanl F
+GLIBC_2.2.5 cabs F
+GLIBC_2.2.5 cabsf F
+GLIBC_2.2.5 cabsl F
+GLIBC_2.2.5 cacos F
+GLIBC_2.2.5 cacosf F
+GLIBC_2.2.5 cacosh F
+GLIBC_2.2.5 cacoshf F
+GLIBC_2.2.5 cacoshl F
+GLIBC_2.2.5 cacosl F
+GLIBC_2.2.5 carg F
+GLIBC_2.2.5 cargf F
+GLIBC_2.2.5 cargl F
+GLIBC_2.2.5 casin F
+GLIBC_2.2.5 casinf F
+GLIBC_2.2.5 casinh F
+GLIBC_2.2.5 casinhf F
+GLIBC_2.2.5 casinhl F
+GLIBC_2.2.5 casinl F
+GLIBC_2.2.5 catan F
+GLIBC_2.2.5 catanf F
+GLIBC_2.2.5 catanh F
+GLIBC_2.2.5 catanhf F
+GLIBC_2.2.5 catanhl F
+GLIBC_2.2.5 catanl F
+GLIBC_2.2.5 cbrt F
+GLIBC_2.2.5 cbrtf F
+GLIBC_2.2.5 cbrtl F
+GLIBC_2.2.5 ccos F
+GLIBC_2.2.5 ccosf F
+GLIBC_2.2.5 ccosh F
+GLIBC_2.2.5 ccoshf F
+GLIBC_2.2.5 ccoshl F
+GLIBC_2.2.5 ccosl F
+GLIBC_2.2.5 ceil F
+GLIBC_2.2.5 ceilf F
+GLIBC_2.2.5 ceill F
+GLIBC_2.2.5 cexp F
+GLIBC_2.2.5 cexpf F
+GLIBC_2.2.5 cexpl F
+GLIBC_2.2.5 cimag F
+GLIBC_2.2.5 cimagf F
+GLIBC_2.2.5 cimagl F
+GLIBC_2.2.5 clog F
+GLIBC_2.2.5 clog10 F
+GLIBC_2.2.5 clog10f F
+GLIBC_2.2.5 clog10l F
+GLIBC_2.2.5 clogf F
+GLIBC_2.2.5 clogl F
+GLIBC_2.2.5 conj F
+GLIBC_2.2.5 conjf F
+GLIBC_2.2.5 conjl F
+GLIBC_2.2.5 copysign F
+GLIBC_2.2.5 copysignf F
+GLIBC_2.2.5 copysignl F
+GLIBC_2.2.5 cos F
+GLIBC_2.2.5 cosf F
+GLIBC_2.2.5 cosh F
+GLIBC_2.2.5 coshf F
+GLIBC_2.2.5 coshl F
+GLIBC_2.2.5 cosl F
+GLIBC_2.2.5 cpow F
+GLIBC_2.2.5 cpowf F
+GLIBC_2.2.5 cpowl F
+GLIBC_2.2.5 cproj F
+GLIBC_2.2.5 cprojf F
+GLIBC_2.2.5 cprojl F
+GLIBC_2.2.5 creal F
+GLIBC_2.2.5 crealf F
+GLIBC_2.2.5 creall F
+GLIBC_2.2.5 csin F
+GLIBC_2.2.5 csinf F
+GLIBC_2.2.5 csinh F
+GLIBC_2.2.5 csinhf F
+GLIBC_2.2.5 csinhl F
+GLIBC_2.2.5 csinl F
+GLIBC_2.2.5 csqrt F
+GLIBC_2.2.5 csqrtf F
+GLIBC_2.2.5 csqrtl F
+GLIBC_2.2.5 ctan F
+GLIBC_2.2.5 ctanf F
+GLIBC_2.2.5 ctanh F
+GLIBC_2.2.5 ctanhf F
+GLIBC_2.2.5 ctanhl F
+GLIBC_2.2.5 ctanl F
+GLIBC_2.2.5 drem F
+GLIBC_2.2.5 dremf F
+GLIBC_2.2.5 dreml F
+GLIBC_2.2.5 erf F
+GLIBC_2.2.5 erfc F
+GLIBC_2.2.5 erfcf F
+GLIBC_2.2.5 erfcl F
+GLIBC_2.2.5 erff F
+GLIBC_2.2.5 erfl F
+GLIBC_2.2.5 exp F
+GLIBC_2.2.5 exp10 F
+GLIBC_2.2.5 exp10f F
+GLIBC_2.2.5 exp10l F
+GLIBC_2.2.5 exp2 F
+GLIBC_2.2.5 exp2f F
+GLIBC_2.2.5 exp2l F
+GLIBC_2.2.5 expf F
+GLIBC_2.2.5 expl F
+GLIBC_2.2.5 expm1 F
+GLIBC_2.2.5 expm1f F
+GLIBC_2.2.5 expm1l F
+GLIBC_2.2.5 fabs F
+GLIBC_2.2.5 fabsf F
+GLIBC_2.2.5 fabsl F
+GLIBC_2.2.5 fdim F
+GLIBC_2.2.5 fdimf F
+GLIBC_2.2.5 fdiml F
+GLIBC_2.2.5 feclearexcept F
+GLIBC_2.2.5 fedisableexcept F
+GLIBC_2.2.5 feenableexcept F
+GLIBC_2.2.5 fegetenv F
+GLIBC_2.2.5 fegetexcept F
+GLIBC_2.2.5 fegetexceptflag F
+GLIBC_2.2.5 fegetround F
+GLIBC_2.2.5 feholdexcept F
+GLIBC_2.2.5 feraiseexcept F
+GLIBC_2.2.5 fesetenv F
+GLIBC_2.2.5 fesetexceptflag F
+GLIBC_2.2.5 fesetround F
+GLIBC_2.2.5 fetestexcept F
+GLIBC_2.2.5 feupdateenv F
+GLIBC_2.2.5 finite F
+GLIBC_2.2.5 finitef F
+GLIBC_2.2.5 finitel F
+GLIBC_2.2.5 floor F
+GLIBC_2.2.5 floorf F
+GLIBC_2.2.5 floorl F
+GLIBC_2.2.5 fma F
+GLIBC_2.2.5 fmaf F
+GLIBC_2.2.5 fmal F
+GLIBC_2.2.5 fmax F
+GLIBC_2.2.5 fmaxf F
+GLIBC_2.2.5 fmaxl F
+GLIBC_2.2.5 fmin F
+GLIBC_2.2.5 fminf F
+GLIBC_2.2.5 fminl F
+GLIBC_2.2.5 fmod F
+GLIBC_2.2.5 fmodf F
+GLIBC_2.2.5 fmodl F
+GLIBC_2.2.5 frexp F
+GLIBC_2.2.5 frexpf F
+GLIBC_2.2.5 frexpl F
+GLIBC_2.2.5 gamma F
+GLIBC_2.2.5 gammaf F
+GLIBC_2.2.5 gammal F
+GLIBC_2.2.5 hypot F
+GLIBC_2.2.5 hypotf F
+GLIBC_2.2.5 hypotl F
+GLIBC_2.2.5 ilogb F
+GLIBC_2.2.5 ilogbf F
+GLIBC_2.2.5 ilogbl F
+GLIBC_2.2.5 j0 F
+GLIBC_2.2.5 j0f F
+GLIBC_2.2.5 j0l F
+GLIBC_2.2.5 j1 F
+GLIBC_2.2.5 j1f F
+GLIBC_2.2.5 j1l F
+GLIBC_2.2.5 jn F
+GLIBC_2.2.5 jnf F
+GLIBC_2.2.5 jnl F
+GLIBC_2.2.5 ldexp F
+GLIBC_2.2.5 ldexpf F
+GLIBC_2.2.5 ldexpl F
+GLIBC_2.2.5 lgamma F
+GLIBC_2.2.5 lgamma_r F
+GLIBC_2.2.5 lgammaf F
+GLIBC_2.2.5 lgammaf_r F
+GLIBC_2.2.5 lgammal F
+GLIBC_2.2.5 lgammal_r F
+GLIBC_2.2.5 llrint F
+GLIBC_2.2.5 llrintf F
+GLIBC_2.2.5 llrintl F
+GLIBC_2.2.5 llround F
+GLIBC_2.2.5 llroundf F
+GLIBC_2.2.5 llroundl F
+GLIBC_2.2.5 log F
+GLIBC_2.2.5 log10 F
+GLIBC_2.2.5 log10f F
+GLIBC_2.2.5 log10l F
+GLIBC_2.2.5 log1p F
+GLIBC_2.2.5 log1pf F
+GLIBC_2.2.5 log1pl F
+GLIBC_2.2.5 log2 F
+GLIBC_2.2.5 log2f F
+GLIBC_2.2.5 log2l F
+GLIBC_2.2.5 logb F
+GLIBC_2.2.5 logbf F
+GLIBC_2.2.5 logbl F
+GLIBC_2.2.5 logf F
+GLIBC_2.2.5 logl F
+GLIBC_2.2.5 lrint F
+GLIBC_2.2.5 lrintf F
+GLIBC_2.2.5 lrintl F
+GLIBC_2.2.5 lround F
+GLIBC_2.2.5 lroundf F
+GLIBC_2.2.5 lroundl F
+GLIBC_2.2.5 matherr F
+GLIBC_2.2.5 modf F
+GLIBC_2.2.5 modff F
+GLIBC_2.2.5 modfl F
+GLIBC_2.2.5 nan F
+GLIBC_2.2.5 nanf F
+GLIBC_2.2.5 nanl F
+GLIBC_2.2.5 nearbyint F
+GLIBC_2.2.5 nearbyintf F
+GLIBC_2.2.5 nearbyintl F
+GLIBC_2.2.5 nextafter F
+GLIBC_2.2.5 nextafterf F
+GLIBC_2.2.5 nextafterl F
+GLIBC_2.2.5 nexttoward F
+GLIBC_2.2.5 nexttowardf F
+GLIBC_2.2.5 nexttowardl F
+GLIBC_2.2.5 pow F
+GLIBC_2.2.5 pow10 F
+GLIBC_2.2.5 pow10f F
+GLIBC_2.2.5 pow10l F
+GLIBC_2.2.5 powf F
+GLIBC_2.2.5 powl F
+GLIBC_2.2.5 remainder F
+GLIBC_2.2.5 remainderf F
+GLIBC_2.2.5 remainderl F
+GLIBC_2.2.5 remquo F
+GLIBC_2.2.5 remquof F
+GLIBC_2.2.5 remquol F
+GLIBC_2.2.5 rint F
+GLIBC_2.2.5 rintf F
+GLIBC_2.2.5 rintl F
+GLIBC_2.2.5 round F
+GLIBC_2.2.5 roundf F
+GLIBC_2.2.5 roundl F
+GLIBC_2.2.5 scalb F
+GLIBC_2.2.5 scalbf F
+GLIBC_2.2.5 scalbl F
+GLIBC_2.2.5 scalbln F
+GLIBC_2.2.5 scalblnf F
+GLIBC_2.2.5 scalblnl F
+GLIBC_2.2.5 scalbn F
+GLIBC_2.2.5 scalbnf F
+GLIBC_2.2.5 scalbnl F
+GLIBC_2.2.5 signgam D 0x4
+GLIBC_2.2.5 significand F
+GLIBC_2.2.5 significandf F
+GLIBC_2.2.5 significandl F
+GLIBC_2.2.5 sin F
+GLIBC_2.2.5 sincos F
+GLIBC_2.2.5 sincosf F
+GLIBC_2.2.5 sincosl F
+GLIBC_2.2.5 sinf F
+GLIBC_2.2.5 sinh F
+GLIBC_2.2.5 sinhf F
+GLIBC_2.2.5 sinhl F
+GLIBC_2.2.5 sinl F
+GLIBC_2.2.5 sqrt F
+GLIBC_2.2.5 sqrtf F
+GLIBC_2.2.5 sqrtl F
+GLIBC_2.2.5 tan F
+GLIBC_2.2.5 tanf F
+GLIBC_2.2.5 tanh F
+GLIBC_2.2.5 tanhf F
+GLIBC_2.2.5 tanhl F
+GLIBC_2.2.5 tanl F
+GLIBC_2.2.5 tgamma F
+GLIBC_2.2.5 tgammaf F
+GLIBC_2.2.5 tgammal F
+GLIBC_2.2.5 trunc F
+GLIBC_2.2.5 truncf F
+GLIBC_2.2.5 truncl F
+GLIBC_2.2.5 y0 F
+GLIBC_2.2.5 y0f F
+GLIBC_2.2.5 y0l F
+GLIBC_2.2.5 y1 F
+GLIBC_2.2.5 y1f F
+GLIBC_2.2.5 y1l F
+GLIBC_2.2.5 yn F
+GLIBC_2.2.5 ynf F
+GLIBC_2.2.5 ynl F
+GLIBC_2.23 GLIBC_2.23 A
+GLIBC_2.23 __signgam D 0x4
+GLIBC_2.23 lgamma F
+GLIBC_2.23 lgammaf F
+GLIBC_2.23 lgammal F
+GLIBC_2.24 GLIBC_2.24 A
+GLIBC_2.24 nextdown F
+GLIBC_2.24 nextdownf F
+GLIBC_2.24 nextdownl F
+GLIBC_2.24 nextup F
+GLIBC_2.24 nextupf F
+GLIBC_2.24 nextupl F
+GLIBC_2.25 GLIBC_2.25 A
+GLIBC_2.25 __iscanonicall F
+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
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/64/libnsl.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/64/libnsl.abilist
new file mode 100644
index 0000000000..571fe97d88
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/64/libnsl.abilist
@@ -0,0 +1,122 @@
+GLIBC_2.2.5 GLIBC_2.2.5 A
+GLIBC_2.2.5 __free_fdresult F
+GLIBC_2.2.5 __nis_default_access F
+GLIBC_2.2.5 __nis_default_group F
+GLIBC_2.2.5 __nis_default_owner F
+GLIBC_2.2.5 __nis_default_ttl F
+GLIBC_2.2.5 __nis_finddirectory F
+GLIBC_2.2.5 __nis_hash F
+GLIBC_2.2.5 __nisbind_connect F
+GLIBC_2.2.5 __nisbind_create F
+GLIBC_2.2.5 __nisbind_destroy F
+GLIBC_2.2.5 __nisbind_next F
+GLIBC_2.2.5 __yp_check F
+GLIBC_2.2.5 nis_add F
+GLIBC_2.2.5 nis_add_entry F
+GLIBC_2.2.5 nis_addmember F
+GLIBC_2.2.5 nis_checkpoint F
+GLIBC_2.2.5 nis_clone_directory F
+GLIBC_2.2.5 nis_clone_object F
+GLIBC_2.2.5 nis_clone_result F
+GLIBC_2.2.5 nis_creategroup F
+GLIBC_2.2.5 nis_destroy_object F
+GLIBC_2.2.5 nis_destroygroup F
+GLIBC_2.2.5 nis_dir_cmp F
+GLIBC_2.2.5 nis_domain_of F
+GLIBC_2.2.5 nis_domain_of_r F
+GLIBC_2.2.5 nis_first_entry F
+GLIBC_2.2.5 nis_free_directory F
+GLIBC_2.2.5 nis_free_object F
+GLIBC_2.2.5 nis_free_request F
+GLIBC_2.2.5 nis_freenames F
+GLIBC_2.2.5 nis_freeresult F
+GLIBC_2.2.5 nis_freeservlist F
+GLIBC_2.2.5 nis_freetags F
+GLIBC_2.2.5 nis_getnames F
+GLIBC_2.2.5 nis_getservlist F
+GLIBC_2.2.5 nis_ismember F
+GLIBC_2.2.5 nis_leaf_of F
+GLIBC_2.2.5 nis_leaf_of_r F
+GLIBC_2.2.5 nis_lerror F
+GLIBC_2.2.5 nis_list F
+GLIBC_2.2.5 nis_local_directory F
+GLIBC_2.2.5 nis_local_group F
+GLIBC_2.2.5 nis_local_host F
+GLIBC_2.2.5 nis_local_principal F
+GLIBC_2.2.5 nis_lookup F
+GLIBC_2.2.5 nis_mkdir F
+GLIBC_2.2.5 nis_modify F
+GLIBC_2.2.5 nis_modify_entry F
+GLIBC_2.2.5 nis_name_of F
+GLIBC_2.2.5 nis_name_of_r F
+GLIBC_2.2.5 nis_next_entry F
+GLIBC_2.2.5 nis_perror F
+GLIBC_2.2.5 nis_ping F
+GLIBC_2.2.5 nis_print_directory F
+GLIBC_2.2.5 nis_print_entry F
+GLIBC_2.2.5 nis_print_group F
+GLIBC_2.2.5 nis_print_group_entry F
+GLIBC_2.2.5 nis_print_link F
+GLIBC_2.2.5 nis_print_object F
+GLIBC_2.2.5 nis_print_result F
+GLIBC_2.2.5 nis_print_rights F
+GLIBC_2.2.5 nis_print_table F
+GLIBC_2.2.5 nis_read_obj F
+GLIBC_2.2.5 nis_remove F
+GLIBC_2.2.5 nis_remove_entry F
+GLIBC_2.2.5 nis_removemember F
+GLIBC_2.2.5 nis_rmdir F
+GLIBC_2.2.5 nis_servstate F
+GLIBC_2.2.5 nis_sperrno F
+GLIBC_2.2.5 nis_sperror F
+GLIBC_2.2.5 nis_sperror_r F
+GLIBC_2.2.5 nis_stats F
+GLIBC_2.2.5 nis_verifygroup F
+GLIBC_2.2.5 nis_write_obj F
+GLIBC_2.2.5 readColdStartFile F
+GLIBC_2.2.5 writeColdStartFile F
+GLIBC_2.2.5 xdr_cback_data F
+GLIBC_2.2.5 xdr_domainname F
+GLIBC_2.2.5 xdr_keydat F
+GLIBC_2.2.5 xdr_mapname F
+GLIBC_2.2.5 xdr_obj_p F
+GLIBC_2.2.5 xdr_peername F
+GLIBC_2.2.5 xdr_valdat F
+GLIBC_2.2.5 xdr_yp_buf F
+GLIBC_2.2.5 xdr_ypall F
+GLIBC_2.2.5 xdr_ypbind_binding F
+GLIBC_2.2.5 xdr_ypbind_resp F
+GLIBC_2.2.5 xdr_ypbind_resptype F
+GLIBC_2.2.5 xdr_ypbind_setdom F
+GLIBC_2.2.5 xdr_ypdelete_args F
+GLIBC_2.2.5 xdr_ypmap_parms F
+GLIBC_2.2.5 xdr_ypmaplist F
+GLIBC_2.2.5 xdr_yppush_status F
+GLIBC_2.2.5 xdr_yppushresp_xfr F
+GLIBC_2.2.5 xdr_ypreq_key F
+GLIBC_2.2.5 xdr_ypreq_nokey F
+GLIBC_2.2.5 xdr_ypreq_xfr F
+GLIBC_2.2.5 xdr_ypresp_all F
+GLIBC_2.2.5 xdr_ypresp_key_val F
+GLIBC_2.2.5 xdr_ypresp_maplist F
+GLIBC_2.2.5 xdr_ypresp_master F
+GLIBC_2.2.5 xdr_ypresp_order F
+GLIBC_2.2.5 xdr_ypresp_val F
+GLIBC_2.2.5 xdr_ypresp_xfr F
+GLIBC_2.2.5 xdr_ypstat F
+GLIBC_2.2.5 xdr_ypupdate_args F
+GLIBC_2.2.5 xdr_ypxfrstat F
+GLIBC_2.2.5 yp_all F
+GLIBC_2.2.5 yp_bind F
+GLIBC_2.2.5 yp_first F
+GLIBC_2.2.5 yp_get_default_domain F
+GLIBC_2.2.5 yp_maplist F
+GLIBC_2.2.5 yp_master F
+GLIBC_2.2.5 yp_match F
+GLIBC_2.2.5 yp_next F
+GLIBC_2.2.5 yp_order F
+GLIBC_2.2.5 yp_unbind F
+GLIBC_2.2.5 yp_update F
+GLIBC_2.2.5 ypbinderr_string F
+GLIBC_2.2.5 yperr_string F
+GLIBC_2.2.5 ypprot_err F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
new file mode 100644
index 0000000000..85365c057c
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
@@ -0,0 +1,244 @@
+GLIBC_2.11 GLIBC_2.11 A
+GLIBC_2.11 pthread_sigqueue F
+GLIBC_2.12 GLIBC_2.12 A
+GLIBC_2.12 pthread_getname_np F
+GLIBC_2.12 pthread_mutex_consistent F
+GLIBC_2.12 pthread_mutexattr_getrobust F
+GLIBC_2.12 pthread_mutexattr_setrobust F
+GLIBC_2.12 pthread_setname_np F
+GLIBC_2.18 GLIBC_2.18 A
+GLIBC_2.18 pthread_getattr_default_np F
+GLIBC_2.18 pthread_setattr_default_np F
+GLIBC_2.2.5 GLIBC_2.2.5 A
+GLIBC_2.2.5 _IO_flockfile F
+GLIBC_2.2.5 _IO_ftrylockfile F
+GLIBC_2.2.5 _IO_funlockfile F
+GLIBC_2.2.5 __close F
+GLIBC_2.2.5 __connect F
+GLIBC_2.2.5 __errno_location F
+GLIBC_2.2.5 __fcntl F
+GLIBC_2.2.5 __fork F
+GLIBC_2.2.5 __h_errno_location F
+GLIBC_2.2.5 __libc_allocate_rtsig F
+GLIBC_2.2.5 __libc_current_sigrtmax F
+GLIBC_2.2.5 __libc_current_sigrtmin F
+GLIBC_2.2.5 __lseek F
+GLIBC_2.2.5 __open F
+GLIBC_2.2.5 __open64 F
+GLIBC_2.2.5 __pread64 F
+GLIBC_2.2.5 __pthread_getspecific F
+GLIBC_2.2.5 __pthread_key_create F
+GLIBC_2.2.5 __pthread_mutex_destroy F
+GLIBC_2.2.5 __pthread_mutex_init F
+GLIBC_2.2.5 __pthread_mutex_lock F
+GLIBC_2.2.5 __pthread_mutex_trylock F
+GLIBC_2.2.5 __pthread_mutex_unlock F
+GLIBC_2.2.5 __pthread_mutexattr_destroy F
+GLIBC_2.2.5 __pthread_mutexattr_init F
+GLIBC_2.2.5 __pthread_mutexattr_settype F
+GLIBC_2.2.5 __pthread_once F
+GLIBC_2.2.5 __pthread_rwlock_destroy F
+GLIBC_2.2.5 __pthread_rwlock_init F
+GLIBC_2.2.5 __pthread_rwlock_rdlock F
+GLIBC_2.2.5 __pthread_rwlock_tryrdlock F
+GLIBC_2.2.5 __pthread_rwlock_trywrlock F
+GLIBC_2.2.5 __pthread_rwlock_unlock F
+GLIBC_2.2.5 __pthread_rwlock_wrlock F
+GLIBC_2.2.5 __pthread_setspecific F
+GLIBC_2.2.5 __pwrite64 F
+GLIBC_2.2.5 __read F
+GLIBC_2.2.5 __res_state F
+GLIBC_2.2.5 __send F
+GLIBC_2.2.5 __sigaction F
+GLIBC_2.2.5 __vfork F
+GLIBC_2.2.5 __wait F
+GLIBC_2.2.5 __write F
+GLIBC_2.2.5 _pthread_cleanup_pop F
+GLIBC_2.2.5 _pthread_cleanup_pop_restore F
+GLIBC_2.2.5 _pthread_cleanup_push F
+GLIBC_2.2.5 _pthread_cleanup_push_defer F
+GLIBC_2.2.5 accept F
+GLIBC_2.2.5 close F
+GLIBC_2.2.5 connect F
+GLIBC_2.2.5 fcntl F
+GLIBC_2.2.5 flockfile F
+GLIBC_2.2.5 fork F
+GLIBC_2.2.5 fsync F
+GLIBC_2.2.5 ftrylockfile F
+GLIBC_2.2.5 funlockfile F
+GLIBC_2.2.5 longjmp F
+GLIBC_2.2.5 lseek F
+GLIBC_2.2.5 lseek64 F
+GLIBC_2.2.5 msync F
+GLIBC_2.2.5 nanosleep F
+GLIBC_2.2.5 open F
+GLIBC_2.2.5 open64 F
+GLIBC_2.2.5 pause F
+GLIBC_2.2.5 pread F
+GLIBC_2.2.5 pread64 F
+GLIBC_2.2.5 pthread_atfork F
+GLIBC_2.2.5 pthread_attr_destroy F
+GLIBC_2.2.5 pthread_attr_getdetachstate F
+GLIBC_2.2.5 pthread_attr_getguardsize F
+GLIBC_2.2.5 pthread_attr_getinheritsched F
+GLIBC_2.2.5 pthread_attr_getschedparam F
+GLIBC_2.2.5 pthread_attr_getschedpolicy F
+GLIBC_2.2.5 pthread_attr_getscope F
+GLIBC_2.2.5 pthread_attr_getstack F
+GLIBC_2.2.5 pthread_attr_getstackaddr F
+GLIBC_2.2.5 pthread_attr_getstacksize F
+GLIBC_2.2.5 pthread_attr_init F
+GLIBC_2.2.5 pthread_attr_setdetachstate F
+GLIBC_2.2.5 pthread_attr_setguardsize F
+GLIBC_2.2.5 pthread_attr_setinheritsched F
+GLIBC_2.2.5 pthread_attr_setschedparam F
+GLIBC_2.2.5 pthread_attr_setschedpolicy F
+GLIBC_2.2.5 pthread_attr_setscope F
+GLIBC_2.2.5 pthread_attr_setstack F
+GLIBC_2.2.5 pthread_attr_setstackaddr F
+GLIBC_2.2.5 pthread_attr_setstacksize F
+GLIBC_2.2.5 pthread_barrier_destroy F
+GLIBC_2.2.5 pthread_barrier_init F
+GLIBC_2.2.5 pthread_barrier_wait F
+GLIBC_2.2.5 pthread_barrierattr_destroy F
+GLIBC_2.2.5 pthread_barrierattr_init F
+GLIBC_2.2.5 pthread_barrierattr_setpshared F
+GLIBC_2.2.5 pthread_cancel F
+GLIBC_2.2.5 pthread_cond_broadcast F
+GLIBC_2.2.5 pthread_cond_destroy F
+GLIBC_2.2.5 pthread_cond_init F
+GLIBC_2.2.5 pthread_cond_signal F
+GLIBC_2.2.5 pthread_cond_timedwait F
+GLIBC_2.2.5 pthread_cond_wait F
+GLIBC_2.2.5 pthread_condattr_destroy F
+GLIBC_2.2.5 pthread_condattr_getpshared F
+GLIBC_2.2.5 pthread_condattr_init F
+GLIBC_2.2.5 pthread_condattr_setpshared F
+GLIBC_2.2.5 pthread_create F
+GLIBC_2.2.5 pthread_detach F
+GLIBC_2.2.5 pthread_equal F
+GLIBC_2.2.5 pthread_exit F
+GLIBC_2.2.5 pthread_getattr_np F
+GLIBC_2.2.5 pthread_getconcurrency F
+GLIBC_2.2.5 pthread_getcpuclockid F
+GLIBC_2.2.5 pthread_getschedparam F
+GLIBC_2.2.5 pthread_getspecific F
+GLIBC_2.2.5 pthread_join F
+GLIBC_2.2.5 pthread_key_create F
+GLIBC_2.2.5 pthread_key_delete F
+GLIBC_2.2.5 pthread_kill F
+GLIBC_2.2.5 pthread_kill_other_threads_np F
+GLIBC_2.2.5 pthread_mutex_destroy F
+GLIBC_2.2.5 pthread_mutex_init F
+GLIBC_2.2.5 pthread_mutex_lock F
+GLIBC_2.2.5 pthread_mutex_timedlock F
+GLIBC_2.2.5 pthread_mutex_trylock F
+GLIBC_2.2.5 pthread_mutex_unlock F
+GLIBC_2.2.5 pthread_mutexattr_destroy F
+GLIBC_2.2.5 pthread_mutexattr_getkind_np F
+GLIBC_2.2.5 pthread_mutexattr_getpshared F
+GLIBC_2.2.5 pthread_mutexattr_gettype F
+GLIBC_2.2.5 pthread_mutexattr_init F
+GLIBC_2.2.5 pthread_mutexattr_setkind_np F
+GLIBC_2.2.5 pthread_mutexattr_setpshared F
+GLIBC_2.2.5 pthread_mutexattr_settype F
+GLIBC_2.2.5 pthread_once F
+GLIBC_2.2.5 pthread_rwlock_destroy F
+GLIBC_2.2.5 pthread_rwlock_init F
+GLIBC_2.2.5 pthread_rwlock_rdlock F
+GLIBC_2.2.5 pthread_rwlock_timedrdlock F
+GLIBC_2.2.5 pthread_rwlock_timedwrlock F
+GLIBC_2.2.5 pthread_rwlock_tryrdlock F
+GLIBC_2.2.5 pthread_rwlock_trywrlock F
+GLIBC_2.2.5 pthread_rwlock_unlock F
+GLIBC_2.2.5 pthread_rwlock_wrlock F
+GLIBC_2.2.5 pthread_rwlockattr_destroy F
+GLIBC_2.2.5 pthread_rwlockattr_getkind_np F
+GLIBC_2.2.5 pthread_rwlockattr_getpshared F
+GLIBC_2.2.5 pthread_rwlockattr_init F
+GLIBC_2.2.5 pthread_rwlockattr_setkind_np F
+GLIBC_2.2.5 pthread_rwlockattr_setpshared F
+GLIBC_2.2.5 pthread_self F
+GLIBC_2.2.5 pthread_setcancelstate F
+GLIBC_2.2.5 pthread_setcanceltype F
+GLIBC_2.2.5 pthread_setconcurrency F
+GLIBC_2.2.5 pthread_setschedparam F
+GLIBC_2.2.5 pthread_setspecific F
+GLIBC_2.2.5 pthread_sigmask F
+GLIBC_2.2.5 pthread_spin_destroy F
+GLIBC_2.2.5 pthread_spin_init F
+GLIBC_2.2.5 pthread_spin_lock F
+GLIBC_2.2.5 pthread_spin_trylock F
+GLIBC_2.2.5 pthread_spin_unlock F
+GLIBC_2.2.5 pthread_testcancel F
+GLIBC_2.2.5 pthread_yield F
+GLIBC_2.2.5 pwrite F
+GLIBC_2.2.5 pwrite64 F
+GLIBC_2.2.5 raise F
+GLIBC_2.2.5 read F
+GLIBC_2.2.5 recv F
+GLIBC_2.2.5 recvfrom F
+GLIBC_2.2.5 recvmsg F
+GLIBC_2.2.5 sem_close F
+GLIBC_2.2.5 sem_destroy F
+GLIBC_2.2.5 sem_getvalue F
+GLIBC_2.2.5 sem_init F
+GLIBC_2.2.5 sem_open F
+GLIBC_2.2.5 sem_post F
+GLIBC_2.2.5 sem_timedwait F
+GLIBC_2.2.5 sem_trywait F
+GLIBC_2.2.5 sem_unlink F
+GLIBC_2.2.5 sem_wait F
+GLIBC_2.2.5 send F
+GLIBC_2.2.5 sendmsg F
+GLIBC_2.2.5 sendto F
+GLIBC_2.2.5 sigaction F
+GLIBC_2.2.5 siglongjmp F
+GLIBC_2.2.5 sigwait F
+GLIBC_2.2.5 system F
+GLIBC_2.2.5 tcdrain F
+GLIBC_2.2.5 vfork F
+GLIBC_2.2.5 wait F
+GLIBC_2.2.5 waitpid F
+GLIBC_2.2.5 write 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/x86_64/64/libresolv.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/64/libresolv.abilist
new file mode 100644
index 0000000000..a111ccc488
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/64/libresolv.abilist
@@ -0,0 +1,94 @@
+GLIBC_2.2.5 GLIBC_2.2.5 A
+GLIBC_2.2.5 __b64_ntop F
+GLIBC_2.2.5 __b64_pton F
+GLIBC_2.2.5 __dn_comp F
+GLIBC_2.2.5 __dn_count_labels F
+GLIBC_2.2.5 __dn_expand F
+GLIBC_2.2.5 __dn_skipname F
+GLIBC_2.2.5 __fp_nquery F
+GLIBC_2.2.5 __fp_query F
+GLIBC_2.2.5 __fp_resstat F
+GLIBC_2.2.5 __hostalias F
+GLIBC_2.2.5 __loc_aton F
+GLIBC_2.2.5 __loc_ntoa F
+GLIBC_2.2.5 __p_cdname F
+GLIBC_2.2.5 __p_cdnname F
+GLIBC_2.2.5 __p_class F
+GLIBC_2.2.5 __p_class_syms D 0xa8
+GLIBC_2.2.5 __p_fqname F
+GLIBC_2.2.5 __p_fqnname F
+GLIBC_2.2.5 __p_option F
+GLIBC_2.2.5 __p_query F
+GLIBC_2.2.5 __p_secstodate F
+GLIBC_2.2.5 __p_time F
+GLIBC_2.2.5 __p_type F
+GLIBC_2.2.5 __p_type_syms D 0x450
+GLIBC_2.2.5 __putlong F
+GLIBC_2.2.5 __putshort F
+GLIBC_2.2.5 __res_close F
+GLIBC_2.2.5 __res_dnok F
+GLIBC_2.2.5 __res_hnok F
+GLIBC_2.2.5 __res_hostalias F
+GLIBC_2.2.5 __res_isourserver F
+GLIBC_2.2.5 __res_mailok F
+GLIBC_2.2.5 __res_mkquery F
+GLIBC_2.2.5 __res_nameinquery F
+GLIBC_2.2.5 __res_nmkquery F
+GLIBC_2.2.5 __res_nquery F
+GLIBC_2.2.5 __res_nquerydomain F
+GLIBC_2.2.5 __res_nsearch F
+GLIBC_2.2.5 __res_nsend F
+GLIBC_2.2.5 __res_ownok F
+GLIBC_2.2.5 __res_queriesmatch F
+GLIBC_2.2.5 __res_query F
+GLIBC_2.2.5 __res_querydomain F
+GLIBC_2.2.5 __res_search F
+GLIBC_2.2.5 __res_send F
+GLIBC_2.2.5 __sym_ntop F
+GLIBC_2.2.5 __sym_ntos F
+GLIBC_2.2.5 __sym_ston F
+GLIBC_2.2.5 _gethtbyaddr F
+GLIBC_2.2.5 _gethtbyname F
+GLIBC_2.2.5 _gethtbyname2 F
+GLIBC_2.2.5 _gethtent F
+GLIBC_2.2.5 _getlong F
+GLIBC_2.2.5 _getshort F
+GLIBC_2.2.5 _res_opcodes D 0x80
+GLIBC_2.2.5 _sethtent F
+GLIBC_2.2.5 inet_net_ntop F
+GLIBC_2.2.5 inet_net_pton F
+GLIBC_2.2.5 inet_neta F
+GLIBC_2.2.5 res_gethostbyaddr F
+GLIBC_2.2.5 res_gethostbyname F
+GLIBC_2.2.5 res_gethostbyname2 F
+GLIBC_2.2.5 res_send_setqhook F
+GLIBC_2.2.5 res_send_setrhook 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/x86_64/64/librt.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist
new file mode 100644
index 0000000000..d626758434
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/64/librt.abilist
@@ -0,0 +1,52 @@
+GLIBC_2.2.5 GLIBC_2.2.5 A
+GLIBC_2.2.5 aio_cancel F
+GLIBC_2.2.5 aio_cancel64 F
+GLIBC_2.2.5 aio_error F
+GLIBC_2.2.5 aio_error64 F
+GLIBC_2.2.5 aio_fsync F
+GLIBC_2.2.5 aio_fsync64 F
+GLIBC_2.2.5 aio_init F
+GLIBC_2.2.5 aio_read F
+GLIBC_2.2.5 aio_read64 F
+GLIBC_2.2.5 aio_return F
+GLIBC_2.2.5 aio_return64 F
+GLIBC_2.2.5 aio_suspend F
+GLIBC_2.2.5 aio_suspend64 F
+GLIBC_2.2.5 aio_write F
+GLIBC_2.2.5 aio_write64 F
+GLIBC_2.2.5 clock_getcpuclockid F
+GLIBC_2.2.5 clock_getres F
+GLIBC_2.2.5 clock_gettime F
+GLIBC_2.2.5 clock_nanosleep F
+GLIBC_2.2.5 clock_settime F
+GLIBC_2.2.5 lio_listio F
+GLIBC_2.2.5 lio_listio64 F
+GLIBC_2.2.5 shm_open F
+GLIBC_2.2.5 shm_unlink F
+GLIBC_2.2.5 timer_create F
+GLIBC_2.2.5 timer_delete F
+GLIBC_2.2.5 timer_getoverrun F
+GLIBC_2.2.5 timer_gettime F
+GLIBC_2.2.5 timer_settime F
+GLIBC_2.3.3 GLIBC_2.3.3 A
+GLIBC_2.3.3 timer_create F
+GLIBC_2.3.3 timer_delete F
+GLIBC_2.3.3 timer_getoverrun F
+GLIBC_2.3.3 timer_gettime F
+GLIBC_2.3.3 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/x86_64/64/libthread_db.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/64/libthread_db.abilist
new file mode 100644
index 0000000000..291a19132d
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/64/libthread_db.abilist
@@ -0,0 +1,43 @@
+GLIBC_2.2.5 GLIBC_2.2.5 A
+GLIBC_2.2.5 td_init F
+GLIBC_2.2.5 td_log F
+GLIBC_2.2.5 td_symbol_list F
+GLIBC_2.2.5 td_ta_clear_event F
+GLIBC_2.2.5 td_ta_delete F
+GLIBC_2.2.5 td_ta_enable_stats F
+GLIBC_2.2.5 td_ta_event_addr F
+GLIBC_2.2.5 td_ta_event_getmsg F
+GLIBC_2.2.5 td_ta_get_nthreads F
+GLIBC_2.2.5 td_ta_get_ph F
+GLIBC_2.2.5 td_ta_get_stats F
+GLIBC_2.2.5 td_ta_map_id2thr F
+GLIBC_2.2.5 td_ta_map_lwp2thr F
+GLIBC_2.2.5 td_ta_new F
+GLIBC_2.2.5 td_ta_reset_stats F
+GLIBC_2.2.5 td_ta_set_event F
+GLIBC_2.2.5 td_ta_setconcurrency F
+GLIBC_2.2.5 td_ta_thr_iter F
+GLIBC_2.2.5 td_ta_tsd_iter F
+GLIBC_2.2.5 td_thr_clear_event F
+GLIBC_2.2.5 td_thr_dbresume F
+GLIBC_2.2.5 td_thr_dbsuspend F
+GLIBC_2.2.5 td_thr_event_enable F
+GLIBC_2.2.5 td_thr_event_getmsg F
+GLIBC_2.2.5 td_thr_get_info F
+GLIBC_2.2.5 td_thr_getfpregs F
+GLIBC_2.2.5 td_thr_getgregs F
+GLIBC_2.2.5 td_thr_getxregs F
+GLIBC_2.2.5 td_thr_getxregsize F
+GLIBC_2.2.5 td_thr_set_event F
+GLIBC_2.2.5 td_thr_setfpregs F
+GLIBC_2.2.5 td_thr_setgregs F
+GLIBC_2.2.5 td_thr_setprio F
+GLIBC_2.2.5 td_thr_setsigpending F
+GLIBC_2.2.5 td_thr_setxregs F
+GLIBC_2.2.5 td_thr_sigsetmask F
+GLIBC_2.2.5 td_thr_tsd F
+GLIBC_2.2.5 td_thr_validate 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/x86_64/64/libutil.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/64/libutil.abilist
new file mode 100644
index 0000000000..98d06aa9f6
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/64/libutil.abilist
@@ -0,0 +1,7 @@
+GLIBC_2.2.5 GLIBC_2.2.5 A
+GLIBC_2.2.5 forkpty F
+GLIBC_2.2.5 login F
+GLIBC_2.2.5 login_tty F
+GLIBC_2.2.5 logout F
+GLIBC_2.2.5 logwtmp F
+GLIBC_2.2.5 openpty F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/64/mmap_internal.h b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/64/mmap_internal.h
new file mode 100644
index 0000000000..06254efb94
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/64/mmap_internal.h
@@ -0,0 +1,42 @@
+/* Linux mmap system call. x86-64 version.
+ Copyright (C) 2015-2017 Free Software Foundation, Inc.
+
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation; either version 2.1 of the
+ License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef MMAP_X86_64_INTERNAL_H
+#define MMAP_X86_64_INTERNAL_H
+
+#include <ldsodefs.h>
+
+/* If the Prefer_MAP_32BIT_EXEC bit is set, try to map executable pages
+ with MAP_32BIT first. */
+#define MMAP_PREPARE(addr, len, prot, flags, fd, offset) \
+ if ((addr) == NULL \
+ && ((prot) & PROT_EXEC) != 0 \
+ && HAS_ARCH_FEATURE (Prefer_MAP_32BIT_EXEC)) \
+ { \
+ void *ret = (void*) INLINE_SYSCALL_CALL (mmap, (addr), (len), \
+ (prot), \
+ (flags) | MAP_32BIT, \
+ (fd), (offset)); \
+ if (ret != MAP_FAILED) \
+ return ret; \
+ }
+
+#include_next <mmap_internal.h>
+
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/64/shlib-versions b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/64/shlib-versions
new file mode 100644
index 0000000000..7f87a8bd17
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/64/shlib-versions
@@ -0,0 +1,4 @@
+# DEFAULT Earliest symbol set
+# --------------- ------------------------------
+DEFAULT GLIBC_2.2.5
+ld=ld-linux-x86-64.so.2
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/Implies b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/Implies
new file mode 100644
index 0000000000..c9be3c4711
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/Implies
@@ -0,0 +1,3 @@
+unix/sysv/linux/x86
+unix/sysv/linux/wordsize-64
+x86_64/nptl
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/Makefile b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/Makefile
new file mode 100644
index 0000000000..9b82155393
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/Makefile
@@ -0,0 +1,15 @@
+ifeq ($(subdir),misc)
+sysdep_routines += ioperm iopl
+endif
+
+ifeq ($(subdir),stdlib)
+sysdep_routines += __start_context
+endif
+
+ifeq ($(subdir),csu)
+gen-as-const-headers += ucontext_i.sym
+endif
+
+ifeq ($(subdir),misc)
+gen-as-const-headers += sigaltstack-offsets.sym
+endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/Versions b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/Versions
new file mode 100644
index 0000000000..2a7ed280fd
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/Versions
@@ -0,0 +1,17 @@
+libc {
+ GLIBC_2.2.5 {
+ arch_prctl; __arch_prctl;
+
+ ioperm; iopl;
+
+ modify_ldt;
+ }
+}
+
+librt {
+ GLIBC_2.3.3 {
+ # Changed timer_t.
+ timer_create; timer_delete; timer_getoverrun; timer_gettime;
+ timer_settime;
+ }
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/____longjmp_chk.S b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/____longjmp_chk.S
new file mode 100644
index 0000000000..2955c56a56
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/____longjmp_chk.S
@@ -0,0 +1,131 @@
+/* Copyright (C) 2001-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#include <jmpbuf-offsets.h>
+#include <asm-syntax.h>
+#include <stap-probe.h>
+
+#include <sigaltstack-offsets.h>
+
+ .section .rodata.str1.1,"aMS",@progbits,1
+ .type longjmp_msg,@object
+longjmp_msg:
+ .string "longjmp causes uninitialized stack frame"
+ .size longjmp_msg, .-longjmp_msg
+
+
+//#define __longjmp ____longjmp_chk
+
+#ifdef PIC
+# define CALL_FAIL sub $8, %RSP_LP; \
+ cfi_remember_state; \
+ cfi_def_cfa_offset(16); \
+ lea longjmp_msg(%rip), %RDI_LP; \
+ call HIDDEN_JUMPTARGET(__fortify_fail); \
+ nop; \
+ cfi_restore_state
+#else
+# define CALL_FAIL sub $8, %RSP_LP; \
+ cfi_remember_state; \
+ cfi_def_cfa_offset(16); \
+ mov $longjmp_msg, %RDI_LP; \
+ call HIDDEN_JUMPTARGET(__fortify_fail); \
+ nop; \
+ cfi_restore_state
+#endif
+
+/* Jump to the position specified by ENV, causing the
+ setjmp call there to return VAL, or 1 if VAL is 0.
+ void __longjmp (__jmp_buf env, int val). */
+ .text
+ENTRY(____longjmp_chk)
+ /* Restore registers. */
+ mov (JB_RSP*8)(%rdi), %R8_LP
+ mov (JB_RBP*8)(%rdi),%R9_LP
+ mov (JB_PC*8)(%rdi), %RDX_LP
+#ifdef PTR_DEMANGLE
+ PTR_DEMANGLE (%R8_LP)
+ PTR_DEMANGLE (%R9_LP)
+ PTR_DEMANGLE (%RDX_LP)
+# ifdef __ILP32__
+ /* We ignored the high bits of the %rbp value because only the low
+ bits are mangled. But we cannot presume that %rbp is being used
+ as a pointer and truncate it, so recover the high bits. */
+ movl (JB_RBP*8 + 4)(%rdi), %eax
+ shlq $32, %rax
+ orq %rax, %r9
+# endif
+#endif
+
+ cmp %R8_LP, %RSP_LP
+ jbe .Lok
+
+ /* Save function parameters. */
+ movq %rdi, %r10
+ cfi_register (%rdi, %r10)
+ movl %esi, %ebx
+ cfi_register (%rsi, %rbx)
+
+ xorl %edi, %edi
+ lea -sizeSS(%rsp), %RSI_LP
+ movl $__NR_sigaltstack, %eax
+ syscall
+ /* Without working sigaltstack we cannot perform the test. */
+ testl %eax, %eax
+ jne .Lok2
+ testl $1, (-sizeSS + oSS_FLAGS)(%rsp)
+ jz .Lfail
+
+ mov (-sizeSS + oSS_SP)(%rsp), %RAX_LP
+ add (-sizeSS + oSS_SIZE)(%rsp), %RAX_LP
+ sub %R8_LP, %RAX_LP
+ cmp (-sizeSS + oSS_SIZE)(%rsp), %RAX_LP
+ jae .Lok2
+
+.Lfail: CALL_FAIL
+
+.Lok2: movq %r10, %rdi
+ cfi_restore (%rdi)
+ movl %ebx, %esi
+ cfi_restore (%rsi)
+
+.Lok:
+ LIBC_PROBE (longjmp, 3, LP_SIZE@%RDI_LP, -4@%esi, LP_SIZE@%RDX_LP)
+ /* We add unwind information for the target here. */
+ cfi_def_cfa(%rdi, 0)
+ cfi_register(%rsp,%r8)
+ cfi_register(%rbp,%r9)
+ cfi_register(%rip,%rdx)
+ cfi_offset(%rbx,JB_RBX*8)
+ cfi_offset(%r12,JB_R12*8)
+ cfi_offset(%r13,JB_R13*8)
+ cfi_offset(%r14,JB_R14*8)
+ cfi_offset(%r15,JB_R15*8)
+ movq (JB_RBX*8)(%rdi), %rbx
+ movq (JB_R12*8)(%rdi), %r12
+ movq (JB_R13*8)(%rdi), %r13
+ movq (JB_R14*8)(%rdi), %r14
+ movq (JB_R15*8)(%rdi), %r15
+ /* Set return value for setjmp. */
+ movl %esi, %eax
+ mov %R8_LP, %RSP_LP
+ movq %r9,%rbp
+ LIBC_PROBE (longjmp_target, 3,
+ LP_SIZE@%RDI_LP, -4@%eax, LP_SIZE@%RDX_LP)
+ jmpq *%rdx
+END (____longjmp_chk)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/__start_context.S b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/__start_context.S
new file mode 100644
index 0000000000..d05ddc6a01
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/__start_context.S
@@ -0,0 +1,49 @@
+/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Andreas Jaeger <aj@suse.de>, 2002.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+
+/* This is the helper code which gets called if a function which is
+ registered with 'makecontext' returns. In this case we have to
+ install the context listed in the uc_link element of the context
+ 'makecontext' manipulated at the time of the 'makecontext' call.
+ If the pointer is NULL the process must terminate. */
+
+
+ENTRY(__start_context)
+ /* This removes the parameters passed to the function given to
+ 'makecontext' from the stack. RBX contains the address
+ on the stack pointer for the next context. */
+ movq %rbx, %rsp
+
+ /* Don't use pop here so that stack is aligned to 16 bytes. */
+ movq (%rsp), %rdi /* This is the next context. */
+ testq %rdi, %rdi
+ je 2f /* If it is zero exit. */
+
+ call __setcontext
+ /* If this returns (which can happen if the syscall fails) we'll
+ exit the program with the return error value (-1). */
+ movq %rax,%rdi
+
+2:
+ call HIDDEN_JUMPTARGET(exit)
+ /* The 'exit' call should never return. In case it does cause
+ the process to terminate. */
+ hlt
+END(__start_context)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/arch-fork.h b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/arch-fork.h
new file mode 100644
index 0000000000..29afc00583
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/arch-fork.h
@@ -0,0 +1,27 @@
+/* Internal definitions for thread-friendly fork implementation. Linux/x86_64.
+ Copyright (C) 2003-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@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 <sched.h>
+#include <sysdep.h>
+#include <tls.h>
+
+#define ARCH_FORK() \
+ INLINE_SYSCALL (clone, 4, \
+ CLONE_CHILD_SETTID | CLONE_CHILD_CLEARTID | SIGCHLD, 0, \
+ NULL, &THREAD_SELF->tid)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/brk.c b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/brk.c
new file mode 100644
index 0000000000..7f6ae7a95d
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/brk.c
@@ -0,0 +1,41 @@
+/* brk system call for Linux/x86_64.
+ Copyright (C) 1995-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <unistd.h>
+#include <sysdep.h>
+
+/* This must be initialized data because commons can't have aliases. */
+void *__curbrk = 0;
+
+int
+__brk (void *addr)
+{
+ void *newbrk;
+
+ __curbrk = newbrk = (void *) INLINE_SYSCALL (brk, 1, addr);
+
+ if (newbrk < addr)
+ {
+ __set_errno (ENOMEM);
+ return -1;
+ }
+
+ return 0;
+}
+weak_alias (__brk, brk)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/cancellation.S b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/cancellation.S
new file mode 100644
index 0000000000..ed804df138
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/cancellation.S
@@ -0,0 +1,115 @@
+/* Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@redhat.com>, 2009.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#include <tcb-offsets.h>
+#include <kernel-features.h>
+#include "lowlevellock.h"
+
+#define PTHREAD_UNWIND JUMPTARGET(__pthread_unwind)
+#if IS_IN (libpthread)
+# if defined SHARED && !defined NO_HIDDEN
+# undef PTHREAD_UNWIND
+# define PTHREAD_UNWIND __GI___pthread_unwind
+# endif
+#else
+# ifndef SHARED
+ .weak __pthread_unwind
+# endif
+#endif
+
+
+#ifdef __ASSUME_PRIVATE_FUTEX
+# define LOAD_PRIVATE_FUTEX_WAIT(reg) \
+ movl $(FUTEX_WAIT | FUTEX_PRIVATE_FLAG), reg
+#else
+# if FUTEX_WAIT == 0
+# define LOAD_PRIVATE_FUTEX_WAIT(reg) \
+ movl %fs:PRIVATE_FUTEX, reg
+# else
+# define LOAD_PRIVATE_FUTEX_WAIT(reg) \
+ movl %fs:PRIVATE_FUTEX, reg ; \
+ orl $FUTEX_WAIT, reg
+# endif
+#endif
+
+/* It is crucial that the functions in this file don't modify registers
+ other than %rax and %r11. The syscall wrapper code depends on this
+ because it doesn't explicitly save the other registers which hold
+ relevant values. */
+ .text
+
+ .hidden __pthread_enable_asynccancel
+ENTRY(__pthread_enable_asynccancel)
+ movl %fs:CANCELHANDLING, %eax
+2: movl %eax, %r11d
+ orl $TCB_CANCELTYPE_BITMASK, %r11d
+ cmpl %eax, %r11d
+ je 1f
+
+ lock
+ cmpxchgl %r11d, %fs:CANCELHANDLING
+ jnz 2b
+
+ andl $(TCB_CANCELSTATE_BITMASK|TCB_CANCELTYPE_BITMASK|TCB_CANCELED_BITMASK|TCB_EXITING_BITMASK|TCB_CANCEL_RESTMASK|TCB_TERMINATED_BITMASK), %r11d
+ cmpl $(TCB_CANCELTYPE_BITMASK|TCB_CANCELED_BITMASK), %r11d
+ je 3f
+
+1: ret
+
+3: subq $8, %rsp
+ cfi_adjust_cfa_offset(8)
+ LP_OP(mov) $TCB_PTHREAD_CANCELED, %fs:RESULT
+ lock
+ orl $TCB_EXITING_BITMASK, %fs:CANCELHANDLING
+ mov %fs:CLEANUP_JMP_BUF, %RDI_LP
+ call PTHREAD_UNWIND
+ hlt
+END(__pthread_enable_asynccancel)
+
+
+ .hidden __pthread_disable_asynccancel
+ENTRY(__pthread_disable_asynccancel)
+ testl $TCB_CANCELTYPE_BITMASK, %edi
+ jnz 1f
+
+ movl %fs:CANCELHANDLING, %eax
+2: movl %eax, %r11d
+ andl $~TCB_CANCELTYPE_BITMASK, %r11d
+ lock
+ cmpxchgl %r11d, %fs:CANCELHANDLING
+ jnz 2b
+
+ movl %r11d, %eax
+3: andl $(TCB_CANCELING_BITMASK|TCB_CANCELED_BITMASK), %eax
+ cmpl $TCB_CANCELING_BITMASK, %eax
+ je 4f
+1: ret
+
+ /* Performance doesn't matter in this loop. We will
+ delay until the thread is canceled. And we will unlikely
+ enter the loop twice. */
+4: mov %fs:0, %RDI_LP
+ movl $__NR_futex, %eax
+ xorq %r10, %r10
+ addq $CANCELHANDLING, %rdi
+ LOAD_PRIVATE_FUTEX_WAIT (%esi)
+ syscall
+ movl %fs:CANCELHANDLING, %eax
+ jmp 3b
+END(__pthread_disable_asynccancel)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/clone.S b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/clone.S
new file mode 100644
index 0000000000..d5c2d07885
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/clone.S
@@ -0,0 +1,107 @@
+/* Copyright (C) 2001-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+/* clone() is even more special than fork() as it mucks with stacks
+ and invokes a function in the right context after its all over. */
+
+#include <sysdep.h>
+#define _ERRNO_H 1
+#include <bits/errno.h>
+#include <asm-syntax.h>
+
+#define CLONE_VM 0x00000100
+
+/* The userland implementation is:
+ int clone (int (*fn)(void *arg), void *child_stack, int flags, void *arg),
+ the kernel entry is:
+ int clone (long flags, void *child_stack).
+
+ The parameters are passed in register and on the stack from userland:
+ rdi: fn
+ rsi: child_stack
+ rdx: flags
+ rcx: arg
+ r8d: TID field in parent
+ r9d: thread pointer
+%esp+8: TID field in child
+
+ The kernel expects:
+ rax: system call number
+ rdi: flags
+ rsi: child_stack
+ rdx: TID field in parent
+ r10: TID field in child
+ r8: thread pointer */
+
+
+ .text
+ENTRY (__clone)
+ /* Sanity check arguments. */
+ movq $-EINVAL,%rax
+ testq %rdi,%rdi /* no NULL function pointers */
+ jz SYSCALL_ERROR_LABEL
+ testq %rsi,%rsi /* no NULL stack pointers */
+ jz SYSCALL_ERROR_LABEL
+
+ /* Insert the argument onto the new stack. */
+ subq $16,%rsi
+ movq %rcx,8(%rsi)
+
+ /* Save the function pointer. It will be popped off in the
+ child in the ebx frobbing below. */
+ movq %rdi,0(%rsi)
+
+ /* Do the system call. */
+ movq %rdx, %rdi
+ movq %r8, %rdx
+ movq %r9, %r8
+ mov 8(%rsp), %R10_LP
+ movl $SYS_ify(clone),%eax
+
+ /* End FDE now, because in the child the unwind info will be
+ wrong. */
+ cfi_endproc;
+ syscall
+
+ testq %rax,%rax
+ jl SYSCALL_ERROR_LABEL
+ jz L(thread_start)
+
+ ret
+
+L(thread_start):
+ cfi_startproc;
+ /* Clearing frame pointer is insufficient, use CFI. */
+ cfi_undefined (rip);
+ /* Clear the frame pointer. The ABI suggests this be done, to mark
+ the outermost frame obviously. */
+ xorl %ebp, %ebp
+
+ /* Set up arguments for the function call. */
+ popq %rax /* Function to call. */
+ popq %rdi /* Argument. */
+ call *%rax
+ /* Call exit with return value from function call. */
+ movq %rax, %rdi
+ call HIDDEN_JUMPTARGET (_exit)
+ cfi_endproc;
+
+ cfi_startproc;
+PSEUDO_END (__clone)
+
+libc_hidden_def (__clone)
+weak_alias (__clone, clone)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/compat-timer.h b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/compat-timer.h
new file mode 100644
index 0000000000..f5d5380a00
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/compat-timer.h
@@ -0,0 +1,45 @@
+/* Copyright (C) 2003-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@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; see the file COPYING.LIB. If
+ not, see <http://www.gnu.org/licenses/>. */
+
+#include <signal.h>
+#include <time.h>
+#include <sys/types.h>
+
+#define OLD_TIMER_MAX 256
+
+extern timer_t __compat_timer_list[OLD_TIMER_MAX] attribute_hidden;
+
+
+extern int __timer_create_new (clockid_t clock_id, struct sigevent *evp,
+ timer_t *timerid);
+extern int __timer_delete_new (timer_t timerid);
+extern int __timer_getoverrun_new (timer_t timerid);
+extern int __timer_gettime_new (timer_t timerid, struct itimerspec *value);
+extern int __timer_settime_new (timer_t timerid, int flags,
+ const struct itimerspec *value,
+ struct itimerspec *ovalue);
+
+
+extern int __timer_create_old (clockid_t clock_id, struct sigevent *evp,
+ int *timerid);
+extern int __timer_delete_old (int timerid);
+extern int __timer_getoverrun_old (int timerid);
+extern int __timer_gettime_old (int timerid, struct itimerspec *value);
+extern int __timer_settime_old (int timerid, int flags,
+ const struct itimerspec *value,
+ struct itimerspec *ovalue);
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/configure b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/configure
new file mode 100644
index 0000000000..cb904876ab
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/configure
@@ -0,0 +1,4 @@
+# This file is generated from configure.ac by Autoconf. DO NOT EDIT!
+ # Local configure fragment for sysdeps/unix/sysv/linux/x86_64.
+
+ldd_rewrite_script=sysdeps/unix/sysv/linux/x86_64/ldd-rewrite.sed
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/configure.ac b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/configure.ac
new file mode 100644
index 0000000000..4a34e9458a
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/configure.ac
@@ -0,0 +1,4 @@
+GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
+# Local configure fragment for sysdeps/unix/sysv/linux/x86_64.
+
+ldd_rewrite_script=sysdeps/unix/sysv/linux/x86_64/ldd-rewrite.sed
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/dl-cache.h b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/dl-cache.h
new file mode 100644
index 0000000000..fd61441245
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/dl-cache.h
@@ -0,0 +1,51 @@
+/* Support for reading /etc/ld.so.cache files written by Linux ldconfig.
+ Copyright (C) 1999-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#define _DL_CACHE_DEFAULT_ID 0x303
+
+#define _dl_cache_check_flags(flags) \
+ ((flags) == _DL_CACHE_DEFAULT_ID)
+
+#define add_system_dir(dir) \
+ do \
+ { \
+ size_t len = strlen (dir); \
+ char path[len + 4]; \
+ memcpy (path, dir, len + 1); \
+ if (len >= 6 && ! memcmp (path + len - 6, "/lib64", 6)) \
+ { \
+ len -= 2; \
+ path[len] = '\0'; \
+ } \
+ else if (len >= 7 \
+ && ! memcmp (path + len - 7, "/libx32", 7)) \
+ { \
+ len -= 3; \
+ path[len] = '\0'; \
+ } \
+ add_dir (path); \
+ if (len >= 4 && ! memcmp (path + len - 4, "/lib", 4)) \
+ { \
+ memcpy (path + len, "64", 3); \
+ add_dir (path); \
+ memcpy (path + len, "x32", 4); \
+ add_dir (path); \
+ } \
+ } while (0)
+
+#include <sysdeps/generic/dl-cache.h>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/dl-procinfo.c b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/dl-procinfo.c
new file mode 100644
index 0000000000..a3c0c1931e
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/dl-procinfo.c
@@ -0,0 +1,5 @@
+#if IS_IN (ldconfig)
+# include <sysdeps/i386/dl-procinfo.c>
+#else
+# include <sysdeps/x86_64/dl-procinfo.c>
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/dl-procinfo.h b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/dl-procinfo.h
new file mode 100644
index 0000000000..7b45fe4bf8
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/dl-procinfo.h
@@ -0,0 +1,5 @@
+#if IS_IN (ldconfig)
+# include <sysdeps/unix/sysv/linux/i386/dl-procinfo.h>
+#else
+# include <sysdeps/x86/dl-procinfo.h>
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/get_clockfreq.c b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/get_clockfreq.c
new file mode 100644
index 0000000000..a58d40a9c1
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/get_clockfreq.c
@@ -0,0 +1 @@
+#include "../i386/get_clockfreq.c"
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/getcontext.S b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/getcontext.S
new file mode 100644
index 0000000000..fed47d0f5d
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/getcontext.S
@@ -0,0 +1,87 @@
+/* Save current context.
+ Copyright (C) 2002-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Andreas Jaeger <aj@suse.de>, 2002.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+
+#include "ucontext_i.h"
+
+/* int __getcontext (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)
+ /* Save the preserved registers, the registers used for passing
+ args, and the return address. */
+ movq %rbx, oRBX(%rdi)
+ movq %rbp, oRBP(%rdi)
+ movq %r12, oR12(%rdi)
+ movq %r13, oR13(%rdi)
+ movq %r14, oR14(%rdi)
+ movq %r15, oR15(%rdi)
+
+ movq %rdi, oRDI(%rdi)
+ movq %rsi, oRSI(%rdi)
+ movq %rdx, oRDX(%rdi)
+ movq %rcx, oRCX(%rdi)
+ movq %r8, oR8(%rdi)
+ movq %r9, oR9(%rdi)
+
+ movq (%rsp), %rcx
+ movq %rcx, oRIP(%rdi)
+ leaq 8(%rsp), %rcx /* Exclude the return address. */
+ movq %rcx, oRSP(%rdi)
+
+ /* We have separate floating-point register content memory on the
+ stack. We use the __fpregs_mem block in the context. Set the
+ links up correctly. */
+
+ leaq oFPREGSMEM(%rdi), %rcx
+ movq %rcx, oFPREGS(%rdi)
+ /* Save the floating-point environment. */
+ fnstenv (%rcx)
+ fldenv (%rcx)
+ stmxcsr oMXCSR(%rdi)
+
+ /* Save the current signal mask with
+ rt_sigprocmask (SIG_BLOCK, NULL, set,_NSIG/8). */
+ leaq oSIGMASK(%rdi), %rdx
+ xorl %esi,%esi
+#if SIG_BLOCK == 0
+ xorl %edi, %edi
+#else
+ movl $SIG_BLOCK, %edi
+#endif
+ movl $_NSIG8,%r10d
+ movl $__NR_rt_sigprocmask, %eax
+ syscall
+ cmpq $-4095, %rax /* Check %rax for error. */
+ jae SYSCALL_ERROR_LABEL /* Jump to error handler if error. */
+
+ /* All done, return 0 for success. */
+ xorl %eax, %eax
+ ret
+PSEUDO_END(__getcontext)
+
+weak_alias (__getcontext, getcontext)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/init-first.c b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/init-first.c
new file mode 100644
index 0000000000..f1c46cb5bc
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/init-first.c
@@ -0,0 +1,52 @@
+/* Initialization code run first thing by the ELF startup code. Linux/x86-64.
+ Copyright (C) 2007-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifdef SHARED
+# include <time.h>
+# include <sysdep.h>
+# include <dl-vdso.h>
+# include <libc-vdso.h>
+
+long int (*VDSO_SYMBOL(clock_gettime)) (clockid_t, struct timespec *)
+ attribute_hidden;
+long int (*VDSO_SYMBOL(getcpu)) (unsigned *, unsigned *, void *)
+ attribute_hidden;
+
+extern long int __syscall_clock_gettime (clockid_t, struct timespec *);
+
+
+static inline void
+__vdso_platform_setup (void)
+{
+ PREPARE_VERSION (linux26, "LINUX_2.6", 61765110);
+
+ void *p = _dl_vdso_vsym ("__vdso_clock_gettime", &linux26);
+ if (p == NULL)
+ p = __syscall_clock_gettime;
+ PTR_MANGLE (p);
+ VDSO_SYMBOL(clock_gettime) = p;
+
+ p = _dl_vdso_vsym ("__vdso_getcpu", &linux26);
+ PTR_MANGLE (p);
+ VDSO_SYMBOL(getcpu) = p;
+}
+
+# define VDSO_SETUP __vdso_platform_setup
+#endif
+
+#include <csu/init-first.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/ipc_priv.h b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/ipc_priv.h
new file mode 100644
index 0000000000..6de3cd6fc2
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/ipc_priv.h
@@ -0,0 +1,32 @@
+/* Old SysV permission definition for Linux. x86_64 version.
+ Copyright (C) 2016-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sys/ipc.h> /* For __key_t */
+
+#define __IPC_64 0x0
+
+struct __old_ipc_perm
+{
+ __key_t __key; /* Key. */
+ unsigned short uid; /* Owner's user ID. */
+ unsigned short gid; /* Owner's group ID. */
+ unsigned short cuid; /* Creator's user ID. */
+ unsigned short cgid; /* Creator's group ID. */
+ unsigned short mode; /* Read/write permission. */
+ unsigned short int __seq; /* Sequence number. */
+};
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/kernel-features.h b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/kernel-features.h
new file mode 100644
index 0000000000..115e34c090
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/kernel-features.h
@@ -0,0 +1,26 @@
+/* Set flags signalling availability of kernel features based on given
+ kernel version number. x86-64 version.
+ Copyright (C) 1999-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+/* Define that x32 is a ILP32 ABI to set the correct interface to pass
+ 64-bits values through syscalls. */
+#ifdef __ILP32__
+# define __ASSUME_WORDSIZE64_ILP32 1
+#endif
+
+#include_next <kernel-features.h>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/kernel_stat.h b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/kernel_stat.h
new file mode 100644
index 0000000000..945c02930c
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/kernel_stat.h
@@ -0,0 +1,21 @@
+/* Definition of `struct stat' used in the kernel.
+ 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/>. */
+
+#define STAT_IS_KERNEL_STAT 1
+#define XSTAT_IS_XSTAT64 1
+#define STATFS_IS_STATFS64 0
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/ldconfig.h b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/ldconfig.h
new file mode 100644
index 0000000000..3a7a75b7f0
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/ldconfig.h
@@ -0,0 +1,26 @@
+/* Copyright (C) 2001-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdeps/generic/ldconfig.h>
+
+#define SYSDEP_KNOWN_INTERPRETER_NAMES \
+ { "/lib/ld-linux.so.2", FLAG_ELF_LIBC6 }, \
+ { "/libx32/ld-linux-x32.so.2", FLAG_ELF_LIBC6 }, \
+ { "/lib64/ld-linux-x86-64.so.2", FLAG_ELF_LIBC6 },
+#define SYSDEP_KNOWN_LIBRARY_NAMES \
+ { "libc.so.6", FLAG_ELF_LIBC6 }, \
+ { "libm.so.6", FLAG_ELF_LIBC6 },
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/ldd-rewrite.sed b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/ldd-rewrite.sed
new file mode 100644
index 0000000000..44d76e8aa1
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/ldd-rewrite.sed
@@ -0,0 +1,3 @@
+/LD_TRACE_LOADED_OBJECTS=1/a\
+add_env="$add_env LD_LIBRARY_VERSION=\\$verify_out"
+s_^\(RTLDLIST=\)\(.*lib\)\(\|64\|x32\)\(/[^/]*\)\(-x86-64\|-x32\)\(\.so\.[0-9.]*\)[ ]*$_\1"\2\4\6 \264\4-x86-64\6 \2x32\4-x32\6"_
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/libc-cancellation.S b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/libc-cancellation.S
new file mode 100644
index 0000000000..dc9d8226f1
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/libc-cancellation.S
@@ -0,0 +1,21 @@
+/* Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@redhat.com>, 2009.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#define __pthread_enable_asynccancel __libc_enable_asynccancel
+#define __pthread_disable_asynccancel __libc_disable_asynccancel
+#include "cancellation.S"
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/libc-lowlevellock.S b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/libc-lowlevellock.S
new file mode 100644
index 0000000000..1e5e150aa7
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/libc-lowlevellock.S
@@ -0,0 +1,19 @@
+/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include "lowlevellock.S"
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/libmvec.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/libmvec.abilist
new file mode 100644
index 0000000000..80d028a61c
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/libmvec.abilist
@@ -0,0 +1,49 @@
+GLIBC_2.22 GLIBC_2.22 A
+GLIBC_2.22 _ZGVbN2v_cos F
+GLIBC_2.22 _ZGVbN2v_exp F
+GLIBC_2.22 _ZGVbN2v_log F
+GLIBC_2.22 _ZGVbN2v_sin F
+GLIBC_2.22 _ZGVbN2vv_pow F
+GLIBC_2.22 _ZGVbN2vvv_sincos F
+GLIBC_2.22 _ZGVbN4v_cosf F
+GLIBC_2.22 _ZGVbN4v_expf F
+GLIBC_2.22 _ZGVbN4v_logf F
+GLIBC_2.22 _ZGVbN4v_sinf F
+GLIBC_2.22 _ZGVbN4vv_powf F
+GLIBC_2.22 _ZGVbN4vvv_sincosf F
+GLIBC_2.22 _ZGVcN4v_cos F
+GLIBC_2.22 _ZGVcN4v_exp F
+GLIBC_2.22 _ZGVcN4v_log F
+GLIBC_2.22 _ZGVcN4v_sin F
+GLIBC_2.22 _ZGVcN4vv_pow F
+GLIBC_2.22 _ZGVcN4vvv_sincos F
+GLIBC_2.22 _ZGVcN8v_cosf F
+GLIBC_2.22 _ZGVcN8v_expf F
+GLIBC_2.22 _ZGVcN8v_logf F
+GLIBC_2.22 _ZGVcN8v_sinf F
+GLIBC_2.22 _ZGVcN8vv_powf F
+GLIBC_2.22 _ZGVcN8vvv_sincosf F
+GLIBC_2.22 _ZGVdN4v_cos F
+GLIBC_2.22 _ZGVdN4v_exp F
+GLIBC_2.22 _ZGVdN4v_log F
+GLIBC_2.22 _ZGVdN4v_sin F
+GLIBC_2.22 _ZGVdN4vv_pow F
+GLIBC_2.22 _ZGVdN4vvv_sincos F
+GLIBC_2.22 _ZGVdN8v_cosf F
+GLIBC_2.22 _ZGVdN8v_expf F
+GLIBC_2.22 _ZGVdN8v_logf F
+GLIBC_2.22 _ZGVdN8v_sinf F
+GLIBC_2.22 _ZGVdN8vv_powf F
+GLIBC_2.22 _ZGVdN8vvv_sincosf F
+GLIBC_2.22 _ZGVeN16v_cosf F
+GLIBC_2.22 _ZGVeN16v_expf F
+GLIBC_2.22 _ZGVeN16v_logf F
+GLIBC_2.22 _ZGVeN16v_sinf F
+GLIBC_2.22 _ZGVeN16vv_powf F
+GLIBC_2.22 _ZGVeN16vvv_sincosf F
+GLIBC_2.22 _ZGVeN8v_cos F
+GLIBC_2.22 _ZGVeN8v_exp F
+GLIBC_2.22 _ZGVeN8v_log F
+GLIBC_2.22 _ZGVeN8v_sin F
+GLIBC_2.22 _ZGVeN8vv_pow F
+GLIBC_2.22 _ZGVeN8vvv_sincos F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/librt-cancellation.S b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/librt-cancellation.S
new file mode 100644
index 0000000000..8422939dc7
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/librt-cancellation.S
@@ -0,0 +1,21 @@
+/* Copyright (C) 2009-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@redhat.com>, 2009.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#define __pthread_enable_asynccancel __librt_enable_asynccancel
+#define __pthread_disable_asynccancel __librt_disable_asynccancel
+#include "cancellation.S"
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/lll_timedlock_wait.c b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/lll_timedlock_wait.c
new file mode 100644
index 0000000000..f6875b8f89
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/lll_timedlock_wait.c
@@ -0,0 +1 @@
+/* __lll_timedlock_wait is in lowlevellock.S. */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/lll_timedwait_tid.c b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/lll_timedwait_tid.c
new file mode 100644
index 0000000000..43900c6294
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/lll_timedwait_tid.c
@@ -0,0 +1 @@
+/* __lll_timedwait_tid is in lowlevellock.S. */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
new file mode 100644
index 0000000000..6e8ae053c7
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
@@ -0,0 +1,463 @@
+/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#include <pthread-errnos.h>
+#include <kernel-features.h>
+#include <lowlevellock.h>
+
+#include <stap-probe.h>
+
+ .text
+
+#ifdef __ASSUME_PRIVATE_FUTEX
+# define LOAD_PRIVATE_FUTEX_WAIT(reg) \
+ movl $(FUTEX_WAIT | FUTEX_PRIVATE_FLAG), reg
+# define LOAD_PRIVATE_FUTEX_WAKE(reg) \
+ movl $(FUTEX_WAKE | FUTEX_PRIVATE_FLAG), reg
+# define LOAD_FUTEX_WAIT(reg) \
+ xorl $(FUTEX_WAIT | FUTEX_PRIVATE_FLAG), reg
+# define LOAD_FUTEX_WAIT_ABS(reg) \
+ xorl $(FUTEX_WAIT_BITSET | FUTEX_PRIVATE_FLAG | FUTEX_CLOCK_REALTIME), reg
+# define LOAD_FUTEX_WAKE(reg) \
+ xorl $(FUTEX_WAKE | FUTEX_PRIVATE_FLAG), reg
+#else
+# if FUTEX_WAIT == 0
+# define LOAD_PRIVATE_FUTEX_WAIT(reg) \
+ movl %fs:PRIVATE_FUTEX, reg
+# else
+# define LOAD_PRIVATE_FUTEX_WAIT(reg) \
+ movl %fs:PRIVATE_FUTEX, reg ; \
+ orl $FUTEX_WAIT, reg
+# endif
+# define LOAD_PRIVATE_FUTEX_WAKE(reg) \
+ movl %fs:PRIVATE_FUTEX, reg ; \
+ orl $FUTEX_WAKE, reg
+# if FUTEX_WAIT == 0
+# define LOAD_FUTEX_WAIT(reg) \
+ xorl $FUTEX_PRIVATE_FLAG, reg ; \
+ andl %fs:PRIVATE_FUTEX, reg
+# else
+# define LOAD_FUTEX_WAIT(reg) \
+ xorl $FUTEX_PRIVATE_FLAG, reg ; \
+ andl %fs:PRIVATE_FUTEX, reg ; \
+ orl $FUTEX_WAIT, reg
+# endif
+# define LOAD_FUTEX_WAIT_ABS(reg) \
+ xorl $FUTEX_PRIVATE_FLAG, reg ; \
+ andl %fs:PRIVATE_FUTEX, reg ; \
+ orl $FUTEX_WAIT_BITSET | FUTEX_CLOCK_REALTIME, reg
+# define LOAD_FUTEX_WAKE(reg) \
+ xorl $FUTEX_PRIVATE_FLAG, reg ; \
+ andl %fs:PRIVATE_FUTEX, reg ; \
+ orl $FUTEX_WAKE, reg
+#endif
+
+
+ .globl __lll_lock_wait_private
+ .type __lll_lock_wait_private,@function
+ .hidden __lll_lock_wait_private
+ .align 16
+__lll_lock_wait_private:
+ cfi_startproc
+ pushq %r10
+ cfi_adjust_cfa_offset(8)
+ pushq %rdx
+ cfi_adjust_cfa_offset(8)
+ cfi_offset(%r10, -16)
+ cfi_offset(%rdx, -24)
+ xorq %r10, %r10 /* No timeout. */
+ movl $2, %edx
+ LOAD_PRIVATE_FUTEX_WAIT (%esi)
+
+ cmpl %edx, %eax /* NB: %edx == 2 */
+ jne 2f
+
+1: LIBC_PROBE (lll_lock_wait_private, 1, %rdi)
+ movl $SYS_futex, %eax
+ syscall
+
+2: movl %edx, %eax
+ xchgl %eax, (%rdi) /* NB: lock is implied */
+
+ testl %eax, %eax
+ jnz 1b
+
+ popq %rdx
+ cfi_adjust_cfa_offset(-8)
+ cfi_restore(%rdx)
+ popq %r10
+ cfi_adjust_cfa_offset(-8)
+ cfi_restore(%r10)
+ retq
+ cfi_endproc
+ .size __lll_lock_wait_private,.-__lll_lock_wait_private
+
+#if !IS_IN (libc)
+ .globl __lll_lock_wait
+ .type __lll_lock_wait,@function
+ .hidden __lll_lock_wait
+ .align 16
+__lll_lock_wait:
+ cfi_startproc
+ pushq %r10
+ cfi_adjust_cfa_offset(8)
+ pushq %rdx
+ cfi_adjust_cfa_offset(8)
+ cfi_offset(%r10, -16)
+ cfi_offset(%rdx, -24)
+ xorq %r10, %r10 /* No timeout. */
+ movl $2, %edx
+ LOAD_FUTEX_WAIT (%esi)
+
+ cmpl %edx, %eax /* NB: %edx == 2 */
+ jne 2f
+
+1: LIBC_PROBE (lll_lock_wait, 2, %rdi, %rsi)
+ movl $SYS_futex, %eax
+ syscall
+
+2: movl %edx, %eax
+ xchgl %eax, (%rdi) /* NB: lock is implied */
+
+ testl %eax, %eax
+ jnz 1b
+
+ popq %rdx
+ cfi_adjust_cfa_offset(-8)
+ cfi_restore(%rdx)
+ popq %r10
+ cfi_adjust_cfa_offset(-8)
+ cfi_restore(%r10)
+ retq
+ cfi_endproc
+ .size __lll_lock_wait,.-__lll_lock_wait
+
+ /* %rdi: futex
+ %rsi: flags
+ %rdx: timeout
+ %eax: futex value
+ */
+ .globl __lll_timedlock_wait
+ .type __lll_timedlock_wait,@function
+ .hidden __lll_timedlock_wait
+ .align 16
+__lll_timedlock_wait:
+ cfi_startproc
+# ifndef __ASSUME_FUTEX_CLOCK_REALTIME
+# ifdef PIC
+ cmpl $0, __have_futex_clock_realtime(%rip)
+# else
+ cmpl $0, __have_futex_clock_realtime
+# endif
+ je .Lreltmo
+# endif
+
+ cmpq $0, (%rdx)
+ js 5f
+
+ pushq %r9
+ cfi_adjust_cfa_offset(8)
+ cfi_rel_offset(%r9, 0)
+
+ movq %rdx, %r10
+ movl $0xffffffff, %r9d
+ LOAD_FUTEX_WAIT_ABS (%esi)
+
+ movl $2, %edx
+ cmpl %edx, %eax
+ jne 2f
+
+1: movl $SYS_futex, %eax
+ movl $2, %edx
+ syscall
+
+2: xchgl %edx, (%rdi) /* NB: lock is implied */
+
+ testl %edx, %edx
+ jz 3f
+
+ cmpl $-ETIMEDOUT, %eax
+ je 4f
+ cmpl $-EINVAL, %eax
+ jne 1b
+4: movl %eax, %edx
+ negl %edx
+
+3: movl %edx, %eax
+ popq %r9
+ cfi_adjust_cfa_offset(-8)
+ cfi_restore(%r9)
+ retq
+
+5: movl $ETIMEDOUT, %eax
+ retq
+
+# ifndef __ASSUME_FUTEX_CLOCK_REALTIME
+.Lreltmo:
+ /* Check for a valid timeout value. */
+ cmpq $1000000000, 8(%rdx)
+ jae 3f
+
+ pushq %r8
+ cfi_adjust_cfa_offset(8)
+ pushq %r9
+ cfi_adjust_cfa_offset(8)
+ pushq %r12
+ cfi_adjust_cfa_offset(8)
+ pushq %r13
+ cfi_adjust_cfa_offset(8)
+ pushq %r14
+ cfi_adjust_cfa_offset(8)
+ cfi_offset(%r8, -16)
+ cfi_offset(%r9, -24)
+ cfi_offset(%r12, -32)
+ cfi_offset(%r13, -40)
+ cfi_offset(%r14, -48)
+ pushq %rsi
+ cfi_adjust_cfa_offset(8)
+
+ /* Stack frame for the timespec and timeval structs. */
+ subq $24, %rsp
+ cfi_adjust_cfa_offset(24)
+
+ movq %rdi, %r12
+ movq %rdx, %r13
+
+ movl $2, %edx
+ xchgl %edx, (%r12)
+
+ testl %edx, %edx
+ je 6f
+
+1:
+ /* Get current time. */
+ movq %rsp, %rdi
+ xorl %esi, %esi
+ /* This call works because we directly jump to a system call entry
+ which preserves all the registers. */
+ call JUMPTARGET(__gettimeofday)
+
+ /* Compute relative timeout. */
+ movq 8(%rsp), %rax
+ movl $1000, %edi
+ mul %rdi /* Milli seconds to nano seconds. */
+ movq (%r13), %rdi
+ movq 8(%r13), %rsi
+ subq (%rsp), %rdi
+ subq %rax, %rsi
+ jns 4f
+ addq $1000000000, %rsi
+ decq %rdi
+4: testq %rdi, %rdi
+ js 2f /* Time is already up. */
+
+ /* Store relative timeout. */
+ movq %rdi, (%rsp)
+ movq %rsi, 8(%rsp)
+
+ /* Futex call. */
+ movl $2, %edx
+ movl $1, %eax
+ movq %rsp, %r10
+ movl 24(%rsp), %esi
+ LOAD_FUTEX_WAIT (%esi)
+ movq %r12, %rdi
+ movl $SYS_futex, %eax
+ syscall
+
+ /* NB: %edx == 2 */
+ xchgl %edx, (%r12)
+
+ testl %edx, %edx
+ je 6f
+
+ cmpl $-ETIMEDOUT, %eax
+ jne 1b
+2: movl $ETIMEDOUT, %edx
+
+6: addq $32, %rsp
+ cfi_adjust_cfa_offset(-32)
+ popq %r14
+ cfi_adjust_cfa_offset(-8)
+ cfi_restore(%r14)
+ popq %r13
+ cfi_adjust_cfa_offset(-8)
+ cfi_restore(%r13)
+ popq %r12
+ cfi_adjust_cfa_offset(-8)
+ cfi_restore(%r12)
+ popq %r9
+ cfi_adjust_cfa_offset(-8)
+ cfi_restore(%r9)
+ popq %r8
+ cfi_adjust_cfa_offset(-8)
+ cfi_restore(%r8)
+ movl %edx, %eax
+ retq
+
+3: movl $EINVAL, %eax
+ retq
+# endif
+ cfi_endproc
+ .size __lll_timedlock_wait,.-__lll_timedlock_wait
+#endif
+
+
+ .globl __lll_unlock_wake_private
+ .type __lll_unlock_wake_private,@function
+ .hidden __lll_unlock_wake_private
+ .align 16
+__lll_unlock_wake_private:
+ cfi_startproc
+ pushq %rsi
+ cfi_adjust_cfa_offset(8)
+ pushq %rdx
+ cfi_adjust_cfa_offset(8)
+ cfi_offset(%rsi, -16)
+ cfi_offset(%rdx, -24)
+
+ movl $0, (%rdi)
+ LOAD_PRIVATE_FUTEX_WAKE (%esi)
+ movl $1, %edx /* Wake one thread. */
+ movl $SYS_futex, %eax
+ syscall
+
+ popq %rdx
+ cfi_adjust_cfa_offset(-8)
+ cfi_restore(%rdx)
+ popq %rsi
+ cfi_adjust_cfa_offset(-8)
+ cfi_restore(%rsi)
+ retq
+ cfi_endproc
+ .size __lll_unlock_wake_private,.-__lll_unlock_wake_private
+
+#if !IS_IN (libc)
+ .globl __lll_unlock_wake
+ .type __lll_unlock_wake,@function
+ .hidden __lll_unlock_wake
+ .align 16
+__lll_unlock_wake:
+ cfi_startproc
+ pushq %rsi
+ cfi_adjust_cfa_offset(8)
+ pushq %rdx
+ cfi_adjust_cfa_offset(8)
+ cfi_offset(%rsi, -16)
+ cfi_offset(%rdx, -24)
+
+ movl $0, (%rdi)
+ LOAD_FUTEX_WAKE (%esi)
+ movl $1, %edx /* Wake one thread. */
+ movl $SYS_futex, %eax
+ syscall
+
+ popq %rdx
+ cfi_adjust_cfa_offset(-8)
+ cfi_restore(%rdx)
+ popq %rsi
+ cfi_adjust_cfa_offset(-8)
+ cfi_restore(%rsi)
+ retq
+ cfi_endproc
+ .size __lll_unlock_wake,.-__lll_unlock_wake
+
+ .globl __lll_timedwait_tid
+ .type __lll_timedwait_tid,@function
+ .hidden __lll_timedwait_tid
+ .align 16
+__lll_timedwait_tid:
+ cfi_startproc
+ pushq %r12
+ cfi_adjust_cfa_offset(8)
+ pushq %r13
+ cfi_adjust_cfa_offset(8)
+ cfi_offset(%r12, -16)
+ cfi_offset(%r13, -24)
+
+ movq %rdi, %r12
+ movq %rsi, %r13
+
+ /* Align stack to 16 bytes when calling __gettimeofday. */
+ subq $24, %rsp
+ cfi_adjust_cfa_offset(24)
+
+ /* Get current time. */
+2: movq %rsp, %rdi
+ xorl %esi, %esi
+ /* This call works because we directly jump to a system call entry
+ which preserves all the registers. */
+ call JUMPTARGET(__gettimeofday)
+
+ /* Compute relative timeout. */
+ movq 8(%rsp), %rax
+ movl $1000, %edi
+ mul %rdi /* Milli seconds to nano seconds. */
+ movq (%r13), %rdi
+ movq 8(%r13), %rsi
+ subq (%rsp), %rdi
+ subq %rax, %rsi
+ jns 5f
+ addq $1000000000, %rsi
+ decq %rdi
+5: testq %rdi, %rdi
+ js 6f /* Time is already up. */
+
+ movq %rdi, (%rsp) /* Store relative timeout. */
+ movq %rsi, 8(%rsp)
+
+ movl (%r12), %edx
+ testl %edx, %edx
+ jz 4f
+
+ movq %rsp, %r10
+ /* XXX The kernel so far uses global futex for the wakeup at
+ all times. */
+#if FUTEX_WAIT == 0
+ xorl %esi, %esi
+#else
+ movl $FUTEX_WAIT, %esi
+#endif
+ movq %r12, %rdi
+ movl $SYS_futex, %eax
+ syscall
+
+ cmpl $0, (%rdi)
+ jne 1f
+4: xorl %eax, %eax
+
+8: addq $24, %rsp
+ cfi_adjust_cfa_offset(-24)
+ popq %r13
+ cfi_adjust_cfa_offset(-8)
+ cfi_restore(%r13)
+ popq %r12
+ cfi_adjust_cfa_offset(-8)
+ cfi_restore(%r12)
+ retq
+
+ cfi_adjust_cfa_offset(32)
+1: cmpq $-ETIMEDOUT, %rax
+ jne 2b
+
+6: movl $ETIMEDOUT, %eax
+ jmp 8b
+ cfi_endproc
+ .size __lll_timedwait_tid,.-__lll_timedwait_tid
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/lowlevellock.h b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/lowlevellock.h
new file mode 100644
index 0000000000..cbf6597e00
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/lowlevellock.h
@@ -0,0 +1,278 @@
+/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _LOWLEVELLOCK_H
+#define _LOWLEVELLOCK_H 1
+
+#include <stap-probe.h>
+
+#ifndef __ASSEMBLER__
+# include <time.h>
+# include <sys/param.h>
+# include <bits/pthreadtypes.h>
+# include <kernel-features.h>
+# include <tcb-offsets.h>
+
+# ifndef LOCK_INSTR
+# ifdef UP
+# define LOCK_INSTR /* nothing */
+# else
+# define LOCK_INSTR "lock;"
+# endif
+# endif
+#else
+# ifndef LOCK
+# ifdef UP
+# define LOCK
+# else
+# define LOCK lock
+# endif
+# endif
+#endif
+
+#include <lowlevellock-futex.h>
+
+/* XXX Remove when no assembler code uses futexes anymore. */
+#define SYS_futex __NR_futex
+
+#ifndef __ASSEMBLER__
+
+/* Initializer for lock. */
+#define LLL_LOCK_INITIALIZER (0)
+#define LLL_LOCK_INITIALIZER_LOCKED (1)
+#define LLL_LOCK_INITIALIZER_WAITERS (2)
+
+
+/* NB: in the lll_trylock macro we simply return the value in %eax
+ after the cmpxchg instruction. In case the operation succeded this
+ value is zero. In case the operation failed, the cmpxchg instruction
+ has loaded the current value of the memory work which is guaranteed
+ to be nonzero. */
+#if !IS_IN (libc) || defined UP
+# define __lll_trylock_asm LOCK_INSTR "cmpxchgl %2, %1"
+#else
+# define __lll_trylock_asm "cmpl $0, __libc_multiple_threads(%%rip)\n\t" \
+ "je 0f\n\t" \
+ "lock; cmpxchgl %2, %1\n\t" \
+ "jmp 1f\n\t" \
+ "0:\tcmpxchgl %2, %1\n\t" \
+ "1:"
+#endif
+
+#define lll_trylock(futex) \
+ ({ int ret; \
+ __asm __volatile (__lll_trylock_asm \
+ : "=a" (ret), "=m" (futex) \
+ : "r" (LLL_LOCK_INITIALIZER_LOCKED), "m" (futex), \
+ "0" (LLL_LOCK_INITIALIZER) \
+ : "memory"); \
+ ret; })
+
+#define lll_cond_trylock(futex) \
+ ({ int ret; \
+ __asm __volatile (LOCK_INSTR "cmpxchgl %2, %1" \
+ : "=a" (ret), "=m" (futex) \
+ : "r" (LLL_LOCK_INITIALIZER_WAITERS), \
+ "m" (futex), "0" (LLL_LOCK_INITIALIZER) \
+ : "memory"); \
+ ret; })
+
+#if !IS_IN (libc) || defined UP
+# define __lll_lock_asm_start LOCK_INSTR "cmpxchgl %4, %2\n\t" \
+ "jz 24f\n\t"
+#else
+# define __lll_lock_asm_start "cmpl $0, __libc_multiple_threads(%%rip)\n\t" \
+ "je 0f\n\t" \
+ "lock; cmpxchgl %4, %2\n\t" \
+ "jnz 1f\n\t" \
+ "jmp 24f\n" \
+ "0:\tcmpxchgl %4, %2\n\t" \
+ "jz 24f\n\t"
+#endif
+
+#define lll_lock(futex, private) \
+ (void) \
+ ({ int ignore1, ignore2, ignore3; \
+ if (__builtin_constant_p (private) && (private) == LLL_PRIVATE) \
+ __asm __volatile (__lll_lock_asm_start \
+ "1:\tlea %2, %%" RDI_LP "\n" \
+ "2:\tsub $128, %%" RSP_LP "\n" \
+ ".cfi_adjust_cfa_offset 128\n" \
+ "3:\tcallq __lll_lock_wait_private\n" \
+ "4:\tadd $128, %%" RSP_LP "\n" \
+ ".cfi_adjust_cfa_offset -128\n" \
+ "24:" \
+ : "=S" (ignore1), "=&D" (ignore2), "=m" (futex), \
+ "=a" (ignore3) \
+ : "0" (1), "m" (futex), "3" (0) \
+ : "cx", "r11", "cc", "memory"); \
+ else \
+ __asm __volatile (__lll_lock_asm_start \
+ "1:\tlea %2, %%" RDI_LP "\n" \
+ "2:\tsub $128, %%" RSP_LP "\n" \
+ ".cfi_adjust_cfa_offset 128\n" \
+ "3:\tcallq __lll_lock_wait\n" \
+ "4:\tadd $128, %%" RSP_LP "\n" \
+ ".cfi_adjust_cfa_offset -128\n" \
+ "24:" \
+ : "=S" (ignore1), "=D" (ignore2), "=m" (futex), \
+ "=a" (ignore3) \
+ : "1" (1), "m" (futex), "3" (0), "0" (private) \
+ : "cx", "r11", "cc", "memory"); \
+ }) \
+
+#define lll_cond_lock(futex, private) \
+ (void) \
+ ({ int ignore1, ignore2, ignore3; \
+ __asm __volatile (LOCK_INSTR "cmpxchgl %4, %2\n\t" \
+ "jz 24f\n" \
+ "1:\tlea %2, %%" RDI_LP "\n" \
+ "2:\tsub $128, %%" RSP_LP "\n" \
+ ".cfi_adjust_cfa_offset 128\n" \
+ "3:\tcallq __lll_lock_wait\n" \
+ "4:\tadd $128, %%" RSP_LP "\n" \
+ ".cfi_adjust_cfa_offset -128\n" \
+ "24:" \
+ : "=S" (ignore1), "=D" (ignore2), "=m" (futex), \
+ "=a" (ignore3) \
+ : "1" (2), "m" (futex), "3" (0), "0" (private) \
+ : "cx", "r11", "cc", "memory"); \
+ })
+
+#define lll_timedlock(futex, timeout, private) \
+ ({ int result, ignore1, ignore2, ignore3; \
+ __asm __volatile (LOCK_INSTR "cmpxchgl %1, %4\n\t" \
+ "jz 24f\n" \
+ "1:\tlea %4, %%" RDI_LP "\n" \
+ "0:\tmov %8, %%" RDX_LP "\n" \
+ "2:\tsub $128, %%" RSP_LP "\n" \
+ ".cfi_adjust_cfa_offset 128\n" \
+ "3:\tcallq __lll_timedlock_wait\n" \
+ "4:\tadd $128, %%" RSP_LP "\n" \
+ ".cfi_adjust_cfa_offset -128\n" \
+ "24:" \
+ : "=a" (result), "=D" (ignore1), "=S" (ignore2), \
+ "=&d" (ignore3), "=m" (futex) \
+ : "0" (0), "1" (1), "m" (futex), "m" (timeout), \
+ "2" (private) \
+ : "memory", "cx", "cc", "r10", "r11"); \
+ result; })
+
+extern int __lll_timedlock_elision (int *futex, short *adapt_count,
+ const struct timespec *timeout,
+ int private) attribute_hidden;
+
+#define lll_timedlock_elision(futex, adapt_count, timeout, private) \
+ __lll_timedlock_elision(&(futex), &(adapt_count), timeout, private)
+
+#if !IS_IN (libc) || defined UP
+# define __lll_unlock_asm_start LOCK_INSTR "decl %0\n\t" \
+ "je 24f\n\t"
+#else
+# define __lll_unlock_asm_start "cmpl $0, __libc_multiple_threads(%%rip)\n\t" \
+ "je 0f\n\t" \
+ "lock; decl %0\n\t" \
+ "jne 1f\n\t" \
+ "jmp 24f\n\t" \
+ "0:\tdecl %0\n\t" \
+ "je 24f\n\t"
+#endif
+
+#define lll_unlock(futex, private) \
+ (void) \
+ ({ int ignore; \
+ if (__builtin_constant_p (private) && (private) == LLL_PRIVATE) \
+ __asm __volatile (__lll_unlock_asm_start \
+ "1:\tlea %0, %%" RDI_LP "\n" \
+ "2:\tsub $128, %%" RSP_LP "\n" \
+ ".cfi_adjust_cfa_offset 128\n" \
+ "3:\tcallq __lll_unlock_wake_private\n" \
+ "4:\tadd $128, %%" RSP_LP "\n" \
+ ".cfi_adjust_cfa_offset -128\n" \
+ "24:" \
+ : "=m" (futex), "=&D" (ignore) \
+ : "m" (futex) \
+ : "ax", "cx", "r11", "cc", "memory"); \
+ else \
+ __asm __volatile (__lll_unlock_asm_start \
+ "1:\tlea %0, %%" RDI_LP "\n" \
+ "2:\tsub $128, %%" RSP_LP "\n" \
+ ".cfi_adjust_cfa_offset 128\n" \
+ "3:\tcallq __lll_unlock_wake\n" \
+ "4:\tadd $128, %%" RSP_LP "\n" \
+ ".cfi_adjust_cfa_offset -128\n" \
+ "24:" \
+ : "=m" (futex), "=&D" (ignore) \
+ : "m" (futex), "S" (private) \
+ : "ax", "cx", "r11", "cc", "memory"); \
+ })
+
+#define lll_islocked(futex) \
+ (futex != LLL_LOCK_INITIALIZER)
+
+
+/* The kernel notifies a process which uses CLONE_CHILD_CLEARTID via futex
+ wake-up when the clone terminates. The memory location contains the
+ thread ID while the clone is running and is reset to zero by the kernel
+ afterwards. The kernel up to version 3.16.3 does not use the private futex
+ operations for futex wake-up when the clone terminates. */
+#define lll_wait_tid(tid) \
+ do { \
+ __typeof (tid) __tid; \
+ while ((__tid = (tid)) != 0) \
+ lll_futex_wait (&(tid), __tid, LLL_SHARED);\
+ } while (0)
+
+extern int __lll_timedwait_tid (int *, const struct timespec *)
+ attribute_hidden;
+
+/* As lll_wait_tid, but with a timeout. If the timeout occurs then return
+ ETIMEDOUT. If ABSTIME is invalid, return EINVAL.
+ XXX Note that this differs from the generic version in that we do the
+ error checking here and not in __lll_timedwait_tid. */
+#define lll_timedwait_tid(tid, abstime) \
+ ({ \
+ int __result = 0; \
+ if ((tid) != 0) \
+ { \
+ if ((abstime)->tv_nsec < 0 || (abstime)->tv_nsec >= 1000000000) \
+ __result = EINVAL; \
+ else \
+ __result = __lll_timedwait_tid (&(tid), (abstime)); \
+ } \
+ __result; })
+
+extern int __lll_lock_elision (int *futex, short *adapt_count, int private)
+ attribute_hidden;
+
+extern int __lll_unlock_elision (int *lock, int private)
+ attribute_hidden;
+
+extern int __lll_trylock_elision (int *lock, short *adapt_count)
+ attribute_hidden;
+
+#define lll_lock_elision(futex, adapt_count, private) \
+ __lll_lock_elision (&(futex), &(adapt_count), private)
+#define lll_unlock_elision(futex, adapt_count, private) \
+ __lll_unlock_elision (&(futex), private)
+#define lll_trylock_elision(futex, adapt_count) \
+ __lll_trylock_elision (&(futex), &(adapt_count))
+
+#endif /* !__ASSEMBLER__ */
+
+#endif /* lowlevellock.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/makecontext.c b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/makecontext.c
new file mode 100644
index 0000000000..59fb77a8c1
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/makecontext.c
@@ -0,0 +1,121 @@
+/* Create new context.
+ Copyright (C) 2002-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Andreas Jaeger <aj@suse.de>, 2002.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#include <stdarg.h>
+#include <stdint.h>
+#include <ucontext.h>
+
+#include "ucontext_i.h"
+
+/* This implementation can handle any ARGC value but only
+ normal integer parameters.
+ makecontext sets up a stack and the registers for the
+ user context. The stack looks like this:
+ +-----------------------+
+ | next context |
+ +-----------------------+
+ | parameter 7-n |
+ +-----------------------+
+ | trampoline address |
+ %rsp -> +-----------------------+
+
+ The registers are set up like this:
+ %rdi,%rsi,%rdx,%rcx,%r8,%r9: parameter 1 to 6
+ %rbx : address of next context
+ %rsp : stack pointer.
+*/
+
+/* XXX: This implementation currently only handles integer arguments.
+ To handle long int and pointer arguments the va_arg arguments needs
+ to be changed to long and also the stdlib/tst-setcontext.c file needs
+ to be changed to pass long arguments to makecontext. */
+
+
+void
+__makecontext (ucontext_t *ucp, void (*func) (void), int argc, ...)
+{
+ extern void __start_context (void);
+ greg_t *sp;
+ unsigned int idx_uc_link;
+ va_list ap;
+ int i;
+
+ /* Generate room on stack for parameter if needed and uc_link. */
+ sp = (greg_t *) ((uintptr_t) ucp->uc_stack.ss_sp
+ + ucp->uc_stack.ss_size);
+ sp -= (argc > 6 ? argc - 6 : 0) + 1;
+ /* Align stack and make space for trampoline address. */
+ sp = (greg_t *) ((((uintptr_t) sp) & -16L) - 8);
+
+ idx_uc_link = (argc > 6 ? argc - 6 : 0) + 1;
+
+ /* Setup context ucp. */
+ /* Address to jump to. */
+ ucp->uc_mcontext.gregs[REG_RIP] = (uintptr_t) func;
+ /* Setup rbx.*/
+ ucp->uc_mcontext.gregs[REG_RBX] = (uintptr_t) &sp[idx_uc_link];
+ ucp->uc_mcontext.gregs[REG_RSP] = (uintptr_t) sp;
+
+ /* Setup stack. */
+ sp[0] = (uintptr_t) &__start_context;
+ sp[idx_uc_link] = (uintptr_t) ucp->uc_link;
+
+ va_start (ap, argc);
+ /* Handle arguments.
+
+ The standard says the parameters must all be int values. This is
+ an historic accident and would be done differently today. For
+ x86-64 all integer values are passed as 64-bit values and
+ therefore extending the API to copy 64-bit values instead of
+ 32-bit ints makes sense. It does not break existing
+ functionality and it does not violate the standard which says
+ that passing non-int values means undefined behavior. */
+ for (i = 0; i < argc; ++i)
+ switch (i)
+ {
+ case 0:
+ ucp->uc_mcontext.gregs[REG_RDI] = va_arg (ap, greg_t);
+ break;
+ case 1:
+ ucp->uc_mcontext.gregs[REG_RSI] = va_arg (ap, greg_t);
+ break;
+ case 2:
+ ucp->uc_mcontext.gregs[REG_RDX] = va_arg (ap, greg_t);
+ break;
+ case 3:
+ ucp->uc_mcontext.gregs[REG_RCX] = va_arg (ap, greg_t);
+ break;
+ case 4:
+ ucp->uc_mcontext.gregs[REG_R8] = va_arg (ap, greg_t);
+ break;
+ case 5:
+ ucp->uc_mcontext.gregs[REG_R9] = va_arg (ap, greg_t);
+ break;
+ default:
+ /* Put value on stack. */
+ sp[i - 5] = va_arg (ap, greg_t);
+ break;
+ }
+ va_end (ap);
+
+}
+
+
+weak_alias (__makecontext, makecontext)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/profil-counter.h b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/profil-counter.h
new file mode 100644
index 0000000000..5970120bfa
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/profil-counter.h
@@ -0,0 +1,31 @@
+/* Low-level statistical profiling support function. Linux/x86-64 version.
+ Copyright (C) 2001-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <signal.h>
+#include <sigcontextinfo.h>
+
+static void
+__profil_counter (int signo, SIGCONTEXT scp)
+{
+ profil_count ((void *) GET_PC (scp));
+
+ /* This is a hack to prevent the compiler from implementing the
+ above function call as a sibcall. The sibcall would overwrite
+ the signal context. */
+ asm volatile ("");
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/pthread_setaffinity.c b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/pthread_setaffinity.c
new file mode 100644
index 0000000000..a7bbe38156
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/pthread_setaffinity.c
@@ -0,0 +1,14 @@
+#include <tls.h>
+
+#define RESET_VGETCPU_CACHE() \
+ do { \
+ asm volatile ("movl %0, %%fs:%P1\n\t" \
+ "movl %0, %%fs:%P2" \
+ : \
+ : "ir" (0), "i" (offsetof (struct pthread, \
+ header.vgetcpu_cache[0])), \
+ "i" (offsetof (struct pthread, \
+ header.vgetcpu_cache[1]))); \
+ } while (0)
+
+#include <sysdeps/unix/sysv/linux/pthread_setaffinity.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/readelflib.c b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/readelflib.c
new file mode 100644
index 0000000000..4c4e5f9d1a
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/readelflib.c
@@ -0,0 +1,2 @@
+#define SKIP_EM_IA_64
+#include <sysdeps/unix/sysv/linux/i386/readelflib.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/register-dump.h b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/register-dump.h
new file mode 100644
index 0000000000..6a52957901
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/register-dump.h
@@ -0,0 +1,345 @@
+/* Dump registers.
+ Copyright (C) 2001-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sys/uio.h>
+#include <_itoa.h>
+
+/* We will print the register dump in this format:
+
+ RAX: XXXXXXXXXXXXXXXX RBX: XXXXXXXXXXXXXXXX RCX: XXXXXXXXXXXXXXXX
+ RDX: XXXXXXXXXXXXXXXX RSI: XXXXXXXXXXXXXXXX RDI: XXXXXXXXXXXXXXXX
+ RBP: XXXXXXXXXXXXXXXX R8 : XXXXXXXXXXXXXXXX R9 : XXXXXXXXXXXXXXXX
+ R10: XXXXXXXXXXXXXXXX R11: XXXXXXXXXXXXXXXX R12: XXXXXXXXXXXXXXXX
+ R13: XXXXXXXXXXXXXXXX R14: XXXXXXXXXXXXXXXX R15: XXXXXXXXXXXXXXXX
+ RSP: XXXXXXXXXXXXXXXX
+
+ RIP: XXXXXXXXXXXXXXXX EFLAGS: XXXXXXXX
+
+ CS: XXXX DS: XXXX ES: XXXX FS: XXXX GS: XXXX
+
+ Trap: XXXXXXXX Error: XXXXXXXX OldMask: XXXXXXXX
+ RSP/SIGNAL: XXXXXXXXXXXXXXXX CR2: XXXXXXXX
+
+ FPUCW: XXXXXXXX FPUSW: XXXXXXXX TAG: XXXXXXXX
+ IPOFF: XXXXXXXX CSSEL: XXXX DATAOFF: XXXXXXXX DATASEL: XXXX
+
+ 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
+
+ mxcsr: XXXX
+ XMM0 : XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XMM1 : XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+ XMM2 : XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XMM3 : XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+ XMM4 : XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XMM5 : XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+ XMM6 : XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XMM7 : XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+ XMM8 : XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XMM9 : XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+ XMM10: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XMM11: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+ XMM12: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XMM13: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+ XMM14: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XMM15: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+
+ */
+
+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 ucontext *ctx)
+{
+ char regs[25][16];
+ char fpregs[30][8];
+ char xmmregs[16][32];
+ struct iovec iov[147];
+ size_t nr = 0;
+ int i;
+
+#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->uc_mcontext.gregs[REG_RAX], regs[0], 16);
+ hexvalue (ctx->uc_mcontext.gregs[REG_RBX], regs[1], 16);
+ hexvalue (ctx->uc_mcontext.gregs[REG_RCX], regs[2], 16);
+ hexvalue (ctx->uc_mcontext.gregs[REG_RDX], regs[3], 16);
+ hexvalue (ctx->uc_mcontext.gregs[REG_RSI], regs[4], 16);
+ hexvalue (ctx->uc_mcontext.gregs[REG_RDI], regs[5], 16);
+ hexvalue (ctx->uc_mcontext.gregs[REG_RBP], regs[6], 16);
+ hexvalue (ctx->uc_mcontext.gregs[REG_R8], regs[7], 16);
+ hexvalue (ctx->uc_mcontext.gregs[REG_R9], regs[8], 16);
+ hexvalue (ctx->uc_mcontext.gregs[REG_R10], regs[9], 16);
+ hexvalue (ctx->uc_mcontext.gregs[REG_R11], regs[10], 16);
+ hexvalue (ctx->uc_mcontext.gregs[REG_R12], regs[11], 16);
+ hexvalue (ctx->uc_mcontext.gregs[REG_R13], regs[12], 16);
+ hexvalue (ctx->uc_mcontext.gregs[REG_R14], regs[13], 16);
+ hexvalue (ctx->uc_mcontext.gregs[REG_R15], regs[14], 16);
+ hexvalue (ctx->uc_mcontext.gregs[REG_RSP], regs[15], 16);
+ hexvalue (ctx->uc_mcontext.gregs[REG_RIP], regs[16], 16);
+
+ hexvalue (ctx->uc_mcontext.gregs[REG_EFL], regs[17], 8);
+ hexvalue (ctx->uc_mcontext.gregs[REG_CSGSFS] & 0xffff, regs[18], 4);
+ hexvalue ((ctx->uc_mcontext.gregs[REG_CSGSFS] >> 16) & 0xffff, regs[19], 4);
+ hexvalue ((ctx->uc_mcontext.gregs[REG_CSGSFS] >> 32) & 0xffff, regs[20], 4);
+ /* hexvalue (ctx->ss, regs[23], 4); */
+ hexvalue (ctx->uc_mcontext.gregs[REG_TRAPNO], regs[21], 8);
+ hexvalue (ctx->uc_mcontext.gregs[REG_ERR], regs[22], 8);
+ hexvalue (ctx->uc_mcontext.gregs[REG_OLDMASK], regs[23], 8);
+ hexvalue (ctx->uc_mcontext.gregs[REG_CR2], regs[24], 8);
+
+ /* Generate the output. */
+ ADD_STRING ("Register dump:\n\n RAX: ");
+ ADD_MEM (regs[0], 16);
+ ADD_STRING (" RBX: ");
+ ADD_MEM (regs[1], 16);
+ ADD_STRING (" RCX: ");
+ ADD_MEM (regs[2], 16);
+ ADD_STRING ("\n RDX: ");
+ ADD_MEM (regs[3], 16);
+ ADD_STRING (" RSI: ");
+ ADD_MEM (regs[4], 16);
+ ADD_STRING (" RDI: ");
+ ADD_MEM (regs[5], 16);
+ ADD_STRING ("\n RBP: ");
+ ADD_MEM (regs[6], 16);
+ ADD_STRING (" R8 : ");
+ ADD_MEM (regs[7], 16);
+ ADD_STRING (" R9 : ");
+ ADD_MEM (regs[8], 16);
+ ADD_STRING ("\n R10: ");
+ ADD_MEM (regs[9], 16);
+ ADD_STRING (" R11: ");
+ ADD_MEM (regs[10], 16);
+ ADD_STRING (" R12: ");
+ ADD_MEM (regs[11], 16);
+ ADD_STRING ("\n R13: ");
+ ADD_MEM (regs[12], 16);
+ ADD_STRING (" R14: ");
+ ADD_MEM (regs[13], 16);
+ ADD_STRING (" R15: ");
+ ADD_MEM (regs[14], 16);
+ ADD_STRING ("\n RSP: ");
+ ADD_MEM (regs[15], 16);
+ ADD_STRING ("\n\n RIP: ");
+ ADD_MEM (regs[16], 16);
+ ADD_STRING (" EFLAGS: ");
+ ADD_MEM (regs[17], 8);
+ ADD_STRING ("\n\n CS: ");
+ ADD_MEM (regs[18], 4);
+ ADD_STRING (" FS: ");
+ ADD_MEM (regs[19], 4);
+ ADD_STRING (" GS: ");
+ ADD_MEM (regs[20], 4);
+ /*
+ ADD_STRING (" SS: ");
+ ADD_MEM (regs[23], 4);
+ */
+ ADD_STRING ("\n\n Trap: ");
+ ADD_MEM (regs[21], 8);
+ ADD_STRING (" Error: ");
+ ADD_MEM (regs[22], 8);
+ ADD_STRING (" OldMask: ");
+ ADD_MEM (regs[23], 8);
+ ADD_STRING (" CR2: ");
+ ADD_MEM (regs[24], 8);
+
+ if (ctx->uc_mcontext.fpregs != NULL)
+ {
+
+ /* Generate output for the FPU control/status registers. */
+ hexvalue (ctx->uc_mcontext.fpregs->cwd, fpregs[0], 8);
+ hexvalue (ctx->uc_mcontext.fpregs->swd, fpregs[1], 8);
+ hexvalue (ctx->uc_mcontext.fpregs->ftw, fpregs[2], 8);
+ hexvalue (ctx->uc_mcontext.fpregs->rip, fpregs[3], 8);
+ hexvalue (ctx->uc_mcontext.fpregs->rdp, fpregs[4], 8);
+
+ ADD_STRING ("\n\n FPUCW: ");
+ ADD_MEM (fpregs[0], 8);
+ ADD_STRING (" FPUSW: ");
+ ADD_MEM (fpregs[1], 8);
+ ADD_STRING (" TAG: ");
+ ADD_MEM (fpregs[2], 8);
+ ADD_STRING ("\n RIP: ");
+ ADD_MEM (fpregs[3], 8);
+ ADD_STRING (" RDP: ");
+ ADD_MEM (fpregs[4], 8);
+
+ /* Now the real FPU registers. */
+ hexvalue (ctx->uc_mcontext.fpregs->_st[0].exponent, fpregs[5], 8);
+ hexvalue (ctx->uc_mcontext.fpregs->_st[0].significand[3] << 16
+ | ctx->uc_mcontext.fpregs->_st[0].significand[2], fpregs[6],
+ 8);
+ hexvalue (ctx->uc_mcontext.fpregs->_st[0].significand[1] << 16
+ | ctx->uc_mcontext.fpregs->_st[0].significand[0], fpregs[7],
+ 8);
+ hexvalue (ctx->uc_mcontext.fpregs->_st[1].exponent, fpregs[8], 8);
+ hexvalue (ctx->uc_mcontext.fpregs->_st[1].significand[3] << 16
+ | ctx->uc_mcontext.fpregs->_st[1].significand[2], fpregs[9],
+ 8);
+ hexvalue (ctx->uc_mcontext.fpregs->_st[1].significand[1] << 16
+ | ctx->uc_mcontext.fpregs->_st[1].significand[0], fpregs[10],
+ 8);
+ hexvalue (ctx->uc_mcontext.fpregs->_st[2].exponent, fpregs[11], 8);
+ hexvalue (ctx->uc_mcontext.fpregs->_st[2].significand[3] << 16
+ | ctx->uc_mcontext.fpregs->_st[2].significand[2], fpregs[12],
+ 8);
+ hexvalue (ctx->uc_mcontext.fpregs->_st[2].significand[1] << 16
+ | ctx->uc_mcontext.fpregs->_st[2].significand[0], fpregs[13],
+ 8);
+ hexvalue (ctx->uc_mcontext.fpregs->_st[3].exponent, fpregs[14], 8);
+ hexvalue (ctx->uc_mcontext.fpregs->_st[3].significand[3] << 16
+ | ctx->uc_mcontext.fpregs->_st[3].significand[2], fpregs[15],
+ 8);
+ hexvalue (ctx->uc_mcontext.fpregs->_st[3].significand[1] << 16
+ | ctx->uc_mcontext.fpregs->_st[3].significand[0], fpregs[16],
+ 8);
+ hexvalue (ctx->uc_mcontext.fpregs->_st[4].exponent, fpregs[17], 8);
+ hexvalue (ctx->uc_mcontext.fpregs->_st[4].significand[3] << 16
+ | ctx->uc_mcontext.fpregs->_st[4].significand[2], fpregs[18],
+ 8);
+ hexvalue (ctx->uc_mcontext.fpregs->_st[4].significand[1] << 16
+ | ctx->uc_mcontext.fpregs->_st[4].significand[0], fpregs[19],
+ 8);
+ hexvalue (ctx->uc_mcontext.fpregs->_st[5].exponent, fpregs[20], 8);
+ hexvalue (ctx->uc_mcontext.fpregs->_st[5].significand[3] << 16
+ | ctx->uc_mcontext.fpregs->_st[5].significand[2], fpregs[21],
+ 8);
+ hexvalue (ctx->uc_mcontext.fpregs->_st[5].significand[1] << 16
+ | ctx->uc_mcontext.fpregs->_st[5].significand[0], fpregs[22],
+ 8);
+ hexvalue (ctx->uc_mcontext.fpregs->_st[6].exponent, fpregs[23], 8);
+ hexvalue (ctx->uc_mcontext.fpregs->_st[6].significand[3] << 16
+ | ctx->uc_mcontext.fpregs->_st[6].significand[2], fpregs[24],
+ 8);
+ hexvalue (ctx->uc_mcontext.fpregs->_st[6].significand[1] << 16
+ | ctx->uc_mcontext.fpregs->_st[6].significand[0], fpregs[25],
+ 8);
+ hexvalue (ctx->uc_mcontext.fpregs->_st[7].exponent, fpregs[26], 8);
+ hexvalue (ctx->uc_mcontext.fpregs->_st[7].significand[3] << 16
+ | ctx->uc_mcontext.fpregs->_st[7].significand[2], fpregs[27],
+ 8);
+ hexvalue (ctx->uc_mcontext.fpregs->_st[7].significand[1] << 16
+ | ctx->uc_mcontext.fpregs->_st[7].significand[0], fpregs[28],
+ 8);
+
+ hexvalue (ctx->uc_mcontext.fpregs->mxcsr, fpregs[29], 4);
+
+ for (i = 0; i < 16; i++)
+ hexvalue (ctx->uc_mcontext.fpregs->_xmm[i].element[3] << 24
+ | ctx->uc_mcontext.fpregs->_xmm[i].element[2] << 16
+ | ctx->uc_mcontext.fpregs->_xmm[i].element[1] << 8
+ | ctx->uc_mcontext.fpregs->_xmm[i].element[0], xmmregs[i],
+ 32);
+
+
+ ADD_STRING ("\n\n ST(0) ");
+ ADD_MEM (fpregs[5], 4);
+ ADD_STRING (" ");
+ ADD_MEM (fpregs[6], 8);
+ ADD_MEM (fpregs[7], 8);
+ ADD_STRING (" ST(1) ");
+ ADD_MEM (fpregs[8], 4);
+ ADD_STRING (" ");
+ ADD_MEM (fpregs[9], 8);
+ ADD_MEM (fpregs[10], 8);
+ ADD_STRING ("\n ST(2) ");
+ ADD_MEM (fpregs[11], 4);
+ ADD_STRING (" ");
+ ADD_MEM (fpregs[12], 8);
+ ADD_MEM (fpregs[13], 8);
+ ADD_STRING (" ST(3) ");
+ ADD_MEM (fpregs[14], 4);
+ ADD_STRING (" ");
+ ADD_MEM (fpregs[15], 8);
+ ADD_MEM (fpregs[16], 8);
+ ADD_STRING ("\n ST(4) ");
+ ADD_MEM (fpregs[17], 4);
+ ADD_STRING (" ");
+ ADD_MEM (fpregs[18], 8);
+ ADD_MEM (fpregs[19], 8);
+ ADD_STRING (" ST(5) ");
+ ADD_MEM (fpregs[20], 4);
+ ADD_STRING (" ");
+ ADD_MEM (fpregs[21], 8);
+ ADD_MEM (fpregs[22], 8);
+ ADD_STRING ("\n ST(6) ");
+ ADD_MEM (fpregs[23], 4);
+ ADD_STRING (" ");
+ ADD_MEM (fpregs[24], 8);
+ ADD_MEM (fpregs[25], 8);
+ ADD_STRING (" ST(7) ");
+ ADD_MEM (fpregs[27], 4);
+ ADD_STRING (" ");
+ ADD_MEM (fpregs[27], 8);
+ ADD_MEM (fpregs[28], 8);
+
+ ADD_STRING ("\n mxcsr: ");
+ ADD_MEM (fpregs[29], 4);
+
+ ADD_STRING ("\n XMM0: ");
+ ADD_MEM (xmmregs[0], 32);
+ ADD_STRING (" XMM1: ");
+ ADD_MEM (xmmregs[0], 32);
+ ADD_STRING ("\n XMM2: ");
+ ADD_MEM (xmmregs[0], 32);
+ ADD_STRING (" XMM3: ");
+ ADD_MEM (xmmregs[0], 32);
+ ADD_STRING ("\n XMM4: ");
+ ADD_MEM (xmmregs[0], 32);
+ ADD_STRING (" XMM5: ");
+ ADD_MEM (xmmregs[0], 32);
+ ADD_STRING ("\n XMM6: ");
+ ADD_MEM (xmmregs[0], 32);
+ ADD_STRING (" XMM7: ");
+ ADD_MEM (xmmregs[0], 32);
+ ADD_STRING ("\n XMM8: ");
+ ADD_MEM (xmmregs[0], 32);
+ ADD_STRING (" XMM9: ");
+ ADD_MEM (xmmregs[0], 32);
+ ADD_STRING ("\n XMM10: ");
+ ADD_MEM (xmmregs[0], 32);
+ ADD_STRING (" XMM11: ");
+ ADD_MEM (xmmregs[0], 32);
+ ADD_STRING ("\n XMM12: ");
+ ADD_MEM (xmmregs[0], 32);
+ ADD_STRING (" XMM13: ");
+ ADD_MEM (xmmregs[0], 32);
+ ADD_STRING ("\n XMM14: ");
+ ADD_MEM (xmmregs[0], 32);
+ ADD_STRING (" XMM15: ");
+ ADD_MEM (xmmregs[0], 32);
+
+ }
+
+ 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/x86_64/sched_setaffinity.c b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/sched_setaffinity.c
new file mode 100644
index 0000000000..d1101c56f5
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/sched_setaffinity.c
@@ -0,0 +1,14 @@
+#include <tls.h>
+
+#define RESET_VGETCPU_CACHE() \
+ do { \
+ asm volatile ("movl %0, %%fs:%P1\n\t" \
+ "movl %0, %%fs:%P2" \
+ : \
+ : "ir" (0), "i" (offsetof (struct pthread, \
+ header.vgetcpu_cache[0])), \
+ "i" (offsetof (struct pthread, \
+ header.vgetcpu_cache[1]))); \
+ } while (0)
+
+#include "../sched_setaffinity.c"
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/setcontext.S b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/setcontext.S
new file mode 100644
index 0000000000..f41e7d47a2
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/setcontext.S
@@ -0,0 +1,102 @@
+/* Install given context.
+ Copyright (C) 2002-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Andreas Jaeger <aj@suse.de>, 2002.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+
+#include "ucontext_i.h"
+
+
+/* int __setcontext (const ucontext_t *ucp)
+
+ Restores the machine context in UCP and thereby resumes execution
+ in that context.
+
+ This implementation is intended to be used for *synchronous* context
+ switches only. Therefore, it does not have to restore anything
+ other than the PRESERVED state. */
+
+ENTRY(__setcontext)
+ /* Save argument since syscall will destroy it. */
+ pushq %rdi
+ cfi_adjust_cfa_offset(8)
+
+ /* Set the signal mask with
+ rt_sigprocmask (SIG_SETMASK, mask, NULL, _NSIG/8). */
+ leaq oSIGMASK(%rdi), %rsi
+ xorl %edx, %edx
+ movl $SIG_SETMASK, %edi
+ movl $_NSIG8,%r10d
+ movl $__NR_rt_sigprocmask, %eax
+ syscall
+ popq %rdi /* Reload %rdi, adjust stack. */
+ cfi_adjust_cfa_offset(-8)
+ cmpq $-4095, %rax /* Check %rax for error. */
+ jae SYSCALL_ERROR_LABEL /* Jump to error handler if error. */
+
+ /* Restore the floating-point context. Not the registers, only the
+ rest. */
+ movq oFPREGS(%rdi), %rcx
+ fldenv (%rcx)
+ ldmxcsr oMXCSR(%rdi)
+
+
+ /* Load the new stack pointer, the preserved registers and
+ registers used for passing args. */
+ cfi_def_cfa(%rdi, 0)
+ cfi_offset(%rbx,oRBX)
+ cfi_offset(%rbp,oRBP)
+ cfi_offset(%r12,oR12)
+ cfi_offset(%r13,oR13)
+ cfi_offset(%r14,oR14)
+ cfi_offset(%r15,oR15)
+ cfi_offset(%rsp,oRSP)
+ cfi_offset(%rip,oRIP)
+
+ movq oRSP(%rdi), %rsp
+ movq oRBX(%rdi), %rbx
+ movq oRBP(%rdi), %rbp
+ movq oR12(%rdi), %r12
+ movq oR13(%rdi), %r13
+ movq oR14(%rdi), %r14
+ movq oR15(%rdi), %r15
+
+ /* The following ret should return to the address set with
+ getcontext. Therefore push the address on the stack. */
+ movq oRIP(%rdi), %rcx
+ pushq %rcx
+
+ movq oRSI(%rdi), %rsi
+ movq oRDX(%rdi), %rdx
+ movq oRCX(%rdi), %rcx
+ movq oR8(%rdi), %r8
+ movq oR9(%rdi), %r9
+
+ /* Setup finally %rdi. */
+ movq oRDI(%rdi), %rdi
+
+ /* End FDE here, we fall into another context. */
+ cfi_endproc
+ cfi_startproc
+
+ /* Clear rax to indicate success. */
+ xorl %eax, %eax
+ ret
+PSEUDO_END(__setcontext)
+
+weak_alias (__setcontext, setcontext)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/sigaction.c b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/sigaction.c
new file mode 100644
index 0000000000..be058bac43
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/sigaction.c
@@ -0,0 +1,176 @@
+/* POSIX.1 `sigaction' call for Linux/x86-64.
+ Copyright (C) 2001-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#include <errno.h>
+#include <stddef.h>
+#include <signal.h>
+#include <string.h>
+
+#include <sysdep.h>
+#include <sys/syscall.h>
+
+/* The difference here is that the sigaction structure used in the
+ kernel is not the same as we use in the libc. Therefore we must
+ translate it here. */
+#include <kernel_sigaction.h>
+
+#include "ucontext_i.h"
+
+/* We do not globally define the SA_RESTORER flag so do it here. */
+#define SA_RESTORER 0x04000000
+
+/* Using the hidden attribute here does not change the code but it
+ helps to avoid warnings. */
+extern void restore_rt (void) asm ("__restore_rt") attribute_hidden;
+
+
+/* If ACT is not NULL, change the action for SIG to *ACT.
+ If OACT is not NULL, put the old action for SIG in *OACT. */
+int
+__libc_sigaction (int sig, const struct sigaction *act, struct sigaction *oact)
+{
+ int result;
+ struct kernel_sigaction kact, koact;
+
+ if (act)
+ {
+ kact.k_sa_handler = act->sa_handler;
+ memcpy (&kact.sa_mask, &act->sa_mask, sizeof (sigset_t));
+ kact.sa_flags = act->sa_flags | SA_RESTORER;
+
+ kact.sa_restorer = &restore_rt;
+ }
+
+ /* XXX The size argument hopefully will have to be changed to the
+ real size of the user-level sigset_t. */
+ result = INLINE_SYSCALL (rt_sigaction, 4,
+ sig, act ? &kact : NULL,
+ oact ? &koact : NULL, _NSIG / 8);
+ if (oact && result >= 0)
+ {
+ oact->sa_handler = koact.k_sa_handler;
+ memcpy (&oact->sa_mask, &koact.sa_mask, sizeof (sigset_t));
+ oact->sa_flags = koact.sa_flags;
+ oact->sa_restorer = koact.sa_restorer;
+ }
+ return result;
+}
+libc_hidden_def (__libc_sigaction)
+
+#include <nptl/sigaction.c>
+
+
+/* NOTE: Please think twice before making any changes to the bits of
+ code below. GDB needs some intimate knowledge about it to
+ recognize them as signal trampolines, and make backtraces through
+ signal handlers work right. Important are both the names
+ (__restore_rt) and the exact instruction sequence.
+ If you ever feel the need to make any changes, please notify the
+ appropriate GDB maintainer.
+
+ The unwind information starts a byte before __restore_rt, so that
+ it is found when unwinding, to get an address the unwinder assumes
+ will be in the middle of a call instruction. See the Linux kernel
+ (the i386 vsyscall, in particular) for an explanation of the complex
+ unwind information used here in order to get the traditional CFA.
+ We do not restore cs - it's only stored as two bytes here so that's
+ a bit tricky. We don't use the gas cfi directives, so that we can
+ reliably add .cfi_signal_frame. */
+
+#define do_cfa_expr \
+ " .byte 0x0f\n" /* DW_CFA_def_cfa_expression */ \
+ " .uleb128 2f-1f\n" /* length */ \
+ "1: .byte 0x77\n" /* DW_OP_breg7 */ \
+ " .sleb128 " CFI_STRINGIFY (oRSP) "\n" \
+ " .byte 0x06\n" /* DW_OP_deref */ \
+ "2:"
+
+#define do_expr(regno, offset) \
+ " .byte 0x10\n" /* DW_CFA_expression */ \
+ " .uleb128 " CFI_STRINGIFY (regno) "\n" \
+ " .uleb128 2f-1f\n" /* length */ \
+ "1: .byte 0x77\n" /* DW_OP_breg7 */ \
+ " .sleb128 " CFI_STRINGIFY (offset) "\n" \
+ "2:"
+
+#define RESTORE(name, syscall) RESTORE2 (name, syscall)
+# define RESTORE2(name, syscall) \
+asm \
+ ( \
+ /* `nop' for debuggers assuming `call' should not disalign the code. */ \
+ " nop\n" \
+ ".align 16\n" \
+ ".LSTART_" #name ":\n" \
+ " .type __" #name ",@function\n" \
+ "__" #name ":\n" \
+ " movq $" #syscall ", %rax\n" \
+ " syscall\n" \
+ ".LEND_" #name ":\n" \
+ ".section .eh_frame,\"a\",@progbits\n" \
+ ".LSTARTFRAME_" #name ":\n" \
+ " .long .LENDCIE_" #name "-.LSTARTCIE_" #name "\n" \
+ ".LSTARTCIE_" #name ":\n" \
+ " .long 0\n" /* CIE ID */ \
+ " .byte 1\n" /* Version number */ \
+ " .string \"zRS\"\n" /* NUL-terminated augmentation string */ \
+ " .uleb128 1\n" /* Code alignment factor */ \
+ " .sleb128 -8\n" /* Data alignment factor */ \
+ " .uleb128 16\n" /* Return address register column (rip) */ \
+ /* Augmentation value length */ \
+ " .uleb128 .LENDAUGMNT_" #name "-.LSTARTAUGMNT_" #name "\n" \
+ ".LSTARTAUGMNT_" #name ":\n" \
+ " .byte 0x1b\n" /* DW_EH_PE_pcrel|DW_EH_PE_sdata4. */ \
+ ".LENDAUGMNT_" #name ":\n" \
+ " .align " LP_SIZE "\n" \
+ ".LENDCIE_" #name ":\n" \
+ " .long .LENDFDE_" #name "-.LSTARTFDE_" #name "\n" /* FDE len */ \
+ ".LSTARTFDE_" #name ":\n" \
+ " .long .LSTARTFDE_" #name "-.LSTARTFRAME_" #name "\n" /* CIE */ \
+ /* `LSTART_' is subtracted 1 as debuggers assume a `call' here. */ \
+ " .long (.LSTART_" #name "-1)-.\n" /* PC-relative start addr. */ \
+ " .long .LEND_" #name "-(.LSTART_" #name "-1)\n" \
+ " .uleb128 0\n" /* FDE augmentation length */ \
+ do_cfa_expr \
+ do_expr (8 /* r8 */, oR8) \
+ do_expr (9 /* r9 */, oR9) \
+ do_expr (10 /* r10 */, oR10) \
+ do_expr (11 /* r11 */, oR11) \
+ do_expr (12 /* r12 */, oR12) \
+ do_expr (13 /* r13 */, oR13) \
+ do_expr (14 /* r14 */, oR14) \
+ do_expr (15 /* r15 */, oR15) \
+ do_expr (5 /* rdi */, oRDI) \
+ do_expr (4 /* rsi */, oRSI) \
+ do_expr (6 /* rbp */, oRBP) \
+ do_expr (3 /* rbx */, oRBX) \
+ do_expr (1 /* rdx */, oRDX) \
+ do_expr (0 /* rax */, oRAX) \
+ do_expr (2 /* rcx */, oRCX) \
+ do_expr (7 /* rsp */, oRSP) \
+ do_expr (16 /* rip */, oRIP) \
+ /* libgcc-4.1.1 has only `DWARF_FRAME_REGISTERS == 17'. */ \
+ /* do_expr (49 |* rflags *|, oEFL) */ \
+ /* `cs'/`ds'/`fs' are unaligned and a different size. */ \
+ /* gas: Error: register save offset not a multiple of 8 */ \
+ " .align " LP_SIZE "\n" \
+ ".LENDFDE_" #name ":\n" \
+ " .previous\n" \
+ );
+/* The return code for realtime-signals. */
+RESTORE (restore_rt, __NR_rt_sigreturn)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/sigaltstack-offsets.sym b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/sigaltstack-offsets.sym
new file mode 100644
index 0000000000..5ff3af4a82
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/sigaltstack-offsets.sym
@@ -0,0 +1,15 @@
+#ifndef _XOPEN_EXTENDED
+# define _XOPEN_EXTENDED
+#endif
+
+#include <stddef.h>
+#include <signal.h>
+
+--
+
+#define sigaltstack(member) offsetof (stack_t, member)
+
+sizeSS sizeof (stack_t)
+oSS_SP sigaltstack (ss_sp)
+oSS_SIZE sigaltstack (ss_size)
+oSS_FLAGS sigaltstack (ss_flags)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/sigcontextinfo.h b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/sigcontextinfo.h
new file mode 100644
index 0000000000..e935353ccd
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/sigcontextinfo.h
@@ -0,0 +1,30 @@
+/* Copyright (C) 2001-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <stdint.h>
+
+#define SIGCONTEXT siginfo_t *_si, struct ucontext *
+#define SIGCONTEXT_EXTRA_ARGS _si,
+#define GET_PC(ctx) \
+ ((void *) (uintptr_t) (ctx)->uc_mcontext.gregs[REG_RIP])
+#define GET_FRAME(ctx) \
+ ((void *) (uintptr_t) (ctx)->uc_mcontext.gregs[REG_RBP])
+#define GET_STACK(ctx) \
+ ((void *) (uintptr_t) (ctx)->uc_mcontext.gregs[REG_RSP])
+
+#define CALL_SIGHANDLER(handler, signo, ctx) \
+ (handler)((signo), SIGCONTEXT_EXTRA_ARGS (ctx))
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/sigpending.c b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/sigpending.c
new file mode 100644
index 0000000000..410217ed84
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/sigpending.c
@@ -0,0 +1,36 @@
+/* Copyright (C) 1997-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+/* Linux/x86_64 only has rt signals, thus we do not even want to try falling
+ back to the old style signals as the default Linux handler does. */
+
+#include <errno.h>
+#include <signal.h>
+#include <unistd.h>
+
+#include <sysdep.h>
+#include <sys/syscall.h>
+
+/* Change the set of blocked signals to SET,
+ wait until a signal arrives, and restore the set of blocked signals. */
+int
+sigpending (sigset_t *set)
+{
+ /* XXX The size argument hopefully will have to be changed to the
+ real size of the user-level sigset_t. */
+ return INLINE_SYSCALL (rt_sigpending, 2, set, _NSIG / 8);
+}
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/sigprocmask.c b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/sigprocmask.c
new file mode 100644
index 0000000000..a87ad106ea
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/sigprocmask.c
@@ -0,0 +1,38 @@
+/* Copyright (C) 1997-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Written by Jes Sorensen, <Jes.Sorensen@cern.ch>, April 1999.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+/* Linux/x86_64 only has rt signals, thus we do not even want to try falling
+ back to the old style signals as the default Linux handler does. */
+
+#include <errno.h>
+#include <signal.h>
+#include <unistd.h>
+
+#include <sysdep.h>
+#include <sys/syscall.h>
+
+/* Get and/or change the set of blocked signals. */
+int
+__sigprocmask (int how, const sigset_t *set, sigset_t *oset)
+{
+
+ /* XXX The size argument hopefully will have to be changed to the
+ real size of the user-level sigset_t. */
+ return INLINE_SYSCALL (rt_sigprocmask, 4, how, set, oset, _NSIG / 8);
+}
+weak_alias (__sigprocmask, sigprocmask)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/swapcontext.S b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/swapcontext.S
new file mode 100644
index 0000000000..0e1f0b5cab
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/swapcontext.S
@@ -0,0 +1,120 @@
+/* Save current context and install the given one.
+ Copyright (C) 2002-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Andreas Jaeger <aj@suse.de>, 2002.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+
+#include "ucontext_i.h"
+
+
+/* int __swapcontext (ucontext_t *oucp, const ucontext_t *ucp);
+
+ Saves the machine context in oucp such that when it is activated,
+ it appears as if __swapcontextt() 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)
+ /* Save the preserved registers, the registers used for passing args,
+ and the return address. */
+ movq %rbx, oRBX(%rdi)
+ movq %rbp, oRBP(%rdi)
+ movq %r12, oR12(%rdi)
+ movq %r13, oR13(%rdi)
+ movq %r14, oR14(%rdi)
+ movq %r15, oR15(%rdi)
+
+ movq %rdi, oRDI(%rdi)
+ movq %rsi, oRSI(%rdi)
+ movq %rdx, oRDX(%rdi)
+ movq %rcx, oRCX(%rdi)
+ movq %r8, oR8(%rdi)
+ movq %r9, oR9(%rdi)
+
+ movq (%rsp), %rcx
+ movq %rcx, oRIP(%rdi)
+ leaq 8(%rsp), %rcx /* Exclude the return address. */
+ movq %rcx, oRSP(%rdi)
+
+ /* We have separate floating-point register content memory on the
+ stack. We use the __fpregs_mem block in the context. Set the
+ links up correctly. */
+ leaq oFPREGSMEM(%rdi), %rcx
+ movq %rcx, oFPREGS(%rdi)
+ /* Save the floating-point environment. */
+ fnstenv (%rcx)
+ stmxcsr oMXCSR(%rdi)
+
+
+ /* The syscall destroys some registers, save them. */
+ movq %rsi, %r12
+
+ /* Save the current signal mask and install the new one with
+ rt_sigprocmask (SIG_BLOCK, newset, oldset,_NSIG/8). */
+ leaq oSIGMASK(%rdi), %rdx
+ leaq oSIGMASK(%rsi), %rsi
+ movl $SIG_SETMASK, %edi
+ movl $_NSIG8,%r10d
+ movl $__NR_rt_sigprocmask, %eax
+ syscall
+ cmpq $-4095, %rax /* Check %rax for error. */
+ jae SYSCALL_ERROR_LABEL /* Jump to error handler if error. */
+
+ /* Restore destroyed registers. */
+ movq %r12, %rsi
+
+ /* Restore the floating-point context. Not the registers, only the
+ rest. */
+ movq oFPREGS(%rsi), %rcx
+ fldenv (%rcx)
+ ldmxcsr oMXCSR(%rsi)
+
+ /* Load the new stack pointer and the preserved registers. */
+ movq oRSP(%rsi), %rsp
+ movq oRBX(%rsi), %rbx
+ movq oRBP(%rsi), %rbp
+ movq oR12(%rsi), %r12
+ movq oR13(%rsi), %r13
+ movq oR14(%rsi), %r14
+ movq oR15(%rsi), %r15
+
+ /* The following ret should return to the address set with
+ getcontext. Therefore push the address on the stack. */
+ movq oRIP(%rsi), %rcx
+ pushq %rcx
+
+ /* Setup registers used for passing args. */
+ movq oRDI(%rsi), %rdi
+ movq oRDX(%rsi), %rdx
+ movq oRCX(%rsi), %rcx
+ movq oR8(%rsi), %r8
+ movq oR9(%rsi), %r9
+
+ /* Setup finally %rsi. */
+ movq oRSI(%rsi), %rsi
+
+ /* Clear rax to indicate success. */
+ xorl %eax, %eax
+ ret
+PSEUDO_END(__swapcontext)
+
+weak_alias (__swapcontext, swapcontext)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/syscall.S b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/syscall.S
new file mode 100644
index 0000000000..f6486b9e4d
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/syscall.S
@@ -0,0 +1,42 @@
+/* Copyright (C) 2001-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+
+/* Please consult the file sysdeps/unix/sysv/linux/x86-64/sysdep.h for
+ more information about the value -4095 used below. */
+
+/* Usage: long syscall (syscall_number, arg1, arg2, arg3, arg4, arg5, arg6)
+ We need to do some arg shifting, the syscall_number will be in
+ rax. */
+
+
+ .text
+ENTRY (syscall)
+ movq %rdi, %rax /* Syscall number -> rax. */
+ movq %rsi, %rdi /* shift arg1 - arg5. */
+ movq %rdx, %rsi
+ movq %rcx, %rdx
+ movq %r8, %r10
+ movq %r9, %r8
+ movq 8(%rsp),%r9 /* arg6 is on the stack. */
+ syscall /* Do the system call. */
+ cmpq $-4095, %rax /* Check %rax for error. */
+ jae SYSCALL_ERROR_LABEL /* Jump to error handler if error. */
+ ret /* Return to caller. */
+
+PSEUDO_END (syscall)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/syscalls.list b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/syscalls.list
new file mode 100644
index 0000000000..889193ba76
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/syscalls.list
@@ -0,0 +1,21 @@
+# File name Caller Syscall name # args Strong name Weak names
+
+arch_prctl EXTRA arch_prctl i:ii __arch_prctl arch_prctl
+modify_ldt EXTRA modify_ldt i:ipi __modify_ldt modify_ldt
+pread64 - pread64 Ci:ipii __libc_pread __libc_pread64 __pread64 pread64 __pread pread
+preadv64 - preadv Ci:ipii preadv64 preadv
+pwrite64 - pwrite64 Ci:ipii __libc_pwrite __libc_pwrite64 __pwrite64 pwrite64 __pwrite pwrite
+pwritev64 - pwritev Ci:ipii pwritev64 pwritev
+syscall_clock_gettime EXTRA clock_gettime Ei:ip __syscall_clock_gettime
+
+
+# proper socket implementations:
+bind - bind i:ipi __bind bind
+getpeername - getpeername i:ipp __getpeername getpeername
+getsockname - getsockname i:ipp __getsockname getsockname
+getsockopt - getsockopt i:iiiBN __getsockopt getsockopt
+listen - listen i:ii __listen listen
+setsockopt - setsockopt i:iiibn __setsockopt setsockopt
+shutdown - shutdown i:ii __shutdown shutdown
+socket - socket i:iii __socket socket
+socketpair - socketpair i:iiif __socketpair socketpair
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h
new file mode 100644
index 0000000000..65980102be
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h
@@ -0,0 +1,109 @@
+/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Jakub Jelinek <jakub@redhat.com>, 2002.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#include <tls.h>
+#ifndef __ASSEMBLER__
+# include <nptl/pthreadP.h>
+#endif
+
+#if IS_IN (libc) || IS_IN (libpthread) || IS_IN (librt)
+
+/* The code to disable cancellation depends on the fact that the called
+ functions are special. They don't modify registers other than %rax
+ and %r11 if they return. Therefore we don't have to preserve other
+ registers around these calls. */
+# undef PSEUDO
+# define PSEUDO(name, syscall_name, args) \
+ .text; \
+ ENTRY (name) \
+ SINGLE_THREAD_P; \
+ jne L(pseudo_cancel); \
+ .type __##syscall_name##_nocancel,@function; \
+ .globl __##syscall_name##_nocancel; \
+ __##syscall_name##_nocancel: \
+ DO_CALL (syscall_name, args); \
+ cmpq $-4095, %rax; \
+ jae SYSCALL_ERROR_LABEL; \
+ ret; \
+ .size __##syscall_name##_nocancel,.-__##syscall_name##_nocancel; \
+ L(pseudo_cancel): \
+ /* We always have to align the stack before calling a function. */ \
+ subq $8, %rsp; cfi_adjust_cfa_offset (8); \
+ CENABLE \
+ /* The return value from CENABLE is argument for CDISABLE. */ \
+ movq %rax, (%rsp); \
+ DO_CALL (syscall_name, args); \
+ movq (%rsp), %rdi; \
+ /* Save %rax since it's the error code from the syscall. */ \
+ movq %rax, %rdx; \
+ CDISABLE \
+ movq %rdx, %rax; \
+ addq $8,%rsp; cfi_adjust_cfa_offset (-8); \
+ cmpq $-4095, %rax; \
+ jae SYSCALL_ERROR_LABEL
+
+
+# if IS_IN (libpthread)
+# define CENABLE call __pthread_enable_asynccancel;
+# define CDISABLE call __pthread_disable_asynccancel;
+# define __local_multiple_threads __pthread_multiple_threads
+# elif IS_IN (libc)
+# define CENABLE call __libc_enable_asynccancel;
+# define CDISABLE call __libc_disable_asynccancel;
+# define __local_multiple_threads __libc_multiple_threads
+# elif IS_IN (librt)
+# define CENABLE call __librt_enable_asynccancel;
+# define CDISABLE call __librt_disable_asynccancel;
+# else
+# error Unsupported library
+# endif
+
+# if IS_IN (libpthread) || IS_IN (libc)
+# ifndef __ASSEMBLER__
+extern int __local_multiple_threads attribute_hidden;
+# define SINGLE_THREAD_P \
+ __builtin_expect (__local_multiple_threads == 0, 1)
+# else
+# define SINGLE_THREAD_P cmpl $0, __local_multiple_threads(%rip)
+# endif
+
+# else
+
+# ifndef __ASSEMBLER__
+# define SINGLE_THREAD_P \
+ __builtin_expect (THREAD_GETMEM (THREAD_SELF, \
+ header.multiple_threads) == 0, 1)
+# else
+# define SINGLE_THREAD_P cmpl $0, %fs:MULTIPLE_THREADS_OFFSET
+# endif
+
+# 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/x86_64/sysdep.S b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/sysdep.S
new file mode 100644
index 0000000000..29b664d3f1
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/sysdep.S
@@ -0,0 +1,40 @@
+/* Copyright (C) 2001-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.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. */
+
+#ifndef PIC
+
+/* The syscall stubs jump here when they detect an error.
+ The code for Linux is almost identical to the canonical Unix
+ code, except that the error number in %rax is negated. */
+
+#undef CALL_MCOUNT
+#define CALL_MCOUNT /* Don't insert the profiling call, it clobbers %rax. */
+
+ .text
+ENTRY (__syscall_error)
+ neg %RAX_LP
+
+#define __syscall_error __syscall_error_1
+#include <sysdeps/unix/x86_64/sysdep.S>
+
+#endif /* !PIC */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/sysdep.h b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/sysdep.h
new file mode 100644
index 0000000000..880e496880
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/sysdep.h
@@ -0,0 +1,392 @@
+/* Copyright (C) 2001-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _LINUX_X86_64_SYSDEP_H
+#define _LINUX_X86_64_SYSDEP_H 1
+
+/* There is some commonality. */
+#include <sysdeps/unix/sysv/linux/sysdep.h>
+#include <sysdeps/unix/x86_64/sysdep.h>
+#include <tls.h>
+
+#if IS_IN (rtld)
+# include <dl-sysdep.h> /* Defines RTLD_PRIVATE_ERRNO. */
+#endif
+
+/* For Linux we can use the system call table in the header file
+ /usr/include/asm/unistd.h
+ of the kernel. But these symbols do not follow the SYS_* syntax
+ so we have to redefine the `SYS_ify' macro here. */
+#undef SYS_ify
+#define SYS_ify(syscall_name) __NR_##syscall_name
+
+/* This is a kludge to make syscalls.list find these under the names
+ pread and pwrite, since some kernel headers define those names
+ and some define the *64 names for the same system calls. */
+#if !defined __NR_pread && defined __NR_pread64
+# define __NR_pread __NR_pread64
+#endif
+#if !defined __NR_pwrite && defined __NR_pwrite64
+# define __NR_pwrite __NR_pwrite64
+#endif
+
+/* This is to help the old kernel headers where __NR_semtimedop is not
+ available. */
+#ifndef __NR_semtimedop
+# define __NR_semtimedop 220
+#endif
+
+
+#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 %eax
+ is a real error number. Linus said he will make sure the no syscall
+ returns a value in -1 .. -4095 as a valid result so we can savely
+ test with -4095. */
+
+/* We don't want the label for the error handle to be global when we define
+ it here. */
+# ifdef PIC
+# define SYSCALL_ERROR_LABEL 0f
+# else
+# define SYSCALL_ERROR_LABEL syscall_error
+# endif
+
+# undef PSEUDO
+# define PSEUDO(name, syscall_name, args) \
+ .text; \
+ ENTRY (name) \
+ DO_CALL (syscall_name, args); \
+ cmpq $-4095, %rax; \
+ jae 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)
+
+# define ret_NOERRNO ret
+
+# undef PSEUDO_ERRVAL
+# define PSEUDO_ERRVAL(name, syscall_name, args) \
+ .text; \
+ ENTRY (name) \
+ DO_CALL (syscall_name, args); \
+ negq %rax
+
+# undef PSEUDO_END_ERRVAL
+# define PSEUDO_END_ERRVAL(name) \
+ END (name)
+
+# define ret_ERRVAL ret
+
+# if defined PIC && defined RTLD_PRIVATE_ERRNO
+# define SYSCALL_SET_ERRNO \
+ lea rtld_errno(%rip), %RCX_LP; \
+ neg %eax; \
+ movl %eax, (%rcx)
+# else
+# if IS_IN (libc)
+# define SYSCALL_ERROR_ERRNO __libc_errno
+# else
+# define SYSCALL_ERROR_ERRNO errno
+# endif
+# define SYSCALL_SET_ERRNO \
+ movq SYSCALL_ERROR_ERRNO@GOTTPOFF(%rip), %rcx;\
+ neg %eax; \
+ movl %eax, %fs:(%rcx);
+# endif
+
+# ifndef PIC
+# define SYSCALL_ERROR_HANDLER /* Nothing here; code in sysdep.S is used. */
+# else
+# define SYSCALL_ERROR_HANDLER \
+0: \
+ SYSCALL_SET_ERRNO; \
+ or $-1, %RAX_LP; \
+ ret;
+# endif /* PIC */
+
+/* The Linux/x86-64 kernel expects the system call parameters in
+ registers according to the following table:
+
+ syscall number rax
+ arg 1 rdi
+ arg 2 rsi
+ arg 3 rdx
+ arg 4 r10
+ arg 5 r8
+ arg 6 r9
+
+ The Linux kernel uses and destroys internally these registers:
+ return address from
+ syscall rcx
+ eflags from syscall r11
+
+ Normal function call, including calls to the system call stub
+ functions in the libc, get the first six parameters passed in
+ registers and the seventh parameter and later on the stack. The
+ register use is as follows:
+
+ system call number in the DO_CALL macro
+ arg 1 rdi
+ arg 2 rsi
+ arg 3 rdx
+ arg 4 rcx
+ arg 5 r8
+ arg 6 r9
+
+ We have to take care that the stack is aligned to 16 bytes. When
+ called the stack is not aligned since the return address has just
+ been pushed.
+
+
+ Syscalls of more than 6 arguments are not supported. */
+
+# undef DO_CALL
+# define DO_CALL(syscall_name, args) \
+ DOARGS_##args \
+ movl $SYS_ify (syscall_name), %eax; \
+ syscall;
+
+# define DOARGS_0 /* nothing */
+# define DOARGS_1 /* nothing */
+# define DOARGS_2 /* nothing */
+# define DOARGS_3 /* nothing */
+# define DOARGS_4 movq %rcx, %r10;
+# define DOARGS_5 DOARGS_4
+# define DOARGS_6 DOARGS_5
+
+#else /* !__ASSEMBLER__ */
+/* Define a macro which expands inline into the wrapper code for a system
+ call. */
+# undef INLINE_SYSCALL
+# define INLINE_SYSCALL(name, nr, args...) \
+ ({ \
+ unsigned long int resultvar = INTERNAL_SYSCALL (name, , nr, args); \
+ if (__glibc_unlikely (INTERNAL_SYSCALL_ERROR_P (resultvar, ))) \
+ { \
+ __set_errno (INTERNAL_SYSCALL_ERRNO (resultvar, )); \
+ resultvar = (unsigned long int) -1; \
+ } \
+ (long int) resultvar; })
+
+/* Define a macro with explicit types for arguments, which expands inline
+ into the wrapper code for a system call. It should be used when size
+ of any argument > size of long int. */
+# undef INLINE_SYSCALL_TYPES
+# define INLINE_SYSCALL_TYPES(name, nr, args...) \
+ ({ \
+ unsigned long int resultvar = INTERNAL_SYSCALL_TYPES (name, , nr, args); \
+ if (__glibc_unlikely (INTERNAL_SYSCALL_ERROR_P (resultvar, ))) \
+ { \
+ __set_errno (INTERNAL_SYSCALL_ERRNO (resultvar, )); \
+ resultvar = (unsigned long int) -1; \
+ } \
+ (long int) resultvar; })
+
+# undef INTERNAL_SYSCALL_DECL
+# define INTERNAL_SYSCALL_DECL(err) do { } while (0)
+
+/* Registers clobbered by syscall. */
+# define REGISTERS_CLOBBERED_BY_SYSCALL "cc", "r11", "cx"
+
+# define INTERNAL_SYSCALL_NCS(name, err, nr, args...) \
+ ({ \
+ unsigned long int resultvar; \
+ LOAD_ARGS_##nr (args) \
+ LOAD_REGS_##nr \
+ asm volatile ( \
+ "syscall\n\t" \
+ : "=a" (resultvar) \
+ : "0" (name) ASM_ARGS_##nr : "memory", REGISTERS_CLOBBERED_BY_SYSCALL); \
+ (long int) resultvar; })
+# undef INTERNAL_SYSCALL
+# define INTERNAL_SYSCALL(name, err, nr, args...) \
+ INTERNAL_SYSCALL_NCS (__NR_##name, err, nr, ##args)
+
+# define INTERNAL_SYSCALL_NCS_TYPES(name, err, nr, args...) \
+ ({ \
+ unsigned long int resultvar; \
+ LOAD_ARGS_TYPES_##nr (args) \
+ LOAD_REGS_TYPES_##nr (args) \
+ asm volatile ( \
+ "syscall\n\t" \
+ : "=a" (resultvar) \
+ : "0" (name) ASM_ARGS_##nr : "memory", REGISTERS_CLOBBERED_BY_SYSCALL); \
+ (long int) resultvar; })
+# undef INTERNAL_SYSCALL_TYPES
+# define INTERNAL_SYSCALL_TYPES(name, err, nr, args...) \
+ INTERNAL_SYSCALL_NCS_TYPES (__NR_##name, err, nr, ##args)
+
+# undef INTERNAL_SYSCALL_ERROR_P
+# define INTERNAL_SYSCALL_ERROR_P(val, err) \
+ ((unsigned long int) (long int) (val) >= -4095L)
+
+# undef INTERNAL_SYSCALL_ERRNO
+# define INTERNAL_SYSCALL_ERRNO(val, err) (-(val))
+
+/* List of system calls which are supported as vsyscalls. */
+# define HAVE_CLOCK_GETTIME_VSYSCALL 1
+# define HAVE_GETTIMEOFDAY_VSYSCALL 1
+# define HAVE_GETCPU_VSYSCALL 1
+
+# define LOAD_ARGS_0()
+# define LOAD_REGS_0
+# define ASM_ARGS_0
+
+# define LOAD_ARGS_TYPES_1(t1, a1) \
+ t1 __arg1 = (t1) (a1); \
+ LOAD_ARGS_0 ()
+# define LOAD_REGS_TYPES_1(t1, a1) \
+ register t1 _a1 asm ("rdi") = __arg1; \
+ LOAD_REGS_0
+# define ASM_ARGS_1 ASM_ARGS_0, "r" (_a1)
+# define LOAD_ARGS_1(a1) \
+ LOAD_ARGS_TYPES_1 (long int, a1)
+# define LOAD_REGS_1 \
+ LOAD_REGS_TYPES_1 (long int, a1)
+
+# define LOAD_ARGS_TYPES_2(t1, a1, t2, a2) \
+ t2 __arg2 = (t2) (a2); \
+ LOAD_ARGS_TYPES_1 (t1, a1)
+# define LOAD_REGS_TYPES_2(t1, a1, t2, a2) \
+ register t2 _a2 asm ("rsi") = __arg2; \
+ LOAD_REGS_TYPES_1(t1, a1)
+# define ASM_ARGS_2 ASM_ARGS_1, "r" (_a2)
+# define LOAD_ARGS_2(a1, a2) \
+ LOAD_ARGS_TYPES_2 (long int, a1, long int, a2)
+# define LOAD_REGS_2 \
+ LOAD_REGS_TYPES_2 (long int, a1, long int, a2)
+
+# define LOAD_ARGS_TYPES_3(t1, a1, t2, a2, t3, a3) \
+ t3 __arg3 = (t3) (a3); \
+ LOAD_ARGS_TYPES_2 (t1, a1, t2, a2)
+# define LOAD_REGS_TYPES_3(t1, a1, t2, a2, t3, a3) \
+ register t3 _a3 asm ("rdx") = __arg3; \
+ LOAD_REGS_TYPES_2(t1, a1, t2, a2)
+# define ASM_ARGS_3 ASM_ARGS_2, "r" (_a3)
+# define LOAD_ARGS_3(a1, a2, a3) \
+ LOAD_ARGS_TYPES_3 (long int, a1, long int, a2, long int, a3)
+# define LOAD_REGS_3 \
+ LOAD_REGS_TYPES_3 (long int, a1, long int, a2, long int, a3)
+
+# define LOAD_ARGS_TYPES_4(t1, a1, t2, a2, t3, a3, t4, a4) \
+ t4 __arg4 = (t4) (a4); \
+ LOAD_ARGS_TYPES_3 (t1, a1, t2, a2, t3, a3)
+# define LOAD_REGS_TYPES_4(t1, a1, t2, a2, t3, a3, t4, a4) \
+ register t4 _a4 asm ("r10") = __arg4; \
+ LOAD_REGS_TYPES_3(t1, a2, t2, a2, t3, a3)
+# define ASM_ARGS_4 ASM_ARGS_3, "r" (_a4)
+# define LOAD_ARGS_4(a1, a2, a3, a4) \
+ LOAD_ARGS_TYPES_4 (long int, a1, long int, a2, long int, a3, \
+ long int, a4)
+# define LOAD_REGS_4 \
+ LOAD_REGS_TYPES_4 (long int, a1, long int, a2, long int, a3, \
+ long int, a4)
+
+# define LOAD_ARGS_TYPES_5(t1, a1, t2, a2, t3, a3, t4, a4, t5, a5) \
+ t5 __arg5 = (t5) (a5); \
+ LOAD_ARGS_TYPES_4 (t1, a1, t2, a2, t3, a3, t4, a4)
+# define LOAD_REGS_TYPES_5(t1, a1, t2, a2, t3, a3, t4, a4, t5, a5) \
+ register t5 _a5 asm ("r8") = __arg5; \
+ LOAD_REGS_TYPES_4 (t1, a1, t2, a2, t3, a3, t4, a4)
+# define ASM_ARGS_5 ASM_ARGS_4, "r" (_a5)
+# define LOAD_ARGS_5(a1, a2, a3, a4, a5) \
+ LOAD_ARGS_TYPES_5 (long int, a1, long int, a2, long int, a3, \
+ long int, a4, long int, a5)
+# define LOAD_REGS_5 \
+ LOAD_REGS_TYPES_5 (long int, a1, long int, a2, long int, a3, \
+ long int, a4, long int, a5)
+
+# define LOAD_ARGS_TYPES_6(t1, a1, t2, a2, t3, a3, t4, a4, t5, a5, t6, a6) \
+ t6 __arg6 = (t6) (a6); \
+ LOAD_ARGS_TYPES_5 (t1, a1, t2, a2, t3, a3, t4, a4, t5, a5)
+# define LOAD_REGS_TYPES_6(t1, a1, t2, a2, t3, a3, t4, a4, t5, a5, t6, a6) \
+ register t6 _a6 asm ("r9") = __arg6; \
+ LOAD_REGS_TYPES_5 (t1, a1, t2, a2, t3, a3, t4, a4, t5, a5)
+# define ASM_ARGS_6 ASM_ARGS_5, "r" (_a6)
+# define LOAD_ARGS_6(a1, a2, a3, a4, a5, a6) \
+ LOAD_ARGS_TYPES_6 (long int, a1, long int, a2, long int, a3, \
+ long int, a4, long int, a5, long int, a6)
+# define LOAD_REGS_6 \
+ LOAD_REGS_TYPES_6 (long int, a1, long int, a2, long int, a3, \
+ long int, a4, long int, a5, long int, a6)
+
+#endif /* __ASSEMBLER__ */
+
+
+/* Pointer mangling support. */
+#if IS_IN (rtld)
+/* We cannot use the thread descriptor because in ld.so we use setjmp
+ earlier than the descriptor is initialized. */
+# ifdef __ASSEMBLER__
+# define PTR_MANGLE(reg) xor __pointer_chk_guard_local(%rip), reg; \
+ rol $2*LP_SIZE+1, reg
+# define PTR_DEMANGLE(reg) ror $2*LP_SIZE+1, reg; \
+ xor __pointer_chk_guard_local(%rip), reg
+# else
+# define PTR_MANGLE(reg) asm ("xor __pointer_chk_guard_local(%%rip), %0\n" \
+ "rol $2*" LP_SIZE "+1, %0" \
+ : "=r" (reg) : "0" (reg))
+# define PTR_DEMANGLE(reg) asm ("ror $2*" LP_SIZE "+1, %0\n" \
+ "xor __pointer_chk_guard_local(%%rip), %0" \
+ : "=r" (reg) : "0" (reg))
+# endif
+#else
+# ifdef __ASSEMBLER__
+# define PTR_MANGLE(reg) xor %fs:POINTER_GUARD, reg; \
+ rol $2*LP_SIZE+1, reg
+# define PTR_DEMANGLE(reg) ror $2*LP_SIZE+1, reg; \
+ xor %fs:POINTER_GUARD, reg
+# else
+# define PTR_MANGLE(var) asm ("xor %%fs:%c2, %0\n" \
+ "rol $2*" LP_SIZE "+1, %0" \
+ : "=r" (var) \
+ : "0" (var), \
+ "i" (offsetof (tcbhead_t, \
+ pointer_guard)))
+# define PTR_DEMANGLE(var) asm ("ror $2*" LP_SIZE "+1, %0\n" \
+ "xor %%fs:%c2, %0" \
+ : "=r" (var) \
+ : "0" (var), \
+ "i" (offsetof (tcbhead_t, \
+ pointer_guard)))
+# endif
+#endif
+
+/* How to pass the off{64}_t argument on p{readv,writev}{64}. */
+#undef LO_HI_LONG
+#define LO_HI_LONG(val) (val), 0
+
+#endif /* linux/x86_64/sysdep.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/timer_create.c b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/timer_create.c
new file mode 100644
index 0000000000..7fbe9618b4
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/timer_create.c
@@ -0,0 +1,65 @@
+/* Copyright (C) 2003-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@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; see the file COPYING.LIB. If
+ not, see <http://www.gnu.org/licenses/>. */
+
+#include <shlib-compat.h>
+#include "compat-timer.h"
+#include <atomic.h>
+
+
+#define timer_create_alias __timer_create_new
+#include <sysdeps/unix/sysv/linux/timer_create.c>
+
+#undef timer_create
+versioned_symbol (librt, __timer_create_new, timer_create, GLIBC_2_3_3);
+
+
+#if SHLIB_COMPAT (librt, GLIBC_2_2, GLIBC_2_3_3)
+timer_t __compat_timer_list[OLD_TIMER_MAX] attribute_hidden;
+
+
+int
+__timer_create_old (clockid_t clock_id, struct sigevent *evp, int *timerid)
+{
+ timer_t newp;
+
+ int res = __timer_create_new (clock_id, evp, &newp);
+ if (res == 0)
+ {
+ int i;
+ for (i = 0; i < OLD_TIMER_MAX; ++i)
+ if (__compat_timer_list[i] == NULL
+ && ! atomic_compare_and_exchange_bool_acq (&__compat_timer_list[i],
+ newp, NULL))
+ {
+ *timerid = i;
+ break;
+ }
+
+ if (__glibc_unlikely (i == OLD_TIMER_MAX))
+ {
+ /* No free slot. */
+ (void) __timer_delete_new (newp);
+ __set_errno (EINVAL);
+ res = -1;
+ }
+ }
+
+ return res;
+}
+compat_symbol (librt, __timer_create_old, timer_create, GLIBC_2_2);
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/timer_delete.c b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/timer_delete.c
new file mode 100644
index 0000000000..eb24585c85
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/timer_delete.c
@@ -0,0 +1,44 @@
+/* Copyright (C) 2003-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@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; see the file COPYING.LIB. If
+ not, see <http://www.gnu.org/licenses/>. */
+
+#include <shlib-compat.h>
+#include "compat-timer.h"
+
+
+#define timer_delete_alias __timer_delete_new
+#include <sysdeps/unix/sysv/linux/timer_delete.c>
+
+#undef timer_delete
+versioned_symbol (librt, __timer_delete_new, timer_delete, GLIBC_2_3_3);
+
+
+#if SHLIB_COMPAT (librt, GLIBC_2_2, GLIBC_2_3_3)
+int
+__timer_delete_old (int timerid)
+{
+ int res = __timer_delete_new (__compat_timer_list[timerid]);
+
+ if (res == 0)
+ /* Successful timer deletion, now free the index. We only need to
+ store a word and that better be atomic. */
+ __compat_timer_list[timerid] = NULL;
+
+ return res;
+}
+compat_symbol (librt, __timer_delete_old, timer_delete, GLIBC_2_2);
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/timer_getoverr.c b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/timer_getoverr.c
new file mode 100644
index 0000000000..78d45ab371
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/timer_getoverr.c
@@ -0,0 +1,38 @@
+/* Copyright (C) 2003-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@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; see the file COPYING.LIB. If
+ not, see <http://www.gnu.org/licenses/>. */
+
+#include <shlib-compat.h>
+#include "compat-timer.h"
+
+
+#define timer_getoverrun_alias __timer_getoverrun_new
+#include <sysdeps/unix/sysv/linux/timer_getoverr.c>
+
+#undef timer_getoverrun
+versioned_symbol (librt, __timer_getoverrun_new, timer_getoverrun,
+ GLIBC_2_3_3);
+
+
+#if SHLIB_COMPAT (librt, GLIBC_2_2, GLIBC_2_3_3)
+int
+__timer_getoverrun_old (int timerid)
+{
+ return __timer_getoverrun_new (__compat_timer_list[timerid]);
+}
+compat_symbol (librt, __timer_getoverrun_old, timer_getoverrun, GLIBC_2_2);
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/timer_gettime.c b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/timer_gettime.c
new file mode 100644
index 0000000000..35af18226e
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/timer_gettime.c
@@ -0,0 +1,37 @@
+/* Copyright (C) 2003-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@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; see the file COPYING.LIB. If
+ not, see <http://www.gnu.org/licenses/>. */
+
+#include <shlib-compat.h>
+#include "compat-timer.h"
+
+
+#define timer_gettime_alias __timer_gettime_new
+#include <sysdeps/unix/sysv/linux/timer_gettime.c>
+
+#undef timer_gettime
+versioned_symbol (librt, __timer_gettime_new, timer_gettime, GLIBC_2_3_3);
+
+
+#if SHLIB_COMPAT (librt, GLIBC_2_2, GLIBC_2_3_3)
+int
+__timer_gettime_old (int timerid, struct itimerspec *value)
+{
+ return __timer_gettime_new (__compat_timer_list[timerid], value);
+}
+compat_symbol (librt, __timer_gettime_old, timer_gettime, GLIBC_2_2);
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/timer_settime.c b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/timer_settime.c
new file mode 100644
index 0000000000..7174a505a8
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/timer_settime.c
@@ -0,0 +1,39 @@
+/* Copyright (C) 2003-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@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; see the file COPYING.LIB. If
+ not, see <http://www.gnu.org/licenses/>. */
+
+#include <shlib-compat.h>
+#include "compat-timer.h"
+
+
+#define timer_settime_alias __timer_settime_new
+#include <sysdeps/unix/sysv/linux/timer_settime.c>
+
+#undef timer_settime
+versioned_symbol (librt, __timer_settime_new, timer_settime, GLIBC_2_3_3);
+
+
+#if SHLIB_COMPAT (librt, GLIBC_2_2, GLIBC_2_3_3)
+int
+__timer_settime_old (int timerid, int flags, const struct itimerspec *value,
+ struct itimerspec *ovalue)
+{
+ return __timer_settime_new (__compat_timer_list[timerid], flags,
+ value, ovalue);
+}
+compat_symbol (librt, __timer_settime_old, timer_settime, GLIBC_2_2);
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/ucontext_i.sym b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/ucontext_i.sym
new file mode 100644
index 0000000000..af3e0e544b
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/ucontext_i.sym
@@ -0,0 +1,37 @@
+#include <stddef.h>
+#include <signal.h>
+#include <sys/ucontext.h>
+
+--
+
+SIG_BLOCK
+SIG_SETMASK
+
+_NSIG8 (_NSIG / 8)
+
+#define ucontext(member) offsetof (ucontext_t, member)
+#define mcontext(member) ucontext (uc_mcontext.member)
+#define mreg(reg) mcontext (gregs[REG_##reg])
+
+oRBP mreg (RBP)
+oRSP mreg (RSP)
+oRBX mreg (RBX)
+oR8 mreg (R8)
+oR9 mreg (R9)
+oR10 mreg (R10)
+oR11 mreg (R11)
+oR12 mreg (R12)
+oR13 mreg (R13)
+oR14 mreg (R14)
+oR15 mreg (R15)
+oRDI mreg (RDI)
+oRSI mreg (RSI)
+oRDX mreg (RDX)
+oRAX mreg (RAX)
+oRCX mreg (RCX)
+oRIP mreg (RIP)
+oEFL mreg (EFL)
+oFPREGS mcontext (fpregs)
+oSIGMASK ucontext (uc_sigmask)
+oFPREGSMEM ucontext (__fpregs_mem)
+oMXCSR ucontext (__fpregs_mem.mxcsr)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/umount.c b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/umount.c
new file mode 100644
index 0000000000..1de40a476e
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/umount.c
@@ -0,0 +1,30 @@
+/* Copyright (C) 2000-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by David Huggins-Daines <dhd@debian.org>, 2000.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+/* Since we don't have an oldumount system call, do what the kernel
+ does down here. */
+
+extern long int __umount2 (const char *name, int flags);
+
+long int
+__umount (const char *name)
+{
+ return __umount2 (name, 0);
+}
+
+weak_alias (__umount, umount);
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/vfork.S b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/vfork.S
new file mode 100644
index 0000000000..a8b0369fb3
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/vfork.S
@@ -0,0 +1,55 @@
+/* Copyright (C) 2001-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#define _ERRNO_H 1
+#include <bits/errno.h>
+#include <tcb-offsets.h>
+
+
+/* Clone the calling process, but without copying the whole address space.
+ The calling process is suspended until the new process exits or is
+ replaced by a call to `execve'. Return -1 for errors, 0 to the new process,
+ and the process ID of the new process to the old process. */
+
+ENTRY (__vfork)
+
+ /* Pop the return PC value into RDI. We need a register that
+ is preserved by the syscall and that we're allowed to destroy. */
+ popq %rdi
+ cfi_adjust_cfa_offset(-8)
+ cfi_register(%rip, %rdi)
+
+ /* Stuff the syscall number in RAX and enter into the kernel. */
+ movl $SYS_ify (vfork), %eax
+ syscall
+
+ /* Push back the return PC. */
+ pushq %rdi
+ cfi_adjust_cfa_offset(8)
+
+ cmpl $-4095, %eax
+ jae SYSCALL_ERROR_LABEL /* Branch forward if it failed. */
+
+ /* Normal return. */
+ ret
+
+PSEUDO_END (__vfork)
+libc_hidden_def (__vfork)
+
+weak_alias (__vfork, vfork)
+strong_alias (__vfork, __libc_vfork)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/x32/Implies b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/x32/Implies
new file mode 100644
index 0000000000..b287872e93
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/x32/Implies
@@ -0,0 +1 @@
+x86_64/x32/nptl
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/x32/Makefile b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/x32/Makefile
new file mode 100644
index 0000000000..16b768d8ba
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/x32/Makefile
@@ -0,0 +1,11 @@
+# The default ABI is x32.
+default-abi := x32
+
+ifeq ($(subdir),misc)
+sysdep_routines += arch_prctl
+endif
+
+ifeq ($(subdir),conform)
+# For bugs 16437 and 21279.
+conformtest-xfail-conds += x86_64-x32-linux
+endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/x32/arch_prctl.c b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/x32/arch_prctl.c
new file mode 100644
index 0000000000..67880e4b28
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/x32/arch_prctl.c
@@ -0,0 +1,63 @@
+/* arch_prctl call for Linux/x32.
+ 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 <errno.h>
+#include <sys/prctl.h>
+#include <sys/syscall.h>
+#include <sysdep.h>
+#include <stdint.h>
+
+/* Since x32 arch_prctl stores 32-bit base address of segment registers
+ %fs and %gs as unsigned 64-bit value via ARCH_GET_FS and ARCH_GET_GS,
+ we use an unsigned 64-bit variable to hold the base address and copy
+ it to ADDR after the system call returns. */
+
+int
+__arch_prctl (int code, uintptr_t *addr)
+{
+ int res;
+ uint64_t addr64;
+ void *prctl_arg = addr;
+
+ switch (code)
+ {
+ case ARCH_GET_FS:
+ case ARCH_GET_GS:
+ prctl_arg = &addr64;
+ break;
+ }
+
+ res = INLINE_SYSCALL (arch_prctl, 2, code, prctl_arg);
+ if (res == 0)
+ switch (code)
+ {
+ case ARCH_GET_FS:
+ case ARCH_GET_GS:
+ /* Check for a large value that overflows. */
+ if ((uintptr_t) addr64 != addr64)
+ {
+ __set_errno (EOVERFLOW);
+ return -1;
+ }
+ *addr = (uintptr_t) addr64;
+ break;
+ }
+
+ return res;
+}
+weak_alias (__arch_prctl, arch_prctl)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/x32/c++-types.data b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/x32/c++-types.data
new file mode 100644
index 0000000000..348bf52b2b
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/x32/c++-types.data
@@ -0,0 +1,67 @@
+blkcnt64_t:x
+blkcnt_t:x
+blksize_t:x
+caddr_t:Pc
+clockid_t:i
+clock_t:x
+daddr_t:i
+dev_t:y
+fd_mask:l
+fsblkcnt64_t:y
+fsblkcnt_t:y
+fsfilcnt64_t:y
+fsfilcnt_t:y
+fsid_t:8__fsid_t
+gid_t:j
+id_t:j
+ino64_t:y
+ino_t:y
+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:y
+off64_t:x
+off_t:x
+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:x
+rlim64_t:y
+rlim_t:y
+sigset_t:10__sigset_t
+size_t:j
+socklen_t:j
+ssize_t:i
+suseconds_t:x
+time_t:x
+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/x86_64/x32/configure b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/x32/configure
new file mode 100644
index 0000000000..1417da4785
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/x32/configure
@@ -0,0 +1,17 @@
+# This file is generated from configure.ac by Autoconf. DO NOT EDIT!
+ # Local configure fragment for sysdeps/unix/sysv/linux/86_64/x32.
+
+arch_minimum_kernel=3.4.0
+
+test -n "$libc_cv_slibdir" ||
+case "$prefix" in
+/usr | /usr/)
+ libc_cv_slibdir=/libx32
+ libc_cv_rtlddir=/libx32
+ if test "$libdir" = '${exec_prefix}/lib'; then
+ libdir='${exec_prefix}/libx32';
+ # Locale data can be shared between 32-bit and 64-bit libraries.
+ libc_cv_complocaledir='${exec_prefix}/lib/locale'
+ fi
+ ;;
+esac
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/x32/configure.ac b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/x32/configure.ac
new file mode 100644
index 0000000000..f44e4ca148
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/x32/configure.ac
@@ -0,0 +1,6 @@
+GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
+# Local configure fragment for sysdeps/unix/sysv/linux/86_64/x32.
+
+arch_minimum_kernel=3.4.0
+
+LIBC_SLIBDIR_RTLDDIR([libx32], [libx32])
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/x32/dl-cache.h b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/x32/dl-cache.h
new file mode 100644
index 0000000000..8da3025fd7
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/x32/dl-cache.h
@@ -0,0 +1,23 @@
+/* Support for reading /etc/ld.so.cache files written by Linux ldconfig.
+ 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 <sysdeps/unix/sysv/linux/x86_64/dl-cache.h>
+
+/* Defined as (FLAG_ELF_LIBC6 | FLAG_X8664_LIBX32). */
+#undef _DL_CACHE_DEFAULT_ID
+#define _DL_CACHE_DEFAULT_ID 0x803
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/x32/fts.c b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/x32/fts.c
new file mode 100644
index 0000000000..980573ed68
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/x32/fts.c
@@ -0,0 +1 @@
+#include <sysdeps/wordsize-64/fts.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/x32/fts64.c b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/x32/fts64.c
new file mode 100644
index 0000000000..221d1b5608
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/x32/fts64.c
@@ -0,0 +1 @@
+#include <sysdeps/wordsize-64/fts64.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/x32/ftw.c b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/x32/ftw.c
new file mode 100644
index 0000000000..a21dfe5690
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/x32/ftw.c
@@ -0,0 +1 @@
+#include <sysdeps/wordsize-64/ftw.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/x32/ftw64.c b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/x32/ftw64.c
new file mode 100644
index 0000000000..3c025b738a
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/x32/ftw64.c
@@ -0,0 +1 @@
+#include <sysdeps/wordsize-64/ftw64.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/x32/getcpu.c b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/x32/getcpu.c
new file mode 100644
index 0000000000..cd26d2e627
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/x32/getcpu.c
@@ -0,0 +1,32 @@
+/* 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/>. */
+
+#ifdef SHARED
+# include <dl-vdso.h>
+
+void *getcpu_ifunc (void) __asm__ ("__getcpu");
+
+void *
+inhibit_stack_protector
+getcpu_ifunc (void)
+{
+ PREPARE_VERSION (linux26, "LINUX_2.6", 61765110);
+
+ return _dl_vdso_vsym ("__vdso_getcpu", &linux26);
+}
+__asm (".type __getcpu, %gnu_indirect_function");
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/x32/glob.c b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/x32/glob.c
new file mode 100644
index 0000000000..e5427475f6
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/x32/glob.c
@@ -0,0 +1 @@
+#include <sysdeps/wordsize-64/glob.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/x32/ld.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/x32/ld.abilist
new file mode 100644
index 0000000000..236357bd83
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/x32/ld.abilist
@@ -0,0 +1,9 @@
+GLIBC_2.16 GLIBC_2.16 A
+GLIBC_2.16 __libc_stack_end D 0x4
+GLIBC_2.16 __tls_get_addr F
+GLIBC_2.16 _dl_mcount F
+GLIBC_2.16 _r_debug D 0x14
+GLIBC_2.16 calloc F
+GLIBC_2.16 free F
+GLIBC_2.16 malloc F
+GLIBC_2.16 realloc F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/x32/libBrokenLocale.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/x32/libBrokenLocale.abilist
new file mode 100644
index 0000000000..0c8f428e3b
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/x32/libBrokenLocale.abilist
@@ -0,0 +1,2 @@
+GLIBC_2.16 GLIBC_2.16 A
+GLIBC_2.16 __ctype_get_mb_cur_max F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/x32/libanl.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/x32/libanl.abilist
new file mode 100644
index 0000000000..695118b9d5
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/x32/libanl.abilist
@@ -0,0 +1,5 @@
+GLIBC_2.16 GLIBC_2.16 A
+GLIBC_2.16 gai_cancel F
+GLIBC_2.16 gai_error F
+GLIBC_2.16 gai_suspend F
+GLIBC_2.16 getaddrinfo_a F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
new file mode 100644
index 0000000000..0c557e9f43
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
@@ -0,0 +1,2112 @@
+GLIBC_2.16 GLIBC_2.16 A
+GLIBC_2.16 _Exit F
+GLIBC_2.16 _IO_2_1_stderr_ D 0xa0
+GLIBC_2.16 _IO_2_1_stdin_ D 0xa0
+GLIBC_2.16 _IO_2_1_stdout_ D 0xa0
+GLIBC_2.16 _IO_adjust_column F
+GLIBC_2.16 _IO_adjust_wcolumn F
+GLIBC_2.16 _IO_default_doallocate F
+GLIBC_2.16 _IO_default_finish F
+GLIBC_2.16 _IO_default_pbackfail F
+GLIBC_2.16 _IO_default_uflow F
+GLIBC_2.16 _IO_default_xsgetn F
+GLIBC_2.16 _IO_default_xsputn F
+GLIBC_2.16 _IO_do_write F
+GLIBC_2.16 _IO_doallocbuf F
+GLIBC_2.16 _IO_fclose F
+GLIBC_2.16 _IO_fdopen F
+GLIBC_2.16 _IO_feof F
+GLIBC_2.16 _IO_ferror F
+GLIBC_2.16 _IO_fflush F
+GLIBC_2.16 _IO_fgetpos F
+GLIBC_2.16 _IO_fgetpos64 F
+GLIBC_2.16 _IO_fgets F
+GLIBC_2.16 _IO_file_attach F
+GLIBC_2.16 _IO_file_close F
+GLIBC_2.16 _IO_file_close_it F
+GLIBC_2.16 _IO_file_doallocate F
+GLIBC_2.16 _IO_file_finish F
+GLIBC_2.16 _IO_file_fopen F
+GLIBC_2.16 _IO_file_init F
+GLIBC_2.16 _IO_file_jumps D 0x54
+GLIBC_2.16 _IO_file_open F
+GLIBC_2.16 _IO_file_overflow F
+GLIBC_2.16 _IO_file_read F
+GLIBC_2.16 _IO_file_seek F
+GLIBC_2.16 _IO_file_seekoff F
+GLIBC_2.16 _IO_file_setbuf F
+GLIBC_2.16 _IO_file_stat F
+GLIBC_2.16 _IO_file_sync F
+GLIBC_2.16 _IO_file_underflow F
+GLIBC_2.16 _IO_file_write F
+GLIBC_2.16 _IO_file_xsputn F
+GLIBC_2.16 _IO_flockfile F
+GLIBC_2.16 _IO_flush_all F
+GLIBC_2.16 _IO_flush_all_linebuffered F
+GLIBC_2.16 _IO_fopen F
+GLIBC_2.16 _IO_fprintf F
+GLIBC_2.16 _IO_fputs F
+GLIBC_2.16 _IO_fread F
+GLIBC_2.16 _IO_free_backup_area F
+GLIBC_2.16 _IO_free_wbackup_area F
+GLIBC_2.16 _IO_fsetpos F
+GLIBC_2.16 _IO_fsetpos64 F
+GLIBC_2.16 _IO_ftell F
+GLIBC_2.16 _IO_ftrylockfile F
+GLIBC_2.16 _IO_funlockfile F
+GLIBC_2.16 _IO_fwrite F
+GLIBC_2.16 _IO_getc F
+GLIBC_2.16 _IO_getline F
+GLIBC_2.16 _IO_getline_info F
+GLIBC_2.16 _IO_gets F
+GLIBC_2.16 _IO_init F
+GLIBC_2.16 _IO_init_marker F
+GLIBC_2.16 _IO_init_wmarker F
+GLIBC_2.16 _IO_iter_begin F
+GLIBC_2.16 _IO_iter_end F
+GLIBC_2.16 _IO_iter_file F
+GLIBC_2.16 _IO_iter_next F
+GLIBC_2.16 _IO_least_wmarker F
+GLIBC_2.16 _IO_link_in F
+GLIBC_2.16 _IO_list_all D 0x4
+GLIBC_2.16 _IO_list_lock F
+GLIBC_2.16 _IO_list_resetlock F
+GLIBC_2.16 _IO_list_unlock F
+GLIBC_2.16 _IO_marker_delta F
+GLIBC_2.16 _IO_marker_difference F
+GLIBC_2.16 _IO_padn F
+GLIBC_2.16 _IO_peekc_locked F
+GLIBC_2.16 _IO_popen F
+GLIBC_2.16 _IO_printf F
+GLIBC_2.16 _IO_proc_close F
+GLIBC_2.16 _IO_proc_open F
+GLIBC_2.16 _IO_putc F
+GLIBC_2.16 _IO_puts F
+GLIBC_2.16 _IO_remove_marker F
+GLIBC_2.16 _IO_seekmark F
+GLIBC_2.16 _IO_seekoff F
+GLIBC_2.16 _IO_seekpos F
+GLIBC_2.16 _IO_seekwmark F
+GLIBC_2.16 _IO_setb F
+GLIBC_2.16 _IO_setbuffer F
+GLIBC_2.16 _IO_setvbuf F
+GLIBC_2.16 _IO_sgetn F
+GLIBC_2.16 _IO_sprintf F
+GLIBC_2.16 _IO_sputbackc F
+GLIBC_2.16 _IO_sputbackwc F
+GLIBC_2.16 _IO_sscanf F
+GLIBC_2.16 _IO_str_init_readonly F
+GLIBC_2.16 _IO_str_init_static F
+GLIBC_2.16 _IO_str_overflow F
+GLIBC_2.16 _IO_str_pbackfail F
+GLIBC_2.16 _IO_str_seekoff F
+GLIBC_2.16 _IO_str_underflow F
+GLIBC_2.16 _IO_sungetc F
+GLIBC_2.16 _IO_sungetwc F
+GLIBC_2.16 _IO_switch_to_get_mode F
+GLIBC_2.16 _IO_switch_to_main_wget_area F
+GLIBC_2.16 _IO_switch_to_wbackup_area F
+GLIBC_2.16 _IO_switch_to_wget_mode F
+GLIBC_2.16 _IO_un_link F
+GLIBC_2.16 _IO_ungetc F
+GLIBC_2.16 _IO_unsave_markers F
+GLIBC_2.16 _IO_unsave_wmarkers F
+GLIBC_2.16 _IO_vfprintf F
+GLIBC_2.16 _IO_vfscanf F
+GLIBC_2.16 _IO_vsprintf F
+GLIBC_2.16 _IO_wdefault_doallocate F
+GLIBC_2.16 _IO_wdefault_finish F
+GLIBC_2.16 _IO_wdefault_pbackfail F
+GLIBC_2.16 _IO_wdefault_uflow F
+GLIBC_2.16 _IO_wdefault_xsgetn F
+GLIBC_2.16 _IO_wdefault_xsputn F
+GLIBC_2.16 _IO_wdo_write F
+GLIBC_2.16 _IO_wdoallocbuf F
+GLIBC_2.16 _IO_wfile_jumps D 0x54
+GLIBC_2.16 _IO_wfile_overflow F
+GLIBC_2.16 _IO_wfile_seekoff F
+GLIBC_2.16 _IO_wfile_sync F
+GLIBC_2.16 _IO_wfile_underflow F
+GLIBC_2.16 _IO_wfile_xsputn F
+GLIBC_2.16 _IO_wmarker_delta F
+GLIBC_2.16 _IO_wsetb F
+GLIBC_2.16 __adjtimex F
+GLIBC_2.16 __after_morecore_hook D 0x4
+GLIBC_2.16 __arch_prctl F
+GLIBC_2.16 __argz_count F
+GLIBC_2.16 __argz_next F
+GLIBC_2.16 __argz_stringify F
+GLIBC_2.16 __asprintf F
+GLIBC_2.16 __asprintf_chk F
+GLIBC_2.16 __assert F
+GLIBC_2.16 __assert_fail F
+GLIBC_2.16 __assert_perror_fail F
+GLIBC_2.16 __backtrace F
+GLIBC_2.16 __backtrace_symbols F
+GLIBC_2.16 __backtrace_symbols_fd F
+GLIBC_2.16 __bsd_getpgrp F
+GLIBC_2.16 __bzero F
+GLIBC_2.16 __check_rhosts_file D 0x4
+GLIBC_2.16 __chk_fail F
+GLIBC_2.16 __clone F
+GLIBC_2.16 __close F
+GLIBC_2.16 __cmsg_nxthdr F
+GLIBC_2.16 __confstr_chk F
+GLIBC_2.16 __connect F
+GLIBC_2.16 __ctype_b_loc F
+GLIBC_2.16 __ctype_get_mb_cur_max F
+GLIBC_2.16 __ctype_tolower_loc F
+GLIBC_2.16 __ctype_toupper_loc F
+GLIBC_2.16 __curbrk D 0x4
+GLIBC_2.16 __cxa_at_quick_exit F
+GLIBC_2.16 __cxa_atexit F
+GLIBC_2.16 __cxa_finalize F
+GLIBC_2.16 __cyg_profile_func_enter F
+GLIBC_2.16 __cyg_profile_func_exit F
+GLIBC_2.16 __daylight D 0x4
+GLIBC_2.16 __dcgettext F
+GLIBC_2.16 __default_morecore F
+GLIBC_2.16 __dgettext F
+GLIBC_2.16 __dprintf_chk F
+GLIBC_2.16 __dup2 F
+GLIBC_2.16 __duplocale F
+GLIBC_2.16 __endmntent F
+GLIBC_2.16 __environ D 0x4
+GLIBC_2.16 __errno_location F
+GLIBC_2.16 __fbufsize F
+GLIBC_2.16 __fcntl F
+GLIBC_2.16 __fdelt_chk F
+GLIBC_2.16 __fdelt_warn F
+GLIBC_2.16 __fentry__ F
+GLIBC_2.16 __ffs F
+GLIBC_2.16 __fgets_chk F
+GLIBC_2.16 __fgets_unlocked_chk F
+GLIBC_2.16 __fgetws_chk F
+GLIBC_2.16 __fgetws_unlocked_chk F
+GLIBC_2.16 __finite F
+GLIBC_2.16 __finitef F
+GLIBC_2.16 __finitel F
+GLIBC_2.16 __flbf F
+GLIBC_2.16 __fork F
+GLIBC_2.16 __fpending F
+GLIBC_2.16 __fprintf_chk F
+GLIBC_2.16 __fpu_control D 0x2
+GLIBC_2.16 __fpurge F
+GLIBC_2.16 __fread_chk F
+GLIBC_2.16 __fread_unlocked_chk F
+GLIBC_2.16 __freadable F
+GLIBC_2.16 __freading F
+GLIBC_2.16 __free_hook D 0x4
+GLIBC_2.16 __freelocale F
+GLIBC_2.16 __fsetlocking F
+GLIBC_2.16 __fwprintf_chk F
+GLIBC_2.16 __fwritable F
+GLIBC_2.16 __fwriting F
+GLIBC_2.16 __fxstat F
+GLIBC_2.16 __fxstat64 F
+GLIBC_2.16 __fxstatat F
+GLIBC_2.16 __fxstatat64 F
+GLIBC_2.16 __getauxval F
+GLIBC_2.16 __getcwd_chk F
+GLIBC_2.16 __getdelim F
+GLIBC_2.16 __getdomainname_chk F
+GLIBC_2.16 __getgroups_chk F
+GLIBC_2.16 __gethostname_chk F
+GLIBC_2.16 __getlogin_r_chk F
+GLIBC_2.16 __getmntent_r F
+GLIBC_2.16 __getpagesize F
+GLIBC_2.16 __getpgid F
+GLIBC_2.16 __getpid F
+GLIBC_2.16 __gets_chk F
+GLIBC_2.16 __gettimeofday F
+GLIBC_2.16 __getwd_chk F
+GLIBC_2.16 __gmtime_r F
+GLIBC_2.16 __h_errno_location F
+GLIBC_2.16 __isalnum_l F
+GLIBC_2.16 __isalpha_l F
+GLIBC_2.16 __isascii_l F
+GLIBC_2.16 __isblank_l F
+GLIBC_2.16 __iscntrl_l F
+GLIBC_2.16 __isctype F
+GLIBC_2.16 __isdigit_l F
+GLIBC_2.16 __isgraph_l F
+GLIBC_2.16 __isinf F
+GLIBC_2.16 __isinff F
+GLIBC_2.16 __isinfl F
+GLIBC_2.16 __islower_l F
+GLIBC_2.16 __isnan F
+GLIBC_2.16 __isnanf F
+GLIBC_2.16 __isnanl F
+GLIBC_2.16 __isoc99_fscanf F
+GLIBC_2.16 __isoc99_fwscanf F
+GLIBC_2.16 __isoc99_scanf F
+GLIBC_2.16 __isoc99_sscanf F
+GLIBC_2.16 __isoc99_swscanf F
+GLIBC_2.16 __isoc99_vfscanf F
+GLIBC_2.16 __isoc99_vfwscanf F
+GLIBC_2.16 __isoc99_vscanf F
+GLIBC_2.16 __isoc99_vsscanf F
+GLIBC_2.16 __isoc99_vswscanf F
+GLIBC_2.16 __isoc99_vwscanf F
+GLIBC_2.16 __isoc99_wscanf F
+GLIBC_2.16 __isprint_l F
+GLIBC_2.16 __ispunct_l F
+GLIBC_2.16 __isspace_l F
+GLIBC_2.16 __isupper_l F
+GLIBC_2.16 __iswalnum_l F
+GLIBC_2.16 __iswalpha_l F
+GLIBC_2.16 __iswblank_l F
+GLIBC_2.16 __iswcntrl_l F
+GLIBC_2.16 __iswctype F
+GLIBC_2.16 __iswctype_l F
+GLIBC_2.16 __iswdigit_l F
+GLIBC_2.16 __iswgraph_l F
+GLIBC_2.16 __iswlower_l F
+GLIBC_2.16 __iswprint_l F
+GLIBC_2.16 __iswpunct_l F
+GLIBC_2.16 __iswspace_l F
+GLIBC_2.16 __iswupper_l F
+GLIBC_2.16 __iswxdigit_l F
+GLIBC_2.16 __isxdigit_l F
+GLIBC_2.16 __ivaliduser F
+GLIBC_2.16 __key_decryptsession_pk_LOCAL D 0x4
+GLIBC_2.16 __key_encryptsession_pk_LOCAL D 0x4
+GLIBC_2.16 __key_gendes_LOCAL D 0x4
+GLIBC_2.16 __libc_allocate_rtsig F
+GLIBC_2.16 __libc_calloc F
+GLIBC_2.16 __libc_current_sigrtmax F
+GLIBC_2.16 __libc_current_sigrtmin F
+GLIBC_2.16 __libc_free F
+GLIBC_2.16 __libc_freeres F
+GLIBC_2.16 __libc_init_first F
+GLIBC_2.16 __libc_mallinfo F
+GLIBC_2.16 __libc_malloc F
+GLIBC_2.16 __libc_mallopt F
+GLIBC_2.16 __libc_memalign F
+GLIBC_2.16 __libc_pvalloc F
+GLIBC_2.16 __libc_realloc F
+GLIBC_2.16 __libc_sa_len F
+GLIBC_2.16 __libc_start_main F
+GLIBC_2.16 __libc_valloc F
+GLIBC_2.16 __longjmp_chk F
+GLIBC_2.16 __lseek F
+GLIBC_2.16 __lxstat F
+GLIBC_2.16 __lxstat64 F
+GLIBC_2.16 __malloc_hook D 0x4
+GLIBC_2.16 __malloc_initialize_hook D 0x4
+GLIBC_2.16 __mbrlen F
+GLIBC_2.16 __mbrtowc F
+GLIBC_2.16 __mbsnrtowcs_chk F
+GLIBC_2.16 __mbsrtowcs_chk F
+GLIBC_2.16 __mbstowcs_chk F
+GLIBC_2.16 __memalign_hook D 0x4
+GLIBC_2.16 __memcpy_chk F
+GLIBC_2.16 __memmove_chk F
+GLIBC_2.16 __mempcpy F
+GLIBC_2.16 __mempcpy_chk F
+GLIBC_2.16 __mempcpy_small F
+GLIBC_2.16 __memset_chk F
+GLIBC_2.16 __monstartup F
+GLIBC_2.16 __morecore D 0x4
+GLIBC_2.16 __nanosleep F
+GLIBC_2.16 __newlocale F
+GLIBC_2.16 __nl_langinfo_l F
+GLIBC_2.16 __nss_configure_lookup F
+GLIBC_2.16 __nss_database_lookup F
+GLIBC_2.16 __nss_group_lookup F
+GLIBC_2.16 __nss_hostname_digits_dots F
+GLIBC_2.16 __nss_hosts_lookup F
+GLIBC_2.16 __nss_next F
+GLIBC_2.16 __nss_passwd_lookup F
+GLIBC_2.16 __obstack_printf_chk F
+GLIBC_2.16 __obstack_vprintf_chk F
+GLIBC_2.16 __open F
+GLIBC_2.16 __open64 F
+GLIBC_2.16 __open64_2 F
+GLIBC_2.16 __open_2 F
+GLIBC_2.16 __openat64_2 F
+GLIBC_2.16 __openat_2 F
+GLIBC_2.16 __overflow F
+GLIBC_2.16 __pipe F
+GLIBC_2.16 __poll F
+GLIBC_2.16 __poll_chk F
+GLIBC_2.16 __posix_getopt F
+GLIBC_2.16 __ppoll_chk F
+GLIBC_2.16 __pread64 F
+GLIBC_2.16 __pread64_chk F
+GLIBC_2.16 __pread_chk F
+GLIBC_2.16 __printf_chk F
+GLIBC_2.16 __printf_fp F
+GLIBC_2.16 __profile_frequency F
+GLIBC_2.16 __progname D 0x4
+GLIBC_2.16 __progname_full D 0x4
+GLIBC_2.16 __ptsname_r_chk F
+GLIBC_2.16 __pwrite64 F
+GLIBC_2.16 __rawmemchr F
+GLIBC_2.16 __rcmd_errstr D 0x4
+GLIBC_2.16 __read F
+GLIBC_2.16 __read_chk F
+GLIBC_2.16 __readlink_chk F
+GLIBC_2.16 __readlinkat_chk F
+GLIBC_2.16 __realloc_hook D 0x4
+GLIBC_2.16 __realpath_chk F
+GLIBC_2.16 __recv_chk F
+GLIBC_2.16 __recvfrom_chk F
+GLIBC_2.16 __register_atfork F
+GLIBC_2.16 __res_init F
+GLIBC_2.16 __res_nclose F
+GLIBC_2.16 __res_ninit F
+GLIBC_2.16 __res_randomid F
+GLIBC_2.16 __res_state F
+GLIBC_2.16 __rpc_thread_createerr F
+GLIBC_2.16 __rpc_thread_svc_fdset F
+GLIBC_2.16 __rpc_thread_svc_max_pollfd F
+GLIBC_2.16 __rpc_thread_svc_pollfd F
+GLIBC_2.16 __sbrk F
+GLIBC_2.16 __sched_cpualloc F
+GLIBC_2.16 __sched_cpucount F
+GLIBC_2.16 __sched_cpufree F
+GLIBC_2.16 __sched_get_priority_max F
+GLIBC_2.16 __sched_get_priority_min F
+GLIBC_2.16 __sched_getparam F
+GLIBC_2.16 __sched_getscheduler F
+GLIBC_2.16 __sched_setscheduler F
+GLIBC_2.16 __sched_yield F
+GLIBC_2.16 __secure_getenv F
+GLIBC_2.16 __select F
+GLIBC_2.16 __send F
+GLIBC_2.16 __setmntent F
+GLIBC_2.16 __setpgid F
+GLIBC_2.16 __sigaction F
+GLIBC_2.16 __sigaddset F
+GLIBC_2.16 __sigdelset F
+GLIBC_2.16 __sigismember F
+GLIBC_2.16 __signbit F
+GLIBC_2.16 __signbitf F
+GLIBC_2.16 __signbitl F
+GLIBC_2.16 __sigpause F
+GLIBC_2.16 __sigsetjmp F
+GLIBC_2.16 __sigsuspend F
+GLIBC_2.16 __snprintf_chk F
+GLIBC_2.16 __sprintf_chk F
+GLIBC_2.16 __stack_chk_fail F
+GLIBC_2.16 __statfs F
+GLIBC_2.16 __stpcpy F
+GLIBC_2.16 __stpcpy_chk F
+GLIBC_2.16 __stpcpy_small F
+GLIBC_2.16 __stpncpy F
+GLIBC_2.16 __stpncpy_chk F
+GLIBC_2.16 __strcasecmp F
+GLIBC_2.16 __strcasecmp_l F
+GLIBC_2.16 __strcasestr F
+GLIBC_2.16 __strcat_chk F
+GLIBC_2.16 __strcoll_l F
+GLIBC_2.16 __strcpy_chk F
+GLIBC_2.16 __strcpy_small F
+GLIBC_2.16 __strcspn_c1 F
+GLIBC_2.16 __strcspn_c2 F
+GLIBC_2.16 __strcspn_c3 F
+GLIBC_2.16 __strdup F
+GLIBC_2.16 __strerror_r F
+GLIBC_2.16 __strfmon_l F
+GLIBC_2.16 __strftime_l F
+GLIBC_2.16 __strncasecmp_l F
+GLIBC_2.16 __strncat_chk F
+GLIBC_2.16 __strncpy_chk F
+GLIBC_2.16 __strndup F
+GLIBC_2.16 __strpbrk_c2 F
+GLIBC_2.16 __strpbrk_c3 F
+GLIBC_2.16 __strsep_1c F
+GLIBC_2.16 __strsep_2c F
+GLIBC_2.16 __strsep_3c F
+GLIBC_2.16 __strsep_g F
+GLIBC_2.16 __strspn_c1 F
+GLIBC_2.16 __strspn_c2 F
+GLIBC_2.16 __strspn_c3 F
+GLIBC_2.16 __strtod_internal F
+GLIBC_2.16 __strtod_l F
+GLIBC_2.16 __strtof_internal F
+GLIBC_2.16 __strtof_l F
+GLIBC_2.16 __strtok_r F
+GLIBC_2.16 __strtok_r_1c F
+GLIBC_2.16 __strtol_internal F
+GLIBC_2.16 __strtol_l F
+GLIBC_2.16 __strtold_internal F
+GLIBC_2.16 __strtold_l F
+GLIBC_2.16 __strtoll_internal F
+GLIBC_2.16 __strtoll_l F
+GLIBC_2.16 __strtoul_internal F
+GLIBC_2.16 __strtoul_l F
+GLIBC_2.16 __strtoull_internal F
+GLIBC_2.16 __strtoull_l F
+GLIBC_2.16 __strverscmp F
+GLIBC_2.16 __strxfrm_l F
+GLIBC_2.16 __swprintf_chk F
+GLIBC_2.16 __sysconf F
+GLIBC_2.16 __syslog_chk F
+GLIBC_2.16 __sysv_signal F
+GLIBC_2.16 __timezone D 0x4
+GLIBC_2.16 __toascii_l F
+GLIBC_2.16 __tolower_l F
+GLIBC_2.16 __toupper_l F
+GLIBC_2.16 __towctrans F
+GLIBC_2.16 __towctrans_l F
+GLIBC_2.16 __towlower_l F
+GLIBC_2.16 __towupper_l F
+GLIBC_2.16 __ttyname_r_chk F
+GLIBC_2.16 __tzname D 0x8
+GLIBC_2.16 __uflow F
+GLIBC_2.16 __underflow F
+GLIBC_2.16 __uselocale F
+GLIBC_2.16 __vasprintf_chk F
+GLIBC_2.16 __vdprintf_chk F
+GLIBC_2.16 __vfork F
+GLIBC_2.16 __vfprintf_chk F
+GLIBC_2.16 __vfscanf F
+GLIBC_2.16 __vfwprintf_chk F
+GLIBC_2.16 __vprintf_chk F
+GLIBC_2.16 __vsnprintf F
+GLIBC_2.16 __vsnprintf_chk F
+GLIBC_2.16 __vsprintf_chk F
+GLIBC_2.16 __vsscanf F
+GLIBC_2.16 __vswprintf_chk F
+GLIBC_2.16 __vsyslog_chk F
+GLIBC_2.16 __vwprintf_chk F
+GLIBC_2.16 __wait F
+GLIBC_2.16 __waitpid F
+GLIBC_2.16 __wcpcpy_chk F
+GLIBC_2.16 __wcpncpy_chk F
+GLIBC_2.16 __wcrtomb_chk F
+GLIBC_2.16 __wcscasecmp_l F
+GLIBC_2.16 __wcscat_chk F
+GLIBC_2.16 __wcscoll_l F
+GLIBC_2.16 __wcscpy_chk F
+GLIBC_2.16 __wcsftime_l F
+GLIBC_2.16 __wcsncasecmp_l F
+GLIBC_2.16 __wcsncat_chk F
+GLIBC_2.16 __wcsncpy_chk F
+GLIBC_2.16 __wcsnrtombs_chk F
+GLIBC_2.16 __wcsrtombs_chk F
+GLIBC_2.16 __wcstod_internal F
+GLIBC_2.16 __wcstod_l F
+GLIBC_2.16 __wcstof_internal F
+GLIBC_2.16 __wcstof_l F
+GLIBC_2.16 __wcstol_internal F
+GLIBC_2.16 __wcstol_l F
+GLIBC_2.16 __wcstold_internal F
+GLIBC_2.16 __wcstold_l F
+GLIBC_2.16 __wcstoll_internal F
+GLIBC_2.16 __wcstoll_l F
+GLIBC_2.16 __wcstombs_chk F
+GLIBC_2.16 __wcstoul_internal F
+GLIBC_2.16 __wcstoul_l F
+GLIBC_2.16 __wcstoull_internal F
+GLIBC_2.16 __wcstoull_l F
+GLIBC_2.16 __wcsxfrm_l F
+GLIBC_2.16 __wctomb_chk F
+GLIBC_2.16 __wctrans_l F
+GLIBC_2.16 __wctype_l F
+GLIBC_2.16 __wmemcpy_chk F
+GLIBC_2.16 __wmemmove_chk F
+GLIBC_2.16 __wmempcpy_chk F
+GLIBC_2.16 __wmemset_chk F
+GLIBC_2.16 __woverflow F
+GLIBC_2.16 __wprintf_chk F
+GLIBC_2.16 __write F
+GLIBC_2.16 __wuflow F
+GLIBC_2.16 __wunderflow F
+GLIBC_2.16 __xmknod F
+GLIBC_2.16 __xmknodat F
+GLIBC_2.16 __xpg_basename F
+GLIBC_2.16 __xpg_sigpause F
+GLIBC_2.16 __xpg_strerror_r F
+GLIBC_2.16 __xstat F
+GLIBC_2.16 __xstat64 F
+GLIBC_2.16 _authenticate F
+GLIBC_2.16 _dl_mcount_wrapper F
+GLIBC_2.16 _dl_mcount_wrapper_check F
+GLIBC_2.16 _environ D 0x4
+GLIBC_2.16 _exit F
+GLIBC_2.16 _flushlbf F
+GLIBC_2.16 _libc_intl_domainname D 0x5
+GLIBC_2.16 _longjmp F
+GLIBC_2.16 _mcleanup F
+GLIBC_2.16 _mcount F
+GLIBC_2.16 _nl_default_dirname D 0x12
+GLIBC_2.16 _nl_domain_bindings D 0x4
+GLIBC_2.16 _nl_msg_cat_cntr D 0x4
+GLIBC_2.16 _null_auth D 0xc
+GLIBC_2.16 _obstack_allocated_p F
+GLIBC_2.16 _obstack_begin F
+GLIBC_2.16 _obstack_begin_1 F
+GLIBC_2.16 _obstack_free F
+GLIBC_2.16 _obstack_memory_used F
+GLIBC_2.16 _obstack_newchunk F
+GLIBC_2.16 _res D 0x200
+GLIBC_2.16 _res_hconf D 0x30
+GLIBC_2.16 _rpc_dtablesize F
+GLIBC_2.16 _seterr_reply F
+GLIBC_2.16 _setjmp F
+GLIBC_2.16 _sys_errlist D 0x21c
+GLIBC_2.16 _sys_nerr D 0x4
+GLIBC_2.16 _sys_siglist D 0x104
+GLIBC_2.16 _tolower F
+GLIBC_2.16 _toupper F
+GLIBC_2.16 a64l F
+GLIBC_2.16 abort F
+GLIBC_2.16 abs F
+GLIBC_2.16 accept F
+GLIBC_2.16 accept4 F
+GLIBC_2.16 access F
+GLIBC_2.16 acct F
+GLIBC_2.16 addmntent F
+GLIBC_2.16 addseverity F
+GLIBC_2.16 adjtime F
+GLIBC_2.16 adjtimex F
+GLIBC_2.16 advance F
+GLIBC_2.16 alarm F
+GLIBC_2.16 aligned_alloc F
+GLIBC_2.16 alphasort F
+GLIBC_2.16 alphasort64 F
+GLIBC_2.16 arch_prctl F
+GLIBC_2.16 argp_err_exit_status D 0x4
+GLIBC_2.16 argp_error F
+GLIBC_2.16 argp_failure F
+GLIBC_2.16 argp_help F
+GLIBC_2.16 argp_parse F
+GLIBC_2.16 argp_program_bug_address D 0x4
+GLIBC_2.16 argp_program_version D 0x4
+GLIBC_2.16 argp_program_version_hook D 0x4
+GLIBC_2.16 argp_state_help F
+GLIBC_2.16 argp_usage F
+GLIBC_2.16 argz_add F
+GLIBC_2.16 argz_add_sep F
+GLIBC_2.16 argz_append F
+GLIBC_2.16 argz_count F
+GLIBC_2.16 argz_create F
+GLIBC_2.16 argz_create_sep F
+GLIBC_2.16 argz_delete F
+GLIBC_2.16 argz_extract F
+GLIBC_2.16 argz_insert F
+GLIBC_2.16 argz_next F
+GLIBC_2.16 argz_replace F
+GLIBC_2.16 argz_stringify F
+GLIBC_2.16 asctime F
+GLIBC_2.16 asctime_r F
+GLIBC_2.16 asprintf F
+GLIBC_2.16 atof F
+GLIBC_2.16 atoi F
+GLIBC_2.16 atol F
+GLIBC_2.16 atoll F
+GLIBC_2.16 authdes_create F
+GLIBC_2.16 authdes_getucred F
+GLIBC_2.16 authdes_pk_create F
+GLIBC_2.16 authnone_create F
+GLIBC_2.16 authunix_create F
+GLIBC_2.16 authunix_create_default F
+GLIBC_2.16 backtrace F
+GLIBC_2.16 backtrace_symbols F
+GLIBC_2.16 backtrace_symbols_fd F
+GLIBC_2.16 basename F
+GLIBC_2.16 bcmp F
+GLIBC_2.16 bcopy F
+GLIBC_2.16 bdflush F
+GLIBC_2.16 bind F
+GLIBC_2.16 bind_textdomain_codeset F
+GLIBC_2.16 bindresvport F
+GLIBC_2.16 bindtextdomain F
+GLIBC_2.16 brk F
+GLIBC_2.16 bsd_signal F
+GLIBC_2.16 bsearch F
+GLIBC_2.16 btowc F
+GLIBC_2.16 bzero F
+GLIBC_2.16 c16rtomb F
+GLIBC_2.16 c32rtomb F
+GLIBC_2.16 calloc F
+GLIBC_2.16 callrpc F
+GLIBC_2.16 canonicalize_file_name F
+GLIBC_2.16 capget F
+GLIBC_2.16 capset F
+GLIBC_2.16 catclose F
+GLIBC_2.16 catgets F
+GLIBC_2.16 catopen F
+GLIBC_2.16 cbc_crypt F
+GLIBC_2.16 cfgetispeed F
+GLIBC_2.16 cfgetospeed F
+GLIBC_2.16 cfmakeraw F
+GLIBC_2.16 cfree F
+GLIBC_2.16 cfsetispeed F
+GLIBC_2.16 cfsetospeed F
+GLIBC_2.16 cfsetspeed F
+GLIBC_2.16 chdir F
+GLIBC_2.16 chflags F
+GLIBC_2.16 chmod F
+GLIBC_2.16 chown F
+GLIBC_2.16 chroot F
+GLIBC_2.16 clearenv F
+GLIBC_2.16 clearerr F
+GLIBC_2.16 clearerr_unlocked F
+GLIBC_2.16 clnt_broadcast F
+GLIBC_2.16 clnt_create F
+GLIBC_2.16 clnt_pcreateerror F
+GLIBC_2.16 clnt_perrno F
+GLIBC_2.16 clnt_perror F
+GLIBC_2.16 clnt_spcreateerror F
+GLIBC_2.16 clnt_sperrno F
+GLIBC_2.16 clnt_sperror F
+GLIBC_2.16 clntraw_create F
+GLIBC_2.16 clnttcp_create F
+GLIBC_2.16 clntudp_bufcreate F
+GLIBC_2.16 clntudp_create F
+GLIBC_2.16 clntunix_create F
+GLIBC_2.16 clock F
+GLIBC_2.16 clock_adjtime F
+GLIBC_2.16 clone F
+GLIBC_2.16 close F
+GLIBC_2.16 closedir F
+GLIBC_2.16 closelog F
+GLIBC_2.16 confstr F
+GLIBC_2.16 connect F
+GLIBC_2.16 copysign F
+GLIBC_2.16 copysignf F
+GLIBC_2.16 copysignl F
+GLIBC_2.16 creat F
+GLIBC_2.16 creat64 F
+GLIBC_2.16 create_module F
+GLIBC_2.16 ctermid F
+GLIBC_2.16 ctime F
+GLIBC_2.16 ctime_r F
+GLIBC_2.16 cuserid F
+GLIBC_2.16 daemon F
+GLIBC_2.16 daylight D 0x4
+GLIBC_2.16 dcgettext F
+GLIBC_2.16 dcngettext F
+GLIBC_2.16 delete_module F
+GLIBC_2.16 des_setparity F
+GLIBC_2.16 dgettext F
+GLIBC_2.16 difftime F
+GLIBC_2.16 dirfd F
+GLIBC_2.16 dirname F
+GLIBC_2.16 div F
+GLIBC_2.16 dl_iterate_phdr F
+GLIBC_2.16 dngettext F
+GLIBC_2.16 dprintf F
+GLIBC_2.16 drand48 F
+GLIBC_2.16 drand48_r F
+GLIBC_2.16 dup F
+GLIBC_2.16 dup2 F
+GLIBC_2.16 dup3 F
+GLIBC_2.16 duplocale F
+GLIBC_2.16 dysize F
+GLIBC_2.16 eaccess F
+GLIBC_2.16 ecb_crypt F
+GLIBC_2.16 ecvt F
+GLIBC_2.16 ecvt_r F
+GLIBC_2.16 endaliasent F
+GLIBC_2.16 endfsent F
+GLIBC_2.16 endgrent F
+GLIBC_2.16 endhostent F
+GLIBC_2.16 endmntent F
+GLIBC_2.16 endnetent F
+GLIBC_2.16 endnetgrent F
+GLIBC_2.16 endprotoent F
+GLIBC_2.16 endpwent F
+GLIBC_2.16 endrpcent F
+GLIBC_2.16 endservent F
+GLIBC_2.16 endsgent F
+GLIBC_2.16 endspent F
+GLIBC_2.16 endttyent F
+GLIBC_2.16 endusershell F
+GLIBC_2.16 endutent F
+GLIBC_2.16 endutxent F
+GLIBC_2.16 environ D 0x4
+GLIBC_2.16 envz_add F
+GLIBC_2.16 envz_entry F
+GLIBC_2.16 envz_get F
+GLIBC_2.16 envz_merge F
+GLIBC_2.16 envz_remove F
+GLIBC_2.16 envz_strip F
+GLIBC_2.16 epoll_create F
+GLIBC_2.16 epoll_create1 F
+GLIBC_2.16 epoll_ctl F
+GLIBC_2.16 epoll_pwait F
+GLIBC_2.16 epoll_wait F
+GLIBC_2.16 erand48 F
+GLIBC_2.16 erand48_r F
+GLIBC_2.16 err F
+GLIBC_2.16 error F
+GLIBC_2.16 error_at_line F
+GLIBC_2.16 error_message_count D 0x4
+GLIBC_2.16 error_one_per_line D 0x4
+GLIBC_2.16 error_print_progname D 0x4
+GLIBC_2.16 errx F
+GLIBC_2.16 ether_aton F
+GLIBC_2.16 ether_aton_r F
+GLIBC_2.16 ether_hostton F
+GLIBC_2.16 ether_line F
+GLIBC_2.16 ether_ntoa F
+GLIBC_2.16 ether_ntoa_r F
+GLIBC_2.16 ether_ntohost F
+GLIBC_2.16 euidaccess F
+GLIBC_2.16 eventfd F
+GLIBC_2.16 eventfd_read F
+GLIBC_2.16 eventfd_write F
+GLIBC_2.16 execl F
+GLIBC_2.16 execle F
+GLIBC_2.16 execlp F
+GLIBC_2.16 execv F
+GLIBC_2.16 execve F
+GLIBC_2.16 execvp F
+GLIBC_2.16 execvpe F
+GLIBC_2.16 exit F
+GLIBC_2.16 faccessat F
+GLIBC_2.16 fallocate F
+GLIBC_2.16 fallocate64 F
+GLIBC_2.16 fanotify_init F
+GLIBC_2.16 fanotify_mark F
+GLIBC_2.16 fattach F
+GLIBC_2.16 fchdir F
+GLIBC_2.16 fchflags F
+GLIBC_2.16 fchmod F
+GLIBC_2.16 fchmodat F
+GLIBC_2.16 fchown F
+GLIBC_2.16 fchownat F
+GLIBC_2.16 fclose F
+GLIBC_2.16 fcloseall F
+GLIBC_2.16 fcntl F
+GLIBC_2.16 fcvt F
+GLIBC_2.16 fcvt_r F
+GLIBC_2.16 fdatasync F
+GLIBC_2.16 fdetach F
+GLIBC_2.16 fdopen F
+GLIBC_2.16 fdopendir F
+GLIBC_2.16 feof F
+GLIBC_2.16 feof_unlocked F
+GLIBC_2.16 ferror F
+GLIBC_2.16 ferror_unlocked F
+GLIBC_2.16 fexecve F
+GLIBC_2.16 fflush F
+GLIBC_2.16 fflush_unlocked F
+GLIBC_2.16 ffs F
+GLIBC_2.16 ffsl F
+GLIBC_2.16 ffsll F
+GLIBC_2.16 fgetc F
+GLIBC_2.16 fgetc_unlocked F
+GLIBC_2.16 fgetgrent F
+GLIBC_2.16 fgetgrent_r F
+GLIBC_2.16 fgetpos F
+GLIBC_2.16 fgetpos64 F
+GLIBC_2.16 fgetpwent F
+GLIBC_2.16 fgetpwent_r F
+GLIBC_2.16 fgets F
+GLIBC_2.16 fgets_unlocked F
+GLIBC_2.16 fgetsgent F
+GLIBC_2.16 fgetsgent_r F
+GLIBC_2.16 fgetspent F
+GLIBC_2.16 fgetspent_r F
+GLIBC_2.16 fgetwc F
+GLIBC_2.16 fgetwc_unlocked F
+GLIBC_2.16 fgetws F
+GLIBC_2.16 fgetws_unlocked F
+GLIBC_2.16 fgetxattr F
+GLIBC_2.16 fileno F
+GLIBC_2.16 fileno_unlocked F
+GLIBC_2.16 finite F
+GLIBC_2.16 finitef F
+GLIBC_2.16 finitel F
+GLIBC_2.16 flistxattr F
+GLIBC_2.16 flock F
+GLIBC_2.16 flockfile F
+GLIBC_2.16 fmemopen F
+GLIBC_2.16 fmtmsg F
+GLIBC_2.16 fnmatch F
+GLIBC_2.16 fopen F
+GLIBC_2.16 fopen64 F
+GLIBC_2.16 fopencookie F
+GLIBC_2.16 fork F
+GLIBC_2.16 fpathconf F
+GLIBC_2.16 fprintf F
+GLIBC_2.16 fputc F
+GLIBC_2.16 fputc_unlocked F
+GLIBC_2.16 fputs F
+GLIBC_2.16 fputs_unlocked F
+GLIBC_2.16 fputwc F
+GLIBC_2.16 fputwc_unlocked F
+GLIBC_2.16 fputws F
+GLIBC_2.16 fputws_unlocked F
+GLIBC_2.16 fread F
+GLIBC_2.16 fread_unlocked F
+GLIBC_2.16 free F
+GLIBC_2.16 freeaddrinfo F
+GLIBC_2.16 freeifaddrs F
+GLIBC_2.16 freelocale F
+GLIBC_2.16 fremovexattr F
+GLIBC_2.16 freopen F
+GLIBC_2.16 freopen64 F
+GLIBC_2.16 frexp F
+GLIBC_2.16 frexpf F
+GLIBC_2.16 frexpl F
+GLIBC_2.16 fscanf F
+GLIBC_2.16 fseek F
+GLIBC_2.16 fseeko F
+GLIBC_2.16 fseeko64 F
+GLIBC_2.16 fsetpos F
+GLIBC_2.16 fsetpos64 F
+GLIBC_2.16 fsetxattr F
+GLIBC_2.16 fstatfs F
+GLIBC_2.16 fstatfs64 F
+GLIBC_2.16 fstatvfs F
+GLIBC_2.16 fstatvfs64 F
+GLIBC_2.16 fsync F
+GLIBC_2.16 ftell F
+GLIBC_2.16 ftello F
+GLIBC_2.16 ftello64 F
+GLIBC_2.16 ftime F
+GLIBC_2.16 ftok F
+GLIBC_2.16 ftruncate F
+GLIBC_2.16 ftruncate64 F
+GLIBC_2.16 ftrylockfile F
+GLIBC_2.16 fts_children F
+GLIBC_2.16 fts_close F
+GLIBC_2.16 fts_open F
+GLIBC_2.16 fts_read F
+GLIBC_2.16 fts_set F
+GLIBC_2.16 ftw F
+GLIBC_2.16 ftw64 F
+GLIBC_2.16 funlockfile F
+GLIBC_2.16 futimens F
+GLIBC_2.16 futimes F
+GLIBC_2.16 futimesat F
+GLIBC_2.16 fwide F
+GLIBC_2.16 fwprintf F
+GLIBC_2.16 fwrite F
+GLIBC_2.16 fwrite_unlocked F
+GLIBC_2.16 fwscanf F
+GLIBC_2.16 gai_strerror F
+GLIBC_2.16 gcvt F
+GLIBC_2.16 get_avphys_pages F
+GLIBC_2.16 get_current_dir_name F
+GLIBC_2.16 get_kernel_syms F
+GLIBC_2.16 get_myaddress F
+GLIBC_2.16 get_nprocs F
+GLIBC_2.16 get_nprocs_conf F
+GLIBC_2.16 get_phys_pages F
+GLIBC_2.16 getaddrinfo F
+GLIBC_2.16 getaliasbyname F
+GLIBC_2.16 getaliasbyname_r F
+GLIBC_2.16 getaliasent F
+GLIBC_2.16 getaliasent_r F
+GLIBC_2.16 getauxval F
+GLIBC_2.16 getc F
+GLIBC_2.16 getc_unlocked F
+GLIBC_2.16 getchar F
+GLIBC_2.16 getchar_unlocked F
+GLIBC_2.16 getcontext F
+GLIBC_2.16 getcwd F
+GLIBC_2.16 getdate F
+GLIBC_2.16 getdate_err D 0x4
+GLIBC_2.16 getdate_r F
+GLIBC_2.16 getdelim F
+GLIBC_2.16 getdirentries F
+GLIBC_2.16 getdirentries64 F
+GLIBC_2.16 getdomainname F
+GLIBC_2.16 getdtablesize F
+GLIBC_2.16 getegid F
+GLIBC_2.16 getenv F
+GLIBC_2.16 geteuid F
+GLIBC_2.16 getfsent F
+GLIBC_2.16 getfsfile F
+GLIBC_2.16 getfsspec F
+GLIBC_2.16 getgid F
+GLIBC_2.16 getgrent F
+GLIBC_2.16 getgrent_r F
+GLIBC_2.16 getgrgid F
+GLIBC_2.16 getgrgid_r F
+GLIBC_2.16 getgrnam F
+GLIBC_2.16 getgrnam_r F
+GLIBC_2.16 getgrouplist F
+GLIBC_2.16 getgroups F
+GLIBC_2.16 gethostbyaddr F
+GLIBC_2.16 gethostbyaddr_r F
+GLIBC_2.16 gethostbyname F
+GLIBC_2.16 gethostbyname2 F
+GLIBC_2.16 gethostbyname2_r F
+GLIBC_2.16 gethostbyname_r F
+GLIBC_2.16 gethostent F
+GLIBC_2.16 gethostent_r F
+GLIBC_2.16 gethostid F
+GLIBC_2.16 gethostname F
+GLIBC_2.16 getifaddrs F
+GLIBC_2.16 getipv4sourcefilter F
+GLIBC_2.16 getitimer F
+GLIBC_2.16 getline F
+GLIBC_2.16 getloadavg F
+GLIBC_2.16 getlogin F
+GLIBC_2.16 getlogin_r F
+GLIBC_2.16 getmntent F
+GLIBC_2.16 getmntent_r F
+GLIBC_2.16 getmsg F
+GLIBC_2.16 getnameinfo F
+GLIBC_2.16 getnetbyaddr F
+GLIBC_2.16 getnetbyaddr_r F
+GLIBC_2.16 getnetbyname F
+GLIBC_2.16 getnetbyname_r F
+GLIBC_2.16 getnetent F
+GLIBC_2.16 getnetent_r F
+GLIBC_2.16 getnetgrent F
+GLIBC_2.16 getnetgrent_r F
+GLIBC_2.16 getnetname F
+GLIBC_2.16 getopt F
+GLIBC_2.16 getopt_long F
+GLIBC_2.16 getopt_long_only F
+GLIBC_2.16 getpagesize F
+GLIBC_2.16 getpass F
+GLIBC_2.16 getpeername F
+GLIBC_2.16 getpgid F
+GLIBC_2.16 getpgrp F
+GLIBC_2.16 getpid F
+GLIBC_2.16 getpmsg F
+GLIBC_2.16 getppid F
+GLIBC_2.16 getpriority F
+GLIBC_2.16 getprotobyname F
+GLIBC_2.16 getprotobyname_r F
+GLIBC_2.16 getprotobynumber F
+GLIBC_2.16 getprotobynumber_r F
+GLIBC_2.16 getprotoent F
+GLIBC_2.16 getprotoent_r F
+GLIBC_2.16 getpt F
+GLIBC_2.16 getpublickey F
+GLIBC_2.16 getpw F
+GLIBC_2.16 getpwent F
+GLIBC_2.16 getpwent_r F
+GLIBC_2.16 getpwnam F
+GLIBC_2.16 getpwnam_r F
+GLIBC_2.16 getpwuid F
+GLIBC_2.16 getpwuid_r F
+GLIBC_2.16 getresgid F
+GLIBC_2.16 getresuid F
+GLIBC_2.16 getrlimit F
+GLIBC_2.16 getrlimit64 F
+GLIBC_2.16 getrpcbyname F
+GLIBC_2.16 getrpcbyname_r F
+GLIBC_2.16 getrpcbynumber F
+GLIBC_2.16 getrpcbynumber_r F
+GLIBC_2.16 getrpcent F
+GLIBC_2.16 getrpcent_r F
+GLIBC_2.16 getrpcport F
+GLIBC_2.16 getrusage F
+GLIBC_2.16 gets F
+GLIBC_2.16 getsecretkey F
+GLIBC_2.16 getservbyname F
+GLIBC_2.16 getservbyname_r F
+GLIBC_2.16 getservbyport F
+GLIBC_2.16 getservbyport_r F
+GLIBC_2.16 getservent F
+GLIBC_2.16 getservent_r F
+GLIBC_2.16 getsgent F
+GLIBC_2.16 getsgent_r F
+GLIBC_2.16 getsgnam F
+GLIBC_2.16 getsgnam_r F
+GLIBC_2.16 getsid F
+GLIBC_2.16 getsockname F
+GLIBC_2.16 getsockopt F
+GLIBC_2.16 getsourcefilter F
+GLIBC_2.16 getspent F
+GLIBC_2.16 getspent_r F
+GLIBC_2.16 getspnam F
+GLIBC_2.16 getspnam_r F
+GLIBC_2.16 getsubopt F
+GLIBC_2.16 gettext F
+GLIBC_2.16 gettimeofday F
+GLIBC_2.16 getttyent F
+GLIBC_2.16 getttynam F
+GLIBC_2.16 getuid F
+GLIBC_2.16 getusershell F
+GLIBC_2.16 getutent F
+GLIBC_2.16 getutent_r F
+GLIBC_2.16 getutid F
+GLIBC_2.16 getutid_r F
+GLIBC_2.16 getutline F
+GLIBC_2.16 getutline_r F
+GLIBC_2.16 getutmp F
+GLIBC_2.16 getutmpx F
+GLIBC_2.16 getutxent F
+GLIBC_2.16 getutxid F
+GLIBC_2.16 getutxline F
+GLIBC_2.16 getw F
+GLIBC_2.16 getwc F
+GLIBC_2.16 getwc_unlocked F
+GLIBC_2.16 getwchar F
+GLIBC_2.16 getwchar_unlocked F
+GLIBC_2.16 getwd F
+GLIBC_2.16 getxattr F
+GLIBC_2.16 glob F
+GLIBC_2.16 glob64 F
+GLIBC_2.16 glob_pattern_p F
+GLIBC_2.16 globfree F
+GLIBC_2.16 globfree64 F
+GLIBC_2.16 gmtime F
+GLIBC_2.16 gmtime_r F
+GLIBC_2.16 gnu_dev_major F
+GLIBC_2.16 gnu_dev_makedev F
+GLIBC_2.16 gnu_dev_minor F
+GLIBC_2.16 gnu_get_libc_release F
+GLIBC_2.16 gnu_get_libc_version F
+GLIBC_2.16 grantpt F
+GLIBC_2.16 group_member F
+GLIBC_2.16 gsignal F
+GLIBC_2.16 gtty F
+GLIBC_2.16 h_errlist D 0x14
+GLIBC_2.16 h_nerr D 0x4
+GLIBC_2.16 hasmntopt F
+GLIBC_2.16 hcreate F
+GLIBC_2.16 hcreate_r F
+GLIBC_2.16 hdestroy F
+GLIBC_2.16 hdestroy_r F
+GLIBC_2.16 herror F
+GLIBC_2.16 host2netname F
+GLIBC_2.16 hsearch F
+GLIBC_2.16 hsearch_r F
+GLIBC_2.16 hstrerror F
+GLIBC_2.16 htonl F
+GLIBC_2.16 htons F
+GLIBC_2.16 iconv F
+GLIBC_2.16 iconv_close F
+GLIBC_2.16 iconv_open F
+GLIBC_2.16 if_freenameindex F
+GLIBC_2.16 if_indextoname F
+GLIBC_2.16 if_nameindex F
+GLIBC_2.16 if_nametoindex F
+GLIBC_2.16 imaxabs F
+GLIBC_2.16 imaxdiv F
+GLIBC_2.16 in6addr_any D 0x10
+GLIBC_2.16 in6addr_loopback D 0x10
+GLIBC_2.16 index F
+GLIBC_2.16 inet6_opt_append F
+GLIBC_2.16 inet6_opt_find F
+GLIBC_2.16 inet6_opt_finish F
+GLIBC_2.16 inet6_opt_get_val F
+GLIBC_2.16 inet6_opt_init F
+GLIBC_2.16 inet6_opt_next F
+GLIBC_2.16 inet6_opt_set_val F
+GLIBC_2.16 inet6_option_alloc F
+GLIBC_2.16 inet6_option_append F
+GLIBC_2.16 inet6_option_find F
+GLIBC_2.16 inet6_option_init F
+GLIBC_2.16 inet6_option_next F
+GLIBC_2.16 inet6_option_space F
+GLIBC_2.16 inet6_rth_add F
+GLIBC_2.16 inet6_rth_getaddr F
+GLIBC_2.16 inet6_rth_init F
+GLIBC_2.16 inet6_rth_reverse F
+GLIBC_2.16 inet6_rth_segments F
+GLIBC_2.16 inet6_rth_space F
+GLIBC_2.16 inet_addr F
+GLIBC_2.16 inet_aton F
+GLIBC_2.16 inet_lnaof F
+GLIBC_2.16 inet_makeaddr F
+GLIBC_2.16 inet_netof F
+GLIBC_2.16 inet_network F
+GLIBC_2.16 inet_nsap_addr F
+GLIBC_2.16 inet_nsap_ntoa F
+GLIBC_2.16 inet_ntoa F
+GLIBC_2.16 inet_ntop F
+GLIBC_2.16 inet_pton F
+GLIBC_2.16 init_module F
+GLIBC_2.16 initgroups F
+GLIBC_2.16 initstate F
+GLIBC_2.16 initstate_r F
+GLIBC_2.16 innetgr F
+GLIBC_2.16 inotify_add_watch F
+GLIBC_2.16 inotify_init F
+GLIBC_2.16 inotify_init1 F
+GLIBC_2.16 inotify_rm_watch F
+GLIBC_2.16 insque F
+GLIBC_2.16 ioctl F
+GLIBC_2.16 ioperm F
+GLIBC_2.16 iopl F
+GLIBC_2.16 iruserok F
+GLIBC_2.16 iruserok_af F
+GLIBC_2.16 isalnum F
+GLIBC_2.16 isalnum_l F
+GLIBC_2.16 isalpha F
+GLIBC_2.16 isalpha_l F
+GLIBC_2.16 isascii F
+GLIBC_2.16 isastream F
+GLIBC_2.16 isatty F
+GLIBC_2.16 isblank F
+GLIBC_2.16 isblank_l F
+GLIBC_2.16 iscntrl F
+GLIBC_2.16 iscntrl_l F
+GLIBC_2.16 isctype F
+GLIBC_2.16 isdigit F
+GLIBC_2.16 isdigit_l F
+GLIBC_2.16 isfdtype F
+GLIBC_2.16 isgraph F
+GLIBC_2.16 isgraph_l F
+GLIBC_2.16 isinf F
+GLIBC_2.16 isinff F
+GLIBC_2.16 isinfl F
+GLIBC_2.16 islower F
+GLIBC_2.16 islower_l F
+GLIBC_2.16 isnan F
+GLIBC_2.16 isnanf F
+GLIBC_2.16 isnanl F
+GLIBC_2.16 isprint F
+GLIBC_2.16 isprint_l F
+GLIBC_2.16 ispunct F
+GLIBC_2.16 ispunct_l F
+GLIBC_2.16 isspace F
+GLIBC_2.16 isspace_l F
+GLIBC_2.16 isupper F
+GLIBC_2.16 isupper_l F
+GLIBC_2.16 iswalnum F
+GLIBC_2.16 iswalnum_l F
+GLIBC_2.16 iswalpha F
+GLIBC_2.16 iswalpha_l F
+GLIBC_2.16 iswblank F
+GLIBC_2.16 iswblank_l F
+GLIBC_2.16 iswcntrl F
+GLIBC_2.16 iswcntrl_l F
+GLIBC_2.16 iswctype F
+GLIBC_2.16 iswctype_l F
+GLIBC_2.16 iswdigit F
+GLIBC_2.16 iswdigit_l F
+GLIBC_2.16 iswgraph F
+GLIBC_2.16 iswgraph_l F
+GLIBC_2.16 iswlower F
+GLIBC_2.16 iswlower_l F
+GLIBC_2.16 iswprint F
+GLIBC_2.16 iswprint_l F
+GLIBC_2.16 iswpunct F
+GLIBC_2.16 iswpunct_l F
+GLIBC_2.16 iswspace F
+GLIBC_2.16 iswspace_l F
+GLIBC_2.16 iswupper F
+GLIBC_2.16 iswupper_l F
+GLIBC_2.16 iswxdigit F
+GLIBC_2.16 iswxdigit_l F
+GLIBC_2.16 isxdigit F
+GLIBC_2.16 isxdigit_l F
+GLIBC_2.16 jrand48 F
+GLIBC_2.16 jrand48_r F
+GLIBC_2.16 key_decryptsession F
+GLIBC_2.16 key_decryptsession_pk F
+GLIBC_2.16 key_encryptsession F
+GLIBC_2.16 key_encryptsession_pk F
+GLIBC_2.16 key_gendes F
+GLIBC_2.16 key_get_conv F
+GLIBC_2.16 key_secretkey_is_set F
+GLIBC_2.16 key_setnet F
+GLIBC_2.16 key_setsecret F
+GLIBC_2.16 kill F
+GLIBC_2.16 killpg F
+GLIBC_2.16 klogctl F
+GLIBC_2.16 l64a F
+GLIBC_2.16 labs F
+GLIBC_2.16 lchmod F
+GLIBC_2.16 lchown F
+GLIBC_2.16 lckpwdf F
+GLIBC_2.16 lcong48 F
+GLIBC_2.16 lcong48_r F
+GLIBC_2.16 ldexp F
+GLIBC_2.16 ldexpf F
+GLIBC_2.16 ldexpl F
+GLIBC_2.16 ldiv F
+GLIBC_2.16 lfind F
+GLIBC_2.16 lgetxattr F
+GLIBC_2.16 link F
+GLIBC_2.16 linkat F
+GLIBC_2.16 listen F
+GLIBC_2.16 listxattr F
+GLIBC_2.16 llabs F
+GLIBC_2.16 lldiv F
+GLIBC_2.16 llistxattr F
+GLIBC_2.16 loc1 D 0x4
+GLIBC_2.16 loc2 D 0x4
+GLIBC_2.16 localeconv F
+GLIBC_2.16 localtime F
+GLIBC_2.16 localtime_r F
+GLIBC_2.16 lockf F
+GLIBC_2.16 lockf64 F
+GLIBC_2.16 locs D 0x4
+GLIBC_2.16 longjmp F
+GLIBC_2.16 lrand48 F
+GLIBC_2.16 lrand48_r F
+GLIBC_2.16 lremovexattr F
+GLIBC_2.16 lsearch F
+GLIBC_2.16 lseek F
+GLIBC_2.16 lseek64 F
+GLIBC_2.16 lsetxattr F
+GLIBC_2.16 lutimes F
+GLIBC_2.16 madvise F
+GLIBC_2.16 makecontext F
+GLIBC_2.16 mallinfo F
+GLIBC_2.16 malloc F
+GLIBC_2.16 malloc_get_state F
+GLIBC_2.16 malloc_info F
+GLIBC_2.16 malloc_set_state F
+GLIBC_2.16 malloc_stats F
+GLIBC_2.16 malloc_trim F
+GLIBC_2.16 malloc_usable_size F
+GLIBC_2.16 mallopt F
+GLIBC_2.16 mallwatch D 0x4
+GLIBC_2.16 mblen F
+GLIBC_2.16 mbrlen F
+GLIBC_2.16 mbrtoc16 F
+GLIBC_2.16 mbrtoc32 F
+GLIBC_2.16 mbrtowc F
+GLIBC_2.16 mbsinit F
+GLIBC_2.16 mbsnrtowcs F
+GLIBC_2.16 mbsrtowcs F
+GLIBC_2.16 mbstowcs F
+GLIBC_2.16 mbtowc F
+GLIBC_2.16 mcheck F
+GLIBC_2.16 mcheck_check_all F
+GLIBC_2.16 mcheck_pedantic F
+GLIBC_2.16 mcount F
+GLIBC_2.16 memalign F
+GLIBC_2.16 memccpy F
+GLIBC_2.16 memchr F
+GLIBC_2.16 memcmp F
+GLIBC_2.16 memcpy F
+GLIBC_2.16 memfrob F
+GLIBC_2.16 memmem F
+GLIBC_2.16 memmove F
+GLIBC_2.16 mempcpy F
+GLIBC_2.16 memrchr F
+GLIBC_2.16 memset F
+GLIBC_2.16 mincore F
+GLIBC_2.16 mkdir F
+GLIBC_2.16 mkdirat F
+GLIBC_2.16 mkdtemp F
+GLIBC_2.16 mkfifo F
+GLIBC_2.16 mkfifoat F
+GLIBC_2.16 mkostemp F
+GLIBC_2.16 mkostemp64 F
+GLIBC_2.16 mkostemps F
+GLIBC_2.16 mkostemps64 F
+GLIBC_2.16 mkstemp F
+GLIBC_2.16 mkstemp64 F
+GLIBC_2.16 mkstemps F
+GLIBC_2.16 mkstemps64 F
+GLIBC_2.16 mktemp F
+GLIBC_2.16 mktime F
+GLIBC_2.16 mlock F
+GLIBC_2.16 mlockall F
+GLIBC_2.16 mmap F
+GLIBC_2.16 mmap64 F
+GLIBC_2.16 modf F
+GLIBC_2.16 modff F
+GLIBC_2.16 modfl F
+GLIBC_2.16 modify_ldt F
+GLIBC_2.16 moncontrol F
+GLIBC_2.16 monstartup F
+GLIBC_2.16 mount F
+GLIBC_2.16 mprobe F
+GLIBC_2.16 mprotect F
+GLIBC_2.16 mrand48 F
+GLIBC_2.16 mrand48_r F
+GLIBC_2.16 mremap F
+GLIBC_2.16 msgctl F
+GLIBC_2.16 msgget F
+GLIBC_2.16 msgrcv F
+GLIBC_2.16 msgsnd F
+GLIBC_2.16 msync F
+GLIBC_2.16 mtrace F
+GLIBC_2.16 munlock F
+GLIBC_2.16 munlockall F
+GLIBC_2.16 munmap F
+GLIBC_2.16 muntrace F
+GLIBC_2.16 name_to_handle_at F
+GLIBC_2.16 nanosleep F
+GLIBC_2.16 netname2host F
+GLIBC_2.16 netname2user F
+GLIBC_2.16 newlocale F
+GLIBC_2.16 nfsservctl F
+GLIBC_2.16 nftw F
+GLIBC_2.16 nftw64 F
+GLIBC_2.16 ngettext F
+GLIBC_2.16 nice F
+GLIBC_2.16 nl_langinfo F
+GLIBC_2.16 nl_langinfo_l F
+GLIBC_2.16 nrand48 F
+GLIBC_2.16 nrand48_r F
+GLIBC_2.16 ntohl F
+GLIBC_2.16 ntohs F
+GLIBC_2.16 ntp_adjtime F
+GLIBC_2.16 ntp_gettime F
+GLIBC_2.16 ntp_gettimex F
+GLIBC_2.16 obstack_alloc_failed_handler D 0x4
+GLIBC_2.16 obstack_exit_failure D 0x4
+GLIBC_2.16 obstack_free F
+GLIBC_2.16 obstack_printf F
+GLIBC_2.16 obstack_vprintf F
+GLIBC_2.16 on_exit F
+GLIBC_2.16 open F
+GLIBC_2.16 open64 F
+GLIBC_2.16 open_by_handle_at F
+GLIBC_2.16 open_memstream F
+GLIBC_2.16 open_wmemstream F
+GLIBC_2.16 openat F
+GLIBC_2.16 openat64 F
+GLIBC_2.16 opendir F
+GLIBC_2.16 openlog F
+GLIBC_2.16 optarg D 0x4
+GLIBC_2.16 opterr D 0x4
+GLIBC_2.16 optind D 0x4
+GLIBC_2.16 optopt D 0x4
+GLIBC_2.16 parse_printf_format F
+GLIBC_2.16 passwd2des F
+GLIBC_2.16 pathconf F
+GLIBC_2.16 pause F
+GLIBC_2.16 pclose F
+GLIBC_2.16 perror F
+GLIBC_2.16 personality F
+GLIBC_2.16 pipe F
+GLIBC_2.16 pipe2 F
+GLIBC_2.16 pivot_root F
+GLIBC_2.16 pmap_getmaps F
+GLIBC_2.16 pmap_getport F
+GLIBC_2.16 pmap_rmtcall F
+GLIBC_2.16 pmap_set F
+GLIBC_2.16 pmap_unset F
+GLIBC_2.16 poll F
+GLIBC_2.16 popen F
+GLIBC_2.16 posix_fadvise F
+GLIBC_2.16 posix_fadvise64 F
+GLIBC_2.16 posix_fallocate F
+GLIBC_2.16 posix_fallocate64 F
+GLIBC_2.16 posix_madvise F
+GLIBC_2.16 posix_memalign F
+GLIBC_2.16 posix_openpt F
+GLIBC_2.16 posix_spawn F
+GLIBC_2.16 posix_spawn_file_actions_addclose F
+GLIBC_2.16 posix_spawn_file_actions_adddup2 F
+GLIBC_2.16 posix_spawn_file_actions_addopen F
+GLIBC_2.16 posix_spawn_file_actions_destroy F
+GLIBC_2.16 posix_spawn_file_actions_init F
+GLIBC_2.16 posix_spawnattr_destroy F
+GLIBC_2.16 posix_spawnattr_getflags F
+GLIBC_2.16 posix_spawnattr_getpgroup F
+GLIBC_2.16 posix_spawnattr_getschedparam F
+GLIBC_2.16 posix_spawnattr_getschedpolicy F
+GLIBC_2.16 posix_spawnattr_getsigdefault F
+GLIBC_2.16 posix_spawnattr_getsigmask F
+GLIBC_2.16 posix_spawnattr_init F
+GLIBC_2.16 posix_spawnattr_setflags F
+GLIBC_2.16 posix_spawnattr_setpgroup F
+GLIBC_2.16 posix_spawnattr_setschedparam F
+GLIBC_2.16 posix_spawnattr_setschedpolicy F
+GLIBC_2.16 posix_spawnattr_setsigdefault F
+GLIBC_2.16 posix_spawnattr_setsigmask F
+GLIBC_2.16 posix_spawnp F
+GLIBC_2.16 ppoll F
+GLIBC_2.16 prctl F
+GLIBC_2.16 pread F
+GLIBC_2.16 pread64 F
+GLIBC_2.16 preadv F
+GLIBC_2.16 preadv64 F
+GLIBC_2.16 printf F
+GLIBC_2.16 printf_size F
+GLIBC_2.16 printf_size_info F
+GLIBC_2.16 prlimit F
+GLIBC_2.16 prlimit64 F
+GLIBC_2.16 process_vm_readv F
+GLIBC_2.16 process_vm_writev F
+GLIBC_2.16 profil F
+GLIBC_2.16 program_invocation_name D 0x4
+GLIBC_2.16 program_invocation_short_name D 0x4
+GLIBC_2.16 pselect F
+GLIBC_2.16 psiginfo F
+GLIBC_2.16 psignal F
+GLIBC_2.16 pthread_attr_destroy F
+GLIBC_2.16 pthread_attr_getdetachstate F
+GLIBC_2.16 pthread_attr_getinheritsched F
+GLIBC_2.16 pthread_attr_getschedparam F
+GLIBC_2.16 pthread_attr_getschedpolicy F
+GLIBC_2.16 pthread_attr_getscope F
+GLIBC_2.16 pthread_attr_init F
+GLIBC_2.16 pthread_attr_setdetachstate F
+GLIBC_2.16 pthread_attr_setinheritsched F
+GLIBC_2.16 pthread_attr_setschedparam F
+GLIBC_2.16 pthread_attr_setschedpolicy F
+GLIBC_2.16 pthread_attr_setscope F
+GLIBC_2.16 pthread_cond_broadcast F
+GLIBC_2.16 pthread_cond_destroy F
+GLIBC_2.16 pthread_cond_init F
+GLIBC_2.16 pthread_cond_signal F
+GLIBC_2.16 pthread_cond_timedwait F
+GLIBC_2.16 pthread_cond_wait F
+GLIBC_2.16 pthread_condattr_destroy F
+GLIBC_2.16 pthread_condattr_init F
+GLIBC_2.16 pthread_equal F
+GLIBC_2.16 pthread_exit F
+GLIBC_2.16 pthread_getschedparam F
+GLIBC_2.16 pthread_mutex_destroy F
+GLIBC_2.16 pthread_mutex_init F
+GLIBC_2.16 pthread_mutex_lock F
+GLIBC_2.16 pthread_mutex_unlock F
+GLIBC_2.16 pthread_self F
+GLIBC_2.16 pthread_setcancelstate F
+GLIBC_2.16 pthread_setcanceltype F
+GLIBC_2.16 pthread_setschedparam F
+GLIBC_2.16 ptrace F
+GLIBC_2.16 ptsname F
+GLIBC_2.16 ptsname_r F
+GLIBC_2.16 putc F
+GLIBC_2.16 putc_unlocked F
+GLIBC_2.16 putchar F
+GLIBC_2.16 putchar_unlocked F
+GLIBC_2.16 putenv F
+GLIBC_2.16 putgrent F
+GLIBC_2.16 putmsg F
+GLIBC_2.16 putpmsg F
+GLIBC_2.16 putpwent F
+GLIBC_2.16 puts F
+GLIBC_2.16 putsgent F
+GLIBC_2.16 putspent F
+GLIBC_2.16 pututline F
+GLIBC_2.16 pututxline F
+GLIBC_2.16 putw F
+GLIBC_2.16 putwc F
+GLIBC_2.16 putwc_unlocked F
+GLIBC_2.16 putwchar F
+GLIBC_2.16 putwchar_unlocked F
+GLIBC_2.16 pvalloc F
+GLIBC_2.16 pwrite F
+GLIBC_2.16 pwrite64 F
+GLIBC_2.16 pwritev F
+GLIBC_2.16 pwritev64 F
+GLIBC_2.16 qecvt F
+GLIBC_2.16 qecvt_r F
+GLIBC_2.16 qfcvt F
+GLIBC_2.16 qfcvt_r F
+GLIBC_2.16 qgcvt F
+GLIBC_2.16 qsort F
+GLIBC_2.16 qsort_r F
+GLIBC_2.16 query_module F
+GLIBC_2.16 quick_exit F
+GLIBC_2.16 quotactl F
+GLIBC_2.16 raise F
+GLIBC_2.16 rand F
+GLIBC_2.16 rand_r F
+GLIBC_2.16 random F
+GLIBC_2.16 random_r F
+GLIBC_2.16 rawmemchr F
+GLIBC_2.16 rcmd F
+GLIBC_2.16 rcmd_af F
+GLIBC_2.16 re_comp F
+GLIBC_2.16 re_compile_fastmap F
+GLIBC_2.16 re_compile_pattern F
+GLIBC_2.16 re_exec F
+GLIBC_2.16 re_match F
+GLIBC_2.16 re_match_2 F
+GLIBC_2.16 re_search F
+GLIBC_2.16 re_search_2 F
+GLIBC_2.16 re_set_registers F
+GLIBC_2.16 re_set_syntax F
+GLIBC_2.16 re_syntax_options D 0x4
+GLIBC_2.16 read F
+GLIBC_2.16 readahead F
+GLIBC_2.16 readdir F
+GLIBC_2.16 readdir64 F
+GLIBC_2.16 readdir64_r F
+GLIBC_2.16 readdir_r F
+GLIBC_2.16 readlink F
+GLIBC_2.16 readlinkat F
+GLIBC_2.16 readv F
+GLIBC_2.16 realloc F
+GLIBC_2.16 realpath F
+GLIBC_2.16 reboot F
+GLIBC_2.16 recv F
+GLIBC_2.16 recvfrom F
+GLIBC_2.16 recvmmsg F
+GLIBC_2.16 recvmsg F
+GLIBC_2.16 regcomp F
+GLIBC_2.16 regerror F
+GLIBC_2.16 regexec F
+GLIBC_2.16 regfree F
+GLIBC_2.16 register_printf_function F
+GLIBC_2.16 register_printf_modifier F
+GLIBC_2.16 register_printf_specifier F
+GLIBC_2.16 register_printf_type F
+GLIBC_2.16 registerrpc F
+GLIBC_2.16 remap_file_pages F
+GLIBC_2.16 remove F
+GLIBC_2.16 removexattr F
+GLIBC_2.16 remque F
+GLIBC_2.16 rename F
+GLIBC_2.16 renameat F
+GLIBC_2.16 revoke F
+GLIBC_2.16 rewind F
+GLIBC_2.16 rewinddir F
+GLIBC_2.16 rexec F
+GLIBC_2.16 rexec_af F
+GLIBC_2.16 rexecoptions D 0x4
+GLIBC_2.16 rindex F
+GLIBC_2.16 rmdir F
+GLIBC_2.16 rpc_createerr D 0x10
+GLIBC_2.16 rpmatch F
+GLIBC_2.16 rresvport F
+GLIBC_2.16 rresvport_af F
+GLIBC_2.16 rtime F
+GLIBC_2.16 ruserok F
+GLIBC_2.16 ruserok_af F
+GLIBC_2.16 ruserpass F
+GLIBC_2.16 sbrk F
+GLIBC_2.16 scalbn F
+GLIBC_2.16 scalbnf F
+GLIBC_2.16 scalbnl F
+GLIBC_2.16 scandir F
+GLIBC_2.16 scandir64 F
+GLIBC_2.16 scandirat F
+GLIBC_2.16 scandirat64 F
+GLIBC_2.16 scanf F
+GLIBC_2.16 sched_get_priority_max F
+GLIBC_2.16 sched_get_priority_min F
+GLIBC_2.16 sched_getaffinity F
+GLIBC_2.16 sched_getcpu F
+GLIBC_2.16 sched_getparam F
+GLIBC_2.16 sched_getscheduler F
+GLIBC_2.16 sched_rr_get_interval F
+GLIBC_2.16 sched_setaffinity F
+GLIBC_2.16 sched_setparam F
+GLIBC_2.16 sched_setscheduler F
+GLIBC_2.16 sched_yield F
+GLIBC_2.16 seed48 F
+GLIBC_2.16 seed48_r F
+GLIBC_2.16 seekdir F
+GLIBC_2.16 select F
+GLIBC_2.16 semctl F
+GLIBC_2.16 semget F
+GLIBC_2.16 semop F
+GLIBC_2.16 semtimedop F
+GLIBC_2.16 send F
+GLIBC_2.16 sendfile F
+GLIBC_2.16 sendfile64 F
+GLIBC_2.16 sendmmsg F
+GLIBC_2.16 sendmsg F
+GLIBC_2.16 sendto F
+GLIBC_2.16 setaliasent F
+GLIBC_2.16 setbuf F
+GLIBC_2.16 setbuffer F
+GLIBC_2.16 setcontext F
+GLIBC_2.16 setdomainname F
+GLIBC_2.16 setegid F
+GLIBC_2.16 setenv F
+GLIBC_2.16 seteuid F
+GLIBC_2.16 setfsent F
+GLIBC_2.16 setfsgid F
+GLIBC_2.16 setfsuid F
+GLIBC_2.16 setgid F
+GLIBC_2.16 setgrent F
+GLIBC_2.16 setgroups F
+GLIBC_2.16 sethostent F
+GLIBC_2.16 sethostid F
+GLIBC_2.16 sethostname F
+GLIBC_2.16 setipv4sourcefilter F
+GLIBC_2.16 setitimer F
+GLIBC_2.16 setjmp F
+GLIBC_2.16 setlinebuf F
+GLIBC_2.16 setlocale F
+GLIBC_2.16 setlogin F
+GLIBC_2.16 setlogmask F
+GLIBC_2.16 setmntent F
+GLIBC_2.16 setnetent F
+GLIBC_2.16 setnetgrent F
+GLIBC_2.16 setns F
+GLIBC_2.16 setpgid F
+GLIBC_2.16 setpgrp F
+GLIBC_2.16 setpriority F
+GLIBC_2.16 setprotoent F
+GLIBC_2.16 setpwent F
+GLIBC_2.16 setregid F
+GLIBC_2.16 setresgid F
+GLIBC_2.16 setresuid F
+GLIBC_2.16 setreuid F
+GLIBC_2.16 setrlimit F
+GLIBC_2.16 setrlimit64 F
+GLIBC_2.16 setrpcent F
+GLIBC_2.16 setservent F
+GLIBC_2.16 setsgent F
+GLIBC_2.16 setsid F
+GLIBC_2.16 setsockopt F
+GLIBC_2.16 setsourcefilter F
+GLIBC_2.16 setspent F
+GLIBC_2.16 setstate F
+GLIBC_2.16 setstate_r F
+GLIBC_2.16 settimeofday F
+GLIBC_2.16 setttyent F
+GLIBC_2.16 setuid F
+GLIBC_2.16 setusershell F
+GLIBC_2.16 setutent F
+GLIBC_2.16 setutxent F
+GLIBC_2.16 setvbuf F
+GLIBC_2.16 setxattr F
+GLIBC_2.16 sgetsgent F
+GLIBC_2.16 sgetsgent_r F
+GLIBC_2.16 sgetspent F
+GLIBC_2.16 sgetspent_r F
+GLIBC_2.16 shmat F
+GLIBC_2.16 shmctl F
+GLIBC_2.16 shmdt F
+GLIBC_2.16 shmget F
+GLIBC_2.16 shutdown F
+GLIBC_2.16 sigaction F
+GLIBC_2.16 sigaddset F
+GLIBC_2.16 sigaltstack F
+GLIBC_2.16 sigandset F
+GLIBC_2.16 sigblock F
+GLIBC_2.16 sigdelset F
+GLIBC_2.16 sigemptyset F
+GLIBC_2.16 sigfillset F
+GLIBC_2.16 siggetmask F
+GLIBC_2.16 sighold F
+GLIBC_2.16 sigignore F
+GLIBC_2.16 siginterrupt F
+GLIBC_2.16 sigisemptyset F
+GLIBC_2.16 sigismember F
+GLIBC_2.16 siglongjmp F
+GLIBC_2.16 signal F
+GLIBC_2.16 signalfd F
+GLIBC_2.16 sigorset F
+GLIBC_2.16 sigpause F
+GLIBC_2.16 sigpending F
+GLIBC_2.16 sigprocmask F
+GLIBC_2.16 sigqueue F
+GLIBC_2.16 sigrelse F
+GLIBC_2.16 sigreturn F
+GLIBC_2.16 sigset F
+GLIBC_2.16 sigsetmask F
+GLIBC_2.16 sigstack F
+GLIBC_2.16 sigsuspend F
+GLIBC_2.16 sigtimedwait F
+GLIBC_2.16 sigvec F
+GLIBC_2.16 sigwait F
+GLIBC_2.16 sigwaitinfo F
+GLIBC_2.16 sleep F
+GLIBC_2.16 snprintf F
+GLIBC_2.16 sockatmark F
+GLIBC_2.16 socket F
+GLIBC_2.16 socketpair F
+GLIBC_2.16 splice F
+GLIBC_2.16 sprintf F
+GLIBC_2.16 sprofil F
+GLIBC_2.16 srand F
+GLIBC_2.16 srand48 F
+GLIBC_2.16 srand48_r F
+GLIBC_2.16 srandom F
+GLIBC_2.16 srandom_r F
+GLIBC_2.16 sscanf F
+GLIBC_2.16 ssignal F
+GLIBC_2.16 sstk F
+GLIBC_2.16 statfs F
+GLIBC_2.16 statfs64 F
+GLIBC_2.16 statvfs F
+GLIBC_2.16 statvfs64 F
+GLIBC_2.16 stderr D 0x4
+GLIBC_2.16 stdin D 0x4
+GLIBC_2.16 stdout D 0x4
+GLIBC_2.16 step F
+GLIBC_2.16 stime F
+GLIBC_2.16 stpcpy F
+GLIBC_2.16 stpncpy F
+GLIBC_2.16 strcasecmp F
+GLIBC_2.16 strcasecmp_l F
+GLIBC_2.16 strcasestr F
+GLIBC_2.16 strcat F
+GLIBC_2.16 strchr F
+GLIBC_2.16 strchrnul F
+GLIBC_2.16 strcmp F
+GLIBC_2.16 strcoll F
+GLIBC_2.16 strcoll_l F
+GLIBC_2.16 strcpy F
+GLIBC_2.16 strcspn F
+GLIBC_2.16 strdup F
+GLIBC_2.16 strerror F
+GLIBC_2.16 strerror_l F
+GLIBC_2.16 strerror_r F
+GLIBC_2.16 strfmon F
+GLIBC_2.16 strfmon_l F
+GLIBC_2.16 strfry F
+GLIBC_2.16 strftime F
+GLIBC_2.16 strftime_l F
+GLIBC_2.16 strlen F
+GLIBC_2.16 strncasecmp F
+GLIBC_2.16 strncasecmp_l F
+GLIBC_2.16 strncat F
+GLIBC_2.16 strncmp F
+GLIBC_2.16 strncpy F
+GLIBC_2.16 strndup F
+GLIBC_2.16 strnlen F
+GLIBC_2.16 strpbrk F
+GLIBC_2.16 strptime F
+GLIBC_2.16 strptime_l F
+GLIBC_2.16 strrchr F
+GLIBC_2.16 strsep F
+GLIBC_2.16 strsignal F
+GLIBC_2.16 strspn F
+GLIBC_2.16 strstr F
+GLIBC_2.16 strtod F
+GLIBC_2.16 strtod_l F
+GLIBC_2.16 strtof F
+GLIBC_2.16 strtof_l F
+GLIBC_2.16 strtoimax F
+GLIBC_2.16 strtok F
+GLIBC_2.16 strtok_r F
+GLIBC_2.16 strtol F
+GLIBC_2.16 strtol_l F
+GLIBC_2.16 strtold F
+GLIBC_2.16 strtold_l F
+GLIBC_2.16 strtoll F
+GLIBC_2.16 strtoll_l F
+GLIBC_2.16 strtoq F
+GLIBC_2.16 strtoul F
+GLIBC_2.16 strtoul_l F
+GLIBC_2.16 strtoull F
+GLIBC_2.16 strtoull_l F
+GLIBC_2.16 strtoumax F
+GLIBC_2.16 strtouq F
+GLIBC_2.16 strverscmp F
+GLIBC_2.16 strxfrm F
+GLIBC_2.16 strxfrm_l F
+GLIBC_2.16 stty F
+GLIBC_2.16 svc_exit F
+GLIBC_2.16 svc_fdset D 0x80
+GLIBC_2.16 svc_getreq F
+GLIBC_2.16 svc_getreq_common F
+GLIBC_2.16 svc_getreq_poll F
+GLIBC_2.16 svc_getreqset F
+GLIBC_2.16 svc_max_pollfd D 0x4
+GLIBC_2.16 svc_pollfd D 0x4
+GLIBC_2.16 svc_register F
+GLIBC_2.16 svc_run F
+GLIBC_2.16 svc_sendreply F
+GLIBC_2.16 svc_unregister F
+GLIBC_2.16 svcauthdes_stats D 0xc
+GLIBC_2.16 svcerr_auth F
+GLIBC_2.16 svcerr_decode F
+GLIBC_2.16 svcerr_noproc F
+GLIBC_2.16 svcerr_noprog F
+GLIBC_2.16 svcerr_progvers F
+GLIBC_2.16 svcerr_systemerr F
+GLIBC_2.16 svcerr_weakauth F
+GLIBC_2.16 svcfd_create F
+GLIBC_2.16 svcraw_create F
+GLIBC_2.16 svctcp_create F
+GLIBC_2.16 svcudp_bufcreate F
+GLIBC_2.16 svcudp_create F
+GLIBC_2.16 svcudp_enablecache F
+GLIBC_2.16 svcunix_create F
+GLIBC_2.16 svcunixfd_create F
+GLIBC_2.16 swab F
+GLIBC_2.16 swapcontext F
+GLIBC_2.16 swapoff F
+GLIBC_2.16 swapon F
+GLIBC_2.16 swprintf F
+GLIBC_2.16 swscanf F
+GLIBC_2.16 symlink F
+GLIBC_2.16 symlinkat F
+GLIBC_2.16 sync F
+GLIBC_2.16 sync_file_range F
+GLIBC_2.16 syncfs F
+GLIBC_2.16 sys_errlist D 0x21c
+GLIBC_2.16 sys_nerr D 0x4
+GLIBC_2.16 sys_sigabbrev D 0x104
+GLIBC_2.16 sys_siglist D 0x104
+GLIBC_2.16 syscall F
+GLIBC_2.16 sysconf F
+GLIBC_2.16 sysinfo F
+GLIBC_2.16 syslog F
+GLIBC_2.16 system F
+GLIBC_2.16 sysv_signal F
+GLIBC_2.16 tcdrain F
+GLIBC_2.16 tcflow F
+GLIBC_2.16 tcflush F
+GLIBC_2.16 tcgetattr F
+GLIBC_2.16 tcgetpgrp F
+GLIBC_2.16 tcgetsid F
+GLIBC_2.16 tcsendbreak F
+GLIBC_2.16 tcsetattr F
+GLIBC_2.16 tcsetpgrp F
+GLIBC_2.16 tdelete F
+GLIBC_2.16 tdestroy F
+GLIBC_2.16 tee F
+GLIBC_2.16 telldir F
+GLIBC_2.16 tempnam F
+GLIBC_2.16 textdomain F
+GLIBC_2.16 tfind F
+GLIBC_2.16 time F
+GLIBC_2.16 timegm F
+GLIBC_2.16 timelocal F
+GLIBC_2.16 timerfd_create F
+GLIBC_2.16 timerfd_gettime F
+GLIBC_2.16 timerfd_settime F
+GLIBC_2.16 times F
+GLIBC_2.16 timespec_get F
+GLIBC_2.16 timezone D 0x4
+GLIBC_2.16 tmpfile F
+GLIBC_2.16 tmpfile64 F
+GLIBC_2.16 tmpnam F
+GLIBC_2.16 tmpnam_r F
+GLIBC_2.16 toascii F
+GLIBC_2.16 tolower F
+GLIBC_2.16 tolower_l F
+GLIBC_2.16 toupper F
+GLIBC_2.16 toupper_l F
+GLIBC_2.16 towctrans F
+GLIBC_2.16 towctrans_l F
+GLIBC_2.16 towlower F
+GLIBC_2.16 towlower_l F
+GLIBC_2.16 towupper F
+GLIBC_2.16 towupper_l F
+GLIBC_2.16 tr_break F
+GLIBC_2.16 truncate F
+GLIBC_2.16 truncate64 F
+GLIBC_2.16 tsearch F
+GLIBC_2.16 ttyname F
+GLIBC_2.16 ttyname_r F
+GLIBC_2.16 ttyslot F
+GLIBC_2.16 twalk F
+GLIBC_2.16 tzname D 0x8
+GLIBC_2.16 tzset F
+GLIBC_2.16 ualarm F
+GLIBC_2.16 ulckpwdf F
+GLIBC_2.16 ulimit F
+GLIBC_2.16 umask F
+GLIBC_2.16 umount F
+GLIBC_2.16 umount2 F
+GLIBC_2.16 uname F
+GLIBC_2.16 ungetc F
+GLIBC_2.16 ungetwc F
+GLIBC_2.16 unlink F
+GLIBC_2.16 unlinkat F
+GLIBC_2.16 unlockpt F
+GLIBC_2.16 unsetenv F
+GLIBC_2.16 unshare F
+GLIBC_2.16 updwtmp F
+GLIBC_2.16 updwtmpx F
+GLIBC_2.16 uselib F
+GLIBC_2.16 uselocale F
+GLIBC_2.16 user2netname F
+GLIBC_2.16 usleep F
+GLIBC_2.16 ustat F
+GLIBC_2.16 utime F
+GLIBC_2.16 utimensat F
+GLIBC_2.16 utimes F
+GLIBC_2.16 utmpname F
+GLIBC_2.16 utmpxname F
+GLIBC_2.16 valloc F
+GLIBC_2.16 vasprintf F
+GLIBC_2.16 vdprintf F
+GLIBC_2.16 verr F
+GLIBC_2.16 verrx F
+GLIBC_2.16 versionsort F
+GLIBC_2.16 versionsort64 F
+GLIBC_2.16 vfork F
+GLIBC_2.16 vfprintf F
+GLIBC_2.16 vfscanf F
+GLIBC_2.16 vfwprintf F
+GLIBC_2.16 vfwscanf F
+GLIBC_2.16 vhangup F
+GLIBC_2.16 vlimit F
+GLIBC_2.16 vmsplice F
+GLIBC_2.16 vprintf F
+GLIBC_2.16 vscanf F
+GLIBC_2.16 vsnprintf F
+GLIBC_2.16 vsprintf F
+GLIBC_2.16 vsscanf F
+GLIBC_2.16 vswprintf F
+GLIBC_2.16 vswscanf F
+GLIBC_2.16 vsyslog F
+GLIBC_2.16 vtimes F
+GLIBC_2.16 vwarn F
+GLIBC_2.16 vwarnx F
+GLIBC_2.16 vwprintf F
+GLIBC_2.16 vwscanf F
+GLIBC_2.16 wait F
+GLIBC_2.16 wait3 F
+GLIBC_2.16 wait4 F
+GLIBC_2.16 waitid F
+GLIBC_2.16 waitpid F
+GLIBC_2.16 warn F
+GLIBC_2.16 warnx F
+GLIBC_2.16 wcpcpy F
+GLIBC_2.16 wcpncpy F
+GLIBC_2.16 wcrtomb F
+GLIBC_2.16 wcscasecmp F
+GLIBC_2.16 wcscasecmp_l F
+GLIBC_2.16 wcscat F
+GLIBC_2.16 wcschr F
+GLIBC_2.16 wcschrnul F
+GLIBC_2.16 wcscmp F
+GLIBC_2.16 wcscoll F
+GLIBC_2.16 wcscoll_l F
+GLIBC_2.16 wcscpy F
+GLIBC_2.16 wcscspn F
+GLIBC_2.16 wcsdup F
+GLIBC_2.16 wcsftime F
+GLIBC_2.16 wcsftime_l F
+GLIBC_2.16 wcslen F
+GLIBC_2.16 wcsncasecmp F
+GLIBC_2.16 wcsncasecmp_l F
+GLIBC_2.16 wcsncat F
+GLIBC_2.16 wcsncmp F
+GLIBC_2.16 wcsncpy F
+GLIBC_2.16 wcsnlen F
+GLIBC_2.16 wcsnrtombs F
+GLIBC_2.16 wcspbrk F
+GLIBC_2.16 wcsrchr F
+GLIBC_2.16 wcsrtombs F
+GLIBC_2.16 wcsspn F
+GLIBC_2.16 wcsstr F
+GLIBC_2.16 wcstod F
+GLIBC_2.16 wcstod_l F
+GLIBC_2.16 wcstof F
+GLIBC_2.16 wcstof_l F
+GLIBC_2.16 wcstoimax F
+GLIBC_2.16 wcstok F
+GLIBC_2.16 wcstol F
+GLIBC_2.16 wcstol_l F
+GLIBC_2.16 wcstold F
+GLIBC_2.16 wcstold_l F
+GLIBC_2.16 wcstoll F
+GLIBC_2.16 wcstoll_l F
+GLIBC_2.16 wcstombs F
+GLIBC_2.16 wcstoq F
+GLIBC_2.16 wcstoul F
+GLIBC_2.16 wcstoul_l F
+GLIBC_2.16 wcstoull F
+GLIBC_2.16 wcstoull_l F
+GLIBC_2.16 wcstoumax F
+GLIBC_2.16 wcstouq F
+GLIBC_2.16 wcswcs F
+GLIBC_2.16 wcswidth F
+GLIBC_2.16 wcsxfrm F
+GLIBC_2.16 wcsxfrm_l F
+GLIBC_2.16 wctob F
+GLIBC_2.16 wctomb F
+GLIBC_2.16 wctrans F
+GLIBC_2.16 wctrans_l F
+GLIBC_2.16 wctype F
+GLIBC_2.16 wctype_l F
+GLIBC_2.16 wcwidth F
+GLIBC_2.16 wmemchr F
+GLIBC_2.16 wmemcmp F
+GLIBC_2.16 wmemcpy F
+GLIBC_2.16 wmemmove F
+GLIBC_2.16 wmempcpy F
+GLIBC_2.16 wmemset F
+GLIBC_2.16 wordexp F
+GLIBC_2.16 wordfree F
+GLIBC_2.16 wprintf F
+GLIBC_2.16 write F
+GLIBC_2.16 writev F
+GLIBC_2.16 wscanf F
+GLIBC_2.16 xdecrypt F
+GLIBC_2.16 xdr_accepted_reply F
+GLIBC_2.16 xdr_array F
+GLIBC_2.16 xdr_authdes_cred F
+GLIBC_2.16 xdr_authdes_verf F
+GLIBC_2.16 xdr_authunix_parms F
+GLIBC_2.16 xdr_bool F
+GLIBC_2.16 xdr_bytes F
+GLIBC_2.16 xdr_callhdr F
+GLIBC_2.16 xdr_callmsg F
+GLIBC_2.16 xdr_char F
+GLIBC_2.16 xdr_cryptkeyarg F
+GLIBC_2.16 xdr_cryptkeyarg2 F
+GLIBC_2.16 xdr_cryptkeyres F
+GLIBC_2.16 xdr_des_block F
+GLIBC_2.16 xdr_double F
+GLIBC_2.16 xdr_enum F
+GLIBC_2.16 xdr_float F
+GLIBC_2.16 xdr_free F
+GLIBC_2.16 xdr_getcredres F
+GLIBC_2.16 xdr_hyper F
+GLIBC_2.16 xdr_int F
+GLIBC_2.16 xdr_int16_t F
+GLIBC_2.16 xdr_int32_t F
+GLIBC_2.16 xdr_int64_t F
+GLIBC_2.16 xdr_int8_t F
+GLIBC_2.16 xdr_key_netstarg F
+GLIBC_2.16 xdr_key_netstres F
+GLIBC_2.16 xdr_keybuf F
+GLIBC_2.16 xdr_keystatus F
+GLIBC_2.16 xdr_long F
+GLIBC_2.16 xdr_longlong_t F
+GLIBC_2.16 xdr_netnamestr F
+GLIBC_2.16 xdr_netobj F
+GLIBC_2.16 xdr_opaque F
+GLIBC_2.16 xdr_opaque_auth F
+GLIBC_2.16 xdr_pmap F
+GLIBC_2.16 xdr_pmaplist F
+GLIBC_2.16 xdr_pointer F
+GLIBC_2.16 xdr_quad_t F
+GLIBC_2.16 xdr_reference F
+GLIBC_2.16 xdr_rejected_reply F
+GLIBC_2.16 xdr_replymsg F
+GLIBC_2.16 xdr_rmtcall_args F
+GLIBC_2.16 xdr_rmtcallres F
+GLIBC_2.16 xdr_short F
+GLIBC_2.16 xdr_sizeof F
+GLIBC_2.16 xdr_string F
+GLIBC_2.16 xdr_u_char F
+GLIBC_2.16 xdr_u_hyper F
+GLIBC_2.16 xdr_u_int F
+GLIBC_2.16 xdr_u_long F
+GLIBC_2.16 xdr_u_longlong_t F
+GLIBC_2.16 xdr_u_quad_t F
+GLIBC_2.16 xdr_u_short F
+GLIBC_2.16 xdr_uint16_t F
+GLIBC_2.16 xdr_uint32_t F
+GLIBC_2.16 xdr_uint64_t F
+GLIBC_2.16 xdr_uint8_t F
+GLIBC_2.16 xdr_union F
+GLIBC_2.16 xdr_unixcred F
+GLIBC_2.16 xdr_vector F
+GLIBC_2.16 xdr_void F
+GLIBC_2.16 xdr_wrapstring F
+GLIBC_2.16 xdrmem_create F
+GLIBC_2.16 xdrrec_create F
+GLIBC_2.16 xdrrec_endofrecord F
+GLIBC_2.16 xdrrec_eof F
+GLIBC_2.16 xdrrec_skiprecord F
+GLIBC_2.16 xdrstdio_create F
+GLIBC_2.16 xencrypt F
+GLIBC_2.16 xprt_register F
+GLIBC_2.16 xprt_unregister 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.22 GLIBC_2.22 A
+GLIBC_2.22 fmemopen F
+GLIBC_2.23 GLIBC_2.23 A
+GLIBC_2.23 fts64_children F
+GLIBC_2.23 fts64_close F
+GLIBC_2.23 fts64_open F
+GLIBC_2.23 fts64_read F
+GLIBC_2.23 fts64_set F
+GLIBC_2.24 GLIBC_2.24 A
+GLIBC_2.24 quick_exit F
+GLIBC_2.25 GLIBC_2.25 A
+GLIBC_2.25 __explicit_bzero_chk F
+GLIBC_2.25 explicit_bzero F
+GLIBC_2.25 getentropy F
+GLIBC_2.25 getrandom F
+GLIBC_2.25 strfromd F
+GLIBC_2.25 strfromf F
+GLIBC_2.25 strfroml F
+GLIBC_2.26 GLIBC_2.26 A
+GLIBC_2.26 preadv2 F
+GLIBC_2.26 preadv64v2 F
+GLIBC_2.26 pwritev2 F
+GLIBC_2.26 pwritev64v2 F
+GLIBC_2.26 reallocarray F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/x32/libcrypt.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/x32/libcrypt.abilist
new file mode 100644
index 0000000000..d0f5c3b25d
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/x32/libcrypt.abilist
@@ -0,0 +1,8 @@
+GLIBC_2.16 GLIBC_2.16 A
+GLIBC_2.16 crypt F
+GLIBC_2.16 crypt_r F
+GLIBC_2.16 encrypt F
+GLIBC_2.16 encrypt_r F
+GLIBC_2.16 fcrypt F
+GLIBC_2.16 setkey F
+GLIBC_2.16 setkey_r F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/x32/libdl.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/x32/libdl.abilist
new file mode 100644
index 0000000000..e4d2e7935d
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/x32/libdl.abilist
@@ -0,0 +1,10 @@
+GLIBC_2.16 GLIBC_2.16 A
+GLIBC_2.16 dladdr F
+GLIBC_2.16 dladdr1 F
+GLIBC_2.16 dlclose F
+GLIBC_2.16 dlerror F
+GLIBC_2.16 dlinfo F
+GLIBC_2.16 dlmopen F
+GLIBC_2.16 dlopen F
+GLIBC_2.16 dlsym F
+GLIBC_2.16 dlvsym F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist
new file mode 100644
index 0000000000..a24ff7e8a0
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist
@@ -0,0 +1,463 @@
+GLIBC_2.16 GLIBC_2.16 A
+GLIBC_2.16 _LIB_VERSION D 0x4
+GLIBC_2.16 __acos_finite F
+GLIBC_2.16 __acosf_finite F
+GLIBC_2.16 __acosh_finite F
+GLIBC_2.16 __acoshf_finite F
+GLIBC_2.16 __acoshl_finite F
+GLIBC_2.16 __acosl_finite F
+GLIBC_2.16 __asin_finite F
+GLIBC_2.16 __asinf_finite F
+GLIBC_2.16 __asinl_finite F
+GLIBC_2.16 __atan2_finite F
+GLIBC_2.16 __atan2f_finite F
+GLIBC_2.16 __atan2l_finite F
+GLIBC_2.16 __atanh_finite F
+GLIBC_2.16 __atanhf_finite F
+GLIBC_2.16 __atanhl_finite F
+GLIBC_2.16 __clog10 F
+GLIBC_2.16 __clog10f F
+GLIBC_2.16 __clog10l F
+GLIBC_2.16 __cosh_finite F
+GLIBC_2.16 __coshf_finite F
+GLIBC_2.16 __coshl_finite F
+GLIBC_2.16 __exp10_finite F
+GLIBC_2.16 __exp10f_finite F
+GLIBC_2.16 __exp10l_finite F
+GLIBC_2.16 __exp2_finite F
+GLIBC_2.16 __exp2f_finite F
+GLIBC_2.16 __exp2l_finite F
+GLIBC_2.16 __exp_finite F
+GLIBC_2.16 __expf_finite F
+GLIBC_2.16 __expl_finite F
+GLIBC_2.16 __finite F
+GLIBC_2.16 __finitef F
+GLIBC_2.16 __finitel F
+GLIBC_2.16 __fmod_finite F
+GLIBC_2.16 __fmodf_finite F
+GLIBC_2.16 __fmodl_finite F
+GLIBC_2.16 __fpclassify F
+GLIBC_2.16 __fpclassifyf F
+GLIBC_2.16 __fpclassifyl F
+GLIBC_2.16 __gamma_r_finite F
+GLIBC_2.16 __gammaf_r_finite F
+GLIBC_2.16 __gammal_r_finite F
+GLIBC_2.16 __hypot_finite F
+GLIBC_2.16 __hypotf_finite F
+GLIBC_2.16 __hypotl_finite F
+GLIBC_2.16 __j0_finite F
+GLIBC_2.16 __j0f_finite F
+GLIBC_2.16 __j0l_finite F
+GLIBC_2.16 __j1_finite F
+GLIBC_2.16 __j1f_finite F
+GLIBC_2.16 __j1l_finite F
+GLIBC_2.16 __jn_finite F
+GLIBC_2.16 __jnf_finite F
+GLIBC_2.16 __jnl_finite F
+GLIBC_2.16 __lgamma_r_finite F
+GLIBC_2.16 __lgammaf_r_finite F
+GLIBC_2.16 __lgammal_r_finite F
+GLIBC_2.16 __log10_finite F
+GLIBC_2.16 __log10f_finite F
+GLIBC_2.16 __log10l_finite F
+GLIBC_2.16 __log2_finite F
+GLIBC_2.16 __log2f_finite F
+GLIBC_2.16 __log2l_finite F
+GLIBC_2.16 __log_finite F
+GLIBC_2.16 __logf_finite F
+GLIBC_2.16 __logl_finite F
+GLIBC_2.16 __pow_finite F
+GLIBC_2.16 __powf_finite F
+GLIBC_2.16 __powl_finite F
+GLIBC_2.16 __remainder_finite F
+GLIBC_2.16 __remainderf_finite F
+GLIBC_2.16 __remainderl_finite F
+GLIBC_2.16 __scalb_finite F
+GLIBC_2.16 __scalbf_finite F
+GLIBC_2.16 __scalbl_finite F
+GLIBC_2.16 __signbit F
+GLIBC_2.16 __signbitf F
+GLIBC_2.16 __signbitl F
+GLIBC_2.16 __sinh_finite F
+GLIBC_2.16 __sinhf_finite F
+GLIBC_2.16 __sinhl_finite F
+GLIBC_2.16 __sqrt_finite F
+GLIBC_2.16 __sqrtf_finite F
+GLIBC_2.16 __sqrtl_finite F
+GLIBC_2.16 __y0_finite F
+GLIBC_2.16 __y0f_finite F
+GLIBC_2.16 __y0l_finite F
+GLIBC_2.16 __y1_finite F
+GLIBC_2.16 __y1f_finite F
+GLIBC_2.16 __y1l_finite F
+GLIBC_2.16 __yn_finite F
+GLIBC_2.16 __ynf_finite F
+GLIBC_2.16 __ynl_finite F
+GLIBC_2.16 acos F
+GLIBC_2.16 acosf F
+GLIBC_2.16 acosh F
+GLIBC_2.16 acoshf F
+GLIBC_2.16 acoshl F
+GLIBC_2.16 acosl F
+GLIBC_2.16 asin F
+GLIBC_2.16 asinf F
+GLIBC_2.16 asinh F
+GLIBC_2.16 asinhf F
+GLIBC_2.16 asinhl F
+GLIBC_2.16 asinl F
+GLIBC_2.16 atan F
+GLIBC_2.16 atan2 F
+GLIBC_2.16 atan2f F
+GLIBC_2.16 atan2l F
+GLIBC_2.16 atanf F
+GLIBC_2.16 atanh F
+GLIBC_2.16 atanhf F
+GLIBC_2.16 atanhl F
+GLIBC_2.16 atanl F
+GLIBC_2.16 cabs F
+GLIBC_2.16 cabsf F
+GLIBC_2.16 cabsl F
+GLIBC_2.16 cacos F
+GLIBC_2.16 cacosf F
+GLIBC_2.16 cacosh F
+GLIBC_2.16 cacoshf F
+GLIBC_2.16 cacoshl F
+GLIBC_2.16 cacosl F
+GLIBC_2.16 carg F
+GLIBC_2.16 cargf F
+GLIBC_2.16 cargl F
+GLIBC_2.16 casin F
+GLIBC_2.16 casinf F
+GLIBC_2.16 casinh F
+GLIBC_2.16 casinhf F
+GLIBC_2.16 casinhl F
+GLIBC_2.16 casinl F
+GLIBC_2.16 catan F
+GLIBC_2.16 catanf F
+GLIBC_2.16 catanh F
+GLIBC_2.16 catanhf F
+GLIBC_2.16 catanhl F
+GLIBC_2.16 catanl F
+GLIBC_2.16 cbrt F
+GLIBC_2.16 cbrtf F
+GLIBC_2.16 cbrtl F
+GLIBC_2.16 ccos F
+GLIBC_2.16 ccosf F
+GLIBC_2.16 ccosh F
+GLIBC_2.16 ccoshf F
+GLIBC_2.16 ccoshl F
+GLIBC_2.16 ccosl F
+GLIBC_2.16 ceil F
+GLIBC_2.16 ceilf F
+GLIBC_2.16 ceill F
+GLIBC_2.16 cexp F
+GLIBC_2.16 cexpf F
+GLIBC_2.16 cexpl F
+GLIBC_2.16 cimag F
+GLIBC_2.16 cimagf F
+GLIBC_2.16 cimagl F
+GLIBC_2.16 clog F
+GLIBC_2.16 clog10 F
+GLIBC_2.16 clog10f F
+GLIBC_2.16 clog10l F
+GLIBC_2.16 clogf F
+GLIBC_2.16 clogl F
+GLIBC_2.16 conj F
+GLIBC_2.16 conjf F
+GLIBC_2.16 conjl F
+GLIBC_2.16 copysign F
+GLIBC_2.16 copysignf F
+GLIBC_2.16 copysignl F
+GLIBC_2.16 cos F
+GLIBC_2.16 cosf F
+GLIBC_2.16 cosh F
+GLIBC_2.16 coshf F
+GLIBC_2.16 coshl F
+GLIBC_2.16 cosl F
+GLIBC_2.16 cpow F
+GLIBC_2.16 cpowf F
+GLIBC_2.16 cpowl F
+GLIBC_2.16 cproj F
+GLIBC_2.16 cprojf F
+GLIBC_2.16 cprojl F
+GLIBC_2.16 creal F
+GLIBC_2.16 crealf F
+GLIBC_2.16 creall F
+GLIBC_2.16 csin F
+GLIBC_2.16 csinf F
+GLIBC_2.16 csinh F
+GLIBC_2.16 csinhf F
+GLIBC_2.16 csinhl F
+GLIBC_2.16 csinl F
+GLIBC_2.16 csqrt F
+GLIBC_2.16 csqrtf F
+GLIBC_2.16 csqrtl F
+GLIBC_2.16 ctan F
+GLIBC_2.16 ctanf F
+GLIBC_2.16 ctanh F
+GLIBC_2.16 ctanhf F
+GLIBC_2.16 ctanhl F
+GLIBC_2.16 ctanl F
+GLIBC_2.16 drem F
+GLIBC_2.16 dremf F
+GLIBC_2.16 dreml F
+GLIBC_2.16 erf F
+GLIBC_2.16 erfc F
+GLIBC_2.16 erfcf F
+GLIBC_2.16 erfcl F
+GLIBC_2.16 erff F
+GLIBC_2.16 erfl F
+GLIBC_2.16 exp F
+GLIBC_2.16 exp10 F
+GLIBC_2.16 exp10f F
+GLIBC_2.16 exp10l F
+GLIBC_2.16 exp2 F
+GLIBC_2.16 exp2f F
+GLIBC_2.16 exp2l F
+GLIBC_2.16 expf F
+GLIBC_2.16 expl F
+GLIBC_2.16 expm1 F
+GLIBC_2.16 expm1f F
+GLIBC_2.16 expm1l F
+GLIBC_2.16 fabs F
+GLIBC_2.16 fabsf F
+GLIBC_2.16 fabsl F
+GLIBC_2.16 fdim F
+GLIBC_2.16 fdimf F
+GLIBC_2.16 fdiml F
+GLIBC_2.16 feclearexcept F
+GLIBC_2.16 fedisableexcept F
+GLIBC_2.16 feenableexcept F
+GLIBC_2.16 fegetenv F
+GLIBC_2.16 fegetexcept F
+GLIBC_2.16 fegetexceptflag F
+GLIBC_2.16 fegetround F
+GLIBC_2.16 feholdexcept F
+GLIBC_2.16 feraiseexcept F
+GLIBC_2.16 fesetenv F
+GLIBC_2.16 fesetexceptflag F
+GLIBC_2.16 fesetround F
+GLIBC_2.16 fetestexcept F
+GLIBC_2.16 feupdateenv F
+GLIBC_2.16 finite F
+GLIBC_2.16 finitef F
+GLIBC_2.16 finitel F
+GLIBC_2.16 floor F
+GLIBC_2.16 floorf F
+GLIBC_2.16 floorl F
+GLIBC_2.16 fma F
+GLIBC_2.16 fmaf F
+GLIBC_2.16 fmal F
+GLIBC_2.16 fmax F
+GLIBC_2.16 fmaxf F
+GLIBC_2.16 fmaxl F
+GLIBC_2.16 fmin F
+GLIBC_2.16 fminf F
+GLIBC_2.16 fminl F
+GLIBC_2.16 fmod F
+GLIBC_2.16 fmodf F
+GLIBC_2.16 fmodl F
+GLIBC_2.16 frexp F
+GLIBC_2.16 frexpf F
+GLIBC_2.16 frexpl F
+GLIBC_2.16 gamma F
+GLIBC_2.16 gammaf F
+GLIBC_2.16 gammal F
+GLIBC_2.16 hypot F
+GLIBC_2.16 hypotf F
+GLIBC_2.16 hypotl F
+GLIBC_2.16 ilogb F
+GLIBC_2.16 ilogbf F
+GLIBC_2.16 ilogbl F
+GLIBC_2.16 j0 F
+GLIBC_2.16 j0f F
+GLIBC_2.16 j0l F
+GLIBC_2.16 j1 F
+GLIBC_2.16 j1f F
+GLIBC_2.16 j1l F
+GLIBC_2.16 jn F
+GLIBC_2.16 jnf F
+GLIBC_2.16 jnl F
+GLIBC_2.16 ldexp F
+GLIBC_2.16 ldexpf F
+GLIBC_2.16 ldexpl F
+GLIBC_2.16 lgamma F
+GLIBC_2.16 lgamma_r F
+GLIBC_2.16 lgammaf F
+GLIBC_2.16 lgammaf_r F
+GLIBC_2.16 lgammal F
+GLIBC_2.16 lgammal_r F
+GLIBC_2.16 llrint F
+GLIBC_2.16 llrintf F
+GLIBC_2.16 llrintl F
+GLIBC_2.16 llround F
+GLIBC_2.16 llroundf F
+GLIBC_2.16 llroundl F
+GLIBC_2.16 log F
+GLIBC_2.16 log10 F
+GLIBC_2.16 log10f F
+GLIBC_2.16 log10l F
+GLIBC_2.16 log1p F
+GLIBC_2.16 log1pf F
+GLIBC_2.16 log1pl F
+GLIBC_2.16 log2 F
+GLIBC_2.16 log2f F
+GLIBC_2.16 log2l F
+GLIBC_2.16 logb F
+GLIBC_2.16 logbf F
+GLIBC_2.16 logbl F
+GLIBC_2.16 logf F
+GLIBC_2.16 logl F
+GLIBC_2.16 lrint F
+GLIBC_2.16 lrintf F
+GLIBC_2.16 lrintl F
+GLIBC_2.16 lround F
+GLIBC_2.16 lroundf F
+GLIBC_2.16 lroundl F
+GLIBC_2.16 matherr F
+GLIBC_2.16 modf F
+GLIBC_2.16 modff F
+GLIBC_2.16 modfl F
+GLIBC_2.16 nan F
+GLIBC_2.16 nanf F
+GLIBC_2.16 nanl F
+GLIBC_2.16 nearbyint F
+GLIBC_2.16 nearbyintf F
+GLIBC_2.16 nearbyintl F
+GLIBC_2.16 nextafter F
+GLIBC_2.16 nextafterf F
+GLIBC_2.16 nextafterl F
+GLIBC_2.16 nexttoward F
+GLIBC_2.16 nexttowardf F
+GLIBC_2.16 nexttowardl F
+GLIBC_2.16 pow F
+GLIBC_2.16 pow10 F
+GLIBC_2.16 pow10f F
+GLIBC_2.16 pow10l F
+GLIBC_2.16 powf F
+GLIBC_2.16 powl F
+GLIBC_2.16 remainder F
+GLIBC_2.16 remainderf F
+GLIBC_2.16 remainderl F
+GLIBC_2.16 remquo F
+GLIBC_2.16 remquof F
+GLIBC_2.16 remquol F
+GLIBC_2.16 rint F
+GLIBC_2.16 rintf F
+GLIBC_2.16 rintl F
+GLIBC_2.16 round F
+GLIBC_2.16 roundf F
+GLIBC_2.16 roundl F
+GLIBC_2.16 scalb F
+GLIBC_2.16 scalbf F
+GLIBC_2.16 scalbl F
+GLIBC_2.16 scalbln F
+GLIBC_2.16 scalblnf F
+GLIBC_2.16 scalblnl F
+GLIBC_2.16 scalbn F
+GLIBC_2.16 scalbnf F
+GLIBC_2.16 scalbnl F
+GLIBC_2.16 signgam D 0x4
+GLIBC_2.16 significand F
+GLIBC_2.16 significandf F
+GLIBC_2.16 significandl F
+GLIBC_2.16 sin F
+GLIBC_2.16 sincos F
+GLIBC_2.16 sincosf F
+GLIBC_2.16 sincosl F
+GLIBC_2.16 sinf F
+GLIBC_2.16 sinh F
+GLIBC_2.16 sinhf F
+GLIBC_2.16 sinhl F
+GLIBC_2.16 sinl F
+GLIBC_2.16 sqrt F
+GLIBC_2.16 sqrtf F
+GLIBC_2.16 sqrtl F
+GLIBC_2.16 tan F
+GLIBC_2.16 tanf F
+GLIBC_2.16 tanh F
+GLIBC_2.16 tanhf F
+GLIBC_2.16 tanhl F
+GLIBC_2.16 tanl F
+GLIBC_2.16 tgamma F
+GLIBC_2.16 tgammaf F
+GLIBC_2.16 tgammal F
+GLIBC_2.16 trunc F
+GLIBC_2.16 truncf F
+GLIBC_2.16 truncl F
+GLIBC_2.16 y0 F
+GLIBC_2.16 y0f F
+GLIBC_2.16 y0l F
+GLIBC_2.16 y1 F
+GLIBC_2.16 y1f F
+GLIBC_2.16 y1l F
+GLIBC_2.16 yn F
+GLIBC_2.16 ynf F
+GLIBC_2.16 ynl F
+GLIBC_2.18 GLIBC_2.18 A
+GLIBC_2.18 __issignaling F
+GLIBC_2.18 __issignalingf F
+GLIBC_2.18 __issignalingl F
+GLIBC_2.23 GLIBC_2.23 A
+GLIBC_2.23 __signgam D 0x4
+GLIBC_2.23 lgamma F
+GLIBC_2.23 lgammaf F
+GLIBC_2.23 lgammal F
+GLIBC_2.24 GLIBC_2.24 A
+GLIBC_2.24 nextdown F
+GLIBC_2.24 nextdownf F
+GLIBC_2.24 nextdownl F
+GLIBC_2.24 nextup F
+GLIBC_2.24 nextupf F
+GLIBC_2.24 nextupl F
+GLIBC_2.25 GLIBC_2.25 A
+GLIBC_2.25 __iscanonicall F
+GLIBC_2.25 __iseqsig F
+GLIBC_2.25 __iseqsigf F
+GLIBC_2.25 __iseqsigl F
+GLIBC_2.25 canonicalize F
+GLIBC_2.25 canonicalizef F
+GLIBC_2.25 canonicalizel F
+GLIBC_2.25 fegetmode F
+GLIBC_2.25 fesetexcept F
+GLIBC_2.25 fesetmode F
+GLIBC_2.25 fetestexceptflag F
+GLIBC_2.25 fmaxmag F
+GLIBC_2.25 fmaxmagf F
+GLIBC_2.25 fmaxmagl F
+GLIBC_2.25 fminmag F
+GLIBC_2.25 fminmagf F
+GLIBC_2.25 fminmagl F
+GLIBC_2.25 fromfp F
+GLIBC_2.25 fromfpf F
+GLIBC_2.25 fromfpl F
+GLIBC_2.25 fromfpx F
+GLIBC_2.25 fromfpxf F
+GLIBC_2.25 fromfpxl F
+GLIBC_2.25 getpayload F
+GLIBC_2.25 getpayloadf F
+GLIBC_2.25 getpayloadl F
+GLIBC_2.25 llogb F
+GLIBC_2.25 llogbf F
+GLIBC_2.25 llogbl F
+GLIBC_2.25 roundeven F
+GLIBC_2.25 roundevenf F
+GLIBC_2.25 roundevenl F
+GLIBC_2.25 setpayload F
+GLIBC_2.25 setpayloadf F
+GLIBC_2.25 setpayloadl F
+GLIBC_2.25 setpayloadsig F
+GLIBC_2.25 setpayloadsigf F
+GLIBC_2.25 setpayloadsigl F
+GLIBC_2.25 totalorder F
+GLIBC_2.25 totalorderf F
+GLIBC_2.25 totalorderl F
+GLIBC_2.25 totalordermag F
+GLIBC_2.25 totalordermagf F
+GLIBC_2.25 totalordermagl F
+GLIBC_2.25 ufromfp F
+GLIBC_2.25 ufromfpf F
+GLIBC_2.25 ufromfpl F
+GLIBC_2.25 ufromfpx F
+GLIBC_2.25 ufromfpxf F
+GLIBC_2.25 ufromfpxl F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/x32/libnsl.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/x32/libnsl.abilist
new file mode 100644
index 0000000000..a0499d3c94
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/x32/libnsl.abilist
@@ -0,0 +1,122 @@
+GLIBC_2.16 GLIBC_2.16 A
+GLIBC_2.16 __free_fdresult F
+GLIBC_2.16 __nis_default_access F
+GLIBC_2.16 __nis_default_group F
+GLIBC_2.16 __nis_default_owner F
+GLIBC_2.16 __nis_default_ttl F
+GLIBC_2.16 __nis_finddirectory F
+GLIBC_2.16 __nis_hash F
+GLIBC_2.16 __nisbind_connect F
+GLIBC_2.16 __nisbind_create F
+GLIBC_2.16 __nisbind_destroy F
+GLIBC_2.16 __nisbind_next F
+GLIBC_2.16 __yp_check F
+GLIBC_2.16 nis_add F
+GLIBC_2.16 nis_add_entry F
+GLIBC_2.16 nis_addmember F
+GLIBC_2.16 nis_checkpoint F
+GLIBC_2.16 nis_clone_directory F
+GLIBC_2.16 nis_clone_object F
+GLIBC_2.16 nis_clone_result F
+GLIBC_2.16 nis_creategroup F
+GLIBC_2.16 nis_destroy_object F
+GLIBC_2.16 nis_destroygroup F
+GLIBC_2.16 nis_dir_cmp F
+GLIBC_2.16 nis_domain_of F
+GLIBC_2.16 nis_domain_of_r F
+GLIBC_2.16 nis_first_entry F
+GLIBC_2.16 nis_free_directory F
+GLIBC_2.16 nis_free_object F
+GLIBC_2.16 nis_free_request F
+GLIBC_2.16 nis_freenames F
+GLIBC_2.16 nis_freeresult F
+GLIBC_2.16 nis_freeservlist F
+GLIBC_2.16 nis_freetags F
+GLIBC_2.16 nis_getnames F
+GLIBC_2.16 nis_getservlist F
+GLIBC_2.16 nis_ismember F
+GLIBC_2.16 nis_leaf_of F
+GLIBC_2.16 nis_leaf_of_r F
+GLIBC_2.16 nis_lerror F
+GLIBC_2.16 nis_list F
+GLIBC_2.16 nis_local_directory F
+GLIBC_2.16 nis_local_group F
+GLIBC_2.16 nis_local_host F
+GLIBC_2.16 nis_local_principal F
+GLIBC_2.16 nis_lookup F
+GLIBC_2.16 nis_mkdir F
+GLIBC_2.16 nis_modify F
+GLIBC_2.16 nis_modify_entry F
+GLIBC_2.16 nis_name_of F
+GLIBC_2.16 nis_name_of_r F
+GLIBC_2.16 nis_next_entry F
+GLIBC_2.16 nis_perror F
+GLIBC_2.16 nis_ping F
+GLIBC_2.16 nis_print_directory F
+GLIBC_2.16 nis_print_entry F
+GLIBC_2.16 nis_print_group F
+GLIBC_2.16 nis_print_group_entry F
+GLIBC_2.16 nis_print_link F
+GLIBC_2.16 nis_print_object F
+GLIBC_2.16 nis_print_result F
+GLIBC_2.16 nis_print_rights F
+GLIBC_2.16 nis_print_table F
+GLIBC_2.16 nis_read_obj F
+GLIBC_2.16 nis_remove F
+GLIBC_2.16 nis_remove_entry F
+GLIBC_2.16 nis_removemember F
+GLIBC_2.16 nis_rmdir F
+GLIBC_2.16 nis_servstate F
+GLIBC_2.16 nis_sperrno F
+GLIBC_2.16 nis_sperror F
+GLIBC_2.16 nis_sperror_r F
+GLIBC_2.16 nis_stats F
+GLIBC_2.16 nis_verifygroup F
+GLIBC_2.16 nis_write_obj F
+GLIBC_2.16 readColdStartFile F
+GLIBC_2.16 writeColdStartFile F
+GLIBC_2.16 xdr_cback_data F
+GLIBC_2.16 xdr_domainname F
+GLIBC_2.16 xdr_keydat F
+GLIBC_2.16 xdr_mapname F
+GLIBC_2.16 xdr_obj_p F
+GLIBC_2.16 xdr_peername F
+GLIBC_2.16 xdr_valdat F
+GLIBC_2.16 xdr_yp_buf F
+GLIBC_2.16 xdr_ypall F
+GLIBC_2.16 xdr_ypbind_binding F
+GLIBC_2.16 xdr_ypbind_resp F
+GLIBC_2.16 xdr_ypbind_resptype F
+GLIBC_2.16 xdr_ypbind_setdom F
+GLIBC_2.16 xdr_ypdelete_args F
+GLIBC_2.16 xdr_ypmap_parms F
+GLIBC_2.16 xdr_ypmaplist F
+GLIBC_2.16 xdr_yppush_status F
+GLIBC_2.16 xdr_yppushresp_xfr F
+GLIBC_2.16 xdr_ypreq_key F
+GLIBC_2.16 xdr_ypreq_nokey F
+GLIBC_2.16 xdr_ypreq_xfr F
+GLIBC_2.16 xdr_ypresp_all F
+GLIBC_2.16 xdr_ypresp_key_val F
+GLIBC_2.16 xdr_ypresp_maplist F
+GLIBC_2.16 xdr_ypresp_master F
+GLIBC_2.16 xdr_ypresp_order F
+GLIBC_2.16 xdr_ypresp_val F
+GLIBC_2.16 xdr_ypresp_xfr F
+GLIBC_2.16 xdr_ypstat F
+GLIBC_2.16 xdr_ypupdate_args F
+GLIBC_2.16 xdr_ypxfrstat F
+GLIBC_2.16 yp_all F
+GLIBC_2.16 yp_bind F
+GLIBC_2.16 yp_first F
+GLIBC_2.16 yp_get_default_domain F
+GLIBC_2.16 yp_maplist F
+GLIBC_2.16 yp_master F
+GLIBC_2.16 yp_match F
+GLIBC_2.16 yp_next F
+GLIBC_2.16 yp_order F
+GLIBC_2.16 yp_unbind F
+GLIBC_2.16 yp_update F
+GLIBC_2.16 ypbinderr_string F
+GLIBC_2.16 yperr_string F
+GLIBC_2.16 ypprot_err F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
new file mode 100644
index 0000000000..6cd0fc3487
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
@@ -0,0 +1,226 @@
+GLIBC_2.16 GLIBC_2.16 A
+GLIBC_2.16 _IO_flockfile F
+GLIBC_2.16 _IO_ftrylockfile F
+GLIBC_2.16 _IO_funlockfile F
+GLIBC_2.16 __close F
+GLIBC_2.16 __connect F
+GLIBC_2.16 __errno_location F
+GLIBC_2.16 __fcntl F
+GLIBC_2.16 __fork F
+GLIBC_2.16 __h_errno_location F
+GLIBC_2.16 __libc_allocate_rtsig F
+GLIBC_2.16 __libc_current_sigrtmax F
+GLIBC_2.16 __libc_current_sigrtmin F
+GLIBC_2.16 __lseek F
+GLIBC_2.16 __nanosleep F
+GLIBC_2.16 __open F
+GLIBC_2.16 __open64 F
+GLIBC_2.16 __pread64 F
+GLIBC_2.16 __pthread_cleanup_routine F
+GLIBC_2.16 __pthread_getspecific F
+GLIBC_2.16 __pthread_key_create F
+GLIBC_2.16 __pthread_mutex_destroy F
+GLIBC_2.16 __pthread_mutex_init F
+GLIBC_2.16 __pthread_mutex_lock F
+GLIBC_2.16 __pthread_mutex_trylock F
+GLIBC_2.16 __pthread_mutex_unlock F
+GLIBC_2.16 __pthread_mutexattr_destroy F
+GLIBC_2.16 __pthread_mutexattr_init F
+GLIBC_2.16 __pthread_mutexattr_settype F
+GLIBC_2.16 __pthread_once F
+GLIBC_2.16 __pthread_register_cancel F
+GLIBC_2.16 __pthread_register_cancel_defer F
+GLIBC_2.16 __pthread_rwlock_destroy F
+GLIBC_2.16 __pthread_rwlock_init F
+GLIBC_2.16 __pthread_rwlock_rdlock F
+GLIBC_2.16 __pthread_rwlock_tryrdlock F
+GLIBC_2.16 __pthread_rwlock_trywrlock F
+GLIBC_2.16 __pthread_rwlock_unlock F
+GLIBC_2.16 __pthread_rwlock_wrlock F
+GLIBC_2.16 __pthread_setspecific F
+GLIBC_2.16 __pthread_unregister_cancel F
+GLIBC_2.16 __pthread_unregister_cancel_restore F
+GLIBC_2.16 __pthread_unwind_next F
+GLIBC_2.16 __pwrite64 F
+GLIBC_2.16 __read F
+GLIBC_2.16 __res_state F
+GLIBC_2.16 __send F
+GLIBC_2.16 __sigaction F
+GLIBC_2.16 __vfork F
+GLIBC_2.16 __wait F
+GLIBC_2.16 __write F
+GLIBC_2.16 _pthread_cleanup_pop F
+GLIBC_2.16 _pthread_cleanup_pop_restore F
+GLIBC_2.16 _pthread_cleanup_push F
+GLIBC_2.16 _pthread_cleanup_push_defer F
+GLIBC_2.16 accept F
+GLIBC_2.16 close F
+GLIBC_2.16 connect F
+GLIBC_2.16 fcntl F
+GLIBC_2.16 flockfile F
+GLIBC_2.16 fork F
+GLIBC_2.16 fsync F
+GLIBC_2.16 ftrylockfile F
+GLIBC_2.16 funlockfile F
+GLIBC_2.16 longjmp F
+GLIBC_2.16 lseek F
+GLIBC_2.16 lseek64 F
+GLIBC_2.16 msync F
+GLIBC_2.16 nanosleep F
+GLIBC_2.16 open F
+GLIBC_2.16 open64 F
+GLIBC_2.16 pause F
+GLIBC_2.16 pread F
+GLIBC_2.16 pread64 F
+GLIBC_2.16 pthread_attr_destroy F
+GLIBC_2.16 pthread_attr_getaffinity_np F
+GLIBC_2.16 pthread_attr_getdetachstate F
+GLIBC_2.16 pthread_attr_getguardsize F
+GLIBC_2.16 pthread_attr_getinheritsched F
+GLIBC_2.16 pthread_attr_getschedparam F
+GLIBC_2.16 pthread_attr_getschedpolicy F
+GLIBC_2.16 pthread_attr_getscope F
+GLIBC_2.16 pthread_attr_getstack F
+GLIBC_2.16 pthread_attr_getstackaddr F
+GLIBC_2.16 pthread_attr_getstacksize F
+GLIBC_2.16 pthread_attr_init F
+GLIBC_2.16 pthread_attr_setaffinity_np F
+GLIBC_2.16 pthread_attr_setdetachstate F
+GLIBC_2.16 pthread_attr_setguardsize F
+GLIBC_2.16 pthread_attr_setinheritsched F
+GLIBC_2.16 pthread_attr_setschedparam F
+GLIBC_2.16 pthread_attr_setschedpolicy F
+GLIBC_2.16 pthread_attr_setscope F
+GLIBC_2.16 pthread_attr_setstack F
+GLIBC_2.16 pthread_attr_setstackaddr F
+GLIBC_2.16 pthread_attr_setstacksize F
+GLIBC_2.16 pthread_barrier_destroy F
+GLIBC_2.16 pthread_barrier_init F
+GLIBC_2.16 pthread_barrier_wait F
+GLIBC_2.16 pthread_barrierattr_destroy F
+GLIBC_2.16 pthread_barrierattr_getpshared F
+GLIBC_2.16 pthread_barrierattr_init F
+GLIBC_2.16 pthread_barrierattr_setpshared F
+GLIBC_2.16 pthread_cancel F
+GLIBC_2.16 pthread_cond_broadcast F
+GLIBC_2.16 pthread_cond_destroy F
+GLIBC_2.16 pthread_cond_init F
+GLIBC_2.16 pthread_cond_signal F
+GLIBC_2.16 pthread_cond_timedwait F
+GLIBC_2.16 pthread_cond_wait F
+GLIBC_2.16 pthread_condattr_destroy F
+GLIBC_2.16 pthread_condattr_getclock F
+GLIBC_2.16 pthread_condattr_getpshared F
+GLIBC_2.16 pthread_condattr_init F
+GLIBC_2.16 pthread_condattr_setclock F
+GLIBC_2.16 pthread_condattr_setpshared F
+GLIBC_2.16 pthread_create F
+GLIBC_2.16 pthread_detach F
+GLIBC_2.16 pthread_equal F
+GLIBC_2.16 pthread_exit F
+GLIBC_2.16 pthread_getaffinity_np F
+GLIBC_2.16 pthread_getattr_np F
+GLIBC_2.16 pthread_getconcurrency F
+GLIBC_2.16 pthread_getcpuclockid F
+GLIBC_2.16 pthread_getname_np F
+GLIBC_2.16 pthread_getschedparam F
+GLIBC_2.16 pthread_getspecific F
+GLIBC_2.16 pthread_join F
+GLIBC_2.16 pthread_key_create F
+GLIBC_2.16 pthread_key_delete F
+GLIBC_2.16 pthread_kill F
+GLIBC_2.16 pthread_kill_other_threads_np F
+GLIBC_2.16 pthread_mutex_consistent F
+GLIBC_2.16 pthread_mutex_consistent_np F
+GLIBC_2.16 pthread_mutex_destroy F
+GLIBC_2.16 pthread_mutex_getprioceiling F
+GLIBC_2.16 pthread_mutex_init F
+GLIBC_2.16 pthread_mutex_lock F
+GLIBC_2.16 pthread_mutex_setprioceiling F
+GLIBC_2.16 pthread_mutex_timedlock F
+GLIBC_2.16 pthread_mutex_trylock F
+GLIBC_2.16 pthread_mutex_unlock F
+GLIBC_2.16 pthread_mutexattr_destroy F
+GLIBC_2.16 pthread_mutexattr_getkind_np F
+GLIBC_2.16 pthread_mutexattr_getprioceiling F
+GLIBC_2.16 pthread_mutexattr_getprotocol F
+GLIBC_2.16 pthread_mutexattr_getpshared F
+GLIBC_2.16 pthread_mutexattr_getrobust F
+GLIBC_2.16 pthread_mutexattr_getrobust_np F
+GLIBC_2.16 pthread_mutexattr_gettype F
+GLIBC_2.16 pthread_mutexattr_init F
+GLIBC_2.16 pthread_mutexattr_setkind_np F
+GLIBC_2.16 pthread_mutexattr_setprioceiling F
+GLIBC_2.16 pthread_mutexattr_setprotocol F
+GLIBC_2.16 pthread_mutexattr_setpshared F
+GLIBC_2.16 pthread_mutexattr_setrobust F
+GLIBC_2.16 pthread_mutexattr_setrobust_np F
+GLIBC_2.16 pthread_mutexattr_settype F
+GLIBC_2.16 pthread_once F
+GLIBC_2.16 pthread_rwlock_destroy F
+GLIBC_2.16 pthread_rwlock_init F
+GLIBC_2.16 pthread_rwlock_rdlock F
+GLIBC_2.16 pthread_rwlock_timedrdlock F
+GLIBC_2.16 pthread_rwlock_timedwrlock F
+GLIBC_2.16 pthread_rwlock_tryrdlock F
+GLIBC_2.16 pthread_rwlock_trywrlock F
+GLIBC_2.16 pthread_rwlock_unlock F
+GLIBC_2.16 pthread_rwlock_wrlock F
+GLIBC_2.16 pthread_rwlockattr_destroy F
+GLIBC_2.16 pthread_rwlockattr_getkind_np F
+GLIBC_2.16 pthread_rwlockattr_getpshared F
+GLIBC_2.16 pthread_rwlockattr_init F
+GLIBC_2.16 pthread_rwlockattr_setkind_np F
+GLIBC_2.16 pthread_rwlockattr_setpshared F
+GLIBC_2.16 pthread_self F
+GLIBC_2.16 pthread_setaffinity_np F
+GLIBC_2.16 pthread_setcancelstate F
+GLIBC_2.16 pthread_setcanceltype F
+GLIBC_2.16 pthread_setconcurrency F
+GLIBC_2.16 pthread_setname_np F
+GLIBC_2.16 pthread_setschedparam F
+GLIBC_2.16 pthread_setschedprio F
+GLIBC_2.16 pthread_setspecific F
+GLIBC_2.16 pthread_sigmask F
+GLIBC_2.16 pthread_sigqueue F
+GLIBC_2.16 pthread_spin_destroy F
+GLIBC_2.16 pthread_spin_init F
+GLIBC_2.16 pthread_spin_lock F
+GLIBC_2.16 pthread_spin_trylock F
+GLIBC_2.16 pthread_spin_unlock F
+GLIBC_2.16 pthread_testcancel F
+GLIBC_2.16 pthread_timedjoin_np F
+GLIBC_2.16 pthread_tryjoin_np F
+GLIBC_2.16 pthread_yield F
+GLIBC_2.16 pwrite F
+GLIBC_2.16 pwrite64 F
+GLIBC_2.16 raise F
+GLIBC_2.16 read F
+GLIBC_2.16 recv F
+GLIBC_2.16 recvfrom F
+GLIBC_2.16 recvmsg F
+GLIBC_2.16 sem_close F
+GLIBC_2.16 sem_destroy F
+GLIBC_2.16 sem_getvalue F
+GLIBC_2.16 sem_init F
+GLIBC_2.16 sem_open F
+GLIBC_2.16 sem_post F
+GLIBC_2.16 sem_timedwait F
+GLIBC_2.16 sem_trywait F
+GLIBC_2.16 sem_unlink F
+GLIBC_2.16 sem_wait F
+GLIBC_2.16 send F
+GLIBC_2.16 sendmsg F
+GLIBC_2.16 sendto F
+GLIBC_2.16 sigaction F
+GLIBC_2.16 siglongjmp F
+GLIBC_2.16 sigwait F
+GLIBC_2.16 system F
+GLIBC_2.16 tcdrain F
+GLIBC_2.16 vfork F
+GLIBC_2.16 wait F
+GLIBC_2.16 waitpid F
+GLIBC_2.16 write F
+GLIBC_2.18 GLIBC_2.18 A
+GLIBC_2.18 pthread_getattr_default_np F
+GLIBC_2.18 pthread_setattr_default_np F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/x32/libresolv.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/x32/libresolv.abilist
new file mode 100644
index 0000000000..28abb0307e
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/x32/libresolv.abilist
@@ -0,0 +1,92 @@
+GLIBC_2.16 GLIBC_2.16 A
+GLIBC_2.16 __b64_ntop F
+GLIBC_2.16 __b64_pton F
+GLIBC_2.16 __dn_comp F
+GLIBC_2.16 __dn_count_labels F
+GLIBC_2.16 __dn_expand F
+GLIBC_2.16 __dn_skipname F
+GLIBC_2.16 __fp_nquery F
+GLIBC_2.16 __fp_query F
+GLIBC_2.16 __fp_resstat F
+GLIBC_2.16 __hostalias F
+GLIBC_2.16 __loc_aton F
+GLIBC_2.16 __loc_ntoa F
+GLIBC_2.16 __p_cdname F
+GLIBC_2.16 __p_cdnname F
+GLIBC_2.16 __p_class F
+GLIBC_2.16 __p_class_syms D 0x54
+GLIBC_2.16 __p_fqname F
+GLIBC_2.16 __p_fqnname F
+GLIBC_2.16 __p_option F
+GLIBC_2.16 __p_query F
+GLIBC_2.16 __p_rcode F
+GLIBC_2.16 __p_secstodate F
+GLIBC_2.16 __p_time F
+GLIBC_2.16 __p_type F
+GLIBC_2.16 __p_type_syms D 0x228
+GLIBC_2.16 __putlong F
+GLIBC_2.16 __putshort F
+GLIBC_2.16 __res_close F
+GLIBC_2.16 __res_dnok F
+GLIBC_2.16 __res_hnok F
+GLIBC_2.16 __res_hostalias F
+GLIBC_2.16 __res_isourserver F
+GLIBC_2.16 __res_mailok F
+GLIBC_2.16 __res_mkquery F
+GLIBC_2.16 __res_nameinquery F
+GLIBC_2.16 __res_nmkquery F
+GLIBC_2.16 __res_nquery F
+GLIBC_2.16 __res_nquerydomain F
+GLIBC_2.16 __res_nsearch F
+GLIBC_2.16 __res_nsend F
+GLIBC_2.16 __res_ownok F
+GLIBC_2.16 __res_queriesmatch F
+GLIBC_2.16 __res_query F
+GLIBC_2.16 __res_querydomain F
+GLIBC_2.16 __res_search F
+GLIBC_2.16 __res_send F
+GLIBC_2.16 __sym_ntop F
+GLIBC_2.16 __sym_ntos F
+GLIBC_2.16 __sym_ston F
+GLIBC_2.16 _gethtbyaddr F
+GLIBC_2.16 _gethtbyname F
+GLIBC_2.16 _gethtbyname2 F
+GLIBC_2.16 _gethtent F
+GLIBC_2.16 _getlong F
+GLIBC_2.16 _getshort F
+GLIBC_2.16 _res_opcodes D 0x40
+GLIBC_2.16 _sethtent F
+GLIBC_2.16 inet_net_ntop F
+GLIBC_2.16 inet_net_pton F
+GLIBC_2.16 inet_neta F
+GLIBC_2.16 ns_datetosecs F
+GLIBC_2.16 ns_format_ttl F
+GLIBC_2.16 ns_get16 F
+GLIBC_2.16 ns_get32 F
+GLIBC_2.16 ns_initparse F
+GLIBC_2.16 ns_makecanon F
+GLIBC_2.16 ns_msg_getflag F
+GLIBC_2.16 ns_name_compress F
+GLIBC_2.16 ns_name_ntol F
+GLIBC_2.16 ns_name_ntop F
+GLIBC_2.16 ns_name_pack F
+GLIBC_2.16 ns_name_pton F
+GLIBC_2.16 ns_name_rollback F
+GLIBC_2.16 ns_name_skip F
+GLIBC_2.16 ns_name_uncompress F
+GLIBC_2.16 ns_name_unpack F
+GLIBC_2.16 ns_parse_ttl F
+GLIBC_2.16 ns_parserr F
+GLIBC_2.16 ns_put16 F
+GLIBC_2.16 ns_put32 F
+GLIBC_2.16 ns_samedomain F
+GLIBC_2.16 ns_samename F
+GLIBC_2.16 ns_skiprr F
+GLIBC_2.16 ns_sprintrr F
+GLIBC_2.16 ns_sprintrrf F
+GLIBC_2.16 ns_subdomain F
+GLIBC_2.16 res_gethostbyaddr F
+GLIBC_2.16 res_gethostbyname F
+GLIBC_2.16 res_gethostbyname2 F
+GLIBC_2.16 res_send_setqhook F
+GLIBC_2.16 res_send_setrhook F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist
new file mode 100644
index 0000000000..ea7b40ab56
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist
@@ -0,0 +1,41 @@
+GLIBC_2.16 GLIBC_2.16 A
+GLIBC_2.16 __mq_open_2 F
+GLIBC_2.16 aio_cancel F
+GLIBC_2.16 aio_cancel64 F
+GLIBC_2.16 aio_error F
+GLIBC_2.16 aio_error64 F
+GLIBC_2.16 aio_fsync F
+GLIBC_2.16 aio_fsync64 F
+GLIBC_2.16 aio_init F
+GLIBC_2.16 aio_read F
+GLIBC_2.16 aio_read64 F
+GLIBC_2.16 aio_return F
+GLIBC_2.16 aio_return64 F
+GLIBC_2.16 aio_suspend F
+GLIBC_2.16 aio_suspend64 F
+GLIBC_2.16 aio_write F
+GLIBC_2.16 aio_write64 F
+GLIBC_2.16 clock_getcpuclockid F
+GLIBC_2.16 clock_getres F
+GLIBC_2.16 clock_gettime F
+GLIBC_2.16 clock_nanosleep F
+GLIBC_2.16 clock_settime F
+GLIBC_2.16 lio_listio F
+GLIBC_2.16 lio_listio64 F
+GLIBC_2.16 mq_close F
+GLIBC_2.16 mq_getattr F
+GLIBC_2.16 mq_notify F
+GLIBC_2.16 mq_open F
+GLIBC_2.16 mq_receive F
+GLIBC_2.16 mq_send F
+GLIBC_2.16 mq_setattr F
+GLIBC_2.16 mq_timedreceive F
+GLIBC_2.16 mq_timedsend F
+GLIBC_2.16 mq_unlink F
+GLIBC_2.16 shm_open F
+GLIBC_2.16 shm_unlink F
+GLIBC_2.16 timer_create F
+GLIBC_2.16 timer_delete F
+GLIBC_2.16 timer_getoverrun F
+GLIBC_2.16 timer_gettime F
+GLIBC_2.16 timer_settime F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/x32/libthread_db.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/x32/libthread_db.abilist
new file mode 100644
index 0000000000..5d7031cf2f
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/x32/libthread_db.abilist
@@ -0,0 +1,41 @@
+GLIBC_2.16 GLIBC_2.16 A
+GLIBC_2.16 td_init F
+GLIBC_2.16 td_log F
+GLIBC_2.16 td_symbol_list F
+GLIBC_2.16 td_ta_clear_event F
+GLIBC_2.16 td_ta_delete F
+GLIBC_2.16 td_ta_enable_stats F
+GLIBC_2.16 td_ta_event_addr F
+GLIBC_2.16 td_ta_event_getmsg F
+GLIBC_2.16 td_ta_get_nthreads F
+GLIBC_2.16 td_ta_get_ph F
+GLIBC_2.16 td_ta_get_stats F
+GLIBC_2.16 td_ta_map_id2thr F
+GLIBC_2.16 td_ta_map_lwp2thr F
+GLIBC_2.16 td_ta_new F
+GLIBC_2.16 td_ta_reset_stats F
+GLIBC_2.16 td_ta_set_event F
+GLIBC_2.16 td_ta_setconcurrency F
+GLIBC_2.16 td_ta_thr_iter F
+GLIBC_2.16 td_ta_tsd_iter F
+GLIBC_2.16 td_thr_clear_event F
+GLIBC_2.16 td_thr_dbresume F
+GLIBC_2.16 td_thr_dbsuspend F
+GLIBC_2.16 td_thr_event_enable F
+GLIBC_2.16 td_thr_event_getmsg F
+GLIBC_2.16 td_thr_get_info F
+GLIBC_2.16 td_thr_getfpregs F
+GLIBC_2.16 td_thr_getgregs F
+GLIBC_2.16 td_thr_getxregs F
+GLIBC_2.16 td_thr_getxregsize F
+GLIBC_2.16 td_thr_set_event F
+GLIBC_2.16 td_thr_setfpregs F
+GLIBC_2.16 td_thr_setgregs F
+GLIBC_2.16 td_thr_setprio F
+GLIBC_2.16 td_thr_setsigpending F
+GLIBC_2.16 td_thr_setxregs F
+GLIBC_2.16 td_thr_sigsetmask F
+GLIBC_2.16 td_thr_tls_get_addr F
+GLIBC_2.16 td_thr_tlsbase F
+GLIBC_2.16 td_thr_tsd F
+GLIBC_2.16 td_thr_validate F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/x32/libutil.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/x32/libutil.abilist
new file mode 100644
index 0000000000..30353d06c2
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/x32/libutil.abilist
@@ -0,0 +1,7 @@
+GLIBC_2.16 GLIBC_2.16 A
+GLIBC_2.16 forkpty F
+GLIBC_2.16 login F
+GLIBC_2.16 login_tty F
+GLIBC_2.16 logout F
+GLIBC_2.16 logwtmp F
+GLIBC_2.16 openpty F
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/x32/llseek.S b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/x32/llseek.S
new file mode 100644
index 0000000000..5084d0ebd2
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/x32/llseek.S
@@ -0,0 +1 @@
+/* No llseek for x32. */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/x32/lseek.S b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/x32/lseek.S
new file mode 100644
index 0000000000..f8b95d5ca2
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/x32/lseek.S
@@ -0,0 +1,43 @@
+/* The lseek system call with 64-bit offset. Linux/x32 version.
+ 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>
+
+/* Return -1LL in a full 64 bits. */
+#undef SYSCALL_ERROR_HANDLER
+#define SYSCALL_ERROR_HANDLER \
+0: \
+ SYSCALL_SET_ERRNO; \
+ orq $-1, %rax; \
+ ret;
+
+/* Always use our own error handler. */
+#undef SYSCALL_ERROR_LABEL
+#define SYSCALL_ERROR_LABEL 0f
+
+PSEUDO (__libc_lseek64, lseek, 3)
+ ret
+PSEUDO_END (__libc_lseek64)
+
+weak_alias (__libc_lseek64, __lseek64)
+libc_hidden_weak (__lseek64)
+weak_alias (__libc_lseek64, lseek64)
+libc_hidden_weak (lseek64)
+weak_alias (__libc_lseek64, __lseek)
+libc_hidden_weak (__lseek)
+weak_alias (__libc_lseek64, lseek)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/x32/lseek64.S b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/x32/lseek64.S
new file mode 100644
index 0000000000..d81e98fb51
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/x32/lseek64.S
@@ -0,0 +1 @@
+/* We don't need a definition since the llseek function is what we need. */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/x32/shlib-versions b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/x32/shlib-versions
new file mode 100644
index 0000000000..0ab2e27224
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/x32/shlib-versions
@@ -0,0 +1,4 @@
+# DEFAULT Earliest symbol set
+# --------------- ------------------------------
+DEFAULT GLIBC_2.16
+ld=ld-linux-x32.so.2
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/x32/syscalls.list b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/x32/syscalls.list
new file mode 100644
index 0000000000..a41c8ac882
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/x32/syscalls.list
@@ -0,0 +1,7 @@
+# File name Caller Syscall name # args Strong name Weak names
+
+fallocate - fallocate Ci:iiii fallocate fallocate64
+gettimeofday - gettimeofday:__vdso_gettimeofday@LINUX_2.6 i:pP __gettimeofday gettimeofday
+personality EXTRA personality Ei:i __personality personality
+posix_fadvise64 - fadvise64 Vi:iiii posix_fadvise posix_fadvise64
+time - time:__vdso_time@LINUX_2.6 Ei:P time
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/x32/sysctl.mk b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/x32/sysctl.mk
new file mode 100644
index 0000000000..da018fe624
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/x32/sysctl.mk
@@ -0,0 +1 @@
+# X32 doesn't support sysctl.
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/x32/sysdep.h b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/x32/sysdep.h
new file mode 100644
index 0000000000..04c73a2bc1
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/x32/sysdep.h
@@ -0,0 +1,29 @@
+/* Copyright (C) 2012-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _LINUX_X32_SYSDEP_H
+#define _LINUX_X32_SYSDEP_H 1
+
+/* There is some commonality. */
+#include <sysdeps/unix/sysv/linux/x86_64/sysdep.h>
+#include <sysdeps/x86_64/x32/sysdep.h>
+
+/* How to pass the off{64}_t argument on p{readv,writev}{64}. */
+#undef LO_HI_LONG
+#define LO_HI_LONG(val) (val)
+
+#endif /* linux/x86_64/x32/sysdep.h */
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/x32/times.c b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/x32/times.c
new file mode 100644
index 0000000000..d56106e86f
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/x86_64/x32/times.c
@@ -0,0 +1,38 @@
+/* Linux times. X32 version.
+ Copyright (C) 2015-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+
+/* Linux times system call returns 64-bit integer. */
+#undef INTERNAL_SYSCALL_NCS
+#define INTERNAL_SYSCALL_NCS(name, err, nr, args...) \
+ ({ \
+ unsigned long long int resultvar; \
+ LOAD_ARGS_##nr (args) \
+ LOAD_REGS_##nr \
+ asm volatile ( \
+ "syscall\n\t" \
+ : "=a" (resultvar) \
+ : "0" (name) ASM_ARGS_##nr : "memory", REGISTERS_CLOBBERED_BY_SYSCALL); \
+ (long long int) resultvar; })
+
+#undef INTERNAL_SYSCALL_ERROR_P
+#define INTERNAL_SYSCALL_ERROR_P(val, err) \
+ ((unsigned long long int) (val) >= -4095LL)
+
+#include <sysdeps/unix/sysv/linux/times.c>
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/xmknod.c b/REORG.TODO/sysdeps/unix/sysv/linux/xmknod.c
new file mode 100644
index 0000000000..61d12e5db1
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/xmknod.c
@@ -0,0 +1,47 @@
+/* xmknod call using old-style Unix mknod system call.
+ Copyright (C) 1991-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <sys/sysmacros.h>
+
+#include <sysdep.h>
+#include <sys/syscall.h>
+
+/* Create a device file named PATH, with permission and special bits MODE
+ and device number DEV (which can be constructed from major and minor
+ device numbers with the `makedev' macro above). */
+int
+__xmknod (int vers, const char *path, mode_t mode, dev_t *dev)
+{
+ unsigned long long int k_dev;
+
+ if (vers != _MKNOD_VER)
+ return INLINE_SYSCALL_ERROR_RETURN_VALUE (EINVAL);
+
+ /* We must convert the value to dev_t type used by the kernel. */
+ k_dev = (*dev) & ((1ULL << 32) - 1);
+ if (k_dev != *dev)
+ return INLINE_SYSCALL_ERROR_RETURN_VALUE (EINVAL);
+
+ return INLINE_SYSCALL (mknod, 3, path, mode, (unsigned int) k_dev);
+}
+
+weak_alias (__xmknod, _xmknod)
+libc_hidden_def (__xmknod)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/xmknodat.c b/REORG.TODO/sysdeps/unix/sysv/linux/xmknodat.c
new file mode 100644
index 0000000000..ee96be18f3
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/xmknodat.c
@@ -0,0 +1,47 @@
+/* Copyright (C) 2005-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <fcntl.h>
+#include <stdio.h>
+#include <string.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <sys/sysmacros.h>
+
+#include <sysdep.h>
+#include <sys/syscall.h>
+
+
+/* Create a device file named PATH relative to FD, with permission and
+ special bits MODE and device number DEV (which can be constructed
+ from major and minor device numbers with the `makedev' macro above). */
+int
+__xmknodat (int vers, int fd, const char *file, mode_t mode, dev_t *dev)
+{
+ if (vers != _MKNOD_VER)
+ return INLINE_SYSCALL_ERROR_RETURN_VALUE (EINVAL);
+
+ /* We must convert the value to dev_t type used by the kernel. */
+ unsigned long long int k_dev = (*dev) & ((1ULL << 32) - 1);
+ if (k_dev != *dev)
+ return INLINE_SYSCALL_ERROR_RETURN_VALUE (EINVAL);
+
+ return INLINE_SYSCALL (mknodat, 4, fd, file, mode, (unsigned int) k_dev);
+}
+
+libc_hidden_def (__xmknodat)
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/xstat.c b/REORG.TODO/sysdeps/unix/sysv/linux/xstat.c
new file mode 100644
index 0000000000..0f83040051
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/xstat.c
@@ -0,0 +1,59 @@
+/* xstat using old-style Unix stat system call.
+ Copyright (C) 1991-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+/* Ho hum, if xstat == xstat64 we must get rid of the prototype or gcc
+ will complain since they don't strictly match. */
+#define __xstat64 __xstat64_disable
+
+#include <errno.h>
+#include <stddef.h>
+#include <sys/stat.h>
+#include <kernel_stat.h>
+
+#include <sysdep.h>
+#include <sys/syscall.h>
+
+#include <xstatconv.h>
+
+/* Get information about the file NAME in BUF. */
+int
+__xstat (int vers, const char *name, struct stat *buf)
+{
+ if (vers == _STAT_VER_KERNEL)
+ return INLINE_SYSCALL (stat, 2, name, buf);
+
+#ifdef STAT_IS_KERNEL_STAT
+ return INLINE_SYSCALL_ERROR_RETURN_VALUE (EINVAL);
+#else
+ struct kernel_stat kbuf;
+ int result;
+
+ result = INLINE_SYSCALL (stat, 2, name, &kbuf);
+ if (result == 0)
+ result = __xstat_conv (vers, &kbuf, buf);
+
+ return result;
+#endif
+}
+hidden_def (__xstat)
+weak_alias (__xstat, _xstat);
+#if XSTAT_IS_XSTAT64
+#undef __xstat64
+strong_alias (__xstat, __xstat64);
+hidden_ver (__xstat, __xstat64)
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/xstat64.c b/REORG.TODO/sysdeps/unix/sysv/linux/xstat64.c
new file mode 100644
index 0000000000..b3fbe6a383
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/xstat64.c
@@ -0,0 +1,54 @@
+/* xstat64 using Linux stat64 system call.
+ Copyright (C) 1991-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <stddef.h>
+#include <sys/stat.h>
+#include <kernel_stat.h>
+
+#include <sysdep.h>
+#include <sys/syscall.h>
+
+#include <kernel-features.h>
+
+/* Get information about the file NAME in BUF. */
+
+int
+___xstat64 (int vers, const char *name, struct stat64 *buf)
+{
+ int result;
+ result = INLINE_SYSCALL (stat64, 2, name, buf);
+#if defined _HAVE_STAT64___ST_INO && !__ASSUME_ST_INO_64_BIT
+ if (__builtin_expect (!result, 1) && buf->__st_ino != (__ino_t) buf->st_ino)
+ buf->st_ino = buf->__st_ino;
+#endif
+ return result;
+}
+
+
+#include <shlib-compat.h>
+
+#if SHLIB_COMPAT(libc, GLIBC_2_1, GLIBC_2_2)
+versioned_symbol (libc, ___xstat64, __xstat64, GLIBC_2_2);
+strong_alias (___xstat64, __old__xstat64)
+compat_symbol (libc, __old__xstat64, __xstat64, GLIBC_2_1);
+hidden_ver (___xstat64, __xstat64)
+#else
+strong_alias (___xstat64, __xstat64)
+hidden_def (__xstat64)
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/xstatconv.c b/REORG.TODO/sysdeps/unix/sysv/linux/xstatconv.c
new file mode 100644
index 0000000000..e307827b97
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/xstatconv.c
@@ -0,0 +1,270 @@
+/* Convert between the kernel's `struct stat' format, and libc's.
+ Copyright (C) 1991-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <sys/stat.h>
+#include <kernel_stat.h>
+#include <kernel-features.h>
+
+#ifdef STAT_IS_KERNEL_STAT
+
+/* Dummy. */
+struct kernel_stat;
+
+#else
+
+#include <string.h>
+
+
+#if XSTAT_IS_XSTAT64
+int
+__xstat_conv (int vers, struct kernel_stat *kbuf, void *ubuf)
+{
+ switch (vers)
+ {
+ case _STAT_VER_KERNEL:
+ /* Nothing to do. The struct is in the form the kernel expects.
+ We should have short-circuted before we got here, but for
+ completeness... */
+ *(struct kernel_stat *) ubuf = *kbuf;
+ break;
+
+ case _STAT_VER_LINUX:
+ {
+ struct stat *buf = ubuf;
+
+ /* Convert to current kernel version of `struct stat'. */
+ buf->st_dev = kbuf->st_dev;
+#ifdef _HAVE_STAT___PAD1
+ buf->__pad1 = 0;
+#endif
+ buf->st_ino = kbuf->st_ino;
+ buf->st_mode = kbuf->st_mode;
+ buf->st_nlink = kbuf->st_nlink;
+ buf->st_uid = kbuf->st_uid;
+ buf->st_gid = kbuf->st_gid;
+ buf->st_rdev = kbuf->st_rdev;
+#ifdef _HAVE_STAT___PAD2
+ buf->__pad2 = 0;
+#endif
+ buf->st_size = kbuf->st_size;
+ buf->st_blksize = kbuf->st_blksize;
+ buf->st_blocks = kbuf->st_blocks;
+#ifdef _HAVE_STAT_NSEC
+ buf->st_atim.tv_sec = kbuf->st_atim.tv_sec;
+ buf->st_atim.tv_nsec = kbuf->st_atim.tv_nsec;
+ buf->st_mtim.tv_sec = kbuf->st_mtim.tv_sec;
+ buf->st_mtim.tv_nsec = kbuf->st_mtim.tv_nsec;
+ buf->st_ctim.tv_sec = kbuf->st_ctim.tv_sec;
+ buf->st_ctim.tv_nsec = kbuf->st_ctim.tv_nsec;
+#else
+ buf->st_atime = kbuf->st_atime;
+ buf->st_mtime = kbuf->st_mtime;
+ buf->st_ctime = kbuf->st_ctime;
+#endif
+#ifdef _HAVE_STAT___UNUSED1
+ buf->__glibc_reserved1 = 0;
+#endif
+#ifdef _HAVE_STAT___UNUSED2
+ buf->__glibc_reserved2 = 0;
+#endif
+#ifdef _HAVE_STAT___UNUSED3
+ buf->__glibc_reserved3 = 0;
+#endif
+#ifdef _HAVE_STAT___UNUSED4
+ buf->__glibc_reserved4 = 0;
+#endif
+#ifdef _HAVE_STAT___UNUSED5
+ buf->__glibc_reserved5 = 0;
+#endif
+ }
+ break;
+
+ default:
+ return INLINE_SYSCALL_ERROR_RETURN_VALUE (EINVAL);
+ }
+
+ return 0;
+}
+#endif
+
+int
+__xstat64_conv (int vers, struct kernel_stat *kbuf, void *ubuf)
+{
+#if XSTAT_IS_XSTAT64
+ return __xstat_conv (vers, kbuf, ubuf);
+#else
+ switch (vers)
+ {
+ case _STAT_VER_LINUX:
+ {
+ struct stat64 *buf = ubuf;
+
+ /* Convert to current kernel version of `struct stat64'. */
+ buf->st_dev = kbuf->st_dev;
+#ifdef _HAVE_STAT64___PAD1
+ buf->__pad1 = 0;
+#endif
+ buf->st_ino = kbuf->st_ino;
+#ifdef _HAVE_STAT64___ST_INO
+ buf->__st_ino = kbuf->st_ino;
+#endif
+ buf->st_mode = kbuf->st_mode;
+ buf->st_nlink = kbuf->st_nlink;
+ buf->st_uid = kbuf->st_uid;
+ buf->st_gid = kbuf->st_gid;
+ buf->st_rdev = kbuf->st_rdev;
+#ifdef _HAVE_STAT64___PAD2
+ buf->__pad2 = 0;
+#endif
+ buf->st_size = kbuf->st_size;
+ buf->st_blksize = kbuf->st_blksize;
+ buf->st_blocks = kbuf->st_blocks;
+#ifdef _HAVE_STAT64_NSEC
+ buf->st_atim.tv_sec = kbuf->st_atim.tv_sec;
+ buf->st_atim.tv_nsec = kbuf->st_atim.tv_nsec;
+ buf->st_mtim.tv_sec = kbuf->st_mtim.tv_sec;
+ buf->st_mtim.tv_nsec = kbuf->st_mtim.tv_nsec;
+ buf->st_ctim.tv_sec = kbuf->st_ctim.tv_sec;
+ buf->st_ctim.tv_nsec = kbuf->st_ctim.tv_nsec;
+#else
+ buf->st_atime = kbuf->st_atime;
+ buf->st_mtime = kbuf->st_mtime;
+ buf->st_ctime = kbuf->st_ctime;
+#endif
+#ifdef _HAVE_STAT64___UNUSED1
+ buf->__glibc_reserved1 = 0;
+#endif
+#ifdef _HAVE_STAT64___UNUSED2
+ buf->__glibc_reserved2 = 0;
+#endif
+#ifdef _HAVE_STAT64___UNUSED3
+ buf->__glibc_reserved3 = 0;
+#endif
+#ifdef _HAVE_STAT64___UNUSED4
+ buf->__glibc_reserved4 = 0;
+#endif
+#ifdef _HAVE_STAT64___UNUSED5
+ buf->__glibc_reserved5 = 0;
+#endif
+ }
+ break;
+
+ /* If struct stat64 is different from struct stat then
+ _STAT_VER_KERNEL does not make sense. */
+ case _STAT_VER_KERNEL:
+ default:
+ return INLINE_SYSCALL_ERROR_RETURN_VALUE (EINVAL);
+ }
+
+ return 0;
+#endif
+}
+
+int
+__xstat32_conv (int vers, struct stat64 *kbuf, struct stat *buf)
+{
+ switch (vers)
+ {
+ case _STAT_VER_LINUX:
+ {
+ /* Convert current kernel version of `struct stat64' to
+ `struct stat'. */
+ buf->st_dev = kbuf->st_dev;
+#ifdef _HAVE_STAT___PAD1
+ buf->__pad1 = 0;
+#endif
+#ifdef _HAVE_STAT64___ST_INO
+# if !__ASSUME_ST_INO_64_BIT
+ if (kbuf->st_ino == 0)
+ buf->st_ino = kbuf->__st_ino;
+ else
+# endif
+ {
+ buf->st_ino = kbuf->st_ino;
+ if (sizeof (buf->st_ino) != sizeof (kbuf->st_ino)
+ && buf->st_ino != kbuf->st_ino)
+ return INLINE_SYSCALL_ERROR_RETURN_VALUE (EOVERFLOW);
+ }
+#else
+ buf->st_ino = kbuf->st_ino;
+ if (sizeof (buf->st_ino) != sizeof (kbuf->st_ino)
+ && buf->st_ino != kbuf->st_ino)
+ return INLINE_SYSCALL_ERROR_RETURN_VALUE (EOVERFLOW);
+#endif
+ buf->st_mode = kbuf->st_mode;
+ buf->st_nlink = kbuf->st_nlink;
+ buf->st_uid = kbuf->st_uid;
+ buf->st_gid = kbuf->st_gid;
+ buf->st_rdev = kbuf->st_rdev;
+#ifdef _HAVE_STAT___PAD2
+ buf->__pad2 = 0;
+#endif
+ buf->st_size = kbuf->st_size;
+ /* Check for overflow. */
+ if (sizeof (buf->st_size) != sizeof (kbuf->st_size)
+ && buf->st_size != kbuf->st_size)
+ return INLINE_SYSCALL_ERROR_RETURN_VALUE (EOVERFLOW);
+ buf->st_blksize = kbuf->st_blksize;
+ buf->st_blocks = kbuf->st_blocks;
+ /* Check for overflow. */
+ if (sizeof (buf->st_blocks) != sizeof (kbuf->st_blocks)
+ && buf->st_blocks != kbuf->st_blocks)
+ return INLINE_SYSCALL_ERROR_RETURN_VALUE (EOVERFLOW);
+#ifdef _HAVE_STAT_NSEC
+ buf->st_atim.tv_sec = kbuf->st_atim.tv_sec;
+ buf->st_atim.tv_nsec = kbuf->st_atim.tv_nsec;
+ buf->st_mtim.tv_sec = kbuf->st_mtim.tv_sec;
+ buf->st_mtim.tv_nsec = kbuf->st_mtim.tv_nsec;
+ buf->st_ctim.tv_sec = kbuf->st_ctim.tv_sec;
+ buf->st_ctim.tv_nsec = kbuf->st_ctim.tv_nsec;
+#else
+ buf->st_atime = kbuf->st_atime;
+ buf->st_mtime = kbuf->st_mtime;
+ buf->st_ctime = kbuf->st_ctime;
+#endif
+
+#ifdef _HAVE_STAT___UNUSED1
+ buf->__glibc_reserved1 = 0;
+#endif
+#ifdef _HAVE_STAT___UNUSED2
+ buf->__glibc_reserved2 = 0;
+#endif
+#ifdef _HAVE_STAT___UNUSED3
+ buf->__glibc_reserved3 = 0;
+#endif
+#ifdef _HAVE_STAT___UNUSED4
+ buf->__glibc_reserved4 = 0;
+#endif
+#ifdef _HAVE_STAT___UNUSED5
+ buf->__glibc_reserved5 = 0;
+#endif
+ }
+ break;
+
+ /* If struct stat64 is different from struct stat then
+ _STAT_VER_KERNEL does not make sense. */
+ case _STAT_VER_KERNEL:
+ default:
+ return INLINE_SYSCALL_ERROR_RETURN_VALUE (EINVAL);
+ }
+
+ return 0;
+}
+
+#endif
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/xstatconv.h b/REORG.TODO/sysdeps/unix/sysv/linux/xstatconv.h
new file mode 100644
index 0000000000..b9e39ab71f
--- /dev/null
+++ b/REORG.TODO/sysdeps/unix/sysv/linux/xstatconv.h
@@ -0,0 +1,26 @@
+/* Convert between the kernel's `struct stat' format, and libc's.
+ Copyright (C) 1991-2017 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef STAT_IS_KERNEL_STAT
+extern int __xstat_conv (int vers, struct kernel_stat *kbuf, void *ubuf)
+ attribute_hidden;
+extern int __xstat64_conv (int vers, struct kernel_stat *kbuf, void *ubuf)
+ attribute_hidden;
+#endif
+extern int __xstat32_conv (int vers, struct stat64 *kbuf, struct stat *buf)
+ attribute_hidden;