From 5046dbb4a7eba5eccfd258f92f4735c9ffc8d069 Mon Sep 17 00:00:00 2001 From: Zack Weinberg Date: Thu, 8 Jun 2017 15:39:03 -0400 Subject: Prepare for radical source tree reorganization. All top-level files and directories are moved into a temporary storage directory, REORG.TODO, except for files that will certainly still exist in their current form at top level when we're done (COPYING, COPYING.LIB, LICENSES, NEWS, README), all old ChangeLog files (which are moved to the new directory OldChangeLogs, instead), and the generated file INSTALL (which is just deleted; in the new order, there will be no generated files checked into version control). --- REORG.TODO/sysdeps/unix/sysv/linux/powerpc/Implies | 1 + .../sysdeps/unix/sysv/linux/powerpc/Makefile | 39 + .../sysdeps/unix/sysv/linux/powerpc/Versions | 19 + .../sysdeps/unix/sysv/linux/powerpc/arch-fork.h | 1 + .../unix/sysv/linux/powerpc/bits/environments.h | 96 + .../sysdeps/unix/sysv/linux/powerpc/bits/fcntl.h | 62 + .../unix/sysv/linux/powerpc/bits/ioctl-types.h | 77 + .../sysdeps/unix/sysv/linux/powerpc/bits/ipc.h | 54 + .../unix/sysv/linux/powerpc/bits/local_lim.h | 100 + .../sysdeps/unix/sysv/linux/powerpc/bits/mman.h | 49 + .../sysdeps/unix/sysv/linux/powerpc/bits/msq.h | 83 + .../sysdeps/unix/sysv/linux/powerpc/bits/ppc.h | 33 + .../sysdeps/unix/sysv/linux/powerpc/bits/sem.h | 90 + .../unix/sysv/linux/powerpc/bits/semaphore.h | 40 + .../sysdeps/unix/sysv/linux/powerpc/bits/shm.h | 112 + .../unix/sysv/linux/powerpc/bits/sigstack.h | 32 + .../sysdeps/unix/sysv/linux/powerpc/bits/stat.h | 275 +++ .../sysdeps/unix/sysv/linux/powerpc/bits/termios.h | 279 +++ .../unix/sysv/linux/powerpc/bits/wordsize.h | 11 + .../sysdeps/unix/sysv/linux/powerpc/configure | 79 + .../sysdeps/unix/sysv/linux/powerpc/configure.ac | 39 + .../sysdeps/unix/sysv/linux/powerpc/dl-brk.S | 1 + .../sysdeps/unix/sysv/linux/powerpc/dl-cache.h | 1 + .../sysdeps/unix/sysv/linux/powerpc/dl-static.c | 84 + .../sysdeps/unix/sysv/linux/powerpc/dl-sysdep.c | 33 + .../sysdeps/unix/sysv/linux/powerpc/elision-conf.c | 83 + .../sysdeps/unix/sysv/linux/powerpc/elision-conf.h | 42 + .../sysdeps/unix/sysv/linux/powerpc/elision-lock.c | 86 + .../unix/sysv/linux/powerpc/elision-timed.c | 28 + .../unix/sysv/linux/powerpc/elision-trylock.c | 69 + .../unix/sysv/linux/powerpc/elision-unlock.c | 43 + .../unix/sysv/linux/powerpc/force-elision.h | 28 + .../unix/sysv/linux/powerpc/get_clockfreq.c | 107 + .../unix/sysv/linux/powerpc/get_timebase_freq.c | 27 + .../sysdeps/unix/sysv/linux/powerpc/getdents64.c | 1 + .../sysdeps/unix/sysv/linux/powerpc/getmsg.c | 1 + .../sysdeps/unix/sysv/linux/powerpc/gettimeofday.c | 85 + REORG.TODO/sysdeps/unix/sysv/linux/powerpc/htm.h | 171 ++ .../sysdeps/unix/sysv/linux/powerpc/init-first.c | 85 + REORG.TODO/sysdeps/unix/sysv/linux/powerpc/ioctl.c | 64 + .../sysdeps/unix/sysv/linux/powerpc/ipc_priv.h | 39 + .../unix/sysv/linux/powerpc/kernel-features.h | 51 + .../unix/sysv/linux/powerpc/kernel_termios.h | 53 + .../sysdeps/unix/sysv/linux/powerpc/ldconfig.h | 27 + .../unix/sysv/linux/powerpc/ldd-rewrite.sed | 15 + .../sysdeps/unix/sysv/linux/powerpc/ldsodefs.h | 33 + .../sysdeps/unix/sysv/linux/powerpc/libc-start.c | 105 + .../sysdeps/unix/sysv/linux/powerpc/libc-vdso.h | 74 + .../sysdeps/unix/sysv/linux/powerpc/lowlevellock.h | 48 + .../sysdeps/unix/sysv/linux/powerpc/nldbl-abi.h | 8 + .../unix/sysv/linux/powerpc/powerpc32/405/Implies | 2 + .../unix/sysv/linux/powerpc/powerpc32/440/Implies | 2 + .../unix/sysv/linux/powerpc/powerpc32/464/Implies | 2 + .../unix/sysv/linux/powerpc/powerpc32/476/Implies | 2 + .../unix/sysv/linux/powerpc/powerpc32/970/Implies | 2 + .../unix/sysv/linux/powerpc/powerpc32/Makefile | 10 + .../unix/sysv/linux/powerpc/powerpc32/Versions | 46 + .../sysv/linux/powerpc/powerpc32/____longjmp_chk.S | 76 + .../unix/sysv/linux/powerpc/powerpc32/a2/Implies | 2 + .../unix/sysv/linux/powerpc/powerpc32/brk.S | 52 + .../sysv/linux/powerpc/powerpc32/c++-types.data | 67 + .../unix/sysv/linux/powerpc/powerpc32/cell/Implies | 2 + .../sysv/linux/powerpc/powerpc32/cell/fpu/Implies | 3 + .../unix/sysv/linux/powerpc/powerpc32/clone.S | 101 + .../unix/sysv/linux/powerpc/powerpc32/configure | 4 + .../unix/sysv/linux/powerpc/powerpc32/configure.ac | 4 + .../linux/powerpc/powerpc32/e500/nofpu/Implies | 3 + .../unix/sysv/linux/powerpc/powerpc32/fcntl.c | 1 + .../sysv/linux/powerpc/powerpc32/fpu/fe_mask.c | 33 + .../sysv/linux/powerpc/powerpc32/fpu/fe_nomask.c | 37 + .../sysv/linux/powerpc/powerpc32/fpu/libc.abilist | 2475 +++++++++++++++++++ .../sysv/linux/powerpc/powerpc32/fpu/libm.abilist | 578 +++++ .../sysv/linux/powerpc/powerpc32/fpu/localplt.data | 16 + .../unix/sysv/linux/powerpc/powerpc32/fxstat.c | 1 + .../unix/sysv/linux/powerpc/powerpc32/fxstatat.c | 1 + .../linux/powerpc/powerpc32/getcontext-common.S | 284 +++ .../unix/sysv/linux/powerpc/powerpc32/getcontext.S | 78 + .../unix/sysv/linux/powerpc/powerpc32/glob64.c | 1 + .../sysv/linux/powerpc/powerpc32/kernel_stat.h | 51 + .../unix/sysv/linux/powerpc/powerpc32/ld.abilist | 16 + .../powerpc/powerpc32/libBrokenLocale.abilist | 2 + .../sysv/linux/powerpc/powerpc32/libanl.abilist | 5 + .../sysv/linux/powerpc/powerpc32/libcrypt.abilist | 8 + .../sysv/linux/powerpc/powerpc32/libdl.abilist | 14 + .../sysv/linux/powerpc/powerpc32/libnsl.abilist | 124 + .../linux/powerpc/powerpc32/libpthread.abilist | 262 ++ .../sysv/linux/powerpc/powerpc32/libresolv.abilist | 100 + .../sysv/linux/powerpc/powerpc32/librt.abilist | 47 + .../linux/powerpc/powerpc32/libthread_db.abilist | 44 + .../sysv/linux/powerpc/powerpc32/libutil.abilist | 7 + .../unix/sysv/linux/powerpc/powerpc32/lockf64.c | 1 + .../unix/sysv/linux/powerpc/powerpc32/lxstat.c | 2 + .../sysv/linux/powerpc/powerpc32/makecontext.S | 226 ++ .../sysv/linux/powerpc/powerpc32/nofpu/Implies | 2 + .../linux/powerpc/powerpc32/nofpu/context-e500.h | 144 ++ .../linux/powerpc/powerpc32/nofpu/getcontext.S | 60 + .../linux/powerpc/powerpc32/nofpu/libc.abilist | 2521 ++++++++++++++++++++ .../linux/powerpc/powerpc32/nofpu/libm.abilist | 577 +++++ .../linux/powerpc/powerpc32/nofpu/localplt.data | 46 + .../linux/powerpc/powerpc32/nofpu/setcontext.S | 60 + .../linux/powerpc/powerpc32/nofpu/swapcontext.S | 60 + .../unix/sysv/linux/powerpc/powerpc32/scandir64.c | 1 + .../linux/powerpc/powerpc32/setcontext-common.S | 306 +++ .../unix/sysv/linux/powerpc/powerpc32/setcontext.S | 80 + .../linux/powerpc/powerpc32/swapcontext-common.S | 529 ++++ .../sysv/linux/powerpc/powerpc32/swapcontext.S | 78 + .../sysv/linux/powerpc/powerpc32/syscalls.list | 10 + .../sysv/linux/powerpc/powerpc32/sysdep-cancel.h | 118 + .../unix/sysv/linux/powerpc/powerpc32/sysdep.h | 234 ++ .../sysv/linux/powerpc/powerpc32/ucontext_i.sym | 26 + .../unix/sysv/linux/powerpc/powerpc32/vfork.S | 38 + .../unix/sysv/linux/powerpc/powerpc32/xstat.c | 1 + .../unix/sysv/linux/powerpc/powerpc64/970/Implies | 2 + .../unix/sysv/linux/powerpc/powerpc64/Implies | 1 + .../unix/sysv/linux/powerpc/powerpc64/Versions | 43 + .../sysv/linux/powerpc/powerpc64/____longjmp_chk.S | 68 + .../unix/sysv/linux/powerpc/powerpc64/a2/Implies | 2 + .../unix/sysv/linux/powerpc/powerpc64/brk.S | 43 + .../sysv/linux/powerpc/powerpc64/c++-types.data | 67 + .../unix/sysv/linux/powerpc/powerpc64/cell/Implies | 2 + .../sysv/linux/powerpc/powerpc64/cell/fpu/Implies | 1 + .../unix/sysv/linux/powerpc/powerpc64/clone.S | 119 + .../unix/sysv/linux/powerpc/powerpc64/configure | 233 ++ .../unix/sysv/linux/powerpc/powerpc64/configure.ac | 36 + .../unix/sysv/linux/powerpc/powerpc64/dl-cache.h | 24 + .../unix/sysv/linux/powerpc/powerpc64/fcntl.c | 65 + .../sysv/linux/powerpc/powerpc64/fpu/fe_mask.c | 35 + .../sysv/linux/powerpc/powerpc64/fpu/fe_nomask.c | 39 + .../unix/sysv/linux/powerpc/powerpc64/getcontext.S | 383 +++ .../sysv/linux/powerpc/powerpc64/kernel_stat.h | 21 + .../sysv/linux/powerpc/powerpc64/ld-le.abilist | 13 + .../unix/sysv/linux/powerpc/powerpc64/ld.abilist | 14 + .../unix/sysv/linux/powerpc/powerpc64/ldsodefs.h | 80 + .../powerpc/powerpc64/libBrokenLocale-le.abilist | 2 + .../powerpc/powerpc64/libBrokenLocale.abilist | 2 + .../sysv/linux/powerpc/powerpc64/libanl-le.abilist | 5 + .../sysv/linux/powerpc/powerpc64/libanl.abilist | 5 + .../sysv/linux/powerpc/powerpc64/libc-le.abilist | 2193 +++++++++++++++++ .../unix/sysv/linux/powerpc/powerpc64/libc.abilist | 2327 ++++++++++++++++++ .../linux/powerpc/powerpc64/libcrypt-le.abilist | 8 + .../sysv/linux/powerpc/powerpc64/libcrypt.abilist | 8 + .../sysv/linux/powerpc/powerpc64/libdl-le.abilist | 10 + .../sysv/linux/powerpc/powerpc64/libdl.abilist | 12 + .../sysv/linux/powerpc/powerpc64/libm-le.abilist | 469 ++++ .../unix/sysv/linux/powerpc/powerpc64/libm.abilist | 569 +++++ .../sysv/linux/powerpc/powerpc64/libnsl-le.abilist | 122 + .../sysv/linux/powerpc/powerpc64/libnsl.abilist | 122 + .../linux/powerpc/powerpc64/libpthread-le.abilist | 226 ++ .../linux/powerpc/powerpc64/libpthread.abilist | 247 ++ .../linux/powerpc/powerpc64/libresolv-le.abilist | 92 + .../sysv/linux/powerpc/powerpc64/libresolv.abilist | 94 + .../sysv/linux/powerpc/powerpc64/librt-le.abilist | 36 + .../sysv/linux/powerpc/powerpc64/librt.abilist | 52 + .../powerpc/powerpc64/libthread_db-le.abilist | 41 + .../linux/powerpc/powerpc64/libthread_db.abilist | 42 + .../linux/powerpc/powerpc64/libutil-le.abilist | 7 + .../sysv/linux/powerpc/powerpc64/libutil.abilist | 7 + .../sysv/linux/powerpc/powerpc64/localplt.data | 15 + .../sysv/linux/powerpc/powerpc64/makecontext.S | 187 ++ .../unix/sysv/linux/powerpc/powerpc64/setcontext.S | 513 ++++ .../sysv/linux/powerpc/powerpc64/shlib-versions | 7 + .../sysv/linux/powerpc/powerpc64/swapcontext.S | 797 +++++++ .../sysv/linux/powerpc/powerpc64/sysdep-cancel.h | 147 ++ .../unix/sysv/linux/powerpc/powerpc64/sysdep.h | 239 ++ .../sysv/linux/powerpc/powerpc64/timer_create.c | 1 + .../sysv/linux/powerpc/powerpc64/timer_delete.c | 1 + .../sysv/linux/powerpc/powerpc64/timer_getoverr.c | 1 + .../sysv/linux/powerpc/powerpc64/timer_gettime.c | 1 + .../sysv/linux/powerpc/powerpc64/timer_settime.c | 1 + .../sysv/linux/powerpc/powerpc64/ucontext_i.sym | 29 + .../unix/sysv/linux/powerpc/powerpc64/umount.c | 1 + .../unix/sysv/linux/powerpc/powerpc64/vfork.S | 39 + .../unix/sysv/linux/powerpc/powerpc64le/Implies | 1 + .../sysv/linux/powerpc/powerpc64le/fpu/Implies | 1 + .../unix/sysv/linux/powerpc/profil-counter.h | 2 + .../sysdeps/unix/sysv/linux/powerpc/pt-longjmp.c | 61 + .../sysv/linux/powerpc/pthread_attr_setstack.c | 2 + .../sysv/linux/powerpc/pthread_attr_setstacksize.c | 9 + .../sysv/linux/powerpc/pthread_mutex_cond_lock.c | 22 + .../unix/sysv/linux/powerpc/pthread_mutex_lock.c | 22 + .../sysv/linux/powerpc/pthread_mutex_timedlock.c | 22 + .../sysv/linux/powerpc/pthread_mutex_trylock.c | 22 + .../sysdeps/unix/sysv/linux/powerpc/putmsg.c | 1 + .../sysdeps/unix/sysv/linux/powerpc/readdir64.c | 1 + .../sysdeps/unix/sysv/linux/powerpc/readdir64_r.c | 1 + .../sysdeps/unix/sysv/linux/powerpc/readelflib.c | 60 + .../sysdeps/unix/sysv/linux/powerpc/rt-sysdep.c | 1 + .../unix/sysv/linux/powerpc/sigcontextinfo.h | 26 + .../sysdeps/unix/sysv/linux/powerpc/sys/procfs.h | 139 ++ .../sysdeps/unix/sysv/linux/powerpc/sys/ptrace.h | 199 ++ .../sysdeps/unix/sysv/linux/powerpc/sys/ucontext.h | 193 ++ .../sysdeps/unix/sysv/linux/powerpc/sys/user.h | 40 + .../sysdeps/unix/sysv/linux/powerpc/syscall.S | 31 + .../sysdeps/unix/sysv/linux/powerpc/sysdep.c | 28 + .../unix/sysv/linux/powerpc/test-gettimebasefreq.c | 63 + REORG.TODO/sysdeps/unix/sysv/linux/powerpc/time.c | 84 + 196 files changed, 23747 insertions(+) create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/Implies create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/Makefile create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/Versions create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/arch-fork.h create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/bits/environments.h create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/bits/fcntl.h create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/bits/ioctl-types.h create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/bits/ipc.h create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/bits/local_lim.h create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/bits/mman.h create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/bits/msq.h create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/bits/ppc.h create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/bits/sem.h create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/bits/semaphore.h create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/bits/shm.h create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/bits/sigstack.h create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/bits/stat.h create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/bits/termios.h create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/bits/wordsize.h create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/configure create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/configure.ac create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/dl-brk.S create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/dl-cache.h create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/dl-static.c create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/dl-sysdep.c create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/elision-conf.c create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/elision-conf.h create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/elision-lock.c create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/elision-timed.c create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/elision-trylock.c create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/elision-unlock.c create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/force-elision.h create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/get_clockfreq.c create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/get_timebase_freq.c create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/getdents64.c create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/getmsg.c create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/gettimeofday.c create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/htm.h create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/init-first.c create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/ioctl.c create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/ipc_priv.h create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/kernel-features.h create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/kernel_termios.h create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/ldconfig.h create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/ldd-rewrite.sed create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/ldsodefs.h create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/libc-start.c create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/libc-vdso.h create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/lowlevellock.h create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/nldbl-abi.h create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/405/Implies create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/440/Implies create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/464/Implies create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/476/Implies create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/970/Implies create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/Makefile create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/Versions create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/____longjmp_chk.S create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/a2/Implies create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/brk.S create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/c++-types.data create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/cell/Implies create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/cell/fpu/Implies create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/configure create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/configure.ac create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/e500/nofpu/Implies create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/fcntl.c create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/fe_mask.c create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/fe_nomask.c create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/localplt.data create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/fxstat.c create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/fxstatat.c create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/getcontext-common.S create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/getcontext.S create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/glob64.c create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/kernel_stat.h create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/ld.abilist create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/libBrokenLocale.abilist create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/libanl.abilist create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/libcrypt.abilist create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/libdl.abilist create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/libnsl.abilist create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/libresolv.abilist create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/libthread_db.abilist create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/libutil.abilist create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/lockf64.c create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/lxstat.c create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/makecontext.S create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/Implies create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/context-e500.h create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/getcontext.S create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/localplt.data create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/setcontext.S create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/swapcontext.S create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/scandir64.c create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext-common.S create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext.S create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext-common.S create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext.S create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/syscalls.list create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep.h create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/ucontext_i.sym create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/xstat.c create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/970/Implies create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/Implies create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/Versions create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/____longjmp_chk.S create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/a2/Implies create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/brk.S create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/c++-types.data create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/cell/Implies create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/cell/fpu/Implies create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/clone.S create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/configure create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/configure.ac create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/dl-cache.h create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/fcntl.c create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/fpu/fe_mask.c create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/fpu/fe_nomask.c create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/getcontext.S create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/kernel_stat.h create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/ld-le.abilist create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/ld.abilist create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/ldsodefs.h create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libBrokenLocale-le.abilist create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libBrokenLocale.abilist create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libanl-le.abilist create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libanl.abilist create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libcrypt-le.abilist create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libcrypt.abilist create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libdl-le.abilist create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libdl.abilist create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libm-le.abilist create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libm.abilist create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libnsl-le.abilist create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libnsl.abilist create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libpthread-le.abilist create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libpthread.abilist create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libresolv-le.abilist create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libresolv.abilist create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/librt-le.abilist create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/librt.abilist create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libthread_db-le.abilist create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libthread_db.abilist create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libutil-le.abilist create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libutil.abilist create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/localplt.data create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/makecontext.S create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/setcontext.S create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/shlib-versions create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/swapcontext.S create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep.h create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_create.c create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_delete.c create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_getoverr.c create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_gettime.c create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_settime.c create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/ucontext_i.sym create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/umount.c create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/vfork.S create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64le/Implies create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64le/fpu/Implies create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/profil-counter.h create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/pt-longjmp.c create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/pthread_attr_setstack.c create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/pthread_attr_setstacksize.c create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/pthread_mutex_cond_lock.c create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/pthread_mutex_lock.c create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/pthread_mutex_timedlock.c create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/pthread_mutex_trylock.c create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/putmsg.c create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/readdir64.c create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/readdir64_r.c create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/readelflib.c create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/rt-sysdep.c create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/sigcontextinfo.h create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/sys/procfs.h create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/sys/ptrace.h create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/sys/ucontext.h create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/sys/user.h create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/syscall.S create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/sysdep.c create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/test-gettimebasefreq.c create mode 100644 REORG.TODO/sysdeps/unix/sysv/linux/powerpc/time.c (limited to 'REORG.TODO/sysdeps/unix/sysv/linux/powerpc') 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 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 + . */ + +#ifndef _UNISTD_H +# error "Never include this file directly. Use instead" +#endif + +#include + +/* 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 + . */ + +#ifndef _FCNTL_H +# error "Never use directly; include instead." +#endif + +#include + +#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 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 + . */ + +#ifndef _SYS_IOCTL_H +# error "Never use directly; include instead." +#endif + +/* Get definition of constants for use with `ioctl'. */ +#include + + +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 + . */ + +#ifndef _SYS_IPC_H +# error "Never use directly; include instead." +#endif + +#include + +/* 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 . */ + +/* 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 + +/* 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 + . */ + +#ifndef _SYS_MMAN_H +# error "Never use directly; include 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 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 + . */ + +#ifndef _SYS_MSG_H +# error "Never use directly; include instead." +#endif + +#include + +/* 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 + . */ + +#ifndef _BITS_PPC_H +#define _BITS_PPC_H + +#ifndef _SYS_PLATFORM_PPC_H +# error "Never include this file directly; use 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 + . */ + +#ifndef _SYS_SEM_H +# error "Never include directly; use instead." +#endif + +#include + +/* 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 , 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 + . */ + +#ifndef _SEMAPHORE_H +# error "Never use directly; include instead." +#endif + +#include + +#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 + . */ + +#ifndef _SYS_SHM_H +# error "Never include directly; use instead." +#endif + +#include + +/* Permission flag for shmget. */ +#define SHM_R 0400 /* or S_IRUGO from */ +#define SHM_W 0200 /* or S_IWUGO from */ + +/* 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 + . */ + +#ifndef _BITS_SIGSTACK_H +#define _BITS_SIGSTACK_H 1 + +#if !defined _SIGNAL_H && !defined _SYS_UCONTEXT_H +# error "Never include this file directly. Use 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 + . */ + +#if !defined _SYS_STAT_H && !defined _FCNTL_H +# error "Never include directly; use instead." +#endif + +#ifndef _BITS_STAT_H +#define _BITS_STAT_H 1 + +#include + +/* 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 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 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 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 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 + . */ + +#ifndef _TERMIOS_H +# error "Never include directly; use 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 +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 +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 ], [ +#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 ], [ +#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 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 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 + . */ + +#include + +#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 + . */ + +#include +#include + +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 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 + . */ + +#include "config.h" +#include +#include +#include +#include + +/* 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 + . */ + +#ifndef _ELISION_CONF_H +#define _ELISION_CONF_H 1 + +#include +#include + +/* 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 + . */ + +#include +#include +#include +#include +#include +#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 + . */ + +#include +#include +#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 + . */ + +#include +#include +#include +#include +#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 + . */ + +#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 + . */ + +#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 + . */ + +#include +#include +#include +#include +#include +#include +#include +#include + +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 + . */ + +#include +#include + +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 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 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 + . */ + +#if defined SHARED && !defined __powerpc64__ +# define __gettimeofday __redirect___gettimeofday +#else +# define __redirect___gettimeofday __gettimeofday +#endif + +#include + +#ifdef SHARED + +# include +# include +# include + +# 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 +# include + +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 + . */ + +#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 + +/* 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 + +# 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 + . */ + +#ifdef SHARED +# include +# include + +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 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 + . */ + +#include +#include +#include +#include +#include + +/* 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 + . */ + +#include /* 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 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 + . */ + +/* 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 + +/* 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 + . */ + +#ifndef _KERNEL_TERMIOS_H +#define _KERNEL_TERMIOS_H 1 + +/* We need the definition of tcflag_t, cc_t, and speed_t. */ +#include + +#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 + . */ + +#include + +#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 + . */ + +#ifndef _LDSODEFS_H + +/* Get the real definitions. */ +#include_next + +/* 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 + . */ + +#include +#include +#include +#include + +#ifndef SHARED +#include +#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 + +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 + . */ + + +#ifndef _LIBC_VDSO_H +#define _LIBC_VDSO_H + +#ifdef SHARED + +#include + +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 + . */ + +#ifndef _POWERPC_LOWLEVELLOCK_H +#define _POWERPC_LOWLEVELLOCK_H 1 + +#include + +/* 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 + . */ + +#include +#include + + .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 + . */ + +#include +#define _ERRNO_H 1 +#include + + .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 + . */ + +#include +#define _ERRNO_H 1 +#include + +#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 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 + . */ + +#include +#include +#include +#include +#include +#include + +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 + . */ + +#include +#include +#include +#include +#include +#include +#include + +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 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 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 + . */ + +/* 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 + . */ + +#include +#include +#include + +#define __ASSEMBLY__ +#include +#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 + + 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 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 + . */ + +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 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 + 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 + . */ + +#include +#include + +#define __ASSEMBLY__ +#include +#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 + + 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 + . */ + +#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 + . */ + +#include +#include +#include + +#define __ASSEMBLY__ +#include +#include "ucontext_i.h" + +#include + +#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 + + 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 + . */ + +#include +#include +#include + +#define __ASSEMBLY__ +#include +#include "ucontext_i.h" + +#include + +#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 + + 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 + . */ + +#include +#include +#include + +#define __ASSEMBLY__ +#include +#include "ucontext_i.h" + +#include + +#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 + + 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 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 + . */ + +/* 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 + . */ + +#include +#include +#include + +#define __ASSEMBLY__ +#include +#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 + + 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 + . */ + +/* 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 + . */ + +#include +#include +#include + +#define __ASSEMBLY__ +#include +#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 + + 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 , 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 + . */ + +#include +#include +#ifndef __ASSEMBLER__ +# include +#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 + . */ + +#ifndef _LINUX_POWERPC_SYSDEP_H +#define _LINUX_POWERPC_SYSDEP_H 1 + +#include +#include +#include + +/* 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 + +/* 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 +#include +#include + +-- + +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 + . */ + +#include +#define _ERRNO_H 1 +#include +#include + +/* 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 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 + . */ + +#include +#include + + .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 + . */ + +#include +#define _ERRNO_H 1 +#include + + .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 + . */ + +#include +#define _ERRNO_H 1 +#include + +#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 + . */ + +#define _DL_CACHE_DEFAULT_ID 0x503 + +#define _dl_cache_check_flags(flags) \ + ((flags) == _DL_CACHE_DEFAULT_ID) + +#include_next 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 + . */ + +#include +#include +#include /* Must come before . */ +#include +#include + +#include + + +#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 + . */ + +#include +#include +#include +#include +#include + +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 + . */ + +#include +#include +#include +#include +#include +#include + +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 + . */ + +#include +#include +#include + +#define __ASSEMBLY__ +#include +#include +#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 + . */ + +#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 + . */ + +#ifndef _LDSODEFS_H + +/* Get the real definitions. */ +#include_next + +/* 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 + . */ + +#include + +#define __ASSEMBLY__ +#include +#include "ucontext_i.h" +#include + +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 + . */ + +#include +#include +#include + +#define __ASSEMBLY__ +#include +#include "ucontext_i.h" +#include + + .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 + . */ + +#include +#include +#include + +#define __ASSEMBLY__ +#include +#include "ucontext_i.h" +#include + + .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 , 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 + . */ + +#include +#include +#ifndef __ASSEMBLER__ +# include +#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 + . */ + +/* Alan Modra rewrote the INLINE_SYSCALL macro */ + +#ifndef _LINUX_POWERPC_SYSDEP_H +#define _LINUX_POWERPC_SYSDEP_H 1 + +#include +#include +#include + +/* Define __set_errno() for INLINE_SYSCALL macro below. */ +#ifndef __ASSEMBLER__ +#include +#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 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 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 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 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 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 +#include +#include + +-- + +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 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 + . */ + +#include +#define _ERRNO_H 1 +#include +#include + +/* 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 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 , 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 + . */ + +#include +#include +#include +#include "pthreadP.h" +#include +#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 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 /* 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 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 + . */ + +/* The cond lock is not actually elided yet, but we still need to handle + already elided locks. */ +#include + +#include 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 + . */ + +#include +#include + +#include 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 + . */ + +#include +#include + +#include 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 + . */ + +#include +#include + +#include 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 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 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 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 + . */ + + +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 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 + . */ + +#include + +#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 + . */ + +#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 +#include +#include +#include +#include +#include + +__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 + . */ + +#ifndef _SYS_PTRACE_H +#define _SYS_PTRACE_H 1 + +#include +#include + +__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 + . */ + +#ifndef _SYS_UCONTEXT_H +#define _SYS_UCONTEXT_H 1 + +#include + +#include +#include +#include + + +#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 + . */ + +#ifndef _SYS_USER_H + +#define _SYS_USER_H 1 +#include +#include + +#include + +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 + . */ + +#include + +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 + . */ + +#include +#include + +/* 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 + . */ + +/* 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 +#include +#include + +#include + +/* 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 + . */ + +#ifdef SHARED +# ifndef __powerpc64__ +# define time __redirect_time +# else +# define __redirect_time time +# endif + +# include +# include +# include +# include +# include + +# 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 + +#endif /* !SHARED */ -- cgit 1.4.1