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