diff options
Diffstat (limited to 'REORG.TODO/sysdeps/unix/sysv/linux/powerpc')
196 files changed, 23747 insertions, 0 deletions
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/Implies b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/Implies new file mode 100644 index 0000000000..466b7f4b4a --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/Implies @@ -0,0 +1 @@ +powerpc/nptl diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/Makefile b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/Makefile new file mode 100644 index 0000000000..2cfb46eca3 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/Makefile @@ -0,0 +1,39 @@ +abi-variants := 32 64-v1 64-v2 +abi-32-options := -U__powerpc64__ +abi-32-condition := __WORDSIZE == 32 +abi-64-v1-options := -D__powerpc64__ -U_CALL_ELF -D_CALL_ELF=1 +abi-64-v1-condition := __WORDSIZE == 64 && _CALL_ELF != 2 +abi-64-v2-options := -D__powerpc64__ -U_CALL_ELF -D_CALL_ELF=2 +abi-64-v2-condition := __WORDSIZE == 64 && _CALL_ELF == 2 + +ifeq ($(subdir),rt) +librt-routines += rt-sysdep +librt-shared-only-routines += rt-sysdep +endif + +ifeq ($(subdir),stdlib) +gen-as-const-headers += ucontext_i.sym +endif + +ifeq ($(subdir),elf) +sysdep_routines += dl-vdso +ifeq ($(build-shared),yes) +# This is needed for DSO loading from static binaries. +sysdep-dl-routines += dl-static +endif +# Otherwise tst-tls-dlinfo fails due to tst-tlsmod2.so using static tls. +LDFLAGS-tst-tlsmod2.so += -Wl,--no-tls-get-addr-optimize +endif + +ifeq ($(subdir),misc) +sysdep_headers += bits/ppc.h +sysdep_routines += get_timebase_freq +tests += test-gettimebasefreq +endif + +ifeq ($(subdir),nptl) +libpthread-routines += sysdep +libpthread-sysdep_routines += elision-lock elision-unlock elision-timed \ + elision-trylock +libpthread-shared-only-routines += sysdep +endif diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/Versions b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/Versions new file mode 100644 index 0000000000..8ebeea15a1 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/Versions @@ -0,0 +1,19 @@ +ld { + GLIBC_PRIVATE { + # used for loading by static libraries + _dl_var_init; + } +} +libc { + GLIBC_PRIVATE { + __vdso_get_tbfreq; + __vdso_clock_gettime; + __vdso_clock_getres; + __vdso_getcpu; + __vdso_time; + } +} +libm { + GLIBC_2.19 { + } +} diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/arch-fork.h b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/arch-fork.h new file mode 100644 index 0000000000..5f945378ee --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/arch-fork.h @@ -0,0 +1 @@ +#include <sysdeps/unix/sysv/linux/i386/arch-fork.h> diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/bits/environments.h b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/bits/environments.h new file mode 100644 index 0000000000..475d5648d0 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/bits/environments.h @@ -0,0 +1,96 @@ +/* Copyright (C) 1999-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#ifndef _UNISTD_H +# error "Never include this file directly. Use <unistd.h> instead" +#endif + +#include <bits/wordsize.h> + +/* This header should define the following symbols under the described + situations. A value `1' means that the model is always supported, + `-1' means it is never supported. Undefined means it cannot be + statically decided. + + _POSIX_V7_ILP32_OFF32 32bit int, long, pointers, and off_t type + _POSIX_V7_ILP32_OFFBIG 32bit int, long, and pointers and larger off_t type + + _POSIX_V7_LP64_OFF32 64bit long and pointers and 32bit off_t type + _POSIX_V7_LPBIG_OFFBIG 64bit long and pointers and large off_t type + + The macros _POSIX_V6_ILP32_OFF32, _POSIX_V6_ILP32_OFFBIG, + _POSIX_V6_LP64_OFF32, _POSIX_V6_LPBIG_OFFBIG, _XBS5_ILP32_OFF32, + _XBS5_ILP32_OFFBIG, _XBS5_LP64_OFF32, and _XBS5_LPBIG_OFFBIG were + used in previous versions of the Unix standard and are available + only for compatibility. +*/ + +#if __WORDSIZE == 64 + +/* Environments with 32-bit wide pointers are optionally provided. + Therefore following macros aren't defined: + # undef _POSIX_V7_ILP32_OFF32 + # undef _POSIX_V7_ILP32_OFFBIG + # undef _POSIX_V6_ILP32_OFF32 + # undef _POSIX_V6_ILP32_OFFBIG + # undef _XBS5_ILP32_OFF32 + # undef _XBS5_ILP32_OFFBIG + and users need to check at runtime. */ + +/* We also have no use (for now) for an environment with bigger pointers + and offsets. */ +# define _POSIX_V7_LPBIG_OFFBIG -1 +# define _POSIX_V6_LPBIG_OFFBIG -1 +# define _XBS5_LPBIG_OFFBIG -1 + +/* By default we have 64-bit wide `long int', pointers and `off_t'. */ +# define _POSIX_V7_LP64_OFF64 1 +# define _POSIX_V6_LP64_OFF64 1 +# define _XBS5_LP64_OFF64 1 + +#else /* __WORDSIZE == 32 */ + +/* By default we have 32-bit wide `int', `long int', pointers and `off_t' + and all platforms support LFS. */ +# define _POSIX_V7_ILP32_OFF32 1 +# define _POSIX_V7_ILP32_OFFBIG 1 +# define _POSIX_V6_ILP32_OFF32 1 +# define _POSIX_V6_ILP32_OFFBIG 1 +# define _XBS5_ILP32_OFF32 1 +# define _XBS5_ILP32_OFFBIG 1 + +/* We optionally provide an environment with the above size but an 64-bit + side `off_t'. Therefore we don't define _POSIX_V7_ILP32_OFFBIG. */ + +/* Environments with 64-bit wide pointers can be provided, + so these macros aren't defined: + # undef _POSIX_V7_LP64_OFF64 + # undef _POSIX_V7_LPBIG_OFFBIG + # undef _POSIX_V6_LP64_OFF64 + # undef _POSIX_V6_LPBIG_OFFBIG + # undef _XBS5_LP64_OFF64 + # undef _XBS5_LPBIG_OFFBIG + and sysconf tests for it at runtime. */ + +#endif /* __WORDSIZE == 32 */ + +#define __ILP32_OFF32_CFLAGS "-m32" +#define __ILP32_OFFBIG_CFLAGS "-m32 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64" +#define __ILP32_OFF32_LDFLAGS "-m32" +#define __ILP32_OFFBIG_LDFLAGS "-m32" +#define __LP64_OFF64_CFLAGS "-m64" +#define __LP64_OFF64_LDFLAGS "-m64" diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/bits/fcntl.h b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/bits/fcntl.h new file mode 100644 index 0000000000..48bb5adc03 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/bits/fcntl.h @@ -0,0 +1,62 @@ +/* O_*, F_*, FD_* bit values for Linux/PowerPC. + Copyright (C) 1995-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#ifndef _FCNTL_H +# error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead." +#endif + +#include <bits/wordsize.h> + +#define __O_DIRECTORY 040000 /* Must be a directory. */ +#define __O_NOFOLLOW 0100000 /* Do not follow links. */ +#define __O_DIRECT 0400000 /* Direct disk access. */ + +#if __WORDSIZE == 64 +/* Not necessary, files are always with 64bit off_t. */ +# define __O_LARGEFILE 0 +#else +# define __O_LARGEFILE 0200000 +#endif + +struct flock + { + short int l_type; /* Type of lock: F_RDLCK, F_WRLCK, or F_UNLCK. */ + short int l_whence; /* Where `l_start' is relative to (like `lseek'). */ +#ifndef __USE_FILE_OFFSET64 + __off_t l_start; /* Offset where the lock begins. */ + __off_t l_len; /* Size of the locked area; zero means until EOF. */ +#else + __off64_t l_start; /* Offset where the lock begins. */ + __off64_t l_len; /* Size of the locked area; zero means until EOF. */ +#endif + __pid_t l_pid; /* Process holding the lock. */ + }; + +#ifdef __USE_LARGEFILE64 +struct flock64 + { + short int l_type; /* Type of lock: F_RDLCK, F_WRLCK, or F_UNLCK. */ + short int l_whence; /* Where `l_start' is relative to (like `lseek'). */ + __off64_t l_start; /* Offset where the lock begins. */ + __off64_t l_len; /* Size of the locked area; zero means until EOF. */ + __pid_t l_pid; /* Process holding the lock. */ + }; +#endif + +/* Include generic Linux declarations. */ +#include <bits/fcntl-linux.h> diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/bits/ioctl-types.h b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/bits/ioctl-types.h new file mode 100644 index 0000000000..b52e4c1403 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/bits/ioctl-types.h @@ -0,0 +1,77 @@ +/* Structure types for pre-termios terminal ioctls. Linux/powerpc version. + Copyright (C) 2014-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#ifndef _SYS_IOCTL_H +# error "Never use <bits/ioctl-types.h> directly; include <sys/ioctl.h> instead." +#endif + +/* Get definition of constants for use with `ioctl'. */ +#include <asm/ioctls.h> + + +struct winsize + { + unsigned short int ws_row; + unsigned short int ws_col; + unsigned short int ws_xpixel; + unsigned short int ws_ypixel; + }; + +#define NCC 10 +struct termio + { + unsigned short int c_iflag; /* input mode flags */ + unsigned short int c_oflag; /* output mode flags */ + unsigned short int c_cflag; /* control mode flags */ + unsigned short int c_lflag; /* local mode flags */ + unsigned char c_line; /* line discipline */ + unsigned char c_cc[NCC]; /* control characters */ +}; + +/* modem lines */ +#define TIOCM_LE 0x001 +#define TIOCM_DTR 0x002 +#define TIOCM_RTS 0x004 +#define TIOCM_ST 0x008 +#define TIOCM_SR 0x010 +#define TIOCM_CTS 0x020 +#define TIOCM_CAR 0x040 +#define TIOCM_RNG 0x080 +#define TIOCM_DSR 0x100 +#define TIOCM_CD TIOCM_CAR +#define TIOCM_RI TIOCM_RNG + +/* ioctl (fd, TIOCSERGETLSR, &result) where result may be as below */ + +/* line disciplines */ +#define N_TTY 0 +#define N_SLIP 1 +#define N_MOUSE 2 +#define N_PPP 3 +#define N_STRIP 4 +#define N_AX25 5 +#define N_X25 6 /* X.25 async */ +#define N_6PACK 7 +#define N_MASC 8 /* Mobitex module */ +#define N_R3964 9 /* Simatic R3964 module */ +#define N_PROFIBUS_FDL 10 /* Profibus */ +#define N_IRDA 11 /* Linux IR */ +#define N_SMSBLOCK 12 /* SMS block mode */ +#define N_HDLC 13 /* synchronous HDLC */ +#define N_SYNC_PPP 14 /* synchronous PPP */ +#define N_HCI 15 /* Bluetooth HCI UART */ diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/bits/ipc.h b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/bits/ipc.h new file mode 100644 index 0000000000..bd8196967d --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/bits/ipc.h @@ -0,0 +1,54 @@ +/* Copyright (C) 1995-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#ifndef _SYS_IPC_H +# error "Never use <bits/ipc.h> directly; include <sys/ipc.h> instead." +#endif + +#include <bits/types.h> + +/* Mode bits for `msgget', `semget', and `shmget'. */ +#define IPC_CREAT 01000 /* Create key if key does not exist. */ +#define IPC_EXCL 02000 /* Fail if key exists. */ +#define IPC_NOWAIT 04000 /* Return error on wait. */ + +/* Control commands for `msgctl', `semctl', and `shmctl'. */ +#define IPC_RMID 0 /* Remove identifier. */ +#define IPC_SET 1 /* Set `ipc_perm' options. */ +#define IPC_STAT 2 /* Get `ipc_perm' options. */ +#ifdef __USE_GNU +# define IPC_INFO 3 /* See ipcs. */ +#endif + +/* Special key values. */ +#define IPC_PRIVATE ((__key_t) 0) /* Private key. */ + + +/* Data structure used to pass permission information to IPC operations. */ +struct ipc_perm + { + __key_t __key; /* Key. */ + __uid_t uid; /* Owner's user ID. */ + __gid_t gid; /* Owner's group ID. */ + __uid_t cuid; /* Creator's user ID. */ + __gid_t cgid; /* Creator's group ID. */ + __mode_t mode; /* Read/write permission. */ + __uint32_t __seq; /* Sequence number. */ + __uint32_t __pad1; + __uint64_t __glibc_reserved1; + __uint64_t __glibc_reserved2; + }; diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/bits/local_lim.h b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/bits/local_lim.h new file mode 100644 index 0000000000..12b2b767ae --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/bits/local_lim.h @@ -0,0 +1,100 @@ +/* Minimum guaranteed maximum values for system limits. Linux/PPC version. + Copyright (C) 1993-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public License as + published by the Free Software Foundation; either version 2.1 of the + License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; see the file COPYING.LIB. If + not, see <http://www.gnu.org/licenses/>. */ + +/* The kernel header pollutes the namespace with the NR_OPEN symbol + and defines LINK_MAX although filesystems have different maxima. A + similar thing is true for OPEN_MAX: the limit can be changed at + runtime and therefore the macro must not be defined. Remove this + after including the header if necessary. */ +#ifndef NR_OPEN +# define __undef_NR_OPEN +#endif +#ifndef LINK_MAX +# define __undef_LINK_MAX +#endif +#ifndef OPEN_MAX +# define __undef_OPEN_MAX +#endif +#ifndef ARG_MAX +# define __undef_ARG_MAX +#endif + +/* The kernel sources contain a file with all the needed information. */ +#include <linux/limits.h> + +/* Have to remove NR_OPEN? */ +#ifdef __undef_NR_OPEN +# undef NR_OPEN +# undef __undef_NR_OPEN +#endif +/* Have to remove LINK_MAX? */ +#ifdef __undef_LINK_MAX +# undef LINK_MAX +# undef __undef_LINK_MAX +#endif +/* Have to remove OPEN_MAX? */ +#ifdef __undef_OPEN_MAX +# undef OPEN_MAX +# undef __undef_OPEN_MAX +#endif +/* Have to remove ARG_MAX? */ +#ifdef __undef_ARG_MAX +# undef ARG_MAX +# undef __undef_ARG_MAX +#endif + +/* The number of data keys per process. */ +#define _POSIX_THREAD_KEYS_MAX 128 +/* This is the value this implementation supports. */ +#define PTHREAD_KEYS_MAX 1024 + +/* Controlling the iterations of destructors for thread-specific data. */ +#define _POSIX_THREAD_DESTRUCTOR_ITERATIONS 4 +/* Number of iterations this implementation does. */ +#define PTHREAD_DESTRUCTOR_ITERATIONS _POSIX_THREAD_DESTRUCTOR_ITERATIONS + +/* The number of threads per process. */ +#define _POSIX_THREAD_THREADS_MAX 64 +/* We have no predefined limit on the number of threads. */ +#undef PTHREAD_THREADS_MAX + +/* Maximum amount by which a process can descrease its asynchronous I/O + priority level. */ +#define AIO_PRIO_DELTA_MAX 20 + +/* Minimum size for a thread. At least two pages for systems with 64k + pages. */ +#define PTHREAD_STACK_MIN 131072 + +/* Maximum number of timer expiration overruns. */ +#define DELAYTIMER_MAX 2147483647 + +/* Maximum tty name length. */ +#define TTY_NAME_MAX 32 + +/* Maximum login name length. This is arbitrary. */ +#define LOGIN_NAME_MAX 256 + +/* Maximum host name length. */ +#define HOST_NAME_MAX 64 + +/* Maximum message queue priority level. */ +#define MQ_PRIO_MAX 32768 + +/* Maximum value the semaphore can have. */ +#define SEM_VALUE_MAX (2147483647) diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/bits/mman.h b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/bits/mman.h new file mode 100644 index 0000000000..53bc198d7b --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/bits/mman.h @@ -0,0 +1,49 @@ +/* Definitions for POSIX memory map interface. Linux/PowerPC version. + Copyright (C) 1997-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#ifndef _SYS_MMAN_H +# error "Never use <bits/mman.h> directly; include <sys/mman.h> instead." +#endif + +/* The following definitions basically come from the kernel headers. + But the kernel header is not namespace clean. */ + +#define PROT_SAO 0x10 /* Strong Access Ordering. */ + +/* These are Linux-specific. */ +#ifdef __USE_MISC +# define MAP_GROWSDOWN 0x00100 /* Stack-like segment. */ +# define MAP_DENYWRITE 0x00800 /* ETXTBSY */ +# define MAP_EXECUTABLE 0x01000 /* Mark it as an executable. */ +# define MAP_LOCKED 0x00080 /* Lock the mapping. */ +# define MAP_NORESERVE 0x00040 /* Don't check for reservations. */ +# define MAP_POPULATE 0x08000 /* Populate (prefault) pagetables. */ +# define MAP_NONBLOCK 0x10000 /* Do not block on IO. */ +# define MAP_STACK 0x20000 /* Allocation is for a stack. */ +# define MAP_HUGETLB 0x40000 /* Create huge page mapping. */ +#endif + +/* Flags for `mlockall'. */ +#define MCL_CURRENT 0x2000 /* Lock all currently mapped pages. */ +#define MCL_FUTURE 0x4000 /* Lock all additions to address + space. */ +#define MCL_ONFAULT 0x8000 /* Lock all pages that are + faulted in. */ + +/* Include generic Linux declarations. */ +#include <bits/mman-linux.h> diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/bits/msq.h b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/bits/msq.h new file mode 100644 index 0000000000..f056c99547 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/bits/msq.h @@ -0,0 +1,83 @@ +/* Copyright (C) 1995-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#ifndef _SYS_MSG_H +# error "Never use <bits/msq.h> directly; include <sys/msg.h> instead." +#endif + +#include <bits/types.h> + +/* Define options for message queue functions. */ +#define MSG_NOERROR 010000 /* no error if message is too big */ +#ifdef __USE_GNU +# define MSG_EXCEPT 020000 /* recv any msg except of specified type */ +# define MSG_COPY 040000 /* copy (not remove) all queue messages */ +#endif + +/* Types used in the structure definition. */ +typedef unsigned long int msgqnum_t; +typedef unsigned long int msglen_t; + + +/* Structure of record for one message inside the kernel. + The type `struct msg' is opaque. */ +struct msqid_ds +{ + struct ipc_perm msg_perm; /* structure describing operation permission */ +#if __WORDSIZE == 32 + unsigned int __glibc_reserved1; +#endif + __time_t msg_stime; /* time of last msgsnd command */ +#if __WORDSIZE == 32 + unsigned int __glibc_reserved2; +#endif + __time_t msg_rtime; /* time of last msgrcv command */ +#if __WORDSIZE == 32 + unsigned int __glibc_reserved3; +#endif + __time_t msg_ctime; /* time of last change */ + unsigned long __msg_cbytes; /* current number of bytes on queue */ + msgqnum_t msg_qnum; /* number of messages currently on queue */ + msglen_t msg_qbytes; /* max number of bytes allowed on queue */ + __pid_t msg_lspid; /* pid of last msgsnd() */ + __pid_t msg_lrpid; /* pid of last msgrcv() */ + unsigned long __glibc_reserved4; + unsigned long __glibc_reserved5; +}; + +#ifdef __USE_MISC + +# define msg_cbytes __msg_cbytes + +/* ipcs ctl commands */ +# define MSG_STAT 11 +# define MSG_INFO 12 + +/* buffer for msgctl calls IPC_INFO, MSG_INFO */ +struct msginfo + { + int msgpool; + int msgmap; + int msgmax; + int msgmnb; + int msgmni; + int msgssz; + int msgtql; + unsigned short int msgseg; + }; + +#endif /* __USE_MISC */ diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/bits/ppc.h b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/bits/ppc.h new file mode 100644 index 0000000000..1d0a39737b --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/bits/ppc.h @@ -0,0 +1,33 @@ +/* Facilities specific to the PowerPC architecture on Linux + Copyright (C) 2012-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#ifndef _BITS_PPC_H +#define _BITS_PPC_H + +#ifndef _SYS_PLATFORM_PPC_H +# error "Never include this file directly; use <sys/platform/ppc.h> instead." +#endif + +__BEGIN_DECLS + +/* Read the time base frequency. */ +extern uint64_t __ppc_get_timebase_freq (void); + +__END_DECLS + +#endif diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/bits/sem.h b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/bits/sem.h new file mode 100644 index 0000000000..b5ba64c95c --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/bits/sem.h @@ -0,0 +1,90 @@ +/* Copyright (C) 1995-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#ifndef _SYS_SEM_H +# error "Never include <bits/sem.h> directly; use <sys/sem.h> instead." +#endif + +#include <sys/types.h> + +/* Flags for `semop'. */ +#define SEM_UNDO 0x1000 /* undo the operation on exit */ + +/* Commands for `semctl'. */ +#define GETPID 11 /* get sempid */ +#define GETVAL 12 /* get semval */ +#define GETALL 13 /* get all semval's */ +#define GETNCNT 14 /* get semncnt */ +#define GETZCNT 15 /* get semzcnt */ +#define SETVAL 16 /* set semval */ +#define SETALL 17 /* set all semval's */ + + +/* Data structure describing a set of semaphores. */ +struct semid_ds +{ + struct ipc_perm sem_perm; /* operation permission struct */ +#if __WORDSIZE == 32 + unsigned int __glibc_reserved1; +#endif + __time_t sem_otime; /* last semop() time */ +#if __WORDSIZE == 32 + unsigned int __glibc_reserved2; +#endif + __time_t sem_ctime; /* last time changed by semctl() */ + unsigned long int sem_nsems; /* number of semaphores in set */ + unsigned long __glibc_reserved3; + unsigned long __glibc_reserved4; +}; + +/* The user should define a union like the following to use it for arguments + for `semctl'. + + union semun + { + int val; <= value for SETVAL + struct semid_ds *buf; <= buffer for IPC_STAT & IPC_SET + unsigned short int *array; <= array for GETALL & SETALL + struct seminfo *__buf; <= buffer for IPC_INFO + }; + + Previous versions of this file used to define this union but this is + incorrect. One can test the macro _SEM_SEMUN_UNDEFINED to see whether + one must define the union or not. */ +#define _SEM_SEMUN_UNDEFINED 1 + +#ifdef __USE_MISC + +/* ipcs ctl cmds */ +# define SEM_STAT 18 +# define SEM_INFO 19 + +struct seminfo +{ + int semmap; + int semmni; + int semmns; + int semmnu; + int semmsl; + int semopm; + int semume; + int semusz; + int semvmx; + int semaem; +}; + +#endif /* __USE_MISC */ diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/bits/semaphore.h b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/bits/semaphore.h new file mode 100644 index 0000000000..05e68d4342 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/bits/semaphore.h @@ -0,0 +1,40 @@ +/* Machine-specific POSIX semaphore type layouts. PowerPC version. + Copyright (C) 2003-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Paul Mackerras <paulus@au.ibm.com>, 2003. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#ifndef _SEMAPHORE_H +# error "Never use <bits/semaphore.h> directly; include <semaphore.h> instead." +#endif + +#include <bits/wordsize.h> + +#if __WORDSIZE == 64 +# define __SIZEOF_SEM_T 32 +#else +# define __SIZEOF_SEM_T 16 +#endif + +/* Value returned if `sem_open' failed. */ +#define SEM_FAILED ((sem_t *) 0) + + +typedef union +{ + char __size[__SIZEOF_SEM_T]; + long int __align; +} sem_t; diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/bits/shm.h b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/bits/shm.h new file mode 100644 index 0000000000..3812e73944 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/bits/shm.h @@ -0,0 +1,112 @@ +/* Copyright (C) 1995-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#ifndef _SYS_SHM_H +# error "Never include <bits/shm.h> directly; use <sys/shm.h> instead." +#endif + +#include <bits/types.h> + +/* Permission flag for shmget. */ +#define SHM_R 0400 /* or S_IRUGO from <linux/stat.h> */ +#define SHM_W 0200 /* or S_IWUGO from <linux/stat.h> */ + +/* Flags for `shmat'. */ +#define SHM_RDONLY 010000 /* attach read-only else read-write */ +#define SHM_RND 020000 /* round attach address to SHMLBA */ +#define SHM_REMAP 040000 /* take-over region on attach */ +#define SHM_EXEC 0100000 /* execution access */ + +/* Commands for `shmctl'. */ +#define SHM_LOCK 11 /* lock segment (root only) */ +#define SHM_UNLOCK 12 /* unlock segment (root only) */ + +__BEGIN_DECLS + +/* Segment low boundary address multiple. */ +#define SHMLBA (__getpagesize ()) +extern int __getpagesize (void) __THROW __attribute__ ((__const__)); + + +/* Type to count number of attaches. */ +typedef unsigned long int shmatt_t; + +/* Data structure describing a shared memory segment. */ +struct shmid_ds + { + struct ipc_perm shm_perm; /* operation permission struct */ +#if __WORDSIZE == 32 + unsigned int __glibc_reserved1; +#endif + __time_t shm_atime; /* time of last shmat() */ +#if __WORDSIZE == 32 + unsigned int __glibc_reserved2; +#endif + __time_t shm_dtime; /* time of last shmdt() */ +#if __WORDSIZE == 32 + unsigned int __glibc_reserved3; +#endif + __time_t shm_ctime; /* time of last change by shmctl() */ +#if __WORDSIZE == 32 + unsigned int __glibc_reserved4; +#endif + size_t shm_segsz; /* size of segment in bytes */ + __pid_t shm_cpid; /* pid of creator */ + __pid_t shm_lpid; /* pid of last shmop */ + shmatt_t shm_nattch; /* number of current attaches */ + unsigned long __glibc_reserved5; + unsigned long __glibc_reserved6; + }; + +#ifdef __USE_MISC + +/* ipcs ctl commands */ +# define SHM_STAT 13 +# define SHM_INFO 14 + +/* shm_mode upper byte flags */ +# define SHM_DEST 01000 /* segment will be destroyed on last detach */ +# define SHM_LOCKED 02000 /* segment will not be swapped */ +# define SHM_HUGETLB 04000 /* segment is mapped via hugetlb */ +# define SHM_NORESERVE 010000 /* don't check for reservations */ + +struct shminfo + { + unsigned long int shmmax; + unsigned long int shmmin; + unsigned long int shmmni; + unsigned long int shmseg; + unsigned long int shmall; + unsigned long int __glibc_reserved1; + unsigned long int __glibc_reserved2; + unsigned long int __glibc_reserved3; + unsigned long int __glibc_reserved4; + }; + +struct shm_info + { + int used_ids; + unsigned long int shm_tot; /* total allocated shm */ + unsigned long int shm_rss; /* total resident shm */ + unsigned long int shm_swp; /* total swapped shm */ + unsigned long int swap_attempts; + unsigned long int swap_successes; + }; + +#endif /* __USE_MISC */ + +__END_DECLS diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/bits/sigstack.h b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/bits/sigstack.h new file mode 100644 index 0000000000..74670cb037 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/bits/sigstack.h @@ -0,0 +1,32 @@ +/* sigstack, sigaltstack definitions. + Copyright (C) 1998-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#ifndef _BITS_SIGSTACK_H +#define _BITS_SIGSTACK_H 1 + +#if !defined _SIGNAL_H && !defined _SYS_UCONTEXT_H +# error "Never include this file directly. Use <signal.h> instead" +#endif + +/* Minimum stack size for a signal handler. */ +#define MINSIGSTKSZ 4096 + +/* System default stack size. */ +#define SIGSTKSZ 16384 + +#endif /* bits/sigstack.h */ diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/bits/stat.h b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/bits/stat.h new file mode 100644 index 0000000000..e95a52822e --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/bits/stat.h @@ -0,0 +1,275 @@ +/* Copyright (C) 1992-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#if !defined _SYS_STAT_H && !defined _FCNTL_H +# error "Never include <bits/stat.h> directly; use <sys/stat.h> instead." +#endif + +#ifndef _BITS_STAT_H +#define _BITS_STAT_H 1 + +#include <bits/wordsize.h> + +/* Versions of the `struct stat' data structure. */ +#define _STAT_VER_LINUX_OLD 1 +#define _STAT_VER_KERNEL 1 +#define _STAT_VER_SVR4 2 +#define _STAT_VER_LINUX 3 +#if __WORDSIZE == 32 +# define _STAT_VER _STAT_VER_LINUX +#else +# define _STAT_VER _STAT_VER_KERNEL +#endif + +/* Versions of the `xmknod' interface. */ +#define _MKNOD_VER_LINUX 1 +#define _MKNOD_VER_SVR4 2 +#define _MKNOD_VER _MKNOD_VER_LINUX /* The bits defined below. */ + + +#if __WORDSIZE == 32 + +struct stat + { + __dev_t st_dev; /* Device. */ +# ifndef __USE_FILE_OFFSET64 + unsigned short int __pad1; + __ino_t st_ino; /* File serial number. */ +# else + __ino64_t st_ino; /* File serial number. */ +# endif + __mode_t st_mode; /* File mode. */ + __nlink_t st_nlink; /* Link count. */ + __uid_t st_uid; /* User ID of the file's owner. */ + __gid_t st_gid; /* Group ID of the file's group.*/ + __dev_t st_rdev; /* Device number, if device. */ + unsigned short int __pad2; +# ifndef __USE_FILE_OFFSET64 + __off_t st_size; /* Size of file, in bytes. */ +# else + __off64_t st_size; /* Size of file, in bytes. */ +# endif + __blksize_t st_blksize; /* Optimal block size for I/O. */ + +# ifndef __USE_FILE_OFFSET64 + __blkcnt_t st_blocks; /* Number 512-byte blocks allocated. */ +# else + __blkcnt64_t st_blocks; /* Number 512-byte blocks allocated. */ +# endif +# ifdef __USE_XOPEN2K8 + /* Nanosecond resolution timestamps are stored in a format + equivalent to 'struct timespec'. This is the type used + whenever possible but the Unix namespace rules do not allow the + identifier 'timespec' to appear in the <sys/stat.h> header. + Therefore we have to handle the use of this header in strictly + standard-compliant sources special. */ + struct timespec st_atim; /* Time of last access. */ + struct timespec st_mtim; /* Time of last modification. */ + struct timespec st_ctim; /* Time of last status change. */ +# define st_atime st_atim.tv_sec /* Backward compatibility. */ +# define st_mtime st_mtim.tv_sec +# define st_ctime st_ctim.tv_sec +# else + __time_t st_atime; /* Time of last access. */ + unsigned long int st_atimensec; /* Nscecs of last access. */ + __time_t st_mtime; /* Time of last modification. */ + unsigned long int st_mtimensec; /* Nsecs of last modification. */ + __time_t st_ctime; /* Time of last status change. */ + unsigned long int st_ctimensec; /* Nsecs of last status change. */ +# endif + unsigned long int __glibc_reserved4; + unsigned long int __glibc_reserved5; + }; + + +# ifdef __USE_LARGEFILE64 +struct stat64 + { + __dev_t st_dev; /* Device. */ + __ino64_t st_ino; /* File serial number. */ + __mode_t st_mode; /* File mode. */ + __nlink_t st_nlink; /* Link count. */ + __uid_t st_uid; /* User ID of the file's owner. */ + __gid_t st_gid; /* Group ID of the file's group.*/ + __dev_t st_rdev; /* Device number, if device. */ + unsigned short int __pad2; + __off64_t st_size; /* Size of file, in bytes. */ + __blksize_t st_blksize; /* Optimal block size for I/O. */ + __blkcnt64_t st_blocks; /* Number 512-byte blocks allocated. */ +# ifdef __USE_XOPEN2K8 + /* Nanosecond resolution timestamps are stored in a format + equivalent to 'struct timespec'. This is the type used + whenever possible but the Unix namespace rules do not allow the + identifier 'timespec' to appear in the <sys/stat.h> header. + Therefore we have to handle the use of this header in strictly + standard-compliant sources special. */ + struct timespec st_atim; /* Time of last access. */ + struct timespec st_mtim; /* Time of last modification. */ + struct timespec st_ctim; /* Time of last status change. */ +# define st_atime st_atim.tv_sec /* Backward compatibility. */ +# define st_mtime st_mtim.tv_sec +# define st_ctime st_ctim.tv_sec +# else + __time_t st_atime; /* Time of last access. */ + unsigned long int st_atimensec; /* Nscecs of last access. */ + __time_t st_mtime; /* Time of last modification. */ + unsigned long int st_mtimensec; /* Nsecs of last modification. */ + __time_t st_ctime; /* Time of last status change. */ + unsigned long int st_ctimensec; /* Nsecs of last status change. */ +# endif + unsigned long int __glibc_reserved4; + unsigned long int __glibc_reserved5; + }; +# endif /* __USE_LARGEFILE64 */ + +#else /* __WORDSIZE == 32 */ + +struct stat + { + __dev_t st_dev; /* Device. */ +# ifndef __USE_FILE_OFFSET64 + __ino_t st_ino; /* File serial number. */ +# else + __ino64_t st_ino; /* File serial number. */ +# endif + __nlink_t st_nlink; /* Link count. */ + __mode_t st_mode; /* File mode. */ + __uid_t st_uid; /* User ID of the file's owner. */ + __gid_t st_gid; /* Group ID of the file's group.*/ + int __pad2; + __dev_t st_rdev; /* Device number, if device. */ +# ifndef __USE_FILE_OFFSET64 + __off_t st_size; /* Size of file, in bytes. */ +# else + __off64_t st_size; /* Size of file, in bytes. */ +# endif + __blksize_t st_blksize; /* Optimal block size for I/O. */ + +# ifndef __USE_FILE_OFFSET64 + __blkcnt_t st_blocks; /* Number 512-byte blocks allocated. */ +# else + __blkcnt64_t st_blocks; /* Number 512-byte blocks allocated. */ +# endif +# ifdef __USE_XOPEN2K8 + /* Nanosecond resolution timestamps are stored in a format + equivalent to 'struct timespec'. This is the type used + whenever possible but the Unix namespace rules do not allow the + identifier 'timespec' to appear in the <sys/stat.h> header. + Therefore we have to handle the use of this header in strictly + standard-compliant sources special. */ + struct timespec st_atim; /* Time of last access. */ + struct timespec st_mtim; /* Time of last modification. */ + struct timespec st_ctim; /* Time of last status change. */ +# define st_atime st_atim.tv_sec /* Backward compatibility. */ +# define st_mtime st_mtim.tv_sec +# define st_ctime st_ctim.tv_sec +# else + __time_t st_atime; /* Time of last access. */ + unsigned long int st_atimensec; /* Nscecs of last access. */ + __time_t st_mtime; /* Time of last modification. */ + unsigned long int st_mtimensec; /* Nsecs of last modification. */ + __time_t st_ctime; /* Time of last status change. */ + unsigned long int st_ctimensec; /* Nsecs of last status change. */ +# endif + unsigned long int __glibc_reserved4; + unsigned long int __glibc_reserved5; + unsigned long int __glibc_reserved6; + }; + +# ifdef __USE_LARGEFILE64 +struct stat64 + { + __dev_t st_dev; /* Device. */ + __ino64_t st_ino; /* File serial number. */ + __nlink_t st_nlink; /* Link count. */ + __mode_t st_mode; /* File mode. */ + __uid_t st_uid; /* User ID of the file's owner. */ + __gid_t st_gid; /* Group ID of the file's group.*/ + int __pad2; + __dev_t st_rdev; /* Device number, if device. */ + __off64_t st_size; /* Size of file, in bytes. */ + __blksize_t st_blksize; /* Optimal block size for I/O. */ + __blkcnt64_t st_blocks; /* Number 512-byte blocks allocated. */ +# ifdef __USE_XOPEN2K8 + /* Nanosecond resolution timestamps are stored in a format + equivalent to 'struct timespec'. This is the type used + whenever possible but the Unix namespace rules do not allow the + identifier 'timespec' to appear in the <sys/stat.h> header. + Therefore we have to handle the use of this header in strictly + standard-compliant sources special. */ + struct timespec st_atim; /* Time of last access. */ + struct timespec st_mtim; /* Time of last modification. */ + struct timespec st_ctim; /* Time of last status change. */ +# define st_atime st_atim.tv_sec /* Backward compatibility. */ +# define st_mtime st_mtim.tv_sec +# define st_ctime st_ctim.tv_sec +# else + __time_t st_atime; /* Time of last access. */ + unsigned long int st_atimensec; /* Nscecs of last access. */ + __time_t st_mtime; /* Time of last modification. */ + unsigned long int st_mtimensec; /* Nsecs of last modification. */ + __time_t st_ctime; /* Time of last status change. */ + unsigned long int st_ctimensec; /* Nsecs of last status change. */ +# endif + unsigned long int __glibc_reserved4; + unsigned long int __glibc_reserved5; + unsigned long int __glibc_reserved6; + }; +# endif /* __USE_LARGEFILE64 */ +#endif + + +/* Tell code we have these members. */ +#define _STATBUF_ST_BLKSIZE +#define _STATBUF_ST_RDEV +/* Nanosecond resolution time values are supported. */ +#define _STATBUF_ST_NSEC + +/* Encoding of the file mode. */ + +#define __S_IFMT 0170000 /* These bits determine file type. */ + +/* File types. */ +#define __S_IFDIR 0040000 /* Directory. */ +#define __S_IFCHR 0020000 /* Character device. */ +#define __S_IFBLK 0060000 /* Block device. */ +#define __S_IFREG 0100000 /* Regular file. */ +#define __S_IFIFO 0010000 /* FIFO. */ +#define __S_IFLNK 0120000 /* Symbolic link. */ +#define __S_IFSOCK 0140000 /* Socket. */ + +/* POSIX.1b objects. Note that these macros always evaluate to zero. But + they do it by enforcing the correct use of the macros. */ +#define __S_TYPEISMQ(buf) ((buf)->st_mode - (buf)->st_mode) +#define __S_TYPEISSEM(buf) ((buf)->st_mode - (buf)->st_mode) +#define __S_TYPEISSHM(buf) ((buf)->st_mode - (buf)->st_mode) + +/* Protection bits. */ + +#define __S_ISUID 04000 /* Set user ID on execution. */ +#define __S_ISGID 02000 /* Set group ID on execution. */ +#define __S_ISVTX 01000 /* Save swapped text after use (sticky). */ +#define __S_IREAD 0400 /* Read by owner. */ +#define __S_IWRITE 0200 /* Write by owner. */ +#define __S_IEXEC 0100 /* Execute by owner. */ + +#ifdef __USE_ATFILE +# define UTIME_NOW ((1l << 30) - 1l) +# define UTIME_OMIT ((1l << 30) - 2l) +#endif + +#endif /* bits/stat.h */ diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/bits/termios.h b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/bits/termios.h new file mode 100644 index 0000000000..4811486c64 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/bits/termios.h @@ -0,0 +1,279 @@ +/* Copyright (C) 1997-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#ifndef _TERMIOS_H +# error "Never include <bits/termios.h> directly; use <termios.h> instead." +#endif + +typedef unsigned char cc_t; +typedef unsigned int speed_t; +typedef unsigned int tcflag_t; + +/* + * termios type and macro definitions. Be careful about adding stuff + * to this file since it's used in GNU libc and there are strict rules + * concerning namespace pollution. + */ + +#define NCCS 32 +struct termios { + tcflag_t c_iflag; /* input mode flags */ + tcflag_t c_oflag; /* output mode flags */ + tcflag_t c_cflag; /* control mode flags */ + tcflag_t c_lflag; /* local mode flags */ + cc_t c_line; /* line discipline (== c_cc[19]) */ + cc_t c_cc[NCCS]; /* control characters */ + speed_t c_ispeed; /* input speed */ + speed_t c_ospeed; /* output speed */ +#define _HAVE_STRUCT_TERMIOS_C_ISPEED 1 +#define _HAVE_STRUCT_TERMIOS_C_OSPEED 1 +}; + +/* c_cc characters */ +#define VINTR 0 +#define VQUIT 1 +#define VERASE 2 +#define VKILL 3 +#define VEOF 4 +#define VMIN 5 +#define VEOL 6 +#define VTIME 7 +#define VEOL2 8 +#define VSWTC 9 + +#define VWERASE 10 +#define VREPRINT 11 +#define VSUSP 12 +#define VSTART 13 +#define VSTOP 14 +#define VLNEXT 15 +#define VDISCARD 16 + +/* c_iflag bits */ +#define IGNBRK 0000001 +#define BRKINT 0000002 +#define IGNPAR 0000004 +#define PARMRK 0000010 +#define INPCK 0000020 +#define ISTRIP 0000040 +#define INLCR 0000100 +#define IGNCR 0000200 +#define ICRNL 0000400 +#define IXON 0001000 +#define IXOFF 0002000 +#define IXANY 0004000 +#define IUCLC 0010000 +#define IMAXBEL 0020000 +#define IUTF8 0040000 + +/* c_oflag bits */ +#define OPOST 0000001 +#define ONLCR 0000002 +#define OLCUC 0000004 + +#define OCRNL 0000010 +#define ONOCR 0000020 +#define ONLRET 0000040 + +#define OFILL 00000100 +#define OFDEL 00000200 +#if defined __USE_MISC || defined __USE_XOPEN +# define NLDLY 00001400 +# define NL0 00000000 +# define NL1 00000400 +# if defined __USE_MISC +# define NL2 00001000 +# define NL3 00001400 +# endif +# define TABDLY 00006000 +# define TAB0 00000000 +# define TAB1 00002000 +# define TAB2 00004000 +# define TAB3 00006000 +# define CRDLY 00030000 +# define CR0 00000000 +# define CR1 00010000 +# define CR2 00020000 +# define CR3 00030000 +# define FFDLY 00040000 +# define FF0 00000000 +# define FF1 00040000 +# define BSDLY 00100000 +# define BS0 00000000 +# define BS1 00100000 +#endif +#define VTDLY 00200000 +#define VT0 00000000 +#define VT1 00200000 + +#ifdef __USE_MISC +# define XTABS 00006000 +#endif + +/* c_cflag bit meaning */ +#ifdef __USE_MISC +# define CBAUD 0000377 +#endif +#define B0 0000000 /* hang up */ +#define B50 0000001 +#define B75 0000002 +#define B110 0000003 +#define B134 0000004 +#define B150 0000005 +#define B200 0000006 +#define B300 0000007 +#define B600 0000010 +#define B1200 0000011 +#define B1800 0000012 +#define B2400 0000013 +#define B4800 0000014 +#define B9600 0000015 +#define B19200 0000016 +#define B38400 0000017 +#ifdef __USE_MISC +# define EXTA B19200 +# define EXTB B38400 +# define CBAUDEX 0000020 +#endif +#define B57600 00020 +#define B115200 00021 +#define B230400 00022 +#define B460800 00023 +#define B500000 00024 +#define B576000 00025 +#define B921600 00026 +#define B1000000 00027 +#define B1152000 00030 +#define B1500000 00031 +#define B2000000 00032 +#define B2500000 00033 +#define B3000000 00034 +#define B3500000 00035 +#define B4000000 00036 +#define __MAX_BAUD B4000000 + +#define CSIZE 00001400 +#define CS5 00000000 +#define CS6 00000400 +#define CS7 00001000 +#define CS8 00001400 + +#define CSTOPB 00002000 +#define CREAD 00004000 +#define PARENB 00010000 +#define PARODD 00020000 +#define HUPCL 00040000 + +#define CLOCAL 00100000 +#ifdef __USE_MISC +# define CMSPAR 010000000000 /* mark or space (stick) parity */ +# define CRTSCTS 020000000000 /* flow control */ +#endif + +/* c_lflag bits */ +#define ISIG 0x00000080 +#define ICANON 0x00000100 +#if defined __USE_MISC || (defined __USE_XOPEN && !defined __USE_XOPEN2K) +# define XCASE 0x00004000 +#endif +#define ECHO 0x00000008 +#define ECHOE 0x00000002 +#define ECHOK 0x00000004 +#define ECHONL 0x00000010 +#define NOFLSH 0x80000000 +#define TOSTOP 0x00400000 +#ifdef __USE_MISC +# define ECHOCTL 0x00000040 +# define ECHOPRT 0x00000020 +# define ECHOKE 0x00000001 +# define FLUSHO 0x00800000 +# define PENDIN 0x20000000 +#endif +#define IEXTEN 0x00000400 +#ifdef __USE_MISC +# define EXTPROC 0x10000000 +#endif + +/* Values for the ACTION argument to `tcflow'. */ +#define TCOOFF 0 +#define TCOON 1 +#define TCIOFF 2 +#define TCION 3 + +/* Values for the QUEUE_SELECTOR argument to `tcflush'. */ +#define TCIFLUSH 0 +#define TCOFLUSH 1 +#define TCIOFLUSH 2 + +/* Values for the OPTIONAL_ACTIONS argument to `tcsetattr'. */ +#define TCSANOW 0 +#define TCSADRAIN 1 +#define TCSAFLUSH 2 + +#ifdef __USE_MISC + +struct sgttyb { + char sg_ispeed; + char sg_ospeed; + char sg_erase; + char sg_kill; + short sg_flags; +}; + +struct tchars { + char t_intrc; + char t_quitc; + char t_startc; + char t_stopc; + char t_eofc; + char t_brkc; +}; + +struct ltchars { + char t_suspc; + char t_dsuspc; + char t_rprntc; + char t_flushc; + char t_werasc; + char t_lnextc; +}; + +/* Used for packet mode */ +#define TIOCPKT_DATA 0 +#define TIOCPKT_FLUSHREAD 1 +#define TIOCPKT_FLUSHWRITE 2 +#define TIOCPKT_STOP 4 +#define TIOCPKT_START 8 +#define TIOCPKT_NOSTOP 16 +#define TIOCPKT_DOSTOP 32 + +/* c_cc characters */ +#define _VINTR 0 +#define _VQUIT 1 +#define _VERASE 2 +#define _VKILL 3 +#define _VEOF 4 +#define _VMIN 5 +#define _VEOL 6 +#define _VTIME 7 +#define _VEOL2 8 +#define _VSWTC 9 + +/* ioctl (fd, TIOCSERGETLSR, &result) where result may be as below */ +#define TIOCSER_TEMT 0x01 /* Transmitter physically empty */ + +#endif /* __USE_MISC */ diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/bits/wordsize.h b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/bits/wordsize.h new file mode 100644 index 0000000000..04ca9debf0 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/bits/wordsize.h @@ -0,0 +1,11 @@ +/* Determine the wordsize from the preprocessor defines. */ + +#if defined __powerpc64__ +# define __WORDSIZE 64 +# define __WORDSIZE_TIME64_COMPAT32 1 +#else +# define __WORDSIZE 32 +# define __WORDSIZE_TIME64_COMPAT32 0 +# define __WORDSIZE32_SIZE_ULONG 0 +# define __WORDSIZE32_PTRDIFF_LONG 0 +#endif diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/configure b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/configure new file mode 100644 index 0000000000..6f883de396 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/configure @@ -0,0 +1,79 @@ +# This file is generated from configure.ac by Autoconf. DO NOT EDIT! + # Local configure fragment for sysdeps/unix/sysv/linux/powerpc/. + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC $CFLAGS -mlong-double-128 uses IBM extended format" >&5 +$as_echo_n "checking whether $CC $CFLAGS -mlong-double-128 uses IBM extended format... " >&6; } +if ${libc_cv_mlong_double_128ibm+:} false; then : + $as_echo_n "(cached) " >&6 +else + save_CFLAGS="$CFLAGS" +CFLAGS="$CFLAGS -mlong-double-128" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <float.h> +int +main () +{ + +#if LDBL_MANT_DIG != 106 +# error "compiler doesn't implement IBM extended format of long double" +#endif +long double foobar (long double x) { return x; } + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + libc_cv_mlong_double_128ibm=yes +else + libc_cv_mlong_double_128ibm=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +CFLAGS="$save_CFLAGS" +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_mlong_double_128ibm" >&5 +$as_echo "$libc_cv_mlong_double_128ibm" >&6; } + +if test "$libc_cv_mlong_double_128ibm" = no; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC $CFLAGS supports -mabi=ibmlongdouble" >&5 +$as_echo_n "checking whether $CC $CFLAGS supports -mabi=ibmlongdouble... " >&6; } +if ${libc_cv_mabi_ibmlongdouble+:} false; then : + $as_echo_n "(cached) " >&6 +else + save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -mlong-double-128 -mabi=ibmlongdouble" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <float.h> +int +main () +{ + +#if LDBL_MANT_DIG != 106 +# error "compiler doesn't implement IBM extended format of long double" +#endif +long double foobar (long double x) { return x; } + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + libc_cv_mabi_ibmlongdouble=yes +else + libc_cv_mabi_ibmlongdouble=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CFLAGS="$save_CFLAGS" +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_mabi_ibmlongdouble" >&5 +$as_echo "$libc_cv_mabi_ibmlongdouble" >&6; } + + if test "$libc_cv_mabi_ibmlongdouble" = yes; then + CFLAGS="$CFLAGS -mabi=ibmlongdouble" + else + as_fn_error $? "this configuration requires -mlong-double-128 IBM extended format support" "$LINENO" 5 + fi +fi + +ldd_rewrite_script=sysdeps/unix/sysv/linux/powerpc/ldd-rewrite.sed diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/configure.ac b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/configure.ac new file mode 100644 index 0000000000..b8e5f9ac32 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/configure.ac @@ -0,0 +1,39 @@ +sinclude(./aclocal.m4)dnl Autoconf lossage +GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory. +# Local configure fragment for sysdeps/unix/sysv/linux/powerpc/. + +AC_CACHE_CHECK(whether $CC $CFLAGS -mlong-double-128 uses IBM extended format, + libc_cv_mlong_double_128ibm, [dnl +save_CFLAGS="$CFLAGS" +CFLAGS="$CFLAGS -mlong-double-128" +AC_TRY_COMPILE([#include <float.h>], [ +#if LDBL_MANT_DIG != 106 +# error "compiler doesn't implement IBM extended format of long double" +#endif +long double foobar (long double x) { return x; }], + libc_cv_mlong_double_128ibm=yes, + libc_cv_mlong_double_128ibm=no) +CFLAGS="$save_CFLAGS"]) + +if test "$libc_cv_mlong_double_128ibm" = no; then + AC_CACHE_CHECK(whether $CC $CFLAGS supports -mabi=ibmlongdouble, + libc_cv_mabi_ibmlongdouble, [dnl + save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -mlong-double-128 -mabi=ibmlongdouble" + AC_TRY_COMPILE([#include <float.h>], [ +#if LDBL_MANT_DIG != 106 +# error "compiler doesn't implement IBM extended format of long double" +#endif +long double foobar (long double x) { return x; }], + libc_cv_mabi_ibmlongdouble=yes, + libc_cv_mabi_ibmlongdouble=no) + CFLAGS="$save_CFLAGS"]) + + if test "$libc_cv_mabi_ibmlongdouble" = yes; then + CFLAGS="$CFLAGS -mabi=ibmlongdouble" + else + AC_MSG_ERROR([this configuration requires -mlong-double-128 IBM extended format support]) + fi +fi + +ldd_rewrite_script=sysdeps/unix/sysv/linux/powerpc/ldd-rewrite.sed diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/dl-brk.S b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/dl-brk.S new file mode 100644 index 0000000000..eeb96544e3 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/dl-brk.S @@ -0,0 +1 @@ +#include <brk.S> diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/dl-cache.h b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/dl-cache.h new file mode 100644 index 0000000000..766bba4265 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/dl-cache.h @@ -0,0 +1 @@ +#include <sysdeps/unix/sysv/linux/sparc/dl-cache.h> diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/dl-static.c b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/dl-static.c new file mode 100644 index 0000000000..38772797b4 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/dl-static.c @@ -0,0 +1,84 @@ +/* Variable initialization. PowerPC version. + Copyright (C) 2013-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library. If not, see + <http://www.gnu.org/licenses/>. */ + +#include <ldsodefs.h> + +#ifdef SHARED + +void +_dl_var_init (void *array[]) +{ + /* It has to match "variables" below. */ + enum + { + DL_PAGESIZE = 0 + }; + + GLRO(dl_pagesize) = *((size_t *) array[DL_PAGESIZE]); +} + +#else + +static void *variables[] = +{ + &GLRO(dl_pagesize) +}; + +static void +_dl_unprotect_relro (struct link_map *l) +{ + ElfW(Addr) start = ((l->l_addr + l->l_relro_addr) + & ~(GLRO(dl_pagesize) - 1)); + ElfW(Addr) end = ((l->l_addr + l->l_relro_addr + l->l_relro_size) + & ~(GLRO(dl_pagesize) - 1)); + + if (start != end) + __mprotect ((void *) start, end - start, PROT_READ | PROT_WRITE); +} + +void +_dl_static_init (struct link_map *l) +{ + struct link_map *rtld_map = l; + struct r_scope_elem **scope; + const ElfW(Sym) *ref = NULL; + lookup_t loadbase; + void (*f) (void *[]); + size_t i; + + loadbase = _dl_lookup_symbol_x ("_dl_var_init", l, &ref, l->l_local_scope, + NULL, 0, 1, NULL); + + for (scope = l->l_local_scope; *scope != NULL; scope++) + for (i = 0; i < (*scope)->r_nlist; i++) + if ((*scope)->r_list[i] == loadbase) + { + rtld_map = (*scope)->r_list[i]; + break; + } + + if (ref != NULL) + { + f = (void (*) (void *[])) DL_SYMBOL_ADDRESS (loadbase, ref); + _dl_unprotect_relro (rtld_map); + f (variables); + _dl_protect_relro (rtld_map); + } +} + +#endif diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/dl-sysdep.c b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/dl-sysdep.c new file mode 100644 index 0000000000..23f5d5d388 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/dl-sysdep.c @@ -0,0 +1,33 @@ +/* Operating system support for run-time dynamic linker. Linux/PPC version. + Copyright (C) 1997-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#include <config.h> +#include <ldsodefs.h> + +int __cache_line_size attribute_hidden; + +/* Scan the Aux Vector for the "Data Cache Block Size" entry. If found + verify that the static extern __cache_line_size is defined by checking + for not NULL. If it is defined then assign the cache block size + value to __cache_line_size. */ +#define DL_PLATFORM_AUXV \ + case AT_DCACHEBSIZE: \ + __cache_line_size = av->a_un.a_val; \ + break; + +#include <sysdeps/unix/sysv/linux/dl-sysdep.c> diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/elision-conf.c b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/elision-conf.c new file mode 100644 index 0000000000..f631f0a035 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/elision-conf.c @@ -0,0 +1,83 @@ +/* elision-conf.c: Lock elision tunable parameters. + Copyright (C) 2015-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#include "config.h" +#include <pthreadP.h> +#include <elision-conf.h> +#include <unistd.h> +#include <dl-procinfo.h> + +/* Reasonable initial tuning values, may be revised in the future. + This is a conservative initial value. */ + +struct elision_config __elision_aconf = + { + /* How many times to use a non-transactional lock after a transactional + failure has occurred because the lock is already acquired. Expressed + in number of lock acquisition attempts. */ + .skip_lock_busy = 3, + /* How often to not attempt to use elision if a transaction aborted due + to reasons other than other threads' memory accesses. Expressed in + number of lock acquisition attempts. */ + .skip_lock_internal_abort = 3, + /* How often to not attempt to use elision if a lock used up all retries + without success. Expressed in number of lock acquisition attempts. */ + .skip_lock_out_of_tbegin_retries = 3, + /* How often we retry using elision if there is chance for the transaction + to finish execution (e.g., it wasn't aborted due to the lock being + already acquired. */ + .try_tbegin = 3, + /* Same as SKIP_LOCK_INTERNAL_ABORT but for trylock. */ + .skip_trylock_internal_abort = 3, + }; + +/* Force elision for all new locks. This is used to decide whether existing + DEFAULT locks should be automatically use elision in pthread_mutex_lock(). + Disabled for suid programs. Only used when elision is available. */ + +int __pthread_force_elision attribute_hidden; + +/* Initialize elision. */ + +static void +elision_init (int argc __attribute__ ((unused)), + char **argv __attribute__ ((unused)), + char **environ) +{ +#ifdef ENABLE_LOCK_ELISION + int elision_available = (GLRO (dl_hwcap2) & PPC_FEATURE2_HAS_HTM) ? 1 : 0; + __pthread_force_elision = __libc_enable_secure ? 0 : elision_available; +#endif + if (!__pthread_force_elision) + /* Disable elision on rwlocks. */ + __elision_aconf.try_tbegin = 0; +} + +#ifdef SHARED +# define INIT_SECTION ".init_array" +# define MAYBE_CONST +#else +# define INIT_SECTION ".preinit_array" +# define MAYBE_CONST const +#endif + +void (*MAYBE_CONST __pthread_init_array []) (int, char **, char **) + __attribute__ ((section (INIT_SECTION), aligned (sizeof (void *)))) = +{ + &elision_init +}; diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/elision-conf.h b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/elision-conf.h new file mode 100644 index 0000000000..75ffd9741d --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/elision-conf.h @@ -0,0 +1,42 @@ +/* elision-conf.h: Lock elision tunable parameters. + Copyright (C) 2015-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#ifndef _ELISION_CONF_H +#define _ELISION_CONF_H 1 + +#include <pthread.h> +#include <time.h> + +/* Should make sure there is no false sharing on this. */ +struct elision_config +{ + int skip_lock_busy; + int skip_lock_internal_abort; + int skip_lock_out_of_tbegin_retries; + int try_tbegin; + int skip_trylock_internal_abort; +} __attribute__ ((__aligned__ (128))); + +extern struct elision_config __elision_aconf attribute_hidden; + +extern int __pthread_force_elision attribute_hidden; + +/* Tell the test suite to test elision for this architecture. */ +#define HAVE_ELISION 1 + +#endif diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/elision-lock.c b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/elision-lock.c new file mode 100644 index 0000000000..f7a5cbcd3a --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/elision-lock.c @@ -0,0 +1,86 @@ +/* elision-lock.c: Elided pthread mutex lock. + Copyright (C) 2015-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#include <stdio.h> +#include <pthread.h> +#include <pthreadP.h> +#include <lowlevellock.h> +#include <elision-conf.h> +#include "htm.h" + +#if !defined(LLL_LOCK) && !defined(EXTRAARG) +/* Make sure the configuration code is always linked in for static + libraries. */ +#include "elision-conf.c" +#endif + +#ifndef EXTRAARG +# define EXTRAARG +#endif +#ifndef LLL_LOCK +# define LLL_LOCK(a,b) lll_lock(a,b), 0 +#endif + +#define aconf __elision_aconf + +/* Adaptive lock using transactions. + By default the lock region is run as a transaction, and when it + aborts or the lock is busy the lock adapts itself. */ + +int +__lll_lock_elision (int *lock, short *adapt_count, EXTRAARG int pshared) +{ + /* adapt_count is accessed concurrently but is just a hint. Thus, + use atomic accesses but relaxed MO is sufficient. */ + if (atomic_load_relaxed (adapt_count) > 0) + { + goto use_lock; + } + + for (int i = aconf.try_tbegin; i > 0; i--) + { + if (__libc_tbegin (0)) + { + if (*lock == 0) + return 0; + /* Lock was busy. Fall back to normal locking. */ + __libc_tabort (_ABORT_LOCK_BUSY); + } + else + { + /* A persistent failure indicates that a retry will probably + result in another failure. Use normal locking now and + for the next couple of calls. */ + if (_TEXASRU_FAILURE_PERSISTENT (__builtin_get_texasru ())) + { + if (aconf.skip_lock_internal_abort > 0) + atomic_store_relaxed (adapt_count, + aconf.skip_lock_internal_abort); + goto use_lock; + } + } + } + + /* Fall back to locks for a bit if retries have been exhausted */ + if (aconf.try_tbegin > 0 && aconf.skip_lock_out_of_tbegin_retries > 0) + atomic_store_relaxed (adapt_count, + aconf.skip_lock_out_of_tbegin_retries); + +use_lock: + return LLL_LOCK ((*lock), pshared); +} diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/elision-timed.c b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/elision-timed.c new file mode 100644 index 0000000000..95317c96eb --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/elision-timed.c @@ -0,0 +1,28 @@ +/* elision-timed.c: Lock elision timed lock. + Copyright (C) 2015-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#include <time.h> +#include <elision-conf.h> +#include "lowlevellock.h" + +#define __lll_lock_elision __lll_timedlock_elision +#define EXTRAARG const struct timespec *t, +#undef LLL_LOCK +#define LLL_LOCK(a, b) lll_timedlock(a, t, b) + +#include "elision-lock.c" diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/elision-trylock.c b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/elision-trylock.c new file mode 100644 index 0000000000..ed244d3f12 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/elision-trylock.c @@ -0,0 +1,69 @@ +/* elision-trylock.c: Lock eliding trylock for pthreads. + Copyright (C) 2015-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#include <pthread.h> +#include <pthreadP.h> +#include <lowlevellock.h> +#include <elision-conf.h> +#include "htm.h" + +#define aconf __elision_aconf + +/* Try to elide a futex trylock. FUTEX is the futex variable. ADAPT_COUNT is + the adaptation counter in the mutex. */ + +int +__lll_trylock_elision (int *futex, short *adapt_count) +{ + /* Implement POSIX semantics by forbiding nesting elided trylocks. */ + __libc_tabort (_ABORT_NESTED_TRYLOCK); + + /* Only try a transaction if it's worth it. */ + if (atomic_load_relaxed (adapt_count) > 0) + { + goto use_lock; + } + + if (__libc_tbegin (0)) + { + if (*futex == 0) + return 0; + + /* Lock was busy. This is never a nested transaction. + End it, and set the adapt count. */ + __libc_tend (0); + + if (aconf.skip_lock_busy > 0) + atomic_store_relaxed (adapt_count, aconf.skip_lock_busy); + } + else + { + if (_TEXASRU_FAILURE_PERSISTENT (__builtin_get_texasru ())) + { + /* A persistent failure indicates that a retry will probably + result in another failure. Use normal locking now and + for the next couple of calls. */ + if (aconf.skip_trylock_internal_abort > 0) + atomic_store_relaxed (adapt_count, + aconf.skip_trylock_internal_abort); + } + } + +use_lock: + return lll_trylock (*futex); +} diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/elision-unlock.c b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/elision-unlock.c new file mode 100644 index 0000000000..e3fe58e3f1 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/elision-unlock.c @@ -0,0 +1,43 @@ +/* elision-unlock.c: Commit an elided pthread lock. + Copyright (C) 2015-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#include "pthreadP.h" +#include "lowlevellock.h" +#include "htm.h" + +int +__lll_unlock_elision (int *lock, short *adapt_count, int pshared) +{ + /* When the lock was free we're in a transaction. */ + if (*lock == 0) + __libc_tend (0); + else + { + /* Update adapt_count in the critical section to prevent a + write-after-destroy error as mentioned in BZ 20822. The + following update of adapt_count has to be contained within + the critical region of the fall-back lock in order to not violate + the mutex destruction requirements. */ + short __tmp = atomic_load_relaxed (adapt_count); + if (__tmp > 0) + atomic_store_relaxed (adapt_count, __tmp - 1); + + lll_unlock ((*lock), pshared); + } + return 0; +} diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/force-elision.h b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/force-elision.h new file mode 100644 index 0000000000..318f7915c7 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/force-elision.h @@ -0,0 +1,28 @@ +/* force-elision.h: Automatic enabling of elision for mutexes + Copyright (C) 2015-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#ifdef ENABLE_LOCK_ELISION +/* Automatically enable elision for existing user lock kinds. */ +#define FORCE_ELISION(m, s) \ + if (__pthread_force_elision \ + && (m->__data.__kind & PTHREAD_MUTEX_ELISION_FLAGS_NP) == 0) \ + { \ + mutex->__data.__kind |= PTHREAD_MUTEX_ELISION_NP; \ + s; \ + } +#endif diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/get_clockfreq.c b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/get_clockfreq.c new file mode 100644 index 0000000000..b8d01d8ca6 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/get_clockfreq.c @@ -0,0 +1,107 @@ +/* Get frequency of the system processor. powerpc/Linux version. + Copyright (C) 2000-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#include <ctype.h> +#include <fcntl.h> +#include <stdint.h> +#include <string.h> +#include <unistd.h> +#include <sysdep.h> +#include <libc-vdso.h> +#include <not-cancel.h> + +hp_timing_t +__get_clockfreq (void) +{ + hp_timing_t result = 0L; + +#ifdef SHARED + /* The vDSO does not return an error (it clear cr0.so on returning). */ + INTERNAL_SYSCALL_DECL (err); + result = + INTERNAL_VSYSCALL_NO_SYSCALL_FALLBACK (get_tbfreq, err, uint64_t, 0); +#else + /* We read the information from the /proc filesystem. /proc/cpuinfo + contains at least one line like: + timebase : 33333333 + We search for this line and convert the number into an integer. */ + int fd = open_not_cancel_2 ("/proc/cpuinfo", O_RDONLY); + if (__glibc_likely (fd != -1)) + return result; + + /* The timebase will be in the 1st 1024 bytes for systems with up + to 8 processors. If the first read returns less then 1024 + bytes read, we have the whole cpuinfo and can start the scan. + Otherwise we will have to read more to insure we have the + timebase value in the scan. */ + char buf[1024]; + ssize_t n; + + n = __read_nocancel (fd, buf, sizeof (buf)); + if (n == sizeof (buf)) + { + /* We are here because the 1st read returned exactly sizeof + (buf) bytes. This implies that we are not at EOF and may + not have read the timebase value yet. So we need to read + more bytes until we know we have EOF. We copy the lower + half of buf to the upper half and read sizeof (buf)/2 + bytes into the lower half of buf and repeat until we + reach EOF. We can assume that the timebase will be in + the last 512 bytes of cpuinfo, so two 512 byte half_bufs + will be sufficient to contain the timebase and will + handle the case where the timebase spans the half_buf + boundry. */ + const ssize_t half_buf = sizeof (buf) / 2; + while (n >= half_buf) + { + memcpy (buf, buf + half_buf, half_buf); + n = __read_nocancel (fd, buf + half_buf, half_buf); + } + if (n >= 0) + n += half_buf; + } + __close_nocancel (fd); + + if (__glibc_likely (n > 0)) + { + char *mhz = memmem (buf, n, "timebase", 7); + + if (__glibc_likely (mhz != NULL)) + { + char *endp = buf + n; + + /* Search for the beginning of the string. */ + while (mhz < endp && (*mhz < '0' || *mhz > '9') && *mhz != '\n') + ++mhz; + + while (mhz < endp && *mhz != '\n') + { + if (*mhz >= '0' && *mhz <= '9') + { + result *= 10; + result += *mhz - '0'; + } + + ++mhz; + } + } + } +#endif + + return result; +} diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/get_timebase_freq.c b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/get_timebase_freq.c new file mode 100644 index 0000000000..a905d5cd5f --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/get_timebase_freq.c @@ -0,0 +1,27 @@ +/* Get the frequency of the time base. + Copyright (C) 2012-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#include <stdint.h> +#include <libc-internal.h> + +uint64_t +__get_timebase_freq (void) +{ + return (uint64_t) __get_clockfreq (); +} +weak_alias (__get_timebase_freq, __ppc_get_timebase_freq) diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/getdents64.c b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/getdents64.c new file mode 100644 index 0000000000..0c75fb5a06 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/getdents64.c @@ -0,0 +1 @@ +#include <sysdeps/unix/sysv/linux/i386/getdents64.c> diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/getmsg.c b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/getmsg.c new file mode 100644 index 0000000000..3a1fa08525 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/getmsg.c @@ -0,0 +1 @@ +#include <sysdeps/unix/sysv/linux/i386/getmsg.c> diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/gettimeofday.c b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/gettimeofday.c new file mode 100644 index 0000000000..6f09fa20d3 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/gettimeofday.c @@ -0,0 +1,85 @@ +/* Copyright (C) 2005-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#if defined SHARED && !defined __powerpc64__ +# define __gettimeofday __redirect___gettimeofday +#else +# define __redirect___gettimeofday __gettimeofday +#endif + +#include <sys/time.h> + +#ifdef SHARED + +# include <dl-vdso.h> +# include <libc-vdso.h> +# include <dl-machine.h> + +# ifndef __powerpc64__ +# undef __gettimeofday + +int +__gettimeofday_vsyscall (struct timeval *tv, struct timezone *tz) +{ + return INLINE_VSYSCALL (gettimeofday, 2, tv, tz); +} + +/* __GI___gettimeofday is defined as hidden and for ppc32 it enables the + compiler make a local call (symbol@local) for internal GLIBC usage. It + means the PLT won't be used and the ifunc resolver will be called directly. + For ppc64 a call to a function in another translation unit might use a + different toc pointer thus disallowing direct branchess and making internal + ifuncs calls safe. */ +# undef libc_hidden_def +# define libc_hidden_def(name) \ + __hidden_ver1 (__gettimeofday_vsyscall, __GI___gettimeofday, \ + __gettimeofday_vsyscall); + +# endif /* !__powerpc64__ */ + +static int +__gettimeofday_syscall (struct timeval *tv, struct timezone *tz) +{ + return INLINE_SYSCALL (gettimeofday, 2, tv, tz); +} + +# define INIT_ARCH() \ + PREPARE_VERSION (linux2615, "LINUX_2.6.15", 123718565); \ + void *vdso_gettimeofday = _dl_vdso_vsym ("__kernel_gettimeofday", &linux2615); + +/* If the vDSO is not available we fall back syscall. */ +libc_ifunc_hidden (__redirect___gettimeofday, __gettimeofday, + vdso_gettimeofday + ? VDSO_IFUNC_RET (vdso_gettimeofday) + : (void *) __gettimeofday_syscall); +libc_hidden_def (__gettimeofday) + +#else + +# include <sysdep.h> +# include <errno.h> + +int +__gettimeofday (struct timeval *tv, struct timezone *tz) +{ + return INLINE_SYSCALL (gettimeofday, 2, tv, tz); +} +libc_hidden_def (__gettimeofday) + +#endif +weak_alias (__gettimeofday, gettimeofday) +libc_hidden_weak (gettimeofday) diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/htm.h b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/htm.h new file mode 100644 index 0000000000..e8e9688b12 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/htm.h @@ -0,0 +1,171 @@ +/* Shared HTM header. Emulate transactional execution facility intrinsics for + compilers and assemblers that do not support the intrinsics and instructions + yet. + + Copyright (C) 2015-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#ifndef _HTM_H +#define _HTM_H 1 + +#ifdef __ASSEMBLER__ + +/* tbegin. */ +.macro TBEGIN + .long 0x7c00051d +.endm + +/* tend. 0 */ +.macro TEND + .long 0x7c00055d +.endm + +/* tabort. code */ +.macro TABORT code + .byte 0x7c + .byte \code + .byte 0x07 + .byte 0x1d +.endm + +/*"TEXASR - Transaction EXception And Summary Register" + mfspr %dst,130 */ +.macro TEXASR dst + mfspr \dst,130 +.endm + +#else + +#include <endian.h> + +/* Official HTM intrinsics interface matching GCC, but works + on older GCC compatible compilers and binutils. + We should somehow detect if the compiler supports it, because + it may be able to generate slightly better code. */ + +#define TBEGIN ".long 0x7c00051d" +#define TEND ".long 0x7c00055d" +#if __BYTE_ORDER == __LITTLE_ENDIAN +# define TABORT ".byte 0x1d,0x07,%1,0x7c" +#else +# define TABORT ".byte 0x7c,%1,0x07,0x1d" +#endif + +#define __force_inline inline __attribute__((__always_inline__)) + +#ifndef __HTM__ + +#define _TEXASRU_EXTRACT_BITS(TEXASR,BITNUM,SIZE) \ + (((TEXASR) >> (31-(BITNUM))) & ((1<<(SIZE))-1)) +#define _TEXASRU_FAILURE_PERSISTENT(TEXASRU) \ + _TEXASRU_EXTRACT_BITS(TEXASRU, 7, 1) + +#define _tbegin() \ + ({ unsigned int __ret; \ + asm volatile ( \ + TBEGIN "\t\n" \ + "mfcr %0\t\n" \ + "rlwinm %0,%0,3,1\t\n" \ + "xori %0,%0,1\t\n" \ + : "=r" (__ret) : \ + : "cr0", "memory"); \ + __ret; \ + }) + +#define _tend() \ + ({ unsigned int __ret; \ + asm volatile ( \ + TEND "\t\n" \ + "mfcr %0\t\n" \ + "rlwinm %0,%0,3,1\t\n" \ + "xori %0,%0,1\t\n" \ + : "=r" (__ret) : \ + : "cr0", "memory"); \ + __ret; \ + }) + +#define _tabort(__code) \ + ({ unsigned int __ret; \ + asm volatile ( \ + TABORT "\t\n" \ + "mfcr %0\t\n" \ + "rlwinm %0,%0,3,1\t\n" \ + "xori %0,%0,1\t\n" \ + : "=r" (__ret) : "r" (__code) \ + : "cr0", "memory"); \ + __ret; \ + }) + +#define _texasru() \ + ({ unsigned long __ret; \ + asm volatile ( \ + "mfspr %0,131\t\n" \ + : "=r" (__ret)); \ + __ret; \ + }) + +#define __libc_tbegin(tdb) _tbegin () +#define __libc_tend(nested) _tend () +#define __libc_tabort(abortcode) _tabort (abortcode) +#define __builtin_get_texasru() _texasru () + +#else +# include <htmintrin.h> + +# ifdef __TM_FENCE__ + /* New GCC behavior. */ +# define __libc_tbegin(R) __builtin_tbegin (R) +# define __libc_tend(R) __builtin_tend (R) +# define __libc_tabort(R) __builtin_tabort (R) +# else + /* Workaround an old GCC behavior. Earlier releases of GCC 4.9 and 5.0, + didn't use to treat __builtin_tbegin, __builtin_tend and + __builtin_tabort as compiler barriers, moving instructions into and + out the transaction. + Remove this when glibc drops support for GCC 5.0. */ +# define __libc_tbegin(R) \ + ({ __asm__ volatile("" ::: "memory"); \ + unsigned int __ret = __builtin_tbegin (R); \ + __asm__ volatile("" ::: "memory"); \ + __ret; \ + }) +# define __libc_tabort(R) \ + ({ __asm__ volatile("" ::: "memory"); \ + unsigned int __ret = __builtin_tabort (R); \ + __asm__ volatile("" ::: "memory"); \ + __ret; \ + }) +# define __libc_tend(R) \ + ({ __asm__ volatile("" ::: "memory"); \ + unsigned int __ret = __builtin_tend (R); \ + __asm__ volatile("" ::: "memory"); \ + __ret; \ + }) +# endif /* __TM_FENCE__ */ +#endif /* __HTM__ */ + +#endif /* __ASSEMBLER__ */ + +/* Definitions used for TEXASR Failure code (bits 0:7). If the failure + should be persistent, the abort code must be odd. 0xd0 through 0xff + are reserved for the kernel and potential hypervisor. */ +#define _ABORT_PERSISTENT 0x01 /* An unspecified persistent abort. */ +#define _ABORT_LOCK_BUSY 0x34 /* Busy lock, not persistent. */ +#define _ABORT_NESTED_TRYLOCK (0x32 | _ABORT_PERSISTENT) +#define _ABORT_SYSCALL (0x30 | _ABORT_PERSISTENT) + +#endif diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/init-first.c b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/init-first.c new file mode 100644 index 0000000000..64b7589c1f --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/init-first.c @@ -0,0 +1,85 @@ +/* Initialization code run first thing by the ELF startup code. Linux/PowerPC. + Copyright (C) 2007-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#ifdef SHARED +# include <dl-vdso.h> +# include <libc-vdso.h> + +int (*VDSO_SYMBOL(gettimeofday)) (struct timeval *, void *) + attribute_hidden; +int (*VDSO_SYMBOL(clock_gettime)) (clockid_t, struct timespec *); +int (*VDSO_SYMBOL(clock_getres)) (clockid_t, struct timespec *); +unsigned long long (*VDSO_SYMBOL(get_tbfreq)) (void); +int (*VDSO_SYMBOL(getcpu)) (unsigned *, unsigned *); +time_t (*VDSO_SYMBOL(time)) (time_t *); + +#if defined(__PPC64__) || defined(__powerpc64__) +void *VDSO_SYMBOL(sigtramp_rt64); +#else +void *VDSO_SYMBOL(sigtramp32); +void *VDSO_SYMBOL(sigtramp_rt32); +#endif + +static inline void +_libc_vdso_platform_setup (void) +{ + PREPARE_VERSION (linux2615, "LINUX_2.6.15", 123718565); + + void *p = _dl_vdso_vsym ("__kernel_gettimeofday", &linux2615); + PTR_MANGLE (p); + VDSO_SYMBOL (gettimeofday) = p; + + p = _dl_vdso_vsym ("__kernel_clock_gettime", &linux2615); + PTR_MANGLE (p); + VDSO_SYMBOL (clock_gettime) = p; + + p = _dl_vdso_vsym ("__kernel_clock_getres", &linux2615); + PTR_MANGLE (p); + VDSO_SYMBOL (clock_getres) = p; + + p = _dl_vdso_vsym ("__kernel_get_tbfreq", &linux2615); + PTR_MANGLE (p); + VDSO_SYMBOL (get_tbfreq) = p; + + p = _dl_vdso_vsym ("__kernel_getcpu", &linux2615); + PTR_MANGLE (p); + VDSO_SYMBOL (getcpu) = p; + + p = _dl_vdso_vsym ("__kernel_time", &linux2615); + PTR_MANGLE (p); + VDSO_SYMBOL (time) = p; + + /* PPC64 uses only one signal trampoline symbol, while PPC32 will use + two depending if SA_SIGINFO is used (__kernel_sigtramp_rt32) or not + (__kernel_sigtramp32). + There is no need to pointer mangle these symbol because they will + used only for pointer comparison. */ +#if defined(__PPC64__) || defined(__powerpc64__) + VDSO_SYMBOL(sigtramp_rt64) = _dl_vdso_vsym ("__kernel_sigtramp_rt64", + &linux2615); +#else + VDSO_SYMBOL(sigtramp32) = _dl_vdso_vsym ("__kernel_sigtramp32", &linux2615); + VDSO_SYMBOL(sigtramp_rt32) = _dl_vdso_vsym ("__kernel_sigtramp_rt32", + &linux2615); +#endif +} + +# define VDSO_SETUP _libc_vdso_platform_setup +#endif + +#include <csu/init-first.c> diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/ioctl.c b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/ioctl.c new file mode 100644 index 0000000000..e2e3d3357f --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/ioctl.c @@ -0,0 +1,64 @@ +/* Copyright (C) 1998-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#include <stdarg.h> +#include <termios.h> +#include <unistd.h> +#include <sys/ioctl.h> +#include <sysdep.h> + +/* The user-visible size of struct termios has changed. Catch ioctl calls + using the new-style struct termios, and translate them to old-style. */ + +int +__ioctl (int fd, unsigned long int request, ...) +{ + void *arg; + va_list ap; + int result; + + va_start (ap, request); + arg = va_arg (ap, void *); + + switch (request) + { + case TCGETS: + result = __tcgetattr (fd, (struct termios *) arg); + break; + + case TCSETS: + result = tcsetattr (fd, TCSANOW, (struct termios *) arg); + break; + + case TCSETSW: + result = tcsetattr (fd, TCSADRAIN, (struct termios *) arg); + break; + + case TCSETSF: + result = tcsetattr (fd, TCSAFLUSH, (struct termios *) arg); + break; + + default: + result = INLINE_SYSCALL (ioctl, 3, fd, request, arg); + break; + } + + va_end (ap); + + return result; +} +weak_alias (__ioctl, ioctl) diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/ipc_priv.h b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/ipc_priv.h new file mode 100644 index 0000000000..849190c67b --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/ipc_priv.h @@ -0,0 +1,39 @@ +/* Old SysV permission definition for Linux. PowerPC version. + Copyright (C) 1995-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#include <sys/ipc.h> /* For __key_t */ + +#define __IPC_64 0x100 + +struct __old_ipc_perm +{ + __key_t __key; /* Key. */ + unsigned int uid; /* Owner's user ID. */ + unsigned int gid; /* Owner's group ID. */ + unsigned int cuid; /* Creator's user ID. */ + unsigned int cgid; /* Creator's group ID. */ + unsigned int mode; /* Read/write permission. */ + unsigned short int __seq; /* Sequence number. */ +}; + +#define SEMCTL_ARG_ADDRESS(__arg) &__arg.array + +#define MSGRCV_ARGS(__msgp, __msgtyp) \ + ((long int []){ (long int) __msgp, __msgtyp }) + +#include <ipc_ops.h> diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/kernel-features.h b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/kernel-features.h new file mode 100644 index 0000000000..e026394422 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/kernel-features.h @@ -0,0 +1,51 @@ +/* Set flags signalling availability of kernel features based on given + kernel version number. PowerPC version. + Copyright (C) 1999-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +/* PowerPC uses socketcall. */ +#define __ASSUME_SOCKETCALL 1 + +/* New syscalls added for PowerPC in 2.6.37. */ +#define __ASSUME_SOCKET_SYSCALL 1 +#define __ASSUME_BIND_SYSCALL 1 +#define __ASSUME_CONNECT_SYSCALL 1 +#define __ASSUME_LISTEN_SYSCALL 1 +#define __ASSUME_GETSOCKNAME_SYSCALL 1 +#define __ASSUME_GETPEERNAME_SYSCALL 1 +#define __ASSUME_SOCKETPAIR_SYSCALL 1 +#define __ASSUME_SEND_SYSCALL 1 +#define __ASSUME_RECV_SYSCALL 1 +#define __ASSUME_SHUTDOWN_SYSCALL 1 +#define __ASSUME_GETSOCKOPT_SYSCALL 1 +#define __ASSUME_SETSOCKOPT_SYSCALL 1 + +/* Define this if your 32-bit syscall API requires 64-bit register + pairs to start with an even-number register. */ +#ifndef __powerpc64__ +# define __ASSUME_ALIGNED_REGISTER_PAIRS 1 +#endif + +/* powerpc compat fadvise64_64 reorganize the syscall argument. */ +#ifndef __powerpc64__ +# define __ASSUME_FADVISE64_64_6ARG 1 +#endif + +#include_next <kernel-features.h> + +/* powerpc only supports ipc syscall. */ +#undef __ASSUME_DIRECT_SYSVIPC_SYSCALLS diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/kernel_termios.h b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/kernel_termios.h new file mode 100644 index 0000000000..ec80de3f50 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/kernel_termios.h @@ -0,0 +1,53 @@ +/* Copyright (C) 1997-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#ifndef _KERNEL_TERMIOS_H +#define _KERNEL_TERMIOS_H 1 + +/* We need the definition of tcflag_t, cc_t, and speed_t. */ +#include <termios.h> + +#define __KERNEL_NCCS 19 + +struct __kernel_termios + { + tcflag_t c_iflag; /* input mode flags */ + tcflag_t c_oflag; /* output mode flags */ + tcflag_t c_cflag; /* control mode flags */ + tcflag_t c_lflag; /* local mode flags */ + cc_t c_cc[__KERNEL_NCCS]; /* control characters */ + cc_t c_line; /* line discipline */ + speed_t c_ispeed; /* input speed */ + speed_t c_ospeed; /* output speed */ + }; + +#define _HAVE_C_ISPEED 1 +#define _HAVE_C_OSPEED 1 + +/* We have the kernel termios structure, so we can presume this code knows + what it's doing... */ + +#undef TCGETS +#undef TCSETS +#undef TCSETSW +#undef TCSETSF +#define TCGETS _IOR ('t', 19, struct __kernel_termios) +#define TCSETS _IOW ('t', 20, struct __kernel_termios) +#define TCSETSW _IOW ('t', 21, struct __kernel_termios) +#define TCSETSF _IOW ('t', 22, struct __kernel_termios) + +#endif /* kernel_termios.h */ diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/ldconfig.h b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/ldconfig.h new file mode 100644 index 0000000000..178e6e6236 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/ldconfig.h @@ -0,0 +1,27 @@ +/* ldconfig default paths and libraries. Linux/PowerPC version. + Copyright (C) 2002-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#include <sysdeps/generic/ldconfig.h> + +#define SYSDEP_KNOWN_INTERPRETER_NAMES \ + { "/lib/ld.so.1", FLAG_ELF_LIBC6 }, \ + { "/lib64/ld64.so.1", FLAG_ELF_LIBC6 }, \ + { "/lib64/ld64.so.2", FLAG_ELF_LIBC6 }, +#define SYSDEP_KNOWN_LIBRARY_NAMES \ + { "libc.so.6", FLAG_ELF_LIBC6 }, \ + { "libm.so.6", FLAG_ELF_LIBC6 }, diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/ldd-rewrite.sed b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/ldd-rewrite.sed new file mode 100644 index 0000000000..9039b69548 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/ldd-rewrite.sed @@ -0,0 +1,15 @@ +/LD_TRACE_LOADED_OBJECTS=1/a\ +add_env="$add_env LD_LIBRARY_VERSION=\\$verify_out" + +# ldd is generated from elf/ldd.bash.in with the name +# of ld.so as generated in Makeconfig + +# that name is replaced by a pair referring to both +# the 32bit and 64bit dynamic linker. + +# /lib(64|)/*(64|).so* is replaced with /lib/*.so* and /lib64/*64.so* +# this works for /lib64/ld64.so.x and /lib/ld.so.x as input +s_lib64_lib_ +s_64\.so_\.so_ +s_^RTLDLIST=\(.*lib\)\(/[^/]*\)\(\.so\.[0-9.]*\)[[:blank:]]*$_RTLDLIST="\1\2\3 \164\264\3"_ + diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/ldsodefs.h b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/ldsodefs.h new file mode 100644 index 0000000000..d51a560b6a --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/ldsodefs.h @@ -0,0 +1,33 @@ +/* Run-time dynamic linker data structures for loaded ELF shared objects. + PowerPC version. + Copyright (C) 2013-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#ifndef _LDSODEFS_H + +/* Get the real definitions. */ +#include_next <ldsodefs.h> + +/* Now define our stuff. */ + +/* We need special support to initialize DSO loaded for statically linked + binaries. */ +extern void _dl_static_init (struct link_map *map); +#undef DL_STATIC_INIT +#define DL_STATIC_INIT(map) _dl_static_init (map) + +#endif /* ldsodefs.h */ diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/libc-start.c b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/libc-start.c new file mode 100644 index 0000000000..ad036c1e4b --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/libc-start.c @@ -0,0 +1,105 @@ +/* Copyright (C) 1998-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#include <stdlib.h> +#include <unistd.h> +#include <ldsodefs.h> +#include <sysdep.h> + +#ifndef SHARED +#include <hwcapinfo.h> +#endif + +int __cache_line_size attribute_hidden; +/* The main work is done in the generic function. */ +#define LIBC_START_MAIN generic_start_main +#define LIBC_START_DISABLE_INLINE +#define LIBC_START_MAIN_AUXVEC_ARG +#define MAIN_AUXVEC_ARG +#define INIT_MAIN_ARGS +#include <csu/libc-start.c> + +struct startup_info + { + void *sda_base; + int (*main) (int, char **, char **, void *); + int (*init) (int, char **, char **, void *); + void (*fini) (void); + }; + +int +__libc_start_main (int argc, char **argv, + char **ev, + ElfW (auxv_t) * auxvec, + void (*rtld_fini) (void), + struct startup_info *stinfo, + char **stack_on_entry) +{ + /* the PPC SVR4 ABI says that the top thing on the stack will + be a NULL pointer, so if not we assume that we're being called + as a statically-linked program by Linux... */ + if (*stack_on_entry != NULL) + { + char **temp; + /* ...in which case, we have argc as the top thing on the + stack, followed by argv (NULL-terminated), envp (likewise), + and the auxiliary vector. */ + /* 32/64-bit agnostic load from stack */ + argc = *(long int *) stack_on_entry; + argv = stack_on_entry + 1; + ev = argv + argc + 1; +#ifdef HAVE_AUX_VECTOR + temp = ev; + while (*temp != NULL) + ++temp; + auxvec = (ElfW (auxv_t) *)++ temp; +#endif + rtld_fini = NULL; + } + + /* Initialize the __cache_line_size variable from the aux vector. For the + static case, we also need _dl_hwcap, _dl_hwcap2 and _dl_platform, so we + can call __tcb_parse_hwcap_and_convert_at_platform (). */ + for (ElfW (auxv_t) * av = auxvec; av->a_type != AT_NULL; ++av) + switch (av->a_type) + { + case AT_DCACHEBSIZE: + __cache_line_size = av->a_un.a_val; + break; +#ifndef SHARED + case AT_HWCAP: + _dl_hwcap = (unsigned long int) av->a_un.a_val; + break; + case AT_HWCAP2: + _dl_hwcap2 = (unsigned long int) av->a_un.a_val; + break; + case AT_PLATFORM: + _dl_platform = (void *) av->a_un.a_val; + break; +#endif + } + + /* Initialize hwcap/hwcap2 and platform data so it can be copied to + the TCB later in __libc_setup_tls (). (static case only). */ +#ifndef SHARED + __tcb_parse_hwcap_and_convert_at_platform (); +#endif + + return generic_start_main (stinfo->main, argc, argv, auxvec, + stinfo->init, stinfo->fini, rtld_fini, + stack_on_entry); +} diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/libc-vdso.h b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/libc-vdso.h new file mode 100644 index 0000000000..fb9509e2e7 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/libc-vdso.h @@ -0,0 +1,74 @@ +/* Resolve function pointers to VDSO functions. + Copyright (C) 2005-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + + +#ifndef _LIBC_VDSO_H +#define _LIBC_VDSO_H + +#ifdef SHARED + +#include <sysdep-vdso.h> + +extern int (*VDSO_SYMBOL(gettimeofday)) (struct timeval *, void *) + attribute_hidden; +extern int (*VDSO_SYMBOL(clock_gettime)) (clockid_t, struct timespec *); +extern int (*VDSO_SYMBOL(clock_getres)) (clockid_t, struct timespec *); +extern unsigned long long (*VDSO_SYMBOL(get_tbfreq)) (void); +extern int (*VDSO_SYMBOL(getcpu)) (unsigned *, unsigned *); +extern time_t (*VDSO_SYMBOL(time)) (time_t *); + +#if defined(__PPC64__) || defined(__powerpc64__) +extern void *VDSO_SYMBOL(sigtramp_rt64); +#else +extern void *VDSO_SYMBOL(sigtramp32); +extern void *VDSO_SYMBOL(sigtramp_rt32); +#endif + +#if (defined(__PPC64__) || defined(__powerpc64__)) && _CALL_ELF != 2 +/* The correct solution is for _dl_vdso_vsym to return the address of the OPD + for the kernel VDSO function. That address would then be stored in the + __vdso_* variables and returned as the result of the IFUNC resolver function. + Yet, the kernel does not contain any OPD entries for the VDSO functions + (incomplete implementation). However, PLT relocations for IFUNCs still expect + the address of an OPD to be returned from the IFUNC resolver function (since + PLT entries on PPC64 are just copies of OPDs). The solution for now is to + create an artificial static OPD for each VDSO function returned by a resolver + function. The TOC value is set to a non-zero value to avoid triggering lazy + symbol resolution via .glink0/.plt0 for a zero TOC (requires thread-safe PLT + sequences) when the dynamic linker isn't prepared for it e.g. RTLD_NOW. None + of the kernel VDSO routines use the TOC or AUX values so any non-zero value + will work. Note that function pointer comparisons will not use this artificial + static OPD since those are resolved via ADDR64 relocations and will point at + the non-IFUNC default OPD for the symbol. Lastly, because the IFUNC relocations + are processed immediately at startup the resolver functions and this code need + not be thread-safe, but if the caller writes to a PLT slot it must do so in a + thread-safe manner with all the required barriers. */ +#define VDSO_IFUNC_RET(value) \ + ({ \ + static Elf64_FuncDesc vdso_opd = { .fd_toc = ~0x0 }; \ + vdso_opd.fd_func = (Elf64_Addr)value; \ + &vdso_opd; \ + }) + +#else +#define VDSO_IFUNC_RET(value) ((void *) (value)) +#endif + +#endif + +#endif /* _LIBC_VDSO_H */ diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/lowlevellock.h b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/lowlevellock.h new file mode 100644 index 0000000000..7e81b8f198 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/lowlevellock.h @@ -0,0 +1,48 @@ +/* PowerPC specific lock definitions. + Copyright (C) 2015-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#ifndef _POWERPC_LOWLEVELLOCK_H +#define _POWERPC_LOWLEVELLOCK_H 1 + +#include <sysdeps/nptl/lowlevellock.h> + +/* Transactional lock elision definitions. */ +extern int __lll_timedlock_elision + (int *futex, short *adapt_count, const struct timespec *timeout, int private) + attribute_hidden; + +#define lll_timedlock_elision(futex, adapt_count, timeout, private) \ + __lll_timedlock_elision(&(futex), &(adapt_count), timeout, private) + +extern int __lll_lock_elision (int *futex, short *adapt_count, int private) + attribute_hidden; + +extern int __lll_unlock_elision (int *lock, short *adapt_count, int private) + attribute_hidden; + +extern int __lll_trylock_elision(int *lock, short *adapt_count) + attribute_hidden; + +#define lll_lock_elision(futex, adapt_count, private) \ + __lll_lock_elision (&(futex), &(adapt_count), private) +#define lll_unlock_elision(futex, adapt_count, private) \ + __lll_unlock_elision (&(futex), &(adapt_count), private) +#define lll_trylock_elision(futex, adapt_count) \ + __lll_trylock_elision (&(futex), &(adapt_count)) + +#endif diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/nldbl-abi.h b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/nldbl-abi.h new file mode 100644 index 0000000000..bd985cc59c --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/nldbl-abi.h @@ -0,0 +1,8 @@ +/* ABI version for long double switch. + This is used by the Versions and math_ldbl_opt.h files in + sysdeps/ieee754/ldbl-opt/. It gives the ABI version where + long double == double was replaced with proper long double + for libm *l functions and libc functions using long double. */ + +#define NLDBL_VERSION GLIBC_2.4 +#define LONG_DOUBLE_COMPAT_VERSION GLIBC_2_4 diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/405/Implies b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/405/Implies new file mode 100644 index 0000000000..70c0d2eda3 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/405/Implies @@ -0,0 +1,2 @@ +powerpc/powerpc32/405/fpu +powerpc/powerpc32/405 diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/440/Implies b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/440/Implies new file mode 100644 index 0000000000..c3e52c5504 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/440/Implies @@ -0,0 +1,2 @@ +powerpc/powerpc32/440/fpu +powerpc/powerpc32/440 diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/464/Implies b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/464/Implies new file mode 100644 index 0000000000..2829f9ccaf --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/464/Implies @@ -0,0 +1,2 @@ +powerpc/powerpc32/464/fpu +powerpc/powerpc32/464 diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/476/Implies b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/476/Implies new file mode 100644 index 0000000000..80f917079e --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/476/Implies @@ -0,0 +1,2 @@ +powerpc/powerpc32/476/fpu +powerpc/powerpc32/476 diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/970/Implies b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/970/Implies new file mode 100644 index 0000000000..0c018834af --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/970/Implies @@ -0,0 +1,2 @@ +powerpc/powerpc32/970/fpu +powerpc/powerpc32/970 diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/Makefile b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/Makefile new file mode 100644 index 0000000000..1f45659ed1 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/Makefile @@ -0,0 +1,10 @@ +# See Makeconfig regarding the use of default-abi. +default-abi := 32 + +ifeq ($(subdir),csu) +ifeq (yes,$(build-shared)) +sysdep_routines += divdi3 +shared-only-routines += divdi3 +CPPFLAGS-divdi3.c = -Din_divdi3_c +endif +endif diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/Versions b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/Versions new file mode 100644 index 0000000000..e13d20b93b --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/Versions @@ -0,0 +1,46 @@ +libc { + GLIBC_2.0 { + # Exception handling support functions from libgcc + __register_frame; __register_frame_table; __deregister_frame; + __frame_state_for; __register_frame_info_table; + } + GLIBC_2.2 { + # functions used in other libraries + __xstat64; __fxstat64; __lxstat64; + + # g* + glob64; + + # New rlimit interface + getrlimit; setrlimit; getrlimit64; setrlimit64; + + # r* + readdir64; readdir64_r; + + # s* + scandir64; + } + GLIBC_2.3.3 { + posix_fadvise64; posix_fallocate64; + setcontext; getcontext; swapcontext; makecontext; + } + GLIBC_2.3.4 { + setcontext; getcontext; swapcontext; makecontext; + } + GLIBC_2.11 { + fallocate64; + } + GLIBC_2.17 { + __ppc_get_timebase_freq; + } +} + +libpthread { + GLIBC_2.3.4 { + longjmp; siglongjmp; + } + GLIBC_2.6 { + # Changed PTHREAD_STACK_MIN. + pthread_attr_setstack; pthread_attr_setstacksize; + } +} diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/____longjmp_chk.S b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/____longjmp_chk.S new file mode 100644 index 0000000000..f61398c6b2 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/____longjmp_chk.S @@ -0,0 +1,76 @@ +/* Copyright (C) 2009-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#include <sysdep.h> +#include <rtld-global-offsets.h> + + .section .rodata.str1.4,"aMS",@progbits,1 + .align 2 +.LC0: + .string "longjmp causes uninitialized stack frame" + .text + +#define __longjmp_symbol ____longjmp_chk + +#ifdef PIC +# define LOAD_ARG \ + SETUP_GOT_ACCESS(r3,got_label2); \ + addis r3,r3,_GLOBAL_OFFSET_TABLE_-got_label2@ha; \ + addi r3,r3,_GLOBAL_OFFSET_TABLE_-got_label2@l; \ + lwz r3,.LC0@got(r3) +#else +# define LOAD_ARG \ + lis r3,.LC0@ha; \ + la r3,.LC0@l(r3) +#endif + +#define CHECK_SP(reg) \ + cmplw reg, r1; \ + bge+ .Lok; \ + mflr r0; \ + stwu r1,-32(r1); \ + cfi_remember_state; \ + cfi_adjust_cfa_offset (32); \ + stw r0,36(r1); \ + cfi_offset (lr, 4); \ + mr r31,r3; \ + mr r30,r4; \ + li r3,0; \ + addi r4,r1,8; \ + li r0,__NR_sigaltstack; \ + sc; \ + /* Without working sigaltstack we cannot perform the test. */ \ + bso .Lok2; \ + lwz r0,12(r1); \ + andi. r3,r0,1; \ + beq .Lfail; \ + lwz r0,16(r1); \ + lwz r3,8(r1); \ + add r3,r3,r0; \ + sub r3,r3,reg; \ + cmplw r3,r0; \ + bge+ .Lok2; \ +.Lfail: \ + LOAD_ARG; \ + bl HIDDEN_JUMPTARGET (__fortify_fail); \ +.Lok2: \ + mr r3,r31; \ + mr r4,r30; \ + cfi_restore_state; \ +.Lok: + +#include <__longjmp-common.S> diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/a2/Implies b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/a2/Implies new file mode 100644 index 0000000000..6d72414e55 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/a2/Implies @@ -0,0 +1,2 @@ +powerpc/powerpc32/a2/fpu +powerpc/powerpc32/a2 diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/brk.S b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/brk.S new file mode 100644 index 0000000000..736fc89200 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/brk.S @@ -0,0 +1,52 @@ +/* brk system call for Linux/ppc. + Copyright (C) 1995-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#include <sysdep.h> +#define _ERRNO_H 1 +#include <bits/errno.h> + + .comm __curbrk,4,4 + .section ".text" +ENTRY (__brk) + mflr r0 + stwu r1,-16(r1) + cfi_adjust_cfa_offset (16) + stw r3,8(r1) + stw r0,20(r1) + cfi_offset (lr, 4) + DO_CALL(SYS_ify(brk)) + lwz r6,8(r1) +#ifdef PIC + SETUP_GOT_ACCESS(r5,got_label) + addis r5,r5,__curbrk-got_label@ha + stw r3,__curbrk-got_label@l(r5) +#else + lis r4,__curbrk@ha + stw r3,__curbrk@l(r4) +#endif + lwz r0,20(r1) + cmplw r6,r3 + addi r1,r1,16 + mtlr r0 + li r3,0 + blelr+ + li r3,ENOMEM + b __syscall_error@local +END (__brk) + +weak_alias (__brk, brk) diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/c++-types.data b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/c++-types.data new file mode 100644 index 0000000000..fde53bf337 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/c++-types.data @@ -0,0 +1,67 @@ +blkcnt64_t:x +blkcnt_t:l +blksize_t:l +caddr_t:Pc +clockid_t:i +clock_t:l +daddr_t:i +dev_t:y +fd_mask:l +fsblkcnt64_t:y +fsblkcnt_t:m +fsfilcnt64_t:y +fsfilcnt_t:m +fsid_t:8__fsid_t +gid_t:j +id_t:j +ino64_t:y +ino_t:m +int16_t:s +int32_t:i +int64_t:x +int8_t:a +intptr_t:i +key_t:i +loff_t:x +mode_t:j +nlink_t:j +off64_t:x +off_t:l +pid_t:i +pthread_attr_t:14pthread_attr_t +pthread_barrier_t:17pthread_barrier_t +pthread_barrierattr_t:21pthread_barrierattr_t +pthread_cond_t:14pthread_cond_t +pthread_condattr_t:18pthread_condattr_t +pthread_key_t:j +pthread_mutex_t:15pthread_mutex_t +pthread_mutexattr_t:19pthread_mutexattr_t +pthread_once_t:i +pthread_rwlock_t:16pthread_rwlock_t +pthread_rwlockattr_t:20pthread_rwlockattr_t +pthread_spinlock_t:i +pthread_t:m +quad_t:x +register_t:i +rlim64_t:y +rlim_t:m +sigset_t:10__sigset_t +size_t:j +socklen_t:j +ssize_t:i +suseconds_t:l +time_t:l +u_char:h +uid_t:j +uint:j +u_int:j +u_int16_t:t +u_int32_t:j +u_int64_t:y +u_int8_t:h +ulong:m +u_long:m +u_quad_t:y +useconds_t:j +ushort:t +u_short:t diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/cell/Implies b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/cell/Implies new file mode 100644 index 0000000000..29c49a4c24 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/cell/Implies @@ -0,0 +1,2 @@ +powerpc/powerpc32/cell/fpu +powerpc/powerpc32/cell diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/cell/fpu/Implies b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/cell/fpu/Implies new file mode 100644 index 0000000000..7c381f043c --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/cell/fpu/Implies @@ -0,0 +1,3 @@ +# Make sure this comes before the powerpc/powerpc32/fpu that's +# listed in unix/sysv/linux/powerpc/powerpc32/fpu/Implies. +powerpc/powerpc32/cell/fpu diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S new file mode 100644 index 0000000000..a07b7d3238 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S @@ -0,0 +1,101 @@ +/* Wrapper around clone system call. + Copyright (C) 1997-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#include <sysdep.h> +#define _ERRNO_H 1 +#include <bits/errno.h> + +#define CLONE_VM 0x00000100 +#define CLONE_THREAD 0x00010000 + + +/* This is the only really unusual system call in PPC linux, but not + because of any weirdness in the system call itself; because of + all the freaky stuff we have to do to make the call useful. */ + +/* int [r3] clone(int (*fn)(void *arg) [r3], void *child_stack [r4], + int flags [r5], void *arg [r6], void *parent_tid [r7], + void *tls [r8], void *child_tid [r9]); */ + +ENTRY (__clone) + + /* Check for child_stack == NULL || fn == NULL. */ + cmpwi cr0,r4,0 + cmpwi cr1,r3,0 + cror cr0*4+eq,cr1*4+eq,cr0*4+eq + beq- cr0,L(badargs) + + /* Set up stack frame for parent. */ + stwu r1,-32(r1) + cfi_adjust_cfa_offset (32) + stmw r28,16(r1) + + /* Set up stack frame for child. */ + clrrwi r4,r4,4 + li r0,0 + stwu r0,-16(r4) + + /* Save fn, args, stack across syscall. */ + mr r30,r3 /* Function in r30. */ + mr r28,r5 + mr r31,r6 /* Argument in r31. */ + + /* 'flags' argument is first parameter to clone syscall. (The other + argument is the stack pointer, already in r4.) */ + mr r3,r5 + + /* Move the parent_tid, child_tid and tls arguments. */ + mr r5,r7 + mr r6,r8 + mr r7,r9 + + /* End FDE now, because in the child the unwind info will be + wrong. */ + cfi_endproc + + /* Do the call. */ + DO_CALL(SYS_ify(clone)) + + /* Check for child process. */ + cmpwi cr1,r3,0 + crandc cr1*4+eq,cr1*4+eq,cr0*4+so + bne- cr1,L(parent) /* The '-' is to minimise the race. */ + + /* Call procedure. */ + mtctr r30 + mr r3,r31 + bctrl + /* Call _exit with result from procedure. */ + b HIDDEN_JUMPTARGET(_exit) + +L(parent): + /* Parent. Restore registers & return. */ + lmw r28,16(r1) + addi r1,r1,32 + bnslr+ + b __syscall_error@local + +L(badargs): + li r3,EINVAL + b __syscall_error@local + + cfi_startproc +END (__clone) + +libc_hidden_def (__clone) +weak_alias (__clone, clone) diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/configure b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/configure new file mode 100644 index 0000000000..eb58187ff4 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/configure @@ -0,0 +1,4 @@ +# This file is generated from configure.ac by Autoconf. DO NOT EDIT! + # Local configure fragment for sysdeps/unix/sysv/linux/powerpc/powerpc32. + +libc_cv_gcc_unwind_find_fde=yes diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/configure.ac b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/configure.ac new file mode 100644 index 0000000000..e1c4c0d357 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/configure.ac @@ -0,0 +1,4 @@ +GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory. +# Local configure fragment for sysdeps/unix/sysv/linux/powerpc/powerpc32. + +libc_cv_gcc_unwind_find_fde=yes diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/e500/nofpu/Implies b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/e500/nofpu/Implies new file mode 100644 index 0000000000..00365c1cfd --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/e500/nofpu/Implies @@ -0,0 +1,3 @@ +powerpc/powerpc32/e500/nofpu +powerpc/nofpu +powerpc/soft-fp diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/fcntl.c b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/fcntl.c new file mode 100644 index 0000000000..ea951bc4f9 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/fcntl.c @@ -0,0 +1 @@ +#include <sysdeps/unix/sysv/linux/i386/fcntl.c> diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/fe_mask.c b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/fe_mask.c new file mode 100644 index 0000000000..58a4f3f393 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/fe_mask.c @@ -0,0 +1,33 @@ +/* Procedure definition for FE_MASK_ENV for Linux/ppc. + Copyright (C) 2007-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#include <fenv.h> +#include <errno.h> +#include <signal.h> +#include <unistd.h> +#include <sysdep.h> +#include <sys/prctl.h> + +const fenv_t * +__fe_mask_env (void) +{ + INTERNAL_SYSCALL_DECL (err); + INTERNAL_SYSCALL (prctl, err, 2, PR_SET_FPEXC, PR_FP_EXC_DISABLED); + + return FE_DFL_ENV; +} diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/fe_nomask.c b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/fe_nomask.c new file mode 100644 index 0000000000..8b45ba384a --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/fe_nomask.c @@ -0,0 +1,37 @@ +/* Procedure definition for FE_NOMASK_ENV for Linux/ppc. + Copyright (C) 2000-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#include <fenv_libc.h> +#include <errno.h> +#include <signal.h> +#include <unistd.h> +#include <sysdep.h> +#include <sys/prctl.h> +#include <shlib-compat.h> + +const fenv_t * +__fe_nomask_env_priv (void) +{ + INTERNAL_SYSCALL_DECL (err); + INTERNAL_SYSCALL (prctl, err, 2, PR_SET_FPEXC, PR_FP_EXC_PRECISE); + + return FE_ENABLED_ENV; +} +#if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_19) +compat_symbol (libm, __fe_nomask_env_priv, __fe_nomask_env, GLIBC_2_1); +#endif diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist new file mode 100644 index 0000000000..e213895c71 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist @@ -0,0 +1,2475 @@ +GCC_3.0 GCC_3.0 A +GCC_3.0 _Unwind_Find_FDE F +GCC_3.0 __deregister_frame_info_bases F +GCC_3.0 __register_frame_info_bases F +GCC_3.0 __register_frame_info_table_bases F +GLIBC_2.0 GLIBC_2.0 A +GLIBC_2.0 _IO_adjust_column F +GLIBC_2.0 _IO_default_doallocate F +GLIBC_2.0 _IO_default_finish F +GLIBC_2.0 _IO_default_pbackfail F +GLIBC_2.0 _IO_default_uflow F +GLIBC_2.0 _IO_default_xsgetn F +GLIBC_2.0 _IO_default_xsputn F +GLIBC_2.0 _IO_do_write F +GLIBC_2.0 _IO_doallocbuf F +GLIBC_2.0 _IO_fclose F +GLIBC_2.0 _IO_fdopen F +GLIBC_2.0 _IO_feof F +GLIBC_2.0 _IO_ferror F +GLIBC_2.0 _IO_fflush F +GLIBC_2.0 _IO_fgetpos F +GLIBC_2.0 _IO_fgets F +GLIBC_2.0 _IO_file_attach F +GLIBC_2.0 _IO_file_close F +GLIBC_2.0 _IO_file_close_it F +GLIBC_2.0 _IO_file_doallocate F +GLIBC_2.0 _IO_file_fopen F +GLIBC_2.0 _IO_file_init F +GLIBC_2.0 _IO_file_jumps D 0x54 +GLIBC_2.0 _IO_file_open F +GLIBC_2.0 _IO_file_overflow F +GLIBC_2.0 _IO_file_read F +GLIBC_2.0 _IO_file_seek F +GLIBC_2.0 _IO_file_seekoff F +GLIBC_2.0 _IO_file_setbuf F +GLIBC_2.0 _IO_file_stat F +GLIBC_2.0 _IO_file_sync F +GLIBC_2.0 _IO_file_underflow F +GLIBC_2.0 _IO_file_write F +GLIBC_2.0 _IO_file_xsputn F +GLIBC_2.0 _IO_flockfile F +GLIBC_2.0 _IO_flush_all F +GLIBC_2.0 _IO_flush_all_linebuffered F +GLIBC_2.0 _IO_fopen F +GLIBC_2.0 _IO_fprintf F +GLIBC_2.0 _IO_fputs F +GLIBC_2.0 _IO_fread F +GLIBC_2.0 _IO_free_backup_area F +GLIBC_2.0 _IO_fsetpos F +GLIBC_2.0 _IO_ftell F +GLIBC_2.0 _IO_ftrylockfile F +GLIBC_2.0 _IO_funlockfile F +GLIBC_2.0 _IO_fwrite F +GLIBC_2.0 _IO_getc F +GLIBC_2.0 _IO_getline F +GLIBC_2.0 _IO_gets F +GLIBC_2.0 _IO_init F +GLIBC_2.0 _IO_init_marker F +GLIBC_2.0 _IO_link_in F +GLIBC_2.0 _IO_list_all D 0x4 +GLIBC_2.0 _IO_marker_delta F +GLIBC_2.0 _IO_marker_difference F +GLIBC_2.0 _IO_padn F +GLIBC_2.0 _IO_peekc_locked F +GLIBC_2.0 _IO_popen F +GLIBC_2.0 _IO_printf F +GLIBC_2.0 _IO_proc_close F +GLIBC_2.0 _IO_proc_open F +GLIBC_2.0 _IO_putc F +GLIBC_2.0 _IO_puts F +GLIBC_2.0 _IO_remove_marker F +GLIBC_2.0 _IO_seekmark F +GLIBC_2.0 _IO_seekoff F +GLIBC_2.0 _IO_seekpos F +GLIBC_2.0 _IO_setb F +GLIBC_2.0 _IO_setbuffer F +GLIBC_2.0 _IO_setvbuf F +GLIBC_2.0 _IO_sgetn F +GLIBC_2.0 _IO_sprintf F +GLIBC_2.0 _IO_sputbackc F +GLIBC_2.0 _IO_sscanf F +GLIBC_2.0 _IO_stderr_ D 0x50 +GLIBC_2.0 _IO_stdin_ D 0x50 +GLIBC_2.0 _IO_stdout_ D 0x50 +GLIBC_2.0 _IO_str_init_readonly F +GLIBC_2.0 _IO_str_init_static F +GLIBC_2.0 _IO_str_overflow F +GLIBC_2.0 _IO_str_pbackfail F +GLIBC_2.0 _IO_str_seekoff F +GLIBC_2.0 _IO_str_underflow F +GLIBC_2.0 _IO_sungetc F +GLIBC_2.0 _IO_switch_to_get_mode F +GLIBC_2.0 _IO_un_link F +GLIBC_2.0 _IO_ungetc F +GLIBC_2.0 _IO_unsave_markers F +GLIBC_2.0 _IO_vfprintf F +GLIBC_2.0 _IO_vfscanf F +GLIBC_2.0 _IO_vsprintf F +GLIBC_2.0 __adjtimex F +GLIBC_2.0 __after_morecore_hook D 0x4 +GLIBC_2.0 __argz_count F +GLIBC_2.0 __argz_next F +GLIBC_2.0 __argz_stringify F +GLIBC_2.0 __ashldi3 F +GLIBC_2.0 __ashrdi3 F +GLIBC_2.0 __assert_fail F +GLIBC_2.0 __assert_perror_fail F +GLIBC_2.0 __bsd_getpgrp F +GLIBC_2.0 __bzero F +GLIBC_2.0 __check_rhosts_file D 0x4 +GLIBC_2.0 __clone F +GLIBC_2.0 __close F +GLIBC_2.0 __cmpdi2 F +GLIBC_2.0 __cmsg_nxthdr F +GLIBC_2.0 __connect F +GLIBC_2.0 __ctype32_b D 0x4 +GLIBC_2.0 __ctype_b D 0x4 +GLIBC_2.0 __ctype_get_mb_cur_max F +GLIBC_2.0 __ctype_tolower D 0x4 +GLIBC_2.0 __ctype_toupper D 0x4 +GLIBC_2.0 __curbrk D 0x4 +GLIBC_2.0 __daylight D 0x4 +GLIBC_2.0 __dcgettext F +GLIBC_2.0 __default_morecore F +GLIBC_2.0 __deregister_frame F +GLIBC_2.0 __deregister_frame_info F +GLIBC_2.0 __dgettext F +GLIBC_2.0 __divdi3 F +GLIBC_2.0 __dup2 F +GLIBC_2.0 __environ D 0x4 +GLIBC_2.0 __errno_location F +GLIBC_2.0 __fcntl F +GLIBC_2.0 __ffs F +GLIBC_2.0 __finite F +GLIBC_2.0 __finitef F +GLIBC_2.0 __finitel F +GLIBC_2.0 __fixdfdi F +GLIBC_2.0 __fixsfdi F +GLIBC_2.0 __fixunsdfdi F +GLIBC_2.0 __fixunssfdi F +GLIBC_2.0 __floatdidf F +GLIBC_2.0 __floatdisf F +GLIBC_2.0 __fork F +GLIBC_2.0 __fpu_control D 0x4 +GLIBC_2.0 __frame_state_for F +GLIBC_2.0 __free_hook D 0x4 +GLIBC_2.0 __fxstat F +GLIBC_2.0 __getdelim F +GLIBC_2.0 __getpagesize F +GLIBC_2.0 __getpgid F +GLIBC_2.0 __getpid F +GLIBC_2.0 __gettimeofday F +GLIBC_2.0 __gmtime_r F +GLIBC_2.0 __h_errno_location F +GLIBC_2.0 __isinf F +GLIBC_2.0 __isinff F +GLIBC_2.0 __isinfl F +GLIBC_2.0 __isnan F +GLIBC_2.0 __isnanf F +GLIBC_2.0 __isnanl F +GLIBC_2.0 __iswctype F +GLIBC_2.0 __ivaliduser F +GLIBC_2.0 __libc_calloc F +GLIBC_2.0 __libc_free F +GLIBC_2.0 __libc_init_first F +GLIBC_2.0 __libc_mallinfo F +GLIBC_2.0 __libc_malloc F +GLIBC_2.0 __libc_mallopt F +GLIBC_2.0 __libc_memalign F +GLIBC_2.0 __libc_pvalloc F +GLIBC_2.0 __libc_realloc F +GLIBC_2.0 __libc_start_main F +GLIBC_2.0 __libc_valloc F +GLIBC_2.0 __lseek F +GLIBC_2.0 __lshrdi3 F +GLIBC_2.0 __lxstat F +GLIBC_2.0 __malloc_hook D 0x4 +GLIBC_2.0 __malloc_initialize_hook D 0x4 +GLIBC_2.0 __mbrlen F +GLIBC_2.0 __mbrtowc F +GLIBC_2.0 __memalign_hook D 0x4 +GLIBC_2.0 __mempcpy F +GLIBC_2.0 __moddi3 F +GLIBC_2.0 __monstartup F +GLIBC_2.0 __morecore D 0x4 +GLIBC_2.0 __nss_configure_lookup F +GLIBC_2.0 __nss_database_lookup F +GLIBC_2.0 __nss_group_lookup F +GLIBC_2.0 __nss_hosts_lookup F +GLIBC_2.0 __nss_next F +GLIBC_2.0 __nss_passwd_lookup F +GLIBC_2.0 __open F +GLIBC_2.0 __overflow F +GLIBC_2.0 __pipe F +GLIBC_2.0 __printf_fp F +GLIBC_2.0 __profile_frequency F +GLIBC_2.0 __progname D 0x4 +GLIBC_2.0 __progname_full D 0x4 +GLIBC_2.0 __rcmd_errstr D 0x4 +GLIBC_2.0 __read F +GLIBC_2.0 __realloc_hook D 0x4 +GLIBC_2.0 __register_frame F +GLIBC_2.0 __register_frame_info F +GLIBC_2.0 __register_frame_info_table F +GLIBC_2.0 __register_frame_table F +GLIBC_2.0 __res_randomid F +GLIBC_2.0 __sbrk F +GLIBC_2.0 __sched_get_priority_max F +GLIBC_2.0 __sched_get_priority_min F +GLIBC_2.0 __sched_getparam F +GLIBC_2.0 __sched_getscheduler F +GLIBC_2.0 __sched_setscheduler F +GLIBC_2.0 __sched_yield F +GLIBC_2.0 __secure_getenv F +GLIBC_2.0 __select F +GLIBC_2.0 __send F +GLIBC_2.0 __setpgid F +GLIBC_2.0 __sigaction F +GLIBC_2.0 __sigaddset F +GLIBC_2.0 __sigdelset F +GLIBC_2.0 __sigismember F +GLIBC_2.0 __sigpause F +GLIBC_2.0 __sigsetjmp F +GLIBC_2.0 __stpcpy F +GLIBC_2.0 __stpncpy F +GLIBC_2.0 __strcasecmp F +GLIBC_2.0 __strdup F +GLIBC_2.0 __strerror_r F +GLIBC_2.0 __strtod_internal F +GLIBC_2.0 __strtof_internal F +GLIBC_2.0 __strtok_r F +GLIBC_2.0 __strtol_internal F +GLIBC_2.0 __strtold_internal F +GLIBC_2.0 __strtoll_internal F +GLIBC_2.0 __strtoq_internal F +GLIBC_2.0 __strtoul_internal F +GLIBC_2.0 __strtoull_internal F +GLIBC_2.0 __strtouq_internal F +GLIBC_2.0 __sysv_signal F +GLIBC_2.0 __timezone D 0x4 +GLIBC_2.0 __tzname D 0x8 +GLIBC_2.0 __ucmpdi2 F +GLIBC_2.0 __udivdi3 F +GLIBC_2.0 __uflow F +GLIBC_2.0 __umoddi3 F +GLIBC_2.0 __underflow F +GLIBC_2.0 __vfscanf F +GLIBC_2.0 __vsnprintf F +GLIBC_2.0 __vsscanf F +GLIBC_2.0 __wait F +GLIBC_2.0 __waitpid F +GLIBC_2.0 __wcstod_internal F +GLIBC_2.0 __wcstof_internal F +GLIBC_2.0 __wcstol_internal F +GLIBC_2.0 __wcstold_internal F +GLIBC_2.0 __wcstoll_internal F +GLIBC_2.0 __wcstoul_internal F +GLIBC_2.0 __wcstoull_internal F +GLIBC_2.0 __write F +GLIBC_2.0 __xmknod F +GLIBC_2.0 __xpg_basename F +GLIBC_2.0 __xstat F +GLIBC_2.0 _environ D 0x4 +GLIBC_2.0 _exit F +GLIBC_2.0 _libc_intl_domainname D 0x5 +GLIBC_2.0 _longjmp F +GLIBC_2.0 _mcleanup F +GLIBC_2.0 _mcount F +GLIBC_2.0 _nl_default_dirname D 0x12 +GLIBC_2.0 _nl_domain_bindings D 0x4 +GLIBC_2.0 _nl_msg_cat_cntr D 0x4 +GLIBC_2.0 _null_auth D 0xc +GLIBC_2.0 _obstack D 0x4 +GLIBC_2.0 _obstack_allocated_p F +GLIBC_2.0 _obstack_begin F +GLIBC_2.0 _obstack_begin_1 F +GLIBC_2.0 _obstack_free F +GLIBC_2.0 _obstack_memory_used F +GLIBC_2.0 _obstack_newchunk F +GLIBC_2.0 _res D 0x200 +GLIBC_2.0 _rpc_dtablesize F +GLIBC_2.0 _seterr_reply F +GLIBC_2.0 _setjmp F +GLIBC_2.0 _sys_errlist D 0x1ec +GLIBC_2.0 _sys_nerr D 0x4 +GLIBC_2.0 _sys_siglist D 0x80 +GLIBC_2.0 _tolower F +GLIBC_2.0 _toupper F +GLIBC_2.0 a64l F +GLIBC_2.0 abort F +GLIBC_2.0 abs F +GLIBC_2.0 accept F +GLIBC_2.0 access F +GLIBC_2.0 acct F +GLIBC_2.0 addmntent F +GLIBC_2.0 adjtime F +GLIBC_2.0 adjtimex F +GLIBC_2.0 advance F +GLIBC_2.0 alarm F +GLIBC_2.0 alphasort F +GLIBC_2.0 argz_add F +GLIBC_2.0 argz_add_sep F +GLIBC_2.0 argz_append F +GLIBC_2.0 argz_count F +GLIBC_2.0 argz_create F +GLIBC_2.0 argz_create_sep F +GLIBC_2.0 argz_delete F +GLIBC_2.0 argz_extract F +GLIBC_2.0 argz_insert F +GLIBC_2.0 argz_next F +GLIBC_2.0 argz_replace F +GLIBC_2.0 argz_stringify F +GLIBC_2.0 asctime F +GLIBC_2.0 asctime_r F +GLIBC_2.0 asprintf F +GLIBC_2.0 atexit F +GLIBC_2.0 atof F +GLIBC_2.0 atoi F +GLIBC_2.0 atol F +GLIBC_2.0 atoll F +GLIBC_2.0 authnone_create F +GLIBC_2.0 authunix_create F +GLIBC_2.0 authunix_create_default F +GLIBC_2.0 basename F +GLIBC_2.0 bcmp F +GLIBC_2.0 bcopy F +GLIBC_2.0 bdflush F +GLIBC_2.0 bind F +GLIBC_2.0 bindresvport F +GLIBC_2.0 bindtextdomain F +GLIBC_2.0 brk F +GLIBC_2.0 bsd_signal F +GLIBC_2.0 bsearch F +GLIBC_2.0 btowc F +GLIBC_2.0 bzero F +GLIBC_2.0 calloc F +GLIBC_2.0 callrpc F +GLIBC_2.0 canonicalize_file_name F +GLIBC_2.0 catclose F +GLIBC_2.0 catgets F +GLIBC_2.0 catopen F +GLIBC_2.0 cfgetispeed F +GLIBC_2.0 cfgetospeed F +GLIBC_2.0 cfmakeraw F +GLIBC_2.0 cfree F +GLIBC_2.0 cfsetispeed F +GLIBC_2.0 cfsetospeed F +GLIBC_2.0 cfsetspeed F +GLIBC_2.0 chdir F +GLIBC_2.0 chflags F +GLIBC_2.0 chmod F +GLIBC_2.0 chown F +GLIBC_2.0 chroot F +GLIBC_2.0 clearenv F +GLIBC_2.0 clearerr F +GLIBC_2.0 clearerr_unlocked F +GLIBC_2.0 clnt_broadcast F +GLIBC_2.0 clnt_create F +GLIBC_2.0 clnt_pcreateerror F +GLIBC_2.0 clnt_perrno F +GLIBC_2.0 clnt_perror F +GLIBC_2.0 clnt_spcreateerror F +GLIBC_2.0 clnt_sperrno F +GLIBC_2.0 clnt_sperror F +GLIBC_2.0 clntraw_create F +GLIBC_2.0 clnttcp_create F +GLIBC_2.0 clntudp_bufcreate F +GLIBC_2.0 clntudp_create F +GLIBC_2.0 clock F +GLIBC_2.0 clone F +GLIBC_2.0 close F +GLIBC_2.0 closedir F +GLIBC_2.0 closelog F +GLIBC_2.0 confstr F +GLIBC_2.0 connect F +GLIBC_2.0 copysign F +GLIBC_2.0 copysignf F +GLIBC_2.0 copysignl F +GLIBC_2.0 creat F +GLIBC_2.0 create_module F +GLIBC_2.0 ctermid F +GLIBC_2.0 ctime F +GLIBC_2.0 ctime_r F +GLIBC_2.0 cuserid F +GLIBC_2.0 daemon F +GLIBC_2.0 daylight D 0x4 +GLIBC_2.0 dcgettext F +GLIBC_2.0 delete_module F +GLIBC_2.0 dgettext F +GLIBC_2.0 difftime F +GLIBC_2.0 dirfd F +GLIBC_2.0 dirname F +GLIBC_2.0 div F +GLIBC_2.0 dprintf F +GLIBC_2.0 drand48 F +GLIBC_2.0 drand48_r F +GLIBC_2.0 dup F +GLIBC_2.0 dup2 F +GLIBC_2.0 dysize F +GLIBC_2.0 ecvt F +GLIBC_2.0 ecvt_r F +GLIBC_2.0 endaliasent F +GLIBC_2.0 endfsent F +GLIBC_2.0 endgrent F +GLIBC_2.0 endhostent F +GLIBC_2.0 endmntent F +GLIBC_2.0 endnetent F +GLIBC_2.0 endnetgrent F +GLIBC_2.0 endprotoent F +GLIBC_2.0 endpwent F +GLIBC_2.0 endrpcent F +GLIBC_2.0 endservent F +GLIBC_2.0 endspent F +GLIBC_2.0 endttyent F +GLIBC_2.0 endusershell F +GLIBC_2.0 endutent F +GLIBC_2.0 environ D 0x4 +GLIBC_2.0 envz_add F +GLIBC_2.0 envz_entry F +GLIBC_2.0 envz_get F +GLIBC_2.0 envz_merge F +GLIBC_2.0 envz_remove F +GLIBC_2.0 envz_strip F +GLIBC_2.0 erand48 F +GLIBC_2.0 erand48_r F +GLIBC_2.0 err F +GLIBC_2.0 error F +GLIBC_2.0 error_at_line F +GLIBC_2.0 error_message_count D 0x4 +GLIBC_2.0 error_one_per_line D 0x4 +GLIBC_2.0 error_print_progname D 0x4 +GLIBC_2.0 errx F +GLIBC_2.0 ether_aton F +GLIBC_2.0 ether_aton_r F +GLIBC_2.0 ether_hostton F +GLIBC_2.0 ether_line F +GLIBC_2.0 ether_ntoa F +GLIBC_2.0 ether_ntoa_r F +GLIBC_2.0 ether_ntohost F +GLIBC_2.0 euidaccess F +GLIBC_2.0 execl F +GLIBC_2.0 execle F +GLIBC_2.0 execlp F +GLIBC_2.0 execv F +GLIBC_2.0 execve F +GLIBC_2.0 execvp F +GLIBC_2.0 exit F +GLIBC_2.0 fchdir F +GLIBC_2.0 fchflags F +GLIBC_2.0 fchmod F +GLIBC_2.0 fchown F +GLIBC_2.0 fclose F +GLIBC_2.0 fcloseall F +GLIBC_2.0 fcntl F +GLIBC_2.0 fcvt F +GLIBC_2.0 fcvt_r F +GLIBC_2.0 fdatasync F +GLIBC_2.0 fdopen F +GLIBC_2.0 feof F +GLIBC_2.0 feof_unlocked F +GLIBC_2.0 ferror F +GLIBC_2.0 ferror_unlocked F +GLIBC_2.0 fexecve F +GLIBC_2.0 fflush F +GLIBC_2.0 fflush_unlocked F +GLIBC_2.0 ffs F +GLIBC_2.0 fgetc F +GLIBC_2.0 fgetgrent F +GLIBC_2.0 fgetgrent_r F +GLIBC_2.0 fgetpos F +GLIBC_2.0 fgetpwent F +GLIBC_2.0 fgetpwent_r F +GLIBC_2.0 fgets F +GLIBC_2.0 fgetspent F +GLIBC_2.0 fgetspent_r F +GLIBC_2.0 fileno F +GLIBC_2.0 fileno_unlocked F +GLIBC_2.0 finite F +GLIBC_2.0 finitef F +GLIBC_2.0 finitel F +GLIBC_2.0 flock F +GLIBC_2.0 flockfile F +GLIBC_2.0 fnmatch F +GLIBC_2.0 fopen F +GLIBC_2.0 fopencookie F +GLIBC_2.0 fork F +GLIBC_2.0 fpathconf F +GLIBC_2.0 fprintf F +GLIBC_2.0 fputc F +GLIBC_2.0 fputc_unlocked F +GLIBC_2.0 fputs F +GLIBC_2.0 fread F +GLIBC_2.0 free F +GLIBC_2.0 freeaddrinfo F +GLIBC_2.0 freopen F +GLIBC_2.0 frexp F +GLIBC_2.0 frexpf F +GLIBC_2.0 frexpl F +GLIBC_2.0 fscanf F +GLIBC_2.0 fseek F +GLIBC_2.0 fsetpos F +GLIBC_2.0 fstatfs F +GLIBC_2.0 fsync F +GLIBC_2.0 ftell F +GLIBC_2.0 ftime F +GLIBC_2.0 ftok F +GLIBC_2.0 ftruncate F +GLIBC_2.0 ftrylockfile F +GLIBC_2.0 fts_children F +GLIBC_2.0 fts_close F +GLIBC_2.0 fts_open F +GLIBC_2.0 fts_read F +GLIBC_2.0 fts_set F +GLIBC_2.0 ftw F +GLIBC_2.0 funlockfile F +GLIBC_2.0 fwrite F +GLIBC_2.0 gcvt F +GLIBC_2.0 get_avphys_pages F +GLIBC_2.0 get_current_dir_name F +GLIBC_2.0 get_kernel_syms F +GLIBC_2.0 get_myaddress F +GLIBC_2.0 get_nprocs F +GLIBC_2.0 get_nprocs_conf F +GLIBC_2.0 get_phys_pages F +GLIBC_2.0 getaddrinfo F +GLIBC_2.0 getaliasbyname F +GLIBC_2.0 getaliasbyname_r F +GLIBC_2.0 getaliasent F +GLIBC_2.0 getaliasent_r F +GLIBC_2.0 getc F +GLIBC_2.0 getc_unlocked F +GLIBC_2.0 getchar F +GLIBC_2.0 getchar_unlocked F +GLIBC_2.0 getcwd F +GLIBC_2.0 getdelim F +GLIBC_2.0 getdirentries F +GLIBC_2.0 getdomainname F +GLIBC_2.0 getdtablesize F +GLIBC_2.0 getegid F +GLIBC_2.0 getenv F +GLIBC_2.0 geteuid F +GLIBC_2.0 getfsent F +GLIBC_2.0 getfsfile F +GLIBC_2.0 getfsspec F +GLIBC_2.0 getgid F +GLIBC_2.0 getgrent F +GLIBC_2.0 getgrent_r F +GLIBC_2.0 getgrgid F +GLIBC_2.0 getgrgid_r F +GLIBC_2.0 getgrnam F +GLIBC_2.0 getgrnam_r F +GLIBC_2.0 getgroups F +GLIBC_2.0 gethostbyaddr F +GLIBC_2.0 gethostbyaddr_r F +GLIBC_2.0 gethostbyname F +GLIBC_2.0 gethostbyname2 F +GLIBC_2.0 gethostbyname2_r F +GLIBC_2.0 gethostbyname_r F +GLIBC_2.0 gethostent F +GLIBC_2.0 gethostent_r F +GLIBC_2.0 gethostid F +GLIBC_2.0 gethostname F +GLIBC_2.0 getitimer F +GLIBC_2.0 getline F +GLIBC_2.0 getlogin F +GLIBC_2.0 getlogin_r F +GLIBC_2.0 getmntent F +GLIBC_2.0 getmntent_r F +GLIBC_2.0 getnetbyaddr F +GLIBC_2.0 getnetbyaddr_r F +GLIBC_2.0 getnetbyname F +GLIBC_2.0 getnetbyname_r F +GLIBC_2.0 getnetent F +GLIBC_2.0 getnetent_r F +GLIBC_2.0 getnetgrent F +GLIBC_2.0 getnetgrent_r F +GLIBC_2.0 getopt F +GLIBC_2.0 getopt_long F +GLIBC_2.0 getopt_long_only F +GLIBC_2.0 getpagesize F +GLIBC_2.0 getpass F +GLIBC_2.0 getpeername F +GLIBC_2.0 getpgid F +GLIBC_2.0 getpgrp F +GLIBC_2.0 getpid F +GLIBC_2.0 getppid F +GLIBC_2.0 getpriority F +GLIBC_2.0 getprotobyname F +GLIBC_2.0 getprotobyname_r F +GLIBC_2.0 getprotobynumber F +GLIBC_2.0 getprotobynumber_r F +GLIBC_2.0 getprotoent F +GLIBC_2.0 getprotoent_r F +GLIBC_2.0 getpublickey F +GLIBC_2.0 getpw F +GLIBC_2.0 getpwent F +GLIBC_2.0 getpwent_r F +GLIBC_2.0 getpwnam F +GLIBC_2.0 getpwnam_r F +GLIBC_2.0 getpwuid F +GLIBC_2.0 getpwuid_r F +GLIBC_2.0 getresgid F +GLIBC_2.0 getresuid F +GLIBC_2.0 getrlimit F +GLIBC_2.0 getrpcbyname F +GLIBC_2.0 getrpcbyname_r F +GLIBC_2.0 getrpcbynumber F +GLIBC_2.0 getrpcbynumber_r F +GLIBC_2.0 getrpcent F +GLIBC_2.0 getrpcent_r F +GLIBC_2.0 getrpcport F +GLIBC_2.0 getrusage F +GLIBC_2.0 gets F +GLIBC_2.0 getsecretkey F +GLIBC_2.0 getservbyname F +GLIBC_2.0 getservbyname_r F +GLIBC_2.0 getservbyport F +GLIBC_2.0 getservbyport_r F +GLIBC_2.0 getservent F +GLIBC_2.0 getservent_r F +GLIBC_2.0 getsid F +GLIBC_2.0 getsockname F +GLIBC_2.0 getsockopt F +GLIBC_2.0 getspent F +GLIBC_2.0 getspent_r F +GLIBC_2.0 getspnam F +GLIBC_2.0 getspnam_r F +GLIBC_2.0 getsubopt F +GLIBC_2.0 gettext F +GLIBC_2.0 gettimeofday F +GLIBC_2.0 getttyent F +GLIBC_2.0 getttynam F +GLIBC_2.0 getuid F +GLIBC_2.0 getusershell F +GLIBC_2.0 getutent F +GLIBC_2.0 getutent_r F +GLIBC_2.0 getutid F +GLIBC_2.0 getutid_r F +GLIBC_2.0 getutline F +GLIBC_2.0 getutline_r F +GLIBC_2.0 getw F +GLIBC_2.0 getwd F +GLIBC_2.0 glob F +GLIBC_2.0 glob_pattern_p F +GLIBC_2.0 globfree F +GLIBC_2.0 gmtime F +GLIBC_2.0 gmtime_r F +GLIBC_2.0 group_member F +GLIBC_2.0 gsignal F +GLIBC_2.0 gtty F +GLIBC_2.0 h_errlist D 0x14 +GLIBC_2.0 h_nerr D 0x4 +GLIBC_2.0 hasmntopt F +GLIBC_2.0 hcreate F +GLIBC_2.0 hcreate_r F +GLIBC_2.0 hdestroy F +GLIBC_2.0 hdestroy_r F +GLIBC_2.0 herror F +GLIBC_2.0 hsearch F +GLIBC_2.0 hsearch_r F +GLIBC_2.0 hstrerror F +GLIBC_2.0 htonl F +GLIBC_2.0 htons F +GLIBC_2.0 index F +GLIBC_2.0 inet_addr F +GLIBC_2.0 inet_aton F +GLIBC_2.0 inet_lnaof F +GLIBC_2.0 inet_makeaddr F +GLIBC_2.0 inet_netof F +GLIBC_2.0 inet_network F +GLIBC_2.0 inet_nsap_addr F +GLIBC_2.0 inet_nsap_ntoa F +GLIBC_2.0 inet_ntoa F +GLIBC_2.0 inet_ntop F +GLIBC_2.0 inet_pton F +GLIBC_2.0 init_module F +GLIBC_2.0 initgroups F +GLIBC_2.0 initstate F +GLIBC_2.0 initstate_r F +GLIBC_2.0 innetgr F +GLIBC_2.0 insque F +GLIBC_2.0 ioctl F +GLIBC_2.0 iruserok F +GLIBC_2.0 isalnum F +GLIBC_2.0 isalpha F +GLIBC_2.0 isascii F +GLIBC_2.0 isatty F +GLIBC_2.0 isblank F +GLIBC_2.0 iscntrl F +GLIBC_2.0 isdigit F +GLIBC_2.0 isfdtype F +GLIBC_2.0 isgraph F +GLIBC_2.0 isinf F +GLIBC_2.0 isinff F +GLIBC_2.0 isinfl F +GLIBC_2.0 islower F +GLIBC_2.0 isnan F +GLIBC_2.0 isnanf F +GLIBC_2.0 isnanl F +GLIBC_2.0 isprint F +GLIBC_2.0 ispunct F +GLIBC_2.0 isspace F +GLIBC_2.0 isupper F +GLIBC_2.0 iswalnum F +GLIBC_2.0 iswalpha F +GLIBC_2.0 iswcntrl F +GLIBC_2.0 iswctype F +GLIBC_2.0 iswdigit F +GLIBC_2.0 iswgraph F +GLIBC_2.0 iswlower F +GLIBC_2.0 iswprint F +GLIBC_2.0 iswpunct F +GLIBC_2.0 iswspace F +GLIBC_2.0 iswupper F +GLIBC_2.0 iswxdigit F +GLIBC_2.0 isxdigit F +GLIBC_2.0 jrand48 F +GLIBC_2.0 jrand48_r F +GLIBC_2.0 kill F +GLIBC_2.0 killpg F +GLIBC_2.0 klogctl F +GLIBC_2.0 l64a F +GLIBC_2.0 labs F +GLIBC_2.0 lchown F +GLIBC_2.0 lckpwdf F +GLIBC_2.0 lcong48 F +GLIBC_2.0 lcong48_r F +GLIBC_2.0 ldexp F +GLIBC_2.0 ldexpf F +GLIBC_2.0 ldexpl F +GLIBC_2.0 ldiv F +GLIBC_2.0 lfind F +GLIBC_2.0 link F +GLIBC_2.0 listen F +GLIBC_2.0 llabs F +GLIBC_2.0 lldiv F +GLIBC_2.0 llseek F +GLIBC_2.0 loc1 D 0x4 +GLIBC_2.0 loc2 D 0x4 +GLIBC_2.0 localeconv F +GLIBC_2.0 localtime F +GLIBC_2.0 localtime_r F +GLIBC_2.0 lockf F +GLIBC_2.0 locs D 0x4 +GLIBC_2.0 longjmp F +GLIBC_2.0 lrand48 F +GLIBC_2.0 lrand48_r F +GLIBC_2.0 lsearch F +GLIBC_2.0 lseek F +GLIBC_2.0 madvise F +GLIBC_2.0 mallinfo F +GLIBC_2.0 malloc F +GLIBC_2.0 malloc_get_state F +GLIBC_2.0 malloc_set_state F +GLIBC_2.0 malloc_stats F +GLIBC_2.0 malloc_trim F +GLIBC_2.0 malloc_usable_size F +GLIBC_2.0 mallopt F +GLIBC_2.0 mallwatch D 0x4 +GLIBC_2.0 mblen F +GLIBC_2.0 mbrlen F +GLIBC_2.0 mbrtowc F +GLIBC_2.0 mbsinit F +GLIBC_2.0 mbsnrtowcs F +GLIBC_2.0 mbsrtowcs F +GLIBC_2.0 mbstowcs F +GLIBC_2.0 mbtowc F +GLIBC_2.0 mcheck F +GLIBC_2.0 memalign F +GLIBC_2.0 memccpy F +GLIBC_2.0 memchr F +GLIBC_2.0 memcmp F +GLIBC_2.0 memcpy F +GLIBC_2.0 memfrob F +GLIBC_2.0 memmem F +GLIBC_2.0 memmove F +GLIBC_2.0 memset F +GLIBC_2.0 mkdir F +GLIBC_2.0 mkfifo F +GLIBC_2.0 mkstemp F +GLIBC_2.0 mktemp F +GLIBC_2.0 mktime F +GLIBC_2.0 mlock F +GLIBC_2.0 mlockall F +GLIBC_2.0 mmap F +GLIBC_2.0 modf F +GLIBC_2.0 modff F +GLIBC_2.0 modfl F +GLIBC_2.0 monstartup F +GLIBC_2.0 mount F +GLIBC_2.0 mprobe F +GLIBC_2.0 mprotect F +GLIBC_2.0 mrand48 F +GLIBC_2.0 mrand48_r F +GLIBC_2.0 mremap F +GLIBC_2.0 msgctl F +GLIBC_2.0 msgget F +GLIBC_2.0 msgrcv F +GLIBC_2.0 msgsnd F +GLIBC_2.0 msync F +GLIBC_2.0 mtrace F +GLIBC_2.0 munlock F +GLIBC_2.0 munlockall F +GLIBC_2.0 munmap F +GLIBC_2.0 muntrace F +GLIBC_2.0 nanosleep F +GLIBC_2.0 nfsservctl F +GLIBC_2.0 nice F +GLIBC_2.0 nl_langinfo F +GLIBC_2.0 nrand48 F +GLIBC_2.0 nrand48_r F +GLIBC_2.0 ntohl F +GLIBC_2.0 ntohs F +GLIBC_2.0 obstack_alloc_failed_handler D 0x4 +GLIBC_2.0 obstack_exit_failure D 0x4 +GLIBC_2.0 obstack_free F +GLIBC_2.0 obstack_printf F +GLIBC_2.0 obstack_vprintf F +GLIBC_2.0 on_exit F +GLIBC_2.0 open F +GLIBC_2.0 open_memstream F +GLIBC_2.0 opendir F +GLIBC_2.0 openlog F +GLIBC_2.0 optarg D 0x4 +GLIBC_2.0 opterr D 0x4 +GLIBC_2.0 optind D 0x4 +GLIBC_2.0 optopt D 0x4 +GLIBC_2.0 parse_printf_format F +GLIBC_2.0 pathconf F +GLIBC_2.0 pause F +GLIBC_2.0 pclose F +GLIBC_2.0 perror F +GLIBC_2.0 personality F +GLIBC_2.0 pipe F +GLIBC_2.0 pmap_getmaps F +GLIBC_2.0 pmap_getport F +GLIBC_2.0 pmap_rmtcall F +GLIBC_2.0 pmap_set F +GLIBC_2.0 pmap_unset F +GLIBC_2.0 poll F +GLIBC_2.0 popen F +GLIBC_2.0 prctl F +GLIBC_2.0 printf F +GLIBC_2.0 profil F +GLIBC_2.0 program_invocation_name D 0x4 +GLIBC_2.0 program_invocation_short_name D 0x4 +GLIBC_2.0 pselect F +GLIBC_2.0 psignal F +GLIBC_2.0 pthread_attr_destroy F +GLIBC_2.0 pthread_attr_getdetachstate F +GLIBC_2.0 pthread_attr_getinheritsched F +GLIBC_2.0 pthread_attr_getschedparam F +GLIBC_2.0 pthread_attr_getschedpolicy F +GLIBC_2.0 pthread_attr_getscope F +GLIBC_2.0 pthread_attr_init F +GLIBC_2.0 pthread_attr_setdetachstate F +GLIBC_2.0 pthread_attr_setinheritsched F +GLIBC_2.0 pthread_attr_setschedparam F +GLIBC_2.0 pthread_attr_setschedpolicy F +GLIBC_2.0 pthread_attr_setscope F +GLIBC_2.0 pthread_cond_broadcast F +GLIBC_2.0 pthread_cond_destroy F +GLIBC_2.0 pthread_cond_init F +GLIBC_2.0 pthread_cond_signal F +GLIBC_2.0 pthread_cond_timedwait F +GLIBC_2.0 pthread_cond_wait F +GLIBC_2.0 pthread_condattr_destroy F +GLIBC_2.0 pthread_condattr_init F +GLIBC_2.0 pthread_equal F +GLIBC_2.0 pthread_exit F +GLIBC_2.0 pthread_getschedparam F +GLIBC_2.0 pthread_mutex_destroy F +GLIBC_2.0 pthread_mutex_init F +GLIBC_2.0 pthread_mutex_lock F +GLIBC_2.0 pthread_mutex_unlock F +GLIBC_2.0 pthread_self F +GLIBC_2.0 pthread_setcancelstate F +GLIBC_2.0 pthread_setcanceltype F +GLIBC_2.0 pthread_setschedparam F +GLIBC_2.0 ptrace F +GLIBC_2.0 putc F +GLIBC_2.0 putc_unlocked F +GLIBC_2.0 putchar F +GLIBC_2.0 putchar_unlocked F +GLIBC_2.0 putenv F +GLIBC_2.0 putpwent F +GLIBC_2.0 puts F +GLIBC_2.0 putspent F +GLIBC_2.0 pututline F +GLIBC_2.0 putw F +GLIBC_2.0 pvalloc F +GLIBC_2.0 qecvt F +GLIBC_2.0 qecvt_r F +GLIBC_2.0 qfcvt F +GLIBC_2.0 qfcvt_r F +GLIBC_2.0 qgcvt F +GLIBC_2.0 qsort F +GLIBC_2.0 query_module F +GLIBC_2.0 quotactl F +GLIBC_2.0 raise F +GLIBC_2.0 rand F +GLIBC_2.0 rand_r F +GLIBC_2.0 random F +GLIBC_2.0 random_r F +GLIBC_2.0 rcmd F +GLIBC_2.0 re_comp F +GLIBC_2.0 re_compile_fastmap F +GLIBC_2.0 re_compile_pattern F +GLIBC_2.0 re_exec F +GLIBC_2.0 re_match F +GLIBC_2.0 re_match_2 F +GLIBC_2.0 re_max_failures D 0x4 +GLIBC_2.0 re_search F +GLIBC_2.0 re_search_2 F +GLIBC_2.0 re_set_registers F +GLIBC_2.0 re_set_syntax F +GLIBC_2.0 re_syntax_options D 0x4 +GLIBC_2.0 read F +GLIBC_2.0 readdir F +GLIBC_2.0 readdir_r F +GLIBC_2.0 readlink F +GLIBC_2.0 readv F +GLIBC_2.0 realloc F +GLIBC_2.0 realpath F +GLIBC_2.0 reboot F +GLIBC_2.0 recv F +GLIBC_2.0 recvfrom F +GLIBC_2.0 recvmsg F +GLIBC_2.0 regcomp F +GLIBC_2.0 regerror F +GLIBC_2.0 regexec F +GLIBC_2.0 regfree F +GLIBC_2.0 register_printf_function F +GLIBC_2.0 registerrpc F +GLIBC_2.0 remove F +GLIBC_2.0 remque F +GLIBC_2.0 rename F +GLIBC_2.0 res_init F +GLIBC_2.0 revoke F +GLIBC_2.0 rewind F +GLIBC_2.0 rewinddir F +GLIBC_2.0 rexec F +GLIBC_2.0 rexecoptions D 0x4 +GLIBC_2.0 rindex F +GLIBC_2.0 rmdir F +GLIBC_2.0 rpc_createerr D 0x10 +GLIBC_2.0 rpmatch F +GLIBC_2.0 rresvport F +GLIBC_2.0 ruserok F +GLIBC_2.0 ruserpass F +GLIBC_2.0 sbrk F +GLIBC_2.0 scalbn F +GLIBC_2.0 scalbnf F +GLIBC_2.0 scalbnl F +GLIBC_2.0 scandir F +GLIBC_2.0 scanf F +GLIBC_2.0 sched_get_priority_max F +GLIBC_2.0 sched_get_priority_min F +GLIBC_2.0 sched_getparam F +GLIBC_2.0 sched_getscheduler F +GLIBC_2.0 sched_rr_get_interval F +GLIBC_2.0 sched_setparam F +GLIBC_2.0 sched_setscheduler F +GLIBC_2.0 sched_yield F +GLIBC_2.0 seed48 F +GLIBC_2.0 seed48_r F +GLIBC_2.0 seekdir F +GLIBC_2.0 select F +GLIBC_2.0 semctl F +GLIBC_2.0 semget F +GLIBC_2.0 semop F +GLIBC_2.0 send F +GLIBC_2.0 sendmsg F +GLIBC_2.0 sendto F +GLIBC_2.0 setaliasent F +GLIBC_2.0 setbuf F +GLIBC_2.0 setbuffer F +GLIBC_2.0 setcontext F +GLIBC_2.0 setdomainname F +GLIBC_2.0 setegid F +GLIBC_2.0 setenv F +GLIBC_2.0 seteuid F +GLIBC_2.0 setfsent F +GLIBC_2.0 setfsgid F +GLIBC_2.0 setfsuid F +GLIBC_2.0 setgid F +GLIBC_2.0 setgrent F +GLIBC_2.0 setgroups F +GLIBC_2.0 sethostent F +GLIBC_2.0 sethostid F +GLIBC_2.0 sethostname F +GLIBC_2.0 setitimer F +GLIBC_2.0 setjmp F +GLIBC_2.0 setlinebuf F +GLIBC_2.0 setlocale F +GLIBC_2.0 setlogin F +GLIBC_2.0 setlogmask F +GLIBC_2.0 setmntent F +GLIBC_2.0 setnetent F +GLIBC_2.0 setnetgrent F +GLIBC_2.0 setpgid F +GLIBC_2.0 setpgrp F +GLIBC_2.0 setpriority F +GLIBC_2.0 setprotoent F +GLIBC_2.0 setpwent F +GLIBC_2.0 setregid F +GLIBC_2.0 setresgid F +GLIBC_2.0 setresuid F +GLIBC_2.0 setreuid F +GLIBC_2.0 setrlimit F +GLIBC_2.0 setrpcent F +GLIBC_2.0 setservent F +GLIBC_2.0 setsid F +GLIBC_2.0 setsockopt F +GLIBC_2.0 setspent F +GLIBC_2.0 setstate F +GLIBC_2.0 setstate_r F +GLIBC_2.0 settimeofday F +GLIBC_2.0 setttyent F +GLIBC_2.0 setuid F +GLIBC_2.0 setusershell F +GLIBC_2.0 setutent F +GLIBC_2.0 setvbuf F +GLIBC_2.0 sgetspent F +GLIBC_2.0 sgetspent_r F +GLIBC_2.0 shmat F +GLIBC_2.0 shmctl F +GLIBC_2.0 shmdt F +GLIBC_2.0 shmget F +GLIBC_2.0 shutdown F +GLIBC_2.0 sigaction F +GLIBC_2.0 sigaddset F +GLIBC_2.0 sigaltstack F +GLIBC_2.0 sigandset F +GLIBC_2.0 sigblock F +GLIBC_2.0 sigdelset F +GLIBC_2.0 sigemptyset F +GLIBC_2.0 sigfillset F +GLIBC_2.0 siggetmask F +GLIBC_2.0 siginterrupt F +GLIBC_2.0 sigisemptyset F +GLIBC_2.0 sigismember F +GLIBC_2.0 siglongjmp F +GLIBC_2.0 signal F +GLIBC_2.0 sigorset F +GLIBC_2.0 sigpause F +GLIBC_2.0 sigpending F +GLIBC_2.0 sigprocmask F +GLIBC_2.0 sigreturn F +GLIBC_2.0 sigsetmask F +GLIBC_2.0 sigstack F +GLIBC_2.0 sigsuspend F +GLIBC_2.0 sigvec F +GLIBC_2.0 sigwait F +GLIBC_2.0 sleep F +GLIBC_2.0 snprintf F +GLIBC_2.0 socket F +GLIBC_2.0 socketpair F +GLIBC_2.0 sprintf F +GLIBC_2.0 srand F +GLIBC_2.0 srand48 F +GLIBC_2.0 srand48_r F +GLIBC_2.0 srandom F +GLIBC_2.0 srandom_r F +GLIBC_2.0 sscanf F +GLIBC_2.0 ssignal F +GLIBC_2.0 sstk F +GLIBC_2.0 statfs F +GLIBC_2.0 stderr D 0x4 +GLIBC_2.0 stdin D 0x4 +GLIBC_2.0 stdout D 0x4 +GLIBC_2.0 step F +GLIBC_2.0 stime F +GLIBC_2.0 stpcpy F +GLIBC_2.0 stpncpy F +GLIBC_2.0 strcasecmp F +GLIBC_2.0 strcat F +GLIBC_2.0 strchr F +GLIBC_2.0 strcmp F +GLIBC_2.0 strcoll F +GLIBC_2.0 strcpy F +GLIBC_2.0 strcspn F +GLIBC_2.0 strdup F +GLIBC_2.0 strerror F +GLIBC_2.0 strerror_r F +GLIBC_2.0 strfmon F +GLIBC_2.0 strfry F +GLIBC_2.0 strftime F +GLIBC_2.0 strlen F +GLIBC_2.0 strncasecmp F +GLIBC_2.0 strncat F +GLIBC_2.0 strncmp F +GLIBC_2.0 strncpy F +GLIBC_2.0 strndup F +GLIBC_2.0 strnlen F +GLIBC_2.0 strpbrk F +GLIBC_2.0 strptime F +GLIBC_2.0 strrchr F +GLIBC_2.0 strsep F +GLIBC_2.0 strsignal F +GLIBC_2.0 strspn F +GLIBC_2.0 strstr F +GLIBC_2.0 strtod F +GLIBC_2.0 strtof F +GLIBC_2.0 strtok F +GLIBC_2.0 strtok_r F +GLIBC_2.0 strtol F +GLIBC_2.0 strtold F +GLIBC_2.0 strtoll F +GLIBC_2.0 strtoq F +GLIBC_2.0 strtoul F +GLIBC_2.0 strtoull F +GLIBC_2.0 strtouq F +GLIBC_2.0 strxfrm F +GLIBC_2.0 stty F +GLIBC_2.0 svc_exit F +GLIBC_2.0 svc_fdset D 0x80 +GLIBC_2.0 svc_getreq F +GLIBC_2.0 svc_getreqset F +GLIBC_2.0 svc_register F +GLIBC_2.0 svc_run F +GLIBC_2.0 svc_sendreply F +GLIBC_2.0 svc_unregister F +GLIBC_2.0 svcauthdes_stats D 0xc +GLIBC_2.0 svcerr_auth F +GLIBC_2.0 svcerr_decode F +GLIBC_2.0 svcerr_noproc F +GLIBC_2.0 svcerr_noprog F +GLIBC_2.0 svcerr_progvers F +GLIBC_2.0 svcerr_systemerr F +GLIBC_2.0 svcerr_weakauth F +GLIBC_2.0 svcfd_create F +GLIBC_2.0 svcraw_create F +GLIBC_2.0 svctcp_create F +GLIBC_2.0 svcudp_bufcreate F +GLIBC_2.0 svcudp_create F +GLIBC_2.0 svcudp_enablecache F +GLIBC_2.0 swab F +GLIBC_2.0 swapoff F +GLIBC_2.0 swapon F +GLIBC_2.0 symlink F +GLIBC_2.0 sync F +GLIBC_2.0 sys_errlist D 0x1ec +GLIBC_2.0 sys_nerr D 0x4 +GLIBC_2.0 sys_sigabbrev D 0x80 +GLIBC_2.0 sys_siglist D 0x80 +GLIBC_2.0 syscall F +GLIBC_2.0 sysconf F +GLIBC_2.0 sysctl F +GLIBC_2.0 sysinfo F +GLIBC_2.0 syslog F +GLIBC_2.0 system F +GLIBC_2.0 tcdrain F +GLIBC_2.0 tcflow F +GLIBC_2.0 tcflush F +GLIBC_2.0 tcgetattr F +GLIBC_2.0 tcgetpgrp F +GLIBC_2.0 tcsendbreak F +GLIBC_2.0 tcsetattr F +GLIBC_2.0 tcsetpgrp F +GLIBC_2.0 tdelete F +GLIBC_2.0 telldir F +GLIBC_2.0 tempnam F +GLIBC_2.0 textdomain F +GLIBC_2.0 tfind F +GLIBC_2.0 time F +GLIBC_2.0 timegm F +GLIBC_2.0 timelocal F +GLIBC_2.0 times F +GLIBC_2.0 timezone D 0x4 +GLIBC_2.0 tmpfile F +GLIBC_2.0 tmpnam F +GLIBC_2.0 tmpnam_r F +GLIBC_2.0 toascii F +GLIBC_2.0 tolower F +GLIBC_2.0 toupper F +GLIBC_2.0 towctrans F +GLIBC_2.0 towlower F +GLIBC_2.0 towupper F +GLIBC_2.0 tr_break F +GLIBC_2.0 truncate F +GLIBC_2.0 tsearch F +GLIBC_2.0 ttyname F +GLIBC_2.0 ttyname_r F +GLIBC_2.0 ttyslot F +GLIBC_2.0 twalk F +GLIBC_2.0 tzname D 0x8 +GLIBC_2.0 tzset F +GLIBC_2.0 ualarm F +GLIBC_2.0 ulckpwdf F +GLIBC_2.0 ulimit F +GLIBC_2.0 umask F +GLIBC_2.0 umount F +GLIBC_2.0 uname F +GLIBC_2.0 ungetc F +GLIBC_2.0 unlink F +GLIBC_2.0 unsetenv F +GLIBC_2.0 updwtmp F +GLIBC_2.0 uselib F +GLIBC_2.0 usleep F +GLIBC_2.0 ustat F +GLIBC_2.0 utime F +GLIBC_2.0 utimes F +GLIBC_2.0 utmpname F +GLIBC_2.0 valloc F +GLIBC_2.0 vasprintf F +GLIBC_2.0 vdprintf F +GLIBC_2.0 verr F +GLIBC_2.0 verrx F +GLIBC_2.0 vfork F +GLIBC_2.0 vfprintf F +GLIBC_2.0 vfscanf F +GLIBC_2.0 vhangup F +GLIBC_2.0 vlimit F +GLIBC_2.0 vprintf F +GLIBC_2.0 vscanf F +GLIBC_2.0 vsnprintf F +GLIBC_2.0 vsprintf F +GLIBC_2.0 vsscanf F +GLIBC_2.0 vsyslog F +GLIBC_2.0 vtimes F +GLIBC_2.0 vwarn F +GLIBC_2.0 vwarnx F +GLIBC_2.0 wait F +GLIBC_2.0 wait3 F +GLIBC_2.0 wait4 F +GLIBC_2.0 waitpid F +GLIBC_2.0 warn F +GLIBC_2.0 warnx F +GLIBC_2.0 wcpcpy F +GLIBC_2.0 wcpncpy F +GLIBC_2.0 wcrtomb F +GLIBC_2.0 wcscat F +GLIBC_2.0 wcschr F +GLIBC_2.0 wcscmp F +GLIBC_2.0 wcscoll F +GLIBC_2.0 wcscpy F +GLIBC_2.0 wcscspn F +GLIBC_2.0 wcsdup F +GLIBC_2.0 wcslen F +GLIBC_2.0 wcsncat F +GLIBC_2.0 wcsncmp F +GLIBC_2.0 wcsncpy F +GLIBC_2.0 wcsnrtombs F +GLIBC_2.0 wcspbrk F +GLIBC_2.0 wcsrchr F +GLIBC_2.0 wcsrtombs F +GLIBC_2.0 wcsspn F +GLIBC_2.0 wcsstr F +GLIBC_2.0 wcstod F +GLIBC_2.0 wcstof F +GLIBC_2.0 wcstok F +GLIBC_2.0 wcstol F +GLIBC_2.0 wcstold F +GLIBC_2.0 wcstombs F +GLIBC_2.0 wcstoq F +GLIBC_2.0 wcstoul F +GLIBC_2.0 wcstouq F +GLIBC_2.0 wcswidth F +GLIBC_2.0 wcsxfrm F +GLIBC_2.0 wctob F +GLIBC_2.0 wctomb F +GLIBC_2.0 wctrans F +GLIBC_2.0 wctype F +GLIBC_2.0 wcwidth F +GLIBC_2.0 wmemchr F +GLIBC_2.0 wmemcmp F +GLIBC_2.0 wmemcpy F +GLIBC_2.0 wmemmove F +GLIBC_2.0 wmemset F +GLIBC_2.0 write F +GLIBC_2.0 writev F +GLIBC_2.0 xdr_accepted_reply F +GLIBC_2.0 xdr_array F +GLIBC_2.0 xdr_authunix_parms F +GLIBC_2.0 xdr_bool F +GLIBC_2.0 xdr_bytes F +GLIBC_2.0 xdr_callhdr F +GLIBC_2.0 xdr_callmsg F +GLIBC_2.0 xdr_char F +GLIBC_2.0 xdr_cryptkeyarg F +GLIBC_2.0 xdr_cryptkeyarg2 F +GLIBC_2.0 xdr_cryptkeyres F +GLIBC_2.0 xdr_des_block F +GLIBC_2.0 xdr_double F +GLIBC_2.0 xdr_enum F +GLIBC_2.0 xdr_float F +GLIBC_2.0 xdr_free F +GLIBC_2.0 xdr_int F +GLIBC_2.0 xdr_key_netstarg F +GLIBC_2.0 xdr_key_netstres F +GLIBC_2.0 xdr_keybuf F +GLIBC_2.0 xdr_keystatus F +GLIBC_2.0 xdr_long F +GLIBC_2.0 xdr_netobj F +GLIBC_2.0 xdr_opaque F +GLIBC_2.0 xdr_opaque_auth F +GLIBC_2.0 xdr_pmap F +GLIBC_2.0 xdr_pmaplist F +GLIBC_2.0 xdr_pointer F +GLIBC_2.0 xdr_reference F +GLIBC_2.0 xdr_rejected_reply F +GLIBC_2.0 xdr_replymsg F +GLIBC_2.0 xdr_rmtcall_args F +GLIBC_2.0 xdr_rmtcallres F +GLIBC_2.0 xdr_short F +GLIBC_2.0 xdr_string F +GLIBC_2.0 xdr_u_char F +GLIBC_2.0 xdr_u_int F +GLIBC_2.0 xdr_u_long F +GLIBC_2.0 xdr_u_short F +GLIBC_2.0 xdr_union F +GLIBC_2.0 xdr_vector F +GLIBC_2.0 xdr_void F +GLIBC_2.0 xdr_wrapstring F +GLIBC_2.0 xdrmem_create F +GLIBC_2.0 xdrrec_create F +GLIBC_2.0 xdrrec_endofrecord F +GLIBC_2.0 xdrrec_eof F +GLIBC_2.0 xdrrec_skiprecord F +GLIBC_2.0 xdrstdio_create F +GLIBC_2.0 xencrypt F +GLIBC_2.0 xprt_register F +GLIBC_2.0 xprt_unregister F +GLIBC_2.1 GLIBC_2.1 A +GLIBC_2.1 _IO_2_1_stderr_ D 0xa0 +GLIBC_2.1 _IO_2_1_stdin_ D 0xa0 +GLIBC_2.1 _IO_2_1_stdout_ D 0xa0 +GLIBC_2.1 _IO_do_write F +GLIBC_2.1 _IO_fclose F +GLIBC_2.1 _IO_fdopen F +GLIBC_2.1 _IO_fgetpos64 F +GLIBC_2.1 _IO_file_attach F +GLIBC_2.1 _IO_file_close_it F +GLIBC_2.1 _IO_file_finish F +GLIBC_2.1 _IO_file_fopen F +GLIBC_2.1 _IO_file_init F +GLIBC_2.1 _IO_file_overflow F +GLIBC_2.1 _IO_file_seekoff F +GLIBC_2.1 _IO_file_setbuf F +GLIBC_2.1 _IO_file_sync F +GLIBC_2.1 _IO_file_underflow F +GLIBC_2.1 _IO_file_write F +GLIBC_2.1 _IO_file_xsputn F +GLIBC_2.1 _IO_fopen F +GLIBC_2.1 _IO_fsetpos64 F +GLIBC_2.1 _IO_getline_info F +GLIBC_2.1 _IO_popen F +GLIBC_2.1 _IO_proc_close F +GLIBC_2.1 _IO_proc_open F +GLIBC_2.1 __asprintf F +GLIBC_2.1 __backtrace F +GLIBC_2.1 __backtrace_symbols F +GLIBC_2.1 __backtrace_symbols_fd F +GLIBC_2.1 __duplocale F +GLIBC_2.1 __freelocale F +GLIBC_2.1 __fxstat64 F +GLIBC_2.1 __isalnum_l F +GLIBC_2.1 __isalpha_l F +GLIBC_2.1 __isascii_l F +GLIBC_2.1 __isblank_l F +GLIBC_2.1 __iscntrl_l F +GLIBC_2.1 __isdigit_l F +GLIBC_2.1 __isgraph_l F +GLIBC_2.1 __islower_l F +GLIBC_2.1 __isprint_l F +GLIBC_2.1 __ispunct_l F +GLIBC_2.1 __isspace_l F +GLIBC_2.1 __isupper_l F +GLIBC_2.1 __iswalnum_l F +GLIBC_2.1 __iswalpha_l F +GLIBC_2.1 __iswblank_l F +GLIBC_2.1 __iswcntrl_l F +GLIBC_2.1 __iswctype_l F +GLIBC_2.1 __iswdigit_l F +GLIBC_2.1 __iswgraph_l F +GLIBC_2.1 __iswlower_l F +GLIBC_2.1 __iswprint_l F +GLIBC_2.1 __iswpunct_l F +GLIBC_2.1 __iswspace_l F +GLIBC_2.1 __iswupper_l F +GLIBC_2.1 __iswxdigit_l F +GLIBC_2.1 __isxdigit_l F +GLIBC_2.1 __key_decryptsession_pk_LOCAL D 0x4 +GLIBC_2.1 __key_encryptsession_pk_LOCAL D 0x4 +GLIBC_2.1 __key_gendes_LOCAL D 0x4 +GLIBC_2.1 __libc_allocate_rtsig F +GLIBC_2.1 __libc_current_sigrtmax F +GLIBC_2.1 __libc_current_sigrtmin F +GLIBC_2.1 __libc_freeres F +GLIBC_2.1 __libc_sa_len F +GLIBC_2.1 __lxstat64 F +GLIBC_2.1 __newlocale F +GLIBC_2.1 __poll F +GLIBC_2.1 __pread64 F +GLIBC_2.1 __pwrite64 F +GLIBC_2.1 __rawmemchr F +GLIBC_2.1 __signbit F +GLIBC_2.1 __signbitf F +GLIBC_2.1 __strcasecmp_l F +GLIBC_2.1 __strcasestr F +GLIBC_2.1 __strcoll_l F +GLIBC_2.1 __strfmon_l F +GLIBC_2.1 __strncasecmp_l F +GLIBC_2.1 __strtod_l F +GLIBC_2.1 __strtof_l F +GLIBC_2.1 __strtol_l F +GLIBC_2.1 __strtold_l F +GLIBC_2.1 __strtoll_l F +GLIBC_2.1 __strtoul_l F +GLIBC_2.1 __strtoull_l F +GLIBC_2.1 __strxfrm_l F +GLIBC_2.1 __toascii_l F +GLIBC_2.1 __tolower_l F +GLIBC_2.1 __toupper_l F +GLIBC_2.1 __towctrans F +GLIBC_2.1 __towctrans_l F +GLIBC_2.1 __towlower_l F +GLIBC_2.1 __towupper_l F +GLIBC_2.1 __wcscasecmp_l F +GLIBC_2.1 __wcscoll_l F +GLIBC_2.1 __wcsncasecmp_l F +GLIBC_2.1 __wcstod_l F +GLIBC_2.1 __wcstof_l F +GLIBC_2.1 __wcstol_l F +GLIBC_2.1 __wcstold_l F +GLIBC_2.1 __wcstoll_l F +GLIBC_2.1 __wcstoul_l F +GLIBC_2.1 __wcstoull_l F +GLIBC_2.1 __wcsxfrm_l F +GLIBC_2.1 __wctype_l F +GLIBC_2.1 __xstat64 F +GLIBC_2.1 _authenticate F +GLIBC_2.1 _dl_mcount_wrapper F +GLIBC_2.1 _dl_mcount_wrapper_check F +GLIBC_2.1 _sys_errlist D 0x1f4 +GLIBC_2.1 _sys_nerr D 0x4 +GLIBC_2.1 _sys_siglist D 0x100 +GLIBC_2.1 addseverity F +GLIBC_2.1 alphasort64 F +GLIBC_2.1 argp_err_exit_status D 0x4 +GLIBC_2.1 argp_error F +GLIBC_2.1 argp_failure F +GLIBC_2.1 argp_help F +GLIBC_2.1 argp_parse F +GLIBC_2.1 argp_program_bug_address D 0x4 +GLIBC_2.1 argp_program_version D 0x4 +GLIBC_2.1 argp_program_version_hook D 0x4 +GLIBC_2.1 argp_state_help F +GLIBC_2.1 argp_usage F +GLIBC_2.1 authdes_create F +GLIBC_2.1 authdes_getucred F +GLIBC_2.1 authdes_pk_create F +GLIBC_2.1 backtrace F +GLIBC_2.1 backtrace_symbols F +GLIBC_2.1 backtrace_symbols_fd F +GLIBC_2.1 capget F +GLIBC_2.1 capset F +GLIBC_2.1 cbc_crypt F +GLIBC_2.1 chown F +GLIBC_2.1 clntunix_create F +GLIBC_2.1 creat64 F +GLIBC_2.1 des_setparity F +GLIBC_2.1 ecb_crypt F +GLIBC_2.1 endutxent F +GLIBC_2.1 fattach F +GLIBC_2.1 fclose F +GLIBC_2.1 fdetach F +GLIBC_2.1 fdopen F +GLIBC_2.1 ffsl F +GLIBC_2.1 ffsll F +GLIBC_2.1 fgetc_unlocked F +GLIBC_2.1 fgetpos64 F +GLIBC_2.1 fgets_unlocked F +GLIBC_2.1 fmtmsg F +GLIBC_2.1 fopen F +GLIBC_2.1 fopen64 F +GLIBC_2.1 fputs_unlocked F +GLIBC_2.1 fread_unlocked F +GLIBC_2.1 freopen64 F +GLIBC_2.1 fseeko F +GLIBC_2.1 fseeko64 F +GLIBC_2.1 fsetpos64 F +GLIBC_2.1 fstatfs64 F +GLIBC_2.1 fstatvfs F +GLIBC_2.1 fstatvfs64 F +GLIBC_2.1 ftello F +GLIBC_2.1 ftello64 F +GLIBC_2.1 ftruncate64 F +GLIBC_2.1 ftw64 F +GLIBC_2.1 fwrite_unlocked F +GLIBC_2.1 gai_strerror F +GLIBC_2.1 getcontext F +GLIBC_2.1 getdate F +GLIBC_2.1 getdate_err D 0x4 +GLIBC_2.1 getdate_r F +GLIBC_2.1 getmsg F +GLIBC_2.1 getnameinfo F +GLIBC_2.1 getnetname F +GLIBC_2.1 getpmsg F +GLIBC_2.1 getpt F +GLIBC_2.1 getrlimit64 F +GLIBC_2.1 getutxent F +GLIBC_2.1 getutxid F +GLIBC_2.1 getutxline F +GLIBC_2.1 glob64 F +GLIBC_2.1 globfree64 F +GLIBC_2.1 gnu_get_libc_release F +GLIBC_2.1 gnu_get_libc_version F +GLIBC_2.1 grantpt F +GLIBC_2.1 host2netname F +GLIBC_2.1 iconv F +GLIBC_2.1 iconv_close F +GLIBC_2.1 iconv_open F +GLIBC_2.1 if_freenameindex F +GLIBC_2.1 if_indextoname F +GLIBC_2.1 if_nameindex F +GLIBC_2.1 if_nametoindex F +GLIBC_2.1 in6addr_any D 0x10 +GLIBC_2.1 in6addr_loopback D 0x10 +GLIBC_2.1 isastream F +GLIBC_2.1 iswblank F +GLIBC_2.1 key_decryptsession F +GLIBC_2.1 key_decryptsession_pk F +GLIBC_2.1 key_encryptsession F +GLIBC_2.1 key_encryptsession_pk F +GLIBC_2.1 key_gendes F +GLIBC_2.1 key_get_conv F +GLIBC_2.1 key_secretkey_is_set F +GLIBC_2.1 key_setnet F +GLIBC_2.1 key_setsecret F +GLIBC_2.1 lockf64 F +GLIBC_2.1 lseek64 F +GLIBC_2.1 makecontext F +GLIBC_2.1 mempcpy F +GLIBC_2.1 mmap64 F +GLIBC_2.1 netname2host F +GLIBC_2.1 netname2user F +GLIBC_2.1 nftw F +GLIBC_2.1 nftw64 F +GLIBC_2.1 ntp_adjtime F +GLIBC_2.1 ntp_gettime F +GLIBC_2.1 open64 F +GLIBC_2.1 passwd2des F +GLIBC_2.1 pclose F +GLIBC_2.1 popen F +GLIBC_2.1 pread F +GLIBC_2.1 pread64 F +GLIBC_2.1 printf_size F +GLIBC_2.1 printf_size_info F +GLIBC_2.1 pthread_attr_init F +GLIBC_2.1 ptsname F +GLIBC_2.1 ptsname_r F +GLIBC_2.1 putgrent F +GLIBC_2.1 putmsg F +GLIBC_2.1 putpmsg F +GLIBC_2.1 pututxline F +GLIBC_2.1 pwrite F +GLIBC_2.1 pwrite64 F +GLIBC_2.1 rawmemchr F +GLIBC_2.1 readdir64 F +GLIBC_2.1 readdir64_r F +GLIBC_2.1 rtime F +GLIBC_2.1 scandir64 F +GLIBC_2.1 sendfile F +GLIBC_2.1 setrlimit64 F +GLIBC_2.1 setutxent F +GLIBC_2.1 sighold F +GLIBC_2.1 sigignore F +GLIBC_2.1 sigqueue F +GLIBC_2.1 sigrelse F +GLIBC_2.1 sigset F +GLIBC_2.1 sigtimedwait F +GLIBC_2.1 sigwaitinfo F +GLIBC_2.1 statfs64 F +GLIBC_2.1 statvfs F +GLIBC_2.1 statvfs64 F +GLIBC_2.1 strcasestr F +GLIBC_2.1 strtoimax F +GLIBC_2.1 strtoumax F +GLIBC_2.1 strverscmp F +GLIBC_2.1 svcunix_create F +GLIBC_2.1 svcunixfd_create F +GLIBC_2.1 swapcontext F +GLIBC_2.1 sys_errlist D 0x1f4 +GLIBC_2.1 sys_nerr D 0x4 +GLIBC_2.1 sys_sigabbrev D 0x100 +GLIBC_2.1 sys_siglist D 0x100 +GLIBC_2.1 sysv_signal F +GLIBC_2.1 tcgetsid F +GLIBC_2.1 tdestroy F +GLIBC_2.1 tmpfile F +GLIBC_2.1 tmpfile64 F +GLIBC_2.1 truncate64 F +GLIBC_2.1 umount2 F +GLIBC_2.1 unlockpt F +GLIBC_2.1 updwtmpx F +GLIBC_2.1 user2netname F +GLIBC_2.1 utmpxname F +GLIBC_2.1 versionsort F +GLIBC_2.1 versionsort64 F +GLIBC_2.1 waitid F +GLIBC_2.1 wcscasecmp F +GLIBC_2.1 wcsncasecmp F +GLIBC_2.1 wcsnlen F +GLIBC_2.1 wcstoimax F +GLIBC_2.1 wcstoll F +GLIBC_2.1 wcstoull F +GLIBC_2.1 wcstoumax F +GLIBC_2.1 wcswcs F +GLIBC_2.1 wordexp F +GLIBC_2.1 wordfree F +GLIBC_2.1 xdecrypt F +GLIBC_2.1 xdr_authdes_cred F +GLIBC_2.1 xdr_authdes_verf F +GLIBC_2.1 xdr_getcredres F +GLIBC_2.1 xdr_int16_t F +GLIBC_2.1 xdr_int32_t F +GLIBC_2.1 xdr_int8_t F +GLIBC_2.1 xdr_netnamestr F +GLIBC_2.1 xdr_sizeof F +GLIBC_2.1 xdr_uint16_t F +GLIBC_2.1 xdr_uint32_t F +GLIBC_2.1 xdr_uint8_t F +GLIBC_2.1 xdr_unixcred F +GLIBC_2.1.1 GLIBC_2.1.1 A +GLIBC_2.1.1 _Exit F +GLIBC_2.1.1 __mempcpy_small F +GLIBC_2.1.1 __stpcpy_small F +GLIBC_2.1.1 __strcpy_small F +GLIBC_2.1.1 __strcspn_c1 F +GLIBC_2.1.1 __strcspn_c2 F +GLIBC_2.1.1 __strcspn_c3 F +GLIBC_2.1.1 __strpbrk_c2 F +GLIBC_2.1.1 __strpbrk_c3 F +GLIBC_2.1.1 __strsep_1c F +GLIBC_2.1.1 __strsep_2c F +GLIBC_2.1.1 __strsep_3c F +GLIBC_2.1.1 __strsep_g F +GLIBC_2.1.1 __strspn_c1 F +GLIBC_2.1.1 __strspn_c2 F +GLIBC_2.1.1 __strspn_c3 F +GLIBC_2.1.1 __strtok_r_1c F +GLIBC_2.1.1 __strverscmp F +GLIBC_2.1.1 getutmp F +GLIBC_2.1.1 getutmpx F +GLIBC_2.1.1 imaxabs F +GLIBC_2.1.1 imaxdiv F +GLIBC_2.1.1 strchrnul F +GLIBC_2.1.1 xdr_hyper F +GLIBC_2.1.1 xdr_int64_t F +GLIBC_2.1.1 xdr_longlong_t F +GLIBC_2.1.1 xdr_u_hyper F +GLIBC_2.1.1 xdr_u_longlong_t F +GLIBC_2.1.1 xdr_uint64_t F +GLIBC_2.1.2 GLIBC_2.1.2 A +GLIBC_2.1.2 __vfork F +GLIBC_2.1.2 getaliasbyname_r F +GLIBC_2.1.2 getaliasent_r F +GLIBC_2.1.2 getgrent_r F +GLIBC_2.1.2 getgrgid_r F +GLIBC_2.1.2 getgrnam_r F +GLIBC_2.1.2 gethostbyaddr_r F +GLIBC_2.1.2 gethostbyname2_r F +GLIBC_2.1.2 gethostbyname_r F +GLIBC_2.1.2 gethostent_r F +GLIBC_2.1.2 getnetbyaddr_r F +GLIBC_2.1.2 getnetbyname_r F +GLIBC_2.1.2 getnetent_r F +GLIBC_2.1.2 getprotobyname_r F +GLIBC_2.1.2 getprotobynumber_r F +GLIBC_2.1.2 getprotoent_r F +GLIBC_2.1.2 getpwent_r F +GLIBC_2.1.2 getpwnam_r F +GLIBC_2.1.2 getpwuid_r F +GLIBC_2.1.2 getrpcbyname_r F +GLIBC_2.1.2 getrpcbynumber_r F +GLIBC_2.1.2 getrpcent_r F +GLIBC_2.1.2 getservbyname_r F +GLIBC_2.1.2 getservbyport_r F +GLIBC_2.1.2 getservent_r F +GLIBC_2.1.2 getspent_r F +GLIBC_2.1.2 getspnam_r F +GLIBC_2.1.3 GLIBC_2.1.3 A +GLIBC_2.1.3 __cxa_atexit F +GLIBC_2.1.3 __cxa_finalize F +GLIBC_2.1.3 __sigsuspend F +GLIBC_2.10 GLIBC_2.10 A +GLIBC_2.10 __cxa_at_quick_exit F +GLIBC_2.10 __posix_getopt F +GLIBC_2.10 accept4 F +GLIBC_2.10 endsgent F +GLIBC_2.10 fallocate F +GLIBC_2.10 fgetsgent F +GLIBC_2.10 fgetsgent_r F +GLIBC_2.10 getsgent F +GLIBC_2.10 getsgent_r F +GLIBC_2.10 getsgnam F +GLIBC_2.10 getsgnam_r F +GLIBC_2.10 malloc_info F +GLIBC_2.10 preadv F +GLIBC_2.10 preadv64 F +GLIBC_2.10 psiginfo F +GLIBC_2.10 putsgent F +GLIBC_2.10 pwritev F +GLIBC_2.10 pwritev64 F +GLIBC_2.10 quick_exit F +GLIBC_2.10 register_printf_modifier F +GLIBC_2.10 register_printf_specifier F +GLIBC_2.10 register_printf_type F +GLIBC_2.10 setsgent F +GLIBC_2.10 sgetsgent F +GLIBC_2.10 sgetsgent_r F +GLIBC_2.11 GLIBC_2.11 A +GLIBC_2.11 __longjmp_chk F +GLIBC_2.11 execvpe F +GLIBC_2.11 fallocate64 F +GLIBC_2.11 mkostemps F +GLIBC_2.11 mkostemps64 F +GLIBC_2.11 mkstemps F +GLIBC_2.11 mkstemps64 F +GLIBC_2.12 GLIBC_2.12 A +GLIBC_2.12 _sys_errlist D 0x21c +GLIBC_2.12 _sys_nerr D 0x4 +GLIBC_2.12 ntp_gettimex F +GLIBC_2.12 recvmmsg F +GLIBC_2.12 sys_errlist D 0x21c +GLIBC_2.12 sys_nerr D 0x4 +GLIBC_2.13 GLIBC_2.13 A +GLIBC_2.13 fanotify_init F +GLIBC_2.13 fanotify_mark F +GLIBC_2.13 prlimit F +GLIBC_2.13 prlimit64 F +GLIBC_2.14 GLIBC_2.14 A +GLIBC_2.14 clock_adjtime F +GLIBC_2.14 name_to_handle_at F +GLIBC_2.14 open_by_handle_at F +GLIBC_2.14 sendmmsg F +GLIBC_2.14 setns F +GLIBC_2.14 syncfs F +GLIBC_2.15 GLIBC_2.15 A +GLIBC_2.15 __fdelt_chk F +GLIBC_2.15 __fdelt_warn F +GLIBC_2.15 posix_spawn F +GLIBC_2.15 posix_spawnp F +GLIBC_2.15 process_vm_readv F +GLIBC_2.15 process_vm_writev F +GLIBC_2.15 scandirat F +GLIBC_2.15 scandirat64 F +GLIBC_2.16 GLIBC_2.16 A +GLIBC_2.16 __getauxval F +GLIBC_2.16 __mcount_internal F +GLIBC_2.16 __poll_chk F +GLIBC_2.16 __ppoll_chk F +GLIBC_2.16 aligned_alloc F +GLIBC_2.16 c16rtomb F +GLIBC_2.16 c32rtomb F +GLIBC_2.16 getauxval F +GLIBC_2.16 mbrtoc16 F +GLIBC_2.16 mbrtoc32 F +GLIBC_2.16 timespec_get F +GLIBC_2.17 GLIBC_2.17 A +GLIBC_2.17 __ppc_get_timebase_freq F +GLIBC_2.17 clock_getcpuclockid F +GLIBC_2.17 clock_getres F +GLIBC_2.17 clock_gettime F +GLIBC_2.17 clock_nanosleep F +GLIBC_2.17 clock_settime F +GLIBC_2.17 secure_getenv F +GLIBC_2.18 GLIBC_2.18 A +GLIBC_2.18 __cxa_thread_atexit_impl F +GLIBC_2.2 GLIBC_2.2 A +GLIBC_2.2 _IO_adjust_wcolumn F +GLIBC_2.2 _IO_fgetpos F +GLIBC_2.2 _IO_fgetpos64 F +GLIBC_2.2 _IO_free_wbackup_area F +GLIBC_2.2 _IO_fsetpos F +GLIBC_2.2 _IO_fsetpos64 F +GLIBC_2.2 _IO_init_wmarker F +GLIBC_2.2 _IO_iter_begin F +GLIBC_2.2 _IO_iter_end F +GLIBC_2.2 _IO_iter_file F +GLIBC_2.2 _IO_iter_next F +GLIBC_2.2 _IO_least_wmarker F +GLIBC_2.2 _IO_list_lock F +GLIBC_2.2 _IO_list_resetlock F +GLIBC_2.2 _IO_list_unlock F +GLIBC_2.2 _IO_seekwmark F +GLIBC_2.2 _IO_sputbackwc F +GLIBC_2.2 _IO_sungetwc F +GLIBC_2.2 _IO_switch_to_main_wget_area F +GLIBC_2.2 _IO_switch_to_wbackup_area F +GLIBC_2.2 _IO_switch_to_wget_mode F +GLIBC_2.2 _IO_unsave_wmarkers F +GLIBC_2.2 _IO_wdefault_doallocate F +GLIBC_2.2 _IO_wdefault_finish F +GLIBC_2.2 _IO_wdefault_pbackfail F +GLIBC_2.2 _IO_wdefault_uflow F +GLIBC_2.2 _IO_wdefault_xsgetn F +GLIBC_2.2 _IO_wdefault_xsputn F +GLIBC_2.2 _IO_wdo_write F +GLIBC_2.2 _IO_wdoallocbuf F +GLIBC_2.2 _IO_wfile_jumps D 0x54 +GLIBC_2.2 _IO_wfile_overflow F +GLIBC_2.2 _IO_wfile_seekoff F +GLIBC_2.2 _IO_wfile_sync F +GLIBC_2.2 _IO_wfile_underflow F +GLIBC_2.2 _IO_wfile_xsputn F +GLIBC_2.2 _IO_wmarker_delta F +GLIBC_2.2 _IO_wsetb F +GLIBC_2.2 __assert F +GLIBC_2.2 __ctype32_tolower D 0x4 +GLIBC_2.2 __ctype32_toupper D 0x4 +GLIBC_2.2 __cyg_profile_func_enter F +GLIBC_2.2 __cyg_profile_func_exit F +GLIBC_2.2 __endmntent F +GLIBC_2.2 __fbufsize F +GLIBC_2.2 __flbf F +GLIBC_2.2 __fpending F +GLIBC_2.2 __fpurge F +GLIBC_2.2 __freadable F +GLIBC_2.2 __freading F +GLIBC_2.2 __fsetlocking F +GLIBC_2.2 __fwritable F +GLIBC_2.2 __fwriting F +GLIBC_2.2 __fxstat64 F +GLIBC_2.2 __getmntent_r F +GLIBC_2.2 __lxstat64 F +GLIBC_2.2 __nl_langinfo_l F +GLIBC_2.2 __open64 F +GLIBC_2.2 __res_init F +GLIBC_2.2 __res_nclose F +GLIBC_2.2 __res_ninit F +GLIBC_2.2 __res_state F +GLIBC_2.2 __setmntent F +GLIBC_2.2 __statfs F +GLIBC_2.2 __strndup F +GLIBC_2.2 __sysconf F +GLIBC_2.2 __sysctl F +GLIBC_2.2 __wctrans_l F +GLIBC_2.2 __woverflow F +GLIBC_2.2 __wuflow F +GLIBC_2.2 __wunderflow F +GLIBC_2.2 __xpg_sigpause F +GLIBC_2.2 __xstat64 F +GLIBC_2.2 _flushlbf F +GLIBC_2.2 _res_hconf D 0x30 +GLIBC_2.2 bind_textdomain_codeset F +GLIBC_2.2 dcngettext F +GLIBC_2.2 dngettext F +GLIBC_2.2 fgetpos F +GLIBC_2.2 fgetpos64 F +GLIBC_2.2 fgetwc F +GLIBC_2.2 fgetwc_unlocked F +GLIBC_2.2 fgetws F +GLIBC_2.2 fgetws_unlocked F +GLIBC_2.2 fmemopen F +GLIBC_2.2 fopencookie F +GLIBC_2.2 fputwc F +GLIBC_2.2 fputwc_unlocked F +GLIBC_2.2 fputws F +GLIBC_2.2 fputws_unlocked F +GLIBC_2.2 fsetpos F +GLIBC_2.2 fsetpos64 F +GLIBC_2.2 fwide F +GLIBC_2.2 fwprintf F +GLIBC_2.2 fwscanf F +GLIBC_2.2 getdirentries64 F +GLIBC_2.2 getloadavg F +GLIBC_2.2 getrlimit F +GLIBC_2.2 getrlimit64 F +GLIBC_2.2 getwc F +GLIBC_2.2 getwc_unlocked F +GLIBC_2.2 getwchar F +GLIBC_2.2 getwchar_unlocked F +GLIBC_2.2 glob64 F +GLIBC_2.2 iruserok_af F +GLIBC_2.2 localeconv F +GLIBC_2.2 mcheck_check_all F +GLIBC_2.2 mcheck_pedantic F +GLIBC_2.2 memrchr F +GLIBC_2.2 mincore F +GLIBC_2.2 mkdtemp F +GLIBC_2.2 mkstemp64 F +GLIBC_2.2 moncontrol F +GLIBC_2.2 msgctl F +GLIBC_2.2 ngettext F +GLIBC_2.2 posix_fadvise F +GLIBC_2.2 posix_fadvise64 F +GLIBC_2.2 posix_fallocate F +GLIBC_2.2 posix_fallocate64 F +GLIBC_2.2 posix_madvise F +GLIBC_2.2 posix_memalign F +GLIBC_2.2 posix_spawn F +GLIBC_2.2 posix_spawn_file_actions_addclose F +GLIBC_2.2 posix_spawn_file_actions_adddup2 F +GLIBC_2.2 posix_spawn_file_actions_addopen F +GLIBC_2.2 posix_spawn_file_actions_destroy F +GLIBC_2.2 posix_spawn_file_actions_init F +GLIBC_2.2 posix_spawnattr_destroy F +GLIBC_2.2 posix_spawnattr_getflags F +GLIBC_2.2 posix_spawnattr_getpgroup F +GLIBC_2.2 posix_spawnattr_getschedparam F +GLIBC_2.2 posix_spawnattr_getschedpolicy F +GLIBC_2.2 posix_spawnattr_getsigdefault F +GLIBC_2.2 posix_spawnattr_getsigmask F +GLIBC_2.2 posix_spawnattr_init F +GLIBC_2.2 posix_spawnattr_setflags F +GLIBC_2.2 posix_spawnattr_setpgroup F +GLIBC_2.2 posix_spawnattr_setschedparam F +GLIBC_2.2 posix_spawnattr_setschedpolicy F +GLIBC_2.2 posix_spawnattr_setsigdefault F +GLIBC_2.2 posix_spawnattr_setsigmask F +GLIBC_2.2 posix_spawnp F +GLIBC_2.2 putwc F +GLIBC_2.2 putwc_unlocked F +GLIBC_2.2 putwchar F +GLIBC_2.2 putwchar_unlocked F +GLIBC_2.2 rcmd_af F +GLIBC_2.2 readdir64 F +GLIBC_2.2 readdir64_r F +GLIBC_2.2 rexec_af F +GLIBC_2.2 rresvport_af F +GLIBC_2.2 ruserok_af F +GLIBC_2.2 scandir64 F +GLIBC_2.2 semctl F +GLIBC_2.2 setrlimit F +GLIBC_2.2 shmctl F +GLIBC_2.2 svc_getreq_common F +GLIBC_2.2 svc_getreq_poll F +GLIBC_2.2 svc_max_pollfd D 0x4 +GLIBC_2.2 svc_pollfd D 0x4 +GLIBC_2.2 swprintf F +GLIBC_2.2 swscanf F +GLIBC_2.2 ungetwc F +GLIBC_2.2 vfwprintf F +GLIBC_2.2 vfwscanf F +GLIBC_2.2 vswprintf F +GLIBC_2.2 vswscanf F +GLIBC_2.2 vwprintf F +GLIBC_2.2 vwscanf F +GLIBC_2.2 wcschrnul F +GLIBC_2.2 wcsftime F +GLIBC_2.2 wmempcpy F +GLIBC_2.2 wprintf F +GLIBC_2.2 wscanf F +GLIBC_2.2.1 GLIBC_2.2.1 A +GLIBC_2.2.1 pivot_root F +GLIBC_2.2.1 posix_openpt F +GLIBC_2.2.2 GLIBC_2.2.2 A +GLIBC_2.2.2 __nss_hostname_digits_dots F +GLIBC_2.2.3 GLIBC_2.2.3 A +GLIBC_2.2.3 __rpc_thread_createerr F +GLIBC_2.2.3 __rpc_thread_svc_fdset F +GLIBC_2.2.3 __rpc_thread_svc_max_pollfd F +GLIBC_2.2.3 __rpc_thread_svc_pollfd F +GLIBC_2.2.3 fnmatch F +GLIBC_2.2.3 sprofil F +GLIBC_2.2.4 GLIBC_2.2.4 A +GLIBC_2.2.4 dl_iterate_phdr F +GLIBC_2.2.4 getgrouplist F +GLIBC_2.2.4 sockatmark F +GLIBC_2.2.6 GLIBC_2.2.6 A +GLIBC_2.2.6 __nanosleep F +GLIBC_2.22 GLIBC_2.22 A +GLIBC_2.22 fmemopen F +GLIBC_2.23 GLIBC_2.23 A +GLIBC_2.23 fts64_children F +GLIBC_2.23 fts64_close F +GLIBC_2.23 fts64_open F +GLIBC_2.23 fts64_read F +GLIBC_2.23 fts64_set F +GLIBC_2.24 GLIBC_2.24 A +GLIBC_2.24 quick_exit F +GLIBC_2.25 GLIBC_2.25 A +GLIBC_2.25 __explicit_bzero_chk F +GLIBC_2.25 explicit_bzero F +GLIBC_2.25 getentropy F +GLIBC_2.25 getrandom F +GLIBC_2.25 strfromd F +GLIBC_2.25 strfromf F +GLIBC_2.25 strfroml F +GLIBC_2.26 GLIBC_2.26 A +GLIBC_2.26 preadv2 F +GLIBC_2.26 preadv64v2 F +GLIBC_2.26 pwritev2 F +GLIBC_2.26 pwritev64v2 F +GLIBC_2.26 reallocarray F +GLIBC_2.3 GLIBC_2.3 A +GLIBC_2.3 __ctype_b_loc F +GLIBC_2.3 __ctype_tolower_loc F +GLIBC_2.3 __ctype_toupper_loc F +GLIBC_2.3 __isctype F +GLIBC_2.3 __strftime_l F +GLIBC_2.3 __uselocale F +GLIBC_2.3 __wcsftime_l F +GLIBC_2.3 _sys_errlist D 0x1f8 +GLIBC_2.3 _sys_nerr D 0x4 +GLIBC_2.3 duplocale F +GLIBC_2.3 fgetxattr F +GLIBC_2.3 flistxattr F +GLIBC_2.3 freeifaddrs F +GLIBC_2.3 freelocale F +GLIBC_2.3 fremovexattr F +GLIBC_2.3 fsetxattr F +GLIBC_2.3 futimes F +GLIBC_2.3 getifaddrs F +GLIBC_2.3 getxattr F +GLIBC_2.3 isalnum_l F +GLIBC_2.3 isalpha_l F +GLIBC_2.3 isblank_l F +GLIBC_2.3 iscntrl_l F +GLIBC_2.3 isctype F +GLIBC_2.3 isdigit_l F +GLIBC_2.3 isgraph_l F +GLIBC_2.3 islower_l F +GLIBC_2.3 isprint_l F +GLIBC_2.3 ispunct_l F +GLIBC_2.3 isspace_l F +GLIBC_2.3 isupper_l F +GLIBC_2.3 iswalnum_l F +GLIBC_2.3 iswalpha_l F +GLIBC_2.3 iswblank_l F +GLIBC_2.3 iswcntrl_l F +GLIBC_2.3 iswctype_l F +GLIBC_2.3 iswdigit_l F +GLIBC_2.3 iswgraph_l F +GLIBC_2.3 iswlower_l F +GLIBC_2.3 iswprint_l F +GLIBC_2.3 iswpunct_l F +GLIBC_2.3 iswspace_l F +GLIBC_2.3 iswupper_l F +GLIBC_2.3 iswxdigit_l F +GLIBC_2.3 isxdigit_l F +GLIBC_2.3 lgetxattr F +GLIBC_2.3 listxattr F +GLIBC_2.3 llistxattr F +GLIBC_2.3 lremovexattr F +GLIBC_2.3 lsetxattr F +GLIBC_2.3 lutimes F +GLIBC_2.3 newlocale F +GLIBC_2.3 nl_langinfo_l F +GLIBC_2.3 readahead F +GLIBC_2.3 realpath F +GLIBC_2.3 removexattr F +GLIBC_2.3 sendfile64 F +GLIBC_2.3 setxattr F +GLIBC_2.3 strcasecmp_l F +GLIBC_2.3 strcoll_l F +GLIBC_2.3 strfmon_l F +GLIBC_2.3 strftime_l F +GLIBC_2.3 strncasecmp_l F +GLIBC_2.3 strtod_l F +GLIBC_2.3 strtof_l F +GLIBC_2.3 strtol_l F +GLIBC_2.3 strtold_l F +GLIBC_2.3 strtoll_l F +GLIBC_2.3 strtoul_l F +GLIBC_2.3 strtoull_l F +GLIBC_2.3 strxfrm_l F +GLIBC_2.3 sys_errlist D 0x1f8 +GLIBC_2.3 sys_nerr D 0x4 +GLIBC_2.3 tolower_l F +GLIBC_2.3 toupper_l F +GLIBC_2.3 towctrans_l F +GLIBC_2.3 towlower_l F +GLIBC_2.3 towupper_l F +GLIBC_2.3 uselocale F +GLIBC_2.3 wcscasecmp_l F +GLIBC_2.3 wcscoll_l F +GLIBC_2.3 wcsftime_l F +GLIBC_2.3 wcsncasecmp_l F +GLIBC_2.3 wcstod_l F +GLIBC_2.3 wcstof_l F +GLIBC_2.3 wcstol_l F +GLIBC_2.3 wcstold_l F +GLIBC_2.3 wcstoll_l F +GLIBC_2.3 wcstoul_l F +GLIBC_2.3 wcstoull_l F +GLIBC_2.3 wcsxfrm_l F +GLIBC_2.3 wctrans_l F +GLIBC_2.3 wctype_l F +GLIBC_2.3.2 GLIBC_2.3.2 A +GLIBC_2.3.2 __register_atfork F +GLIBC_2.3.2 epoll_create F +GLIBC_2.3.2 epoll_ctl F +GLIBC_2.3.2 epoll_wait F +GLIBC_2.3.2 lchmod F +GLIBC_2.3.2 pthread_cond_broadcast F +GLIBC_2.3.2 pthread_cond_destroy F +GLIBC_2.3.2 pthread_cond_init F +GLIBC_2.3.2 pthread_cond_signal F +GLIBC_2.3.2 pthread_cond_timedwait F +GLIBC_2.3.2 pthread_cond_wait F +GLIBC_2.3.2 strptime_l F +GLIBC_2.3.3 GLIBC_2.3.3 A +GLIBC_2.3.3 _sys_siglist D 0x104 +GLIBC_2.3.3 getcontext F +GLIBC_2.3.3 gnu_dev_major F +GLIBC_2.3.3 gnu_dev_makedev F +GLIBC_2.3.3 gnu_dev_minor F +GLIBC_2.3.3 inet6_option_alloc F +GLIBC_2.3.3 inet6_option_append F +GLIBC_2.3.3 inet6_option_find F +GLIBC_2.3.3 inet6_option_init F +GLIBC_2.3.3 inet6_option_next F +GLIBC_2.3.3 inet6_option_space F +GLIBC_2.3.3 makecontext F +GLIBC_2.3.3 nftw F +GLIBC_2.3.3 nftw64 F +GLIBC_2.3.3 posix_fadvise64 F +GLIBC_2.3.3 posix_fallocate64 F +GLIBC_2.3.3 remap_file_pages F +GLIBC_2.3.3 sched_getaffinity F +GLIBC_2.3.3 sched_setaffinity F +GLIBC_2.3.3 semtimedop F +GLIBC_2.3.3 setcontext F +GLIBC_2.3.3 swapcontext F +GLIBC_2.3.3 sys_sigabbrev D 0x104 +GLIBC_2.3.3 sys_siglist D 0x104 +GLIBC_2.3.4 GLIBC_2.3.4 A +GLIBC_2.3.4 __chk_fail F +GLIBC_2.3.4 __fprintf_chk F +GLIBC_2.3.4 __gets_chk F +GLIBC_2.3.4 __memcpy_chk F +GLIBC_2.3.4 __memmove_chk F +GLIBC_2.3.4 __mempcpy_chk F +GLIBC_2.3.4 __memset_chk F +GLIBC_2.3.4 __printf_chk F +GLIBC_2.3.4 __sigsetjmp F +GLIBC_2.3.4 __snprintf_chk F +GLIBC_2.3.4 __sprintf_chk F +GLIBC_2.3.4 __stpcpy_chk F +GLIBC_2.3.4 __strcat_chk F +GLIBC_2.3.4 __strcpy_chk F +GLIBC_2.3.4 __strncat_chk F +GLIBC_2.3.4 __strncpy_chk F +GLIBC_2.3.4 __vfprintf_chk F +GLIBC_2.3.4 __vprintf_chk F +GLIBC_2.3.4 __vsnprintf_chk F +GLIBC_2.3.4 __vsprintf_chk F +GLIBC_2.3.4 __xpg_strerror_r F +GLIBC_2.3.4 _longjmp F +GLIBC_2.3.4 _setjmp F +GLIBC_2.3.4 getcontext F +GLIBC_2.3.4 getipv4sourcefilter F +GLIBC_2.3.4 getsourcefilter F +GLIBC_2.3.4 longjmp F +GLIBC_2.3.4 makecontext F +GLIBC_2.3.4 regexec F +GLIBC_2.3.4 sched_getaffinity F +GLIBC_2.3.4 sched_setaffinity F +GLIBC_2.3.4 setcontext F +GLIBC_2.3.4 setipv4sourcefilter F +GLIBC_2.3.4 setjmp F +GLIBC_2.3.4 setsourcefilter F +GLIBC_2.3.4 siglongjmp F +GLIBC_2.3.4 swapcontext F +GLIBC_2.3.4 xdr_quad_t F +GLIBC_2.3.4 xdr_u_quad_t F +GLIBC_2.4 GLIBC_2.4 A +GLIBC_2.4 _IO_fprintf F +GLIBC_2.4 _IO_printf F +GLIBC_2.4 _IO_sprintf F +GLIBC_2.4 _IO_sscanf F +GLIBC_2.4 _IO_vfprintf F +GLIBC_2.4 _IO_vfscanf F +GLIBC_2.4 _IO_vsprintf F +GLIBC_2.4 __asprintf F +GLIBC_2.4 __confstr_chk F +GLIBC_2.4 __fgets_chk F +GLIBC_2.4 __fgets_unlocked_chk F +GLIBC_2.4 __fgetws_chk F +GLIBC_2.4 __fgetws_unlocked_chk F +GLIBC_2.4 __finitel F +GLIBC_2.4 __fprintf_chk F +GLIBC_2.4 __fwprintf_chk F +GLIBC_2.4 __fxstatat F +GLIBC_2.4 __fxstatat64 F +GLIBC_2.4 __getcwd_chk F +GLIBC_2.4 __getdomainname_chk F +GLIBC_2.4 __getgroups_chk F +GLIBC_2.4 __gethostname_chk F +GLIBC_2.4 __getlogin_r_chk F +GLIBC_2.4 __getwd_chk F +GLIBC_2.4 __isinfl F +GLIBC_2.4 __isnanl F +GLIBC_2.4 __mbsnrtowcs_chk F +GLIBC_2.4 __mbsrtowcs_chk F +GLIBC_2.4 __mbstowcs_chk F +GLIBC_2.4 __nldbl__IO_fprintf F +GLIBC_2.4 __nldbl__IO_printf F +GLIBC_2.4 __nldbl__IO_sprintf F +GLIBC_2.4 __nldbl__IO_sscanf F +GLIBC_2.4 __nldbl__IO_vfprintf F +GLIBC_2.4 __nldbl__IO_vfscanf F +GLIBC_2.4 __nldbl__IO_vsprintf F +GLIBC_2.4 __nldbl___asprintf F +GLIBC_2.4 __nldbl___fprintf_chk F +GLIBC_2.4 __nldbl___fwprintf_chk F +GLIBC_2.4 __nldbl___printf_chk F +GLIBC_2.4 __nldbl___printf_fp F +GLIBC_2.4 __nldbl___snprintf_chk F +GLIBC_2.4 __nldbl___sprintf_chk F +GLIBC_2.4 __nldbl___strfmon_l F +GLIBC_2.4 __nldbl___swprintf_chk F +GLIBC_2.4 __nldbl___syslog_chk F +GLIBC_2.4 __nldbl___vfprintf_chk F +GLIBC_2.4 __nldbl___vfscanf F +GLIBC_2.4 __nldbl___vfwprintf_chk F +GLIBC_2.4 __nldbl___vprintf_chk F +GLIBC_2.4 __nldbl___vsnprintf F +GLIBC_2.4 __nldbl___vsnprintf_chk F +GLIBC_2.4 __nldbl___vsprintf_chk F +GLIBC_2.4 __nldbl___vsscanf F +GLIBC_2.4 __nldbl___vstrfmon F +GLIBC_2.4 __nldbl___vstrfmon_l F +GLIBC_2.4 __nldbl___vswprintf_chk F +GLIBC_2.4 __nldbl___vsyslog_chk F +GLIBC_2.4 __nldbl___vwprintf_chk F +GLIBC_2.4 __nldbl___wprintf_chk F +GLIBC_2.4 __nldbl_asprintf F +GLIBC_2.4 __nldbl_dprintf F +GLIBC_2.4 __nldbl_fprintf F +GLIBC_2.4 __nldbl_fscanf F +GLIBC_2.4 __nldbl_fwprintf F +GLIBC_2.4 __nldbl_fwscanf F +GLIBC_2.4 __nldbl_obstack_printf F +GLIBC_2.4 __nldbl_obstack_vprintf F +GLIBC_2.4 __nldbl_printf F +GLIBC_2.4 __nldbl_printf_size F +GLIBC_2.4 __nldbl_scanf F +GLIBC_2.4 __nldbl_snprintf F +GLIBC_2.4 __nldbl_sprintf F +GLIBC_2.4 __nldbl_sscanf F +GLIBC_2.4 __nldbl_strfmon F +GLIBC_2.4 __nldbl_strfmon_l F +GLIBC_2.4 __nldbl_swprintf F +GLIBC_2.4 __nldbl_swscanf F +GLIBC_2.4 __nldbl_syslog F +GLIBC_2.4 __nldbl_vasprintf F +GLIBC_2.4 __nldbl_vdprintf F +GLIBC_2.4 __nldbl_vfprintf F +GLIBC_2.4 __nldbl_vfscanf F +GLIBC_2.4 __nldbl_vfwprintf F +GLIBC_2.4 __nldbl_vfwscanf F +GLIBC_2.4 __nldbl_vprintf F +GLIBC_2.4 __nldbl_vscanf F +GLIBC_2.4 __nldbl_vsnprintf F +GLIBC_2.4 __nldbl_vsprintf F +GLIBC_2.4 __nldbl_vsscanf F +GLIBC_2.4 __nldbl_vswprintf F +GLIBC_2.4 __nldbl_vswscanf F +GLIBC_2.4 __nldbl_vsyslog F +GLIBC_2.4 __nldbl_vwprintf F +GLIBC_2.4 __nldbl_vwscanf F +GLIBC_2.4 __nldbl_wprintf F +GLIBC_2.4 __nldbl_wscanf F +GLIBC_2.4 __pread64_chk F +GLIBC_2.4 __pread_chk F +GLIBC_2.4 __printf_chk F +GLIBC_2.4 __printf_fp F +GLIBC_2.4 __ptsname_r_chk F +GLIBC_2.4 __read_chk F +GLIBC_2.4 __readlink_chk F +GLIBC_2.4 __realpath_chk F +GLIBC_2.4 __recv_chk F +GLIBC_2.4 __recvfrom_chk F +GLIBC_2.4 __signbitl F +GLIBC_2.4 __snprintf_chk F +GLIBC_2.4 __sprintf_chk F +GLIBC_2.4 __stack_chk_fail F +GLIBC_2.4 __stpncpy_chk F +GLIBC_2.4 __strfmon_l F +GLIBC_2.4 __strtold_internal F +GLIBC_2.4 __strtold_l F +GLIBC_2.4 __swprintf_chk F +GLIBC_2.4 __syslog_chk F +GLIBC_2.4 __ttyname_r_chk F +GLIBC_2.4 __vfprintf_chk F +GLIBC_2.4 __vfscanf F +GLIBC_2.4 __vfwprintf_chk F +GLIBC_2.4 __vprintf_chk F +GLIBC_2.4 __vsnprintf F +GLIBC_2.4 __vsnprintf_chk F +GLIBC_2.4 __vsprintf_chk F +GLIBC_2.4 __vsscanf F +GLIBC_2.4 __vswprintf_chk F +GLIBC_2.4 __vsyslog_chk F +GLIBC_2.4 __vwprintf_chk F +GLIBC_2.4 __wcpcpy_chk F +GLIBC_2.4 __wcpncpy_chk F +GLIBC_2.4 __wcrtomb_chk F +GLIBC_2.4 __wcscat_chk F +GLIBC_2.4 __wcscpy_chk F +GLIBC_2.4 __wcsncat_chk F +GLIBC_2.4 __wcsncpy_chk F +GLIBC_2.4 __wcsnrtombs_chk F +GLIBC_2.4 __wcsrtombs_chk F +GLIBC_2.4 __wcstold_internal F +GLIBC_2.4 __wcstold_l F +GLIBC_2.4 __wcstombs_chk F +GLIBC_2.4 __wctomb_chk F +GLIBC_2.4 __wmemcpy_chk F +GLIBC_2.4 __wmemmove_chk F +GLIBC_2.4 __wmempcpy_chk F +GLIBC_2.4 __wmemset_chk F +GLIBC_2.4 __wprintf_chk F +GLIBC_2.4 __xmknodat F +GLIBC_2.4 _sys_errlist D 0x210 +GLIBC_2.4 _sys_nerr D 0x4 +GLIBC_2.4 asprintf F +GLIBC_2.4 copysignl F +GLIBC_2.4 dprintf F +GLIBC_2.4 eaccess F +GLIBC_2.4 faccessat F +GLIBC_2.4 fchmodat F +GLIBC_2.4 fchownat F +GLIBC_2.4 fdopendir F +GLIBC_2.4 finitel F +GLIBC_2.4 fprintf F +GLIBC_2.4 frexpl F +GLIBC_2.4 fscanf F +GLIBC_2.4 futimesat F +GLIBC_2.4 fwprintf F +GLIBC_2.4 fwscanf F +GLIBC_2.4 inotify_add_watch F +GLIBC_2.4 inotify_init F +GLIBC_2.4 inotify_rm_watch F +GLIBC_2.4 isinfl F +GLIBC_2.4 isnanl F +GLIBC_2.4 ldexpl F +GLIBC_2.4 linkat F +GLIBC_2.4 mkdirat F +GLIBC_2.4 mkfifoat F +GLIBC_2.4 modfl F +GLIBC_2.4 obstack_printf F +GLIBC_2.4 obstack_vprintf F +GLIBC_2.4 open_wmemstream F +GLIBC_2.4 openat F +GLIBC_2.4 openat64 F +GLIBC_2.4 ppoll F +GLIBC_2.4 printf F +GLIBC_2.4 printf_size F +GLIBC_2.4 qecvt F +GLIBC_2.4 qecvt_r F +GLIBC_2.4 qfcvt F +GLIBC_2.4 qfcvt_r F +GLIBC_2.4 qgcvt F +GLIBC_2.4 readlinkat F +GLIBC_2.4 renameat F +GLIBC_2.4 scalbnl F +GLIBC_2.4 scanf F +GLIBC_2.4 snprintf F +GLIBC_2.4 sprintf F +GLIBC_2.4 sscanf F +GLIBC_2.4 strfmon F +GLIBC_2.4 strfmon_l F +GLIBC_2.4 strtold F +GLIBC_2.4 strtold_l F +GLIBC_2.4 swprintf F +GLIBC_2.4 swscanf F +GLIBC_2.4 symlinkat F +GLIBC_2.4 sys_errlist D 0x210 +GLIBC_2.4 sys_nerr D 0x4 +GLIBC_2.4 syslog F +GLIBC_2.4 unlinkat F +GLIBC_2.4 unshare F +GLIBC_2.4 vasprintf F +GLIBC_2.4 vdprintf F +GLIBC_2.4 vfprintf F +GLIBC_2.4 vfscanf F +GLIBC_2.4 vfwprintf F +GLIBC_2.4 vfwscanf F +GLIBC_2.4 vprintf F +GLIBC_2.4 vscanf F +GLIBC_2.4 vsnprintf F +GLIBC_2.4 vsprintf F +GLIBC_2.4 vsscanf F +GLIBC_2.4 vswprintf F +GLIBC_2.4 vswscanf F +GLIBC_2.4 vsyslog F +GLIBC_2.4 vwprintf F +GLIBC_2.4 vwscanf F +GLIBC_2.4 wcstold F +GLIBC_2.4 wcstold_l F +GLIBC_2.4 wprintf F +GLIBC_2.4 wscanf F +GLIBC_2.5 GLIBC_2.5 A +GLIBC_2.5 __readlinkat_chk F +GLIBC_2.5 inet6_opt_append F +GLIBC_2.5 inet6_opt_find F +GLIBC_2.5 inet6_opt_finish F +GLIBC_2.5 inet6_opt_get_val F +GLIBC_2.5 inet6_opt_init F +GLIBC_2.5 inet6_opt_next F +GLIBC_2.5 inet6_opt_set_val F +GLIBC_2.5 inet6_rth_add F +GLIBC_2.5 inet6_rth_getaddr F +GLIBC_2.5 inet6_rth_init F +GLIBC_2.5 inet6_rth_reverse F +GLIBC_2.5 inet6_rth_segments F +GLIBC_2.5 inet6_rth_space F +GLIBC_2.5 splice F +GLIBC_2.5 tee F +GLIBC_2.5 vmsplice F +GLIBC_2.6 GLIBC_2.6 A +GLIBC_2.6 __sched_cpucount F +GLIBC_2.6 epoll_pwait F +GLIBC_2.6 futimens F +GLIBC_2.6 sched_getcpu F +GLIBC_2.6 strerror_l F +GLIBC_2.6 sync_file_range F +GLIBC_2.6 utimensat F +GLIBC_2.7 GLIBC_2.7 A +GLIBC_2.7 __fread_chk F +GLIBC_2.7 __fread_unlocked_chk F +GLIBC_2.7 __isoc99_fscanf F +GLIBC_2.7 __isoc99_fwscanf F +GLIBC_2.7 __isoc99_scanf F +GLIBC_2.7 __isoc99_sscanf F +GLIBC_2.7 __isoc99_swscanf F +GLIBC_2.7 __isoc99_vfscanf F +GLIBC_2.7 __isoc99_vfwscanf F +GLIBC_2.7 __isoc99_vscanf F +GLIBC_2.7 __isoc99_vsscanf F +GLIBC_2.7 __isoc99_vswscanf F +GLIBC_2.7 __isoc99_vwscanf F +GLIBC_2.7 __isoc99_wscanf F +GLIBC_2.7 __nldbl___isoc99_fscanf F +GLIBC_2.7 __nldbl___isoc99_fwscanf F +GLIBC_2.7 __nldbl___isoc99_scanf F +GLIBC_2.7 __nldbl___isoc99_sscanf F +GLIBC_2.7 __nldbl___isoc99_swscanf F +GLIBC_2.7 __nldbl___isoc99_vfscanf F +GLIBC_2.7 __nldbl___isoc99_vfwscanf F +GLIBC_2.7 __nldbl___isoc99_vscanf F +GLIBC_2.7 __nldbl___isoc99_vsscanf F +GLIBC_2.7 __nldbl___isoc99_vswscanf F +GLIBC_2.7 __nldbl___isoc99_vwscanf F +GLIBC_2.7 __nldbl___isoc99_wscanf F +GLIBC_2.7 __open64_2 F +GLIBC_2.7 __open_2 F +GLIBC_2.7 __openat64_2 F +GLIBC_2.7 __openat_2 F +GLIBC_2.7 __sched_cpualloc F +GLIBC_2.7 __sched_cpufree F +GLIBC_2.7 eventfd F +GLIBC_2.7 eventfd_read F +GLIBC_2.7 eventfd_write F +GLIBC_2.7 mkostemp F +GLIBC_2.7 mkostemp64 F +GLIBC_2.7 signalfd F +GLIBC_2.8 GLIBC_2.8 A +GLIBC_2.8 __asprintf_chk F +GLIBC_2.8 __dprintf_chk F +GLIBC_2.8 __nldbl___asprintf_chk F +GLIBC_2.8 __nldbl___dprintf_chk F +GLIBC_2.8 __nldbl___obstack_printf_chk F +GLIBC_2.8 __nldbl___obstack_vprintf_chk F +GLIBC_2.8 __nldbl___vasprintf_chk F +GLIBC_2.8 __nldbl___vdprintf_chk F +GLIBC_2.8 __obstack_printf_chk F +GLIBC_2.8 __obstack_vprintf_chk F +GLIBC_2.8 __vasprintf_chk F +GLIBC_2.8 __vdprintf_chk F +GLIBC_2.8 qsort_r F +GLIBC_2.8 timerfd_create F +GLIBC_2.8 timerfd_gettime F +GLIBC_2.8 timerfd_settime F +GLIBC_2.9 GLIBC_2.9 A +GLIBC_2.9 dup3 F +GLIBC_2.9 epoll_create1 F +GLIBC_2.9 inotify_init1 F +GLIBC_2.9 pipe2 F diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist new file mode 100644 index 0000000000..13ea493ac8 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist @@ -0,0 +1,578 @@ +GLIBC_2.0 GLIBC_2.0 A +GLIBC_2.0 _LIB_VERSION D 0x4 +GLIBC_2.0 acos F +GLIBC_2.0 acosf F +GLIBC_2.0 acosh F +GLIBC_2.0 acoshf F +GLIBC_2.0 acoshl F +GLIBC_2.0 acosl F +GLIBC_2.0 asin F +GLIBC_2.0 asinf F +GLIBC_2.0 asinh F +GLIBC_2.0 asinhf F +GLIBC_2.0 asinhl F +GLIBC_2.0 asinl F +GLIBC_2.0 atan F +GLIBC_2.0 atan2 F +GLIBC_2.0 atan2f F +GLIBC_2.0 atan2l F +GLIBC_2.0 atanf F +GLIBC_2.0 atanh F +GLIBC_2.0 atanhf F +GLIBC_2.0 atanhl F +GLIBC_2.0 atanl F +GLIBC_2.0 cbrt F +GLIBC_2.0 cbrtf F +GLIBC_2.0 cbrtl F +GLIBC_2.0 ceil F +GLIBC_2.0 ceilf F +GLIBC_2.0 ceill F +GLIBC_2.0 copysign F +GLIBC_2.0 copysignf F +GLIBC_2.0 copysignl F +GLIBC_2.0 cos F +GLIBC_2.0 cosf F +GLIBC_2.0 cosh F +GLIBC_2.0 coshf F +GLIBC_2.0 coshl F +GLIBC_2.0 cosl F +GLIBC_2.0 drem F +GLIBC_2.0 dremf F +GLIBC_2.0 dreml F +GLIBC_2.0 erf F +GLIBC_2.0 erfc F +GLIBC_2.0 erfcf F +GLIBC_2.0 erfcl F +GLIBC_2.0 erff F +GLIBC_2.0 erfl F +GLIBC_2.0 exp F +GLIBC_2.0 expf F +GLIBC_2.0 expl F +GLIBC_2.0 expm1 F +GLIBC_2.0 expm1f F +GLIBC_2.0 expm1l F +GLIBC_2.0 fabs F +GLIBC_2.0 fabsf F +GLIBC_2.0 fabsl F +GLIBC_2.0 finite F +GLIBC_2.0 finitef F +GLIBC_2.0 finitel F +GLIBC_2.0 floor F +GLIBC_2.0 floorf F +GLIBC_2.0 floorl F +GLIBC_2.0 fmod F +GLIBC_2.0 fmodf F +GLIBC_2.0 fmodl F +GLIBC_2.0 frexp F +GLIBC_2.0 frexpf F +GLIBC_2.0 frexpl F +GLIBC_2.0 gamma F +GLIBC_2.0 gammaf F +GLIBC_2.0 gammal F +GLIBC_2.0 hypot F +GLIBC_2.0 hypotf F +GLIBC_2.0 hypotl F +GLIBC_2.0 ilogb F +GLIBC_2.0 ilogbf F +GLIBC_2.0 ilogbl F +GLIBC_2.0 j0 F +GLIBC_2.0 j0f F +GLIBC_2.0 j0l F +GLIBC_2.0 j1 F +GLIBC_2.0 j1f F +GLIBC_2.0 j1l F +GLIBC_2.0 jn F +GLIBC_2.0 jnf F +GLIBC_2.0 jnl F +GLIBC_2.0 ldexp F +GLIBC_2.0 ldexpf F +GLIBC_2.0 ldexpl F +GLIBC_2.0 lgamma F +GLIBC_2.0 lgamma_r F +GLIBC_2.0 lgammaf F +GLIBC_2.0 lgammaf_r F +GLIBC_2.0 lgammal F +GLIBC_2.0 lgammal_r F +GLIBC_2.0 log F +GLIBC_2.0 log10 F +GLIBC_2.0 log10f F +GLIBC_2.0 log10l F +GLIBC_2.0 log1p F +GLIBC_2.0 log1pf F +GLIBC_2.0 log1pl F +GLIBC_2.0 logb F +GLIBC_2.0 logbf F +GLIBC_2.0 logbl F +GLIBC_2.0 logf F +GLIBC_2.0 logl F +GLIBC_2.0 matherr F +GLIBC_2.0 modf F +GLIBC_2.0 modff F +GLIBC_2.0 modfl F +GLIBC_2.0 nextafter F +GLIBC_2.0 nextafterf F +GLIBC_2.0 nextafterl F +GLIBC_2.0 pow F +GLIBC_2.0 powf F +GLIBC_2.0 powl F +GLIBC_2.0 remainder F +GLIBC_2.0 remainderf F +GLIBC_2.0 remainderl F +GLIBC_2.0 rint F +GLIBC_2.0 rintf F +GLIBC_2.0 rintl F +GLIBC_2.0 scalb F +GLIBC_2.0 scalbf F +GLIBC_2.0 scalbl F +GLIBC_2.0 scalbn F +GLIBC_2.0 scalbnf F +GLIBC_2.0 scalbnl F +GLIBC_2.0 signgam D 0x4 +GLIBC_2.0 significand F +GLIBC_2.0 significandf F +GLIBC_2.0 significandl F +GLIBC_2.0 sin F +GLIBC_2.0 sinf F +GLIBC_2.0 sinh F +GLIBC_2.0 sinhf F +GLIBC_2.0 sinhl F +GLIBC_2.0 sinl F +GLIBC_2.0 sqrt F +GLIBC_2.0 sqrtf F +GLIBC_2.0 sqrtl F +GLIBC_2.0 tan F +GLIBC_2.0 tanf F +GLIBC_2.0 tanh F +GLIBC_2.0 tanhf F +GLIBC_2.0 tanhl F +GLIBC_2.0 tanl F +GLIBC_2.0 y0 F +GLIBC_2.0 y0f F +GLIBC_2.0 y0l F +GLIBC_2.0 y1 F +GLIBC_2.0 y1f F +GLIBC_2.0 y1l F +GLIBC_2.0 yn F +GLIBC_2.0 ynf F +GLIBC_2.0 ynl F +GLIBC_2.1 GLIBC_2.1 A +GLIBC_2.1 __clog10 F +GLIBC_2.1 __clog10f F +GLIBC_2.1 __clog10l F +GLIBC_2.1 __fe_dfl_env D 0x8 +GLIBC_2.1 __fe_enabled_env D 0x8 +GLIBC_2.1 __fe_nomask_env F +GLIBC_2.1 __fe_nonieee_env D 0x8 +GLIBC_2.1 __finite F +GLIBC_2.1 __finitef F +GLIBC_2.1 __finitel F +GLIBC_2.1 __fpclassify F +GLIBC_2.1 __fpclassifyf F +GLIBC_2.1 __signbit F +GLIBC_2.1 __signbitf F +GLIBC_2.1 cabs F +GLIBC_2.1 cabsf F +GLIBC_2.1 cabsl F +GLIBC_2.1 cacos F +GLIBC_2.1 cacosf F +GLIBC_2.1 cacosh F +GLIBC_2.1 cacoshf F +GLIBC_2.1 cacoshl F +GLIBC_2.1 cacosl F +GLIBC_2.1 carg F +GLIBC_2.1 cargf F +GLIBC_2.1 cargl F +GLIBC_2.1 casin F +GLIBC_2.1 casinf F +GLIBC_2.1 casinh F +GLIBC_2.1 casinhf F +GLIBC_2.1 casinhl F +GLIBC_2.1 casinl F +GLIBC_2.1 catan F +GLIBC_2.1 catanf F +GLIBC_2.1 catanh F +GLIBC_2.1 catanhf F +GLIBC_2.1 catanhl F +GLIBC_2.1 catanl F +GLIBC_2.1 ccos F +GLIBC_2.1 ccosf F +GLIBC_2.1 ccosh F +GLIBC_2.1 ccoshf F +GLIBC_2.1 ccoshl F +GLIBC_2.1 ccosl F +GLIBC_2.1 cexp F +GLIBC_2.1 cexpf F +GLIBC_2.1 cexpl F +GLIBC_2.1 cimag F +GLIBC_2.1 cimagf F +GLIBC_2.1 cimagl F +GLIBC_2.1 clog F +GLIBC_2.1 clog10 F +GLIBC_2.1 clog10f F +GLIBC_2.1 clog10l F +GLIBC_2.1 clogf F +GLIBC_2.1 clogl F +GLIBC_2.1 conj F +GLIBC_2.1 conjf F +GLIBC_2.1 conjl F +GLIBC_2.1 cpow F +GLIBC_2.1 cpowf F +GLIBC_2.1 cpowl F +GLIBC_2.1 cproj F +GLIBC_2.1 cprojf F +GLIBC_2.1 cprojl F +GLIBC_2.1 creal F +GLIBC_2.1 crealf F +GLIBC_2.1 creall F +GLIBC_2.1 csin F +GLIBC_2.1 csinf F +GLIBC_2.1 csinh F +GLIBC_2.1 csinhf F +GLIBC_2.1 csinhl F +GLIBC_2.1 csinl F +GLIBC_2.1 csqrt F +GLIBC_2.1 csqrtf F +GLIBC_2.1 csqrtl F +GLIBC_2.1 ctan F +GLIBC_2.1 ctanf F +GLIBC_2.1 ctanh F +GLIBC_2.1 ctanhf F +GLIBC_2.1 ctanhl F +GLIBC_2.1 ctanl F +GLIBC_2.1 exp10 F +GLIBC_2.1 exp10f F +GLIBC_2.1 exp10l F +GLIBC_2.1 exp2 F +GLIBC_2.1 exp2f F +GLIBC_2.1 fdim F +GLIBC_2.1 fdimf F +GLIBC_2.1 fdiml F +GLIBC_2.1 feclearexcept F +GLIBC_2.1 fegetenv F +GLIBC_2.1 fegetexceptflag F +GLIBC_2.1 fegetround F +GLIBC_2.1 feholdexcept F +GLIBC_2.1 feraiseexcept F +GLIBC_2.1 fesetenv F +GLIBC_2.1 fesetexceptflag F +GLIBC_2.1 fesetround F +GLIBC_2.1 fetestexcept F +GLIBC_2.1 feupdateenv F +GLIBC_2.1 fma F +GLIBC_2.1 fmaf F +GLIBC_2.1 fmal F +GLIBC_2.1 fmax F +GLIBC_2.1 fmaxf F +GLIBC_2.1 fmaxl F +GLIBC_2.1 fmin F +GLIBC_2.1 fminf F +GLIBC_2.1 fminl F +GLIBC_2.1 llrint F +GLIBC_2.1 llrintf F +GLIBC_2.1 llrintl F +GLIBC_2.1 llround F +GLIBC_2.1 llroundf F +GLIBC_2.1 llroundl F +GLIBC_2.1 log2 F +GLIBC_2.1 log2f F +GLIBC_2.1 log2l F +GLIBC_2.1 lrint F +GLIBC_2.1 lrintf F +GLIBC_2.1 lrintl F +GLIBC_2.1 lround F +GLIBC_2.1 lroundf F +GLIBC_2.1 lroundl F +GLIBC_2.1 nan F +GLIBC_2.1 nanf F +GLIBC_2.1 nanl F +GLIBC_2.1 nearbyint F +GLIBC_2.1 nearbyintf F +GLIBC_2.1 nearbyintl F +GLIBC_2.1 nexttoward F +GLIBC_2.1 nexttowardf F +GLIBC_2.1 nexttowardl F +GLIBC_2.1 pow10 F +GLIBC_2.1 pow10f F +GLIBC_2.1 pow10l F +GLIBC_2.1 remquo F +GLIBC_2.1 remquof F +GLIBC_2.1 remquol F +GLIBC_2.1 round F +GLIBC_2.1 roundf F +GLIBC_2.1 roundl F +GLIBC_2.1 scalbln F +GLIBC_2.1 scalblnf F +GLIBC_2.1 scalblnl F +GLIBC_2.1 sincos F +GLIBC_2.1 sincosf F +GLIBC_2.1 sincosl F +GLIBC_2.1 tgamma F +GLIBC_2.1 tgammaf F +GLIBC_2.1 tgammal F +GLIBC_2.1 trunc F +GLIBC_2.1 truncf F +GLIBC_2.1 truncl F +GLIBC_2.15 GLIBC_2.15 A +GLIBC_2.15 __acos_finite F +GLIBC_2.15 __acosf_finite F +GLIBC_2.15 __acosh_finite F +GLIBC_2.15 __acoshf_finite F +GLIBC_2.15 __acoshl_finite F +GLIBC_2.15 __acosl_finite F +GLIBC_2.15 __asin_finite F +GLIBC_2.15 __asinf_finite F +GLIBC_2.15 __asinl_finite F +GLIBC_2.15 __atan2_finite F +GLIBC_2.15 __atan2f_finite F +GLIBC_2.15 __atan2l_finite F +GLIBC_2.15 __atanh_finite F +GLIBC_2.15 __atanhf_finite F +GLIBC_2.15 __atanhl_finite F +GLIBC_2.15 __cosh_finite F +GLIBC_2.15 __coshf_finite F +GLIBC_2.15 __coshl_finite F +GLIBC_2.15 __exp10_finite F +GLIBC_2.15 __exp10f_finite F +GLIBC_2.15 __exp10l_finite F +GLIBC_2.15 __exp2_finite F +GLIBC_2.15 __exp2f_finite F +GLIBC_2.15 __exp2l_finite F +GLIBC_2.15 __exp_finite F +GLIBC_2.15 __expf_finite F +GLIBC_2.15 __expl_finite F +GLIBC_2.15 __fmod_finite F +GLIBC_2.15 __fmodf_finite F +GLIBC_2.15 __fmodl_finite F +GLIBC_2.15 __gamma_r_finite F +GLIBC_2.15 __gammaf_r_finite F +GLIBC_2.15 __gammal_r_finite F +GLIBC_2.15 __hypot_finite F +GLIBC_2.15 __hypotf_finite F +GLIBC_2.15 __hypotl_finite F +GLIBC_2.15 __j0_finite F +GLIBC_2.15 __j0f_finite F +GLIBC_2.15 __j0l_finite F +GLIBC_2.15 __j1_finite F +GLIBC_2.15 __j1f_finite F +GLIBC_2.15 __j1l_finite F +GLIBC_2.15 __jn_finite F +GLIBC_2.15 __jnf_finite F +GLIBC_2.15 __jnl_finite F +GLIBC_2.15 __lgamma_r_finite F +GLIBC_2.15 __lgammaf_r_finite F +GLIBC_2.15 __lgammal_r_finite F +GLIBC_2.15 __log10_finite F +GLIBC_2.15 __log10f_finite F +GLIBC_2.15 __log10l_finite F +GLIBC_2.15 __log2_finite F +GLIBC_2.15 __log2f_finite F +GLIBC_2.15 __log2l_finite F +GLIBC_2.15 __log_finite F +GLIBC_2.15 __logf_finite F +GLIBC_2.15 __logl_finite F +GLIBC_2.15 __pow_finite F +GLIBC_2.15 __powf_finite F +GLIBC_2.15 __powl_finite F +GLIBC_2.15 __remainder_finite F +GLIBC_2.15 __remainderf_finite F +GLIBC_2.15 __remainderl_finite F +GLIBC_2.15 __scalb_finite F +GLIBC_2.15 __scalbf_finite F +GLIBC_2.15 __scalbl_finite F +GLIBC_2.15 __sinh_finite F +GLIBC_2.15 __sinhf_finite F +GLIBC_2.15 __sinhl_finite F +GLIBC_2.15 __sqrt_finite F +GLIBC_2.15 __sqrtf_finite F +GLIBC_2.15 __sqrtl_finite F +GLIBC_2.15 __y0_finite F +GLIBC_2.15 __y0f_finite F +GLIBC_2.15 __y0l_finite F +GLIBC_2.15 __y1_finite F +GLIBC_2.15 __y1f_finite F +GLIBC_2.15 __y1l_finite F +GLIBC_2.15 __yn_finite F +GLIBC_2.15 __ynf_finite F +GLIBC_2.15 __ynl_finite F +GLIBC_2.18 GLIBC_2.18 A +GLIBC_2.18 __issignaling F +GLIBC_2.18 __issignalingf F +GLIBC_2.18 __issignalingl F +GLIBC_2.2 GLIBC_2.2 A +GLIBC_2.2 feclearexcept F +GLIBC_2.2 fedisableexcept F +GLIBC_2.2 feenableexcept F +GLIBC_2.2 fegetenv F +GLIBC_2.2 fegetexcept F +GLIBC_2.2 fegetexceptflag F +GLIBC_2.2 feraiseexcept F +GLIBC_2.2 fesetenv F +GLIBC_2.2 fesetexceptflag F +GLIBC_2.2 feupdateenv F +GLIBC_2.23 GLIBC_2.23 A +GLIBC_2.23 __signgam D 0x4 +GLIBC_2.23 lgamma F +GLIBC_2.23 lgammaf F +GLIBC_2.23 lgammal F +GLIBC_2.24 GLIBC_2.24 A +GLIBC_2.24 nextdown F +GLIBC_2.24 nextdownf F +GLIBC_2.24 nextdownl F +GLIBC_2.24 nextup F +GLIBC_2.24 nextupf F +GLIBC_2.24 nextupl F +GLIBC_2.25 GLIBC_2.25 A +GLIBC_2.25 __fe_dfl_mode D 0x8 +GLIBC_2.25 __iscanonicall F +GLIBC_2.25 __iseqsig F +GLIBC_2.25 __iseqsigf F +GLIBC_2.25 __iseqsigl F +GLIBC_2.25 canonicalize F +GLIBC_2.25 canonicalizef F +GLIBC_2.25 canonicalizel F +GLIBC_2.25 fegetmode F +GLIBC_2.25 fesetexcept F +GLIBC_2.25 fesetmode F +GLIBC_2.25 fetestexceptflag F +GLIBC_2.25 fmaxmag F +GLIBC_2.25 fmaxmagf F +GLIBC_2.25 fmaxmagl F +GLIBC_2.25 fminmag F +GLIBC_2.25 fminmagf F +GLIBC_2.25 fminmagl F +GLIBC_2.25 fromfp F +GLIBC_2.25 fromfpf F +GLIBC_2.25 fromfpl F +GLIBC_2.25 fromfpx F +GLIBC_2.25 fromfpxf F +GLIBC_2.25 fromfpxl F +GLIBC_2.25 getpayload F +GLIBC_2.25 getpayloadf F +GLIBC_2.25 getpayloadl F +GLIBC_2.25 llogb F +GLIBC_2.25 llogbf F +GLIBC_2.25 llogbl F +GLIBC_2.25 roundeven F +GLIBC_2.25 roundevenf F +GLIBC_2.25 roundevenl F +GLIBC_2.25 setpayload F +GLIBC_2.25 setpayloadf F +GLIBC_2.25 setpayloadl F +GLIBC_2.25 setpayloadsig F +GLIBC_2.25 setpayloadsigf F +GLIBC_2.25 setpayloadsigl F +GLIBC_2.25 totalorder F +GLIBC_2.25 totalorderf F +GLIBC_2.25 totalorderl F +GLIBC_2.25 totalordermag F +GLIBC_2.25 totalordermagf F +GLIBC_2.25 totalordermagl F +GLIBC_2.25 ufromfp F +GLIBC_2.25 ufromfpf F +GLIBC_2.25 ufromfpl F +GLIBC_2.25 ufromfpx F +GLIBC_2.25 ufromfpxf F +GLIBC_2.25 ufromfpxl F +GLIBC_2.4 GLIBC_2.4 A +GLIBC_2.4 __clog10l F +GLIBC_2.4 __finitel F +GLIBC_2.4 __fpclassifyl F +GLIBC_2.4 __nldbl_nexttowardf F +GLIBC_2.4 __signbitl F +GLIBC_2.4 acoshl F +GLIBC_2.4 acosl F +GLIBC_2.4 asinhl F +GLIBC_2.4 asinl F +GLIBC_2.4 atan2l F +GLIBC_2.4 atanhl F +GLIBC_2.4 atanl F +GLIBC_2.4 cabsl F +GLIBC_2.4 cacoshl F +GLIBC_2.4 cacosl F +GLIBC_2.4 cargl F +GLIBC_2.4 casinhl F +GLIBC_2.4 casinl F +GLIBC_2.4 catanhl F +GLIBC_2.4 catanl F +GLIBC_2.4 cbrtl F +GLIBC_2.4 ccoshl F +GLIBC_2.4 ccosl F +GLIBC_2.4 ceill F +GLIBC_2.4 cexpl F +GLIBC_2.4 cimagl F +GLIBC_2.4 clog10l F +GLIBC_2.4 clogl F +GLIBC_2.4 conjl F +GLIBC_2.4 copysignl F +GLIBC_2.4 coshl F +GLIBC_2.4 cosl F +GLIBC_2.4 cpowl F +GLIBC_2.4 cprojl F +GLIBC_2.4 creall F +GLIBC_2.4 csinhl F +GLIBC_2.4 csinl F +GLIBC_2.4 csqrtl F +GLIBC_2.4 ctanhl F +GLIBC_2.4 ctanl F +GLIBC_2.4 dreml F +GLIBC_2.4 erfcl F +GLIBC_2.4 erfl F +GLIBC_2.4 exp10l F +GLIBC_2.4 exp2l F +GLIBC_2.4 expl F +GLIBC_2.4 expm1l F +GLIBC_2.4 fabsl F +GLIBC_2.4 fdiml F +GLIBC_2.4 finitel F +GLIBC_2.4 floorl F +GLIBC_2.4 fmal F +GLIBC_2.4 fmaxl F +GLIBC_2.4 fminl F +GLIBC_2.4 fmodl F +GLIBC_2.4 frexpl F +GLIBC_2.4 gammal F +GLIBC_2.4 hypotl F +GLIBC_2.4 ilogbl F +GLIBC_2.4 j0l F +GLIBC_2.4 j1l F +GLIBC_2.4 jnl F +GLIBC_2.4 ldexpl F +GLIBC_2.4 lgammal F +GLIBC_2.4 lgammal_r F +GLIBC_2.4 llrintl F +GLIBC_2.4 llroundl F +GLIBC_2.4 log10l F +GLIBC_2.4 log1pl F +GLIBC_2.4 log2l F +GLIBC_2.4 logbl F +GLIBC_2.4 logl F +GLIBC_2.4 lrintl F +GLIBC_2.4 lroundl F +GLIBC_2.4 modfl F +GLIBC_2.4 nanl F +GLIBC_2.4 nearbyintl F +GLIBC_2.4 nextafterl F +GLIBC_2.4 nexttoward F +GLIBC_2.4 nexttowardf F +GLIBC_2.4 nexttowardl F +GLIBC_2.4 pow10l F +GLIBC_2.4 powl F +GLIBC_2.4 remainderl F +GLIBC_2.4 remquol F +GLIBC_2.4 rintl F +GLIBC_2.4 roundl F +GLIBC_2.4 scalbl F +GLIBC_2.4 scalblnl F +GLIBC_2.4 scalbnl F +GLIBC_2.4 significandl F +GLIBC_2.4 sincosl F +GLIBC_2.4 sinhl F +GLIBC_2.4 sinl F +GLIBC_2.4 sqrtl F +GLIBC_2.4 tanhl F +GLIBC_2.4 tanl F +GLIBC_2.4 tgammal F +GLIBC_2.4 truncl F +GLIBC_2.4 y0l F +GLIBC_2.4 y1l F +GLIBC_2.4 ynl F diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/localplt.data b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/localplt.data new file mode 100644 index 0000000000..50006317c7 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/localplt.data @@ -0,0 +1,16 @@ +libc.so: _Unwind_Find_FDE +libc.so: calloc +libc.so: free +libc.so: malloc +libc.so: memalign +libc.so: realloc +libm.so: matherr +# The main malloc is interposed into the dynamic linker, for +# allocations after the initial link (when dlopen is used). +ld.so: malloc +ld.so: calloc +ld.so: realloc +ld.so: free +# The TLS-enabled version of these functions is interposed from libc.so. +ld.so: _dl_signal_error +ld.so: _dl_catch_error diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/fxstat.c b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/fxstat.c new file mode 100644 index 0000000000..4f219f0b9d --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/fxstat.c @@ -0,0 +1 @@ +#include <sysdeps/unix/sysv/linux/i386/fxstat.c> diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/fxstatat.c b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/fxstatat.c new file mode 100644 index 0000000000..0f8b3135d8 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/fxstatat.c @@ -0,0 +1 @@ +#include <sysdeps/unix/sysv/linux/i386/fxstatat.c> diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/getcontext-common.S b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/getcontext-common.S new file mode 100644 index 0000000000..ae2470f1fd --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/getcontext-common.S @@ -0,0 +1,284 @@ +/* Save current context, powerpc32 common. + Copyright (C) 2005-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +/* This is the common implementation of getcontext for powerpc32. + It not complete in itself should be included in to a framework that + defines: + __CONTEXT_FUNC_NAME + and if appropriate: + __CONTEXT_ENABLE_FPRS + __CONTEXT_ENABLE_VRS + Any architecture that implements the Vector unit is assumed to also + implement the floating unit. */ + +/* Stack frame offsets. */ +#define _FRAME_BACKCHAIN 0 +#define _FRAME_LR_SAVE 4 +#define _FRAME_PARM_SAVE1 8 +#define _FRAME_PARM_SAVE2 12 +#define _FRAME_PARM_SAVE3 16 +#define _FRAME_PARM_SAVE4 20 + +#ifdef __CONTEXT_ENABLE_VRS + .machine "altivec" +#endif +ENTRY(__CONTEXT_FUNC_NAME) + stwu r1,-16(r1) + cfi_adjust_cfa_offset (16) +/* Insure that the _UC_REGS start on a quadword boundary. */ + stw r3,_FRAME_PARM_SAVE1(r1) + addi r3,r3,_UC_REG_SPACE+12 + clrrwi r3,r3,4 + +/* Save the general purpose registers */ + stw r0,_UC_GREGS+(PT_R0*4)(r3) + mflr r0 + stw r2,_UC_GREGS+(PT_R2*4)(r3) + stw r4,_UC_GREGS+(PT_R4*4)(r3) +/* Set the callers LR_SAVE, and the ucontext LR and NIP to the callers + return address. */ + stw r0,_UC_GREGS+(PT_LNK*4)(r3) + stw r0,_UC_GREGS+(PT_NIP*4)(r3) + stw r0,_FRAME_LR_SAVE+16(r1) + cfi_offset (lr, _FRAME_LR_SAVE) + stw r5,_UC_GREGS+(PT_R5*4)(r3) + stw r6,_UC_GREGS+(PT_R6*4)(r3) + stw r7,_UC_GREGS+(PT_R7*4)(r3) + stw r8,_UC_GREGS+(PT_R8*4)(r3) + stw r9,_UC_GREGS+(PT_R9*4)(r3) + stw r10,_UC_GREGS+(PT_R10*4)(r3) + stw r11,_UC_GREGS+(PT_R11*4)(r3) + stw r12,_UC_GREGS+(PT_R12*4)(r3) + stw r13,_UC_GREGS+(PT_R13*4)(r3) + stw r14,_UC_GREGS+(PT_R14*4)(r3) + stw r15,_UC_GREGS+(PT_R15*4)(r3) + stw r16,_UC_GREGS+(PT_R16*4)(r3) + stw r17,_UC_GREGS+(PT_R17*4)(r3) + stw r18,_UC_GREGS+(PT_R18*4)(r3) + stw r19,_UC_GREGS+(PT_R19*4)(r3) + stw r20,_UC_GREGS+(PT_R20*4)(r3) + stw r21,_UC_GREGS+(PT_R21*4)(r3) + stw r22,_UC_GREGS+(PT_R22*4)(r3) + stw r23,_UC_GREGS+(PT_R23*4)(r3) + stw r24,_UC_GREGS+(PT_R24*4)(r3) + stw r25,_UC_GREGS+(PT_R25*4)(r3) + stw r26,_UC_GREGS+(PT_R26*4)(r3) + stw r27,_UC_GREGS+(PT_R27*4)(r3) + stw r28,_UC_GREGS+(PT_R28*4)(r3) + stw r29,_UC_GREGS+(PT_R29*4)(r3) + stw r30,_UC_GREGS+(PT_R30*4)(r3) + stw r31,_UC_GREGS+(PT_R31*4)(r3) +/* Save the value of R1. We had to push the stack before we + had the address of uc_reg_space. So compute the address of + the callers stack pointer and save it as R1. */ + addi r8,r1,16 + li r0,0 +/* Save the count, exception and condition registers. */ + mfctr r11 + mfxer r10 + mfcr r9 + stw r8,_UC_GREGS+(PT_R1*4)(r3) + stw r11,_UC_GREGS+(PT_CTR*4)(r3) + stw r10,_UC_GREGS+(PT_XER*4)(r3) + stw r9,_UC_GREGS+(PT_CCR*4)(r3) +/* Set the return value of getcontext to "success". R3 is the only + register whose value is not preserved in the saved context. */ + stw r0,_UC_GREGS+(PT_R3*4)(r3) + +/* Zero fill fields that can't be set in user state. */ + stw r0,_UC_GREGS+(PT_MSR*4)(r3) + stw r0,_UC_GREGS+(PT_MQ*4)(r3) + +#ifdef __CONTEXT_ENABLE_FPRS +/* Save the floating-point registers */ + stfd fp0,_UC_FREGS+(0*8)(r3) + stfd fp1,_UC_FREGS+(1*8)(r3) + stfd fp2,_UC_FREGS+(2*8)(r3) + stfd fp3,_UC_FREGS+(3*8)(r3) + stfd fp4,_UC_FREGS+(4*8)(r3) + stfd fp5,_UC_FREGS+(5*8)(r3) + stfd fp6,_UC_FREGS+(6*8)(r3) + stfd fp7,_UC_FREGS+(7*8)(r3) + stfd fp8,_UC_FREGS+(8*8)(r3) + stfd fp9,_UC_FREGS+(9*8)(r3) + stfd fp10,_UC_FREGS+(10*8)(r3) + stfd fp11,_UC_FREGS+(11*8)(r3) + stfd fp12,_UC_FREGS+(12*8)(r3) + stfd fp13,_UC_FREGS+(13*8)(r3) + stfd fp14,_UC_FREGS+(14*8)(r3) + stfd fp15,_UC_FREGS+(15*8)(r3) + stfd fp16,_UC_FREGS+(16*8)(r3) + stfd fp17,_UC_FREGS+(17*8)(r3) + stfd fp18,_UC_FREGS+(18*8)(r3) + stfd fp19,_UC_FREGS+(19*8)(r3) + stfd fp20,_UC_FREGS+(20*8)(r3) + stfd fp21,_UC_FREGS+(21*8)(r3) + stfd fp22,_UC_FREGS+(22*8)(r3) + stfd fp23,_UC_FREGS+(23*8)(r3) + stfd fp24,_UC_FREGS+(24*8)(r3) + stfd fp25,_UC_FREGS+(25*8)(r3) + stfd fp26,_UC_FREGS+(26*8)(r3) + stfd fp27,_UC_FREGS+(27*8)(r3) + stfd fp28,_UC_FREGS+(28*8)(r3) + stfd fp29,_UC_FREGS+(29*8)(r3) + mffs fp0 + stfd fp30,_UC_FREGS+(30*8)(r3) + stfd fp31,_UC_FREGS+(31*8)(r3) + stfd fp0,_UC_FREGS+(32*8)(r3) + +# ifdef __CONTEXT_ENABLE_VRS +# ifdef PIC + mflr r8 +# define got_label GENERATE_GOT_LABEL (__CONTEXT_FUNC_NAME) + SETUP_GOT_ACCESS(r7,got_label) + addis r7,r7,_GLOBAL_OFFSET_TABLE_-got_label@ha + addi r7,r7,_GLOBAL_OFFSET_TABLE_-got_label@l +# ifdef SHARED + lwz r7,_rtld_global_ro@got(r7) + mtlr r8 + lwz r7,RTLD_GLOBAL_RO_DL_HWCAP_OFFSET+LOWORD(r7) +# else + lwz r7,_dl_hwcap@got(r7) + mtlr r8 + lwz r7,LOWORD(r7) +# endif +# else + lis r7,(_dl_hwcap+LOWORD)@ha + lwz r7,(_dl_hwcap+LOWORD)@l(r7) +# endif + andis. r7,r7,(PPC_FEATURE_HAS_ALTIVEC >> 16) + + la r10,(_UC_VREGS)(r3) + la r9,(_UC_VREGS+16)(r3) + + beq 2f /* L(no_vec) */ +/* address of the combined VSCR/VSAVE quadword. */ + la r8,(_UC_VREGS+512)(r3) + +/* Save the vector registers */ + stvx v0,0,r10 + stvx v1,0,r9 + addi r10,r10,32 + addi r9,r9,32 +/* We need to get the Vector Status and Control Register early to avoid + store order problems later with the VSAVE register that shares the + same quadword. */ + mfvscr v0 + + stvx v2,0,r10 + stvx v3,0,r9 + addi r10,r10,32 + addi r9,r9,32 + + stvx v0,0,r8 + + stvx v4,0,r10 + stvx v5,0,r9 + addi r10,r10,32 + addi r9,r9,32 + + stvx v6,0,r10 + stvx v7,0,r9 + addi r10,r10,32 + addi r9,r9,32 + + stvx v8,0,r10 + stvx v9,0,r9 + addi r10,r10,32 + addi r9,r9,32 + + stvx v10,0,r10 + stvx v11,0,r9 + addi r10,r10,32 + addi r9,r9,32 + + stvx v12,0,r10 + stvx v13,0,r9 + addi r10,r10,32 + addi r9,r9,32 + + stvx v14,0,r10 + stvx v15,0,r9 + addi r10,r10,32 + addi r9,r9,32 + + stvx v16,0,r10 + stvx v17,0,r9 + addi r10,r10,32 + addi r9,r9,32 + + stvx v18,0,r10 + stvx v19,0,r9 + addi r10,r10,32 + addi r9,r9,32 + + stvx v20,0,r10 + stvx v21,0,r9 + addi r10,r10,32 + addi r9,r9,32 + + stvx v22,0,r10 + stvx v23,0,r9 + addi r10,r10,32 + addi r9,r9,32 + + stvx v24,0,r10 + stvx v25,0,r9 + addi r10,r10,32 + addi r9,r9,32 + + stvx v26,0,r10 + stvx v27,0,r9 + addi r10,r10,32 + addi r9,r9,32 + + stvx v28,0,r10 + stvx v29,0,r9 + addi r10,r10,32 + addi r9,r9,32 + + mfspr r0,VRSAVE + stvx v30,0,r10 + stvx v31,0,r9 + + stw r0,0(r8) + +2: /* L(no_vec): */ +# endif +#endif + +#ifdef __CONTEXT_ENABLE_E500 + getcontext_e500 +#endif + +/* We need to set up parms and call sigprocmask which will clobber + volatile registers. So before the call we need to retrieve the + original ucontext ptr (parm1) from stack and store the UC_REGS_PTR + (current R3). */ + lwz r12,_FRAME_PARM_SAVE1(r1) + li r4,0 + stw r3,_UC_REGS_PTR(r12) + addi r5,r12,_UC_SIGMASK + li r3,SIG_BLOCK + bl __sigprocmask@local + + lwz r0,_FRAME_LR_SAVE+16(r1) + addi r1,r1,16 + mtlr r0 + blr +END(__CONTEXT_FUNC_NAME) diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/getcontext.S b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/getcontext.S new file mode 100644 index 0000000000..10f8857d81 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/getcontext.S @@ -0,0 +1,78 @@ +/* Save current context. + Copyright (C) 2002-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#include <sysdep.h> +#include <rtld-global-offsets.h> +#include <shlib-compat.h> + +#define __ASSEMBLY__ +#include <asm/ptrace.h> +#include "ucontext_i.h" + +#define __CONTEXT_FUNC_NAME __getcontext +#define __CONTEXT_ENABLE_FPRS 1 +#define __CONTEXT_ENABLE_VRS 1 + +/* Size of ucontext in GLIBC_2.3.4 and later. */ +#define _UC_SIZE_2_3_4 1184 + + .section ".text"; +ENTRY (__getcontext) + li r4,0 + li r5,_UC_SIZE_2_3_4; + DO_CALL (SYS_ify (swapcontext)); + bso- cr0,1f +/* the kernel does not set the return code for the success case */ + li r3,0 + blr +1: + b __syscall_error@local +END(__getcontext) + +versioned_symbol (libc, __getcontext, getcontext, GLIBC_2_3_4) + +#if SHLIB_COMPAT (libc, GLIBC_2_3_3, GLIBC_2_3_4) + compat_text_section + +# undef __CONTEXT_FUNC_NAME +# define __CONTEXT_FUNC_NAME __novec_getcontext +# undef __CONTEXT_ENABLE_VRS + +# include "getcontext-common.S" + + .previous + +compat_symbol (libc, __novec_getcontext, getcontext, GLIBC_2_3_3) + +#endif + +#if SHLIB_COMPAT (libc, GLIBC_2_1, GLIBC_2_3_3) + +# define _ERRNO_H 1 +# include <bits/errno.h> + + compat_text_section +ENTRY (__getcontext_stub) + li r3,ENOSYS + b __syscall_error@local +END (__getcontext_stub) + .previous + +compat_symbol (libc, __getcontext_stub, getcontext, GLIBC_2_1) + +#endif diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/glob64.c b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/glob64.c new file mode 100644 index 0000000000..82a9a296a7 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/glob64.c @@ -0,0 +1 @@ +#include <sysdeps/unix/sysv/linux/i386/glob64.c> diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/kernel_stat.h b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/kernel_stat.h new file mode 100644 index 0000000000..708ae0f71f --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/kernel_stat.h @@ -0,0 +1,51 @@ +/* Definition of `struct stat' used in the kernel. + Copyright (C) 1997-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +struct kernel_stat + { + unsigned int st_dev; + unsigned int st_ino; + unsigned int st_mode; + unsigned short st_nlink; + unsigned int st_uid; + unsigned int st_gid; + unsigned int st_rdev; + unsigned long int st_size; + unsigned long int st_blksize; + unsigned long int st_blocks; + struct timespec st_atim; + struct timespec st_mtim; + struct timespec st_ctim; + unsigned long int __glibc_reserved4; +#define _HAVE___UNUSED4 + unsigned long int __glibc_reserved5; +#define _HAVE___UNUSED5 + }; + +#define _HAVE_STAT___UNUSED4 +#define _HAVE_STAT___UNUSED5 +#define _HAVE_STAT___PAD1 +#define _HAVE_STAT___PAD2 +#define _HAVE_STAT_NSEC +#define _HAVE_STAT64___UNUSED4 +#define _HAVE_STAT64___UNUSED5 +#define _HAVE_STAT64___PAD2 +#define _HAVE_STAT64_NSEC + +#define XSTAT_IS_XSTAT64 0 +#define STATFS_IS_STATFS64 0 diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/ld.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/ld.abilist new file mode 100644 index 0000000000..100d133495 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/ld.abilist @@ -0,0 +1,16 @@ +GLIBC_2.0 GLIBC_2.0 A +GLIBC_2.0 _r_debug D 0x14 +GLIBC_2.0 calloc F +GLIBC_2.0 free F +GLIBC_2.0 malloc F +GLIBC_2.0 realloc F +GLIBC_2.1 GLIBC_2.1 A +GLIBC_2.1 __libc_stack_end D 0x4 +GLIBC_2.1 _dl_mcount F +GLIBC_2.22 GLIBC_2.22 A +GLIBC_2.22 __tls_get_addr_opt F +GLIBC_2.23 GLIBC_2.23 A +GLIBC_2.23 __parse_hwcap_and_convert_at_platform F +GLIBC_2.3 GLIBC_2.3 A +GLIBC_2.3 __tls_get_addr F +GLIBC_2.4 GLIBC_2.4 A diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/libBrokenLocale.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/libBrokenLocale.abilist new file mode 100644 index 0000000000..4a56bb68a3 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/libBrokenLocale.abilist @@ -0,0 +1,2 @@ +GLIBC_2.0 GLIBC_2.0 A +GLIBC_2.0 __ctype_get_mb_cur_max F diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/libanl.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/libanl.abilist new file mode 100644 index 0000000000..edabfb436e --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/libanl.abilist @@ -0,0 +1,5 @@ +GLIBC_2.2.3 GLIBC_2.2.3 A +GLIBC_2.2.3 gai_cancel F +GLIBC_2.2.3 gai_error F +GLIBC_2.2.3 gai_suspend F +GLIBC_2.2.3 getaddrinfo_a F diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/libcrypt.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/libcrypt.abilist new file mode 100644 index 0000000000..4db2639336 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/libcrypt.abilist @@ -0,0 +1,8 @@ +GLIBC_2.0 GLIBC_2.0 A +GLIBC_2.0 crypt F +GLIBC_2.0 crypt_r F +GLIBC_2.0 encrypt F +GLIBC_2.0 encrypt_r F +GLIBC_2.0 fcrypt F +GLIBC_2.0 setkey F +GLIBC_2.0 setkey_r F diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/libdl.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/libdl.abilist new file mode 100644 index 0000000000..5536f6e0a9 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/libdl.abilist @@ -0,0 +1,14 @@ +GLIBC_2.0 GLIBC_2.0 A +GLIBC_2.0 dladdr F +GLIBC_2.0 dlclose F +GLIBC_2.0 dlerror F +GLIBC_2.0 dlopen F +GLIBC_2.0 dlsym F +GLIBC_2.1 GLIBC_2.1 A +GLIBC_2.1 dlopen F +GLIBC_2.1 dlvsym F +GLIBC_2.3.3 GLIBC_2.3.3 A +GLIBC_2.3.3 dladdr1 F +GLIBC_2.3.3 dlinfo F +GLIBC_2.3.4 GLIBC_2.3.4 A +GLIBC_2.3.4 dlmopen F diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/libnsl.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/libnsl.abilist new file mode 100644 index 0000000000..a23db2aeaf --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/libnsl.abilist @@ -0,0 +1,124 @@ +GLIBC_2.0 GLIBC_2.0 A +GLIBC_2.0 __yp_check F +GLIBC_2.0 xdr_domainname F +GLIBC_2.0 xdr_keydat F +GLIBC_2.0 xdr_mapname F +GLIBC_2.0 xdr_peername F +GLIBC_2.0 xdr_valdat F +GLIBC_2.0 xdr_yp_buf F +GLIBC_2.0 xdr_ypbind_binding F +GLIBC_2.0 xdr_ypbind_resp F +GLIBC_2.0 xdr_ypbind_resptype F +GLIBC_2.0 xdr_ypbind_setdom F +GLIBC_2.0 xdr_ypdelete_args F +GLIBC_2.0 xdr_ypmap_parms F +GLIBC_2.0 xdr_ypmaplist F +GLIBC_2.0 xdr_yppush_status F +GLIBC_2.0 xdr_yppushresp_xfr F +GLIBC_2.0 xdr_ypreq_key F +GLIBC_2.0 xdr_ypreq_nokey F +GLIBC_2.0 xdr_ypreq_xfr F +GLIBC_2.0 xdr_ypresp_all F +GLIBC_2.0 xdr_ypresp_key_val F +GLIBC_2.0 xdr_ypresp_maplist F +GLIBC_2.0 xdr_ypresp_master F +GLIBC_2.0 xdr_ypresp_order F +GLIBC_2.0 xdr_ypresp_val F +GLIBC_2.0 xdr_ypresp_xfr F +GLIBC_2.0 xdr_ypstat F +GLIBC_2.0 xdr_ypupdate_args F +GLIBC_2.0 xdr_ypxfrstat F +GLIBC_2.0 yp_all F +GLIBC_2.0 yp_bind F +GLIBC_2.0 yp_first F +GLIBC_2.0 yp_get_default_domain F +GLIBC_2.0 yp_maplist F +GLIBC_2.0 yp_master F +GLIBC_2.0 yp_match F +GLIBC_2.0 yp_next F +GLIBC_2.0 yp_order F +GLIBC_2.0 yp_unbind F +GLIBC_2.0 yp_update F +GLIBC_2.0 ypbinderr_string F +GLIBC_2.0 yperr_string F +GLIBC_2.0 ypprot_err F +GLIBC_2.1 GLIBC_2.1 A +GLIBC_2.1 __free_fdresult F +GLIBC_2.1 __nis_default_access F +GLIBC_2.1 __nis_default_group F +GLIBC_2.1 __nis_default_owner F +GLIBC_2.1 __nis_default_ttl F +GLIBC_2.1 __nis_finddirectory F +GLIBC_2.1 __nis_hash F +GLIBC_2.1 __nisbind_connect F +GLIBC_2.1 __nisbind_create F +GLIBC_2.1 __nisbind_destroy F +GLIBC_2.1 __nisbind_next F +GLIBC_2.1 nis_add F +GLIBC_2.1 nis_add_entry F +GLIBC_2.1 nis_addmember F +GLIBC_2.1 nis_checkpoint F +GLIBC_2.1 nis_clone_directory F +GLIBC_2.1 nis_clone_object F +GLIBC_2.1 nis_clone_result F +GLIBC_2.1 nis_creategroup F +GLIBC_2.1 nis_destroy_object F +GLIBC_2.1 nis_destroygroup F +GLIBC_2.1 nis_dir_cmp F +GLIBC_2.1 nis_domain_of F +GLIBC_2.1 nis_domain_of_r F +GLIBC_2.1 nis_first_entry F +GLIBC_2.1 nis_free_directory F +GLIBC_2.1 nis_free_object F +GLIBC_2.1 nis_free_request F +GLIBC_2.1 nis_freenames F +GLIBC_2.1 nis_freeresult F +GLIBC_2.1 nis_freeservlist F +GLIBC_2.1 nis_freetags F +GLIBC_2.1 nis_getnames F +GLIBC_2.1 nis_getservlist F +GLIBC_2.1 nis_ismember F +GLIBC_2.1 nis_leaf_of F +GLIBC_2.1 nis_leaf_of_r F +GLIBC_2.1 nis_lerror F +GLIBC_2.1 nis_list F +GLIBC_2.1 nis_local_directory F +GLIBC_2.1 nis_local_group F +GLIBC_2.1 nis_local_host F +GLIBC_2.1 nis_local_principal F +GLIBC_2.1 nis_lookup F +GLIBC_2.1 nis_mkdir F +GLIBC_2.1 nis_modify F +GLIBC_2.1 nis_modify_entry F +GLIBC_2.1 nis_name_of F +GLIBC_2.1 nis_name_of_r F +GLIBC_2.1 nis_next_entry F +GLIBC_2.1 nis_perror F +GLIBC_2.1 nis_ping F +GLIBC_2.1 nis_print_directory F +GLIBC_2.1 nis_print_entry F +GLIBC_2.1 nis_print_group F +GLIBC_2.1 nis_print_group_entry F +GLIBC_2.1 nis_print_link F +GLIBC_2.1 nis_print_object F +GLIBC_2.1 nis_print_result F +GLIBC_2.1 nis_print_rights F +GLIBC_2.1 nis_print_table F +GLIBC_2.1 nis_read_obj F +GLIBC_2.1 nis_remove F +GLIBC_2.1 nis_remove_entry F +GLIBC_2.1 nis_removemember F +GLIBC_2.1 nis_rmdir F +GLIBC_2.1 nis_servstate F +GLIBC_2.1 nis_sperrno F +GLIBC_2.1 nis_sperror F +GLIBC_2.1 nis_sperror_r F +GLIBC_2.1 nis_stats F +GLIBC_2.1 nis_verifygroup F +GLIBC_2.1 nis_write_obj F +GLIBC_2.1 readColdStartFile F +GLIBC_2.1 writeColdStartFile F +GLIBC_2.1 xdr_cback_data F +GLIBC_2.1 xdr_obj_p F +GLIBC_2.2 GLIBC_2.2 A +GLIBC_2.2 xdr_ypall F diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist new file mode 100644 index 0000000000..14c3a86b75 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist @@ -0,0 +1,262 @@ +GLIBC_2.0 GLIBC_2.0 A +GLIBC_2.0 _IO_flockfile F +GLIBC_2.0 _IO_ftrylockfile F +GLIBC_2.0 _IO_funlockfile F +GLIBC_2.0 __close F +GLIBC_2.0 __connect F +GLIBC_2.0 __errno_location F +GLIBC_2.0 __fcntl F +GLIBC_2.0 __fork F +GLIBC_2.0 __h_errno_location F +GLIBC_2.0 __lseek F +GLIBC_2.0 __open F +GLIBC_2.0 __pthread_getspecific F +GLIBC_2.0 __pthread_key_create F +GLIBC_2.0 __pthread_mutex_destroy F +GLIBC_2.0 __pthread_mutex_init F +GLIBC_2.0 __pthread_mutex_lock F +GLIBC_2.0 __pthread_mutex_trylock F +GLIBC_2.0 __pthread_mutex_unlock F +GLIBC_2.0 __pthread_mutexattr_destroy F +GLIBC_2.0 __pthread_mutexattr_init F +GLIBC_2.0 __pthread_mutexattr_settype F +GLIBC_2.0 __pthread_once F +GLIBC_2.0 __pthread_setspecific F +GLIBC_2.0 __read F +GLIBC_2.0 __send F +GLIBC_2.0 __sigaction F +GLIBC_2.0 __wait F +GLIBC_2.0 __write F +GLIBC_2.0 _pthread_cleanup_pop F +GLIBC_2.0 _pthread_cleanup_pop_restore F +GLIBC_2.0 _pthread_cleanup_push F +GLIBC_2.0 _pthread_cleanup_push_defer F +GLIBC_2.0 accept F +GLIBC_2.0 close F +GLIBC_2.0 connect F +GLIBC_2.0 fcntl F +GLIBC_2.0 flockfile F +GLIBC_2.0 fork F +GLIBC_2.0 fsync F +GLIBC_2.0 ftrylockfile F +GLIBC_2.0 funlockfile F +GLIBC_2.0 longjmp F +GLIBC_2.0 lseek F +GLIBC_2.0 msync F +GLIBC_2.0 nanosleep F +GLIBC_2.0 open F +GLIBC_2.0 pause F +GLIBC_2.0 pthread_atfork F +GLIBC_2.0 pthread_attr_destroy F +GLIBC_2.0 pthread_attr_getdetachstate F +GLIBC_2.0 pthread_attr_getinheritsched F +GLIBC_2.0 pthread_attr_getschedparam F +GLIBC_2.0 pthread_attr_getschedpolicy F +GLIBC_2.0 pthread_attr_getscope F +GLIBC_2.0 pthread_attr_init F +GLIBC_2.0 pthread_attr_setdetachstate F +GLIBC_2.0 pthread_attr_setinheritsched F +GLIBC_2.0 pthread_attr_setschedparam F +GLIBC_2.0 pthread_attr_setschedpolicy F +GLIBC_2.0 pthread_attr_setscope F +GLIBC_2.0 pthread_cancel F +GLIBC_2.0 pthread_cond_broadcast F +GLIBC_2.0 pthread_cond_destroy F +GLIBC_2.0 pthread_cond_init F +GLIBC_2.0 pthread_cond_signal F +GLIBC_2.0 pthread_cond_timedwait F +GLIBC_2.0 pthread_cond_wait F +GLIBC_2.0 pthread_condattr_destroy F +GLIBC_2.0 pthread_condattr_init F +GLIBC_2.0 pthread_create F +GLIBC_2.0 pthread_detach F +GLIBC_2.0 pthread_equal F +GLIBC_2.0 pthread_exit F +GLIBC_2.0 pthread_getschedparam F +GLIBC_2.0 pthread_getspecific F +GLIBC_2.0 pthread_join F +GLIBC_2.0 pthread_key_create F +GLIBC_2.0 pthread_key_delete F +GLIBC_2.0 pthread_kill F +GLIBC_2.0 pthread_kill_other_threads_np F +GLIBC_2.0 pthread_mutex_destroy F +GLIBC_2.0 pthread_mutex_init F +GLIBC_2.0 pthread_mutex_lock F +GLIBC_2.0 pthread_mutex_trylock F +GLIBC_2.0 pthread_mutex_unlock F +GLIBC_2.0 pthread_mutexattr_destroy F +GLIBC_2.0 pthread_mutexattr_getkind_np F +GLIBC_2.0 pthread_mutexattr_init F +GLIBC_2.0 pthread_mutexattr_setkind_np F +GLIBC_2.0 pthread_once F +GLIBC_2.0 pthread_self F +GLIBC_2.0 pthread_setcancelstate F +GLIBC_2.0 pthread_setcanceltype F +GLIBC_2.0 pthread_setschedparam F +GLIBC_2.0 pthread_setspecific F +GLIBC_2.0 pthread_sigmask F +GLIBC_2.0 pthread_testcancel F +GLIBC_2.0 raise F +GLIBC_2.0 read F +GLIBC_2.0 recv F +GLIBC_2.0 recvfrom F +GLIBC_2.0 recvmsg F +GLIBC_2.0 sem_destroy F +GLIBC_2.0 sem_getvalue F +GLIBC_2.0 sem_init F +GLIBC_2.0 sem_post F +GLIBC_2.0 sem_trywait F +GLIBC_2.0 sem_wait F +GLIBC_2.0 send F +GLIBC_2.0 sendmsg F +GLIBC_2.0 sendto F +GLIBC_2.0 sigaction F +GLIBC_2.0 siglongjmp F +GLIBC_2.0 sigwait F +GLIBC_2.0 system F +GLIBC_2.0 tcdrain F +GLIBC_2.0 vfork F +GLIBC_2.0 wait F +GLIBC_2.0 waitpid F +GLIBC_2.0 write F +GLIBC_2.1 GLIBC_2.1 A +GLIBC_2.1 __libc_allocate_rtsig F +GLIBC_2.1 __libc_current_sigrtmax F +GLIBC_2.1 __libc_current_sigrtmin F +GLIBC_2.1 pthread_attr_getguardsize F +GLIBC_2.1 pthread_attr_getstackaddr F +GLIBC_2.1 pthread_attr_getstacksize F +GLIBC_2.1 pthread_attr_init F +GLIBC_2.1 pthread_attr_setguardsize F +GLIBC_2.1 pthread_attr_setstackaddr F +GLIBC_2.1 pthread_attr_setstacksize F +GLIBC_2.1 pthread_create F +GLIBC_2.1 pthread_getconcurrency F +GLIBC_2.1 pthread_mutexattr_gettype F +GLIBC_2.1 pthread_mutexattr_settype F +GLIBC_2.1 pthread_rwlock_destroy F +GLIBC_2.1 pthread_rwlock_init F +GLIBC_2.1 pthread_rwlock_rdlock F +GLIBC_2.1 pthread_rwlock_tryrdlock F +GLIBC_2.1 pthread_rwlock_trywrlock F +GLIBC_2.1 pthread_rwlock_unlock F +GLIBC_2.1 pthread_rwlock_wrlock F +GLIBC_2.1 pthread_rwlockattr_destroy F +GLIBC_2.1 pthread_rwlockattr_getkind_np F +GLIBC_2.1 pthread_rwlockattr_getpshared F +GLIBC_2.1 pthread_rwlockattr_init F +GLIBC_2.1 pthread_rwlockattr_setkind_np F +GLIBC_2.1 pthread_rwlockattr_setpshared F +GLIBC_2.1 pthread_setconcurrency F +GLIBC_2.1 sem_destroy F +GLIBC_2.1 sem_getvalue F +GLIBC_2.1 sem_init F +GLIBC_2.1 sem_post F +GLIBC_2.1 sem_trywait F +GLIBC_2.1 sem_wait F +GLIBC_2.1.1 GLIBC_2.1.1 A +GLIBC_2.1.1 sem_close F +GLIBC_2.1.1 sem_open F +GLIBC_2.1.1 sem_unlink F +GLIBC_2.1.2 GLIBC_2.1.2 A +GLIBC_2.1.2 __vfork F +GLIBC_2.11 GLIBC_2.11 A +GLIBC_2.11 pthread_sigqueue F +GLIBC_2.12 GLIBC_2.12 A +GLIBC_2.12 pthread_getname_np F +GLIBC_2.12 pthread_mutex_consistent F +GLIBC_2.12 pthread_mutexattr_getrobust F +GLIBC_2.12 pthread_mutexattr_setrobust F +GLIBC_2.12 pthread_setname_np F +GLIBC_2.18 GLIBC_2.18 A +GLIBC_2.18 pthread_getattr_default_np F +GLIBC_2.18 pthread_setattr_default_np F +GLIBC_2.2 GLIBC_2.2 A +GLIBC_2.2 __open64 F +GLIBC_2.2 __pread64 F +GLIBC_2.2 __pthread_rwlock_destroy F +GLIBC_2.2 __pthread_rwlock_init F +GLIBC_2.2 __pthread_rwlock_rdlock F +GLIBC_2.2 __pthread_rwlock_tryrdlock F +GLIBC_2.2 __pthread_rwlock_trywrlock F +GLIBC_2.2 __pthread_rwlock_unlock F +GLIBC_2.2 __pthread_rwlock_wrlock F +GLIBC_2.2 __pwrite64 F +GLIBC_2.2 __res_state F +GLIBC_2.2 lseek64 F +GLIBC_2.2 open64 F +GLIBC_2.2 pread F +GLIBC_2.2 pread64 F +GLIBC_2.2 pthread_attr_getstack F +GLIBC_2.2 pthread_attr_setstack F +GLIBC_2.2 pthread_barrier_destroy F +GLIBC_2.2 pthread_barrier_init F +GLIBC_2.2 pthread_barrier_wait F +GLIBC_2.2 pthread_barrierattr_destroy F +GLIBC_2.2 pthread_barrierattr_init F +GLIBC_2.2 pthread_barrierattr_setpshared F +GLIBC_2.2 pthread_condattr_getpshared F +GLIBC_2.2 pthread_condattr_setpshared F +GLIBC_2.2 pthread_getcpuclockid F +GLIBC_2.2 pthread_mutex_timedlock F +GLIBC_2.2 pthread_mutexattr_getpshared F +GLIBC_2.2 pthread_mutexattr_setpshared F +GLIBC_2.2 pthread_rwlock_timedrdlock F +GLIBC_2.2 pthread_rwlock_timedwrlock F +GLIBC_2.2 pthread_spin_destroy F +GLIBC_2.2 pthread_spin_init F +GLIBC_2.2 pthread_spin_lock F +GLIBC_2.2 pthread_spin_trylock F +GLIBC_2.2 pthread_spin_unlock F +GLIBC_2.2 pthread_yield F +GLIBC_2.2 pwrite F +GLIBC_2.2 pwrite64 F +GLIBC_2.2 sem_timedwait F +GLIBC_2.2.3 GLIBC_2.2.3 A +GLIBC_2.2.3 pthread_getattr_np F +GLIBC_2.2.6 GLIBC_2.2.6 A +GLIBC_2.2.6 __nanosleep F +GLIBC_2.3.2 GLIBC_2.3.2 A +GLIBC_2.3.2 pthread_cond_broadcast F +GLIBC_2.3.2 pthread_cond_destroy F +GLIBC_2.3.2 pthread_cond_init F +GLIBC_2.3.2 pthread_cond_signal F +GLIBC_2.3.2 pthread_cond_timedwait F +GLIBC_2.3.2 pthread_cond_wait F +GLIBC_2.3.3 GLIBC_2.3.3 A +GLIBC_2.3.3 __pthread_cleanup_routine F +GLIBC_2.3.3 __pthread_register_cancel F +GLIBC_2.3.3 __pthread_register_cancel_defer F +GLIBC_2.3.3 __pthread_unregister_cancel F +GLIBC_2.3.3 __pthread_unregister_cancel_restore F +GLIBC_2.3.3 __pthread_unwind_next F +GLIBC_2.3.3 pthread_attr_getaffinity_np F +GLIBC_2.3.3 pthread_attr_setaffinity_np F +GLIBC_2.3.3 pthread_barrierattr_getpshared F +GLIBC_2.3.3 pthread_condattr_getclock F +GLIBC_2.3.3 pthread_condattr_setclock F +GLIBC_2.3.3 pthread_getaffinity_np F +GLIBC_2.3.3 pthread_setaffinity_np F +GLIBC_2.3.3 pthread_timedjoin_np F +GLIBC_2.3.3 pthread_tryjoin_np F +GLIBC_2.3.4 GLIBC_2.3.4 A +GLIBC_2.3.4 longjmp F +GLIBC_2.3.4 pthread_attr_getaffinity_np F +GLIBC_2.3.4 pthread_attr_setaffinity_np F +GLIBC_2.3.4 pthread_getaffinity_np F +GLIBC_2.3.4 pthread_setaffinity_np F +GLIBC_2.3.4 pthread_setschedprio F +GLIBC_2.3.4 siglongjmp F +GLIBC_2.4 GLIBC_2.4 A +GLIBC_2.4 pthread_mutex_consistent_np F +GLIBC_2.4 pthread_mutex_getprioceiling F +GLIBC_2.4 pthread_mutex_setprioceiling F +GLIBC_2.4 pthread_mutexattr_getprioceiling F +GLIBC_2.4 pthread_mutexattr_getprotocol F +GLIBC_2.4 pthread_mutexattr_getrobust_np F +GLIBC_2.4 pthread_mutexattr_setprioceiling F +GLIBC_2.4 pthread_mutexattr_setprotocol F +GLIBC_2.4 pthread_mutexattr_setrobust_np F +GLIBC_2.6 GLIBC_2.6 A +GLIBC_2.6 pthread_attr_setstack F +GLIBC_2.6 pthread_attr_setstacksize F diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/libresolv.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/libresolv.abilist new file mode 100644 index 0000000000..4d50e7c8c6 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/libresolv.abilist @@ -0,0 +1,100 @@ +GLIBC_2.0 GLIBC_2.0 A +GLIBC_2.0 __b64_ntop F +GLIBC_2.0 __b64_pton F +GLIBC_2.0 __dn_comp F +GLIBC_2.0 __dn_count_labels F +GLIBC_2.0 __dn_skipname F +GLIBC_2.0 __fp_nquery F +GLIBC_2.0 __fp_query F +GLIBC_2.0 __fp_resstat F +GLIBC_2.0 __hostalias F +GLIBC_2.0 __loc_aton F +GLIBC_2.0 __loc_ntoa F +GLIBC_2.0 __p_cdname F +GLIBC_2.0 __p_cdnname F +GLIBC_2.0 __p_class F +GLIBC_2.0 __p_class_syms D 0x54 +GLIBC_2.0 __p_fqname F +GLIBC_2.0 __p_fqnname F +GLIBC_2.0 __p_option F +GLIBC_2.0 __p_query F +GLIBC_2.0 __p_secstodate F +GLIBC_2.0 __p_time F +GLIBC_2.0 __p_type F +GLIBC_2.0 __p_type_syms D 0x228 +GLIBC_2.0 __putlong F +GLIBC_2.0 __putshort F +GLIBC_2.0 __res_close F +GLIBC_2.0 __res_dnok F +GLIBC_2.0 __res_hnok F +GLIBC_2.0 __res_isourserver F +GLIBC_2.0 __res_mailok F +GLIBC_2.0 __res_nameinquery F +GLIBC_2.0 __res_ownok F +GLIBC_2.0 __res_queriesmatch F +GLIBC_2.0 __res_send F +GLIBC_2.0 __sym_ntop F +GLIBC_2.0 __sym_ntos F +GLIBC_2.0 __sym_ston F +GLIBC_2.0 _gethtbyaddr F +GLIBC_2.0 _gethtbyname F +GLIBC_2.0 _gethtbyname2 F +GLIBC_2.0 _gethtent F +GLIBC_2.0 _getlong F +GLIBC_2.0 _getshort F +GLIBC_2.0 _res_opcodes D 0x40 +GLIBC_2.0 _sethtent F +GLIBC_2.0 dn_expand F +GLIBC_2.0 inet_net_ntop F +GLIBC_2.0 inet_net_pton F +GLIBC_2.0 inet_neta F +GLIBC_2.0 res_gethostbyaddr F +GLIBC_2.0 res_gethostbyname F +GLIBC_2.0 res_gethostbyname2 F +GLIBC_2.0 res_mkquery F +GLIBC_2.0 res_query F +GLIBC_2.0 res_querydomain F +GLIBC_2.0 res_search F +GLIBC_2.0 res_send_setqhook F +GLIBC_2.0 res_send_setrhook F +GLIBC_2.2 GLIBC_2.2 A +GLIBC_2.2 __dn_expand F +GLIBC_2.2 __res_hostalias F +GLIBC_2.2 __res_mkquery F +GLIBC_2.2 __res_nmkquery F +GLIBC_2.2 __res_nquery F +GLIBC_2.2 __res_nquerydomain F +GLIBC_2.2 __res_nsearch F +GLIBC_2.2 __res_nsend F +GLIBC_2.2 __res_query F +GLIBC_2.2 __res_querydomain F +GLIBC_2.2 __res_search F +GLIBC_2.3.2 GLIBC_2.3.2 A +GLIBC_2.3.2 __p_rcode F +GLIBC_2.9 GLIBC_2.9 A +GLIBC_2.9 ns_datetosecs F +GLIBC_2.9 ns_format_ttl F +GLIBC_2.9 ns_get16 F +GLIBC_2.9 ns_get32 F +GLIBC_2.9 ns_initparse F +GLIBC_2.9 ns_makecanon F +GLIBC_2.9 ns_msg_getflag F +GLIBC_2.9 ns_name_compress F +GLIBC_2.9 ns_name_ntol F +GLIBC_2.9 ns_name_ntop F +GLIBC_2.9 ns_name_pack F +GLIBC_2.9 ns_name_pton F +GLIBC_2.9 ns_name_rollback F +GLIBC_2.9 ns_name_skip F +GLIBC_2.9 ns_name_uncompress F +GLIBC_2.9 ns_name_unpack F +GLIBC_2.9 ns_parse_ttl F +GLIBC_2.9 ns_parserr F +GLIBC_2.9 ns_put16 F +GLIBC_2.9 ns_put32 F +GLIBC_2.9 ns_samedomain F +GLIBC_2.9 ns_samename F +GLIBC_2.9 ns_skiprr F +GLIBC_2.9 ns_sprintrr F +GLIBC_2.9 ns_sprintrrf F +GLIBC_2.9 ns_subdomain F diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist new file mode 100644 index 0000000000..15e4418863 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist @@ -0,0 +1,47 @@ +GLIBC_2.1 GLIBC_2.1 A +GLIBC_2.1 aio_cancel F +GLIBC_2.1 aio_cancel64 F +GLIBC_2.1 aio_error F +GLIBC_2.1 aio_error64 F +GLIBC_2.1 aio_fsync F +GLIBC_2.1 aio_fsync64 F +GLIBC_2.1 aio_init F +GLIBC_2.1 aio_read F +GLIBC_2.1 aio_read64 F +GLIBC_2.1 aio_return F +GLIBC_2.1 aio_return64 F +GLIBC_2.1 aio_suspend F +GLIBC_2.1 aio_suspend64 F +GLIBC_2.1 aio_write F +GLIBC_2.1 aio_write64 F +GLIBC_2.1 lio_listio F +GLIBC_2.1 lio_listio64 F +GLIBC_2.2 GLIBC_2.2 A +GLIBC_2.2 clock_getcpuclockid F +GLIBC_2.2 clock_getres F +GLIBC_2.2 clock_gettime F +GLIBC_2.2 clock_nanosleep F +GLIBC_2.2 clock_settime F +GLIBC_2.2 shm_open F +GLIBC_2.2 shm_unlink F +GLIBC_2.2 timer_create F +GLIBC_2.2 timer_delete F +GLIBC_2.2 timer_getoverrun F +GLIBC_2.2 timer_gettime F +GLIBC_2.2 timer_settime F +GLIBC_2.3.4 GLIBC_2.3.4 A +GLIBC_2.3.4 mq_close F +GLIBC_2.3.4 mq_getattr F +GLIBC_2.3.4 mq_notify F +GLIBC_2.3.4 mq_open F +GLIBC_2.3.4 mq_receive F +GLIBC_2.3.4 mq_send F +GLIBC_2.3.4 mq_setattr F +GLIBC_2.3.4 mq_timedreceive F +GLIBC_2.3.4 mq_timedsend F +GLIBC_2.3.4 mq_unlink F +GLIBC_2.4 GLIBC_2.4 A +GLIBC_2.4 lio_listio F +GLIBC_2.4 lio_listio64 F +GLIBC_2.7 GLIBC_2.7 A +GLIBC_2.7 __mq_open_2 F diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/libthread_db.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/libthread_db.abilist new file mode 100644 index 0000000000..a8a8c2c68d --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/libthread_db.abilist @@ -0,0 +1,44 @@ +GLIBC_2.1.3 GLIBC_2.1.3 A +GLIBC_2.1.3 td_init F +GLIBC_2.1.3 td_log F +GLIBC_2.1.3 td_ta_clear_event F +GLIBC_2.1.3 td_ta_delete F +GLIBC_2.1.3 td_ta_enable_stats F +GLIBC_2.1.3 td_ta_event_addr F +GLIBC_2.1.3 td_ta_event_getmsg F +GLIBC_2.1.3 td_ta_get_nthreads F +GLIBC_2.1.3 td_ta_get_ph F +GLIBC_2.1.3 td_ta_get_stats F +GLIBC_2.1.3 td_ta_map_id2thr F +GLIBC_2.1.3 td_ta_map_lwp2thr F +GLIBC_2.1.3 td_ta_new F +GLIBC_2.1.3 td_ta_reset_stats F +GLIBC_2.1.3 td_ta_set_event F +GLIBC_2.1.3 td_ta_setconcurrency F +GLIBC_2.1.3 td_ta_thr_iter F +GLIBC_2.1.3 td_ta_tsd_iter F +GLIBC_2.1.3 td_thr_clear_event F +GLIBC_2.1.3 td_thr_dbresume F +GLIBC_2.1.3 td_thr_dbsuspend F +GLIBC_2.1.3 td_thr_event_enable F +GLIBC_2.1.3 td_thr_event_getmsg F +GLIBC_2.1.3 td_thr_get_info F +GLIBC_2.1.3 td_thr_getfpregs F +GLIBC_2.1.3 td_thr_getgregs F +GLIBC_2.1.3 td_thr_getxregs F +GLIBC_2.1.3 td_thr_getxregsize F +GLIBC_2.1.3 td_thr_set_event F +GLIBC_2.1.3 td_thr_setfpregs F +GLIBC_2.1.3 td_thr_setgregs F +GLIBC_2.1.3 td_thr_setprio F +GLIBC_2.1.3 td_thr_setsigpending F +GLIBC_2.1.3 td_thr_setxregs F +GLIBC_2.1.3 td_thr_sigsetmask F +GLIBC_2.1.3 td_thr_tsd F +GLIBC_2.1.3 td_thr_validate F +GLIBC_2.2.3 GLIBC_2.2.3 A +GLIBC_2.2.3 td_symbol_list F +GLIBC_2.3 GLIBC_2.3 A +GLIBC_2.3 td_thr_tls_get_addr F +GLIBC_2.3.3 GLIBC_2.3.3 A +GLIBC_2.3.3 td_thr_tlsbase F diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/libutil.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/libutil.abilist new file mode 100644 index 0000000000..89c67755c4 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/libutil.abilist @@ -0,0 +1,7 @@ +GLIBC_2.0 GLIBC_2.0 A +GLIBC_2.0 forkpty F +GLIBC_2.0 login F +GLIBC_2.0 login_tty F +GLIBC_2.0 logout F +GLIBC_2.0 logwtmp F +GLIBC_2.0 openpty F diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/lockf64.c b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/lockf64.c new file mode 100644 index 0000000000..a88f5a784a --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/lockf64.c @@ -0,0 +1 @@ +#include <sysdeps/unix/sysv/linux/i386/lockf64.c> diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/lxstat.c b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/lxstat.c new file mode 100644 index 0000000000..2371cd9719 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/lxstat.c @@ -0,0 +1,2 @@ +#include <sysdeps/unix/sysv/linux/i386/lxstat.c> + diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/makecontext.S b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/makecontext.S new file mode 100644 index 0000000000..fdacea2a36 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/makecontext.S @@ -0,0 +1,226 @@ +/* Set up a context to call a function. + Copyright (C) 2002-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#include <sysdep.h> +#include <shlib-compat.h> + +#define __ASSEMBLY__ +#include <asm/ptrace.h> +#include "ucontext_i.h" + +ENTRY(__makecontext) + /* Set up the first 7 args to the function in its registers */ + lwz r11,_UC_REGS_PTR(r3) + stw r6,_UC_GREGS+(PT_R3*4)(r11) + stw r7,_UC_GREGS+(PT_R4*4)(r11) + stw r8,_UC_GREGS+(PT_R5*4)(r11) + stw r9,_UC_GREGS+(PT_R6*4)(r11) + stw r10,_UC_GREGS+(PT_R7*4)(r11) + lwz r8,8(r1) + lwz r9,12(r1) + stw r8,_UC_GREGS+(PT_R8*4)(r11) + stw r9,_UC_GREGS+(PT_R9*4)(r11) + + /* Set the NIP to the start of the function */ + stw r4,_UC_GREGS+(PT_NIP*4)(r11) + + /* Set the function's r31 to ucp->uc_link for the exitcode below. */ + lwz r7,_UC_LINK(r3) + stw r7,_UC_GREGS+(PT_R31*4)(r11) + + /* Set the function's LR to point to the exitcode below. */ +#ifdef PIC + mflr r0 + cfi_register(lr,r0) + /* Use this conditional form of branch and link to avoid destroying + the cpu link stack used to predict blr return addresses. */ + bcl 20,31,1f +1: mflr r6 + addi r6,r6,L(exitcode)-1b + mtlr r0 + cfi_same_value (lr) +#else + lis r6,L(exitcode)@ha + addi r6,r6,L(exitcode)@l +#endif + stw r6,_UC_GREGS+(PT_LNK*4)(r11) + + /* + * Set up the stack frame for the function. + * If we have more than 5 args to the function (8 args to makecontext), + * there will be some arguments on the stack which have to end up + * in registers. If there are more than 8 args to the function, + * we have to copy (argc - 8) args from our stack to the functions' + * stack (and allow space for them in the frame). + */ + lwz r4,_UC_STACK_SP(r3) + lwz r8,_UC_STACK_SIZE(r3) + add r4,r4,r8 + rlwinm r4,r4,0,0,27 /* round down to 16-byte boundary */ + addi r7,r4,-16 /* stack frame for fn's caller */ + cmpwi r5,8 + blt 2f /* less than 8 args is easy */ + lwz r10,16(r1) + stw r10,_UC_GREGS+(PT_R10*4)(r11) + beq 2f /* if exactly 8 args */ + subi r9,r5,3 + subi r5,r5,8 + rlwinm r9,r9,2,0,27 + subf r7,r9,r4 + mtctr r5 /* copy the 9th and following args */ + addi r6,r1,16 + addi r8,r7,4 +3: lwzu r10,4(r6) + stwu r10,4(r8) + bdnz 3b +2: stw r7,_UC_GREGS+(PT_R1*4)(r11) + li r6,0 + stw r6,0(r7) + + blr + + cfi_endproc + nop +/* + * If the function returns, it comes here. We put ucp->uc_link in + * r31, which is a callee-saved register. We have to continue with + * the context that r31 points to, or exit if it is 0. + */ +L(exitcode): + mr. r3,r31 + beq 4f + bl __setcontext@local +4: bl HIDDEN_JUMPTARGET(exit) + b 4b + + cfi_startproc +END(__makecontext) + +versioned_symbol (libc, __makecontext, makecontext, GLIBC_2_3_4) + +#if SHLIB_COMPAT (libc, GLIBC_2_3_3, GLIBC_2_3_4) + + compat_text_section +ENTRY(__novec_makecontext) + /* Set up the first 7 args to the function in its registers */ + addi r11,r3,_UC_REG_SPACE + stw r11,_UC_REGS_PTR(r3) + stw r6,_UC_GREGS+(PT_R3*4)(r11) + stw r7,_UC_GREGS+(PT_R4*4)(r11) + stw r8,_UC_GREGS+(PT_R5*4)(r11) + stw r9,_UC_GREGS+(PT_R6*4)(r11) + stw r10,_UC_GREGS+(PT_R7*4)(r11) + lwz r8,8(r1) + lwz r9,12(r1) + stw r8,_UC_GREGS+(PT_R8*4)(r11) + stw r9,_UC_GREGS+(PT_R9*4)(r11) + + /* Set the NIP to the start of the function */ + stw r4,_UC_GREGS+(PT_NIP*4)(r11) + + /* Set the function's r31 to ucp->uc_link for the exitcode below. */ + lwz r7,_UC_LINK(r3) + stw r7,_UC_GREGS+(PT_R31*4)(r11) + + /* Set the function's LR to point to the exitcode below. */ +#ifdef PIC + mflr r0 + cfi_register(lr,r0) + /* Use this conditional form of branch and link to avoid destroying + the cpu link stack used to predict blr return addresses. */ + bcl 20,31,1f +1: mflr r6 + addi r6,r6,L(novec_exitcode)-1b + mtlr r0 + cfi_same_value (lr) +#else + lis r6,L(novec_exitcode)@ha + addi r6,r6,L(novec_exitcode)@l +#endif + stw r6,_UC_GREGS+(PT_LNK*4)(r11) + + /* + * Set up the stack frame for the function. + * If we have more than 5 args to the function (8 args to makecontext), + * there will be some arguments on the stack which have to end up + * in registers. If there are more than 8 args to the function, + * we have to copy (argc - 8) args from our stack to the functions' + * stack (and allow space for them in the frame). + */ + lwz r4,_UC_STACK_SP(r3) + lwz r8,_UC_STACK_SIZE(r3) + add r4,r4,r8 + rlwinm r4,r4,0,0,27 /* round down to 16-byte boundary */ + addi r7,r4,-16 /* stack frame for fn's caller */ + cmpwi r5,8 + blt 2f /* less than 8 args is easy */ + lwz r10,16(r1) + stw r10,_UC_GREGS+(PT_R10*4)(r11) + beq 2f /* if exactly 8 args */ + subi r9,r5,3 + subi r5,r5,8 + rlwinm r9,r9,2,0,27 + subf r7,r9,r4 + mtctr r5 /* copy the 9th and following args */ + addi r6,r1,16 + addi r8,r7,4 +3: lwzu r10,4(r6) + stwu r10,4(r8) + bdnz 3b +2: stw r7,_UC_GREGS+(PT_R1*4)(r11) + li r6,0 + stw r6,0(r7) + + blr + + cfi_endproc + nop +/* + * If the function returns, it comes here. We put ucp->uc_link in + * r31, which is a callee-saved register. We have to continue with + * the context that r31 points to, or exit if it is 0. + */ +L(novec_exitcode): + mr. r3,r31 + beq 4f + bl __novec_setcontext@local +4: bl HIDDEN_JUMPTARGET(exit) + b 4b + + cfi_startproc +END(__novec_makecontext) + .previous + +compat_symbol (libc, __novec_makecontext, makecontext, GLIBC_2_3_3) +#endif + +#if SHLIB_COMPAT (libc, GLIBC_2_1, GLIBC_2_3_3) + +#define _ERRNO_H 1 +#include <bits/errno.h> + + compat_text_section +ENTRY (__makecontext_stub) + li r3,ENOSYS + b __syscall_error@local +END (__makecontext_stub) + .previous + +compat_symbol (libc, __makecontext_stub, makecontext, GLIBC_2_1) + +#endif diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/Implies b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/Implies new file mode 100644 index 0000000000..40836b6fb4 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/Implies @@ -0,0 +1,2 @@ +powerpc/nofpu +powerpc/soft-fp diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/context-e500.h b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/context-e500.h new file mode 100644 index 0000000000..9ca14bb76b --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/context-e500.h @@ -0,0 +1,144 @@ +/* getcontext/setcontext/makecontext support for e500 high parts of registers. + Copyright (C) 2006-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#ifndef _CONTEXT_E500_H +#define _CONTEXT_E500_H 1 + +#if defined __SPE__ || (defined __NO_FPRS__ && !defined _SOFT_FLOAT) + +# define __CONTEXT_ENABLE_E500 1 + +/* We follow the kernel's layout, which saves the high parts of the + SPE registers in the vregs area, immediately followed by the ACC + value (call-clobbered, not handled here) and the SPEFSCR value. */ + +.macro getcontext_e500 + la r10,(_UC_VREGS)(r3) + evstwwe r0,(0*4)(r10) + evstwwe r1,(1*4)(r10) + evstwwe r2,(2*4)(r10) + evstwwe r3,(3*4)(r10) + evstwwe r4,(4*4)(r10) + evstwwe r5,(5*4)(r10) + evstwwe r6,(6*4)(r10) + evstwwe r7,(7*4)(r10) + evstwwe r8,(8*4)(r10) + evstwwe r9,(9*4)(r10) + evstwwe r10,(10*4)(r10) + evstwwe r11,(11*4)(r10) + evstwwe r12,(12*4)(r10) + evstwwe r13,(13*4)(r10) + evstwwe r14,(14*4)(r10) + evstwwe r15,(15*4)(r10) + evstwwe r16,(16*4)(r10) + evstwwe r17,(17*4)(r10) + evstwwe r18,(18*4)(r10) + evstwwe r19,(19*4)(r10) + evstwwe r20,(20*4)(r10) + evstwwe r21,(21*4)(r10) + evstwwe r22,(22*4)(r10) + evstwwe r23,(23*4)(r10) + evstwwe r24,(24*4)(r10) + evstwwe r25,(25*4)(r10) + evstwwe r26,(26*4)(r10) + evstwwe r27,(27*4)(r10) + evstwwe r28,(28*4)(r10) + evstwwe r29,(29*4)(r10) + evstwwe r30,(30*4)(r10) + evstwwe r31,(31*4)(r10) + mfspefscr r9 + stw r9,(34*4)(r10) +.endm + +.macro setcontext_e500 + lwz r3,_UC_VREGS+(0*4)(r31) + evmergelo r0,r3,r0 + lwz r3,_UC_VREGS+(1*4)(r31) + evmergelo r1,r3,r1 + lwz r3,_UC_VREGS+(2*4)(r31) + evmergelo r2,r3,r2 + lwz r3,_UC_VREGS+(1*4)(r31) + evmergelo r1,r3,r1 + lwz r3,_UC_VREGS+(2*4)(r31) + evmergelo r2,r3,r2 + lwz r3,_UC_VREGS+(3*4)(r31) + evmergelo r3,r3,r3 + lwz r3,_UC_VREGS+(4*4)(r31) + evmergelo r4,r3,r4 + lwz r3,_UC_VREGS+(5*4)(r31) + evmergelo r5,r3,r5 + lwz r3,_UC_VREGS+(6*4)(r31) + evmergelo r6,r3,r6 + lwz r3,_UC_VREGS+(7*4)(r31) + evmergelo r7,r3,r7 + lwz r3,_UC_VREGS+(8*4)(r31) + evmergelo r8,r3,r8 + lwz r3,_UC_VREGS+(9*4)(r31) + evmergelo r9,r3,r9 + lwz r3,_UC_VREGS+(10*4)(r31) + evmergelo r10,r3,r10 + lwz r3,_UC_VREGS+(11*4)(r31) + evmergelo r11,r3,r11 + lwz r3,_UC_VREGS+(12*4)(r31) + evmergelo r12,r3,r12 + lwz r3,_UC_VREGS+(13*4)(r31) + evmergelo r13,r3,r13 + lwz r3,_UC_VREGS+(14*4)(r31) + evmergelo r14,r3,r14 + lwz r3,_UC_VREGS+(15*4)(r31) + evmergelo r15,r3,r15 + lwz r3,_UC_VREGS+(16*4)(r31) + evmergelo r16,r3,r16 + lwz r3,_UC_VREGS+(17*4)(r31) + evmergelo r17,r3,r17 + lwz r3,_UC_VREGS+(18*4)(r31) + evmergelo r18,r3,r18 + lwz r3,_UC_VREGS+(19*4)(r31) + evmergelo r19,r3,r19 + lwz r3,_UC_VREGS+(20*4)(r31) + evmergelo r20,r3,r20 + lwz r3,_UC_VREGS+(21*4)(r31) + evmergelo r21,r3,r21 + lwz r3,_UC_VREGS+(22*4)(r31) + evmergelo r22,r3,r22 + lwz r3,_UC_VREGS+(23*4)(r31) + evmergelo r23,r3,r23 + lwz r3,_UC_VREGS+(24*4)(r31) + evmergelo r24,r3,r24 + lwz r3,_UC_VREGS+(25*4)(r31) + evmergelo r25,r3,r25 + lwz r3,_UC_VREGS+(26*4)(r31) + evmergelo r26,r3,r26 + lwz r3,_UC_VREGS+(27*4)(r31) + evmergelo r27,r3,r27 + lwz r3,_UC_VREGS+(28*4)(r31) + evmergelo r28,r3,r28 + lwz r3,_UC_VREGS+(29*4)(r31) + evmergelo r29,r3,r29 + lwz r3,_UC_VREGS+(30*4)(r31) + evmergelo r30,r3,r30 + lwz r3,_UC_VREGS+(31*4)(r31) + evmergelo r31,r3,r31 + lwz r3,_UC_VREGS+(34*4)(r31) + mtspefscr r3 +.endm +#else +# undef __CONTEXT_ENABLE_E500 +#endif + +#endif /* context-e500.h */ diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/getcontext.S b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/getcontext.S new file mode 100644 index 0000000000..2cd9ce98e5 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/getcontext.S @@ -0,0 +1,60 @@ +/* Save current context. + Copyright (C) 2002-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library. If not, see + <http://www.gnu.org/licenses/>. */ + +#include <sysdep.h> +#include <rtld-global-offsets.h> +#include <shlib-compat.h> + +#define __ASSEMBLY__ +#include <asm/ptrace.h> +#include "ucontext_i.h" + +#include <context-e500.h> + +#define __CONTEXT_FUNC_NAME __getcontext +#undef __CONTEXT_ENABLE_FPRS +#undef __CONTEXT_ENABLE_VRS + +#include "getcontext-common.S" + +versioned_symbol (libc, __getcontext, getcontext, GLIBC_2_3_4) + +#if SHLIB_COMPAT (libc, GLIBC_2_3_3, GLIBC_2_3_4) + +/* For the nofpu case the old/new versions are the same function. */ +strong_alias (__getcontext, __novec_getcontext) + +compat_symbol (libc, __novec_getcontext, getcontext, GLIBC_2_3_3) + +#endif + +#if SHLIB_COMPAT (libc, GLIBC_2_1, GLIBC_2_3_3) + +#define _ERRNO_H 1 +#include <bits/errno.h> + + compat_text_section +ENTRY (__getcontext_stub) + li r3,ENOSYS + b __syscall_error@local +END (__getcontext_stub) + .previous + +compat_symbol (libc, __getcontext_stub, getcontext, GLIBC_2_1) + +#endif diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist new file mode 100644 index 0000000000..d25aefd1ae --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist @@ -0,0 +1,2521 @@ +GCC_3.0 GCC_3.0 A +GCC_3.0 _Unwind_Find_FDE F +GCC_3.0 __deregister_frame_info_bases F +GCC_3.0 __register_frame_info_bases F +GCC_3.0 __register_frame_info_table_bases F +GLIBC_2.0 GLIBC_2.0 A +GLIBC_2.0 _IO_adjust_column F +GLIBC_2.0 _IO_default_doallocate F +GLIBC_2.0 _IO_default_finish F +GLIBC_2.0 _IO_default_pbackfail F +GLIBC_2.0 _IO_default_uflow F +GLIBC_2.0 _IO_default_xsgetn F +GLIBC_2.0 _IO_default_xsputn F +GLIBC_2.0 _IO_do_write F +GLIBC_2.0 _IO_doallocbuf F +GLIBC_2.0 _IO_fclose F +GLIBC_2.0 _IO_fdopen F +GLIBC_2.0 _IO_feof F +GLIBC_2.0 _IO_ferror F +GLIBC_2.0 _IO_fflush F +GLIBC_2.0 _IO_fgetpos F +GLIBC_2.0 _IO_fgets F +GLIBC_2.0 _IO_file_attach F +GLIBC_2.0 _IO_file_close F +GLIBC_2.0 _IO_file_close_it F +GLIBC_2.0 _IO_file_doallocate F +GLIBC_2.0 _IO_file_fopen F +GLIBC_2.0 _IO_file_init F +GLIBC_2.0 _IO_file_jumps D 0x54 +GLIBC_2.0 _IO_file_open F +GLIBC_2.0 _IO_file_overflow F +GLIBC_2.0 _IO_file_read F +GLIBC_2.0 _IO_file_seek F +GLIBC_2.0 _IO_file_seekoff F +GLIBC_2.0 _IO_file_setbuf F +GLIBC_2.0 _IO_file_stat F +GLIBC_2.0 _IO_file_sync F +GLIBC_2.0 _IO_file_underflow F +GLIBC_2.0 _IO_file_write F +GLIBC_2.0 _IO_file_xsputn F +GLIBC_2.0 _IO_flockfile F +GLIBC_2.0 _IO_flush_all F +GLIBC_2.0 _IO_flush_all_linebuffered F +GLIBC_2.0 _IO_fopen F +GLIBC_2.0 _IO_fprintf F +GLIBC_2.0 _IO_fputs F +GLIBC_2.0 _IO_fread F +GLIBC_2.0 _IO_free_backup_area F +GLIBC_2.0 _IO_fsetpos F +GLIBC_2.0 _IO_ftell F +GLIBC_2.0 _IO_ftrylockfile F +GLIBC_2.0 _IO_funlockfile F +GLIBC_2.0 _IO_fwrite F +GLIBC_2.0 _IO_getc F +GLIBC_2.0 _IO_getline F +GLIBC_2.0 _IO_gets F +GLIBC_2.0 _IO_init F +GLIBC_2.0 _IO_init_marker F +GLIBC_2.0 _IO_link_in F +GLIBC_2.0 _IO_list_all D 0x4 +GLIBC_2.0 _IO_marker_delta F +GLIBC_2.0 _IO_marker_difference F +GLIBC_2.0 _IO_padn F +GLIBC_2.0 _IO_peekc_locked F +GLIBC_2.0 _IO_popen F +GLIBC_2.0 _IO_printf F +GLIBC_2.0 _IO_proc_close F +GLIBC_2.0 _IO_proc_open F +GLIBC_2.0 _IO_putc F +GLIBC_2.0 _IO_puts F +GLIBC_2.0 _IO_remove_marker F +GLIBC_2.0 _IO_seekmark F +GLIBC_2.0 _IO_seekoff F +GLIBC_2.0 _IO_seekpos F +GLIBC_2.0 _IO_setb F +GLIBC_2.0 _IO_setbuffer F +GLIBC_2.0 _IO_setvbuf F +GLIBC_2.0 _IO_sgetn F +GLIBC_2.0 _IO_sprintf F +GLIBC_2.0 _IO_sputbackc F +GLIBC_2.0 _IO_sscanf F +GLIBC_2.0 _IO_stderr_ D 0x50 +GLIBC_2.0 _IO_stdin_ D 0x50 +GLIBC_2.0 _IO_stdout_ D 0x50 +GLIBC_2.0 _IO_str_init_readonly F +GLIBC_2.0 _IO_str_init_static F +GLIBC_2.0 _IO_str_overflow F +GLIBC_2.0 _IO_str_pbackfail F +GLIBC_2.0 _IO_str_seekoff F +GLIBC_2.0 _IO_str_underflow F +GLIBC_2.0 _IO_sungetc F +GLIBC_2.0 _IO_switch_to_get_mode F +GLIBC_2.0 _IO_un_link F +GLIBC_2.0 _IO_ungetc F +GLIBC_2.0 _IO_unsave_markers F +GLIBC_2.0 _IO_vfprintf F +GLIBC_2.0 _IO_vfscanf F +GLIBC_2.0 _IO_vsprintf F +GLIBC_2.0 __adjtimex F +GLIBC_2.0 __after_morecore_hook D 0x4 +GLIBC_2.0 __argz_count F +GLIBC_2.0 __argz_next F +GLIBC_2.0 __argz_stringify F +GLIBC_2.0 __ashldi3 F +GLIBC_2.0 __ashrdi3 F +GLIBC_2.0 __assert_fail F +GLIBC_2.0 __assert_perror_fail F +GLIBC_2.0 __bsd_getpgrp F +GLIBC_2.0 __bzero F +GLIBC_2.0 __check_rhosts_file D 0x4 +GLIBC_2.0 __clone F +GLIBC_2.0 __close F +GLIBC_2.0 __cmpdi2 F +GLIBC_2.0 __cmsg_nxthdr F +GLIBC_2.0 __connect F +GLIBC_2.0 __ctype32_b D 0x4 +GLIBC_2.0 __ctype_b D 0x4 +GLIBC_2.0 __ctype_get_mb_cur_max F +GLIBC_2.0 __ctype_tolower D 0x4 +GLIBC_2.0 __ctype_toupper D 0x4 +GLIBC_2.0 __curbrk D 0x4 +GLIBC_2.0 __daylight D 0x4 +GLIBC_2.0 __dcgettext F +GLIBC_2.0 __default_morecore F +GLIBC_2.0 __deregister_frame F +GLIBC_2.0 __deregister_frame_info F +GLIBC_2.0 __dgettext F +GLIBC_2.0 __divdi3 F +GLIBC_2.0 __dup2 F +GLIBC_2.0 __environ D 0x4 +GLIBC_2.0 __errno_location F +GLIBC_2.0 __fcntl F +GLIBC_2.0 __ffs F +GLIBC_2.0 __finite F +GLIBC_2.0 __finitef F +GLIBC_2.0 __finitel F +GLIBC_2.0 __fixdfdi F +GLIBC_2.0 __fixsfdi F +GLIBC_2.0 __fixunsdfdi F +GLIBC_2.0 __fixunssfdi F +GLIBC_2.0 __floatdidf F +GLIBC_2.0 __floatdisf F +GLIBC_2.0 __fork F +GLIBC_2.0 __fpu_control D 0x4 +GLIBC_2.0 __frame_state_for F +GLIBC_2.0 __free_hook D 0x4 +GLIBC_2.0 __fxstat F +GLIBC_2.0 __getdelim F +GLIBC_2.0 __getpagesize F +GLIBC_2.0 __getpgid F +GLIBC_2.0 __getpid F +GLIBC_2.0 __gettimeofday F +GLIBC_2.0 __gmtime_r F +GLIBC_2.0 __h_errno_location F +GLIBC_2.0 __isinf F +GLIBC_2.0 __isinff F +GLIBC_2.0 __isinfl F +GLIBC_2.0 __isnan F +GLIBC_2.0 __isnanf F +GLIBC_2.0 __isnanl F +GLIBC_2.0 __iswctype F +GLIBC_2.0 __ivaliduser F +GLIBC_2.0 __libc_calloc F +GLIBC_2.0 __libc_free F +GLIBC_2.0 __libc_init_first F +GLIBC_2.0 __libc_mallinfo F +GLIBC_2.0 __libc_malloc F +GLIBC_2.0 __libc_mallopt F +GLIBC_2.0 __libc_memalign F +GLIBC_2.0 __libc_pvalloc F +GLIBC_2.0 __libc_realloc F +GLIBC_2.0 __libc_start_main F +GLIBC_2.0 __libc_valloc F +GLIBC_2.0 __lseek F +GLIBC_2.0 __lshrdi3 F +GLIBC_2.0 __lxstat F +GLIBC_2.0 __malloc_hook D 0x4 +GLIBC_2.0 __malloc_initialize_hook D 0x4 +GLIBC_2.0 __mbrlen F +GLIBC_2.0 __mbrtowc F +GLIBC_2.0 __memalign_hook D 0x4 +GLIBC_2.0 __mempcpy F +GLIBC_2.0 __moddi3 F +GLIBC_2.0 __monstartup F +GLIBC_2.0 __morecore D 0x4 +GLIBC_2.0 __nss_configure_lookup F +GLIBC_2.0 __nss_database_lookup F +GLIBC_2.0 __nss_group_lookup F +GLIBC_2.0 __nss_hosts_lookup F +GLIBC_2.0 __nss_next F +GLIBC_2.0 __nss_passwd_lookup F +GLIBC_2.0 __open F +GLIBC_2.0 __overflow F +GLIBC_2.0 __pipe F +GLIBC_2.0 __printf_fp F +GLIBC_2.0 __profile_frequency F +GLIBC_2.0 __progname D 0x4 +GLIBC_2.0 __progname_full D 0x4 +GLIBC_2.0 __rcmd_errstr D 0x4 +GLIBC_2.0 __read F +GLIBC_2.0 __realloc_hook D 0x4 +GLIBC_2.0 __register_frame F +GLIBC_2.0 __register_frame_info F +GLIBC_2.0 __register_frame_info_table F +GLIBC_2.0 __register_frame_table F +GLIBC_2.0 __res_randomid F +GLIBC_2.0 __sbrk F +GLIBC_2.0 __sched_get_priority_max F +GLIBC_2.0 __sched_get_priority_min F +GLIBC_2.0 __sched_getparam F +GLIBC_2.0 __sched_getscheduler F +GLIBC_2.0 __sched_setscheduler F +GLIBC_2.0 __sched_yield F +GLIBC_2.0 __secure_getenv F +GLIBC_2.0 __select F +GLIBC_2.0 __send F +GLIBC_2.0 __setpgid F +GLIBC_2.0 __sigaction F +GLIBC_2.0 __sigaddset F +GLIBC_2.0 __sigdelset F +GLIBC_2.0 __sigismember F +GLIBC_2.0 __sigpause F +GLIBC_2.0 __sigsetjmp F +GLIBC_2.0 __stpcpy F +GLIBC_2.0 __stpncpy F +GLIBC_2.0 __strcasecmp F +GLIBC_2.0 __strdup F +GLIBC_2.0 __strerror_r F +GLIBC_2.0 __strtod_internal F +GLIBC_2.0 __strtof_internal F +GLIBC_2.0 __strtok_r F +GLIBC_2.0 __strtol_internal F +GLIBC_2.0 __strtold_internal F +GLIBC_2.0 __strtoll_internal F +GLIBC_2.0 __strtoq_internal F +GLIBC_2.0 __strtoul_internal F +GLIBC_2.0 __strtoull_internal F +GLIBC_2.0 __strtouq_internal F +GLIBC_2.0 __sysv_signal F +GLIBC_2.0 __timezone D 0x4 +GLIBC_2.0 __tzname D 0x8 +GLIBC_2.0 __ucmpdi2 F +GLIBC_2.0 __udivdi3 F +GLIBC_2.0 __uflow F +GLIBC_2.0 __umoddi3 F +GLIBC_2.0 __underflow F +GLIBC_2.0 __vfscanf F +GLIBC_2.0 __vsnprintf F +GLIBC_2.0 __vsscanf F +GLIBC_2.0 __wait F +GLIBC_2.0 __waitpid F +GLIBC_2.0 __wcstod_internal F +GLIBC_2.0 __wcstof_internal F +GLIBC_2.0 __wcstol_internal F +GLIBC_2.0 __wcstold_internal F +GLIBC_2.0 __wcstoll_internal F +GLIBC_2.0 __wcstoul_internal F +GLIBC_2.0 __wcstoull_internal F +GLIBC_2.0 __write F +GLIBC_2.0 __xmknod F +GLIBC_2.0 __xpg_basename F +GLIBC_2.0 __xstat F +GLIBC_2.0 _environ D 0x4 +GLIBC_2.0 _exit F +GLIBC_2.0 _libc_intl_domainname D 0x5 +GLIBC_2.0 _longjmp F +GLIBC_2.0 _mcleanup F +GLIBC_2.0 _mcount F +GLIBC_2.0 _nl_default_dirname D 0x12 +GLIBC_2.0 _nl_domain_bindings D 0x4 +GLIBC_2.0 _nl_msg_cat_cntr D 0x4 +GLIBC_2.0 _null_auth D 0xc +GLIBC_2.0 _obstack D 0x4 +GLIBC_2.0 _obstack_allocated_p F +GLIBC_2.0 _obstack_begin F +GLIBC_2.0 _obstack_begin_1 F +GLIBC_2.0 _obstack_free F +GLIBC_2.0 _obstack_memory_used F +GLIBC_2.0 _obstack_newchunk F +GLIBC_2.0 _res D 0x200 +GLIBC_2.0 _rpc_dtablesize F +GLIBC_2.0 _seterr_reply F +GLIBC_2.0 _setjmp F +GLIBC_2.0 _sys_errlist D 0x1ec +GLIBC_2.0 _sys_nerr D 0x4 +GLIBC_2.0 _sys_siglist D 0x80 +GLIBC_2.0 _tolower F +GLIBC_2.0 _toupper F +GLIBC_2.0 a64l F +GLIBC_2.0 abort F +GLIBC_2.0 abs F +GLIBC_2.0 accept F +GLIBC_2.0 access F +GLIBC_2.0 acct F +GLIBC_2.0 addmntent F +GLIBC_2.0 adjtime F +GLIBC_2.0 adjtimex F +GLIBC_2.0 advance F +GLIBC_2.0 alarm F +GLIBC_2.0 alphasort F +GLIBC_2.0 argz_add F +GLIBC_2.0 argz_add_sep F +GLIBC_2.0 argz_append F +GLIBC_2.0 argz_count F +GLIBC_2.0 argz_create F +GLIBC_2.0 argz_create_sep F +GLIBC_2.0 argz_delete F +GLIBC_2.0 argz_extract F +GLIBC_2.0 argz_insert F +GLIBC_2.0 argz_next F +GLIBC_2.0 argz_replace F +GLIBC_2.0 argz_stringify F +GLIBC_2.0 asctime F +GLIBC_2.0 asctime_r F +GLIBC_2.0 asprintf F +GLIBC_2.0 atexit F +GLIBC_2.0 atof F +GLIBC_2.0 atoi F +GLIBC_2.0 atol F +GLIBC_2.0 atoll F +GLIBC_2.0 authnone_create F +GLIBC_2.0 authunix_create F +GLIBC_2.0 authunix_create_default F +GLIBC_2.0 basename F +GLIBC_2.0 bcmp F +GLIBC_2.0 bcopy F +GLIBC_2.0 bdflush F +GLIBC_2.0 bind F +GLIBC_2.0 bindresvport F +GLIBC_2.0 bindtextdomain F +GLIBC_2.0 brk F +GLIBC_2.0 bsd_signal F +GLIBC_2.0 bsearch F +GLIBC_2.0 btowc F +GLIBC_2.0 bzero F +GLIBC_2.0 calloc F +GLIBC_2.0 callrpc F +GLIBC_2.0 canonicalize_file_name F +GLIBC_2.0 catclose F +GLIBC_2.0 catgets F +GLIBC_2.0 catopen F +GLIBC_2.0 cfgetispeed F +GLIBC_2.0 cfgetospeed F +GLIBC_2.0 cfmakeraw F +GLIBC_2.0 cfree F +GLIBC_2.0 cfsetispeed F +GLIBC_2.0 cfsetospeed F +GLIBC_2.0 cfsetspeed F +GLIBC_2.0 chdir F +GLIBC_2.0 chflags F +GLIBC_2.0 chmod F +GLIBC_2.0 chown F +GLIBC_2.0 chroot F +GLIBC_2.0 clearenv F +GLIBC_2.0 clearerr F +GLIBC_2.0 clearerr_unlocked F +GLIBC_2.0 clnt_broadcast F +GLIBC_2.0 clnt_create F +GLIBC_2.0 clnt_pcreateerror F +GLIBC_2.0 clnt_perrno F +GLIBC_2.0 clnt_perror F +GLIBC_2.0 clnt_spcreateerror F +GLIBC_2.0 clnt_sperrno F +GLIBC_2.0 clnt_sperror F +GLIBC_2.0 clntraw_create F +GLIBC_2.0 clnttcp_create F +GLIBC_2.0 clntudp_bufcreate F +GLIBC_2.0 clntudp_create F +GLIBC_2.0 clock F +GLIBC_2.0 clone F +GLIBC_2.0 close F +GLIBC_2.0 closedir F +GLIBC_2.0 closelog F +GLIBC_2.0 confstr F +GLIBC_2.0 connect F +GLIBC_2.0 copysign F +GLIBC_2.0 copysignf F +GLIBC_2.0 copysignl F +GLIBC_2.0 creat F +GLIBC_2.0 create_module F +GLIBC_2.0 ctermid F +GLIBC_2.0 ctime F +GLIBC_2.0 ctime_r F +GLIBC_2.0 cuserid F +GLIBC_2.0 daemon F +GLIBC_2.0 daylight D 0x4 +GLIBC_2.0 dcgettext F +GLIBC_2.0 delete_module F +GLIBC_2.0 dgettext F +GLIBC_2.0 difftime F +GLIBC_2.0 dirfd F +GLIBC_2.0 dirname F +GLIBC_2.0 div F +GLIBC_2.0 dprintf F +GLIBC_2.0 drand48 F +GLIBC_2.0 drand48_r F +GLIBC_2.0 dup F +GLIBC_2.0 dup2 F +GLIBC_2.0 dysize F +GLIBC_2.0 ecvt F +GLIBC_2.0 ecvt_r F +GLIBC_2.0 endaliasent F +GLIBC_2.0 endfsent F +GLIBC_2.0 endgrent F +GLIBC_2.0 endhostent F +GLIBC_2.0 endmntent F +GLIBC_2.0 endnetent F +GLIBC_2.0 endnetgrent F +GLIBC_2.0 endprotoent F +GLIBC_2.0 endpwent F +GLIBC_2.0 endrpcent F +GLIBC_2.0 endservent F +GLIBC_2.0 endspent F +GLIBC_2.0 endttyent F +GLIBC_2.0 endusershell F +GLIBC_2.0 endutent F +GLIBC_2.0 environ D 0x4 +GLIBC_2.0 envz_add F +GLIBC_2.0 envz_entry F +GLIBC_2.0 envz_get F +GLIBC_2.0 envz_merge F +GLIBC_2.0 envz_remove F +GLIBC_2.0 envz_strip F +GLIBC_2.0 erand48 F +GLIBC_2.0 erand48_r F +GLIBC_2.0 err F +GLIBC_2.0 error F +GLIBC_2.0 error_at_line F +GLIBC_2.0 error_message_count D 0x4 +GLIBC_2.0 error_one_per_line D 0x4 +GLIBC_2.0 error_print_progname D 0x4 +GLIBC_2.0 errx F +GLIBC_2.0 ether_aton F +GLIBC_2.0 ether_aton_r F +GLIBC_2.0 ether_hostton F +GLIBC_2.0 ether_line F +GLIBC_2.0 ether_ntoa F +GLIBC_2.0 ether_ntoa_r F +GLIBC_2.0 ether_ntohost F +GLIBC_2.0 euidaccess F +GLIBC_2.0 execl F +GLIBC_2.0 execle F +GLIBC_2.0 execlp F +GLIBC_2.0 execv F +GLIBC_2.0 execve F +GLIBC_2.0 execvp F +GLIBC_2.0 exit F +GLIBC_2.0 fchdir F +GLIBC_2.0 fchflags F +GLIBC_2.0 fchmod F +GLIBC_2.0 fchown F +GLIBC_2.0 fclose F +GLIBC_2.0 fcloseall F +GLIBC_2.0 fcntl F +GLIBC_2.0 fcvt F +GLIBC_2.0 fcvt_r F +GLIBC_2.0 fdatasync F +GLIBC_2.0 fdopen F +GLIBC_2.0 feof F +GLIBC_2.0 feof_unlocked F +GLIBC_2.0 ferror F +GLIBC_2.0 ferror_unlocked F +GLIBC_2.0 fexecve F +GLIBC_2.0 fflush F +GLIBC_2.0 fflush_unlocked F +GLIBC_2.0 ffs F +GLIBC_2.0 fgetc F +GLIBC_2.0 fgetgrent F +GLIBC_2.0 fgetgrent_r F +GLIBC_2.0 fgetpos F +GLIBC_2.0 fgetpwent F +GLIBC_2.0 fgetpwent_r F +GLIBC_2.0 fgets F +GLIBC_2.0 fgetspent F +GLIBC_2.0 fgetspent_r F +GLIBC_2.0 fileno F +GLIBC_2.0 fileno_unlocked F +GLIBC_2.0 finite F +GLIBC_2.0 finitef F +GLIBC_2.0 finitel F +GLIBC_2.0 flock F +GLIBC_2.0 flockfile F +GLIBC_2.0 fnmatch F +GLIBC_2.0 fopen F +GLIBC_2.0 fopencookie F +GLIBC_2.0 fork F +GLIBC_2.0 fpathconf F +GLIBC_2.0 fprintf F +GLIBC_2.0 fputc F +GLIBC_2.0 fputc_unlocked F +GLIBC_2.0 fputs F +GLIBC_2.0 fread F +GLIBC_2.0 free F +GLIBC_2.0 freeaddrinfo F +GLIBC_2.0 freopen F +GLIBC_2.0 frexp F +GLIBC_2.0 frexpf F +GLIBC_2.0 frexpl F +GLIBC_2.0 fscanf F +GLIBC_2.0 fseek F +GLIBC_2.0 fsetpos F +GLIBC_2.0 fstatfs F +GLIBC_2.0 fsync F +GLIBC_2.0 ftell F +GLIBC_2.0 ftime F +GLIBC_2.0 ftok F +GLIBC_2.0 ftruncate F +GLIBC_2.0 ftrylockfile F +GLIBC_2.0 fts_children F +GLIBC_2.0 fts_close F +GLIBC_2.0 fts_open F +GLIBC_2.0 fts_read F +GLIBC_2.0 fts_set F +GLIBC_2.0 ftw F +GLIBC_2.0 funlockfile F +GLIBC_2.0 fwrite F +GLIBC_2.0 gcvt F +GLIBC_2.0 get_avphys_pages F +GLIBC_2.0 get_current_dir_name F +GLIBC_2.0 get_kernel_syms F +GLIBC_2.0 get_myaddress F +GLIBC_2.0 get_nprocs F +GLIBC_2.0 get_nprocs_conf F +GLIBC_2.0 get_phys_pages F +GLIBC_2.0 getaddrinfo F +GLIBC_2.0 getaliasbyname F +GLIBC_2.0 getaliasbyname_r F +GLIBC_2.0 getaliasent F +GLIBC_2.0 getaliasent_r F +GLIBC_2.0 getc F +GLIBC_2.0 getc_unlocked F +GLIBC_2.0 getchar F +GLIBC_2.0 getchar_unlocked F +GLIBC_2.0 getcwd F +GLIBC_2.0 getdelim F +GLIBC_2.0 getdirentries F +GLIBC_2.0 getdomainname F +GLIBC_2.0 getdtablesize F +GLIBC_2.0 getegid F +GLIBC_2.0 getenv F +GLIBC_2.0 geteuid F +GLIBC_2.0 getfsent F +GLIBC_2.0 getfsfile F +GLIBC_2.0 getfsspec F +GLIBC_2.0 getgid F +GLIBC_2.0 getgrent F +GLIBC_2.0 getgrent_r F +GLIBC_2.0 getgrgid F +GLIBC_2.0 getgrgid_r F +GLIBC_2.0 getgrnam F +GLIBC_2.0 getgrnam_r F +GLIBC_2.0 getgroups F +GLIBC_2.0 gethostbyaddr F +GLIBC_2.0 gethostbyaddr_r F +GLIBC_2.0 gethostbyname F +GLIBC_2.0 gethostbyname2 F +GLIBC_2.0 gethostbyname2_r F +GLIBC_2.0 gethostbyname_r F +GLIBC_2.0 gethostent F +GLIBC_2.0 gethostent_r F +GLIBC_2.0 gethostid F +GLIBC_2.0 gethostname F +GLIBC_2.0 getitimer F +GLIBC_2.0 getline F +GLIBC_2.0 getlogin F +GLIBC_2.0 getlogin_r F +GLIBC_2.0 getmntent F +GLIBC_2.0 getmntent_r F +GLIBC_2.0 getnetbyaddr F +GLIBC_2.0 getnetbyaddr_r F +GLIBC_2.0 getnetbyname F +GLIBC_2.0 getnetbyname_r F +GLIBC_2.0 getnetent F +GLIBC_2.0 getnetent_r F +GLIBC_2.0 getnetgrent F +GLIBC_2.0 getnetgrent_r F +GLIBC_2.0 getopt F +GLIBC_2.0 getopt_long F +GLIBC_2.0 getopt_long_only F +GLIBC_2.0 getpagesize F +GLIBC_2.0 getpass F +GLIBC_2.0 getpeername F +GLIBC_2.0 getpgid F +GLIBC_2.0 getpgrp F +GLIBC_2.0 getpid F +GLIBC_2.0 getppid F +GLIBC_2.0 getpriority F +GLIBC_2.0 getprotobyname F +GLIBC_2.0 getprotobyname_r F +GLIBC_2.0 getprotobynumber F +GLIBC_2.0 getprotobynumber_r F +GLIBC_2.0 getprotoent F +GLIBC_2.0 getprotoent_r F +GLIBC_2.0 getpublickey F +GLIBC_2.0 getpw F +GLIBC_2.0 getpwent F +GLIBC_2.0 getpwent_r F +GLIBC_2.0 getpwnam F +GLIBC_2.0 getpwnam_r F +GLIBC_2.0 getpwuid F +GLIBC_2.0 getpwuid_r F +GLIBC_2.0 getresgid F +GLIBC_2.0 getresuid F +GLIBC_2.0 getrlimit F +GLIBC_2.0 getrpcbyname F +GLIBC_2.0 getrpcbyname_r F +GLIBC_2.0 getrpcbynumber F +GLIBC_2.0 getrpcbynumber_r F +GLIBC_2.0 getrpcent F +GLIBC_2.0 getrpcent_r F +GLIBC_2.0 getrpcport F +GLIBC_2.0 getrusage F +GLIBC_2.0 gets F +GLIBC_2.0 getsecretkey F +GLIBC_2.0 getservbyname F +GLIBC_2.0 getservbyname_r F +GLIBC_2.0 getservbyport F +GLIBC_2.0 getservbyport_r F +GLIBC_2.0 getservent F +GLIBC_2.0 getservent_r F +GLIBC_2.0 getsid F +GLIBC_2.0 getsockname F +GLIBC_2.0 getsockopt F +GLIBC_2.0 getspent F +GLIBC_2.0 getspent_r F +GLIBC_2.0 getspnam F +GLIBC_2.0 getspnam_r F +GLIBC_2.0 getsubopt F +GLIBC_2.0 gettext F +GLIBC_2.0 gettimeofday F +GLIBC_2.0 getttyent F +GLIBC_2.0 getttynam F +GLIBC_2.0 getuid F +GLIBC_2.0 getusershell F +GLIBC_2.0 getutent F +GLIBC_2.0 getutent_r F +GLIBC_2.0 getutid F +GLIBC_2.0 getutid_r F +GLIBC_2.0 getutline F +GLIBC_2.0 getutline_r F +GLIBC_2.0 getw F +GLIBC_2.0 getwd F +GLIBC_2.0 glob F +GLIBC_2.0 glob_pattern_p F +GLIBC_2.0 globfree F +GLIBC_2.0 gmtime F +GLIBC_2.0 gmtime_r F +GLIBC_2.0 group_member F +GLIBC_2.0 gsignal F +GLIBC_2.0 gtty F +GLIBC_2.0 h_errlist D 0x14 +GLIBC_2.0 h_nerr D 0x4 +GLIBC_2.0 hasmntopt F +GLIBC_2.0 hcreate F +GLIBC_2.0 hcreate_r F +GLIBC_2.0 hdestroy F +GLIBC_2.0 hdestroy_r F +GLIBC_2.0 herror F +GLIBC_2.0 hsearch F +GLIBC_2.0 hsearch_r F +GLIBC_2.0 hstrerror F +GLIBC_2.0 htonl F +GLIBC_2.0 htons F +GLIBC_2.0 index F +GLIBC_2.0 inet_addr F +GLIBC_2.0 inet_aton F +GLIBC_2.0 inet_lnaof F +GLIBC_2.0 inet_makeaddr F +GLIBC_2.0 inet_netof F +GLIBC_2.0 inet_network F +GLIBC_2.0 inet_nsap_addr F +GLIBC_2.0 inet_nsap_ntoa F +GLIBC_2.0 inet_ntoa F +GLIBC_2.0 inet_ntop F +GLIBC_2.0 inet_pton F +GLIBC_2.0 init_module F +GLIBC_2.0 initgroups F +GLIBC_2.0 initstate F +GLIBC_2.0 initstate_r F +GLIBC_2.0 innetgr F +GLIBC_2.0 insque F +GLIBC_2.0 ioctl F +GLIBC_2.0 iruserok F +GLIBC_2.0 isalnum F +GLIBC_2.0 isalpha F +GLIBC_2.0 isascii F +GLIBC_2.0 isatty F +GLIBC_2.0 isblank F +GLIBC_2.0 iscntrl F +GLIBC_2.0 isdigit F +GLIBC_2.0 isfdtype F +GLIBC_2.0 isgraph F +GLIBC_2.0 isinf F +GLIBC_2.0 isinff F +GLIBC_2.0 isinfl F +GLIBC_2.0 islower F +GLIBC_2.0 isnan F +GLIBC_2.0 isnanf F +GLIBC_2.0 isnanl F +GLIBC_2.0 isprint F +GLIBC_2.0 ispunct F +GLIBC_2.0 isspace F +GLIBC_2.0 isupper F +GLIBC_2.0 iswalnum F +GLIBC_2.0 iswalpha F +GLIBC_2.0 iswcntrl F +GLIBC_2.0 iswctype F +GLIBC_2.0 iswdigit F +GLIBC_2.0 iswgraph F +GLIBC_2.0 iswlower F +GLIBC_2.0 iswprint F +GLIBC_2.0 iswpunct F +GLIBC_2.0 iswspace F +GLIBC_2.0 iswupper F +GLIBC_2.0 iswxdigit F +GLIBC_2.0 isxdigit F +GLIBC_2.0 jrand48 F +GLIBC_2.0 jrand48_r F +GLIBC_2.0 kill F +GLIBC_2.0 killpg F +GLIBC_2.0 klogctl F +GLIBC_2.0 l64a F +GLIBC_2.0 labs F +GLIBC_2.0 lchown F +GLIBC_2.0 lckpwdf F +GLIBC_2.0 lcong48 F +GLIBC_2.0 lcong48_r F +GLIBC_2.0 ldexp F +GLIBC_2.0 ldexpf F +GLIBC_2.0 ldexpl F +GLIBC_2.0 ldiv F +GLIBC_2.0 lfind F +GLIBC_2.0 link F +GLIBC_2.0 listen F +GLIBC_2.0 llabs F +GLIBC_2.0 lldiv F +GLIBC_2.0 llseek F +GLIBC_2.0 loc1 D 0x4 +GLIBC_2.0 loc2 D 0x4 +GLIBC_2.0 localeconv F +GLIBC_2.0 localtime F +GLIBC_2.0 localtime_r F +GLIBC_2.0 lockf F +GLIBC_2.0 locs D 0x4 +GLIBC_2.0 longjmp F +GLIBC_2.0 lrand48 F +GLIBC_2.0 lrand48_r F +GLIBC_2.0 lsearch F +GLIBC_2.0 lseek F +GLIBC_2.0 madvise F +GLIBC_2.0 mallinfo F +GLIBC_2.0 malloc F +GLIBC_2.0 malloc_get_state F +GLIBC_2.0 malloc_set_state F +GLIBC_2.0 malloc_stats F +GLIBC_2.0 malloc_trim F +GLIBC_2.0 malloc_usable_size F +GLIBC_2.0 mallopt F +GLIBC_2.0 mallwatch D 0x4 +GLIBC_2.0 mblen F +GLIBC_2.0 mbrlen F +GLIBC_2.0 mbrtowc F +GLIBC_2.0 mbsinit F +GLIBC_2.0 mbsnrtowcs F +GLIBC_2.0 mbsrtowcs F +GLIBC_2.0 mbstowcs F +GLIBC_2.0 mbtowc F +GLIBC_2.0 mcheck F +GLIBC_2.0 memalign F +GLIBC_2.0 memccpy F +GLIBC_2.0 memchr F +GLIBC_2.0 memcmp F +GLIBC_2.0 memcpy F +GLIBC_2.0 memfrob F +GLIBC_2.0 memmem F +GLIBC_2.0 memmove F +GLIBC_2.0 memset F +GLIBC_2.0 mkdir F +GLIBC_2.0 mkfifo F +GLIBC_2.0 mkstemp F +GLIBC_2.0 mktemp F +GLIBC_2.0 mktime F +GLIBC_2.0 mlock F +GLIBC_2.0 mlockall F +GLIBC_2.0 mmap F +GLIBC_2.0 modf F +GLIBC_2.0 modff F +GLIBC_2.0 modfl F +GLIBC_2.0 monstartup F +GLIBC_2.0 mount F +GLIBC_2.0 mprobe F +GLIBC_2.0 mprotect F +GLIBC_2.0 mrand48 F +GLIBC_2.0 mrand48_r F +GLIBC_2.0 mremap F +GLIBC_2.0 msgctl F +GLIBC_2.0 msgget F +GLIBC_2.0 msgrcv F +GLIBC_2.0 msgsnd F +GLIBC_2.0 msync F +GLIBC_2.0 mtrace F +GLIBC_2.0 munlock F +GLIBC_2.0 munlockall F +GLIBC_2.0 munmap F +GLIBC_2.0 muntrace F +GLIBC_2.0 nanosleep F +GLIBC_2.0 nfsservctl F +GLIBC_2.0 nice F +GLIBC_2.0 nl_langinfo F +GLIBC_2.0 nrand48 F +GLIBC_2.0 nrand48_r F +GLIBC_2.0 ntohl F +GLIBC_2.0 ntohs F +GLIBC_2.0 obstack_alloc_failed_handler D 0x4 +GLIBC_2.0 obstack_exit_failure D 0x4 +GLIBC_2.0 obstack_free F +GLIBC_2.0 obstack_printf F +GLIBC_2.0 obstack_vprintf F +GLIBC_2.0 on_exit F +GLIBC_2.0 open F +GLIBC_2.0 open_memstream F +GLIBC_2.0 opendir F +GLIBC_2.0 openlog F +GLIBC_2.0 optarg D 0x4 +GLIBC_2.0 opterr D 0x4 +GLIBC_2.0 optind D 0x4 +GLIBC_2.0 optopt D 0x4 +GLIBC_2.0 parse_printf_format F +GLIBC_2.0 pathconf F +GLIBC_2.0 pause F +GLIBC_2.0 pclose F +GLIBC_2.0 perror F +GLIBC_2.0 personality F +GLIBC_2.0 pipe F +GLIBC_2.0 pmap_getmaps F +GLIBC_2.0 pmap_getport F +GLIBC_2.0 pmap_rmtcall F +GLIBC_2.0 pmap_set F +GLIBC_2.0 pmap_unset F +GLIBC_2.0 poll F +GLIBC_2.0 popen F +GLIBC_2.0 prctl F +GLIBC_2.0 printf F +GLIBC_2.0 profil F +GLIBC_2.0 program_invocation_name D 0x4 +GLIBC_2.0 program_invocation_short_name D 0x4 +GLIBC_2.0 pselect F +GLIBC_2.0 psignal F +GLIBC_2.0 pthread_attr_destroy F +GLIBC_2.0 pthread_attr_getdetachstate F +GLIBC_2.0 pthread_attr_getinheritsched F +GLIBC_2.0 pthread_attr_getschedparam F +GLIBC_2.0 pthread_attr_getschedpolicy F +GLIBC_2.0 pthread_attr_getscope F +GLIBC_2.0 pthread_attr_init F +GLIBC_2.0 pthread_attr_setdetachstate F +GLIBC_2.0 pthread_attr_setinheritsched F +GLIBC_2.0 pthread_attr_setschedparam F +GLIBC_2.0 pthread_attr_setschedpolicy F +GLIBC_2.0 pthread_attr_setscope F +GLIBC_2.0 pthread_cond_broadcast F +GLIBC_2.0 pthread_cond_destroy F +GLIBC_2.0 pthread_cond_init F +GLIBC_2.0 pthread_cond_signal F +GLIBC_2.0 pthread_cond_timedwait F +GLIBC_2.0 pthread_cond_wait F +GLIBC_2.0 pthread_condattr_destroy F +GLIBC_2.0 pthread_condattr_init F +GLIBC_2.0 pthread_equal F +GLIBC_2.0 pthread_exit F +GLIBC_2.0 pthread_getschedparam F +GLIBC_2.0 pthread_mutex_destroy F +GLIBC_2.0 pthread_mutex_init F +GLIBC_2.0 pthread_mutex_lock F +GLIBC_2.0 pthread_mutex_unlock F +GLIBC_2.0 pthread_self F +GLIBC_2.0 pthread_setcancelstate F +GLIBC_2.0 pthread_setcanceltype F +GLIBC_2.0 pthread_setschedparam F +GLIBC_2.0 ptrace F +GLIBC_2.0 putc F +GLIBC_2.0 putc_unlocked F +GLIBC_2.0 putchar F +GLIBC_2.0 putchar_unlocked F +GLIBC_2.0 putenv F +GLIBC_2.0 putpwent F +GLIBC_2.0 puts F +GLIBC_2.0 putspent F +GLIBC_2.0 pututline F +GLIBC_2.0 putw F +GLIBC_2.0 pvalloc F +GLIBC_2.0 qecvt F +GLIBC_2.0 qecvt_r F +GLIBC_2.0 qfcvt F +GLIBC_2.0 qfcvt_r F +GLIBC_2.0 qgcvt F +GLIBC_2.0 qsort F +GLIBC_2.0 query_module F +GLIBC_2.0 quotactl F +GLIBC_2.0 raise F +GLIBC_2.0 rand F +GLIBC_2.0 rand_r F +GLIBC_2.0 random F +GLIBC_2.0 random_r F +GLIBC_2.0 rcmd F +GLIBC_2.0 re_comp F +GLIBC_2.0 re_compile_fastmap F +GLIBC_2.0 re_compile_pattern F +GLIBC_2.0 re_exec F +GLIBC_2.0 re_match F +GLIBC_2.0 re_match_2 F +GLIBC_2.0 re_max_failures D 0x4 +GLIBC_2.0 re_search F +GLIBC_2.0 re_search_2 F +GLIBC_2.0 re_set_registers F +GLIBC_2.0 re_set_syntax F +GLIBC_2.0 re_syntax_options D 0x4 +GLIBC_2.0 read F +GLIBC_2.0 readdir F +GLIBC_2.0 readdir_r F +GLIBC_2.0 readlink F +GLIBC_2.0 readv F +GLIBC_2.0 realloc F +GLIBC_2.0 realpath F +GLIBC_2.0 reboot F +GLIBC_2.0 recv F +GLIBC_2.0 recvfrom F +GLIBC_2.0 recvmsg F +GLIBC_2.0 regcomp F +GLIBC_2.0 regerror F +GLIBC_2.0 regexec F +GLIBC_2.0 regfree F +GLIBC_2.0 register_printf_function F +GLIBC_2.0 registerrpc F +GLIBC_2.0 remove F +GLIBC_2.0 remque F +GLIBC_2.0 rename F +GLIBC_2.0 res_init F +GLIBC_2.0 revoke F +GLIBC_2.0 rewind F +GLIBC_2.0 rewinddir F +GLIBC_2.0 rexec F +GLIBC_2.0 rexecoptions D 0x4 +GLIBC_2.0 rindex F +GLIBC_2.0 rmdir F +GLIBC_2.0 rpc_createerr D 0x10 +GLIBC_2.0 rpmatch F +GLIBC_2.0 rresvport F +GLIBC_2.0 ruserok F +GLIBC_2.0 ruserpass F +GLIBC_2.0 sbrk F +GLIBC_2.0 scalbn F +GLIBC_2.0 scalbnf F +GLIBC_2.0 scalbnl F +GLIBC_2.0 scandir F +GLIBC_2.0 scanf F +GLIBC_2.0 sched_get_priority_max F +GLIBC_2.0 sched_get_priority_min F +GLIBC_2.0 sched_getparam F +GLIBC_2.0 sched_getscheduler F +GLIBC_2.0 sched_rr_get_interval F +GLIBC_2.0 sched_setparam F +GLIBC_2.0 sched_setscheduler F +GLIBC_2.0 sched_yield F +GLIBC_2.0 seed48 F +GLIBC_2.0 seed48_r F +GLIBC_2.0 seekdir F +GLIBC_2.0 select F +GLIBC_2.0 semctl F +GLIBC_2.0 semget F +GLIBC_2.0 semop F +GLIBC_2.0 send F +GLIBC_2.0 sendmsg F +GLIBC_2.0 sendto F +GLIBC_2.0 setaliasent F +GLIBC_2.0 setbuf F +GLIBC_2.0 setbuffer F +GLIBC_2.0 setcontext F +GLIBC_2.0 setdomainname F +GLIBC_2.0 setegid F +GLIBC_2.0 setenv F +GLIBC_2.0 seteuid F +GLIBC_2.0 setfsent F +GLIBC_2.0 setfsgid F +GLIBC_2.0 setfsuid F +GLIBC_2.0 setgid F +GLIBC_2.0 setgrent F +GLIBC_2.0 setgroups F +GLIBC_2.0 sethostent F +GLIBC_2.0 sethostid F +GLIBC_2.0 sethostname F +GLIBC_2.0 setitimer F +GLIBC_2.0 setjmp F +GLIBC_2.0 setlinebuf F +GLIBC_2.0 setlocale F +GLIBC_2.0 setlogin F +GLIBC_2.0 setlogmask F +GLIBC_2.0 setmntent F +GLIBC_2.0 setnetent F +GLIBC_2.0 setnetgrent F +GLIBC_2.0 setpgid F +GLIBC_2.0 setpgrp F +GLIBC_2.0 setpriority F +GLIBC_2.0 setprotoent F +GLIBC_2.0 setpwent F +GLIBC_2.0 setregid F +GLIBC_2.0 setresgid F +GLIBC_2.0 setresuid F +GLIBC_2.0 setreuid F +GLIBC_2.0 setrlimit F +GLIBC_2.0 setrpcent F +GLIBC_2.0 setservent F +GLIBC_2.0 setsid F +GLIBC_2.0 setsockopt F +GLIBC_2.0 setspent F +GLIBC_2.0 setstate F +GLIBC_2.0 setstate_r F +GLIBC_2.0 settimeofday F +GLIBC_2.0 setttyent F +GLIBC_2.0 setuid F +GLIBC_2.0 setusershell F +GLIBC_2.0 setutent F +GLIBC_2.0 setvbuf F +GLIBC_2.0 sgetspent F +GLIBC_2.0 sgetspent_r F +GLIBC_2.0 shmat F +GLIBC_2.0 shmctl F +GLIBC_2.0 shmdt F +GLIBC_2.0 shmget F +GLIBC_2.0 shutdown F +GLIBC_2.0 sigaction F +GLIBC_2.0 sigaddset F +GLIBC_2.0 sigaltstack F +GLIBC_2.0 sigandset F +GLIBC_2.0 sigblock F +GLIBC_2.0 sigdelset F +GLIBC_2.0 sigemptyset F +GLIBC_2.0 sigfillset F +GLIBC_2.0 siggetmask F +GLIBC_2.0 siginterrupt F +GLIBC_2.0 sigisemptyset F +GLIBC_2.0 sigismember F +GLIBC_2.0 siglongjmp F +GLIBC_2.0 signal F +GLIBC_2.0 sigorset F +GLIBC_2.0 sigpause F +GLIBC_2.0 sigpending F +GLIBC_2.0 sigprocmask F +GLIBC_2.0 sigreturn F +GLIBC_2.0 sigsetmask F +GLIBC_2.0 sigstack F +GLIBC_2.0 sigsuspend F +GLIBC_2.0 sigvec F +GLIBC_2.0 sigwait F +GLIBC_2.0 sleep F +GLIBC_2.0 snprintf F +GLIBC_2.0 socket F +GLIBC_2.0 socketpair F +GLIBC_2.0 sprintf F +GLIBC_2.0 srand F +GLIBC_2.0 srand48 F +GLIBC_2.0 srand48_r F +GLIBC_2.0 srandom F +GLIBC_2.0 srandom_r F +GLIBC_2.0 sscanf F +GLIBC_2.0 ssignal F +GLIBC_2.0 sstk F +GLIBC_2.0 statfs F +GLIBC_2.0 stderr D 0x4 +GLIBC_2.0 stdin D 0x4 +GLIBC_2.0 stdout D 0x4 +GLIBC_2.0 step F +GLIBC_2.0 stime F +GLIBC_2.0 stpcpy F +GLIBC_2.0 stpncpy F +GLIBC_2.0 strcasecmp F +GLIBC_2.0 strcat F +GLIBC_2.0 strchr F +GLIBC_2.0 strcmp F +GLIBC_2.0 strcoll F +GLIBC_2.0 strcpy F +GLIBC_2.0 strcspn F +GLIBC_2.0 strdup F +GLIBC_2.0 strerror F +GLIBC_2.0 strerror_r F +GLIBC_2.0 strfmon F +GLIBC_2.0 strfry F +GLIBC_2.0 strftime F +GLIBC_2.0 strlen F +GLIBC_2.0 strncasecmp F +GLIBC_2.0 strncat F +GLIBC_2.0 strncmp F +GLIBC_2.0 strncpy F +GLIBC_2.0 strndup F +GLIBC_2.0 strnlen F +GLIBC_2.0 strpbrk F +GLIBC_2.0 strptime F +GLIBC_2.0 strrchr F +GLIBC_2.0 strsep F +GLIBC_2.0 strsignal F +GLIBC_2.0 strspn F +GLIBC_2.0 strstr F +GLIBC_2.0 strtod F +GLIBC_2.0 strtof F +GLIBC_2.0 strtok F +GLIBC_2.0 strtok_r F +GLIBC_2.0 strtol F +GLIBC_2.0 strtold F +GLIBC_2.0 strtoll F +GLIBC_2.0 strtoq F +GLIBC_2.0 strtoul F +GLIBC_2.0 strtoull F +GLIBC_2.0 strtouq F +GLIBC_2.0 strxfrm F +GLIBC_2.0 stty F +GLIBC_2.0 svc_exit F +GLIBC_2.0 svc_fdset D 0x80 +GLIBC_2.0 svc_getreq F +GLIBC_2.0 svc_getreqset F +GLIBC_2.0 svc_register F +GLIBC_2.0 svc_run F +GLIBC_2.0 svc_sendreply F +GLIBC_2.0 svc_unregister F +GLIBC_2.0 svcauthdes_stats D 0xc +GLIBC_2.0 svcerr_auth F +GLIBC_2.0 svcerr_decode F +GLIBC_2.0 svcerr_noproc F +GLIBC_2.0 svcerr_noprog F +GLIBC_2.0 svcerr_progvers F +GLIBC_2.0 svcerr_systemerr F +GLIBC_2.0 svcerr_weakauth F +GLIBC_2.0 svcfd_create F +GLIBC_2.0 svcraw_create F +GLIBC_2.0 svctcp_create F +GLIBC_2.0 svcudp_bufcreate F +GLIBC_2.0 svcudp_create F +GLIBC_2.0 svcudp_enablecache F +GLIBC_2.0 swab F +GLIBC_2.0 swapoff F +GLIBC_2.0 swapon F +GLIBC_2.0 symlink F +GLIBC_2.0 sync F +GLIBC_2.0 sys_errlist D 0x1ec +GLIBC_2.0 sys_nerr D 0x4 +GLIBC_2.0 sys_sigabbrev D 0x80 +GLIBC_2.0 sys_siglist D 0x80 +GLIBC_2.0 syscall F +GLIBC_2.0 sysconf F +GLIBC_2.0 sysctl F +GLIBC_2.0 sysinfo F +GLIBC_2.0 syslog F +GLIBC_2.0 system F +GLIBC_2.0 tcdrain F +GLIBC_2.0 tcflow F +GLIBC_2.0 tcflush F +GLIBC_2.0 tcgetattr F +GLIBC_2.0 tcgetpgrp F +GLIBC_2.0 tcsendbreak F +GLIBC_2.0 tcsetattr F +GLIBC_2.0 tcsetpgrp F +GLIBC_2.0 tdelete F +GLIBC_2.0 telldir F +GLIBC_2.0 tempnam F +GLIBC_2.0 textdomain F +GLIBC_2.0 tfind F +GLIBC_2.0 time F +GLIBC_2.0 timegm F +GLIBC_2.0 timelocal F +GLIBC_2.0 times F +GLIBC_2.0 timezone D 0x4 +GLIBC_2.0 tmpfile F +GLIBC_2.0 tmpnam F +GLIBC_2.0 tmpnam_r F +GLIBC_2.0 toascii F +GLIBC_2.0 tolower F +GLIBC_2.0 toupper F +GLIBC_2.0 towctrans F +GLIBC_2.0 towlower F +GLIBC_2.0 towupper F +GLIBC_2.0 tr_break F +GLIBC_2.0 truncate F +GLIBC_2.0 tsearch F +GLIBC_2.0 ttyname F +GLIBC_2.0 ttyname_r F +GLIBC_2.0 ttyslot F +GLIBC_2.0 twalk F +GLIBC_2.0 tzname D 0x8 +GLIBC_2.0 tzset F +GLIBC_2.0 ualarm F +GLIBC_2.0 ulckpwdf F +GLIBC_2.0 ulimit F +GLIBC_2.0 umask F +GLIBC_2.0 umount F +GLIBC_2.0 uname F +GLIBC_2.0 ungetc F +GLIBC_2.0 unlink F +GLIBC_2.0 unsetenv F +GLIBC_2.0 updwtmp F +GLIBC_2.0 uselib F +GLIBC_2.0 usleep F +GLIBC_2.0 ustat F +GLIBC_2.0 utime F +GLIBC_2.0 utimes F +GLIBC_2.0 utmpname F +GLIBC_2.0 valloc F +GLIBC_2.0 vasprintf F +GLIBC_2.0 vdprintf F +GLIBC_2.0 verr F +GLIBC_2.0 verrx F +GLIBC_2.0 vfork F +GLIBC_2.0 vfprintf F +GLIBC_2.0 vfscanf F +GLIBC_2.0 vhangup F +GLIBC_2.0 vlimit F +GLIBC_2.0 vprintf F +GLIBC_2.0 vscanf F +GLIBC_2.0 vsnprintf F +GLIBC_2.0 vsprintf F +GLIBC_2.0 vsscanf F +GLIBC_2.0 vsyslog F +GLIBC_2.0 vtimes F +GLIBC_2.0 vwarn F +GLIBC_2.0 vwarnx F +GLIBC_2.0 wait F +GLIBC_2.0 wait3 F +GLIBC_2.0 wait4 F +GLIBC_2.0 waitpid F +GLIBC_2.0 warn F +GLIBC_2.0 warnx F +GLIBC_2.0 wcpcpy F +GLIBC_2.0 wcpncpy F +GLIBC_2.0 wcrtomb F +GLIBC_2.0 wcscat F +GLIBC_2.0 wcschr F +GLIBC_2.0 wcscmp F +GLIBC_2.0 wcscoll F +GLIBC_2.0 wcscpy F +GLIBC_2.0 wcscspn F +GLIBC_2.0 wcsdup F +GLIBC_2.0 wcslen F +GLIBC_2.0 wcsncat F +GLIBC_2.0 wcsncmp F +GLIBC_2.0 wcsncpy F +GLIBC_2.0 wcsnrtombs F +GLIBC_2.0 wcspbrk F +GLIBC_2.0 wcsrchr F +GLIBC_2.0 wcsrtombs F +GLIBC_2.0 wcsspn F +GLIBC_2.0 wcsstr F +GLIBC_2.0 wcstod F +GLIBC_2.0 wcstof F +GLIBC_2.0 wcstok F +GLIBC_2.0 wcstol F +GLIBC_2.0 wcstold F +GLIBC_2.0 wcstombs F +GLIBC_2.0 wcstoq F +GLIBC_2.0 wcstoul F +GLIBC_2.0 wcstouq F +GLIBC_2.0 wcswidth F +GLIBC_2.0 wcsxfrm F +GLIBC_2.0 wctob F +GLIBC_2.0 wctomb F +GLIBC_2.0 wctrans F +GLIBC_2.0 wctype F +GLIBC_2.0 wcwidth F +GLIBC_2.0 wmemchr F +GLIBC_2.0 wmemcmp F +GLIBC_2.0 wmemcpy F +GLIBC_2.0 wmemmove F +GLIBC_2.0 wmemset F +GLIBC_2.0 write F +GLIBC_2.0 writev F +GLIBC_2.0 xdr_accepted_reply F +GLIBC_2.0 xdr_array F +GLIBC_2.0 xdr_authunix_parms F +GLIBC_2.0 xdr_bool F +GLIBC_2.0 xdr_bytes F +GLIBC_2.0 xdr_callhdr F +GLIBC_2.0 xdr_callmsg F +GLIBC_2.0 xdr_char F +GLIBC_2.0 xdr_cryptkeyarg F +GLIBC_2.0 xdr_cryptkeyarg2 F +GLIBC_2.0 xdr_cryptkeyres F +GLIBC_2.0 xdr_des_block F +GLIBC_2.0 xdr_double F +GLIBC_2.0 xdr_enum F +GLIBC_2.0 xdr_float F +GLIBC_2.0 xdr_free F +GLIBC_2.0 xdr_int F +GLIBC_2.0 xdr_key_netstarg F +GLIBC_2.0 xdr_key_netstres F +GLIBC_2.0 xdr_keybuf F +GLIBC_2.0 xdr_keystatus F +GLIBC_2.0 xdr_long F +GLIBC_2.0 xdr_netobj F +GLIBC_2.0 xdr_opaque F +GLIBC_2.0 xdr_opaque_auth F +GLIBC_2.0 xdr_pmap F +GLIBC_2.0 xdr_pmaplist F +GLIBC_2.0 xdr_pointer F +GLIBC_2.0 xdr_reference F +GLIBC_2.0 xdr_rejected_reply F +GLIBC_2.0 xdr_replymsg F +GLIBC_2.0 xdr_rmtcall_args F +GLIBC_2.0 xdr_rmtcallres F +GLIBC_2.0 xdr_short F +GLIBC_2.0 xdr_string F +GLIBC_2.0 xdr_u_char F +GLIBC_2.0 xdr_u_int F +GLIBC_2.0 xdr_u_long F +GLIBC_2.0 xdr_u_short F +GLIBC_2.0 xdr_union F +GLIBC_2.0 xdr_vector F +GLIBC_2.0 xdr_void F +GLIBC_2.0 xdr_wrapstring F +GLIBC_2.0 xdrmem_create F +GLIBC_2.0 xdrrec_create F +GLIBC_2.0 xdrrec_endofrecord F +GLIBC_2.0 xdrrec_eof F +GLIBC_2.0 xdrrec_skiprecord F +GLIBC_2.0 xdrstdio_create F +GLIBC_2.0 xencrypt F +GLIBC_2.0 xprt_register F +GLIBC_2.0 xprt_unregister F +GLIBC_2.1 GLIBC_2.1 A +GLIBC_2.1 _IO_2_1_stderr_ D 0xa0 +GLIBC_2.1 _IO_2_1_stdin_ D 0xa0 +GLIBC_2.1 _IO_2_1_stdout_ D 0xa0 +GLIBC_2.1 _IO_do_write F +GLIBC_2.1 _IO_fclose F +GLIBC_2.1 _IO_fdopen F +GLIBC_2.1 _IO_fgetpos64 F +GLIBC_2.1 _IO_file_attach F +GLIBC_2.1 _IO_file_close_it F +GLIBC_2.1 _IO_file_finish F +GLIBC_2.1 _IO_file_fopen F +GLIBC_2.1 _IO_file_init F +GLIBC_2.1 _IO_file_overflow F +GLIBC_2.1 _IO_file_seekoff F +GLIBC_2.1 _IO_file_setbuf F +GLIBC_2.1 _IO_file_sync F +GLIBC_2.1 _IO_file_underflow F +GLIBC_2.1 _IO_file_write F +GLIBC_2.1 _IO_file_xsputn F +GLIBC_2.1 _IO_fopen F +GLIBC_2.1 _IO_fsetpos64 F +GLIBC_2.1 _IO_getline_info F +GLIBC_2.1 _IO_popen F +GLIBC_2.1 _IO_proc_close F +GLIBC_2.1 _IO_proc_open F +GLIBC_2.1 __asprintf F +GLIBC_2.1 __backtrace F +GLIBC_2.1 __backtrace_symbols F +GLIBC_2.1 __backtrace_symbols_fd F +GLIBC_2.1 __duplocale F +GLIBC_2.1 __freelocale F +GLIBC_2.1 __fxstat64 F +GLIBC_2.1 __isalnum_l F +GLIBC_2.1 __isalpha_l F +GLIBC_2.1 __isascii_l F +GLIBC_2.1 __isblank_l F +GLIBC_2.1 __iscntrl_l F +GLIBC_2.1 __isdigit_l F +GLIBC_2.1 __isgraph_l F +GLIBC_2.1 __islower_l F +GLIBC_2.1 __isprint_l F +GLIBC_2.1 __ispunct_l F +GLIBC_2.1 __isspace_l F +GLIBC_2.1 __isupper_l F +GLIBC_2.1 __iswalnum_l F +GLIBC_2.1 __iswalpha_l F +GLIBC_2.1 __iswblank_l F +GLIBC_2.1 __iswcntrl_l F +GLIBC_2.1 __iswctype_l F +GLIBC_2.1 __iswdigit_l F +GLIBC_2.1 __iswgraph_l F +GLIBC_2.1 __iswlower_l F +GLIBC_2.1 __iswprint_l F +GLIBC_2.1 __iswpunct_l F +GLIBC_2.1 __iswspace_l F +GLIBC_2.1 __iswupper_l F +GLIBC_2.1 __iswxdigit_l F +GLIBC_2.1 __isxdigit_l F +GLIBC_2.1 __key_decryptsession_pk_LOCAL D 0x4 +GLIBC_2.1 __key_encryptsession_pk_LOCAL D 0x4 +GLIBC_2.1 __key_gendes_LOCAL D 0x4 +GLIBC_2.1 __libc_allocate_rtsig F +GLIBC_2.1 __libc_current_sigrtmax F +GLIBC_2.1 __libc_current_sigrtmin F +GLIBC_2.1 __libc_freeres F +GLIBC_2.1 __libc_sa_len F +GLIBC_2.1 __lxstat64 F +GLIBC_2.1 __newlocale F +GLIBC_2.1 __poll F +GLIBC_2.1 __pread64 F +GLIBC_2.1 __pwrite64 F +GLIBC_2.1 __rawmemchr F +GLIBC_2.1 __signbit F +GLIBC_2.1 __signbitf F +GLIBC_2.1 __strcasecmp_l F +GLIBC_2.1 __strcasestr F +GLIBC_2.1 __strcoll_l F +GLIBC_2.1 __strfmon_l F +GLIBC_2.1 __strncasecmp_l F +GLIBC_2.1 __strtod_l F +GLIBC_2.1 __strtof_l F +GLIBC_2.1 __strtol_l F +GLIBC_2.1 __strtold_l F +GLIBC_2.1 __strtoll_l F +GLIBC_2.1 __strtoul_l F +GLIBC_2.1 __strtoull_l F +GLIBC_2.1 __strxfrm_l F +GLIBC_2.1 __toascii_l F +GLIBC_2.1 __tolower_l F +GLIBC_2.1 __toupper_l F +GLIBC_2.1 __towctrans F +GLIBC_2.1 __towctrans_l F +GLIBC_2.1 __towlower_l F +GLIBC_2.1 __towupper_l F +GLIBC_2.1 __wcscasecmp_l F +GLIBC_2.1 __wcscoll_l F +GLIBC_2.1 __wcsncasecmp_l F +GLIBC_2.1 __wcstod_l F +GLIBC_2.1 __wcstof_l F +GLIBC_2.1 __wcstol_l F +GLIBC_2.1 __wcstold_l F +GLIBC_2.1 __wcstoll_l F +GLIBC_2.1 __wcstoul_l F +GLIBC_2.1 __wcstoull_l F +GLIBC_2.1 __wcsxfrm_l F +GLIBC_2.1 __wctype_l F +GLIBC_2.1 __xstat64 F +GLIBC_2.1 _authenticate F +GLIBC_2.1 _dl_mcount_wrapper F +GLIBC_2.1 _dl_mcount_wrapper_check F +GLIBC_2.1 _sys_errlist D 0x1f4 +GLIBC_2.1 _sys_nerr D 0x4 +GLIBC_2.1 _sys_siglist D 0x100 +GLIBC_2.1 addseverity F +GLIBC_2.1 alphasort64 F +GLIBC_2.1 argp_err_exit_status D 0x4 +GLIBC_2.1 argp_error F +GLIBC_2.1 argp_failure F +GLIBC_2.1 argp_help F +GLIBC_2.1 argp_parse F +GLIBC_2.1 argp_program_bug_address D 0x4 +GLIBC_2.1 argp_program_version D 0x4 +GLIBC_2.1 argp_program_version_hook D 0x4 +GLIBC_2.1 argp_state_help F +GLIBC_2.1 argp_usage F +GLIBC_2.1 authdes_create F +GLIBC_2.1 authdes_getucred F +GLIBC_2.1 authdes_pk_create F +GLIBC_2.1 backtrace F +GLIBC_2.1 backtrace_symbols F +GLIBC_2.1 backtrace_symbols_fd F +GLIBC_2.1 capget F +GLIBC_2.1 capset F +GLIBC_2.1 cbc_crypt F +GLIBC_2.1 chown F +GLIBC_2.1 clntunix_create F +GLIBC_2.1 creat64 F +GLIBC_2.1 des_setparity F +GLIBC_2.1 ecb_crypt F +GLIBC_2.1 endutxent F +GLIBC_2.1 fattach F +GLIBC_2.1 fclose F +GLIBC_2.1 fdetach F +GLIBC_2.1 fdopen F +GLIBC_2.1 ffsl F +GLIBC_2.1 ffsll F +GLIBC_2.1 fgetc_unlocked F +GLIBC_2.1 fgetpos64 F +GLIBC_2.1 fgets_unlocked F +GLIBC_2.1 fmtmsg F +GLIBC_2.1 fopen F +GLIBC_2.1 fopen64 F +GLIBC_2.1 fputs_unlocked F +GLIBC_2.1 fread_unlocked F +GLIBC_2.1 freopen64 F +GLIBC_2.1 fseeko F +GLIBC_2.1 fseeko64 F +GLIBC_2.1 fsetpos64 F +GLIBC_2.1 fstatfs64 F +GLIBC_2.1 fstatvfs F +GLIBC_2.1 fstatvfs64 F +GLIBC_2.1 ftello F +GLIBC_2.1 ftello64 F +GLIBC_2.1 ftruncate64 F +GLIBC_2.1 ftw64 F +GLIBC_2.1 fwrite_unlocked F +GLIBC_2.1 gai_strerror F +GLIBC_2.1 getcontext F +GLIBC_2.1 getdate F +GLIBC_2.1 getdate_err D 0x4 +GLIBC_2.1 getdate_r F +GLIBC_2.1 getmsg F +GLIBC_2.1 getnameinfo F +GLIBC_2.1 getnetname F +GLIBC_2.1 getpmsg F +GLIBC_2.1 getpt F +GLIBC_2.1 getrlimit64 F +GLIBC_2.1 getutxent F +GLIBC_2.1 getutxid F +GLIBC_2.1 getutxline F +GLIBC_2.1 glob64 F +GLIBC_2.1 globfree64 F +GLIBC_2.1 gnu_get_libc_release F +GLIBC_2.1 gnu_get_libc_version F +GLIBC_2.1 grantpt F +GLIBC_2.1 host2netname F +GLIBC_2.1 iconv F +GLIBC_2.1 iconv_close F +GLIBC_2.1 iconv_open F +GLIBC_2.1 if_freenameindex F +GLIBC_2.1 if_indextoname F +GLIBC_2.1 if_nameindex F +GLIBC_2.1 if_nametoindex F +GLIBC_2.1 in6addr_any D 0x10 +GLIBC_2.1 in6addr_loopback D 0x10 +GLIBC_2.1 isastream F +GLIBC_2.1 iswblank F +GLIBC_2.1 key_decryptsession F +GLIBC_2.1 key_decryptsession_pk F +GLIBC_2.1 key_encryptsession F +GLIBC_2.1 key_encryptsession_pk F +GLIBC_2.1 key_gendes F +GLIBC_2.1 key_get_conv F +GLIBC_2.1 key_secretkey_is_set F +GLIBC_2.1 key_setnet F +GLIBC_2.1 key_setsecret F +GLIBC_2.1 lockf64 F +GLIBC_2.1 lseek64 F +GLIBC_2.1 makecontext F +GLIBC_2.1 mempcpy F +GLIBC_2.1 mmap64 F +GLIBC_2.1 netname2host F +GLIBC_2.1 netname2user F +GLIBC_2.1 nftw F +GLIBC_2.1 nftw64 F +GLIBC_2.1 ntp_adjtime F +GLIBC_2.1 ntp_gettime F +GLIBC_2.1 open64 F +GLIBC_2.1 passwd2des F +GLIBC_2.1 pclose F +GLIBC_2.1 popen F +GLIBC_2.1 pread F +GLIBC_2.1 pread64 F +GLIBC_2.1 printf_size F +GLIBC_2.1 printf_size_info F +GLIBC_2.1 pthread_attr_init F +GLIBC_2.1 ptsname F +GLIBC_2.1 ptsname_r F +GLIBC_2.1 putgrent F +GLIBC_2.1 putmsg F +GLIBC_2.1 putpmsg F +GLIBC_2.1 pututxline F +GLIBC_2.1 pwrite F +GLIBC_2.1 pwrite64 F +GLIBC_2.1 rawmemchr F +GLIBC_2.1 readdir64 F +GLIBC_2.1 readdir64_r F +GLIBC_2.1 rtime F +GLIBC_2.1 scandir64 F +GLIBC_2.1 sendfile F +GLIBC_2.1 setrlimit64 F +GLIBC_2.1 setutxent F +GLIBC_2.1 sighold F +GLIBC_2.1 sigignore F +GLIBC_2.1 sigqueue F +GLIBC_2.1 sigrelse F +GLIBC_2.1 sigset F +GLIBC_2.1 sigtimedwait F +GLIBC_2.1 sigwaitinfo F +GLIBC_2.1 statfs64 F +GLIBC_2.1 statvfs F +GLIBC_2.1 statvfs64 F +GLIBC_2.1 strcasestr F +GLIBC_2.1 strtoimax F +GLIBC_2.1 strtoumax F +GLIBC_2.1 strverscmp F +GLIBC_2.1 svcunix_create F +GLIBC_2.1 svcunixfd_create F +GLIBC_2.1 swapcontext F +GLIBC_2.1 sys_errlist D 0x1f4 +GLIBC_2.1 sys_nerr D 0x4 +GLIBC_2.1 sys_sigabbrev D 0x100 +GLIBC_2.1 sys_siglist D 0x100 +GLIBC_2.1 sysv_signal F +GLIBC_2.1 tcgetsid F +GLIBC_2.1 tdestroy F +GLIBC_2.1 tmpfile F +GLIBC_2.1 tmpfile64 F +GLIBC_2.1 truncate64 F +GLIBC_2.1 umount2 F +GLIBC_2.1 unlockpt F +GLIBC_2.1 updwtmpx F +GLIBC_2.1 user2netname F +GLIBC_2.1 utmpxname F +GLIBC_2.1 versionsort F +GLIBC_2.1 versionsort64 F +GLIBC_2.1 waitid F +GLIBC_2.1 wcscasecmp F +GLIBC_2.1 wcsncasecmp F +GLIBC_2.1 wcsnlen F +GLIBC_2.1 wcstoimax F +GLIBC_2.1 wcstoll F +GLIBC_2.1 wcstoull F +GLIBC_2.1 wcstoumax F +GLIBC_2.1 wcswcs F +GLIBC_2.1 wordexp F +GLIBC_2.1 wordfree F +GLIBC_2.1 xdecrypt F +GLIBC_2.1 xdr_authdes_cred F +GLIBC_2.1 xdr_authdes_verf F +GLIBC_2.1 xdr_getcredres F +GLIBC_2.1 xdr_int16_t F +GLIBC_2.1 xdr_int32_t F +GLIBC_2.1 xdr_int8_t F +GLIBC_2.1 xdr_netnamestr F +GLIBC_2.1 xdr_sizeof F +GLIBC_2.1 xdr_uint16_t F +GLIBC_2.1 xdr_uint32_t F +GLIBC_2.1 xdr_uint8_t F +GLIBC_2.1 xdr_unixcred F +GLIBC_2.1.1 GLIBC_2.1.1 A +GLIBC_2.1.1 _Exit F +GLIBC_2.1.1 __mempcpy_small F +GLIBC_2.1.1 __stpcpy_small F +GLIBC_2.1.1 __strcpy_small F +GLIBC_2.1.1 __strcspn_c1 F +GLIBC_2.1.1 __strcspn_c2 F +GLIBC_2.1.1 __strcspn_c3 F +GLIBC_2.1.1 __strpbrk_c2 F +GLIBC_2.1.1 __strpbrk_c3 F +GLIBC_2.1.1 __strsep_1c F +GLIBC_2.1.1 __strsep_2c F +GLIBC_2.1.1 __strsep_3c F +GLIBC_2.1.1 __strsep_g F +GLIBC_2.1.1 __strspn_c1 F +GLIBC_2.1.1 __strspn_c2 F +GLIBC_2.1.1 __strspn_c3 F +GLIBC_2.1.1 __strtok_r_1c F +GLIBC_2.1.1 __strverscmp F +GLIBC_2.1.1 getutmp F +GLIBC_2.1.1 getutmpx F +GLIBC_2.1.1 imaxabs F +GLIBC_2.1.1 imaxdiv F +GLIBC_2.1.1 strchrnul F +GLIBC_2.1.1 xdr_hyper F +GLIBC_2.1.1 xdr_int64_t F +GLIBC_2.1.1 xdr_longlong_t F +GLIBC_2.1.1 xdr_u_hyper F +GLIBC_2.1.1 xdr_u_longlong_t F +GLIBC_2.1.1 xdr_uint64_t F +GLIBC_2.1.2 GLIBC_2.1.2 A +GLIBC_2.1.2 __vfork F +GLIBC_2.1.2 getaliasbyname_r F +GLIBC_2.1.2 getaliasent_r F +GLIBC_2.1.2 getgrent_r F +GLIBC_2.1.2 getgrgid_r F +GLIBC_2.1.2 getgrnam_r F +GLIBC_2.1.2 gethostbyaddr_r F +GLIBC_2.1.2 gethostbyname2_r F +GLIBC_2.1.2 gethostbyname_r F +GLIBC_2.1.2 gethostent_r F +GLIBC_2.1.2 getnetbyaddr_r F +GLIBC_2.1.2 getnetbyname_r F +GLIBC_2.1.2 getnetent_r F +GLIBC_2.1.2 getprotobyname_r F +GLIBC_2.1.2 getprotobynumber_r F +GLIBC_2.1.2 getprotoent_r F +GLIBC_2.1.2 getpwent_r F +GLIBC_2.1.2 getpwnam_r F +GLIBC_2.1.2 getpwuid_r F +GLIBC_2.1.2 getrpcbyname_r F +GLIBC_2.1.2 getrpcbynumber_r F +GLIBC_2.1.2 getrpcent_r F +GLIBC_2.1.2 getservbyname_r F +GLIBC_2.1.2 getservbyport_r F +GLIBC_2.1.2 getservent_r F +GLIBC_2.1.2 getspent_r F +GLIBC_2.1.2 getspnam_r F +GLIBC_2.1.3 GLIBC_2.1.3 A +GLIBC_2.1.3 __cxa_atexit F +GLIBC_2.1.3 __cxa_finalize F +GLIBC_2.1.3 __sigsuspend F +GLIBC_2.10 GLIBC_2.10 A +GLIBC_2.10 __cxa_at_quick_exit F +GLIBC_2.10 __posix_getopt F +GLIBC_2.10 accept4 F +GLIBC_2.10 endsgent F +GLIBC_2.10 fallocate F +GLIBC_2.10 fgetsgent F +GLIBC_2.10 fgetsgent_r F +GLIBC_2.10 getsgent F +GLIBC_2.10 getsgent_r F +GLIBC_2.10 getsgnam F +GLIBC_2.10 getsgnam_r F +GLIBC_2.10 malloc_info F +GLIBC_2.10 preadv F +GLIBC_2.10 preadv64 F +GLIBC_2.10 psiginfo F +GLIBC_2.10 putsgent F +GLIBC_2.10 pwritev F +GLIBC_2.10 pwritev64 F +GLIBC_2.10 quick_exit F +GLIBC_2.10 register_printf_modifier F +GLIBC_2.10 register_printf_specifier F +GLIBC_2.10 register_printf_type F +GLIBC_2.10 setsgent F +GLIBC_2.10 sgetsgent F +GLIBC_2.10 sgetsgent_r F +GLIBC_2.11 GLIBC_2.11 A +GLIBC_2.11 __longjmp_chk F +GLIBC_2.11 execvpe F +GLIBC_2.11 fallocate64 F +GLIBC_2.11 mkostemps F +GLIBC_2.11 mkostemps64 F +GLIBC_2.11 mkstemps F +GLIBC_2.11 mkstemps64 F +GLIBC_2.12 GLIBC_2.12 A +GLIBC_2.12 _sys_errlist D 0x21c +GLIBC_2.12 _sys_nerr D 0x4 +GLIBC_2.12 ntp_gettimex F +GLIBC_2.12 recvmmsg F +GLIBC_2.12 sys_errlist D 0x21c +GLIBC_2.12 sys_nerr D 0x4 +GLIBC_2.13 GLIBC_2.13 A +GLIBC_2.13 fanotify_init F +GLIBC_2.13 fanotify_mark F +GLIBC_2.13 prlimit F +GLIBC_2.13 prlimit64 F +GLIBC_2.14 GLIBC_2.14 A +GLIBC_2.14 clock_adjtime F +GLIBC_2.14 name_to_handle_at F +GLIBC_2.14 open_by_handle_at F +GLIBC_2.14 sendmmsg F +GLIBC_2.14 setns F +GLIBC_2.14 syncfs F +GLIBC_2.15 GLIBC_2.15 A +GLIBC_2.15 __fdelt_chk F +GLIBC_2.15 __fdelt_warn F +GLIBC_2.15 posix_spawn F +GLIBC_2.15 posix_spawnp F +GLIBC_2.15 process_vm_readv F +GLIBC_2.15 process_vm_writev F +GLIBC_2.15 scandirat F +GLIBC_2.15 scandirat64 F +GLIBC_2.16 GLIBC_2.16 A +GLIBC_2.16 __getauxval F +GLIBC_2.16 __mcount_internal F +GLIBC_2.16 __poll_chk F +GLIBC_2.16 __ppoll_chk F +GLIBC_2.16 aligned_alloc F +GLIBC_2.16 c16rtomb F +GLIBC_2.16 c32rtomb F +GLIBC_2.16 getauxval F +GLIBC_2.16 mbrtoc16 F +GLIBC_2.16 mbrtoc32 F +GLIBC_2.16 timespec_get F +GLIBC_2.17 GLIBC_2.17 A +GLIBC_2.17 __ppc_get_timebase_freq F +GLIBC_2.17 clock_getcpuclockid F +GLIBC_2.17 clock_getres F +GLIBC_2.17 clock_gettime F +GLIBC_2.17 clock_nanosleep F +GLIBC_2.17 clock_settime F +GLIBC_2.17 secure_getenv F +GLIBC_2.18 GLIBC_2.18 A +GLIBC_2.18 __cxa_thread_atexit_impl F +GLIBC_2.19 GLIBC_2.19 A +GLIBC_2.19 __atomic_feclearexcept F +GLIBC_2.19 __atomic_feholdexcept F +GLIBC_2.19 __atomic_feupdateenv F +GLIBC_2.19 __flt_rounds F +GLIBC_2.2 GLIBC_2.2 A +GLIBC_2.2 _IO_adjust_wcolumn F +GLIBC_2.2 _IO_fgetpos F +GLIBC_2.2 _IO_fgetpos64 F +GLIBC_2.2 _IO_free_wbackup_area F +GLIBC_2.2 _IO_fsetpos F +GLIBC_2.2 _IO_fsetpos64 F +GLIBC_2.2 _IO_init_wmarker F +GLIBC_2.2 _IO_iter_begin F +GLIBC_2.2 _IO_iter_end F +GLIBC_2.2 _IO_iter_file F +GLIBC_2.2 _IO_iter_next F +GLIBC_2.2 _IO_least_wmarker F +GLIBC_2.2 _IO_list_lock F +GLIBC_2.2 _IO_list_resetlock F +GLIBC_2.2 _IO_list_unlock F +GLIBC_2.2 _IO_seekwmark F +GLIBC_2.2 _IO_sputbackwc F +GLIBC_2.2 _IO_sungetwc F +GLIBC_2.2 _IO_switch_to_main_wget_area F +GLIBC_2.2 _IO_switch_to_wbackup_area F +GLIBC_2.2 _IO_switch_to_wget_mode F +GLIBC_2.2 _IO_unsave_wmarkers F +GLIBC_2.2 _IO_wdefault_doallocate F +GLIBC_2.2 _IO_wdefault_finish F +GLIBC_2.2 _IO_wdefault_pbackfail F +GLIBC_2.2 _IO_wdefault_uflow F +GLIBC_2.2 _IO_wdefault_xsgetn F +GLIBC_2.2 _IO_wdefault_xsputn F +GLIBC_2.2 _IO_wdo_write F +GLIBC_2.2 _IO_wdoallocbuf F +GLIBC_2.2 _IO_wfile_jumps D 0x54 +GLIBC_2.2 _IO_wfile_overflow F +GLIBC_2.2 _IO_wfile_seekoff F +GLIBC_2.2 _IO_wfile_sync F +GLIBC_2.2 _IO_wfile_underflow F +GLIBC_2.2 _IO_wfile_xsputn F +GLIBC_2.2 _IO_wmarker_delta F +GLIBC_2.2 _IO_wsetb F +GLIBC_2.2 __assert F +GLIBC_2.2 __ctype32_tolower D 0x4 +GLIBC_2.2 __ctype32_toupper D 0x4 +GLIBC_2.2 __cyg_profile_func_enter F +GLIBC_2.2 __cyg_profile_func_exit F +GLIBC_2.2 __endmntent F +GLIBC_2.2 __fbufsize F +GLIBC_2.2 __flbf F +GLIBC_2.2 __fpending F +GLIBC_2.2 __fpurge F +GLIBC_2.2 __freadable F +GLIBC_2.2 __freading F +GLIBC_2.2 __fsetlocking F +GLIBC_2.2 __fwritable F +GLIBC_2.2 __fwriting F +GLIBC_2.2 __fxstat64 F +GLIBC_2.2 __getmntent_r F +GLIBC_2.2 __lxstat64 F +GLIBC_2.2 __nl_langinfo_l F +GLIBC_2.2 __open64 F +GLIBC_2.2 __res_init F +GLIBC_2.2 __res_nclose F +GLIBC_2.2 __res_ninit F +GLIBC_2.2 __res_state F +GLIBC_2.2 __setmntent F +GLIBC_2.2 __statfs F +GLIBC_2.2 __strndup F +GLIBC_2.2 __sysconf F +GLIBC_2.2 __sysctl F +GLIBC_2.2 __wctrans_l F +GLIBC_2.2 __woverflow F +GLIBC_2.2 __wuflow F +GLIBC_2.2 __wunderflow F +GLIBC_2.2 __xpg_sigpause F +GLIBC_2.2 __xstat64 F +GLIBC_2.2 _flushlbf F +GLIBC_2.2 _res_hconf D 0x30 +GLIBC_2.2 bind_textdomain_codeset F +GLIBC_2.2 dcngettext F +GLIBC_2.2 dngettext F +GLIBC_2.2 fgetpos F +GLIBC_2.2 fgetpos64 F +GLIBC_2.2 fgetwc F +GLIBC_2.2 fgetwc_unlocked F +GLIBC_2.2 fgetws F +GLIBC_2.2 fgetws_unlocked F +GLIBC_2.2 fmemopen F +GLIBC_2.2 fopencookie F +GLIBC_2.2 fputwc F +GLIBC_2.2 fputwc_unlocked F +GLIBC_2.2 fputws F +GLIBC_2.2 fputws_unlocked F +GLIBC_2.2 fsetpos F +GLIBC_2.2 fsetpos64 F +GLIBC_2.2 fwide F +GLIBC_2.2 fwprintf F +GLIBC_2.2 fwscanf F +GLIBC_2.2 getdirentries64 F +GLIBC_2.2 getloadavg F +GLIBC_2.2 getrlimit F +GLIBC_2.2 getrlimit64 F +GLIBC_2.2 getwc F +GLIBC_2.2 getwc_unlocked F +GLIBC_2.2 getwchar F +GLIBC_2.2 getwchar_unlocked F +GLIBC_2.2 glob64 F +GLIBC_2.2 iruserok_af F +GLIBC_2.2 localeconv F +GLIBC_2.2 mcheck_check_all F +GLIBC_2.2 mcheck_pedantic F +GLIBC_2.2 memrchr F +GLIBC_2.2 mincore F +GLIBC_2.2 mkdtemp F +GLIBC_2.2 mkstemp64 F +GLIBC_2.2 moncontrol F +GLIBC_2.2 msgctl F +GLIBC_2.2 ngettext F +GLIBC_2.2 posix_fadvise F +GLIBC_2.2 posix_fadvise64 F +GLIBC_2.2 posix_fallocate F +GLIBC_2.2 posix_fallocate64 F +GLIBC_2.2 posix_madvise F +GLIBC_2.2 posix_memalign F +GLIBC_2.2 posix_spawn F +GLIBC_2.2 posix_spawn_file_actions_addclose F +GLIBC_2.2 posix_spawn_file_actions_adddup2 F +GLIBC_2.2 posix_spawn_file_actions_addopen F +GLIBC_2.2 posix_spawn_file_actions_destroy F +GLIBC_2.2 posix_spawn_file_actions_init F +GLIBC_2.2 posix_spawnattr_destroy F +GLIBC_2.2 posix_spawnattr_getflags F +GLIBC_2.2 posix_spawnattr_getpgroup F +GLIBC_2.2 posix_spawnattr_getschedparam F +GLIBC_2.2 posix_spawnattr_getschedpolicy F +GLIBC_2.2 posix_spawnattr_getsigdefault F +GLIBC_2.2 posix_spawnattr_getsigmask F +GLIBC_2.2 posix_spawnattr_init F +GLIBC_2.2 posix_spawnattr_setflags F +GLIBC_2.2 posix_spawnattr_setpgroup F +GLIBC_2.2 posix_spawnattr_setschedparam F +GLIBC_2.2 posix_spawnattr_setschedpolicy F +GLIBC_2.2 posix_spawnattr_setsigdefault F +GLIBC_2.2 posix_spawnattr_setsigmask F +GLIBC_2.2 posix_spawnp F +GLIBC_2.2 putwc F +GLIBC_2.2 putwc_unlocked F +GLIBC_2.2 putwchar F +GLIBC_2.2 putwchar_unlocked F +GLIBC_2.2 rcmd_af F +GLIBC_2.2 readdir64 F +GLIBC_2.2 readdir64_r F +GLIBC_2.2 rexec_af F +GLIBC_2.2 rresvport_af F +GLIBC_2.2 ruserok_af F +GLIBC_2.2 scandir64 F +GLIBC_2.2 semctl F +GLIBC_2.2 setrlimit F +GLIBC_2.2 shmctl F +GLIBC_2.2 svc_getreq_common F +GLIBC_2.2 svc_getreq_poll F +GLIBC_2.2 svc_max_pollfd D 0x4 +GLIBC_2.2 svc_pollfd D 0x4 +GLIBC_2.2 swprintf F +GLIBC_2.2 swscanf F +GLIBC_2.2 ungetwc F +GLIBC_2.2 vfwprintf F +GLIBC_2.2 vfwscanf F +GLIBC_2.2 vswprintf F +GLIBC_2.2 vswscanf F +GLIBC_2.2 vwprintf F +GLIBC_2.2 vwscanf F +GLIBC_2.2 wcschrnul F +GLIBC_2.2 wcsftime F +GLIBC_2.2 wmempcpy F +GLIBC_2.2 wprintf F +GLIBC_2.2 wscanf F +GLIBC_2.2.1 GLIBC_2.2.1 A +GLIBC_2.2.1 pivot_root F +GLIBC_2.2.1 posix_openpt F +GLIBC_2.2.2 GLIBC_2.2.2 A +GLIBC_2.2.2 __nss_hostname_digits_dots F +GLIBC_2.2.3 GLIBC_2.2.3 A +GLIBC_2.2.3 __rpc_thread_createerr F +GLIBC_2.2.3 __rpc_thread_svc_fdset F +GLIBC_2.2.3 __rpc_thread_svc_max_pollfd F +GLIBC_2.2.3 __rpc_thread_svc_pollfd F +GLIBC_2.2.3 fnmatch F +GLIBC_2.2.3 sprofil F +GLIBC_2.2.4 GLIBC_2.2.4 A +GLIBC_2.2.4 dl_iterate_phdr F +GLIBC_2.2.4 getgrouplist F +GLIBC_2.2.4 sockatmark F +GLIBC_2.2.6 GLIBC_2.2.6 A +GLIBC_2.2.6 __nanosleep F +GLIBC_2.22 GLIBC_2.22 A +GLIBC_2.22 fmemopen F +GLIBC_2.23 GLIBC_2.23 A +GLIBC_2.23 fts64_children F +GLIBC_2.23 fts64_close F +GLIBC_2.23 fts64_open F +GLIBC_2.23 fts64_read F +GLIBC_2.23 fts64_set F +GLIBC_2.24 GLIBC_2.24 A +GLIBC_2.24 quick_exit F +GLIBC_2.25 GLIBC_2.25 A +GLIBC_2.25 __explicit_bzero_chk F +GLIBC_2.25 explicit_bzero F +GLIBC_2.25 getentropy F +GLIBC_2.25 getrandom F +GLIBC_2.25 strfromd F +GLIBC_2.25 strfromf F +GLIBC_2.25 strfroml F +GLIBC_2.26 GLIBC_2.26 A +GLIBC_2.26 preadv2 F +GLIBC_2.26 preadv64v2 F +GLIBC_2.26 pwritev2 F +GLIBC_2.26 pwritev64v2 F +GLIBC_2.26 reallocarray F +GLIBC_2.3 GLIBC_2.3 A +GLIBC_2.3 __ctype_b_loc F +GLIBC_2.3 __ctype_tolower_loc F +GLIBC_2.3 __ctype_toupper_loc F +GLIBC_2.3 __isctype F +GLIBC_2.3 __strftime_l F +GLIBC_2.3 __uselocale F +GLIBC_2.3 __wcsftime_l F +GLIBC_2.3 _sys_errlist D 0x1f8 +GLIBC_2.3 _sys_nerr D 0x4 +GLIBC_2.3 duplocale F +GLIBC_2.3 fgetxattr F +GLIBC_2.3 flistxattr F +GLIBC_2.3 freeifaddrs F +GLIBC_2.3 freelocale F +GLIBC_2.3 fremovexattr F +GLIBC_2.3 fsetxattr F +GLIBC_2.3 futimes F +GLIBC_2.3 getifaddrs F +GLIBC_2.3 getxattr F +GLIBC_2.3 isalnum_l F +GLIBC_2.3 isalpha_l F +GLIBC_2.3 isblank_l F +GLIBC_2.3 iscntrl_l F +GLIBC_2.3 isctype F +GLIBC_2.3 isdigit_l F +GLIBC_2.3 isgraph_l F +GLIBC_2.3 islower_l F +GLIBC_2.3 isprint_l F +GLIBC_2.3 ispunct_l F +GLIBC_2.3 isspace_l F +GLIBC_2.3 isupper_l F +GLIBC_2.3 iswalnum_l F +GLIBC_2.3 iswalpha_l F +GLIBC_2.3 iswblank_l F +GLIBC_2.3 iswcntrl_l F +GLIBC_2.3 iswctype_l F +GLIBC_2.3 iswdigit_l F +GLIBC_2.3 iswgraph_l F +GLIBC_2.3 iswlower_l F +GLIBC_2.3 iswprint_l F +GLIBC_2.3 iswpunct_l F +GLIBC_2.3 iswspace_l F +GLIBC_2.3 iswupper_l F +GLIBC_2.3 iswxdigit_l F +GLIBC_2.3 isxdigit_l F +GLIBC_2.3 lgetxattr F +GLIBC_2.3 listxattr F +GLIBC_2.3 llistxattr F +GLIBC_2.3 lremovexattr F +GLIBC_2.3 lsetxattr F +GLIBC_2.3 lutimes F +GLIBC_2.3 newlocale F +GLIBC_2.3 nl_langinfo_l F +GLIBC_2.3 readahead F +GLIBC_2.3 realpath F +GLIBC_2.3 removexattr F +GLIBC_2.3 sendfile64 F +GLIBC_2.3 setxattr F +GLIBC_2.3 strcasecmp_l F +GLIBC_2.3 strcoll_l F +GLIBC_2.3 strfmon_l F +GLIBC_2.3 strftime_l F +GLIBC_2.3 strncasecmp_l F +GLIBC_2.3 strtod_l F +GLIBC_2.3 strtof_l F +GLIBC_2.3 strtol_l F +GLIBC_2.3 strtold_l F +GLIBC_2.3 strtoll_l F +GLIBC_2.3 strtoul_l F +GLIBC_2.3 strtoull_l F +GLIBC_2.3 strxfrm_l F +GLIBC_2.3 sys_errlist D 0x1f8 +GLIBC_2.3 sys_nerr D 0x4 +GLIBC_2.3 tolower_l F +GLIBC_2.3 toupper_l F +GLIBC_2.3 towctrans_l F +GLIBC_2.3 towlower_l F +GLIBC_2.3 towupper_l F +GLIBC_2.3 uselocale F +GLIBC_2.3 wcscasecmp_l F +GLIBC_2.3 wcscoll_l F +GLIBC_2.3 wcsftime_l F +GLIBC_2.3 wcsncasecmp_l F +GLIBC_2.3 wcstod_l F +GLIBC_2.3 wcstof_l F +GLIBC_2.3 wcstol_l F +GLIBC_2.3 wcstold_l F +GLIBC_2.3 wcstoll_l F +GLIBC_2.3 wcstoul_l F +GLIBC_2.3 wcstoull_l F +GLIBC_2.3 wcsxfrm_l F +GLIBC_2.3 wctrans_l F +GLIBC_2.3 wctype_l F +GLIBC_2.3.2 GLIBC_2.3.2 A +GLIBC_2.3.2 __adddf3 F +GLIBC_2.3.2 __addsf3 F +GLIBC_2.3.2 __divdf3 F +GLIBC_2.3.2 __divsf3 F +GLIBC_2.3.2 __eqdf2 F +GLIBC_2.3.2 __eqsf2 F +GLIBC_2.3.2 __extendsfdf2 F +GLIBC_2.3.2 __fixdfsi F +GLIBC_2.3.2 __fixsfsi F +GLIBC_2.3.2 __fixunsdfsi F +GLIBC_2.3.2 __fixunssfsi F +GLIBC_2.3.2 __floatsidf F +GLIBC_2.3.2 __floatsisf F +GLIBC_2.3.2 __gedf2 F +GLIBC_2.3.2 __gesf2 F +GLIBC_2.3.2 __ledf2 F +GLIBC_2.3.2 __lesf2 F +GLIBC_2.3.2 __muldf3 F +GLIBC_2.3.2 __mulsf3 F +GLIBC_2.3.2 __negdf2 F +GLIBC_2.3.2 __negsf2 F +GLIBC_2.3.2 __register_atfork F +GLIBC_2.3.2 __sim_disabled_exceptions D 0x4 +GLIBC_2.3.2 __sim_exceptions D 0x4 +GLIBC_2.3.2 __sim_round_mode D 0x4 +GLIBC_2.3.2 __sqrtdf2 F +GLIBC_2.3.2 __sqrtsf2 F +GLIBC_2.3.2 __subdf3 F +GLIBC_2.3.2 __subsf3 F +GLIBC_2.3.2 __truncdfsf2 F +GLIBC_2.3.2 epoll_create F +GLIBC_2.3.2 epoll_ctl F +GLIBC_2.3.2 epoll_wait F +GLIBC_2.3.2 lchmod F +GLIBC_2.3.2 pthread_cond_broadcast F +GLIBC_2.3.2 pthread_cond_destroy F +GLIBC_2.3.2 pthread_cond_init F +GLIBC_2.3.2 pthread_cond_signal F +GLIBC_2.3.2 pthread_cond_timedwait F +GLIBC_2.3.2 pthread_cond_wait F +GLIBC_2.3.2 strptime_l F +GLIBC_2.3.3 GLIBC_2.3.3 A +GLIBC_2.3.3 _sys_siglist D 0x104 +GLIBC_2.3.3 getcontext F +GLIBC_2.3.3 gnu_dev_major F +GLIBC_2.3.3 gnu_dev_makedev F +GLIBC_2.3.3 gnu_dev_minor F +GLIBC_2.3.3 inet6_option_alloc F +GLIBC_2.3.3 inet6_option_append F +GLIBC_2.3.3 inet6_option_find F +GLIBC_2.3.3 inet6_option_init F +GLIBC_2.3.3 inet6_option_next F +GLIBC_2.3.3 inet6_option_space F +GLIBC_2.3.3 makecontext F +GLIBC_2.3.3 nftw F +GLIBC_2.3.3 nftw64 F +GLIBC_2.3.3 posix_fadvise64 F +GLIBC_2.3.3 posix_fallocate64 F +GLIBC_2.3.3 remap_file_pages F +GLIBC_2.3.3 sched_getaffinity F +GLIBC_2.3.3 sched_setaffinity F +GLIBC_2.3.3 semtimedop F +GLIBC_2.3.3 setcontext F +GLIBC_2.3.3 swapcontext F +GLIBC_2.3.3 sys_sigabbrev D 0x104 +GLIBC_2.3.3 sys_siglist D 0x104 +GLIBC_2.3.4 GLIBC_2.3.4 A +GLIBC_2.3.4 __chk_fail F +GLIBC_2.3.4 __fprintf_chk F +GLIBC_2.3.4 __gets_chk F +GLIBC_2.3.4 __memcpy_chk F +GLIBC_2.3.4 __memmove_chk F +GLIBC_2.3.4 __mempcpy_chk F +GLIBC_2.3.4 __memset_chk F +GLIBC_2.3.4 __printf_chk F +GLIBC_2.3.4 __sigsetjmp F +GLIBC_2.3.4 __snprintf_chk F +GLIBC_2.3.4 __sprintf_chk F +GLIBC_2.3.4 __stpcpy_chk F +GLIBC_2.3.4 __strcat_chk F +GLIBC_2.3.4 __strcpy_chk F +GLIBC_2.3.4 __strncat_chk F +GLIBC_2.3.4 __strncpy_chk F +GLIBC_2.3.4 __vfprintf_chk F +GLIBC_2.3.4 __vprintf_chk F +GLIBC_2.3.4 __vsnprintf_chk F +GLIBC_2.3.4 __vsprintf_chk F +GLIBC_2.3.4 __xpg_strerror_r F +GLIBC_2.3.4 _longjmp F +GLIBC_2.3.4 _setjmp F +GLIBC_2.3.4 getcontext F +GLIBC_2.3.4 getipv4sourcefilter F +GLIBC_2.3.4 getsourcefilter F +GLIBC_2.3.4 longjmp F +GLIBC_2.3.4 makecontext F +GLIBC_2.3.4 regexec F +GLIBC_2.3.4 sched_getaffinity F +GLIBC_2.3.4 sched_setaffinity F +GLIBC_2.3.4 setcontext F +GLIBC_2.3.4 setipv4sourcefilter F +GLIBC_2.3.4 setjmp F +GLIBC_2.3.4 setsourcefilter F +GLIBC_2.3.4 siglongjmp F +GLIBC_2.3.4 swapcontext F +GLIBC_2.3.4 xdr_quad_t F +GLIBC_2.3.4 xdr_u_quad_t F +GLIBC_2.4 GLIBC_2.4 A +GLIBC_2.4 _IO_fprintf F +GLIBC_2.4 _IO_printf F +GLIBC_2.4 _IO_sprintf F +GLIBC_2.4 _IO_sscanf F +GLIBC_2.4 _IO_vfprintf F +GLIBC_2.4 _IO_vfscanf F +GLIBC_2.4 _IO_vsprintf F +GLIBC_2.4 __asprintf F +GLIBC_2.4 __confstr_chk F +GLIBC_2.4 __fgets_chk F +GLIBC_2.4 __fgets_unlocked_chk F +GLIBC_2.4 __fgetws_chk F +GLIBC_2.4 __fgetws_unlocked_chk F +GLIBC_2.4 __finitel F +GLIBC_2.4 __floatundidf F +GLIBC_2.4 __floatundisf F +GLIBC_2.4 __floatunsidf F +GLIBC_2.4 __floatunsisf F +GLIBC_2.4 __fprintf_chk F +GLIBC_2.4 __fwprintf_chk F +GLIBC_2.4 __fxstatat F +GLIBC_2.4 __fxstatat64 F +GLIBC_2.4 __getcwd_chk F +GLIBC_2.4 __getdomainname_chk F +GLIBC_2.4 __getgroups_chk F +GLIBC_2.4 __gethostname_chk F +GLIBC_2.4 __getlogin_r_chk F +GLIBC_2.4 __getwd_chk F +GLIBC_2.4 __gtdf2 F +GLIBC_2.4 __gtsf2 F +GLIBC_2.4 __isinfl F +GLIBC_2.4 __isnanl F +GLIBC_2.4 __ltdf2 F +GLIBC_2.4 __ltsf2 F +GLIBC_2.4 __mbsnrtowcs_chk F +GLIBC_2.4 __mbsrtowcs_chk F +GLIBC_2.4 __mbstowcs_chk F +GLIBC_2.4 __nedf2 F +GLIBC_2.4 __nesf2 F +GLIBC_2.4 __nldbl__IO_fprintf F +GLIBC_2.4 __nldbl__IO_printf F +GLIBC_2.4 __nldbl__IO_sprintf F +GLIBC_2.4 __nldbl__IO_sscanf F +GLIBC_2.4 __nldbl__IO_vfprintf F +GLIBC_2.4 __nldbl__IO_vfscanf F +GLIBC_2.4 __nldbl__IO_vsprintf F +GLIBC_2.4 __nldbl___asprintf F +GLIBC_2.4 __nldbl___fprintf_chk F +GLIBC_2.4 __nldbl___fwprintf_chk F +GLIBC_2.4 __nldbl___printf_chk F +GLIBC_2.4 __nldbl___printf_fp F +GLIBC_2.4 __nldbl___snprintf_chk F +GLIBC_2.4 __nldbl___sprintf_chk F +GLIBC_2.4 __nldbl___strfmon_l F +GLIBC_2.4 __nldbl___swprintf_chk F +GLIBC_2.4 __nldbl___syslog_chk F +GLIBC_2.4 __nldbl___vfprintf_chk F +GLIBC_2.4 __nldbl___vfscanf F +GLIBC_2.4 __nldbl___vfwprintf_chk F +GLIBC_2.4 __nldbl___vprintf_chk F +GLIBC_2.4 __nldbl___vsnprintf F +GLIBC_2.4 __nldbl___vsnprintf_chk F +GLIBC_2.4 __nldbl___vsprintf_chk F +GLIBC_2.4 __nldbl___vsscanf F +GLIBC_2.4 __nldbl___vstrfmon F +GLIBC_2.4 __nldbl___vstrfmon_l F +GLIBC_2.4 __nldbl___vswprintf_chk F +GLIBC_2.4 __nldbl___vsyslog_chk F +GLIBC_2.4 __nldbl___vwprintf_chk F +GLIBC_2.4 __nldbl___wprintf_chk F +GLIBC_2.4 __nldbl_asprintf F +GLIBC_2.4 __nldbl_dprintf F +GLIBC_2.4 __nldbl_fprintf F +GLIBC_2.4 __nldbl_fscanf F +GLIBC_2.4 __nldbl_fwprintf F +GLIBC_2.4 __nldbl_fwscanf F +GLIBC_2.4 __nldbl_obstack_printf F +GLIBC_2.4 __nldbl_obstack_vprintf F +GLIBC_2.4 __nldbl_printf F +GLIBC_2.4 __nldbl_printf_size F +GLIBC_2.4 __nldbl_scanf F +GLIBC_2.4 __nldbl_snprintf F +GLIBC_2.4 __nldbl_sprintf F +GLIBC_2.4 __nldbl_sscanf F +GLIBC_2.4 __nldbl_strfmon F +GLIBC_2.4 __nldbl_strfmon_l F +GLIBC_2.4 __nldbl_swprintf F +GLIBC_2.4 __nldbl_swscanf F +GLIBC_2.4 __nldbl_syslog F +GLIBC_2.4 __nldbl_vasprintf F +GLIBC_2.4 __nldbl_vdprintf F +GLIBC_2.4 __nldbl_vfprintf F +GLIBC_2.4 __nldbl_vfscanf F +GLIBC_2.4 __nldbl_vfwprintf F +GLIBC_2.4 __nldbl_vfwscanf F +GLIBC_2.4 __nldbl_vprintf F +GLIBC_2.4 __nldbl_vscanf F +GLIBC_2.4 __nldbl_vsnprintf F +GLIBC_2.4 __nldbl_vsprintf F +GLIBC_2.4 __nldbl_vsscanf F +GLIBC_2.4 __nldbl_vswprintf F +GLIBC_2.4 __nldbl_vswscanf F +GLIBC_2.4 __nldbl_vsyslog F +GLIBC_2.4 __nldbl_vwprintf F +GLIBC_2.4 __nldbl_vwscanf F +GLIBC_2.4 __nldbl_wprintf F +GLIBC_2.4 __nldbl_wscanf F +GLIBC_2.4 __pread64_chk F +GLIBC_2.4 __pread_chk F +GLIBC_2.4 __printf_chk F +GLIBC_2.4 __printf_fp F +GLIBC_2.4 __ptsname_r_chk F +GLIBC_2.4 __read_chk F +GLIBC_2.4 __readlink_chk F +GLIBC_2.4 __realpath_chk F +GLIBC_2.4 __recv_chk F +GLIBC_2.4 __recvfrom_chk F +GLIBC_2.4 __signbitl F +GLIBC_2.4 __snprintf_chk F +GLIBC_2.4 __sprintf_chk F +GLIBC_2.4 __stack_chk_fail F +GLIBC_2.4 __stpncpy_chk F +GLIBC_2.4 __strfmon_l F +GLIBC_2.4 __strtold_internal F +GLIBC_2.4 __strtold_l F +GLIBC_2.4 __swprintf_chk F +GLIBC_2.4 __syslog_chk F +GLIBC_2.4 __ttyname_r_chk F +GLIBC_2.4 __unorddf2 F +GLIBC_2.4 __unordsf2 F +GLIBC_2.4 __vfprintf_chk F +GLIBC_2.4 __vfscanf F +GLIBC_2.4 __vfwprintf_chk F +GLIBC_2.4 __vprintf_chk F +GLIBC_2.4 __vsnprintf F +GLIBC_2.4 __vsnprintf_chk F +GLIBC_2.4 __vsprintf_chk F +GLIBC_2.4 __vsscanf F +GLIBC_2.4 __vswprintf_chk F +GLIBC_2.4 __vsyslog_chk F +GLIBC_2.4 __vwprintf_chk F +GLIBC_2.4 __wcpcpy_chk F +GLIBC_2.4 __wcpncpy_chk F +GLIBC_2.4 __wcrtomb_chk F +GLIBC_2.4 __wcscat_chk F +GLIBC_2.4 __wcscpy_chk F +GLIBC_2.4 __wcsncat_chk F +GLIBC_2.4 __wcsncpy_chk F +GLIBC_2.4 __wcsnrtombs_chk F +GLIBC_2.4 __wcsrtombs_chk F +GLIBC_2.4 __wcstold_internal F +GLIBC_2.4 __wcstold_l F +GLIBC_2.4 __wcstombs_chk F +GLIBC_2.4 __wctomb_chk F +GLIBC_2.4 __wmemcpy_chk F +GLIBC_2.4 __wmemmove_chk F +GLIBC_2.4 __wmempcpy_chk F +GLIBC_2.4 __wmemset_chk F +GLIBC_2.4 __wprintf_chk F +GLIBC_2.4 __xmknodat F +GLIBC_2.4 _sys_errlist D 0x210 +GLIBC_2.4 _sys_nerr D 0x4 +GLIBC_2.4 asprintf F +GLIBC_2.4 copysignl F +GLIBC_2.4 dprintf F +GLIBC_2.4 eaccess F +GLIBC_2.4 faccessat F +GLIBC_2.4 fchmodat F +GLIBC_2.4 fchownat F +GLIBC_2.4 fdopendir F +GLIBC_2.4 finitel F +GLIBC_2.4 fprintf F +GLIBC_2.4 frexpl F +GLIBC_2.4 fscanf F +GLIBC_2.4 futimesat F +GLIBC_2.4 fwprintf F +GLIBC_2.4 fwscanf F +GLIBC_2.4 inotify_add_watch F +GLIBC_2.4 inotify_init F +GLIBC_2.4 inotify_rm_watch F +GLIBC_2.4 isinfl F +GLIBC_2.4 isnanl F +GLIBC_2.4 ldexpl F +GLIBC_2.4 linkat F +GLIBC_2.4 mkdirat F +GLIBC_2.4 mkfifoat F +GLIBC_2.4 modfl F +GLIBC_2.4 obstack_printf F +GLIBC_2.4 obstack_vprintf F +GLIBC_2.4 open_wmemstream F +GLIBC_2.4 openat F +GLIBC_2.4 openat64 F +GLIBC_2.4 ppoll F +GLIBC_2.4 printf F +GLIBC_2.4 printf_size F +GLIBC_2.4 qecvt F +GLIBC_2.4 qecvt_r F +GLIBC_2.4 qfcvt F +GLIBC_2.4 qfcvt_r F +GLIBC_2.4 qgcvt F +GLIBC_2.4 readlinkat F +GLIBC_2.4 renameat F +GLIBC_2.4 scalbnl F +GLIBC_2.4 scanf F +GLIBC_2.4 snprintf F +GLIBC_2.4 sprintf F +GLIBC_2.4 sscanf F +GLIBC_2.4 strfmon F +GLIBC_2.4 strfmon_l F +GLIBC_2.4 strtold F +GLIBC_2.4 strtold_l F +GLIBC_2.4 swprintf F +GLIBC_2.4 swscanf F +GLIBC_2.4 symlinkat F +GLIBC_2.4 sys_errlist D 0x210 +GLIBC_2.4 sys_nerr D 0x4 +GLIBC_2.4 syslog F +GLIBC_2.4 unlinkat F +GLIBC_2.4 unshare F +GLIBC_2.4 vasprintf F +GLIBC_2.4 vdprintf F +GLIBC_2.4 vfprintf F +GLIBC_2.4 vfscanf F +GLIBC_2.4 vfwprintf F +GLIBC_2.4 vfwscanf F +GLIBC_2.4 vprintf F +GLIBC_2.4 vscanf F +GLIBC_2.4 vsnprintf F +GLIBC_2.4 vsprintf F +GLIBC_2.4 vsscanf F +GLIBC_2.4 vswprintf F +GLIBC_2.4 vswscanf F +GLIBC_2.4 vsyslog F +GLIBC_2.4 vwprintf F +GLIBC_2.4 vwscanf F +GLIBC_2.4 wcstold F +GLIBC_2.4 wcstold_l F +GLIBC_2.4 wprintf F +GLIBC_2.4 wscanf F +GLIBC_2.5 GLIBC_2.5 A +GLIBC_2.5 __readlinkat_chk F +GLIBC_2.5 inet6_opt_append F +GLIBC_2.5 inet6_opt_find F +GLIBC_2.5 inet6_opt_finish F +GLIBC_2.5 inet6_opt_get_val F +GLIBC_2.5 inet6_opt_init F +GLIBC_2.5 inet6_opt_next F +GLIBC_2.5 inet6_opt_set_val F +GLIBC_2.5 inet6_rth_add F +GLIBC_2.5 inet6_rth_getaddr F +GLIBC_2.5 inet6_rth_init F +GLIBC_2.5 inet6_rth_reverse F +GLIBC_2.5 inet6_rth_segments F +GLIBC_2.5 inet6_rth_space F +GLIBC_2.5 splice F +GLIBC_2.5 tee F +GLIBC_2.5 vmsplice F +GLIBC_2.6 GLIBC_2.6 A +GLIBC_2.6 __sched_cpucount F +GLIBC_2.6 epoll_pwait F +GLIBC_2.6 futimens F +GLIBC_2.6 sched_getcpu F +GLIBC_2.6 strerror_l F +GLIBC_2.6 sync_file_range F +GLIBC_2.6 utimensat F +GLIBC_2.7 GLIBC_2.7 A +GLIBC_2.7 __fread_chk F +GLIBC_2.7 __fread_unlocked_chk F +GLIBC_2.7 __isoc99_fscanf F +GLIBC_2.7 __isoc99_fwscanf F +GLIBC_2.7 __isoc99_scanf F +GLIBC_2.7 __isoc99_sscanf F +GLIBC_2.7 __isoc99_swscanf F +GLIBC_2.7 __isoc99_vfscanf F +GLIBC_2.7 __isoc99_vfwscanf F +GLIBC_2.7 __isoc99_vscanf F +GLIBC_2.7 __isoc99_vsscanf F +GLIBC_2.7 __isoc99_vswscanf F +GLIBC_2.7 __isoc99_vwscanf F +GLIBC_2.7 __isoc99_wscanf F +GLIBC_2.7 __nldbl___isoc99_fscanf F +GLIBC_2.7 __nldbl___isoc99_fwscanf F +GLIBC_2.7 __nldbl___isoc99_scanf F +GLIBC_2.7 __nldbl___isoc99_sscanf F +GLIBC_2.7 __nldbl___isoc99_swscanf F +GLIBC_2.7 __nldbl___isoc99_vfscanf F +GLIBC_2.7 __nldbl___isoc99_vfwscanf F +GLIBC_2.7 __nldbl___isoc99_vscanf F +GLIBC_2.7 __nldbl___isoc99_vsscanf F +GLIBC_2.7 __nldbl___isoc99_vswscanf F +GLIBC_2.7 __nldbl___isoc99_vwscanf F +GLIBC_2.7 __nldbl___isoc99_wscanf F +GLIBC_2.7 __open64_2 F +GLIBC_2.7 __open_2 F +GLIBC_2.7 __openat64_2 F +GLIBC_2.7 __openat_2 F +GLIBC_2.7 __sched_cpualloc F +GLIBC_2.7 __sched_cpufree F +GLIBC_2.7 eventfd F +GLIBC_2.7 eventfd_read F +GLIBC_2.7 eventfd_write F +GLIBC_2.7 mkostemp F +GLIBC_2.7 mkostemp64 F +GLIBC_2.7 signalfd F +GLIBC_2.8 GLIBC_2.8 A +GLIBC_2.8 __asprintf_chk F +GLIBC_2.8 __dprintf_chk F +GLIBC_2.8 __nldbl___asprintf_chk F +GLIBC_2.8 __nldbl___dprintf_chk F +GLIBC_2.8 __nldbl___obstack_printf_chk F +GLIBC_2.8 __nldbl___obstack_vprintf_chk F +GLIBC_2.8 __nldbl___vasprintf_chk F +GLIBC_2.8 __nldbl___vdprintf_chk F +GLIBC_2.8 __obstack_printf_chk F +GLIBC_2.8 __obstack_vprintf_chk F +GLIBC_2.8 __vasprintf_chk F +GLIBC_2.8 __vdprintf_chk F +GLIBC_2.8 qsort_r F +GLIBC_2.8 timerfd_create F +GLIBC_2.8 timerfd_gettime F +GLIBC_2.8 timerfd_settime F +GLIBC_2.9 GLIBC_2.9 A +GLIBC_2.9 dup3 F +GLIBC_2.9 epoll_create1 F +GLIBC_2.9 inotify_init1 F +GLIBC_2.9 pipe2 F diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist new file mode 100644 index 0000000000..ff6dc7a361 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist @@ -0,0 +1,577 @@ +GLIBC_2.0 GLIBC_2.0 A +GLIBC_2.0 _LIB_VERSION D 0x4 +GLIBC_2.0 acos F +GLIBC_2.0 acosf F +GLIBC_2.0 acosh F +GLIBC_2.0 acoshf F +GLIBC_2.0 acoshl F +GLIBC_2.0 acosl F +GLIBC_2.0 asin F +GLIBC_2.0 asinf F +GLIBC_2.0 asinh F +GLIBC_2.0 asinhf F +GLIBC_2.0 asinhl F +GLIBC_2.0 asinl F +GLIBC_2.0 atan F +GLIBC_2.0 atan2 F +GLIBC_2.0 atan2f F +GLIBC_2.0 atan2l F +GLIBC_2.0 atanf F +GLIBC_2.0 atanh F +GLIBC_2.0 atanhf F +GLIBC_2.0 atanhl F +GLIBC_2.0 atanl F +GLIBC_2.0 cbrt F +GLIBC_2.0 cbrtf F +GLIBC_2.0 cbrtl F +GLIBC_2.0 ceil F +GLIBC_2.0 ceilf F +GLIBC_2.0 ceill F +GLIBC_2.0 copysign F +GLIBC_2.0 copysignf F +GLIBC_2.0 copysignl F +GLIBC_2.0 cos F +GLIBC_2.0 cosf F +GLIBC_2.0 cosh F +GLIBC_2.0 coshf F +GLIBC_2.0 coshl F +GLIBC_2.0 cosl F +GLIBC_2.0 drem F +GLIBC_2.0 dremf F +GLIBC_2.0 dreml F +GLIBC_2.0 erf F +GLIBC_2.0 erfc F +GLIBC_2.0 erfcf F +GLIBC_2.0 erfcl F +GLIBC_2.0 erff F +GLIBC_2.0 erfl F +GLIBC_2.0 exp F +GLIBC_2.0 expf F +GLIBC_2.0 expl F +GLIBC_2.0 expm1 F +GLIBC_2.0 expm1f F +GLIBC_2.0 expm1l F +GLIBC_2.0 fabs F +GLIBC_2.0 fabsf F +GLIBC_2.0 fabsl F +GLIBC_2.0 finite F +GLIBC_2.0 finitef F +GLIBC_2.0 finitel F +GLIBC_2.0 floor F +GLIBC_2.0 floorf F +GLIBC_2.0 floorl F +GLIBC_2.0 fmod F +GLIBC_2.0 fmodf F +GLIBC_2.0 fmodl F +GLIBC_2.0 frexp F +GLIBC_2.0 frexpf F +GLIBC_2.0 frexpl F +GLIBC_2.0 gamma F +GLIBC_2.0 gammaf F +GLIBC_2.0 gammal F +GLIBC_2.0 hypot F +GLIBC_2.0 hypotf F +GLIBC_2.0 hypotl F +GLIBC_2.0 ilogb F +GLIBC_2.0 ilogbf F +GLIBC_2.0 ilogbl F +GLIBC_2.0 j0 F +GLIBC_2.0 j0f F +GLIBC_2.0 j0l F +GLIBC_2.0 j1 F +GLIBC_2.0 j1f F +GLIBC_2.0 j1l F +GLIBC_2.0 jn F +GLIBC_2.0 jnf F +GLIBC_2.0 jnl F +GLIBC_2.0 ldexp F +GLIBC_2.0 ldexpf F +GLIBC_2.0 ldexpl F +GLIBC_2.0 lgamma F +GLIBC_2.0 lgamma_r F +GLIBC_2.0 lgammaf F +GLIBC_2.0 lgammaf_r F +GLIBC_2.0 lgammal F +GLIBC_2.0 lgammal_r F +GLIBC_2.0 log F +GLIBC_2.0 log10 F +GLIBC_2.0 log10f F +GLIBC_2.0 log10l F +GLIBC_2.0 log1p F +GLIBC_2.0 log1pf F +GLIBC_2.0 log1pl F +GLIBC_2.0 logb F +GLIBC_2.0 logbf F +GLIBC_2.0 logbl F +GLIBC_2.0 logf F +GLIBC_2.0 logl F +GLIBC_2.0 matherr F +GLIBC_2.0 modf F +GLIBC_2.0 modff F +GLIBC_2.0 modfl F +GLIBC_2.0 nextafter F +GLIBC_2.0 nextafterf F +GLIBC_2.0 nextafterl F +GLIBC_2.0 pow F +GLIBC_2.0 powf F +GLIBC_2.0 powl F +GLIBC_2.0 remainder F +GLIBC_2.0 remainderf F +GLIBC_2.0 remainderl F +GLIBC_2.0 rint F +GLIBC_2.0 rintf F +GLIBC_2.0 rintl F +GLIBC_2.0 scalb F +GLIBC_2.0 scalbf F +GLIBC_2.0 scalbl F +GLIBC_2.0 scalbn F +GLIBC_2.0 scalbnf F +GLIBC_2.0 scalbnl F +GLIBC_2.0 signgam D 0x4 +GLIBC_2.0 significand F +GLIBC_2.0 significandf F +GLIBC_2.0 significandl F +GLIBC_2.0 sin F +GLIBC_2.0 sinf F +GLIBC_2.0 sinh F +GLIBC_2.0 sinhf F +GLIBC_2.0 sinhl F +GLIBC_2.0 sinl F +GLIBC_2.0 sqrt F +GLIBC_2.0 sqrtf F +GLIBC_2.0 sqrtl F +GLIBC_2.0 tan F +GLIBC_2.0 tanf F +GLIBC_2.0 tanh F +GLIBC_2.0 tanhf F +GLIBC_2.0 tanhl F +GLIBC_2.0 tanl F +GLIBC_2.0 y0 F +GLIBC_2.0 y0f F +GLIBC_2.0 y0l F +GLIBC_2.0 y1 F +GLIBC_2.0 y1f F +GLIBC_2.0 y1l F +GLIBC_2.0 yn F +GLIBC_2.0 ynf F +GLIBC_2.0 ynl F +GLIBC_2.1 GLIBC_2.1 A +GLIBC_2.1 __clog10 F +GLIBC_2.1 __clog10f F +GLIBC_2.1 __clog10l F +GLIBC_2.1 __fe_dfl_env D 0x8 +GLIBC_2.1 __fe_enabled_env D 0x8 +GLIBC_2.1 __fe_nonieee_env D 0x8 +GLIBC_2.1 __finite F +GLIBC_2.1 __finitef F +GLIBC_2.1 __finitel F +GLIBC_2.1 __fpclassify F +GLIBC_2.1 __fpclassifyf F +GLIBC_2.1 __signbit F +GLIBC_2.1 __signbitf F +GLIBC_2.1 cabs F +GLIBC_2.1 cabsf F +GLIBC_2.1 cabsl F +GLIBC_2.1 cacos F +GLIBC_2.1 cacosf F +GLIBC_2.1 cacosh F +GLIBC_2.1 cacoshf F +GLIBC_2.1 cacoshl F +GLIBC_2.1 cacosl F +GLIBC_2.1 carg F +GLIBC_2.1 cargf F +GLIBC_2.1 cargl F +GLIBC_2.1 casin F +GLIBC_2.1 casinf F +GLIBC_2.1 casinh F +GLIBC_2.1 casinhf F +GLIBC_2.1 casinhl F +GLIBC_2.1 casinl F +GLIBC_2.1 catan F +GLIBC_2.1 catanf F +GLIBC_2.1 catanh F +GLIBC_2.1 catanhf F +GLIBC_2.1 catanhl F +GLIBC_2.1 catanl F +GLIBC_2.1 ccos F +GLIBC_2.1 ccosf F +GLIBC_2.1 ccosh F +GLIBC_2.1 ccoshf F +GLIBC_2.1 ccoshl F +GLIBC_2.1 ccosl F +GLIBC_2.1 cexp F +GLIBC_2.1 cexpf F +GLIBC_2.1 cexpl F +GLIBC_2.1 cimag F +GLIBC_2.1 cimagf F +GLIBC_2.1 cimagl F +GLIBC_2.1 clog F +GLIBC_2.1 clog10 F +GLIBC_2.1 clog10f F +GLIBC_2.1 clog10l F +GLIBC_2.1 clogf F +GLIBC_2.1 clogl F +GLIBC_2.1 conj F +GLIBC_2.1 conjf F +GLIBC_2.1 conjl F +GLIBC_2.1 cpow F +GLIBC_2.1 cpowf F +GLIBC_2.1 cpowl F +GLIBC_2.1 cproj F +GLIBC_2.1 cprojf F +GLIBC_2.1 cprojl F +GLIBC_2.1 creal F +GLIBC_2.1 crealf F +GLIBC_2.1 creall F +GLIBC_2.1 csin F +GLIBC_2.1 csinf F +GLIBC_2.1 csinh F +GLIBC_2.1 csinhf F +GLIBC_2.1 csinhl F +GLIBC_2.1 csinl F +GLIBC_2.1 csqrt F +GLIBC_2.1 csqrtf F +GLIBC_2.1 csqrtl F +GLIBC_2.1 ctan F +GLIBC_2.1 ctanf F +GLIBC_2.1 ctanh F +GLIBC_2.1 ctanhf F +GLIBC_2.1 ctanhl F +GLIBC_2.1 ctanl F +GLIBC_2.1 exp10 F +GLIBC_2.1 exp10f F +GLIBC_2.1 exp10l F +GLIBC_2.1 exp2 F +GLIBC_2.1 exp2f F +GLIBC_2.1 fdim F +GLIBC_2.1 fdimf F +GLIBC_2.1 fdiml F +GLIBC_2.1 feclearexcept F +GLIBC_2.1 fegetenv F +GLIBC_2.1 fegetexceptflag F +GLIBC_2.1 fegetround F +GLIBC_2.1 feholdexcept F +GLIBC_2.1 feraiseexcept F +GLIBC_2.1 fesetenv F +GLIBC_2.1 fesetexceptflag F +GLIBC_2.1 fesetround F +GLIBC_2.1 fetestexcept F +GLIBC_2.1 feupdateenv F +GLIBC_2.1 fma F +GLIBC_2.1 fmaf F +GLIBC_2.1 fmal F +GLIBC_2.1 fmax F +GLIBC_2.1 fmaxf F +GLIBC_2.1 fmaxl F +GLIBC_2.1 fmin F +GLIBC_2.1 fminf F +GLIBC_2.1 fminl F +GLIBC_2.1 llrint F +GLIBC_2.1 llrintf F +GLIBC_2.1 llrintl F +GLIBC_2.1 llround F +GLIBC_2.1 llroundf F +GLIBC_2.1 llroundl F +GLIBC_2.1 log2 F +GLIBC_2.1 log2f F +GLIBC_2.1 log2l F +GLIBC_2.1 lrint F +GLIBC_2.1 lrintf F +GLIBC_2.1 lrintl F +GLIBC_2.1 lround F +GLIBC_2.1 lroundf F +GLIBC_2.1 lroundl F +GLIBC_2.1 nan F +GLIBC_2.1 nanf F +GLIBC_2.1 nanl F +GLIBC_2.1 nearbyint F +GLIBC_2.1 nearbyintf F +GLIBC_2.1 nearbyintl F +GLIBC_2.1 nexttoward F +GLIBC_2.1 nexttowardf F +GLIBC_2.1 nexttowardl F +GLIBC_2.1 pow10 F +GLIBC_2.1 pow10f F +GLIBC_2.1 pow10l F +GLIBC_2.1 remquo F +GLIBC_2.1 remquof F +GLIBC_2.1 remquol F +GLIBC_2.1 round F +GLIBC_2.1 roundf F +GLIBC_2.1 roundl F +GLIBC_2.1 scalbln F +GLIBC_2.1 scalblnf F +GLIBC_2.1 scalblnl F +GLIBC_2.1 sincos F +GLIBC_2.1 sincosf F +GLIBC_2.1 sincosl F +GLIBC_2.1 tgamma F +GLIBC_2.1 tgammaf F +GLIBC_2.1 tgammal F +GLIBC_2.1 trunc F +GLIBC_2.1 truncf F +GLIBC_2.1 truncl F +GLIBC_2.15 GLIBC_2.15 A +GLIBC_2.15 __acos_finite F +GLIBC_2.15 __acosf_finite F +GLIBC_2.15 __acosh_finite F +GLIBC_2.15 __acoshf_finite F +GLIBC_2.15 __acoshl_finite F +GLIBC_2.15 __acosl_finite F +GLIBC_2.15 __asin_finite F +GLIBC_2.15 __asinf_finite F +GLIBC_2.15 __asinl_finite F +GLIBC_2.15 __atan2_finite F +GLIBC_2.15 __atan2f_finite F +GLIBC_2.15 __atan2l_finite F +GLIBC_2.15 __atanh_finite F +GLIBC_2.15 __atanhf_finite F +GLIBC_2.15 __atanhl_finite F +GLIBC_2.15 __cosh_finite F +GLIBC_2.15 __coshf_finite F +GLIBC_2.15 __coshl_finite F +GLIBC_2.15 __exp10_finite F +GLIBC_2.15 __exp10f_finite F +GLIBC_2.15 __exp10l_finite F +GLIBC_2.15 __exp2_finite F +GLIBC_2.15 __exp2f_finite F +GLIBC_2.15 __exp2l_finite F +GLIBC_2.15 __exp_finite F +GLIBC_2.15 __expf_finite F +GLIBC_2.15 __expl_finite F +GLIBC_2.15 __fmod_finite F +GLIBC_2.15 __fmodf_finite F +GLIBC_2.15 __fmodl_finite F +GLIBC_2.15 __gamma_r_finite F +GLIBC_2.15 __gammaf_r_finite F +GLIBC_2.15 __gammal_r_finite F +GLIBC_2.15 __hypot_finite F +GLIBC_2.15 __hypotf_finite F +GLIBC_2.15 __hypotl_finite F +GLIBC_2.15 __j0_finite F +GLIBC_2.15 __j0f_finite F +GLIBC_2.15 __j0l_finite F +GLIBC_2.15 __j1_finite F +GLIBC_2.15 __j1f_finite F +GLIBC_2.15 __j1l_finite F +GLIBC_2.15 __jn_finite F +GLIBC_2.15 __jnf_finite F +GLIBC_2.15 __jnl_finite F +GLIBC_2.15 __lgamma_r_finite F +GLIBC_2.15 __lgammaf_r_finite F +GLIBC_2.15 __lgammal_r_finite F +GLIBC_2.15 __log10_finite F +GLIBC_2.15 __log10f_finite F +GLIBC_2.15 __log10l_finite F +GLIBC_2.15 __log2_finite F +GLIBC_2.15 __log2f_finite F +GLIBC_2.15 __log2l_finite F +GLIBC_2.15 __log_finite F +GLIBC_2.15 __logf_finite F +GLIBC_2.15 __logl_finite F +GLIBC_2.15 __pow_finite F +GLIBC_2.15 __powf_finite F +GLIBC_2.15 __powl_finite F +GLIBC_2.15 __remainder_finite F +GLIBC_2.15 __remainderf_finite F +GLIBC_2.15 __remainderl_finite F +GLIBC_2.15 __scalb_finite F +GLIBC_2.15 __scalbf_finite F +GLIBC_2.15 __scalbl_finite F +GLIBC_2.15 __sinh_finite F +GLIBC_2.15 __sinhf_finite F +GLIBC_2.15 __sinhl_finite F +GLIBC_2.15 __sqrt_finite F +GLIBC_2.15 __sqrtf_finite F +GLIBC_2.15 __sqrtl_finite F +GLIBC_2.15 __y0_finite F +GLIBC_2.15 __y0f_finite F +GLIBC_2.15 __y0l_finite F +GLIBC_2.15 __y1_finite F +GLIBC_2.15 __y1f_finite F +GLIBC_2.15 __y1l_finite F +GLIBC_2.15 __yn_finite F +GLIBC_2.15 __ynf_finite F +GLIBC_2.15 __ynl_finite F +GLIBC_2.18 GLIBC_2.18 A +GLIBC_2.18 __issignaling F +GLIBC_2.18 __issignalingf F +GLIBC_2.18 __issignalingl F +GLIBC_2.2 GLIBC_2.2 A +GLIBC_2.2 feclearexcept F +GLIBC_2.2 fedisableexcept F +GLIBC_2.2 feenableexcept F +GLIBC_2.2 fegetenv F +GLIBC_2.2 fegetexcept F +GLIBC_2.2 fegetexceptflag F +GLIBC_2.2 feraiseexcept F +GLIBC_2.2 fesetenv F +GLIBC_2.2 fesetexceptflag F +GLIBC_2.2 feupdateenv F +GLIBC_2.23 GLIBC_2.23 A +GLIBC_2.23 __signgam D 0x4 +GLIBC_2.23 lgamma F +GLIBC_2.23 lgammaf F +GLIBC_2.23 lgammal F +GLIBC_2.24 GLIBC_2.24 A +GLIBC_2.24 nextdown F +GLIBC_2.24 nextdownf F +GLIBC_2.24 nextdownl F +GLIBC_2.24 nextup F +GLIBC_2.24 nextupf F +GLIBC_2.24 nextupl F +GLIBC_2.25 GLIBC_2.25 A +GLIBC_2.25 __fe_dfl_mode D 0x8 +GLIBC_2.25 __iscanonicall F +GLIBC_2.25 __iseqsig F +GLIBC_2.25 __iseqsigf F +GLIBC_2.25 __iseqsigl F +GLIBC_2.25 canonicalize F +GLIBC_2.25 canonicalizef F +GLIBC_2.25 canonicalizel F +GLIBC_2.25 fegetmode F +GLIBC_2.25 fesetexcept F +GLIBC_2.25 fesetmode F +GLIBC_2.25 fetestexceptflag F +GLIBC_2.25 fmaxmag F +GLIBC_2.25 fmaxmagf F +GLIBC_2.25 fmaxmagl F +GLIBC_2.25 fminmag F +GLIBC_2.25 fminmagf F +GLIBC_2.25 fminmagl F +GLIBC_2.25 fromfp F +GLIBC_2.25 fromfpf F +GLIBC_2.25 fromfpl F +GLIBC_2.25 fromfpx F +GLIBC_2.25 fromfpxf F +GLIBC_2.25 fromfpxl F +GLIBC_2.25 getpayload F +GLIBC_2.25 getpayloadf F +GLIBC_2.25 getpayloadl F +GLIBC_2.25 llogb F +GLIBC_2.25 llogbf F +GLIBC_2.25 llogbl F +GLIBC_2.25 roundeven F +GLIBC_2.25 roundevenf F +GLIBC_2.25 roundevenl F +GLIBC_2.25 setpayload F +GLIBC_2.25 setpayloadf F +GLIBC_2.25 setpayloadl F +GLIBC_2.25 setpayloadsig F +GLIBC_2.25 setpayloadsigf F +GLIBC_2.25 setpayloadsigl F +GLIBC_2.25 totalorder F +GLIBC_2.25 totalorderf F +GLIBC_2.25 totalorderl F +GLIBC_2.25 totalordermag F +GLIBC_2.25 totalordermagf F +GLIBC_2.25 totalordermagl F +GLIBC_2.25 ufromfp F +GLIBC_2.25 ufromfpf F +GLIBC_2.25 ufromfpl F +GLIBC_2.25 ufromfpx F +GLIBC_2.25 ufromfpxf F +GLIBC_2.25 ufromfpxl F +GLIBC_2.4 GLIBC_2.4 A +GLIBC_2.4 __clog10l F +GLIBC_2.4 __finitel F +GLIBC_2.4 __fpclassifyl F +GLIBC_2.4 __nldbl_nexttowardf F +GLIBC_2.4 __signbitl F +GLIBC_2.4 acoshl F +GLIBC_2.4 acosl F +GLIBC_2.4 asinhl F +GLIBC_2.4 asinl F +GLIBC_2.4 atan2l F +GLIBC_2.4 atanhl F +GLIBC_2.4 atanl F +GLIBC_2.4 cabsl F +GLIBC_2.4 cacoshl F +GLIBC_2.4 cacosl F +GLIBC_2.4 cargl F +GLIBC_2.4 casinhl F +GLIBC_2.4 casinl F +GLIBC_2.4 catanhl F +GLIBC_2.4 catanl F +GLIBC_2.4 cbrtl F +GLIBC_2.4 ccoshl F +GLIBC_2.4 ccosl F +GLIBC_2.4 ceill F +GLIBC_2.4 cexpl F +GLIBC_2.4 cimagl F +GLIBC_2.4 clog10l F +GLIBC_2.4 clogl F +GLIBC_2.4 conjl F +GLIBC_2.4 copysignl F +GLIBC_2.4 coshl F +GLIBC_2.4 cosl F +GLIBC_2.4 cpowl F +GLIBC_2.4 cprojl F +GLIBC_2.4 creall F +GLIBC_2.4 csinhl F +GLIBC_2.4 csinl F +GLIBC_2.4 csqrtl F +GLIBC_2.4 ctanhl F +GLIBC_2.4 ctanl F +GLIBC_2.4 dreml F +GLIBC_2.4 erfcl F +GLIBC_2.4 erfl F +GLIBC_2.4 exp10l F +GLIBC_2.4 exp2l F +GLIBC_2.4 expl F +GLIBC_2.4 expm1l F +GLIBC_2.4 fabsl F +GLIBC_2.4 fdiml F +GLIBC_2.4 finitel F +GLIBC_2.4 floorl F +GLIBC_2.4 fmal F +GLIBC_2.4 fmaxl F +GLIBC_2.4 fminl F +GLIBC_2.4 fmodl F +GLIBC_2.4 frexpl F +GLIBC_2.4 gammal F +GLIBC_2.4 hypotl F +GLIBC_2.4 ilogbl F +GLIBC_2.4 j0l F +GLIBC_2.4 j1l F +GLIBC_2.4 jnl F +GLIBC_2.4 ldexpl F +GLIBC_2.4 lgammal F +GLIBC_2.4 lgammal_r F +GLIBC_2.4 llrintl F +GLIBC_2.4 llroundl F +GLIBC_2.4 log10l F +GLIBC_2.4 log1pl F +GLIBC_2.4 log2l F +GLIBC_2.4 logbl F +GLIBC_2.4 logl F +GLIBC_2.4 lrintl F +GLIBC_2.4 lroundl F +GLIBC_2.4 modfl F +GLIBC_2.4 nanl F +GLIBC_2.4 nearbyintl F +GLIBC_2.4 nextafterl F +GLIBC_2.4 nexttoward F +GLIBC_2.4 nexttowardf F +GLIBC_2.4 nexttowardl F +GLIBC_2.4 pow10l F +GLIBC_2.4 powl F +GLIBC_2.4 remainderl F +GLIBC_2.4 remquol F +GLIBC_2.4 rintl F +GLIBC_2.4 roundl F +GLIBC_2.4 scalbl F +GLIBC_2.4 scalblnl F +GLIBC_2.4 scalbnl F +GLIBC_2.4 significandl F +GLIBC_2.4 sincosl F +GLIBC_2.4 sinhl F +GLIBC_2.4 sinl F +GLIBC_2.4 sqrtl F +GLIBC_2.4 tanhl F +GLIBC_2.4 tanl F +GLIBC_2.4 tgammal F +GLIBC_2.4 truncl F +GLIBC_2.4 y0l F +GLIBC_2.4 y1l F +GLIBC_2.4 ynl F diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/localplt.data b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/localplt.data new file mode 100644 index 0000000000..1c20d2f2b4 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/localplt.data @@ -0,0 +1,46 @@ +libc.so: _Unwind_Find_FDE +libc.so: __adddf3 ? +libc.so: __addsf3 ? +libc.so: __divdf3 ? +libc.so: __divsf3 ? +libc.so: __eqdf2 ? +libc.so: __eqsf2 ? +libc.so: __extendsfdf2 ? +libc.so: __fixdfsi ? +libc.so: __fixsfsi ? +libc.so: __fixunsdfsi ? +libc.so: __floatsidf ? +libc.so: __floatsisf ? +libc.so: __floatunsidf ? +libc.so: __floatunsisf ? +libc.so: __gedf2 ? +libc.so: __gtdf2 ? +libc.so: __gtsf2 ? +libc.so: __ledf2 ? +libc.so: __ltdf2 ? +libc.so: __muldf3 ? +libc.so: __mulsf3 ? +libc.so: __nedf2 ? +libc.so: __subdf3 ? +libc.so: __subsf3 ? +libc.so: __truncdfsf2 ? +libc.so: __unorddf2 ? +libc.so: __unordsf2 ? +libc.so: abort ? +libc.so: calloc +libc.so: free +libc.so: malloc +libc.so: memalign +libc.so: realloc +libm.so: copysignl ? +libm.so: fabsl +libm.so: matherr +# The main malloc is interposed into the dynamic linker, for +# allocations after the initial link (when dlopen is used). +ld.so: malloc +ld.so: calloc +ld.so: realloc +ld.so: free +# The TLS-enabled version of these functions is interposed from libc.so. +ld.so: _dl_signal_error +ld.so: _dl_catch_error diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/setcontext.S b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/setcontext.S new file mode 100644 index 0000000000..c5809a4741 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/setcontext.S @@ -0,0 +1,60 @@ +/* Jump to a new context. + Copyright (C) 2002-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library. If not, see + <http://www.gnu.org/licenses/>. */ + +#include <sysdep.h> +#include <rtld-global-offsets.h> +#include <shlib-compat.h> + +#define __ASSEMBLY__ +#include <asm/ptrace.h> +#include "ucontext_i.h" + +#include <context-e500.h> + +#define __CONTEXT_FUNC_NAME __setcontext +#undef __CONTEXT_ENABLE_FPRS +#undef __CONTEXT_ENABLE_VRS + +#include "setcontext-common.S" + +versioned_symbol (libc, __setcontext, setcontext, GLIBC_2_3_4) + +#if SHLIB_COMPAT (libc, GLIBC_2_3_3, GLIBC_2_3_4) + +/* For the nofpu case the old/new versions are the same function. */ +strong_alias (__setcontext, __novec_setcontext) + +compat_symbol (libc, __novec_setcontext, setcontext, GLIBC_2_3_3) + +#endif + +#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_3_3) + +#define _ERRNO_H 1 +#include <bits/errno.h> + + compat_text_section +ENTRY (__setcontext_stub) + li r3,ENOSYS + b __syscall_error@local +END (__setcontext_stub) + .previous + +compat_symbol (libc, __setcontext_stub, setcontext, GLIBC_2_0) + +#endif diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/swapcontext.S b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/swapcontext.S new file mode 100644 index 0000000000..41b3698130 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/swapcontext.S @@ -0,0 +1,60 @@ +/* Save current context and jump to a new context. + Copyright (C) 2002-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library. If not, see + <http://www.gnu.org/licenses/>. */ + +#include <sysdep.h> +#include <rtld-global-offsets.h> +#include <shlib-compat.h> + +#define __ASSEMBLY__ +#include <asm/ptrace.h> +#include "ucontext_i.h" + +#include <context-e500.h> + +#define __CONTEXT_FUNC_NAME __swapcontext +#undef __CONTEXT_ENABLE_FPRS +#undef __CONTEXT_ENABLE_VRS + +# include "swapcontext-common.S" + +versioned_symbol (libc, __swapcontext, swapcontext, GLIBC_2_3_4) + +#if SHLIB_COMPAT (libc, GLIBC_2_3_3, GLIBC_2_3_4) + +/* For the nofpu case the old/new versions are the same function. */ +strong_alias (__swapcontext, __novec_swapcontext) + +compat_symbol (libc, __novec_swapcontext, swapcontext, GLIBC_2_3_3) + +#endif + +#if SHLIB_COMPAT (libc, GLIBC_2_1, GLIBC_2_3_3) + +#define _ERRNO_H 1 +#include <bits/errno.h> + + compat_text_section +ENTRY (__swapcontext_stub) + li r3,ENOSYS + b __syscall_error@local +END (__swapcontext_stub) + .previous + +compat_symbol (libc, __swapcontext_stub, swapcontext, GLIBC_2_1) + +#endif diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/scandir64.c b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/scandir64.c new file mode 100644 index 0000000000..506fd8877c --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/scandir64.c @@ -0,0 +1 @@ +#include <sysdeps/unix/sysv/linux/i386/scandir64.c> diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext-common.S b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext-common.S new file mode 100644 index 0000000000..3c5e262f1b --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext-common.S @@ -0,0 +1,306 @@ +/* Jump to a new context powerpc32 common. + Copyright (C) 2005-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +/* This is the common implementation of setcontext for powerpc32. + It not complete in itself should be included in to a framework that + defines: + __CONTEXT_FUNC_NAME + and if appropriate: + __CONTEXT_ENABLE_FPRS + __CONTEXT_ENABLE_VRS + Any architecture that implements the Vector unit is assumed to also + implement the floating unit. */ + +/* Stack frame offsets. */ +#define _FRAME_BACKCHAIN 0 +#define _FRAME_LR_SAVE 4 +#define _FRAME_PARM_SAVE1 8 +#define _FRAME_PARM_SAVE2 12 +#define _FRAME_PARM_SAVE3 16 +#define _FRAME_PARM_SAVE4 20 + +#ifdef __CONTEXT_ENABLE_VRS + .machine "altivec" +#endif +ENTRY(__CONTEXT_FUNC_NAME) + mflr r0 + stwu r1,-16(r1) + cfi_adjust_cfa_offset (16) + stw r0,20(r1) + cfi_offset (lr, _FRAME_LR_SAVE) + stw r31,12(r1) + cfi_offset(r31,-4) + lwz r31,_UC_REGS_PTR(r3) + + /* + * If this ucontext refers to the point where we were interrupted + * by a signal, we have to use the rt_sigreturn system call to + * return to the context so we get both LR and CTR restored. + * + * Otherwise, the context we are restoring is either just after + * a procedure call (getcontext/swapcontext) or at the beginning + * of a procedure call (makecontext), so we don't need to restore + * r0, xer, ctr. We don't restore r2 since it will be used as + * the TLS pointer. + */ + lwz r0,_UC_GREGS+(PT_MSR*4)(r31) + cmpwi r0,0 + bne 4f /* L(do_sigret) */ + + /* Restore the signal mask */ + li r5,0 + addi r4,r3,_UC_SIGMASK + li r3,SIG_SETMASK + bl __sigprocmask@local + cmpwi r3,0 + bne 3f /* L(error_exit) */ + +#ifdef PIC + mflr r8 +# define got_label GENERATE_GOT_LABEL (__CONTEXT_FUNC_NAME) + SETUP_GOT_ACCESS(r7,got_label) + addis r7,r7,_GLOBAL_OFFSET_TABLE_-got_label@ha + addi r7,r7,_GLOBAL_OFFSET_TABLE_-got_label@l +# ifdef SHARED + lwz r7,_rtld_global_ro@got(r7) + mtlr r8 + lwz r7,RTLD_GLOBAL_RO_DL_HWCAP_OFFSET+LOWORD(r7) +# else + lwz r7,_dl_hwcap@got(r7) + mtlr r8 + lwz r7,LOWORD(r7) +# endif +#else + lis r7,(_dl_hwcap+LOWORD)@ha + lwz r7,(_dl_hwcap+LOWORD)@l(r7) +#endif + +#ifdef __CONTEXT_ENABLE_FPRS +# ifdef __CONTEXT_ENABLE_VRS + andis. r6,r7,(PPC_FEATURE_HAS_ALTIVEC >> 16) + la r10,(_UC_VREGS)(r31) + beq 2f /* L(has_no_vec) */ + + lwz r0,(32*16)(r10) + li r9,(32*16) + cmpwi r0,0 + mtspr VRSAVE,r0 + beq 2f /* L(has_no_vec) */ + + lvx v19,r9,r10 + la r9,(16)(r10) + + lvx v0,0,r10 + lvx v1,0,r9 + addi r10,r10,32 + addi r9,r9,32 + + mtvscr v19 + lvx v2,0,r10 + lvx v3,0,r9 + addi r10,r10,32 + addi r9,r9,32 + + lvx v4,0,r10 + lvx v5,0,r9 + addi r10,r10,32 + addi r9,r9,32 + + lvx v6,0,r10 + lvx v7,0,r9 + addi r10,r10,32 + addi r9,r9,32 + + lvx v8,0,r10 + lvx v9,0,r9 + addi r10,r10,32 + addi r9,r9,32 + + lvx v10,0,r10 + lvx v11,0,r9 + addi r10,r10,32 + addi r9,r9,32 + + lvx v12,0,r10 + lvx v13,0,r9 + addi r10,r10,32 + addi r9,r9,32 + + lvx v14,0,r10 + lvx v15,0,r9 + addi r10,r10,32 + addi r9,r9,32 + + lvx v16,0,r10 + lvx v17,0,r9 + addi r10,r10,32 + addi r9,r9,32 + + lvx v18,0,r10 + lvx v19,0,r9 + addi r10,r10,32 + addi r9,r9,32 + + lvx v20,0,r10 + lvx v21,0,r9 + addi r10,r10,32 + addi r9,r9,32 + + lvx v22,0,r10 + lvx v23,0,r9 + addi r10,r10,32 + addi r9,r9,32 + + lvx v24,0,r10 + lvx v25,0,r9 + addi r10,r10,32 + addi r9,r9,32 + + lvx v26,0,r10 + lvx v27,0,r9 + addi r10,r10,32 + addi r9,r9,32 + + lvx v28,0,r10 + lvx v29,0,r9 + addi r10,r10,32 + addi r9,r9,32 + + lvx v30,0,r10 + lvx v31,0,r9 + addi r10,r10,32 + addi r9,r9,32 + + lvx v10,0,r10 + lvx v11,0,r9 + +2: /* L(has_no_vec): */ +# endif /* __CONTEXT_ENABLE_VRS */ + /* Restore the floating-point registers */ + lfd fp31,_UC_FREGS+(32*8)(r31) + lfd fp0,_UC_FREGS+(0*8)(r31) +# ifdef _ARCH_PWR6 + /* Use the extended four-operand version of the mtfsf insn. */ + mtfsf 0xff,fp31,1,0 +# else + .machine push + .machine "power6" + /* Availability of DFP indicates a 64-bit FPSCR. */ + andi. r6,r7,PPC_FEATURE_HAS_DFP + beq 7f + /* Use the extended four-operand version of the mtfsf insn. */ + mtfsf 0xff,fp31,1,0 + b 8f + /* Continue to operate on the FPSCR as if it were 32-bits. */ +7: mtfsf 0xff,fp31 +8: .machine pop +# endif /* _ARCH_PWR6 */ + lfd fp1,_UC_FREGS+(1*8)(r31) + lfd fp2,_UC_FREGS+(2*8)(r31) + lfd fp3,_UC_FREGS+(3*8)(r31) + lfd fp4,_UC_FREGS+(4*8)(r31) + lfd fp5,_UC_FREGS+(5*8)(r31) + lfd fp6,_UC_FREGS+(6*8)(r31) + lfd fp7,_UC_FREGS+(7*8)(r31) + lfd fp8,_UC_FREGS+(8*8)(r31) + lfd fp9,_UC_FREGS+(9*8)(r31) + lfd fp10,_UC_FREGS+(10*8)(r31) + lfd fp11,_UC_FREGS+(11*8)(r31) + lfd fp12,_UC_FREGS+(12*8)(r31) + lfd fp13,_UC_FREGS+(13*8)(r31) + lfd fp14,_UC_FREGS+(14*8)(r31) + lfd fp15,_UC_FREGS+(15*8)(r31) + lfd fp16,_UC_FREGS+(16*8)(r31) + lfd fp17,_UC_FREGS+(17*8)(r31) + lfd fp18,_UC_FREGS+(18*8)(r31) + lfd fp19,_UC_FREGS+(19*8)(r31) + lfd fp20,_UC_FREGS+(20*8)(r31) + lfd fp21,_UC_FREGS+(21*8)(r31) + lfd fp22,_UC_FREGS+(22*8)(r31) + lfd fp23,_UC_FREGS+(23*8)(r31) + lfd fp24,_UC_FREGS+(24*8)(r31) + lfd fp25,_UC_FREGS+(25*8)(r31) + lfd fp26,_UC_FREGS+(26*8)(r31) + lfd fp27,_UC_FREGS+(27*8)(r31) + lfd fp28,_UC_FREGS+(28*8)(r31) + lfd fp29,_UC_FREGS+(29*8)(r31) + lfd fp30,_UC_FREGS+(30*8)(r31) + lfd fp31,_UC_FREGS+(31*8)(r31) +#endif /* __CONTEXT_ENABLE_FPRS */ + +#ifdef __CONTEXT_ENABLE_E500 + setcontext_e500 +#endif + + /* Restore LR and CCR, and set CTR to the NIP value */ + lwz r3,_UC_GREGS+(PT_LNK*4)(r31) + lwz r4,_UC_GREGS+(PT_NIP*4)(r31) + lwz r5,_UC_GREGS+(PT_CCR*4)(r31) + mtlr r3 + mtctr r4 + mtcr r5 + + /* Restore the general registers */ + lwz r1,_UC_GREGS+(PT_R1*4)(r31) + lwz r3,_UC_GREGS+(PT_R3*4)(r31) + lwz r4,_UC_GREGS+(PT_R4*4)(r31) + lwz r5,_UC_GREGS+(PT_R5*4)(r31) + lwz r6,_UC_GREGS+(PT_R6*4)(r31) + lwz r7,_UC_GREGS+(PT_R7*4)(r31) + lwz r8,_UC_GREGS+(PT_R8*4)(r31) + lwz r9,_UC_GREGS+(PT_R9*4)(r31) + lwz r10,_UC_GREGS+(PT_R10*4)(r31) + lwz r11,_UC_GREGS+(PT_R11*4)(r31) + lwz r12,_UC_GREGS+(PT_R12*4)(r31) + lwz r13,_UC_GREGS+(PT_R13*4)(r31) + lwz r14,_UC_GREGS+(PT_R14*4)(r31) + lwz r15,_UC_GREGS+(PT_R15*4)(r31) + lwz r16,_UC_GREGS+(PT_R16*4)(r31) + lwz r17,_UC_GREGS+(PT_R17*4)(r31) + lwz r18,_UC_GREGS+(PT_R18*4)(r31) + lwz r19,_UC_GREGS+(PT_R19*4)(r31) + lwz r20,_UC_GREGS+(PT_R20*4)(r31) + lwz r21,_UC_GREGS+(PT_R21*4)(r31) + lwz r22,_UC_GREGS+(PT_R22*4)(r31) + lwz r23,_UC_GREGS+(PT_R23*4)(r31) + lwz r24,_UC_GREGS+(PT_R24*4)(r31) + lwz r25,_UC_GREGS+(PT_R25*4)(r31) + lwz r26,_UC_GREGS+(PT_R26*4)(r31) + lwz r27,_UC_GREGS+(PT_R27*4)(r31) + lwz r28,_UC_GREGS+(PT_R28*4)(r31) + lwz r29,_UC_GREGS+(PT_R29*4)(r31) + lwz r30,_UC_GREGS+(PT_R30*4)(r31) + lwz r31,_UC_GREGS+(PT_R31*4)(r31) + + bctr + +3: /* L(error_exit): */ + lwz r31,12(r1) + lwz r0,20(r1) + addi r1,r1,16 + mtlr r0 + blr + + +4: /* L(do_sigret): */ + addi r1,r3,-0xd0 + li r0,SYS_ify(rt_sigreturn) + sc + /* NOTREACHED */ + +END (__CONTEXT_FUNC_NAME) diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext.S b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext.S new file mode 100644 index 0000000000..e24a692ebb --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext.S @@ -0,0 +1,80 @@ +/* Jump to a new context. + Copyright (C) 2002-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#include <sysdep.h> +#include <rtld-global-offsets.h> +#include <shlib-compat.h> + +#define __ASSEMBLY__ +#include <asm/ptrace.h> +#include "ucontext_i.h" + +#define __CONTEXT_FUNC_NAME __setcontext +#define __CONTEXT_ENABLE_FPRS 1 +#define __CONTEXT_ENABLE_VRS 1 + +/* Size of ucontext in GLIBC_2.3.4 and later. */ +#define _UC_SIZE_2_3_4 1184 + + .section ".text"; +ENTRY (__setcontext) + mr r4,r3 + li r3,0 + li r5,_UC_SIZE_2_3_4; + DO_CALL (SYS_ify (swapcontext)); + bso- cr0,1f +/* the kernel does not set the return code for the success case */ + li r3,0 + blr +1: + b __syscall_error@local +END(__setcontext) + +versioned_symbol (libc, __setcontext, setcontext, GLIBC_2_3_4) + +#if SHLIB_COMPAT (libc, GLIBC_2_3_3, GLIBC_2_3_4) + + compat_text_section + +# undef __CONTEXT_FUNC_NAME +# define __CONTEXT_FUNC_NAME __novec_setcontext +# undef __CONTEXT_ENABLE_VRS + +# include "setcontext-common.S" + + .previous + +compat_symbol (libc, __novec_setcontext, setcontext, GLIBC_2_3_3) + +#endif + +#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_3_3) + +# define _ERRNO_H 1 +# include <bits/errno.h> + + compat_text_section +ENTRY (__setcontext_stub) + li r3,ENOSYS + b __syscall_error@local +END (__setcontext_stub) + .previous + +compat_symbol (libc, __setcontext_stub, setcontext, GLIBC_2_0) + +#endif diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext-common.S b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext-common.S new file mode 100644 index 0000000000..6696d540dc --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext-common.S @@ -0,0 +1,529 @@ +/* Save current context and jump to a new context. + Copyright (C) 2005-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +/* This is the common implementation of setcontext for powerpc32. + It not complete in itself should be included in to a framework that + defines: + __CONTEXT_FUNC_NAME + and if appropriate: + __CONTEXT_ENABLE_FPRS + __CONTEXT_ENABLE_VRS + Any architecture that implements the Vector unit is assumed to also + implement the floating unit. */ + +/* Stack frame offsets. */ +#define _FRAME_BACKCHAIN 0 +#define _FRAME_LR_SAVE 4 +#define _FRAME_PARM_SAVE1 8 +#define _FRAME_PARM_SAVE2 12 +#define _FRAME_PARM_SAVE3 16 +#define _FRAME_PARM_SAVE4 20 + +#ifdef __CONTEXT_ENABLE_VRS + .machine "altivec" +#endif +ENTRY(__CONTEXT_FUNC_NAME) + stwu r1,-16(r1) + cfi_adjust_cfa_offset (16) +/* Insure that the _UC_REGS start on a quadword boundary. */ + stw r3,_FRAME_PARM_SAVE1(r1) + addi r3,r3,_UC_REG_SPACE+12 + stw r4,_FRAME_PARM_SAVE2(r1) /* new context pointer */ + clrrwi r3,r3,4 + +/* Save the general purpose registers */ + stw r0,_UC_GREGS+(PT_R0*4)(r3) + mflr r0 + stw r2,_UC_GREGS+(PT_R2*4)(r3) + stw r4,_UC_GREGS+(PT_R4*4)(r3) +/* Set the callers LR_SAVE, and the ucontext LR and NIP to the callers + return address. */ + stw r0,_UC_GREGS+(PT_LNK*4)(r3) + stw r0,_UC_GREGS+(PT_NIP*4)(r3) + stw r0,_FRAME_LR_SAVE+16(r1) + cfi_offset (lr, _FRAME_LR_SAVE) + stw r5,_UC_GREGS+(PT_R5*4)(r3) + stw r6,_UC_GREGS+(PT_R6*4)(r3) + stw r7,_UC_GREGS+(PT_R7*4)(r3) + stw r8,_UC_GREGS+(PT_R8*4)(r3) + stw r9,_UC_GREGS+(PT_R9*4)(r3) + stw r10,_UC_GREGS+(PT_R10*4)(r3) + stw r11,_UC_GREGS+(PT_R11*4)(r3) + stw r12,_UC_GREGS+(PT_R12*4)(r3) + stw r13,_UC_GREGS+(PT_R13*4)(r3) + stw r14,_UC_GREGS+(PT_R14*4)(r3) + stw r15,_UC_GREGS+(PT_R15*4)(r3) + stw r16,_UC_GREGS+(PT_R16*4)(r3) + stw r17,_UC_GREGS+(PT_R17*4)(r3) + stw r18,_UC_GREGS+(PT_R18*4)(r3) + stw r19,_UC_GREGS+(PT_R19*4)(r3) + stw r20,_UC_GREGS+(PT_R20*4)(r3) + stw r21,_UC_GREGS+(PT_R21*4)(r3) + stw r22,_UC_GREGS+(PT_R22*4)(r3) + stw r23,_UC_GREGS+(PT_R23*4)(r3) + stw r24,_UC_GREGS+(PT_R24*4)(r3) + stw r25,_UC_GREGS+(PT_R25*4)(r3) + stw r26,_UC_GREGS+(PT_R26*4)(r3) + stw r27,_UC_GREGS+(PT_R27*4)(r3) + stw r28,_UC_GREGS+(PT_R28*4)(r3) + stw r29,_UC_GREGS+(PT_R29*4)(r3) + stw r30,_UC_GREGS+(PT_R30*4)(r3) + stw r31,_UC_GREGS+(PT_R31*4)(r3) + +/* Save the value of R1. We had to push the stack before we + had the address of uc_reg_space. So compute the address of + the callers stack pointer and save it as R1. */ + addi r8,r1,16 + li r0,0 +/* Save the count, exception and condition registers. */ + mfctr r11 + mfxer r10 + mfcr r9 + stw r8,_UC_GREGS+(PT_R1*4)(r3) + stw r11,_UC_GREGS+(PT_CTR*4)(r3) + stw r10,_UC_GREGS+(PT_XER*4)(r3) + stw r9,_UC_GREGS+(PT_CCR*4)(r3) +/* Set the return value of getcontext to "success". R3 is the only + register whose value is not preserved in the saved context. */ + stw r0,_UC_GREGS+(PT_R3*4)(r3) + + /* Zero fill fields that can't be set in user state. */ + stw r0,_UC_GREGS+(PT_MSR*4)(r3) + stw r0,_UC_GREGS+(PT_MQ*4)(r3) + +#ifdef __CONTEXT_ENABLE_FPRS + /* Save the floating-point registers */ + stfd fp0,_UC_FREGS+(0*8)(r3) + stfd fp1,_UC_FREGS+(1*8)(r3) + stfd fp2,_UC_FREGS+(2*8)(r3) + stfd fp3,_UC_FREGS+(3*8)(r3) + stfd fp4,_UC_FREGS+(4*8)(r3) + stfd fp5,_UC_FREGS+(5*8)(r3) + stfd fp6,_UC_FREGS+(6*8)(r3) + stfd fp7,_UC_FREGS+(7*8)(r3) + stfd fp8,_UC_FREGS+(8*8)(r3) + stfd fp9,_UC_FREGS+(9*8)(r3) + stfd fp10,_UC_FREGS+(10*8)(r3) + stfd fp11,_UC_FREGS+(11*8)(r3) + stfd fp12,_UC_FREGS+(12*8)(r3) + stfd fp13,_UC_FREGS+(13*8)(r3) + stfd fp14,_UC_FREGS+(14*8)(r3) + stfd fp15,_UC_FREGS+(15*8)(r3) + stfd fp16,_UC_FREGS+(16*8)(r3) + stfd fp17,_UC_FREGS+(17*8)(r3) + stfd fp18,_UC_FREGS+(18*8)(r3) + stfd fp19,_UC_FREGS+(19*8)(r3) + stfd fp20,_UC_FREGS+(20*8)(r3) + stfd fp21,_UC_FREGS+(21*8)(r3) + stfd fp22,_UC_FREGS+(22*8)(r3) + stfd fp23,_UC_FREGS+(23*8)(r3) + stfd fp24,_UC_FREGS+(24*8)(r3) + stfd fp25,_UC_FREGS+(25*8)(r3) + stfd fp26,_UC_FREGS+(26*8)(r3) + stfd fp27,_UC_FREGS+(27*8)(r3) + stfd fp28,_UC_FREGS+(28*8)(r3) + stfd fp29,_UC_FREGS+(29*8)(r3) + mffs fp0 + stfd fp30,_UC_FREGS+(30*8)(r3) + stfd fp31,_UC_FREGS+(31*8)(r3) + stfd fp0,_UC_FREGS+(32*8)(r3) + +# ifdef PIC + mflr r8 +# define got_label GENERATE_GOT_LABEL (__CONTEXT_FUNC_NAME) + SETUP_GOT_ACCESS(r7,got_label) + addis r7,r7,_GLOBAL_OFFSET_TABLE_-got_label@ha + addi r7,r7,_GLOBAL_OFFSET_TABLE_-got_label@l +# ifdef SHARED + lwz r7,_rtld_global_ro@got(r7) + mtlr r8 + lwz r7,RTLD_GLOBAL_RO_DL_HWCAP_OFFSET+LOWORD(r7) +# else + lwz r7,_dl_hwcap@got(r7) + mtlr r8 + lwz r7,LOWORD(r7) +# endif +# else + lis r7,(_dl_hwcap+LOWORD)@ha + lwz r7,(_dl_hwcap+LOWORD)@l(r7) +# endif + +# ifdef __CONTEXT_ENABLE_VRS + andis. r6,r7,(PPC_FEATURE_HAS_ALTIVEC >> 16) + + la r10,(_UC_VREGS)(r3) + la r9,(_UC_VREGS+16)(r3) + +/* beq L(no_vec)*/ + beq 2f +/* address of the combined VSCR/VSAVE quadword. */ + la r8,(_UC_VREGS+512)(r3) + +/* Save the vector registers */ + stvx v0,0,r10 + stvx v1,0,r9 + addi r10,r10,32 + addi r9,r9,32 +/* We need to get the Vector Status and Control Register early to avoid + store order problems later with the VSAVE register that shares the + same quadword. */ + mfvscr v0 + + stvx v2,0,r10 + stvx v3,0,r9 + addi r10,r10,32 + addi r9,r9,32 + + stvx v0,0,r8 + + stvx v4,0,r10 + stvx v5,0,r9 + addi r10,r10,32 + addi r9,r9,32 + + stvx v6,0,r10 + stvx v7,0,r9 + addi r10,r10,32 + addi r9,r9,32 + + stvx v8,0,r10 + stvx v9,0,r9 + addi r10,r10,32 + addi r9,r9,32 + + stvx v10,0,r10 + stvx v11,0,r9 + addi r10,r10,32 + addi r9,r9,32 + + stvx v12,0,r10 + stvx v13,0,r9 + addi r10,r10,32 + addi r9,r9,32 + + stvx v14,0,r10 + stvx v15,0,r9 + addi r10,r10,32 + addi r9,r9,32 + + stvx v16,0,r10 + stvx v17,0,r9 + addi r10,r10,32 + addi r9,r9,32 + + stvx v18,0,r10 + stvx v19,0,r9 + addi r10,r10,32 + addi r9,r9,32 + + stvx v20,0,r10 + stvx v21,0,r9 + addi r10,r10,32 + addi r9,r9,32 + + stvx v22,0,r10 + stvx v23,0,r9 + addi r10,r10,32 + addi r9,r9,32 + + stvx v24,0,r10 + stvx v25,0,r9 + addi r10,r10,32 + addi r9,r9,32 + + stvx v26,0,r10 + stvx v27,0,r9 + addi r10,r10,32 + addi r9,r9,32 + + stvx v28,0,r10 + stvx v29,0,r9 + addi r10,r10,32 + addi r9,r9,32 + + mfvscr v0 + stvx v30,0,r10 + stvx v31,0,r9 + stw r0,0(r8) + +2: /*L(no_vec):*/ +# endif /* __CONTEXT_ENABLE_VRS */ +#endif /* __CONTEXT_ENABLE_FPRS */ + +#ifdef __CONTEXT_ENABLE_E500 + getcontext_e500 +#endif + +/* Restore ucontext (parm1) from stack. */ + lwz r12,_FRAME_PARM_SAVE1(r1) + lwz r4,_FRAME_PARM_SAVE2(r1) + addi r4,r4,_UC_SIGMASK + stw r3,_UC_REGS_PTR(r12) + addi r5,r12,_UC_SIGMASK + li r3,SIG_SETMASK + bl __sigprocmask@local + cmpwi r3,0 + bne 3f /* L(error_exit) */ + + /* + * If the new ucontext refers to the point where we were interrupted + * by a signal, we have to use the rt_sigreturn system call to + * return to the context so we get both LR and CTR restored. + * + * Otherwise, the context we are restoring is either just after + * a procedure call (getcontext/swapcontext) or at the beginning + * of a procedure call (makecontext), so we don't need to restore + * r0, xer, ctr. We don't restore r2 since it will be used as + * the TLS pointer. + */ + lwz r4,_FRAME_PARM_SAVE2(r1) + lwz r31,_UC_REGS_PTR(r4) + lwz r0,_UC_GREGS+(PT_MSR*4)(r31) + cmpwi r0,0 + bne 4f /* L(do_sigret) */ + +#ifdef __CONTEXT_ENABLE_FPRS +# ifdef __CONTEXT_ENABLE_VRS + +# ifdef PIC + mflr r8 + SETUP_GOT_ACCESS(r7,got_label) + addis r7,r7,_GLOBAL_OFFSET_TABLE_-got_label@ha + addi r7,r7,_GLOBAL_OFFSET_TABLE_-got_label@l + mtlr r8 +# ifdef SHARED + lwz r7,_rtld_global_ro@got(r7) + lwz r7,RTLD_GLOBAL_RO_DL_HWCAP_OFFSET+LOWORD(r7) +# else + lwz r7,_dl_hwcap@got(r7) + lwz r7,LOWORD(r7) +# endif +# else + lis r7,(_dl_hwcap+LOWORD)@ha + lwz r7,(_dl_hwcap+LOWORD)@l(r7) +# endif + andis. r7,r7,(PPC_FEATURE_HAS_ALTIVEC >> 16) + la r10,(_UC_VREGS)(r31) + beq 6f /* L(has_no_vec) */ + + lwz r0,(32*16)(r10) + li r9,(32*16) + cmpwi r0,0 + mtspr VRSAVE,r0 + beq 6f /* L(has_no_vec) */ + + lvx v19,r9,r10 + la r9,(16)(r10) + + lvx v0,0,r10 + lvx v1,0,r9 + addi r10,r10,32 + addi r9,r9,32 + + mtvscr v19 + lvx v2,0,r10 + lvx v3,0,r9 + addi r10,r10,32 + addi r9,r9,32 + + lvx v4,0,r10 + lvx v5,0,r9 + addi r10,r10,32 + addi r9,r9,32 + + lvx v6,0,r10 + lvx v7,0,r9 + addi r10,r10,32 + addi r9,r9,32 + + lvx v8,0,r10 + lvx v9,0,r9 + addi r10,r10,32 + addi r9,r9,32 + + lvx v10,0,r10 + lvx v11,0,r9 + addi r10,r10,32 + addi r9,r9,32 + + lvx v12,0,r10 + lvx v13,0,r9 + addi r10,r10,32 + addi r9,r9,32 + + lvx v14,0,r10 + lvx v15,0,r9 + addi r10,r10,32 + addi r9,r9,32 + + lvx v16,0,r10 + lvx v17,0,r9 + addi r10,r10,32 + addi r9,r9,32 + + lvx v18,0,r10 + lvx v19,0,r9 + addi r10,r10,32 + addi r9,r9,32 + + lvx v20,0,r10 + lvx v21,0,r9 + addi r10,r10,32 + addi r9,r9,32 + + lvx v22,0,r10 + lvx v23,0,r9 + addi r10,r10,32 + addi r9,r9,32 + + lvx v24,0,r10 + lvx v25,0,r9 + addi r10,r10,32 + addi r9,r9,32 + + lvx v26,0,r10 + lvx v27,0,r9 + addi r10,r10,32 + addi r9,r9,32 + + lvx v28,0,r10 + lvx v29,0,r9 + addi r10,r10,32 + addi r9,r9,32 + + lvx v30,0,r10 + lvx v31,0,r9 + addi r10,r10,32 + addi r9,r9,32 + + lvx v10,0,r10 + lvx v11,0,r9 + +6: /* L(has_no_vec): */ +# endif /* __CONTEXT_ENABLE_VRS */ + /* Restore the floating-point registers */ + lfd fp31,_UC_FREGS+(32*8)(r31) + lfd fp0,_UC_FREGS+(0*8)(r31) +# ifdef _ARCH_PWR6 + /* Use the extended four-operand version of the mtfsf insn. */ + mtfsf 0xff,fp31,1,0 +# else + .machine push + .machine "power6" + /* Availability of DFP indicates a 64-bit FPSCR. */ + andi. r6,r7,PPC_FEATURE_HAS_DFP + beq 7f + /* Use the extended four-operand version of the mtfsf insn. */ + mtfsf 0xff,fp31,1,0 + b 8f + /* Continue to operate on the FPSCR as if it were 32-bits. */ +7: mtfsf 0xff,fp31 +8: .machine pop +#endif /* _ARCH_PWR6 */ + lfd fp1,_UC_FREGS+(1*8)(r31) + lfd fp2,_UC_FREGS+(2*8)(r31) + lfd fp3,_UC_FREGS+(3*8)(r31) + lfd fp4,_UC_FREGS+(4*8)(r31) + lfd fp5,_UC_FREGS+(5*8)(r31) + lfd fp6,_UC_FREGS+(6*8)(r31) + lfd fp7,_UC_FREGS+(7*8)(r31) + lfd fp8,_UC_FREGS+(8*8)(r31) + lfd fp9,_UC_FREGS+(9*8)(r31) + lfd fp10,_UC_FREGS+(10*8)(r31) + lfd fp11,_UC_FREGS+(11*8)(r31) + lfd fp12,_UC_FREGS+(12*8)(r31) + lfd fp13,_UC_FREGS+(13*8)(r31) + lfd fp14,_UC_FREGS+(14*8)(r31) + lfd fp15,_UC_FREGS+(15*8)(r31) + lfd fp16,_UC_FREGS+(16*8)(r31) + lfd fp17,_UC_FREGS+(17*8)(r31) + lfd fp18,_UC_FREGS+(18*8)(r31) + lfd fp19,_UC_FREGS+(19*8)(r31) + lfd fp20,_UC_FREGS+(20*8)(r31) + lfd fp21,_UC_FREGS+(21*8)(r31) + lfd fp22,_UC_FREGS+(22*8)(r31) + lfd fp23,_UC_FREGS+(23*8)(r31) + lfd fp24,_UC_FREGS+(24*8)(r31) + lfd fp25,_UC_FREGS+(25*8)(r31) + lfd fp26,_UC_FREGS+(26*8)(r31) + lfd fp27,_UC_FREGS+(27*8)(r31) + lfd fp28,_UC_FREGS+(28*8)(r31) + lfd fp29,_UC_FREGS+(29*8)(r31) + lfd fp30,_UC_FREGS+(30*8)(r31) + lfd fp31,_UC_FREGS+(31*8)(r31) +#endif /* __CONTEXT_ENABLE_FPRS */ + +#ifdef __CONTEXT_ENABLE_E500 + setcontext_e500 +#endif + + /* Restore LR and CCR, and set CTR to the NIP value */ + lwz r3,_UC_GREGS+(PT_LNK*4)(r31) + lwz r4,_UC_GREGS+(PT_NIP*4)(r31) + lwz r5,_UC_GREGS+(PT_CCR*4)(r31) + mtlr r3 + mtctr r4 + mtcr r5 + + /* Restore the general registers */ + lwz r3,_UC_GREGS+(PT_R3*4)(r31) + lwz r4,_UC_GREGS+(PT_R4*4)(r31) + lwz r5,_UC_GREGS+(PT_R5*4)(r31) + lwz r6,_UC_GREGS+(PT_R6*4)(r31) + lwz r7,_UC_GREGS+(PT_R7*4)(r31) + lwz r8,_UC_GREGS+(PT_R8*4)(r31) + lwz r9,_UC_GREGS+(PT_R9*4)(r31) + lwz r10,_UC_GREGS+(PT_R10*4)(r31) + lwz r11,_UC_GREGS+(PT_R11*4)(r31) + lwz r12,_UC_GREGS+(PT_R12*4)(r31) + lwz r13,_UC_GREGS+(PT_R13*4)(r31) + lwz r14,_UC_GREGS+(PT_R14*4)(r31) + lwz r15,_UC_GREGS+(PT_R15*4)(r31) + lwz r16,_UC_GREGS+(PT_R16*4)(r31) + lwz r17,_UC_GREGS+(PT_R17*4)(r31) + lwz r18,_UC_GREGS+(PT_R18*4)(r31) + lwz r19,_UC_GREGS+(PT_R19*4)(r31) + lwz r20,_UC_GREGS+(PT_R20*4)(r31) + lwz r21,_UC_GREGS+(PT_R21*4)(r31) + lwz r22,_UC_GREGS+(PT_R22*4)(r31) + lwz r23,_UC_GREGS+(PT_R23*4)(r31) + lwz r24,_UC_GREGS+(PT_R24*4)(r31) + lwz r25,_UC_GREGS+(PT_R25*4)(r31) + lwz r26,_UC_GREGS+(PT_R26*4)(r31) + lwz r27,_UC_GREGS+(PT_R27*4)(r31) + lwz r28,_UC_GREGS+(PT_R28*4)(r31) + lwz r29,_UC_GREGS+(PT_R29*4)(r31) + lwz r30,_UC_GREGS+(PT_R30*4)(r31) + lwz r1,_UC_GREGS+(PT_R1*4)(r31) + lwz r31,_UC_GREGS+(PT_R31*4)(r31) + + bctr + +3:/*L(error_exit):*/ + lwz r0,_FRAME_LR_SAVE+16(r1) + addi r1,r1,16 + mtlr r0 + blr + +4:/*L(do_sigret):*/ + addi r1,r4,-0xd0 + li r0,SYS_ify(rt_sigreturn) + sc + /* NOTREACHED */ + +END(__CONTEXT_FUNC_NAME) diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext.S b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext.S new file mode 100644 index 0000000000..491b560c6c --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext.S @@ -0,0 +1,78 @@ +/* Save current context and jump to a new context. + Copyright (C) 2002-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#include <sysdep.h> +#include <rtld-global-offsets.h> +#include <shlib-compat.h> + +#define __ASSEMBLY__ +#include <asm/ptrace.h> +#include "ucontext_i.h" + +#define __CONTEXT_FUNC_NAME __swapcontext +#define __CONTEXT_ENABLE_FPRS 1 +#define __CONTEXT_ENABLE_VRS 1 + +/* Size of ucontext in GLIBC_2.3.4 and later. */ +#define _UC_SIZE_2_3_4 1184 + + .section ".text"; +ENTRY (__swapcontext) + li r5,_UC_SIZE_2_3_4; + DO_CALL (SYS_ify (swapcontext)); + bso- cr0,1f +/* the kernel does not set the return code for the success case */ + li r3,0 + blr +1: + b __syscall_error@local +END(__swapcontext) + +versioned_symbol (libc, __swapcontext, swapcontext, GLIBC_2_3_4) + +#if SHLIB_COMPAT (libc, GLIBC_2_3_3, GLIBC_2_3_4) + + compat_text_section + +# undef __CONTEXT_FUNC_NAME +# define __CONTEXT_FUNC_NAME __novec_swapcontext +# undef __CONTEXT_ENABLE_VRS + +# include "swapcontext-common.S" + + .previous + +compat_symbol (libc, __novec_swapcontext, swapcontext, GLIBC_2_3_3) + +#endif + +#if SHLIB_COMPAT (libc, GLIBC_2_1, GLIBC_2_3_3) + +# define _ERRNO_H 1 +# include <bits/errno.h> + + compat_text_section +ENTRY (__swapcontext_stub) + li r3,ENOSYS + b __syscall_error@local +END (__swapcontext_stub) + .previous + +compat_symbol (libc, __swapcontext_stub, swapcontext, GLIBC_2_1) + +#endif diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/syscalls.list b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/syscalls.list new file mode 100644 index 0000000000..931374776a --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/syscalls.list @@ -0,0 +1,10 @@ +# File name Caller Syscall name # args Strong name Weak names + +chown - chown i:sii __chown chown@@GLIBC_2.1 +lchown - lchown i:sii __lchown lchown@@GLIBC_2.0 chown@GLIBC_2.0 + +# Due to 64bit alignment there is a dummy second parameter +readahead - readahead i:iiiii __readahead readahead + +prlimit64 EXTRA prlimit64 i:iipp prlimit64 +fanotify_mark EXTRA fanotify_mark i:iiiiis fanotify_mark diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h new file mode 100644 index 0000000000..35d3f0508c --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h @@ -0,0 +1,118 @@ +/* Cancellable system call stubs. Linux/PowerPC version. + Copyright (C) 2003-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Franz Sirl <Franz.Sirl-kernel@lauterbach.com>, 2003. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#include <sysdep.h> +#include <tls.h> +#ifndef __ASSEMBLER__ +# include <nptl/pthreadP.h> +#endif + +#if IS_IN (libc) || IS_IN (libpthread) || IS_IN (librt) + +# undef PSEUDO +# define PSEUDO(name, syscall_name, args) \ + .section ".text"; \ + ENTRY (name) \ + SINGLE_THREAD_P; \ + bne- .Lpseudo_cancel; \ + .type __##syscall_name##_nocancel,@function; \ + .globl __##syscall_name##_nocancel; \ + __##syscall_name##_nocancel: \ + DO_CALL (SYS_ify (syscall_name)); \ + PSEUDO_RET; \ + .size __##syscall_name##_nocancel,.-__##syscall_name##_nocancel; \ + .Lpseudo_cancel: \ + stwu 1,-48(1); \ + cfi_adjust_cfa_offset (48); \ + mflr 9; \ + stw 9,52(1); \ + cfi_offset (lr, 4); \ + DOCARGS_##args; /* save syscall args around CENABLE. */ \ + CENABLE; \ + stw 3,16(1); /* store CENABLE return value (MASK). */ \ + UNDOCARGS_##args; /* restore syscall args. */ \ + DO_CALL (SYS_ify (syscall_name)); \ + mfcr 0; /* save CR/R3 around CDISABLE. */ \ + stw 3,8(1); \ + stw 0,12(1); \ + lwz 3,16(1); /* pass MASK to CDISABLE. */ \ + CDISABLE; \ + lwz 4,52(1); \ + lwz 0,12(1); /* restore CR/R3. */ \ + lwz 3,8(1); \ + mtlr 4; \ + mtcr 0; \ + addi 1,1,48; + +# define DOCARGS_0 +# define UNDOCARGS_0 + +# define DOCARGS_1 stw 3,20(1); DOCARGS_0 +# define UNDOCARGS_1 lwz 3,20(1); UNDOCARGS_0 + +# define DOCARGS_2 stw 4,24(1); DOCARGS_1 +# define UNDOCARGS_2 lwz 4,24(1); UNDOCARGS_1 + +# define DOCARGS_3 stw 5,28(1); DOCARGS_2 +# define UNDOCARGS_3 lwz 5,28(1); UNDOCARGS_2 + +# define DOCARGS_4 stw 6,32(1); DOCARGS_3 +# define UNDOCARGS_4 lwz 6,32(1); UNDOCARGS_3 + +# define DOCARGS_5 stw 7,36(1); DOCARGS_4 +# define UNDOCARGS_5 lwz 7,36(1); UNDOCARGS_4 + +# define DOCARGS_6 stw 8,40(1); DOCARGS_5 +# define UNDOCARGS_6 lwz 8,40(1); UNDOCARGS_5 + +# if IS_IN (libpthread) +# define CENABLE bl __pthread_enable_asynccancel@local +# define CDISABLE bl __pthread_disable_asynccancel@local +# elif IS_IN (libc) +# define CENABLE bl __libc_enable_asynccancel@local +# define CDISABLE bl __libc_disable_asynccancel@local +# elif IS_IN (librt) +# define CENABLE bl __librt_enable_asynccancel@local +# define CDISABLE bl __librt_disable_asynccancel@local +# else +# error Unsupported library +# endif + +# ifndef __ASSEMBLER__ +# define SINGLE_THREAD_P \ + __builtin_expect (THREAD_GETMEM (THREAD_SELF, \ + header.multiple_threads) == 0, 1) +# else +# define SINGLE_THREAD_P \ + lwz 10,MULTIPLE_THREADS_OFFSET(2); \ + cmpwi 10,0 +# endif + +#elif !defined __ASSEMBLER__ + +# define SINGLE_THREAD_P (1) +# define NO_CANCELLATION 1 + +#endif + +#ifndef __ASSEMBLER__ +# define RTLD_SINGLE_THREAD_P \ + __builtin_expect (THREAD_GETMEM (THREAD_SELF, \ + header.multiple_threads) == 0, 1) +#endif diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep.h b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep.h new file mode 100644 index 0000000000..a88f164961 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep.h @@ -0,0 +1,234 @@ +/* Copyright (C) 1992-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#ifndef _LINUX_POWERPC_SYSDEP_H +#define _LINUX_POWERPC_SYSDEP_H 1 + +#include <sysdeps/unix/sysv/linux/sysdep.h> +#include <sysdeps/unix/powerpc/sysdep.h> +#include <tls.h> + +/* For Linux we can use the system call table in the header file + /usr/include/asm/unistd.h + of the kernel. But these symbols do not follow the SYS_* syntax + so we have to redefine the `SYS_ify' macro here. */ +#undef SYS_ify +#define SYS_ify(syscall_name) __NR_##syscall_name + +#ifndef __ASSEMBLER__ + +# include <errno.h> + +/* Define a macro which expands inline into the wrapper code for a VDSO + call. This use is for internal calls that do not need to handle errors + normally. It will never touch errno. + On powerpc a system call basically clobbers the same registers like a + function call, with the exception of LR (which is needed for the + "sc; bnslr+" sequence) and CR (where only CR0.SO is clobbered to signal + an error return status). */ +# define INTERNAL_VSYSCALL_CALL_TYPE(funcptr, err, nr, type, args...) \ + ({ \ + register void *r0 __asm__ ("r0"); \ + register long int r3 __asm__ ("r3"); \ + register long int r4 __asm__ ("r4"); \ + register long int r5 __asm__ ("r5"); \ + register long int r6 __asm__ ("r6"); \ + register long int r7 __asm__ ("r7"); \ + register long int r8 __asm__ ("r8"); \ + register long int r9 __asm__ ("r9"); \ + register long int r10 __asm__ ("r10"); \ + register long int r11 __asm__ ("r11"); \ + register long int r12 __asm__ ("r12"); \ + register type rval __asm__ ("r3"); \ + LOADARGS_##nr (funcptr, args); \ + __asm__ __volatile__ \ + ("mtctr %0\n\t" \ + "bctrl\n\t" \ + "mfcr %0" \ + : "+r" (r0), "+r" (r3), "+r" (r4), "+r" (r5), "+r" (r6), "+r" (r7), \ + "+r" (r8), "+r" (r9), "+r" (r10), "+r" (r11), "+r" (r12) \ + : : "cr0", "ctr", "lr", "memory"); \ + err = (long int) r0; \ + __asm__ __volatile__ ("" : "=r" (rval) : "r" (r3), "r" (r4)); \ + rval; \ + }) + +#define INTERNAL_VSYSCALL_CALL(funcptr, err, nr, args...) \ + INTERNAL_VSYSCALL_CALL_TYPE(funcptr, err, nr, long int, args) + +# undef INLINE_SYSCALL +# define INLINE_SYSCALL(name, nr, args...) \ + ({ \ + INTERNAL_SYSCALL_DECL (sc_err); \ + long int sc_ret = INTERNAL_SYSCALL (name, sc_err, nr, args); \ + if (INTERNAL_SYSCALL_ERROR_P (sc_ret, sc_err)) \ + { \ + __set_errno (INTERNAL_SYSCALL_ERRNO (sc_ret, sc_err)); \ + sc_ret = -1L; \ + } \ + sc_ret; \ + }) + +/* Define a macro which expands inline into the wrapper code for a system + call. This use is for internal calls that do not need to handle errors + normally. It will never touch errno. + On powerpc a system call basically clobbers the same registers like a + function call, with the exception of LR (which is needed for the + "sc; bnslr+" sequence) and CR (where only CR0.SO is clobbered to signal + an error return status). */ + +# undef INTERNAL_SYSCALL_DECL +# define INTERNAL_SYSCALL_DECL(err) long int err __attribute__ ((unused)) + +# undef INTERNAL_SYSCALL +# define INTERNAL_SYSCALL_NCS(name, err, nr, args...) \ + ({ \ + register long int r0 __asm__ ("r0"); \ + register long int r3 __asm__ ("r3"); \ + register long int r4 __asm__ ("r4"); \ + register long int r5 __asm__ ("r5"); \ + register long int r6 __asm__ ("r6"); \ + register long int r7 __asm__ ("r7"); \ + register long int r8 __asm__ ("r8"); \ + register long int r9 __asm__ ("r9"); \ + register long int r10 __asm__ ("r10"); \ + register long int r11 __asm__ ("r11"); \ + register long int r12 __asm__ ("r12"); \ + LOADARGS_##nr(name, args); \ + ABORT_TRANSACTION; \ + __asm__ __volatile__ \ + ("sc \n\t" \ + "mfcr %0" \ + : "=&r" (r0), \ + "=&r" (r3), "=&r" (r4), "=&r" (r5), "=&r" (r6), "=&r" (r7), \ + "=&r" (r8), "=&r" (r9), "=&r" (r10), "=&r" (r11), "=&r" (r12) \ + : ASM_INPUT_##nr \ + : "cr0", "ctr", "memory"); \ + err = r0; \ + (int) r3; \ + }) +# define INTERNAL_SYSCALL(name, err, nr, args...) \ + INTERNAL_SYSCALL_NCS (__NR_##name, err, nr, ##args) + +# undef INTERNAL_SYSCALL_ERROR_P +# define INTERNAL_SYSCALL_ERROR_P(val, err) \ + ((void) (val), __builtin_expect ((err) & (1 << 28), 0)) + +# undef INTERNAL_SYSCALL_ERRNO +# define INTERNAL_SYSCALL_ERRNO(val, err) (val) + +# define INTERNAL_VSYSCALL_NO_SYSCALL_FALLBACK(name, err, type, nr, args...) \ + ({ \ + type sc_ret = ENOSYS; \ + \ + __typeof (__vdso_##name) vdsop = __vdso_##name; \ + PTR_DEMANGLE (vdsop); \ + if (vdsop != NULL) \ + sc_ret = \ + INTERNAL_VSYSCALL_CALL_TYPE (vdsop, err, nr, type, ##args); \ + else \ + err = 1 << 28; \ + sc_ret; \ + }) + +/* List of system calls which are supported as vsyscalls. */ +# define HAVE_CLOCK_GETRES_VSYSCALL 1 +# define HAVE_CLOCK_GETTIME_VSYSCALL 1 +# define HAVE_GETCPU_VSYSCALL 1 + + +# define LOADARGS_0(name, dummy) \ + r0 = name +# define LOADARGS_1(name, __arg1) \ + long int arg1 = (long int) (__arg1); \ + LOADARGS_0(name, 0); \ + extern void __illegally_sized_syscall_arg1 (void); \ + if (__builtin_classify_type (__arg1) != 5 && sizeof (__arg1) > 4) \ + __illegally_sized_syscall_arg1 (); \ + r3 = arg1 +# define LOADARGS_2(name, __arg1, __arg2) \ + long int arg2 = (long int) (__arg2); \ + LOADARGS_1(name, __arg1); \ + extern void __illegally_sized_syscall_arg2 (void); \ + if (__builtin_classify_type (__arg2) != 5 && sizeof (__arg2) > 4) \ + __illegally_sized_syscall_arg2 (); \ + r4 = arg2 +# define LOADARGS_3(name, __arg1, __arg2, __arg3) \ + long int arg3 = (long int) (__arg3); \ + LOADARGS_2(name, __arg1, __arg2); \ + extern void __illegally_sized_syscall_arg3 (void); \ + if (__builtin_classify_type (__arg3) != 5 && sizeof (__arg3) > 4) \ + __illegally_sized_syscall_arg3 (); \ + r5 = arg3 +# define LOADARGS_4(name, __arg1, __arg2, __arg3, __arg4) \ + long int arg4 = (long int) (__arg4); \ + LOADARGS_3(name, __arg1, __arg2, __arg3); \ + extern void __illegally_sized_syscall_arg4 (void); \ + if (__builtin_classify_type (__arg4) != 5 && sizeof (__arg4) > 4) \ + __illegally_sized_syscall_arg4 (); \ + r6 = arg4 +# define LOADARGS_5(name, __arg1, __arg2, __arg3, __arg4, __arg5) \ + long int arg5 = (long int) (__arg5); \ + LOADARGS_4(name, __arg1, __arg2, __arg3, __arg4); \ + extern void __illegally_sized_syscall_arg5 (void); \ + if (__builtin_classify_type (__arg5) != 5 && sizeof (__arg5) > 4) \ + __illegally_sized_syscall_arg5 (); \ + r7 = arg5 +# define LOADARGS_6(name, __arg1, __arg2, __arg3, __arg4, __arg5, __arg6) \ + long int arg6 = (long int) (__arg6); \ + LOADARGS_5(name, __arg1, __arg2, __arg3, __arg4, __arg5); \ + extern void __illegally_sized_syscall_arg6 (void); \ + if (__builtin_classify_type (__arg6) != 5 && sizeof (__arg6) > 4) \ + __illegally_sized_syscall_arg6 (); \ + r8 = arg6 + +# define ASM_INPUT_0 "0" (r0) +# define ASM_INPUT_1 ASM_INPUT_0, "1" (r3) +# define ASM_INPUT_2 ASM_INPUT_1, "2" (r4) +# define ASM_INPUT_3 ASM_INPUT_2, "3" (r5) +# define ASM_INPUT_4 ASM_INPUT_3, "4" (r6) +# define ASM_INPUT_5 ASM_INPUT_4, "5" (r7) +# define ASM_INPUT_6 ASM_INPUT_5, "6" (r8) + +#endif /* __ASSEMBLER__ */ + + +/* Pointer mangling support. */ +#if IS_IN (rtld) +/* We cannot use the thread descriptor because in ld.so we use setjmp + earlier than the descriptor is initialized. */ +#else +# ifdef __ASSEMBLER__ +# define PTR_MANGLE(reg, tmpreg) \ + lwz tmpreg,POINTER_GUARD(r2); \ + xor reg,tmpreg,reg +# define PTR_MANGLE2(reg, tmpreg) \ + xor reg,tmpreg,reg +# define PTR_MANGLE3(destreg, reg, tmpreg) \ + lwz tmpreg,POINTER_GUARD(r2); \ + xor destreg,tmpreg,reg +# define PTR_DEMANGLE(reg, tmpreg) PTR_MANGLE (reg, tmpreg) +# define PTR_DEMANGLE2(reg, tmpreg) PTR_MANGLE2 (reg, tmpreg) +# define PTR_DEMANGLE3(destreg, reg, tmpreg) PTR_MANGLE3 (destreg, reg, tmpreg) +# else +# define PTR_MANGLE(var) \ + (var) = (__typeof (var)) ((uintptr_t) (var) ^ THREAD_GET_POINTER_GUARD ()) +# define PTR_DEMANGLE(var) PTR_MANGLE (var) +# endif +#endif + +#endif /* linux/powerpc/powerpc32/sysdep.h */ diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/ucontext_i.sym b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/ucontext_i.sym new file mode 100644 index 0000000000..293761f260 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/ucontext_i.sym @@ -0,0 +1,26 @@ +#include <stddef.h> +#include <signal.h> +#include <sys/ucontext.h> + +-- + +SIG_BLOCK +SIG_SETMASK + +-- Offsets in ucontext_t. +#define ucontext(member) offsetof (ucontext_t, member) +_UC_LINK ucontext (uc_link) +_UC_STACK_SP ucontext (uc_stack.ss_sp) +_UC_STACK_SIZE ucontext (uc_stack.ss_size) +_UC_REGS_PTR ucontext (uc_mcontext.uc_regs) +_UC_SIGMASK ucontext (uc_sigmask) +_UC_REG_SPACE ucontext (uc_reg_space) + +-- Offsets in mcontext_t. +#define mcontext(member) offsetof (mcontext_t, member) +_UC_GREGS mcontext (gregs) +_UC_FREGS mcontext (fpregs) +_UC_VREGS mcontext (vrregs) +_UC_VREGS mcontext (vrregs) +_UC_VSCR mcontext (vrregs.vscr) +_UC_VRSAVE mcontext (vrregs.vrsave) diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S new file mode 100644 index 0000000000..d1529769fe --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S @@ -0,0 +1,38 @@ +/* Copyright (C) 2003-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#include <sysdep.h> +#define _ERRNO_H 1 +#include <bits/errno.h> +#include <tcb-offsets.h> + +/* Clone the calling process, but without copying the whole address space. + The calling process is suspended until the new process exits or is + replaced by a call to `execve'. Return -1 for errors, 0 to the new process, + and the process ID of the new process to the old process. */ + +ENTRY (__vfork) + + DO_CALL (SYS_ify (vfork)) + + PSEUDO_RET + +PSEUDO_END (__vfork) +libc_hidden_def (__vfork) + +weak_alias (__vfork, vfork) +strong_alias (__vfork, __libc_vfork) diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/xstat.c b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/xstat.c new file mode 100644 index 0000000000..e9869f5508 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc32/xstat.c @@ -0,0 +1 @@ +#include <sysdeps/unix/sysv/linux/i386/xstat.c> diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/970/Implies b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/970/Implies new file mode 100644 index 0000000000..76a32ce7b5 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/970/Implies @@ -0,0 +1,2 @@ +powerpc/powerpc64/970/fpu +powerpc/powerpc64/970 diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/Implies b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/Implies new file mode 100644 index 0000000000..8d91c80097 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/Implies @@ -0,0 +1 @@ +unix/sysv/linux/wordsize-64 diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/Versions b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/Versions new file mode 100644 index 0000000000..a8e88b89db --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/Versions @@ -0,0 +1,43 @@ +libc { + GLIBC_2.2 { + # functions used in other libraries + + # g* + glob64; + + # New rlimit interface + getrlimit; setrlimit; getrlimit64; setrlimit64; + + # r* + readdir64; readdir64_r; + + # s* + scandir64; + } + GLIBC_2.3.4 { + getcontext; + setcontext; + swapcontext; + } + GLIBC_2.17 { + __ppc_get_timebase_freq; + } +} + +librt { + GLIBC_2.3.3 { + # Changed timer_t. + timer_create; timer_delete; timer_getoverrun; timer_gettime; + timer_settime; + } +} + +libpthread { + GLIBC_2.3.4 { + longjmp; siglongjmp; + } + GLIBC_2.6 { + # Changed PTHREAD_STACK_MIN. + pthread_attr_setstack; pthread_attr_setstacksize; + } +} diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/____longjmp_chk.S b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/____longjmp_chk.S new file mode 100644 index 0000000000..0941dd22a7 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/____longjmp_chk.S @@ -0,0 +1,68 @@ +/* Copyright (C) 2009-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#include <sysdep.h> +#include <rtld-global-offsets.h> + + .section .rodata.str1.8,"aMS",@progbits,1 + .align 3 +.LC0: + .string "longjmp causes uninitialized stack frame" + .section .toc,"aw" +.LC1: + .tc .LC0[TC],.LC0 + .text + +#define __longjmp ____longjmp_chk + +#define CHECK_SP(reg) \ + cmpld reg, r1; \ + bge+ .Lok; \ + mflr r0; \ + std r0,FRAME_LR_SAVE(r1); \ + mr r31,r3; \ + mr r30,r4; \ + stdu r1,-FRAME_MIN_SIZE-32(r1); \ + cfi_remember_state; \ + cfi_adjust_cfa_offset (FRAME_MIN_SIZE+32); \ + cfi_offset (lr, FRAME_LR_SAVE); \ + li r3,0; \ + addi r4,r1,FRAME_MIN_SIZE; \ + li r0,__NR_sigaltstack; \ + sc; \ + /* Without working sigaltstack we cannot perform the test. */ \ + bso .Lok2; \ + lwz r0,FRAME_MIN_SIZE+8(r1); \ + andi. r4,r0,1; \ + beq .Lfail; \ + ld r0,FRAME_MIN_SIZE+16(r1); \ + ld r4,FRAME_MIN_SIZE(r1); \ + add r4,r4,r0; \ + sub r3,r3,reg; \ + cmpld r3,r0; \ + bge+ .Lok2; \ +.Lfail: \ + ld r3,.LC1@toc(2); \ + bl HIDDEN_JUMPTARGET (__fortify_fail); \ + nop; \ +.Lok2: \ + mr r3,r31; \ + mr r4,r30; \ + cfi_restore_state; \ +.Lok: + +#include <__longjmp-common.S> diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/a2/Implies b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/a2/Implies new file mode 100644 index 0000000000..39b19e9c1f --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/a2/Implies @@ -0,0 +1,2 @@ +powerpc/powerpc64/a2/fpu +powerpc/powerpc64/a2 diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/brk.S b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/brk.S new file mode 100644 index 0000000000..733f452b5a --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/brk.S @@ -0,0 +1,43 @@ +/* brk system call for Linux. PowerPC64 version. + Copyright (C) 1995-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#include <sysdep.h> +#define _ERRNO_H 1 +#include <bits/errno.h> + + .comm __curbrk,8,8 + .section ".toc","aw" +.LC__curbrk: + .tc __curbrk[TC],__curbrk + .section ".text" +ENTRY (__brk) + CALL_MCOUNT 1 + + std r3,-8(r1) + DO_CALL(SYS_ify(brk)) + ld r6,-8(r1) + ld r5,.LC__curbrk@toc(r2) + std r3,0(r5) + cmpld r6,r3 + li r3,0 + blelr+ + li r3,ENOMEM + TAIL_CALL_SYSCALL_ERROR +END (__brk) + +weak_alias (__brk, brk) diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/c++-types.data b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/c++-types.data new file mode 100644 index 0000000000..23c11dc41b --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/c++-types.data @@ -0,0 +1,67 @@ +blkcnt64_t:l +blkcnt_t:l +blksize_t:l +caddr_t:Pc +clockid_t:i +clock_t:l +daddr_t:i +dev_t:m +fd_mask:l +fsblkcnt64_t:m +fsblkcnt_t:m +fsfilcnt64_t:m +fsfilcnt_t:m +fsid_t:8__fsid_t +gid_t:j +id_t:j +ino64_t:m +ino_t:m +int16_t:s +int32_t:i +int64_t:l +int8_t:a +intptr_t:l +key_t:i +loff_t:l +mode_t:j +nlink_t:m +off64_t:l +off_t:l +pid_t:i +pthread_attr_t:14pthread_attr_t +pthread_barrier_t:17pthread_barrier_t +pthread_barrierattr_t:21pthread_barrierattr_t +pthread_cond_t:14pthread_cond_t +pthread_condattr_t:18pthread_condattr_t +pthread_key_t:j +pthread_mutex_t:15pthread_mutex_t +pthread_mutexattr_t:19pthread_mutexattr_t +pthread_once_t:i +pthread_rwlock_t:16pthread_rwlock_t +pthread_rwlockattr_t:20pthread_rwlockattr_t +pthread_spinlock_t:i +pthread_t:m +quad_t:l +register_t:l +rlim64_t:m +rlim_t:m +sigset_t:10__sigset_t +size_t:m +socklen_t:j +ssize_t:l +suseconds_t:l +time_t:l +u_char:h +uid_t:j +uint:j +u_int:j +u_int16_t:t +u_int32_t:j +u_int64_t:m +u_int8_t:h +ulong:m +u_long:m +u_quad_t:m +useconds_t:j +ushort:t +u_short:t diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/cell/Implies b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/cell/Implies new file mode 100644 index 0000000000..583d4084a4 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/cell/Implies @@ -0,0 +1,2 @@ +powerpc/powerpc64/cell/fpu +powerpc/powerpc64/cell diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/cell/fpu/Implies b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/cell/fpu/Implies new file mode 100644 index 0000000000..b6720ecda5 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/cell/fpu/Implies @@ -0,0 +1 @@ +powerpc/powerpc64/cell/fpu diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/clone.S b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/clone.S new file mode 100644 index 0000000000..9e5bfd2d03 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/clone.S @@ -0,0 +1,119 @@ +/* Wrapper around clone system call. PowerPC64 version. + Copyright (C) 1997-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#include <sysdep.h> +#define _ERRNO_H 1 +#include <bits/errno.h> + +#define CLONE_VM 0x00000100 +#define CLONE_THREAD 0x00010000 + +/* This is the only really unusual system call in PPC linux, but not + because of any weirdness in the system call itself; because of + all the freaky stuff we have to do to make the call useful. */ + +/* int [r3] clone(int (*fn)(void *arg) [r3], void *child_stack [r4], + int flags [r5], void *arg [r6], void *parent_tid [r7], + void *tls [r8], void *child_tid [r9]); */ + +ENTRY (__clone) + CALL_MCOUNT 7 + + /* Check for child_stack == NULL || fn == NULL. */ + cmpdi cr0,r4,0 + cmpdi cr1,r3,0 + cror cr0*4+eq,cr1*4+eq,cr0*4+eq + beq- cr0,L(badargs) + + /* Save some regs in the "red zone". */ + std r29,-24(r1) + std r30,-16(r1) + std r31,-8(r1) + cfi_offset(r29,-24) + cfi_offset(r30,-16) + cfi_offset(r31,-8) + + /* Set up stack frame for child. */ + clrrdi r4,r4,4 + li r0,0 + stdu r0,-FRAME_MIN_SIZE_PARM(r4) + + /* Save fn, args, stack across syscall. */ + mr r30,r3 /* Function in r30. */ + mr r29,r5 /* Flags in r29. */ + mr r31,r6 /* Argument in r31. */ + + /* 'flags' argument is first parameter to clone syscall. + Second is the stack pointer, already in r4. */ + mr r3,r5 + /* Move the parent_tid, child_tid and tls arguments. */ + mr r5,r7 + mr r6,r8 + mr r7,r9 + + /* End FDE now, because in the child the unwind info will be + wrong. */ + cfi_endproc + + /* Do the call. */ + DO_CALL(SYS_ify(clone)) + + /* Check for child process. */ + cmpdi cr1,r3,0 + crandc cr1*4+eq,cr1*4+eq,cr0*4+so + bne- cr1,L(parent) /* The '-' is to minimise the race. */ + + std r2,FRAME_TOC_SAVE(r1) + /* Call procedure. */ + PPC64_LOAD_FUNCPTR r30 + mr r3,r31 + bctrl + ld r2,FRAME_TOC_SAVE(r1) + /* Call _exit with result from procedure. */ +#ifdef SHARED + b JUMPTARGET(__GI__exit) +#else + bl JUMPTARGET(_exit) + /* We won't ever get here but provide a nop so that the linker + will insert a toc adjusting stub if necessary. */ + nop +#endif + +L(badargs): + cfi_startproc + li r3,EINVAL + TAIL_CALL_SYSCALL_ERROR + +L(parent): + /* Parent. Restore registers & return. */ + cfi_offset(r29,-24) + cfi_offset(r30,-16) + cfi_offset(r31,-8) + ld r29,-24(r1) + ld r30,-16(r1) + ld r31,-8(r1) + cfi_restore(r29) + cfi_restore(r30) + cfi_restore(r31) + + PSEUDO_RET + +END (__clone) + +libc_hidden_def (__clone) +weak_alias (__clone, clone) diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/configure b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/configure new file mode 100644 index 0000000000..4e7fcf1d97 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/configure @@ -0,0 +1,233 @@ +# This file is generated from configure.ac by Autoconf. DO NOT EDIT! + # Local configure fragment for sysdeps/unix/sysv/linux/powerpc/powerpc64/. + +test -n "$libc_cv_slibdir" || +case "$prefix" in +/usr | /usr/) + libc_cv_slibdir=/lib64 + libc_cv_rtlddir=/lib64 + if test "$libdir" = '${exec_prefix}/lib'; then + libdir='${exec_prefix}/lib64'; + # Locale data can be shared between 32-bit and 64-bit libraries. + libc_cv_complocaledir='${exec_prefix}/lib/locale' + fi + ;; +esac + +# Define default-abi according to compiler flags. + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 +$as_echo_n "checking for grep that handles long lines and -e... " >&6; } +if ${ac_cv_path_GREP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -z "$GREP"; then + ac_path_GREP_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in grep ggrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" + as_fn_executable_p "$ac_path_GREP" || continue +# Check for GNU ac_path_GREP and select it if it is found. + # Check for GNU $ac_path_GREP +case `"$ac_path_GREP" --version 2>&1` in +*GNU*) + ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo 'GREP' >> "conftest.nl" + "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_GREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_GREP="$ac_path_GREP" + ac_path_GREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_GREP_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_GREP"; then + as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 + fi +else + ac_cv_path_GREP=$GREP +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 +$as_echo "$ac_cv_path_GREP" >&6; } + GREP="$ac_cv_path_GREP" + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 +$as_echo_n "checking for egrep... " >&6; } +if ${ac_cv_path_EGREP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 + then ac_cv_path_EGREP="$GREP -E" + else + if test -z "$EGREP"; then + ac_path_EGREP_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in egrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" + as_fn_executable_p "$ac_path_EGREP" || continue +# Check for GNU ac_path_EGREP and select it if it is found. + # Check for GNU $ac_path_EGREP +case `"$ac_path_EGREP" --version 2>&1` in +*GNU*) + ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo 'EGREP' >> "conftest.nl" + "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_EGREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_EGREP="$ac_path_EGREP" + ac_path_EGREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_EGREP_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_EGREP"; then + as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 + fi +else + ac_cv_path_EGREP=$EGREP +fi + + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 +$as_echo "$ac_cv_path_EGREP" >&6; } + EGREP="$ac_cv_path_EGREP" + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler is using the PowerPC64 ELFv2 ABI" >&5 +$as_echo_n "checking whether the compiler is using the PowerPC64 ELFv2 ABI... " >&6; } +if ${libc_cv_ppc64_elfv2_abi+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#if _CALL_ELF == 2 + yes + #endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "yes" >/dev/null 2>&1; then : + libc_cv_ppc64_elfv2_abi=yes +else + libc_cv_ppc64_elfv2_abi=no +fi +rm -f conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_ppc64_elfv2_abi" >&5 +$as_echo "$libc_cv_ppc64_elfv2_abi" >&6; } +if test $libc_cv_ppc64_elfv2_abi = yes; then + config_vars="$config_vars +default-abi = 64-v2" + # For shlib-versions. + $as_echo "#define HAVE_ELFV2_ABI 1" >>confdefs.h + +else + config_vars="$config_vars +default-abi = 64-v1" + # Compiler that do not support ELFv2 ABI does not define _CALL_ELF + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler defines _CALL_ELF" >&5 +$as_echo_n "checking whether the compiler defines _CALL_ELF... " >&6; } +if ${libc_cv_ppc64_def_call_elf+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifdef _CALL_ELF + yes + #endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "yes" >/dev/null 2>&1; then : + libc_cv_ppc64_def_call_elf=yes +else + libc_cv_ppc64_def_call_elf=no +fi +rm -f conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_ppc64_def_call_elf" >&5 +$as_echo "$libc_cv_ppc64_def_call_elf" >&6; } + if test $libc_cv_ppc64_def_call_elf = no; then + libc_extra_cppflags="$libc_extra_cppflags -D_CALL_ELF=1" + fi +fi +# Set minimum kernel version for ppc64le. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the machine type to set minimum kernel version" >&5 +$as_echo_n "checking the machine type to set minimum kernel version... " >&6; } +if ${libc_cv_ppc64_le+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__ + yes + #endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "yes" >/dev/null 2>&1; then : + arch_minimum_kernel=3.10.0 +else + libc_cv_ppc64_le=no +fi +rm -f conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_ppc64_le" >&5 +$as_echo "$libc_cv_ppc64_le" >&6; } diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/configure.ac b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/configure.ac new file mode 100644 index 0000000000..f9cba6e15d --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/configure.ac @@ -0,0 +1,36 @@ +GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory. +# Local configure fragment for sysdeps/unix/sysv/linux/powerpc/powerpc64/. + +LIBC_SLIBDIR_RTLDDIR([lib64], [lib64]) + +# Define default-abi according to compiler flags. +AC_CACHE_CHECK([whether the compiler is using the PowerPC64 ELFv2 ABI], + [libc_cv_ppc64_elfv2_abi], + [AC_EGREP_CPP(yes,[#if _CALL_ELF == 2 + yes + #endif + ], libc_cv_ppc64_elfv2_abi=yes, libc_cv_ppc64_elfv2_abi=no)]) +if test $libc_cv_ppc64_elfv2_abi = yes; then + LIBC_CONFIG_VAR([default-abi], [64-v2]) + # For shlib-versions. + AC_DEFINE(HAVE_ELFV2_ABI) +else + LIBC_CONFIG_VAR([default-abi], [64-v1]) + # Compiler that do not support ELFv2 ABI does not define _CALL_ELF + AC_CACHE_CHECK([whether the compiler defines _CALL_ELF], + [libc_cv_ppc64_def_call_elf], + [AC_EGREP_CPP(yes,[#ifdef _CALL_ELF + yes + #endif + ], libc_cv_ppc64_def_call_elf=yes, libc_cv_ppc64_def_call_elf=no)]) + if test $libc_cv_ppc64_def_call_elf = no; then + libc_extra_cppflags="$libc_extra_cppflags -D_CALL_ELF=1" + fi +fi +# Set minimum kernel version for ppc64le. +AC_CACHE_CHECK([the machine type to set minimum kernel version], + [libc_cv_ppc64_le], + [AC_EGREP_CPP(yes,[#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__ + yes + #endif + ], arch_minimum_kernel=3.10.0, libc_cv_ppc64_le=no)]) diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/dl-cache.h b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/dl-cache.h new file mode 100644 index 0000000000..44eb95c693 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/dl-cache.h @@ -0,0 +1,24 @@ +/* Support for reading /etc/ld.so.cache files written by Linux ldconfig. + Copyright (C) 2002-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#define _DL_CACHE_DEFAULT_ID 0x503 + +#define _dl_cache_check_flags(flags) \ + ((flags) == _DL_CACHE_DEFAULT_ID) + +#include_next <dl-cache.h> diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/fcntl.c b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/fcntl.c new file mode 100644 index 0000000000..85ae8a2752 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/fcntl.c @@ -0,0 +1,65 @@ +/* Copyright (C) 2000-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#include <assert.h> +#include <errno.h> +#include <sysdep-cancel.h> /* Must come before <fcntl.h>. */ +#include <fcntl.h> +#include <stdarg.h> + +#include <sys/syscall.h> + + +#ifndef NO_CANCELLATION +int +__fcntl_nocancel (int fd, int cmd, ...) +{ + va_list ap; + void *arg; + + va_start (ap, cmd); + arg = va_arg (ap, void *); + va_end (ap); + + return INLINE_SYSCALL (fcntl, 3, fd, cmd, arg); +} +#endif + + +int +__libc_fcntl (int fd, int cmd, ...) +{ + va_list ap; + void *arg; + + va_start (ap, cmd); + arg = va_arg (ap, void *); + va_end (ap); + + if (cmd >= F_GETLK64 && cmd <= F_SETLKW64) + cmd -= F_GETLK64 - F_GETLK; + + if (cmd != F_SETLKW) + return INLINE_SYSCALL (fcntl, 3, fd, cmd, arg); + + return SYSCALL_CANCEL (fcntl, fd, cmd, arg); +} +libc_hidden_def (__libc_fcntl) + +weak_alias (__libc_fcntl, __fcntl) +libc_hidden_weak (__fcntl) +weak_alias (__libc_fcntl, fcntl) diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/fpu/fe_mask.c b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/fpu/fe_mask.c new file mode 100644 index 0000000000..494d4931af --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/fpu/fe_mask.c @@ -0,0 +1,35 @@ +/* Procedure definition for FE_MASK_ENV for Linux/ppc64. + Copyright (C) 2007-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#include <fenv.h> +#include <errno.h> +#include <sysdep.h> +#include <sys/syscall.h> +#include <sys/prctl.h> + +const fenv_t * +__fe_mask_env (void) +{ +#if defined PR_SET_FPEXC && defined PR_FP_EXC_DISABLED + INTERNAL_SYSCALL_DECL (err); + INTERNAL_SYSCALL (prctl, err, 2, PR_SET_FPEXC, PR_FP_EXC_DISABLED); +#else + __set_errno (ENOSYS); +#endif + return FE_DFL_ENV; +} diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/fpu/fe_nomask.c b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/fpu/fe_nomask.c new file mode 100644 index 0000000000..dc2252b936 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/fpu/fe_nomask.c @@ -0,0 +1,39 @@ +/* Procedure definition for FE_NOMASK_ENV for Linux/ppc64. + Copyright (C) 2003-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#include <fenv_libc.h> +#include <errno.h> +#include <sysdep.h> +#include <sys/syscall.h> +#include <sys/prctl.h> +#include <shlib-compat.h> + +const fenv_t * +__fe_nomask_env_priv (void) +{ +#if defined PR_SET_FPEXC && defined PR_FP_EXC_PRECISE + INTERNAL_SYSCALL_DECL (err); + INTERNAL_SYSCALL (prctl, err, 2, PR_SET_FPEXC, PR_FP_EXC_PRECISE); +#else + __set_errno (ENOSYS); +#endif + return FE_ENABLED_ENV; +} +#if SHLIB_COMPAT (libm, GLIBC_2_3, GLIBC_2_19) +compat_symbol (libm, __fe_nomask_env_priv, __fe_nomask_env, GLIBC_2_3); +#endif diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/getcontext.S b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/getcontext.S new file mode 100644 index 0000000000..49e7a5f272 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/getcontext.S @@ -0,0 +1,383 @@ +/* Save current context. + Copyright (C) 2002-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#include <sysdep.h> +#include <rtld-global-offsets.h> +#include <shlib-compat.h> + +#define __ASSEMBLY__ +#include <asm/ptrace.h> +#include <asm/errno.h> +#include "ucontext_i.h" + + +#if SHLIB_COMPAT (libc, GLIBC_2_3, GLIBC_2_3_4) +ENTRY(__novec_getcontext) + CALL_MCOUNT 1 + std r0,(SIGCONTEXT_GP_REGS+(PT_R0*8))(r3) + std r1,(SIGCONTEXT_GP_REGS+(PT_R1*8))(r3) + mflr r0 + std r2,(SIGCONTEXT_GP_REGS+(PT_R2*8))(r3) + std r0,FRAME_LR_SAVE(r1) + cfi_offset (lr, FRAME_LR_SAVE) + std r0,(SIGCONTEXT_GP_REGS+(PT_LNK*8))(r3) + std r0,(SIGCONTEXT_GP_REGS+(PT_NIP*8))(r3) + stdu r1,-128(r1) + cfi_adjust_cfa_offset (128) + std r4,(SIGCONTEXT_GP_REGS+(PT_R4*8))(r3) + std r5,(SIGCONTEXT_GP_REGS+(PT_R5*8))(r3) + std r6,(SIGCONTEXT_GP_REGS+(PT_R6*8))(r3) + std r7,(SIGCONTEXT_GP_REGS+(PT_R7*8))(r3) + std r8,(SIGCONTEXT_GP_REGS+(PT_R8*8))(r3) + std r9,(SIGCONTEXT_GP_REGS+(PT_R9*8))(r3) + std r10,(SIGCONTEXT_GP_REGS+(PT_R10*8))(r3) + std r11,(SIGCONTEXT_GP_REGS+(PT_R11*8))(r3) + std r12,(SIGCONTEXT_GP_REGS+(PT_R12*8))(r3) + std r13,(SIGCONTEXT_GP_REGS+(PT_R13*8))(r3) + std r14,(SIGCONTEXT_GP_REGS+(PT_R14*8))(r3) + std r15,(SIGCONTEXT_GP_REGS+(PT_R15*8))(r3) + std r16,(SIGCONTEXT_GP_REGS+(PT_R16*8))(r3) + std r17,(SIGCONTEXT_GP_REGS+(PT_R17*8))(r3) + std r18,(SIGCONTEXT_GP_REGS+(PT_R18*8))(r3) + std r19,(SIGCONTEXT_GP_REGS+(PT_R19*8))(r3) + std r20,(SIGCONTEXT_GP_REGS+(PT_R20*8))(r3) + std r21,(SIGCONTEXT_GP_REGS+(PT_R21*8))(r3) + std r22,(SIGCONTEXT_GP_REGS+(PT_R22*8))(r3) + std r23,(SIGCONTEXT_GP_REGS+(PT_R23*8))(r3) + std r24,(SIGCONTEXT_GP_REGS+(PT_R24*8))(r3) + std r25,(SIGCONTEXT_GP_REGS+(PT_R25*8))(r3) + std r26,(SIGCONTEXT_GP_REGS+(PT_R26*8))(r3) + std r27,(SIGCONTEXT_GP_REGS+(PT_R27*8))(r3) + std r28,(SIGCONTEXT_GP_REGS+(PT_R28*8))(r3) + std r29,(SIGCONTEXT_GP_REGS+(PT_R29*8))(r3) + std r30,(SIGCONTEXT_GP_REGS+(PT_R30*8))(r3) + std r31,(SIGCONTEXT_GP_REGS+(PT_R31*8))(r3) + mfctr r0 + std r0,(SIGCONTEXT_GP_REGS+(PT_CTR*8))(r3) + mfxer r0 + std r0,(SIGCONTEXT_GP_REGS+(PT_XER*8))(r3) + mfcr r0 + std r0,(SIGCONTEXT_GP_REGS+(PT_CCR*8))(r3) + + /* Set the return value of swapcontext to "success". R3 is the only + register whose value is not preserved in the saved context. */ + li r0,0 + std r0,(SIGCONTEXT_GP_REGS+(PT_R3*8))(r3) + + /* Zero fill fields that can't be set in user state or are unused. */ + std r0,(SIGCONTEXT_GP_REGS+(PT_MSR*8))(r3) + std r0,(SIGCONTEXT_GP_REGS+(34*8))(r3) + std r0,(SIGCONTEXT_GP_REGS+(PT_SOFTE*8))(r3) + std r0,(SIGCONTEXT_GP_REGS+(40*8))(r3) + std r0,(SIGCONTEXT_GP_REGS+(41*8))(r3) + std r0,(SIGCONTEXT_GP_REGS+(42*8))(r3) + std r0,(SIGCONTEXT_GP_REGS+(PT_RESULT*8))(r3) + + /* Set the PT_REGS pointer to the address of sigcontext's gp_regs + field. Struct pt_regs and elf_gregset_t are the same thing. + We kept the regs field for backwards compatibility with + libraries built before we extended sigcontext. */ + addi r0,r3,SIGCONTEXT_GP_REGS + std r0,SIGCONTEXT_PT_REGS(r3) + + stfd fp0,(SIGCONTEXT_FP_REGS+(PT_R0*8))(r3) + stfd fp1,(SIGCONTEXT_FP_REGS+(PT_R1*8))(r3) + stfd fp2,(SIGCONTEXT_FP_REGS+(PT_R2*8))(r3) + stfd fp3,(SIGCONTEXT_FP_REGS+(PT_R3*8))(r3) + stfd fp4,(SIGCONTEXT_FP_REGS+(PT_R4*8))(r3) + stfd fp5,(SIGCONTEXT_FP_REGS+(PT_R5*8))(r3) + stfd fp6,(SIGCONTEXT_FP_REGS+(PT_R6*8))(r3) + stfd fp7,(SIGCONTEXT_FP_REGS+(PT_R7*8))(r3) + stfd fp8,(SIGCONTEXT_FP_REGS+(PT_R8*8))(r3) + stfd fp9,(SIGCONTEXT_FP_REGS+(PT_R9*8))(r3) + stfd fp10,(SIGCONTEXT_FP_REGS+(PT_R10*8))(r3) + stfd fp11,(SIGCONTEXT_FP_REGS+(PT_R11*8))(r3) + stfd fp12,(SIGCONTEXT_FP_REGS+(PT_R12*8))(r3) + stfd fp13,(SIGCONTEXT_FP_REGS+(PT_R13*8))(r3) + stfd fp14,(SIGCONTEXT_FP_REGS+(PT_R14*8))(r3) + stfd fp15,(SIGCONTEXT_FP_REGS+(PT_R15*8))(r3) + stfd fp16,(SIGCONTEXT_FP_REGS+(PT_R16*8))(r3) + stfd fp17,(SIGCONTEXT_FP_REGS+(PT_R17*8))(r3) + stfd fp18,(SIGCONTEXT_FP_REGS+(PT_R18*8))(r3) + stfd fp19,(SIGCONTEXT_FP_REGS+(PT_R19*8))(r3) + stfd fp20,(SIGCONTEXT_FP_REGS+(PT_R20*8))(r3) + stfd fp21,(SIGCONTEXT_FP_REGS+(PT_R21*8))(r3) + stfd fp22,(SIGCONTEXT_FP_REGS+(PT_R22*8))(r3) + stfd fp23,(SIGCONTEXT_FP_REGS+(PT_R23*8))(r3) + stfd fp24,(SIGCONTEXT_FP_REGS+(PT_R24*8))(r3) + stfd fp25,(SIGCONTEXT_FP_REGS+(PT_R25*8))(r3) + stfd fp26,(SIGCONTEXT_FP_REGS+(PT_R26*8))(r3) + stfd fp27,(SIGCONTEXT_FP_REGS+(PT_R27*8))(r3) + stfd fp28,(SIGCONTEXT_FP_REGS+(PT_R28*8))(r3) + stfd fp29,(SIGCONTEXT_FP_REGS+(PT_R29*8))(r3) + mffs fp0 + stfd fp30,(SIGCONTEXT_FP_REGS+(PT_R30*8))(r3) + stfd fp31,(SIGCONTEXT_FP_REGS+(PT_R31*8))(r3) + stfd fp0,(SIGCONTEXT_FP_REGS+(32*8))(r3) + + addi r5,r3,UCONTEXT_SIGMASK + li r4,0 + li r3,SIG_BLOCK + bl JUMPTARGET(__sigprocmask) + nop + + ld r0,128+FRAME_LR_SAVE(r1) + addi r1,r1,128 + mtlr r0 + blr +PSEUDO_END(__novec_getcontext) + +compat_symbol (libc, __novec_getcontext, getcontext, GLIBC_2_3) + +#endif + + .section ".toc","aw" +.LC__dl_hwcap: +#ifdef SHARED + .tc _rtld_global_ro[TC],_rtld_global_ro +#else + .tc _dl_hwcap[TC],_dl_hwcap +#endif + .section ".text" + + .machine "altivec" +ENTRY(__getcontext) + CALL_MCOUNT 1 + std r0,(SIGCONTEXT_GP_REGS+(PT_R0*8))(r3) + std r1,(SIGCONTEXT_GP_REGS+(PT_R1*8))(r3) + mflr r0 + std r2,(SIGCONTEXT_GP_REGS+(PT_R2*8))(r3) + std r0,FRAME_LR_SAVE(r1) + cfi_offset (lr, FRAME_LR_SAVE) + std r0,(SIGCONTEXT_GP_REGS+(PT_LNK*8))(r3) + std r0,(SIGCONTEXT_GP_REGS+(PT_NIP*8))(r3) + stdu r1,-128(r1) + cfi_adjust_cfa_offset (128) + std r4,(SIGCONTEXT_GP_REGS+(PT_R4*8))(r3) + std r5,(SIGCONTEXT_GP_REGS+(PT_R5*8))(r3) + std r6,(SIGCONTEXT_GP_REGS+(PT_R6*8))(r3) + std r7,(SIGCONTEXT_GP_REGS+(PT_R7*8))(r3) + std r8,(SIGCONTEXT_GP_REGS+(PT_R8*8))(r3) + std r9,(SIGCONTEXT_GP_REGS+(PT_R9*8))(r3) + std r10,(SIGCONTEXT_GP_REGS+(PT_R10*8))(r3) + std r11,(SIGCONTEXT_GP_REGS+(PT_R11*8))(r3) + std r12,(SIGCONTEXT_GP_REGS+(PT_R12*8))(r3) + std r13,(SIGCONTEXT_GP_REGS+(PT_R13*8))(r3) + std r14,(SIGCONTEXT_GP_REGS+(PT_R14*8))(r3) + std r15,(SIGCONTEXT_GP_REGS+(PT_R15*8))(r3) + std r16,(SIGCONTEXT_GP_REGS+(PT_R16*8))(r3) + std r17,(SIGCONTEXT_GP_REGS+(PT_R17*8))(r3) + std r18,(SIGCONTEXT_GP_REGS+(PT_R18*8))(r3) + std r19,(SIGCONTEXT_GP_REGS+(PT_R19*8))(r3) + std r20,(SIGCONTEXT_GP_REGS+(PT_R20*8))(r3) + std r21,(SIGCONTEXT_GP_REGS+(PT_R21*8))(r3) + std r22,(SIGCONTEXT_GP_REGS+(PT_R22*8))(r3) + std r23,(SIGCONTEXT_GP_REGS+(PT_R23*8))(r3) + std r24,(SIGCONTEXT_GP_REGS+(PT_R24*8))(r3) + std r25,(SIGCONTEXT_GP_REGS+(PT_R25*8))(r3) + std r26,(SIGCONTEXT_GP_REGS+(PT_R26*8))(r3) + std r27,(SIGCONTEXT_GP_REGS+(PT_R27*8))(r3) + std r28,(SIGCONTEXT_GP_REGS+(PT_R28*8))(r3) + std r29,(SIGCONTEXT_GP_REGS+(PT_R29*8))(r3) + std r30,(SIGCONTEXT_GP_REGS+(PT_R30*8))(r3) + std r31,(SIGCONTEXT_GP_REGS+(PT_R31*8))(r3) + mfctr r0 + std r0,(SIGCONTEXT_GP_REGS+(PT_CTR*8))(r3) + mfxer r0 + std r0,(SIGCONTEXT_GP_REGS+(PT_XER*8))(r3) + mfcr r0 + std r0,(SIGCONTEXT_GP_REGS+(PT_CCR*8))(r3) + + /* Set the return value of swapcontext to "success". R3 is the only + register whose value is not preserved in the saved context. */ + li r0,0 + std r0,(SIGCONTEXT_GP_REGS+(PT_R3*8))(r3) + + /* Zero fill fields that can't be set in user state or are unused. */ + std r0,(SIGCONTEXT_GP_REGS+(PT_MSR*8))(r3) + std r0,(SIGCONTEXT_GP_REGS+(34*8))(r3) + std r0,(SIGCONTEXT_GP_REGS+(PT_SOFTE*8))(r3) + std r0,(SIGCONTEXT_GP_REGS+(40*8))(r3) + std r0,(SIGCONTEXT_GP_REGS+(41*8))(r3) + std r0,(SIGCONTEXT_GP_REGS+(42*8))(r3) + std r0,(SIGCONTEXT_GP_REGS+(PT_RESULT*8))(r3) + + /* Set the PT_REGS pointer to the address of sigcontext's gp_regs + field. Struct pt_regs and elf_gregset_t are the same thing. + We kept the regs field for backwards compatibility with + libraries built before we extended sigcontext. */ + addi r0,r3,SIGCONTEXT_GP_REGS + std r0,SIGCONTEXT_PT_REGS(r3) + + stfd fp0,(SIGCONTEXT_FP_REGS+(PT_R0*8))(r3) + stfd fp1,(SIGCONTEXT_FP_REGS+(PT_R1*8))(r3) + stfd fp2,(SIGCONTEXT_FP_REGS+(PT_R2*8))(r3) + stfd fp3,(SIGCONTEXT_FP_REGS+(PT_R3*8))(r3) + stfd fp4,(SIGCONTEXT_FP_REGS+(PT_R4*8))(r3) + stfd fp5,(SIGCONTEXT_FP_REGS+(PT_R5*8))(r3) + stfd fp6,(SIGCONTEXT_FP_REGS+(PT_R6*8))(r3) + stfd fp7,(SIGCONTEXT_FP_REGS+(PT_R7*8))(r3) + stfd fp8,(SIGCONTEXT_FP_REGS+(PT_R8*8))(r3) + stfd fp9,(SIGCONTEXT_FP_REGS+(PT_R9*8))(r3) + stfd fp10,(SIGCONTEXT_FP_REGS+(PT_R10*8))(r3) + stfd fp11,(SIGCONTEXT_FP_REGS+(PT_R11*8))(r3) + stfd fp12,(SIGCONTEXT_FP_REGS+(PT_R12*8))(r3) + stfd fp13,(SIGCONTEXT_FP_REGS+(PT_R13*8))(r3) + stfd fp14,(SIGCONTEXT_FP_REGS+(PT_R14*8))(r3) + stfd fp15,(SIGCONTEXT_FP_REGS+(PT_R15*8))(r3) + stfd fp16,(SIGCONTEXT_FP_REGS+(PT_R16*8))(r3) + stfd fp17,(SIGCONTEXT_FP_REGS+(PT_R17*8))(r3) + stfd fp18,(SIGCONTEXT_FP_REGS+(PT_R18*8))(r3) + stfd fp19,(SIGCONTEXT_FP_REGS+(PT_R19*8))(r3) + stfd fp20,(SIGCONTEXT_FP_REGS+(PT_R20*8))(r3) + stfd fp21,(SIGCONTEXT_FP_REGS+(PT_R21*8))(r3) + stfd fp22,(SIGCONTEXT_FP_REGS+(PT_R22*8))(r3) + stfd fp23,(SIGCONTEXT_FP_REGS+(PT_R23*8))(r3) + stfd fp24,(SIGCONTEXT_FP_REGS+(PT_R24*8))(r3) + stfd fp25,(SIGCONTEXT_FP_REGS+(PT_R25*8))(r3) + stfd fp26,(SIGCONTEXT_FP_REGS+(PT_R26*8))(r3) + stfd fp27,(SIGCONTEXT_FP_REGS+(PT_R27*8))(r3) + stfd fp28,(SIGCONTEXT_FP_REGS+(PT_R28*8))(r3) + stfd fp29,(SIGCONTEXT_FP_REGS+(PT_R29*8))(r3) + mffs fp0 + stfd fp30,(SIGCONTEXT_FP_REGS+(PT_R30*8))(r3) + stfd fp31,(SIGCONTEXT_FP_REGS+(PT_R31*8))(r3) + stfd fp0,(SIGCONTEXT_FP_REGS+(32*8))(r3) + + ld r5,.LC__dl_hwcap@toc(r2) +# ifdef SHARED +/* Load _rtld-global._dl_hwcap. */ + ld r5,RTLD_GLOBAL_RO_DL_HWCAP_OFFSET(r5) +# else + ld r5,0(r5) /* Load extern _dl_hwcap. */ +# endif + la r10,(SIGCONTEXT_V_RESERVE+8)(r3) + la r9,(SIGCONTEXT_V_RESERVE+24)(r3) + + andis. r5,r5,(PPC_FEATURE_HAS_ALTIVEC >> 16) + + clrrdi r10,r10,4 + beq L(has_no_vec) + clrrdi r9,r9,4 + mr r5,r10 /* Capture *v_regs value in r5. */ + + stvx v0,0,r10 + stvx v1,0,r9 + addi r10,r10,32 + addi r9,r9,32 + + stvx v2,0,r10 + stvx v3,0,r9 + addi r10,r10,32 + addi r9,r9,32 + + stvx v4,0,r10 + stvx v5,0,r9 + addi r10,r10,32 + addi r9,r9,32 + + stvx v6,0,r10 + stvx v7,0,r9 + addi r10,r10,32 + addi r9,r9,32 + + stvx v8,0,r10 + stvx v9,0,r9 + addi r10,r10,32 + addi r9,r9,32 + + stvx v10,0,r10 + stvx v11,0,r9 + addi r10,r10,32 + addi r9,r9,32 + + stvx v12,0,r10 + stvx v13,0,r9 + addi r10,r10,32 + addi r9,r9,32 + + stvx v14,0,r10 + stvx v15,0,r9 + addi r10,r10,32 + addi r9,r9,32 + + stvx v16,0,r10 + stvx v17,0,r9 + addi r10,r10,32 + addi r9,r9,32 + + stvx v18,0,r10 + stvx v19,0,r9 + addi r10,r10,32 + addi r9,r9,32 + + stvx v20,0,r10 + stvx v21,0,r9 + addi r10,r10,32 + addi r9,r9,32 + + stvx v22,0,r10 + stvx v23,0,r9 + addi r10,r10,32 + addi r9,r9,32 + + stvx v24,0,r10 + stvx v25,0,r9 + addi r10,r10,32 + addi r9,r9,32 + + stvx v26,0,r10 + stvx v27,0,r9 + addi r10,r10,32 + addi r9,r9,32 + + stvx v28,0,r10 + stvx v29,0,r9 + addi r10,r10,32 + addi r9,r9,32 + + stvx v30,0,r10 + stvx v31,0,r9 + addi r10,r10,32 + addi r9,r9,32 + + mfvscr v0 + mfspr r0,VRSAVE + stvx v0,0,r10 + stw r0,0(9) + +L(has_no_vec): +/* + Store either a NULL or a quadword aligned pointer to the Vector register + array into *v_regs. +*/ + std r5,(SIGCONTEXT_V_REGS_PTR)(r3) + + addi r5,r3,UCONTEXT_SIGMASK + li r4,0 + li r3,SIG_BLOCK + bl JUMPTARGET(__sigprocmask) + nop + + ld r0,128+FRAME_LR_SAVE(r1) + addi r1,r1,128 + mtlr r0 + blr +PSEUDO_END(__getcontext) + +versioned_symbol (libc, __getcontext, getcontext, GLIBC_2_3_4) diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/kernel_stat.h b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/kernel_stat.h new file mode 100644 index 0000000000..df9798b72e --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/kernel_stat.h @@ -0,0 +1,21 @@ +/* Definition of `struct stat' used in the kernel. + Copyright (C) 2002-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#define STAT_IS_KERNEL_STAT 1 +#define XSTAT_IS_XSTAT64 1 +#define STATFS_IS_STATFS64 0 diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/ld-le.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/ld-le.abilist new file mode 100644 index 0000000000..ef6159baa8 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/ld-le.abilist @@ -0,0 +1,13 @@ +GLIBC_2.17 GLIBC_2.17 A +GLIBC_2.17 __libc_stack_end D 0x8 +GLIBC_2.17 __tls_get_addr F +GLIBC_2.17 _dl_mcount F +GLIBC_2.17 _r_debug D 0x28 +GLIBC_2.17 calloc F +GLIBC_2.17 free F +GLIBC_2.17 malloc F +GLIBC_2.17 realloc F +GLIBC_2.22 GLIBC_2.22 A +GLIBC_2.22 __tls_get_addr_opt F +GLIBC_2.23 GLIBC_2.23 A +GLIBC_2.23 __parse_hwcap_and_convert_at_platform F diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/ld.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/ld.abilist new file mode 100644 index 0000000000..2c3b74cc20 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/ld.abilist @@ -0,0 +1,14 @@ +GLIBC_2.22 GLIBC_2.22 A +GLIBC_2.22 __tls_get_addr_opt F +GLIBC_2.23 GLIBC_2.23 A +GLIBC_2.23 __parse_hwcap_and_convert_at_platform F +GLIBC_2.3 GLIBC_2.3 A +GLIBC_2.3 __libc_stack_end D 0x8 +GLIBC_2.3 __tls_get_addr F +GLIBC_2.3 _dl_mcount F +GLIBC_2.3 _r_debug D 0x28 +GLIBC_2.3 calloc F +GLIBC_2.3 free F +GLIBC_2.3 malloc F +GLIBC_2.3 realloc F +GLIBC_2.4 GLIBC_2.4 A diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/ldsodefs.h b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/ldsodefs.h new file mode 100644 index 0000000000..4d7d076410 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/ldsodefs.h @@ -0,0 +1,80 @@ +/* Run-time dynamic linker data structures for loaded ELF shared objects. + Copyright (C) 2005-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#ifndef _LDSODEFS_H + +/* Get the real definitions. */ +#include_next <ldsodefs.h> + +/* Now define our stuff. */ + +#if _CALL_ELF != 2 + +static __always_inline bool +_dl_ppc64_is_opd_sym (const struct link_map *l, const ElfW(Sym) *sym) +{ + return (ELFW(ST_TYPE) (sym->st_info) == STT_FUNC + && l->l_addr + sym->st_value >= (ElfW(Addr)) l->l_ld + && l->l_addr + sym->st_value < l->l_map_end + && sym->st_size != 0); +} + +static __always_inline bool +_dl_ppc64_addr_sym_match (const struct link_map *l, const ElfW(Sym) *sym, + const ElfW(Sym) *matchsym, ElfW(Addr) addr) +{ + ElfW(Addr) value = l->l_addr + sym->st_value; + if (_dl_ppc64_is_opd_sym (l, sym)) + { + if (addr < value || addr >= value + 24) + { + value = *(ElfW(Addr) *) value; + if (addr < value || addr >= value + sym->st_size) + return false; + } + } + else if (sym->st_shndx == SHN_UNDEF || sym->st_size == 0) + { + if (addr != value) + return false; + } + else if (addr < value || addr >= value + sym->st_size) + return false; + + if (matchsym == NULL) + return true; + + ElfW(Addr) matchvalue = l->l_addr + matchsym->st_value; + if (_dl_ppc64_is_opd_sym (l, matchsym) + && (addr < matchvalue || addr > matchvalue + 24)) + matchvalue = *(ElfW(Addr) *) matchvalue; + + return matchvalue < value; +} + +/* If this is a function symbol defined past the end of our dynamic + section, then it must be a function descriptor. Allow these symbols + to match their associated function code range as well as the + descriptor addresses. */ +#undef DL_ADDR_SYM_MATCH +#define DL_ADDR_SYM_MATCH(L, SYM, MATCHSYM, ADDR) \ + _dl_ppc64_addr_sym_match (L, SYM, MATCHSYM, ADDR) + +#endif + +#endif /* ldsodefs.h */ diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libBrokenLocale-le.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libBrokenLocale-le.abilist new file mode 100644 index 0000000000..5e54974368 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libBrokenLocale-le.abilist @@ -0,0 +1,2 @@ +GLIBC_2.17 GLIBC_2.17 A +GLIBC_2.17 __ctype_get_mb_cur_max F diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libBrokenLocale.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libBrokenLocale.abilist new file mode 100644 index 0000000000..40f6e08b75 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libBrokenLocale.abilist @@ -0,0 +1,2 @@ +GLIBC_2.3 GLIBC_2.3 A +GLIBC_2.3 __ctype_get_mb_cur_max F diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libanl-le.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libanl-le.abilist new file mode 100644 index 0000000000..21330fc8d5 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libanl-le.abilist @@ -0,0 +1,5 @@ +GLIBC_2.17 GLIBC_2.17 A +GLIBC_2.17 gai_cancel F +GLIBC_2.17 gai_error F +GLIBC_2.17 gai_suspend F +GLIBC_2.17 getaddrinfo_a F diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libanl.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libanl.abilist new file mode 100644 index 0000000000..9036592d30 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libanl.abilist @@ -0,0 +1,5 @@ +GLIBC_2.3 GLIBC_2.3 A +GLIBC_2.3 gai_cancel F +GLIBC_2.3 gai_error F +GLIBC_2.3 gai_suspend F +GLIBC_2.3 getaddrinfo_a F diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist new file mode 100644 index 0000000000..443d89f663 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist @@ -0,0 +1,2193 @@ +GLIBC_2.17 GLIBC_2.17 A +GLIBC_2.17 _Exit F +GLIBC_2.17 _IO_2_1_stderr_ D 0xe0 +GLIBC_2.17 _IO_2_1_stdin_ D 0xe0 +GLIBC_2.17 _IO_2_1_stdout_ D 0xe0 +GLIBC_2.17 _IO_adjust_column F +GLIBC_2.17 _IO_adjust_wcolumn F +GLIBC_2.17 _IO_default_doallocate F +GLIBC_2.17 _IO_default_finish F +GLIBC_2.17 _IO_default_pbackfail F +GLIBC_2.17 _IO_default_uflow F +GLIBC_2.17 _IO_default_xsgetn F +GLIBC_2.17 _IO_default_xsputn F +GLIBC_2.17 _IO_do_write F +GLIBC_2.17 _IO_doallocbuf F +GLIBC_2.17 _IO_fclose F +GLIBC_2.17 _IO_fdopen F +GLIBC_2.17 _IO_feof F +GLIBC_2.17 _IO_ferror F +GLIBC_2.17 _IO_fflush F +GLIBC_2.17 _IO_fgetpos F +GLIBC_2.17 _IO_fgetpos64 F +GLIBC_2.17 _IO_fgets F +GLIBC_2.17 _IO_file_attach F +GLIBC_2.17 _IO_file_close F +GLIBC_2.17 _IO_file_close_it F +GLIBC_2.17 _IO_file_doallocate F +GLIBC_2.17 _IO_file_finish F +GLIBC_2.17 _IO_file_fopen F +GLIBC_2.17 _IO_file_init F +GLIBC_2.17 _IO_file_jumps D 0xa8 +GLIBC_2.17 _IO_file_open F +GLIBC_2.17 _IO_file_overflow F +GLIBC_2.17 _IO_file_read F +GLIBC_2.17 _IO_file_seek F +GLIBC_2.17 _IO_file_seekoff F +GLIBC_2.17 _IO_file_setbuf F +GLIBC_2.17 _IO_file_stat F +GLIBC_2.17 _IO_file_sync F +GLIBC_2.17 _IO_file_underflow F +GLIBC_2.17 _IO_file_write F +GLIBC_2.17 _IO_file_xsputn F +GLIBC_2.17 _IO_flockfile F +GLIBC_2.17 _IO_flush_all F +GLIBC_2.17 _IO_flush_all_linebuffered F +GLIBC_2.17 _IO_fopen F +GLIBC_2.17 _IO_fprintf F +GLIBC_2.17 _IO_fputs F +GLIBC_2.17 _IO_fread F +GLIBC_2.17 _IO_free_backup_area F +GLIBC_2.17 _IO_free_wbackup_area F +GLIBC_2.17 _IO_fsetpos F +GLIBC_2.17 _IO_fsetpos64 F +GLIBC_2.17 _IO_ftell F +GLIBC_2.17 _IO_ftrylockfile F +GLIBC_2.17 _IO_funlockfile F +GLIBC_2.17 _IO_fwrite F +GLIBC_2.17 _IO_getc F +GLIBC_2.17 _IO_getline F +GLIBC_2.17 _IO_getline_info F +GLIBC_2.17 _IO_gets F +GLIBC_2.17 _IO_init F +GLIBC_2.17 _IO_init_marker F +GLIBC_2.17 _IO_init_wmarker F +GLIBC_2.17 _IO_iter_begin F +GLIBC_2.17 _IO_iter_end F +GLIBC_2.17 _IO_iter_file F +GLIBC_2.17 _IO_iter_next F +GLIBC_2.17 _IO_least_wmarker F +GLIBC_2.17 _IO_link_in F +GLIBC_2.17 _IO_list_all D 0x8 +GLIBC_2.17 _IO_list_lock F +GLIBC_2.17 _IO_list_resetlock F +GLIBC_2.17 _IO_list_unlock F +GLIBC_2.17 _IO_marker_delta F +GLIBC_2.17 _IO_marker_difference F +GLIBC_2.17 _IO_padn F +GLIBC_2.17 _IO_peekc_locked F +GLIBC_2.17 _IO_popen F +GLIBC_2.17 _IO_printf F +GLIBC_2.17 _IO_proc_close F +GLIBC_2.17 _IO_proc_open F +GLIBC_2.17 _IO_putc F +GLIBC_2.17 _IO_puts F +GLIBC_2.17 _IO_remove_marker F +GLIBC_2.17 _IO_seekmark F +GLIBC_2.17 _IO_seekoff F +GLIBC_2.17 _IO_seekpos F +GLIBC_2.17 _IO_seekwmark F +GLIBC_2.17 _IO_setb F +GLIBC_2.17 _IO_setbuffer F +GLIBC_2.17 _IO_setvbuf F +GLIBC_2.17 _IO_sgetn F +GLIBC_2.17 _IO_sprintf F +GLIBC_2.17 _IO_sputbackc F +GLIBC_2.17 _IO_sputbackwc F +GLIBC_2.17 _IO_sscanf F +GLIBC_2.17 _IO_str_init_readonly F +GLIBC_2.17 _IO_str_init_static F +GLIBC_2.17 _IO_str_overflow F +GLIBC_2.17 _IO_str_pbackfail F +GLIBC_2.17 _IO_str_seekoff F +GLIBC_2.17 _IO_str_underflow F +GLIBC_2.17 _IO_sungetc F +GLIBC_2.17 _IO_sungetwc F +GLIBC_2.17 _IO_switch_to_get_mode F +GLIBC_2.17 _IO_switch_to_main_wget_area F +GLIBC_2.17 _IO_switch_to_wbackup_area F +GLIBC_2.17 _IO_switch_to_wget_mode F +GLIBC_2.17 _IO_un_link F +GLIBC_2.17 _IO_ungetc F +GLIBC_2.17 _IO_unsave_markers F +GLIBC_2.17 _IO_unsave_wmarkers F +GLIBC_2.17 _IO_vfprintf F +GLIBC_2.17 _IO_vfscanf F +GLIBC_2.17 _IO_vsprintf F +GLIBC_2.17 _IO_wdefault_doallocate F +GLIBC_2.17 _IO_wdefault_finish F +GLIBC_2.17 _IO_wdefault_pbackfail F +GLIBC_2.17 _IO_wdefault_uflow F +GLIBC_2.17 _IO_wdefault_xsgetn F +GLIBC_2.17 _IO_wdefault_xsputn F +GLIBC_2.17 _IO_wdo_write F +GLIBC_2.17 _IO_wdoallocbuf F +GLIBC_2.17 _IO_wfile_jumps D 0xa8 +GLIBC_2.17 _IO_wfile_overflow F +GLIBC_2.17 _IO_wfile_seekoff F +GLIBC_2.17 _IO_wfile_sync F +GLIBC_2.17 _IO_wfile_underflow F +GLIBC_2.17 _IO_wfile_xsputn F +GLIBC_2.17 _IO_wmarker_delta F +GLIBC_2.17 _IO_wsetb F +GLIBC_2.17 __adjtimex F +GLIBC_2.17 __after_morecore_hook D 0x8 +GLIBC_2.17 __argz_count F +GLIBC_2.17 __argz_next F +GLIBC_2.17 __argz_stringify F +GLIBC_2.17 __asprintf F +GLIBC_2.17 __asprintf_chk F +GLIBC_2.17 __assert F +GLIBC_2.17 __assert_fail F +GLIBC_2.17 __assert_perror_fail F +GLIBC_2.17 __backtrace F +GLIBC_2.17 __backtrace_symbols F +GLIBC_2.17 __backtrace_symbols_fd F +GLIBC_2.17 __bsd_getpgrp F +GLIBC_2.17 __bzero F +GLIBC_2.17 __check_rhosts_file D 0x4 +GLIBC_2.17 __chk_fail F +GLIBC_2.17 __clone F +GLIBC_2.17 __close F +GLIBC_2.17 __cmsg_nxthdr F +GLIBC_2.17 __confstr_chk F +GLIBC_2.17 __connect F +GLIBC_2.17 __ctype_b_loc F +GLIBC_2.17 __ctype_get_mb_cur_max F +GLIBC_2.17 __ctype_tolower_loc F +GLIBC_2.17 __ctype_toupper_loc F +GLIBC_2.17 __curbrk D 0x8 +GLIBC_2.17 __cxa_at_quick_exit F +GLIBC_2.17 __cxa_atexit F +GLIBC_2.17 __cxa_finalize F +GLIBC_2.17 __cyg_profile_func_enter F +GLIBC_2.17 __cyg_profile_func_exit F +GLIBC_2.17 __daylight D 0x4 +GLIBC_2.17 __dcgettext F +GLIBC_2.17 __default_morecore F +GLIBC_2.17 __dgettext F +GLIBC_2.17 __dprintf_chk F +GLIBC_2.17 __dup2 F +GLIBC_2.17 __duplocale F +GLIBC_2.17 __endmntent F +GLIBC_2.17 __environ D 0x8 +GLIBC_2.17 __errno_location F +GLIBC_2.17 __fbufsize F +GLIBC_2.17 __fcntl F +GLIBC_2.17 __fdelt_chk F +GLIBC_2.17 __fdelt_warn F +GLIBC_2.17 __ffs F +GLIBC_2.17 __fgets_chk F +GLIBC_2.17 __fgets_unlocked_chk F +GLIBC_2.17 __fgetws_chk F +GLIBC_2.17 __fgetws_unlocked_chk F +GLIBC_2.17 __finite F +GLIBC_2.17 __finitef F +GLIBC_2.17 __finitel F +GLIBC_2.17 __flbf F +GLIBC_2.17 __fork F +GLIBC_2.17 __fpending F +GLIBC_2.17 __fprintf_chk F +GLIBC_2.17 __fpu_control D 0x4 +GLIBC_2.17 __fpurge F +GLIBC_2.17 __fread_chk F +GLIBC_2.17 __fread_unlocked_chk F +GLIBC_2.17 __freadable F +GLIBC_2.17 __freading F +GLIBC_2.17 __free_hook D 0x8 +GLIBC_2.17 __freelocale F +GLIBC_2.17 __fsetlocking F +GLIBC_2.17 __fwprintf_chk F +GLIBC_2.17 __fwritable F +GLIBC_2.17 __fwriting F +GLIBC_2.17 __fxstat F +GLIBC_2.17 __fxstat64 F +GLIBC_2.17 __fxstatat F +GLIBC_2.17 __fxstatat64 F +GLIBC_2.17 __getauxval F +GLIBC_2.17 __getcwd_chk F +GLIBC_2.17 __getdelim F +GLIBC_2.17 __getdomainname_chk F +GLIBC_2.17 __getgroups_chk F +GLIBC_2.17 __gethostname_chk F +GLIBC_2.17 __getlogin_r_chk F +GLIBC_2.17 __getmntent_r F +GLIBC_2.17 __getpagesize F +GLIBC_2.17 __getpgid F +GLIBC_2.17 __getpid F +GLIBC_2.17 __gets_chk F +GLIBC_2.17 __gettimeofday F +GLIBC_2.17 __getwd_chk F +GLIBC_2.17 __gmtime_r F +GLIBC_2.17 __h_errno_location F +GLIBC_2.17 __isalnum_l F +GLIBC_2.17 __isalpha_l F +GLIBC_2.17 __isascii_l F +GLIBC_2.17 __isblank_l F +GLIBC_2.17 __iscntrl_l F +GLIBC_2.17 __isctype F +GLIBC_2.17 __isdigit_l F +GLIBC_2.17 __isgraph_l F +GLIBC_2.17 __isinf F +GLIBC_2.17 __isinff F +GLIBC_2.17 __isinfl F +GLIBC_2.17 __islower_l F +GLIBC_2.17 __isnan F +GLIBC_2.17 __isnanf F +GLIBC_2.17 __isnanl F +GLIBC_2.17 __isoc99_fscanf F +GLIBC_2.17 __isoc99_fwscanf F +GLIBC_2.17 __isoc99_scanf F +GLIBC_2.17 __isoc99_sscanf F +GLIBC_2.17 __isoc99_swscanf F +GLIBC_2.17 __isoc99_vfscanf F +GLIBC_2.17 __isoc99_vfwscanf F +GLIBC_2.17 __isoc99_vscanf F +GLIBC_2.17 __isoc99_vsscanf F +GLIBC_2.17 __isoc99_vswscanf F +GLIBC_2.17 __isoc99_vwscanf F +GLIBC_2.17 __isoc99_wscanf F +GLIBC_2.17 __isprint_l F +GLIBC_2.17 __ispunct_l F +GLIBC_2.17 __isspace_l F +GLIBC_2.17 __isupper_l F +GLIBC_2.17 __iswalnum_l F +GLIBC_2.17 __iswalpha_l F +GLIBC_2.17 __iswblank_l F +GLIBC_2.17 __iswcntrl_l F +GLIBC_2.17 __iswctype F +GLIBC_2.17 __iswctype_l F +GLIBC_2.17 __iswdigit_l F +GLIBC_2.17 __iswgraph_l F +GLIBC_2.17 __iswlower_l F +GLIBC_2.17 __iswprint_l F +GLIBC_2.17 __iswpunct_l F +GLIBC_2.17 __iswspace_l F +GLIBC_2.17 __iswupper_l F +GLIBC_2.17 __iswxdigit_l F +GLIBC_2.17 __isxdigit_l F +GLIBC_2.17 __ivaliduser F +GLIBC_2.17 __key_decryptsession_pk_LOCAL D 0x8 +GLIBC_2.17 __key_encryptsession_pk_LOCAL D 0x8 +GLIBC_2.17 __key_gendes_LOCAL D 0x8 +GLIBC_2.17 __libc_allocate_rtsig F +GLIBC_2.17 __libc_calloc F +GLIBC_2.17 __libc_current_sigrtmax F +GLIBC_2.17 __libc_current_sigrtmin F +GLIBC_2.17 __libc_free F +GLIBC_2.17 __libc_freeres F +GLIBC_2.17 __libc_init_first F +GLIBC_2.17 __libc_mallinfo F +GLIBC_2.17 __libc_malloc F +GLIBC_2.17 __libc_mallopt F +GLIBC_2.17 __libc_memalign F +GLIBC_2.17 __libc_pvalloc F +GLIBC_2.17 __libc_realloc F +GLIBC_2.17 __libc_sa_len F +GLIBC_2.17 __libc_start_main F +GLIBC_2.17 __libc_valloc F +GLIBC_2.17 __longjmp_chk F +GLIBC_2.17 __lseek F +GLIBC_2.17 __lxstat F +GLIBC_2.17 __lxstat64 F +GLIBC_2.17 __malloc_hook D 0x8 +GLIBC_2.17 __malloc_initialize_hook D 0x8 +GLIBC_2.17 __mbrlen F +GLIBC_2.17 __mbrtowc F +GLIBC_2.17 __mbsnrtowcs_chk F +GLIBC_2.17 __mbsrtowcs_chk F +GLIBC_2.17 __mbstowcs_chk F +GLIBC_2.17 __memalign_hook D 0x8 +GLIBC_2.17 __memcpy_chk F +GLIBC_2.17 __memmove_chk F +GLIBC_2.17 __mempcpy F +GLIBC_2.17 __mempcpy_chk F +GLIBC_2.17 __mempcpy_small F +GLIBC_2.17 __memset_chk F +GLIBC_2.17 __monstartup F +GLIBC_2.17 __morecore D 0x8 +GLIBC_2.17 __nanosleep F +GLIBC_2.17 __newlocale F +GLIBC_2.17 __nl_langinfo_l F +GLIBC_2.17 __nldbl__IO_fprintf F +GLIBC_2.17 __nldbl__IO_printf F +GLIBC_2.17 __nldbl__IO_sprintf F +GLIBC_2.17 __nldbl__IO_sscanf F +GLIBC_2.17 __nldbl__IO_vfprintf F +GLIBC_2.17 __nldbl__IO_vfscanf F +GLIBC_2.17 __nldbl__IO_vsprintf F +GLIBC_2.17 __nldbl___asprintf F +GLIBC_2.17 __nldbl___asprintf_chk F +GLIBC_2.17 __nldbl___dprintf_chk F +GLIBC_2.17 __nldbl___fprintf_chk F +GLIBC_2.17 __nldbl___fwprintf_chk F +GLIBC_2.17 __nldbl___isoc99_fscanf F +GLIBC_2.17 __nldbl___isoc99_fwscanf F +GLIBC_2.17 __nldbl___isoc99_scanf F +GLIBC_2.17 __nldbl___isoc99_sscanf F +GLIBC_2.17 __nldbl___isoc99_swscanf F +GLIBC_2.17 __nldbl___isoc99_vfscanf F +GLIBC_2.17 __nldbl___isoc99_vfwscanf F +GLIBC_2.17 __nldbl___isoc99_vscanf F +GLIBC_2.17 __nldbl___isoc99_vsscanf F +GLIBC_2.17 __nldbl___isoc99_vswscanf F +GLIBC_2.17 __nldbl___isoc99_vwscanf F +GLIBC_2.17 __nldbl___isoc99_wscanf F +GLIBC_2.17 __nldbl___obstack_printf_chk F +GLIBC_2.17 __nldbl___obstack_vprintf_chk F +GLIBC_2.17 __nldbl___printf_chk F +GLIBC_2.17 __nldbl___printf_fp F +GLIBC_2.17 __nldbl___snprintf_chk F +GLIBC_2.17 __nldbl___sprintf_chk F +GLIBC_2.17 __nldbl___strfmon_l F +GLIBC_2.17 __nldbl___swprintf_chk F +GLIBC_2.17 __nldbl___syslog_chk F +GLIBC_2.17 __nldbl___vasprintf_chk F +GLIBC_2.17 __nldbl___vdprintf_chk F +GLIBC_2.17 __nldbl___vfprintf_chk F +GLIBC_2.17 __nldbl___vfscanf F +GLIBC_2.17 __nldbl___vfwprintf_chk F +GLIBC_2.17 __nldbl___vprintf_chk F +GLIBC_2.17 __nldbl___vsnprintf F +GLIBC_2.17 __nldbl___vsnprintf_chk F +GLIBC_2.17 __nldbl___vsprintf_chk F +GLIBC_2.17 __nldbl___vsscanf F +GLIBC_2.17 __nldbl___vstrfmon F +GLIBC_2.17 __nldbl___vstrfmon_l F +GLIBC_2.17 __nldbl___vswprintf_chk F +GLIBC_2.17 __nldbl___vsyslog_chk F +GLIBC_2.17 __nldbl___vwprintf_chk F +GLIBC_2.17 __nldbl___wprintf_chk F +GLIBC_2.17 __nldbl_asprintf F +GLIBC_2.17 __nldbl_dprintf F +GLIBC_2.17 __nldbl_fprintf F +GLIBC_2.17 __nldbl_fscanf F +GLIBC_2.17 __nldbl_fwprintf F +GLIBC_2.17 __nldbl_fwscanf F +GLIBC_2.17 __nldbl_obstack_printf F +GLIBC_2.17 __nldbl_obstack_vprintf F +GLIBC_2.17 __nldbl_printf F +GLIBC_2.17 __nldbl_printf_size F +GLIBC_2.17 __nldbl_scanf F +GLIBC_2.17 __nldbl_snprintf F +GLIBC_2.17 __nldbl_sprintf F +GLIBC_2.17 __nldbl_sscanf F +GLIBC_2.17 __nldbl_strfmon F +GLIBC_2.17 __nldbl_strfmon_l F +GLIBC_2.17 __nldbl_swprintf F +GLIBC_2.17 __nldbl_swscanf F +GLIBC_2.17 __nldbl_syslog F +GLIBC_2.17 __nldbl_vasprintf F +GLIBC_2.17 __nldbl_vdprintf F +GLIBC_2.17 __nldbl_vfprintf F +GLIBC_2.17 __nldbl_vfscanf F +GLIBC_2.17 __nldbl_vfwprintf F +GLIBC_2.17 __nldbl_vfwscanf F +GLIBC_2.17 __nldbl_vprintf F +GLIBC_2.17 __nldbl_vscanf F +GLIBC_2.17 __nldbl_vsnprintf F +GLIBC_2.17 __nldbl_vsprintf F +GLIBC_2.17 __nldbl_vsscanf F +GLIBC_2.17 __nldbl_vswprintf F +GLIBC_2.17 __nldbl_vswscanf F +GLIBC_2.17 __nldbl_vsyslog F +GLIBC_2.17 __nldbl_vwprintf F +GLIBC_2.17 __nldbl_vwscanf F +GLIBC_2.17 __nldbl_wprintf F +GLIBC_2.17 __nldbl_wscanf F +GLIBC_2.17 __nss_configure_lookup F +GLIBC_2.17 __nss_database_lookup F +GLIBC_2.17 __nss_group_lookup F +GLIBC_2.17 __nss_hostname_digits_dots F +GLIBC_2.17 __nss_hosts_lookup F +GLIBC_2.17 __nss_next F +GLIBC_2.17 __nss_passwd_lookup F +GLIBC_2.17 __obstack_printf_chk F +GLIBC_2.17 __obstack_vprintf_chk F +GLIBC_2.17 __open F +GLIBC_2.17 __open64 F +GLIBC_2.17 __open64_2 F +GLIBC_2.17 __open_2 F +GLIBC_2.17 __openat64_2 F +GLIBC_2.17 __openat_2 F +GLIBC_2.17 __overflow F +GLIBC_2.17 __pipe F +GLIBC_2.17 __poll F +GLIBC_2.17 __poll_chk F +GLIBC_2.17 __posix_getopt F +GLIBC_2.17 __ppc_get_timebase_freq F +GLIBC_2.17 __ppoll_chk F +GLIBC_2.17 __pread64 F +GLIBC_2.17 __pread64_chk F +GLIBC_2.17 __pread_chk F +GLIBC_2.17 __printf_chk F +GLIBC_2.17 __printf_fp F +GLIBC_2.17 __profile_frequency F +GLIBC_2.17 __progname D 0x8 +GLIBC_2.17 __progname_full D 0x8 +GLIBC_2.17 __ptsname_r_chk F +GLIBC_2.17 __pwrite64 F +GLIBC_2.17 __rawmemchr F +GLIBC_2.17 __rcmd_errstr D 0x8 +GLIBC_2.17 __read F +GLIBC_2.17 __read_chk F +GLIBC_2.17 __readlink_chk F +GLIBC_2.17 __readlinkat_chk F +GLIBC_2.17 __realloc_hook D 0x8 +GLIBC_2.17 __realpath_chk F +GLIBC_2.17 __recv_chk F +GLIBC_2.17 __recvfrom_chk F +GLIBC_2.17 __register_atfork F +GLIBC_2.17 __res_init F +GLIBC_2.17 __res_nclose F +GLIBC_2.17 __res_ninit F +GLIBC_2.17 __res_randomid F +GLIBC_2.17 __res_state F +GLIBC_2.17 __rpc_thread_createerr F +GLIBC_2.17 __rpc_thread_svc_fdset F +GLIBC_2.17 __rpc_thread_svc_max_pollfd F +GLIBC_2.17 __rpc_thread_svc_pollfd F +GLIBC_2.17 __sbrk F +GLIBC_2.17 __sched_cpualloc F +GLIBC_2.17 __sched_cpucount F +GLIBC_2.17 __sched_cpufree F +GLIBC_2.17 __sched_get_priority_max F +GLIBC_2.17 __sched_get_priority_min F +GLIBC_2.17 __sched_getparam F +GLIBC_2.17 __sched_getscheduler F +GLIBC_2.17 __sched_setscheduler F +GLIBC_2.17 __sched_yield F +GLIBC_2.17 __select F +GLIBC_2.17 __send F +GLIBC_2.17 __setmntent F +GLIBC_2.17 __setpgid F +GLIBC_2.17 __sigaction F +GLIBC_2.17 __sigaddset F +GLIBC_2.17 __sigdelset F +GLIBC_2.17 __sigismember F +GLIBC_2.17 __signbit F +GLIBC_2.17 __signbitf F +GLIBC_2.17 __signbitl F +GLIBC_2.17 __sigpause F +GLIBC_2.17 __sigsetjmp F +GLIBC_2.17 __sigsuspend F +GLIBC_2.17 __snprintf_chk F +GLIBC_2.17 __sprintf_chk F +GLIBC_2.17 __stack_chk_fail F +GLIBC_2.17 __statfs F +GLIBC_2.17 __stpcpy F +GLIBC_2.17 __stpcpy_chk F +GLIBC_2.17 __stpcpy_small F +GLIBC_2.17 __stpncpy F +GLIBC_2.17 __stpncpy_chk F +GLIBC_2.17 __strcasecmp F +GLIBC_2.17 __strcasecmp_l F +GLIBC_2.17 __strcasestr F +GLIBC_2.17 __strcat_chk F +GLIBC_2.17 __strcoll_l F +GLIBC_2.17 __strcpy_chk F +GLIBC_2.17 __strcpy_small F +GLIBC_2.17 __strcspn_c1 F +GLIBC_2.17 __strcspn_c2 F +GLIBC_2.17 __strcspn_c3 F +GLIBC_2.17 __strdup F +GLIBC_2.17 __strerror_r F +GLIBC_2.17 __strfmon_l F +GLIBC_2.17 __strftime_l F +GLIBC_2.17 __strncasecmp_l F +GLIBC_2.17 __strncat_chk F +GLIBC_2.17 __strncpy_chk F +GLIBC_2.17 __strndup F +GLIBC_2.17 __strpbrk_c2 F +GLIBC_2.17 __strpbrk_c3 F +GLIBC_2.17 __strsep_1c F +GLIBC_2.17 __strsep_2c F +GLIBC_2.17 __strsep_3c F +GLIBC_2.17 __strsep_g F +GLIBC_2.17 __strspn_c1 F +GLIBC_2.17 __strspn_c2 F +GLIBC_2.17 __strspn_c3 F +GLIBC_2.17 __strtod_internal F +GLIBC_2.17 __strtod_l F +GLIBC_2.17 __strtof_internal F +GLIBC_2.17 __strtof_l F +GLIBC_2.17 __strtok_r F +GLIBC_2.17 __strtok_r_1c F +GLIBC_2.17 __strtol_internal F +GLIBC_2.17 __strtol_l F +GLIBC_2.17 __strtold_internal F +GLIBC_2.17 __strtold_l F +GLIBC_2.17 __strtoll_internal F +GLIBC_2.17 __strtoll_l F +GLIBC_2.17 __strtoul_internal F +GLIBC_2.17 __strtoul_l F +GLIBC_2.17 __strtoull_internal F +GLIBC_2.17 __strtoull_l F +GLIBC_2.17 __strverscmp F +GLIBC_2.17 __strxfrm_l F +GLIBC_2.17 __swprintf_chk F +GLIBC_2.17 __sysconf F +GLIBC_2.17 __sysctl F +GLIBC_2.17 __syslog_chk F +GLIBC_2.17 __sysv_signal F +GLIBC_2.17 __timezone D 0x8 +GLIBC_2.17 __toascii_l F +GLIBC_2.17 __tolower_l F +GLIBC_2.17 __toupper_l F +GLIBC_2.17 __towctrans F +GLIBC_2.17 __towctrans_l F +GLIBC_2.17 __towlower_l F +GLIBC_2.17 __towupper_l F +GLIBC_2.17 __ttyname_r_chk F +GLIBC_2.17 __tzname D 0x10 +GLIBC_2.17 __uflow F +GLIBC_2.17 __underflow F +GLIBC_2.17 __uselocale F +GLIBC_2.17 __vasprintf_chk F +GLIBC_2.17 __vdprintf_chk F +GLIBC_2.17 __vfork F +GLIBC_2.17 __vfprintf_chk F +GLIBC_2.17 __vfscanf F +GLIBC_2.17 __vfwprintf_chk F +GLIBC_2.17 __vprintf_chk F +GLIBC_2.17 __vsnprintf F +GLIBC_2.17 __vsnprintf_chk F +GLIBC_2.17 __vsprintf_chk F +GLIBC_2.17 __vsscanf F +GLIBC_2.17 __vswprintf_chk F +GLIBC_2.17 __vsyslog_chk F +GLIBC_2.17 __vwprintf_chk F +GLIBC_2.17 __wait F +GLIBC_2.17 __waitpid F +GLIBC_2.17 __wcpcpy_chk F +GLIBC_2.17 __wcpncpy_chk F +GLIBC_2.17 __wcrtomb_chk F +GLIBC_2.17 __wcscasecmp_l F +GLIBC_2.17 __wcscat_chk F +GLIBC_2.17 __wcscoll_l F +GLIBC_2.17 __wcscpy_chk F +GLIBC_2.17 __wcsftime_l F +GLIBC_2.17 __wcsncasecmp_l F +GLIBC_2.17 __wcsncat_chk F +GLIBC_2.17 __wcsncpy_chk F +GLIBC_2.17 __wcsnrtombs_chk F +GLIBC_2.17 __wcsrtombs_chk F +GLIBC_2.17 __wcstod_internal F +GLIBC_2.17 __wcstod_l F +GLIBC_2.17 __wcstof_internal F +GLIBC_2.17 __wcstof_l F +GLIBC_2.17 __wcstol_internal F +GLIBC_2.17 __wcstol_l F +GLIBC_2.17 __wcstold_internal F +GLIBC_2.17 __wcstold_l F +GLIBC_2.17 __wcstoll_internal F +GLIBC_2.17 __wcstoll_l F +GLIBC_2.17 __wcstombs_chk F +GLIBC_2.17 __wcstoul_internal F +GLIBC_2.17 __wcstoul_l F +GLIBC_2.17 __wcstoull_internal F +GLIBC_2.17 __wcstoull_l F +GLIBC_2.17 __wcsxfrm_l F +GLIBC_2.17 __wctomb_chk F +GLIBC_2.17 __wctrans_l F +GLIBC_2.17 __wctype_l F +GLIBC_2.17 __wmemcpy_chk F +GLIBC_2.17 __wmemmove_chk F +GLIBC_2.17 __wmempcpy_chk F +GLIBC_2.17 __wmemset_chk F +GLIBC_2.17 __woverflow F +GLIBC_2.17 __wprintf_chk F +GLIBC_2.17 __write F +GLIBC_2.17 __wuflow F +GLIBC_2.17 __wunderflow F +GLIBC_2.17 __xmknod F +GLIBC_2.17 __xmknodat F +GLIBC_2.17 __xpg_basename F +GLIBC_2.17 __xpg_sigpause F +GLIBC_2.17 __xpg_strerror_r F +GLIBC_2.17 __xstat F +GLIBC_2.17 __xstat64 F +GLIBC_2.17 _authenticate F +GLIBC_2.17 _dl_mcount_wrapper F +GLIBC_2.17 _dl_mcount_wrapper_check F +GLIBC_2.17 _environ D 0x8 +GLIBC_2.17 _exit F +GLIBC_2.17 _flushlbf F +GLIBC_2.17 _libc_intl_domainname D 0x5 +GLIBC_2.17 _longjmp F +GLIBC_2.17 _mcleanup F +GLIBC_2.17 _mcount F +GLIBC_2.17 _nl_default_dirname D 0x12 +GLIBC_2.17 _nl_domain_bindings D 0x8 +GLIBC_2.17 _nl_msg_cat_cntr D 0x4 +GLIBC_2.17 _null_auth D 0x18 +GLIBC_2.17 _obstack_allocated_p F +GLIBC_2.17 _obstack_begin F +GLIBC_2.17 _obstack_begin_1 F +GLIBC_2.17 _obstack_free F +GLIBC_2.17 _obstack_memory_used F +GLIBC_2.17 _obstack_newchunk F +GLIBC_2.17 _res D 0x238 +GLIBC_2.17 _res_hconf D 0x48 +GLIBC_2.17 _rpc_dtablesize F +GLIBC_2.17 _seterr_reply F +GLIBC_2.17 _setjmp F +GLIBC_2.17 _sys_errlist D 0x438 +GLIBC_2.17 _sys_nerr D 0x4 +GLIBC_2.17 _sys_siglist D 0x208 +GLIBC_2.17 _tolower F +GLIBC_2.17 _toupper F +GLIBC_2.17 a64l F +GLIBC_2.17 abort F +GLIBC_2.17 abs F +GLIBC_2.17 accept F +GLIBC_2.17 accept4 F +GLIBC_2.17 access F +GLIBC_2.17 acct F +GLIBC_2.17 addmntent F +GLIBC_2.17 addseverity F +GLIBC_2.17 adjtime F +GLIBC_2.17 adjtimex F +GLIBC_2.17 advance F +GLIBC_2.17 alarm F +GLIBC_2.17 aligned_alloc F +GLIBC_2.17 alphasort F +GLIBC_2.17 alphasort64 F +GLIBC_2.17 argp_err_exit_status D 0x4 +GLIBC_2.17 argp_error F +GLIBC_2.17 argp_failure F +GLIBC_2.17 argp_help F +GLIBC_2.17 argp_parse F +GLIBC_2.17 argp_program_bug_address D 0x8 +GLIBC_2.17 argp_program_version D 0x8 +GLIBC_2.17 argp_program_version_hook D 0x8 +GLIBC_2.17 argp_state_help F +GLIBC_2.17 argp_usage F +GLIBC_2.17 argz_add F +GLIBC_2.17 argz_add_sep F +GLIBC_2.17 argz_append F +GLIBC_2.17 argz_count F +GLIBC_2.17 argz_create F +GLIBC_2.17 argz_create_sep F +GLIBC_2.17 argz_delete F +GLIBC_2.17 argz_extract F +GLIBC_2.17 argz_insert F +GLIBC_2.17 argz_next F +GLIBC_2.17 argz_replace F +GLIBC_2.17 argz_stringify F +GLIBC_2.17 asctime F +GLIBC_2.17 asctime_r F +GLIBC_2.17 asprintf F +GLIBC_2.17 atof F +GLIBC_2.17 atoi F +GLIBC_2.17 atol F +GLIBC_2.17 atoll F +GLIBC_2.17 authdes_create F +GLIBC_2.17 authdes_getucred F +GLIBC_2.17 authdes_pk_create F +GLIBC_2.17 authnone_create F +GLIBC_2.17 authunix_create F +GLIBC_2.17 authunix_create_default F +GLIBC_2.17 backtrace F +GLIBC_2.17 backtrace_symbols F +GLIBC_2.17 backtrace_symbols_fd F +GLIBC_2.17 basename F +GLIBC_2.17 bcmp F +GLIBC_2.17 bcopy F +GLIBC_2.17 bdflush F +GLIBC_2.17 bind F +GLIBC_2.17 bind_textdomain_codeset F +GLIBC_2.17 bindresvport F +GLIBC_2.17 bindtextdomain F +GLIBC_2.17 brk F +GLIBC_2.17 bsd_signal F +GLIBC_2.17 bsearch F +GLIBC_2.17 btowc F +GLIBC_2.17 bzero F +GLIBC_2.17 c16rtomb F +GLIBC_2.17 c32rtomb F +GLIBC_2.17 calloc F +GLIBC_2.17 callrpc F +GLIBC_2.17 canonicalize_file_name F +GLIBC_2.17 capget F +GLIBC_2.17 capset F +GLIBC_2.17 catclose F +GLIBC_2.17 catgets F +GLIBC_2.17 catopen F +GLIBC_2.17 cbc_crypt F +GLIBC_2.17 cfgetispeed F +GLIBC_2.17 cfgetospeed F +GLIBC_2.17 cfmakeraw F +GLIBC_2.17 cfree F +GLIBC_2.17 cfsetispeed F +GLIBC_2.17 cfsetospeed F +GLIBC_2.17 cfsetspeed F +GLIBC_2.17 chdir F +GLIBC_2.17 chflags F +GLIBC_2.17 chmod F +GLIBC_2.17 chown F +GLIBC_2.17 chroot F +GLIBC_2.17 clearenv F +GLIBC_2.17 clearerr F +GLIBC_2.17 clearerr_unlocked F +GLIBC_2.17 clnt_broadcast F +GLIBC_2.17 clnt_create F +GLIBC_2.17 clnt_pcreateerror F +GLIBC_2.17 clnt_perrno F +GLIBC_2.17 clnt_perror F +GLIBC_2.17 clnt_spcreateerror F +GLIBC_2.17 clnt_sperrno F +GLIBC_2.17 clnt_sperror F +GLIBC_2.17 clntraw_create F +GLIBC_2.17 clnttcp_create F +GLIBC_2.17 clntudp_bufcreate F +GLIBC_2.17 clntudp_create F +GLIBC_2.17 clntunix_create F +GLIBC_2.17 clock F +GLIBC_2.17 clock_adjtime F +GLIBC_2.17 clock_getcpuclockid F +GLIBC_2.17 clock_getres F +GLIBC_2.17 clock_gettime F +GLIBC_2.17 clock_nanosleep F +GLIBC_2.17 clock_settime F +GLIBC_2.17 clone F +GLIBC_2.17 close F +GLIBC_2.17 closedir F +GLIBC_2.17 closelog F +GLIBC_2.17 confstr F +GLIBC_2.17 connect F +GLIBC_2.17 copysign F +GLIBC_2.17 copysignf F +GLIBC_2.17 copysignl F +GLIBC_2.17 creat F +GLIBC_2.17 creat64 F +GLIBC_2.17 create_module F +GLIBC_2.17 ctermid F +GLIBC_2.17 ctime F +GLIBC_2.17 ctime_r F +GLIBC_2.17 cuserid F +GLIBC_2.17 daemon F +GLIBC_2.17 daylight D 0x4 +GLIBC_2.17 dcgettext F +GLIBC_2.17 dcngettext F +GLIBC_2.17 delete_module F +GLIBC_2.17 des_setparity F +GLIBC_2.17 dgettext F +GLIBC_2.17 difftime F +GLIBC_2.17 dirfd F +GLIBC_2.17 dirname F +GLIBC_2.17 div F +GLIBC_2.17 dl_iterate_phdr F +GLIBC_2.17 dngettext F +GLIBC_2.17 dprintf F +GLIBC_2.17 drand48 F +GLIBC_2.17 drand48_r F +GLIBC_2.17 dup F +GLIBC_2.17 dup2 F +GLIBC_2.17 dup3 F +GLIBC_2.17 duplocale F +GLIBC_2.17 dysize F +GLIBC_2.17 eaccess F +GLIBC_2.17 ecb_crypt F +GLIBC_2.17 ecvt F +GLIBC_2.17 ecvt_r F +GLIBC_2.17 endaliasent F +GLIBC_2.17 endfsent F +GLIBC_2.17 endgrent F +GLIBC_2.17 endhostent F +GLIBC_2.17 endmntent F +GLIBC_2.17 endnetent F +GLIBC_2.17 endnetgrent F +GLIBC_2.17 endprotoent F +GLIBC_2.17 endpwent F +GLIBC_2.17 endrpcent F +GLIBC_2.17 endservent F +GLIBC_2.17 endsgent F +GLIBC_2.17 endspent F +GLIBC_2.17 endttyent F +GLIBC_2.17 endusershell F +GLIBC_2.17 endutent F +GLIBC_2.17 endutxent F +GLIBC_2.17 environ D 0x8 +GLIBC_2.17 envz_add F +GLIBC_2.17 envz_entry F +GLIBC_2.17 envz_get F +GLIBC_2.17 envz_merge F +GLIBC_2.17 envz_remove F +GLIBC_2.17 envz_strip F +GLIBC_2.17 epoll_create F +GLIBC_2.17 epoll_create1 F +GLIBC_2.17 epoll_ctl F +GLIBC_2.17 epoll_pwait F +GLIBC_2.17 epoll_wait F +GLIBC_2.17 erand48 F +GLIBC_2.17 erand48_r F +GLIBC_2.17 err F +GLIBC_2.17 error F +GLIBC_2.17 error_at_line F +GLIBC_2.17 error_message_count D 0x4 +GLIBC_2.17 error_one_per_line D 0x4 +GLIBC_2.17 error_print_progname D 0x8 +GLIBC_2.17 errx F +GLIBC_2.17 ether_aton F +GLIBC_2.17 ether_aton_r F +GLIBC_2.17 ether_hostton F +GLIBC_2.17 ether_line F +GLIBC_2.17 ether_ntoa F +GLIBC_2.17 ether_ntoa_r F +GLIBC_2.17 ether_ntohost F +GLIBC_2.17 euidaccess F +GLIBC_2.17 eventfd F +GLIBC_2.17 eventfd_read F +GLIBC_2.17 eventfd_write F +GLIBC_2.17 execl F +GLIBC_2.17 execle F +GLIBC_2.17 execlp F +GLIBC_2.17 execv F +GLIBC_2.17 execve F +GLIBC_2.17 execvp F +GLIBC_2.17 execvpe F +GLIBC_2.17 exit F +GLIBC_2.17 faccessat F +GLIBC_2.17 fallocate F +GLIBC_2.17 fallocate64 F +GLIBC_2.17 fanotify_init F +GLIBC_2.17 fanotify_mark F +GLIBC_2.17 fattach F +GLIBC_2.17 fchdir F +GLIBC_2.17 fchflags F +GLIBC_2.17 fchmod F +GLIBC_2.17 fchmodat F +GLIBC_2.17 fchown F +GLIBC_2.17 fchownat F +GLIBC_2.17 fclose F +GLIBC_2.17 fcloseall F +GLIBC_2.17 fcntl F +GLIBC_2.17 fcvt F +GLIBC_2.17 fcvt_r F +GLIBC_2.17 fdatasync F +GLIBC_2.17 fdetach F +GLIBC_2.17 fdopen F +GLIBC_2.17 fdopendir F +GLIBC_2.17 feof F +GLIBC_2.17 feof_unlocked F +GLIBC_2.17 ferror F +GLIBC_2.17 ferror_unlocked F +GLIBC_2.17 fexecve F +GLIBC_2.17 fflush F +GLIBC_2.17 fflush_unlocked F +GLIBC_2.17 ffs F +GLIBC_2.17 ffsl F +GLIBC_2.17 ffsll F +GLIBC_2.17 fgetc F +GLIBC_2.17 fgetc_unlocked F +GLIBC_2.17 fgetgrent F +GLIBC_2.17 fgetgrent_r F +GLIBC_2.17 fgetpos F +GLIBC_2.17 fgetpos64 F +GLIBC_2.17 fgetpwent F +GLIBC_2.17 fgetpwent_r F +GLIBC_2.17 fgets F +GLIBC_2.17 fgets_unlocked F +GLIBC_2.17 fgetsgent F +GLIBC_2.17 fgetsgent_r F +GLIBC_2.17 fgetspent F +GLIBC_2.17 fgetspent_r F +GLIBC_2.17 fgetwc F +GLIBC_2.17 fgetwc_unlocked F +GLIBC_2.17 fgetws F +GLIBC_2.17 fgetws_unlocked F +GLIBC_2.17 fgetxattr F +GLIBC_2.17 fileno F +GLIBC_2.17 fileno_unlocked F +GLIBC_2.17 finite F +GLIBC_2.17 finitef F +GLIBC_2.17 finitel F +GLIBC_2.17 flistxattr F +GLIBC_2.17 flock F +GLIBC_2.17 flockfile F +GLIBC_2.17 fmemopen F +GLIBC_2.17 fmtmsg F +GLIBC_2.17 fnmatch F +GLIBC_2.17 fopen F +GLIBC_2.17 fopen64 F +GLIBC_2.17 fopencookie F +GLIBC_2.17 fork F +GLIBC_2.17 fpathconf F +GLIBC_2.17 fprintf F +GLIBC_2.17 fputc F +GLIBC_2.17 fputc_unlocked F +GLIBC_2.17 fputs F +GLIBC_2.17 fputs_unlocked F +GLIBC_2.17 fputwc F +GLIBC_2.17 fputwc_unlocked F +GLIBC_2.17 fputws F +GLIBC_2.17 fputws_unlocked F +GLIBC_2.17 fread F +GLIBC_2.17 fread_unlocked F +GLIBC_2.17 free F +GLIBC_2.17 freeaddrinfo F +GLIBC_2.17 freeifaddrs F +GLIBC_2.17 freelocale F +GLIBC_2.17 fremovexattr F +GLIBC_2.17 freopen F +GLIBC_2.17 freopen64 F +GLIBC_2.17 frexp F +GLIBC_2.17 frexpf F +GLIBC_2.17 frexpl F +GLIBC_2.17 fscanf F +GLIBC_2.17 fseek F +GLIBC_2.17 fseeko F +GLIBC_2.17 fseeko64 F +GLIBC_2.17 fsetpos F +GLIBC_2.17 fsetpos64 F +GLIBC_2.17 fsetxattr F +GLIBC_2.17 fstatfs F +GLIBC_2.17 fstatfs64 F +GLIBC_2.17 fstatvfs F +GLIBC_2.17 fstatvfs64 F +GLIBC_2.17 fsync F +GLIBC_2.17 ftell F +GLIBC_2.17 ftello F +GLIBC_2.17 ftello64 F +GLIBC_2.17 ftime F +GLIBC_2.17 ftok F +GLIBC_2.17 ftruncate F +GLIBC_2.17 ftruncate64 F +GLIBC_2.17 ftrylockfile F +GLIBC_2.17 fts_children F +GLIBC_2.17 fts_close F +GLIBC_2.17 fts_open F +GLIBC_2.17 fts_read F +GLIBC_2.17 fts_set F +GLIBC_2.17 ftw F +GLIBC_2.17 ftw64 F +GLIBC_2.17 funlockfile F +GLIBC_2.17 futimens F +GLIBC_2.17 futimes F +GLIBC_2.17 futimesat F +GLIBC_2.17 fwide F +GLIBC_2.17 fwprintf F +GLIBC_2.17 fwrite F +GLIBC_2.17 fwrite_unlocked F +GLIBC_2.17 fwscanf F +GLIBC_2.17 gai_strerror F +GLIBC_2.17 gcvt F +GLIBC_2.17 get_avphys_pages F +GLIBC_2.17 get_current_dir_name F +GLIBC_2.17 get_kernel_syms F +GLIBC_2.17 get_myaddress F +GLIBC_2.17 get_nprocs F +GLIBC_2.17 get_nprocs_conf F +GLIBC_2.17 get_phys_pages F +GLIBC_2.17 getaddrinfo F +GLIBC_2.17 getaliasbyname F +GLIBC_2.17 getaliasbyname_r F +GLIBC_2.17 getaliasent F +GLIBC_2.17 getaliasent_r F +GLIBC_2.17 getauxval F +GLIBC_2.17 getc F +GLIBC_2.17 getc_unlocked F +GLIBC_2.17 getchar F +GLIBC_2.17 getchar_unlocked F +GLIBC_2.17 getcontext F +GLIBC_2.17 getcwd F +GLIBC_2.17 getdate F +GLIBC_2.17 getdate_err D 0x4 +GLIBC_2.17 getdate_r F +GLIBC_2.17 getdelim F +GLIBC_2.17 getdirentries F +GLIBC_2.17 getdirentries64 F +GLIBC_2.17 getdomainname F +GLIBC_2.17 getdtablesize F +GLIBC_2.17 getegid F +GLIBC_2.17 getenv F +GLIBC_2.17 geteuid F +GLIBC_2.17 getfsent F +GLIBC_2.17 getfsfile F +GLIBC_2.17 getfsspec F +GLIBC_2.17 getgid F +GLIBC_2.17 getgrent F +GLIBC_2.17 getgrent_r F +GLIBC_2.17 getgrgid F +GLIBC_2.17 getgrgid_r F +GLIBC_2.17 getgrnam F +GLIBC_2.17 getgrnam_r F +GLIBC_2.17 getgrouplist F +GLIBC_2.17 getgroups F +GLIBC_2.17 gethostbyaddr F +GLIBC_2.17 gethostbyaddr_r F +GLIBC_2.17 gethostbyname F +GLIBC_2.17 gethostbyname2 F +GLIBC_2.17 gethostbyname2_r F +GLIBC_2.17 gethostbyname_r F +GLIBC_2.17 gethostent F +GLIBC_2.17 gethostent_r F +GLIBC_2.17 gethostid F +GLIBC_2.17 gethostname F +GLIBC_2.17 getifaddrs F +GLIBC_2.17 getipv4sourcefilter F +GLIBC_2.17 getitimer F +GLIBC_2.17 getline F +GLIBC_2.17 getloadavg F +GLIBC_2.17 getlogin F +GLIBC_2.17 getlogin_r F +GLIBC_2.17 getmntent F +GLIBC_2.17 getmntent_r F +GLIBC_2.17 getmsg F +GLIBC_2.17 getnameinfo F +GLIBC_2.17 getnetbyaddr F +GLIBC_2.17 getnetbyaddr_r F +GLIBC_2.17 getnetbyname F +GLIBC_2.17 getnetbyname_r F +GLIBC_2.17 getnetent F +GLIBC_2.17 getnetent_r F +GLIBC_2.17 getnetgrent F +GLIBC_2.17 getnetgrent_r F +GLIBC_2.17 getnetname F +GLIBC_2.17 getopt F +GLIBC_2.17 getopt_long F +GLIBC_2.17 getopt_long_only F +GLIBC_2.17 getpagesize F +GLIBC_2.17 getpass F +GLIBC_2.17 getpeername F +GLIBC_2.17 getpgid F +GLIBC_2.17 getpgrp F +GLIBC_2.17 getpid F +GLIBC_2.17 getpmsg F +GLIBC_2.17 getppid F +GLIBC_2.17 getpriority F +GLIBC_2.17 getprotobyname F +GLIBC_2.17 getprotobyname_r F +GLIBC_2.17 getprotobynumber F +GLIBC_2.17 getprotobynumber_r F +GLIBC_2.17 getprotoent F +GLIBC_2.17 getprotoent_r F +GLIBC_2.17 getpt F +GLIBC_2.17 getpublickey F +GLIBC_2.17 getpw F +GLIBC_2.17 getpwent F +GLIBC_2.17 getpwent_r F +GLIBC_2.17 getpwnam F +GLIBC_2.17 getpwnam_r F +GLIBC_2.17 getpwuid F +GLIBC_2.17 getpwuid_r F +GLIBC_2.17 getresgid F +GLIBC_2.17 getresuid F +GLIBC_2.17 getrlimit F +GLIBC_2.17 getrlimit64 F +GLIBC_2.17 getrpcbyname F +GLIBC_2.17 getrpcbyname_r F +GLIBC_2.17 getrpcbynumber F +GLIBC_2.17 getrpcbynumber_r F +GLIBC_2.17 getrpcent F +GLIBC_2.17 getrpcent_r F +GLIBC_2.17 getrpcport F +GLIBC_2.17 getrusage F +GLIBC_2.17 gets F +GLIBC_2.17 getsecretkey F +GLIBC_2.17 getservbyname F +GLIBC_2.17 getservbyname_r F +GLIBC_2.17 getservbyport F +GLIBC_2.17 getservbyport_r F +GLIBC_2.17 getservent F +GLIBC_2.17 getservent_r F +GLIBC_2.17 getsgent F +GLIBC_2.17 getsgent_r F +GLIBC_2.17 getsgnam F +GLIBC_2.17 getsgnam_r F +GLIBC_2.17 getsid F +GLIBC_2.17 getsockname F +GLIBC_2.17 getsockopt F +GLIBC_2.17 getsourcefilter F +GLIBC_2.17 getspent F +GLIBC_2.17 getspent_r F +GLIBC_2.17 getspnam F +GLIBC_2.17 getspnam_r F +GLIBC_2.17 getsubopt F +GLIBC_2.17 gettext F +GLIBC_2.17 gettimeofday F +GLIBC_2.17 getttyent F +GLIBC_2.17 getttynam F +GLIBC_2.17 getuid F +GLIBC_2.17 getusershell F +GLIBC_2.17 getutent F +GLIBC_2.17 getutent_r F +GLIBC_2.17 getutid F +GLIBC_2.17 getutid_r F +GLIBC_2.17 getutline F +GLIBC_2.17 getutline_r F +GLIBC_2.17 getutmp F +GLIBC_2.17 getutmpx F +GLIBC_2.17 getutxent F +GLIBC_2.17 getutxid F +GLIBC_2.17 getutxline F +GLIBC_2.17 getw F +GLIBC_2.17 getwc F +GLIBC_2.17 getwc_unlocked F +GLIBC_2.17 getwchar F +GLIBC_2.17 getwchar_unlocked F +GLIBC_2.17 getwd F +GLIBC_2.17 getxattr F +GLIBC_2.17 glob F +GLIBC_2.17 glob64 F +GLIBC_2.17 glob_pattern_p F +GLIBC_2.17 globfree F +GLIBC_2.17 globfree64 F +GLIBC_2.17 gmtime F +GLIBC_2.17 gmtime_r F +GLIBC_2.17 gnu_dev_major F +GLIBC_2.17 gnu_dev_makedev F +GLIBC_2.17 gnu_dev_minor F +GLIBC_2.17 gnu_get_libc_release F +GLIBC_2.17 gnu_get_libc_version F +GLIBC_2.17 grantpt F +GLIBC_2.17 group_member F +GLIBC_2.17 gsignal F +GLIBC_2.17 gtty F +GLIBC_2.17 h_errlist D 0x28 +GLIBC_2.17 h_nerr D 0x4 +GLIBC_2.17 hasmntopt F +GLIBC_2.17 hcreate F +GLIBC_2.17 hcreate_r F +GLIBC_2.17 hdestroy F +GLIBC_2.17 hdestroy_r F +GLIBC_2.17 herror F +GLIBC_2.17 host2netname F +GLIBC_2.17 hsearch F +GLIBC_2.17 hsearch_r F +GLIBC_2.17 hstrerror F +GLIBC_2.17 htonl F +GLIBC_2.17 htons F +GLIBC_2.17 iconv F +GLIBC_2.17 iconv_close F +GLIBC_2.17 iconv_open F +GLIBC_2.17 if_freenameindex F +GLIBC_2.17 if_indextoname F +GLIBC_2.17 if_nameindex F +GLIBC_2.17 if_nametoindex F +GLIBC_2.17 imaxabs F +GLIBC_2.17 imaxdiv F +GLIBC_2.17 in6addr_any D 0x10 +GLIBC_2.17 in6addr_loopback D 0x10 +GLIBC_2.17 index F +GLIBC_2.17 inet6_opt_append F +GLIBC_2.17 inet6_opt_find F +GLIBC_2.17 inet6_opt_finish F +GLIBC_2.17 inet6_opt_get_val F +GLIBC_2.17 inet6_opt_init F +GLIBC_2.17 inet6_opt_next F +GLIBC_2.17 inet6_opt_set_val F +GLIBC_2.17 inet6_option_alloc F +GLIBC_2.17 inet6_option_append F +GLIBC_2.17 inet6_option_find F +GLIBC_2.17 inet6_option_init F +GLIBC_2.17 inet6_option_next F +GLIBC_2.17 inet6_option_space F +GLIBC_2.17 inet6_rth_add F +GLIBC_2.17 inet6_rth_getaddr F +GLIBC_2.17 inet6_rth_init F +GLIBC_2.17 inet6_rth_reverse F +GLIBC_2.17 inet6_rth_segments F +GLIBC_2.17 inet6_rth_space F +GLIBC_2.17 inet_addr F +GLIBC_2.17 inet_aton F +GLIBC_2.17 inet_lnaof F +GLIBC_2.17 inet_makeaddr F +GLIBC_2.17 inet_netof F +GLIBC_2.17 inet_network F +GLIBC_2.17 inet_nsap_addr F +GLIBC_2.17 inet_nsap_ntoa F +GLIBC_2.17 inet_ntoa F +GLIBC_2.17 inet_ntop F +GLIBC_2.17 inet_pton F +GLIBC_2.17 init_module F +GLIBC_2.17 initgroups F +GLIBC_2.17 initstate F +GLIBC_2.17 initstate_r F +GLIBC_2.17 innetgr F +GLIBC_2.17 inotify_add_watch F +GLIBC_2.17 inotify_init F +GLIBC_2.17 inotify_init1 F +GLIBC_2.17 inotify_rm_watch F +GLIBC_2.17 insque F +GLIBC_2.17 ioctl F +GLIBC_2.17 iruserok F +GLIBC_2.17 iruserok_af F +GLIBC_2.17 isalnum F +GLIBC_2.17 isalnum_l F +GLIBC_2.17 isalpha F +GLIBC_2.17 isalpha_l F +GLIBC_2.17 isascii F +GLIBC_2.17 isastream F +GLIBC_2.17 isatty F +GLIBC_2.17 isblank F +GLIBC_2.17 isblank_l F +GLIBC_2.17 iscntrl F +GLIBC_2.17 iscntrl_l F +GLIBC_2.17 isctype F +GLIBC_2.17 isdigit F +GLIBC_2.17 isdigit_l F +GLIBC_2.17 isfdtype F +GLIBC_2.17 isgraph F +GLIBC_2.17 isgraph_l F +GLIBC_2.17 isinf F +GLIBC_2.17 isinff F +GLIBC_2.17 isinfl F +GLIBC_2.17 islower F +GLIBC_2.17 islower_l F +GLIBC_2.17 isnan F +GLIBC_2.17 isnanf F +GLIBC_2.17 isnanl F +GLIBC_2.17 isprint F +GLIBC_2.17 isprint_l F +GLIBC_2.17 ispunct F +GLIBC_2.17 ispunct_l F +GLIBC_2.17 isspace F +GLIBC_2.17 isspace_l F +GLIBC_2.17 isupper F +GLIBC_2.17 isupper_l F +GLIBC_2.17 iswalnum F +GLIBC_2.17 iswalnum_l F +GLIBC_2.17 iswalpha F +GLIBC_2.17 iswalpha_l F +GLIBC_2.17 iswblank F +GLIBC_2.17 iswblank_l F +GLIBC_2.17 iswcntrl F +GLIBC_2.17 iswcntrl_l F +GLIBC_2.17 iswctype F +GLIBC_2.17 iswctype_l F +GLIBC_2.17 iswdigit F +GLIBC_2.17 iswdigit_l F +GLIBC_2.17 iswgraph F +GLIBC_2.17 iswgraph_l F +GLIBC_2.17 iswlower F +GLIBC_2.17 iswlower_l F +GLIBC_2.17 iswprint F +GLIBC_2.17 iswprint_l F +GLIBC_2.17 iswpunct F +GLIBC_2.17 iswpunct_l F +GLIBC_2.17 iswspace F +GLIBC_2.17 iswspace_l F +GLIBC_2.17 iswupper F +GLIBC_2.17 iswupper_l F +GLIBC_2.17 iswxdigit F +GLIBC_2.17 iswxdigit_l F +GLIBC_2.17 isxdigit F +GLIBC_2.17 isxdigit_l F +GLIBC_2.17 jrand48 F +GLIBC_2.17 jrand48_r F +GLIBC_2.17 key_decryptsession F +GLIBC_2.17 key_decryptsession_pk F +GLIBC_2.17 key_encryptsession F +GLIBC_2.17 key_encryptsession_pk F +GLIBC_2.17 key_gendes F +GLIBC_2.17 key_get_conv F +GLIBC_2.17 key_secretkey_is_set F +GLIBC_2.17 key_setnet F +GLIBC_2.17 key_setsecret F +GLIBC_2.17 kill F +GLIBC_2.17 killpg F +GLIBC_2.17 klogctl F +GLIBC_2.17 l64a F +GLIBC_2.17 labs F +GLIBC_2.17 lchmod F +GLIBC_2.17 lchown F +GLIBC_2.17 lckpwdf F +GLIBC_2.17 lcong48 F +GLIBC_2.17 lcong48_r F +GLIBC_2.17 ldexp F +GLIBC_2.17 ldexpf F +GLIBC_2.17 ldexpl F +GLIBC_2.17 ldiv F +GLIBC_2.17 lfind F +GLIBC_2.17 lgetxattr F +GLIBC_2.17 link F +GLIBC_2.17 linkat F +GLIBC_2.17 listen F +GLIBC_2.17 listxattr F +GLIBC_2.17 llabs F +GLIBC_2.17 lldiv F +GLIBC_2.17 llistxattr F +GLIBC_2.17 llseek F +GLIBC_2.17 loc1 D 0x8 +GLIBC_2.17 loc2 D 0x8 +GLIBC_2.17 localeconv F +GLIBC_2.17 localtime F +GLIBC_2.17 localtime_r F +GLIBC_2.17 lockf F +GLIBC_2.17 lockf64 F +GLIBC_2.17 locs D 0x8 +GLIBC_2.17 longjmp F +GLIBC_2.17 lrand48 F +GLIBC_2.17 lrand48_r F +GLIBC_2.17 lremovexattr F +GLIBC_2.17 lsearch F +GLIBC_2.17 lseek F +GLIBC_2.17 lseek64 F +GLIBC_2.17 lsetxattr F +GLIBC_2.17 lutimes F +GLIBC_2.17 madvise F +GLIBC_2.17 makecontext F +GLIBC_2.17 mallinfo F +GLIBC_2.17 malloc F +GLIBC_2.17 malloc_get_state F +GLIBC_2.17 malloc_info F +GLIBC_2.17 malloc_set_state F +GLIBC_2.17 malloc_stats F +GLIBC_2.17 malloc_trim F +GLIBC_2.17 malloc_usable_size F +GLIBC_2.17 mallopt F +GLIBC_2.17 mallwatch D 0x8 +GLIBC_2.17 mblen F +GLIBC_2.17 mbrlen F +GLIBC_2.17 mbrtoc16 F +GLIBC_2.17 mbrtoc32 F +GLIBC_2.17 mbrtowc F +GLIBC_2.17 mbsinit F +GLIBC_2.17 mbsnrtowcs F +GLIBC_2.17 mbsrtowcs F +GLIBC_2.17 mbstowcs F +GLIBC_2.17 mbtowc F +GLIBC_2.17 mcheck F +GLIBC_2.17 mcheck_check_all F +GLIBC_2.17 mcheck_pedantic F +GLIBC_2.17 memalign F +GLIBC_2.17 memccpy F +GLIBC_2.17 memchr F +GLIBC_2.17 memcmp F +GLIBC_2.17 memcpy F +GLIBC_2.17 memfrob F +GLIBC_2.17 memmem F +GLIBC_2.17 memmove F +GLIBC_2.17 mempcpy F +GLIBC_2.17 memrchr F +GLIBC_2.17 memset F +GLIBC_2.17 mincore F +GLIBC_2.17 mkdir F +GLIBC_2.17 mkdirat F +GLIBC_2.17 mkdtemp F +GLIBC_2.17 mkfifo F +GLIBC_2.17 mkfifoat F +GLIBC_2.17 mkostemp F +GLIBC_2.17 mkostemp64 F +GLIBC_2.17 mkostemps F +GLIBC_2.17 mkostemps64 F +GLIBC_2.17 mkstemp F +GLIBC_2.17 mkstemp64 F +GLIBC_2.17 mkstemps F +GLIBC_2.17 mkstemps64 F +GLIBC_2.17 mktemp F +GLIBC_2.17 mktime F +GLIBC_2.17 mlock F +GLIBC_2.17 mlockall F +GLIBC_2.17 mmap F +GLIBC_2.17 mmap64 F +GLIBC_2.17 modf F +GLIBC_2.17 modff F +GLIBC_2.17 modfl F +GLIBC_2.17 moncontrol F +GLIBC_2.17 monstartup F +GLIBC_2.17 mount F +GLIBC_2.17 mprobe F +GLIBC_2.17 mprotect F +GLIBC_2.17 mrand48 F +GLIBC_2.17 mrand48_r F +GLIBC_2.17 mremap F +GLIBC_2.17 msgctl F +GLIBC_2.17 msgget F +GLIBC_2.17 msgrcv F +GLIBC_2.17 msgsnd F +GLIBC_2.17 msync F +GLIBC_2.17 mtrace F +GLIBC_2.17 munlock F +GLIBC_2.17 munlockall F +GLIBC_2.17 munmap F +GLIBC_2.17 muntrace F +GLIBC_2.17 name_to_handle_at F +GLIBC_2.17 nanosleep F +GLIBC_2.17 netname2host F +GLIBC_2.17 netname2user F +GLIBC_2.17 newlocale F +GLIBC_2.17 nfsservctl F +GLIBC_2.17 nftw F +GLIBC_2.17 nftw64 F +GLIBC_2.17 ngettext F +GLIBC_2.17 nice F +GLIBC_2.17 nl_langinfo F +GLIBC_2.17 nl_langinfo_l F +GLIBC_2.17 nrand48 F +GLIBC_2.17 nrand48_r F +GLIBC_2.17 ntohl F +GLIBC_2.17 ntohs F +GLIBC_2.17 ntp_adjtime F +GLIBC_2.17 ntp_gettime F +GLIBC_2.17 ntp_gettimex F +GLIBC_2.17 obstack_alloc_failed_handler D 0x8 +GLIBC_2.17 obstack_exit_failure D 0x4 +GLIBC_2.17 obstack_free F +GLIBC_2.17 obstack_printf F +GLIBC_2.17 obstack_vprintf F +GLIBC_2.17 on_exit F +GLIBC_2.17 open F +GLIBC_2.17 open64 F +GLIBC_2.17 open_by_handle_at F +GLIBC_2.17 open_memstream F +GLIBC_2.17 open_wmemstream F +GLIBC_2.17 openat F +GLIBC_2.17 openat64 F +GLIBC_2.17 opendir F +GLIBC_2.17 openlog F +GLIBC_2.17 optarg D 0x8 +GLIBC_2.17 opterr D 0x4 +GLIBC_2.17 optind D 0x4 +GLIBC_2.17 optopt D 0x4 +GLIBC_2.17 parse_printf_format F +GLIBC_2.17 passwd2des F +GLIBC_2.17 pathconf F +GLIBC_2.17 pause F +GLIBC_2.17 pclose F +GLIBC_2.17 perror F +GLIBC_2.17 personality F +GLIBC_2.17 pipe F +GLIBC_2.17 pipe2 F +GLIBC_2.17 pivot_root F +GLIBC_2.17 pmap_getmaps F +GLIBC_2.17 pmap_getport F +GLIBC_2.17 pmap_rmtcall F +GLIBC_2.17 pmap_set F +GLIBC_2.17 pmap_unset F +GLIBC_2.17 poll F +GLIBC_2.17 popen F +GLIBC_2.17 posix_fadvise F +GLIBC_2.17 posix_fadvise64 F +GLIBC_2.17 posix_fallocate F +GLIBC_2.17 posix_fallocate64 F +GLIBC_2.17 posix_madvise F +GLIBC_2.17 posix_memalign F +GLIBC_2.17 posix_openpt F +GLIBC_2.17 posix_spawn F +GLIBC_2.17 posix_spawn_file_actions_addclose F +GLIBC_2.17 posix_spawn_file_actions_adddup2 F +GLIBC_2.17 posix_spawn_file_actions_addopen F +GLIBC_2.17 posix_spawn_file_actions_destroy F +GLIBC_2.17 posix_spawn_file_actions_init F +GLIBC_2.17 posix_spawnattr_destroy F +GLIBC_2.17 posix_spawnattr_getflags F +GLIBC_2.17 posix_spawnattr_getpgroup F +GLIBC_2.17 posix_spawnattr_getschedparam F +GLIBC_2.17 posix_spawnattr_getschedpolicy F +GLIBC_2.17 posix_spawnattr_getsigdefault F +GLIBC_2.17 posix_spawnattr_getsigmask F +GLIBC_2.17 posix_spawnattr_init F +GLIBC_2.17 posix_spawnattr_setflags F +GLIBC_2.17 posix_spawnattr_setpgroup F +GLIBC_2.17 posix_spawnattr_setschedparam F +GLIBC_2.17 posix_spawnattr_setschedpolicy F +GLIBC_2.17 posix_spawnattr_setsigdefault F +GLIBC_2.17 posix_spawnattr_setsigmask F +GLIBC_2.17 posix_spawnp F +GLIBC_2.17 ppoll F +GLIBC_2.17 prctl F +GLIBC_2.17 pread F +GLIBC_2.17 pread64 F +GLIBC_2.17 preadv F +GLIBC_2.17 preadv64 F +GLIBC_2.17 printf F +GLIBC_2.17 printf_size F +GLIBC_2.17 printf_size_info F +GLIBC_2.17 prlimit F +GLIBC_2.17 prlimit64 F +GLIBC_2.17 process_vm_readv F +GLIBC_2.17 process_vm_writev F +GLIBC_2.17 profil F +GLIBC_2.17 program_invocation_name D 0x8 +GLIBC_2.17 program_invocation_short_name D 0x8 +GLIBC_2.17 pselect F +GLIBC_2.17 psiginfo F +GLIBC_2.17 psignal F +GLIBC_2.17 pthread_attr_destroy F +GLIBC_2.17 pthread_attr_getdetachstate F +GLIBC_2.17 pthread_attr_getinheritsched F +GLIBC_2.17 pthread_attr_getschedparam F +GLIBC_2.17 pthread_attr_getschedpolicy F +GLIBC_2.17 pthread_attr_getscope F +GLIBC_2.17 pthread_attr_init F +GLIBC_2.17 pthread_attr_setdetachstate F +GLIBC_2.17 pthread_attr_setinheritsched F +GLIBC_2.17 pthread_attr_setschedparam F +GLIBC_2.17 pthread_attr_setschedpolicy F +GLIBC_2.17 pthread_attr_setscope F +GLIBC_2.17 pthread_cond_broadcast F +GLIBC_2.17 pthread_cond_destroy F +GLIBC_2.17 pthread_cond_init F +GLIBC_2.17 pthread_cond_signal F +GLIBC_2.17 pthread_cond_timedwait F +GLIBC_2.17 pthread_cond_wait F +GLIBC_2.17 pthread_condattr_destroy F +GLIBC_2.17 pthread_condattr_init F +GLIBC_2.17 pthread_equal F +GLIBC_2.17 pthread_exit F +GLIBC_2.17 pthread_getschedparam F +GLIBC_2.17 pthread_mutex_destroy F +GLIBC_2.17 pthread_mutex_init F +GLIBC_2.17 pthread_mutex_lock F +GLIBC_2.17 pthread_mutex_unlock F +GLIBC_2.17 pthread_self F +GLIBC_2.17 pthread_setcancelstate F +GLIBC_2.17 pthread_setcanceltype F +GLIBC_2.17 pthread_setschedparam F +GLIBC_2.17 ptrace F +GLIBC_2.17 ptsname F +GLIBC_2.17 ptsname_r F +GLIBC_2.17 putc F +GLIBC_2.17 putc_unlocked F +GLIBC_2.17 putchar F +GLIBC_2.17 putchar_unlocked F +GLIBC_2.17 putenv F +GLIBC_2.17 putgrent F +GLIBC_2.17 putmsg F +GLIBC_2.17 putpmsg F +GLIBC_2.17 putpwent F +GLIBC_2.17 puts F +GLIBC_2.17 putsgent F +GLIBC_2.17 putspent F +GLIBC_2.17 pututline F +GLIBC_2.17 pututxline F +GLIBC_2.17 putw F +GLIBC_2.17 putwc F +GLIBC_2.17 putwc_unlocked F +GLIBC_2.17 putwchar F +GLIBC_2.17 putwchar_unlocked F +GLIBC_2.17 pvalloc F +GLIBC_2.17 pwrite F +GLIBC_2.17 pwrite64 F +GLIBC_2.17 pwritev F +GLIBC_2.17 pwritev64 F +GLIBC_2.17 qecvt F +GLIBC_2.17 qecvt_r F +GLIBC_2.17 qfcvt F +GLIBC_2.17 qfcvt_r F +GLIBC_2.17 qgcvt F +GLIBC_2.17 qsort F +GLIBC_2.17 qsort_r F +GLIBC_2.17 query_module F +GLIBC_2.17 quick_exit F +GLIBC_2.17 quotactl F +GLIBC_2.17 raise F +GLIBC_2.17 rand F +GLIBC_2.17 rand_r F +GLIBC_2.17 random F +GLIBC_2.17 random_r F +GLIBC_2.17 rawmemchr F +GLIBC_2.17 rcmd F +GLIBC_2.17 rcmd_af F +GLIBC_2.17 re_comp F +GLIBC_2.17 re_compile_fastmap F +GLIBC_2.17 re_compile_pattern F +GLIBC_2.17 re_exec F +GLIBC_2.17 re_match F +GLIBC_2.17 re_match_2 F +GLIBC_2.17 re_search F +GLIBC_2.17 re_search_2 F +GLIBC_2.17 re_set_registers F +GLIBC_2.17 re_set_syntax F +GLIBC_2.17 re_syntax_options D 0x8 +GLIBC_2.17 read F +GLIBC_2.17 readahead F +GLIBC_2.17 readdir F +GLIBC_2.17 readdir64 F +GLIBC_2.17 readdir64_r F +GLIBC_2.17 readdir_r F +GLIBC_2.17 readlink F +GLIBC_2.17 readlinkat F +GLIBC_2.17 readv F +GLIBC_2.17 realloc F +GLIBC_2.17 realpath F +GLIBC_2.17 reboot F +GLIBC_2.17 recv F +GLIBC_2.17 recvfrom F +GLIBC_2.17 recvmmsg F +GLIBC_2.17 recvmsg F +GLIBC_2.17 regcomp F +GLIBC_2.17 regerror F +GLIBC_2.17 regexec F +GLIBC_2.17 regfree F +GLIBC_2.17 register_printf_function F +GLIBC_2.17 register_printf_modifier F +GLIBC_2.17 register_printf_specifier F +GLIBC_2.17 register_printf_type F +GLIBC_2.17 registerrpc F +GLIBC_2.17 remap_file_pages F +GLIBC_2.17 remove F +GLIBC_2.17 removexattr F +GLIBC_2.17 remque F +GLIBC_2.17 rename F +GLIBC_2.17 renameat F +GLIBC_2.17 revoke F +GLIBC_2.17 rewind F +GLIBC_2.17 rewinddir F +GLIBC_2.17 rexec F +GLIBC_2.17 rexec_af F +GLIBC_2.17 rexecoptions D 0x4 +GLIBC_2.17 rindex F +GLIBC_2.17 rmdir F +GLIBC_2.17 rpc_createerr D 0x20 +GLIBC_2.17 rpmatch F +GLIBC_2.17 rresvport F +GLIBC_2.17 rresvport_af F +GLIBC_2.17 rtime F +GLIBC_2.17 ruserok F +GLIBC_2.17 ruserok_af F +GLIBC_2.17 ruserpass F +GLIBC_2.17 sbrk F +GLIBC_2.17 scalbn F +GLIBC_2.17 scalbnf F +GLIBC_2.17 scalbnl F +GLIBC_2.17 scandir F +GLIBC_2.17 scandir64 F +GLIBC_2.17 scandirat F +GLIBC_2.17 scandirat64 F +GLIBC_2.17 scanf F +GLIBC_2.17 sched_get_priority_max F +GLIBC_2.17 sched_get_priority_min F +GLIBC_2.17 sched_getaffinity F +GLIBC_2.17 sched_getcpu F +GLIBC_2.17 sched_getparam F +GLIBC_2.17 sched_getscheduler F +GLIBC_2.17 sched_rr_get_interval F +GLIBC_2.17 sched_setaffinity F +GLIBC_2.17 sched_setparam F +GLIBC_2.17 sched_setscheduler F +GLIBC_2.17 sched_yield F +GLIBC_2.17 secure_getenv F +GLIBC_2.17 seed48 F +GLIBC_2.17 seed48_r F +GLIBC_2.17 seekdir F +GLIBC_2.17 select F +GLIBC_2.17 semctl F +GLIBC_2.17 semget F +GLIBC_2.17 semop F +GLIBC_2.17 semtimedop F +GLIBC_2.17 send F +GLIBC_2.17 sendfile F +GLIBC_2.17 sendfile64 F +GLIBC_2.17 sendmmsg F +GLIBC_2.17 sendmsg F +GLIBC_2.17 sendto F +GLIBC_2.17 setaliasent F +GLIBC_2.17 setbuf F +GLIBC_2.17 setbuffer F +GLIBC_2.17 setcontext F +GLIBC_2.17 setdomainname F +GLIBC_2.17 setegid F +GLIBC_2.17 setenv F +GLIBC_2.17 seteuid F +GLIBC_2.17 setfsent F +GLIBC_2.17 setfsgid F +GLIBC_2.17 setfsuid F +GLIBC_2.17 setgid F +GLIBC_2.17 setgrent F +GLIBC_2.17 setgroups F +GLIBC_2.17 sethostent F +GLIBC_2.17 sethostid F +GLIBC_2.17 sethostname F +GLIBC_2.17 setipv4sourcefilter F +GLIBC_2.17 setitimer F +GLIBC_2.17 setjmp F +GLIBC_2.17 setlinebuf F +GLIBC_2.17 setlocale F +GLIBC_2.17 setlogin F +GLIBC_2.17 setlogmask F +GLIBC_2.17 setmntent F +GLIBC_2.17 setnetent F +GLIBC_2.17 setnetgrent F +GLIBC_2.17 setns F +GLIBC_2.17 setpgid F +GLIBC_2.17 setpgrp F +GLIBC_2.17 setpriority F +GLIBC_2.17 setprotoent F +GLIBC_2.17 setpwent F +GLIBC_2.17 setregid F +GLIBC_2.17 setresgid F +GLIBC_2.17 setresuid F +GLIBC_2.17 setreuid F +GLIBC_2.17 setrlimit F +GLIBC_2.17 setrlimit64 F +GLIBC_2.17 setrpcent F +GLIBC_2.17 setservent F +GLIBC_2.17 setsgent F +GLIBC_2.17 setsid F +GLIBC_2.17 setsockopt F +GLIBC_2.17 setsourcefilter F +GLIBC_2.17 setspent F +GLIBC_2.17 setstate F +GLIBC_2.17 setstate_r F +GLIBC_2.17 settimeofday F +GLIBC_2.17 setttyent F +GLIBC_2.17 setuid F +GLIBC_2.17 setusershell F +GLIBC_2.17 setutent F +GLIBC_2.17 setutxent F +GLIBC_2.17 setvbuf F +GLIBC_2.17 setxattr F +GLIBC_2.17 sgetsgent F +GLIBC_2.17 sgetsgent_r F +GLIBC_2.17 sgetspent F +GLIBC_2.17 sgetspent_r F +GLIBC_2.17 shmat F +GLIBC_2.17 shmctl F +GLIBC_2.17 shmdt F +GLIBC_2.17 shmget F +GLIBC_2.17 shutdown F +GLIBC_2.17 sigaction F +GLIBC_2.17 sigaddset F +GLIBC_2.17 sigaltstack F +GLIBC_2.17 sigandset F +GLIBC_2.17 sigblock F +GLIBC_2.17 sigdelset F +GLIBC_2.17 sigemptyset F +GLIBC_2.17 sigfillset F +GLIBC_2.17 siggetmask F +GLIBC_2.17 sighold F +GLIBC_2.17 sigignore F +GLIBC_2.17 siginterrupt F +GLIBC_2.17 sigisemptyset F +GLIBC_2.17 sigismember F +GLIBC_2.17 siglongjmp F +GLIBC_2.17 signal F +GLIBC_2.17 signalfd F +GLIBC_2.17 sigorset F +GLIBC_2.17 sigpause F +GLIBC_2.17 sigpending F +GLIBC_2.17 sigprocmask F +GLIBC_2.17 sigqueue F +GLIBC_2.17 sigrelse F +GLIBC_2.17 sigreturn F +GLIBC_2.17 sigset F +GLIBC_2.17 sigsetmask F +GLIBC_2.17 sigstack F +GLIBC_2.17 sigsuspend F +GLIBC_2.17 sigtimedwait F +GLIBC_2.17 sigvec F +GLIBC_2.17 sigwait F +GLIBC_2.17 sigwaitinfo F +GLIBC_2.17 sleep F +GLIBC_2.17 snprintf F +GLIBC_2.17 sockatmark F +GLIBC_2.17 socket F +GLIBC_2.17 socketpair F +GLIBC_2.17 splice F +GLIBC_2.17 sprintf F +GLIBC_2.17 sprofil F +GLIBC_2.17 srand F +GLIBC_2.17 srand48 F +GLIBC_2.17 srand48_r F +GLIBC_2.17 srandom F +GLIBC_2.17 srandom_r F +GLIBC_2.17 sscanf F +GLIBC_2.17 ssignal F +GLIBC_2.17 sstk F +GLIBC_2.17 statfs F +GLIBC_2.17 statfs64 F +GLIBC_2.17 statvfs F +GLIBC_2.17 statvfs64 F +GLIBC_2.17 stderr D 0x8 +GLIBC_2.17 stdin D 0x8 +GLIBC_2.17 stdout D 0x8 +GLIBC_2.17 step F +GLIBC_2.17 stime F +GLIBC_2.17 stpcpy F +GLIBC_2.17 stpncpy F +GLIBC_2.17 strcasecmp F +GLIBC_2.17 strcasecmp_l F +GLIBC_2.17 strcasestr F +GLIBC_2.17 strcat F +GLIBC_2.17 strchr F +GLIBC_2.17 strchrnul F +GLIBC_2.17 strcmp F +GLIBC_2.17 strcoll F +GLIBC_2.17 strcoll_l F +GLIBC_2.17 strcpy F +GLIBC_2.17 strcspn F +GLIBC_2.17 strdup F +GLIBC_2.17 strerror F +GLIBC_2.17 strerror_l F +GLIBC_2.17 strerror_r F +GLIBC_2.17 strfmon F +GLIBC_2.17 strfmon_l F +GLIBC_2.17 strfry F +GLIBC_2.17 strftime F +GLIBC_2.17 strftime_l F +GLIBC_2.17 strlen F +GLIBC_2.17 strncasecmp F +GLIBC_2.17 strncasecmp_l F +GLIBC_2.17 strncat F +GLIBC_2.17 strncmp F +GLIBC_2.17 strncpy F +GLIBC_2.17 strndup F +GLIBC_2.17 strnlen F +GLIBC_2.17 strpbrk F +GLIBC_2.17 strptime F +GLIBC_2.17 strptime_l F +GLIBC_2.17 strrchr F +GLIBC_2.17 strsep F +GLIBC_2.17 strsignal F +GLIBC_2.17 strspn F +GLIBC_2.17 strstr F +GLIBC_2.17 strtod F +GLIBC_2.17 strtod_l F +GLIBC_2.17 strtof F +GLIBC_2.17 strtof_l F +GLIBC_2.17 strtoimax F +GLIBC_2.17 strtok F +GLIBC_2.17 strtok_r F +GLIBC_2.17 strtol F +GLIBC_2.17 strtol_l F +GLIBC_2.17 strtold F +GLIBC_2.17 strtold_l F +GLIBC_2.17 strtoll F +GLIBC_2.17 strtoll_l F +GLIBC_2.17 strtoq F +GLIBC_2.17 strtoul F +GLIBC_2.17 strtoul_l F +GLIBC_2.17 strtoull F +GLIBC_2.17 strtoull_l F +GLIBC_2.17 strtoumax F +GLIBC_2.17 strtouq F +GLIBC_2.17 strverscmp F +GLIBC_2.17 strxfrm F +GLIBC_2.17 strxfrm_l F +GLIBC_2.17 stty F +GLIBC_2.17 svc_exit F +GLIBC_2.17 svc_fdset D 0x80 +GLIBC_2.17 svc_getreq F +GLIBC_2.17 svc_getreq_common F +GLIBC_2.17 svc_getreq_poll F +GLIBC_2.17 svc_getreqset F +GLIBC_2.17 svc_max_pollfd D 0x4 +GLIBC_2.17 svc_pollfd D 0x8 +GLIBC_2.17 svc_register F +GLIBC_2.17 svc_run F +GLIBC_2.17 svc_sendreply F +GLIBC_2.17 svc_unregister F +GLIBC_2.17 svcauthdes_stats D 0x18 +GLIBC_2.17 svcerr_auth F +GLIBC_2.17 svcerr_decode F +GLIBC_2.17 svcerr_noproc F +GLIBC_2.17 svcerr_noprog F +GLIBC_2.17 svcerr_progvers F +GLIBC_2.17 svcerr_systemerr F +GLIBC_2.17 svcerr_weakauth F +GLIBC_2.17 svcfd_create F +GLIBC_2.17 svcraw_create F +GLIBC_2.17 svctcp_create F +GLIBC_2.17 svcudp_bufcreate F +GLIBC_2.17 svcudp_create F +GLIBC_2.17 svcudp_enablecache F +GLIBC_2.17 svcunix_create F +GLIBC_2.17 svcunixfd_create F +GLIBC_2.17 swab F +GLIBC_2.17 swapcontext F +GLIBC_2.17 swapoff F +GLIBC_2.17 swapon F +GLIBC_2.17 swprintf F +GLIBC_2.17 swscanf F +GLIBC_2.17 symlink F +GLIBC_2.17 symlinkat F +GLIBC_2.17 sync F +GLIBC_2.17 sync_file_range F +GLIBC_2.17 syncfs F +GLIBC_2.17 sys_errlist D 0x438 +GLIBC_2.17 sys_nerr D 0x4 +GLIBC_2.17 sys_sigabbrev D 0x208 +GLIBC_2.17 sys_siglist D 0x208 +GLIBC_2.17 syscall F +GLIBC_2.17 sysconf F +GLIBC_2.17 sysctl F +GLIBC_2.17 sysinfo F +GLIBC_2.17 syslog F +GLIBC_2.17 system F +GLIBC_2.17 sysv_signal F +GLIBC_2.17 tcdrain F +GLIBC_2.17 tcflow F +GLIBC_2.17 tcflush F +GLIBC_2.17 tcgetattr F +GLIBC_2.17 tcgetpgrp F +GLIBC_2.17 tcgetsid F +GLIBC_2.17 tcsendbreak F +GLIBC_2.17 tcsetattr F +GLIBC_2.17 tcsetpgrp F +GLIBC_2.17 tdelete F +GLIBC_2.17 tdestroy F +GLIBC_2.17 tee F +GLIBC_2.17 telldir F +GLIBC_2.17 tempnam F +GLIBC_2.17 textdomain F +GLIBC_2.17 tfind F +GLIBC_2.17 time F +GLIBC_2.17 timegm F +GLIBC_2.17 timelocal F +GLIBC_2.17 timerfd_create F +GLIBC_2.17 timerfd_gettime F +GLIBC_2.17 timerfd_settime F +GLIBC_2.17 times F +GLIBC_2.17 timespec_get F +GLIBC_2.17 timezone D 0x8 +GLIBC_2.17 tmpfile F +GLIBC_2.17 tmpfile64 F +GLIBC_2.17 tmpnam F +GLIBC_2.17 tmpnam_r F +GLIBC_2.17 toascii F +GLIBC_2.17 tolower F +GLIBC_2.17 tolower_l F +GLIBC_2.17 toupper F +GLIBC_2.17 toupper_l F +GLIBC_2.17 towctrans F +GLIBC_2.17 towctrans_l F +GLIBC_2.17 towlower F +GLIBC_2.17 towlower_l F +GLIBC_2.17 towupper F +GLIBC_2.17 towupper_l F +GLIBC_2.17 tr_break F +GLIBC_2.17 truncate F +GLIBC_2.17 truncate64 F +GLIBC_2.17 tsearch F +GLIBC_2.17 ttyname F +GLIBC_2.17 ttyname_r F +GLIBC_2.17 ttyslot F +GLIBC_2.17 twalk F +GLIBC_2.17 tzname D 0x10 +GLIBC_2.17 tzset F +GLIBC_2.17 ualarm F +GLIBC_2.17 ulckpwdf F +GLIBC_2.17 ulimit F +GLIBC_2.17 umask F +GLIBC_2.17 umount F +GLIBC_2.17 umount2 F +GLIBC_2.17 uname F +GLIBC_2.17 ungetc F +GLIBC_2.17 ungetwc F +GLIBC_2.17 unlink F +GLIBC_2.17 unlinkat F +GLIBC_2.17 unlockpt F +GLIBC_2.17 unsetenv F +GLIBC_2.17 unshare F +GLIBC_2.17 updwtmp F +GLIBC_2.17 updwtmpx F +GLIBC_2.17 uselib F +GLIBC_2.17 uselocale F +GLIBC_2.17 user2netname F +GLIBC_2.17 usleep F +GLIBC_2.17 ustat F +GLIBC_2.17 utime F +GLIBC_2.17 utimensat F +GLIBC_2.17 utimes F +GLIBC_2.17 utmpname F +GLIBC_2.17 utmpxname F +GLIBC_2.17 valloc F +GLIBC_2.17 vasprintf F +GLIBC_2.17 vdprintf F +GLIBC_2.17 verr F +GLIBC_2.17 verrx F +GLIBC_2.17 versionsort F +GLIBC_2.17 versionsort64 F +GLIBC_2.17 vfork F +GLIBC_2.17 vfprintf F +GLIBC_2.17 vfscanf F +GLIBC_2.17 vfwprintf F +GLIBC_2.17 vfwscanf F +GLIBC_2.17 vhangup F +GLIBC_2.17 vlimit F +GLIBC_2.17 vmsplice F +GLIBC_2.17 vprintf F +GLIBC_2.17 vscanf F +GLIBC_2.17 vsnprintf F +GLIBC_2.17 vsprintf F +GLIBC_2.17 vsscanf F +GLIBC_2.17 vswprintf F +GLIBC_2.17 vswscanf F +GLIBC_2.17 vsyslog F +GLIBC_2.17 vtimes F +GLIBC_2.17 vwarn F +GLIBC_2.17 vwarnx F +GLIBC_2.17 vwprintf F +GLIBC_2.17 vwscanf F +GLIBC_2.17 wait F +GLIBC_2.17 wait3 F +GLIBC_2.17 wait4 F +GLIBC_2.17 waitid F +GLIBC_2.17 waitpid F +GLIBC_2.17 warn F +GLIBC_2.17 warnx F +GLIBC_2.17 wcpcpy F +GLIBC_2.17 wcpncpy F +GLIBC_2.17 wcrtomb F +GLIBC_2.17 wcscasecmp F +GLIBC_2.17 wcscasecmp_l F +GLIBC_2.17 wcscat F +GLIBC_2.17 wcschr F +GLIBC_2.17 wcschrnul F +GLIBC_2.17 wcscmp F +GLIBC_2.17 wcscoll F +GLIBC_2.17 wcscoll_l F +GLIBC_2.17 wcscpy F +GLIBC_2.17 wcscspn F +GLIBC_2.17 wcsdup F +GLIBC_2.17 wcsftime F +GLIBC_2.17 wcsftime_l F +GLIBC_2.17 wcslen F +GLIBC_2.17 wcsncasecmp F +GLIBC_2.17 wcsncasecmp_l F +GLIBC_2.17 wcsncat F +GLIBC_2.17 wcsncmp F +GLIBC_2.17 wcsncpy F +GLIBC_2.17 wcsnlen F +GLIBC_2.17 wcsnrtombs F +GLIBC_2.17 wcspbrk F +GLIBC_2.17 wcsrchr F +GLIBC_2.17 wcsrtombs F +GLIBC_2.17 wcsspn F +GLIBC_2.17 wcsstr F +GLIBC_2.17 wcstod F +GLIBC_2.17 wcstod_l F +GLIBC_2.17 wcstof F +GLIBC_2.17 wcstof_l F +GLIBC_2.17 wcstoimax F +GLIBC_2.17 wcstok F +GLIBC_2.17 wcstol F +GLIBC_2.17 wcstol_l F +GLIBC_2.17 wcstold F +GLIBC_2.17 wcstold_l F +GLIBC_2.17 wcstoll F +GLIBC_2.17 wcstoll_l F +GLIBC_2.17 wcstombs F +GLIBC_2.17 wcstoq F +GLIBC_2.17 wcstoul F +GLIBC_2.17 wcstoul_l F +GLIBC_2.17 wcstoull F +GLIBC_2.17 wcstoull_l F +GLIBC_2.17 wcstoumax F +GLIBC_2.17 wcstouq F +GLIBC_2.17 wcswcs F +GLIBC_2.17 wcswidth F +GLIBC_2.17 wcsxfrm F +GLIBC_2.17 wcsxfrm_l F +GLIBC_2.17 wctob F +GLIBC_2.17 wctomb F +GLIBC_2.17 wctrans F +GLIBC_2.17 wctrans_l F +GLIBC_2.17 wctype F +GLIBC_2.17 wctype_l F +GLIBC_2.17 wcwidth F +GLIBC_2.17 wmemchr F +GLIBC_2.17 wmemcmp F +GLIBC_2.17 wmemcpy F +GLIBC_2.17 wmemmove F +GLIBC_2.17 wmempcpy F +GLIBC_2.17 wmemset F +GLIBC_2.17 wordexp F +GLIBC_2.17 wordfree F +GLIBC_2.17 wprintf F +GLIBC_2.17 write F +GLIBC_2.17 writev F +GLIBC_2.17 wscanf F +GLIBC_2.17 xdecrypt F +GLIBC_2.17 xdr_accepted_reply F +GLIBC_2.17 xdr_array F +GLIBC_2.17 xdr_authdes_cred F +GLIBC_2.17 xdr_authdes_verf F +GLIBC_2.17 xdr_authunix_parms F +GLIBC_2.17 xdr_bool F +GLIBC_2.17 xdr_bytes F +GLIBC_2.17 xdr_callhdr F +GLIBC_2.17 xdr_callmsg F +GLIBC_2.17 xdr_char F +GLIBC_2.17 xdr_cryptkeyarg F +GLIBC_2.17 xdr_cryptkeyarg2 F +GLIBC_2.17 xdr_cryptkeyres F +GLIBC_2.17 xdr_des_block F +GLIBC_2.17 xdr_double F +GLIBC_2.17 xdr_enum F +GLIBC_2.17 xdr_float F +GLIBC_2.17 xdr_free F +GLIBC_2.17 xdr_getcredres F +GLIBC_2.17 xdr_hyper F +GLIBC_2.17 xdr_int F +GLIBC_2.17 xdr_int16_t F +GLIBC_2.17 xdr_int32_t F +GLIBC_2.17 xdr_int64_t F +GLIBC_2.17 xdr_int8_t F +GLIBC_2.17 xdr_key_netstarg F +GLIBC_2.17 xdr_key_netstres F +GLIBC_2.17 xdr_keybuf F +GLIBC_2.17 xdr_keystatus F +GLIBC_2.17 xdr_long F +GLIBC_2.17 xdr_longlong_t F +GLIBC_2.17 xdr_netnamestr F +GLIBC_2.17 xdr_netobj F +GLIBC_2.17 xdr_opaque F +GLIBC_2.17 xdr_opaque_auth F +GLIBC_2.17 xdr_pmap F +GLIBC_2.17 xdr_pmaplist F +GLIBC_2.17 xdr_pointer F +GLIBC_2.17 xdr_quad_t F +GLIBC_2.17 xdr_reference F +GLIBC_2.17 xdr_rejected_reply F +GLIBC_2.17 xdr_replymsg F +GLIBC_2.17 xdr_rmtcall_args F +GLIBC_2.17 xdr_rmtcallres F +GLIBC_2.17 xdr_short F +GLIBC_2.17 xdr_sizeof F +GLIBC_2.17 xdr_string F +GLIBC_2.17 xdr_u_char F +GLIBC_2.17 xdr_u_hyper F +GLIBC_2.17 xdr_u_int F +GLIBC_2.17 xdr_u_long F +GLIBC_2.17 xdr_u_longlong_t F +GLIBC_2.17 xdr_u_quad_t F +GLIBC_2.17 xdr_u_short F +GLIBC_2.17 xdr_uint16_t F +GLIBC_2.17 xdr_uint32_t F +GLIBC_2.17 xdr_uint64_t F +GLIBC_2.17 xdr_uint8_t F +GLIBC_2.17 xdr_union F +GLIBC_2.17 xdr_unixcred F +GLIBC_2.17 xdr_vector F +GLIBC_2.17 xdr_void F +GLIBC_2.17 xdr_wrapstring F +GLIBC_2.17 xdrmem_create F +GLIBC_2.17 xdrrec_create F +GLIBC_2.17 xdrrec_endofrecord F +GLIBC_2.17 xdrrec_eof F +GLIBC_2.17 xdrrec_skiprecord F +GLIBC_2.17 xdrstdio_create F +GLIBC_2.17 xencrypt F +GLIBC_2.17 xprt_register F +GLIBC_2.17 xprt_unregister F +GLIBC_2.18 GLIBC_2.18 A +GLIBC_2.18 __cxa_thread_atexit_impl F +GLIBC_2.22 GLIBC_2.22 A +GLIBC_2.22 fmemopen F +GLIBC_2.23 GLIBC_2.23 A +GLIBC_2.23 fts64_children F +GLIBC_2.23 fts64_close F +GLIBC_2.23 fts64_open F +GLIBC_2.23 fts64_read F +GLIBC_2.23 fts64_set F +GLIBC_2.24 GLIBC_2.24 A +GLIBC_2.24 quick_exit F +GLIBC_2.25 GLIBC_2.25 A +GLIBC_2.25 __explicit_bzero_chk F +GLIBC_2.25 explicit_bzero F +GLIBC_2.25 getentropy F +GLIBC_2.25 getrandom F +GLIBC_2.25 strfromd F +GLIBC_2.25 strfromf F +GLIBC_2.25 strfroml F +GLIBC_2.26 GLIBC_2.26 A +GLIBC_2.26 preadv2 F +GLIBC_2.26 preadv64v2 F +GLIBC_2.26 pwritev2 F +GLIBC_2.26 pwritev64v2 F +GLIBC_2.26 reallocarray F diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist new file mode 100644 index 0000000000..5eb056baf5 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist @@ -0,0 +1,2327 @@ +GLIBC_2.10 GLIBC_2.10 A +GLIBC_2.10 __cxa_at_quick_exit F +GLIBC_2.10 __posix_getopt F +GLIBC_2.10 accept4 F +GLIBC_2.10 endsgent F +GLIBC_2.10 fallocate F +GLIBC_2.10 fallocate64 F +GLIBC_2.10 fgetsgent F +GLIBC_2.10 fgetsgent_r F +GLIBC_2.10 getsgent F +GLIBC_2.10 getsgent_r F +GLIBC_2.10 getsgnam F +GLIBC_2.10 getsgnam_r F +GLIBC_2.10 malloc_info F +GLIBC_2.10 preadv F +GLIBC_2.10 preadv64 F +GLIBC_2.10 psiginfo F +GLIBC_2.10 putsgent F +GLIBC_2.10 pwritev F +GLIBC_2.10 pwritev64 F +GLIBC_2.10 quick_exit F +GLIBC_2.10 register_printf_modifier F +GLIBC_2.10 register_printf_specifier F +GLIBC_2.10 register_printf_type F +GLIBC_2.10 setsgent F +GLIBC_2.10 sgetsgent F +GLIBC_2.10 sgetsgent_r F +GLIBC_2.11 GLIBC_2.11 A +GLIBC_2.11 __longjmp_chk F +GLIBC_2.11 execvpe F +GLIBC_2.11 mkostemps F +GLIBC_2.11 mkostemps64 F +GLIBC_2.11 mkstemps F +GLIBC_2.11 mkstemps64 F +GLIBC_2.12 GLIBC_2.12 A +GLIBC_2.12 _sys_errlist D 0x438 +GLIBC_2.12 _sys_nerr D 0x4 +GLIBC_2.12 ntp_gettimex F +GLIBC_2.12 recvmmsg F +GLIBC_2.12 sys_errlist D 0x438 +GLIBC_2.12 sys_nerr D 0x4 +GLIBC_2.13 GLIBC_2.13 A +GLIBC_2.13 fanotify_init F +GLIBC_2.13 fanotify_mark F +GLIBC_2.13 prlimit F +GLIBC_2.13 prlimit64 F +GLIBC_2.14 GLIBC_2.14 A +GLIBC_2.14 clock_adjtime F +GLIBC_2.14 name_to_handle_at F +GLIBC_2.14 open_by_handle_at F +GLIBC_2.14 sendmmsg F +GLIBC_2.14 setns F +GLIBC_2.14 syncfs F +GLIBC_2.15 GLIBC_2.15 A +GLIBC_2.15 __fdelt_chk F +GLIBC_2.15 __fdelt_warn F +GLIBC_2.15 posix_spawn F +GLIBC_2.15 posix_spawnp F +GLIBC_2.15 process_vm_readv F +GLIBC_2.15 process_vm_writev F +GLIBC_2.15 scandirat F +GLIBC_2.15 scandirat64 F +GLIBC_2.16 GLIBC_2.16 A +GLIBC_2.16 __getauxval F +GLIBC_2.16 __poll_chk F +GLIBC_2.16 __ppoll_chk F +GLIBC_2.16 aligned_alloc F +GLIBC_2.16 c16rtomb F +GLIBC_2.16 c32rtomb F +GLIBC_2.16 getauxval F +GLIBC_2.16 mbrtoc16 F +GLIBC_2.16 mbrtoc32 F +GLIBC_2.16 timespec_get F +GLIBC_2.17 GLIBC_2.17 A +GLIBC_2.17 __ppc_get_timebase_freq F +GLIBC_2.17 clock_getcpuclockid F +GLIBC_2.17 clock_getres F +GLIBC_2.17 clock_gettime F +GLIBC_2.17 clock_nanosleep F +GLIBC_2.17 clock_settime F +GLIBC_2.17 secure_getenv F +GLIBC_2.18 GLIBC_2.18 A +GLIBC_2.18 __cxa_thread_atexit_impl F +GLIBC_2.22 GLIBC_2.22 A +GLIBC_2.22 fmemopen F +GLIBC_2.23 GLIBC_2.23 A +GLIBC_2.23 fts64_children F +GLIBC_2.23 fts64_close F +GLIBC_2.23 fts64_open F +GLIBC_2.23 fts64_read F +GLIBC_2.23 fts64_set F +GLIBC_2.24 GLIBC_2.24 A +GLIBC_2.24 quick_exit F +GLIBC_2.25 GLIBC_2.25 A +GLIBC_2.25 __explicit_bzero_chk F +GLIBC_2.25 explicit_bzero F +GLIBC_2.25 getentropy F +GLIBC_2.25 getrandom F +GLIBC_2.25 strfromd F +GLIBC_2.25 strfromf F +GLIBC_2.25 strfroml F +GLIBC_2.26 GLIBC_2.26 A +GLIBC_2.26 preadv2 F +GLIBC_2.26 preadv64v2 F +GLIBC_2.26 pwritev2 F +GLIBC_2.26 pwritev64v2 F +GLIBC_2.26 reallocarray F +GLIBC_2.3 GLIBC_2.3 A +GLIBC_2.3 _Exit F +GLIBC_2.3 _IO_2_1_stderr_ D 0xe0 +GLIBC_2.3 _IO_2_1_stdin_ D 0xe0 +GLIBC_2.3 _IO_2_1_stdout_ D 0xe0 +GLIBC_2.3 _IO_adjust_column F +GLIBC_2.3 _IO_adjust_wcolumn F +GLIBC_2.3 _IO_default_doallocate F +GLIBC_2.3 _IO_default_finish F +GLIBC_2.3 _IO_default_pbackfail F +GLIBC_2.3 _IO_default_uflow F +GLIBC_2.3 _IO_default_xsgetn F +GLIBC_2.3 _IO_default_xsputn F +GLIBC_2.3 _IO_do_write F +GLIBC_2.3 _IO_doallocbuf F +GLIBC_2.3 _IO_fclose F +GLIBC_2.3 _IO_fdopen F +GLIBC_2.3 _IO_feof F +GLIBC_2.3 _IO_ferror F +GLIBC_2.3 _IO_fflush F +GLIBC_2.3 _IO_fgetpos F +GLIBC_2.3 _IO_fgetpos64 F +GLIBC_2.3 _IO_fgets F +GLIBC_2.3 _IO_file_attach F +GLIBC_2.3 _IO_file_close F +GLIBC_2.3 _IO_file_close_it F +GLIBC_2.3 _IO_file_doallocate F +GLIBC_2.3 _IO_file_finish F +GLIBC_2.3 _IO_file_fopen F +GLIBC_2.3 _IO_file_init F +GLIBC_2.3 _IO_file_jumps D 0xa8 +GLIBC_2.3 _IO_file_open F +GLIBC_2.3 _IO_file_overflow F +GLIBC_2.3 _IO_file_read F +GLIBC_2.3 _IO_file_seek F +GLIBC_2.3 _IO_file_seekoff F +GLIBC_2.3 _IO_file_setbuf F +GLIBC_2.3 _IO_file_stat F +GLIBC_2.3 _IO_file_sync F +GLIBC_2.3 _IO_file_underflow F +GLIBC_2.3 _IO_file_write F +GLIBC_2.3 _IO_file_xsputn F +GLIBC_2.3 _IO_flockfile F +GLIBC_2.3 _IO_flush_all F +GLIBC_2.3 _IO_flush_all_linebuffered F +GLIBC_2.3 _IO_fopen F +GLIBC_2.3 _IO_fprintf F +GLIBC_2.3 _IO_fputs F +GLIBC_2.3 _IO_fread F +GLIBC_2.3 _IO_free_backup_area F +GLIBC_2.3 _IO_free_wbackup_area F +GLIBC_2.3 _IO_fsetpos F +GLIBC_2.3 _IO_fsetpos64 F +GLIBC_2.3 _IO_ftell F +GLIBC_2.3 _IO_ftrylockfile F +GLIBC_2.3 _IO_funlockfile F +GLIBC_2.3 _IO_fwrite F +GLIBC_2.3 _IO_getc F +GLIBC_2.3 _IO_getline F +GLIBC_2.3 _IO_getline_info F +GLIBC_2.3 _IO_gets F +GLIBC_2.3 _IO_init F +GLIBC_2.3 _IO_init_marker F +GLIBC_2.3 _IO_init_wmarker F +GLIBC_2.3 _IO_iter_begin F +GLIBC_2.3 _IO_iter_end F +GLIBC_2.3 _IO_iter_file F +GLIBC_2.3 _IO_iter_next F +GLIBC_2.3 _IO_least_wmarker F +GLIBC_2.3 _IO_link_in F +GLIBC_2.3 _IO_list_all D 0x8 +GLIBC_2.3 _IO_list_lock F +GLIBC_2.3 _IO_list_resetlock F +GLIBC_2.3 _IO_list_unlock F +GLIBC_2.3 _IO_marker_delta F +GLIBC_2.3 _IO_marker_difference F +GLIBC_2.3 _IO_padn F +GLIBC_2.3 _IO_peekc_locked F +GLIBC_2.3 _IO_popen F +GLIBC_2.3 _IO_printf F +GLIBC_2.3 _IO_proc_close F +GLIBC_2.3 _IO_proc_open F +GLIBC_2.3 _IO_putc F +GLIBC_2.3 _IO_puts F +GLIBC_2.3 _IO_remove_marker F +GLIBC_2.3 _IO_seekmark F +GLIBC_2.3 _IO_seekoff F +GLIBC_2.3 _IO_seekpos F +GLIBC_2.3 _IO_seekwmark F +GLIBC_2.3 _IO_setb F +GLIBC_2.3 _IO_setbuffer F +GLIBC_2.3 _IO_setvbuf F +GLIBC_2.3 _IO_sgetn F +GLIBC_2.3 _IO_sprintf F +GLIBC_2.3 _IO_sputbackc F +GLIBC_2.3 _IO_sputbackwc F +GLIBC_2.3 _IO_sscanf F +GLIBC_2.3 _IO_str_init_readonly F +GLIBC_2.3 _IO_str_init_static F +GLIBC_2.3 _IO_str_overflow F +GLIBC_2.3 _IO_str_pbackfail F +GLIBC_2.3 _IO_str_seekoff F +GLIBC_2.3 _IO_str_underflow F +GLIBC_2.3 _IO_sungetc F +GLIBC_2.3 _IO_sungetwc F +GLIBC_2.3 _IO_switch_to_get_mode F +GLIBC_2.3 _IO_switch_to_main_wget_area F +GLIBC_2.3 _IO_switch_to_wbackup_area F +GLIBC_2.3 _IO_switch_to_wget_mode F +GLIBC_2.3 _IO_un_link F +GLIBC_2.3 _IO_ungetc F +GLIBC_2.3 _IO_unsave_markers F +GLIBC_2.3 _IO_unsave_wmarkers F +GLIBC_2.3 _IO_vfprintf F +GLIBC_2.3 _IO_vfscanf F +GLIBC_2.3 _IO_vsprintf F +GLIBC_2.3 _IO_wdefault_doallocate F +GLIBC_2.3 _IO_wdefault_finish F +GLIBC_2.3 _IO_wdefault_pbackfail F +GLIBC_2.3 _IO_wdefault_uflow F +GLIBC_2.3 _IO_wdefault_xsgetn F +GLIBC_2.3 _IO_wdefault_xsputn F +GLIBC_2.3 _IO_wdo_write F +GLIBC_2.3 _IO_wdoallocbuf F +GLIBC_2.3 _IO_wfile_jumps D 0xa8 +GLIBC_2.3 _IO_wfile_overflow F +GLIBC_2.3 _IO_wfile_seekoff F +GLIBC_2.3 _IO_wfile_sync F +GLIBC_2.3 _IO_wfile_underflow F +GLIBC_2.3 _IO_wfile_xsputn F +GLIBC_2.3 _IO_wmarker_delta F +GLIBC_2.3 _IO_wsetb F +GLIBC_2.3 __adjtimex F +GLIBC_2.3 __after_morecore_hook D 0x8 +GLIBC_2.3 __argz_count F +GLIBC_2.3 __argz_next F +GLIBC_2.3 __argz_stringify F +GLIBC_2.3 __asprintf F +GLIBC_2.3 __assert F +GLIBC_2.3 __assert_fail F +GLIBC_2.3 __assert_perror_fail F +GLIBC_2.3 __backtrace F +GLIBC_2.3 __backtrace_symbols F +GLIBC_2.3 __backtrace_symbols_fd F +GLIBC_2.3 __bsd_getpgrp F +GLIBC_2.3 __bzero F +GLIBC_2.3 __check_rhosts_file D 0x4 +GLIBC_2.3 __clone F +GLIBC_2.3 __close F +GLIBC_2.3 __cmsg_nxthdr F +GLIBC_2.3 __connect F +GLIBC_2.3 __ctype_b_loc F +GLIBC_2.3 __ctype_get_mb_cur_max F +GLIBC_2.3 __ctype_tolower_loc F +GLIBC_2.3 __ctype_toupper_loc F +GLIBC_2.3 __curbrk D 0x8 +GLIBC_2.3 __cxa_atexit F +GLIBC_2.3 __cxa_finalize F +GLIBC_2.3 __cyg_profile_func_enter F +GLIBC_2.3 __cyg_profile_func_exit F +GLIBC_2.3 __daylight D 0x4 +GLIBC_2.3 __dcgettext F +GLIBC_2.3 __default_morecore F +GLIBC_2.3 __dgettext F +GLIBC_2.3 __dup2 F +GLIBC_2.3 __duplocale F +GLIBC_2.3 __endmntent F +GLIBC_2.3 __environ D 0x8 +GLIBC_2.3 __errno_location F +GLIBC_2.3 __fbufsize F +GLIBC_2.3 __fcntl F +GLIBC_2.3 __ffs F +GLIBC_2.3 __finite F +GLIBC_2.3 __finitef F +GLIBC_2.3 __finitel F +GLIBC_2.3 __flbf F +GLIBC_2.3 __fork F +GLIBC_2.3 __fpending F +GLIBC_2.3 __fpu_control D 0x4 +GLIBC_2.3 __fpurge F +GLIBC_2.3 __freadable F +GLIBC_2.3 __freading F +GLIBC_2.3 __free_hook D 0x8 +GLIBC_2.3 __freelocale F +GLIBC_2.3 __fsetlocking F +GLIBC_2.3 __fwritable F +GLIBC_2.3 __fwriting F +GLIBC_2.3 __fxstat F +GLIBC_2.3 __fxstat64 F +GLIBC_2.3 __getdelim F +GLIBC_2.3 __getmntent_r F +GLIBC_2.3 __getpagesize F +GLIBC_2.3 __getpgid F +GLIBC_2.3 __getpid F +GLIBC_2.3 __gettimeofday F +GLIBC_2.3 __gmtime_r F +GLIBC_2.3 __h_errno_location F +GLIBC_2.3 __isalnum_l F +GLIBC_2.3 __isalpha_l F +GLIBC_2.3 __isascii_l F +GLIBC_2.3 __isblank_l F +GLIBC_2.3 __iscntrl_l F +GLIBC_2.3 __isctype F +GLIBC_2.3 __isdigit_l F +GLIBC_2.3 __isgraph_l F +GLIBC_2.3 __isinf F +GLIBC_2.3 __isinff F +GLIBC_2.3 __isinfl F +GLIBC_2.3 __islower_l F +GLIBC_2.3 __isnan F +GLIBC_2.3 __isnanf F +GLIBC_2.3 __isnanl F +GLIBC_2.3 __isprint_l F +GLIBC_2.3 __ispunct_l F +GLIBC_2.3 __isspace_l F +GLIBC_2.3 __isupper_l F +GLIBC_2.3 __iswalnum_l F +GLIBC_2.3 __iswalpha_l F +GLIBC_2.3 __iswblank_l F +GLIBC_2.3 __iswcntrl_l F +GLIBC_2.3 __iswctype F +GLIBC_2.3 __iswctype_l F +GLIBC_2.3 __iswdigit_l F +GLIBC_2.3 __iswgraph_l F +GLIBC_2.3 __iswlower_l F +GLIBC_2.3 __iswprint_l F +GLIBC_2.3 __iswpunct_l F +GLIBC_2.3 __iswspace_l F +GLIBC_2.3 __iswupper_l F +GLIBC_2.3 __iswxdigit_l F +GLIBC_2.3 __isxdigit_l F +GLIBC_2.3 __ivaliduser F +GLIBC_2.3 __key_decryptsession_pk_LOCAL D 0x8 +GLIBC_2.3 __key_encryptsession_pk_LOCAL D 0x8 +GLIBC_2.3 __key_gendes_LOCAL D 0x8 +GLIBC_2.3 __libc_allocate_rtsig F +GLIBC_2.3 __libc_calloc F +GLIBC_2.3 __libc_current_sigrtmax F +GLIBC_2.3 __libc_current_sigrtmin F +GLIBC_2.3 __libc_free F +GLIBC_2.3 __libc_freeres F +GLIBC_2.3 __libc_init_first F +GLIBC_2.3 __libc_mallinfo F +GLIBC_2.3 __libc_malloc F +GLIBC_2.3 __libc_mallopt F +GLIBC_2.3 __libc_memalign F +GLIBC_2.3 __libc_pvalloc F +GLIBC_2.3 __libc_realloc F +GLIBC_2.3 __libc_sa_len F +GLIBC_2.3 __libc_start_main F +GLIBC_2.3 __libc_valloc F +GLIBC_2.3 __lseek F +GLIBC_2.3 __lxstat F +GLIBC_2.3 __lxstat64 F +GLIBC_2.3 __malloc_hook D 0x8 +GLIBC_2.3 __malloc_initialize_hook D 0x8 +GLIBC_2.3 __mbrlen F +GLIBC_2.3 __mbrtowc F +GLIBC_2.3 __memalign_hook D 0x8 +GLIBC_2.3 __mempcpy F +GLIBC_2.3 __mempcpy_small F +GLIBC_2.3 __monstartup F +GLIBC_2.3 __morecore D 0x8 +GLIBC_2.3 __nanosleep F +GLIBC_2.3 __newlocale F +GLIBC_2.3 __nl_langinfo_l F +GLIBC_2.3 __nss_configure_lookup F +GLIBC_2.3 __nss_database_lookup F +GLIBC_2.3 __nss_group_lookup F +GLIBC_2.3 __nss_hostname_digits_dots F +GLIBC_2.3 __nss_hosts_lookup F +GLIBC_2.3 __nss_next F +GLIBC_2.3 __nss_passwd_lookup F +GLIBC_2.3 __open F +GLIBC_2.3 __open64 F +GLIBC_2.3 __overflow F +GLIBC_2.3 __pipe F +GLIBC_2.3 __poll F +GLIBC_2.3 __pread64 F +GLIBC_2.3 __printf_fp F +GLIBC_2.3 __profile_frequency F +GLIBC_2.3 __progname D 0x8 +GLIBC_2.3 __progname_full D 0x8 +GLIBC_2.3 __pwrite64 F +GLIBC_2.3 __rawmemchr F +GLIBC_2.3 __rcmd_errstr D 0x8 +GLIBC_2.3 __read F +GLIBC_2.3 __realloc_hook D 0x8 +GLIBC_2.3 __res_init F +GLIBC_2.3 __res_nclose F +GLIBC_2.3 __res_ninit F +GLIBC_2.3 __res_randomid F +GLIBC_2.3 __res_state F +GLIBC_2.3 __rpc_thread_createerr F +GLIBC_2.3 __rpc_thread_svc_fdset F +GLIBC_2.3 __rpc_thread_svc_max_pollfd F +GLIBC_2.3 __rpc_thread_svc_pollfd F +GLIBC_2.3 __sbrk F +GLIBC_2.3 __sched_get_priority_max F +GLIBC_2.3 __sched_get_priority_min F +GLIBC_2.3 __sched_getparam F +GLIBC_2.3 __sched_getscheduler F +GLIBC_2.3 __sched_setscheduler F +GLIBC_2.3 __sched_yield F +GLIBC_2.3 __secure_getenv F +GLIBC_2.3 __select F +GLIBC_2.3 __send F +GLIBC_2.3 __setmntent F +GLIBC_2.3 __setpgid F +GLIBC_2.3 __sigaction F +GLIBC_2.3 __sigaddset F +GLIBC_2.3 __sigdelset F +GLIBC_2.3 __sigismember F +GLIBC_2.3 __signbit F +GLIBC_2.3 __signbitf F +GLIBC_2.3 __sigpause F +GLIBC_2.3 __sigsetjmp F +GLIBC_2.3 __sigsuspend F +GLIBC_2.3 __statfs F +GLIBC_2.3 __stpcpy F +GLIBC_2.3 __stpcpy_small F +GLIBC_2.3 __stpncpy F +GLIBC_2.3 __strcasecmp F +GLIBC_2.3 __strcasecmp_l F +GLIBC_2.3 __strcasestr F +GLIBC_2.3 __strcoll_l F +GLIBC_2.3 __strcpy_small F +GLIBC_2.3 __strcspn_c1 F +GLIBC_2.3 __strcspn_c2 F +GLIBC_2.3 __strcspn_c3 F +GLIBC_2.3 __strdup F +GLIBC_2.3 __strerror_r F +GLIBC_2.3 __strfmon_l F +GLIBC_2.3 __strftime_l F +GLIBC_2.3 __strncasecmp_l F +GLIBC_2.3 __strndup F +GLIBC_2.3 __strpbrk_c2 F +GLIBC_2.3 __strpbrk_c3 F +GLIBC_2.3 __strsep_1c F +GLIBC_2.3 __strsep_2c F +GLIBC_2.3 __strsep_3c F +GLIBC_2.3 __strsep_g F +GLIBC_2.3 __strspn_c1 F +GLIBC_2.3 __strspn_c2 F +GLIBC_2.3 __strspn_c3 F +GLIBC_2.3 __strtod_internal F +GLIBC_2.3 __strtod_l F +GLIBC_2.3 __strtof_internal F +GLIBC_2.3 __strtof_l F +GLIBC_2.3 __strtok_r F +GLIBC_2.3 __strtok_r_1c F +GLIBC_2.3 __strtol_internal F +GLIBC_2.3 __strtol_l F +GLIBC_2.3 __strtold_internal F +GLIBC_2.3 __strtold_l F +GLIBC_2.3 __strtoll_internal F +GLIBC_2.3 __strtoll_l F +GLIBC_2.3 __strtoul_internal F +GLIBC_2.3 __strtoul_l F +GLIBC_2.3 __strtoull_internal F +GLIBC_2.3 __strtoull_l F +GLIBC_2.3 __strverscmp F +GLIBC_2.3 __strxfrm_l F +GLIBC_2.3 __sysconf F +GLIBC_2.3 __sysctl F +GLIBC_2.3 __sysv_signal F +GLIBC_2.3 __timezone D 0x8 +GLIBC_2.3 __toascii_l F +GLIBC_2.3 __tolower_l F +GLIBC_2.3 __toupper_l F +GLIBC_2.3 __towctrans F +GLIBC_2.3 __towctrans_l F +GLIBC_2.3 __towlower_l F +GLIBC_2.3 __towupper_l F +GLIBC_2.3 __tzname D 0x10 +GLIBC_2.3 __uflow F +GLIBC_2.3 __underflow F +GLIBC_2.3 __uselocale F +GLIBC_2.3 __vfork F +GLIBC_2.3 __vfscanf F +GLIBC_2.3 __vsnprintf F +GLIBC_2.3 __vsscanf F +GLIBC_2.3 __wait F +GLIBC_2.3 __waitpid F +GLIBC_2.3 __wcscasecmp_l F +GLIBC_2.3 __wcscoll_l F +GLIBC_2.3 __wcsftime_l F +GLIBC_2.3 __wcsncasecmp_l F +GLIBC_2.3 __wcstod_internal F +GLIBC_2.3 __wcstod_l F +GLIBC_2.3 __wcstof_internal F +GLIBC_2.3 __wcstof_l F +GLIBC_2.3 __wcstol_internal F +GLIBC_2.3 __wcstol_l F +GLIBC_2.3 __wcstold_internal F +GLIBC_2.3 __wcstold_l F +GLIBC_2.3 __wcstoll_internal F +GLIBC_2.3 __wcstoll_l F +GLIBC_2.3 __wcstoul_internal F +GLIBC_2.3 __wcstoul_l F +GLIBC_2.3 __wcstoull_internal F +GLIBC_2.3 __wcstoull_l F +GLIBC_2.3 __wcsxfrm_l F +GLIBC_2.3 __wctrans_l F +GLIBC_2.3 __wctype_l F +GLIBC_2.3 __woverflow F +GLIBC_2.3 __write F +GLIBC_2.3 __wuflow F +GLIBC_2.3 __wunderflow F +GLIBC_2.3 __xmknod F +GLIBC_2.3 __xpg_basename F +GLIBC_2.3 __xpg_sigpause F +GLIBC_2.3 __xstat F +GLIBC_2.3 __xstat64 F +GLIBC_2.3 _authenticate F +GLIBC_2.3 _dl_mcount_wrapper F +GLIBC_2.3 _dl_mcount_wrapper_check F +GLIBC_2.3 _environ D 0x8 +GLIBC_2.3 _exit F +GLIBC_2.3 _flushlbf F +GLIBC_2.3 _libc_intl_domainname D 0x5 +GLIBC_2.3 _longjmp F +GLIBC_2.3 _mcleanup F +GLIBC_2.3 _mcount F +GLIBC_2.3 _nl_default_dirname D 0x12 +GLIBC_2.3 _nl_domain_bindings D 0x8 +GLIBC_2.3 _nl_msg_cat_cntr D 0x4 +GLIBC_2.3 _null_auth D 0x18 +GLIBC_2.3 _obstack D 0x8 +GLIBC_2.3 _obstack_allocated_p F +GLIBC_2.3 _obstack_begin F +GLIBC_2.3 _obstack_begin_1 F +GLIBC_2.3 _obstack_free F +GLIBC_2.3 _obstack_memory_used F +GLIBC_2.3 _obstack_newchunk F +GLIBC_2.3 _res D 0x238 +GLIBC_2.3 _res_hconf D 0x48 +GLIBC_2.3 _rpc_dtablesize F +GLIBC_2.3 _seterr_reply F +GLIBC_2.3 _setjmp F +GLIBC_2.3 _sys_errlist D 0x3f0 +GLIBC_2.3 _sys_nerr D 0x4 +GLIBC_2.3 _sys_siglist D 0x200 +GLIBC_2.3 _tolower F +GLIBC_2.3 _toupper F +GLIBC_2.3 a64l F +GLIBC_2.3 abort F +GLIBC_2.3 abs F +GLIBC_2.3 accept F +GLIBC_2.3 access F +GLIBC_2.3 acct F +GLIBC_2.3 addmntent F +GLIBC_2.3 addseverity F +GLIBC_2.3 adjtime F +GLIBC_2.3 adjtimex F +GLIBC_2.3 advance F +GLIBC_2.3 alarm F +GLIBC_2.3 alphasort F +GLIBC_2.3 alphasort64 F +GLIBC_2.3 argp_err_exit_status D 0x4 +GLIBC_2.3 argp_error F +GLIBC_2.3 argp_failure F +GLIBC_2.3 argp_help F +GLIBC_2.3 argp_parse F +GLIBC_2.3 argp_program_bug_address D 0x8 +GLIBC_2.3 argp_program_version D 0x8 +GLIBC_2.3 argp_program_version_hook D 0x8 +GLIBC_2.3 argp_state_help F +GLIBC_2.3 argp_usage F +GLIBC_2.3 argz_add F +GLIBC_2.3 argz_add_sep F +GLIBC_2.3 argz_append F +GLIBC_2.3 argz_count F +GLIBC_2.3 argz_create F +GLIBC_2.3 argz_create_sep F +GLIBC_2.3 argz_delete F +GLIBC_2.3 argz_extract F +GLIBC_2.3 argz_insert F +GLIBC_2.3 argz_next F +GLIBC_2.3 argz_replace F +GLIBC_2.3 argz_stringify F +GLIBC_2.3 asctime F +GLIBC_2.3 asctime_r F +GLIBC_2.3 asprintf F +GLIBC_2.3 atof F +GLIBC_2.3 atoi F +GLIBC_2.3 atol F +GLIBC_2.3 atoll F +GLIBC_2.3 authdes_create F +GLIBC_2.3 authdes_getucred F +GLIBC_2.3 authdes_pk_create F +GLIBC_2.3 authnone_create F +GLIBC_2.3 authunix_create F +GLIBC_2.3 authunix_create_default F +GLIBC_2.3 backtrace F +GLIBC_2.3 backtrace_symbols F +GLIBC_2.3 backtrace_symbols_fd F +GLIBC_2.3 basename F +GLIBC_2.3 bcmp F +GLIBC_2.3 bcopy F +GLIBC_2.3 bdflush F +GLIBC_2.3 bind F +GLIBC_2.3 bind_textdomain_codeset F +GLIBC_2.3 bindresvport F +GLIBC_2.3 bindtextdomain F +GLIBC_2.3 brk F +GLIBC_2.3 bsd_signal F +GLIBC_2.3 bsearch F +GLIBC_2.3 btowc F +GLIBC_2.3 bzero F +GLIBC_2.3 calloc F +GLIBC_2.3 callrpc F +GLIBC_2.3 canonicalize_file_name F +GLIBC_2.3 capget F +GLIBC_2.3 capset F +GLIBC_2.3 catclose F +GLIBC_2.3 catgets F +GLIBC_2.3 catopen F +GLIBC_2.3 cbc_crypt F +GLIBC_2.3 cfgetispeed F +GLIBC_2.3 cfgetospeed F +GLIBC_2.3 cfmakeraw F +GLIBC_2.3 cfree F +GLIBC_2.3 cfsetispeed F +GLIBC_2.3 cfsetospeed F +GLIBC_2.3 cfsetspeed F +GLIBC_2.3 chdir F +GLIBC_2.3 chflags F +GLIBC_2.3 chmod F +GLIBC_2.3 chown F +GLIBC_2.3 chroot F +GLIBC_2.3 clearenv F +GLIBC_2.3 clearerr F +GLIBC_2.3 clearerr_unlocked F +GLIBC_2.3 clnt_broadcast F +GLIBC_2.3 clnt_create F +GLIBC_2.3 clnt_pcreateerror F +GLIBC_2.3 clnt_perrno F +GLIBC_2.3 clnt_perror F +GLIBC_2.3 clnt_spcreateerror F +GLIBC_2.3 clnt_sperrno F +GLIBC_2.3 clnt_sperror F +GLIBC_2.3 clntraw_create F +GLIBC_2.3 clnttcp_create F +GLIBC_2.3 clntudp_bufcreate F +GLIBC_2.3 clntudp_create F +GLIBC_2.3 clntunix_create F +GLIBC_2.3 clock F +GLIBC_2.3 clone F +GLIBC_2.3 close F +GLIBC_2.3 closedir F +GLIBC_2.3 closelog F +GLIBC_2.3 confstr F +GLIBC_2.3 connect F +GLIBC_2.3 copysign F +GLIBC_2.3 copysignf F +GLIBC_2.3 copysignl F +GLIBC_2.3 creat F +GLIBC_2.3 creat64 F +GLIBC_2.3 create_module F +GLIBC_2.3 ctermid F +GLIBC_2.3 ctime F +GLIBC_2.3 ctime_r F +GLIBC_2.3 cuserid F +GLIBC_2.3 daemon F +GLIBC_2.3 daylight D 0x4 +GLIBC_2.3 dcgettext F +GLIBC_2.3 dcngettext F +GLIBC_2.3 delete_module F +GLIBC_2.3 des_setparity F +GLIBC_2.3 dgettext F +GLIBC_2.3 difftime F +GLIBC_2.3 dirfd F +GLIBC_2.3 dirname F +GLIBC_2.3 div F +GLIBC_2.3 dl_iterate_phdr F +GLIBC_2.3 dngettext F +GLIBC_2.3 dprintf F +GLIBC_2.3 drand48 F +GLIBC_2.3 drand48_r F +GLIBC_2.3 dup F +GLIBC_2.3 dup2 F +GLIBC_2.3 duplocale F +GLIBC_2.3 dysize F +GLIBC_2.3 ecb_crypt F +GLIBC_2.3 ecvt F +GLIBC_2.3 ecvt_r F +GLIBC_2.3 endaliasent F +GLIBC_2.3 endfsent F +GLIBC_2.3 endgrent F +GLIBC_2.3 endhostent F +GLIBC_2.3 endmntent F +GLIBC_2.3 endnetent F +GLIBC_2.3 endnetgrent F +GLIBC_2.3 endprotoent F +GLIBC_2.3 endpwent F +GLIBC_2.3 endrpcent F +GLIBC_2.3 endservent F +GLIBC_2.3 endspent F +GLIBC_2.3 endttyent F +GLIBC_2.3 endusershell F +GLIBC_2.3 endutent F +GLIBC_2.3 endutxent F +GLIBC_2.3 environ D 0x8 +GLIBC_2.3 envz_add F +GLIBC_2.3 envz_entry F +GLIBC_2.3 envz_get F +GLIBC_2.3 envz_merge F +GLIBC_2.3 envz_remove F +GLIBC_2.3 envz_strip F +GLIBC_2.3 erand48 F +GLIBC_2.3 erand48_r F +GLIBC_2.3 err F +GLIBC_2.3 error F +GLIBC_2.3 error_at_line F +GLIBC_2.3 error_message_count D 0x4 +GLIBC_2.3 error_one_per_line D 0x4 +GLIBC_2.3 error_print_progname D 0x8 +GLIBC_2.3 errx F +GLIBC_2.3 ether_aton F +GLIBC_2.3 ether_aton_r F +GLIBC_2.3 ether_hostton F +GLIBC_2.3 ether_line F +GLIBC_2.3 ether_ntoa F +GLIBC_2.3 ether_ntoa_r F +GLIBC_2.3 ether_ntohost F +GLIBC_2.3 euidaccess F +GLIBC_2.3 execl F +GLIBC_2.3 execle F +GLIBC_2.3 execlp F +GLIBC_2.3 execv F +GLIBC_2.3 execve F +GLIBC_2.3 execvp F +GLIBC_2.3 exit F +GLIBC_2.3 fattach F +GLIBC_2.3 fchdir F +GLIBC_2.3 fchflags F +GLIBC_2.3 fchmod F +GLIBC_2.3 fchown F +GLIBC_2.3 fclose F +GLIBC_2.3 fcloseall F +GLIBC_2.3 fcntl F +GLIBC_2.3 fcvt F +GLIBC_2.3 fcvt_r F +GLIBC_2.3 fdatasync F +GLIBC_2.3 fdetach F +GLIBC_2.3 fdopen F +GLIBC_2.3 feof F +GLIBC_2.3 feof_unlocked F +GLIBC_2.3 ferror F +GLIBC_2.3 ferror_unlocked F +GLIBC_2.3 fexecve F +GLIBC_2.3 fflush F +GLIBC_2.3 fflush_unlocked F +GLIBC_2.3 ffs F +GLIBC_2.3 ffsl F +GLIBC_2.3 ffsll F +GLIBC_2.3 fgetc F +GLIBC_2.3 fgetc_unlocked F +GLIBC_2.3 fgetgrent F +GLIBC_2.3 fgetgrent_r F +GLIBC_2.3 fgetpos F +GLIBC_2.3 fgetpos64 F +GLIBC_2.3 fgetpwent F +GLIBC_2.3 fgetpwent_r F +GLIBC_2.3 fgets F +GLIBC_2.3 fgets_unlocked F +GLIBC_2.3 fgetspent F +GLIBC_2.3 fgetspent_r F +GLIBC_2.3 fgetwc F +GLIBC_2.3 fgetwc_unlocked F +GLIBC_2.3 fgetws F +GLIBC_2.3 fgetws_unlocked F +GLIBC_2.3 fgetxattr F +GLIBC_2.3 fileno F +GLIBC_2.3 fileno_unlocked F +GLIBC_2.3 finite F +GLIBC_2.3 finitef F +GLIBC_2.3 finitel F +GLIBC_2.3 flistxattr F +GLIBC_2.3 flock F +GLIBC_2.3 flockfile F +GLIBC_2.3 fmemopen F +GLIBC_2.3 fmtmsg F +GLIBC_2.3 fnmatch F +GLIBC_2.3 fopen F +GLIBC_2.3 fopen64 F +GLIBC_2.3 fopencookie F +GLIBC_2.3 fork F +GLIBC_2.3 fpathconf F +GLIBC_2.3 fprintf F +GLIBC_2.3 fputc F +GLIBC_2.3 fputc_unlocked F +GLIBC_2.3 fputs F +GLIBC_2.3 fputs_unlocked F +GLIBC_2.3 fputwc F +GLIBC_2.3 fputwc_unlocked F +GLIBC_2.3 fputws F +GLIBC_2.3 fputws_unlocked F +GLIBC_2.3 fread F +GLIBC_2.3 fread_unlocked F +GLIBC_2.3 free F +GLIBC_2.3 freeaddrinfo F +GLIBC_2.3 freeifaddrs F +GLIBC_2.3 freelocale F +GLIBC_2.3 fremovexattr F +GLIBC_2.3 freopen F +GLIBC_2.3 freopen64 F +GLIBC_2.3 frexp F +GLIBC_2.3 frexpf F +GLIBC_2.3 frexpl F +GLIBC_2.3 fscanf F +GLIBC_2.3 fseek F +GLIBC_2.3 fseeko F +GLIBC_2.3 fseeko64 F +GLIBC_2.3 fsetpos F +GLIBC_2.3 fsetpos64 F +GLIBC_2.3 fsetxattr F +GLIBC_2.3 fstatfs F +GLIBC_2.3 fstatfs64 F +GLIBC_2.3 fstatvfs F +GLIBC_2.3 fstatvfs64 F +GLIBC_2.3 fsync F +GLIBC_2.3 ftell F +GLIBC_2.3 ftello F +GLIBC_2.3 ftello64 F +GLIBC_2.3 ftime F +GLIBC_2.3 ftok F +GLIBC_2.3 ftruncate F +GLIBC_2.3 ftruncate64 F +GLIBC_2.3 ftrylockfile F +GLIBC_2.3 fts_children F +GLIBC_2.3 fts_close F +GLIBC_2.3 fts_open F +GLIBC_2.3 fts_read F +GLIBC_2.3 fts_set F +GLIBC_2.3 ftw F +GLIBC_2.3 ftw64 F +GLIBC_2.3 funlockfile F +GLIBC_2.3 futimes F +GLIBC_2.3 fwide F +GLIBC_2.3 fwprintf F +GLIBC_2.3 fwrite F +GLIBC_2.3 fwrite_unlocked F +GLIBC_2.3 fwscanf F +GLIBC_2.3 gai_strerror F +GLIBC_2.3 gcvt F +GLIBC_2.3 get_avphys_pages F +GLIBC_2.3 get_current_dir_name F +GLIBC_2.3 get_kernel_syms F +GLIBC_2.3 get_myaddress F +GLIBC_2.3 get_nprocs F +GLIBC_2.3 get_nprocs_conf F +GLIBC_2.3 get_phys_pages F +GLIBC_2.3 getaddrinfo F +GLIBC_2.3 getaliasbyname F +GLIBC_2.3 getaliasbyname_r F +GLIBC_2.3 getaliasent F +GLIBC_2.3 getaliasent_r F +GLIBC_2.3 getc F +GLIBC_2.3 getc_unlocked F +GLIBC_2.3 getchar F +GLIBC_2.3 getchar_unlocked F +GLIBC_2.3 getcontext F +GLIBC_2.3 getcwd F +GLIBC_2.3 getdate F +GLIBC_2.3 getdate_err D 0x4 +GLIBC_2.3 getdate_r F +GLIBC_2.3 getdelim F +GLIBC_2.3 getdirentries F +GLIBC_2.3 getdirentries64 F +GLIBC_2.3 getdomainname F +GLIBC_2.3 getdtablesize F +GLIBC_2.3 getegid F +GLIBC_2.3 getenv F +GLIBC_2.3 geteuid F +GLIBC_2.3 getfsent F +GLIBC_2.3 getfsfile F +GLIBC_2.3 getfsspec F +GLIBC_2.3 getgid F +GLIBC_2.3 getgrent F +GLIBC_2.3 getgrent_r F +GLIBC_2.3 getgrgid F +GLIBC_2.3 getgrgid_r F +GLIBC_2.3 getgrnam F +GLIBC_2.3 getgrnam_r F +GLIBC_2.3 getgrouplist F +GLIBC_2.3 getgroups F +GLIBC_2.3 gethostbyaddr F +GLIBC_2.3 gethostbyaddr_r F +GLIBC_2.3 gethostbyname F +GLIBC_2.3 gethostbyname2 F +GLIBC_2.3 gethostbyname2_r F +GLIBC_2.3 gethostbyname_r F +GLIBC_2.3 gethostent F +GLIBC_2.3 gethostent_r F +GLIBC_2.3 gethostid F +GLIBC_2.3 gethostname F +GLIBC_2.3 getifaddrs F +GLIBC_2.3 getitimer F +GLIBC_2.3 getline F +GLIBC_2.3 getloadavg F +GLIBC_2.3 getlogin F +GLIBC_2.3 getlogin_r F +GLIBC_2.3 getmntent F +GLIBC_2.3 getmntent_r F +GLIBC_2.3 getmsg F +GLIBC_2.3 getnameinfo F +GLIBC_2.3 getnetbyaddr F +GLIBC_2.3 getnetbyaddr_r F +GLIBC_2.3 getnetbyname F +GLIBC_2.3 getnetbyname_r F +GLIBC_2.3 getnetent F +GLIBC_2.3 getnetent_r F +GLIBC_2.3 getnetgrent F +GLIBC_2.3 getnetgrent_r F +GLIBC_2.3 getnetname F +GLIBC_2.3 getopt F +GLIBC_2.3 getopt_long F +GLIBC_2.3 getopt_long_only F +GLIBC_2.3 getpagesize F +GLIBC_2.3 getpass F +GLIBC_2.3 getpeername F +GLIBC_2.3 getpgid F +GLIBC_2.3 getpgrp F +GLIBC_2.3 getpid F +GLIBC_2.3 getpmsg F +GLIBC_2.3 getppid F +GLIBC_2.3 getpriority F +GLIBC_2.3 getprotobyname F +GLIBC_2.3 getprotobyname_r F +GLIBC_2.3 getprotobynumber F +GLIBC_2.3 getprotobynumber_r F +GLIBC_2.3 getprotoent F +GLIBC_2.3 getprotoent_r F +GLIBC_2.3 getpt F +GLIBC_2.3 getpublickey F +GLIBC_2.3 getpw F +GLIBC_2.3 getpwent F +GLIBC_2.3 getpwent_r F +GLIBC_2.3 getpwnam F +GLIBC_2.3 getpwnam_r F +GLIBC_2.3 getpwuid F +GLIBC_2.3 getpwuid_r F +GLIBC_2.3 getresgid F +GLIBC_2.3 getresuid F +GLIBC_2.3 getrlimit F +GLIBC_2.3 getrlimit64 F +GLIBC_2.3 getrpcbyname F +GLIBC_2.3 getrpcbyname_r F +GLIBC_2.3 getrpcbynumber F +GLIBC_2.3 getrpcbynumber_r F +GLIBC_2.3 getrpcent F +GLIBC_2.3 getrpcent_r F +GLIBC_2.3 getrpcport F +GLIBC_2.3 getrusage F +GLIBC_2.3 gets F +GLIBC_2.3 getsecretkey F +GLIBC_2.3 getservbyname F +GLIBC_2.3 getservbyname_r F +GLIBC_2.3 getservbyport F +GLIBC_2.3 getservbyport_r F +GLIBC_2.3 getservent F +GLIBC_2.3 getservent_r F +GLIBC_2.3 getsid F +GLIBC_2.3 getsockname F +GLIBC_2.3 getsockopt F +GLIBC_2.3 getspent F +GLIBC_2.3 getspent_r F +GLIBC_2.3 getspnam F +GLIBC_2.3 getspnam_r F +GLIBC_2.3 getsubopt F +GLIBC_2.3 gettext F +GLIBC_2.3 gettimeofday F +GLIBC_2.3 getttyent F +GLIBC_2.3 getttynam F +GLIBC_2.3 getuid F +GLIBC_2.3 getusershell F +GLIBC_2.3 getutent F +GLIBC_2.3 getutent_r F +GLIBC_2.3 getutid F +GLIBC_2.3 getutid_r F +GLIBC_2.3 getutline F +GLIBC_2.3 getutline_r F +GLIBC_2.3 getutmp F +GLIBC_2.3 getutmpx F +GLIBC_2.3 getutxent F +GLIBC_2.3 getutxid F +GLIBC_2.3 getutxline F +GLIBC_2.3 getw F +GLIBC_2.3 getwc F +GLIBC_2.3 getwc_unlocked F +GLIBC_2.3 getwchar F +GLIBC_2.3 getwchar_unlocked F +GLIBC_2.3 getwd F +GLIBC_2.3 getxattr F +GLIBC_2.3 glob F +GLIBC_2.3 glob64 F +GLIBC_2.3 glob_pattern_p F +GLIBC_2.3 globfree F +GLIBC_2.3 globfree64 F +GLIBC_2.3 gmtime F +GLIBC_2.3 gmtime_r F +GLIBC_2.3 gnu_get_libc_release F +GLIBC_2.3 gnu_get_libc_version F +GLIBC_2.3 grantpt F +GLIBC_2.3 group_member F +GLIBC_2.3 gsignal F +GLIBC_2.3 gtty F +GLIBC_2.3 h_errlist D 0x28 +GLIBC_2.3 h_nerr D 0x4 +GLIBC_2.3 hasmntopt F +GLIBC_2.3 hcreate F +GLIBC_2.3 hcreate_r F +GLIBC_2.3 hdestroy F +GLIBC_2.3 hdestroy_r F +GLIBC_2.3 herror F +GLIBC_2.3 host2netname F +GLIBC_2.3 hsearch F +GLIBC_2.3 hsearch_r F +GLIBC_2.3 hstrerror F +GLIBC_2.3 htonl F +GLIBC_2.3 htons F +GLIBC_2.3 iconv F +GLIBC_2.3 iconv_close F +GLIBC_2.3 iconv_open F +GLIBC_2.3 if_freenameindex F +GLIBC_2.3 if_indextoname F +GLIBC_2.3 if_nameindex F +GLIBC_2.3 if_nametoindex F +GLIBC_2.3 imaxabs F +GLIBC_2.3 imaxdiv F +GLIBC_2.3 in6addr_any D 0x10 +GLIBC_2.3 in6addr_loopback D 0x10 +GLIBC_2.3 index F +GLIBC_2.3 inet_addr F +GLIBC_2.3 inet_aton F +GLIBC_2.3 inet_lnaof F +GLIBC_2.3 inet_makeaddr F +GLIBC_2.3 inet_netof F +GLIBC_2.3 inet_network F +GLIBC_2.3 inet_nsap_addr F +GLIBC_2.3 inet_nsap_ntoa F +GLIBC_2.3 inet_ntoa F +GLIBC_2.3 inet_ntop F +GLIBC_2.3 inet_pton F +GLIBC_2.3 init_module F +GLIBC_2.3 initgroups F +GLIBC_2.3 initstate F +GLIBC_2.3 initstate_r F +GLIBC_2.3 innetgr F +GLIBC_2.3 insque F +GLIBC_2.3 ioctl F +GLIBC_2.3 iruserok F +GLIBC_2.3 iruserok_af F +GLIBC_2.3 isalnum F +GLIBC_2.3 isalnum_l F +GLIBC_2.3 isalpha F +GLIBC_2.3 isalpha_l F +GLIBC_2.3 isascii F +GLIBC_2.3 isastream F +GLIBC_2.3 isatty F +GLIBC_2.3 isblank F +GLIBC_2.3 isblank_l F +GLIBC_2.3 iscntrl F +GLIBC_2.3 iscntrl_l F +GLIBC_2.3 isctype F +GLIBC_2.3 isdigit F +GLIBC_2.3 isdigit_l F +GLIBC_2.3 isfdtype F +GLIBC_2.3 isgraph F +GLIBC_2.3 isgraph_l F +GLIBC_2.3 isinf F +GLIBC_2.3 isinff F +GLIBC_2.3 isinfl F +GLIBC_2.3 islower F +GLIBC_2.3 islower_l F +GLIBC_2.3 isnan F +GLIBC_2.3 isnanf F +GLIBC_2.3 isnanl F +GLIBC_2.3 isprint F +GLIBC_2.3 isprint_l F +GLIBC_2.3 ispunct F +GLIBC_2.3 ispunct_l F +GLIBC_2.3 isspace F +GLIBC_2.3 isspace_l F +GLIBC_2.3 isupper F +GLIBC_2.3 isupper_l F +GLIBC_2.3 iswalnum F +GLIBC_2.3 iswalnum_l F +GLIBC_2.3 iswalpha F +GLIBC_2.3 iswalpha_l F +GLIBC_2.3 iswblank F +GLIBC_2.3 iswblank_l F +GLIBC_2.3 iswcntrl F +GLIBC_2.3 iswcntrl_l F +GLIBC_2.3 iswctype F +GLIBC_2.3 iswctype_l F +GLIBC_2.3 iswdigit F +GLIBC_2.3 iswdigit_l F +GLIBC_2.3 iswgraph F +GLIBC_2.3 iswgraph_l F +GLIBC_2.3 iswlower F +GLIBC_2.3 iswlower_l F +GLIBC_2.3 iswprint F +GLIBC_2.3 iswprint_l F +GLIBC_2.3 iswpunct F +GLIBC_2.3 iswpunct_l F +GLIBC_2.3 iswspace F +GLIBC_2.3 iswspace_l F +GLIBC_2.3 iswupper F +GLIBC_2.3 iswupper_l F +GLIBC_2.3 iswxdigit F +GLIBC_2.3 iswxdigit_l F +GLIBC_2.3 isxdigit F +GLIBC_2.3 isxdigit_l F +GLIBC_2.3 jrand48 F +GLIBC_2.3 jrand48_r F +GLIBC_2.3 key_decryptsession F +GLIBC_2.3 key_decryptsession_pk F +GLIBC_2.3 key_encryptsession F +GLIBC_2.3 key_encryptsession_pk F +GLIBC_2.3 key_gendes F +GLIBC_2.3 key_get_conv F +GLIBC_2.3 key_secretkey_is_set F +GLIBC_2.3 key_setnet F +GLIBC_2.3 key_setsecret F +GLIBC_2.3 kill F +GLIBC_2.3 killpg F +GLIBC_2.3 klogctl F +GLIBC_2.3 l64a F +GLIBC_2.3 labs F +GLIBC_2.3 lchown F +GLIBC_2.3 lckpwdf F +GLIBC_2.3 lcong48 F +GLIBC_2.3 lcong48_r F +GLIBC_2.3 ldexp F +GLIBC_2.3 ldexpf F +GLIBC_2.3 ldexpl F +GLIBC_2.3 ldiv F +GLIBC_2.3 lfind F +GLIBC_2.3 lgetxattr F +GLIBC_2.3 link F +GLIBC_2.3 listen F +GLIBC_2.3 listxattr F +GLIBC_2.3 llabs F +GLIBC_2.3 lldiv F +GLIBC_2.3 llistxattr F +GLIBC_2.3 llseek F +GLIBC_2.3 loc1 D 0x8 +GLIBC_2.3 loc2 D 0x8 +GLIBC_2.3 localeconv F +GLIBC_2.3 localtime F +GLIBC_2.3 localtime_r F +GLIBC_2.3 lockf F +GLIBC_2.3 lockf64 F +GLIBC_2.3 locs D 0x8 +GLIBC_2.3 longjmp F +GLIBC_2.3 lrand48 F +GLIBC_2.3 lrand48_r F +GLIBC_2.3 lremovexattr F +GLIBC_2.3 lsearch F +GLIBC_2.3 lseek F +GLIBC_2.3 lseek64 F +GLIBC_2.3 lsetxattr F +GLIBC_2.3 lutimes F +GLIBC_2.3 madvise F +GLIBC_2.3 makecontext F +GLIBC_2.3 mallinfo F +GLIBC_2.3 malloc F +GLIBC_2.3 malloc_get_state F +GLIBC_2.3 malloc_set_state F +GLIBC_2.3 malloc_stats F +GLIBC_2.3 malloc_trim F +GLIBC_2.3 malloc_usable_size F +GLIBC_2.3 mallopt F +GLIBC_2.3 mallwatch D 0x8 +GLIBC_2.3 mblen F +GLIBC_2.3 mbrlen F +GLIBC_2.3 mbrtowc F +GLIBC_2.3 mbsinit F +GLIBC_2.3 mbsnrtowcs F +GLIBC_2.3 mbsrtowcs F +GLIBC_2.3 mbstowcs F +GLIBC_2.3 mbtowc F +GLIBC_2.3 mcheck F +GLIBC_2.3 mcheck_check_all F +GLIBC_2.3 mcheck_pedantic F +GLIBC_2.3 memalign F +GLIBC_2.3 memccpy F +GLIBC_2.3 memchr F +GLIBC_2.3 memcmp F +GLIBC_2.3 memcpy F +GLIBC_2.3 memfrob F +GLIBC_2.3 memmem F +GLIBC_2.3 memmove F +GLIBC_2.3 mempcpy F +GLIBC_2.3 memrchr F +GLIBC_2.3 memset F +GLIBC_2.3 mincore F +GLIBC_2.3 mkdir F +GLIBC_2.3 mkdtemp F +GLIBC_2.3 mkfifo F +GLIBC_2.3 mkstemp F +GLIBC_2.3 mkstemp64 F +GLIBC_2.3 mktemp F +GLIBC_2.3 mktime F +GLIBC_2.3 mlock F +GLIBC_2.3 mlockall F +GLIBC_2.3 mmap F +GLIBC_2.3 mmap64 F +GLIBC_2.3 modf F +GLIBC_2.3 modff F +GLIBC_2.3 modfl F +GLIBC_2.3 moncontrol F +GLIBC_2.3 monstartup F +GLIBC_2.3 mount F +GLIBC_2.3 mprobe F +GLIBC_2.3 mprotect F +GLIBC_2.3 mrand48 F +GLIBC_2.3 mrand48_r F +GLIBC_2.3 mremap F +GLIBC_2.3 msgctl F +GLIBC_2.3 msgget F +GLIBC_2.3 msgrcv F +GLIBC_2.3 msgsnd F +GLIBC_2.3 msync F +GLIBC_2.3 mtrace F +GLIBC_2.3 munlock F +GLIBC_2.3 munlockall F +GLIBC_2.3 munmap F +GLIBC_2.3 muntrace F +GLIBC_2.3 nanosleep F +GLIBC_2.3 netname2host F +GLIBC_2.3 netname2user F +GLIBC_2.3 newlocale F +GLIBC_2.3 nfsservctl F +GLIBC_2.3 nftw F +GLIBC_2.3 nftw64 F +GLIBC_2.3 ngettext F +GLIBC_2.3 nice F +GLIBC_2.3 nl_langinfo F +GLIBC_2.3 nl_langinfo_l F +GLIBC_2.3 nrand48 F +GLIBC_2.3 nrand48_r F +GLIBC_2.3 ntohl F +GLIBC_2.3 ntohs F +GLIBC_2.3 ntp_adjtime F +GLIBC_2.3 ntp_gettime F +GLIBC_2.3 obstack_alloc_failed_handler D 0x8 +GLIBC_2.3 obstack_exit_failure D 0x4 +GLIBC_2.3 obstack_free F +GLIBC_2.3 obstack_printf F +GLIBC_2.3 obstack_vprintf F +GLIBC_2.3 on_exit F +GLIBC_2.3 open F +GLIBC_2.3 open64 F +GLIBC_2.3 open_memstream F +GLIBC_2.3 opendir F +GLIBC_2.3 openlog F +GLIBC_2.3 optarg D 0x8 +GLIBC_2.3 opterr D 0x4 +GLIBC_2.3 optind D 0x4 +GLIBC_2.3 optopt D 0x4 +GLIBC_2.3 parse_printf_format F +GLIBC_2.3 passwd2des F +GLIBC_2.3 pathconf F +GLIBC_2.3 pause F +GLIBC_2.3 pclose F +GLIBC_2.3 perror F +GLIBC_2.3 personality F +GLIBC_2.3 pipe F +GLIBC_2.3 pivot_root F +GLIBC_2.3 pmap_getmaps F +GLIBC_2.3 pmap_getport F +GLIBC_2.3 pmap_rmtcall F +GLIBC_2.3 pmap_set F +GLIBC_2.3 pmap_unset F +GLIBC_2.3 poll F +GLIBC_2.3 popen F +GLIBC_2.3 posix_fadvise F +GLIBC_2.3 posix_fadvise64 F +GLIBC_2.3 posix_fallocate F +GLIBC_2.3 posix_fallocate64 F +GLIBC_2.3 posix_madvise F +GLIBC_2.3 posix_memalign F +GLIBC_2.3 posix_openpt F +GLIBC_2.3 posix_spawn F +GLIBC_2.3 posix_spawn_file_actions_addclose F +GLIBC_2.3 posix_spawn_file_actions_adddup2 F +GLIBC_2.3 posix_spawn_file_actions_addopen F +GLIBC_2.3 posix_spawn_file_actions_destroy F +GLIBC_2.3 posix_spawn_file_actions_init F +GLIBC_2.3 posix_spawnattr_destroy F +GLIBC_2.3 posix_spawnattr_getflags F +GLIBC_2.3 posix_spawnattr_getpgroup F +GLIBC_2.3 posix_spawnattr_getschedparam F +GLIBC_2.3 posix_spawnattr_getschedpolicy F +GLIBC_2.3 posix_spawnattr_getsigdefault F +GLIBC_2.3 posix_spawnattr_getsigmask F +GLIBC_2.3 posix_spawnattr_init F +GLIBC_2.3 posix_spawnattr_setflags F +GLIBC_2.3 posix_spawnattr_setpgroup F +GLIBC_2.3 posix_spawnattr_setschedparam F +GLIBC_2.3 posix_spawnattr_setschedpolicy F +GLIBC_2.3 posix_spawnattr_setsigdefault F +GLIBC_2.3 posix_spawnattr_setsigmask F +GLIBC_2.3 posix_spawnp F +GLIBC_2.3 prctl F +GLIBC_2.3 pread F +GLIBC_2.3 pread64 F +GLIBC_2.3 printf F +GLIBC_2.3 printf_size F +GLIBC_2.3 printf_size_info F +GLIBC_2.3 profil F +GLIBC_2.3 program_invocation_name D 0x8 +GLIBC_2.3 program_invocation_short_name D 0x8 +GLIBC_2.3 pselect F +GLIBC_2.3 psignal F +GLIBC_2.3 pthread_attr_destroy F +GLIBC_2.3 pthread_attr_getdetachstate F +GLIBC_2.3 pthread_attr_getinheritsched F +GLIBC_2.3 pthread_attr_getschedparam F +GLIBC_2.3 pthread_attr_getschedpolicy F +GLIBC_2.3 pthread_attr_getscope F +GLIBC_2.3 pthread_attr_init F +GLIBC_2.3 pthread_attr_setdetachstate F +GLIBC_2.3 pthread_attr_setinheritsched F +GLIBC_2.3 pthread_attr_setschedparam F +GLIBC_2.3 pthread_attr_setschedpolicy F +GLIBC_2.3 pthread_attr_setscope F +GLIBC_2.3 pthread_cond_broadcast F +GLIBC_2.3 pthread_cond_destroy F +GLIBC_2.3 pthread_cond_init F +GLIBC_2.3 pthread_cond_signal F +GLIBC_2.3 pthread_cond_timedwait F +GLIBC_2.3 pthread_cond_wait F +GLIBC_2.3 pthread_condattr_destroy F +GLIBC_2.3 pthread_condattr_init F +GLIBC_2.3 pthread_equal F +GLIBC_2.3 pthread_exit F +GLIBC_2.3 pthread_getschedparam F +GLIBC_2.3 pthread_mutex_destroy F +GLIBC_2.3 pthread_mutex_init F +GLIBC_2.3 pthread_mutex_lock F +GLIBC_2.3 pthread_mutex_unlock F +GLIBC_2.3 pthread_self F +GLIBC_2.3 pthread_setcancelstate F +GLIBC_2.3 pthread_setcanceltype F +GLIBC_2.3 pthread_setschedparam F +GLIBC_2.3 ptrace F +GLIBC_2.3 ptsname F +GLIBC_2.3 ptsname_r F +GLIBC_2.3 putc F +GLIBC_2.3 putc_unlocked F +GLIBC_2.3 putchar F +GLIBC_2.3 putchar_unlocked F +GLIBC_2.3 putenv F +GLIBC_2.3 putgrent F +GLIBC_2.3 putmsg F +GLIBC_2.3 putpmsg F +GLIBC_2.3 putpwent F +GLIBC_2.3 puts F +GLIBC_2.3 putspent F +GLIBC_2.3 pututline F +GLIBC_2.3 pututxline F +GLIBC_2.3 putw F +GLIBC_2.3 putwc F +GLIBC_2.3 putwc_unlocked F +GLIBC_2.3 putwchar F +GLIBC_2.3 putwchar_unlocked F +GLIBC_2.3 pvalloc F +GLIBC_2.3 pwrite F +GLIBC_2.3 pwrite64 F +GLIBC_2.3 qecvt F +GLIBC_2.3 qecvt_r F +GLIBC_2.3 qfcvt F +GLIBC_2.3 qfcvt_r F +GLIBC_2.3 qgcvt F +GLIBC_2.3 qsort F +GLIBC_2.3 query_module F +GLIBC_2.3 quotactl F +GLIBC_2.3 raise F +GLIBC_2.3 rand F +GLIBC_2.3 rand_r F +GLIBC_2.3 random F +GLIBC_2.3 random_r F +GLIBC_2.3 rawmemchr F +GLIBC_2.3 rcmd F +GLIBC_2.3 rcmd_af F +GLIBC_2.3 re_comp F +GLIBC_2.3 re_compile_fastmap F +GLIBC_2.3 re_compile_pattern F +GLIBC_2.3 re_exec F +GLIBC_2.3 re_match F +GLIBC_2.3 re_match_2 F +GLIBC_2.3 re_search F +GLIBC_2.3 re_search_2 F +GLIBC_2.3 re_set_registers F +GLIBC_2.3 re_set_syntax F +GLIBC_2.3 re_syntax_options D 0x8 +GLIBC_2.3 read F +GLIBC_2.3 readahead F +GLIBC_2.3 readdir F +GLIBC_2.3 readdir64 F +GLIBC_2.3 readdir64_r F +GLIBC_2.3 readdir_r F +GLIBC_2.3 readlink F +GLIBC_2.3 readv F +GLIBC_2.3 realloc F +GLIBC_2.3 realpath F +GLIBC_2.3 reboot F +GLIBC_2.3 recv F +GLIBC_2.3 recvfrom F +GLIBC_2.3 recvmsg F +GLIBC_2.3 regcomp F +GLIBC_2.3 regerror F +GLIBC_2.3 regexec F +GLIBC_2.3 regfree F +GLIBC_2.3 register_printf_function F +GLIBC_2.3 registerrpc F +GLIBC_2.3 remove F +GLIBC_2.3 removexattr F +GLIBC_2.3 remque F +GLIBC_2.3 rename F +GLIBC_2.3 revoke F +GLIBC_2.3 rewind F +GLIBC_2.3 rewinddir F +GLIBC_2.3 rexec F +GLIBC_2.3 rexec_af F +GLIBC_2.3 rexecoptions D 0x4 +GLIBC_2.3 rindex F +GLIBC_2.3 rmdir F +GLIBC_2.3 rpc_createerr D 0x20 +GLIBC_2.3 rpmatch F +GLIBC_2.3 rresvport F +GLIBC_2.3 rresvport_af F +GLIBC_2.3 rtime F +GLIBC_2.3 ruserok F +GLIBC_2.3 ruserok_af F +GLIBC_2.3 ruserpass F +GLIBC_2.3 sbrk F +GLIBC_2.3 scalbn F +GLIBC_2.3 scalbnf F +GLIBC_2.3 scalbnl F +GLIBC_2.3 scandir F +GLIBC_2.3 scandir64 F +GLIBC_2.3 scanf F +GLIBC_2.3 sched_get_priority_max F +GLIBC_2.3 sched_get_priority_min F +GLIBC_2.3 sched_getparam F +GLIBC_2.3 sched_getscheduler F +GLIBC_2.3 sched_rr_get_interval F +GLIBC_2.3 sched_setparam F +GLIBC_2.3 sched_setscheduler F +GLIBC_2.3 sched_yield F +GLIBC_2.3 seed48 F +GLIBC_2.3 seed48_r F +GLIBC_2.3 seekdir F +GLIBC_2.3 select F +GLIBC_2.3 semctl F +GLIBC_2.3 semget F +GLIBC_2.3 semop F +GLIBC_2.3 send F +GLIBC_2.3 sendfile F +GLIBC_2.3 sendfile64 F +GLIBC_2.3 sendmsg F +GLIBC_2.3 sendto F +GLIBC_2.3 setaliasent F +GLIBC_2.3 setbuf F +GLIBC_2.3 setbuffer F +GLIBC_2.3 setcontext F +GLIBC_2.3 setdomainname F +GLIBC_2.3 setegid F +GLIBC_2.3 setenv F +GLIBC_2.3 seteuid F +GLIBC_2.3 setfsent F +GLIBC_2.3 setfsgid F +GLIBC_2.3 setfsuid F +GLIBC_2.3 setgid F +GLIBC_2.3 setgrent F +GLIBC_2.3 setgroups F +GLIBC_2.3 sethostent F +GLIBC_2.3 sethostid F +GLIBC_2.3 sethostname F +GLIBC_2.3 setitimer F +GLIBC_2.3 setjmp F +GLIBC_2.3 setlinebuf F +GLIBC_2.3 setlocale F +GLIBC_2.3 setlogin F +GLIBC_2.3 setlogmask F +GLIBC_2.3 setmntent F +GLIBC_2.3 setnetent F +GLIBC_2.3 setnetgrent F +GLIBC_2.3 setpgid F +GLIBC_2.3 setpgrp F +GLIBC_2.3 setpriority F +GLIBC_2.3 setprotoent F +GLIBC_2.3 setpwent F +GLIBC_2.3 setregid F +GLIBC_2.3 setresgid F +GLIBC_2.3 setresuid F +GLIBC_2.3 setreuid F +GLIBC_2.3 setrlimit F +GLIBC_2.3 setrlimit64 F +GLIBC_2.3 setrpcent F +GLIBC_2.3 setservent F +GLIBC_2.3 setsid F +GLIBC_2.3 setsockopt F +GLIBC_2.3 setspent F +GLIBC_2.3 setstate F +GLIBC_2.3 setstate_r F +GLIBC_2.3 settimeofday F +GLIBC_2.3 setttyent F +GLIBC_2.3 setuid F +GLIBC_2.3 setusershell F +GLIBC_2.3 setutent F +GLIBC_2.3 setutxent F +GLIBC_2.3 setvbuf F +GLIBC_2.3 setxattr F +GLIBC_2.3 sgetspent F +GLIBC_2.3 sgetspent_r F +GLIBC_2.3 shmat F +GLIBC_2.3 shmctl F +GLIBC_2.3 shmdt F +GLIBC_2.3 shmget F +GLIBC_2.3 shutdown F +GLIBC_2.3 sigaction F +GLIBC_2.3 sigaddset F +GLIBC_2.3 sigaltstack F +GLIBC_2.3 sigandset F +GLIBC_2.3 sigblock F +GLIBC_2.3 sigdelset F +GLIBC_2.3 sigemptyset F +GLIBC_2.3 sigfillset F +GLIBC_2.3 siggetmask F +GLIBC_2.3 sighold F +GLIBC_2.3 sigignore F +GLIBC_2.3 siginterrupt F +GLIBC_2.3 sigisemptyset F +GLIBC_2.3 sigismember F +GLIBC_2.3 siglongjmp F +GLIBC_2.3 signal F +GLIBC_2.3 sigorset F +GLIBC_2.3 sigpause F +GLIBC_2.3 sigpending F +GLIBC_2.3 sigprocmask F +GLIBC_2.3 sigqueue F +GLIBC_2.3 sigrelse F +GLIBC_2.3 sigreturn F +GLIBC_2.3 sigset F +GLIBC_2.3 sigsetmask F +GLIBC_2.3 sigstack F +GLIBC_2.3 sigsuspend F +GLIBC_2.3 sigtimedwait F +GLIBC_2.3 sigvec F +GLIBC_2.3 sigwait F +GLIBC_2.3 sigwaitinfo F +GLIBC_2.3 sleep F +GLIBC_2.3 snprintf F +GLIBC_2.3 sockatmark F +GLIBC_2.3 socket F +GLIBC_2.3 socketpair F +GLIBC_2.3 sprintf F +GLIBC_2.3 sprofil F +GLIBC_2.3 srand F +GLIBC_2.3 srand48 F +GLIBC_2.3 srand48_r F +GLIBC_2.3 srandom F +GLIBC_2.3 srandom_r F +GLIBC_2.3 sscanf F +GLIBC_2.3 ssignal F +GLIBC_2.3 sstk F +GLIBC_2.3 statfs F +GLIBC_2.3 statfs64 F +GLIBC_2.3 statvfs F +GLIBC_2.3 statvfs64 F +GLIBC_2.3 stderr D 0x8 +GLIBC_2.3 stdin D 0x8 +GLIBC_2.3 stdout D 0x8 +GLIBC_2.3 step F +GLIBC_2.3 stime F +GLIBC_2.3 stpcpy F +GLIBC_2.3 stpncpy F +GLIBC_2.3 strcasecmp F +GLIBC_2.3 strcasecmp_l F +GLIBC_2.3 strcasestr F +GLIBC_2.3 strcat F +GLIBC_2.3 strchr F +GLIBC_2.3 strchrnul F +GLIBC_2.3 strcmp F +GLIBC_2.3 strcoll F +GLIBC_2.3 strcoll_l F +GLIBC_2.3 strcpy F +GLIBC_2.3 strcspn F +GLIBC_2.3 strdup F +GLIBC_2.3 strerror F +GLIBC_2.3 strerror_r F +GLIBC_2.3 strfmon F +GLIBC_2.3 strfmon_l F +GLIBC_2.3 strfry F +GLIBC_2.3 strftime F +GLIBC_2.3 strftime_l F +GLIBC_2.3 strlen F +GLIBC_2.3 strncasecmp F +GLIBC_2.3 strncasecmp_l F +GLIBC_2.3 strncat F +GLIBC_2.3 strncmp F +GLIBC_2.3 strncpy F +GLIBC_2.3 strndup F +GLIBC_2.3 strnlen F +GLIBC_2.3 strpbrk F +GLIBC_2.3 strptime F +GLIBC_2.3 strrchr F +GLIBC_2.3 strsep F +GLIBC_2.3 strsignal F +GLIBC_2.3 strspn F +GLIBC_2.3 strstr F +GLIBC_2.3 strtod F +GLIBC_2.3 strtod_l F +GLIBC_2.3 strtof F +GLIBC_2.3 strtof_l F +GLIBC_2.3 strtoimax F +GLIBC_2.3 strtok F +GLIBC_2.3 strtok_r F +GLIBC_2.3 strtol F +GLIBC_2.3 strtol_l F +GLIBC_2.3 strtold F +GLIBC_2.3 strtold_l F +GLIBC_2.3 strtoll F +GLIBC_2.3 strtoq F +GLIBC_2.3 strtoul F +GLIBC_2.3 strtoul_l F +GLIBC_2.3 strtoull F +GLIBC_2.3 strtoumax F +GLIBC_2.3 strtouq F +GLIBC_2.3 strverscmp F +GLIBC_2.3 strxfrm F +GLIBC_2.3 strxfrm_l F +GLIBC_2.3 stty F +GLIBC_2.3 svc_exit F +GLIBC_2.3 svc_fdset D 0x80 +GLIBC_2.3 svc_getreq F +GLIBC_2.3 svc_getreq_common F +GLIBC_2.3 svc_getreq_poll F +GLIBC_2.3 svc_getreqset F +GLIBC_2.3 svc_max_pollfd D 0x4 +GLIBC_2.3 svc_pollfd D 0x8 +GLIBC_2.3 svc_register F +GLIBC_2.3 svc_run F +GLIBC_2.3 svc_sendreply F +GLIBC_2.3 svc_unregister F +GLIBC_2.3 svcauthdes_stats D 0x18 +GLIBC_2.3 svcerr_auth F +GLIBC_2.3 svcerr_decode F +GLIBC_2.3 svcerr_noproc F +GLIBC_2.3 svcerr_noprog F +GLIBC_2.3 svcerr_progvers F +GLIBC_2.3 svcerr_systemerr F +GLIBC_2.3 svcerr_weakauth F +GLIBC_2.3 svcfd_create F +GLIBC_2.3 svcraw_create F +GLIBC_2.3 svctcp_create F +GLIBC_2.3 svcudp_bufcreate F +GLIBC_2.3 svcudp_create F +GLIBC_2.3 svcudp_enablecache F +GLIBC_2.3 svcunix_create F +GLIBC_2.3 svcunixfd_create F +GLIBC_2.3 swab F +GLIBC_2.3 swapcontext F +GLIBC_2.3 swapoff F +GLIBC_2.3 swapon F +GLIBC_2.3 swprintf F +GLIBC_2.3 swscanf F +GLIBC_2.3 symlink F +GLIBC_2.3 sync F +GLIBC_2.3 sys_errlist D 0x3f0 +GLIBC_2.3 sys_nerr D 0x4 +GLIBC_2.3 sys_sigabbrev D 0x200 +GLIBC_2.3 sys_siglist D 0x200 +GLIBC_2.3 syscall F +GLIBC_2.3 sysconf F +GLIBC_2.3 sysctl F +GLIBC_2.3 sysinfo F +GLIBC_2.3 syslog F +GLIBC_2.3 system F +GLIBC_2.3 sysv_signal F +GLIBC_2.3 tcdrain F +GLIBC_2.3 tcflow F +GLIBC_2.3 tcflush F +GLIBC_2.3 tcgetattr F +GLIBC_2.3 tcgetpgrp F +GLIBC_2.3 tcgetsid F +GLIBC_2.3 tcsendbreak F +GLIBC_2.3 tcsetattr F +GLIBC_2.3 tcsetpgrp F +GLIBC_2.3 tdelete F +GLIBC_2.3 tdestroy F +GLIBC_2.3 telldir F +GLIBC_2.3 tempnam F +GLIBC_2.3 textdomain F +GLIBC_2.3 tfind F +GLIBC_2.3 time F +GLIBC_2.3 timegm F +GLIBC_2.3 timelocal F +GLIBC_2.3 times F +GLIBC_2.3 timezone D 0x8 +GLIBC_2.3 tmpfile F +GLIBC_2.3 tmpfile64 F +GLIBC_2.3 tmpnam F +GLIBC_2.3 tmpnam_r F +GLIBC_2.3 toascii F +GLIBC_2.3 tolower F +GLIBC_2.3 tolower_l F +GLIBC_2.3 toupper F +GLIBC_2.3 toupper_l F +GLIBC_2.3 towctrans F +GLIBC_2.3 towctrans_l F +GLIBC_2.3 towlower F +GLIBC_2.3 towlower_l F +GLIBC_2.3 towupper F +GLIBC_2.3 towupper_l F +GLIBC_2.3 tr_break F +GLIBC_2.3 truncate F +GLIBC_2.3 truncate64 F +GLIBC_2.3 tsearch F +GLIBC_2.3 ttyname F +GLIBC_2.3 ttyname_r F +GLIBC_2.3 ttyslot F +GLIBC_2.3 twalk F +GLIBC_2.3 tzname D 0x10 +GLIBC_2.3 tzset F +GLIBC_2.3 ualarm F +GLIBC_2.3 ulckpwdf F +GLIBC_2.3 ulimit F +GLIBC_2.3 umask F +GLIBC_2.3 umount F +GLIBC_2.3 umount2 F +GLIBC_2.3 uname F +GLIBC_2.3 ungetc F +GLIBC_2.3 ungetwc F +GLIBC_2.3 unlink F +GLIBC_2.3 unlockpt F +GLIBC_2.3 unsetenv F +GLIBC_2.3 updwtmp F +GLIBC_2.3 updwtmpx F +GLIBC_2.3 uselib F +GLIBC_2.3 uselocale F +GLIBC_2.3 user2netname F +GLIBC_2.3 usleep F +GLIBC_2.3 ustat F +GLIBC_2.3 utime F +GLIBC_2.3 utimes F +GLIBC_2.3 utmpname F +GLIBC_2.3 utmpxname F +GLIBC_2.3 valloc F +GLIBC_2.3 vasprintf F +GLIBC_2.3 vdprintf F +GLIBC_2.3 verr F +GLIBC_2.3 verrx F +GLIBC_2.3 versionsort F +GLIBC_2.3 versionsort64 F +GLIBC_2.3 vfork F +GLIBC_2.3 vfprintf F +GLIBC_2.3 vfscanf F +GLIBC_2.3 vfwprintf F +GLIBC_2.3 vfwscanf F +GLIBC_2.3 vhangup F +GLIBC_2.3 vlimit F +GLIBC_2.3 vprintf F +GLIBC_2.3 vscanf F +GLIBC_2.3 vsnprintf F +GLIBC_2.3 vsprintf F +GLIBC_2.3 vsscanf F +GLIBC_2.3 vswprintf F +GLIBC_2.3 vswscanf F +GLIBC_2.3 vsyslog F +GLIBC_2.3 vtimes F +GLIBC_2.3 vwarn F +GLIBC_2.3 vwarnx F +GLIBC_2.3 vwprintf F +GLIBC_2.3 vwscanf F +GLIBC_2.3 wait F +GLIBC_2.3 wait3 F +GLIBC_2.3 wait4 F +GLIBC_2.3 waitid F +GLIBC_2.3 waitpid F +GLIBC_2.3 warn F +GLIBC_2.3 warnx F +GLIBC_2.3 wcpcpy F +GLIBC_2.3 wcpncpy F +GLIBC_2.3 wcrtomb F +GLIBC_2.3 wcscasecmp F +GLIBC_2.3 wcscasecmp_l F +GLIBC_2.3 wcscat F +GLIBC_2.3 wcschr F +GLIBC_2.3 wcschrnul F +GLIBC_2.3 wcscmp F +GLIBC_2.3 wcscoll F +GLIBC_2.3 wcscoll_l F +GLIBC_2.3 wcscpy F +GLIBC_2.3 wcscspn F +GLIBC_2.3 wcsdup F +GLIBC_2.3 wcsftime F +GLIBC_2.3 wcsftime_l F +GLIBC_2.3 wcslen F +GLIBC_2.3 wcsncasecmp F +GLIBC_2.3 wcsncasecmp_l F +GLIBC_2.3 wcsncat F +GLIBC_2.3 wcsncmp F +GLIBC_2.3 wcsncpy F +GLIBC_2.3 wcsnlen F +GLIBC_2.3 wcsnrtombs F +GLIBC_2.3 wcspbrk F +GLIBC_2.3 wcsrchr F +GLIBC_2.3 wcsrtombs F +GLIBC_2.3 wcsspn F +GLIBC_2.3 wcsstr F +GLIBC_2.3 wcstod F +GLIBC_2.3 wcstod_l F +GLIBC_2.3 wcstof F +GLIBC_2.3 wcstof_l F +GLIBC_2.3 wcstoimax F +GLIBC_2.3 wcstok F +GLIBC_2.3 wcstol F +GLIBC_2.3 wcstol_l F +GLIBC_2.3 wcstold F +GLIBC_2.3 wcstold_l F +GLIBC_2.3 wcstoll F +GLIBC_2.3 wcstoll_l F +GLIBC_2.3 wcstombs F +GLIBC_2.3 wcstoq F +GLIBC_2.3 wcstoul F +GLIBC_2.3 wcstoul_l F +GLIBC_2.3 wcstoull F +GLIBC_2.3 wcstoull_l F +GLIBC_2.3 wcstoumax F +GLIBC_2.3 wcstouq F +GLIBC_2.3 wcswcs F +GLIBC_2.3 wcswidth F +GLIBC_2.3 wcsxfrm F +GLIBC_2.3 wcsxfrm_l F +GLIBC_2.3 wctob F +GLIBC_2.3 wctomb F +GLIBC_2.3 wctrans F +GLIBC_2.3 wctrans_l F +GLIBC_2.3 wctype F +GLIBC_2.3 wctype_l F +GLIBC_2.3 wcwidth F +GLIBC_2.3 wmemchr F +GLIBC_2.3 wmemcmp F +GLIBC_2.3 wmemcpy F +GLIBC_2.3 wmemmove F +GLIBC_2.3 wmempcpy F +GLIBC_2.3 wmemset F +GLIBC_2.3 wordexp F +GLIBC_2.3 wordfree F +GLIBC_2.3 wprintf F +GLIBC_2.3 write F +GLIBC_2.3 writev F +GLIBC_2.3 wscanf F +GLIBC_2.3 xdecrypt F +GLIBC_2.3 xdr_accepted_reply F +GLIBC_2.3 xdr_array F +GLIBC_2.3 xdr_authdes_cred F +GLIBC_2.3 xdr_authdes_verf F +GLIBC_2.3 xdr_authunix_parms F +GLIBC_2.3 xdr_bool F +GLIBC_2.3 xdr_bytes F +GLIBC_2.3 xdr_callhdr F +GLIBC_2.3 xdr_callmsg F +GLIBC_2.3 xdr_char F +GLIBC_2.3 xdr_cryptkeyarg F +GLIBC_2.3 xdr_cryptkeyarg2 F +GLIBC_2.3 xdr_cryptkeyres F +GLIBC_2.3 xdr_des_block F +GLIBC_2.3 xdr_double F +GLIBC_2.3 xdr_enum F +GLIBC_2.3 xdr_float F +GLIBC_2.3 xdr_free F +GLIBC_2.3 xdr_getcredres F +GLIBC_2.3 xdr_hyper F +GLIBC_2.3 xdr_int F +GLIBC_2.3 xdr_int16_t F +GLIBC_2.3 xdr_int32_t F +GLIBC_2.3 xdr_int64_t F +GLIBC_2.3 xdr_int8_t F +GLIBC_2.3 xdr_key_netstarg F +GLIBC_2.3 xdr_key_netstres F +GLIBC_2.3 xdr_keybuf F +GLIBC_2.3 xdr_keystatus F +GLIBC_2.3 xdr_long F +GLIBC_2.3 xdr_longlong_t F +GLIBC_2.3 xdr_netnamestr F +GLIBC_2.3 xdr_netobj F +GLIBC_2.3 xdr_opaque F +GLIBC_2.3 xdr_opaque_auth F +GLIBC_2.3 xdr_pmap F +GLIBC_2.3 xdr_pmaplist F +GLIBC_2.3 xdr_pointer F +GLIBC_2.3 xdr_reference F +GLIBC_2.3 xdr_rejected_reply F +GLIBC_2.3 xdr_replymsg F +GLIBC_2.3 xdr_rmtcall_args F +GLIBC_2.3 xdr_rmtcallres F +GLIBC_2.3 xdr_short F +GLIBC_2.3 xdr_sizeof F +GLIBC_2.3 xdr_string F +GLIBC_2.3 xdr_u_char F +GLIBC_2.3 xdr_u_hyper F +GLIBC_2.3 xdr_u_int F +GLIBC_2.3 xdr_u_long F +GLIBC_2.3 xdr_u_longlong_t F +GLIBC_2.3 xdr_u_short F +GLIBC_2.3 xdr_uint16_t F +GLIBC_2.3 xdr_uint32_t F +GLIBC_2.3 xdr_uint64_t F +GLIBC_2.3 xdr_uint8_t F +GLIBC_2.3 xdr_union F +GLIBC_2.3 xdr_unixcred F +GLIBC_2.3 xdr_vector F +GLIBC_2.3 xdr_void F +GLIBC_2.3 xdr_wrapstring F +GLIBC_2.3 xdrmem_create F +GLIBC_2.3 xdrrec_create F +GLIBC_2.3 xdrrec_endofrecord F +GLIBC_2.3 xdrrec_eof F +GLIBC_2.3 xdrrec_skiprecord F +GLIBC_2.3 xdrstdio_create F +GLIBC_2.3 xencrypt F +GLIBC_2.3 xprt_register F +GLIBC_2.3 xprt_unregister F +GLIBC_2.3.2 GLIBC_2.3.2 A +GLIBC_2.3.2 __register_atfork F +GLIBC_2.3.2 epoll_create F +GLIBC_2.3.2 epoll_ctl F +GLIBC_2.3.2 epoll_wait F +GLIBC_2.3.2 lchmod F +GLIBC_2.3.2 pthread_cond_broadcast F +GLIBC_2.3.2 pthread_cond_destroy F +GLIBC_2.3.2 pthread_cond_init F +GLIBC_2.3.2 pthread_cond_signal F +GLIBC_2.3.2 pthread_cond_timedwait F +GLIBC_2.3.2 pthread_cond_wait F +GLIBC_2.3.2 strptime_l F +GLIBC_2.3.3 GLIBC_2.3.3 A +GLIBC_2.3.3 _sys_siglist D 0x208 +GLIBC_2.3.3 gnu_dev_major F +GLIBC_2.3.3 gnu_dev_makedev F +GLIBC_2.3.3 gnu_dev_minor F +GLIBC_2.3.3 inet6_option_alloc F +GLIBC_2.3.3 inet6_option_append F +GLIBC_2.3.3 inet6_option_find F +GLIBC_2.3.3 inet6_option_init F +GLIBC_2.3.3 inet6_option_next F +GLIBC_2.3.3 inet6_option_space F +GLIBC_2.3.3 nftw F +GLIBC_2.3.3 nftw64 F +GLIBC_2.3.3 remap_file_pages F +GLIBC_2.3.3 sched_getaffinity F +GLIBC_2.3.3 sched_setaffinity F +GLIBC_2.3.3 semtimedop F +GLIBC_2.3.3 strtoll_l F +GLIBC_2.3.3 strtoull_l F +GLIBC_2.3.3 sys_sigabbrev D 0x208 +GLIBC_2.3.3 sys_siglist D 0x208 +GLIBC_2.3.4 GLIBC_2.3.4 A +GLIBC_2.3.4 __chk_fail F +GLIBC_2.3.4 __fprintf_chk F +GLIBC_2.3.4 __gets_chk F +GLIBC_2.3.4 __memcpy_chk F +GLIBC_2.3.4 __memmove_chk F +GLIBC_2.3.4 __mempcpy_chk F +GLIBC_2.3.4 __memset_chk F +GLIBC_2.3.4 __printf_chk F +GLIBC_2.3.4 __sigsetjmp F +GLIBC_2.3.4 __snprintf_chk F +GLIBC_2.3.4 __sprintf_chk F +GLIBC_2.3.4 __stpcpy_chk F +GLIBC_2.3.4 __strcat_chk F +GLIBC_2.3.4 __strcpy_chk F +GLIBC_2.3.4 __strncat_chk F +GLIBC_2.3.4 __strncpy_chk F +GLIBC_2.3.4 __vfprintf_chk F +GLIBC_2.3.4 __vprintf_chk F +GLIBC_2.3.4 __vsnprintf_chk F +GLIBC_2.3.4 __vsprintf_chk F +GLIBC_2.3.4 __xpg_strerror_r F +GLIBC_2.3.4 _longjmp F +GLIBC_2.3.4 _setjmp F +GLIBC_2.3.4 getcontext F +GLIBC_2.3.4 getipv4sourcefilter F +GLIBC_2.3.4 getsourcefilter F +GLIBC_2.3.4 longjmp F +GLIBC_2.3.4 regexec F +GLIBC_2.3.4 sched_getaffinity F +GLIBC_2.3.4 sched_setaffinity F +GLIBC_2.3.4 setcontext F +GLIBC_2.3.4 setipv4sourcefilter F +GLIBC_2.3.4 setjmp F +GLIBC_2.3.4 setsourcefilter F +GLIBC_2.3.4 siglongjmp F +GLIBC_2.3.4 swapcontext F +GLIBC_2.3.4 xdr_quad_t F +GLIBC_2.3.4 xdr_u_quad_t F +GLIBC_2.4 GLIBC_2.4 A +GLIBC_2.4 _IO_fprintf F +GLIBC_2.4 _IO_printf F +GLIBC_2.4 _IO_sprintf F +GLIBC_2.4 _IO_sscanf F +GLIBC_2.4 _IO_vfprintf F +GLIBC_2.4 _IO_vfscanf F +GLIBC_2.4 _IO_vsprintf F +GLIBC_2.4 __asprintf F +GLIBC_2.4 __confstr_chk F +GLIBC_2.4 __fgets_chk F +GLIBC_2.4 __fgets_unlocked_chk F +GLIBC_2.4 __fgetws_chk F +GLIBC_2.4 __fgetws_unlocked_chk F +GLIBC_2.4 __finitel F +GLIBC_2.4 __fprintf_chk F +GLIBC_2.4 __fwprintf_chk F +GLIBC_2.4 __fxstatat F +GLIBC_2.4 __fxstatat64 F +GLIBC_2.4 __getcwd_chk F +GLIBC_2.4 __getdomainname_chk F +GLIBC_2.4 __getgroups_chk F +GLIBC_2.4 __gethostname_chk F +GLIBC_2.4 __getlogin_r_chk F +GLIBC_2.4 __getwd_chk F +GLIBC_2.4 __isinfl F +GLIBC_2.4 __isnanl F +GLIBC_2.4 __mbsnrtowcs_chk F +GLIBC_2.4 __mbsrtowcs_chk F +GLIBC_2.4 __mbstowcs_chk F +GLIBC_2.4 __nldbl__IO_fprintf F +GLIBC_2.4 __nldbl__IO_printf F +GLIBC_2.4 __nldbl__IO_sprintf F +GLIBC_2.4 __nldbl__IO_sscanf F +GLIBC_2.4 __nldbl__IO_vfprintf F +GLIBC_2.4 __nldbl__IO_vfscanf F +GLIBC_2.4 __nldbl__IO_vsprintf F +GLIBC_2.4 __nldbl___asprintf F +GLIBC_2.4 __nldbl___fprintf_chk F +GLIBC_2.4 __nldbl___fwprintf_chk F +GLIBC_2.4 __nldbl___printf_chk F +GLIBC_2.4 __nldbl___printf_fp F +GLIBC_2.4 __nldbl___snprintf_chk F +GLIBC_2.4 __nldbl___sprintf_chk F +GLIBC_2.4 __nldbl___strfmon_l F +GLIBC_2.4 __nldbl___swprintf_chk F +GLIBC_2.4 __nldbl___syslog_chk F +GLIBC_2.4 __nldbl___vfprintf_chk F +GLIBC_2.4 __nldbl___vfscanf F +GLIBC_2.4 __nldbl___vfwprintf_chk F +GLIBC_2.4 __nldbl___vprintf_chk F +GLIBC_2.4 __nldbl___vsnprintf F +GLIBC_2.4 __nldbl___vsnprintf_chk F +GLIBC_2.4 __nldbl___vsprintf_chk F +GLIBC_2.4 __nldbl___vsscanf F +GLIBC_2.4 __nldbl___vstrfmon F +GLIBC_2.4 __nldbl___vstrfmon_l F +GLIBC_2.4 __nldbl___vswprintf_chk F +GLIBC_2.4 __nldbl___vsyslog_chk F +GLIBC_2.4 __nldbl___vwprintf_chk F +GLIBC_2.4 __nldbl___wprintf_chk F +GLIBC_2.4 __nldbl_asprintf F +GLIBC_2.4 __nldbl_dprintf F +GLIBC_2.4 __nldbl_fprintf F +GLIBC_2.4 __nldbl_fscanf F +GLIBC_2.4 __nldbl_fwprintf F +GLIBC_2.4 __nldbl_fwscanf F +GLIBC_2.4 __nldbl_obstack_printf F +GLIBC_2.4 __nldbl_obstack_vprintf F +GLIBC_2.4 __nldbl_printf F +GLIBC_2.4 __nldbl_printf_size F +GLIBC_2.4 __nldbl_scanf F +GLIBC_2.4 __nldbl_snprintf F +GLIBC_2.4 __nldbl_sprintf F +GLIBC_2.4 __nldbl_sscanf F +GLIBC_2.4 __nldbl_strfmon F +GLIBC_2.4 __nldbl_strfmon_l F +GLIBC_2.4 __nldbl_swprintf F +GLIBC_2.4 __nldbl_swscanf F +GLIBC_2.4 __nldbl_syslog F +GLIBC_2.4 __nldbl_vasprintf F +GLIBC_2.4 __nldbl_vdprintf F +GLIBC_2.4 __nldbl_vfprintf F +GLIBC_2.4 __nldbl_vfscanf F +GLIBC_2.4 __nldbl_vfwprintf F +GLIBC_2.4 __nldbl_vfwscanf F +GLIBC_2.4 __nldbl_vprintf F +GLIBC_2.4 __nldbl_vscanf F +GLIBC_2.4 __nldbl_vsnprintf F +GLIBC_2.4 __nldbl_vsprintf F +GLIBC_2.4 __nldbl_vsscanf F +GLIBC_2.4 __nldbl_vswprintf F +GLIBC_2.4 __nldbl_vswscanf F +GLIBC_2.4 __nldbl_vsyslog F +GLIBC_2.4 __nldbl_vwprintf F +GLIBC_2.4 __nldbl_vwscanf F +GLIBC_2.4 __nldbl_wprintf F +GLIBC_2.4 __nldbl_wscanf F +GLIBC_2.4 __pread64_chk F +GLIBC_2.4 __pread_chk F +GLIBC_2.4 __printf_chk F +GLIBC_2.4 __printf_fp F +GLIBC_2.4 __ptsname_r_chk F +GLIBC_2.4 __read_chk F +GLIBC_2.4 __readlink_chk F +GLIBC_2.4 __realpath_chk F +GLIBC_2.4 __recv_chk F +GLIBC_2.4 __recvfrom_chk F +GLIBC_2.4 __signbitl F +GLIBC_2.4 __snprintf_chk F +GLIBC_2.4 __sprintf_chk F +GLIBC_2.4 __stack_chk_fail F +GLIBC_2.4 __stpncpy_chk F +GLIBC_2.4 __strfmon_l F +GLIBC_2.4 __strtold_internal F +GLIBC_2.4 __strtold_l F +GLIBC_2.4 __swprintf_chk F +GLIBC_2.4 __syslog_chk F +GLIBC_2.4 __ttyname_r_chk F +GLIBC_2.4 __vfprintf_chk F +GLIBC_2.4 __vfscanf F +GLIBC_2.4 __vfwprintf_chk F +GLIBC_2.4 __vprintf_chk F +GLIBC_2.4 __vsnprintf F +GLIBC_2.4 __vsnprintf_chk F +GLIBC_2.4 __vsprintf_chk F +GLIBC_2.4 __vsscanf F +GLIBC_2.4 __vswprintf_chk F +GLIBC_2.4 __vsyslog_chk F +GLIBC_2.4 __vwprintf_chk F +GLIBC_2.4 __wcpcpy_chk F +GLIBC_2.4 __wcpncpy_chk F +GLIBC_2.4 __wcrtomb_chk F +GLIBC_2.4 __wcscat_chk F +GLIBC_2.4 __wcscpy_chk F +GLIBC_2.4 __wcsncat_chk F +GLIBC_2.4 __wcsncpy_chk F +GLIBC_2.4 __wcsnrtombs_chk F +GLIBC_2.4 __wcsrtombs_chk F +GLIBC_2.4 __wcstold_internal F +GLIBC_2.4 __wcstold_l F +GLIBC_2.4 __wcstombs_chk F +GLIBC_2.4 __wctomb_chk F +GLIBC_2.4 __wmemcpy_chk F +GLIBC_2.4 __wmemmove_chk F +GLIBC_2.4 __wmempcpy_chk F +GLIBC_2.4 __wmemset_chk F +GLIBC_2.4 __wprintf_chk F +GLIBC_2.4 __xmknodat F +GLIBC_2.4 _sys_errlist D 0x420 +GLIBC_2.4 _sys_nerr D 0x4 +GLIBC_2.4 asprintf F +GLIBC_2.4 copysignl F +GLIBC_2.4 dprintf F +GLIBC_2.4 eaccess F +GLIBC_2.4 faccessat F +GLIBC_2.4 fchmodat F +GLIBC_2.4 fchownat F +GLIBC_2.4 fdopendir F +GLIBC_2.4 finitel F +GLIBC_2.4 fprintf F +GLIBC_2.4 frexpl F +GLIBC_2.4 fscanf F +GLIBC_2.4 futimesat F +GLIBC_2.4 fwprintf F +GLIBC_2.4 fwscanf F +GLIBC_2.4 inotify_add_watch F +GLIBC_2.4 inotify_init F +GLIBC_2.4 inotify_rm_watch F +GLIBC_2.4 isinfl F +GLIBC_2.4 isnanl F +GLIBC_2.4 ldexpl F +GLIBC_2.4 linkat F +GLIBC_2.4 mkdirat F +GLIBC_2.4 mkfifoat F +GLIBC_2.4 modfl F +GLIBC_2.4 obstack_printf F +GLIBC_2.4 obstack_vprintf F +GLIBC_2.4 open_wmemstream F +GLIBC_2.4 openat F +GLIBC_2.4 openat64 F +GLIBC_2.4 ppoll F +GLIBC_2.4 printf F +GLIBC_2.4 printf_size F +GLIBC_2.4 qecvt F +GLIBC_2.4 qecvt_r F +GLIBC_2.4 qfcvt F +GLIBC_2.4 qfcvt_r F +GLIBC_2.4 qgcvt F +GLIBC_2.4 readlinkat F +GLIBC_2.4 renameat F +GLIBC_2.4 scalbnl F +GLIBC_2.4 scanf F +GLIBC_2.4 snprintf F +GLIBC_2.4 sprintf F +GLIBC_2.4 sscanf F +GLIBC_2.4 strfmon F +GLIBC_2.4 strfmon_l F +GLIBC_2.4 strtold F +GLIBC_2.4 strtold_l F +GLIBC_2.4 swprintf F +GLIBC_2.4 swscanf F +GLIBC_2.4 symlinkat F +GLIBC_2.4 sys_errlist D 0x420 +GLIBC_2.4 sys_nerr D 0x4 +GLIBC_2.4 syslog F +GLIBC_2.4 unlinkat F +GLIBC_2.4 unshare F +GLIBC_2.4 vasprintf F +GLIBC_2.4 vdprintf F +GLIBC_2.4 vfprintf F +GLIBC_2.4 vfscanf F +GLIBC_2.4 vfwprintf F +GLIBC_2.4 vfwscanf F +GLIBC_2.4 vprintf F +GLIBC_2.4 vscanf F +GLIBC_2.4 vsnprintf F +GLIBC_2.4 vsprintf F +GLIBC_2.4 vsscanf F +GLIBC_2.4 vswprintf F +GLIBC_2.4 vswscanf F +GLIBC_2.4 vsyslog F +GLIBC_2.4 vwprintf F +GLIBC_2.4 vwscanf F +GLIBC_2.4 wcstold F +GLIBC_2.4 wcstold_l F +GLIBC_2.4 wprintf F +GLIBC_2.4 wscanf F +GLIBC_2.5 GLIBC_2.5 A +GLIBC_2.5 __readlinkat_chk F +GLIBC_2.5 inet6_opt_append F +GLIBC_2.5 inet6_opt_find F +GLIBC_2.5 inet6_opt_finish F +GLIBC_2.5 inet6_opt_get_val F +GLIBC_2.5 inet6_opt_init F +GLIBC_2.5 inet6_opt_next F +GLIBC_2.5 inet6_opt_set_val F +GLIBC_2.5 inet6_rth_add F +GLIBC_2.5 inet6_rth_getaddr F +GLIBC_2.5 inet6_rth_init F +GLIBC_2.5 inet6_rth_reverse F +GLIBC_2.5 inet6_rth_segments F +GLIBC_2.5 inet6_rth_space F +GLIBC_2.5 splice F +GLIBC_2.5 tee F +GLIBC_2.5 vmsplice F +GLIBC_2.6 GLIBC_2.6 A +GLIBC_2.6 __sched_cpucount F +GLIBC_2.6 epoll_pwait F +GLIBC_2.6 futimens F +GLIBC_2.6 sched_getcpu F +GLIBC_2.6 strerror_l F +GLIBC_2.6 sync_file_range F +GLIBC_2.6 utimensat F +GLIBC_2.7 GLIBC_2.7 A +GLIBC_2.7 __fread_chk F +GLIBC_2.7 __fread_unlocked_chk F +GLIBC_2.7 __isoc99_fscanf F +GLIBC_2.7 __isoc99_fwscanf F +GLIBC_2.7 __isoc99_scanf F +GLIBC_2.7 __isoc99_sscanf F +GLIBC_2.7 __isoc99_swscanf F +GLIBC_2.7 __isoc99_vfscanf F +GLIBC_2.7 __isoc99_vfwscanf F +GLIBC_2.7 __isoc99_vscanf F +GLIBC_2.7 __isoc99_vsscanf F +GLIBC_2.7 __isoc99_vswscanf F +GLIBC_2.7 __isoc99_vwscanf F +GLIBC_2.7 __isoc99_wscanf F +GLIBC_2.7 __nldbl___isoc99_fscanf F +GLIBC_2.7 __nldbl___isoc99_fwscanf F +GLIBC_2.7 __nldbl___isoc99_scanf F +GLIBC_2.7 __nldbl___isoc99_sscanf F +GLIBC_2.7 __nldbl___isoc99_swscanf F +GLIBC_2.7 __nldbl___isoc99_vfscanf F +GLIBC_2.7 __nldbl___isoc99_vfwscanf F +GLIBC_2.7 __nldbl___isoc99_vscanf F +GLIBC_2.7 __nldbl___isoc99_vsscanf F +GLIBC_2.7 __nldbl___isoc99_vswscanf F +GLIBC_2.7 __nldbl___isoc99_vwscanf F +GLIBC_2.7 __nldbl___isoc99_wscanf F +GLIBC_2.7 __open64_2 F +GLIBC_2.7 __open_2 F +GLIBC_2.7 __openat64_2 F +GLIBC_2.7 __openat_2 F +GLIBC_2.7 __sched_cpualloc F +GLIBC_2.7 __sched_cpufree F +GLIBC_2.7 eventfd F +GLIBC_2.7 eventfd_read F +GLIBC_2.7 eventfd_write F +GLIBC_2.7 mkostemp F +GLIBC_2.7 mkostemp64 F +GLIBC_2.7 signalfd F +GLIBC_2.8 GLIBC_2.8 A +GLIBC_2.8 __asprintf_chk F +GLIBC_2.8 __dprintf_chk F +GLIBC_2.8 __nldbl___asprintf_chk F +GLIBC_2.8 __nldbl___dprintf_chk F +GLIBC_2.8 __nldbl___obstack_printf_chk F +GLIBC_2.8 __nldbl___obstack_vprintf_chk F +GLIBC_2.8 __nldbl___vasprintf_chk F +GLIBC_2.8 __nldbl___vdprintf_chk F +GLIBC_2.8 __obstack_printf_chk F +GLIBC_2.8 __obstack_vprintf_chk F +GLIBC_2.8 __vasprintf_chk F +GLIBC_2.8 __vdprintf_chk F +GLIBC_2.8 qsort_r F +GLIBC_2.8 timerfd_create F +GLIBC_2.8 timerfd_gettime F +GLIBC_2.8 timerfd_settime F +GLIBC_2.9 GLIBC_2.9 A +GLIBC_2.9 dup3 F +GLIBC_2.9 epoll_create1 F +GLIBC_2.9 inotify_init1 F +GLIBC_2.9 pipe2 F diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libcrypt-le.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libcrypt-le.abilist new file mode 100644 index 0000000000..58944b3d83 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libcrypt-le.abilist @@ -0,0 +1,8 @@ +GLIBC_2.17 GLIBC_2.17 A +GLIBC_2.17 crypt F +GLIBC_2.17 crypt_r F +GLIBC_2.17 encrypt F +GLIBC_2.17 encrypt_r F +GLIBC_2.17 fcrypt F +GLIBC_2.17 setkey F +GLIBC_2.17 setkey_r F diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libcrypt.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libcrypt.abilist new file mode 100644 index 0000000000..52cf1ac766 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libcrypt.abilist @@ -0,0 +1,8 @@ +GLIBC_2.3 GLIBC_2.3 A +GLIBC_2.3 crypt F +GLIBC_2.3 crypt_r F +GLIBC_2.3 encrypt F +GLIBC_2.3 encrypt_r F +GLIBC_2.3 fcrypt F +GLIBC_2.3 setkey F +GLIBC_2.3 setkey_r F diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libdl-le.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libdl-le.abilist new file mode 100644 index 0000000000..1b4b1f77ed --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libdl-le.abilist @@ -0,0 +1,10 @@ +GLIBC_2.17 GLIBC_2.17 A +GLIBC_2.17 dladdr F +GLIBC_2.17 dladdr1 F +GLIBC_2.17 dlclose F +GLIBC_2.17 dlerror F +GLIBC_2.17 dlinfo F +GLIBC_2.17 dlmopen F +GLIBC_2.17 dlopen F +GLIBC_2.17 dlsym F +GLIBC_2.17 dlvsym F diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libdl.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libdl.abilist new file mode 100644 index 0000000000..764ddc1c19 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libdl.abilist @@ -0,0 +1,12 @@ +GLIBC_2.3 GLIBC_2.3 A +GLIBC_2.3 dladdr F +GLIBC_2.3 dlclose F +GLIBC_2.3 dlerror F +GLIBC_2.3 dlopen F +GLIBC_2.3 dlsym F +GLIBC_2.3 dlvsym F +GLIBC_2.3.3 GLIBC_2.3.3 A +GLIBC_2.3.3 dladdr1 F +GLIBC_2.3.3 dlinfo F +GLIBC_2.3.4 GLIBC_2.3.4 A +GLIBC_2.3.4 dlmopen F diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libm-le.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libm-le.abilist new file mode 100644 index 0000000000..9658ded223 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libm-le.abilist @@ -0,0 +1,469 @@ +GLIBC_2.17 GLIBC_2.17 A +GLIBC_2.17 _LIB_VERSION D 0x4 +GLIBC_2.17 __acos_finite F +GLIBC_2.17 __acosf_finite F +GLIBC_2.17 __acosh_finite F +GLIBC_2.17 __acoshf_finite F +GLIBC_2.17 __acoshl_finite F +GLIBC_2.17 __acosl_finite F +GLIBC_2.17 __asin_finite F +GLIBC_2.17 __asinf_finite F +GLIBC_2.17 __asinl_finite F +GLIBC_2.17 __atan2_finite F +GLIBC_2.17 __atan2f_finite F +GLIBC_2.17 __atan2l_finite F +GLIBC_2.17 __atanh_finite F +GLIBC_2.17 __atanhf_finite F +GLIBC_2.17 __atanhl_finite F +GLIBC_2.17 __clog10 F +GLIBC_2.17 __clog10f F +GLIBC_2.17 __clog10l F +GLIBC_2.17 __cosh_finite F +GLIBC_2.17 __coshf_finite F +GLIBC_2.17 __coshl_finite F +GLIBC_2.17 __exp10_finite F +GLIBC_2.17 __exp10f_finite F +GLIBC_2.17 __exp10l_finite F +GLIBC_2.17 __exp2_finite F +GLIBC_2.17 __exp2f_finite F +GLIBC_2.17 __exp2l_finite F +GLIBC_2.17 __exp_finite F +GLIBC_2.17 __expf_finite F +GLIBC_2.17 __expl_finite F +GLIBC_2.17 __fe_dfl_env D 0x8 +GLIBC_2.17 __fe_enabled_env D 0x8 +GLIBC_2.17 __fe_nomask_env F +GLIBC_2.17 __fe_nonieee_env D 0x8 +GLIBC_2.17 __finite F +GLIBC_2.17 __finitef F +GLIBC_2.17 __finitel F +GLIBC_2.17 __fmod_finite F +GLIBC_2.17 __fmodf_finite F +GLIBC_2.17 __fmodl_finite F +GLIBC_2.17 __fpclassify F +GLIBC_2.17 __fpclassifyf F +GLIBC_2.17 __fpclassifyl F +GLIBC_2.17 __gamma_r_finite F +GLIBC_2.17 __gammaf_r_finite F +GLIBC_2.17 __gammal_r_finite F +GLIBC_2.17 __hypot_finite F +GLIBC_2.17 __hypotf_finite F +GLIBC_2.17 __hypotl_finite F +GLIBC_2.17 __j0_finite F +GLIBC_2.17 __j0f_finite F +GLIBC_2.17 __j0l_finite F +GLIBC_2.17 __j1_finite F +GLIBC_2.17 __j1f_finite F +GLIBC_2.17 __j1l_finite F +GLIBC_2.17 __jn_finite F +GLIBC_2.17 __jnf_finite F +GLIBC_2.17 __jnl_finite F +GLIBC_2.17 __lgamma_r_finite F +GLIBC_2.17 __lgammaf_r_finite F +GLIBC_2.17 __lgammal_r_finite F +GLIBC_2.17 __log10_finite F +GLIBC_2.17 __log10f_finite F +GLIBC_2.17 __log10l_finite F +GLIBC_2.17 __log2_finite F +GLIBC_2.17 __log2f_finite F +GLIBC_2.17 __log2l_finite F +GLIBC_2.17 __log_finite F +GLIBC_2.17 __logf_finite F +GLIBC_2.17 __logl_finite F +GLIBC_2.17 __nldbl_nexttowardf F +GLIBC_2.17 __pow_finite F +GLIBC_2.17 __powf_finite F +GLIBC_2.17 __powl_finite F +GLIBC_2.17 __remainder_finite F +GLIBC_2.17 __remainderf_finite F +GLIBC_2.17 __remainderl_finite F +GLIBC_2.17 __scalb_finite F +GLIBC_2.17 __scalbf_finite F +GLIBC_2.17 __scalbl_finite F +GLIBC_2.17 __signbit F +GLIBC_2.17 __signbitf F +GLIBC_2.17 __signbitl F +GLIBC_2.17 __sinh_finite F +GLIBC_2.17 __sinhf_finite F +GLIBC_2.17 __sinhl_finite F +GLIBC_2.17 __sqrt_finite F +GLIBC_2.17 __sqrtf_finite F +GLIBC_2.17 __sqrtl_finite F +GLIBC_2.17 __y0_finite F +GLIBC_2.17 __y0f_finite F +GLIBC_2.17 __y0l_finite F +GLIBC_2.17 __y1_finite F +GLIBC_2.17 __y1f_finite F +GLIBC_2.17 __y1l_finite F +GLIBC_2.17 __yn_finite F +GLIBC_2.17 __ynf_finite F +GLIBC_2.17 __ynl_finite F +GLIBC_2.17 acos F +GLIBC_2.17 acosf F +GLIBC_2.17 acosh F +GLIBC_2.17 acoshf F +GLIBC_2.17 acoshl F +GLIBC_2.17 acosl F +GLIBC_2.17 asin F +GLIBC_2.17 asinf F +GLIBC_2.17 asinh F +GLIBC_2.17 asinhf F +GLIBC_2.17 asinhl F +GLIBC_2.17 asinl F +GLIBC_2.17 atan F +GLIBC_2.17 atan2 F +GLIBC_2.17 atan2f F +GLIBC_2.17 atan2l F +GLIBC_2.17 atanf F +GLIBC_2.17 atanh F +GLIBC_2.17 atanhf F +GLIBC_2.17 atanhl F +GLIBC_2.17 atanl F +GLIBC_2.17 cabs F +GLIBC_2.17 cabsf F +GLIBC_2.17 cabsl F +GLIBC_2.17 cacos F +GLIBC_2.17 cacosf F +GLIBC_2.17 cacosh F +GLIBC_2.17 cacoshf F +GLIBC_2.17 cacoshl F +GLIBC_2.17 cacosl F +GLIBC_2.17 carg F +GLIBC_2.17 cargf F +GLIBC_2.17 cargl F +GLIBC_2.17 casin F +GLIBC_2.17 casinf F +GLIBC_2.17 casinh F +GLIBC_2.17 casinhf F +GLIBC_2.17 casinhl F +GLIBC_2.17 casinl F +GLIBC_2.17 catan F +GLIBC_2.17 catanf F +GLIBC_2.17 catanh F +GLIBC_2.17 catanhf F +GLIBC_2.17 catanhl F +GLIBC_2.17 catanl F +GLIBC_2.17 cbrt F +GLIBC_2.17 cbrtf F +GLIBC_2.17 cbrtl F +GLIBC_2.17 ccos F +GLIBC_2.17 ccosf F +GLIBC_2.17 ccosh F +GLIBC_2.17 ccoshf F +GLIBC_2.17 ccoshl F +GLIBC_2.17 ccosl F +GLIBC_2.17 ceil F +GLIBC_2.17 ceilf F +GLIBC_2.17 ceill F +GLIBC_2.17 cexp F +GLIBC_2.17 cexpf F +GLIBC_2.17 cexpl F +GLIBC_2.17 cimag F +GLIBC_2.17 cimagf F +GLIBC_2.17 cimagl F +GLIBC_2.17 clog F +GLIBC_2.17 clog10 F +GLIBC_2.17 clog10f F +GLIBC_2.17 clog10l F +GLIBC_2.17 clogf F +GLIBC_2.17 clogl F +GLIBC_2.17 conj F +GLIBC_2.17 conjf F +GLIBC_2.17 conjl F +GLIBC_2.17 copysign F +GLIBC_2.17 copysignf F +GLIBC_2.17 copysignl F +GLIBC_2.17 cos F +GLIBC_2.17 cosf F +GLIBC_2.17 cosh F +GLIBC_2.17 coshf F +GLIBC_2.17 coshl F +GLIBC_2.17 cosl F +GLIBC_2.17 cpow F +GLIBC_2.17 cpowf F +GLIBC_2.17 cpowl F +GLIBC_2.17 cproj F +GLIBC_2.17 cprojf F +GLIBC_2.17 cprojl F +GLIBC_2.17 creal F +GLIBC_2.17 crealf F +GLIBC_2.17 creall F +GLIBC_2.17 csin F +GLIBC_2.17 csinf F +GLIBC_2.17 csinh F +GLIBC_2.17 csinhf F +GLIBC_2.17 csinhl F +GLIBC_2.17 csinl F +GLIBC_2.17 csqrt F +GLIBC_2.17 csqrtf F +GLIBC_2.17 csqrtl F +GLIBC_2.17 ctan F +GLIBC_2.17 ctanf F +GLIBC_2.17 ctanh F +GLIBC_2.17 ctanhf F +GLIBC_2.17 ctanhl F +GLIBC_2.17 ctanl F +GLIBC_2.17 drem F +GLIBC_2.17 dremf F +GLIBC_2.17 dreml F +GLIBC_2.17 erf F +GLIBC_2.17 erfc F +GLIBC_2.17 erfcf F +GLIBC_2.17 erfcl F +GLIBC_2.17 erff F +GLIBC_2.17 erfl F +GLIBC_2.17 exp F +GLIBC_2.17 exp10 F +GLIBC_2.17 exp10f F +GLIBC_2.17 exp10l F +GLIBC_2.17 exp2 F +GLIBC_2.17 exp2f F +GLIBC_2.17 exp2l F +GLIBC_2.17 expf F +GLIBC_2.17 expl F +GLIBC_2.17 expm1 F +GLIBC_2.17 expm1f F +GLIBC_2.17 expm1l F +GLIBC_2.17 fabs F +GLIBC_2.17 fabsf F +GLIBC_2.17 fabsl F +GLIBC_2.17 fdim F +GLIBC_2.17 fdimf F +GLIBC_2.17 fdiml F +GLIBC_2.17 feclearexcept F +GLIBC_2.17 fedisableexcept F +GLIBC_2.17 feenableexcept F +GLIBC_2.17 fegetenv F +GLIBC_2.17 fegetexcept F +GLIBC_2.17 fegetexceptflag F +GLIBC_2.17 fegetround F +GLIBC_2.17 feholdexcept F +GLIBC_2.17 feraiseexcept F +GLIBC_2.17 fesetenv F +GLIBC_2.17 fesetexceptflag F +GLIBC_2.17 fesetround F +GLIBC_2.17 fetestexcept F +GLIBC_2.17 feupdateenv F +GLIBC_2.17 finite F +GLIBC_2.17 finitef F +GLIBC_2.17 finitel F +GLIBC_2.17 floor F +GLIBC_2.17 floorf F +GLIBC_2.17 floorl F +GLIBC_2.17 fma F +GLIBC_2.17 fmaf F +GLIBC_2.17 fmal F +GLIBC_2.17 fmax F +GLIBC_2.17 fmaxf F +GLIBC_2.17 fmaxl F +GLIBC_2.17 fmin F +GLIBC_2.17 fminf F +GLIBC_2.17 fminl F +GLIBC_2.17 fmod F +GLIBC_2.17 fmodf F +GLIBC_2.17 fmodl F +GLIBC_2.17 frexp F +GLIBC_2.17 frexpf F +GLIBC_2.17 frexpl F +GLIBC_2.17 gamma F +GLIBC_2.17 gammaf F +GLIBC_2.17 gammal F +GLIBC_2.17 hypot F +GLIBC_2.17 hypotf F +GLIBC_2.17 hypotl F +GLIBC_2.17 ilogb F +GLIBC_2.17 ilogbf F +GLIBC_2.17 ilogbl F +GLIBC_2.17 j0 F +GLIBC_2.17 j0f F +GLIBC_2.17 j0l F +GLIBC_2.17 j1 F +GLIBC_2.17 j1f F +GLIBC_2.17 j1l F +GLIBC_2.17 jn F +GLIBC_2.17 jnf F +GLIBC_2.17 jnl F +GLIBC_2.17 ldexp F +GLIBC_2.17 ldexpf F +GLIBC_2.17 ldexpl F +GLIBC_2.17 lgamma F +GLIBC_2.17 lgamma_r F +GLIBC_2.17 lgammaf F +GLIBC_2.17 lgammaf_r F +GLIBC_2.17 lgammal F +GLIBC_2.17 lgammal_r F +GLIBC_2.17 llrint F +GLIBC_2.17 llrintf F +GLIBC_2.17 llrintl F +GLIBC_2.17 llround F +GLIBC_2.17 llroundf F +GLIBC_2.17 llroundl F +GLIBC_2.17 log F +GLIBC_2.17 log10 F +GLIBC_2.17 log10f F +GLIBC_2.17 log10l F +GLIBC_2.17 log1p F +GLIBC_2.17 log1pf F +GLIBC_2.17 log1pl F +GLIBC_2.17 log2 F +GLIBC_2.17 log2f F +GLIBC_2.17 log2l F +GLIBC_2.17 logb F +GLIBC_2.17 logbf F +GLIBC_2.17 logbl F +GLIBC_2.17 logf F +GLIBC_2.17 logl F +GLIBC_2.17 lrint F +GLIBC_2.17 lrintf F +GLIBC_2.17 lrintl F +GLIBC_2.17 lround F +GLIBC_2.17 lroundf F +GLIBC_2.17 lroundl F +GLIBC_2.17 matherr F +GLIBC_2.17 modf F +GLIBC_2.17 modff F +GLIBC_2.17 modfl F +GLIBC_2.17 nan F +GLIBC_2.17 nanf F +GLIBC_2.17 nanl F +GLIBC_2.17 nearbyint F +GLIBC_2.17 nearbyintf F +GLIBC_2.17 nearbyintl F +GLIBC_2.17 nextafter F +GLIBC_2.17 nextafterf F +GLIBC_2.17 nextafterl F +GLIBC_2.17 nexttoward F +GLIBC_2.17 nexttowardf F +GLIBC_2.17 nexttowardl F +GLIBC_2.17 pow F +GLIBC_2.17 pow10 F +GLIBC_2.17 pow10f F +GLIBC_2.17 pow10l F +GLIBC_2.17 powf F +GLIBC_2.17 powl F +GLIBC_2.17 remainder F +GLIBC_2.17 remainderf F +GLIBC_2.17 remainderl F +GLIBC_2.17 remquo F +GLIBC_2.17 remquof F +GLIBC_2.17 remquol F +GLIBC_2.17 rint F +GLIBC_2.17 rintf F +GLIBC_2.17 rintl F +GLIBC_2.17 round F +GLIBC_2.17 roundf F +GLIBC_2.17 roundl F +GLIBC_2.17 scalb F +GLIBC_2.17 scalbf F +GLIBC_2.17 scalbl F +GLIBC_2.17 scalbln F +GLIBC_2.17 scalblnf F +GLIBC_2.17 scalblnl F +GLIBC_2.17 scalbn F +GLIBC_2.17 scalbnf F +GLIBC_2.17 scalbnl F +GLIBC_2.17 signgam D 0x4 +GLIBC_2.17 significand F +GLIBC_2.17 significandf F +GLIBC_2.17 significandl F +GLIBC_2.17 sin F +GLIBC_2.17 sincos F +GLIBC_2.17 sincosf F +GLIBC_2.17 sincosl F +GLIBC_2.17 sinf F +GLIBC_2.17 sinh F +GLIBC_2.17 sinhf F +GLIBC_2.17 sinhl F +GLIBC_2.17 sinl F +GLIBC_2.17 sqrt F +GLIBC_2.17 sqrtf F +GLIBC_2.17 sqrtl F +GLIBC_2.17 tan F +GLIBC_2.17 tanf F +GLIBC_2.17 tanh F +GLIBC_2.17 tanhf F +GLIBC_2.17 tanhl F +GLIBC_2.17 tanl F +GLIBC_2.17 tgamma F +GLIBC_2.17 tgammaf F +GLIBC_2.17 tgammal F +GLIBC_2.17 trunc F +GLIBC_2.17 truncf F +GLIBC_2.17 truncl F +GLIBC_2.17 y0 F +GLIBC_2.17 y0f F +GLIBC_2.17 y0l F +GLIBC_2.17 y1 F +GLIBC_2.17 y1f F +GLIBC_2.17 y1l F +GLIBC_2.17 yn F +GLIBC_2.17 ynf F +GLIBC_2.17 ynl F +GLIBC_2.18 GLIBC_2.18 A +GLIBC_2.18 __issignaling F +GLIBC_2.18 __issignalingf F +GLIBC_2.18 __issignalingl F +GLIBC_2.23 GLIBC_2.23 A +GLIBC_2.23 __signgam D 0x4 +GLIBC_2.23 lgamma F +GLIBC_2.23 lgammaf F +GLIBC_2.23 lgammal F +GLIBC_2.24 GLIBC_2.24 A +GLIBC_2.24 nextdown F +GLIBC_2.24 nextdownf F +GLIBC_2.24 nextdownl F +GLIBC_2.24 nextup F +GLIBC_2.24 nextupf F +GLIBC_2.24 nextupl F +GLIBC_2.25 GLIBC_2.25 A +GLIBC_2.25 __fe_dfl_mode D 0x8 +GLIBC_2.25 __iscanonicall F +GLIBC_2.25 __iseqsig F +GLIBC_2.25 __iseqsigf F +GLIBC_2.25 __iseqsigl F +GLIBC_2.25 canonicalize F +GLIBC_2.25 canonicalizef F +GLIBC_2.25 canonicalizel F +GLIBC_2.25 fegetmode F +GLIBC_2.25 fesetexcept F +GLIBC_2.25 fesetmode F +GLIBC_2.25 fetestexceptflag F +GLIBC_2.25 fmaxmag F +GLIBC_2.25 fmaxmagf F +GLIBC_2.25 fmaxmagl F +GLIBC_2.25 fminmag F +GLIBC_2.25 fminmagf F +GLIBC_2.25 fminmagl F +GLIBC_2.25 fromfp F +GLIBC_2.25 fromfpf F +GLIBC_2.25 fromfpl F +GLIBC_2.25 fromfpx F +GLIBC_2.25 fromfpxf F +GLIBC_2.25 fromfpxl F +GLIBC_2.25 getpayload F +GLIBC_2.25 getpayloadf F +GLIBC_2.25 getpayloadl F +GLIBC_2.25 llogb F +GLIBC_2.25 llogbf F +GLIBC_2.25 llogbl F +GLIBC_2.25 roundeven F +GLIBC_2.25 roundevenf F +GLIBC_2.25 roundevenl F +GLIBC_2.25 setpayload F +GLIBC_2.25 setpayloadf F +GLIBC_2.25 setpayloadl F +GLIBC_2.25 setpayloadsig F +GLIBC_2.25 setpayloadsigf F +GLIBC_2.25 setpayloadsigl F +GLIBC_2.25 totalorder F +GLIBC_2.25 totalorderf F +GLIBC_2.25 totalorderl F +GLIBC_2.25 totalordermag F +GLIBC_2.25 totalordermagf F +GLIBC_2.25 totalordermagl F +GLIBC_2.25 ufromfp F +GLIBC_2.25 ufromfpf F +GLIBC_2.25 ufromfpl F +GLIBC_2.25 ufromfpx F +GLIBC_2.25 ufromfpxf F +GLIBC_2.25 ufromfpxl F diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libm.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libm.abilist new file mode 100644 index 0000000000..afd381791a --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libm.abilist @@ -0,0 +1,569 @@ +GLIBC_2.15 GLIBC_2.15 A +GLIBC_2.15 __acos_finite F +GLIBC_2.15 __acosf_finite F +GLIBC_2.15 __acosh_finite F +GLIBC_2.15 __acoshf_finite F +GLIBC_2.15 __acoshl_finite F +GLIBC_2.15 __acosl_finite F +GLIBC_2.15 __asin_finite F +GLIBC_2.15 __asinf_finite F +GLIBC_2.15 __asinl_finite F +GLIBC_2.15 __atan2_finite F +GLIBC_2.15 __atan2f_finite F +GLIBC_2.15 __atan2l_finite F +GLIBC_2.15 __atanh_finite F +GLIBC_2.15 __atanhf_finite F +GLIBC_2.15 __atanhl_finite F +GLIBC_2.15 __cosh_finite F +GLIBC_2.15 __coshf_finite F +GLIBC_2.15 __coshl_finite F +GLIBC_2.15 __exp10_finite F +GLIBC_2.15 __exp10f_finite F +GLIBC_2.15 __exp10l_finite F +GLIBC_2.15 __exp2_finite F +GLIBC_2.15 __exp2f_finite F +GLIBC_2.15 __exp2l_finite F +GLIBC_2.15 __exp_finite F +GLIBC_2.15 __expf_finite F +GLIBC_2.15 __expl_finite F +GLIBC_2.15 __fmod_finite F +GLIBC_2.15 __fmodf_finite F +GLIBC_2.15 __fmodl_finite F +GLIBC_2.15 __gamma_r_finite F +GLIBC_2.15 __gammaf_r_finite F +GLIBC_2.15 __gammal_r_finite F +GLIBC_2.15 __hypot_finite F +GLIBC_2.15 __hypotf_finite F +GLIBC_2.15 __hypotl_finite F +GLIBC_2.15 __j0_finite F +GLIBC_2.15 __j0f_finite F +GLIBC_2.15 __j0l_finite F +GLIBC_2.15 __j1_finite F +GLIBC_2.15 __j1f_finite F +GLIBC_2.15 __j1l_finite F +GLIBC_2.15 __jn_finite F +GLIBC_2.15 __jnf_finite F +GLIBC_2.15 __jnl_finite F +GLIBC_2.15 __lgamma_r_finite F +GLIBC_2.15 __lgammaf_r_finite F +GLIBC_2.15 __lgammal_r_finite F +GLIBC_2.15 __log10_finite F +GLIBC_2.15 __log10f_finite F +GLIBC_2.15 __log10l_finite F +GLIBC_2.15 __log2_finite F +GLIBC_2.15 __log2f_finite F +GLIBC_2.15 __log2l_finite F +GLIBC_2.15 __log_finite F +GLIBC_2.15 __logf_finite F +GLIBC_2.15 __logl_finite F +GLIBC_2.15 __pow_finite F +GLIBC_2.15 __powf_finite F +GLIBC_2.15 __powl_finite F +GLIBC_2.15 __remainder_finite F +GLIBC_2.15 __remainderf_finite F +GLIBC_2.15 __remainderl_finite F +GLIBC_2.15 __scalb_finite F +GLIBC_2.15 __scalbf_finite F +GLIBC_2.15 __scalbl_finite F +GLIBC_2.15 __sinh_finite F +GLIBC_2.15 __sinhf_finite F +GLIBC_2.15 __sinhl_finite F +GLIBC_2.15 __sqrt_finite F +GLIBC_2.15 __sqrtf_finite F +GLIBC_2.15 __sqrtl_finite F +GLIBC_2.15 __y0_finite F +GLIBC_2.15 __y0f_finite F +GLIBC_2.15 __y0l_finite F +GLIBC_2.15 __y1_finite F +GLIBC_2.15 __y1f_finite F +GLIBC_2.15 __y1l_finite F +GLIBC_2.15 __yn_finite F +GLIBC_2.15 __ynf_finite F +GLIBC_2.15 __ynl_finite F +GLIBC_2.18 GLIBC_2.18 A +GLIBC_2.18 __issignaling F +GLIBC_2.18 __issignalingf F +GLIBC_2.18 __issignalingl F +GLIBC_2.23 GLIBC_2.23 A +GLIBC_2.23 __signgam D 0x4 +GLIBC_2.23 lgamma F +GLIBC_2.23 lgammaf F +GLIBC_2.23 lgammal F +GLIBC_2.24 GLIBC_2.24 A +GLIBC_2.24 nextdown F +GLIBC_2.24 nextdownf F +GLIBC_2.24 nextdownl F +GLIBC_2.24 nextup F +GLIBC_2.24 nextupf F +GLIBC_2.24 nextupl F +GLIBC_2.25 GLIBC_2.25 A +GLIBC_2.25 __fe_dfl_mode D 0x8 +GLIBC_2.25 __iscanonicall F +GLIBC_2.25 __iseqsig F +GLIBC_2.25 __iseqsigf F +GLIBC_2.25 __iseqsigl F +GLIBC_2.25 canonicalize F +GLIBC_2.25 canonicalizef F +GLIBC_2.25 canonicalizel F +GLIBC_2.25 fegetmode F +GLIBC_2.25 fesetexcept F +GLIBC_2.25 fesetmode F +GLIBC_2.25 fetestexceptflag F +GLIBC_2.25 fmaxmag F +GLIBC_2.25 fmaxmagf F +GLIBC_2.25 fmaxmagl F +GLIBC_2.25 fminmag F +GLIBC_2.25 fminmagf F +GLIBC_2.25 fminmagl F +GLIBC_2.25 fromfp F +GLIBC_2.25 fromfpf F +GLIBC_2.25 fromfpl F +GLIBC_2.25 fromfpx F +GLIBC_2.25 fromfpxf F +GLIBC_2.25 fromfpxl F +GLIBC_2.25 getpayload F +GLIBC_2.25 getpayloadf F +GLIBC_2.25 getpayloadl F +GLIBC_2.25 llogb F +GLIBC_2.25 llogbf F +GLIBC_2.25 llogbl F +GLIBC_2.25 roundeven F +GLIBC_2.25 roundevenf F +GLIBC_2.25 roundevenl F +GLIBC_2.25 setpayload F +GLIBC_2.25 setpayloadf F +GLIBC_2.25 setpayloadl F +GLIBC_2.25 setpayloadsig F +GLIBC_2.25 setpayloadsigf F +GLIBC_2.25 setpayloadsigl F +GLIBC_2.25 totalorder F +GLIBC_2.25 totalorderf F +GLIBC_2.25 totalorderl F +GLIBC_2.25 totalordermag F +GLIBC_2.25 totalordermagf F +GLIBC_2.25 totalordermagl F +GLIBC_2.25 ufromfp F +GLIBC_2.25 ufromfpf F +GLIBC_2.25 ufromfpl F +GLIBC_2.25 ufromfpx F +GLIBC_2.25 ufromfpxf F +GLIBC_2.25 ufromfpxl F +GLIBC_2.3 GLIBC_2.3 A +GLIBC_2.3 _LIB_VERSION D 0x4 +GLIBC_2.3 __clog10 F +GLIBC_2.3 __clog10f F +GLIBC_2.3 __clog10l F +GLIBC_2.3 __fe_dfl_env D 0x8 +GLIBC_2.3 __fe_enabled_env D 0x8 +GLIBC_2.3 __fe_nomask_env F +GLIBC_2.3 __fe_nonieee_env D 0x8 +GLIBC_2.3 __finite F +GLIBC_2.3 __finitef F +GLIBC_2.3 __finitel F +GLIBC_2.3 __fpclassify F +GLIBC_2.3 __fpclassifyf F +GLIBC_2.3 __signbit F +GLIBC_2.3 __signbitf F +GLIBC_2.3 acos F +GLIBC_2.3 acosf F +GLIBC_2.3 acosh F +GLIBC_2.3 acoshf F +GLIBC_2.3 acoshl F +GLIBC_2.3 acosl F +GLIBC_2.3 asin F +GLIBC_2.3 asinf F +GLIBC_2.3 asinh F +GLIBC_2.3 asinhf F +GLIBC_2.3 asinhl F +GLIBC_2.3 asinl F +GLIBC_2.3 atan F +GLIBC_2.3 atan2 F +GLIBC_2.3 atan2f F +GLIBC_2.3 atan2l F +GLIBC_2.3 atanf F +GLIBC_2.3 atanh F +GLIBC_2.3 atanhf F +GLIBC_2.3 atanhl F +GLIBC_2.3 atanl F +GLIBC_2.3 cabs F +GLIBC_2.3 cabsf F +GLIBC_2.3 cabsl F +GLIBC_2.3 cacos F +GLIBC_2.3 cacosf F +GLIBC_2.3 cacosh F +GLIBC_2.3 cacoshf F +GLIBC_2.3 cacoshl F +GLIBC_2.3 cacosl F +GLIBC_2.3 carg F +GLIBC_2.3 cargf F +GLIBC_2.3 cargl F +GLIBC_2.3 casin F +GLIBC_2.3 casinf F +GLIBC_2.3 casinh F +GLIBC_2.3 casinhf F +GLIBC_2.3 casinhl F +GLIBC_2.3 casinl F +GLIBC_2.3 catan F +GLIBC_2.3 catanf F +GLIBC_2.3 catanh F +GLIBC_2.3 catanhf F +GLIBC_2.3 catanhl F +GLIBC_2.3 catanl F +GLIBC_2.3 cbrt F +GLIBC_2.3 cbrtf F +GLIBC_2.3 cbrtl F +GLIBC_2.3 ccos F +GLIBC_2.3 ccosf F +GLIBC_2.3 ccosh F +GLIBC_2.3 ccoshf F +GLIBC_2.3 ccoshl F +GLIBC_2.3 ccosl F +GLIBC_2.3 ceil F +GLIBC_2.3 ceilf F +GLIBC_2.3 ceill F +GLIBC_2.3 cexp F +GLIBC_2.3 cexpf F +GLIBC_2.3 cexpl F +GLIBC_2.3 cimag F +GLIBC_2.3 cimagf F +GLIBC_2.3 cimagl F +GLIBC_2.3 clog F +GLIBC_2.3 clog10 F +GLIBC_2.3 clog10f F +GLIBC_2.3 clog10l F +GLIBC_2.3 clogf F +GLIBC_2.3 clogl F +GLIBC_2.3 conj F +GLIBC_2.3 conjf F +GLIBC_2.3 conjl F +GLIBC_2.3 copysign F +GLIBC_2.3 copysignf F +GLIBC_2.3 copysignl F +GLIBC_2.3 cos F +GLIBC_2.3 cosf F +GLIBC_2.3 cosh F +GLIBC_2.3 coshf F +GLIBC_2.3 coshl F +GLIBC_2.3 cosl F +GLIBC_2.3 cpow F +GLIBC_2.3 cpowf F +GLIBC_2.3 cpowl F +GLIBC_2.3 cproj F +GLIBC_2.3 cprojf F +GLIBC_2.3 cprojl F +GLIBC_2.3 creal F +GLIBC_2.3 crealf F +GLIBC_2.3 creall F +GLIBC_2.3 csin F +GLIBC_2.3 csinf F +GLIBC_2.3 csinh F +GLIBC_2.3 csinhf F +GLIBC_2.3 csinhl F +GLIBC_2.3 csinl F +GLIBC_2.3 csqrt F +GLIBC_2.3 csqrtf F +GLIBC_2.3 csqrtl F +GLIBC_2.3 ctan F +GLIBC_2.3 ctanf F +GLIBC_2.3 ctanh F +GLIBC_2.3 ctanhf F +GLIBC_2.3 ctanhl F +GLIBC_2.3 ctanl F +GLIBC_2.3 drem F +GLIBC_2.3 dremf F +GLIBC_2.3 dreml F +GLIBC_2.3 erf F +GLIBC_2.3 erfc F +GLIBC_2.3 erfcf F +GLIBC_2.3 erfcl F +GLIBC_2.3 erff F +GLIBC_2.3 erfl F +GLIBC_2.3 exp F +GLIBC_2.3 exp10 F +GLIBC_2.3 exp10f F +GLIBC_2.3 exp10l F +GLIBC_2.3 exp2 F +GLIBC_2.3 exp2f F +GLIBC_2.3 expf F +GLIBC_2.3 expl F +GLIBC_2.3 expm1 F +GLIBC_2.3 expm1f F +GLIBC_2.3 expm1l F +GLIBC_2.3 fabs F +GLIBC_2.3 fabsf F +GLIBC_2.3 fabsl F +GLIBC_2.3 fdim F +GLIBC_2.3 fdimf F +GLIBC_2.3 fdiml F +GLIBC_2.3 feclearexcept F +GLIBC_2.3 fedisableexcept F +GLIBC_2.3 feenableexcept F +GLIBC_2.3 fegetenv F +GLIBC_2.3 fegetexcept F +GLIBC_2.3 fegetexceptflag F +GLIBC_2.3 fegetround F +GLIBC_2.3 feholdexcept F +GLIBC_2.3 feraiseexcept F +GLIBC_2.3 fesetenv F +GLIBC_2.3 fesetexceptflag F +GLIBC_2.3 fesetround F +GLIBC_2.3 fetestexcept F +GLIBC_2.3 feupdateenv F +GLIBC_2.3 finite F +GLIBC_2.3 finitef F +GLIBC_2.3 finitel F +GLIBC_2.3 floor F +GLIBC_2.3 floorf F +GLIBC_2.3 floorl F +GLIBC_2.3 fma F +GLIBC_2.3 fmaf F +GLIBC_2.3 fmal F +GLIBC_2.3 fmax F +GLIBC_2.3 fmaxf F +GLIBC_2.3 fmaxl F +GLIBC_2.3 fmin F +GLIBC_2.3 fminf F +GLIBC_2.3 fminl F +GLIBC_2.3 fmod F +GLIBC_2.3 fmodf F +GLIBC_2.3 fmodl F +GLIBC_2.3 frexp F +GLIBC_2.3 frexpf F +GLIBC_2.3 frexpl F +GLIBC_2.3 gamma F +GLIBC_2.3 gammaf F +GLIBC_2.3 gammal F +GLIBC_2.3 hypot F +GLIBC_2.3 hypotf F +GLIBC_2.3 hypotl F +GLIBC_2.3 ilogb F +GLIBC_2.3 ilogbf F +GLIBC_2.3 ilogbl F +GLIBC_2.3 j0 F +GLIBC_2.3 j0f F +GLIBC_2.3 j0l F +GLIBC_2.3 j1 F +GLIBC_2.3 j1f F +GLIBC_2.3 j1l F +GLIBC_2.3 jn F +GLIBC_2.3 jnf F +GLIBC_2.3 jnl F +GLIBC_2.3 ldexp F +GLIBC_2.3 ldexpf F +GLIBC_2.3 ldexpl F +GLIBC_2.3 lgamma F +GLIBC_2.3 lgamma_r F +GLIBC_2.3 lgammaf F +GLIBC_2.3 lgammaf_r F +GLIBC_2.3 lgammal F +GLIBC_2.3 lgammal_r F +GLIBC_2.3 llrint F +GLIBC_2.3 llrintf F +GLIBC_2.3 llrintl F +GLIBC_2.3 llround F +GLIBC_2.3 llroundf F +GLIBC_2.3 llroundl F +GLIBC_2.3 log F +GLIBC_2.3 log10 F +GLIBC_2.3 log10f F +GLIBC_2.3 log10l F +GLIBC_2.3 log1p F +GLIBC_2.3 log1pf F +GLIBC_2.3 log1pl F +GLIBC_2.3 log2 F +GLIBC_2.3 log2f F +GLIBC_2.3 log2l F +GLIBC_2.3 logb F +GLIBC_2.3 logbf F +GLIBC_2.3 logbl F +GLIBC_2.3 logf F +GLIBC_2.3 logl F +GLIBC_2.3 lrint F +GLIBC_2.3 lrintf F +GLIBC_2.3 lrintl F +GLIBC_2.3 lround F +GLIBC_2.3 lroundf F +GLIBC_2.3 lroundl F +GLIBC_2.3 matherr F +GLIBC_2.3 modf F +GLIBC_2.3 modff F +GLIBC_2.3 modfl F +GLIBC_2.3 nan F +GLIBC_2.3 nanf F +GLIBC_2.3 nanl F +GLIBC_2.3 nearbyint F +GLIBC_2.3 nearbyintf F +GLIBC_2.3 nearbyintl F +GLIBC_2.3 nextafter F +GLIBC_2.3 nextafterf F +GLIBC_2.3 nextafterl F +GLIBC_2.3 nexttoward F +GLIBC_2.3 nexttowardf F +GLIBC_2.3 nexttowardl F +GLIBC_2.3 pow F +GLIBC_2.3 pow10 F +GLIBC_2.3 pow10f F +GLIBC_2.3 pow10l F +GLIBC_2.3 powf F +GLIBC_2.3 powl F +GLIBC_2.3 remainder F +GLIBC_2.3 remainderf F +GLIBC_2.3 remainderl F +GLIBC_2.3 remquo F +GLIBC_2.3 remquof F +GLIBC_2.3 remquol F +GLIBC_2.3 rint F +GLIBC_2.3 rintf F +GLIBC_2.3 rintl F +GLIBC_2.3 round F +GLIBC_2.3 roundf F +GLIBC_2.3 roundl F +GLIBC_2.3 scalb F +GLIBC_2.3 scalbf F +GLIBC_2.3 scalbl F +GLIBC_2.3 scalbln F +GLIBC_2.3 scalblnf F +GLIBC_2.3 scalblnl F +GLIBC_2.3 scalbn F +GLIBC_2.3 scalbnf F +GLIBC_2.3 scalbnl F +GLIBC_2.3 signgam D 0x4 +GLIBC_2.3 significand F +GLIBC_2.3 significandf F +GLIBC_2.3 significandl F +GLIBC_2.3 sin F +GLIBC_2.3 sincos F +GLIBC_2.3 sincosf F +GLIBC_2.3 sincosl F +GLIBC_2.3 sinf F +GLIBC_2.3 sinh F +GLIBC_2.3 sinhf F +GLIBC_2.3 sinhl F +GLIBC_2.3 sinl F +GLIBC_2.3 sqrt F +GLIBC_2.3 sqrtf F +GLIBC_2.3 sqrtl F +GLIBC_2.3 tan F +GLIBC_2.3 tanf F +GLIBC_2.3 tanh F +GLIBC_2.3 tanhf F +GLIBC_2.3 tanhl F +GLIBC_2.3 tanl F +GLIBC_2.3 tgamma F +GLIBC_2.3 tgammaf F +GLIBC_2.3 tgammal F +GLIBC_2.3 trunc F +GLIBC_2.3 truncf F +GLIBC_2.3 truncl F +GLIBC_2.3 y0 F +GLIBC_2.3 y0f F +GLIBC_2.3 y0l F +GLIBC_2.3 y1 F +GLIBC_2.3 y1f F +GLIBC_2.3 y1l F +GLIBC_2.3 yn F +GLIBC_2.3 ynf F +GLIBC_2.3 ynl F +GLIBC_2.4 GLIBC_2.4 A +GLIBC_2.4 __clog10l F +GLIBC_2.4 __finitel F +GLIBC_2.4 __fpclassifyl F +GLIBC_2.4 __nldbl_nexttowardf F +GLIBC_2.4 __signbitl F +GLIBC_2.4 acoshl F +GLIBC_2.4 acosl F +GLIBC_2.4 asinhl F +GLIBC_2.4 asinl F +GLIBC_2.4 atan2l F +GLIBC_2.4 atanhl F +GLIBC_2.4 atanl F +GLIBC_2.4 cabsl F +GLIBC_2.4 cacoshl F +GLIBC_2.4 cacosl F +GLIBC_2.4 cargl F +GLIBC_2.4 casinhl F +GLIBC_2.4 casinl F +GLIBC_2.4 catanhl F +GLIBC_2.4 catanl F +GLIBC_2.4 cbrtl F +GLIBC_2.4 ccoshl F +GLIBC_2.4 ccosl F +GLIBC_2.4 ceill F +GLIBC_2.4 cexpl F +GLIBC_2.4 cimagl F +GLIBC_2.4 clog10l F +GLIBC_2.4 clogl F +GLIBC_2.4 conjl F +GLIBC_2.4 copysignl F +GLIBC_2.4 coshl F +GLIBC_2.4 cosl F +GLIBC_2.4 cpowl F +GLIBC_2.4 cprojl F +GLIBC_2.4 creall F +GLIBC_2.4 csinhl F +GLIBC_2.4 csinl F +GLIBC_2.4 csqrtl F +GLIBC_2.4 ctanhl F +GLIBC_2.4 ctanl F +GLIBC_2.4 dreml F +GLIBC_2.4 erfcl F +GLIBC_2.4 erfl F +GLIBC_2.4 exp10l F +GLIBC_2.4 exp2l F +GLIBC_2.4 expl F +GLIBC_2.4 expm1l F +GLIBC_2.4 fabsl F +GLIBC_2.4 fdiml F +GLIBC_2.4 finitel F +GLIBC_2.4 floorl F +GLIBC_2.4 fmal F +GLIBC_2.4 fmaxl F +GLIBC_2.4 fminl F +GLIBC_2.4 fmodl F +GLIBC_2.4 frexpl F +GLIBC_2.4 gammal F +GLIBC_2.4 hypotl F +GLIBC_2.4 ilogbl F +GLIBC_2.4 j0l F +GLIBC_2.4 j1l F +GLIBC_2.4 jnl F +GLIBC_2.4 ldexpl F +GLIBC_2.4 lgammal F +GLIBC_2.4 lgammal_r F +GLIBC_2.4 llrintl F +GLIBC_2.4 llroundl F +GLIBC_2.4 log10l F +GLIBC_2.4 log1pl F +GLIBC_2.4 log2l F +GLIBC_2.4 logbl F +GLIBC_2.4 logl F +GLIBC_2.4 lrintl F +GLIBC_2.4 lroundl F +GLIBC_2.4 modfl F +GLIBC_2.4 nanl F +GLIBC_2.4 nearbyintl F +GLIBC_2.4 nextafterl F +GLIBC_2.4 nexttoward F +GLIBC_2.4 nexttowardf F +GLIBC_2.4 nexttowardl F +GLIBC_2.4 pow10l F +GLIBC_2.4 powl F +GLIBC_2.4 remainderl F +GLIBC_2.4 remquol F +GLIBC_2.4 rintl F +GLIBC_2.4 roundl F +GLIBC_2.4 scalbl F +GLIBC_2.4 scalblnl F +GLIBC_2.4 scalbnl F +GLIBC_2.4 significandl F +GLIBC_2.4 sincosl F +GLIBC_2.4 sinhl F +GLIBC_2.4 sinl F +GLIBC_2.4 sqrtl F +GLIBC_2.4 tanhl F +GLIBC_2.4 tanl F +GLIBC_2.4 tgammal F +GLIBC_2.4 truncl F +GLIBC_2.4 y0l F +GLIBC_2.4 y1l F +GLIBC_2.4 ynl F diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libnsl-le.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libnsl-le.abilist new file mode 100644 index 0000000000..63d47aef79 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libnsl-le.abilist @@ -0,0 +1,122 @@ +GLIBC_2.17 GLIBC_2.17 A +GLIBC_2.17 __free_fdresult F +GLIBC_2.17 __nis_default_access F +GLIBC_2.17 __nis_default_group F +GLIBC_2.17 __nis_default_owner F +GLIBC_2.17 __nis_default_ttl F +GLIBC_2.17 __nis_finddirectory F +GLIBC_2.17 __nis_hash F +GLIBC_2.17 __nisbind_connect F +GLIBC_2.17 __nisbind_create F +GLIBC_2.17 __nisbind_destroy F +GLIBC_2.17 __nisbind_next F +GLIBC_2.17 __yp_check F +GLIBC_2.17 nis_add F +GLIBC_2.17 nis_add_entry F +GLIBC_2.17 nis_addmember F +GLIBC_2.17 nis_checkpoint F +GLIBC_2.17 nis_clone_directory F +GLIBC_2.17 nis_clone_object F +GLIBC_2.17 nis_clone_result F +GLIBC_2.17 nis_creategroup F +GLIBC_2.17 nis_destroy_object F +GLIBC_2.17 nis_destroygroup F +GLIBC_2.17 nis_dir_cmp F +GLIBC_2.17 nis_domain_of F +GLIBC_2.17 nis_domain_of_r F +GLIBC_2.17 nis_first_entry F +GLIBC_2.17 nis_free_directory F +GLIBC_2.17 nis_free_object F +GLIBC_2.17 nis_free_request F +GLIBC_2.17 nis_freenames F +GLIBC_2.17 nis_freeresult F +GLIBC_2.17 nis_freeservlist F +GLIBC_2.17 nis_freetags F +GLIBC_2.17 nis_getnames F +GLIBC_2.17 nis_getservlist F +GLIBC_2.17 nis_ismember F +GLIBC_2.17 nis_leaf_of F +GLIBC_2.17 nis_leaf_of_r F +GLIBC_2.17 nis_lerror F +GLIBC_2.17 nis_list F +GLIBC_2.17 nis_local_directory F +GLIBC_2.17 nis_local_group F +GLIBC_2.17 nis_local_host F +GLIBC_2.17 nis_local_principal F +GLIBC_2.17 nis_lookup F +GLIBC_2.17 nis_mkdir F +GLIBC_2.17 nis_modify F +GLIBC_2.17 nis_modify_entry F +GLIBC_2.17 nis_name_of F +GLIBC_2.17 nis_name_of_r F +GLIBC_2.17 nis_next_entry F +GLIBC_2.17 nis_perror F +GLIBC_2.17 nis_ping F +GLIBC_2.17 nis_print_directory F +GLIBC_2.17 nis_print_entry F +GLIBC_2.17 nis_print_group F +GLIBC_2.17 nis_print_group_entry F +GLIBC_2.17 nis_print_link F +GLIBC_2.17 nis_print_object F +GLIBC_2.17 nis_print_result F +GLIBC_2.17 nis_print_rights F +GLIBC_2.17 nis_print_table F +GLIBC_2.17 nis_read_obj F +GLIBC_2.17 nis_remove F +GLIBC_2.17 nis_remove_entry F +GLIBC_2.17 nis_removemember F +GLIBC_2.17 nis_rmdir F +GLIBC_2.17 nis_servstate F +GLIBC_2.17 nis_sperrno F +GLIBC_2.17 nis_sperror F +GLIBC_2.17 nis_sperror_r F +GLIBC_2.17 nis_stats F +GLIBC_2.17 nis_verifygroup F +GLIBC_2.17 nis_write_obj F +GLIBC_2.17 readColdStartFile F +GLIBC_2.17 writeColdStartFile F +GLIBC_2.17 xdr_cback_data F +GLIBC_2.17 xdr_domainname F +GLIBC_2.17 xdr_keydat F +GLIBC_2.17 xdr_mapname F +GLIBC_2.17 xdr_obj_p F +GLIBC_2.17 xdr_peername F +GLIBC_2.17 xdr_valdat F +GLIBC_2.17 xdr_yp_buf F +GLIBC_2.17 xdr_ypall F +GLIBC_2.17 xdr_ypbind_binding F +GLIBC_2.17 xdr_ypbind_resp F +GLIBC_2.17 xdr_ypbind_resptype F +GLIBC_2.17 xdr_ypbind_setdom F +GLIBC_2.17 xdr_ypdelete_args F +GLIBC_2.17 xdr_ypmap_parms F +GLIBC_2.17 xdr_ypmaplist F +GLIBC_2.17 xdr_yppush_status F +GLIBC_2.17 xdr_yppushresp_xfr F +GLIBC_2.17 xdr_ypreq_key F +GLIBC_2.17 xdr_ypreq_nokey F +GLIBC_2.17 xdr_ypreq_xfr F +GLIBC_2.17 xdr_ypresp_all F +GLIBC_2.17 xdr_ypresp_key_val F +GLIBC_2.17 xdr_ypresp_maplist F +GLIBC_2.17 xdr_ypresp_master F +GLIBC_2.17 xdr_ypresp_order F +GLIBC_2.17 xdr_ypresp_val F +GLIBC_2.17 xdr_ypresp_xfr F +GLIBC_2.17 xdr_ypstat F +GLIBC_2.17 xdr_ypupdate_args F +GLIBC_2.17 xdr_ypxfrstat F +GLIBC_2.17 yp_all F +GLIBC_2.17 yp_bind F +GLIBC_2.17 yp_first F +GLIBC_2.17 yp_get_default_domain F +GLIBC_2.17 yp_maplist F +GLIBC_2.17 yp_master F +GLIBC_2.17 yp_match F +GLIBC_2.17 yp_next F +GLIBC_2.17 yp_order F +GLIBC_2.17 yp_unbind F +GLIBC_2.17 yp_update F +GLIBC_2.17 ypbinderr_string F +GLIBC_2.17 yperr_string F +GLIBC_2.17 ypprot_err F diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libnsl.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libnsl.abilist new file mode 100644 index 0000000000..23ef56053e --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libnsl.abilist @@ -0,0 +1,122 @@ +GLIBC_2.3 GLIBC_2.3 A +GLIBC_2.3 __free_fdresult F +GLIBC_2.3 __nis_default_access F +GLIBC_2.3 __nis_default_group F +GLIBC_2.3 __nis_default_owner F +GLIBC_2.3 __nis_default_ttl F +GLIBC_2.3 __nis_finddirectory F +GLIBC_2.3 __nis_hash F +GLIBC_2.3 __nisbind_connect F +GLIBC_2.3 __nisbind_create F +GLIBC_2.3 __nisbind_destroy F +GLIBC_2.3 __nisbind_next F +GLIBC_2.3 __yp_check F +GLIBC_2.3 nis_add F +GLIBC_2.3 nis_add_entry F +GLIBC_2.3 nis_addmember F +GLIBC_2.3 nis_checkpoint F +GLIBC_2.3 nis_clone_directory F +GLIBC_2.3 nis_clone_object F +GLIBC_2.3 nis_clone_result F +GLIBC_2.3 nis_creategroup F +GLIBC_2.3 nis_destroy_object F +GLIBC_2.3 nis_destroygroup F +GLIBC_2.3 nis_dir_cmp F +GLIBC_2.3 nis_domain_of F +GLIBC_2.3 nis_domain_of_r F +GLIBC_2.3 nis_first_entry F +GLIBC_2.3 nis_free_directory F +GLIBC_2.3 nis_free_object F +GLIBC_2.3 nis_free_request F +GLIBC_2.3 nis_freenames F +GLIBC_2.3 nis_freeresult F +GLIBC_2.3 nis_freeservlist F +GLIBC_2.3 nis_freetags F +GLIBC_2.3 nis_getnames F +GLIBC_2.3 nis_getservlist F +GLIBC_2.3 nis_ismember F +GLIBC_2.3 nis_leaf_of F +GLIBC_2.3 nis_leaf_of_r F +GLIBC_2.3 nis_lerror F +GLIBC_2.3 nis_list F +GLIBC_2.3 nis_local_directory F +GLIBC_2.3 nis_local_group F +GLIBC_2.3 nis_local_host F +GLIBC_2.3 nis_local_principal F +GLIBC_2.3 nis_lookup F +GLIBC_2.3 nis_mkdir F +GLIBC_2.3 nis_modify F +GLIBC_2.3 nis_modify_entry F +GLIBC_2.3 nis_name_of F +GLIBC_2.3 nis_name_of_r F +GLIBC_2.3 nis_next_entry F +GLIBC_2.3 nis_perror F +GLIBC_2.3 nis_ping F +GLIBC_2.3 nis_print_directory F +GLIBC_2.3 nis_print_entry F +GLIBC_2.3 nis_print_group F +GLIBC_2.3 nis_print_group_entry F +GLIBC_2.3 nis_print_link F +GLIBC_2.3 nis_print_object F +GLIBC_2.3 nis_print_result F +GLIBC_2.3 nis_print_rights F +GLIBC_2.3 nis_print_table F +GLIBC_2.3 nis_read_obj F +GLIBC_2.3 nis_remove F +GLIBC_2.3 nis_remove_entry F +GLIBC_2.3 nis_removemember F +GLIBC_2.3 nis_rmdir F +GLIBC_2.3 nis_servstate F +GLIBC_2.3 nis_sperrno F +GLIBC_2.3 nis_sperror F +GLIBC_2.3 nis_sperror_r F +GLIBC_2.3 nis_stats F +GLIBC_2.3 nis_verifygroup F +GLIBC_2.3 nis_write_obj F +GLIBC_2.3 readColdStartFile F +GLIBC_2.3 writeColdStartFile F +GLIBC_2.3 xdr_cback_data F +GLIBC_2.3 xdr_domainname F +GLIBC_2.3 xdr_keydat F +GLIBC_2.3 xdr_mapname F +GLIBC_2.3 xdr_obj_p F +GLIBC_2.3 xdr_peername F +GLIBC_2.3 xdr_valdat F +GLIBC_2.3 xdr_yp_buf F +GLIBC_2.3 xdr_ypall F +GLIBC_2.3 xdr_ypbind_binding F +GLIBC_2.3 xdr_ypbind_resp F +GLIBC_2.3 xdr_ypbind_resptype F +GLIBC_2.3 xdr_ypbind_setdom F +GLIBC_2.3 xdr_ypdelete_args F +GLIBC_2.3 xdr_ypmap_parms F +GLIBC_2.3 xdr_ypmaplist F +GLIBC_2.3 xdr_yppush_status F +GLIBC_2.3 xdr_yppushresp_xfr F +GLIBC_2.3 xdr_ypreq_key F +GLIBC_2.3 xdr_ypreq_nokey F +GLIBC_2.3 xdr_ypreq_xfr F +GLIBC_2.3 xdr_ypresp_all F +GLIBC_2.3 xdr_ypresp_key_val F +GLIBC_2.3 xdr_ypresp_maplist F +GLIBC_2.3 xdr_ypresp_master F +GLIBC_2.3 xdr_ypresp_order F +GLIBC_2.3 xdr_ypresp_val F +GLIBC_2.3 xdr_ypresp_xfr F +GLIBC_2.3 xdr_ypstat F +GLIBC_2.3 xdr_ypupdate_args F +GLIBC_2.3 xdr_ypxfrstat F +GLIBC_2.3 yp_all F +GLIBC_2.3 yp_bind F +GLIBC_2.3 yp_first F +GLIBC_2.3 yp_get_default_domain F +GLIBC_2.3 yp_maplist F +GLIBC_2.3 yp_master F +GLIBC_2.3 yp_match F +GLIBC_2.3 yp_next F +GLIBC_2.3 yp_order F +GLIBC_2.3 yp_unbind F +GLIBC_2.3 yp_update F +GLIBC_2.3 ypbinderr_string F +GLIBC_2.3 yperr_string F +GLIBC_2.3 ypprot_err F diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libpthread-le.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libpthread-le.abilist new file mode 100644 index 0000000000..0cf30ee02f --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libpthread-le.abilist @@ -0,0 +1,226 @@ +GLIBC_2.17 GLIBC_2.17 A +GLIBC_2.17 _IO_flockfile F +GLIBC_2.17 _IO_ftrylockfile F +GLIBC_2.17 _IO_funlockfile F +GLIBC_2.17 __close F +GLIBC_2.17 __connect F +GLIBC_2.17 __errno_location F +GLIBC_2.17 __fcntl F +GLIBC_2.17 __fork F +GLIBC_2.17 __h_errno_location F +GLIBC_2.17 __libc_allocate_rtsig F +GLIBC_2.17 __libc_current_sigrtmax F +GLIBC_2.17 __libc_current_sigrtmin F +GLIBC_2.17 __lseek F +GLIBC_2.17 __nanosleep F +GLIBC_2.17 __open F +GLIBC_2.17 __open64 F +GLIBC_2.17 __pread64 F +GLIBC_2.17 __pthread_cleanup_routine F +GLIBC_2.17 __pthread_getspecific F +GLIBC_2.17 __pthread_key_create F +GLIBC_2.17 __pthread_mutex_destroy F +GLIBC_2.17 __pthread_mutex_init F +GLIBC_2.17 __pthread_mutex_lock F +GLIBC_2.17 __pthread_mutex_trylock F +GLIBC_2.17 __pthread_mutex_unlock F +GLIBC_2.17 __pthread_mutexattr_destroy F +GLIBC_2.17 __pthread_mutexattr_init F +GLIBC_2.17 __pthread_mutexattr_settype F +GLIBC_2.17 __pthread_once F +GLIBC_2.17 __pthread_register_cancel F +GLIBC_2.17 __pthread_register_cancel_defer F +GLIBC_2.17 __pthread_rwlock_destroy F +GLIBC_2.17 __pthread_rwlock_init F +GLIBC_2.17 __pthread_rwlock_rdlock F +GLIBC_2.17 __pthread_rwlock_tryrdlock F +GLIBC_2.17 __pthread_rwlock_trywrlock F +GLIBC_2.17 __pthread_rwlock_unlock F +GLIBC_2.17 __pthread_rwlock_wrlock F +GLIBC_2.17 __pthread_setspecific F +GLIBC_2.17 __pthread_unregister_cancel F +GLIBC_2.17 __pthread_unregister_cancel_restore F +GLIBC_2.17 __pthread_unwind_next F +GLIBC_2.17 __pwrite64 F +GLIBC_2.17 __read F +GLIBC_2.17 __res_state F +GLIBC_2.17 __send F +GLIBC_2.17 __sigaction F +GLIBC_2.17 __vfork F +GLIBC_2.17 __wait F +GLIBC_2.17 __write F +GLIBC_2.17 _pthread_cleanup_pop F +GLIBC_2.17 _pthread_cleanup_pop_restore F +GLIBC_2.17 _pthread_cleanup_push F +GLIBC_2.17 _pthread_cleanup_push_defer F +GLIBC_2.17 accept F +GLIBC_2.17 close F +GLIBC_2.17 connect F +GLIBC_2.17 fcntl F +GLIBC_2.17 flockfile F +GLIBC_2.17 fork F +GLIBC_2.17 fsync F +GLIBC_2.17 ftrylockfile F +GLIBC_2.17 funlockfile F +GLIBC_2.17 longjmp F +GLIBC_2.17 lseek F +GLIBC_2.17 lseek64 F +GLIBC_2.17 msync F +GLIBC_2.17 nanosleep F +GLIBC_2.17 open F +GLIBC_2.17 open64 F +GLIBC_2.17 pause F +GLIBC_2.17 pread F +GLIBC_2.17 pread64 F +GLIBC_2.17 pthread_attr_destroy F +GLIBC_2.17 pthread_attr_getaffinity_np F +GLIBC_2.17 pthread_attr_getdetachstate F +GLIBC_2.17 pthread_attr_getguardsize F +GLIBC_2.17 pthread_attr_getinheritsched F +GLIBC_2.17 pthread_attr_getschedparam F +GLIBC_2.17 pthread_attr_getschedpolicy F +GLIBC_2.17 pthread_attr_getscope F +GLIBC_2.17 pthread_attr_getstack F +GLIBC_2.17 pthread_attr_getstackaddr F +GLIBC_2.17 pthread_attr_getstacksize F +GLIBC_2.17 pthread_attr_init F +GLIBC_2.17 pthread_attr_setaffinity_np F +GLIBC_2.17 pthread_attr_setdetachstate F +GLIBC_2.17 pthread_attr_setguardsize F +GLIBC_2.17 pthread_attr_setinheritsched F +GLIBC_2.17 pthread_attr_setschedparam F +GLIBC_2.17 pthread_attr_setschedpolicy F +GLIBC_2.17 pthread_attr_setscope F +GLIBC_2.17 pthread_attr_setstack F +GLIBC_2.17 pthread_attr_setstackaddr F +GLIBC_2.17 pthread_attr_setstacksize F +GLIBC_2.17 pthread_barrier_destroy F +GLIBC_2.17 pthread_barrier_init F +GLIBC_2.17 pthread_barrier_wait F +GLIBC_2.17 pthread_barrierattr_destroy F +GLIBC_2.17 pthread_barrierattr_getpshared F +GLIBC_2.17 pthread_barrierattr_init F +GLIBC_2.17 pthread_barrierattr_setpshared F +GLIBC_2.17 pthread_cancel F +GLIBC_2.17 pthread_cond_broadcast F +GLIBC_2.17 pthread_cond_destroy F +GLIBC_2.17 pthread_cond_init F +GLIBC_2.17 pthread_cond_signal F +GLIBC_2.17 pthread_cond_timedwait F +GLIBC_2.17 pthread_cond_wait F +GLIBC_2.17 pthread_condattr_destroy F +GLIBC_2.17 pthread_condattr_getclock F +GLIBC_2.17 pthread_condattr_getpshared F +GLIBC_2.17 pthread_condattr_init F +GLIBC_2.17 pthread_condattr_setclock F +GLIBC_2.17 pthread_condattr_setpshared F +GLIBC_2.17 pthread_create F +GLIBC_2.17 pthread_detach F +GLIBC_2.17 pthread_equal F +GLIBC_2.17 pthread_exit F +GLIBC_2.17 pthread_getaffinity_np F +GLIBC_2.17 pthread_getattr_np F +GLIBC_2.17 pthread_getconcurrency F +GLIBC_2.17 pthread_getcpuclockid F +GLIBC_2.17 pthread_getname_np F +GLIBC_2.17 pthread_getschedparam F +GLIBC_2.17 pthread_getspecific F +GLIBC_2.17 pthread_join F +GLIBC_2.17 pthread_key_create F +GLIBC_2.17 pthread_key_delete F +GLIBC_2.17 pthread_kill F +GLIBC_2.17 pthread_kill_other_threads_np F +GLIBC_2.17 pthread_mutex_consistent F +GLIBC_2.17 pthread_mutex_consistent_np F +GLIBC_2.17 pthread_mutex_destroy F +GLIBC_2.17 pthread_mutex_getprioceiling F +GLIBC_2.17 pthread_mutex_init F +GLIBC_2.17 pthread_mutex_lock F +GLIBC_2.17 pthread_mutex_setprioceiling F +GLIBC_2.17 pthread_mutex_timedlock F +GLIBC_2.17 pthread_mutex_trylock F +GLIBC_2.17 pthread_mutex_unlock F +GLIBC_2.17 pthread_mutexattr_destroy F +GLIBC_2.17 pthread_mutexattr_getkind_np F +GLIBC_2.17 pthread_mutexattr_getprioceiling F +GLIBC_2.17 pthread_mutexattr_getprotocol F +GLIBC_2.17 pthread_mutexattr_getpshared F +GLIBC_2.17 pthread_mutexattr_getrobust F +GLIBC_2.17 pthread_mutexattr_getrobust_np F +GLIBC_2.17 pthread_mutexattr_gettype F +GLIBC_2.17 pthread_mutexattr_init F +GLIBC_2.17 pthread_mutexattr_setkind_np F +GLIBC_2.17 pthread_mutexattr_setprioceiling F +GLIBC_2.17 pthread_mutexattr_setprotocol F +GLIBC_2.17 pthread_mutexattr_setpshared F +GLIBC_2.17 pthread_mutexattr_setrobust F +GLIBC_2.17 pthread_mutexattr_setrobust_np F +GLIBC_2.17 pthread_mutexattr_settype F +GLIBC_2.17 pthread_once F +GLIBC_2.17 pthread_rwlock_destroy F +GLIBC_2.17 pthread_rwlock_init F +GLIBC_2.17 pthread_rwlock_rdlock F +GLIBC_2.17 pthread_rwlock_timedrdlock F +GLIBC_2.17 pthread_rwlock_timedwrlock F +GLIBC_2.17 pthread_rwlock_tryrdlock F +GLIBC_2.17 pthread_rwlock_trywrlock F +GLIBC_2.17 pthread_rwlock_unlock F +GLIBC_2.17 pthread_rwlock_wrlock F +GLIBC_2.17 pthread_rwlockattr_destroy F +GLIBC_2.17 pthread_rwlockattr_getkind_np F +GLIBC_2.17 pthread_rwlockattr_getpshared F +GLIBC_2.17 pthread_rwlockattr_init F +GLIBC_2.17 pthread_rwlockattr_setkind_np F +GLIBC_2.17 pthread_rwlockattr_setpshared F +GLIBC_2.17 pthread_self F +GLIBC_2.17 pthread_setaffinity_np F +GLIBC_2.17 pthread_setcancelstate F +GLIBC_2.17 pthread_setcanceltype F +GLIBC_2.17 pthread_setconcurrency F +GLIBC_2.17 pthread_setname_np F +GLIBC_2.17 pthread_setschedparam F +GLIBC_2.17 pthread_setschedprio F +GLIBC_2.17 pthread_setspecific F +GLIBC_2.17 pthread_sigmask F +GLIBC_2.17 pthread_sigqueue F +GLIBC_2.17 pthread_spin_destroy F +GLIBC_2.17 pthread_spin_init F +GLIBC_2.17 pthread_spin_lock F +GLIBC_2.17 pthread_spin_trylock F +GLIBC_2.17 pthread_spin_unlock F +GLIBC_2.17 pthread_testcancel F +GLIBC_2.17 pthread_timedjoin_np F +GLIBC_2.17 pthread_tryjoin_np F +GLIBC_2.17 pthread_yield F +GLIBC_2.17 pwrite F +GLIBC_2.17 pwrite64 F +GLIBC_2.17 raise F +GLIBC_2.17 read F +GLIBC_2.17 recv F +GLIBC_2.17 recvfrom F +GLIBC_2.17 recvmsg F +GLIBC_2.17 sem_close F +GLIBC_2.17 sem_destroy F +GLIBC_2.17 sem_getvalue F +GLIBC_2.17 sem_init F +GLIBC_2.17 sem_open F +GLIBC_2.17 sem_post F +GLIBC_2.17 sem_timedwait F +GLIBC_2.17 sem_trywait F +GLIBC_2.17 sem_unlink F +GLIBC_2.17 sem_wait F +GLIBC_2.17 send F +GLIBC_2.17 sendmsg F +GLIBC_2.17 sendto F +GLIBC_2.17 sigaction F +GLIBC_2.17 siglongjmp F +GLIBC_2.17 sigwait F +GLIBC_2.17 system F +GLIBC_2.17 tcdrain F +GLIBC_2.17 vfork F +GLIBC_2.17 wait F +GLIBC_2.17 waitpid F +GLIBC_2.17 write F +GLIBC_2.18 GLIBC_2.18 A +GLIBC_2.18 pthread_getattr_default_np F +GLIBC_2.18 pthread_setattr_default_np F diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libpthread.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libpthread.abilist new file mode 100644 index 0000000000..464b91a61d --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libpthread.abilist @@ -0,0 +1,247 @@ +GLIBC_2.11 GLIBC_2.11 A +GLIBC_2.11 pthread_sigqueue F +GLIBC_2.12 GLIBC_2.12 A +GLIBC_2.12 pthread_getname_np F +GLIBC_2.12 pthread_mutex_consistent F +GLIBC_2.12 pthread_mutexattr_getrobust F +GLIBC_2.12 pthread_mutexattr_setrobust F +GLIBC_2.12 pthread_setname_np F +GLIBC_2.18 GLIBC_2.18 A +GLIBC_2.18 pthread_getattr_default_np F +GLIBC_2.18 pthread_setattr_default_np F +GLIBC_2.3 GLIBC_2.3 A +GLIBC_2.3 _IO_flockfile F +GLIBC_2.3 _IO_ftrylockfile F +GLIBC_2.3 _IO_funlockfile F +GLIBC_2.3 __close F +GLIBC_2.3 __connect F +GLIBC_2.3 __errno_location F +GLIBC_2.3 __fcntl F +GLIBC_2.3 __fork F +GLIBC_2.3 __h_errno_location F +GLIBC_2.3 __libc_allocate_rtsig F +GLIBC_2.3 __libc_current_sigrtmax F +GLIBC_2.3 __libc_current_sigrtmin F +GLIBC_2.3 __lseek F +GLIBC_2.3 __nanosleep F +GLIBC_2.3 __open F +GLIBC_2.3 __open64 F +GLIBC_2.3 __pread64 F +GLIBC_2.3 __pthread_getspecific F +GLIBC_2.3 __pthread_key_create F +GLIBC_2.3 __pthread_mutex_destroy F +GLIBC_2.3 __pthread_mutex_init F +GLIBC_2.3 __pthread_mutex_lock F +GLIBC_2.3 __pthread_mutex_trylock F +GLIBC_2.3 __pthread_mutex_unlock F +GLIBC_2.3 __pthread_mutexattr_destroy F +GLIBC_2.3 __pthread_mutexattr_init F +GLIBC_2.3 __pthread_mutexattr_settype F +GLIBC_2.3 __pthread_once F +GLIBC_2.3 __pthread_rwlock_destroy F +GLIBC_2.3 __pthread_rwlock_init F +GLIBC_2.3 __pthread_rwlock_rdlock F +GLIBC_2.3 __pthread_rwlock_tryrdlock F +GLIBC_2.3 __pthread_rwlock_trywrlock F +GLIBC_2.3 __pthread_rwlock_unlock F +GLIBC_2.3 __pthread_rwlock_wrlock F +GLIBC_2.3 __pthread_setspecific F +GLIBC_2.3 __pwrite64 F +GLIBC_2.3 __read F +GLIBC_2.3 __res_state F +GLIBC_2.3 __send F +GLIBC_2.3 __sigaction F +GLIBC_2.3 __vfork F +GLIBC_2.3 __wait F +GLIBC_2.3 __write F +GLIBC_2.3 _pthread_cleanup_pop F +GLIBC_2.3 _pthread_cleanup_pop_restore F +GLIBC_2.3 _pthread_cleanup_push F +GLIBC_2.3 _pthread_cleanup_push_defer F +GLIBC_2.3 accept F +GLIBC_2.3 close F +GLIBC_2.3 connect F +GLIBC_2.3 fcntl F +GLIBC_2.3 flockfile F +GLIBC_2.3 fork F +GLIBC_2.3 fsync F +GLIBC_2.3 ftrylockfile F +GLIBC_2.3 funlockfile F +GLIBC_2.3 longjmp F +GLIBC_2.3 lseek F +GLIBC_2.3 lseek64 F +GLIBC_2.3 msync F +GLIBC_2.3 nanosleep F +GLIBC_2.3 open F +GLIBC_2.3 open64 F +GLIBC_2.3 pause F +GLIBC_2.3 pread F +GLIBC_2.3 pread64 F +GLIBC_2.3 pthread_attr_destroy F +GLIBC_2.3 pthread_attr_getdetachstate F +GLIBC_2.3 pthread_attr_getguardsize F +GLIBC_2.3 pthread_attr_getinheritsched F +GLIBC_2.3 pthread_attr_getschedparam F +GLIBC_2.3 pthread_attr_getschedpolicy F +GLIBC_2.3 pthread_attr_getscope F +GLIBC_2.3 pthread_attr_getstack F +GLIBC_2.3 pthread_attr_getstackaddr F +GLIBC_2.3 pthread_attr_getstacksize F +GLIBC_2.3 pthread_attr_init F +GLIBC_2.3 pthread_attr_setdetachstate F +GLIBC_2.3 pthread_attr_setguardsize F +GLIBC_2.3 pthread_attr_setinheritsched F +GLIBC_2.3 pthread_attr_setschedparam F +GLIBC_2.3 pthread_attr_setschedpolicy F +GLIBC_2.3 pthread_attr_setscope F +GLIBC_2.3 pthread_attr_setstack F +GLIBC_2.3 pthread_attr_setstackaddr F +GLIBC_2.3 pthread_attr_setstacksize F +GLIBC_2.3 pthread_barrier_destroy F +GLIBC_2.3 pthread_barrier_init F +GLIBC_2.3 pthread_barrier_wait F +GLIBC_2.3 pthread_barrierattr_destroy F +GLIBC_2.3 pthread_barrierattr_init F +GLIBC_2.3 pthread_barrierattr_setpshared F +GLIBC_2.3 pthread_cancel F +GLIBC_2.3 pthread_cond_broadcast F +GLIBC_2.3 pthread_cond_destroy F +GLIBC_2.3 pthread_cond_init F +GLIBC_2.3 pthread_cond_signal F +GLIBC_2.3 pthread_cond_timedwait F +GLIBC_2.3 pthread_cond_wait F +GLIBC_2.3 pthread_condattr_destroy F +GLIBC_2.3 pthread_condattr_getpshared F +GLIBC_2.3 pthread_condattr_init F +GLIBC_2.3 pthread_condattr_setpshared F +GLIBC_2.3 pthread_create F +GLIBC_2.3 pthread_detach F +GLIBC_2.3 pthread_equal F +GLIBC_2.3 pthread_exit F +GLIBC_2.3 pthread_getattr_np F +GLIBC_2.3 pthread_getconcurrency F +GLIBC_2.3 pthread_getcpuclockid F +GLIBC_2.3 pthread_getschedparam F +GLIBC_2.3 pthread_getspecific F +GLIBC_2.3 pthread_join F +GLIBC_2.3 pthread_key_create F +GLIBC_2.3 pthread_key_delete F +GLIBC_2.3 pthread_kill F +GLIBC_2.3 pthread_kill_other_threads_np F +GLIBC_2.3 pthread_mutex_destroy F +GLIBC_2.3 pthread_mutex_init F +GLIBC_2.3 pthread_mutex_lock F +GLIBC_2.3 pthread_mutex_timedlock F +GLIBC_2.3 pthread_mutex_trylock F +GLIBC_2.3 pthread_mutex_unlock F +GLIBC_2.3 pthread_mutexattr_destroy F +GLIBC_2.3 pthread_mutexattr_getkind_np F +GLIBC_2.3 pthread_mutexattr_getpshared F +GLIBC_2.3 pthread_mutexattr_gettype F +GLIBC_2.3 pthread_mutexattr_init F +GLIBC_2.3 pthread_mutexattr_setkind_np F +GLIBC_2.3 pthread_mutexattr_setpshared F +GLIBC_2.3 pthread_mutexattr_settype F +GLIBC_2.3 pthread_once F +GLIBC_2.3 pthread_rwlock_destroy F +GLIBC_2.3 pthread_rwlock_init F +GLIBC_2.3 pthread_rwlock_rdlock F +GLIBC_2.3 pthread_rwlock_timedrdlock F +GLIBC_2.3 pthread_rwlock_timedwrlock F +GLIBC_2.3 pthread_rwlock_tryrdlock F +GLIBC_2.3 pthread_rwlock_trywrlock F +GLIBC_2.3 pthread_rwlock_unlock F +GLIBC_2.3 pthread_rwlock_wrlock F +GLIBC_2.3 pthread_rwlockattr_destroy F +GLIBC_2.3 pthread_rwlockattr_getkind_np F +GLIBC_2.3 pthread_rwlockattr_getpshared F +GLIBC_2.3 pthread_rwlockattr_init F +GLIBC_2.3 pthread_rwlockattr_setkind_np F +GLIBC_2.3 pthread_rwlockattr_setpshared F +GLIBC_2.3 pthread_self F +GLIBC_2.3 pthread_setcancelstate F +GLIBC_2.3 pthread_setcanceltype F +GLIBC_2.3 pthread_setconcurrency F +GLIBC_2.3 pthread_setschedparam F +GLIBC_2.3 pthread_setspecific F +GLIBC_2.3 pthread_sigmask F +GLIBC_2.3 pthread_spin_destroy F +GLIBC_2.3 pthread_spin_init F +GLIBC_2.3 pthread_spin_lock F +GLIBC_2.3 pthread_spin_trylock F +GLIBC_2.3 pthread_spin_unlock F +GLIBC_2.3 pthread_testcancel F +GLIBC_2.3 pthread_yield F +GLIBC_2.3 pwrite F +GLIBC_2.3 pwrite64 F +GLIBC_2.3 raise F +GLIBC_2.3 read F +GLIBC_2.3 recv F +GLIBC_2.3 recvfrom F +GLIBC_2.3 recvmsg F +GLIBC_2.3 sem_close F +GLIBC_2.3 sem_destroy F +GLIBC_2.3 sem_getvalue F +GLIBC_2.3 sem_init F +GLIBC_2.3 sem_open F +GLIBC_2.3 sem_post F +GLIBC_2.3 sem_timedwait F +GLIBC_2.3 sem_trywait F +GLIBC_2.3 sem_unlink F +GLIBC_2.3 sem_wait F +GLIBC_2.3 send F +GLIBC_2.3 sendmsg F +GLIBC_2.3 sendto F +GLIBC_2.3 sigaction F +GLIBC_2.3 siglongjmp F +GLIBC_2.3 sigwait F +GLIBC_2.3 system F +GLIBC_2.3 tcdrain F +GLIBC_2.3 vfork F +GLIBC_2.3 wait F +GLIBC_2.3 waitpid F +GLIBC_2.3 write F +GLIBC_2.3.2 GLIBC_2.3.2 A +GLIBC_2.3.2 pthread_cond_broadcast F +GLIBC_2.3.2 pthread_cond_destroy F +GLIBC_2.3.2 pthread_cond_init F +GLIBC_2.3.2 pthread_cond_signal F +GLIBC_2.3.2 pthread_cond_timedwait F +GLIBC_2.3.2 pthread_cond_wait F +GLIBC_2.3.3 GLIBC_2.3.3 A +GLIBC_2.3.3 __pthread_cleanup_routine F +GLIBC_2.3.3 __pthread_register_cancel F +GLIBC_2.3.3 __pthread_register_cancel_defer F +GLIBC_2.3.3 __pthread_unregister_cancel F +GLIBC_2.3.3 __pthread_unregister_cancel_restore F +GLIBC_2.3.3 __pthread_unwind_next F +GLIBC_2.3.3 pthread_attr_getaffinity_np F +GLIBC_2.3.3 pthread_attr_setaffinity_np F +GLIBC_2.3.3 pthread_barrierattr_getpshared F +GLIBC_2.3.3 pthread_condattr_getclock F +GLIBC_2.3.3 pthread_condattr_setclock F +GLIBC_2.3.3 pthread_getaffinity_np F +GLIBC_2.3.3 pthread_setaffinity_np F +GLIBC_2.3.3 pthread_timedjoin_np F +GLIBC_2.3.3 pthread_tryjoin_np F +GLIBC_2.3.4 GLIBC_2.3.4 A +GLIBC_2.3.4 longjmp F +GLIBC_2.3.4 pthread_attr_getaffinity_np F +GLIBC_2.3.4 pthread_attr_setaffinity_np F +GLIBC_2.3.4 pthread_getaffinity_np F +GLIBC_2.3.4 pthread_setaffinity_np F +GLIBC_2.3.4 pthread_setschedprio F +GLIBC_2.3.4 siglongjmp F +GLIBC_2.4 GLIBC_2.4 A +GLIBC_2.4 pthread_mutex_consistent_np F +GLIBC_2.4 pthread_mutex_getprioceiling F +GLIBC_2.4 pthread_mutex_setprioceiling F +GLIBC_2.4 pthread_mutexattr_getprioceiling F +GLIBC_2.4 pthread_mutexattr_getprotocol F +GLIBC_2.4 pthread_mutexattr_getrobust_np F +GLIBC_2.4 pthread_mutexattr_setprioceiling F +GLIBC_2.4 pthread_mutexattr_setprotocol F +GLIBC_2.4 pthread_mutexattr_setrobust_np F +GLIBC_2.6 GLIBC_2.6 A +GLIBC_2.6 pthread_attr_setstack F +GLIBC_2.6 pthread_attr_setstacksize F diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libresolv-le.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libresolv-le.abilist new file mode 100644 index 0000000000..cf278eedb3 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libresolv-le.abilist @@ -0,0 +1,92 @@ +GLIBC_2.17 GLIBC_2.17 A +GLIBC_2.17 __b64_ntop F +GLIBC_2.17 __b64_pton F +GLIBC_2.17 __dn_comp F +GLIBC_2.17 __dn_count_labels F +GLIBC_2.17 __dn_expand F +GLIBC_2.17 __dn_skipname F +GLIBC_2.17 __fp_nquery F +GLIBC_2.17 __fp_query F +GLIBC_2.17 __fp_resstat F +GLIBC_2.17 __hostalias F +GLIBC_2.17 __loc_aton F +GLIBC_2.17 __loc_ntoa F +GLIBC_2.17 __p_cdname F +GLIBC_2.17 __p_cdnname F +GLIBC_2.17 __p_class F +GLIBC_2.17 __p_class_syms D 0xa8 +GLIBC_2.17 __p_fqname F +GLIBC_2.17 __p_fqnname F +GLIBC_2.17 __p_option F +GLIBC_2.17 __p_query F +GLIBC_2.17 __p_rcode F +GLIBC_2.17 __p_secstodate F +GLIBC_2.17 __p_time F +GLIBC_2.17 __p_type F +GLIBC_2.17 __p_type_syms D 0x450 +GLIBC_2.17 __putlong F +GLIBC_2.17 __putshort F +GLIBC_2.17 __res_close F +GLIBC_2.17 __res_dnok F +GLIBC_2.17 __res_hnok F +GLIBC_2.17 __res_hostalias F +GLIBC_2.17 __res_isourserver F +GLIBC_2.17 __res_mailok F +GLIBC_2.17 __res_mkquery F +GLIBC_2.17 __res_nameinquery F +GLIBC_2.17 __res_nmkquery F +GLIBC_2.17 __res_nquery F +GLIBC_2.17 __res_nquerydomain F +GLIBC_2.17 __res_nsearch F +GLIBC_2.17 __res_nsend F +GLIBC_2.17 __res_ownok F +GLIBC_2.17 __res_queriesmatch F +GLIBC_2.17 __res_query F +GLIBC_2.17 __res_querydomain F +GLIBC_2.17 __res_search F +GLIBC_2.17 __res_send F +GLIBC_2.17 __sym_ntop F +GLIBC_2.17 __sym_ntos F +GLIBC_2.17 __sym_ston F +GLIBC_2.17 _gethtbyaddr F +GLIBC_2.17 _gethtbyname F +GLIBC_2.17 _gethtbyname2 F +GLIBC_2.17 _gethtent F +GLIBC_2.17 _getlong F +GLIBC_2.17 _getshort F +GLIBC_2.17 _res_opcodes D 0x80 +GLIBC_2.17 _sethtent F +GLIBC_2.17 inet_net_ntop F +GLIBC_2.17 inet_net_pton F +GLIBC_2.17 inet_neta F +GLIBC_2.17 ns_datetosecs F +GLIBC_2.17 ns_format_ttl F +GLIBC_2.17 ns_get16 F +GLIBC_2.17 ns_get32 F +GLIBC_2.17 ns_initparse F +GLIBC_2.17 ns_makecanon F +GLIBC_2.17 ns_msg_getflag F +GLIBC_2.17 ns_name_compress F +GLIBC_2.17 ns_name_ntol F +GLIBC_2.17 ns_name_ntop F +GLIBC_2.17 ns_name_pack F +GLIBC_2.17 ns_name_pton F +GLIBC_2.17 ns_name_rollback F +GLIBC_2.17 ns_name_skip F +GLIBC_2.17 ns_name_uncompress F +GLIBC_2.17 ns_name_unpack F +GLIBC_2.17 ns_parse_ttl F +GLIBC_2.17 ns_parserr F +GLIBC_2.17 ns_put16 F +GLIBC_2.17 ns_put32 F +GLIBC_2.17 ns_samedomain F +GLIBC_2.17 ns_samename F +GLIBC_2.17 ns_skiprr F +GLIBC_2.17 ns_sprintrr F +GLIBC_2.17 ns_sprintrrf F +GLIBC_2.17 ns_subdomain F +GLIBC_2.17 res_gethostbyaddr F +GLIBC_2.17 res_gethostbyname F +GLIBC_2.17 res_gethostbyname2 F +GLIBC_2.17 res_send_setqhook F +GLIBC_2.17 res_send_setrhook F diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libresolv.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libresolv.abilist new file mode 100644 index 0000000000..95def8eb0f --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libresolv.abilist @@ -0,0 +1,94 @@ +GLIBC_2.3 GLIBC_2.3 A +GLIBC_2.3 __b64_ntop F +GLIBC_2.3 __b64_pton F +GLIBC_2.3 __dn_comp F +GLIBC_2.3 __dn_count_labels F +GLIBC_2.3 __dn_expand F +GLIBC_2.3 __dn_skipname F +GLIBC_2.3 __fp_nquery F +GLIBC_2.3 __fp_query F +GLIBC_2.3 __fp_resstat F +GLIBC_2.3 __hostalias F +GLIBC_2.3 __loc_aton F +GLIBC_2.3 __loc_ntoa F +GLIBC_2.3 __p_cdname F +GLIBC_2.3 __p_cdnname F +GLIBC_2.3 __p_class F +GLIBC_2.3 __p_class_syms D 0xa8 +GLIBC_2.3 __p_fqname F +GLIBC_2.3 __p_fqnname F +GLIBC_2.3 __p_option F +GLIBC_2.3 __p_query F +GLIBC_2.3 __p_secstodate F +GLIBC_2.3 __p_time F +GLIBC_2.3 __p_type F +GLIBC_2.3 __p_type_syms D 0x450 +GLIBC_2.3 __putlong F +GLIBC_2.3 __putshort F +GLIBC_2.3 __res_close F +GLIBC_2.3 __res_dnok F +GLIBC_2.3 __res_hnok F +GLIBC_2.3 __res_hostalias F +GLIBC_2.3 __res_isourserver F +GLIBC_2.3 __res_mailok F +GLIBC_2.3 __res_mkquery F +GLIBC_2.3 __res_nameinquery F +GLIBC_2.3 __res_nmkquery F +GLIBC_2.3 __res_nquery F +GLIBC_2.3 __res_nquerydomain F +GLIBC_2.3 __res_nsearch F +GLIBC_2.3 __res_nsend F +GLIBC_2.3 __res_ownok F +GLIBC_2.3 __res_queriesmatch F +GLIBC_2.3 __res_query F +GLIBC_2.3 __res_querydomain F +GLIBC_2.3 __res_search F +GLIBC_2.3 __res_send F +GLIBC_2.3 __sym_ntop F +GLIBC_2.3 __sym_ntos F +GLIBC_2.3 __sym_ston F +GLIBC_2.3 _gethtbyaddr F +GLIBC_2.3 _gethtbyname F +GLIBC_2.3 _gethtbyname2 F +GLIBC_2.3 _gethtent F +GLIBC_2.3 _getlong F +GLIBC_2.3 _getshort F +GLIBC_2.3 _res_opcodes D 0x80 +GLIBC_2.3 _sethtent F +GLIBC_2.3 inet_net_ntop F +GLIBC_2.3 inet_net_pton F +GLIBC_2.3 inet_neta F +GLIBC_2.3 res_gethostbyaddr F +GLIBC_2.3 res_gethostbyname F +GLIBC_2.3 res_gethostbyname2 F +GLIBC_2.3 res_send_setqhook F +GLIBC_2.3 res_send_setrhook F +GLIBC_2.3.2 GLIBC_2.3.2 A +GLIBC_2.3.2 __p_rcode F +GLIBC_2.9 GLIBC_2.9 A +GLIBC_2.9 ns_datetosecs F +GLIBC_2.9 ns_format_ttl F +GLIBC_2.9 ns_get16 F +GLIBC_2.9 ns_get32 F +GLIBC_2.9 ns_initparse F +GLIBC_2.9 ns_makecanon F +GLIBC_2.9 ns_msg_getflag F +GLIBC_2.9 ns_name_compress F +GLIBC_2.9 ns_name_ntol F +GLIBC_2.9 ns_name_ntop F +GLIBC_2.9 ns_name_pack F +GLIBC_2.9 ns_name_pton F +GLIBC_2.9 ns_name_rollback F +GLIBC_2.9 ns_name_skip F +GLIBC_2.9 ns_name_uncompress F +GLIBC_2.9 ns_name_unpack F +GLIBC_2.9 ns_parse_ttl F +GLIBC_2.9 ns_parserr F +GLIBC_2.9 ns_put16 F +GLIBC_2.9 ns_put32 F +GLIBC_2.9 ns_samedomain F +GLIBC_2.9 ns_samename F +GLIBC_2.9 ns_skiprr F +GLIBC_2.9 ns_sprintrr F +GLIBC_2.9 ns_sprintrrf F +GLIBC_2.9 ns_subdomain F diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/librt-le.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/librt-le.abilist new file mode 100644 index 0000000000..523d22249a --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/librt-le.abilist @@ -0,0 +1,36 @@ +GLIBC_2.17 GLIBC_2.17 A +GLIBC_2.17 __mq_open_2 F +GLIBC_2.17 aio_cancel F +GLIBC_2.17 aio_cancel64 F +GLIBC_2.17 aio_error F +GLIBC_2.17 aio_error64 F +GLIBC_2.17 aio_fsync F +GLIBC_2.17 aio_fsync64 F +GLIBC_2.17 aio_init F +GLIBC_2.17 aio_read F +GLIBC_2.17 aio_read64 F +GLIBC_2.17 aio_return F +GLIBC_2.17 aio_return64 F +GLIBC_2.17 aio_suspend F +GLIBC_2.17 aio_suspend64 F +GLIBC_2.17 aio_write F +GLIBC_2.17 aio_write64 F +GLIBC_2.17 lio_listio F +GLIBC_2.17 lio_listio64 F +GLIBC_2.17 mq_close F +GLIBC_2.17 mq_getattr F +GLIBC_2.17 mq_notify F +GLIBC_2.17 mq_open F +GLIBC_2.17 mq_receive F +GLIBC_2.17 mq_send F +GLIBC_2.17 mq_setattr F +GLIBC_2.17 mq_timedreceive F +GLIBC_2.17 mq_timedsend F +GLIBC_2.17 mq_unlink F +GLIBC_2.17 shm_open F +GLIBC_2.17 shm_unlink F +GLIBC_2.17 timer_create F +GLIBC_2.17 timer_delete F +GLIBC_2.17 timer_getoverrun F +GLIBC_2.17 timer_gettime F +GLIBC_2.17 timer_settime F diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/librt.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/librt.abilist new file mode 100644 index 0000000000..e5b41488a2 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/librt.abilist @@ -0,0 +1,52 @@ +GLIBC_2.3 GLIBC_2.3 A +GLIBC_2.3 aio_cancel F +GLIBC_2.3 aio_cancel64 F +GLIBC_2.3 aio_error F +GLIBC_2.3 aio_error64 F +GLIBC_2.3 aio_fsync F +GLIBC_2.3 aio_fsync64 F +GLIBC_2.3 aio_init F +GLIBC_2.3 aio_read F +GLIBC_2.3 aio_read64 F +GLIBC_2.3 aio_return F +GLIBC_2.3 aio_return64 F +GLIBC_2.3 aio_suspend F +GLIBC_2.3 aio_suspend64 F +GLIBC_2.3 aio_write F +GLIBC_2.3 aio_write64 F +GLIBC_2.3 clock_getcpuclockid F +GLIBC_2.3 clock_getres F +GLIBC_2.3 clock_gettime F +GLIBC_2.3 clock_nanosleep F +GLIBC_2.3 clock_settime F +GLIBC_2.3 lio_listio F +GLIBC_2.3 lio_listio64 F +GLIBC_2.3 shm_open F +GLIBC_2.3 shm_unlink F +GLIBC_2.3 timer_create F +GLIBC_2.3 timer_delete F +GLIBC_2.3 timer_getoverrun F +GLIBC_2.3 timer_gettime F +GLIBC_2.3 timer_settime F +GLIBC_2.3.3 GLIBC_2.3.3 A +GLIBC_2.3.3 timer_create F +GLIBC_2.3.3 timer_delete F +GLIBC_2.3.3 timer_getoverrun F +GLIBC_2.3.3 timer_gettime F +GLIBC_2.3.3 timer_settime F +GLIBC_2.3.4 GLIBC_2.3.4 A +GLIBC_2.3.4 mq_close F +GLIBC_2.3.4 mq_getattr F +GLIBC_2.3.4 mq_notify F +GLIBC_2.3.4 mq_open F +GLIBC_2.3.4 mq_receive F +GLIBC_2.3.4 mq_send F +GLIBC_2.3.4 mq_setattr F +GLIBC_2.3.4 mq_timedreceive F +GLIBC_2.3.4 mq_timedsend F +GLIBC_2.3.4 mq_unlink F +GLIBC_2.4 GLIBC_2.4 A +GLIBC_2.4 lio_listio F +GLIBC_2.4 lio_listio64 F +GLIBC_2.7 GLIBC_2.7 A +GLIBC_2.7 __mq_open_2 F diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libthread_db-le.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libthread_db-le.abilist new file mode 100644 index 0000000000..3e382bf79d --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libthread_db-le.abilist @@ -0,0 +1,41 @@ +GLIBC_2.17 GLIBC_2.17 A +GLIBC_2.17 td_init F +GLIBC_2.17 td_log F +GLIBC_2.17 td_symbol_list F +GLIBC_2.17 td_ta_clear_event F +GLIBC_2.17 td_ta_delete F +GLIBC_2.17 td_ta_enable_stats F +GLIBC_2.17 td_ta_event_addr F +GLIBC_2.17 td_ta_event_getmsg F +GLIBC_2.17 td_ta_get_nthreads F +GLIBC_2.17 td_ta_get_ph F +GLIBC_2.17 td_ta_get_stats F +GLIBC_2.17 td_ta_map_id2thr F +GLIBC_2.17 td_ta_map_lwp2thr F +GLIBC_2.17 td_ta_new F +GLIBC_2.17 td_ta_reset_stats F +GLIBC_2.17 td_ta_set_event F +GLIBC_2.17 td_ta_setconcurrency F +GLIBC_2.17 td_ta_thr_iter F +GLIBC_2.17 td_ta_tsd_iter F +GLIBC_2.17 td_thr_clear_event F +GLIBC_2.17 td_thr_dbresume F +GLIBC_2.17 td_thr_dbsuspend F +GLIBC_2.17 td_thr_event_enable F +GLIBC_2.17 td_thr_event_getmsg F +GLIBC_2.17 td_thr_get_info F +GLIBC_2.17 td_thr_getfpregs F +GLIBC_2.17 td_thr_getgregs F +GLIBC_2.17 td_thr_getxregs F +GLIBC_2.17 td_thr_getxregsize F +GLIBC_2.17 td_thr_set_event F +GLIBC_2.17 td_thr_setfpregs F +GLIBC_2.17 td_thr_setgregs F +GLIBC_2.17 td_thr_setprio F +GLIBC_2.17 td_thr_setsigpending F +GLIBC_2.17 td_thr_setxregs F +GLIBC_2.17 td_thr_sigsetmask F +GLIBC_2.17 td_thr_tls_get_addr F +GLIBC_2.17 td_thr_tlsbase F +GLIBC_2.17 td_thr_tsd F +GLIBC_2.17 td_thr_validate F diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libthread_db.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libthread_db.abilist new file mode 100644 index 0000000000..cd466b942b --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libthread_db.abilist @@ -0,0 +1,42 @@ +GLIBC_2.3 GLIBC_2.3 A +GLIBC_2.3 td_init F +GLIBC_2.3 td_log F +GLIBC_2.3 td_symbol_list F +GLIBC_2.3 td_ta_clear_event F +GLIBC_2.3 td_ta_delete F +GLIBC_2.3 td_ta_enable_stats F +GLIBC_2.3 td_ta_event_addr F +GLIBC_2.3 td_ta_event_getmsg F +GLIBC_2.3 td_ta_get_nthreads F +GLIBC_2.3 td_ta_get_ph F +GLIBC_2.3 td_ta_get_stats F +GLIBC_2.3 td_ta_map_id2thr F +GLIBC_2.3 td_ta_map_lwp2thr F +GLIBC_2.3 td_ta_new F +GLIBC_2.3 td_ta_reset_stats F +GLIBC_2.3 td_ta_set_event F +GLIBC_2.3 td_ta_setconcurrency F +GLIBC_2.3 td_ta_thr_iter F +GLIBC_2.3 td_ta_tsd_iter F +GLIBC_2.3 td_thr_clear_event F +GLIBC_2.3 td_thr_dbresume F +GLIBC_2.3 td_thr_dbsuspend F +GLIBC_2.3 td_thr_event_enable F +GLIBC_2.3 td_thr_event_getmsg F +GLIBC_2.3 td_thr_get_info F +GLIBC_2.3 td_thr_getfpregs F +GLIBC_2.3 td_thr_getgregs F +GLIBC_2.3 td_thr_getxregs F +GLIBC_2.3 td_thr_getxregsize F +GLIBC_2.3 td_thr_set_event F +GLIBC_2.3 td_thr_setfpregs F +GLIBC_2.3 td_thr_setgregs F +GLIBC_2.3 td_thr_setprio F +GLIBC_2.3 td_thr_setsigpending F +GLIBC_2.3 td_thr_setxregs F +GLIBC_2.3 td_thr_sigsetmask F +GLIBC_2.3 td_thr_tls_get_addr F +GLIBC_2.3 td_thr_tsd F +GLIBC_2.3 td_thr_validate F +GLIBC_2.3.3 GLIBC_2.3.3 A +GLIBC_2.3.3 td_thr_tlsbase F diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libutil-le.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libutil-le.abilist new file mode 100644 index 0000000000..9c075bc0bd --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libutil-le.abilist @@ -0,0 +1,7 @@ +GLIBC_2.17 GLIBC_2.17 A +GLIBC_2.17 forkpty F +GLIBC_2.17 login F +GLIBC_2.17 login_tty F +GLIBC_2.17 logout F +GLIBC_2.17 logwtmp F +GLIBC_2.17 openpty F diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libutil.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libutil.abilist new file mode 100644 index 0000000000..812701762c --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/libutil.abilist @@ -0,0 +1,7 @@ +GLIBC_2.3 GLIBC_2.3 A +GLIBC_2.3 forkpty F +GLIBC_2.3 login F +GLIBC_2.3 login_tty F +GLIBC_2.3 logout F +GLIBC_2.3 logwtmp F +GLIBC_2.3 openpty F diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/localplt.data b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/localplt.data new file mode 100644 index 0000000000..6f8ed25922 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/localplt.data @@ -0,0 +1,15 @@ +libc.so: calloc +libc.so: free +libc.so: malloc +libc.so: memalign +libc.so: realloc +libm.so: matherr +# The main malloc is interposed into the dynamic linker, for +# allocations after the initial link (when dlopen is used). +ld.so: malloc +ld.so: calloc +ld.so: realloc +ld.so: free +# The TLS-enabled version of these functions is interposed from libc.so. +ld.so: _dl_signal_error +ld.so: _dl_catch_error diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/makecontext.S b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/makecontext.S new file mode 100644 index 0000000000..ff2ed265ee --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/makecontext.S @@ -0,0 +1,187 @@ +/* Create new context. + Copyright (C) 2002-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#include <sysdep.h> + +#define __ASSEMBLY__ +#include <asm/ptrace.h> +#include "ucontext_i.h" +#include <asm/errno.h> + +ENTRY(__makecontext) + CALL_MCOUNT 3 + /* Save parameters into the parameter save area of callers frame. */ + std r3,FRAME_PARM1_SAVE(r1) /* ucontext_t *ucp */ + std r4,FRAME_PARM2_SAVE(r1) /* void (*func)(void) */ + std r5,FRAME_PARM3_SAVE(r1) /* int argc */ + std r6,FRAME_PARM4_SAVE(r1) /* ... */ + std r7,FRAME_PARM5_SAVE(r1) + std r8,FRAME_PARM6_SAVE(r1) + std r9,FRAME_PARM7_SAVE(r1) + std r10,FRAME_PARM8_SAVE(r1) + mflr r0 + /* Get the address of the target functions first parameter. */ + addi r6,r1,FRAME_PARM4_SAVE + std r0,FRAME_LR_SAVE(r1) + cfi_offset (lr, FRAME_LR_SAVE) + stdu r1,-128(r1) + cfi_adjust_cfa_offset (128) + + /* Get the ucontexts stack pointer and size. Compute the top of stack + and round down to a quadword boundary. Then stack a dummy frame + with a null back chain. We store the context pointer in the frames + "compiler double word" field so we can recover if is the function + returns. Finally save the callers link register and TOC pointer + into this frame so the debugger can display a backtrace. + */ + ld r7,UCONTEXT_STACK_SP(r3) + ld r0,UCONTEXT_STACK_SIZE(r3) + add r7,r7,r0 + clrrdi r7,r7,4 + li r0,0 + stdu r0,-64(r7) + std r3,FRAME_PARM1_SAVE(r7) /* Store context in dummy parm1. */ + mflr r0 + std r2,FRAME_TOC_SAVE(r7) /* Store the TOC pointer for later. */ + std r0,FRAME_LR_SAVE(r7) + + /* Now we need to stack another frame to hold the parameter save area + for the function. We need to allocate a frame with the minimum 48 + byte header and 8 parameter register. However if there are more + than 8 parameters addition space is need to hold all the parameters. + The total size it rounded up to a quadword multiple then a frame is + stacked. This address is stored in the ucontext as GPR 1. */ + + cmpdi cr1,r5,8 + sldi r8,r5,3 + bgt cr1,L(gt8) + li r8,64 +L(gt8): + addi r8,r8,FRAME_PARM_SAVE+8 /* Add header plus rounding factor. */ + clrrdi r8,r8,4 /* Round down to quadword. */ + + subf r8,r8,r7 + std r7,0(r8) /* Stack the frame. */ + std r8,(SIGCONTEXT_GP_REGS+(PT_R1*8))(r3) + + /* Now we need to copy the target functions parameters. The functions + parameters are saved in the parameter save area. We skip over the + first three parameters and copy up to 8 double word into the + SIGCONTEXT_GP_REGS starting with R3. If there are more than 8 + parameters then doublewords 8-N are copied into the parameter + save area of the context frame. */ + cmpdi r5,0 + beq L(noparms) + mr r0,r5 + ble cr1,L(le8) + li r0,8 +L(le8): + mtctr r0 + addi r7,r6,-8 + addi r9,r3,(SIGCONTEXT_GP_REGS+(PT_R3*8)-8) +L(parmloop2): + ldu r0,8(r7) + stdu r0,8(r9) + bdnz L(parmloop2) + + addi r0,r5,-8 + ble cr1,L(noparms) + mtctr r0 + addi r9,r8,FRAME_PARM9_SAVE-8 +L(parmloop): + ldu r0,8(r7) + stdu r0,8(r9) + bdnz L(parmloop) + +L(noparms): + +#if _CALL_ELF != 2 + /* Load the function address and TOC from the function descriptor + and store them in the ucontext as NIP and r2. Store the 3rd + field of the function descriptor into the ucontext as r11 in case + the calling language needs the "environment pointer". */ + ld r0,0(r4) + ld r10,8(r4); + ld r9,16(r4); + std r0,(SIGCONTEXT_GP_REGS+(PT_NIP*8))(r3) + std r10,(SIGCONTEXT_GP_REGS+(PT_R2*8))(r3) + std r9,(SIGCONTEXT_GP_REGS+(PT_R11*8))(r3) +#else + /* In the ELFv2 ABI, the function pointer is already the address. + Store it as NIP and r12 as required by the ABI. */ + std r4,(SIGCONTEXT_GP_REGS+(PT_NIP*8))(r3) + std r4,(SIGCONTEXT_GP_REGS+(PT_R12*8))(r3) +#endif + + /* If the target function returns we need to do some cleanup. We use a + code trick to get the address of our cleanup function into the link + register. Do not add any code between here and L(exitcode). + Use this conditional form of branch and link to avoid destroying + the cpu link stack used to predict blr return addresses. */ + bcl 20,31,L(gotexitcodeaddr); + + /* End FDE now, because while executing on the context's stack + the unwind info would be wrong otherwise. */ + cfi_endproc + + /* This is the helper code which gets called if a function which + is registered with 'makecontext' returns. In this case we + have to install the context listed in the uc_link element of + the context 'makecontext' manipulated at the time of the + 'makecontext' call. If the pointer is NULL the process must + terminate. */ +L(exitcode): + /* Recover the ucontext and TOC from the dummy frame. */ + ld r1,FRAME_BACKCHAIN(r1) /* Unstack the parameter save area frame. */ + ld r3,FRAME_PARM1_SAVE(r1) + ld r2,FRAME_TOC_SAVE(r1) + ld r3,UCONTEXT_LINK(r3) /* Load the resume context. */ + cmpdi r3,0 + beq L(do_exit) + bl JUMPTARGET(__setcontext) + nop + /* If setcontext returns (which can happen if the syscall fails) we will + exit the program with error status (-1). */ + li r3,-1 +L(do_exit): +#ifdef SHARED + b JUMPTARGET(__GI_exit); +#else + b JUMPTARGET(exit); + nop +#endif + b L(do_exit) + + /* Re-establish FDE for the rest of the actual makecontext routine. */ + cfi_startproc + cfi_offset (lr, FRAME_LR_SAVE) + cfi_adjust_cfa_offset (128) + + /* The address of the exit code is in the link register. Store the lr + in the ucontext as LNK so the target function will return to our + exit code. */ +L(gotexitcodeaddr): + mflr r0 + std r0,(SIGCONTEXT_GP_REGS+(PT_LNK*8))(r3) + ld r0,128+FRAME_LR_SAVE(r1) + addi r1,r1,128 + mtlr r0 + blr +END(__makecontext) + +weak_alias (__makecontext, makecontext) diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/setcontext.S b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/setcontext.S new file mode 100644 index 0000000000..e258b9da41 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/setcontext.S @@ -0,0 +1,513 @@ +/* Switch to context. + Copyright (C) 2002-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#include <sysdep.h> +#include <rtld-global-offsets.h> +#include <shlib-compat.h> + +#define __ASSEMBLY__ +#include <asm/ptrace.h> +#include "ucontext_i.h" +#include <asm/errno.h> + + .section ".toc","aw" +.LC__dl_hwcap: +#ifdef SHARED + .tc _rtld_global_ro[TC],_rtld_global_ro +#else + .tc _dl_hwcap[TC],_dl_hwcap +#endif + .section ".text" + +#if SHLIB_COMPAT (libc, GLIBC_2_3, GLIBC_2_3_4) +ENTRY(__novec_setcontext) + CALL_MCOUNT 1 + mflr r0 + std r31,-8(1) + cfi_offset(r31,-8) + std r0,FRAME_LR_SAVE(r1) + cfi_offset (lr, FRAME_LR_SAVE) + stdu r1,-128(r1) + cfi_adjust_cfa_offset (128) + mr r31,r3 + +/* + * If this ucontext refers to the point where we were interrupted + * by a signal, we have to use the rt_sigreturn system call to + * return to the context so we get both LR and CTR restored. + * + * Otherwise, the context we are restoring is either just after + * a procedure call (getcontext/swapcontext) or at the beginning + * of a procedure call (makecontext), so we don't need to restore + * msr and ctr. We don't restore r13 since it will be used as + * the TLS pointer. */ + ld r0,(SIGCONTEXT_GP_REGS+(PT_MSR*8))(r31) + cmpdi r0,0 + bne L(nv_do_sigret) + + li r5,0 + addi r4,r3,UCONTEXT_SIGMASK + li r3,SIG_SETMASK + bl JUMPTARGET(__sigprocmask) + nop + cmpdi r3,0 + bne L(nv_error_exit) + +# ifdef SHARED +/* Load _rtld-global._dl_hwcap. */ + ld r5,RTLD_GLOBAL_RO_DL_HWCAP_OFFSET(r5) +# else + ld r5,0(r5) /* Load extern _dl_hwcap. */ +# endif + + lfd fp0,(SIGCONTEXT_FP_REGS+(32*8))(r31) + lfd fp31,(SIGCONTEXT_FP_REGS+(PT_R31*8))(r31) + lfd fp30,(SIGCONTEXT_FP_REGS+(PT_R30*8))(r31) + +# ifdef _ARCH_PWR6 + /* Use the extended four-operand version of the mtfsf insn. */ + .machine push + .machine "power6" + + mtfsf 0xff,fp0,1,0 + + .machine pop +# else + /* Availability of DFP indicates a 64-bit FPSCR. */ + andi. r6,r5,PPC_FEATURE_HAS_DFP + beq 5f + /* Use the extended four-operand version of the mtfsf insn. */ + .machine push + .machine "power6" + + mtfsf 0xff,fp0,1,0 + + .machine pop + + b 6f + /* Continue to operate on the FPSCR as if it were 32-bits. */ +5: + mtfsf 0xff,fp0 +6: +# endif /* _ARCH_PWR6 */ + + lfd fp29,(SIGCONTEXT_FP_REGS+(PT_R29*8))(r31) + lfd fp28,(SIGCONTEXT_FP_REGS+(PT_R28*8))(r31) + lfd fp27,(SIGCONTEXT_FP_REGS+(PT_R27*8))(r31) + lfd fp26,(SIGCONTEXT_FP_REGS+(PT_R26*8))(r31) + lfd fp25,(SIGCONTEXT_FP_REGS+(PT_R25*8))(r31) + lfd fp24,(SIGCONTEXT_FP_REGS+(PT_R24*8))(r31) + lfd fp23,(SIGCONTEXT_FP_REGS+(PT_R23*8))(r31) + lfd fp22,(SIGCONTEXT_FP_REGS+(PT_R22*8))(r31) + lfd fp21,(SIGCONTEXT_FP_REGS+(PT_R21*8))(r31) + lfd fp20,(SIGCONTEXT_FP_REGS+(PT_R20*8))(r31) + lfd fp19,(SIGCONTEXT_FP_REGS+(PT_R19*8))(r31) + lfd fp18,(SIGCONTEXT_FP_REGS+(PT_R18*8))(r31) + lfd fp17,(SIGCONTEXT_FP_REGS+(PT_R17*8))(r31) + lfd fp16,(SIGCONTEXT_FP_REGS+(PT_R16*8))(r31) + lfd fp15,(SIGCONTEXT_FP_REGS+(PT_R15*8))(r31) + lfd fp14,(SIGCONTEXT_FP_REGS+(PT_R14*8))(r31) + lfd fp13,(SIGCONTEXT_FP_REGS+(PT_R13*8))(r31) + lfd fp12,(SIGCONTEXT_FP_REGS+(PT_R12*8))(r31) + lfd fp11,(SIGCONTEXT_FP_REGS+(PT_R11*8))(r31) + lfd fp10,(SIGCONTEXT_FP_REGS+(PT_R10*8))(r31) + lfd fp9,(SIGCONTEXT_FP_REGS+(PT_R9*8))(r31) + lfd fp8,(SIGCONTEXT_FP_REGS+(PT_R8*8))(r31) + lfd fp7,(SIGCONTEXT_FP_REGS+(PT_R7*8))(r31) + lfd fp6,(SIGCONTEXT_FP_REGS+(PT_R6*8))(r31) + lfd fp5,(SIGCONTEXT_FP_REGS+(PT_R5*8))(r31) + lfd fp4,(SIGCONTEXT_FP_REGS+(PT_R4*8))(r31) + lfd fp3,(SIGCONTEXT_FP_REGS+(PT_R3*8))(r31) + lfd fp2,(SIGCONTEXT_FP_REGS+(PT_R2*8))(r31) + lfd fp1,(SIGCONTEXT_FP_REGS+(PT_R1*8))(r31) + lfd fp0,(SIGCONTEXT_FP_REGS+(PT_R0*8))(r31) + + /* End FDE now, because the unwind info would be wrong while + we're reloading registers to switch to the new context. */ + cfi_endproc + + ld r0,(SIGCONTEXT_GP_REGS+(PT_LNK*8))(r31) + ld r1,(SIGCONTEXT_GP_REGS+(PT_R1*8))(r31) + mtlr r0 + ld r2,(SIGCONTEXT_GP_REGS+(PT_R2*8))(r31) + ld r0,(SIGCONTEXT_GP_REGS+(PT_XER*8))(r31) + ld r3,(SIGCONTEXT_GP_REGS+(PT_R3*8))(r31) + mtxer r0 + ld r4,(SIGCONTEXT_GP_REGS+(PT_R4*8))(r31) + ld r0,(SIGCONTEXT_GP_REGS+(PT_CCR*8))(r31) + ld r5,(SIGCONTEXT_GP_REGS+(PT_R5*8))(r31) + mtcr r0 + ld r6,(SIGCONTEXT_GP_REGS+(PT_R6*8))(r31) + ld r7,(SIGCONTEXT_GP_REGS+(PT_R7*8))(r31) + ld r8,(SIGCONTEXT_GP_REGS+(PT_R8*8))(r31) + ld r9,(SIGCONTEXT_GP_REGS+(PT_R9*8))(r31) + ld r10,(SIGCONTEXT_GP_REGS+(PT_R10*8))(r31) + ld r11,(SIGCONTEXT_GP_REGS+(PT_R11*8))(r31) + ld r12,(SIGCONTEXT_GP_REGS+(PT_R12*8))(r31) + /* Don't reload the thread ID or TLS pointer (r13). */ + ld r14,(SIGCONTEXT_GP_REGS+(PT_R14*8))(r31) + ld r15,(SIGCONTEXT_GP_REGS+(PT_R15*8))(r31) + ld r16,(SIGCONTEXT_GP_REGS+(PT_R16*8))(r31) + ld r17,(SIGCONTEXT_GP_REGS+(PT_R17*8))(r31) + ld r18,(SIGCONTEXT_GP_REGS+(PT_R18*8))(r31) + ld r19,(SIGCONTEXT_GP_REGS+(PT_R19*8))(r31) + ld r20,(SIGCONTEXT_GP_REGS+(PT_R20*8))(r31) + ld r21,(SIGCONTEXT_GP_REGS+(PT_R21*8))(r31) + ld r22,(SIGCONTEXT_GP_REGS+(PT_R22*8))(r31) + ld r23,(SIGCONTEXT_GP_REGS+(PT_R23*8))(r31) + ld r24,(SIGCONTEXT_GP_REGS+(PT_R24*8))(r31) + ld r25,(SIGCONTEXT_GP_REGS+(PT_R25*8))(r31) + ld r26,(SIGCONTEXT_GP_REGS+(PT_R26*8))(r31) + ld r27,(SIGCONTEXT_GP_REGS+(PT_R27*8))(r31) + ld r28,(SIGCONTEXT_GP_REGS+(PT_R28*8))(r31) + ld r29,(SIGCONTEXT_GP_REGS+(PT_R29*8))(r31) + ld r30,(SIGCONTEXT_GP_REGS+(PT_R30*8))(r31) + + /* Now we branch to the "Next Instruction Pointer" from the saved + context. With the powerpc64 instruction set there is no good way to + do this (from user state) without clobbering either the LR or CTR. + The makecontext and swapcontext functions depend on the callers + LR being preserved so we use the CTR. */ + ld r0,(SIGCONTEXT_GP_REGS+(PT_NIP*8))(r31) + mtctr r0 + ld r0,(SIGCONTEXT_GP_REGS+(PT_R0*8))(r31) + ld r31,(SIGCONTEXT_GP_REGS+(PT_R31*8))(r31) + bctr + + /* Re-establish FDE for the rest of the actual setcontext routine. */ + cfi_startproc + cfi_offset (lr, FRAME_LR_SAVE) + cfi_adjust_cfa_offset (128) + +L(nv_error_exit): + ld r0,128+FRAME_LR_SAVE(r1) + addi r1,r1,128 + mtlr r0 + ld r31,-8(r1) + blr + + /* At this point we assume that the ucontext was created by a + rt_signal and we should use rt_sigreturn to restore the original + state. As of the 2.4.21 kernel the ucontext is the first thing + (offset 0) in the rt_signal frame and rt_sigreturn expects the + ucontext address in R1. Normally the rt-signal trampoline handles + this by popping dummy frame before the rt_signal syscall. In our + case the stack may not be in its original (signal handler return with + R1 pointing at the dummy frame) state. We do have the ucontext + address in R3, so simply copy R3 to R1 before the syscall. */ +L(nv_do_sigret): + mr r1,r3, + li r0,SYS_ify(rt_sigreturn) + sc + /* No return. */ + +PSEUDO_END(__novec_setcontext) + +compat_symbol (libc, __novec_setcontext, setcontext, GLIBC_2_3) + +#endif + + .section ".text" + .machine "altivec" +ENTRY(__setcontext) + CALL_MCOUNT 1 + mflr r0 + std r31,-8(1) + cfi_offset(r31,-8) + std r0,FRAME_LR_SAVE(r1) + cfi_offset (lr, FRAME_LR_SAVE) + stdu r1,-128(r1) + cfi_adjust_cfa_offset (128) + mr r31,r3 + +/* + * If this ucontext refers to the point where we were interrupted + * by a signal, we have to use the rt_sigreturn system call to + * return to the context so we get both LR and CTR restored. + * + * Otherwise, the context we are restoring is either just after + * a procedure call (getcontext/swapcontext) or at the beginning + * of a procedure call (makecontext), so we don't need to restore + * msr and ctr. We don't restore r13 since it will be used as + * the TLS pointer. */ + ld r0,(SIGCONTEXT_GP_REGS+(PT_MSR*8))(r31) + cmpdi r0,0 + bne L(do_sigret) + + li r5,0 + addi r4,r3,UCONTEXT_SIGMASK + li r3,SIG_SETMASK + bl JUMPTARGET(__sigprocmask) + nop + cmpdi r3,0 + bne L(error_exit) + + ld r5,.LC__dl_hwcap@toc(r2) + ld r10,(SIGCONTEXT_V_REGS_PTR)(r31) +# ifdef SHARED +/* Load _rtld-global._dl_hwcap. */ + ld r5,RTLD_GLOBAL_RO_DL_HWCAP_OFFSET(r5) +# else + ld r5,0(r5) /* Load extern _dl_hwcap. */ +# endif + andis. r6,r5,(PPC_FEATURE_HAS_ALTIVEC >> 16) + beq L(has_no_vec) + + cmpdi r10,0 + beq L(has_no_vec) + lwz r0,(33*16)(r10) + + li r9,(16*32) + mtspr VRSAVE,r0 + cmpwi r0,0 + beq L(has_no_vec) + + lvx v19,r9,r10 + la r9,(16)(r10) + + lvx v0,0,r10 + lvx v1,0,r9 + addi r10,r10,32 + addi r9,r9,32 + + mtvscr v19 + lvx v2,0,r10 + lvx v3,0,r9 + addi r10,r10,32 + addi r9,r9,32 + + lvx v4,0,r10 + lvx v5,0,r9 + addi r10,r10,32 + addi r9,r9,32 + + lvx v6,0,r10 + lvx v7,0,r9 + addi r10,r10,32 + addi r9,r9,32 + + lvx v8,0,r10 + lvx v9,0,r9 + addi r10,r10,32 + addi r9,r9,32 + + lvx v10,0,r10 + lvx v11,0,r9 + addi r10,r10,32 + addi r9,r9,32 + + lvx v12,0,r10 + lvx v13,0,r9 + addi r10,r10,32 + addi r9,r9,32 + + lvx v14,0,r10 + lvx v15,0,r9 + addi r10,r10,32 + addi r9,r9,32 + + lvx v16,0,r10 + lvx v17,0,r9 + addi r10,r10,32 + addi r9,r9,32 + + lvx v18,0,r10 + lvx v19,0,r9 + addi r10,r10,32 + addi r9,r9,32 + + lvx v20,0,r10 + lvx v21,0,r9 + addi r10,r10,32 + addi r9,r9,32 + + lvx v22,0,r10 + lvx v23,0,r9 + addi r10,r10,32 + addi r9,r9,32 + + lvx v24,0,r10 + lvx v25,0,r9 + addi r10,r10,32 + addi r9,r9,32 + + lvx v26,0,r10 + lvx v27,0,r9 + addi r10,r10,32 + addi r9,r9,32 + + lvx v28,0,r10 + lvx v29,0,r9 + addi r10,r10,32 + addi r9,r9,32 + + lvx v30,0,r10 + lvx v31,0,r9 + addi r10,r10,32 + addi r9,r9,32 + + lvx v10,0,r10 + lvx v11,0,r9 + addi r10,r10,32 + addi r9,r9,32 + +L(has_no_vec): + lfd fp0,(SIGCONTEXT_FP_REGS+(32*8))(r31) + lfd fp31,(SIGCONTEXT_FP_REGS+(PT_R31*8))(r31) + lfd fp30,(SIGCONTEXT_FP_REGS+(PT_R30*8))(r31) + +# ifdef _ARCH_PWR6 + /* Use the extended four-operand version of the mtfsf insn. */ + .machine push + .machine "power6" + + mtfsf 0xff,fp0,1,0 + + .machine pop +# else + /* Availability of DFP indicates a 64-bit FPSCR. */ + andi. r6,r5,PPC_FEATURE_HAS_DFP + beq 7f + /* Use the extended four-operand version of the mtfsf insn. */ + .machine push + .machine "power6" + + mtfsf 0xff,fp0,1,0 + + .machine pop + + b 8f + /* Continue to operate on the FPSCR as if it were 32-bits. */ +7: + mtfsf 0xff,fp0 +8: +# endif /* _ARCH_PWR6 */ + + lfd fp29,(SIGCONTEXT_FP_REGS+(PT_R29*8))(r31) + lfd fp28,(SIGCONTEXT_FP_REGS+(PT_R28*8))(r31) + lfd fp27,(SIGCONTEXT_FP_REGS+(PT_R27*8))(r31) + lfd fp26,(SIGCONTEXT_FP_REGS+(PT_R26*8))(r31) + lfd fp25,(SIGCONTEXT_FP_REGS+(PT_R25*8))(r31) + lfd fp24,(SIGCONTEXT_FP_REGS+(PT_R24*8))(r31) + lfd fp23,(SIGCONTEXT_FP_REGS+(PT_R23*8))(r31) + lfd fp22,(SIGCONTEXT_FP_REGS+(PT_R22*8))(r31) + lfd fp21,(SIGCONTEXT_FP_REGS+(PT_R21*8))(r31) + lfd fp20,(SIGCONTEXT_FP_REGS+(PT_R20*8))(r31) + lfd fp19,(SIGCONTEXT_FP_REGS+(PT_R19*8))(r31) + lfd fp18,(SIGCONTEXT_FP_REGS+(PT_R18*8))(r31) + lfd fp17,(SIGCONTEXT_FP_REGS+(PT_R17*8))(r31) + lfd fp16,(SIGCONTEXT_FP_REGS+(PT_R16*8))(r31) + lfd fp15,(SIGCONTEXT_FP_REGS+(PT_R15*8))(r31) + lfd fp14,(SIGCONTEXT_FP_REGS+(PT_R14*8))(r31) + lfd fp13,(SIGCONTEXT_FP_REGS+(PT_R13*8))(r31) + lfd fp12,(SIGCONTEXT_FP_REGS+(PT_R12*8))(r31) + lfd fp11,(SIGCONTEXT_FP_REGS+(PT_R11*8))(r31) + lfd fp10,(SIGCONTEXT_FP_REGS+(PT_R10*8))(r31) + lfd fp9,(SIGCONTEXT_FP_REGS+(PT_R9*8))(r31) + lfd fp8,(SIGCONTEXT_FP_REGS+(PT_R8*8))(r31) + lfd fp7,(SIGCONTEXT_FP_REGS+(PT_R7*8))(r31) + lfd fp6,(SIGCONTEXT_FP_REGS+(PT_R6*8))(r31) + lfd fp5,(SIGCONTEXT_FP_REGS+(PT_R5*8))(r31) + lfd fp4,(SIGCONTEXT_FP_REGS+(PT_R4*8))(r31) + lfd fp3,(SIGCONTEXT_FP_REGS+(PT_R3*8))(r31) + lfd fp2,(SIGCONTEXT_FP_REGS+(PT_R2*8))(r31) + lfd fp1,(SIGCONTEXT_FP_REGS+(PT_R1*8))(r31) + lfd fp0,(SIGCONTEXT_FP_REGS+(PT_R0*8))(r31) + + /* End FDE now, because the unwind info would be wrong while + we're reloading registers to switch to the new context. */ + cfi_endproc + + ld r0,(SIGCONTEXT_GP_REGS+(PT_LNK*8))(r31) + ld r1,(SIGCONTEXT_GP_REGS+(PT_R1*8))(r31) + mtlr r0 + ld r2,(SIGCONTEXT_GP_REGS+(PT_R2*8))(r31) + ld r0,(SIGCONTEXT_GP_REGS+(PT_XER*8))(r31) + ld r3,(SIGCONTEXT_GP_REGS+(PT_R3*8))(r31) + mtxer r0 + ld r4,(SIGCONTEXT_GP_REGS+(PT_R4*8))(r31) + ld r0,(SIGCONTEXT_GP_REGS+(PT_CCR*8))(r31) + ld r5,(SIGCONTEXT_GP_REGS+(PT_R5*8))(r31) + ld r6,(SIGCONTEXT_GP_REGS+(PT_R6*8))(r31) + ld r7,(SIGCONTEXT_GP_REGS+(PT_R7*8))(r31) + ld r8,(SIGCONTEXT_GP_REGS+(PT_R8*8))(r31) + ld r9,(SIGCONTEXT_GP_REGS+(PT_R9*8))(r31) + mtcr r0 + ld r10,(SIGCONTEXT_GP_REGS+(PT_R10*8))(r31) + ld r11,(SIGCONTEXT_GP_REGS+(PT_R11*8))(r31) + ld r12,(SIGCONTEXT_GP_REGS+(PT_R12*8))(r31) + /* Don't reload the thread ID or TLS pointer (r13). */ + ld r14,(SIGCONTEXT_GP_REGS+(PT_R14*8))(r31) + ld r15,(SIGCONTEXT_GP_REGS+(PT_R15*8))(r31) + ld r16,(SIGCONTEXT_GP_REGS+(PT_R16*8))(r31) + ld r17,(SIGCONTEXT_GP_REGS+(PT_R17*8))(r31) + ld r18,(SIGCONTEXT_GP_REGS+(PT_R18*8))(r31) + ld r19,(SIGCONTEXT_GP_REGS+(PT_R19*8))(r31) + ld r20,(SIGCONTEXT_GP_REGS+(PT_R20*8))(r31) + ld r21,(SIGCONTEXT_GP_REGS+(PT_R21*8))(r31) + ld r22,(SIGCONTEXT_GP_REGS+(PT_R22*8))(r31) + ld r23,(SIGCONTEXT_GP_REGS+(PT_R23*8))(r31) + ld r24,(SIGCONTEXT_GP_REGS+(PT_R24*8))(r31) + ld r25,(SIGCONTEXT_GP_REGS+(PT_R25*8))(r31) + ld r26,(SIGCONTEXT_GP_REGS+(PT_R26*8))(r31) + ld r27,(SIGCONTEXT_GP_REGS+(PT_R27*8))(r31) + ld r28,(SIGCONTEXT_GP_REGS+(PT_R28*8))(r31) + ld r29,(SIGCONTEXT_GP_REGS+(PT_R29*8))(r31) + ld r30,(SIGCONTEXT_GP_REGS+(PT_R30*8))(r31) + + /* Now we branch to the "Next Instruction Pointer" from the saved + context. With the powerpc64 instruction set there is no good way to + do this (from user state) without clobbering either the LR or CTR. + The makecontext and swapcontext functions depend on the callers + LR being preserved so we use the CTR. */ + ld r0,(SIGCONTEXT_GP_REGS+(PT_NIP*8))(r31) + mtctr r0 + ld r0,(SIGCONTEXT_GP_REGS+(PT_R0*8))(r31) + ld r31,(SIGCONTEXT_GP_REGS+(PT_R31*8))(r31) + bctr + + /* Re-establish FDE for the rest of the actual setcontext routine. */ + cfi_startproc + cfi_offset (lr, FRAME_LR_SAVE) + cfi_adjust_cfa_offset (128) + +L(error_exit): + ld r0,128+FRAME_LR_SAVE(r1) + addi r1,r1,128 + mtlr r0 + ld r31,-8(r1) + blr + + /* At this point we assume that the ucontext was created by a + rt_signal and we should use rt_sigreturn to restore the original + state. As of the 2.4.21 kernel the ucontext is the first thing + (offset 0) in the rt_signal frame and rt_sigreturn expects the + ucontext address in R1. Normally the rt-signal trampoline handles + this by popping dummy frame before the rt_signal syscall. In our + case the stack may not be in its original (signal handler return with + R1 pointing at the dummy frame) state. We do have the ucontext + address in R3, so simply copy R3 to R1 before the syscall. */ +L(do_sigret): + mr r1,r3, + li r0,SYS_ify(rt_sigreturn) + sc + /* No return. */ + +PSEUDO_END(__setcontext) + +versioned_symbol (libc, __setcontext, setcontext, GLIBC_2_3_4) diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/shlib-versions b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/shlib-versions new file mode 100644 index 0000000000..bc6debaf69 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/shlib-versions @@ -0,0 +1,7 @@ +%ifdef HAVE_ELFV2_ABI +DEFAULT GLIBC_2.17 +ld=ld64.so.2 +%else +DEFAULT GLIBC_2.3 +ld=ld64.so.1 +%endif diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/swapcontext.S b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/swapcontext.S new file mode 100644 index 0000000000..b08d269424 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/swapcontext.S @@ -0,0 +1,797 @@ +/* Save current context and install the given one. + Copyright (C) 2002-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#include <sysdep.h> +#include <rtld-global-offsets.h> +#include <shlib-compat.h> + +#define __ASSEMBLY__ +#include <asm/ptrace.h> +#include "ucontext_i.h" +#include <asm/errno.h> + + .section ".toc","aw" +.LC__dl_hwcap: +#ifdef SHARED + .tc _rtld_global_ro[TC],_rtld_global_ro +#else + .tc _dl_hwcap[TC],_dl_hwcap +#endif + +#if SHLIB_COMPAT (libc, GLIBC_2_3, GLIBC_2_3_4) + .section ".text" +ENTRY(__novec_swapcontext) + CALL_MCOUNT 2 + std r0,(SIGCONTEXT_GP_REGS+(PT_R0*8))(r3) + std r1,(SIGCONTEXT_GP_REGS+(PT_R1*8))(r3) + mflr r0 + std r31,-8(1) + cfi_offset(r31,-8) + std r2,(SIGCONTEXT_GP_REGS+(PT_R2*8))(r3) + std r0,FRAME_LR_SAVE(r1) + cfi_offset (lr, FRAME_LR_SAVE) + std r0,(SIGCONTEXT_GP_REGS+(PT_LNK*8))(r3) + std r0,(SIGCONTEXT_GP_REGS+(PT_NIP*8))(r3) + stdu r1,-128(r1) + cfi_adjust_cfa_offset (128) + std r4,(SIGCONTEXT_GP_REGS+(PT_R4*8))(r3) + std r5,(SIGCONTEXT_GP_REGS+(PT_R5*8))(r3) + std r6,(SIGCONTEXT_GP_REGS+(PT_R6*8))(r3) + std r7,(SIGCONTEXT_GP_REGS+(PT_R7*8))(r3) + std r8,(SIGCONTEXT_GP_REGS+(PT_R8*8))(r3) + std r9,(SIGCONTEXT_GP_REGS+(PT_R9*8))(r3) + std r10,(SIGCONTEXT_GP_REGS+(PT_R10*8))(r3) + std r11,(SIGCONTEXT_GP_REGS+(PT_R11*8))(r3) + std r12,(SIGCONTEXT_GP_REGS+(PT_R12*8))(r3) + std r13,(SIGCONTEXT_GP_REGS+(PT_R13*8))(r3) + std r14,(SIGCONTEXT_GP_REGS+(PT_R14*8))(r3) + std r15,(SIGCONTEXT_GP_REGS+(PT_R15*8))(r3) + std r16,(SIGCONTEXT_GP_REGS+(PT_R16*8))(r3) + std r17,(SIGCONTEXT_GP_REGS+(PT_R17*8))(r3) + std r18,(SIGCONTEXT_GP_REGS+(PT_R18*8))(r3) + std r19,(SIGCONTEXT_GP_REGS+(PT_R19*8))(r3) + std r20,(SIGCONTEXT_GP_REGS+(PT_R20*8))(r3) + std r21,(SIGCONTEXT_GP_REGS+(PT_R21*8))(r3) + std r22,(SIGCONTEXT_GP_REGS+(PT_R22*8))(r3) + std r23,(SIGCONTEXT_GP_REGS+(PT_R23*8))(r3) + std r24,(SIGCONTEXT_GP_REGS+(PT_R24*8))(r3) + std r25,(SIGCONTEXT_GP_REGS+(PT_R25*8))(r3) + std r26,(SIGCONTEXT_GP_REGS+(PT_R26*8))(r3) + std r27,(SIGCONTEXT_GP_REGS+(PT_R27*8))(r3) + std r28,(SIGCONTEXT_GP_REGS+(PT_R28*8))(r3) + std r29,(SIGCONTEXT_GP_REGS+(PT_R29*8))(r3) + std r30,(SIGCONTEXT_GP_REGS+(PT_R30*8))(r3) + std r31,(SIGCONTEXT_GP_REGS+(PT_R31*8))(r3) + mfctr r0 + std r0,(SIGCONTEXT_GP_REGS+(PT_CTR*8))(r3) + mfxer r0 + std r0,(SIGCONTEXT_GP_REGS+(PT_XER*8))(r3) + mfcr r0 + std r0,(SIGCONTEXT_GP_REGS+(PT_CCR*8))(r3) + + /* Set the return value of swapcontext to "success". R3 is the only + register whose value is not preserved in the saved context. */ + li r0,0 + std r0,(SIGCONTEXT_GP_REGS+(PT_R3*8))(r3) + + /* Zero fill fields that can't be set in user state or are unused. */ + std r0,(SIGCONTEXT_GP_REGS+(PT_MSR*8))(r3) + std r0,(SIGCONTEXT_GP_REGS+(34*8))(r3) + std r0,(SIGCONTEXT_GP_REGS+(PT_SOFTE*8))(r3) + std r0,(SIGCONTEXT_GP_REGS+(40*8))(r3) + std r0,(SIGCONTEXT_GP_REGS+(41*8))(r3) + std r0,(SIGCONTEXT_GP_REGS+(42*8))(r3) + std r0,(SIGCONTEXT_GP_REGS+(PT_RESULT*8))(r3) + + /* Set the PT_REGS pointer to the address of sigcontext gp_regs + field. Struct pt_regs and elf_gregset_t are the same thing. + We kept the regs field for backwards compatibility with + libraries built before we extended sigcontext. */ + addi r0,r3,SIGCONTEXT_GP_REGS + std r0,SIGCONTEXT_PT_REGS(r3) + + stfd fp0,(SIGCONTEXT_FP_REGS+(PT_R0*8))(r3) + stfd fp1,(SIGCONTEXT_FP_REGS+(PT_R1*8))(r3) + stfd fp2,(SIGCONTEXT_FP_REGS+(PT_R2*8))(r3) + stfd fp3,(SIGCONTEXT_FP_REGS+(PT_R3*8))(r3) + stfd fp4,(SIGCONTEXT_FP_REGS+(PT_R4*8))(r3) + stfd fp5,(SIGCONTEXT_FP_REGS+(PT_R5*8))(r3) + stfd fp6,(SIGCONTEXT_FP_REGS+(PT_R6*8))(r3) + stfd fp7,(SIGCONTEXT_FP_REGS+(PT_R7*8))(r3) + stfd fp8,(SIGCONTEXT_FP_REGS+(PT_R8*8))(r3) + stfd fp9,(SIGCONTEXT_FP_REGS+(PT_R9*8))(r3) + stfd fp10,(SIGCONTEXT_FP_REGS+(PT_R10*8))(r3) + stfd fp11,(SIGCONTEXT_FP_REGS+(PT_R11*8))(r3) + stfd fp12,(SIGCONTEXT_FP_REGS+(PT_R12*8))(r3) + stfd fp13,(SIGCONTEXT_FP_REGS+(PT_R13*8))(r3) + stfd fp14,(SIGCONTEXT_FP_REGS+(PT_R14*8))(r3) + stfd fp15,(SIGCONTEXT_FP_REGS+(PT_R15*8))(r3) + stfd fp16,(SIGCONTEXT_FP_REGS+(PT_R16*8))(r3) + stfd fp17,(SIGCONTEXT_FP_REGS+(PT_R17*8))(r3) + stfd fp18,(SIGCONTEXT_FP_REGS+(PT_R18*8))(r3) + stfd fp19,(SIGCONTEXT_FP_REGS+(PT_R19*8))(r3) + stfd fp20,(SIGCONTEXT_FP_REGS+(PT_R20*8))(r3) + stfd fp21,(SIGCONTEXT_FP_REGS+(PT_R21*8))(r3) + stfd fp22,(SIGCONTEXT_FP_REGS+(PT_R22*8))(r3) + stfd fp23,(SIGCONTEXT_FP_REGS+(PT_R23*8))(r3) + stfd fp24,(SIGCONTEXT_FP_REGS+(PT_R24*8))(r3) + stfd fp25,(SIGCONTEXT_FP_REGS+(PT_R25*8))(r3) + stfd fp26,(SIGCONTEXT_FP_REGS+(PT_R26*8))(r3) + stfd fp27,(SIGCONTEXT_FP_REGS+(PT_R27*8))(r3) + stfd fp28,(SIGCONTEXT_FP_REGS+(PT_R28*8))(r3) + stfd fp29,(SIGCONTEXT_FP_REGS+(PT_R29*8))(r3) + mffs fp0 + stfd fp30,(SIGCONTEXT_FP_REGS+(PT_R30*8))(r3) + stfd fp31,(SIGCONTEXT_FP_REGS+(PT_R31*8))(r3) + stfd fp0,(SIGCONTEXT_FP_REGS+(32*8))(r3) + + mr r31,r4 + addi r5,r3,UCONTEXT_SIGMASK + addi r4,r4,UCONTEXT_SIGMASK + li r3,SIG_SETMASK + bl JUMPTARGET(__sigprocmask) + nop + cmpdi r3,0 + bne L(nv_error_exit) + +/* + * If this new ucontext refers to the point where we were interrupted + * by a signal, we have to use the rt_sigreturn system call to + * return to the context so we get both LR and CTR restored. + * + * Otherwise, the context we are restoring is either just after + * a procedure call (getcontext/swapcontext) or at the beginning + * of a procedure call (makecontext), so we don't need to restore + * msr and ctr. We don't restore r13 since it will be used as + * the TLS pointer. */ + ld r0,(SIGCONTEXT_GP_REGS+(PT_MSR*8))(r31) + cmpdi r0,0 + bne L(nv_do_sigret) + + ld r8,.LC__dl_hwcap@toc(r2) +# ifdef SHARED +/* Load _rtld-global._dl_hwcap. */ + ld r8,RTLD_GLOBAL_RO_DL_HWCAP_OFFSET(r8) +# else + ld r8,0(r8) /* Load extern _dl_hwcap. */ +# endif + + lfd fp0,(SIGCONTEXT_FP_REGS+(32*8))(r31) + lfd fp31,(SIGCONTEXT_FP_REGS+(PT_R31*8))(r31) + lfd fp30,(SIGCONTEXT_FP_REGS+(PT_R30*8))(r31) + +# ifdef _ARCH_PWR6 + /* Use the extended four-operand version of the mtfsf insn. */ + .machine push + .machine "power6" + + mtfsf 0xff,fp0,1,0 + + .machine pop +# else + /* Availability of DFP indicates a 64-bit FPSCR. */ + andi. r6,r8,PPC_FEATURE_HAS_DFP + beq 5f + + .machine push + .machine "power6" + + mtfsf 0xff,fp0,1,0 + + .machine pop + + b 6f + /* Continue to operate on the FPSCR as if it were 32-bits. */ +5: + mtfsf 0xff,fp0 +6: +#endif /* _ARCH_PWR6 */ + + lfd fp29,(SIGCONTEXT_FP_REGS+(PT_R29*8))(r31) + lfd fp28,(SIGCONTEXT_FP_REGS+(PT_R28*8))(r31) + lfd fp27,(SIGCONTEXT_FP_REGS+(PT_R27*8))(r31) + lfd fp26,(SIGCONTEXT_FP_REGS+(PT_R26*8))(r31) + lfd fp25,(SIGCONTEXT_FP_REGS+(PT_R25*8))(r31) + lfd fp24,(SIGCONTEXT_FP_REGS+(PT_R24*8))(r31) + lfd fp23,(SIGCONTEXT_FP_REGS+(PT_R23*8))(r31) + lfd fp22,(SIGCONTEXT_FP_REGS+(PT_R22*8))(r31) + lfd fp21,(SIGCONTEXT_FP_REGS+(PT_R21*8))(r31) + lfd fp20,(SIGCONTEXT_FP_REGS+(PT_R20*8))(r31) + lfd fp19,(SIGCONTEXT_FP_REGS+(PT_R19*8))(r31) + lfd fp18,(SIGCONTEXT_FP_REGS+(PT_R18*8))(r31) + lfd fp17,(SIGCONTEXT_FP_REGS+(PT_R17*8))(r31) + lfd fp16,(SIGCONTEXT_FP_REGS+(PT_R16*8))(r31) + lfd fp15,(SIGCONTEXT_FP_REGS+(PT_R15*8))(r31) + lfd fp14,(SIGCONTEXT_FP_REGS+(PT_R14*8))(r31) + lfd fp13,(SIGCONTEXT_FP_REGS+(PT_R13*8))(r31) + lfd fp12,(SIGCONTEXT_FP_REGS+(PT_R12*8))(r31) + lfd fp11,(SIGCONTEXT_FP_REGS+(PT_R11*8))(r31) + lfd fp10,(SIGCONTEXT_FP_REGS+(PT_R10*8))(r31) + lfd fp9,(SIGCONTEXT_FP_REGS+(PT_R9*8))(r31) + lfd fp8,(SIGCONTEXT_FP_REGS+(PT_R8*8))(r31) + lfd fp7,(SIGCONTEXT_FP_REGS+(PT_R7*8))(r31) + lfd fp6,(SIGCONTEXT_FP_REGS+(PT_R6*8))(r31) + lfd fp5,(SIGCONTEXT_FP_REGS+(PT_R5*8))(r31) + lfd fp4,(SIGCONTEXT_FP_REGS+(PT_R4*8))(r31) + lfd fp3,(SIGCONTEXT_FP_REGS+(PT_R3*8))(r31) + lfd fp2,(SIGCONTEXT_FP_REGS+(PT_R2*8))(r31) + lfd fp1,(SIGCONTEXT_FP_REGS+(PT_R1*8))(r31) + lfd fp0,(SIGCONTEXT_FP_REGS+(PT_R0*8))(r31) + + ld r0,(SIGCONTEXT_GP_REGS+(PT_LNK*8))(r31) + ld r1,(SIGCONTEXT_GP_REGS+(PT_R1*8))(r31) + mtlr r0 + ld r2,(SIGCONTEXT_GP_REGS+(PT_R2*8))(r31) + ld r0,(SIGCONTEXT_GP_REGS+(PT_XER*8))(r31) + ld r3,(SIGCONTEXT_GP_REGS+(PT_R3*8))(r31) + mtxer r0 + ld r4,(SIGCONTEXT_GP_REGS+(PT_R4*8))(r31) + ld r0,(SIGCONTEXT_GP_REGS+(PT_CCR*8))(r31) + ld r5,(SIGCONTEXT_GP_REGS+(PT_R5*8))(r31) + mtcr r0 + ld r6,(SIGCONTEXT_GP_REGS+(PT_R6*8))(r31) + ld r7,(SIGCONTEXT_GP_REGS+(PT_R7*8))(r31) + ld r8,(SIGCONTEXT_GP_REGS+(PT_R8*8))(r31) + ld r9,(SIGCONTEXT_GP_REGS+(PT_R9*8))(r31) + ld r10,(SIGCONTEXT_GP_REGS+(PT_R10*8))(r31) + ld r11,(SIGCONTEXT_GP_REGS+(PT_R11*8))(r31) + ld r12,(SIGCONTEXT_GP_REGS+(PT_R12*8))(r31) + /* Don't reload the thread ID or TLS pointer (r13). */ + ld r14,(SIGCONTEXT_GP_REGS+(PT_R14*8))(r31) + ld r15,(SIGCONTEXT_GP_REGS+(PT_R15*8))(r31) + ld r16,(SIGCONTEXT_GP_REGS+(PT_R16*8))(r31) + ld r17,(SIGCONTEXT_GP_REGS+(PT_R17*8))(r31) + ld r18,(SIGCONTEXT_GP_REGS+(PT_R18*8))(r31) + ld r19,(SIGCONTEXT_GP_REGS+(PT_R19*8))(r31) + ld r20,(SIGCONTEXT_GP_REGS+(PT_R20*8))(r31) + ld r21,(SIGCONTEXT_GP_REGS+(PT_R21*8))(r31) + ld r22,(SIGCONTEXT_GP_REGS+(PT_R22*8))(r31) + ld r23,(SIGCONTEXT_GP_REGS+(PT_R23*8))(r31) + ld r24,(SIGCONTEXT_GP_REGS+(PT_R24*8))(r31) + ld r25,(SIGCONTEXT_GP_REGS+(PT_R25*8))(r31) + ld r26,(SIGCONTEXT_GP_REGS+(PT_R26*8))(r31) + ld r27,(SIGCONTEXT_GP_REGS+(PT_R27*8))(r31) + ld r28,(SIGCONTEXT_GP_REGS+(PT_R28*8))(r31) + ld r29,(SIGCONTEXT_GP_REGS+(PT_R29*8))(r31) + ld r30,(SIGCONTEXT_GP_REGS+(PT_R30*8))(r31) + + /* Now we branch to the "Next Instruction Pointer" from the saved + context. With the powerpc64 instruction set there is no good way to + do this (from user state) without clobbering either the LR or CTR. + The makecontext and swapcontext functions depend on the callers + LR being preserved so we use the CTR. */ + ld r0,(SIGCONTEXT_GP_REGS+(PT_NIP*8))(r31) + mtctr r0 + ld r0,(SIGCONTEXT_GP_REGS+(PT_R0*8))(r31) + ld r31,(SIGCONTEXT_GP_REGS+(PT_R31*8))(r31) + bctr + +L(nv_error_exit): + ld r0,128+FRAME_LR_SAVE(r1) + addi r1,r1,128 + mtlr r0 + ld r31,-8(r1) + blr + + /* At this point we assume that the ucontext was created by a + rt_signal and we should use rt_sigreturn to restore the original + state. As of the 2.4.21 kernel the ucontext is the first thing + (offset 0) in the rt_signal frame and rt_sigreturn expects the + ucontext address in R1. Normally the rt-signal trampoline handles + this by popping dummy frame before the rt_signal syscall. In our + case the stack may not be in its original (signal handler return with + R1 pointing at the dummy frame) state. We do have the ucontext + address in R3, so simply copy R3 to R1 before the syscall. */ +L(nv_do_sigret): + mr r1,r3, + li r0,SYS_ify(rt_sigreturn) + sc + /* No return. */ + +PSEUDO_END(__novec_swapcontext) + +compat_symbol (libc, __novec_swapcontext, swapcontext, GLIBC_2_3) + +#endif + + .section ".text" + .machine "altivec" +ENTRY(__swapcontext) + CALL_MCOUNT 2 + std r0,(SIGCONTEXT_GP_REGS+(PT_R0*8))(r3) + std r1,(SIGCONTEXT_GP_REGS+(PT_R1*8))(r3) + mflr r0 + std r31,-8(1) + cfi_offset(r31,-8) + std r2,(SIGCONTEXT_GP_REGS+(PT_R2*8))(r3) + std r0,FRAME_LR_SAVE(r1) + cfi_offset (lr, FRAME_LR_SAVE) + std r0,(SIGCONTEXT_GP_REGS+(PT_LNK*8))(r3) + std r0,(SIGCONTEXT_GP_REGS+(PT_NIP*8))(r3) + stdu r1,-128(r1) + cfi_adjust_cfa_offset(128) + std r4,(SIGCONTEXT_GP_REGS+(PT_R4*8))(r3) + std r5,(SIGCONTEXT_GP_REGS+(PT_R5*8))(r3) + std r6,(SIGCONTEXT_GP_REGS+(PT_R6*8))(r3) + std r7,(SIGCONTEXT_GP_REGS+(PT_R7*8))(r3) + std r8,(SIGCONTEXT_GP_REGS+(PT_R8*8))(r3) + std r9,(SIGCONTEXT_GP_REGS+(PT_R9*8))(r3) + std r10,(SIGCONTEXT_GP_REGS+(PT_R10*8))(r3) + std r11,(SIGCONTEXT_GP_REGS+(PT_R11*8))(r3) + std r12,(SIGCONTEXT_GP_REGS+(PT_R12*8))(r3) + std r13,(SIGCONTEXT_GP_REGS+(PT_R13*8))(r3) + std r14,(SIGCONTEXT_GP_REGS+(PT_R14*8))(r3) + std r15,(SIGCONTEXT_GP_REGS+(PT_R15*8))(r3) + std r16,(SIGCONTEXT_GP_REGS+(PT_R16*8))(r3) + std r17,(SIGCONTEXT_GP_REGS+(PT_R17*8))(r3) + std r18,(SIGCONTEXT_GP_REGS+(PT_R18*8))(r3) + std r19,(SIGCONTEXT_GP_REGS+(PT_R19*8))(r3) + std r20,(SIGCONTEXT_GP_REGS+(PT_R20*8))(r3) + std r21,(SIGCONTEXT_GP_REGS+(PT_R21*8))(r3) + std r22,(SIGCONTEXT_GP_REGS+(PT_R22*8))(r3) + std r23,(SIGCONTEXT_GP_REGS+(PT_R23*8))(r3) + std r24,(SIGCONTEXT_GP_REGS+(PT_R24*8))(r3) + std r25,(SIGCONTEXT_GP_REGS+(PT_R25*8))(r3) + std r26,(SIGCONTEXT_GP_REGS+(PT_R26*8))(r3) + std r27,(SIGCONTEXT_GP_REGS+(PT_R27*8))(r3) + std r28,(SIGCONTEXT_GP_REGS+(PT_R28*8))(r3) + std r29,(SIGCONTEXT_GP_REGS+(PT_R29*8))(r3) + std r30,(SIGCONTEXT_GP_REGS+(PT_R30*8))(r3) + std r31,(SIGCONTEXT_GP_REGS+(PT_R31*8))(r3) + mfctr r0 + std r0,(SIGCONTEXT_GP_REGS+(PT_CTR*8))(r3) + mfxer r0 + std r0,(SIGCONTEXT_GP_REGS+(PT_XER*8))(r3) + mfcr r0 + std r0,(SIGCONTEXT_GP_REGS+(PT_CCR*8))(r3) + + /* Set the return value of swapcontext to "success". R3 is the only + register whose value is not preserved in the saved context. */ + li r0,0 + std r0,(SIGCONTEXT_GP_REGS+(PT_R3*8))(r3) + + /* Zero fill fields that can't be set in user state or are unused. */ + std r0,(SIGCONTEXT_GP_REGS+(PT_MSR*8))(r3) + std r0,(SIGCONTEXT_GP_REGS+(34*8))(r3) + std r0,(SIGCONTEXT_GP_REGS+(PT_SOFTE*8))(r3) + std r0,(SIGCONTEXT_GP_REGS+(40*8))(r3) + std r0,(SIGCONTEXT_GP_REGS+(41*8))(r3) + std r0,(SIGCONTEXT_GP_REGS+(42*8))(r3) + std r0,(SIGCONTEXT_GP_REGS+(PT_RESULT*8))(r3) + + /* Set the PT_REGS pointer to the address of sigcontext gp_regs + field. Struct pt_regs and elf_gregset_t are the same thing. + We kept the regs field for backwards compatibility with + libraries built before we extended sigcontext. */ + addi r0,r3,SIGCONTEXT_GP_REGS + std r0,SIGCONTEXT_PT_REGS(r3) + + stfd fp0,(SIGCONTEXT_FP_REGS+(PT_R0*8))(r3) + stfd fp1,(SIGCONTEXT_FP_REGS+(PT_R1*8))(r3) + stfd fp2,(SIGCONTEXT_FP_REGS+(PT_R2*8))(r3) + stfd fp3,(SIGCONTEXT_FP_REGS+(PT_R3*8))(r3) + stfd fp4,(SIGCONTEXT_FP_REGS+(PT_R4*8))(r3) + stfd fp5,(SIGCONTEXT_FP_REGS+(PT_R5*8))(r3) + stfd fp6,(SIGCONTEXT_FP_REGS+(PT_R6*8))(r3) + stfd fp7,(SIGCONTEXT_FP_REGS+(PT_R7*8))(r3) + stfd fp8,(SIGCONTEXT_FP_REGS+(PT_R8*8))(r3) + stfd fp9,(SIGCONTEXT_FP_REGS+(PT_R9*8))(r3) + stfd fp10,(SIGCONTEXT_FP_REGS+(PT_R10*8))(r3) + stfd fp11,(SIGCONTEXT_FP_REGS+(PT_R11*8))(r3) + stfd fp12,(SIGCONTEXT_FP_REGS+(PT_R12*8))(r3) + stfd fp13,(SIGCONTEXT_FP_REGS+(PT_R13*8))(r3) + stfd fp14,(SIGCONTEXT_FP_REGS+(PT_R14*8))(r3) + stfd fp15,(SIGCONTEXT_FP_REGS+(PT_R15*8))(r3) + stfd fp16,(SIGCONTEXT_FP_REGS+(PT_R16*8))(r3) + stfd fp17,(SIGCONTEXT_FP_REGS+(PT_R17*8))(r3) + stfd fp18,(SIGCONTEXT_FP_REGS+(PT_R18*8))(r3) + stfd fp19,(SIGCONTEXT_FP_REGS+(PT_R19*8))(r3) + stfd fp20,(SIGCONTEXT_FP_REGS+(PT_R20*8))(r3) + stfd fp21,(SIGCONTEXT_FP_REGS+(PT_R21*8))(r3) + stfd fp22,(SIGCONTEXT_FP_REGS+(PT_R22*8))(r3) + stfd fp23,(SIGCONTEXT_FP_REGS+(PT_R23*8))(r3) + stfd fp24,(SIGCONTEXT_FP_REGS+(PT_R24*8))(r3) + stfd fp25,(SIGCONTEXT_FP_REGS+(PT_R25*8))(r3) + stfd fp26,(SIGCONTEXT_FP_REGS+(PT_R26*8))(r3) + stfd fp27,(SIGCONTEXT_FP_REGS+(PT_R27*8))(r3) + stfd fp28,(SIGCONTEXT_FP_REGS+(PT_R28*8))(r3) + stfd fp29,(SIGCONTEXT_FP_REGS+(PT_R29*8))(r3) + mffs fp0 + stfd fp30,(SIGCONTEXT_FP_REGS+(PT_R30*8))(r3) + stfd fp31,(SIGCONTEXT_FP_REGS+(PT_R31*8))(r3) + stfd fp0,(SIGCONTEXT_FP_REGS+(32*8))(r3) + + ld r8,.LC__dl_hwcap@toc(r2) +#ifdef SHARED +/* Load _rtld-global._dl_hwcap. */ + ld r8,RTLD_GLOBAL_RO_DL_HWCAP_OFFSET(r8) +#else + ld r8,0(r8) /* Load extern _dl_hwcap. */ +#endif + la r10,(SIGCONTEXT_V_RESERVE+8)(r3) + la r9,(SIGCONTEXT_V_RESERVE+24)(r3) + + andis. r6,r8,(PPC_FEATURE_HAS_ALTIVEC >> 16) + + clrrdi r10,r10,4 + beq L(has_no_vec) + + clrrdi r9,r9,4 + mr r8,r10 /* Capture *v_regs value in r5. */ + + stvx v0,0,r10 + stvx v1,0,r9 + addi r10,r10,32 + addi r9,r9,32 + + stvx v2,0,r10 + stvx v3,0,r9 + addi r10,r10,32 + addi r9,r9,32 + + stvx v4,0,r10 + stvx v5,0,r9 + addi r10,r10,32 + addi r9,r9,32 + + stvx v6,0,r10 + stvx v7,0,r9 + addi r10,r10,32 + addi r9,r9,32 + + stvx v8,0,r10 + stvx v9,0,r9 + addi r10,r10,32 + addi r9,r9,32 + + stvx v10,0,r10 + stvx v11,0,r9 + addi r10,r10,32 + addi r9,r9,32 + + stvx v12,0,r10 + stvx v13,0,r9 + addi r10,r10,32 + addi r9,r9,32 + + stvx v14,0,r10 + stvx v15,0,r9 + addi r10,r10,32 + addi r9,r9,32 + + stvx v16,0,r10 + stvx v17,0,r9 + addi r10,r10,32 + addi r9,r9,32 + + stvx v18,0,r10 + stvx v19,0,r9 + addi r10,r10,32 + addi r9,r9,32 + + stvx v20,0,r10 + stvx v21,0,r9 + addi r10,r10,32 + addi r9,r9,32 + + stvx v22,0,r10 + stvx v23,0,r9 + addi r10,r10,32 + addi r9,r9,32 + + stvx v24,0,r10 + stvx v25,0,r9 + addi r10,r10,32 + addi r9,r9,32 + + stvx v26,0,r10 + stvx v27,0,r9 + addi r10,r10,32 + addi r9,r9,32 + + stvx v28,0,r10 + stvx v29,0,r9 + addi r10,r10,32 + addi r9,r9,32 + + stvx v30,0,r10 + stvx v31,0,r9 + addi r10,r10,32 + addi r9,r9,32 + + mfvscr v0 + mfspr r0,VRSAVE + stvx v0,0,r10 + stw r0,0(r9) + +L(has_no_vec): +/* + Store either a NULL or a quadword aligned pointer to the Vector register + array into *v_regs. +*/ + std r8,(SIGCONTEXT_V_REGS_PTR)(r3) + + mr r31,r4 + addi r5,r3,UCONTEXT_SIGMASK + addi r4,r4,UCONTEXT_SIGMASK + li r3,SIG_SETMASK + bl JUMPTARGET(__sigprocmask) + nop + cmpdi r3,0 + bne L(error_exit) + +/* + * If this new ucontext refers to the point where we were interrupted + * by a signal, we have to use the rt_sigreturn system call to + * return to the context so we get both LR and CTR restored. + * + * Otherwise, the context we are restoring is either just after + * a procedure call (getcontext/swapcontext) or at the beginning + * of a procedure call (makecontext), so we don't need to restore + * msr and ctr. We don't restore r13 since it will be used as + * the TLS pointer. */ + ld r0,(SIGCONTEXT_GP_REGS+(PT_MSR*8))(r31) + cmpdi r0,0 + bne L(do_sigret) + + ld r8,.LC__dl_hwcap@toc(r2) + ld r10,(SIGCONTEXT_V_REGS_PTR)(r31) +# ifdef SHARED +/* Load _rtld-global._dl_hwcap. */ + ld r8,RTLD_GLOBAL_RO_DL_HWCAP_OFFSET(r8) +# else + ld r8,0(r8) /* Load extern _dl_hwcap. */ +# endif + andis. r6,r8,(PPC_FEATURE_HAS_ALTIVEC >> 16) + beq L(has_no_vec2) + + cmpdi r10,0 + beq L(has_no_vec2) + lwz r0,(33*16)(r10) + + li r9,(16*32) + mtspr VRSAVE,r0 + cmpwi r0,0 + beq L(has_no_vec2) + + lvx v19,r9,r10 + la r9,(16)(r10) + + lvx v0,0,r10 + lvx v1,0,r9 + addi r10,r10,32 + addi r9,r9,32 + + mtvscr v19 + lvx v2,0,r10 + lvx v3,0,r9 + addi r10,r10,32 + addi r9,r9,32 + + lvx v4,0,r10 + lvx v5,0,r9 + addi r10,r10,32 + addi r9,r9,32 + + lvx v6,0,r10 + lvx v7,0,r9 + addi r10,r10,32 + addi r9,r9,32 + + lvx v8,0,r10 + lvx v9,0,r9 + addi r10,r10,32 + addi r9,r9,32 + + lvx v10,0,r10 + lvx v11,0,r9 + addi r10,r10,32 + addi r9,r9,32 + + lvx v12,0,r10 + lvx v13,0,r9 + addi r10,r10,32 + addi r9,r9,32 + + lvx v14,0,r10 + lvx v15,0,r9 + addi r10,r10,32 + addi r9,r9,32 + + lvx v16,0,r10 + lvx v17,0,r9 + addi r10,r10,32 + addi r9,r9,32 + + lvx v18,0,r10 + lvx v19,0,r9 + addi r10,r10,32 + addi r9,r9,32 + + lvx v20,0,r10 + lvx v21,0,r9 + addi r10,r10,32 + addi r9,r9,32 + + lvx v22,0,r10 + lvx v23,0,r9 + addi r10,r10,32 + addi r9,r9,32 + + lvx v24,0,r10 + lvx v25,0,r9 + addi r10,r10,32 + addi r9,r9,32 + + lvx v26,0,r10 + lvx v27,0,r9 + addi r10,r10,32 + addi r9,r9,32 + + lvx v28,0,r10 + lvx v29,0,r9 + addi r10,r10,32 + addi r9,r9,32 + + lvx v30,0,r10 + lvx v31,0,r9 + addi r10,r10,32 + addi r9,r9,32 + + lvx v10,0,r10 + lvx v11,0,r9 + addi r10,r10,32 + addi r9,r9,32 + +L(has_no_vec2): + + lfd fp0,(SIGCONTEXT_FP_REGS+(32*8))(r31) + lfd fp31,(SIGCONTEXT_FP_REGS+(PT_R31*8))(r31) + lfd fp30,(SIGCONTEXT_FP_REGS+(PT_R30*8))(r31) + +# ifdef _ARCH_PWR6 + /* Use the extended four-operand version of the mtfsf insn. */ + .machine push + .machine "power6" + + mtfsf 0xff,fp0,1,0 + + .machine pop +# else + /* Availability of DFP indicates a 64-bit FPSCR. */ + andi. r6,r8,PPC_FEATURE_HAS_DFP + beq 7f + + .machine push + .machine "power6" + + mtfsf 0xff,fp0,1,0 + + .machine pop + + b 8f + /* Continue to operate on the FPSCR as if it were 32-bits. */ +7: + mtfsf 0xff,fp0 +8: +#endif /* _ARCH_PWR6 */ + + lfd fp29,(SIGCONTEXT_FP_REGS+(PT_R29*8))(r31) + lfd fp28,(SIGCONTEXT_FP_REGS+(PT_R28*8))(r31) + lfd fp27,(SIGCONTEXT_FP_REGS+(PT_R27*8))(r31) + lfd fp26,(SIGCONTEXT_FP_REGS+(PT_R26*8))(r31) + lfd fp25,(SIGCONTEXT_FP_REGS+(PT_R25*8))(r31) + lfd fp24,(SIGCONTEXT_FP_REGS+(PT_R24*8))(r31) + lfd fp23,(SIGCONTEXT_FP_REGS+(PT_R23*8))(r31) + lfd fp22,(SIGCONTEXT_FP_REGS+(PT_R22*8))(r31) + lfd fp21,(SIGCONTEXT_FP_REGS+(PT_R21*8))(r31) + lfd fp20,(SIGCONTEXT_FP_REGS+(PT_R20*8))(r31) + lfd fp19,(SIGCONTEXT_FP_REGS+(PT_R19*8))(r31) + lfd fp18,(SIGCONTEXT_FP_REGS+(PT_R18*8))(r31) + lfd fp17,(SIGCONTEXT_FP_REGS+(PT_R17*8))(r31) + lfd fp16,(SIGCONTEXT_FP_REGS+(PT_R16*8))(r31) + lfd fp15,(SIGCONTEXT_FP_REGS+(PT_R15*8))(r31) + lfd fp14,(SIGCONTEXT_FP_REGS+(PT_R14*8))(r31) + lfd fp13,(SIGCONTEXT_FP_REGS+(PT_R13*8))(r31) + lfd fp12,(SIGCONTEXT_FP_REGS+(PT_R12*8))(r31) + lfd fp11,(SIGCONTEXT_FP_REGS+(PT_R11*8))(r31) + lfd fp10,(SIGCONTEXT_FP_REGS+(PT_R10*8))(r31) + lfd fp9,(SIGCONTEXT_FP_REGS+(PT_R9*8))(r31) + lfd fp8,(SIGCONTEXT_FP_REGS+(PT_R8*8))(r31) + lfd fp7,(SIGCONTEXT_FP_REGS+(PT_R7*8))(r31) + lfd fp6,(SIGCONTEXT_FP_REGS+(PT_R6*8))(r31) + lfd fp5,(SIGCONTEXT_FP_REGS+(PT_R5*8))(r31) + lfd fp4,(SIGCONTEXT_FP_REGS+(PT_R4*8))(r31) + lfd fp3,(SIGCONTEXT_FP_REGS+(PT_R3*8))(r31) + lfd fp2,(SIGCONTEXT_FP_REGS+(PT_R2*8))(r31) + lfd fp1,(SIGCONTEXT_FP_REGS+(PT_R1*8))(r31) + lfd fp0,(SIGCONTEXT_FP_REGS+(PT_R0*8))(r31) + + ld r0,(SIGCONTEXT_GP_REGS+(PT_LNK*8))(r31) + ld r1,(SIGCONTEXT_GP_REGS+(PT_R1*8))(r31) + mtlr r0 + ld r2,(SIGCONTEXT_GP_REGS+(PT_R2*8))(r31) + ld r0,(SIGCONTEXT_GP_REGS+(PT_XER*8))(r31) + ld r3,(SIGCONTEXT_GP_REGS+(PT_R3*8))(r31) + mtxer r0 + ld r4,(SIGCONTEXT_GP_REGS+(PT_R4*8))(r31) + ld r0,(SIGCONTEXT_GP_REGS+(PT_CCR*8))(r31) + ld r5,(SIGCONTEXT_GP_REGS+(PT_R5*8))(r31) + ld r6,(SIGCONTEXT_GP_REGS+(PT_R6*8))(r31) + ld r7,(SIGCONTEXT_GP_REGS+(PT_R7*8))(r31) + ld r8,(SIGCONTEXT_GP_REGS+(PT_R8*8))(r31) + ld r9,(SIGCONTEXT_GP_REGS+(PT_R9*8))(r31) + mtcr r0 + ld r10,(SIGCONTEXT_GP_REGS+(PT_R10*8))(r31) + ld r11,(SIGCONTEXT_GP_REGS+(PT_R11*8))(r31) + ld r12,(SIGCONTEXT_GP_REGS+(PT_R12*8))(r31) + /* Don't reload the thread ID or TLS pointer (r13). */ + ld r14,(SIGCONTEXT_GP_REGS+(PT_R14*8))(r31) + ld r15,(SIGCONTEXT_GP_REGS+(PT_R15*8))(r31) + ld r16,(SIGCONTEXT_GP_REGS+(PT_R16*8))(r31) + ld r17,(SIGCONTEXT_GP_REGS+(PT_R17*8))(r31) + ld r18,(SIGCONTEXT_GP_REGS+(PT_R18*8))(r31) + ld r19,(SIGCONTEXT_GP_REGS+(PT_R19*8))(r31) + ld r20,(SIGCONTEXT_GP_REGS+(PT_R20*8))(r31) + ld r21,(SIGCONTEXT_GP_REGS+(PT_R21*8))(r31) + ld r22,(SIGCONTEXT_GP_REGS+(PT_R22*8))(r31) + ld r23,(SIGCONTEXT_GP_REGS+(PT_R23*8))(r31) + ld r24,(SIGCONTEXT_GP_REGS+(PT_R24*8))(r31) + ld r25,(SIGCONTEXT_GP_REGS+(PT_R25*8))(r31) + ld r26,(SIGCONTEXT_GP_REGS+(PT_R26*8))(r31) + ld r27,(SIGCONTEXT_GP_REGS+(PT_R27*8))(r31) + ld r28,(SIGCONTEXT_GP_REGS+(PT_R28*8))(r31) + ld r29,(SIGCONTEXT_GP_REGS+(PT_R29*8))(r31) + ld r30,(SIGCONTEXT_GP_REGS+(PT_R30*8))(r31) + + /* Now we branch to the "Next Instruction Pointer" from the saved + context. With the powerpc64 instruction set there is no good way to + do this (from user state) without clobbering either the LR or CTR. + The makecontext and swapcontext functions depend on the callers + LR being preserved so we use the CTR. */ + ld r0,(SIGCONTEXT_GP_REGS+(PT_NIP*8))(r31) + mtctr r0 + ld r0,(SIGCONTEXT_GP_REGS+(PT_R0*8))(r31) + ld r31,(SIGCONTEXT_GP_REGS+(PT_R31*8))(r31) + bctr + +L(error_exit): + ld r0,128+FRAME_LR_SAVE(r1) + addi r1,r1,128 + mtlr r0 + ld r31,-8(r1) + blr + + /* At this point we assume that the ucontext was created by a + rt_signal and we should use rt_sigreturn to restore the original + state. As of the 2.4.21 kernel the ucontext is the first thing + (offset 0) in the rt_signal frame and rt_sigreturn expects the + ucontext address in R1. Normally the rt-signal trampoline handles + this by popping dummy frame before the rt_signal syscall. In our + case the stack may not be in its original (signal handler return with + R1 pointing at the dummy frame) state. We do have the ucontext + address in R3, so simply copy R3 to R1 before the syscall. */ +L(do_sigret): + mr r1,r3, + li r0,SYS_ify(rt_sigreturn) + sc + /* No return. */ + +PSEUDO_END(__swapcontext) + +versioned_symbol (libc, __swapcontext, swapcontext, GLIBC_2_3_4) diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h new file mode 100644 index 0000000000..cad13da3ba --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h @@ -0,0 +1,147 @@ +/* Cancellable system call stubs. Linux/PowerPC64 version. + Copyright (C) 2003-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Franz Sirl <Franz.Sirl-kernel@lauterbach.com>, 2003. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#include <sysdep.h> +#include <tls.h> +#ifndef __ASSEMBLER__ +# include <nptl/pthreadP.h> +#endif + +#if IS_IN (libc) || IS_IN (libpthread) || IS_IN (librt) + +# define DASHDASHPFX(str) __##str + +#if _CALL_ELF == 2 +#define CANCEL_FRAMESIZE (FRAME_MIN_SIZE+16+48) +#define CANCEL_PARM_SAVE (FRAME_MIN_SIZE+16) +#else +#define CANCEL_FRAMESIZE (FRAME_MIN_SIZE+16) +#define CANCEL_PARM_SAVE (CANCEL_FRAMESIZE+FRAME_PARM_SAVE) +#endif + +# undef PSEUDO +# define PSEUDO(name, syscall_name, args) \ + .section ".text"; \ + ENTRY (name) \ + SINGLE_THREAD_P; \ + bne- .Lpseudo_cancel; \ + .type DASHDASHPFX(syscall_name##_nocancel),@function; \ + .globl DASHDASHPFX(syscall_name##_nocancel); \ + DASHDASHPFX(syscall_name##_nocancel): \ + DO_CALL (SYS_ify (syscall_name)); \ + PSEUDO_RET; \ + .size DASHDASHPFX(syscall_name##_nocancel),.-DASHDASHPFX(syscall_name##_nocancel); \ + .Lpseudo_cancel: \ + stdu 1,-CANCEL_FRAMESIZE(1); \ + cfi_adjust_cfa_offset (CANCEL_FRAMESIZE); \ + mflr 9; \ + std 9,CANCEL_FRAMESIZE+FRAME_LR_SAVE(1); \ + cfi_offset (lr, FRAME_LR_SAVE); \ + DOCARGS_##args; /* save syscall args around CENABLE. */ \ + CENABLE; \ + std 3,FRAME_MIN_SIZE(1); /* store CENABLE return value (MASK). */ \ + UNDOCARGS_##args; /* restore syscall args. */ \ + DO_CALL (SYS_ify (syscall_name)); \ + mfcr 0; /* save CR/R3 around CDISABLE. */ \ + std 3,FRAME_MIN_SIZE+8(1); \ + std 0,CANCEL_FRAMESIZE+FRAME_CR_SAVE(1); \ + cfi_offset (cr, FRAME_CR_SAVE); \ + ld 3,FRAME_MIN_SIZE(1); /* pass MASK to CDISABLE. */ \ + CDISABLE; \ + ld 9,CANCEL_FRAMESIZE+FRAME_LR_SAVE(1); \ + ld 0,CANCEL_FRAMESIZE+FRAME_CR_SAVE(1); /* restore CR/R3. */ \ + ld 3,FRAME_MIN_SIZE+8(1); \ + mtlr 9; \ + mtcr 0; \ + addi 1,1,CANCEL_FRAMESIZE; \ + cfi_adjust_cfa_offset (-CANCEL_FRAMESIZE); \ + cfi_restore (lr); \ + cfi_restore (cr) + +# define DOCARGS_0 +# define UNDOCARGS_0 + +# define DOCARGS_1 std 3,CANCEL_PARM_SAVE(1); DOCARGS_0 +# define UNDOCARGS_1 ld 3,CANCEL_PARM_SAVE(1); UNDOCARGS_0 + +# define DOCARGS_2 std 4,CANCEL_PARM_SAVE+8(1); DOCARGS_1 +# define UNDOCARGS_2 ld 4,CANCEL_PARM_SAVE+8(1); UNDOCARGS_1 + +# define DOCARGS_3 std 5,CANCEL_PARM_SAVE+16(1); DOCARGS_2 +# define UNDOCARGS_3 ld 5,CANCEL_PARM_SAVE+16(1); UNDOCARGS_2 + +# define DOCARGS_4 std 6,CANCEL_PARM_SAVE+24(1); DOCARGS_3 +# define UNDOCARGS_4 ld 6,CANCEL_PARM_SAVE+24(1); UNDOCARGS_3 + +# define DOCARGS_5 std 7,CANCEL_PARM_SAVE+32(1); DOCARGS_4 +# define UNDOCARGS_5 ld 7,CANCEL_PARM_SAVE+32(1); UNDOCARGS_4 + +# define DOCARGS_6 std 8,CANCEL_PARM_SAVE+40(1); DOCARGS_5 +# define UNDOCARGS_6 ld 8,CANCEL_PARM_SAVE+40(1); UNDOCARGS_5 + +# if IS_IN (libpthread) +# ifdef SHARED +# define CENABLE bl JUMPTARGET(__pthread_enable_asynccancel) +# define CDISABLE bl JUMPTARGET(__pthread_disable_asynccancel) +# else +# define CENABLE bl JUMPTARGET(__pthread_enable_asynccancel); nop +# define CDISABLE bl JUMPTARGET(__pthread_disable_asynccancel); nop +# endif +# elif IS_IN (libc) +# ifdef SHARED +# define CENABLE bl JUMPTARGET(__libc_enable_asynccancel) +# define CDISABLE bl JUMPTARGET(__libc_disable_asynccancel) +# else +# define CENABLE bl JUMPTARGET(__libc_enable_asynccancel); nop +# define CDISABLE bl JUMPTARGET(__libc_disable_asynccancel); nop +# endif +# elif IS_IN (librt) +# ifdef SHARED +# define CENABLE bl JUMPTARGET(__librt_enable_asynccancel) +# define CDISABLE bl JUMPTARGET(__librt_disable_asynccancel) +# else +# define CENABLE bl JUMPTARGET(__librt_enable_asynccancel); nop +# define CDISABLE bl JUMPTARGET(__librt_disable_asynccancel); nop +# endif +# else +# error Unsupported library +# endif + +# ifndef __ASSEMBLER__ +# define SINGLE_THREAD_P \ + __builtin_expect (THREAD_GETMEM (THREAD_SELF, \ + header.multiple_threads) == 0, 1) +# else +# define SINGLE_THREAD_P \ + lwz 10,MULTIPLE_THREADS_OFFSET(13); \ + cmpwi 10,0 +# endif + +#elif !defined __ASSEMBLER__ + +# define SINGLE_THREAD_P (1) +# define NO_CANCELLATION 1 + +#endif + +#ifndef __ASSEMBLER__ +# define RTLD_SINGLE_THREAD_P \ + __builtin_expect (THREAD_GETMEM (THREAD_SELF, \ + header.multiple_threads) == 0, 1) +#endif diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep.h b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep.h new file mode 100644 index 0000000000..cc8f931626 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep.h @@ -0,0 +1,239 @@ +/* Copyright (C) 1992-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +/* Alan Modra <amodra@bigpond.net.au> rewrote the INLINE_SYSCALL macro */ + +#ifndef _LINUX_POWERPC_SYSDEP_H +#define _LINUX_POWERPC_SYSDEP_H 1 + +#include <sysdeps/unix/sysv/linux/sysdep.h> +#include <sysdeps/unix/powerpc/sysdep.h> +#include <tls.h> + +/* Define __set_errno() for INLINE_SYSCALL macro below. */ +#ifndef __ASSEMBLER__ +#include <errno.h> +#endif + +/* For Linux we can use the system call table in the header file + /usr/include/asm/unistd.h + of the kernel. But these symbols do not follow the SYS_* syntax + so we have to redefine the `SYS_ify' macro here. */ +#undef SYS_ify +#define SYS_ify(syscall_name) __NR_##syscall_name + +#ifdef __ASSEMBLER__ + +/* This seems to always be the case on PPC. */ +# define ALIGNARG(log2) log2 +# define ASM_SIZE_DIRECTIVE(name) .size name,.-name + +#endif /* __ASSEMBLER__ */ + +/* This version is for internal uses when there is no desire + to set errno */ +#define INTERNAL_VSYSCALL_NO_SYSCALL_FALLBACK(name, err, type, nr, args...) \ + ({ \ + type sc_ret = ENOSYS; \ + \ + __typeof (__vdso_##name) vdsop = __vdso_##name; \ + PTR_DEMANGLE (vdsop); \ + if (vdsop != NULL) \ + sc_ret = \ + INTERNAL_VSYSCALL_CALL_TYPE (vdsop, err, type, nr, ##args); \ + else \ + err = 1 << 28; \ + sc_ret; \ + }) + +/* List of system calls which are supported as vsyscalls. */ +#define HAVE_CLOCK_GETRES_VSYSCALL 1 +#define HAVE_CLOCK_GETTIME_VSYSCALL 1 +#define HAVE_GETCPU_VSYSCALL 1 + +/* Define a macro which expands inline into the wrapper code for a system + call. This use is for internal calls that do not need to handle errors + normally. It will never touch errno. This returns just what the kernel + gave back in the non-error (CR0.SO cleared) case, otherwise (CR0.SO set) + the negation of the return value in the kernel gets reverted. */ + +#define INTERNAL_VSYSCALL_CALL_TYPE(funcptr, err, type, nr, args...) \ + ({ \ + register void *r0 __asm__ ("r0"); \ + register long int r3 __asm__ ("r3"); \ + register long int r4 __asm__ ("r4"); \ + register long int r5 __asm__ ("r5"); \ + register long int r6 __asm__ ("r6"); \ + register long int r7 __asm__ ("r7"); \ + register long int r8 __asm__ ("r8"); \ + register type rval __asm__ ("r3"); \ + LOADARGS_##nr (funcptr, args); \ + __asm__ __volatile__ \ + ("mtctr %0\n\t" \ + "bctrl\n\t" \ + "mfcr %0\n\t" \ + "0:" \ + : "+r" (r0), "+r" (r3), "+r" (r4), "+r" (r5), "+r" (r6), \ + "+r" (r7), "+r" (r8) \ + : : "r9", "r10", "r11", "r12", "cr0", "ctr", "lr", "memory"); \ + err = (long int) r0; \ + __asm__ __volatile__ ("" : "=r" (rval) : "r" (r3)); \ + rval; \ + }) + +#define INTERNAL_VSYSCALL_CALL(funcptr, err, nr, args...) \ + INTERNAL_VSYSCALL_CALL_TYPE(funcptr, err, long int, nr, args) + +#undef INLINE_SYSCALL + +/* This version is for kernels that implement system calls that + behave like function calls as far as register saving. */ +#define INLINE_SYSCALL(name, nr, args...) \ + ({ \ + INTERNAL_SYSCALL_DECL (sc_err); \ + long int sc_ret = INTERNAL_SYSCALL (name, sc_err, nr, args); \ + if (INTERNAL_SYSCALL_ERROR_P (sc_ret, sc_err)) \ + { \ + __set_errno (INTERNAL_SYSCALL_ERRNO (sc_ret, sc_err)); \ + sc_ret = -1L; \ + } \ + sc_ret; \ + }) + +/* Define a macro which expands inline into the wrapper code for a system + call. This use is for internal calls that do not need to handle errors + normally. It will never touch errno. This returns just what the kernel + gave back in the non-error (CR0.SO cleared) case, otherwise (CR0.SO set) + the negation of the return value in the kernel gets reverted. */ + +#undef INTERNAL_SYSCALL +#define INTERNAL_SYSCALL_NCS(name, err, nr, args...) \ + ({ \ + register long int r0 __asm__ ("r0"); \ + register long int r3 __asm__ ("r3"); \ + register long int r4 __asm__ ("r4"); \ + register long int r5 __asm__ ("r5"); \ + register long int r6 __asm__ ("r6"); \ + register long int r7 __asm__ ("r7"); \ + register long int r8 __asm__ ("r8"); \ + LOADARGS_##nr (name, ##args); \ + ABORT_TRANSACTION; \ + __asm__ __volatile__ \ + ("sc\n\t" \ + "mfcr %0\n\t" \ + "0:" \ + : "=&r" (r0), \ + "=&r" (r3), "=&r" (r4), "=&r" (r5), \ + "=&r" (r6), "=&r" (r7), "=&r" (r8) \ + : ASM_INPUT_##nr \ + : "r9", "r10", "r11", "r12", \ + "cr0", "ctr", "memory"); \ + err = r0; \ + r3; \ + }) +#define INTERNAL_SYSCALL(name, err, nr, args...) \ + INTERNAL_SYSCALL_NCS (__NR_##name, err, nr, args) + +#undef INTERNAL_SYSCALL_DECL +#define INTERNAL_SYSCALL_DECL(err) long int err __attribute__ ((unused)) + +#undef INTERNAL_SYSCALL_ERROR_P +#define INTERNAL_SYSCALL_ERROR_P(val, err) \ + ((void) (val), __builtin_expect ((err) & (1 << 28), 0)) + +#undef INTERNAL_SYSCALL_ERRNO +#define INTERNAL_SYSCALL_ERRNO(val, err) (val) + +#define LOADARGS_0(name, dummy) \ + r0 = name +#define LOADARGS_1(name, __arg1) \ + long int arg1 = (long int) (__arg1); \ + LOADARGS_0(name, 0); \ + extern void __illegally_sized_syscall_arg1 (void); \ + if (__builtin_classify_type (__arg1) != 5 && sizeof (__arg1) > 8) \ + __illegally_sized_syscall_arg1 (); \ + r3 = arg1 +#define LOADARGS_2(name, __arg1, __arg2) \ + long int arg2 = (long int) (__arg2); \ + LOADARGS_1(name, __arg1); \ + extern void __illegally_sized_syscall_arg2 (void); \ + if (__builtin_classify_type (__arg2) != 5 && sizeof (__arg2) > 8) \ + __illegally_sized_syscall_arg2 (); \ + r4 = arg2 +#define LOADARGS_3(name, __arg1, __arg2, __arg3) \ + long int arg3 = (long int) (__arg3); \ + LOADARGS_2(name, __arg1, __arg2); \ + extern void __illegally_sized_syscall_arg3 (void); \ + if (__builtin_classify_type (__arg3) != 5 && sizeof (__arg3) > 8) \ + __illegally_sized_syscall_arg3 (); \ + r5 = arg3 +#define LOADARGS_4(name, __arg1, __arg2, __arg3, __arg4) \ + long int arg4 = (long int) (__arg4); \ + LOADARGS_3(name, __arg1, __arg2, __arg3); \ + extern void __illegally_sized_syscall_arg4 (void); \ + if (__builtin_classify_type (__arg4) != 5 && sizeof (__arg4) > 8) \ + __illegally_sized_syscall_arg4 (); \ + r6 = arg4 +#define LOADARGS_5(name, __arg1, __arg2, __arg3, __arg4, __arg5) \ + long int arg5 = (long int) (__arg5); \ + LOADARGS_4(name, __arg1, __arg2, __arg3, __arg4); \ + extern void __illegally_sized_syscall_arg5 (void); \ + if (__builtin_classify_type (__arg5) != 5 && sizeof (__arg5) > 8) \ + __illegally_sized_syscall_arg5 (); \ + r7 = arg5 +#define LOADARGS_6(name, __arg1, __arg2, __arg3, __arg4, __arg5, __arg6) \ + long int arg6 = (long int) (__arg6); \ + LOADARGS_5(name, __arg1, __arg2, __arg3, __arg4, __arg5); \ + extern void __illegally_sized_syscall_arg6 (void); \ + if (__builtin_classify_type (__arg6) != 5 && sizeof (__arg6) > 8) \ + __illegally_sized_syscall_arg6 (); \ + r8 = arg6 + +#define ASM_INPUT_0 "0" (r0) +#define ASM_INPUT_1 ASM_INPUT_0, "1" (r3) +#define ASM_INPUT_2 ASM_INPUT_1, "2" (r4) +#define ASM_INPUT_3 ASM_INPUT_2, "3" (r5) +#define ASM_INPUT_4 ASM_INPUT_3, "4" (r6) +#define ASM_INPUT_5 ASM_INPUT_4, "5" (r7) +#define ASM_INPUT_6 ASM_INPUT_5, "6" (r8) + + +/* Pointer mangling support. */ +#if IS_IN (rtld) +/* We cannot use the thread descriptor because in ld.so we use setjmp + earlier than the descriptor is initialized. */ +#else +# ifdef __ASSEMBLER__ +# define PTR_MANGLE(reg, tmpreg) \ + ld tmpreg,POINTER_GUARD(r13); \ + xor reg,tmpreg,reg +# define PTR_MANGLE2(reg, tmpreg) \ + xor reg,tmpreg,reg +# define PTR_MANGLE3(destreg, reg, tmpreg) \ + ld tmpreg,POINTER_GUARD(r13); \ + xor destreg,tmpreg,reg +# define PTR_DEMANGLE(reg, tmpreg) PTR_MANGLE (reg, tmpreg) +# define PTR_DEMANGLE2(reg, tmpreg) PTR_MANGLE2 (reg, tmpreg) +# define PTR_DEMANGLE3(destreg, reg, tmpreg) PTR_MANGLE3 (destreg, reg, tmpreg) +# else +# define PTR_MANGLE(var) \ + (var) = (__typeof (var)) ((uintptr_t) (var) ^ THREAD_GET_POINTER_GUARD ()) +# define PTR_DEMANGLE(var) PTR_MANGLE (var) +# endif +#endif + +#endif /* linux/powerpc/powerpc64/sysdep.h */ diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_create.c b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_create.c new file mode 100644 index 0000000000..d307135003 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_create.c @@ -0,0 +1 @@ +#include <sysdeps/unix/sysv/linux/x86_64/timer_create.c> diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_delete.c b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_delete.c new file mode 100644 index 0000000000..2dd94f5c7a --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_delete.c @@ -0,0 +1 @@ +#include <sysdeps/unix/sysv/linux/x86_64/timer_delete.c> diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_getoverr.c b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_getoverr.c new file mode 100644 index 0000000000..22eaff5cda --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_getoverr.c @@ -0,0 +1 @@ +#include <sysdeps/unix/sysv/linux/x86_64/timer_getoverr.c> diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_gettime.c b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_gettime.c new file mode 100644 index 0000000000..cea524bae5 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_gettime.c @@ -0,0 +1 @@ +#include <sysdeps/unix/sysv/linux/x86_64/timer_gettime.c> diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_settime.c b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_settime.c new file mode 100644 index 0000000000..fa231149d5 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_settime.c @@ -0,0 +1 @@ +#include <sysdeps/unix/sysv/linux/x86_64/timer_settime.c> diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/ucontext_i.sym b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/ucontext_i.sym new file mode 100644 index 0000000000..8364e4614f --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/ucontext_i.sym @@ -0,0 +1,29 @@ +#include <stddef.h> +#include <signal.h> +#include <sys/ucontext.h> + +-- + +SIG_BLOCK +SIG_SETMASK + + +-- Offsets of the fields in the ucontext_t structure. +#define ucontext(member) offsetof (ucontext_t, member) +#define mcontext(member) ucontext (uc_mcontext.member) + +UCONTEXT_LINK ucontext (uc_link) +UCONTEXT_STACK ucontext (uc_stack) +UCONTEXT_STACK_SP ucontext (uc_stack.ss_sp) +UCONTEXT_STACK_FLAGS ucontext (uc_stack.ss_flags) +UCONTEXT_STACK_SIZE ucontext (uc_stack.ss_size) +UCONTEXT_SIGMASK ucontext (uc_sigmask) +UCONTEXT_MCONTEXT ucontext (uc_mcontext) +SIGCONTEXT_SIGNAL mcontext (signal) +SIGCONTEXT_HANDLER mcontext (handler) +SIGCONTEXT_OLDMASK mcontext (oldmask) +SIGCONTEXT_PT_REGS mcontext (regs) +SIGCONTEXT_GP_REGS mcontext (gp_regs) +SIGCONTEXT_FP_REGS mcontext (fp_regs) +SIGCONTEXT_V_REGS_PTR mcontext (v_regs) +SIGCONTEXT_V_RESERVE mcontext (vmx_reserve) diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/umount.c b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/umount.c new file mode 100644 index 0000000000..e10b40f96c --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/umount.c @@ -0,0 +1 @@ +#include <sysdeps/unix/sysv/linux/x86_64/umount.c> diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/vfork.S b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/vfork.S new file mode 100644 index 0000000000..f4fdfe2ffb --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64/vfork.S @@ -0,0 +1,39 @@ +/* Copyright (C) 2003-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#include <sysdep.h> +#define _ERRNO_H 1 +#include <bits/errno.h> +#include <tcb-offsets.h> + +/* Clone the calling process, but without copying the whole address space. + The calling process is suspended until the new process exits or is + replaced by a call to `execve'. Return -1 for errors, 0 to the new process, + and the process ID of the new process to the old process. */ + +ENTRY (__vfork) + CALL_MCOUNT 0 + + DO_CALL (SYS_ify (vfork)) + + PSEUDO_RET + +PSEUDO_END (__vfork) +libc_hidden_def (__vfork) + +weak_alias (__vfork, vfork) +strong_alias (__vfork, __libc_vfork) diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64le/Implies b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64le/Implies new file mode 100644 index 0000000000..4eacd3ae86 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64le/Implies @@ -0,0 +1 @@ +unix/sysv/linux/powerpc/powerpc64 diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64le/fpu/Implies b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64le/fpu/Implies new file mode 100644 index 0000000000..5da96db05b --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/powerpc64le/fpu/Implies @@ -0,0 +1 @@ +unix/sysv/linux/powerpc/powerpc64/fpu diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/profil-counter.h b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/profil-counter.h new file mode 100644 index 0000000000..8a6a0bcf3d --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/profil-counter.h @@ -0,0 +1,2 @@ +/* We can use the ix86 version. */ +#include <sysdeps/unix/sysv/linux/i386/profil-counter.h> diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/pt-longjmp.c b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/pt-longjmp.c new file mode 100644 index 0000000000..0a977136b6 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/pt-longjmp.c @@ -0,0 +1,61 @@ +/* Copyright (C) 2002-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@redhat.com>, 2002. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#include <setjmp.h> +#include <stdlib.h> +#include <bits/wordsize.h> +#include "pthreadP.h" +#include <shlib-compat.h> +#if defined SHARED && SHLIB_COMPAT (libpthread, GLIBC_2_0, GLIBC_2_3_4) + +/* These functions are not declared anywhere since they shouldn't be + used at another place but here. */ +extern void __novmx__libc_siglongjmp (sigjmp_buf env, int val) + __attribute__ ((noreturn)); +extern void __novmx__libc_longjmp (sigjmp_buf env, int val) + __attribute__ ((noreturn)); + + +void __novmx_siglongjmp (sigjmp_buf env, int val) +{ + __novmx__libc_siglongjmp (env, val); +} + +void __novmx_longjmp (jmp_buf env, int val) +{ + __novmx__libc_longjmp (env, val); +} + +compat_symbol (libpthread, __novmx_longjmp, longjmp, GLIBC_2_0); +compat_symbol (libpthread, __novmx_siglongjmp, siglongjmp, GLIBC_2_0); +#endif /* defined SHARED && SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_3_4)) */ + +void +__vmx_longjmp (jmp_buf env, int val) +{ + __libc_longjmp (env, val); +} + +void +__vmx_siglongjmp (jmp_buf env, int val) +{ + __libc_siglongjmp (env, val); +} + +versioned_symbol (libpthread, __vmx_longjmp, longjmp, GLIBC_2_3_4); +versioned_symbol (libpthread, __vmx_siglongjmp, siglongjmp, GLIBC_2_3_4); diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/pthread_attr_setstack.c b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/pthread_attr_setstack.c new file mode 100644 index 0000000000..2cb0a13bcb --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/pthread_attr_setstack.c @@ -0,0 +1,2 @@ +#define NEW_VERNUM GLIBC_2_6 +#include <nptl/pthread_attr_setstack.c> diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/pthread_attr_setstacksize.c b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/pthread_attr_setstacksize.c new file mode 100644 index 0000000000..6fedac1b33 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/pthread_attr_setstacksize.c @@ -0,0 +1,9 @@ +#include <unistd.h> /* For __getpagesize. */ +#define NEW_VERNUM GLIBC_2_6 +#define STACKSIZE_ADJUST \ + do { \ + size_t ps = __getpagesize (); \ + if (stacksize < 2 * ps) \ + stacksize = 2 * ps; \ + } while (0) +#include <nptl/pthread_attr_setstacksize.c> diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/pthread_mutex_cond_lock.c b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/pthread_mutex_cond_lock.c new file mode 100644 index 0000000000..22f9f745a1 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/pthread_mutex_cond_lock.c @@ -0,0 +1,22 @@ +/* Copyright (C) 2015-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +/* The cond lock is not actually elided yet, but we still need to handle + already elided locks. */ +#include <elision-conf.h> + +#include <nptl/pthread_mutex_cond_lock.c> diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/pthread_mutex_lock.c b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/pthread_mutex_lock.c new file mode 100644 index 0000000000..927b32d597 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/pthread_mutex_lock.c @@ -0,0 +1,22 @@ +/* Elided version of pthread_mutex_lock. + Copyright (C) 2015-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#include <elision-conf.h> +#include <force-elision.h> + +#include <nptl/pthread_mutex_lock.c> diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/pthread_mutex_timedlock.c b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/pthread_mutex_timedlock.c new file mode 100644 index 0000000000..1073ae05eb --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/pthread_mutex_timedlock.c @@ -0,0 +1,22 @@ +/* Elided version of pthread_mutex_timedlock. + Copyright (C) 2015-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#include <elision-conf.h> +#include <force-elision.h> + +#include <nptl/pthread_mutex_timedlock.c> diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/pthread_mutex_trylock.c b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/pthread_mutex_trylock.c new file mode 100644 index 0000000000..80e7743ef8 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/pthread_mutex_trylock.c @@ -0,0 +1,22 @@ +/* Elided version of pthread_mutex_trylock. + Copyright (C) 2015-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#include <elision-conf.h> +#include <force-elision.h> + +#include <nptl/pthread_mutex_trylock.c> diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/putmsg.c b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/putmsg.c new file mode 100644 index 0000000000..ebc1680ca7 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/putmsg.c @@ -0,0 +1 @@ +#include <sysdeps/unix/sysv/linux/i386/putmsg.c> diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/readdir64.c b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/readdir64.c new file mode 100644 index 0000000000..2ea26dd409 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/readdir64.c @@ -0,0 +1 @@ +#include <sysdeps/unix/sysv/linux/i386/readdir64.c> diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/readdir64_r.c b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/readdir64_r.c new file mode 100644 index 0000000000..9f54f897e3 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/readdir64_r.c @@ -0,0 +1 @@ +#include <sysdeps/unix/sysv/linux/i386/readdir64_r.c> diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/readelflib.c b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/readelflib.c new file mode 100644 index 0000000000..0b789e7f41 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/readelflib.c @@ -0,0 +1,60 @@ +/* Special checks on libraries for ldconfig. Linux/PowerPC version. + Copyright (C) 2002-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + + +int process_elf32_file (const char *file_name, const char *lib, int *flag, + unsigned int *osversion, char **soname, + void *file_contents, size_t file_length); +int process_elf64_file (const char *file_name, const char *lib, int *flag, + unsigned int *osversion, char **soname, + void *file_contents, size_t file_length); + +/* Returns 0 if everything is ok, != 0 in case of error. */ +int +process_elf_file (const char *file_name, const char *lib, int *flag, + unsigned int *osversion, char **soname, void *file_contents, + size_t file_length) +{ + ElfW(Ehdr) *elf_header = (ElfW(Ehdr) *) file_contents; + int ret; + + if (elf_header->e_ident [EI_CLASS] == ELFCLASS32) + return process_elf32_file (file_name, lib, flag, osversion, soname, + file_contents, file_length); + else + { + ret = process_elf64_file (file_name, lib, flag, osversion, soname, + file_contents, file_length); + /* PowerPC 64bit libraries are always libc.so.6+. */ + if (!ret) + *flag = FLAG_POWERPC_LIB64|FLAG_ELF_LIBC6; + return ret; + } +} + +#undef __ELF_NATIVE_CLASS +#undef process_elf_file +#define process_elf_file process_elf32_file +#define __ELF_NATIVE_CLASS 32 +#include "elf/readelflib.c" + +#undef __ELF_NATIVE_CLASS +#undef process_elf_file +#define process_elf_file process_elf64_file +#define __ELF_NATIVE_CLASS 64 +#include "elf/readelflib.c" diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/rt-sysdep.c b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/rt-sysdep.c new file mode 100644 index 0000000000..3ff55952e2 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/rt-sysdep.c @@ -0,0 +1 @@ +#include <sysdep.c> diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/sigcontextinfo.h b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/sigcontextinfo.h new file mode 100644 index 0000000000..b8b59970f9 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/sigcontextinfo.h @@ -0,0 +1,26 @@ +/* Copyright (C) 1998-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#include <signal.h> + +#define SIGCONTEXT struct sigcontext * +#define SIGCONTEXT_EXTRA_ARGS +#define GET_PC(ctx) ((void *)((ctx)->regs->nip)) +#define GET_FRAME(ctx) (*(void **)((ctx)->regs->gpr[1])) +#define GET_STACK(ctx) ((void *)((ctx)->regs->gpr[1])) +#define CALL_SIGHANDLER(handler, signo, ctx) \ + (handler)((signo), SIGCONTEXT_EXTRA_ARGS (ctx)) diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/sys/procfs.h b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/sys/procfs.h new file mode 100644 index 0000000000..61ded22955 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/sys/procfs.h @@ -0,0 +1,139 @@ +/* Copyright (C) 1996-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#ifndef _SYS_PROCFS_H +#define _SYS_PROCFS_H 1 + +/* This is somehow modelled after the file of the same name on SysVr4 + systems. It provides a definition of the core file format for ELF + used on Linux. */ + +#include <features.h> +#include <signal.h> +#include <sys/time.h> +#include <sys/types.h> +#include <sys/ucontext.h> +#include <sys/user.h> + +__BEGIN_DECLS + +/* These definitions are normally provided by ucontext.h via + asm/sigcontext.h, asm/ptrace.h, and asm/elf.h. Otherwise we define + them here. */ +#if !defined __PPC64_ELF_H && !defined _ASM_POWERPC_ELF_H +#define ELF_NGREG 48 /* includes nip, msr, lr, etc. */ +#define ELF_NFPREG 33 /* includes fpscr */ +#if __WORDSIZE == 32 +# define ELF_NVRREG 33 /* includes vscr */ +#else +# define ELF_NVRREG 34 /* includes vscr */ +#endif + +typedef unsigned long elf_greg_t; +typedef elf_greg_t elf_gregset_t[ELF_NGREG]; + +typedef double elf_fpreg_t; +typedef elf_fpreg_t elf_fpregset_t[ELF_NFPREG]; + +/* Altivec registers */ +typedef struct { + unsigned int u[4]; +} __attribute__ ((__aligned__ (16))) elf_vrreg_t; +typedef elf_vrreg_t elf_vrregset_t[ELF_NVRREG]; +#endif + +struct elf_siginfo + { + int si_signo; /* Signal number. */ + int si_code; /* Extra code. */ + int si_errno; /* Errno. */ + }; + + +/* Definitions to generate Intel SVR4-like core files. These mostly + have the same names as the SVR4 types with "elf_" tacked on the + front to prevent clashes with linux definitions, and the typedef + forms have been avoided. This is mostly like the SVR4 structure, + but more Linuxy, with things that Linux does not support and which + gdb doesn't really use excluded. Fields present but not used are + marked with "XXX". */ +struct elf_prstatus + { +#if 0 + long int pr_flags; /* XXX Process flags. */ + short int pr_why; /* XXX Reason for process halt. */ + short int pr_what; /* XXX More detailed reason. */ +#endif + struct elf_siginfo pr_info; /* Info associated with signal. */ + short int pr_cursig; /* Current signal. */ + unsigned long int pr_sigpend; /* Set of pending signals. */ + unsigned long int pr_sighold; /* Set of held signals. */ +#if 0 + stack_t pr_altstack; /* Alternate stack info. */ + struct sigaction pr_action; /* Signal action for current sig. */ +#endif + __pid_t pr_pid; + __pid_t pr_ppid; + __pid_t pr_pgrp; + __pid_t pr_sid; + struct timeval pr_utime; /* User time. */ + struct timeval pr_stime; /* System time. */ + struct timeval pr_cutime; /* Cumulative user time. */ + struct timeval pr_cstime; /* Cumulative system time. */ +#if 0 + long int pr_instr; /* Current instruction. */ +#endif + elf_gregset_t pr_reg; /* GP registers. */ + int pr_fpvalid; /* True if math copro being used. */ + }; + + +#define ELF_PRARGSZ (80) /* Number of chars for args */ + +struct elf_prpsinfo + { + char pr_state; /* Numeric process state. */ + char pr_sname; /* Char for pr_state. */ + char pr_zomb; /* Zombie. */ + char pr_nice; /* Nice val. */ + unsigned long int pr_flag; /* Flags. */ + __uid_t pr_uid; + __gid_t pr_gid; + __pid_t pr_pid, pr_ppid, pr_pgrp, pr_sid; + /* Lots missing */ + char pr_fname[16]; /* Filename of executable. */ + char pr_psargs[ELF_PRARGSZ]; /* Initial part of arg list. */ + }; + +/* Addresses. */ +typedef void *psaddr_t; + +/* Register sets. Linux has different names. */ +typedef elf_gregset_t prgregset_t; +typedef elf_fpregset_t prfpregset_t; + +/* We don't have any differences between processes and threads, + therefore habe only ine PID type. */ +typedef __pid_t lwpid_t; + + +typedef struct elf_prstatus prstatus_t; +typedef struct elf_prpsinfo prpsinfo_t; + +__END_DECLS + +#endif /* sys/procfs.h */ diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/sys/ptrace.h b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/sys/ptrace.h new file mode 100644 index 0000000000..ed1ed63cca --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/sys/ptrace.h @@ -0,0 +1,199 @@ +/* `ptrace' debugger support interface. Linux version. + Copyright (C) 2001-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#ifndef _SYS_PTRACE_H +#define _SYS_PTRACE_H 1 + +#include <features.h> +#include <bits/types.h> + +__BEGIN_DECLS + +/* Type of the REQUEST argument to `ptrace.' */ +enum __ptrace_request +{ + /* Indicate that the process making this request should be traced. + All signals received by this process can be intercepted by its + parent, and its parent can use the other `ptrace' requests. */ + PTRACE_TRACEME = 0, +#define PT_TRACE_ME PTRACE_TRACEME + + /* Return the word in the process's text space at address ADDR. */ + PTRACE_PEEKTEXT = 1, +#define PT_READ_I PTRACE_PEEKTEXT + + /* Return the word in the process's data space at address ADDR. */ + PTRACE_PEEKDATA = 2, +#define PT_READ_D PTRACE_PEEKDATA + + /* Return the word in the process's user area at offset ADDR. */ + PTRACE_PEEKUSER = 3, +#define PT_READ_U PTRACE_PEEKUSER + + /* Write the word DATA into the process's text space at address ADDR. */ + PTRACE_POKETEXT = 4, +#define PT_WRITE_I PTRACE_POKETEXT + + /* Write the word DATA into the process's data space at address ADDR. */ + PTRACE_POKEDATA = 5, +#define PT_WRITE_D PTRACE_POKEDATA + + /* Write the word DATA into the process's user area at offset ADDR. */ + PTRACE_POKEUSER = 6, +#define PT_WRITE_U PTRACE_POKEUSER + + /* Continue the process. */ + PTRACE_CONT = 7, +#define PT_CONTINUE PTRACE_CONT + + /* Kill the process. */ + PTRACE_KILL = 8, +#define PT_KILL PTRACE_KILL + + /* Single step the process. + This is not supported on all machines. */ + PTRACE_SINGLESTEP = 9, +#define PT_STEP PTRACE_SINGLESTEP + + /* Attach to a process that is already running. */ + PTRACE_ATTACH = 16, +#define PT_ATTACH PTRACE_ATTACH + + /* Detach from a process attached to with PTRACE_ATTACH. */ + PTRACE_DETACH = 17, +#define PT_DETACH PTRACE_DETACH + + /* Continue and stop at the next (return from) syscall. */ + PTRACE_SYSCALL = 24, +#define PT_SYSCALL PTRACE_SYSCALL + + /* Set ptrace filter options. */ + PTRACE_SETOPTIONS = 0x4200, +#define PT_SETOPTIONS PTRACE_SETOPTIONS + + /* Get last ptrace message. */ + PTRACE_GETEVENTMSG = 0x4201, +#define PT_GETEVENTMSG PTRACE_GETEVENTMSG + + /* Get siginfo for process. */ + PTRACE_GETSIGINFO = 0x4202, +#define PT_GETSIGINFO PTRACE_GETSIGINFO + + /* Set new siginfo for process. */ + PTRACE_SETSIGINFO = 0x4203, +#define PT_SETSIGINFO PTRACE_SETSIGINFO + + /* Get register content. */ + PTRACE_GETREGSET = 0x4204, +#define PTRACE_GETREGSET PTRACE_GETREGSET + + /* Set register content. */ + PTRACE_SETREGSET = 0x4205, +#define PTRACE_SETREGSET PTRACE_SETREGSET + + /* Like PTRACE_ATTACH, but do not force tracee to trap and do not affect + signal or group stop state. */ + PTRACE_SEIZE = 0x4206, +#define PTRACE_SEIZE PTRACE_SEIZE + + /* Trap seized tracee. */ + PTRACE_INTERRUPT = 0x4207, +#define PTRACE_INTERRUPT PTRACE_INTERRUPT + + /* Wait for next group event. */ + PTRACE_LISTEN = 0x4208, +#define PTRACE_LISTEN PTRACE_LISTEN + + PTRACE_PEEKSIGINFO = 0x4209, +#define PTRACE_PEEKSIGINFO PTRACE_PEEKSIGINFO + + PTRACE_GETSIGMASK = 0x420a, +#define PTRACE_GETSIGMASK PTRACE_GETSIGMASK + + PTRACE_SETSIGMASK = 0x420b, +#define PTRACE_SETSIGMASK PTRACE_SETSIGMASK + + PTRACE_SECCOMP_GET_FILTER = 0x420c +#define PTRACE_SECCOMP_GET_FILTER PTRACE_SECCOMP_GET_FILTER +}; + + +/* Flag for PTRACE_LISTEN. */ +enum __ptrace_flags +{ + PTRACE_SEIZE_DEVEL = 0x80000000 +}; + +/* Options set using PTRACE_SETOPTIONS. */ +enum __ptrace_setoptions +{ + PTRACE_O_TRACESYSGOOD = 0x00000001, + PTRACE_O_TRACEFORK = 0x00000002, + PTRACE_O_TRACEVFORK = 0x00000004, + PTRACE_O_TRACECLONE = 0x00000008, + PTRACE_O_TRACEEXEC = 0x00000010, + PTRACE_O_TRACEVFORKDONE = 0x00000020, + PTRACE_O_TRACEEXIT = 0x00000040, + PTRACE_O_TRACESECCOMP = 0x00000080, + PTRACE_O_EXITKILL = 0x00100000, + PTRACE_O_SUSPEND_SECCOMP = 0x00200000, + PTRACE_O_MASK = 0x003000ff +}; + +enum __ptrace_eventcodes +{ +/* Wait extended result codes for the above trace options. */ + PTRACE_EVENT_FORK = 1, + PTRACE_EVENT_VFORK = 2, + PTRACE_EVENT_CLONE = 3, + PTRACE_EVENT_EXEC = 4, + PTRACE_EVENT_VFORK_DONE = 5, + PTRACE_EVENT_EXIT = 6, + PTRACE_EVENT_SECCOMP = 7, +/* Extended result codes enabled by means other than options. */ + PTRACE_EVENT_STOP = 128 +}; + +/* Arguments for PTRACE_PEEKSIGINFO. */ +struct __ptrace_peeksiginfo_args +{ + __uint64_t off; /* From which siginfo to start. */ + __uint32_t flags; /* Flags for peeksiginfo. */ + __int32_t nr; /* How many siginfos to take. */ +}; + +enum __ptrace_peeksiginfo_flags +{ + /* Read signals from a shared (process wide) queue. */ + PTRACE_PEEKSIGINFO_SHARED = (1 << 0) +}; + +/* Perform process tracing functions. REQUEST is one of the values + above, and determines the action to be taken. + For all requests except PTRACE_TRACEME, PID specifies the process to be + traced. + + PID and the other arguments described above for the various requests should + appear (those that are used for the particular request) as: + pid_t PID, void *ADDR, int DATA, void *ADDR2 + after REQUEST. */ +extern long int ptrace (enum __ptrace_request __request, ...) __THROW; + +__END_DECLS + +#endif /* _SYS_PTRACE_H */ diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/sys/ucontext.h b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/sys/ucontext.h new file mode 100644 index 0000000000..b460f23bc9 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/sys/ucontext.h @@ -0,0 +1,193 @@ +/* Copyright (C) 1998-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#ifndef _SYS_UCONTEXT_H +#define _SYS_UCONTEXT_H 1 + +#include <features.h> + +#include <bits/sigcontext.h> +#include <bits/types/sigset_t.h> +#include <bits/types/stack_t.h> + + +#ifdef __USE_MISC +# define __ctx(fld) fld +#else +# define __ctx(fld) __ ## fld +#endif + +#if __WORDSIZE == 32 + +/* Number of general registers. */ +# define __NGREG 48 +# ifdef __USE_MISC +# define NGREG __NGREG +# endif + +/* Container for all general registers. */ +typedef unsigned long gregset_t[__NGREG]; + +/* Container for floating-point registers and status */ +typedef struct _libc_fpstate +{ + double __ctx(fpregs)[32]; + double __ctx(fpscr); + unsigned int _pad[2]; +} fpregset_t; + +/* Container for Altivec/VMX registers and status. + Needs to be aligned on a 16-byte boundary. */ +typedef struct _libc_vrstate +{ + unsigned int __ctx(vrregs)[32][4]; + unsigned int __ctx(vrsave); + unsigned int _pad[2]; + unsigned int __ctx(vscr); +} vrregset_t; + +/* Context to describe whole processor state. */ +typedef struct +{ + gregset_t __ctx(gregs); + fpregset_t __ctx(fpregs); + vrregset_t __ctx(vrregs) __attribute__((__aligned__(16))); +} mcontext_t; + +#else + +/* For 64-bit kernels with Altivec support, a machine context is exactly + * a sigcontext. For older kernel (without Altivec) the sigcontext matches + * the mcontext upto but not including the v_regs field. For kernels that + * don't set AT_HWCAP or return AT_HWCAP without PPC_FEATURE_HAS_ALTIVEC the + * v_regs field may not exist and should not be referenced. The v_regd field + * can be refernced safely only after verifying that PPC_FEATURE_HAS_ALTIVEC + * is set in AT_HWCAP. */ + +/* Number of general registers. */ +# define __NGREG 48 /* includes r0-r31, nip, msr, lr, etc. */ +# define __NFPREG 33 /* includes fp0-fp31 &fpscr. */ +# define __NVRREG 34 /* includes v0-v31, vscr, & vrsave in + split vectors */ +# ifdef __USE_MISC +# define NGREG __NGREG +# define NFPREG __NFPREG +# define NVRREG __NVRREG +# endif + +typedef unsigned long gregset_t[__NGREG]; +typedef double fpregset_t[__NFPREG]; + +/* Container for Altivec/VMX Vector Status and Control Register. Only 32-bits + but can only be copied to/from a 128-bit vector register. So we allocated + a whole quadword speedup save/restore. */ +typedef struct _libc_vscr +{ + unsigned int __pad[3]; + unsigned int __ctx(vscr_word); +} vscr_t; + +/* Container for Altivec/VMX registers and status. + Must to be aligned on a 16-byte boundary. */ +typedef struct _libc_vrstate +{ + unsigned int __ctx(vrregs)[32][4]; + vscr_t __ctx(vscr); + unsigned int __ctx(vrsave); + unsigned int __pad[3]; +} vrregset_t __attribute__((__aligned__(16))); + +typedef struct { + unsigned long __glibc_reserved[4]; + int __ctx(signal); + int __pad0; + unsigned long __ctx(handler); + unsigned long __ctx(oldmask); + struct pt_regs *__ctx(regs); + gregset_t __ctx(gp_regs); + fpregset_t __ctx(fp_regs); +/* + * To maintain compatibility with current implementations the sigcontext is + * extended by appending a pointer (v_regs) to a quadword type (elf_vrreg_t) + * followed by an unstructured (vmx_reserve) field of 69 doublewords. This + * allows the array of vector registers to be quadword aligned independent of + * the alignment of the containing sigcontext or ucontext. It is the + * responsibility of the code setting the sigcontext to set this pointer to + * either NULL (if this processor does not support the VMX feature) or the + * address of the first quadword within the allocated (vmx_reserve) area. + * + * The pointer (v_regs) of vector type (elf_vrreg_t) is essentually + * an array of 34 quadword entries. The entries with + * indexes 0-31 contain the corresponding vector registers. The entry with + * index 32 contains the vscr as the last word (offset 12) within the + * quadword. This allows the vscr to be stored as either a quadword (since + * it must be copied via a vector register to/from storage) or as a word. + * The entry with index 33 contains the vrsave as the first word (offset 0) + * within the quadword. + */ + vrregset_t *__ctx(v_regs); + long __ctx(vmx_reserve)[__NVRREG+__NVRREG+1]; +} mcontext_t; + +#endif + +#undef __ctx + +/* Userlevel context. */ +typedef struct ucontext + { + unsigned long int uc_flags; + struct ucontext *uc_link; + stack_t uc_stack; +#if __WORDSIZE == 32 + /* + * These fields are set up this way to maximize source and + * binary compatibility with code written for the old + * ucontext_t definition, which didn't include space for the + * registers. + * + * Different versions of the kernel have stored the registers on + * signal delivery at different offsets from the ucontext struct. + * Programs should thus use the uc_mcontext.uc_regs pointer to + * find where the registers are actually stored. The registers + * will be stored within the ucontext_t struct but not necessarily + * at a fixed address. As a side-effect, this lets us achieve + * 16-byte alignment for the register storage space if the + * Altivec registers are to be saved, without requiring 16-byte + * alignment on the whole ucontext_t. + * + * The uc_mcontext.regs field is included for source compatibility + * with programs written against the older ucontext_t definition, + * and its name should therefore not change. The uc_pad field + * is for binary compatibility with programs compiled against the + * old ucontext_t; it ensures that uc_mcontext.regs and uc_sigmask + * are at the same offset as previously. + */ + int uc_pad[7]; + union uc_regs_ptr { + struct pt_regs *regs; + mcontext_t *uc_regs; + } uc_mcontext; + sigset_t uc_sigmask; + char uc_reg_space[sizeof(mcontext_t) + 12]; /* last for extensibility */ +#else /* 64-bit */ + sigset_t uc_sigmask; + mcontext_t uc_mcontext; /* last for extensibility */ +#endif + } ucontext_t; + +#endif /* sys/ucontext.h */ diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/sys/user.h b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/sys/user.h new file mode 100644 index 0000000000..a56697d0e9 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/sys/user.h @@ -0,0 +1,40 @@ +/* Copyright (C) 1998-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#ifndef _SYS_USER_H + +#define _SYS_USER_H 1 +#include <stddef.h> +#include <features.h> + +#include <asm/ptrace.h> + +struct user { + struct pt_regs regs; /* entire machine state */ + size_t u_tsize; /* text size (pages) */ + size_t u_dsize; /* data size (pages) */ + size_t u_ssize; /* stack size (pages) */ + unsigned long start_code; /* text starting address */ + unsigned long start_data; /* data starting address */ + unsigned long start_stack; /* stack starting address */ + long int signal; /* signal causing core dump */ + struct regs * u_ar0; /* help gdb find registers */ + unsigned long magic; /* identifies a core file */ + char u_comm[32]; /* user command name */ +}; + +#endif /* sys/user.h */ diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/syscall.S b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/syscall.S new file mode 100644 index 0000000000..0522ccd1ee --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/syscall.S @@ -0,0 +1,31 @@ +/* Copyright (C) 1991-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#include <sysdep.h> + +ENTRY (syscall) + ABORT_TRANSACTION + mr r0,r3 + mr r3,r4 + mr r4,r5 + mr r5,r6 + mr r6,r7 + mr r7,r8 + mr r8,r9 + sc + PSEUDO_RET +PSEUDO_END (syscall) diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/sysdep.c b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/sysdep.c new file mode 100644 index 0000000000..6df0b35448 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/sysdep.c @@ -0,0 +1,28 @@ +/* Copyright (C) 1997-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#include <sysdep.h> +#include <errno.h> + +/* This routine is jumped to by all the syscall handlers, to stash + an error number into errno. */ +int +__syscall_error (int err_no) +{ + __set_errno (err_no); + return -1; +} diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/test-gettimebasefreq.c b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/test-gettimebasefreq.c new file mode 100644 index 0000000000..81cb8aa746 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/test-gettimebasefreq.c @@ -0,0 +1,63 @@ +/* Check __ppc_get_timebase_freq() for architecture changes + Copyright (C) 2012-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +/* Test if __ppc_get_timebase_freq() works and is different from zero. A read + failure might indicate a Linux Kernel change. + This test also use the frequency to compute the real elapsed time. */ + +#include <inttypes.h> +#include <stdio.h> +#include <stdint.h> + +#include <sys/platform/ppc.h> + +/* Maximum value of the Time Base Register: 2^60 - 1. */ +#define MAX_TB 0xFFFFFFFFFFFFFFF + +static int +do_test (void) +{ + uint64_t t1, t2, f, diff; + + t1 = __ppc_get_timebase (); + printf ("t1 = %"PRIu64"\n", t1); + + f = __ppc_get_timebase_freq (); + printf ("Time Base frequency = %"PRIu64" Hz\n", f); + + if (f == 0) { + printf ("Fail: The time base frequency can't be zero.\n"); + return 1; + } + + t2 = __ppc_get_timebase (); + printf ("t2 = %"PRIu64"\n", t2); + + if (t2 > t1) { + diff = t2 - t1; + } else { + diff = (MAX_TB - t2) + t1; + } + + printf ("Elapsed time = %1.2f usecs\n", (double) diff * 1000000 / f ); + + return 0; +} + +#define TEST_FUNCTION do_test () +#include "../test-skeleton.c" diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/time.c b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/time.c new file mode 100644 index 0000000000..8fc901ee22 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/powerpc/time.c @@ -0,0 +1,84 @@ +/* time system call for Linux/PowerPC. + Copyright (C) 2013-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#ifdef SHARED +# ifndef __powerpc64__ +# define time __redirect_time +# else +# define __redirect_time time +# endif + +# include <time.h> +# include <sysdep.h> +# include <dl-vdso.h> +# include <libc-vdso.h> +# include <dl-machine.h> + +# ifndef __powerpc64__ +# undef time + +time_t +__time_vsyscall (time_t *t) +{ + return INLINE_VSYSCALL (time, 1, t); +} + +/* __GI_time is defined as hidden and for ppc32 it enables the + compiler make a local call (symbol@local) for internal GLIBC usage. It + means the PLT won't be used and the ifunc resolver will be called directly. + For ppc64 a call to a function in another translation unit might use a + different toc pointer thus disallowing direct branchess and making internal + ifuncs calls safe. */ +# undef libc_hidden_def +# define libc_hidden_def(name) \ + __hidden_ver1 (__time_vsyscall, __GI_time, __time_vsyscall); + +# endif /* !__powerpc64__ */ + +static time_t +time_syscall (time_t *t) +{ + struct timeval tv; + time_t result; + + if (INLINE_VSYSCALL (gettimeofday, 2, &tv, NULL) < 0) + result = (time_t) -1; + else + result = (time_t) tv.tv_sec; + + if (t != NULL) + *t = result; + return result; +} + +# define INIT_ARCH() \ + PREPARE_VERSION (linux2615, "LINUX_2.6.15", 123718565); \ + void *vdso_time = _dl_vdso_vsym ("__kernel_time", &linux2615); + +/* If the vDSO is not available we fall back to the syscall. */ +libc_ifunc_hidden (__redirect_time, time, + vdso_time + ? VDSO_IFUNC_RET (vdso_time) + : (void *) time_syscall); +libc_hidden_def (time) + +#else + +#include <sysdeps/posix/time.c> + +#endif /* !SHARED */ |