diff options
Diffstat (limited to 'REORG.TODO/sysdeps/unix/sysv/linux/sparc')
180 files changed, 15109 insertions, 0 deletions
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/Implies b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/Implies new file mode 100644 index 0000000000..a8cc375171 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/Implies @@ -0,0 +1 @@ +sparc/nptl diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/Makefile b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/Makefile new file mode 100644 index 0000000000..a67d199eb5 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/Makefile @@ -0,0 +1,20 @@ +abi-variants := 32 64 +abi-32-options := -U__sparc_v9__ -U__arch64__ +abi-32-condition := __WORDSIZE == 32 +abi-64-options := -D__sparc_v9__ -D__arch64__ +abi-64-condition := __WORDSIZE == 64 + +ifeq ($(subdir),rt) +librt-routines += rt-sysdep +librt-shared-only-routines += rt-sysdep +endif + +ifeq ($(subdir),sysvipc) +sysdep_routines += getshmlba +endif + +ifeq ($(subdir),nptl) +# pull in __syscall_error routine +libpthread-routines += sysdep +libpthread-shared-only-routines += sysdep +endif diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/Versions b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/Versions new file mode 100644 index 0000000000..4dc1cd720b --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/Versions @@ -0,0 +1,46 @@ +libc { + # The comment lines with "#errlist-compat" are magic; see errlist-compat.awk. + # When you get an error from errlist-compat.awk, you need to add a new + # version here. + + GLIBC_2.0 { + #errlist-compat 127 + _sys_errlist; sys_errlist; _sys_nerr; sys_nerr; + } + GLIBC_2.1 { + #errlist-compat 127 + _sys_errlist; sys_errlist; _sys_nerr; sys_nerr; + } + GLIBC_2.3 { + #errlist-compat 128 + _sys_errlist; sys_errlist; _sys_nerr; sys_nerr; + } + GLIBC_2.4 { + #errlist-compat 134 + _sys_errlist; sys_errlist; _sys_nerr; sys_nerr; + } + GLIBC_2.12 { + #errlist-compat 135 + _sys_errlist; sys_errlist; _sys_nerr; sys_nerr; + } + GLIBC_2.16 { + #errlist-compat 136 + _sys_errlist; sys_errlist; _sys_nerr; sys_nerr; + + __getshmlba; + } +} + +libpthread { + GLIBC_2.3.3 { + # Changed PTHREAD_STACK_MIN. + pthread_attr_setstack; pthread_attr_setstacksize; + } +} + +librt { + GLIBC_2.3 { + # AIO functions. + aio_cancel; aio_cancel64; + } +} diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/a.out.h b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/a.out.h new file mode 100644 index 0000000000..593c4cccf4 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/a.out.h @@ -0,0 +1,174 @@ +#ifndef __A_OUT_GNU_H__ +#define __A_OUT_GNU_H__ + +#include <bits/a.out.h> + +#define __GNU_EXEC_MACROS__ + +struct exec +{ + unsigned char a_dynamic:1; /* A __DYNAMIC is in this image. */ + unsigned char a_toolversion:7; + unsigned char a_machtype; + unsigned short a_info; + unsigned int a_text; /* Length of text, in bytes. */ + unsigned int a_data; /* Length of data, in bytes. */ + unsigned int a_bss; /* Length of bss, in bytes. */ + unsigned int a_syms; /* Length of symbol table, in bytes. */ + unsigned int a_entry; /* Where program begins. */ + unsigned int a_trsize; + unsigned int a_drsize; +}; + +enum machine_type +{ + M_OLDSUN2 = 0, + M_68010 = 1, + M_68020 = 2, + M_SPARC = 3, + M_386 = 100, + M_MIPS1 = 151, + M_MIPS2 = 152 +}; + +#define N_MAGIC(exec) ((exec).a_info & 0xffff) +#define N_MACHTYPE(exec) ((enum machine_type)(((exec).a_info >> 16) & 0xff)) +#define N_FLAGS(exec) (((exec).a_info >> 24) & 0xff) +#define N_SET_INFO(exec, magic, type, flags) \ + ((exec).a_info = ((magic) & 0xffff) \ + | (((int)(type) & 0xff) << 16) \ + | (((flags) & 0xff) << 24)) +#define N_SET_MAGIC(exec, magic) \ + ((exec).a_info = ((exec).a_info & 0xffff0000) | ((magic) & 0xffff)) +#define N_SET_MACHTYPE(exec, machtype) \ + ((exec).a_info = \ + ((exec).a_info&0xff00ffff) | ((((int)(machtype))&0xff) << 16)) +#define N_SET_FLAGS(exec, flags) \ + ((exec).a_info = \ + ((exec).a_info&0x00ffffff) | (((flags) & 0xff) << 24)) + +/* Code indicating object file or impure executable. */ +#define OMAGIC 0407 +/* Code indicating pure executable. */ +#define NMAGIC 0410 +/* Code indicating demand-paged executable. */ +#define ZMAGIC 0413 +/* This indicates a demand-paged executable with the header in the text. + The first page is unmapped to help trap NULL pointer references. */ +#define QMAGIC 0314 +/* Code indicating core file. */ +#define CMAGIC 0421 + +#define N_TRSIZE(a) ((a).a_trsize) +#define N_DRSIZE(a) ((a).a_drsize) +#define N_SYMSIZE(a) ((a).a_syms) +#define N_BADMAG(x) \ + (N_MAGIC(x) != OMAGIC && N_MAGIC(x) != NMAGIC \ + && N_MAGIC(x) != ZMAGIC && N_MAGIC(x) != QMAGIC) +#define _N_HDROFF(x) (1024 - sizeof (struct exec)) +#define N_TXTOFF(x) \ + (N_MAGIC(x) == ZMAGIC ? 0 : sizeof (struct exec)) +#define N_DATOFF(x) (N_TXTOFF(x) + (x).a_text) +#define N_TRELOFF(x) (N_DATOFF(x) + (x).a_data) +#define N_DRELOFF(x) (N_TRELOFF(x) + N_TRSIZE(x)) +#define N_SYMOFF(x) \ + (N_TXTOFF(x) + (x).a_text + (x).a_data + (x).a_trsize + (x).a_drsize) +#define N_STROFF(x) (N_SYMOFF(x) + N_SYMSIZE(x)) + +#define SPARC_PGSIZE 0x2000 + +/* Address of text segment in memory after it is loaded. */ +#define N_TXTADDR(x) \ + (unsigned long)(((N_MAGIC(x) == ZMAGIC) && ((x).a_entry < SPARC_PGSIZE)) \ + ? 0 : SPARC_PGSIZE) + +/* Address of data segment in memory after it is loaded. */ +#define SEGMENT_SIZE SPARC_PGSIZE + +#define _N_SEGMENT_ROUND(x) (((x) + SEGMENT_SIZE - 1) & ~(SEGMENT_SIZE - 1)) +#define _N_TXTENDADDR(x) (N_TXTADDR(x)+(x).a_text) + +#define N_DATADDR(x) \ + (N_MAGIC(x)==OMAGIC \ + ? (N_TXTADDR(x) + (x).a_text) \ + : (unsigned long)(_N_SEGMENT_ROUND (_N_TXTENDADDR(x)))) +#define N_BSSADDR(x) (N_DATADDR(x) + (x).a_data) + +#if !defined (N_NLIST_DECLARED) +struct nlist +{ + union + { + char *n_name; + struct nlist *n_next; + long n_strx; + } n_un; + unsigned char n_type; + char n_other; + short n_desc; + unsigned long n_value; +}; +#endif /* no N_NLIST_DECLARED. */ + +#define N_UNDF 0 +#define N_ABS 2 +#define N_TEXT 4 +#define N_DATA 6 +#define N_BSS 8 +#define N_FN 15 +#define N_EXT 1 +#define N_TYPE 036 +#define N_STAB 0340 +#define N_INDR 0xa +#define N_SETA 0x14 /* Absolute set element symbol. */ +#define N_SETT 0x16 /* Text set element symbol. */ +#define N_SETD 0x18 /* Data set element symbol. */ +#define N_SETB 0x1A /* Bss set element symbol. */ +#define N_SETV 0x1C /* Pointer to set vector in data area. */ + +#if !defined (N_RELOCATION_INFO_DECLARED) +enum reloc_type +{ + RELOC_8, + RELOC_16, + RELOC_32, + RELOC_DISP8, + RELOC_DISP16, + RELOC_DISP32, + RELOC_WDISP30, + RELOC_WDISP22, + RELOC_HI22, + RELOC_22, + RELOC_13, + RELOC_LO10, + RELOC_SFA_BASE, + RELOC_SFA_OFF13, + RELOC_BASE10, + RELOC_BASE13, + RELOC_BASE22, + RELOC_PC10, + RELOC_PC22, + RELOC_JMP_TBL, + RELOC_SEGOFF16, + RELOC_GLOB_DAT, + RELOC_JMP_SLOT, + RELOC_RELATIVE +}; + +/* This structure describes a single relocation to be performed. + The text-relocation section of the file is a vector of these structures, + all of which apply to the text section. + Likewise, the data-relocation section applies to the data section. */ + +struct relocation_info +{ + unsigned int r_address; + unsigned int r_index:24; + unsigned int r_extern:1; + int r_pad:2; + enum reloc_type r_type:5; + int r_addend; +}; +#endif /* no N_RELOCATION_INFO_DECLARED. */ + +#endif /* __A_OUT_GNU_H__ */ diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/aio_cancel.c b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/aio_cancel.c new file mode 100644 index 0000000000..0d6da82919 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/aio_cancel.c @@ -0,0 +1,33 @@ +#include <shlib-compat.h> + +#define aio_cancel64 XXX +#include <aio.h> +#undef aio_cancel64 +#include <errno.h> + +extern __typeof (aio_cancel) __new_aio_cancel; +extern __typeof (aio_cancel) __old_aio_cancel; + +#define aio_cancel __new_aio_cancel + +#include <sysdeps/pthread/aio_cancel.c> + +#undef aio_cancel +strong_alias (__new_aio_cancel, __new_aio_cancel64); +versioned_symbol (librt, __new_aio_cancel, aio_cancel, GLIBC_2_3); +versioned_symbol (librt, __new_aio_cancel64, aio_cancel64, GLIBC_2_3); + +#if SHLIB_COMPAT (librt, GLIBC_2_1, GLIBC_2_3) + +#undef ECANCELED +#define aio_cancel __old_aio_cancel +#define ECANCELED 125 + +#include <sysdeps/pthread/aio_cancel.c> + +#undef aio_cancel +strong_alias (__old_aio_cancel, __old_aio_cancel64); +compat_symbol (librt, __old_aio_cancel, aio_cancel, GLIBC_2_1); +compat_symbol (librt, __old_aio_cancel64, aio_cancel64, GLIBC_2_1); + +#endif diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/arch-fork.h b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/arch-fork.h new file mode 100644 index 0000000000..f4c67fb132 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/arch-fork.h @@ -0,0 +1,27 @@ +/* ARCH_FORK definition for Linux fork implementation. SPARC version. + Copyright (C) 2003-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Jakub Jelinek <jakub@redhat.com>, 2003. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#include <sched.h> +#include <signal.h> +#include <sysdep.h> +#include <tls.h> + +#define ARCH_FORK() \ + INLINE_CLONE_SYSCALL (CLONE_CHILD_SETTID | CLONE_CHILD_CLEARTID | SIGCHLD, \ + 0, NULL, NULL, &THREAD_SELF->tid) diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/a.out.h b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/a.out.h new file mode 100644 index 0000000000..228a8d41af --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/a.out.h @@ -0,0 +1,13 @@ +#ifndef __A_OUT_GNU_H__ +# error "Never use <bits/a.out.h> directly; include <a.out.h> instead." +#endif + +#include <bits/wordsize.h> + +#if __WORDSIZE == 64 + +/* Signal to users of this header that this architecture really doesn't + support a.out binary format. */ +#define __NO_A_OUT_SUPPORT 1 + +#endif diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/environments.h b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/environments.h new file mode 100644 index 0000000000..475d5648d0 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/environments.h @@ -0,0 +1,96 @@ +/* Copyright (C) 1999-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#ifndef _UNISTD_H +# error "Never include this file directly. Use <unistd.h> instead" +#endif + +#include <bits/wordsize.h> + +/* This header should define the following symbols under the described + situations. A value `1' means that the model is always supported, + `-1' means it is never supported. Undefined means it cannot be + statically decided. + + _POSIX_V7_ILP32_OFF32 32bit int, long, pointers, and off_t type + _POSIX_V7_ILP32_OFFBIG 32bit int, long, and pointers and larger off_t type + + _POSIX_V7_LP64_OFF32 64bit long and pointers and 32bit off_t type + _POSIX_V7_LPBIG_OFFBIG 64bit long and pointers and large off_t type + + The macros _POSIX_V6_ILP32_OFF32, _POSIX_V6_ILP32_OFFBIG, + _POSIX_V6_LP64_OFF32, _POSIX_V6_LPBIG_OFFBIG, _XBS5_ILP32_OFF32, + _XBS5_ILP32_OFFBIG, _XBS5_LP64_OFF32, and _XBS5_LPBIG_OFFBIG were + used in previous versions of the Unix standard and are available + only for compatibility. +*/ + +#if __WORDSIZE == 64 + +/* Environments with 32-bit wide pointers are optionally provided. + Therefore following macros aren't defined: + # undef _POSIX_V7_ILP32_OFF32 + # undef _POSIX_V7_ILP32_OFFBIG + # undef _POSIX_V6_ILP32_OFF32 + # undef _POSIX_V6_ILP32_OFFBIG + # undef _XBS5_ILP32_OFF32 + # undef _XBS5_ILP32_OFFBIG + and users need to check at runtime. */ + +/* We also have no use (for now) for an environment with bigger pointers + and offsets. */ +# define _POSIX_V7_LPBIG_OFFBIG -1 +# define _POSIX_V6_LPBIG_OFFBIG -1 +# define _XBS5_LPBIG_OFFBIG -1 + +/* By default we have 64-bit wide `long int', pointers and `off_t'. */ +# define _POSIX_V7_LP64_OFF64 1 +# define _POSIX_V6_LP64_OFF64 1 +# define _XBS5_LP64_OFF64 1 + +#else /* __WORDSIZE == 32 */ + +/* By default we have 32-bit wide `int', `long int', pointers and `off_t' + and all platforms support LFS. */ +# define _POSIX_V7_ILP32_OFF32 1 +# define _POSIX_V7_ILP32_OFFBIG 1 +# define _POSIX_V6_ILP32_OFF32 1 +# define _POSIX_V6_ILP32_OFFBIG 1 +# define _XBS5_ILP32_OFF32 1 +# define _XBS5_ILP32_OFFBIG 1 + +/* We optionally provide an environment with the above size but an 64-bit + side `off_t'. Therefore we don't define _POSIX_V7_ILP32_OFFBIG. */ + +/* Environments with 64-bit wide pointers can be provided, + so these macros aren't defined: + # undef _POSIX_V7_LP64_OFF64 + # undef _POSIX_V7_LPBIG_OFFBIG + # undef _POSIX_V6_LP64_OFF64 + # undef _POSIX_V6_LPBIG_OFFBIG + # undef _XBS5_LP64_OFF64 + # undef _XBS5_LPBIG_OFFBIG + and sysconf tests for it at runtime. */ + +#endif /* __WORDSIZE == 32 */ + +#define __ILP32_OFF32_CFLAGS "-m32" +#define __ILP32_OFFBIG_CFLAGS "-m32 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64" +#define __ILP32_OFF32_LDFLAGS "-m32" +#define __ILP32_OFFBIG_LDFLAGS "-m32" +#define __LP64_OFF64_CFLAGS "-m64" +#define __LP64_OFF64_LDFLAGS "-m64" diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/epoll.h b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/epoll.h new file mode 100644 index 0000000000..69388004f6 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/epoll.h @@ -0,0 +1,27 @@ +/* Copyright (C) 2002-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#ifndef _SYS_EPOLL_H +# error "Never use <bits/epoll.h> directly; include <sys/epoll.h> instead." +#endif + +/* Flags to be passed to epoll_create1. */ +enum + { + EPOLL_CLOEXEC = 0x400000 +#define EPOLL_CLOEXEC EPOLL_CLOEXEC + }; diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/errno.h b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/errno.h new file mode 100644 index 0000000000..4a8d8a0879 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/errno.h @@ -0,0 +1,65 @@ +/* Error constants. Linux/Sparc specific version. + Copyright (C) 1996-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#ifdef _ERRNO_H + +# undef EDOM +# undef EILSEQ +# undef ERANGE +# include <linux/errno.h> + +/* Linux has no ENOTSUP error code. */ +# define ENOTSUP EOPNOTSUPP + +# ifndef ECANCELED +# define ECANCELED 127 +# endif + +/* Support for error codes to support robust mutexes was added later, too. */ +# ifndef EOWNERDEAD +# define EOWNERDEAD 132 +# define ENOTRECOVERABLE 133 +# endif + +# ifndef ERFKILL +# define ERFKILL 134 +# endif + +# ifndef EHWPOISON +# define EHWPOISON 135 +# endif + +# ifndef __ASSEMBLER__ +/* Function to get address of global `errno' variable. */ +extern int *__errno_location (void) __THROW __attribute__ ((__const__)); + +# if !defined _LIBC || defined _LIBC_REENTRANT +/* When using threads, errno is a per-thread value. */ +# define errno (*__errno_location ()) +# endif +# endif /* !__ASSEMBLER__ */ +#endif /* _ERRNO_H */ + +#if !defined _ERRNO_H && defined __need_Emath +/* This is ugly but the kernel header is not clean enough. We must + define only the values EDOM, EILSEQ and ERANGE in case __need_Emath is + defined. */ +# define EDOM 33 /* Math argument out of domain of function. */ +# define EILSEQ 122 /* Illegal byte sequence. */ +# define ERANGE 34 /* Math result not representable. */ +#endif /* !_ERRNO_H && __need_Emath */ diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/eventfd.h b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/eventfd.h new file mode 100644 index 0000000000..963761c888 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/eventfd.h @@ -0,0 +1,31 @@ +/* Copyright (C) 2007-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#ifndef _SYS_EVENTFD_H +# error "Never use <bits/eventfd.h> directly; include <sys/eventfd.h> instead." +#endif + +/* Flags for eventfd. */ +enum + { + EFD_SEMAPHORE = 0x000001, +#define EFD_SEMAPHORE EFD_SEMAPHORE + EFD_CLOEXEC = 0x400000, +#define EFD_CLOEXEC EFD_CLOEXEC + EFD_NONBLOCK = 0x004000 +#define EFD_NONBLOCK EFD_NONBLOCK + }; diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/fcntl.h b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/fcntl.h new file mode 100644 index 0000000000..bde61c59d8 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/fcntl.h @@ -0,0 +1,101 @@ +/* O_*, F_*, FD_* bit values for Linux/SPARC. + Copyright (C) 1995-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#ifndef _FCNTL_H +# error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead." +#endif + +#include <bits/wordsize.h> + +#define O_APPEND 0x0008 +#define O_ASYNC 0x0040 +#define O_CREAT 0x0200 /* not fcntl */ +#define O_TRUNC 0x0400 /* not fcntl */ +#define O_EXCL 0x0800 /* not fcntl */ +#define O_SYNC 0x802000 +#define O_NONBLOCK 0x4000 +#define O_NDELAY (0x0004 | O_NONBLOCK) +#define O_NOCTTY 0x8000 /* not fcntl */ + +#define __O_DIRECTORY 0x10000 /* must be a directory */ +#define __O_NOFOLLOW 0x20000 /* don't follow links */ +#define __O_CLOEXEC 0x400000 /* Set close_on_exit. */ + +#define __O_DIRECT 0x100000 /* direct disk access hint */ +#define __O_NOATIME 0x200000 /* Do not set atime. */ +#define __O_PATH 0x1000000 /* Resolve pathname but do not open file. */ +#define __O_TMPFILE 0x2010000 /* Atomically create nameless file. */ + +#if __WORDSIZE == 64 +# define __O_LARGEFILE 0 +#else +# define __O_LARGEFILE 0x40000 +#endif + +#define __O_DSYNC 0x2000 /* Synchronize data. */ + + +#define __F_GETOWN 5 /* Get owner (process receiving SIGIO). */ +#define __F_SETOWN 6 /* Set owner (process receiving SIGIO). */ + +#ifndef __USE_FILE_OFFSET64 +# define F_GETLK 7 /* Get record locking info. */ +# define F_SETLK 8 /* Set record locking info (non-blocking). */ +# define F_SETLKW 9 /* Set record locking info (blocking). */ +#endif + +#if __WORDSIZE == 64 +# define F_GETLK64 7 /* Get record locking info. */ +# define F_SETLK64 8 /* Set record locking info (non-blocking). */ +# define F_SETLKW64 9 /* Set record locking info (blocking). */ +#endif + +/* For posix fcntl() and `l_type' field of a `struct flock' for lockf(). */ +#define F_RDLCK 1 /* Read lock. */ +#define F_WRLCK 2 /* Write lock. */ +#define F_UNLCK 3 /* Remove lock. */ + +struct flock + { + short int l_type; /* Type of lock: F_RDLCK, F_WRLCK, or F_UNLCK. */ + short int l_whence; /* Where `l_start' is relative to (like `lseek'). */ +#ifndef __USE_FILE_OFFSET64 + __off_t l_start; /* Offset where the lock begins. */ + __off_t l_len; /* Size of the locked area; zero means until EOF. */ +#else + __off64_t l_start; /* Offset where the lock begins. */ + __off64_t l_len; /* Size of the locked area; zero means until EOF. */ +#endif + __pid_t l_pid; /* Process holding the lock. */ + short int __glibc_reserved; + }; + +#ifdef __USE_LARGEFILE64 +struct flock64 + { + short int l_type; /* Type of lock: F_RDLCK, F_WRLCK, or F_UNLCK. */ + short int l_whence; /* Where `l_start' is relative to (like `lseek'). */ + __off64_t l_start; /* Offset where the lock begins. */ + __off64_t l_len; /* Size of the locked area; zero means until EOF. */ + __pid_t l_pid; /* Process holding the lock. */ + short int __glibc_reserved; + }; +#endif + +/* Include generic Linux declarations. */ +#include <bits/fcntl-linux.h> diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/inotify.h b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/inotify.h new file mode 100644 index 0000000000..1130da9646 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/inotify.h @@ -0,0 +1,29 @@ +/* Copyright (C) 2005-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#ifndef _SYS_INOTIFY_H +# error "Never use <bits/inotify.h> directly; include <sys/inotify.h> instead." +#endif + +/* Flags for the parameter of inotify_init1. */ +enum + { + IN_CLOEXEC = 0x400000, +#define IN_CLOEXEC IN_CLOEXEC + IN_NONBLOCK = 0x004000 +#define IN_NONBLOCK IN_NONBLOCK + }; diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/ioctls.h b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/ioctls.h new file mode 100644 index 0000000000..07796fd0ac --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/ioctls.h @@ -0,0 +1,36 @@ +/* Copyright (C) 1996-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#ifndef _SYS_IOCTL_H +# error "Never use <bits/ioctls.h> directly; include <sys/ioctl.h> instead." +#endif + +/* Use the definitions from the kernel header files. */ +#include <asm/ioctls.h> + +/* Oh well, this is necessary since the kernel data structure is + different from the user-level version. */ +#undef TCGETS +#undef TCSETS +#undef TCSETSW +#undef TCSETSF +#define TCGETS _IOR ('T', 8, char[36]) +#define TCSETS _IOW ('T', 9, char[36]) +#define TCSETSW _IOW ('T', 10, char[36]) +#define TCSETSF _IOW ('T', 11, char[36]) + +#include <linux/sockios.h> diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/ipc.h b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/ipc.h new file mode 100644 index 0000000000..9e4d1517f1 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/ipc.h @@ -0,0 +1,61 @@ +/* Copyright (C) 1995-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#ifndef _SYS_IPC_H +# error "Never use <bits/ipc.h> directly; include <sys/ipc.h> instead." +#endif + +#include <bits/types.h> +#include <bits/wordsize.h> + +/* Mode bits for `msgget', `semget', and `shmget'. */ +#define IPC_CREAT 01000 /* Create key if key does not exist. */ +#define IPC_EXCL 02000 /* Fail if key exists. */ +#define IPC_NOWAIT 04000 /* Return error on wait. */ + +/* Control commands for `msgctl', `semctl', and `shmctl'. */ +#define IPC_RMID 0 /* Remove identifier. */ +#define IPC_SET 1 /* Set `ipc_perm' options. */ +#define IPC_STAT 2 /* Get `ipc_perm' options. */ +#ifdef __USE_GNU +# define IPC_INFO 3 /* See ipcs. */ +#endif + +/* Special key values. */ +#define IPC_PRIVATE ((__key_t) 0) /* Private key. */ + + +/* Data structure used to pass permission information to IPC operations. */ +struct ipc_perm + { + __key_t __key; /* Key. */ + __uid_t uid; /* Owner's user ID. */ + __gid_t gid; /* Owner's group ID. */ + __uid_t cuid; /* Creator's user ID. */ + __gid_t cgid; /* Creator's group ID. */ +#if __WORDSIZE == 32 + unsigned short int __pad1; + unsigned short int mode; /* Read/write permission. */ + unsigned short int __pad2; +#else + __mode_t mode; /* Read/write permission. */ + unsigned short int __pad1; +#endif + unsigned short int __seq; /* Sequence number. */ + __extension__ unsigned long long int __glibc_reserved1; + __extension__ unsigned long long int __glibc_reserved2; + }; diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/local_lim.h b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/local_lim.h new file mode 100644 index 0000000000..090fc6dca1 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/local_lim.h @@ -0,0 +1,99 @@ +/* Minimum guaranteed maximum values for system limits. Linux/SPARC version. + Copyright (C) 1993-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public License as + published by the Free Software Foundation; either version 2 of the + License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with the GNU C Library; see the file COPYING.LIB. If + not, see <http://www.gnu.org/licenses/>. */ + +/* The kernel header pollutes the namespace with the NR_OPEN symbol + and defines LINK_MAX although filesystems have different maxima. A + similar thing is true for OPEN_MAX: the limit can be changed at + runtime and therefore the macro must not be defined. Remove this + after including the header if necessary. */ +#ifndef NR_OPEN +# define __undef_NR_OPEN +#endif +#ifndef LINK_MAX +# define __undef_LINK_MAX +#endif +#ifndef OPEN_MAX +# define __undef_OPEN_MAX +#endif +#ifndef ARG_MAX +# define __undef_ARG_MAX +#endif + +/* The kernel sources contain a file with all the needed information. */ +#include <linux/limits.h> + +/* Have to remove NR_OPEN? */ +#ifdef __undef_NR_OPEN +# undef NR_OPEN +# undef __undef_NR_OPEN +#endif +/* Have to remove LINK_MAX? */ +#ifdef __undef_LINK_MAX +# undef LINK_MAX +# undef __undef_LINK_MAX +#endif +/* Have to remove OPEN_MAX? */ +#ifdef __undef_OPEN_MAX +# undef OPEN_MAX +# undef __undef_OPEN_MAX +#endif +/* Have to remove ARG_MAX? */ +#ifdef __undef_ARG_MAX +# undef ARG_MAX +# undef __undef_ARG_MAX +#endif + +/* The number of data keys per process. */ +#define _POSIX_THREAD_KEYS_MAX 128 +/* This is the value this implementation supports. */ +#define PTHREAD_KEYS_MAX 1024 + +/* Controlling the iterations of destructors for thread-specific data. */ +#define _POSIX_THREAD_DESTRUCTOR_ITERATIONS 4 +/* Number of iterations this implementation does. */ +#define PTHREAD_DESTRUCTOR_ITERATIONS _POSIX_THREAD_DESTRUCTOR_ITERATIONS + +/* The number of threads per process. */ +#define _POSIX_THREAD_THREADS_MAX 64 +/* We have no predefined limit on the number of threads. */ +#undef PTHREAD_THREADS_MAX + +/* Maximum amount by which a process can descrease its asynchronous I/O + priority level. */ +#define AIO_PRIO_DELTA_MAX 20 + +/* Minimum size for a thread. We are free to choose a reasonable value. */ +#define PTHREAD_STACK_MIN 24576 + +/* Maximum number of timer expiration overruns. */ +#define DELAYTIMER_MAX 2147483647 + +/* Maximum tty name length. */ +#define TTY_NAME_MAX 32 + +/* Maximum login name length. This is arbitrary. */ +#define LOGIN_NAME_MAX 256 + +/* Maximum host name length. */ +#define HOST_NAME_MAX 64 + +/* Maximum message queue priority level. */ +#define MQ_PRIO_MAX 32768 + +/* Maximum value the semaphore can have. */ +#define SEM_VALUE_MAX (2147483647) diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/long-double.h b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/long-double.h new file mode 100644 index 0000000000..094e05124b --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/long-double.h @@ -0,0 +1,26 @@ +/* Properties of long double type. SPARC version. + Copyright (C) 2016-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#include <bits/wordsize.h> + +#if !defined __NO_LONG_DOUBLE_MATH && __WORDSIZE == 32 +# define __LONG_DOUBLE_MATH_OPTIONAL 1 +# ifndef __LONG_DOUBLE_128__ +# define __NO_LONG_DOUBLE_MATH 1 +# endif +#endif diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/mman.h b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/mman.h new file mode 100644 index 0000000000..d20361f5ec --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/mman.h @@ -0,0 +1,53 @@ +/* Definitions for POSIX memory map interface. Linux/SPARC version. + Copyright (C) 1997-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#ifndef _SYS_MMAN_H +# error "Never use <bits/mman.h> directly; include <sys/mman.h> instead." +#endif + +/* The following definitions basically come from the kernel headers. + But the kernel header is not namespace clean. */ + + +/* These are Linux-specific. */ +#ifdef __USE_MISC +# define MAP_GROWSDOWN 0x0200 /* Stack-like segment. */ +# define MAP_DENYWRITE 0x0800 /* ETXTBSY */ +# define MAP_EXECUTABLE 0x1000 /* Mark it as an executable. */ +# define MAP_LOCKED 0x0100 /* Lock the mapping. */ +# define MAP_NORESERVE 0x0040 /* Don't check for reservations. */ +# define _MAP_NEW 0x80000000 /* Binary compatibility with SunOS. */ +# define MAP_POPULATE 0x8000 /* Populate (prefault) pagetables. */ +# define MAP_NONBLOCK 0x10000 /* Do not block on IO. */ +# define MAP_STACK 0x20000 /* Allocation is for a stack. */ +# define MAP_HUGETLB 0x40000 /* Create huge page mapping. */ +#endif + +/* Flags for `mlockall'. */ +#define MCL_CURRENT 0x2000 /* Lock all currently mapped pages. */ +#define MCL_FUTURE 0x4000 /* Lock all additions to address + space. */ +#define MCL_ONFAULT 0x8000 /* Lock all pages that are + faulted in. */ +/* Include generic Linux declarations. */ +#include <bits/mman-linux.h> + +/* Other flags. */ +#ifdef __USE_MISC +# define MAP_RENAME MAP_ANONYMOUS +#endif diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/msq.h b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/msq.h new file mode 100644 index 0000000000..79572212cb --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/msq.h @@ -0,0 +1,84 @@ +/* Copyright (C) 1995-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#ifndef _SYS_MSG_H +# error "Never use <bits/msq.h> directly; include <sys/msg.h> instead." +#endif + +#include <bits/types.h> +#include <bits/wordsize.h> + +/* Define options for message queue functions. */ +#define MSG_NOERROR 010000 /* no error if message is too big */ +#ifdef __USE_GNU +# define MSG_EXCEPT 020000 /* recv any msg except of specified type */ +# define MSG_COPY 040000 /* copy (not remove) all queue messages */ +#endif + +/* Types used in the structure definition. */ +typedef unsigned long int msgqnum_t; +typedef unsigned long int msglen_t; + + +/* Structure of record for one message inside the kernel. + The type `struct msg' is opaque. */ +struct msqid_ds +{ + struct ipc_perm msg_perm; /* structure describing operation permission */ +#if __WORDSIZE == 32 + unsigned int __pad1; +#endif + __time_t msg_stime; /* time of last msgsnd command */ +#if __WORDSIZE == 32 + unsigned int __pad2; +#endif + __time_t msg_rtime; /* time of last msgrcv command */ +#if __WORDSIZE == 32 + unsigned int __pad3; +#endif + __time_t msg_ctime; /* time of last change */ + unsigned long int __msg_cbytes; /* current number of bytes on queue */ + msgqnum_t msg_qnum; /* number of messages currently on queue */ + msglen_t msg_qbytes; /* max number of bytes allowed on queue */ + __pid_t msg_lspid; /* pid of last msgsnd() */ + __pid_t msg_lrpid; /* pid of last msgrcv() */ + unsigned long int __glibc_reserved1; + unsigned long int __glibc_reserved2; +}; + +#ifdef __USE_MISC + +# define msg_cbytes __msg_cbytes + +/* ipcs ctl commands */ +# define MSG_STAT 11 +# define MSG_INFO 12 + +/* buffer for msgctl calls IPC_INFO, MSG_INFO */ +struct msginfo + { + int msgpool; + int msgmap; + int msgmax; + int msgmnb; + int msgmni; + int msgssz; + int msgtql; + unsigned short int msgseg; + }; + +#endif /* __USE_MISC */ diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/poll.h b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/poll.h new file mode 100644 index 0000000000..ace1594786 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/poll.h @@ -0,0 +1,49 @@ +/* Copyright (C) 1997-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#ifndef _SYS_POLL_H +# error "Never use <bits/poll.h> directly; include <sys/poll.h> instead." +#endif + +/* Event types that can be polled for. These bits may be set in `events' + to indicate the interesting event types; they will appear in `revents' + to indicate the status of the file descriptor. */ +#define POLLIN 0x001 /* There is data to read. */ +#define POLLPRI 0x002 /* There is urgent data to read. */ +#define POLLOUT 0x004 /* Writing now will not block. */ + +#if defined __USE_XOPEN || defined __USE_XOPEN2K8 +/* These values are defined in XPG4.2. */ +# define POLLRDNORM 0x040 /* Normal data may be read. */ +# define POLLRDBAND 0x080 /* Priority data may be read. */ +# define POLLWRNORM POLLOUT /* Writing now will not block. */ +# define POLLWRBAND 0x100 /* Priority data may be written. */ +#endif + +#ifdef __USE_GNU +/* These are extensions for Linux. */ +# define POLLMSG 0x200 +# define POLLREMOVE 0x400 +# define POLLRDHUP 0x800 +#endif + +/* Event types always implicitly polled for. These bits need not be set in + `events', but they will appear in `revents' to indicate the status of + the file descriptor. */ +#define POLLERR 0x008 /* Error condition. */ +#define POLLHUP 0x010 /* Hung up. */ +#define POLLNVAL 0x020 /* Invalid polling request. */ diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/resource.h b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/resource.h new file mode 100644 index 0000000000..6b65d3aac7 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/resource.h @@ -0,0 +1,280 @@ +/* Bit values & structures for resource limits. Linux/SPARC version. + Copyright (C) 1994-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#ifndef _SYS_RESOURCE_H +# error "Never use <bits/resource.h> directly; include <sys/resource.h> instead." +#endif + +#include <bits/types.h> + +/* Transmute defines to enumerations. The macro re-definitions are + necessary because some programs want to test for operating system + features with #ifdef RUSAGE_SELF. In ISO C the reflexive + definition is a no-op. */ + +/* Kinds of resource limit. */ +enum __rlimit_resource +{ + /* Per-process CPU limit, in seconds. */ + RLIMIT_CPU = 0, +#define RLIMIT_CPU RLIMIT_CPU + + /* Largest file that can be created, in bytes. */ + RLIMIT_FSIZE = 1, +#define RLIMIT_FSIZE RLIMIT_FSIZE + + /* Maximum size of data segment, in bytes. */ + RLIMIT_DATA = 2, +#define RLIMIT_DATA RLIMIT_DATA + + /* Maximum size of stack segment, in bytes. */ + RLIMIT_STACK = 3, +#define RLIMIT_STACK RLIMIT_STACK + + /* Largest core file that can be created, in bytes. */ + RLIMIT_CORE = 4, +#define RLIMIT_CORE RLIMIT_CORE + + /* Largest resident set size, in bytes. + This affects swapping; processes that are exceeding their + resident set size will be more likely to have physical memory + taken from them. */ + __RLIMIT_RSS = 5, +#define RLIMIT_RSS __RLIMIT_RSS + + /* Number of open files. */ + RLIMIT_NOFILE = 6, + __RLIMIT_OFILE = RLIMIT_NOFILE, /* BSD name for same. */ +#define RLIMIT_NOFILE RLIMIT_NOFILE +#define RLIMIT_OFILE __RLIMIT_OFILE + + /* Address space limit (?) */ + RLIMIT_AS = 9, +#define RLIMIT_AS RLIMIT_AS + + /* Number of processes. */ + __RLIMIT_NPROC = 7, +#define RLIMIT_NPROC __RLIMIT_NPROC + + /* Locked-in-memory address space. */ + __RLIMIT_MEMLOCK = 8, +#define RLIMIT_MEMLOCK __RLIMIT_MEMLOCK + + /* Maximum number of file locks. */ + __RLIMIT_LOCKS = 10, +#define RLIMIT_LOCKS __RLIMIT_LOCKS + + /* Maximum number of pending signals. */ + __RLIMIT_SIGPENDING = 11, +#define RLIMIT_SIGPENDING __RLIMIT_SIGPENDING + + /* Maximum bytes in POSIX message queues. */ + __RLIMIT_MSGQUEUE = 12, +#define RLIMIT_MSGQUEUE __RLIMIT_MSGQUEUE + + /* Maximum nice priority allowed to raise to. + Nice levels 19 .. -20 correspond to 0 .. 39 + values of this resource limit. */ + __RLIMIT_NICE = 13, +#define RLIMIT_NICE __RLIMIT_NICE + + /* Maximum realtime priority allowed for non-priviledged + processes. */ + __RLIMIT_RTPRIO = 14, +#define RLIMIT_RTPRIO __RLIMIT_RTPRIO + + /* Maximum CPU time in µs that a process scheduled under a real-time + scheduling policy may consume without making a blocking system + call before being forcibly descheduled. */ + __RLIMIT_RTTIME = 15, +#define RLIMIT_RTTIME __RLIMIT_RTTIME + + __RLIMIT_NLIMITS = 16, + __RLIM_NLIMITS = __RLIMIT_NLIMITS +#define RLIMIT_NLIMITS __RLIMIT_NLIMITS +#define RLIM_NLIMITS __RLIM_NLIMITS +}; + +/* Value to indicate that there is no limit. */ +#if __WORDSIZE == 64 + +#ifndef __USE_FILE_OFFSET64 +# define RLIM_INFINITY ((unsigned long int)(~0UL)) +#else +# define RLIM_INFINITY 0xffffffffffffffffuLL +#endif + +#ifdef __USE_LARGEFILE64 +# define RLIM64_INFINITY 0xffffffffffffffffuLL +#endif + +#else + +#ifndef __USE_FILE_OFFSET64 +# define RLIM_INFINITY ((long int)(~0UL >> 1)) +#else +# define RLIM_INFINITY 0xffffffffffffffffLL +#endif + +#ifdef __USE_LARGEFILE64 +# define RLIM64_INFINITY 0xffffffffffffffffLL +#endif + +#endif + +/* We can represent all limits. */ +#define RLIM_SAVED_MAX RLIM_INFINITY +#define RLIM_SAVED_CUR RLIM_INFINITY + + +/* Type for resource quantity measurement. */ +#ifndef __USE_FILE_OFFSET64 +typedef __rlim_t rlim_t; +#else +typedef __rlim64_t rlim_t; +#endif +#ifdef __USE_LARGEFILE64 +typedef __rlim64_t rlim64_t; +#endif + +struct rlimit + { + /* The current (soft) limit. */ + rlim_t rlim_cur; + /* The hard limit. */ + rlim_t rlim_max; + }; + +#ifdef __USE_LARGEFILE64 +struct rlimit64 + { + /* The current (soft) limit. */ + rlim64_t rlim_cur; + /* The hard limit. */ + rlim64_t rlim_max; + }; +#endif + +/* Whose usage statistics do you want? */ +enum __rusage_who +{ + /* The calling process. */ + RUSAGE_SELF = 0, +#define RUSAGE_SELF RUSAGE_SELF + + /* All of its terminated child processes. */ + RUSAGE_CHILDREN = -1 +#define RUSAGE_CHILDREN RUSAGE_CHILDREN + +#ifdef __USE_GNU + , + /* The calling thread. */ + RUSAGE_THREAD = 1 +# define RUSAGE_THREAD RUSAGE_THREAD + /* Name for the same functionality on Solaris. */ +# define RUSAGE_LWP RUSAGE_THREAD +#endif +}; + +#include <bits/types/struct_timeval.h> + +/* Structure which says how much of each resource has been used. */ +struct rusage + { + /* Total amount of user time used. */ + struct timeval ru_utime; + /* Total amount of system time used. */ + struct timeval ru_stime; + /* Maximum resident set size (in kilobytes). */ + long int ru_maxrss; + /* Amount of sharing of text segment memory + with other processes (kilobyte-seconds). */ + long int ru_ixrss; + /* Amount of data segment memory used (kilobyte-seconds). */ + long int ru_idrss; + /* Amount of stack memory used (kilobyte-seconds). */ + long int ru_isrss; + /* Number of soft page faults (i.e. those serviced by reclaiming + a page from the list of pages awaiting reallocation. */ + long int ru_minflt; + /* Number of hard page faults (i.e. those that required I/O). */ + long int ru_majflt; + /* Number of times a process was swapped out of physical memory. */ + long int ru_nswap; + /* Number of input operations via the file system. Note: This + and `ru_oublock' do not include operations with the cache. */ + long int ru_inblock; + /* Number of output operations via the file system. */ + long int ru_oublock; + /* Number of IPC messages sent. */ + long int ru_msgsnd; + /* Number of IPC messages received. */ + long int ru_msgrcv; + /* Number of signals delivered. */ + long int ru_nsignals; + /* Number of voluntary context switches, i.e. because the process + gave up the process before it had to (usually to wait for some + resource to be available). */ + long int ru_nvcsw; + /* Number of involuntary context switches, i.e. a higher priority process + became runnable or the current process used up its time slice. */ + long int ru_nivcsw; + }; + +/* Priority limits. */ +#define PRIO_MIN -20 /* Minimum priority a process can have. */ +#define PRIO_MAX 20 /* Maximum priority a process can have. */ + +/* The type of the WHICH argument to `getpriority' and `setpriority', + indicating what flavor of entity the WHO argument specifies. */ +enum __priority_which +{ + PRIO_PROCESS = 0, /* WHO is a process ID. */ +#define PRIO_PROCESS PRIO_PROCESS + PRIO_PGRP = 1, /* WHO is a process group ID. */ +#define PRIO_PGRP PRIO_PGRP + PRIO_USER = 2 /* WHO is a user ID. */ +#define PRIO_USER PRIO_USER +}; + +__BEGIN_DECLS + +#ifdef __USE_GNU +/* Modify and return resource limits of a process atomically. */ +# ifndef __USE_FILE_OFFSET64 +extern int prlimit (__pid_t __pid, enum __rlimit_resource __resource, + const struct rlimit *__new_limit, + struct rlimit *__old_limit) __THROW; +# else +# ifdef __REDIRECT_NTH +extern int __REDIRECT_NTH (prlimit, (__pid_t __pid, + enum __rlimit_resource __resource, + const struct rlimit *__new_limit, + struct rlimit *__old_limit), prlimit64); +# else +# define prlimit prlimit64 +# endif +# endif +# ifdef __USE_LARGEFILE64 +extern int prlimit64 (__pid_t __pid, enum __rlimit_resource __resource, + const struct rlimit64 *__new_limit, + struct rlimit64 *__old_limit) __THROW; +# endif +#endif + +__END_DECLS diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/sem.h b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/sem.h new file mode 100644 index 0000000000..c3cf059eb8 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/sem.h @@ -0,0 +1,91 @@ +/* Copyright (C) 1995-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#ifndef _SYS_SEM_H +# error "Never include <bits/sem.h> directly; use <sys/sem.h> instead." +#endif + +#include <sys/types.h> +#include <bits/wordsize.h> + +/* Flags for `semop'. */ +#define SEM_UNDO 0x1000 /* undo the operation on exit */ + +/* Commands for `semctl'. */ +#define GETPID 11 /* get sempid */ +#define GETVAL 12 /* get semval */ +#define GETALL 13 /* get all semval's */ +#define GETNCNT 14 /* get semncnt */ +#define GETZCNT 15 /* get semzcnt */ +#define SETVAL 16 /* set semval */ +#define SETALL 17 /* set all semval's */ + + +/* Data structure describing a set of semaphores. */ +struct semid_ds +{ + struct ipc_perm sem_perm; /* operation permission struct */ +#if __WORDSIZE == 32 + unsigned int __pad1; +#endif + __time_t sem_otime; /* last semop() time */ +#if __WORDSIZE == 32 + unsigned int __pad2; +#endif + __time_t sem_ctime; /* last time changed by semctl() */ + unsigned long int sem_nsems; /* number of semaphores in set */ + unsigned long int __glibc_reserved1; + unsigned long int __glibc_reserved2; +}; + +/* The user should define a union like the following to use it for arguments + for `semctl'. + + union semun + { + int val; <= value for SETVAL + struct semid_ds *buf; <= buffer for IPC_STAT & IPC_SET + unsigned short int *array; <= array for GETALL & SETALL + struct seminfo *__buf; <= buffer for IPC_INFO + }; + + Previous versions of this file used to define this union but this is + incorrect. One can test the macro _SEM_SEMUN_UNDEFINED to see whether + one must define the union or not. */ +#define _SEM_SEMUN_UNDEFINED 1 + +#ifdef __USE_MISC + +/* ipcs ctl cmds */ +# define SEM_STAT 18 +# define SEM_INFO 19 + +struct seminfo +{ + int semmap; + int semmni; + int semmns; + int semmnu; + int semmsl; + int semopm; + int semume; + int semusz; + int semvmx; + int semaem; +}; + +#endif /* __USE_MISC */ diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/setjmp.h b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/setjmp.h new file mode 100644 index 0000000000..5e92e829d5 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/setjmp.h @@ -0,0 +1,67 @@ +/* Copyright (C) 1997-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#ifndef _BITS_SETJMP_H +#define _BITS_SETJMP_H 1 + +#if !defined _SETJMP_H && !defined _PTHREAD_H +# error "Never include <bits/setjmp.h> directly; use <setjmp.h> instead." +#endif + +#include <bits/wordsize.h> + +#if __WORDSIZE == 64 + +#ifndef _ASM +typedef struct __sparc64_jmp_buf + { + struct __sparc64_jmp_buf *__uc_link; + unsigned long __uc_flags; + unsigned long __uc_sigmask; + struct __sparc64_jmp_buf_mcontext + { + unsigned long __mc_gregs[19]; + unsigned long __mc_fp; + unsigned long __mc_i7; + struct __sparc64_jmp_buf_fpu + { + union + { + unsigned int __sregs[32]; + unsigned long __dregs[32]; + long double __qregs[16]; + } __mcfpu_fpregs; + unsigned long __mcfpu_fprs; + unsigned long __mcfpu_gsr; + void *__mcfpu_fq; + unsigned char __mcfpu_qcnt; + unsigned char __mcfpu_qentsz; + unsigned char __mcfpu_enab; + } __mc_fpregs; + } __uc_mcontext; + } __jmp_buf[1]; +#endif + +#else + +#ifndef _ASM +typedef int __jmp_buf[3]; +#endif + +#endif + +#endif /* bits/setjmp.h */ diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/shm.h b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/shm.h new file mode 100644 index 0000000000..c7857cc4fa --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/shm.h @@ -0,0 +1,110 @@ +/* Copyright (C) 1995-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#ifndef _SYS_SHM_H +# error "Never include <bits/shm.h> directly; use <sys/shm.h> instead." +#endif + +#include <bits/types.h> +#include <bits/wordsize.h> + +/* Permission flag for shmget. */ +#define SHM_R 0400 /* or S_IRUGO from <linux/stat.h> */ +#define SHM_W 0200 /* or S_IWUGO from <linux/stat.h> */ + +/* Flags for `shmat'. */ +#define SHM_RDONLY 010000 /* attach read-only else read-write */ +#define SHM_RND 020000 /* round attach address to SHMLBA */ +#define SHM_REMAP 040000 /* take-over region on attach */ +#define SHM_EXEC 0100000 /* execution access */ + +/* Commands for `shmctl'. */ +#define SHM_LOCK 11 /* lock segment (root only) */ +#define SHM_UNLOCK 12 /* unlock segment (root only) */ + +__BEGIN_DECLS + +/* Segment low boundary address multiple. */ +#define SHMLBA (__getshmlba ()) +extern int __getshmlba (void) __attribute__ ((__const__)); + + +/* Type to count number of attaches. */ +typedef unsigned long int shmatt_t; + +/* Data structure describing a shared memory segment. */ +struct shmid_ds + { + struct ipc_perm shm_perm; /* operation permission struct */ +#if __WORDSIZE == 32 + unsigned int __pad1; +#endif + __time_t shm_atime; /* time of last shmat() */ +#if __WORDSIZE == 32 + unsigned int __pad2; +#endif + __time_t shm_dtime; /* time of last shmdt() */ +#if __WORDSIZE == 32 + unsigned int __pad3; +#endif + __time_t shm_ctime; /* time of last change by shmctl() */ + size_t shm_segsz; /* size of segment in bytes */ + __pid_t shm_cpid; /* pid of creator */ + __pid_t shm_lpid; /* pid of last shmop */ + shmatt_t shm_nattch; /* number of current attaches */ + unsigned long int __glibc_reserved1; + unsigned long int __glibc_reserved2; + }; + +#ifdef __USE_MISC + +/* ipcs ctl commands */ +# define SHM_STAT 13 +# define SHM_INFO 14 + +/* shm_mode upper byte flags */ +# define SHM_DEST 01000 /* segment will be destroyed on last detach */ +# define SHM_LOCKED 02000 /* segment will not be swapped */ +# define SHM_HUGETLB 04000 /* segment is mapped via hugetlb */ +# define SHM_NORESERVE 010000 /* don't check for reservations */ + +struct shminfo + { + unsigned long shmmax; + unsigned long shmmin; + unsigned long shmmni; + unsigned long shmseg; + unsigned long shmall; + unsigned long __glibc_reserved1; + unsigned long __glibc_reserved2; + unsigned long __glibc_reserved3; + unsigned long __glibc_reserved4; + }; + +struct shm_info + { + int used_ids; + unsigned long int shm_tot; /* total allocated shm */ + unsigned long int shm_rss; /* total resident shm */ + unsigned long int shm_swp; /* total swapped shm */ + unsigned long int swap_attempts; + unsigned long int swap_successes; + }; + +#endif /* __USE_MISC */ + +__END_DECLS diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/sigaction.h b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/sigaction.h new file mode 100644 index 0000000000..6ab47f416c --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/sigaction.h @@ -0,0 +1,82 @@ +/* The proper definitions for Linux/SPARC sigaction. + Copyright (C) 1996-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#ifndef _SIGNAL_H +# error "Never include <bits/sigaction.h> directly; use <signal.h> instead." +#endif + +#include <bits/wordsize.h> + +/* Structure describing the action to be taken when a signal arrives. */ +struct sigaction + { + /* Signal handler. */ +#ifdef __USE_POSIX199309 + union + { + /* Used if SA_SIGINFO is not set. */ + __sighandler_t sa_handler; + /* Used if SA_SIGINFO is set. */ + void (*sa_sigaction) (int, siginfo_t *, void *); + } + __sigaction_handler; +# define sa_handler __sigaction_handler.sa_handler +# define sa_sigaction __sigaction_handler.sa_sigaction +#else + __sighandler_t sa_handler; +#endif + + /* Additional set of signals to be blocked. */ + __sigset_t sa_mask; + + /* Special flags. */ +#if __WORDSIZE == 64 + int __glibc_reserved0; +#endif + int sa_flags; + + /* Not used by Linux/Sparc yet. */ + void (*sa_restorer) (void); + }; + + +/* Bits in `sa_flags'. */ +#define SA_NOCLDSTOP 0x00000008 /* Don't send SIGCHLD when children stop. */ +#define SA_NOCLDWAIT 0x00000100 /* Don't create zombie on child death. */ +#define SA_SIGINFO 0x00000200 /* Invoke signal-catching function with + three arguments instead of one. */ +#if defined __USE_UNIX98 || defined __USE_MISC +# define SA_ONSTACK 0x00000001 /* Use signal stack by using `sa_restorer'. */ +#endif +#if defined __USE_UNIX98 || defined __USE_XOPEN2K8 +# define SA_RESTART 0x00000002 /* Restart syscall on signal return. */ +# define SA_INTERRUPT 0x00000010 /* Historical no-op. */ +# define SA_NOMASK 0x00000020 /* Don't automatically block the signal when + its handler is being executed. */ +# define SA_ONESHOT 0x00000004 /* Reset to SIG_DFL on entry to handler. */ + +/* Some aliases for the SA_ constants. */ +# define SA_NODEFER SA_NOMASK +# define SA_RESETHAND SA_ONESHOT +# define SA_STACK SA_ONSTACK +#endif + +/* Values for the HOW argument to `sigprocmask'. */ +#define SIG_BLOCK 1 /* Block signals. */ +#define SIG_UNBLOCK 2 /* Unblock signals. */ +#define SIG_SETMASK 4 /* Set the set of blocked signals. */ diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/sigcontext.h b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/sigcontext.h new file mode 100644 index 0000000000..78e09a5809 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/sigcontext.h @@ -0,0 +1,82 @@ +/* Copyright (C) 2000-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#ifndef _BITS_SIGCONTEXT_H +#define _BITS_SIGCONTEXT_H 1 + +#if !defined _SIGNAL_H && !defined _SYS_UCONTEXT_H +# error "Never use <bits/sigcontext.h> directly; include <signal.h> instead." +#endif + +#include <bits/wordsize.h> + +#if __WORDSIZE == 32 + +/* It is quite hard to choose what to put here, because + Linux/sparc32 had at least 3 totally incompatible + signal stack layouts. + This one is for the "new" style signals, which are + now delivered unless SA_SIGINFO is requested. */ + +struct sigcontext + { + struct + { + unsigned int psr; + unsigned int pc; + unsigned int npc; + unsigned int y; + unsigned int u_regs[16]; /* globals and ins */ + } si_regs; + int si_mask; + }; + +#else /* sparc64 */ + +typedef struct + { + unsigned int si_float_regs [64]; + unsigned long si_fsr; + unsigned long si_gsr; + unsigned long si_fprs; + } __siginfo_fpu_t; + +struct sigcontext + { + char sigc_info[128]; + struct + { + unsigned long u_regs[16]; /* globals and ins */ + unsigned long tstate; + unsigned long tpc; + unsigned long tnpc; + unsigned int y; + unsigned int fprs; + } sigc_regs; + __siginfo_fpu_t * sigc_fpu_save; + struct + { + void * ss_sp; + int ss_flags; + unsigned long ss_size; + } sigc_stack; + unsigned long sigc_mask; +}; + +#endif /* sparc64 */ + +#endif /* bits/sigcontext.h */ diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/siginfo-arch.h b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/siginfo-arch.h new file mode 100644 index 0000000000..9f79715ebe --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/siginfo-arch.h @@ -0,0 +1,12 @@ +/* Architecture-specific adjustments to siginfo_t. SPARC version. */ +#ifndef _BITS_SIGINFO_ARCH_H +#define _BITS_SIGINFO_ARCH_H 1 + +#define __SI_BAND_TYPE int + +#define __SI_SIGFAULT_ADDL \ + int _si_trapno; + +#define si_trapno _sifields._sigfault._si_trapno + +#endif diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/siginfo-consts-arch.h b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/siginfo-consts-arch.h new file mode 100644 index 0000000000..721dc9cd43 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/siginfo-consts-arch.h @@ -0,0 +1,12 @@ +/* Architecture-specific additional siginfo constants. SPARC version. */ +#ifndef _BITS_SIGINFO_CONSTS_ARCH_H +#define _BITS_SIGINFO_CONSTS_ARCH_H 1 + +/* `si_code' values for SIGEMT signal. */ +enum +{ + EMT_TAGOVF = 1 /* Tag overflow. */ +#define EMT_TAGOVF EMT_TAGOVF +}; + +#endif diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/signalfd.h b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/signalfd.h new file mode 100644 index 0000000000..6a5bea24b7 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/signalfd.h @@ -0,0 +1,29 @@ +/* Copyright (C) 2007-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#ifndef _SYS_SIGNALFD_H +# error "Never use <bits/signalfd.h> directly; include <sys/signalfd.h> instead." +#endif + +/* Flags for signalfd. */ +enum + { + SFD_CLOEXEC = 0x400000, +#define SFD_CLOEXEC SFD_CLOEXEC + SFD_NONBLOCK = 0x004000 +#define SFD_NONBLOCK SFD_NONBLOCK + }; diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/signum.h b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/signum.h new file mode 100644 index 0000000000..a0c5be5fa5 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/signum.h @@ -0,0 +1,83 @@ +/* Signal number definitions. Linux/SPARC version. + Copyright (C) 1996-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#ifdef _SIGNAL_H + +/* Fake signal functions. */ +#define SIG_ERR ((__sighandler_t) -1) /* Error return. */ +#define SIG_DFL ((__sighandler_t) 0) /* Default action. */ +#define SIG_IGN ((__sighandler_t) 1) /* Ignore signal. */ + +#ifdef __USE_XOPEN +# define SIG_HOLD ((__sighandler_t) 2) /* Add signal to hold mask. */ +#endif + +/* + * Linux/SPARC has different signal numbers that Linux/i386: I'm trying + * to make it OSF/1 binary compatible, at least for normal binaries. + */ +#define SIGHUP 1 +#define SIGINT 2 +#define SIGQUIT 3 +#define SIGILL 4 +#define SIGTRAP 5 +#define SIGABRT 6 +#define SIGIOT 6 +#define SIGEMT 7 +#define SIGFPE 8 +#define SIGKILL 9 +#define SIGBUS 10 +#define SIGSEGV 11 +#define SIGSYS 12 +#define SIGPIPE 13 +#define SIGALRM 14 +#define SIGTERM 15 +#define SIGURG 16 + +/* SunOS values which deviate from the Linux/i386 ones */ +#define SIGSTOP 17 +#define SIGTSTP 18 +#define SIGCONT 19 +#define SIGCHLD 20 +#define SIGCLD SIGCHLD /* Same as SIGCHLD (System V). */ +#define SIGTTIN 21 +#define SIGTTOU 22 +#define SIGIO 23 +#define SIGPOLL SIGIO /* SysV name for SIGIO */ +#define SIGXCPU 24 +#define SIGXFSZ 25 +#define SIGVTALRM 26 +#define SIGPROF 27 +#define SIGWINCH 28 +#define SIGLOST 29 +#define SIGPWR SIGLOST +#define SIGUSR1 30 +#define SIGUSR2 31 + +#define _NSIG 65 /* Biggest signal number + 1 + (including real-time signals). */ + +#define SIGRTMIN (__libc_current_sigrtmin ()) +#define SIGRTMAX (__libc_current_sigrtmax ()) + +/* These are the hard limits of the kernel. These values should not be + used directly at user level. */ +#define __SIGRTMIN 32 +#define __SIGRTMAX (_NSIG - 1) + +#endif /* <signal.h> included. */ diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/sigstack.h b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/sigstack.h new file mode 100644 index 0000000000..74670cb037 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/sigstack.h @@ -0,0 +1,32 @@ +/* sigstack, sigaltstack definitions. + Copyright (C) 1998-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#ifndef _BITS_SIGSTACK_H +#define _BITS_SIGSTACK_H 1 + +#if !defined _SIGNAL_H && !defined _SYS_UCONTEXT_H +# error "Never include this file directly. Use <signal.h> instead" +#endif + +/* Minimum stack size for a signal handler. */ +#define MINSIGSTKSZ 4096 + +/* System default stack size. */ +#define SIGSTKSZ 16384 + +#endif /* bits/sigstack.h */ diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/socket_type.h b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/socket_type.h new file mode 100644 index 0000000000..53fcd0c018 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/socket_type.h @@ -0,0 +1,55 @@ +/* Define enum __socket_type for Linux/SPARC. + Copyright (C) 1991-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#ifndef _SYS_SOCKET_H +# error "Never include <bits/socket_type.h> directly; use <sys/socket.h> instead." +#endif + +/* Types of sockets. */ +enum __socket_type +{ + SOCK_STREAM = 1, /* Sequenced, reliable, connection-based + byte streams. */ +#define SOCK_STREAM SOCK_STREAM + SOCK_DGRAM = 2, /* Connectionless, unreliable datagrams + of fixed maximum length. */ +#define SOCK_DGRAM SOCK_DGRAM + SOCK_RAW = 3, /* Raw protocol interface. */ +#define SOCK_RAW SOCK_RAW + SOCK_RDM = 4, /* Reliably-delivered messages. */ +#define SOCK_RDM SOCK_RDM + SOCK_SEQPACKET = 5, /* Sequenced, reliable, connection-based, + datagrams of fixed maximum length. */ +#define SOCK_SEQPACKET SOCK_SEQPACKET + SOCK_DCCP = 6, /* Datagram Congestion Control Protocol. */ +#define SOCK_DCCP SOCK_DCCP + SOCK_PACKET = 10, /* Linux specific way of getting packets + at the dev level. For writing rarp and + other similar things on the user level. */ +#define SOCK_PACKET SOCK_PACKET + + /* Flags to be ORed into the type parameter of socket and socketpair and + used for the flags parameter of paccept. */ + + SOCK_CLOEXEC = 0x400000, /* Atomically set close-on-exec flag for the + new descriptor(s). */ +#define SOCK_CLOEXEC SOCK_CLOEXEC + SOCK_NONBLOCK = 0x004000 /* Atomically mark descriptor(s) as + non-blocking. */ +#define SOCK_NONBLOCK SOCK_NONBLOCK +}; diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/stat.h b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/stat.h new file mode 100644 index 0000000000..87b1c9d1ca --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/stat.h @@ -0,0 +1,173 @@ +/* Copyright (C) 1992-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#if !defined _SYS_STAT_H && !defined _FCNTL_H +# error "Never include <bits/stat.h> directly; use <sys/stat.h> instead." +#endif + +#ifndef _BITS_STAT_H +#define _BITS_STAT_H 1 + +/* Versions of the `struct stat' data structure. */ +#define _STAT_VER_LINUX_OLD 1 +#define _STAT_VER_KERNEL 1 +#define _STAT_VER_SVR4 2 +#define _STAT_VER_LINUX 3 +#define _STAT_VER _STAT_VER_LINUX /* The one defined below. */ + +/* Versions of the `xmknod' interface. */ +#define _MKNOD_VER_LINUX 1 +#define _MKNOD_VER_SVR4 2 +#define _MKNOD_VER _MKNOD_VER_LINUX /* The bits defined below. */ + + +struct stat + { + __dev_t st_dev; /* Device. */ +#if __WORDSIZE == 64 || !defined __USE_FILE_OFFSET64 + unsigned short int __pad1; + __ino_t st_ino; /* File serial number. */ +#else + __ino64_t st_ino; /* File serial number. */ +#endif + __mode_t st_mode; /* File mode. */ + __nlink_t st_nlink; /* Link count. */ + __uid_t st_uid; /* User ID of the file's owner. */ + __gid_t st_gid; /* Group ID of the file's group.*/ + __dev_t st_rdev; /* Device number, if device. */ + unsigned short int __pad2; +#ifndef __USE_FILE_OFFSET64 + __off_t st_size; /* Size of file, in bytes. */ +#else + __off64_t st_size; /* Size of file, in bytes. */ +#endif + __blksize_t st_blksize; /* Optimal block size for I/O. */ + +#ifndef __USE_FILE_OFFSET64 + __blkcnt_t st_blocks; /* Number 512-byte blocks allocated. */ +#else + __blkcnt64_t st_blocks; /* Number 512-byte blocks allocated. */ +#endif +#ifdef __USE_XOPEN2K8 + /* Nanosecond resolution timestamps are stored in a format + equivalent to 'struct timespec'. This is the type used + whenever possible but the Unix namespace rules do not allow the + identifier 'timespec' to appear in the <sys/stat.h> header. + Therefore we have to handle the use of this header in strictly + standard-compliant sources special. */ + struct timespec st_atim; /* Time of last access. */ + struct timespec st_mtim; /* Time of last modification. */ + struct timespec st_ctim; /* Time of last status change. */ +# define st_atime st_atim.tv_sec /* Backward compatibility. */ +# define st_mtime st_mtim.tv_sec +# define st_ctime st_ctim.tv_sec +#else + __time_t st_atime; /* Time of last access. */ + unsigned long int st_atimensec; /* Nscecs of last access. */ + __time_t st_mtime; /* Time of last modification. */ + unsigned long int st_mtimensec; /* Nsecs of last modification. */ + __time_t st_ctime; /* Time of last status change. */ + unsigned long int st_ctimensec; /* Nsecs of last status change. */ +#endif + unsigned long int __glibc_reserved4; + unsigned long int __glibc_reserved5; + }; + +#ifdef __USE_LARGEFILE64 +struct stat64 + { + __dev_t st_dev; /* Device. */ +# if __WORDSIZE == 64 + unsigned short int __pad1; +# endif + __ino64_t st_ino; /* File serial number. */ + __mode_t st_mode; /* File mode. */ + __nlink_t st_nlink; /* Link count. */ + __uid_t st_uid; /* User ID of the file's owner. */ + __gid_t st_gid; /* Group ID of the file's group.*/ + __dev_t st_rdev; /* Device number, if device. */ + unsigned short int __pad2; + __off64_t st_size; /* Size of file, in bytes. */ + __blksize_t st_blksize; /* Optimal block size for I/O. */ + + __blkcnt64_t st_blocks; /* Number 512-byte blocks allocated. */ +# ifdef __USE_XOPEN2K8 + /* Nanosecond resolution timestamps are stored in a format + equivalent to 'struct timespec'. This is the type used + whenever possible but the Unix namespace rules do not allow the + identifier 'timespec' to appear in the <sys/stat.h> header. + Therefore we have to handle the use of this header in strictly + standard-compliant sources special. */ + struct timespec st_atim; /* Time of last access. */ + struct timespec st_mtim; /* Time of last modification. */ + struct timespec st_ctim; /* Time of last status change. */ +# define st_atime st_atim.tv_sec /* Backward compatibility. */ +# define st_mtime st_mtim.tv_sec +# define st_ctime st_ctim.tv_sec +# else + __time_t st_atime; /* Time of last access. */ + unsigned long int st_atimensec; /* Nscecs of last access. */ + __time_t st_mtime; /* Time of last modification. */ + unsigned long int st_mtimensec; /* Nsecs of last modification. */ + __time_t st_ctime; /* Time of last status change. */ + unsigned long int st_ctimensec; /* Nsecs of last status change. */ +# endif + unsigned long int __glibc_reserved4; + unsigned long int __glibc_reserved5; + }; +#endif + +/* Tell code we have these members. */ +#define _STATBUF_ST_BLKSIZE +#define _STATBUF_ST_RDEV +/* Nanosecond resolution time values are supported. */ +#define _STATBUF_ST_NSEC + +/* Encoding of the file mode. */ + +#define __S_IFMT 0170000 /* These bits determine file type. */ + +/* File types. */ +#define __S_IFDIR 0040000 /* Directory. */ +#define __S_IFCHR 0020000 /* Character device. */ +#define __S_IFBLK 0060000 /* Block device. */ +#define __S_IFREG 0100000 /* Regular file. */ +#define __S_IFIFO 0010000 /* FIFO. */ +#define __S_IFLNK 0120000 /* Symbolic link. */ +#define __S_IFSOCK 0140000 /* Socket. */ + +/* POSIX.1b objects. Note that these macros always evaluate to zero. But + they do it by enforcing the correct use of the macros. */ +#define __S_TYPEISMQ(buf) ((buf)->st_mode - (buf)->st_mode) +#define __S_TYPEISSEM(buf) ((buf)->st_mode - (buf)->st_mode) +#define __S_TYPEISSHM(buf) ((buf)->st_mode - (buf)->st_mode) + +/* Protection bits. */ + +#define __S_ISUID 04000 /* Set user ID on execution. */ +#define __S_ISGID 02000 /* Set group ID on execution. */ +#define __S_ISVTX 01000 /* Save swapped text after use (sticky). */ +#define __S_IREAD 0400 /* Read by owner. */ +#define __S_IWRITE 0200 /* Write by owner. */ +#define __S_IEXEC 0100 /* Execute by owner. */ + +#ifdef __USE_ATFILE +# define UTIME_NOW ((1l << 30) - 1l) +# define UTIME_OMIT ((1l << 30) - 2l) +#endif + +#endif /* bits/stat.h */ diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/termios.h b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/termios.h new file mode 100644 index 0000000000..82678ea156 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/termios.h @@ -0,0 +1,225 @@ +/* termios type and macro definitions. Linux/SPARC version. + Copyright (C) 1993-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#ifndef _TERMIOS_H +# error "Never include <bits/termios.h> directly; use <termios.h> instead." +#endif + +typedef unsigned char cc_t; +typedef unsigned int speed_t; +typedef unsigned int tcflag_t; + +#define NCCS 17 +struct termios + { + tcflag_t c_iflag; /* input mode flags */ + tcflag_t c_oflag; /* output mode flags */ + tcflag_t c_cflag; /* control mode flags */ + tcflag_t c_lflag; /* local mode flags */ + cc_t c_line; /* line discipline */ + cc_t c_cc[NCCS]; /* control characters */ + }; + +/* c_cc characters */ +#define VINTR 0 +#define VQUIT 1 +#define VERASE 2 +#define VKILL 3 +#define VEOF 4 +#define VEOL 5 +#define VEOL2 6 +#define VSWTC 7 +#define VSTART 8 +#define VSTOP 9 +#define VSUSP 10 +#define VDSUSP 11 /* SunOS POSIX nicety I do believe... */ +#define VREPRINT 12 +#define VDISCARD 13 +#define VWERASE 14 +#define VLNEXT 15 + +/* User apps assume vmin/vtime is shared with eof/eol */ +#define VMIN VEOF +#define VTIME VEOL + +/* c_iflag bits */ +#define IGNBRK 0x00000001 +#define BRKINT 0x00000002 +#define IGNPAR 0x00000004 +#define PARMRK 0x00000008 +#define INPCK 0x00000010 +#define ISTRIP 0x00000020 +#define INLCR 0x00000040 +#define IGNCR 0x00000080 +#define ICRNL 0x00000100 +#define IUCLC 0x00000200 +#define IXON 0x00000400 +#define IXANY 0x00000800 +#define IXOFF 0x00001000 +#define IMAXBEL 0x00002000 +#define IUTF8 0x00004000 + +/* c_oflag bits */ +#define OPOST 0x00000001 +#define OLCUC 0x00000002 +#define ONLCR 0x00000004 +#define OCRNL 0x00000008 +#define ONOCR 0x00000010 +#define ONLRET 0x00000020 +#define OFILL 0x00000040 +#define OFDEL 0x00000080 +#if defined __USE_MISC || defined __USE_XOPEN +# define NLDLY 0x00000100 +# define NL0 0x00000000 +# define NL1 0x00000100 +# define CRDLY 0x00000600 +# define CR0 0x00000000 +# define CR1 0x00000200 +# define CR2 0x00000400 +# define CR3 0x00000600 +# define TABDLY 0x00001800 +# define TAB0 0x00000000 +# define TAB1 0x00000800 +# define TAB2 0x00001000 +# define TAB3 0x00001800 +# define BSDLY 0x00002000 +# define BS0 0x00000000 +# define BS1 0x00002000 +#define FFDLY 0x00008000 +#define FF0 0x00000000 +#define FF1 0x00008000 +#endif +#define VTDLY 0x00004000 +#define VT0 0x00000000 +#define VT1 0x00004000 + +# if defined __USE_GNU +#define PAGEOUT 0x00010000 /* SUNOS specific */ +#define WRAP 0x00020000 /* SUNOS specific */ +# endif + +#ifdef __USE_MISC +# define XTABS 0x00001800 +#endif + +/* c_cflag bit meaning */ +#ifdef __USE_MISC +# define CBAUD 0x0000100f +#endif +#define B0 0x00000000 /* hang up */ +#define B50 0x00000001 +#define B75 0x00000002 +#define B110 0x00000003 +#define B134 0x00000004 +#define B150 0x00000005 +#define B200 0x00000006 +#define B300 0x00000007 +#define B600 0x00000008 +#define B1200 0x00000009 +#define B1800 0x0000000a +#define B2400 0x0000000b +#define B4800 0x0000000c +#define B9600 0x0000000d +#define B19200 0x0000000e +#define B38400 0x0000000f +#ifdef __USE_MISC +# define EXTA B19200 +# define EXTB B38400 +#endif +#define CSIZE 0x00000030 +#define CS5 0x00000000 +#define CS6 0x00000010 +#define CS7 0x00000020 +#define CS8 0x00000030 +#define CSTOPB 0x00000040 +#define CREAD 0x00000080 +#define PARENB 0x00000100 +#define PARODD 0x00000200 +#define HUPCL 0x00000400 +#define CLOCAL 0x00000800 +#ifdef __USE_MISC +# define CBAUDEX 0x00001000 +#endif +#define B57600 0x00001001 +#define B115200 0x00001002 +#define B230400 0x00001003 +#define B460800 0x00001004 +#define B76800 0x00001005 +#define B153600 0x00001006 +#define B307200 0x00001007 +#define B614400 0x00001008 +#define B921600 0x00001009 +#define B500000 0x0000100a +#define B576000 0x0000100b +#define B1000000 0x0000100c +#define B1152000 0x0000100d +#define B1500000 0x0000100e +#define B2000000 0x0000100f +#define __MAX_BAUD B2000000 + +#ifdef __USE_MISC +# define CIBAUD 0x100f0000 /* input baud rate (not used) */ +# define CMSPAR 0x40000000 /* mark or space (stick) parity */ +# define CRTSCTS 0x80000000 /* flow control */ +#endif + +/* c_lflag bits */ +#define ISIG 0x00000001 +#define ICANON 0x00000002 +#if defined __USE_MISC || (defined __USE_XOPEN && !defined __USE_XOPEN2K) +# define XCASE 0x00000004 +#endif +#define ECHO 0x00000008 +#define ECHOE 0x00000010 +#define ECHOK 0x00000020 +#define ECHONL 0x00000040 +#define NOFLSH 0x00000080 +#define TOSTOP 0x00000100 +#ifdef __USE_MISC +# define ECHOCTL 0x00000200 +# define ECHOPRT 0x00000400 +# define ECHOKE 0x00000800 +# define DEFECHO 0x00001000 /* SUNOS thing, what is it? */ +# define FLUSHO 0x00002000 +# define PENDIN 0x00004000 +#endif +#define IEXTEN 0x00008000 +#ifdef __USE_MISC +# define EXTPROC 0x00010000 +#endif + +# if defined __USE_GNU +/* ioctl (fd, TIOCSERGETLSR, &result) where result may be as below */ +#define TIOCSER_TEMT 0x01 /* Transmitter physically empty */ +#endif + +/* tcflow() and TCXONC use these */ +#define TCOOFF 0 +#define TCOON 1 +#define TCIOFF 2 +#define TCION 3 + +/* tcflush() and TCFLSH use these */ +#define TCIFLUSH 0 +#define TCOFLUSH 1 +#define TCIOFLUSH 2 + +/* tcsetattr uses these */ +#define TCSANOW 0 +#define TCSADRAIN 1 +#define TCSAFLUSH 2 diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/timerfd.h b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/timerfd.h new file mode 100644 index 0000000000..d484c352e6 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/timerfd.h @@ -0,0 +1,29 @@ +/* Copyright (C) 2008-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#ifndef _SYS_TIMERFD_H +# error "Never use <bits/timerfd.h> directly; include <sys/timerfd.h> instead." +#endif + +/* Bits to be set in the FLAGS parameter of `timerfd_create'. */ +enum + { + TFD_CLOEXEC = 0x400000, +#define TFD_CLOEXEC TFD_CLOEXEC + TFD_NONBLOCK = 0x004000 +#define TFD_NONBLOCK TFD_NONBLOCK + }; diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/typesizes.h b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/typesizes.h new file mode 100644 index 0000000000..e3f9127b05 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/typesizes.h @@ -0,0 +1,83 @@ +/* bits/typesizes.h -- underlying types for *_t. Linux/SPARC version. + Copyright (C) 2002-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#ifndef _BITS_TYPES_H +# error "Never include <bits/typesizes.h> directly; use <sys/types.h> instead." +#endif + +#ifndef _BITS_TYPESIZES_H +#define _BITS_TYPESIZES_H 1 + +/* See <bits/types.h> for the meaning of these macros. This file exists so + that <bits/types.h> need not vary across different GNU platforms. */ + +#define __DEV_T_TYPE __UQUAD_TYPE +#define __UID_T_TYPE __U32_TYPE +#define __GID_T_TYPE __U32_TYPE +#define __INO_T_TYPE __ULONGWORD_TYPE +#define __INO64_T_TYPE __UQUAD_TYPE +#define __MODE_T_TYPE __U32_TYPE +#define __NLINK_T_TYPE __U32_TYPE +#define __OFF_T_TYPE __SLONGWORD_TYPE +#define __OFF64_T_TYPE __SQUAD_TYPE +#define __PID_T_TYPE __S32_TYPE +#define __RLIM_T_TYPE __ULONGWORD_TYPE +#define __RLIM64_T_TYPE __UQUAD_TYPE +#define __BLKCNT_T_TYPE __SLONGWORD_TYPE +#define __BLKCNT64_T_TYPE __SQUAD_TYPE +#define __FSBLKCNT_T_TYPE __ULONGWORD_TYPE +#define __FSBLKCNT64_T_TYPE __UQUAD_TYPE +#define __FSFILCNT_T_TYPE __ULONGWORD_TYPE +#define __FSFILCNT64_T_TYPE __UQUAD_TYPE +#define __FSWORD_T_TYPE __SWORD_TYPE +#define __ID_T_TYPE __U32_TYPE +#define __CLOCK_T_TYPE __SLONGWORD_TYPE +#define __TIME_T_TYPE __SLONGWORD_TYPE +#define __USECONDS_T_TYPE __U32_TYPE +#define __SUSECONDS_T_TYPE __S32_TYPE +#define __DADDR_T_TYPE __S32_TYPE +#define __KEY_T_TYPE __S32_TYPE +#define __CLOCKID_T_TYPE __S32_TYPE +#define __TIMER_T_TYPE void * +#define __BLKSIZE_T_TYPE __SLONGWORD_TYPE +#define __FSID_T_TYPE struct { int __val[2]; } +#define __SSIZE_T_TYPE __SWORD_TYPE +#define __SYSCALL_SLONG_TYPE __SLONGWORD_TYPE +#define __SYSCALL_ULONG_TYPE __ULONGWORD_TYPE +#define __CPU_MASK_TYPE __ULONGWORD_TYPE + +#if defined __arch64__ || defined __sparcv9 +/* Tell the libc code that off_t and off64_t are actually the same type + for all ABI purposes, even if possibly expressed as different base types + for C type-checking purposes. */ +# define __OFF_T_MATCHES_OFF64_T 1 + +/* Same for ino_t and ino64_t. */ +# define __INO_T_MATCHES_INO64_T 1 + +/* And for __rlim_t and __rlim64_t. */ +# define __RLIM_T_MATCHES_RLIM64_T 1 +#else +# define __RLIM_T_MATCHES_RLIM64_T 0 +#endif + +/* Number of descriptors that can fit in an `fd_set'. */ +#define __FD_SETSIZE 1024 + + +#endif /* bits/typesizes.h */ diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/wordsize.h b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/wordsize.h new file mode 100644 index 0000000000..7562875ee2 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/bits/wordsize.h @@ -0,0 +1,11 @@ +/* Determine the wordsize from the preprocessor defines. */ + +#if defined __arch64__ || defined __sparcv9 +# define __WORDSIZE 64 +# define __WORDSIZE_TIME64_COMPAT32 1 +#else +# define __WORDSIZE 32 +# define __WORDSIZE32_SIZE_ULONG 0 +# define __WORDSIZE32_PTRDIFF_LONG 0 +# define __WORDSIZE_TIME64_COMPAT32 0 +#endif diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/configure b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/configure new file mode 100644 index 0000000000..00fb21e156 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/configure @@ -0,0 +1,5 @@ +# This file is generated from configure.ac by Autoconf. DO NOT EDIT! + # Local configure fragment for sysdeps/unix/sysv/linux/sparc. + +libc_cv_gcc_unwind_find_fde=yes +ldd_rewrite_script=sysdeps/unix/sysv/linux/sparc/ldd-rewrite.sed diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/configure.ac b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/configure.ac new file mode 100644 index 0000000000..7e2af9847a --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/configure.ac @@ -0,0 +1,5 @@ +GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory. +# Local configure fragment for sysdeps/unix/sysv/linux/sparc. + +libc_cv_gcc_unwind_find_fde=yes +ldd_rewrite_script=sysdeps/unix/sysv/linux/sparc/ldd-rewrite.sed diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/dl-cache.h b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/dl-cache.h new file mode 100644 index 0000000000..86f4cf4919 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/dl-cache.h @@ -0,0 +1,38 @@ +/* Support for reading /etc/ld.so.cache files written by Linux ldconfig. + Copyright (C) 2003-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#define add_system_dir(dir) \ + do \ + { \ + size_t len = strlen (dir); \ + char path[len + 3]; \ + memcpy (path, dir, len + 1); \ + if (len >= 6 && ! memcmp (path + len - 6, "/lib64", 6)) \ + { \ + len -= 2; \ + path[len] = '\0'; \ + } \ + add_dir (path); \ + if (len >= 4 && ! memcmp (path + len - 4, "/lib", 4)) \ + { \ + memcpy (path + len, "64", 3); \ + add_dir (path); \ + } \ + } while (0) + +#include <sysdeps/generic/dl-cache.h> diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/getrlimit64.c b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/getrlimit64.c new file mode 100644 index 0000000000..7ffc7dd5dd --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/getrlimit64.c @@ -0,0 +1,24 @@ +/* Linux getrlimit64 sparc32 implementation (64 bits rlim_t). + Copyright (C) 2016-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#include <shlib-compat.h> + +#undef SHLIB_COMPAT +#define SHLIB_COMPAT(a,b,c) 0 + +#include <sysdeps/unix/sysv/linux/getrlimit64.c> diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/getshmlba.c b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/getshmlba.c new file mode 100644 index 0000000000..26a90e707a --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/getshmlba.c @@ -0,0 +1,39 @@ +/* Copyright (C) 2012-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#include <unistd.h> +#include <sys/shm.h> +#include <ldsodefs.h> + +int +__getshmlba (void) +{ + uint64_t hwcap = GLRO(dl_hwcap); + int pgsz = GLRO(dl_pagesize); + + if (hwcap & HWCAP_SPARC_V9) + { + if (pgsz < (16 * 1024)) + return 16 * 1024; + else + return pgsz; + } + else if (!(hwcap & HWCAP_SPARC_FLUSH)) + return 64 * 1024; + else + return 256 * 1024; +} diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/getsysstats.c b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/getsysstats.c new file mode 100644 index 0000000000..49708495ff --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/getsysstats.c @@ -0,0 +1,55 @@ +/* Determine various system internal values, Linux/Sparc version. + Copyright (C) 1999-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Andreas Schwab <schwab@suse.de> and + Jakub Jelinek <jj@ultra.linux.cz> + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + + +/* We need to define a special parser for /proc/cpuinfo. */ +#define GET_NPROCS_PARSER(FD, BUFFER, CP, RE, BUFFER_END, RESULT) \ + do \ + { \ + (RESULT) = 0; \ + /* Find the line that contains the information about the number of \ + active cpus. We don't have to fear extremely long lines since \ + the kernel will not generate them. 8192 bytes are really \ + enough. */ \ + char *l; \ + while ((l = next_line (FD, BUFFER, &CP, &RE, BUFFER_END)) != NULL) \ + if (sscanf (l, "ncpus active : %d", &(RESULT)) == 1) \ + break; \ + } \ + while (0) + + +/* On the Sparc we can distinguish between the number of configured and + active cpus. */ +#define GET_NPROCS_CONF_PARSER(FP, BUFFER, RESULT) \ + do \ + { \ + (RESULT) = 0; \ + /* Find the line that contains the information about the number of \ + probed cpus. We don't have to fear extremely long lines since \ + the kernel will not generate them. 8192 bytes are really \ + enough. */ \ + while (__fgets_unlocked ((BUFFER), sizeof (BUFFER), (FP)) != NULL) \ + if (sscanf (buffer, "ncpus probed : %d", &(RESULT)) == 1) \ + break; \ + } \ + while (0) + +#include <sysdeps/unix/sysv/linux/getsysstats.c> diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/kernel-features.h b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/kernel-features.h new file mode 100644 index 0000000000..3fafab359c --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/kernel-features.h @@ -0,0 +1,42 @@ +/* Set flags signalling availability of kernel features based on given + kernel version number. SPARC version. + Copyright (C) 1999-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +/* SPARC uses socketcall. */ +#define __ASSUME_SOCKETCALL 1 + +#include_next <kernel-features.h> + +/* 32-bit SPARC kernels do not support + futex_atomic_cmpxchg_inatomic. */ +#if !defined __arch64__ && !defined __sparc_v9__ +# undef __ASSUME_SET_ROBUST_LIST +#endif + +#if !defined __arch64__ +# undef __ASSUME_ACCEPT_SYSCALL +# undef __ASSUME_CONNECT_SYSCALL +# undef __ASSUME_RECVFROM_SYSCALL +#else +/* sparc64 defines __NR_pause, however it is not supported (ENOSYS). + Undefine so pause.c can use a correct alternative. */ +# undef __NR_pause +#endif + +/* sparc only supports ipc syscall. */ +#undef __ASSUME_DIRECT_SYSVIPC_SYSCALLS diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/kernel_termios.h b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/kernel_termios.h new file mode 100644 index 0000000000..464ddf8135 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/kernel_termios.h @@ -0,0 +1,37 @@ +/* Copyright (C) 1997-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#ifndef _KERNEL_TERMIOS_H +#define _KERNEL_TERMIOS_H 1 +/* The following corresponds to the values from the Linux 2.1.20 kernel. */ + +/* We need the definition of tcflag_t, cc_t, and speed_t. */ +#include <termios.h> + +#define __KERNEL_NCCS 17 + +struct __kernel_termios + { + tcflag_t c_iflag; /* input mode flags */ + tcflag_t c_oflag; /* output mode flags */ + tcflag_t c_cflag; /* control mode flags */ + tcflag_t c_lflag; /* local mode flags */ + cc_t c_line; /* line discipline */ + cc_t c_cc[__KERNEL_NCCS]; /* control characters */ + }; + +#endif /* kernel_termios.h */ diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/ldd-rewrite.sed b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/ldd-rewrite.sed new file mode 100644 index 0000000000..7dc2698fa8 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/ldd-rewrite.sed @@ -0,0 +1,3 @@ +/LD_TRACE_LOADED_OBJECTS=1/a\ +add_env="$add_env LD_LIBRARY_VERSION=\\$verify_out" +s_^\(RTLDLIST=\)\(.*lib\)\(\|64\)\(/[^/]*\.so\.[0-9.]*\)[ ]*$_\1"\2\4 \264\4"_ diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/lowlevellock.h b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/lowlevellock.h new file mode 100644 index 0000000000..e36fde6cae --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/lowlevellock.h @@ -0,0 +1,135 @@ +/* Copyright (C) 2003-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Jakub Jelinek <jakub@redhat.com>, 2003. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#ifndef _LOWLEVELLOCK_H +#define _LOWLEVELLOCK_H 1 + +#include <time.h> +#include <sys/param.h> +#include <bits/pthreadtypes.h> +#include <atomic.h> +#include <kernel-features.h> + +#include <lowlevellock-futex.h> + +static inline int +__attribute__ ((always_inline)) +__lll_trylock (int *futex) +{ + return atomic_compare_and_exchange_val_24_acq (futex, 1, 0) != 0; +} +#define lll_trylock(futex) __lll_trylock (&(futex)) + +static inline int +__attribute__ ((always_inline)) +__lll_cond_trylock (int *futex) +{ + return atomic_compare_and_exchange_val_24_acq (futex, 2, 0) != 0; +} +#define lll_cond_trylock(futex) __lll_cond_trylock (&(futex)) + + +extern void __lll_lock_wait_private (int *futex) attribute_hidden; +extern void __lll_lock_wait (int *futex, int private) attribute_hidden; + +static inline void +__attribute__ ((always_inline)) +__lll_lock (int *futex, int private) +{ + int val = atomic_compare_and_exchange_val_24_acq (futex, 1, 0); + + if (__glibc_unlikely (val != 0)) + { + if (__builtin_constant_p (private) && private == LLL_PRIVATE) + __lll_lock_wait_private (futex); + else + __lll_lock_wait (futex, private); + } +} +#define lll_lock(futex, private) __lll_lock (&(futex), private) + +static inline void +__attribute__ ((always_inline)) +__lll_cond_lock (int *futex, int private) +{ + int val = atomic_compare_and_exchange_val_24_acq (futex, 2, 0); + + if (__glibc_unlikely (val != 0)) + __lll_lock_wait (futex, private); +} +#define lll_cond_lock(futex, private) __lll_cond_lock (&(futex), private) + + +extern int __lll_timedlock_wait (int *futex, const struct timespec *, + int private) attribute_hidden; + +static inline int +__attribute__ ((always_inline)) +__lll_timedlock (int *futex, const struct timespec *abstime, int private) +{ + int val = atomic_compare_and_exchange_val_24_acq (futex, 1, 0); + int result = 0; + + if (__glibc_unlikely (val != 0)) + result = __lll_timedlock_wait (futex, abstime, private); + return result; +} +#define lll_timedlock(futex, abstime, private) \ + __lll_timedlock (&(futex), abstime, private) + +#define lll_unlock(lock, private) \ + ((void) ({ \ + int *__futex = &(lock); \ + int __private = (private); \ + int __val = atomic_exchange_24_rel (__futex, 0); \ + if (__glibc_unlikely (__val > 1)) \ + lll_futex_wake (__futex, 1, __private); \ + })) + +#define lll_islocked(futex) \ + (futex != 0) + +/* Initializers for lock. */ +#define LLL_LOCK_INITIALIZER (0) +#define LLL_LOCK_INITIALIZER_LOCKED (1) + +/* The kernel notifies a process which uses CLONE_CHILD_CLEARTID via futex + wakeup when the clone terminates. The memory location contains the + thread ID while the clone is running and is reset to zero + afterwards. */ +#define lll_wait_tid(tid) \ + do \ + { \ + __typeof (tid) __tid; \ + while ((__tid = (tid)) != 0) \ + lll_futex_wait (&(tid), __tid, LLL_SHARED); \ + } \ + while (0) + +extern int __lll_timedwait_tid (int *, const struct timespec *) + attribute_hidden; + +#define lll_timedwait_tid(tid, abstime) \ + ({ \ + int __res = 0; \ + if ((tid) != 0) \ + __res = __lll_timedwait_tid (&(tid), (abstime)); \ + __res; \ + }) + +#endif /* lowlevellock.h */ diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/pt-vfork.S b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/pt-vfork.S new file mode 100644 index 0000000000..65cc3823ac --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/pt-vfork.S @@ -0,0 +1 @@ +#include <sysdeps/unix/sysv/linux/alpha/pt-vfork.S> diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/readelflib.c b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/readelflib.c new file mode 100644 index 0000000000..a9737fe89a --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/readelflib.c @@ -0,0 +1,61 @@ +/* Copyright (C) 1999-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Andreas Jaeger <aj@suse.de>, 1999 and + Jakub Jelinek <jakub@redhat.com>, 1999. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + + +int process_elf32_file (const char *file_name, const char *lib, int *flag, + unsigned int *osversion, char **soname, + void *file_contents, size_t file_length); +int process_elf64_file (const char *file_name, const char *lib, int *flag, + unsigned int *osversion, char **soname, + void *file_contents, size_t file_length); + +/* Returns 0 if everything is ok, != 0 in case of error. */ +int +process_elf_file (const char *file_name, const char *lib, int *flag, + unsigned int *osversion, char **soname, void *file_contents, + size_t file_length) +{ + ElfW(Ehdr) *elf_header = (ElfW(Ehdr) *) file_contents; + int ret; + + if (elf_header->e_ident [EI_CLASS] == ELFCLASS32) + return process_elf32_file (file_name, lib, flag, osversion, soname, + file_contents, file_length); + else + { + ret = process_elf64_file (file_name, lib, flag, osversion, soname, + file_contents, file_length); + /* Sparc 64bit libraries are always libc.so.6+. */ + if (!ret) + *flag = FLAG_SPARC_LIB64|FLAG_ELF_LIBC6; + return ret; + } +} + +#undef __ELF_NATIVE_CLASS +#undef process_elf_file +#define process_elf_file process_elf32_file +#define __ELF_NATIVE_CLASS 32 +#include "elf/readelflib.c" + +#undef __ELF_NATIVE_CLASS +#undef process_elf_file +#define process_elf_file process_elf64_file +#define __ELF_NATIVE_CLASS 64 +#include "elf/readelflib.c" diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/rt-sysdep.c b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/rt-sysdep.c new file mode 100644 index 0000000000..3ff55952e2 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/rt-sysdep.c @@ -0,0 +1 @@ +#include <sysdep.c> diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/Implies b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/Implies new file mode 100644 index 0000000000..efda9d27c0 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/Implies @@ -0,0 +1,3 @@ +# These supply the ABI compatibility for when long double was double. +ieee754/ldbl-64-128 +ieee754/ldbl-opt diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/Makefile b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/Makefile new file mode 100644 index 0000000000..21c7dc1680 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/Makefile @@ -0,0 +1,28 @@ +# See Makeconfig regarding the use of default-abi. +default-abi := 32 + +asm-CPPFLAGS = -D__ASSEMBLY__ +ASFLAGS-.os += -fPIC +LD += -melf32_sparc + +ifeq ($(subdir),stdlib) +gen-as-const-headers += ucontext_i.sym +endif + +# When I get this to work, this is the right thing +ifeq ($(subdir),elf) +CFLAGS-rtld.c += -mcpu=v8 +#rtld-routines += dl-sysdepsparc +sysdep-others += lddlibc4 +install-bin += lddlibc4 +endif # elf + +ifeq ($(subdir),math) +# These 2 routines are normally in libgcc{.a,_s.so.1}. +# However, sparc32 -mlong-double-128 libgcc relies on +# glibc providing _Q_* routines and without these files +# glibc relies on __multc3/__divtc3 only provided +# by libgcc if configured with -mlong-double-128. +# Provide these routines here as well. +libm-routines += multc3 divtc3 +endif # math diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/Versions b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/Versions new file mode 100644 index 0000000000..c9a5b3e9d5 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/Versions @@ -0,0 +1,26 @@ +libc { + GLIBC_2.0 { + # Exception handling support functions from libgcc + __register_frame; __register_frame_table; __deregister_frame; + __frame_state_for; __register_frame_info_table; + } + GLIBC_2.2 { + # functions used in other libraries + __xstat64; __fxstat64; __lxstat64; + + # g* + glob64; + + # r* + readdir64; readdir64_r; + + # s* + scandir64; + } + GLIBC_2.3.3 { + posix_fadvise64; posix_fallocate64; + } + GLIBC_2.11 { + fallocate64; + } +} diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/____longjmp_chk.S b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/____longjmp_chk.S new file mode 100644 index 0000000000..ff65bbd487 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/____longjmp_chk.S @@ -0,0 +1,113 @@ +/* Copyright (C) 2009-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#include <sysdep.h> +#include <jmpbuf-offsets.h> + +#define ENV(base,reg) [%base + (reg * 4)] +#define ST_FLUSH_WINDOWS 3 + +.section .rodata.str1.1,"aMS",@progbits,1 + .type longjmp_msg,@object +longjmp_msg: + .string "longjmp causes uninitialized stack frame" + .size longjmp_msg, .-longjmp_msg + + .text +ENTRY (____longjmp_chk) + ld ENV(o0,JB_SP), %g5 +#ifdef PTR_DEMANGLE + PTR_DEMANGLE (%g5, %g5, %g4) +#endif + + cmp %sp, %g5 + bleu .Lok_norestore + nop + + save %sp, -80, %sp + cfi_remember_state + cfi_def_cfa_register(%fp) + cfi_window_save + cfi_register(%o7, %i7) + + clr %o0 + add %sp, 64, %o1 + LOADSYSCALL(sigaltstack) + ta 0x10 + bcs .Lok + ld [%sp + 64 + 4], %o2 + andcc %o2, 0x1, %g0 + be .Lfail + ld [%sp + 64 + 0], %o0 + + ld [%sp + 64 + 8], %o1 + add %o0, %o1, %o0 + sub %o0, %g5, %o0 + cmp %o0, %o1 + bgeu .Lok + nop + +.Lfail: +#ifndef PIC + sethi %hi(longjmp_msg), %o0 + or %o0, %lo(longjmp_msg), %o0 +#else + SETUP_PIC_REG(l7) + sethi %gdop_hix22(longjmp_msg), %o0 + xor %o0, %gdop_lox10(longjmp_msg), %o0 + ld [%l7 + %o0], %o0, %gdop(longjmp_msg) +#endif + call HIDDEN_JUMPTARGET(__fortify_fail) + nop + +.Lok: + restore + cfi_restore_state + +.Lok_norestore: + ld ENV(o0,JB_FP), %g3 /* Cache target FP in register %g3. */ +#ifdef PTR_DEMANGLE + PTR_DEMANGLE2 (%g3, %g3, %g4) +#endif + + mov %o0, %g1 /* ENV in %g1 */ + orcc %o1, %g0, %g2 /* VAL in %g2 */ + be,a 0f /* Branch if zero; else skip delay slot. */ + mov 1, %g2 /* Delay slot only hit if zero: VAL = 1. */ +0: + + save %sp, -96, %sp + /* + * Do a "flush register windows trap". The trap handler in the + * kernel writes all the register windows to their stack slots, and + * marks them all as invalid (needing to be sucked up from the + * stack when used). This ensures that all information needed to + * unwind to these callers is in memory, not in the register + * windows. + */ + ta ST_FLUSH_WINDOWS +#ifdef PTR_DEMANGLE + ld ENV(g1,JB_PC), %g1 /* Set return PC. */ + PTR_DEMANGLE2 (%i7, %g1, %g4) +#else + ld ENV(g1,JB_PC), %i7 /* Set return PC. */ +#endif + mov %g5, %fp + jmp %i7 + 8 + restore %g2, 0, %o0 /* Restore values from above register frame. */ + +END(____longjmp_chk) diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/brk.c b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/brk.c new file mode 100644 index 0000000000..7162eb27b7 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/brk.c @@ -0,0 +1,54 @@ +/* brk system call for Linux/SPARC. + Copyright (C) 1995-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Miguel de Icaza (miguel@nuclecu.unam.mx) + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#include <errno.h> +#include <unistd.h> +#include <sysdep.h> + +/* This must be initialized data because commons can't have aliases. */ +void *__curbrk = 0; + +/* Old braindamage in GCC's crtstuff.c requires this symbol in an attempt + to work around different old braindamage in the old Linux ELF dynamic + linker. */ +weak_alias (__curbrk, ___brk_addr) + +int +__brk (void *addr) +{ + void *newbrk; + + { + register void *o0 __asm__("%o0") = addr; + register int g1 __asm__("%g1") = __NR_brk; + __asm ("t 0x10" : "=r"(o0) : "r"(g1), "0"(o0) : "cc"); + newbrk = o0; + } + + __curbrk = newbrk; + + if (newbrk < addr) + { + __set_errno (ENOMEM); + return -1; + } + + return 0; +} +weak_alias (__brk, brk) diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/c++-types.data b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/c++-types.data new file mode 100644 index 0000000000..b3c19d9c61 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/c++-types.data @@ -0,0 +1,67 @@ +blkcnt64_t:x +blkcnt_t:l +blksize_t:l +caddr_t:Pc +clockid_t:i +clock_t:l +daddr_t:i +dev_t:y +fd_mask:l +fsblkcnt64_t:y +fsblkcnt_t:m +fsfilcnt64_t:y +fsfilcnt_t:m +fsid_t:8__fsid_t +gid_t:j +id_t:j +ino64_t:y +ino_t:m +int16_t:s +int32_t:i +int64_t:x +int8_t:a +intptr_t:i +key_t:i +loff_t:x +mode_t:j +nlink_t:j +off64_t:x +off_t:l +pid_t:i +pthread_attr_t:14pthread_attr_t +pthread_barrier_t:17pthread_barrier_t +pthread_barrierattr_t:21pthread_barrierattr_t +pthread_cond_t:14pthread_cond_t +pthread_condattr_t:18pthread_condattr_t +pthread_key_t:j +pthread_mutex_t:15pthread_mutex_t +pthread_mutexattr_t:19pthread_mutexattr_t +pthread_once_t:i +pthread_rwlock_t:16pthread_rwlock_t +pthread_rwlockattr_t:20pthread_rwlockattr_t +pthread_spinlock_t:i +pthread_t:m +quad_t:x +register_t:i +rlim64_t:y +rlim_t:m +sigset_t:10__sigset_t +size_t:j +socklen_t:j +ssize_t:i +suseconds_t:i +time_t:l +u_char:h +uid_t:j +uint:j +u_int:j +u_int16_t:t +u_int32_t:j +u_int64_t:y +u_int8_t:h +ulong:m +u_long:m +u_quad_t:y +useconds_t:j +ushort:t +u_short:t diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/clone.S b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/clone.S new file mode 100644 index 0000000000..6d2f5bd55f --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/clone.S @@ -0,0 +1,90 @@ +/* Copyright (C) 1996-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Richard Henderson (rth@tamu.edu). + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +/* clone() is even more special than fork() as it mucks with stacks + and invokes a function in the right context after its all over. */ + +#include <asm/errno.h> +#include <asm/unistd.h> +#include <tcb-offsets.h> +#include <sysdep.h> + +#define CLONE_VM 0x00000100 + +/* int clone(int (*fn)(void *arg), void *child_stack, int flags, void *arg, + pid_t *ptid, void *tls, pid_t *ctid); */ + + .text +ENTRY (__clone) + save %sp,-96,%sp + cfi_def_cfa_register(%fp) + cfi_window_save + cfi_register(%o7, %i7) + + /* sanity check arguments */ + orcc %i0,%g0,%g2 + be .Leinval + orcc %i1,%g0,%o1 + be .Leinval + mov %i2,%o0 + + /* The child_stack is the top of the stack, allocate one + whole stack frame from that as this is what the kernel + expects. */ + sub %o1, 96, %o1 + mov %i3, %g3 + + /* ptid */ + mov %i4,%o2 + /* tls */ + mov %i5,%o3 + /* ctid */ + ld [%fp+92],%o4 + + /* Do the system call */ + set __NR_clone,%g1 + ta 0x10 + bcs .Lerror + tst %o1 + bne __thread_start + nop + jmpl %i7 + 8, %g0 + restore %o0,%g0,%o0 + +.Leinval: + mov EINVAL, %o0 +.Lerror: + call HIDDEN_JUMPTARGET(__errno_location) + mov %o0, %i0 + st %i0,[%o0] + jmpl %i7 + 8, %g0 + restore %g0,-1,%o0 +END(__clone) + + .type __thread_start,@function +__thread_start: + mov %g0, %fp /* terminate backtrace */ + call %g2 + mov %g3,%o0 + call HIDDEN_JUMPTARGET(_exit),0 + nop + + .size __thread_start, .-__thread_start + +libc_hidden_def (__clone) +weak_alias (__clone, clone) diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/fcntl.c b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/fcntl.c new file mode 100644 index 0000000000..ea951bc4f9 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/fcntl.c @@ -0,0 +1 @@ +#include <sysdeps/unix/sysv/linux/i386/fcntl.c> diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/fpu/Implies b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/fpu/Implies new file mode 100644 index 0000000000..dbcd1e9e6f --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/fpu/Implies @@ -0,0 +1,2 @@ +# We must list this here to move it ahead of the ldbl-opt code. +sparc/sparc32/fpu diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/fxstat.c b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/fxstat.c new file mode 100644 index 0000000000..4f219f0b9d --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/fxstat.c @@ -0,0 +1 @@ +#include <sysdeps/unix/sysv/linux/i386/fxstat.c> diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/fxstatat.c b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/fxstatat.c new file mode 100644 index 0000000000..0f8b3135d8 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/fxstatat.c @@ -0,0 +1 @@ +#include <sysdeps/unix/sysv/linux/i386/fxstatat.c> diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/getcontext.S b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/getcontext.S new file mode 100644 index 0000000000..893d7bf5b5 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/getcontext.S @@ -0,0 +1,84 @@ +/* Save current context. + Copyright (C) 2008-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by David S. Miller <davem@davemloft.net>, 2008. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#include <sysdep.h> + +#include "ucontext_i.h" + +/* int __getcontext (ucontext_t *ucp) + + Saves the machine context in UCP such that when it is activated, + it appears as if __getcontext() returned again. + + This implementation is intended to be used for *synchronous* context + switches only. Therefore, it does not have to save anything + other than the PRESERVED state. */ + + +ENTRY(__getcontext) + save %sp, -112, %sp + st %g0, [%i0 + UC_MCONTEXT + MC_GREGS + GREG_PSR] + + /* In reality, we only use the GREG_PC value when setting + or swapping contexts. But we fill in NPC for completeness. */ + add %i7, 8, %o0 + st %o0, [%i0 + UC_MCONTEXT + MC_GREGS + GREG_PC] + add %o0, 4, %o0 + st %o0, [%i0 + UC_MCONTEXT + MC_GREGS + GREG_NPC] + + rd %y, %o1 + st %o1, [%i0 + UC_MCONTEXT + MC_GREGS + GREG_Y] + + st %g1, [%i0 + UC_MCONTEXT + MC_GREGS + GREG_G1] + st %g2, [%i0 + UC_MCONTEXT + MC_GREGS + GREG_G2] + st %g3, [%i0 + UC_MCONTEXT + MC_GREGS + GREG_G3] + st %g4, [%i0 + UC_MCONTEXT + MC_GREGS + GREG_G4] + st %g5, [%i0 + UC_MCONTEXT + MC_GREGS + GREG_G5] + st %g6, [%i0 + UC_MCONTEXT + MC_GREGS + GREG_G6] + st %g7, [%i0 + UC_MCONTEXT + MC_GREGS + GREG_G7] + + mov SIG_BLOCK, %o0 + clr %o1 + add %i0, UC_SIGMASK, %o2 + mov 8, %o3 + mov __NR_rt_sigprocmask, %g1 + ta 0x10 + + /* Zero, success, return value. */ + st %g0, [%i0 + UC_MCONTEXT + MC_GREGS + GREG_O0] + st %i1, [%i0 + UC_MCONTEXT + MC_GREGS + GREG_O1] + st %i2, [%i0 + UC_MCONTEXT + MC_GREGS + GREG_O2] + st %i3, [%i0 + UC_MCONTEXT + MC_GREGS + GREG_O3] + st %i4, [%i0 + UC_MCONTEXT + MC_GREGS + GREG_O4] + st %i5, [%i0 + UC_MCONTEXT + MC_GREGS + GREG_O5] + st %i6, [%i0 + UC_MCONTEXT + MC_GREGS + GREG_O6] + st %i7, [%i0 + UC_MCONTEXT + MC_GREGS + GREG_O7] + + st %g0, [%i0 + UC_MCONTEXT + MC_GWINS] + + /* Do not save FPU state, it is volatile across calls. */ + stb %g0, [%i0 + UC_MCONTEXT + MC_FPREGS + FPU_EN] + + st %g0, [%i0 + UC_MCONTEXT + MC_XRS + XRS_ID] + st %g0, [%i0 + UC_MCONTEXT + MC_XRS + XRS_PTR] + jmpl %i7 + 8, %g0 + restore %g0, %g0, %o0 +END(__getcontext) + +weak_alias (__getcontext, getcontext) diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/getdents64.c b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/getdents64.c new file mode 100644 index 0000000000..0c75fb5a06 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/getdents64.c @@ -0,0 +1 @@ +#include <sysdeps/unix/sysv/linux/i386/getdents64.c> diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/glob64.c b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/glob64.c new file mode 100644 index 0000000000..82a9a296a7 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/glob64.c @@ -0,0 +1 @@ +#include <sysdeps/unix/sysv/linux/i386/glob64.c> diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/kernel_stat.h b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/kernel_stat.h new file mode 100644 index 0000000000..a4416009f1 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/kernel_stat.h @@ -0,0 +1,35 @@ +/* Definition of `struct stat' used in the kernel */ +struct kernel_stat + { + unsigned short int st_dev; + unsigned long int st_ino; + unsigned short int st_mode; + short int st_nlink; + unsigned short int st_uid; + unsigned short int st_gid; + unsigned short int st_rdev; + long int st_size; + struct timespec st_atim; + struct timespec st_mtim; + struct timespec st_ctim; + long int st_blksize; + long int st_blocks; + unsigned long int __glibc_reserved4; + unsigned long int __glibc_reserved5; + }; + +#define _HAVE___UNUSED4 +#define _HAVE___UNUSED5 + +#define _HAVE_STAT___UNUSED4 +#define _HAVE_STAT___UNUSED5 +#define _HAVE_STAT___PAD1 +#define _HAVE_STAT___PAD2 +#define _HAVE_STAT64___UNUSED4 +#define _HAVE_STAT64___UNUSED5 +#define _HAVE_STAT64___PAD2 +#define _HAVE_STAT_NSEC +#define _HAVE_STAT64_NSEC + +#define XSTAT_IS_XSTAT64 0 +#define STATFS_IS_STATFS64 0 diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/ld.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/ld.abilist new file mode 100644 index 0000000000..fb4bcb016d --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/ld.abilist @@ -0,0 +1,12 @@ +GLIBC_2.0 GLIBC_2.0 A +GLIBC_2.0 _r_debug D 0x14 +GLIBC_2.0 calloc F +GLIBC_2.0 free F +GLIBC_2.0 malloc F +GLIBC_2.0 realloc F +GLIBC_2.1 GLIBC_2.1 A +GLIBC_2.1 __libc_stack_end D 0x4 +GLIBC_2.1 _dl_mcount F +GLIBC_2.3 GLIBC_2.3 A +GLIBC_2.3 __tls_get_addr F +GLIBC_2.4 GLIBC_2.4 A diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/libBrokenLocale.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/libBrokenLocale.abilist new file mode 100644 index 0000000000..4a56bb68a3 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/libBrokenLocale.abilist @@ -0,0 +1,2 @@ +GLIBC_2.0 GLIBC_2.0 A +GLIBC_2.0 __ctype_get_mb_cur_max F diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/libanl.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/libanl.abilist new file mode 100644 index 0000000000..edabfb436e --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/libanl.abilist @@ -0,0 +1,5 @@ +GLIBC_2.2.3 GLIBC_2.2.3 A +GLIBC_2.2.3 gai_cancel F +GLIBC_2.2.3 gai_error F +GLIBC_2.2.3 gai_suspend F +GLIBC_2.2.3 getaddrinfo_a F diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist new file mode 100644 index 0000000000..8c4c2e502c --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist @@ -0,0 +1,2479 @@ +GCC_3.0 GCC_3.0 A +GCC_3.0 _Unwind_Find_FDE F +GCC_3.0 __deregister_frame_info_bases F +GCC_3.0 __register_frame_info_bases F +GCC_3.0 __register_frame_info_table_bases F +GLIBC_2.0 .div F +GLIBC_2.0 .mul F +GLIBC_2.0 .rem F +GLIBC_2.0 .udiv F +GLIBC_2.0 .umul F +GLIBC_2.0 .urem F +GLIBC_2.0 GLIBC_2.0 A +GLIBC_2.0 _IO_adjust_column F +GLIBC_2.0 _IO_default_doallocate F +GLIBC_2.0 _IO_default_finish F +GLIBC_2.0 _IO_default_pbackfail F +GLIBC_2.0 _IO_default_uflow F +GLIBC_2.0 _IO_default_xsgetn F +GLIBC_2.0 _IO_default_xsputn F +GLIBC_2.0 _IO_do_write F +GLIBC_2.0 _IO_doallocbuf F +GLIBC_2.0 _IO_fclose F +GLIBC_2.0 _IO_fdopen F +GLIBC_2.0 _IO_feof F +GLIBC_2.0 _IO_ferror F +GLIBC_2.0 _IO_fflush F +GLIBC_2.0 _IO_fgetpos F +GLIBC_2.0 _IO_fgets F +GLIBC_2.0 _IO_file_attach F +GLIBC_2.0 _IO_file_close F +GLIBC_2.0 _IO_file_close_it F +GLIBC_2.0 _IO_file_doallocate F +GLIBC_2.0 _IO_file_fopen F +GLIBC_2.0 _IO_file_init F +GLIBC_2.0 _IO_file_jumps D 0x54 +GLIBC_2.0 _IO_file_open F +GLIBC_2.0 _IO_file_overflow F +GLIBC_2.0 _IO_file_read F +GLIBC_2.0 _IO_file_seek F +GLIBC_2.0 _IO_file_seekoff F +GLIBC_2.0 _IO_file_setbuf F +GLIBC_2.0 _IO_file_stat F +GLIBC_2.0 _IO_file_sync F +GLIBC_2.0 _IO_file_underflow F +GLIBC_2.0 _IO_file_write F +GLIBC_2.0 _IO_file_xsputn F +GLIBC_2.0 _IO_flockfile F +GLIBC_2.0 _IO_flush_all F +GLIBC_2.0 _IO_flush_all_linebuffered F +GLIBC_2.0 _IO_fopen F +GLIBC_2.0 _IO_fprintf F +GLIBC_2.0 _IO_fputs F +GLIBC_2.0 _IO_fread F +GLIBC_2.0 _IO_free_backup_area F +GLIBC_2.0 _IO_fsetpos F +GLIBC_2.0 _IO_ftell F +GLIBC_2.0 _IO_ftrylockfile F +GLIBC_2.0 _IO_funlockfile F +GLIBC_2.0 _IO_fwrite F +GLIBC_2.0 _IO_getc F +GLIBC_2.0 _IO_getline F +GLIBC_2.0 _IO_gets F +GLIBC_2.0 _IO_init F +GLIBC_2.0 _IO_init_marker F +GLIBC_2.0 _IO_link_in F +GLIBC_2.0 _IO_list_all D 0x4 +GLIBC_2.0 _IO_marker_delta F +GLIBC_2.0 _IO_marker_difference F +GLIBC_2.0 _IO_padn F +GLIBC_2.0 _IO_peekc_locked F +GLIBC_2.0 _IO_popen F +GLIBC_2.0 _IO_printf F +GLIBC_2.0 _IO_proc_close F +GLIBC_2.0 _IO_proc_open F +GLIBC_2.0 _IO_putc F +GLIBC_2.0 _IO_puts F +GLIBC_2.0 _IO_remove_marker F +GLIBC_2.0 _IO_seekmark F +GLIBC_2.0 _IO_seekoff F +GLIBC_2.0 _IO_seekpos F +GLIBC_2.0 _IO_setb F +GLIBC_2.0 _IO_setbuffer F +GLIBC_2.0 _IO_setvbuf F +GLIBC_2.0 _IO_sgetn F +GLIBC_2.0 _IO_sprintf F +GLIBC_2.0 _IO_sputbackc F +GLIBC_2.0 _IO_sscanf F +GLIBC_2.0 _IO_stderr_ D 0x50 +GLIBC_2.0 _IO_stdin_ D 0x50 +GLIBC_2.0 _IO_stdout_ D 0x50 +GLIBC_2.0 _IO_str_init_readonly F +GLIBC_2.0 _IO_str_init_static F +GLIBC_2.0 _IO_str_overflow F +GLIBC_2.0 _IO_str_pbackfail F +GLIBC_2.0 _IO_str_seekoff F +GLIBC_2.0 _IO_str_underflow F +GLIBC_2.0 _IO_sungetc F +GLIBC_2.0 _IO_switch_to_get_mode F +GLIBC_2.0 _IO_un_link F +GLIBC_2.0 _IO_ungetc F +GLIBC_2.0 _IO_unsave_markers F +GLIBC_2.0 _IO_vfprintf F +GLIBC_2.0 _IO_vfscanf F +GLIBC_2.0 _IO_vsprintf F +GLIBC_2.0 ___brk_addr D 0x4 +GLIBC_2.0 __adjtimex F +GLIBC_2.0 __after_morecore_hook D 0x4 +GLIBC_2.0 __argz_count F +GLIBC_2.0 __argz_next F +GLIBC_2.0 __argz_stringify F +GLIBC_2.0 __assert_fail F +GLIBC_2.0 __assert_perror_fail F +GLIBC_2.0 __bsd_getpgrp F +GLIBC_2.0 __bzero F +GLIBC_2.0 __check_rhosts_file D 0x4 +GLIBC_2.0 __clone F +GLIBC_2.0 __close F +GLIBC_2.0 __cmsg_nxthdr F +GLIBC_2.0 __connect F +GLIBC_2.0 __ctype32_b D 0x4 +GLIBC_2.0 __ctype_b D 0x4 +GLIBC_2.0 __ctype_get_mb_cur_max F +GLIBC_2.0 __ctype_tolower D 0x4 +GLIBC_2.0 __ctype_toupper D 0x4 +GLIBC_2.0 __curbrk D 0x4 +GLIBC_2.0 __daylight D 0x4 +GLIBC_2.0 __dcgettext F +GLIBC_2.0 __default_morecore F +GLIBC_2.0 __deregister_frame F +GLIBC_2.0 __deregister_frame_info F +GLIBC_2.0 __dgettext F +GLIBC_2.0 __dup2 F +GLIBC_2.0 __environ D 0x4 +GLIBC_2.0 __errno_location F +GLIBC_2.0 __fcntl F +GLIBC_2.0 __ffs F +GLIBC_2.0 __finite F +GLIBC_2.0 __finitef F +GLIBC_2.0 __finitel F +GLIBC_2.0 __fork F +GLIBC_2.0 __fpu_control D 0x4 +GLIBC_2.0 __frame_state_for F +GLIBC_2.0 __free_hook D 0x4 +GLIBC_2.0 __fxstat F +GLIBC_2.0 __getdelim F +GLIBC_2.0 __getpagesize F +GLIBC_2.0 __getpgid F +GLIBC_2.0 __getpid F +GLIBC_2.0 __gettimeofday F +GLIBC_2.0 __gmtime_r F +GLIBC_2.0 __h_errno_location F +GLIBC_2.0 __isinf F +GLIBC_2.0 __isinff F +GLIBC_2.0 __isinfl F +GLIBC_2.0 __isnan F +GLIBC_2.0 __isnanf F +GLIBC_2.0 __isnanl F +GLIBC_2.0 __iswctype F +GLIBC_2.0 __ivaliduser F +GLIBC_2.0 __libc_calloc F +GLIBC_2.0 __libc_free F +GLIBC_2.0 __libc_init_first F +GLIBC_2.0 __libc_mallinfo F +GLIBC_2.0 __libc_malloc F +GLIBC_2.0 __libc_mallopt F +GLIBC_2.0 __libc_memalign F +GLIBC_2.0 __libc_pvalloc F +GLIBC_2.0 __libc_realloc F +GLIBC_2.0 __libc_start_main F +GLIBC_2.0 __libc_valloc F +GLIBC_2.0 __lseek F +GLIBC_2.0 __lxstat F +GLIBC_2.0 __malloc_hook D 0x4 +GLIBC_2.0 __malloc_initialize_hook D 0x4 +GLIBC_2.0 __mbrlen F +GLIBC_2.0 __mbrtowc F +GLIBC_2.0 __memalign_hook D 0x4 +GLIBC_2.0 __mempcpy F +GLIBC_2.0 __monstartup F +GLIBC_2.0 __morecore D 0x4 +GLIBC_2.0 __nss_configure_lookup F +GLIBC_2.0 __nss_database_lookup F +GLIBC_2.0 __nss_group_lookup F +GLIBC_2.0 __nss_hosts_lookup F +GLIBC_2.0 __nss_next F +GLIBC_2.0 __nss_passwd_lookup F +GLIBC_2.0 __open F +GLIBC_2.0 __overflow F +GLIBC_2.0 __pipe F +GLIBC_2.0 __printf_fp F +GLIBC_2.0 __profile_frequency F +GLIBC_2.0 __progname D 0x4 +GLIBC_2.0 __progname_full D 0x4 +GLIBC_2.0 __rcmd_errstr D 0x4 +GLIBC_2.0 __read F +GLIBC_2.0 __realloc_hook D 0x4 +GLIBC_2.0 __register_frame F +GLIBC_2.0 __register_frame_info F +GLIBC_2.0 __register_frame_info_table F +GLIBC_2.0 __register_frame_table F +GLIBC_2.0 __res_randomid F +GLIBC_2.0 __sbrk F +GLIBC_2.0 __sched_get_priority_max F +GLIBC_2.0 __sched_get_priority_min F +GLIBC_2.0 __sched_getparam F +GLIBC_2.0 __sched_getscheduler F +GLIBC_2.0 __sched_setscheduler F +GLIBC_2.0 __sched_yield F +GLIBC_2.0 __secure_getenv F +GLIBC_2.0 __select F +GLIBC_2.0 __send F +GLIBC_2.0 __setpgid F +GLIBC_2.0 __sigaction F +GLIBC_2.0 __sigaddset F +GLIBC_2.0 __sigdelset F +GLIBC_2.0 __sigismember F +GLIBC_2.0 __sigpause F +GLIBC_2.0 __sigsetjmp F +GLIBC_2.0 __stpcpy F +GLIBC_2.0 __stpncpy F +GLIBC_2.0 __strcasecmp F +GLIBC_2.0 __strdup F +GLIBC_2.0 __strerror_r F +GLIBC_2.0 __strtod_internal F +GLIBC_2.0 __strtof_internal F +GLIBC_2.0 __strtok_r F +GLIBC_2.0 __strtol_internal F +GLIBC_2.0 __strtold_internal F +GLIBC_2.0 __strtoll_internal F +GLIBC_2.0 __strtoq_internal F +GLIBC_2.0 __strtoul_internal F +GLIBC_2.0 __strtoull_internal F +GLIBC_2.0 __strtouq_internal F +GLIBC_2.0 __sysv_signal F +GLIBC_2.0 __timezone D 0x4 +GLIBC_2.0 __tzname D 0x8 +GLIBC_2.0 __uflow F +GLIBC_2.0 __underflow F +GLIBC_2.0 __vfscanf F +GLIBC_2.0 __vsnprintf F +GLIBC_2.0 __vsscanf F +GLIBC_2.0 __wait F +GLIBC_2.0 __waitpid F +GLIBC_2.0 __wcstod_internal F +GLIBC_2.0 __wcstof_internal F +GLIBC_2.0 __wcstol_internal F +GLIBC_2.0 __wcstold_internal F +GLIBC_2.0 __wcstoll_internal F +GLIBC_2.0 __wcstoul_internal F +GLIBC_2.0 __wcstoull_internal F +GLIBC_2.0 __write F +GLIBC_2.0 __xmknod F +GLIBC_2.0 __xpg_basename F +GLIBC_2.0 __xstat F +GLIBC_2.0 _environ D 0x4 +GLIBC_2.0 _exit F +GLIBC_2.0 _libc_intl_domainname D 0x5 +GLIBC_2.0 _longjmp F +GLIBC_2.0 _mcleanup F +GLIBC_2.0 _mcount F +GLIBC_2.0 _nl_default_dirname D 0x12 +GLIBC_2.0 _nl_domain_bindings D 0x4 +GLIBC_2.0 _nl_msg_cat_cntr D 0x4 +GLIBC_2.0 _null_auth D 0xc +GLIBC_2.0 _obstack D 0x4 +GLIBC_2.0 _obstack_allocated_p F +GLIBC_2.0 _obstack_begin F +GLIBC_2.0 _obstack_begin_1 F +GLIBC_2.0 _obstack_free F +GLIBC_2.0 _obstack_memory_used F +GLIBC_2.0 _obstack_newchunk F +GLIBC_2.0 _res D 0x200 +GLIBC_2.0 _rpc_dtablesize F +GLIBC_2.0 _seterr_reply F +GLIBC_2.0 _setjmp F +GLIBC_2.0 _sys_errlist D 0x1fc +GLIBC_2.0 _sys_nerr D 0x4 +GLIBC_2.0 _sys_siglist D 0x80 +GLIBC_2.0 _tolower F +GLIBC_2.0 _toupper F +GLIBC_2.0 a64l F +GLIBC_2.0 abort F +GLIBC_2.0 abs F +GLIBC_2.0 accept F +GLIBC_2.0 access F +GLIBC_2.0 acct F +GLIBC_2.0 addmntent F +GLIBC_2.0 adjtime F +GLIBC_2.0 adjtimex F +GLIBC_2.0 advance F +GLIBC_2.0 alarm F +GLIBC_2.0 alphasort F +GLIBC_2.0 argz_add F +GLIBC_2.0 argz_add_sep F +GLIBC_2.0 argz_append F +GLIBC_2.0 argz_count F +GLIBC_2.0 argz_create F +GLIBC_2.0 argz_create_sep F +GLIBC_2.0 argz_delete F +GLIBC_2.0 argz_extract F +GLIBC_2.0 argz_insert F +GLIBC_2.0 argz_next F +GLIBC_2.0 argz_replace F +GLIBC_2.0 argz_stringify F +GLIBC_2.0 asctime F +GLIBC_2.0 asctime_r F +GLIBC_2.0 asprintf F +GLIBC_2.0 atexit F +GLIBC_2.0 atof F +GLIBC_2.0 atoi F +GLIBC_2.0 atol F +GLIBC_2.0 atoll F +GLIBC_2.0 authnone_create F +GLIBC_2.0 authunix_create F +GLIBC_2.0 authunix_create_default F +GLIBC_2.0 basename F +GLIBC_2.0 bcmp F +GLIBC_2.0 bcopy F +GLIBC_2.0 bdflush F +GLIBC_2.0 bind F +GLIBC_2.0 bindresvport F +GLIBC_2.0 bindtextdomain F +GLIBC_2.0 brk F +GLIBC_2.0 bsd_signal F +GLIBC_2.0 bsearch F +GLIBC_2.0 btowc F +GLIBC_2.0 bzero F +GLIBC_2.0 calloc F +GLIBC_2.0 callrpc F +GLIBC_2.0 canonicalize_file_name F +GLIBC_2.0 catclose F +GLIBC_2.0 catgets F +GLIBC_2.0 catopen F +GLIBC_2.0 cfgetispeed F +GLIBC_2.0 cfgetospeed F +GLIBC_2.0 cfmakeraw F +GLIBC_2.0 cfree F +GLIBC_2.0 cfsetispeed F +GLIBC_2.0 cfsetospeed F +GLIBC_2.0 cfsetspeed F +GLIBC_2.0 chdir F +GLIBC_2.0 chflags F +GLIBC_2.0 chmod F +GLIBC_2.0 chown F +GLIBC_2.0 chroot F +GLIBC_2.0 clearenv F +GLIBC_2.0 clearerr F +GLIBC_2.0 clearerr_unlocked F +GLIBC_2.0 clnt_broadcast F +GLIBC_2.0 clnt_create F +GLIBC_2.0 clnt_pcreateerror F +GLIBC_2.0 clnt_perrno F +GLIBC_2.0 clnt_perror F +GLIBC_2.0 clnt_spcreateerror F +GLIBC_2.0 clnt_sperrno F +GLIBC_2.0 clnt_sperror F +GLIBC_2.0 clntraw_create F +GLIBC_2.0 clnttcp_create F +GLIBC_2.0 clntudp_bufcreate F +GLIBC_2.0 clntudp_create F +GLIBC_2.0 clock F +GLIBC_2.0 clone F +GLIBC_2.0 close F +GLIBC_2.0 closedir F +GLIBC_2.0 closelog F +GLIBC_2.0 confstr F +GLIBC_2.0 connect F +GLIBC_2.0 copysign F +GLIBC_2.0 copysignf F +GLIBC_2.0 creat F +GLIBC_2.0 create_module F +GLIBC_2.0 ctermid F +GLIBC_2.0 ctime F +GLIBC_2.0 ctime_r F +GLIBC_2.0 cuserid F +GLIBC_2.0 daemon F +GLIBC_2.0 daylight D 0x4 +GLIBC_2.0 dcgettext F +GLIBC_2.0 delete_module F +GLIBC_2.0 dgettext F +GLIBC_2.0 difftime F +GLIBC_2.0 dirfd F +GLIBC_2.0 dirname F +GLIBC_2.0 div F +GLIBC_2.0 dprintf F +GLIBC_2.0 drand48 F +GLIBC_2.0 drand48_r F +GLIBC_2.0 dup F +GLIBC_2.0 dup2 F +GLIBC_2.0 dysize F +GLIBC_2.0 ecvt F +GLIBC_2.0 ecvt_r F +GLIBC_2.0 endaliasent F +GLIBC_2.0 endfsent F +GLIBC_2.0 endgrent F +GLIBC_2.0 endhostent F +GLIBC_2.0 endmntent F +GLIBC_2.0 endnetent F +GLIBC_2.0 endnetgrent F +GLIBC_2.0 endprotoent F +GLIBC_2.0 endpwent F +GLIBC_2.0 endrpcent F +GLIBC_2.0 endservent F +GLIBC_2.0 endspent F +GLIBC_2.0 endttyent F +GLIBC_2.0 endusershell F +GLIBC_2.0 endutent F +GLIBC_2.0 environ D 0x4 +GLIBC_2.0 envz_add F +GLIBC_2.0 envz_entry F +GLIBC_2.0 envz_get F +GLIBC_2.0 envz_merge F +GLIBC_2.0 envz_remove F +GLIBC_2.0 envz_strip F +GLIBC_2.0 erand48 F +GLIBC_2.0 erand48_r F +GLIBC_2.0 err F +GLIBC_2.0 error F +GLIBC_2.0 error_at_line F +GLIBC_2.0 error_message_count D 0x4 +GLIBC_2.0 error_one_per_line D 0x4 +GLIBC_2.0 error_print_progname D 0x4 +GLIBC_2.0 errx F +GLIBC_2.0 ether_aton F +GLIBC_2.0 ether_aton_r F +GLIBC_2.0 ether_hostton F +GLIBC_2.0 ether_line F +GLIBC_2.0 ether_ntoa F +GLIBC_2.0 ether_ntoa_r F +GLIBC_2.0 ether_ntohost F +GLIBC_2.0 euidaccess F +GLIBC_2.0 execl F +GLIBC_2.0 execle F +GLIBC_2.0 execlp F +GLIBC_2.0 execv F +GLIBC_2.0 execve F +GLIBC_2.0 execvp F +GLIBC_2.0 exit F +GLIBC_2.0 fchdir F +GLIBC_2.0 fchflags F +GLIBC_2.0 fchmod F +GLIBC_2.0 fchown F +GLIBC_2.0 fclose F +GLIBC_2.0 fcloseall F +GLIBC_2.0 fcntl F +GLIBC_2.0 fcvt F +GLIBC_2.0 fcvt_r F +GLIBC_2.0 fdatasync F +GLIBC_2.0 fdopen F +GLIBC_2.0 feof F +GLIBC_2.0 feof_unlocked F +GLIBC_2.0 ferror F +GLIBC_2.0 ferror_unlocked F +GLIBC_2.0 fexecve F +GLIBC_2.0 fflush F +GLIBC_2.0 fflush_unlocked F +GLIBC_2.0 ffs F +GLIBC_2.0 fgetc F +GLIBC_2.0 fgetgrent F +GLIBC_2.0 fgetgrent_r F +GLIBC_2.0 fgetpos F +GLIBC_2.0 fgetpwent F +GLIBC_2.0 fgetpwent_r F +GLIBC_2.0 fgets F +GLIBC_2.0 fgetspent F +GLIBC_2.0 fgetspent_r F +GLIBC_2.0 fileno F +GLIBC_2.0 fileno_unlocked F +GLIBC_2.0 finite F +GLIBC_2.0 finitef F +GLIBC_2.0 finitel F +GLIBC_2.0 flock F +GLIBC_2.0 flockfile F +GLIBC_2.0 fnmatch F +GLIBC_2.0 fopen F +GLIBC_2.0 fopencookie F +GLIBC_2.0 fork F +GLIBC_2.0 fpathconf F +GLIBC_2.0 fprintf F +GLIBC_2.0 fputc F +GLIBC_2.0 fputc_unlocked F +GLIBC_2.0 fputs F +GLIBC_2.0 fread F +GLIBC_2.0 free F +GLIBC_2.0 freeaddrinfo F +GLIBC_2.0 freopen F +GLIBC_2.0 frexp F +GLIBC_2.0 frexpf F +GLIBC_2.0 frexpl F +GLIBC_2.0 fscanf F +GLIBC_2.0 fseek F +GLIBC_2.0 fsetpos F +GLIBC_2.0 fstatfs F +GLIBC_2.0 fsync F +GLIBC_2.0 ftell F +GLIBC_2.0 ftime F +GLIBC_2.0 ftok F +GLIBC_2.0 ftruncate F +GLIBC_2.0 ftrylockfile F +GLIBC_2.0 fts_children F +GLIBC_2.0 fts_close F +GLIBC_2.0 fts_open F +GLIBC_2.0 fts_read F +GLIBC_2.0 fts_set F +GLIBC_2.0 ftw F +GLIBC_2.0 funlockfile F +GLIBC_2.0 fwrite F +GLIBC_2.0 gcvt F +GLIBC_2.0 get_avphys_pages F +GLIBC_2.0 get_current_dir_name F +GLIBC_2.0 get_kernel_syms F +GLIBC_2.0 get_myaddress F +GLIBC_2.0 get_nprocs F +GLIBC_2.0 get_nprocs_conf F +GLIBC_2.0 get_phys_pages F +GLIBC_2.0 getaddrinfo F +GLIBC_2.0 getaliasbyname F +GLIBC_2.0 getaliasbyname_r F +GLIBC_2.0 getaliasent F +GLIBC_2.0 getaliasent_r F +GLIBC_2.0 getc F +GLIBC_2.0 getc_unlocked F +GLIBC_2.0 getchar F +GLIBC_2.0 getchar_unlocked F +GLIBC_2.0 getcwd F +GLIBC_2.0 getdelim F +GLIBC_2.0 getdirentries F +GLIBC_2.0 getdomainname F +GLIBC_2.0 getdtablesize F +GLIBC_2.0 getegid F +GLIBC_2.0 getenv F +GLIBC_2.0 geteuid F +GLIBC_2.0 getfsent F +GLIBC_2.0 getfsfile F +GLIBC_2.0 getfsspec F +GLIBC_2.0 getgid F +GLIBC_2.0 getgrent F +GLIBC_2.0 getgrent_r F +GLIBC_2.0 getgrgid F +GLIBC_2.0 getgrgid_r F +GLIBC_2.0 getgrnam F +GLIBC_2.0 getgrnam_r F +GLIBC_2.0 getgroups F +GLIBC_2.0 gethostbyaddr F +GLIBC_2.0 gethostbyaddr_r F +GLIBC_2.0 gethostbyname F +GLIBC_2.0 gethostbyname2 F +GLIBC_2.0 gethostbyname2_r F +GLIBC_2.0 gethostbyname_r F +GLIBC_2.0 gethostent F +GLIBC_2.0 gethostent_r F +GLIBC_2.0 gethostid F +GLIBC_2.0 gethostname F +GLIBC_2.0 getitimer F +GLIBC_2.0 getline F +GLIBC_2.0 getlogin F +GLIBC_2.0 getlogin_r F +GLIBC_2.0 getmntent F +GLIBC_2.0 getmntent_r F +GLIBC_2.0 getnetbyaddr F +GLIBC_2.0 getnetbyaddr_r F +GLIBC_2.0 getnetbyname F +GLIBC_2.0 getnetbyname_r F +GLIBC_2.0 getnetent F +GLIBC_2.0 getnetent_r F +GLIBC_2.0 getnetgrent F +GLIBC_2.0 getnetgrent_r F +GLIBC_2.0 getopt F +GLIBC_2.0 getopt_long F +GLIBC_2.0 getopt_long_only F +GLIBC_2.0 getpagesize F +GLIBC_2.0 getpass F +GLIBC_2.0 getpeername F +GLIBC_2.0 getpgid F +GLIBC_2.0 getpgrp F +GLIBC_2.0 getpid F +GLIBC_2.0 getppid F +GLIBC_2.0 getpriority F +GLIBC_2.0 getprotobyname F +GLIBC_2.0 getprotobyname_r F +GLIBC_2.0 getprotobynumber F +GLIBC_2.0 getprotobynumber_r F +GLIBC_2.0 getprotoent F +GLIBC_2.0 getprotoent_r F +GLIBC_2.0 getpublickey F +GLIBC_2.0 getpw F +GLIBC_2.0 getpwent F +GLIBC_2.0 getpwent_r F +GLIBC_2.0 getpwnam F +GLIBC_2.0 getpwnam_r F +GLIBC_2.0 getpwuid F +GLIBC_2.0 getpwuid_r F +GLIBC_2.0 getresgid F +GLIBC_2.0 getresuid F +GLIBC_2.0 getrlimit F +GLIBC_2.0 getrpcbyname F +GLIBC_2.0 getrpcbyname_r F +GLIBC_2.0 getrpcbynumber F +GLIBC_2.0 getrpcbynumber_r F +GLIBC_2.0 getrpcent F +GLIBC_2.0 getrpcent_r F +GLIBC_2.0 getrpcport F +GLIBC_2.0 getrusage F +GLIBC_2.0 gets F +GLIBC_2.0 getsecretkey F +GLIBC_2.0 getservbyname F +GLIBC_2.0 getservbyname_r F +GLIBC_2.0 getservbyport F +GLIBC_2.0 getservbyport_r F +GLIBC_2.0 getservent F +GLIBC_2.0 getservent_r F +GLIBC_2.0 getsid F +GLIBC_2.0 getsockname F +GLIBC_2.0 getsockopt F +GLIBC_2.0 getspent F +GLIBC_2.0 getspent_r F +GLIBC_2.0 getspnam F +GLIBC_2.0 getspnam_r F +GLIBC_2.0 getsubopt F +GLIBC_2.0 gettext F +GLIBC_2.0 gettimeofday F +GLIBC_2.0 getttyent F +GLIBC_2.0 getttynam F +GLIBC_2.0 getuid F +GLIBC_2.0 getusershell F +GLIBC_2.0 getutent F +GLIBC_2.0 getutent_r F +GLIBC_2.0 getutid F +GLIBC_2.0 getutid_r F +GLIBC_2.0 getutline F +GLIBC_2.0 getutline_r F +GLIBC_2.0 getw F +GLIBC_2.0 getwd F +GLIBC_2.0 glob F +GLIBC_2.0 glob_pattern_p F +GLIBC_2.0 globfree F +GLIBC_2.0 gmtime F +GLIBC_2.0 gmtime_r F +GLIBC_2.0 group_member F +GLIBC_2.0 gsignal F +GLIBC_2.0 gtty F +GLIBC_2.0 h_errlist D 0x14 +GLIBC_2.0 h_nerr D 0x4 +GLIBC_2.0 hasmntopt F +GLIBC_2.0 hcreate F +GLIBC_2.0 hcreate_r F +GLIBC_2.0 hdestroy F +GLIBC_2.0 hdestroy_r F +GLIBC_2.0 herror F +GLIBC_2.0 hsearch F +GLIBC_2.0 hsearch_r F +GLIBC_2.0 hstrerror F +GLIBC_2.0 htonl F +GLIBC_2.0 htons F +GLIBC_2.0 index F +GLIBC_2.0 inet_addr F +GLIBC_2.0 inet_aton F +GLIBC_2.0 inet_lnaof F +GLIBC_2.0 inet_makeaddr F +GLIBC_2.0 inet_netof F +GLIBC_2.0 inet_network F +GLIBC_2.0 inet_nsap_addr F +GLIBC_2.0 inet_nsap_ntoa F +GLIBC_2.0 inet_ntoa F +GLIBC_2.0 inet_ntop F +GLIBC_2.0 inet_pton F +GLIBC_2.0 init_module F +GLIBC_2.0 initgroups F +GLIBC_2.0 initstate F +GLIBC_2.0 initstate_r F +GLIBC_2.0 innetgr F +GLIBC_2.0 insque F +GLIBC_2.0 ioctl F +GLIBC_2.0 iruserok F +GLIBC_2.0 isalnum F +GLIBC_2.0 isalpha F +GLIBC_2.0 isascii F +GLIBC_2.0 isatty F +GLIBC_2.0 isblank F +GLIBC_2.0 iscntrl F +GLIBC_2.0 isdigit F +GLIBC_2.0 isfdtype F +GLIBC_2.0 isgraph F +GLIBC_2.0 isinf F +GLIBC_2.0 isinff F +GLIBC_2.0 isinfl F +GLIBC_2.0 islower F +GLIBC_2.0 isnan F +GLIBC_2.0 isnanf F +GLIBC_2.0 isnanl F +GLIBC_2.0 isprint F +GLIBC_2.0 ispunct F +GLIBC_2.0 isspace F +GLIBC_2.0 isupper F +GLIBC_2.0 iswalnum F +GLIBC_2.0 iswalpha F +GLIBC_2.0 iswcntrl F +GLIBC_2.0 iswctype F +GLIBC_2.0 iswdigit F +GLIBC_2.0 iswgraph F +GLIBC_2.0 iswlower F +GLIBC_2.0 iswprint F +GLIBC_2.0 iswpunct F +GLIBC_2.0 iswspace F +GLIBC_2.0 iswupper F +GLIBC_2.0 iswxdigit F +GLIBC_2.0 isxdigit F +GLIBC_2.0 jrand48 F +GLIBC_2.0 jrand48_r F +GLIBC_2.0 kill F +GLIBC_2.0 killpg F +GLIBC_2.0 klogctl F +GLIBC_2.0 l64a F +GLIBC_2.0 labs F +GLIBC_2.0 lchown F +GLIBC_2.0 lckpwdf F +GLIBC_2.0 lcong48 F +GLIBC_2.0 lcong48_r F +GLIBC_2.0 ldexp F +GLIBC_2.0 ldexpf F +GLIBC_2.0 ldexpl F +GLIBC_2.0 ldiv F +GLIBC_2.0 lfind F +GLIBC_2.0 link F +GLIBC_2.0 listen F +GLIBC_2.0 llabs F +GLIBC_2.0 lldiv F +GLIBC_2.0 llseek F +GLIBC_2.0 loc1 D 0x4 +GLIBC_2.0 loc2 D 0x4 +GLIBC_2.0 localeconv F +GLIBC_2.0 localtime F +GLIBC_2.0 localtime_r F +GLIBC_2.0 lockf F +GLIBC_2.0 locs D 0x4 +GLIBC_2.0 longjmp F +GLIBC_2.0 lrand48 F +GLIBC_2.0 lrand48_r F +GLIBC_2.0 lsearch F +GLIBC_2.0 lseek F +GLIBC_2.0 madvise F +GLIBC_2.0 mallinfo F +GLIBC_2.0 malloc F +GLIBC_2.0 malloc_get_state F +GLIBC_2.0 malloc_set_state F +GLIBC_2.0 malloc_stats F +GLIBC_2.0 malloc_trim F +GLIBC_2.0 malloc_usable_size F +GLIBC_2.0 mallopt F +GLIBC_2.0 mallwatch D 0x4 +GLIBC_2.0 mblen F +GLIBC_2.0 mbrlen F +GLIBC_2.0 mbrtowc F +GLIBC_2.0 mbsinit F +GLIBC_2.0 mbsnrtowcs F +GLIBC_2.0 mbsrtowcs F +GLIBC_2.0 mbstowcs F +GLIBC_2.0 mbtowc F +GLIBC_2.0 mcheck F +GLIBC_2.0 mcount F +GLIBC_2.0 memalign F +GLIBC_2.0 memccpy F +GLIBC_2.0 memchr F +GLIBC_2.0 memcmp F +GLIBC_2.0 memcpy F +GLIBC_2.0 memfrob F +GLIBC_2.0 memmem F +GLIBC_2.0 memmove F +GLIBC_2.0 memset F +GLIBC_2.0 mkdir F +GLIBC_2.0 mkfifo F +GLIBC_2.0 mkstemp F +GLIBC_2.0 mktemp F +GLIBC_2.0 mktime F +GLIBC_2.0 mlock F +GLIBC_2.0 mlockall F +GLIBC_2.0 mmap F +GLIBC_2.0 modf F +GLIBC_2.0 modff F +GLIBC_2.0 modfl F +GLIBC_2.0 monstartup F +GLIBC_2.0 mount F +GLIBC_2.0 mprobe F +GLIBC_2.0 mprotect F +GLIBC_2.0 mrand48 F +GLIBC_2.0 mrand48_r F +GLIBC_2.0 mremap F +GLIBC_2.0 msgctl F +GLIBC_2.0 msgget F +GLIBC_2.0 msgrcv F +GLIBC_2.0 msgsnd F +GLIBC_2.0 msync F +GLIBC_2.0 mtrace F +GLIBC_2.0 munlock F +GLIBC_2.0 munlockall F +GLIBC_2.0 munmap F +GLIBC_2.0 muntrace F +GLIBC_2.0 nanosleep F +GLIBC_2.0 nfsservctl F +GLIBC_2.0 nice F +GLIBC_2.0 nl_langinfo F +GLIBC_2.0 nrand48 F +GLIBC_2.0 nrand48_r F +GLIBC_2.0 ntohl F +GLIBC_2.0 ntohs F +GLIBC_2.0 obstack_alloc_failed_handler D 0x4 +GLIBC_2.0 obstack_exit_failure D 0x4 +GLIBC_2.0 obstack_free F +GLIBC_2.0 obstack_printf F +GLIBC_2.0 obstack_vprintf F +GLIBC_2.0 on_exit F +GLIBC_2.0 open F +GLIBC_2.0 open_memstream F +GLIBC_2.0 opendir F +GLIBC_2.0 openlog F +GLIBC_2.0 optarg D 0x4 +GLIBC_2.0 opterr D 0x4 +GLIBC_2.0 optind D 0x4 +GLIBC_2.0 optopt D 0x4 +GLIBC_2.0 parse_printf_format F +GLIBC_2.0 pathconf F +GLIBC_2.0 pause F +GLIBC_2.0 pclose F +GLIBC_2.0 perror F +GLIBC_2.0 personality F +GLIBC_2.0 pipe F +GLIBC_2.0 pmap_getmaps F +GLIBC_2.0 pmap_getport F +GLIBC_2.0 pmap_rmtcall F +GLIBC_2.0 pmap_set F +GLIBC_2.0 pmap_unset F +GLIBC_2.0 poll F +GLIBC_2.0 popen F +GLIBC_2.0 prctl F +GLIBC_2.0 printf F +GLIBC_2.0 profil F +GLIBC_2.0 profil_counter F +GLIBC_2.0 program_invocation_name D 0x4 +GLIBC_2.0 program_invocation_short_name D 0x4 +GLIBC_2.0 pselect F +GLIBC_2.0 psignal F +GLIBC_2.0 pthread_attr_destroy F +GLIBC_2.0 pthread_attr_getdetachstate F +GLIBC_2.0 pthread_attr_getinheritsched F +GLIBC_2.0 pthread_attr_getschedparam F +GLIBC_2.0 pthread_attr_getschedpolicy F +GLIBC_2.0 pthread_attr_getscope F +GLIBC_2.0 pthread_attr_init F +GLIBC_2.0 pthread_attr_setdetachstate F +GLIBC_2.0 pthread_attr_setinheritsched F +GLIBC_2.0 pthread_attr_setschedparam F +GLIBC_2.0 pthread_attr_setschedpolicy F +GLIBC_2.0 pthread_attr_setscope F +GLIBC_2.0 pthread_cond_broadcast F +GLIBC_2.0 pthread_cond_destroy F +GLIBC_2.0 pthread_cond_init F +GLIBC_2.0 pthread_cond_signal F +GLIBC_2.0 pthread_cond_timedwait F +GLIBC_2.0 pthread_cond_wait F +GLIBC_2.0 pthread_condattr_destroy F +GLIBC_2.0 pthread_condattr_init F +GLIBC_2.0 pthread_equal F +GLIBC_2.0 pthread_exit F +GLIBC_2.0 pthread_getschedparam F +GLIBC_2.0 pthread_mutex_destroy F +GLIBC_2.0 pthread_mutex_init F +GLIBC_2.0 pthread_mutex_lock F +GLIBC_2.0 pthread_mutex_unlock F +GLIBC_2.0 pthread_self F +GLIBC_2.0 pthread_setcancelstate F +GLIBC_2.0 pthread_setcanceltype F +GLIBC_2.0 pthread_setschedparam F +GLIBC_2.0 ptrace F +GLIBC_2.0 putc F +GLIBC_2.0 putc_unlocked F +GLIBC_2.0 putchar F +GLIBC_2.0 putchar_unlocked F +GLIBC_2.0 putenv F +GLIBC_2.0 putpwent F +GLIBC_2.0 puts F +GLIBC_2.0 putspent F +GLIBC_2.0 pututline F +GLIBC_2.0 putw F +GLIBC_2.0 pvalloc F +GLIBC_2.0 qecvt F +GLIBC_2.0 qecvt_r F +GLIBC_2.0 qfcvt F +GLIBC_2.0 qfcvt_r F +GLIBC_2.0 qgcvt F +GLIBC_2.0 qsort F +GLIBC_2.0 query_module F +GLIBC_2.0 quotactl F +GLIBC_2.0 raise F +GLIBC_2.0 rand F +GLIBC_2.0 rand_r F +GLIBC_2.0 random F +GLIBC_2.0 random_r F +GLIBC_2.0 rcmd F +GLIBC_2.0 re_comp F +GLIBC_2.0 re_compile_fastmap F +GLIBC_2.0 re_compile_pattern F +GLIBC_2.0 re_exec F +GLIBC_2.0 re_match F +GLIBC_2.0 re_match_2 F +GLIBC_2.0 re_max_failures D 0x4 +GLIBC_2.0 re_search F +GLIBC_2.0 re_search_2 F +GLIBC_2.0 re_set_registers F +GLIBC_2.0 re_set_syntax F +GLIBC_2.0 re_syntax_options D 0x4 +GLIBC_2.0 read F +GLIBC_2.0 readdir F +GLIBC_2.0 readdir_r F +GLIBC_2.0 readlink F +GLIBC_2.0 readv F +GLIBC_2.0 realloc F +GLIBC_2.0 realpath F +GLIBC_2.0 reboot F +GLIBC_2.0 recv F +GLIBC_2.0 recvfrom F +GLIBC_2.0 recvmsg F +GLIBC_2.0 regcomp F +GLIBC_2.0 regerror F +GLIBC_2.0 regexec F +GLIBC_2.0 regfree F +GLIBC_2.0 register_printf_function F +GLIBC_2.0 registerrpc F +GLIBC_2.0 remove F +GLIBC_2.0 remque F +GLIBC_2.0 rename F +GLIBC_2.0 res_init F +GLIBC_2.0 revoke F +GLIBC_2.0 rewind F +GLIBC_2.0 rewinddir F +GLIBC_2.0 rexec F +GLIBC_2.0 rexecoptions D 0x4 +GLIBC_2.0 rindex F +GLIBC_2.0 rmdir F +GLIBC_2.0 rpc_createerr D 0x10 +GLIBC_2.0 rpmatch F +GLIBC_2.0 rresvport F +GLIBC_2.0 ruserok F +GLIBC_2.0 ruserpass F +GLIBC_2.0 sbrk F +GLIBC_2.0 scalbn F +GLIBC_2.0 scalbnf F +GLIBC_2.0 scalbnl F +GLIBC_2.0 scandir F +GLIBC_2.0 scanf F +GLIBC_2.0 sched_get_priority_max F +GLIBC_2.0 sched_get_priority_min F +GLIBC_2.0 sched_getparam F +GLIBC_2.0 sched_getscheduler F +GLIBC_2.0 sched_rr_get_interval F +GLIBC_2.0 sched_setparam F +GLIBC_2.0 sched_setscheduler F +GLIBC_2.0 sched_yield F +GLIBC_2.0 seed48 F +GLIBC_2.0 seed48_r F +GLIBC_2.0 seekdir F +GLIBC_2.0 select F +GLIBC_2.0 semctl F +GLIBC_2.0 semget F +GLIBC_2.0 semop F +GLIBC_2.0 send F +GLIBC_2.0 sendmsg F +GLIBC_2.0 sendto F +GLIBC_2.0 setaliasent F +GLIBC_2.0 setbuf F +GLIBC_2.0 setbuffer F +GLIBC_2.0 setcontext F +GLIBC_2.0 setdomainname F +GLIBC_2.0 setegid F +GLIBC_2.0 setenv F +GLIBC_2.0 seteuid F +GLIBC_2.0 setfsent F +GLIBC_2.0 setfsgid F +GLIBC_2.0 setfsuid F +GLIBC_2.0 setgid F +GLIBC_2.0 setgrent F +GLIBC_2.0 setgroups F +GLIBC_2.0 sethostent F +GLIBC_2.0 sethostid F +GLIBC_2.0 sethostname F +GLIBC_2.0 setitimer F +GLIBC_2.0 setjmp F +GLIBC_2.0 setlinebuf F +GLIBC_2.0 setlocale F +GLIBC_2.0 setlogin F +GLIBC_2.0 setlogmask F +GLIBC_2.0 setmntent F +GLIBC_2.0 setnetent F +GLIBC_2.0 setnetgrent F +GLIBC_2.0 setpgid F +GLIBC_2.0 setpgrp F +GLIBC_2.0 setpriority F +GLIBC_2.0 setprotoent F +GLIBC_2.0 setpwent F +GLIBC_2.0 setregid F +GLIBC_2.0 setresgid F +GLIBC_2.0 setresuid F +GLIBC_2.0 setreuid F +GLIBC_2.0 setrlimit F +GLIBC_2.0 setrpcent F +GLIBC_2.0 setservent F +GLIBC_2.0 setsid F +GLIBC_2.0 setsockopt F +GLIBC_2.0 setspent F +GLIBC_2.0 setstate F +GLIBC_2.0 setstate_r F +GLIBC_2.0 settimeofday F +GLIBC_2.0 setttyent F +GLIBC_2.0 setuid F +GLIBC_2.0 setusershell F +GLIBC_2.0 setutent F +GLIBC_2.0 setvbuf F +GLIBC_2.0 sgetspent F +GLIBC_2.0 sgetspent_r F +GLIBC_2.0 shmat F +GLIBC_2.0 shmctl F +GLIBC_2.0 shmdt F +GLIBC_2.0 shmget F +GLIBC_2.0 shutdown F +GLIBC_2.0 sigaction F +GLIBC_2.0 sigaddset F +GLIBC_2.0 sigaltstack F +GLIBC_2.0 sigandset F +GLIBC_2.0 sigblock F +GLIBC_2.0 sigdelset F +GLIBC_2.0 sigemptyset F +GLIBC_2.0 sigfillset F +GLIBC_2.0 siggetmask F +GLIBC_2.0 siginterrupt F +GLIBC_2.0 sigisemptyset F +GLIBC_2.0 sigismember F +GLIBC_2.0 siglongjmp F +GLIBC_2.0 signal F +GLIBC_2.0 sigorset F +GLIBC_2.0 sigpause F +GLIBC_2.0 sigpending F +GLIBC_2.0 sigprocmask F +GLIBC_2.0 sigreturn F +GLIBC_2.0 sigsetmask F +GLIBC_2.0 sigstack F +GLIBC_2.0 sigsuspend F +GLIBC_2.0 sigvec F +GLIBC_2.0 sigwait F +GLIBC_2.0 sleep F +GLIBC_2.0 snprintf F +GLIBC_2.0 socket F +GLIBC_2.0 socketpair F +GLIBC_2.0 sprintf F +GLIBC_2.0 srand F +GLIBC_2.0 srand48 F +GLIBC_2.0 srand48_r F +GLIBC_2.0 srandom F +GLIBC_2.0 srandom_r F +GLIBC_2.0 sscanf F +GLIBC_2.0 ssignal F +GLIBC_2.0 sstk F +GLIBC_2.0 statfs F +GLIBC_2.0 stderr D 0x4 +GLIBC_2.0 stdin D 0x4 +GLIBC_2.0 stdout D 0x4 +GLIBC_2.0 step F +GLIBC_2.0 stime F +GLIBC_2.0 stpcpy F +GLIBC_2.0 stpncpy F +GLIBC_2.0 strcasecmp F +GLIBC_2.0 strcat F +GLIBC_2.0 strchr F +GLIBC_2.0 strcmp F +GLIBC_2.0 strcoll F +GLIBC_2.0 strcpy F +GLIBC_2.0 strcspn F +GLIBC_2.0 strdup F +GLIBC_2.0 strerror F +GLIBC_2.0 strerror_r F +GLIBC_2.0 strfmon F +GLIBC_2.0 strfry F +GLIBC_2.0 strftime F +GLIBC_2.0 strlen F +GLIBC_2.0 strncasecmp F +GLIBC_2.0 strncat F +GLIBC_2.0 strncmp F +GLIBC_2.0 strncpy F +GLIBC_2.0 strndup F +GLIBC_2.0 strnlen F +GLIBC_2.0 strpbrk F +GLIBC_2.0 strptime F +GLIBC_2.0 strrchr F +GLIBC_2.0 strsep F +GLIBC_2.0 strsignal F +GLIBC_2.0 strspn F +GLIBC_2.0 strstr F +GLIBC_2.0 strtod F +GLIBC_2.0 strtof F +GLIBC_2.0 strtok F +GLIBC_2.0 strtok_r F +GLIBC_2.0 strtol F +GLIBC_2.0 strtold F +GLIBC_2.0 strtoll F +GLIBC_2.0 strtoq F +GLIBC_2.0 strtoul F +GLIBC_2.0 strtoull F +GLIBC_2.0 strtouq F +GLIBC_2.0 strxfrm F +GLIBC_2.0 stty F +GLIBC_2.0 svc_exit F +GLIBC_2.0 svc_fdset D 0x80 +GLIBC_2.0 svc_getreq F +GLIBC_2.0 svc_getreqset F +GLIBC_2.0 svc_register F +GLIBC_2.0 svc_run F +GLIBC_2.0 svc_sendreply F +GLIBC_2.0 svc_unregister F +GLIBC_2.0 svcauthdes_stats D 0xc +GLIBC_2.0 svcerr_auth F +GLIBC_2.0 svcerr_decode F +GLIBC_2.0 svcerr_noproc F +GLIBC_2.0 svcerr_noprog F +GLIBC_2.0 svcerr_progvers F +GLIBC_2.0 svcerr_systemerr F +GLIBC_2.0 svcerr_weakauth F +GLIBC_2.0 svcfd_create F +GLIBC_2.0 svcraw_create F +GLIBC_2.0 svctcp_create F +GLIBC_2.0 svcudp_bufcreate F +GLIBC_2.0 svcudp_create F +GLIBC_2.0 svcudp_enablecache F +GLIBC_2.0 swab F +GLIBC_2.0 swapoff F +GLIBC_2.0 swapon F +GLIBC_2.0 symlink F +GLIBC_2.0 sync F +GLIBC_2.0 sys_errlist D 0x1fc +GLIBC_2.0 sys_nerr D 0x4 +GLIBC_2.0 sys_sigabbrev D 0x80 +GLIBC_2.0 sys_siglist D 0x80 +GLIBC_2.0 syscall F +GLIBC_2.0 sysconf F +GLIBC_2.0 sysctl F +GLIBC_2.0 sysinfo F +GLIBC_2.0 syslog F +GLIBC_2.0 system F +GLIBC_2.0 tcdrain F +GLIBC_2.0 tcflow F +GLIBC_2.0 tcflush F +GLIBC_2.0 tcgetattr F +GLIBC_2.0 tcgetpgrp F +GLIBC_2.0 tcsendbreak F +GLIBC_2.0 tcsetattr F +GLIBC_2.0 tcsetpgrp F +GLIBC_2.0 tdelete F +GLIBC_2.0 telldir F +GLIBC_2.0 tempnam F +GLIBC_2.0 textdomain F +GLIBC_2.0 tfind F +GLIBC_2.0 time F +GLIBC_2.0 timegm F +GLIBC_2.0 timelocal F +GLIBC_2.0 times F +GLIBC_2.0 timezone D 0x4 +GLIBC_2.0 tmpfile F +GLIBC_2.0 tmpnam F +GLIBC_2.0 tmpnam_r F +GLIBC_2.0 toascii F +GLIBC_2.0 tolower F +GLIBC_2.0 toupper F +GLIBC_2.0 towctrans F +GLIBC_2.0 towlower F +GLIBC_2.0 towupper F +GLIBC_2.0 tr_break F +GLIBC_2.0 truncate F +GLIBC_2.0 tsearch F +GLIBC_2.0 ttyname F +GLIBC_2.0 ttyname_r F +GLIBC_2.0 ttyslot F +GLIBC_2.0 twalk F +GLIBC_2.0 tzname D 0x8 +GLIBC_2.0 tzset F +GLIBC_2.0 ualarm F +GLIBC_2.0 ulckpwdf F +GLIBC_2.0 ulimit F +GLIBC_2.0 umask F +GLIBC_2.0 umount F +GLIBC_2.0 uname F +GLIBC_2.0 ungetc F +GLIBC_2.0 unlink F +GLIBC_2.0 unsetenv F +GLIBC_2.0 updwtmp F +GLIBC_2.0 uselib F +GLIBC_2.0 usleep F +GLIBC_2.0 ustat F +GLIBC_2.0 utime F +GLIBC_2.0 utimes F +GLIBC_2.0 utmpname F +GLIBC_2.0 valloc F +GLIBC_2.0 vasprintf F +GLIBC_2.0 vdprintf F +GLIBC_2.0 verr F +GLIBC_2.0 verrx F +GLIBC_2.0 vfork F +GLIBC_2.0 vfprintf F +GLIBC_2.0 vfscanf F +GLIBC_2.0 vhangup F +GLIBC_2.0 vlimit F +GLIBC_2.0 vprintf F +GLIBC_2.0 vscanf F +GLIBC_2.0 vsnprintf F +GLIBC_2.0 vsprintf F +GLIBC_2.0 vsscanf F +GLIBC_2.0 vsyslog F +GLIBC_2.0 vtimes F +GLIBC_2.0 vwarn F +GLIBC_2.0 vwarnx F +GLIBC_2.0 wait F +GLIBC_2.0 wait3 F +GLIBC_2.0 wait4 F +GLIBC_2.0 waitpid F +GLIBC_2.0 warn F +GLIBC_2.0 warnx F +GLIBC_2.0 wcpcpy F +GLIBC_2.0 wcpncpy F +GLIBC_2.0 wcrtomb F +GLIBC_2.0 wcscat F +GLIBC_2.0 wcschr F +GLIBC_2.0 wcscmp F +GLIBC_2.0 wcscoll F +GLIBC_2.0 wcscpy F +GLIBC_2.0 wcscspn F +GLIBC_2.0 wcsdup F +GLIBC_2.0 wcslen F +GLIBC_2.0 wcsncat F +GLIBC_2.0 wcsncmp F +GLIBC_2.0 wcsncpy F +GLIBC_2.0 wcsnrtombs F +GLIBC_2.0 wcspbrk F +GLIBC_2.0 wcsrchr F +GLIBC_2.0 wcsrtombs F +GLIBC_2.0 wcsspn F +GLIBC_2.0 wcsstr F +GLIBC_2.0 wcstod F +GLIBC_2.0 wcstof F +GLIBC_2.0 wcstok F +GLIBC_2.0 wcstol F +GLIBC_2.0 wcstold F +GLIBC_2.0 wcstombs F +GLIBC_2.0 wcstoq F +GLIBC_2.0 wcstoul F +GLIBC_2.0 wcstouq F +GLIBC_2.0 wcswidth F +GLIBC_2.0 wcsxfrm F +GLIBC_2.0 wctob F +GLIBC_2.0 wctomb F +GLIBC_2.0 wctrans F +GLIBC_2.0 wctype F +GLIBC_2.0 wcwidth F +GLIBC_2.0 wmemchr F +GLIBC_2.0 wmemcmp F +GLIBC_2.0 wmemcpy F +GLIBC_2.0 wmemmove F +GLIBC_2.0 wmemset F +GLIBC_2.0 write F +GLIBC_2.0 writev F +GLIBC_2.0 xdr_accepted_reply F +GLIBC_2.0 xdr_array F +GLIBC_2.0 xdr_authunix_parms F +GLIBC_2.0 xdr_bool F +GLIBC_2.0 xdr_bytes F +GLIBC_2.0 xdr_callhdr F +GLIBC_2.0 xdr_callmsg F +GLIBC_2.0 xdr_char F +GLIBC_2.0 xdr_cryptkeyarg F +GLIBC_2.0 xdr_cryptkeyarg2 F +GLIBC_2.0 xdr_cryptkeyres F +GLIBC_2.0 xdr_des_block F +GLIBC_2.0 xdr_double F +GLIBC_2.0 xdr_enum F +GLIBC_2.0 xdr_float F +GLIBC_2.0 xdr_free F +GLIBC_2.0 xdr_int F +GLIBC_2.0 xdr_key_netstarg F +GLIBC_2.0 xdr_key_netstres F +GLIBC_2.0 xdr_keybuf F +GLIBC_2.0 xdr_keystatus F +GLIBC_2.0 xdr_long F +GLIBC_2.0 xdr_netobj F +GLIBC_2.0 xdr_opaque F +GLIBC_2.0 xdr_opaque_auth F +GLIBC_2.0 xdr_pmap F +GLIBC_2.0 xdr_pmaplist F +GLIBC_2.0 xdr_pointer F +GLIBC_2.0 xdr_reference F +GLIBC_2.0 xdr_rejected_reply F +GLIBC_2.0 xdr_replymsg F +GLIBC_2.0 xdr_rmtcall_args F +GLIBC_2.0 xdr_rmtcallres F +GLIBC_2.0 xdr_short F +GLIBC_2.0 xdr_string F +GLIBC_2.0 xdr_u_char F +GLIBC_2.0 xdr_u_int F +GLIBC_2.0 xdr_u_long F +GLIBC_2.0 xdr_u_short F +GLIBC_2.0 xdr_union F +GLIBC_2.0 xdr_vector F +GLIBC_2.0 xdr_void F +GLIBC_2.0 xdr_wrapstring F +GLIBC_2.0 xdrmem_create F +GLIBC_2.0 xdrrec_create F +GLIBC_2.0 xdrrec_endofrecord F +GLIBC_2.0 xdrrec_eof F +GLIBC_2.0 xdrrec_skiprecord F +GLIBC_2.0 xdrstdio_create F +GLIBC_2.0 xencrypt F +GLIBC_2.0 xprt_register F +GLIBC_2.0 xprt_unregister F +GLIBC_2.1 GLIBC_2.1 A +GLIBC_2.1 _IO_2_1_stderr_ D 0xa0 +GLIBC_2.1 _IO_2_1_stdin_ D 0xa0 +GLIBC_2.1 _IO_2_1_stdout_ D 0xa0 +GLIBC_2.1 _IO_do_write F +GLIBC_2.1 _IO_fclose F +GLIBC_2.1 _IO_fdopen F +GLIBC_2.1 _IO_fgetpos64 F +GLIBC_2.1 _IO_file_attach F +GLIBC_2.1 _IO_file_close_it F +GLIBC_2.1 _IO_file_finish F +GLIBC_2.1 _IO_file_fopen F +GLIBC_2.1 _IO_file_init F +GLIBC_2.1 _IO_file_overflow F +GLIBC_2.1 _IO_file_seekoff F +GLIBC_2.1 _IO_file_setbuf F +GLIBC_2.1 _IO_file_sync F +GLIBC_2.1 _IO_file_underflow F +GLIBC_2.1 _IO_file_write F +GLIBC_2.1 _IO_file_xsputn F +GLIBC_2.1 _IO_fopen F +GLIBC_2.1 _IO_fsetpos64 F +GLIBC_2.1 _IO_getline_info F +GLIBC_2.1 _IO_popen F +GLIBC_2.1 _IO_proc_close F +GLIBC_2.1 _IO_proc_open F +GLIBC_2.1 __asprintf F +GLIBC_2.1 __backtrace F +GLIBC_2.1 __backtrace_symbols F +GLIBC_2.1 __backtrace_symbols_fd F +GLIBC_2.1 __duplocale F +GLIBC_2.1 __freelocale F +GLIBC_2.1 __fxstat64 F +GLIBC_2.1 __isalnum_l F +GLIBC_2.1 __isalpha_l F +GLIBC_2.1 __isascii_l F +GLIBC_2.1 __isblank_l F +GLIBC_2.1 __iscntrl_l F +GLIBC_2.1 __isdigit_l F +GLIBC_2.1 __isgraph_l F +GLIBC_2.1 __islower_l F +GLIBC_2.1 __isprint_l F +GLIBC_2.1 __ispunct_l F +GLIBC_2.1 __isspace_l F +GLIBC_2.1 __isupper_l F +GLIBC_2.1 __iswalnum_l F +GLIBC_2.1 __iswalpha_l F +GLIBC_2.1 __iswblank_l F +GLIBC_2.1 __iswcntrl_l F +GLIBC_2.1 __iswctype_l F +GLIBC_2.1 __iswdigit_l F +GLIBC_2.1 __iswgraph_l F +GLIBC_2.1 __iswlower_l F +GLIBC_2.1 __iswprint_l F +GLIBC_2.1 __iswpunct_l F +GLIBC_2.1 __iswspace_l F +GLIBC_2.1 __iswupper_l F +GLIBC_2.1 __iswxdigit_l F +GLIBC_2.1 __isxdigit_l F +GLIBC_2.1 __key_decryptsession_pk_LOCAL D 0x4 +GLIBC_2.1 __key_encryptsession_pk_LOCAL D 0x4 +GLIBC_2.1 __key_gendes_LOCAL D 0x4 +GLIBC_2.1 __libc_allocate_rtsig F +GLIBC_2.1 __libc_current_sigrtmax F +GLIBC_2.1 __libc_current_sigrtmin F +GLIBC_2.1 __libc_freeres F +GLIBC_2.1 __libc_sa_len F +GLIBC_2.1 __lxstat64 F +GLIBC_2.1 __newlocale F +GLIBC_2.1 __poll F +GLIBC_2.1 __pread64 F +GLIBC_2.1 __pwrite64 F +GLIBC_2.1 __rawmemchr F +GLIBC_2.1 __signbit F +GLIBC_2.1 __signbitf F +GLIBC_2.1 __strcasecmp_l F +GLIBC_2.1 __strcasestr F +GLIBC_2.1 __strcoll_l F +GLIBC_2.1 __strfmon_l F +GLIBC_2.1 __strncasecmp_l F +GLIBC_2.1 __strtod_l F +GLIBC_2.1 __strtof_l F +GLIBC_2.1 __strtol_l F +GLIBC_2.1 __strtold_l F +GLIBC_2.1 __strtoll_l F +GLIBC_2.1 __strtoul_l F +GLIBC_2.1 __strtoull_l F +GLIBC_2.1 __strxfrm_l F +GLIBC_2.1 __toascii_l F +GLIBC_2.1 __tolower_l F +GLIBC_2.1 __toupper_l F +GLIBC_2.1 __towctrans F +GLIBC_2.1 __towctrans_l F +GLIBC_2.1 __towlower_l F +GLIBC_2.1 __towupper_l F +GLIBC_2.1 __wcscasecmp_l F +GLIBC_2.1 __wcscoll_l F +GLIBC_2.1 __wcsncasecmp_l F +GLIBC_2.1 __wcstod_l F +GLIBC_2.1 __wcstof_l F +GLIBC_2.1 __wcstol_l F +GLIBC_2.1 __wcstold_l F +GLIBC_2.1 __wcstoll_l F +GLIBC_2.1 __wcstoul_l F +GLIBC_2.1 __wcstoull_l F +GLIBC_2.1 __wcsxfrm_l F +GLIBC_2.1 __wctype_l F +GLIBC_2.1 __xstat64 F +GLIBC_2.1 _authenticate F +GLIBC_2.1 _dl_mcount_wrapper F +GLIBC_2.1 _dl_mcount_wrapper_check F +GLIBC_2.1 _sys_errlist D 0x1fc +GLIBC_2.1 _sys_nerr D 0x4 +GLIBC_2.1 _sys_siglist D 0x100 +GLIBC_2.1 addseverity F +GLIBC_2.1 alphasort64 F +GLIBC_2.1 argp_err_exit_status D 0x4 +GLIBC_2.1 argp_error F +GLIBC_2.1 argp_failure F +GLIBC_2.1 argp_help F +GLIBC_2.1 argp_parse F +GLIBC_2.1 argp_program_bug_address D 0x4 +GLIBC_2.1 argp_program_version D 0x4 +GLIBC_2.1 argp_program_version_hook D 0x4 +GLIBC_2.1 argp_state_help F +GLIBC_2.1 argp_usage F +GLIBC_2.1 authdes_create F +GLIBC_2.1 authdes_getucred F +GLIBC_2.1 authdes_pk_create F +GLIBC_2.1 backtrace F +GLIBC_2.1 backtrace_symbols F +GLIBC_2.1 backtrace_symbols_fd F +GLIBC_2.1 capget F +GLIBC_2.1 capset F +GLIBC_2.1 cbc_crypt F +GLIBC_2.1 clntunix_create F +GLIBC_2.1 creat64 F +GLIBC_2.1 des_setparity F +GLIBC_2.1 ecb_crypt F +GLIBC_2.1 endutxent F +GLIBC_2.1 fattach F +GLIBC_2.1 fclose F +GLIBC_2.1 fdetach F +GLIBC_2.1 fdopen F +GLIBC_2.1 ffsl F +GLIBC_2.1 ffsll F +GLIBC_2.1 fgetc_unlocked F +GLIBC_2.1 fgetpos64 F +GLIBC_2.1 fgets_unlocked F +GLIBC_2.1 fmtmsg F +GLIBC_2.1 fopen F +GLIBC_2.1 fopen64 F +GLIBC_2.1 fputs_unlocked F +GLIBC_2.1 fread_unlocked F +GLIBC_2.1 freopen64 F +GLIBC_2.1 fseeko F +GLIBC_2.1 fseeko64 F +GLIBC_2.1 fsetpos64 F +GLIBC_2.1 fstatfs64 F +GLIBC_2.1 fstatvfs F +GLIBC_2.1 fstatvfs64 F +GLIBC_2.1 ftello F +GLIBC_2.1 ftello64 F +GLIBC_2.1 ftruncate64 F +GLIBC_2.1 ftw64 F +GLIBC_2.1 fwrite_unlocked F +GLIBC_2.1 gai_strerror F +GLIBC_2.1 getcontext F +GLIBC_2.1 getdate F +GLIBC_2.1 getdate_err D 0x4 +GLIBC_2.1 getdate_r F +GLIBC_2.1 getmsg F +GLIBC_2.1 getnameinfo F +GLIBC_2.1 getnetname F +GLIBC_2.1 getpmsg F +GLIBC_2.1 getpt F +GLIBC_2.1 getrlimit64 F +GLIBC_2.1 getutxent F +GLIBC_2.1 getutxid F +GLIBC_2.1 getutxline F +GLIBC_2.1 glob64 F +GLIBC_2.1 globfree64 F +GLIBC_2.1 gnu_get_libc_release F +GLIBC_2.1 gnu_get_libc_version F +GLIBC_2.1 grantpt F +GLIBC_2.1 host2netname F +GLIBC_2.1 iconv F +GLIBC_2.1 iconv_close F +GLIBC_2.1 iconv_open F +GLIBC_2.1 if_freenameindex F +GLIBC_2.1 if_indextoname F +GLIBC_2.1 if_nameindex F +GLIBC_2.1 if_nametoindex F +GLIBC_2.1 in6addr_any D 0x10 +GLIBC_2.1 in6addr_loopback D 0x10 +GLIBC_2.1 isastream F +GLIBC_2.1 iswblank F +GLIBC_2.1 key_decryptsession F +GLIBC_2.1 key_decryptsession_pk F +GLIBC_2.1 key_encryptsession F +GLIBC_2.1 key_encryptsession_pk F +GLIBC_2.1 key_gendes F +GLIBC_2.1 key_get_conv F +GLIBC_2.1 key_secretkey_is_set F +GLIBC_2.1 key_setnet F +GLIBC_2.1 key_setsecret F +GLIBC_2.1 lockf64 F +GLIBC_2.1 lseek64 F +GLIBC_2.1 makecontext F +GLIBC_2.1 mempcpy F +GLIBC_2.1 mmap64 F +GLIBC_2.1 netname2host F +GLIBC_2.1 netname2user F +GLIBC_2.1 nftw F +GLIBC_2.1 nftw64 F +GLIBC_2.1 ntp_adjtime F +GLIBC_2.1 ntp_gettime F +GLIBC_2.1 open64 F +GLIBC_2.1 passwd2des F +GLIBC_2.1 pclose F +GLIBC_2.1 popen F +GLIBC_2.1 pread F +GLIBC_2.1 pread64 F +GLIBC_2.1 printf_size F +GLIBC_2.1 printf_size_info F +GLIBC_2.1 pthread_attr_init F +GLIBC_2.1 ptsname F +GLIBC_2.1 ptsname_r F +GLIBC_2.1 putgrent F +GLIBC_2.1 putmsg F +GLIBC_2.1 putpmsg F +GLIBC_2.1 pututxline F +GLIBC_2.1 pwrite F +GLIBC_2.1 pwrite64 F +GLIBC_2.1 rawmemchr F +GLIBC_2.1 readdir64 F +GLIBC_2.1 readdir64_r F +GLIBC_2.1 rtime F +GLIBC_2.1 scandir64 F +GLIBC_2.1 sendfile F +GLIBC_2.1 setrlimit64 F +GLIBC_2.1 setutxent F +GLIBC_2.1 sighold F +GLIBC_2.1 sigignore F +GLIBC_2.1 sigqueue F +GLIBC_2.1 sigrelse F +GLIBC_2.1 sigset F +GLIBC_2.1 sigtimedwait F +GLIBC_2.1 sigwaitinfo F +GLIBC_2.1 statfs64 F +GLIBC_2.1 statvfs F +GLIBC_2.1 statvfs64 F +GLIBC_2.1 strcasestr F +GLIBC_2.1 strtoimax F +GLIBC_2.1 strtoumax F +GLIBC_2.1 strverscmp F +GLIBC_2.1 svcunix_create F +GLIBC_2.1 svcunixfd_create F +GLIBC_2.1 swapcontext F +GLIBC_2.1 sys_errlist D 0x1fc +GLIBC_2.1 sys_nerr D 0x4 +GLIBC_2.1 sys_sigabbrev D 0x100 +GLIBC_2.1 sys_siglist D 0x100 +GLIBC_2.1 sysv_signal F +GLIBC_2.1 tcgetsid F +GLIBC_2.1 tdestroy F +GLIBC_2.1 tmpfile F +GLIBC_2.1 tmpfile64 F +GLIBC_2.1 truncate64 F +GLIBC_2.1 umount2 F +GLIBC_2.1 unlockpt F +GLIBC_2.1 updwtmpx F +GLIBC_2.1 user2netname F +GLIBC_2.1 utmpxname F +GLIBC_2.1 versionsort F +GLIBC_2.1 versionsort64 F +GLIBC_2.1 waitid F +GLIBC_2.1 wcscasecmp F +GLIBC_2.1 wcsncasecmp F +GLIBC_2.1 wcsnlen F +GLIBC_2.1 wcstoimax F +GLIBC_2.1 wcstoll F +GLIBC_2.1 wcstoull F +GLIBC_2.1 wcstoumax F +GLIBC_2.1 wcswcs F +GLIBC_2.1 wordexp F +GLIBC_2.1 wordfree F +GLIBC_2.1 xdecrypt F +GLIBC_2.1 xdr_authdes_cred F +GLIBC_2.1 xdr_authdes_verf F +GLIBC_2.1 xdr_getcredres F +GLIBC_2.1 xdr_int16_t F +GLIBC_2.1 xdr_int32_t F +GLIBC_2.1 xdr_int8_t F +GLIBC_2.1 xdr_netnamestr F +GLIBC_2.1 xdr_sizeof F +GLIBC_2.1 xdr_uint16_t F +GLIBC_2.1 xdr_uint32_t F +GLIBC_2.1 xdr_uint8_t F +GLIBC_2.1 xdr_unixcred F +GLIBC_2.1.1 GLIBC_2.1.1 A +GLIBC_2.1.1 _Exit F +GLIBC_2.1.1 __mempcpy_small F +GLIBC_2.1.1 __stpcpy_small F +GLIBC_2.1.1 __strcpy_small F +GLIBC_2.1.1 __strcspn_c1 F +GLIBC_2.1.1 __strcspn_c2 F +GLIBC_2.1.1 __strcspn_c3 F +GLIBC_2.1.1 __strpbrk_c2 F +GLIBC_2.1.1 __strpbrk_c3 F +GLIBC_2.1.1 __strsep_1c F +GLIBC_2.1.1 __strsep_2c F +GLIBC_2.1.1 __strsep_3c F +GLIBC_2.1.1 __strsep_g F +GLIBC_2.1.1 __strspn_c1 F +GLIBC_2.1.1 __strspn_c2 F +GLIBC_2.1.1 __strspn_c3 F +GLIBC_2.1.1 __strtok_r_1c F +GLIBC_2.1.1 __strverscmp F +GLIBC_2.1.1 getutmp F +GLIBC_2.1.1 getutmpx F +GLIBC_2.1.1 imaxabs F +GLIBC_2.1.1 imaxdiv F +GLIBC_2.1.1 strchrnul F +GLIBC_2.1.1 xdr_hyper F +GLIBC_2.1.1 xdr_int64_t F +GLIBC_2.1.1 xdr_longlong_t F +GLIBC_2.1.1 xdr_u_hyper F +GLIBC_2.1.1 xdr_u_longlong_t F +GLIBC_2.1.1 xdr_uint64_t F +GLIBC_2.1.2 GLIBC_2.1.2 A +GLIBC_2.1.2 __vfork F +GLIBC_2.1.2 getaliasbyname_r F +GLIBC_2.1.2 getaliasent_r F +GLIBC_2.1.2 getgrent_r F +GLIBC_2.1.2 getgrgid_r F +GLIBC_2.1.2 getgrnam_r F +GLIBC_2.1.2 gethostbyaddr_r F +GLIBC_2.1.2 gethostbyname2_r F +GLIBC_2.1.2 gethostbyname_r F +GLIBC_2.1.2 gethostent_r F +GLIBC_2.1.2 getnetbyaddr_r F +GLIBC_2.1.2 getnetbyname_r F +GLIBC_2.1.2 getnetent_r F +GLIBC_2.1.2 getprotobyname_r F +GLIBC_2.1.2 getprotobynumber_r F +GLIBC_2.1.2 getprotoent_r F +GLIBC_2.1.2 getpwent_r F +GLIBC_2.1.2 getpwnam_r F +GLIBC_2.1.2 getpwuid_r F +GLIBC_2.1.2 getrpcbyname_r F +GLIBC_2.1.2 getrpcbynumber_r F +GLIBC_2.1.2 getrpcent_r F +GLIBC_2.1.2 getservbyname_r F +GLIBC_2.1.2 getservbyport_r F +GLIBC_2.1.2 getservent_r F +GLIBC_2.1.2 getspent_r F +GLIBC_2.1.2 getspnam_r F +GLIBC_2.1.3 GLIBC_2.1.3 A +GLIBC_2.1.3 __cxa_atexit F +GLIBC_2.1.3 __cxa_finalize F +GLIBC_2.1.3 __sigsuspend F +GLIBC_2.10 GLIBC_2.10 A +GLIBC_2.10 __cxa_at_quick_exit F +GLIBC_2.10 __posix_getopt F +GLIBC_2.10 accept4 F +GLIBC_2.10 endsgent F +GLIBC_2.10 fallocate F +GLIBC_2.10 fgetsgent F +GLIBC_2.10 fgetsgent_r F +GLIBC_2.10 getsgent F +GLIBC_2.10 getsgent_r F +GLIBC_2.10 getsgnam F +GLIBC_2.10 getsgnam_r F +GLIBC_2.10 malloc_info F +GLIBC_2.10 preadv F +GLIBC_2.10 preadv64 F +GLIBC_2.10 psiginfo F +GLIBC_2.10 putsgent F +GLIBC_2.10 pwritev F +GLIBC_2.10 pwritev64 F +GLIBC_2.10 quick_exit F +GLIBC_2.10 register_printf_modifier F +GLIBC_2.10 register_printf_specifier F +GLIBC_2.10 register_printf_type F +GLIBC_2.10 setsgent F +GLIBC_2.10 sgetsgent F +GLIBC_2.10 sgetsgent_r F +GLIBC_2.11 GLIBC_2.11 A +GLIBC_2.11 __longjmp_chk F +GLIBC_2.11 execvpe F +GLIBC_2.11 fallocate64 F +GLIBC_2.11 mkostemps F +GLIBC_2.11 mkostemps64 F +GLIBC_2.11 mkstemps F +GLIBC_2.11 mkstemps64 F +GLIBC_2.12 GLIBC_2.12 A +GLIBC_2.12 _sys_errlist D 0x21c +GLIBC_2.12 _sys_nerr D 0x4 +GLIBC_2.12 ntp_gettimex F +GLIBC_2.12 recvmmsg F +GLIBC_2.12 sys_errlist D 0x21c +GLIBC_2.12 sys_nerr D 0x4 +GLIBC_2.13 GLIBC_2.13 A +GLIBC_2.13 fanotify_init F +GLIBC_2.13 fanotify_mark F +GLIBC_2.13 prlimit F +GLIBC_2.13 prlimit64 F +GLIBC_2.14 GLIBC_2.14 A +GLIBC_2.14 clock_adjtime F +GLIBC_2.14 name_to_handle_at F +GLIBC_2.14 open_by_handle_at F +GLIBC_2.14 sendmmsg F +GLIBC_2.14 setns F +GLIBC_2.14 syncfs F +GLIBC_2.15 GLIBC_2.15 A +GLIBC_2.15 __fdelt_chk F +GLIBC_2.15 __fdelt_warn F +GLIBC_2.15 posix_spawn F +GLIBC_2.15 posix_spawnp F +GLIBC_2.15 process_vm_readv F +GLIBC_2.15 process_vm_writev F +GLIBC_2.15 scandirat F +GLIBC_2.15 scandirat64 F +GLIBC_2.16 GLIBC_2.16 A +GLIBC_2.16 __getauxval F +GLIBC_2.16 __getshmlba F +GLIBC_2.16 __poll_chk F +GLIBC_2.16 __ppoll_chk F +GLIBC_2.16 _sys_errlist D 0x220 +GLIBC_2.16 _sys_nerr D 0x4 +GLIBC_2.16 aligned_alloc F +GLIBC_2.16 c16rtomb F +GLIBC_2.16 c32rtomb F +GLIBC_2.16 getauxval F +GLIBC_2.16 mbrtoc16 F +GLIBC_2.16 mbrtoc32 F +GLIBC_2.16 sys_errlist D 0x220 +GLIBC_2.16 sys_nerr D 0x4 +GLIBC_2.16 timespec_get F +GLIBC_2.17 GLIBC_2.17 A +GLIBC_2.17 clock_getcpuclockid F +GLIBC_2.17 clock_getres F +GLIBC_2.17 clock_gettime F +GLIBC_2.17 clock_nanosleep F +GLIBC_2.17 clock_settime F +GLIBC_2.17 secure_getenv F +GLIBC_2.18 GLIBC_2.18 A +GLIBC_2.18 __cxa_thread_atexit_impl F +GLIBC_2.2 GLIBC_2.2 A +GLIBC_2.2 _IO_adjust_wcolumn F +GLIBC_2.2 _IO_fgetpos F +GLIBC_2.2 _IO_fgetpos64 F +GLIBC_2.2 _IO_free_wbackup_area F +GLIBC_2.2 _IO_fsetpos F +GLIBC_2.2 _IO_fsetpos64 F +GLIBC_2.2 _IO_init_wmarker F +GLIBC_2.2 _IO_iter_begin F +GLIBC_2.2 _IO_iter_end F +GLIBC_2.2 _IO_iter_file F +GLIBC_2.2 _IO_iter_next F +GLIBC_2.2 _IO_least_wmarker F +GLIBC_2.2 _IO_list_lock F +GLIBC_2.2 _IO_list_resetlock F +GLIBC_2.2 _IO_list_unlock F +GLIBC_2.2 _IO_seekwmark F +GLIBC_2.2 _IO_sputbackwc F +GLIBC_2.2 _IO_sungetwc F +GLIBC_2.2 _IO_switch_to_main_wget_area F +GLIBC_2.2 _IO_switch_to_wbackup_area F +GLIBC_2.2 _IO_switch_to_wget_mode F +GLIBC_2.2 _IO_unsave_wmarkers F +GLIBC_2.2 _IO_wdefault_doallocate F +GLIBC_2.2 _IO_wdefault_finish F +GLIBC_2.2 _IO_wdefault_pbackfail F +GLIBC_2.2 _IO_wdefault_uflow F +GLIBC_2.2 _IO_wdefault_xsgetn F +GLIBC_2.2 _IO_wdefault_xsputn F +GLIBC_2.2 _IO_wdo_write F +GLIBC_2.2 _IO_wdoallocbuf F +GLIBC_2.2 _IO_wfile_jumps D 0x54 +GLIBC_2.2 _IO_wfile_overflow F +GLIBC_2.2 _IO_wfile_seekoff F +GLIBC_2.2 _IO_wfile_sync F +GLIBC_2.2 _IO_wfile_underflow F +GLIBC_2.2 _IO_wfile_xsputn F +GLIBC_2.2 _IO_wmarker_delta F +GLIBC_2.2 _IO_wsetb F +GLIBC_2.2 __assert F +GLIBC_2.2 __ctype32_tolower D 0x4 +GLIBC_2.2 __ctype32_toupper D 0x4 +GLIBC_2.2 __cyg_profile_func_enter F +GLIBC_2.2 __cyg_profile_func_exit F +GLIBC_2.2 __endmntent F +GLIBC_2.2 __fbufsize F +GLIBC_2.2 __flbf F +GLIBC_2.2 __fpending F +GLIBC_2.2 __fpurge F +GLIBC_2.2 __freadable F +GLIBC_2.2 __freading F +GLIBC_2.2 __fsetlocking F +GLIBC_2.2 __fwritable F +GLIBC_2.2 __fwriting F +GLIBC_2.2 __fxstat64 F +GLIBC_2.2 __getmntent_r F +GLIBC_2.2 __lxstat64 F +GLIBC_2.2 __nl_langinfo_l F +GLIBC_2.2 __open64 F +GLIBC_2.2 __res_init F +GLIBC_2.2 __res_nclose F +GLIBC_2.2 __res_ninit F +GLIBC_2.2 __res_state F +GLIBC_2.2 __setmntent F +GLIBC_2.2 __statfs F +GLIBC_2.2 __strndup F +GLIBC_2.2 __sysconf F +GLIBC_2.2 __sysctl F +GLIBC_2.2 __wctrans_l F +GLIBC_2.2 __woverflow F +GLIBC_2.2 __wuflow F +GLIBC_2.2 __wunderflow F +GLIBC_2.2 __xpg_sigpause F +GLIBC_2.2 __xstat64 F +GLIBC_2.2 _flushlbf F +GLIBC_2.2 _res_hconf D 0x30 +GLIBC_2.2 bind_textdomain_codeset F +GLIBC_2.2 dcngettext F +GLIBC_2.2 dngettext F +GLIBC_2.2 fgetpos F +GLIBC_2.2 fgetpos64 F +GLIBC_2.2 fgetwc F +GLIBC_2.2 fgetwc_unlocked F +GLIBC_2.2 fgetws F +GLIBC_2.2 fgetws_unlocked F +GLIBC_2.2 fmemopen F +GLIBC_2.2 fopencookie F +GLIBC_2.2 fputwc F +GLIBC_2.2 fputwc_unlocked F +GLIBC_2.2 fputws F +GLIBC_2.2 fputws_unlocked F +GLIBC_2.2 fsetpos F +GLIBC_2.2 fsetpos64 F +GLIBC_2.2 fwide F +GLIBC_2.2 fwprintf F +GLIBC_2.2 fwscanf F +GLIBC_2.2 getdirentries64 F +GLIBC_2.2 getloadavg F +GLIBC_2.2 getwc F +GLIBC_2.2 getwc_unlocked F +GLIBC_2.2 getwchar F +GLIBC_2.2 getwchar_unlocked F +GLIBC_2.2 glob64 F +GLIBC_2.2 iruserok_af F +GLIBC_2.2 localeconv F +GLIBC_2.2 mcheck_check_all F +GLIBC_2.2 mcheck_pedantic F +GLIBC_2.2 memrchr F +GLIBC_2.2 mincore F +GLIBC_2.2 mkdtemp F +GLIBC_2.2 mkstemp64 F +GLIBC_2.2 moncontrol F +GLIBC_2.2 msgctl F +GLIBC_2.2 ngettext F +GLIBC_2.2 posix_fadvise F +GLIBC_2.2 posix_fadvise64 F +GLIBC_2.2 posix_fallocate F +GLIBC_2.2 posix_fallocate64 F +GLIBC_2.2 posix_madvise F +GLIBC_2.2 posix_memalign F +GLIBC_2.2 posix_spawn F +GLIBC_2.2 posix_spawn_file_actions_addclose F +GLIBC_2.2 posix_spawn_file_actions_adddup2 F +GLIBC_2.2 posix_spawn_file_actions_addopen F +GLIBC_2.2 posix_spawn_file_actions_destroy F +GLIBC_2.2 posix_spawn_file_actions_init F +GLIBC_2.2 posix_spawnattr_destroy F +GLIBC_2.2 posix_spawnattr_getflags F +GLIBC_2.2 posix_spawnattr_getpgroup F +GLIBC_2.2 posix_spawnattr_getschedparam F +GLIBC_2.2 posix_spawnattr_getschedpolicy F +GLIBC_2.2 posix_spawnattr_getsigdefault F +GLIBC_2.2 posix_spawnattr_getsigmask F +GLIBC_2.2 posix_spawnattr_init F +GLIBC_2.2 posix_spawnattr_setflags F +GLIBC_2.2 posix_spawnattr_setpgroup F +GLIBC_2.2 posix_spawnattr_setschedparam F +GLIBC_2.2 posix_spawnattr_setschedpolicy F +GLIBC_2.2 posix_spawnattr_setsigdefault F +GLIBC_2.2 posix_spawnattr_setsigmask F +GLIBC_2.2 posix_spawnp F +GLIBC_2.2 putwc F +GLIBC_2.2 putwc_unlocked F +GLIBC_2.2 putwchar F +GLIBC_2.2 putwchar_unlocked F +GLIBC_2.2 rcmd_af F +GLIBC_2.2 readdir64 F +GLIBC_2.2 readdir64_r F +GLIBC_2.2 rexec_af F +GLIBC_2.2 rresvport_af F +GLIBC_2.2 ruserok_af F +GLIBC_2.2 scandir64 F +GLIBC_2.2 semctl F +GLIBC_2.2 shmctl F +GLIBC_2.2 svc_getreq_common F +GLIBC_2.2 svc_getreq_poll F +GLIBC_2.2 svc_max_pollfd D 0x4 +GLIBC_2.2 svc_pollfd D 0x4 +GLIBC_2.2 swprintf F +GLIBC_2.2 swscanf F +GLIBC_2.2 ungetwc F +GLIBC_2.2 vfwprintf F +GLIBC_2.2 vfwscanf F +GLIBC_2.2 vswprintf F +GLIBC_2.2 vswscanf F +GLIBC_2.2 vwprintf F +GLIBC_2.2 vwscanf F +GLIBC_2.2 wcschrnul F +GLIBC_2.2 wcsftime F +GLIBC_2.2 wmempcpy F +GLIBC_2.2 wprintf F +GLIBC_2.2 wscanf F +GLIBC_2.2.1 GLIBC_2.2.1 A +GLIBC_2.2.1 pivot_root F +GLIBC_2.2.1 posix_openpt F +GLIBC_2.2.2 GLIBC_2.2.2 A +GLIBC_2.2.2 __nss_hostname_digits_dots F +GLIBC_2.2.3 GLIBC_2.2.3 A +GLIBC_2.2.3 __rpc_thread_createerr F +GLIBC_2.2.3 __rpc_thread_svc_fdset F +GLIBC_2.2.3 __rpc_thread_svc_max_pollfd F +GLIBC_2.2.3 __rpc_thread_svc_pollfd F +GLIBC_2.2.3 fnmatch F +GLIBC_2.2.3 sprofil F +GLIBC_2.2.4 GLIBC_2.2.4 A +GLIBC_2.2.4 dl_iterate_phdr F +GLIBC_2.2.4 getgrouplist F +GLIBC_2.2.4 sockatmark F +GLIBC_2.2.6 GLIBC_2.2.6 A +GLIBC_2.2.6 __nanosleep F +GLIBC_2.22 GLIBC_2.22 A +GLIBC_2.22 fmemopen F +GLIBC_2.23 GLIBC_2.23 A +GLIBC_2.23 fts64_children F +GLIBC_2.23 fts64_close F +GLIBC_2.23 fts64_open F +GLIBC_2.23 fts64_read F +GLIBC_2.23 fts64_set F +GLIBC_2.24 GLIBC_2.24 A +GLIBC_2.24 quick_exit F +GLIBC_2.25 GLIBC_2.25 A +GLIBC_2.25 __explicit_bzero_chk F +GLIBC_2.25 explicit_bzero F +GLIBC_2.25 getentropy F +GLIBC_2.25 getrandom F +GLIBC_2.25 strfromd F +GLIBC_2.25 strfromf F +GLIBC_2.25 strfroml F +GLIBC_2.26 GLIBC_2.26 A +GLIBC_2.26 preadv2 F +GLIBC_2.26 preadv64v2 F +GLIBC_2.26 pwritev2 F +GLIBC_2.26 pwritev64v2 F +GLIBC_2.26 reallocarray F +GLIBC_2.3 GLIBC_2.3 A +GLIBC_2.3 __ctype_b_loc F +GLIBC_2.3 __ctype_tolower_loc F +GLIBC_2.3 __ctype_toupper_loc F +GLIBC_2.3 __isctype F +GLIBC_2.3 __strftime_l F +GLIBC_2.3 __uselocale F +GLIBC_2.3 __wcsftime_l F +GLIBC_2.3 _sys_errlist D 0x200 +GLIBC_2.3 _sys_nerr D 0x4 +GLIBC_2.3 duplocale F +GLIBC_2.3 fgetxattr F +GLIBC_2.3 flistxattr F +GLIBC_2.3 freeifaddrs F +GLIBC_2.3 freelocale F +GLIBC_2.3 fremovexattr F +GLIBC_2.3 fsetxattr F +GLIBC_2.3 futimes F +GLIBC_2.3 getifaddrs F +GLIBC_2.3 getxattr F +GLIBC_2.3 isalnum_l F +GLIBC_2.3 isalpha_l F +GLIBC_2.3 isblank_l F +GLIBC_2.3 iscntrl_l F +GLIBC_2.3 isctype F +GLIBC_2.3 isdigit_l F +GLIBC_2.3 isgraph_l F +GLIBC_2.3 islower_l F +GLIBC_2.3 isprint_l F +GLIBC_2.3 ispunct_l F +GLIBC_2.3 isspace_l F +GLIBC_2.3 isupper_l F +GLIBC_2.3 iswalnum_l F +GLIBC_2.3 iswalpha_l F +GLIBC_2.3 iswblank_l F +GLIBC_2.3 iswcntrl_l F +GLIBC_2.3 iswctype_l F +GLIBC_2.3 iswdigit_l F +GLIBC_2.3 iswgraph_l F +GLIBC_2.3 iswlower_l F +GLIBC_2.3 iswprint_l F +GLIBC_2.3 iswpunct_l F +GLIBC_2.3 iswspace_l F +GLIBC_2.3 iswupper_l F +GLIBC_2.3 iswxdigit_l F +GLIBC_2.3 isxdigit_l F +GLIBC_2.3 lgetxattr F +GLIBC_2.3 listxattr F +GLIBC_2.3 llistxattr F +GLIBC_2.3 lremovexattr F +GLIBC_2.3 lsetxattr F +GLIBC_2.3 lutimes F +GLIBC_2.3 newlocale F +GLIBC_2.3 nl_langinfo_l F +GLIBC_2.3 readahead F +GLIBC_2.3 realpath F +GLIBC_2.3 removexattr F +GLIBC_2.3 sendfile64 F +GLIBC_2.3 setxattr F +GLIBC_2.3 strcasecmp_l F +GLIBC_2.3 strcoll_l F +GLIBC_2.3 strfmon_l F +GLIBC_2.3 strftime_l F +GLIBC_2.3 strncasecmp_l F +GLIBC_2.3 strtod_l F +GLIBC_2.3 strtof_l F +GLIBC_2.3 strtol_l F +GLIBC_2.3 strtold_l F +GLIBC_2.3 strtoll_l F +GLIBC_2.3 strtoul_l F +GLIBC_2.3 strtoull_l F +GLIBC_2.3 strxfrm_l F +GLIBC_2.3 sys_errlist D 0x200 +GLIBC_2.3 sys_nerr D 0x4 +GLIBC_2.3 tolower_l F +GLIBC_2.3 toupper_l F +GLIBC_2.3 towctrans_l F +GLIBC_2.3 towlower_l F +GLIBC_2.3 towupper_l F +GLIBC_2.3 uselocale F +GLIBC_2.3 wcscasecmp_l F +GLIBC_2.3 wcscoll_l F +GLIBC_2.3 wcsftime_l F +GLIBC_2.3 wcsncasecmp_l F +GLIBC_2.3 wcstod_l F +GLIBC_2.3 wcstof_l F +GLIBC_2.3 wcstol_l F +GLIBC_2.3 wcstold_l F +GLIBC_2.3 wcstoll_l F +GLIBC_2.3 wcstoul_l F +GLIBC_2.3 wcstoull_l F +GLIBC_2.3 wcsxfrm_l F +GLIBC_2.3 wctrans_l F +GLIBC_2.3 wctype_l F +GLIBC_2.3.2 GLIBC_2.3.2 A +GLIBC_2.3.2 __register_atfork F +GLIBC_2.3.2 epoll_create F +GLIBC_2.3.2 epoll_ctl F +GLIBC_2.3.2 epoll_wait F +GLIBC_2.3.2 lchmod F +GLIBC_2.3.2 pthread_cond_broadcast F +GLIBC_2.3.2 pthread_cond_destroy F +GLIBC_2.3.2 pthread_cond_init F +GLIBC_2.3.2 pthread_cond_signal F +GLIBC_2.3.2 pthread_cond_timedwait F +GLIBC_2.3.2 pthread_cond_wait F +GLIBC_2.3.2 strptime_l F +GLIBC_2.3.3 GLIBC_2.3.3 A +GLIBC_2.3.3 _sys_siglist D 0x104 +GLIBC_2.3.3 gnu_dev_major F +GLIBC_2.3.3 gnu_dev_makedev F +GLIBC_2.3.3 gnu_dev_minor F +GLIBC_2.3.3 inet6_option_alloc F +GLIBC_2.3.3 inet6_option_append F +GLIBC_2.3.3 inet6_option_find F +GLIBC_2.3.3 inet6_option_init F +GLIBC_2.3.3 inet6_option_next F +GLIBC_2.3.3 inet6_option_space F +GLIBC_2.3.3 nftw F +GLIBC_2.3.3 nftw64 F +GLIBC_2.3.3 posix_fadvise64 F +GLIBC_2.3.3 posix_fallocate64 F +GLIBC_2.3.3 remap_file_pages F +GLIBC_2.3.3 sched_getaffinity F +GLIBC_2.3.3 sched_setaffinity F +GLIBC_2.3.3 semtimedop F +GLIBC_2.3.3 sys_sigabbrev D 0x104 +GLIBC_2.3.3 sys_siglist D 0x104 +GLIBC_2.3.4 GLIBC_2.3.4 A +GLIBC_2.3.4 __chk_fail F +GLIBC_2.3.4 __fprintf_chk F +GLIBC_2.3.4 __gets_chk F +GLIBC_2.3.4 __memcpy_chk F +GLIBC_2.3.4 __memmove_chk F +GLIBC_2.3.4 __mempcpy_chk F +GLIBC_2.3.4 __memset_chk F +GLIBC_2.3.4 __printf_chk F +GLIBC_2.3.4 __snprintf_chk F +GLIBC_2.3.4 __sprintf_chk F +GLIBC_2.3.4 __stpcpy_chk F +GLIBC_2.3.4 __strcat_chk F +GLIBC_2.3.4 __strcpy_chk F +GLIBC_2.3.4 __strncat_chk F +GLIBC_2.3.4 __strncpy_chk F +GLIBC_2.3.4 __vfprintf_chk F +GLIBC_2.3.4 __vprintf_chk F +GLIBC_2.3.4 __vsnprintf_chk F +GLIBC_2.3.4 __vsprintf_chk F +GLIBC_2.3.4 __xpg_strerror_r F +GLIBC_2.3.4 getipv4sourcefilter F +GLIBC_2.3.4 getsourcefilter F +GLIBC_2.3.4 regexec F +GLIBC_2.3.4 sched_getaffinity F +GLIBC_2.3.4 sched_setaffinity F +GLIBC_2.3.4 setipv4sourcefilter F +GLIBC_2.3.4 setsourcefilter F +GLIBC_2.3.4 xdr_quad_t F +GLIBC_2.3.4 xdr_u_quad_t F +GLIBC_2.4 GLIBC_2.4 A +GLIBC_2.4 _IO_fprintf F +GLIBC_2.4 _IO_printf F +GLIBC_2.4 _IO_sprintf F +GLIBC_2.4 _IO_sscanf F +GLIBC_2.4 _IO_vfprintf F +GLIBC_2.4 _IO_vfscanf F +GLIBC_2.4 _IO_vsprintf F +GLIBC_2.4 _Q_add F +GLIBC_2.4 _Q_cmp F +GLIBC_2.4 _Q_cmpe F +GLIBC_2.4 _Q_div F +GLIBC_2.4 _Q_dtoq F +GLIBC_2.4 _Q_feq F +GLIBC_2.4 _Q_fge F +GLIBC_2.4 _Q_fgt F +GLIBC_2.4 _Q_fle F +GLIBC_2.4 _Q_flt F +GLIBC_2.4 _Q_fne F +GLIBC_2.4 _Q_itoq F +GLIBC_2.4 _Q_lltoq F +GLIBC_2.4 _Q_mul F +GLIBC_2.4 _Q_neg F +GLIBC_2.4 _Q_qtod F +GLIBC_2.4 _Q_qtoi F +GLIBC_2.4 _Q_qtoll F +GLIBC_2.4 _Q_qtos F +GLIBC_2.4 _Q_qtou F +GLIBC_2.4 _Q_qtoull F +GLIBC_2.4 _Q_sqrt F +GLIBC_2.4 _Q_stoq F +GLIBC_2.4 _Q_sub F +GLIBC_2.4 _Q_ulltoq F +GLIBC_2.4 _Q_utoq F +GLIBC_2.4 __asprintf F +GLIBC_2.4 __confstr_chk F +GLIBC_2.4 __fgets_chk F +GLIBC_2.4 __fgets_unlocked_chk F +GLIBC_2.4 __fgetws_chk F +GLIBC_2.4 __fgetws_unlocked_chk F +GLIBC_2.4 __finitel F +GLIBC_2.4 __fprintf_chk F +GLIBC_2.4 __fwprintf_chk F +GLIBC_2.4 __fxstatat F +GLIBC_2.4 __fxstatat64 F +GLIBC_2.4 __getcwd_chk F +GLIBC_2.4 __getdomainname_chk F +GLIBC_2.4 __getgroups_chk F +GLIBC_2.4 __gethostname_chk F +GLIBC_2.4 __getlogin_r_chk F +GLIBC_2.4 __getwd_chk F +GLIBC_2.4 __isinfl F +GLIBC_2.4 __isnanl F +GLIBC_2.4 __mbsnrtowcs_chk F +GLIBC_2.4 __mbsrtowcs_chk F +GLIBC_2.4 __mbstowcs_chk F +GLIBC_2.4 __nldbl__IO_fprintf F +GLIBC_2.4 __nldbl__IO_printf F +GLIBC_2.4 __nldbl__IO_sprintf F +GLIBC_2.4 __nldbl__IO_sscanf F +GLIBC_2.4 __nldbl__IO_vfprintf F +GLIBC_2.4 __nldbl__IO_vfscanf F +GLIBC_2.4 __nldbl__IO_vsprintf F +GLIBC_2.4 __nldbl___asprintf F +GLIBC_2.4 __nldbl___fprintf_chk F +GLIBC_2.4 __nldbl___fwprintf_chk F +GLIBC_2.4 __nldbl___printf_chk F +GLIBC_2.4 __nldbl___printf_fp F +GLIBC_2.4 __nldbl___snprintf_chk F +GLIBC_2.4 __nldbl___sprintf_chk F +GLIBC_2.4 __nldbl___strfmon_l F +GLIBC_2.4 __nldbl___swprintf_chk F +GLIBC_2.4 __nldbl___syslog_chk F +GLIBC_2.4 __nldbl___vfprintf_chk F +GLIBC_2.4 __nldbl___vfscanf F +GLIBC_2.4 __nldbl___vfwprintf_chk F +GLIBC_2.4 __nldbl___vprintf_chk F +GLIBC_2.4 __nldbl___vsnprintf F +GLIBC_2.4 __nldbl___vsnprintf_chk F +GLIBC_2.4 __nldbl___vsprintf_chk F +GLIBC_2.4 __nldbl___vsscanf F +GLIBC_2.4 __nldbl___vstrfmon F +GLIBC_2.4 __nldbl___vstrfmon_l F +GLIBC_2.4 __nldbl___vswprintf_chk F +GLIBC_2.4 __nldbl___vsyslog_chk F +GLIBC_2.4 __nldbl___vwprintf_chk F +GLIBC_2.4 __nldbl___wprintf_chk F +GLIBC_2.4 __nldbl_asprintf F +GLIBC_2.4 __nldbl_dprintf F +GLIBC_2.4 __nldbl_fprintf F +GLIBC_2.4 __nldbl_fscanf F +GLIBC_2.4 __nldbl_fwprintf F +GLIBC_2.4 __nldbl_fwscanf F +GLIBC_2.4 __nldbl_obstack_printf F +GLIBC_2.4 __nldbl_obstack_vprintf F +GLIBC_2.4 __nldbl_printf F +GLIBC_2.4 __nldbl_printf_size F +GLIBC_2.4 __nldbl_scanf F +GLIBC_2.4 __nldbl_snprintf F +GLIBC_2.4 __nldbl_sprintf F +GLIBC_2.4 __nldbl_sscanf F +GLIBC_2.4 __nldbl_strfmon F +GLIBC_2.4 __nldbl_strfmon_l F +GLIBC_2.4 __nldbl_swprintf F +GLIBC_2.4 __nldbl_swscanf F +GLIBC_2.4 __nldbl_syslog F +GLIBC_2.4 __nldbl_vasprintf F +GLIBC_2.4 __nldbl_vdprintf F +GLIBC_2.4 __nldbl_vfprintf F +GLIBC_2.4 __nldbl_vfscanf F +GLIBC_2.4 __nldbl_vfwprintf F +GLIBC_2.4 __nldbl_vfwscanf F +GLIBC_2.4 __nldbl_vprintf F +GLIBC_2.4 __nldbl_vscanf F +GLIBC_2.4 __nldbl_vsnprintf F +GLIBC_2.4 __nldbl_vsprintf F +GLIBC_2.4 __nldbl_vsscanf F +GLIBC_2.4 __nldbl_vswprintf F +GLIBC_2.4 __nldbl_vswscanf F +GLIBC_2.4 __nldbl_vsyslog F +GLIBC_2.4 __nldbl_vwprintf F +GLIBC_2.4 __nldbl_vwscanf F +GLIBC_2.4 __nldbl_wprintf F +GLIBC_2.4 __nldbl_wscanf F +GLIBC_2.4 __pread64_chk F +GLIBC_2.4 __pread_chk F +GLIBC_2.4 __printf_chk F +GLIBC_2.4 __printf_fp F +GLIBC_2.4 __ptsname_r_chk F +GLIBC_2.4 __read_chk F +GLIBC_2.4 __readlink_chk F +GLIBC_2.4 __realpath_chk F +GLIBC_2.4 __recv_chk F +GLIBC_2.4 __recvfrom_chk F +GLIBC_2.4 __signbitl F +GLIBC_2.4 __snprintf_chk F +GLIBC_2.4 __sprintf_chk F +GLIBC_2.4 __stack_chk_fail F +GLIBC_2.4 __stpncpy_chk F +GLIBC_2.4 __strfmon_l F +GLIBC_2.4 __strtold_internal F +GLIBC_2.4 __strtold_l F +GLIBC_2.4 __swprintf_chk F +GLIBC_2.4 __syslog_chk F +GLIBC_2.4 __ttyname_r_chk F +GLIBC_2.4 __vfprintf_chk F +GLIBC_2.4 __vfscanf F +GLIBC_2.4 __vfwprintf_chk F +GLIBC_2.4 __vprintf_chk F +GLIBC_2.4 __vsnprintf F +GLIBC_2.4 __vsnprintf_chk F +GLIBC_2.4 __vsprintf_chk F +GLIBC_2.4 __vsscanf F +GLIBC_2.4 __vswprintf_chk F +GLIBC_2.4 __vsyslog_chk F +GLIBC_2.4 __vwprintf_chk F +GLIBC_2.4 __wcpcpy_chk F +GLIBC_2.4 __wcpncpy_chk F +GLIBC_2.4 __wcrtomb_chk F +GLIBC_2.4 __wcscat_chk F +GLIBC_2.4 __wcscpy_chk F +GLIBC_2.4 __wcsncat_chk F +GLIBC_2.4 __wcsncpy_chk F +GLIBC_2.4 __wcsnrtombs_chk F +GLIBC_2.4 __wcsrtombs_chk F +GLIBC_2.4 __wcstold_internal F +GLIBC_2.4 __wcstold_l F +GLIBC_2.4 __wcstombs_chk F +GLIBC_2.4 __wctomb_chk F +GLIBC_2.4 __wmemcpy_chk F +GLIBC_2.4 __wmemmove_chk F +GLIBC_2.4 __wmempcpy_chk F +GLIBC_2.4 __wmemset_chk F +GLIBC_2.4 __wprintf_chk F +GLIBC_2.4 __xmknodat F +GLIBC_2.4 _sys_errlist D 0x218 +GLIBC_2.4 _sys_nerr D 0x4 +GLIBC_2.4 asprintf F +GLIBC_2.4 copysignl F +GLIBC_2.4 dprintf F +GLIBC_2.4 eaccess F +GLIBC_2.4 faccessat F +GLIBC_2.4 fchmodat F +GLIBC_2.4 fchownat F +GLIBC_2.4 fdopendir F +GLIBC_2.4 finitel F +GLIBC_2.4 fprintf F +GLIBC_2.4 frexpl F +GLIBC_2.4 fscanf F +GLIBC_2.4 futimesat F +GLIBC_2.4 fwprintf F +GLIBC_2.4 fwscanf F +GLIBC_2.4 inotify_add_watch F +GLIBC_2.4 inotify_init F +GLIBC_2.4 inotify_rm_watch F +GLIBC_2.4 isinfl F +GLIBC_2.4 isnanl F +GLIBC_2.4 ldexpl F +GLIBC_2.4 linkat F +GLIBC_2.4 mkdirat F +GLIBC_2.4 mkfifoat F +GLIBC_2.4 modfl F +GLIBC_2.4 obstack_printf F +GLIBC_2.4 obstack_vprintf F +GLIBC_2.4 open_wmemstream F +GLIBC_2.4 openat F +GLIBC_2.4 openat64 F +GLIBC_2.4 ppoll F +GLIBC_2.4 printf F +GLIBC_2.4 printf_size F +GLIBC_2.4 qecvt F +GLIBC_2.4 qecvt_r F +GLIBC_2.4 qfcvt F +GLIBC_2.4 qfcvt_r F +GLIBC_2.4 qgcvt F +GLIBC_2.4 readlinkat F +GLIBC_2.4 renameat F +GLIBC_2.4 scalbnl F +GLIBC_2.4 scanf F +GLIBC_2.4 snprintf F +GLIBC_2.4 sprintf F +GLIBC_2.4 sscanf F +GLIBC_2.4 strfmon F +GLIBC_2.4 strfmon_l F +GLIBC_2.4 strtold F +GLIBC_2.4 strtold_l F +GLIBC_2.4 swprintf F +GLIBC_2.4 swscanf F +GLIBC_2.4 symlinkat F +GLIBC_2.4 sys_errlist D 0x218 +GLIBC_2.4 sys_nerr D 0x4 +GLIBC_2.4 syslog F +GLIBC_2.4 unlinkat F +GLIBC_2.4 unshare F +GLIBC_2.4 vasprintf F +GLIBC_2.4 vdprintf F +GLIBC_2.4 vfprintf F +GLIBC_2.4 vfscanf F +GLIBC_2.4 vfwprintf F +GLIBC_2.4 vfwscanf F +GLIBC_2.4 vprintf F +GLIBC_2.4 vscanf F +GLIBC_2.4 vsnprintf F +GLIBC_2.4 vsprintf F +GLIBC_2.4 vsscanf F +GLIBC_2.4 vswprintf F +GLIBC_2.4 vswscanf F +GLIBC_2.4 vsyslog F +GLIBC_2.4 vwprintf F +GLIBC_2.4 vwscanf F +GLIBC_2.4 wcstold F +GLIBC_2.4 wcstold_l F +GLIBC_2.4 wprintf F +GLIBC_2.4 wscanf F +GLIBC_2.5 GLIBC_2.5 A +GLIBC_2.5 __readlinkat_chk F +GLIBC_2.5 inet6_opt_append F +GLIBC_2.5 inet6_opt_find F +GLIBC_2.5 inet6_opt_finish F +GLIBC_2.5 inet6_opt_get_val F +GLIBC_2.5 inet6_opt_init F +GLIBC_2.5 inet6_opt_next F +GLIBC_2.5 inet6_opt_set_val F +GLIBC_2.5 inet6_rth_add F +GLIBC_2.5 inet6_rth_getaddr F +GLIBC_2.5 inet6_rth_init F +GLIBC_2.5 inet6_rth_reverse F +GLIBC_2.5 inet6_rth_segments F +GLIBC_2.5 inet6_rth_space F +GLIBC_2.5 splice F +GLIBC_2.5 tee F +GLIBC_2.5 vmsplice F +GLIBC_2.6 GLIBC_2.6 A +GLIBC_2.6 __sched_cpucount F +GLIBC_2.6 epoll_pwait F +GLIBC_2.6 futimens F +GLIBC_2.6 sched_getcpu F +GLIBC_2.6 strerror_l F +GLIBC_2.6 sync_file_range F +GLIBC_2.6 utimensat F +GLIBC_2.7 GLIBC_2.7 A +GLIBC_2.7 __fread_chk F +GLIBC_2.7 __fread_unlocked_chk F +GLIBC_2.7 __isoc99_fscanf F +GLIBC_2.7 __isoc99_fwscanf F +GLIBC_2.7 __isoc99_scanf F +GLIBC_2.7 __isoc99_sscanf F +GLIBC_2.7 __isoc99_swscanf F +GLIBC_2.7 __isoc99_vfscanf F +GLIBC_2.7 __isoc99_vfwscanf F +GLIBC_2.7 __isoc99_vscanf F +GLIBC_2.7 __isoc99_vsscanf F +GLIBC_2.7 __isoc99_vswscanf F +GLIBC_2.7 __isoc99_vwscanf F +GLIBC_2.7 __isoc99_wscanf F +GLIBC_2.7 __nldbl___isoc99_fscanf F +GLIBC_2.7 __nldbl___isoc99_fwscanf F +GLIBC_2.7 __nldbl___isoc99_scanf F +GLIBC_2.7 __nldbl___isoc99_sscanf F +GLIBC_2.7 __nldbl___isoc99_swscanf F +GLIBC_2.7 __nldbl___isoc99_vfscanf F +GLIBC_2.7 __nldbl___isoc99_vfwscanf F +GLIBC_2.7 __nldbl___isoc99_vscanf F +GLIBC_2.7 __nldbl___isoc99_vsscanf F +GLIBC_2.7 __nldbl___isoc99_vswscanf F +GLIBC_2.7 __nldbl___isoc99_vwscanf F +GLIBC_2.7 __nldbl___isoc99_wscanf F +GLIBC_2.7 __open64_2 F +GLIBC_2.7 __open_2 F +GLIBC_2.7 __openat64_2 F +GLIBC_2.7 __openat_2 F +GLIBC_2.7 __sched_cpualloc F +GLIBC_2.7 __sched_cpufree F +GLIBC_2.7 eventfd F +GLIBC_2.7 eventfd_read F +GLIBC_2.7 eventfd_write F +GLIBC_2.7 mkostemp F +GLIBC_2.7 mkostemp64 F +GLIBC_2.7 signalfd F +GLIBC_2.8 GLIBC_2.8 A +GLIBC_2.8 __asprintf_chk F +GLIBC_2.8 __dprintf_chk F +GLIBC_2.8 __nldbl___asprintf_chk F +GLIBC_2.8 __nldbl___dprintf_chk F +GLIBC_2.8 __nldbl___obstack_printf_chk F +GLIBC_2.8 __nldbl___obstack_vprintf_chk F +GLIBC_2.8 __nldbl___vasprintf_chk F +GLIBC_2.8 __nldbl___vdprintf_chk F +GLIBC_2.8 __obstack_printf_chk F +GLIBC_2.8 __obstack_vprintf_chk F +GLIBC_2.8 __vasprintf_chk F +GLIBC_2.8 __vdprintf_chk F +GLIBC_2.8 qsort_r F +GLIBC_2.8 timerfd_create F +GLIBC_2.8 timerfd_gettime F +GLIBC_2.8 timerfd_settime F +GLIBC_2.9 GLIBC_2.9 A +GLIBC_2.9 dup3 F +GLIBC_2.9 epoll_create1 F +GLIBC_2.9 inotify_init1 F +GLIBC_2.9 pipe2 F diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/libcrypt.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/libcrypt.abilist new file mode 100644 index 0000000000..4db2639336 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/libcrypt.abilist @@ -0,0 +1,8 @@ +GLIBC_2.0 GLIBC_2.0 A +GLIBC_2.0 crypt F +GLIBC_2.0 crypt_r F +GLIBC_2.0 encrypt F +GLIBC_2.0 encrypt_r F +GLIBC_2.0 fcrypt F +GLIBC_2.0 setkey F +GLIBC_2.0 setkey_r F diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/libdl.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/libdl.abilist new file mode 100644 index 0000000000..5536f6e0a9 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/libdl.abilist @@ -0,0 +1,14 @@ +GLIBC_2.0 GLIBC_2.0 A +GLIBC_2.0 dladdr F +GLIBC_2.0 dlclose F +GLIBC_2.0 dlerror F +GLIBC_2.0 dlopen F +GLIBC_2.0 dlsym F +GLIBC_2.1 GLIBC_2.1 A +GLIBC_2.1 dlopen F +GLIBC_2.1 dlvsym F +GLIBC_2.3.3 GLIBC_2.3.3 A +GLIBC_2.3.3 dladdr1 F +GLIBC_2.3.3 dlinfo F +GLIBC_2.3.4 GLIBC_2.3.4 A +GLIBC_2.3.4 dlmopen F diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist new file mode 100644 index 0000000000..f73af6f224 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist @@ -0,0 +1,568 @@ +GLIBC_2.0 GLIBC_2.0 A +GLIBC_2.0 _LIB_VERSION D 0x4 +GLIBC_2.0 acos F +GLIBC_2.0 acosf F +GLIBC_2.0 acosh F +GLIBC_2.0 acoshf F +GLIBC_2.0 acoshl F +GLIBC_2.0 acosl F +GLIBC_2.0 asin F +GLIBC_2.0 asinf F +GLIBC_2.0 asinh F +GLIBC_2.0 asinhf F +GLIBC_2.0 asinhl F +GLIBC_2.0 asinl F +GLIBC_2.0 atan F +GLIBC_2.0 atan2 F +GLIBC_2.0 atan2f F +GLIBC_2.0 atan2l F +GLIBC_2.0 atanf F +GLIBC_2.0 atanh F +GLIBC_2.0 atanhf F +GLIBC_2.0 atanhl F +GLIBC_2.0 atanl F +GLIBC_2.0 cbrt F +GLIBC_2.0 cbrtf F +GLIBC_2.0 cbrtl F +GLIBC_2.0 ceil F +GLIBC_2.0 ceilf F +GLIBC_2.0 ceill F +GLIBC_2.0 copysign F +GLIBC_2.0 copysignf F +GLIBC_2.0 cos F +GLIBC_2.0 cosf F +GLIBC_2.0 cosh F +GLIBC_2.0 coshf F +GLIBC_2.0 coshl F +GLIBC_2.0 cosl F +GLIBC_2.0 drem F +GLIBC_2.0 dremf F +GLIBC_2.0 dreml F +GLIBC_2.0 erf F +GLIBC_2.0 erfc F +GLIBC_2.0 erfcf F +GLIBC_2.0 erfcl F +GLIBC_2.0 erff F +GLIBC_2.0 erfl F +GLIBC_2.0 exp F +GLIBC_2.0 expf F +GLIBC_2.0 expl F +GLIBC_2.0 expm1 F +GLIBC_2.0 expm1f F +GLIBC_2.0 expm1l F +GLIBC_2.0 fabs F +GLIBC_2.0 fabsf F +GLIBC_2.0 finite F +GLIBC_2.0 finitef F +GLIBC_2.0 finitel F +GLIBC_2.0 floor F +GLIBC_2.0 floorf F +GLIBC_2.0 floorl F +GLIBC_2.0 fmod F +GLIBC_2.0 fmodf F +GLIBC_2.0 fmodl F +GLIBC_2.0 frexp F +GLIBC_2.0 frexpf F +GLIBC_2.0 frexpl F +GLIBC_2.0 gamma F +GLIBC_2.0 gammaf F +GLIBC_2.0 gammal F +GLIBC_2.0 hypot F +GLIBC_2.0 hypotf F +GLIBC_2.0 hypotl F +GLIBC_2.0 ilogb F +GLIBC_2.0 ilogbf F +GLIBC_2.0 ilogbl F +GLIBC_2.0 j0 F +GLIBC_2.0 j0f F +GLIBC_2.0 j0l F +GLIBC_2.0 j1 F +GLIBC_2.0 j1f F +GLIBC_2.0 j1l F +GLIBC_2.0 jn F +GLIBC_2.0 jnf F +GLIBC_2.0 jnl F +GLIBC_2.0 ldexp F +GLIBC_2.0 ldexpf F +GLIBC_2.0 ldexpl F +GLIBC_2.0 lgamma F +GLIBC_2.0 lgamma_r F +GLIBC_2.0 lgammaf F +GLIBC_2.0 lgammaf_r F +GLIBC_2.0 lgammal F +GLIBC_2.0 lgammal_r F +GLIBC_2.0 log F +GLIBC_2.0 log10 F +GLIBC_2.0 log10f F +GLIBC_2.0 log10l F +GLIBC_2.0 log1p F +GLIBC_2.0 log1pf F +GLIBC_2.0 log1pl F +GLIBC_2.0 logb F +GLIBC_2.0 logbf F +GLIBC_2.0 logbl F +GLIBC_2.0 logf F +GLIBC_2.0 logl F +GLIBC_2.0 matherr F +GLIBC_2.0 modf F +GLIBC_2.0 modff F +GLIBC_2.0 modfl F +GLIBC_2.0 nextafter F +GLIBC_2.0 nextafterf F +GLIBC_2.0 nextafterl F +GLIBC_2.0 pow F +GLIBC_2.0 powf F +GLIBC_2.0 powl F +GLIBC_2.0 remainder F +GLIBC_2.0 remainderf F +GLIBC_2.0 remainderl F +GLIBC_2.0 rint F +GLIBC_2.0 rintf F +GLIBC_2.0 rintl F +GLIBC_2.0 scalb F +GLIBC_2.0 scalbf F +GLIBC_2.0 scalbl F +GLIBC_2.0 scalbn F +GLIBC_2.0 scalbnf F +GLIBC_2.0 scalbnl F +GLIBC_2.0 signgam D 0x4 +GLIBC_2.0 significand F +GLIBC_2.0 significandf F +GLIBC_2.0 significandl F +GLIBC_2.0 sin F +GLIBC_2.0 sinf F +GLIBC_2.0 sinh F +GLIBC_2.0 sinhf F +GLIBC_2.0 sinhl F +GLIBC_2.0 sinl F +GLIBC_2.0 sqrt F +GLIBC_2.0 sqrtf F +GLIBC_2.0 tan F +GLIBC_2.0 tanf F +GLIBC_2.0 tanh F +GLIBC_2.0 tanhf F +GLIBC_2.0 tanhl F +GLIBC_2.0 tanl F +GLIBC_2.0 y0 F +GLIBC_2.0 y0f F +GLIBC_2.0 y0l F +GLIBC_2.0 y1 F +GLIBC_2.0 y1f F +GLIBC_2.0 y1l F +GLIBC_2.0 yn F +GLIBC_2.0 ynf F +GLIBC_2.0 ynl F +GLIBC_2.1 GLIBC_2.1 A +GLIBC_2.1 __clog10 F +GLIBC_2.1 __clog10f F +GLIBC_2.1 __clog10l F +GLIBC_2.1 __finite F +GLIBC_2.1 __finitef F +GLIBC_2.1 __finitel F +GLIBC_2.1 __fpclassify F +GLIBC_2.1 __fpclassifyf F +GLIBC_2.1 __signbit F +GLIBC_2.1 __signbitf F +GLIBC_2.1 cabs F +GLIBC_2.1 cabsf F +GLIBC_2.1 cabsl F +GLIBC_2.1 cacos F +GLIBC_2.1 cacosf F +GLIBC_2.1 cacosh F +GLIBC_2.1 cacoshf F +GLIBC_2.1 cacoshl F +GLIBC_2.1 cacosl F +GLIBC_2.1 carg F +GLIBC_2.1 cargf F +GLIBC_2.1 cargl F +GLIBC_2.1 casin F +GLIBC_2.1 casinf F +GLIBC_2.1 casinh F +GLIBC_2.1 casinhf F +GLIBC_2.1 casinhl F +GLIBC_2.1 casinl F +GLIBC_2.1 catan F +GLIBC_2.1 catanf F +GLIBC_2.1 catanh F +GLIBC_2.1 catanhf F +GLIBC_2.1 catanhl F +GLIBC_2.1 catanl F +GLIBC_2.1 ccos F +GLIBC_2.1 ccosf F +GLIBC_2.1 ccosh F +GLIBC_2.1 ccoshf F +GLIBC_2.1 ccoshl F +GLIBC_2.1 ccosl F +GLIBC_2.1 cexp F +GLIBC_2.1 cexpf F +GLIBC_2.1 cexpl F +GLIBC_2.1 cimag F +GLIBC_2.1 cimagf F +GLIBC_2.1 cimagl F +GLIBC_2.1 clog F +GLIBC_2.1 clog10 F +GLIBC_2.1 clog10f F +GLIBC_2.1 clog10l F +GLIBC_2.1 clogf F +GLIBC_2.1 clogl F +GLIBC_2.1 conj F +GLIBC_2.1 conjf F +GLIBC_2.1 conjl F +GLIBC_2.1 cpow F +GLIBC_2.1 cpowf F +GLIBC_2.1 cpowl F +GLIBC_2.1 cproj F +GLIBC_2.1 cprojf F +GLIBC_2.1 cprojl F +GLIBC_2.1 creal F +GLIBC_2.1 crealf F +GLIBC_2.1 creall F +GLIBC_2.1 csin F +GLIBC_2.1 csinf F +GLIBC_2.1 csinh F +GLIBC_2.1 csinhf F +GLIBC_2.1 csinhl F +GLIBC_2.1 csinl F +GLIBC_2.1 csqrt F +GLIBC_2.1 csqrtf F +GLIBC_2.1 csqrtl F +GLIBC_2.1 ctan F +GLIBC_2.1 ctanf F +GLIBC_2.1 ctanh F +GLIBC_2.1 ctanhf F +GLIBC_2.1 ctanhl F +GLIBC_2.1 ctanl F +GLIBC_2.1 exp10 F +GLIBC_2.1 exp10f F +GLIBC_2.1 exp10l F +GLIBC_2.1 exp2 F +GLIBC_2.1 exp2f F +GLIBC_2.1 fdim F +GLIBC_2.1 fdimf F +GLIBC_2.1 fdiml F +GLIBC_2.1 feclearexcept F +GLIBC_2.1 fegetenv F +GLIBC_2.1 fegetexceptflag F +GLIBC_2.1 fegetround F +GLIBC_2.1 feholdexcept F +GLIBC_2.1 feraiseexcept F +GLIBC_2.1 fesetenv F +GLIBC_2.1 fesetexceptflag F +GLIBC_2.1 fesetround F +GLIBC_2.1 fetestexcept F +GLIBC_2.1 feupdateenv F +GLIBC_2.1 fma F +GLIBC_2.1 fmaf F +GLIBC_2.1 fmax F +GLIBC_2.1 fmaxf F +GLIBC_2.1 fmaxl F +GLIBC_2.1 fmin F +GLIBC_2.1 fminf F +GLIBC_2.1 fminl F +GLIBC_2.1 llrint F +GLIBC_2.1 llrintf F +GLIBC_2.1 llrintl F +GLIBC_2.1 llround F +GLIBC_2.1 llroundf F +GLIBC_2.1 llroundl F +GLIBC_2.1 log2 F +GLIBC_2.1 log2f F +GLIBC_2.1 log2l F +GLIBC_2.1 lrint F +GLIBC_2.1 lrintf F +GLIBC_2.1 lrintl F +GLIBC_2.1 lround F +GLIBC_2.1 lroundf F +GLIBC_2.1 lroundl F +GLIBC_2.1 nan F +GLIBC_2.1 nanf F +GLIBC_2.1 nanl F +GLIBC_2.1 nearbyint F +GLIBC_2.1 nearbyintf F +GLIBC_2.1 nearbyintl F +GLIBC_2.1 nexttoward F +GLIBC_2.1 nexttowardf F +GLIBC_2.1 nexttowardl F +GLIBC_2.1 pow10 F +GLIBC_2.1 pow10f F +GLIBC_2.1 pow10l F +GLIBC_2.1 remquo F +GLIBC_2.1 remquof F +GLIBC_2.1 remquol F +GLIBC_2.1 round F +GLIBC_2.1 roundf F +GLIBC_2.1 roundl F +GLIBC_2.1 scalbln F +GLIBC_2.1 scalblnf F +GLIBC_2.1 scalblnl F +GLIBC_2.1 sincos F +GLIBC_2.1 sincosf F +GLIBC_2.1 sincosl F +GLIBC_2.1 tgamma F +GLIBC_2.1 tgammaf F +GLIBC_2.1 tgammal F +GLIBC_2.1 trunc F +GLIBC_2.1 truncf F +GLIBC_2.1 truncl F +GLIBC_2.15 GLIBC_2.15 A +GLIBC_2.15 __acos_finite F +GLIBC_2.15 __acosf_finite F +GLIBC_2.15 __acosh_finite F +GLIBC_2.15 __acoshf_finite F +GLIBC_2.15 __acoshl_finite F +GLIBC_2.15 __acosl_finite F +GLIBC_2.15 __asin_finite F +GLIBC_2.15 __asinf_finite F +GLIBC_2.15 __asinl_finite F +GLIBC_2.15 __atan2_finite F +GLIBC_2.15 __atan2f_finite F +GLIBC_2.15 __atan2l_finite F +GLIBC_2.15 __atanh_finite F +GLIBC_2.15 __atanhf_finite F +GLIBC_2.15 __atanhl_finite F +GLIBC_2.15 __cosh_finite F +GLIBC_2.15 __coshf_finite F +GLIBC_2.15 __coshl_finite F +GLIBC_2.15 __exp10_finite F +GLIBC_2.15 __exp10f_finite F +GLIBC_2.15 __exp10l_finite F +GLIBC_2.15 __exp2_finite F +GLIBC_2.15 __exp2f_finite F +GLIBC_2.15 __exp2l_finite F +GLIBC_2.15 __exp_finite F +GLIBC_2.15 __expf_finite F +GLIBC_2.15 __expl_finite F +GLIBC_2.15 __fmod_finite F +GLIBC_2.15 __fmodf_finite F +GLIBC_2.15 __fmodl_finite F +GLIBC_2.15 __gamma_r_finite F +GLIBC_2.15 __gammaf_r_finite F +GLIBC_2.15 __gammal_r_finite F +GLIBC_2.15 __hypot_finite F +GLIBC_2.15 __hypotf_finite F +GLIBC_2.15 __hypotl_finite F +GLIBC_2.15 __j0_finite F +GLIBC_2.15 __j0f_finite F +GLIBC_2.15 __j0l_finite F +GLIBC_2.15 __j1_finite F +GLIBC_2.15 __j1f_finite F +GLIBC_2.15 __j1l_finite F +GLIBC_2.15 __jn_finite F +GLIBC_2.15 __jnf_finite F +GLIBC_2.15 __jnl_finite F +GLIBC_2.15 __lgamma_r_finite F +GLIBC_2.15 __lgammaf_r_finite F +GLIBC_2.15 __lgammal_r_finite F +GLIBC_2.15 __log10_finite F +GLIBC_2.15 __log10f_finite F +GLIBC_2.15 __log10l_finite F +GLIBC_2.15 __log2_finite F +GLIBC_2.15 __log2f_finite F +GLIBC_2.15 __log2l_finite F +GLIBC_2.15 __log_finite F +GLIBC_2.15 __logf_finite F +GLIBC_2.15 __logl_finite F +GLIBC_2.15 __pow_finite F +GLIBC_2.15 __powf_finite F +GLIBC_2.15 __powl_finite F +GLIBC_2.15 __remainder_finite F +GLIBC_2.15 __remainderf_finite F +GLIBC_2.15 __remainderl_finite F +GLIBC_2.15 __scalb_finite F +GLIBC_2.15 __scalbf_finite F +GLIBC_2.15 __scalbl_finite F +GLIBC_2.15 __sinh_finite F +GLIBC_2.15 __sinhf_finite F +GLIBC_2.15 __sinhl_finite F +GLIBC_2.15 __sqrt_finite F +GLIBC_2.15 __sqrtf_finite F +GLIBC_2.15 __y0_finite F +GLIBC_2.15 __y0f_finite F +GLIBC_2.15 __y0l_finite F +GLIBC_2.15 __y1_finite F +GLIBC_2.15 __y1f_finite F +GLIBC_2.15 __y1l_finite F +GLIBC_2.15 __yn_finite F +GLIBC_2.15 __ynf_finite F +GLIBC_2.15 __ynl_finite F +GLIBC_2.18 GLIBC_2.18 A +GLIBC_2.18 __issignaling F +GLIBC_2.18 __issignalingf F +GLIBC_2.18 __issignalingl F +GLIBC_2.2 GLIBC_2.2 A +GLIBC_2.2 feclearexcept F +GLIBC_2.2 fedisableexcept F +GLIBC_2.2 feenableexcept F +GLIBC_2.2 fegetenv F +GLIBC_2.2 fegetexcept F +GLIBC_2.2 fegetexceptflag F +GLIBC_2.2 feraiseexcept F +GLIBC_2.2 fesetenv F +GLIBC_2.2 fesetexceptflag F +GLIBC_2.2 feupdateenv F +GLIBC_2.23 GLIBC_2.23 A +GLIBC_2.23 __signgam D 0x4 +GLIBC_2.23 __sqrtl_finite F +GLIBC_2.23 lgamma F +GLIBC_2.23 lgammaf F +GLIBC_2.23 lgammal F +GLIBC_2.24 GLIBC_2.24 A +GLIBC_2.24 nextdown F +GLIBC_2.24 nextdownf F +GLIBC_2.24 nextdownl F +GLIBC_2.24 nextup F +GLIBC_2.24 nextupf F +GLIBC_2.24 nextupl F +GLIBC_2.25 GLIBC_2.25 A +GLIBC_2.25 __iseqsig F +GLIBC_2.25 __iseqsigf F +GLIBC_2.25 __iseqsigl F +GLIBC_2.25 canonicalize F +GLIBC_2.25 canonicalizef F +GLIBC_2.25 canonicalizel F +GLIBC_2.25 fegetmode F +GLIBC_2.25 fesetexcept F +GLIBC_2.25 fesetmode F +GLIBC_2.25 fetestexceptflag F +GLIBC_2.25 fmaxmag F +GLIBC_2.25 fmaxmagf F +GLIBC_2.25 fmaxmagl F +GLIBC_2.25 fminmag F +GLIBC_2.25 fminmagf F +GLIBC_2.25 fminmagl F +GLIBC_2.25 fromfp F +GLIBC_2.25 fromfpf F +GLIBC_2.25 fromfpl F +GLIBC_2.25 fromfpx F +GLIBC_2.25 fromfpxf F +GLIBC_2.25 fromfpxl F +GLIBC_2.25 getpayload F +GLIBC_2.25 getpayloadf F +GLIBC_2.25 getpayloadl F +GLIBC_2.25 llogb F +GLIBC_2.25 llogbf F +GLIBC_2.25 llogbl F +GLIBC_2.25 roundeven F +GLIBC_2.25 roundevenf F +GLIBC_2.25 roundevenl F +GLIBC_2.25 setpayload F +GLIBC_2.25 setpayloadf F +GLIBC_2.25 setpayloadl F +GLIBC_2.25 setpayloadsig F +GLIBC_2.25 setpayloadsigf F +GLIBC_2.25 setpayloadsigl F +GLIBC_2.25 totalorder F +GLIBC_2.25 totalorderf F +GLIBC_2.25 totalorderl F +GLIBC_2.25 totalordermag F +GLIBC_2.25 totalordermagf F +GLIBC_2.25 totalordermagl F +GLIBC_2.25 ufromfp F +GLIBC_2.25 ufromfpf F +GLIBC_2.25 ufromfpl F +GLIBC_2.25 ufromfpx F +GLIBC_2.25 ufromfpxf F +GLIBC_2.25 ufromfpxl F +GLIBC_2.4 GLIBC_2.4 A +GLIBC_2.4 __clog10l F +GLIBC_2.4 __finitel F +GLIBC_2.4 __fpclassifyl F +GLIBC_2.4 __nldbl_nexttowardf F +GLIBC_2.4 __signbitl F +GLIBC_2.4 acoshl F +GLIBC_2.4 acosl F +GLIBC_2.4 asinhl F +GLIBC_2.4 asinl F +GLIBC_2.4 atan2l F +GLIBC_2.4 atanhl F +GLIBC_2.4 atanl F +GLIBC_2.4 cabsl F +GLIBC_2.4 cacoshl F +GLIBC_2.4 cacosl F +GLIBC_2.4 cargl F +GLIBC_2.4 casinhl F +GLIBC_2.4 casinl F +GLIBC_2.4 catanhl F +GLIBC_2.4 catanl F +GLIBC_2.4 cbrtl F +GLIBC_2.4 ccoshl F +GLIBC_2.4 ccosl F +GLIBC_2.4 ceill F +GLIBC_2.4 cexpl F +GLIBC_2.4 cimagl F +GLIBC_2.4 clog10l F +GLIBC_2.4 clogl F +GLIBC_2.4 conjl F +GLIBC_2.4 copysignl F +GLIBC_2.4 coshl F +GLIBC_2.4 cosl F +GLIBC_2.4 cpowl F +GLIBC_2.4 cprojl F +GLIBC_2.4 creall F +GLIBC_2.4 csinhl F +GLIBC_2.4 csinl F +GLIBC_2.4 csqrtl F +GLIBC_2.4 ctanhl F +GLIBC_2.4 ctanl F +GLIBC_2.4 dreml F +GLIBC_2.4 erfcl F +GLIBC_2.4 erfl F +GLIBC_2.4 exp10l F +GLIBC_2.4 exp2l F +GLIBC_2.4 expl F +GLIBC_2.4 expm1l F +GLIBC_2.4 fabsl F +GLIBC_2.4 fdiml F +GLIBC_2.4 finitel F +GLIBC_2.4 floorl F +GLIBC_2.4 fmal F +GLIBC_2.4 fmaxl F +GLIBC_2.4 fminl F +GLIBC_2.4 fmodl F +GLIBC_2.4 frexpl F +GLIBC_2.4 gammal F +GLIBC_2.4 hypotl F +GLIBC_2.4 ilogbl F +GLIBC_2.4 j0l F +GLIBC_2.4 j1l F +GLIBC_2.4 jnl F +GLIBC_2.4 ldexpl F +GLIBC_2.4 lgammal F +GLIBC_2.4 lgammal_r F +GLIBC_2.4 llrintl F +GLIBC_2.4 llroundl F +GLIBC_2.4 log10l F +GLIBC_2.4 log1pl F +GLIBC_2.4 log2l F +GLIBC_2.4 logbl F +GLIBC_2.4 logl F +GLIBC_2.4 lrintl F +GLIBC_2.4 lroundl F +GLIBC_2.4 modfl F +GLIBC_2.4 nanl F +GLIBC_2.4 nearbyintl F +GLIBC_2.4 nextafterl F +GLIBC_2.4 nexttoward F +GLIBC_2.4 nexttowardf F +GLIBC_2.4 nexttowardl F +GLIBC_2.4 pow10l F +GLIBC_2.4 powl F +GLIBC_2.4 remainderl F +GLIBC_2.4 remquol F +GLIBC_2.4 rintl F +GLIBC_2.4 roundl F +GLIBC_2.4 scalbl F +GLIBC_2.4 scalblnl F +GLIBC_2.4 scalbnl F +GLIBC_2.4 significandl F +GLIBC_2.4 sincosl F +GLIBC_2.4 sinhl F +GLIBC_2.4 sinl F +GLIBC_2.4 sqrtl F +GLIBC_2.4 tanhl F +GLIBC_2.4 tanl F +GLIBC_2.4 tgammal F +GLIBC_2.4 truncl F +GLIBC_2.4 y0l F +GLIBC_2.4 y1l F +GLIBC_2.4 ynl F diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/libnsl.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/libnsl.abilist new file mode 100644 index 0000000000..a23db2aeaf --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/libnsl.abilist @@ -0,0 +1,124 @@ +GLIBC_2.0 GLIBC_2.0 A +GLIBC_2.0 __yp_check F +GLIBC_2.0 xdr_domainname F +GLIBC_2.0 xdr_keydat F +GLIBC_2.0 xdr_mapname F +GLIBC_2.0 xdr_peername F +GLIBC_2.0 xdr_valdat F +GLIBC_2.0 xdr_yp_buf F +GLIBC_2.0 xdr_ypbind_binding F +GLIBC_2.0 xdr_ypbind_resp F +GLIBC_2.0 xdr_ypbind_resptype F +GLIBC_2.0 xdr_ypbind_setdom F +GLIBC_2.0 xdr_ypdelete_args F +GLIBC_2.0 xdr_ypmap_parms F +GLIBC_2.0 xdr_ypmaplist F +GLIBC_2.0 xdr_yppush_status F +GLIBC_2.0 xdr_yppushresp_xfr F +GLIBC_2.0 xdr_ypreq_key F +GLIBC_2.0 xdr_ypreq_nokey F +GLIBC_2.0 xdr_ypreq_xfr F +GLIBC_2.0 xdr_ypresp_all F +GLIBC_2.0 xdr_ypresp_key_val F +GLIBC_2.0 xdr_ypresp_maplist F +GLIBC_2.0 xdr_ypresp_master F +GLIBC_2.0 xdr_ypresp_order F +GLIBC_2.0 xdr_ypresp_val F +GLIBC_2.0 xdr_ypresp_xfr F +GLIBC_2.0 xdr_ypstat F +GLIBC_2.0 xdr_ypupdate_args F +GLIBC_2.0 xdr_ypxfrstat F +GLIBC_2.0 yp_all F +GLIBC_2.0 yp_bind F +GLIBC_2.0 yp_first F +GLIBC_2.0 yp_get_default_domain F +GLIBC_2.0 yp_maplist F +GLIBC_2.0 yp_master F +GLIBC_2.0 yp_match F +GLIBC_2.0 yp_next F +GLIBC_2.0 yp_order F +GLIBC_2.0 yp_unbind F +GLIBC_2.0 yp_update F +GLIBC_2.0 ypbinderr_string F +GLIBC_2.0 yperr_string F +GLIBC_2.0 ypprot_err F +GLIBC_2.1 GLIBC_2.1 A +GLIBC_2.1 __free_fdresult F +GLIBC_2.1 __nis_default_access F +GLIBC_2.1 __nis_default_group F +GLIBC_2.1 __nis_default_owner F +GLIBC_2.1 __nis_default_ttl F +GLIBC_2.1 __nis_finddirectory F +GLIBC_2.1 __nis_hash F +GLIBC_2.1 __nisbind_connect F +GLIBC_2.1 __nisbind_create F +GLIBC_2.1 __nisbind_destroy F +GLIBC_2.1 __nisbind_next F +GLIBC_2.1 nis_add F +GLIBC_2.1 nis_add_entry F +GLIBC_2.1 nis_addmember F +GLIBC_2.1 nis_checkpoint F +GLIBC_2.1 nis_clone_directory F +GLIBC_2.1 nis_clone_object F +GLIBC_2.1 nis_clone_result F +GLIBC_2.1 nis_creategroup F +GLIBC_2.1 nis_destroy_object F +GLIBC_2.1 nis_destroygroup F +GLIBC_2.1 nis_dir_cmp F +GLIBC_2.1 nis_domain_of F +GLIBC_2.1 nis_domain_of_r F +GLIBC_2.1 nis_first_entry F +GLIBC_2.1 nis_free_directory F +GLIBC_2.1 nis_free_object F +GLIBC_2.1 nis_free_request F +GLIBC_2.1 nis_freenames F +GLIBC_2.1 nis_freeresult F +GLIBC_2.1 nis_freeservlist F +GLIBC_2.1 nis_freetags F +GLIBC_2.1 nis_getnames F +GLIBC_2.1 nis_getservlist F +GLIBC_2.1 nis_ismember F +GLIBC_2.1 nis_leaf_of F +GLIBC_2.1 nis_leaf_of_r F +GLIBC_2.1 nis_lerror F +GLIBC_2.1 nis_list F +GLIBC_2.1 nis_local_directory F +GLIBC_2.1 nis_local_group F +GLIBC_2.1 nis_local_host F +GLIBC_2.1 nis_local_principal F +GLIBC_2.1 nis_lookup F +GLIBC_2.1 nis_mkdir F +GLIBC_2.1 nis_modify F +GLIBC_2.1 nis_modify_entry F +GLIBC_2.1 nis_name_of F +GLIBC_2.1 nis_name_of_r F +GLIBC_2.1 nis_next_entry F +GLIBC_2.1 nis_perror F +GLIBC_2.1 nis_ping F +GLIBC_2.1 nis_print_directory F +GLIBC_2.1 nis_print_entry F +GLIBC_2.1 nis_print_group F +GLIBC_2.1 nis_print_group_entry F +GLIBC_2.1 nis_print_link F +GLIBC_2.1 nis_print_object F +GLIBC_2.1 nis_print_result F +GLIBC_2.1 nis_print_rights F +GLIBC_2.1 nis_print_table F +GLIBC_2.1 nis_read_obj F +GLIBC_2.1 nis_remove F +GLIBC_2.1 nis_remove_entry F +GLIBC_2.1 nis_removemember F +GLIBC_2.1 nis_rmdir F +GLIBC_2.1 nis_servstate F +GLIBC_2.1 nis_sperrno F +GLIBC_2.1 nis_sperror F +GLIBC_2.1 nis_sperror_r F +GLIBC_2.1 nis_stats F +GLIBC_2.1 nis_verifygroup F +GLIBC_2.1 nis_write_obj F +GLIBC_2.1 readColdStartFile F +GLIBC_2.1 writeColdStartFile F +GLIBC_2.1 xdr_cback_data F +GLIBC_2.1 xdr_obj_p F +GLIBC_2.2 GLIBC_2.2 A +GLIBC_2.2 xdr_ypall F diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist new file mode 100644 index 0000000000..7e121d45f8 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist @@ -0,0 +1,259 @@ +GLIBC_2.0 GLIBC_2.0 A +GLIBC_2.0 _IO_flockfile F +GLIBC_2.0 _IO_ftrylockfile F +GLIBC_2.0 _IO_funlockfile F +GLIBC_2.0 __close F +GLIBC_2.0 __connect F +GLIBC_2.0 __errno_location F +GLIBC_2.0 __fcntl F +GLIBC_2.0 __fork F +GLIBC_2.0 __h_errno_location F +GLIBC_2.0 __lseek F +GLIBC_2.0 __open F +GLIBC_2.0 __pthread_getspecific F +GLIBC_2.0 __pthread_key_create F +GLIBC_2.0 __pthread_mutex_destroy F +GLIBC_2.0 __pthread_mutex_init F +GLIBC_2.0 __pthread_mutex_lock F +GLIBC_2.0 __pthread_mutex_trylock F +GLIBC_2.0 __pthread_mutex_unlock F +GLIBC_2.0 __pthread_mutexattr_destroy F +GLIBC_2.0 __pthread_mutexattr_init F +GLIBC_2.0 __pthread_mutexattr_settype F +GLIBC_2.0 __pthread_once F +GLIBC_2.0 __pthread_setspecific F +GLIBC_2.0 __read F +GLIBC_2.0 __send F +GLIBC_2.0 __sigaction F +GLIBC_2.0 __wait F +GLIBC_2.0 __write F +GLIBC_2.0 _pthread_cleanup_pop F +GLIBC_2.0 _pthread_cleanup_pop_restore F +GLIBC_2.0 _pthread_cleanup_push F +GLIBC_2.0 _pthread_cleanup_push_defer F +GLIBC_2.0 accept F +GLIBC_2.0 close F +GLIBC_2.0 connect F +GLIBC_2.0 fcntl F +GLIBC_2.0 flockfile F +GLIBC_2.0 fork F +GLIBC_2.0 fsync F +GLIBC_2.0 ftrylockfile F +GLIBC_2.0 funlockfile F +GLIBC_2.0 longjmp F +GLIBC_2.0 lseek F +GLIBC_2.0 msync F +GLIBC_2.0 nanosleep F +GLIBC_2.0 open F +GLIBC_2.0 pause F +GLIBC_2.0 pthread_atfork F +GLIBC_2.0 pthread_attr_destroy F +GLIBC_2.0 pthread_attr_getdetachstate F +GLIBC_2.0 pthread_attr_getinheritsched F +GLIBC_2.0 pthread_attr_getschedparam F +GLIBC_2.0 pthread_attr_getschedpolicy F +GLIBC_2.0 pthread_attr_getscope F +GLIBC_2.0 pthread_attr_init F +GLIBC_2.0 pthread_attr_setdetachstate F +GLIBC_2.0 pthread_attr_setinheritsched F +GLIBC_2.0 pthread_attr_setschedparam F +GLIBC_2.0 pthread_attr_setschedpolicy F +GLIBC_2.0 pthread_attr_setscope F +GLIBC_2.0 pthread_cancel F +GLIBC_2.0 pthread_cond_broadcast F +GLIBC_2.0 pthread_cond_destroy F +GLIBC_2.0 pthread_cond_init F +GLIBC_2.0 pthread_cond_signal F +GLIBC_2.0 pthread_cond_timedwait F +GLIBC_2.0 pthread_cond_wait F +GLIBC_2.0 pthread_condattr_destroy F +GLIBC_2.0 pthread_condattr_init F +GLIBC_2.0 pthread_create F +GLIBC_2.0 pthread_detach F +GLIBC_2.0 pthread_equal F +GLIBC_2.0 pthread_exit F +GLIBC_2.0 pthread_getschedparam F +GLIBC_2.0 pthread_getspecific F +GLIBC_2.0 pthread_join F +GLIBC_2.0 pthread_key_create F +GLIBC_2.0 pthread_key_delete F +GLIBC_2.0 pthread_kill F +GLIBC_2.0 pthread_kill_other_threads_np F +GLIBC_2.0 pthread_mutex_destroy F +GLIBC_2.0 pthread_mutex_init F +GLIBC_2.0 pthread_mutex_lock F +GLIBC_2.0 pthread_mutex_trylock F +GLIBC_2.0 pthread_mutex_unlock F +GLIBC_2.0 pthread_mutexattr_destroy F +GLIBC_2.0 pthread_mutexattr_getkind_np F +GLIBC_2.0 pthread_mutexattr_init F +GLIBC_2.0 pthread_mutexattr_setkind_np F +GLIBC_2.0 pthread_once F +GLIBC_2.0 pthread_self F +GLIBC_2.0 pthread_setcancelstate F +GLIBC_2.0 pthread_setcanceltype F +GLIBC_2.0 pthread_setschedparam F +GLIBC_2.0 pthread_setspecific F +GLIBC_2.0 pthread_sigmask F +GLIBC_2.0 pthread_testcancel F +GLIBC_2.0 raise F +GLIBC_2.0 read F +GLIBC_2.0 recv F +GLIBC_2.0 recvfrom F +GLIBC_2.0 recvmsg F +GLIBC_2.0 sem_destroy F +GLIBC_2.0 sem_getvalue F +GLIBC_2.0 sem_init F +GLIBC_2.0 sem_post F +GLIBC_2.0 sem_trywait F +GLIBC_2.0 sem_wait F +GLIBC_2.0 send F +GLIBC_2.0 sendmsg F +GLIBC_2.0 sendto F +GLIBC_2.0 sigaction F +GLIBC_2.0 siglongjmp F +GLIBC_2.0 sigwait F +GLIBC_2.0 system F +GLIBC_2.0 tcdrain F +GLIBC_2.0 vfork F +GLIBC_2.0 wait F +GLIBC_2.0 waitpid F +GLIBC_2.0 write F +GLIBC_2.1 GLIBC_2.1 A +GLIBC_2.1 __libc_allocate_rtsig F +GLIBC_2.1 __libc_current_sigrtmax F +GLIBC_2.1 __libc_current_sigrtmin F +GLIBC_2.1 pthread_attr_getguardsize F +GLIBC_2.1 pthread_attr_getstackaddr F +GLIBC_2.1 pthread_attr_getstacksize F +GLIBC_2.1 pthread_attr_init F +GLIBC_2.1 pthread_attr_setguardsize F +GLIBC_2.1 pthread_attr_setstackaddr F +GLIBC_2.1 pthread_attr_setstacksize F +GLIBC_2.1 pthread_create F +GLIBC_2.1 pthread_getconcurrency F +GLIBC_2.1 pthread_mutexattr_gettype F +GLIBC_2.1 pthread_mutexattr_settype F +GLIBC_2.1 pthread_rwlock_destroy F +GLIBC_2.1 pthread_rwlock_init F +GLIBC_2.1 pthread_rwlock_rdlock F +GLIBC_2.1 pthread_rwlock_tryrdlock F +GLIBC_2.1 pthread_rwlock_trywrlock F +GLIBC_2.1 pthread_rwlock_unlock F +GLIBC_2.1 pthread_rwlock_wrlock F +GLIBC_2.1 pthread_rwlockattr_destroy F +GLIBC_2.1 pthread_rwlockattr_getkind_np F +GLIBC_2.1 pthread_rwlockattr_getpshared F +GLIBC_2.1 pthread_rwlockattr_init F +GLIBC_2.1 pthread_rwlockattr_setkind_np F +GLIBC_2.1 pthread_rwlockattr_setpshared F +GLIBC_2.1 pthread_setconcurrency F +GLIBC_2.1 sem_destroy F +GLIBC_2.1 sem_getvalue F +GLIBC_2.1 sem_init F +GLIBC_2.1 sem_post F +GLIBC_2.1 sem_trywait F +GLIBC_2.1 sem_wait F +GLIBC_2.1.1 GLIBC_2.1.1 A +GLIBC_2.1.1 sem_close F +GLIBC_2.1.1 sem_open F +GLIBC_2.1.1 sem_unlink F +GLIBC_2.1.2 GLIBC_2.1.2 A +GLIBC_2.1.2 __vfork F +GLIBC_2.11 GLIBC_2.11 A +GLIBC_2.11 pthread_sigqueue F +GLIBC_2.12 GLIBC_2.12 A +GLIBC_2.12 pthread_getname_np F +GLIBC_2.12 pthread_mutex_consistent F +GLIBC_2.12 pthread_mutexattr_getrobust F +GLIBC_2.12 pthread_mutexattr_setrobust F +GLIBC_2.12 pthread_setname_np F +GLIBC_2.18 GLIBC_2.18 A +GLIBC_2.18 pthread_getattr_default_np F +GLIBC_2.18 pthread_setattr_default_np F +GLIBC_2.2 GLIBC_2.2 A +GLIBC_2.2 __open64 F +GLIBC_2.2 __pread64 F +GLIBC_2.2 __pthread_rwlock_destroy F +GLIBC_2.2 __pthread_rwlock_init F +GLIBC_2.2 __pthread_rwlock_rdlock F +GLIBC_2.2 __pthread_rwlock_tryrdlock F +GLIBC_2.2 __pthread_rwlock_trywrlock F +GLIBC_2.2 __pthread_rwlock_unlock F +GLIBC_2.2 __pthread_rwlock_wrlock F +GLIBC_2.2 __pwrite64 F +GLIBC_2.2 __res_state F +GLIBC_2.2 lseek64 F +GLIBC_2.2 open64 F +GLIBC_2.2 pread F +GLIBC_2.2 pread64 F +GLIBC_2.2 pthread_attr_getstack F +GLIBC_2.2 pthread_attr_setstack F +GLIBC_2.2 pthread_barrier_destroy F +GLIBC_2.2 pthread_barrier_init F +GLIBC_2.2 pthread_barrier_wait F +GLIBC_2.2 pthread_barrierattr_destroy F +GLIBC_2.2 pthread_barrierattr_init F +GLIBC_2.2 pthread_barrierattr_setpshared F +GLIBC_2.2 pthread_condattr_getpshared F +GLIBC_2.2 pthread_condattr_setpshared F +GLIBC_2.2 pthread_getcpuclockid F +GLIBC_2.2 pthread_mutex_timedlock F +GLIBC_2.2 pthread_mutexattr_getpshared F +GLIBC_2.2 pthread_mutexattr_setpshared F +GLIBC_2.2 pthread_rwlock_timedrdlock F +GLIBC_2.2 pthread_rwlock_timedwrlock F +GLIBC_2.2 pthread_spin_destroy F +GLIBC_2.2 pthread_spin_init F +GLIBC_2.2 pthread_spin_lock F +GLIBC_2.2 pthread_spin_trylock F +GLIBC_2.2 pthread_spin_unlock F +GLIBC_2.2 pthread_yield F +GLIBC_2.2 pwrite F +GLIBC_2.2 pwrite64 F +GLIBC_2.2 sem_timedwait F +GLIBC_2.2.3 GLIBC_2.2.3 A +GLIBC_2.2.3 pthread_getattr_np F +GLIBC_2.2.6 GLIBC_2.2.6 A +GLIBC_2.2.6 __nanosleep F +GLIBC_2.3.2 GLIBC_2.3.2 A +GLIBC_2.3.2 pthread_cond_broadcast F +GLIBC_2.3.2 pthread_cond_destroy F +GLIBC_2.3.2 pthread_cond_init F +GLIBC_2.3.2 pthread_cond_signal F +GLIBC_2.3.2 pthread_cond_timedwait F +GLIBC_2.3.2 pthread_cond_wait F +GLIBC_2.3.3 GLIBC_2.3.3 A +GLIBC_2.3.3 __pthread_cleanup_routine F +GLIBC_2.3.3 __pthread_register_cancel F +GLIBC_2.3.3 __pthread_register_cancel_defer F +GLIBC_2.3.3 __pthread_unregister_cancel F +GLIBC_2.3.3 __pthread_unregister_cancel_restore F +GLIBC_2.3.3 __pthread_unwind_next F +GLIBC_2.3.3 pthread_attr_getaffinity_np F +GLIBC_2.3.3 pthread_attr_setaffinity_np F +GLIBC_2.3.3 pthread_attr_setstack F +GLIBC_2.3.3 pthread_attr_setstacksize F +GLIBC_2.3.3 pthread_barrierattr_getpshared F +GLIBC_2.3.3 pthread_condattr_getclock F +GLIBC_2.3.3 pthread_condattr_setclock F +GLIBC_2.3.3 pthread_getaffinity_np F +GLIBC_2.3.3 pthread_setaffinity_np F +GLIBC_2.3.3 pthread_timedjoin_np F +GLIBC_2.3.3 pthread_tryjoin_np F +GLIBC_2.3.4 GLIBC_2.3.4 A +GLIBC_2.3.4 pthread_attr_getaffinity_np F +GLIBC_2.3.4 pthread_attr_setaffinity_np F +GLIBC_2.3.4 pthread_getaffinity_np F +GLIBC_2.3.4 pthread_setaffinity_np F +GLIBC_2.3.4 pthread_setschedprio F +GLIBC_2.4 GLIBC_2.4 A +GLIBC_2.4 pthread_mutex_consistent_np F +GLIBC_2.4 pthread_mutex_getprioceiling F +GLIBC_2.4 pthread_mutex_setprioceiling F +GLIBC_2.4 pthread_mutexattr_getprioceiling F +GLIBC_2.4 pthread_mutexattr_getprotocol F +GLIBC_2.4 pthread_mutexattr_getrobust_np F +GLIBC_2.4 pthread_mutexattr_setprioceiling F +GLIBC_2.4 pthread_mutexattr_setprotocol F +GLIBC_2.4 pthread_mutexattr_setrobust_np F diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/libresolv.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/libresolv.abilist new file mode 100644 index 0000000000..4d50e7c8c6 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/libresolv.abilist @@ -0,0 +1,100 @@ +GLIBC_2.0 GLIBC_2.0 A +GLIBC_2.0 __b64_ntop F +GLIBC_2.0 __b64_pton F +GLIBC_2.0 __dn_comp F +GLIBC_2.0 __dn_count_labels F +GLIBC_2.0 __dn_skipname F +GLIBC_2.0 __fp_nquery F +GLIBC_2.0 __fp_query F +GLIBC_2.0 __fp_resstat F +GLIBC_2.0 __hostalias F +GLIBC_2.0 __loc_aton F +GLIBC_2.0 __loc_ntoa F +GLIBC_2.0 __p_cdname F +GLIBC_2.0 __p_cdnname F +GLIBC_2.0 __p_class F +GLIBC_2.0 __p_class_syms D 0x54 +GLIBC_2.0 __p_fqname F +GLIBC_2.0 __p_fqnname F +GLIBC_2.0 __p_option F +GLIBC_2.0 __p_query F +GLIBC_2.0 __p_secstodate F +GLIBC_2.0 __p_time F +GLIBC_2.0 __p_type F +GLIBC_2.0 __p_type_syms D 0x228 +GLIBC_2.0 __putlong F +GLIBC_2.0 __putshort F +GLIBC_2.0 __res_close F +GLIBC_2.0 __res_dnok F +GLIBC_2.0 __res_hnok F +GLIBC_2.0 __res_isourserver F +GLIBC_2.0 __res_mailok F +GLIBC_2.0 __res_nameinquery F +GLIBC_2.0 __res_ownok F +GLIBC_2.0 __res_queriesmatch F +GLIBC_2.0 __res_send F +GLIBC_2.0 __sym_ntop F +GLIBC_2.0 __sym_ntos F +GLIBC_2.0 __sym_ston F +GLIBC_2.0 _gethtbyaddr F +GLIBC_2.0 _gethtbyname F +GLIBC_2.0 _gethtbyname2 F +GLIBC_2.0 _gethtent F +GLIBC_2.0 _getlong F +GLIBC_2.0 _getshort F +GLIBC_2.0 _res_opcodes D 0x40 +GLIBC_2.0 _sethtent F +GLIBC_2.0 dn_expand F +GLIBC_2.0 inet_net_ntop F +GLIBC_2.0 inet_net_pton F +GLIBC_2.0 inet_neta F +GLIBC_2.0 res_gethostbyaddr F +GLIBC_2.0 res_gethostbyname F +GLIBC_2.0 res_gethostbyname2 F +GLIBC_2.0 res_mkquery F +GLIBC_2.0 res_query F +GLIBC_2.0 res_querydomain F +GLIBC_2.0 res_search F +GLIBC_2.0 res_send_setqhook F +GLIBC_2.0 res_send_setrhook F +GLIBC_2.2 GLIBC_2.2 A +GLIBC_2.2 __dn_expand F +GLIBC_2.2 __res_hostalias F +GLIBC_2.2 __res_mkquery F +GLIBC_2.2 __res_nmkquery F +GLIBC_2.2 __res_nquery F +GLIBC_2.2 __res_nquerydomain F +GLIBC_2.2 __res_nsearch F +GLIBC_2.2 __res_nsend F +GLIBC_2.2 __res_query F +GLIBC_2.2 __res_querydomain F +GLIBC_2.2 __res_search F +GLIBC_2.3.2 GLIBC_2.3.2 A +GLIBC_2.3.2 __p_rcode F +GLIBC_2.9 GLIBC_2.9 A +GLIBC_2.9 ns_datetosecs F +GLIBC_2.9 ns_format_ttl F +GLIBC_2.9 ns_get16 F +GLIBC_2.9 ns_get32 F +GLIBC_2.9 ns_initparse F +GLIBC_2.9 ns_makecanon F +GLIBC_2.9 ns_msg_getflag F +GLIBC_2.9 ns_name_compress F +GLIBC_2.9 ns_name_ntol F +GLIBC_2.9 ns_name_ntop F +GLIBC_2.9 ns_name_pack F +GLIBC_2.9 ns_name_pton F +GLIBC_2.9 ns_name_rollback F +GLIBC_2.9 ns_name_skip F +GLIBC_2.9 ns_name_uncompress F +GLIBC_2.9 ns_name_unpack F +GLIBC_2.9 ns_parse_ttl F +GLIBC_2.9 ns_parserr F +GLIBC_2.9 ns_put16 F +GLIBC_2.9 ns_put32 F +GLIBC_2.9 ns_samedomain F +GLIBC_2.9 ns_samename F +GLIBC_2.9 ns_skiprr F +GLIBC_2.9 ns_sprintrr F +GLIBC_2.9 ns_sprintrrf F +GLIBC_2.9 ns_subdomain F diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist new file mode 100644 index 0000000000..07056199bc --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist @@ -0,0 +1,50 @@ +GLIBC_2.1 GLIBC_2.1 A +GLIBC_2.1 aio_cancel F +GLIBC_2.1 aio_cancel64 F +GLIBC_2.1 aio_error F +GLIBC_2.1 aio_error64 F +GLIBC_2.1 aio_fsync F +GLIBC_2.1 aio_fsync64 F +GLIBC_2.1 aio_init F +GLIBC_2.1 aio_read F +GLIBC_2.1 aio_read64 F +GLIBC_2.1 aio_return F +GLIBC_2.1 aio_return64 F +GLIBC_2.1 aio_suspend F +GLIBC_2.1 aio_suspend64 F +GLIBC_2.1 aio_write F +GLIBC_2.1 aio_write64 F +GLIBC_2.1 lio_listio F +GLIBC_2.1 lio_listio64 F +GLIBC_2.2 GLIBC_2.2 A +GLIBC_2.2 clock_getcpuclockid F +GLIBC_2.2 clock_getres F +GLIBC_2.2 clock_gettime F +GLIBC_2.2 clock_nanosleep F +GLIBC_2.2 clock_settime F +GLIBC_2.2 shm_open F +GLIBC_2.2 shm_unlink F +GLIBC_2.2 timer_create F +GLIBC_2.2 timer_delete F +GLIBC_2.2 timer_getoverrun F +GLIBC_2.2 timer_gettime F +GLIBC_2.2 timer_settime F +GLIBC_2.3 GLIBC_2.3 A +GLIBC_2.3 aio_cancel F +GLIBC_2.3 aio_cancel64 F +GLIBC_2.3.4 GLIBC_2.3.4 A +GLIBC_2.3.4 mq_close F +GLIBC_2.3.4 mq_getattr F +GLIBC_2.3.4 mq_notify F +GLIBC_2.3.4 mq_open F +GLIBC_2.3.4 mq_receive F +GLIBC_2.3.4 mq_send F +GLIBC_2.3.4 mq_setattr F +GLIBC_2.3.4 mq_timedreceive F +GLIBC_2.3.4 mq_timedsend F +GLIBC_2.3.4 mq_unlink F +GLIBC_2.4 GLIBC_2.4 A +GLIBC_2.4 lio_listio F +GLIBC_2.4 lio_listio64 F +GLIBC_2.7 GLIBC_2.7 A +GLIBC_2.7 __mq_open_2 F diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/libthread_db.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/libthread_db.abilist new file mode 100644 index 0000000000..a8a8c2c68d --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/libthread_db.abilist @@ -0,0 +1,44 @@ +GLIBC_2.1.3 GLIBC_2.1.3 A +GLIBC_2.1.3 td_init F +GLIBC_2.1.3 td_log F +GLIBC_2.1.3 td_ta_clear_event F +GLIBC_2.1.3 td_ta_delete F +GLIBC_2.1.3 td_ta_enable_stats F +GLIBC_2.1.3 td_ta_event_addr F +GLIBC_2.1.3 td_ta_event_getmsg F +GLIBC_2.1.3 td_ta_get_nthreads F +GLIBC_2.1.3 td_ta_get_ph F +GLIBC_2.1.3 td_ta_get_stats F +GLIBC_2.1.3 td_ta_map_id2thr F +GLIBC_2.1.3 td_ta_map_lwp2thr F +GLIBC_2.1.3 td_ta_new F +GLIBC_2.1.3 td_ta_reset_stats F +GLIBC_2.1.3 td_ta_set_event F +GLIBC_2.1.3 td_ta_setconcurrency F +GLIBC_2.1.3 td_ta_thr_iter F +GLIBC_2.1.3 td_ta_tsd_iter F +GLIBC_2.1.3 td_thr_clear_event F +GLIBC_2.1.3 td_thr_dbresume F +GLIBC_2.1.3 td_thr_dbsuspend F +GLIBC_2.1.3 td_thr_event_enable F +GLIBC_2.1.3 td_thr_event_getmsg F +GLIBC_2.1.3 td_thr_get_info F +GLIBC_2.1.3 td_thr_getfpregs F +GLIBC_2.1.3 td_thr_getgregs F +GLIBC_2.1.3 td_thr_getxregs F +GLIBC_2.1.3 td_thr_getxregsize F +GLIBC_2.1.3 td_thr_set_event F +GLIBC_2.1.3 td_thr_setfpregs F +GLIBC_2.1.3 td_thr_setgregs F +GLIBC_2.1.3 td_thr_setprio F +GLIBC_2.1.3 td_thr_setsigpending F +GLIBC_2.1.3 td_thr_setxregs F +GLIBC_2.1.3 td_thr_sigsetmask F +GLIBC_2.1.3 td_thr_tsd F +GLIBC_2.1.3 td_thr_validate F +GLIBC_2.2.3 GLIBC_2.2.3 A +GLIBC_2.2.3 td_symbol_list F +GLIBC_2.3 GLIBC_2.3 A +GLIBC_2.3 td_thr_tls_get_addr F +GLIBC_2.3.3 GLIBC_2.3.3 A +GLIBC_2.3.3 td_thr_tlsbase F diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/libutil.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/libutil.abilist new file mode 100644 index 0000000000..89c67755c4 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/libutil.abilist @@ -0,0 +1,7 @@ +GLIBC_2.0 GLIBC_2.0 A +GLIBC_2.0 forkpty F +GLIBC_2.0 login F +GLIBC_2.0 login_tty F +GLIBC_2.0 logout F +GLIBC_2.0 logwtmp F +GLIBC_2.0 openpty F diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/localplt.data b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/localplt.data new file mode 100644 index 0000000000..c9786fd6ea --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/localplt.data @@ -0,0 +1,27 @@ +libc.so: _Q_add ? +libc.so: _Q_cmp ? +libc.so: _Q_div ? +libc.so: _Q_feq ? +libc.so: _Q_fge ? +libc.so: _Q_fle ? +libc.so: _Q_flt ? +libc.so: _Q_fne ? +libc.so: _Q_itoq ? +libc.so: _Q_mul ? +libc.so: _Q_sub ? +libc.so: _Unwind_Find_FDE +libc.so: calloc +libc.so: free +libc.so: malloc +libc.so: memalign +libc.so: realloc +libm.so: matherr +# The main malloc is interposed into the dynamic linker, for +# allocations after the initial link (when dlopen is used). +ld.so: malloc +ld.so: calloc +ld.so: realloc +ld.so: free +# The TLS-enabled version of these functions is interposed from libc.so. +ld.so: _dl_signal_error +ld.so: _dl_catch_error diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/lockf64.c b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/lockf64.c new file mode 100644 index 0000000000..a88f5a784a --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/lockf64.c @@ -0,0 +1 @@ +#include <sysdeps/unix/sysv/linux/i386/lockf64.c> diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/lxstat.c b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/lxstat.c new file mode 100644 index 0000000000..2371cd9719 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/lxstat.c @@ -0,0 +1,2 @@ +#include <sysdeps/unix/sysv/linux/i386/lxstat.c> + diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/makecontext.c b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/makecontext.c new file mode 100644 index 0000000000..2756bf5346 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/makecontext.c @@ -0,0 +1,92 @@ +/* Create new context. + Copyright (C) 2008-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by David S. Miller <davem@davemloft.net>, 2008. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#include <sysdep.h> +#include <stdarg.h> +#include <stdint.h> +#include <ucontext.h> + +/* Sets up the outgoing arguments and the program counter for a user + context for the requested function call. + + Returning to the correct parent context is pretty simple on + Sparc. We only need to link up the register windows correctly. + Since global registers are clobbered by calls, we need not be + concerned about those, and thus is all could be worked out without + using a trampoline. + + Except that we must deal with the signal mask, thus a trampoline + is unavoidable. 32-bit stackframe layout: + +-----------------------------------------+ + | 7th and further parameters | + +-----------------------------------------+ + | backup storage for initial 6 parameters | + +-----------------------------------------+ + | struct return pointer | + +-----------------------------------------+ + | 8 incoming registers | + +-----------------------------------------+ + | 8 local registers | + %sp --> +-----------------------------------------+ + +*/ + +void +__makecontext (ucontext_t *ucp, void (*func) (void), int argc, ...) +{ + extern void __start_context (void); + unsigned long int *sp; + va_list ap; + int i; + + sp = (unsigned long int *) (ucp->uc_stack.ss_sp + ucp->uc_stack.ss_size); + sp -= 16 + 7 + argc; + sp = (unsigned long int *) (((uintptr_t) sp) & ~(8 - 1)); + + for (i = 0; i < 8; i++) + sp[i + 8] = ucp->uc_mcontext.gregs[REG_O0 + i]; + + /* The struct return pointer is essentially unused, so we can + place the link there. */ + sp[16] = (unsigned long int) ucp->uc_link; + + va_start (ap, argc); + + /* Fill in outgoing arguments, including those which will + end up being passed on the stack. */ + for (i = 0; i < argc; i++) + { + unsigned long int arg = va_arg (ap, unsigned long int); + if (i < 6) + ucp->uc_mcontext.gregs[REG_O0 + i] = arg; + else + sp[i + 23 - 6] = arg; + } + + va_end (ap); + + ucp->uc_mcontext.gregs[REG_O6] = (unsigned long int) sp; + + ucp->uc_mcontext.gregs[REG_O7] = ((unsigned long int) __start_context) - 8; + + ucp->uc_mcontext.gregs[REG_PC] = (unsigned long int) func; + ucp->uc_mcontext.gregs[REG_nPC] = ucp->uc_mcontext.gregs[REG_PC] + 4; +} + +weak_alias (__makecontext, makecontext) diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/nldbl-abi.h b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/nldbl-abi.h new file mode 100644 index 0000000000..bd985cc59c --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/nldbl-abi.h @@ -0,0 +1,8 @@ +/* ABI version for long double switch. + This is used by the Versions and math_ldbl_opt.h files in + sysdeps/ieee754/ldbl-opt/. It gives the ABI version where + long double == double was replaced with proper long double + for libm *l functions and libc functions using long double. */ + +#define NLDBL_VERSION GLIBC_2.4 +#define LONG_DOUBLE_COMPAT_VERSION GLIBC_2_4 diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/pipe.S b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/pipe.S new file mode 100644 index 0000000000..5d06aadbe7 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/pipe.S @@ -0,0 +1,39 @@ +/* Copyright (C) 1997-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Miguel de Icaza <miguel@gnu.ai.mit.edu>, 1997. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#include <sysdep.h> + + .text + .globl __syscall_error +ENTRY(__libc_pipe) + mov %o0, %o2 /* Save PIPEDES. */ + mov SYS_ify(pipe),%g1 + ta 0x10 + bcc 1f + mov %o7, %g1 + call __syscall_error + mov %g1, %o7 +1: st %o0, [%o2] /* PIPEDES[0] = %o0; */ + st %o1, [%o2 + 4] /* PIPEDES[1] = %o1; */ + retl + clr %o0 +END(__libc_pipe) + +weak_alias (__libc_pipe, __pipe) +libc_hidden_def (__pipe) +weak_alias (__libc_pipe, pipe) diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/profil-counter.h b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/profil-counter.h new file mode 100644 index 0000000000..44b655a964 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/profil-counter.h @@ -0,0 +1,28 @@ +/* Low-level statistical profiling support function. Linux/SPARC version. + Copyright (C) 1997-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#include <signal.h> + +void +__profil_counter (int signo, struct sigcontext *si) +{ + profil_count ((void *) si->si_regs.pc); +} +#ifndef __profil_counter +weak_alias (__profil_counter, profil_counter) +#endif diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/readdir64.c b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/readdir64.c new file mode 100644 index 0000000000..2ea26dd409 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/readdir64.c @@ -0,0 +1 @@ +#include <sysdeps/unix/sysv/linux/i386/readdir64.c> diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/readdir64_r.c b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/readdir64_r.c new file mode 100644 index 0000000000..9f54f897e3 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/readdir64_r.c @@ -0,0 +1 @@ +#include <sysdeps/unix/sysv/linux/i386/readdir64_r.c> diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/register-dump.h b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/register-dump.h new file mode 100644 index 0000000000..62485e8431 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/register-dump.h @@ -0,0 +1,335 @@ +/* Dump registers. + Copyright (C) 1999-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Jakub Jelinek <jakub@redhat.com>, 1999. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#include <sys/uio.h> +#include <_itoa.h> + +/* We will print the register dump in this format: + + PSR: XXXXXXXX PC: XXXXXXXX NPC: XXXXXXXX Y: XXXXXXXX + g0: 00000000 g1: XXXXXXXX g2: XXXXXXXX g3: XXXXXXXX + g4: XXXXXXXX g5: XXXXXXXX g6: XXXXXXXX g7: XXXXXXXX + o0: XXXXXXXX o1: XXXXXXXX o2: XXXXXXXX o3: XXXXXXXX + o4: XXXXXXXX o5: XXXXXXXX sp: XXXXXXXX o7: XXXXXXXX + l0: XXXXXXXX l1: XXXXXXXX l2: XXXXXXXX l3: XXXXXXXX + l4: XXXXXXXX l5: XXXXXXXX l6: XXXXXXXX l7: XXXXXXXX + i0: XXXXXXXX i1: XXXXXXXX i2: XXXXXXXX i3: XXXXXXXX + i4: XXXXXXXX i5: XXXXXXXX fp: XXXXXXXX i7: XXXXXXXX + + followed on sun4, sun4c, sun4d, sun4m by: + + Old mask: XXXXXXXX FSR: XXXXXXXX FPQ: XXXXXXXX + f0: XXXXXXXXXXXXXXXX f2: XXXXXXXXXXXXXXXX f4: XXXXXXXXXXXXXXXX + f6: XXXXXXXXXXXXXXXX f8: XXXXXXXXXXXXXXXX f10: XXXXXXXXXXXXXXXX + f12: XXXXXXXXXXXXXXXX f14: XXXXXXXXXXXXXXXX f16: XXXXXXXXXXXXXXXX + f18: XXXXXXXXXXXXXXXX f20: XXXXXXXXXXXXXXXX f22: XXXXXXXXXXXXXXXX + f24: XXXXXXXXXXXXXXXX f26: XXXXXXXXXXXXXXXX f28: XXXXXXXXXXXXXXXX + f30: XXXXXXXXXXXXXXXX + + and on sun4u by: + + Old mask: XXXXXXXX XFSR: XXXXXXXXXXXXXXXX GSR: XX FPRS: X + f0: XXXXXXXXXXXXXXXX f2: XXXXXXXXXXXXXXXX f4: XXXXXXXXXXXXXXXX + f6: XXXXXXXXXXXXXXXX f8: XXXXXXXXXXXXXXXX f10: XXXXXXXXXXXXXXXX + f12: XXXXXXXXXXXXXXXX f14: XXXXXXXXXXXXXXXX f16: XXXXXXXXXXXXXXXX + f18: XXXXXXXXXXXXXXXX f20: XXXXXXXXXXXXXXXX f22: XXXXXXXXXXXXXXXX + f24: XXXXXXXXXXXXXXXX f26: XXXXXXXXXXXXXXXX f28: XXXXXXXXXXXXXXXX + f30: XXXXXXXXXXXXXXXX f32: XXXXXXXXXXXXXXXX f34: XXXXXXXXXXXXXXXX + f36: XXXXXXXXXXXXXXXX f38: XXXXXXXXXXXXXXXX f40: XXXXXXXXXXXXXXXX + f42: XXXXXXXXXXXXXXXX f44: XXXXXXXXXXXXXXXX f46: XXXXXXXXXXXXXXXX + f48: XXXXXXXXXXXXXXXX f50: XXXXXXXXXXXXXXXX f52: XXXXXXXXXXXXXXXX + f54: XXXXXXXXXXXXXXXX f56: XXXXXXXXXXXXXXXX f58: XXXXXXXXXXXXXXXX + f60: XXXXXXXXXXXXXXXX f62: XXXXXXXXXXXXXXXX + + */ + +static void +hexvalue (unsigned long int value, char *buf, size_t len) +{ + char *cp = _itoa_word (value, buf + len, 16, 0); + while (cp > buf) + *--cp = '0'; +} + +struct __siginfo_sparc32_fpu +{ + unsigned int si_float_regs[32]; + unsigned int si_fsr; + unsigned int si_fpq; +}; +struct __siginfo_sparc64_fpu +{ + unsigned int si_float_regs[64]; + unsigned int si_xfsr; + unsigned int si_fsr; + unsigned int _pad1; + unsigned int si_gsr; + unsigned int _pad2; + unsigned int si_fprs; +}; + +static void +register_dump (int fd, SIGCONTEXT ctx) +{ + char regs[36][8]; + char fregs[68][8]; + struct iovec iov[150]; + size_t nr = 0; + int i; + unsigned int *r = (unsigned int *) + ctx->si_regs.u_regs[14]; + +#define ADD_STRING(str) \ + iov[nr].iov_base = (char *) str; \ + iov[nr].iov_len = strlen (str); \ + ++nr +#define ADD_MEM(str, len) \ + iov[nr].iov_base = str; \ + iov[nr].iov_len = len; \ + ++nr + + /* Generate strings of register contents. */ + hexvalue (ctx->si_regs.psr, regs[0], 8); + hexvalue (ctx->si_regs.pc, regs[1], 8); + hexvalue (ctx->si_regs.npc, regs[2], 8); + hexvalue (ctx->si_regs.y, regs[3], 8); + for (i = 1; i <= 15; i++) + hexvalue (ctx->si_regs.u_regs[i], regs[3+i], 8); + for (i = 0; i <= 15; i++) + hexvalue (r[i], regs[19+i], 8); + hexvalue (ctx->si_mask, regs[35], 8); + + /* Generate the output. */ + ADD_STRING ("Register dump:\n\n PSR: "); + ADD_MEM (regs[0], 8); + ADD_STRING (" PC: "); + ADD_MEM (regs[1], 8); + ADD_STRING (" NPC: "); + ADD_MEM (regs[2], 8); + ADD_STRING (" Y: "); + ADD_MEM (regs[3], 8); + ADD_STRING ("\n g0: 00000000 g1: "); + ADD_MEM (regs[4], 8); + ADD_STRING (" g2: "); + ADD_MEM (regs[5], 8); + ADD_STRING (" g3: "); + ADD_MEM (regs[6], 8); + ADD_STRING ("\n g4: "); + ADD_MEM (regs[7], 8); + ADD_STRING (" g5: "); + ADD_MEM (regs[8], 8); + ADD_STRING (" g6: "); + ADD_MEM (regs[9], 8); + ADD_STRING (" g7: "); + ADD_MEM (regs[10], 8); + ADD_STRING ("\n o0: "); + ADD_MEM (regs[11], 8); + ADD_STRING (" o1: "); + ADD_MEM (regs[12], 8); + ADD_STRING (" o2: "); + ADD_MEM (regs[13], 8); + ADD_STRING (" o3: "); + ADD_MEM (regs[14], 8); + ADD_STRING ("\n o4: "); + ADD_MEM (regs[15], 8); + ADD_STRING (" o5: "); + ADD_MEM (regs[16], 8); + ADD_STRING (" sp: "); + ADD_MEM (regs[17], 8); + ADD_STRING (" o7: "); + ADD_MEM (regs[18], 8); + ADD_STRING ("\n l0: "); + ADD_MEM (regs[19], 8); + ADD_STRING (" l1: "); + ADD_MEM (regs[20], 8); + ADD_STRING (" l2: "); + ADD_MEM (regs[21], 8); + ADD_STRING (" l3: "); + ADD_MEM (regs[22], 8); + ADD_STRING ("\n l4: "); + ADD_MEM (regs[23], 8); + ADD_STRING (" l5: "); + ADD_MEM (regs[24], 8); + ADD_STRING (" l6: "); + ADD_MEM (regs[25], 8); + ADD_STRING (" l7: "); + ADD_MEM (regs[26], 8); + ADD_STRING ("\n i0: "); + ADD_MEM (regs[27], 8); + ADD_STRING (" i1: "); + ADD_MEM (regs[28], 8); + ADD_STRING (" i2: "); + ADD_MEM (regs[29], 8); + ADD_STRING (" i3: "); + ADD_MEM (regs[30], 8); + ADD_STRING ("\n i4: "); + ADD_MEM (regs[31], 8); + ADD_STRING (" i5: "); + ADD_MEM (regs[32], 8); + ADD_STRING (" fp: "); + ADD_MEM (regs[33], 8); + ADD_STRING (" i7: "); + ADD_MEM (regs[34], 8); + ADD_STRING ("\n\n Old mask: "); + ADD_MEM (regs[35], 8); + + if ((ctx->si_regs.psr & 0xff000000) == 0xff000000) + { + struct __siginfo_sparc64_fpu *f; + + f = *(struct __siginfo_sparc64_fpu **) (ctx + 1); + if (f != NULL) + { + for (i = 0; i < 64; i++) + hexvalue (f->si_float_regs[i], fregs[i], 8); + hexvalue (f->si_xfsr, fregs[64], 8); + hexvalue (f->si_fsr, fregs[65], 8); + hexvalue (f->si_gsr, fregs[66], 2); + hexvalue (f->si_fprs, fregs[67], 1); + ADD_STRING (" XFSR: "); + ADD_MEM (fregs[64], 8); + ADD_MEM (fregs[65], 8); + ADD_STRING (" GSR: "); + ADD_MEM (fregs[66], 2); + ADD_STRING (" FPRS: "); + ADD_MEM (fregs[67], 1); + ADD_STRING ("\n f0: "); + ADD_MEM (fregs[0], 16); + ADD_STRING (" f2: "); + ADD_MEM (fregs[2], 16); + ADD_STRING (" f4: "); + ADD_MEM (fregs[4], 16); + ADD_STRING ("\n f6: "); + ADD_MEM (fregs[6], 16); + ADD_STRING (" f8: "); + ADD_MEM (fregs[8], 16); + ADD_STRING (" f10: "); + ADD_MEM (fregs[10], 16); + ADD_STRING ("\n f12: "); + ADD_MEM (fregs[12], 16); + ADD_STRING (" f14: "); + ADD_MEM (fregs[14], 16); + ADD_STRING (" f16: "); + ADD_MEM (fregs[16], 16); + ADD_STRING ("\n f18: "); + ADD_MEM (fregs[18], 16); + ADD_STRING (" f20: "); + ADD_MEM (fregs[20], 16); + ADD_STRING (" f22: "); + ADD_MEM (fregs[22], 16); + ADD_STRING ("\n f24: "); + ADD_MEM (fregs[24], 16); + ADD_STRING (" f26: "); + ADD_MEM (fregs[26], 16); + ADD_STRING (" f28: "); + ADD_MEM (fregs[28], 16); + ADD_STRING ("\n f30: "); + ADD_MEM (fregs[30], 16); + ADD_STRING (" f32: "); + ADD_MEM (fregs[32], 16); + ADD_STRING (" f34: "); + ADD_MEM (fregs[34], 16); + ADD_STRING ("\n f36: "); + ADD_MEM (fregs[36], 16); + ADD_STRING (" f38: "); + ADD_MEM (fregs[38], 16); + ADD_STRING (" f40: "); + ADD_MEM (fregs[40], 16); + ADD_STRING ("\n f42: "); + ADD_MEM (fregs[42], 16); + ADD_STRING (" f44: "); + ADD_MEM (fregs[44], 16); + ADD_STRING (" f46: "); + ADD_MEM (fregs[46], 16); + ADD_STRING ("\n f48: "); + ADD_MEM (fregs[48], 16); + ADD_STRING (" f50: "); + ADD_MEM (fregs[50], 16); + ADD_STRING (" f52: "); + ADD_MEM (fregs[52], 16); + ADD_STRING ("\n f54: "); + ADD_MEM (fregs[54], 16); + ADD_STRING (" f56: "); + ADD_MEM (fregs[56], 16); + ADD_STRING (" f58: "); + ADD_MEM (fregs[58], 16); + ADD_STRING ("\n f60: "); + ADD_MEM (fregs[60], 16); + ADD_STRING (" f62: "); + ADD_MEM (fregs[62], 16); + } + } + else + { + struct __siginfo_sparc32_fpu *f; + + f = *(struct __siginfo_sparc32_fpu **) (ctx + 1); + if (f != NULL) + { + for (i = 0; i < 32; i++) + hexvalue (f->si_float_regs[i], fregs[i], 8); + hexvalue (f->si_fsr, fregs[64], 8); + hexvalue (f->si_fpq, fregs[65], 8); + ADD_STRING (" FSR: "); + ADD_MEM (fregs[64], 8); + ADD_STRING (" FPQ: "); + ADD_MEM (fregs[65], 8); + ADD_STRING ("\n f0: "); + ADD_MEM (fregs[0], 16); + ADD_STRING (" f2: "); + ADD_MEM (fregs[2], 16); + ADD_STRING (" f4: "); + ADD_MEM (fregs[4], 16); + ADD_STRING ("\n f6: "); + ADD_MEM (fregs[6], 16); + ADD_STRING (" f8: "); + ADD_MEM (fregs[8], 16); + ADD_STRING (" f10: "); + ADD_MEM (fregs[10], 16); + ADD_STRING ("\n f12: "); + ADD_MEM (fregs[12], 16); + ADD_STRING (" f14: "); + ADD_MEM (fregs[14], 16); + ADD_STRING (" f16: "); + ADD_MEM (fregs[16], 16); + ADD_STRING ("\n f18: "); + ADD_MEM (fregs[18], 16); + ADD_STRING (" f20: "); + ADD_MEM (fregs[20], 16); + ADD_STRING (" f22: "); + ADD_MEM (fregs[22], 16); + ADD_STRING ("\n f24: "); + ADD_MEM (fregs[24], 16); + ADD_STRING (" f26: "); + ADD_MEM (fregs[26], 16); + ADD_STRING (" f28: "); + ADD_MEM (fregs[28], 16); + ADD_STRING ("\n f30: "); + ADD_MEM (fregs[30], 16); + } + } + + ADD_STRING ("\n"); + + /* Write the stuff out. */ + writev (fd, iov, nr); +} + + +#define REGISTER_DUMP register_dump (fd, ctx) diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/scandir64.c b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/scandir64.c new file mode 100644 index 0000000000..506fd8877c --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/scandir64.c @@ -0,0 +1 @@ +#include <sysdeps/unix/sysv/linux/i386/scandir64.c> diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/setcontext.S b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/setcontext.S new file mode 100644 index 0000000000..1a5f2de823 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/setcontext.S @@ -0,0 +1,118 @@ +/* Install given context. + Copyright (C) 2008-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by David S. Miller <davem@davemloft.net>, 2008. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#include <sysdep.h> +#include <sys/trap.h> + +#include "ucontext_i.h" + + +/* int __setcontext (const ucontext_t *ucp) + + Restores the machine context in UCP and thereby resumes execution + in that context. + + This implementation is intended to be used for *synchronous* context + switches only. Therefore, it does not have to restore anything + other than the PRESERVED state. */ + +ENTRY(__setcontext) + save %sp, -112, %sp + + mov SIG_SETMASK, %o0 + add %i0, UC_SIGMASK, %o1 + clr %o2 + mov 8, %o3 + mov __NR_rt_sigprocmask, %g1 + ta 0x10 + + /* This is a bit on the expensive side, and we could optimize + the unwind similar to how the 32-bit sparc longjmp code + does if performance of this routine really matters. */ + ta ST_FLUSH_WINDOWS + + ldub [%i0 + UC_MCONTEXT + MC_FPREGS + FPU_EN], %g1 + cmp %g1, 0 + be 1f + nop + ld [%i0 + UC_MCONTEXT + MC_FPREGS + FPU_FSR], %fsr + ldd [%i0 + UC_MCONTEXT + MC_FPREGS + FPU_D0], %f0 + ldd [%i0 + UC_MCONTEXT + MC_FPREGS + FPU_D2], %f2 + ldd [%i0 + UC_MCONTEXT + MC_FPREGS + FPU_D4], %f4 + ldd [%i0 + UC_MCONTEXT + MC_FPREGS + FPU_D6], %f6 + ldd [%i0 + UC_MCONTEXT + MC_FPREGS + FPU_D8], %f8 + ldd [%i0 + UC_MCONTEXT + MC_FPREGS + FPU_D10], %f10 + ldd [%i0 + UC_MCONTEXT + MC_FPREGS + FPU_D12], %f12 + ldd [%i0 + UC_MCONTEXT + MC_FPREGS + FPU_D14], %f14 + ldd [%i0 + UC_MCONTEXT + MC_FPREGS + FPU_D16], %f16 + ldd [%i0 + UC_MCONTEXT + MC_FPREGS + FPU_D18], %f18 + ldd [%i0 + UC_MCONTEXT + MC_FPREGS + FPU_D20], %f20 + ldd [%i0 + UC_MCONTEXT + MC_FPREGS + FPU_D22], %f22 + ldd [%i0 + UC_MCONTEXT + MC_FPREGS + FPU_D24], %f24 + ldd [%i0 + UC_MCONTEXT + MC_FPREGS + FPU_D26], %f26 + ldd [%i0 + UC_MCONTEXT + MC_FPREGS + FPU_D28], %f28 + ldd [%i0 + UC_MCONTEXT + MC_FPREGS + FPU_D30], %f30 +1: + ld [%i0 + UC_MCONTEXT + MC_GREGS + GREG_Y], %g1 + wr %g1, 0x0, %y + + /* We specifically do not restore %g1 since we need it here as + a temporary. */ + ld [%i0 + UC_MCONTEXT + MC_GREGS + GREG_G2], %g2 + ld [%i0 + UC_MCONTEXT + MC_GREGS + GREG_G3], %g3 + ld [%i0 + UC_MCONTEXT + MC_GREGS + GREG_G4], %g4 + ld [%i0 + UC_MCONTEXT + MC_GREGS + GREG_G5], %g5 + ld [%i0 + UC_MCONTEXT + MC_GREGS + GREG_G6], %g6 + ld [%i0 + UC_MCONTEXT + MC_GREGS + GREG_G7], %g7 + ld [%i0 + UC_MCONTEXT + MC_GREGS + GREG_O1], %i1 + ld [%i0 + UC_MCONTEXT + MC_GREGS + GREG_O2], %i2 + ld [%i0 + UC_MCONTEXT + MC_GREGS + GREG_O3], %i3 + ld [%i0 + UC_MCONTEXT + MC_GREGS + GREG_O4], %i4 + ld [%i0 + UC_MCONTEXT + MC_GREGS + GREG_O5], %i5 + ld [%i0 + UC_MCONTEXT + MC_GREGS + GREG_O6], %i6 + restore + ld [%o0 + UC_MCONTEXT + MC_GREGS + GREG_O7], %o7 + ld [%o0 + UC_MCONTEXT + MC_GREGS + GREG_PC], %g1 + jmpl %g1, %g0 + ld [%o0 + UC_MCONTEXT + MC_GREGS + GREG_O0], %o0 +END(__setcontext) + +weak_alias (__setcontext, setcontext) + +/* This is the helper code which gets called if a function which is + registered with 'makecontext' returns. In this case we have to + install the context listed in the uc_link element of the context + 'makecontext' manipulated at the time of the 'makecontext' call. + If the pointer is NULL the process must terminate. */ + +ENTRY(__start_context) + ld [%sp + (16 * 4)], %g1 + cmp %g1, 0 + be,a 1f + clr %o0 + call __setcontext + mov %g1, %o0 + /* If this returns (which can happen if the syscall fails) we'll + exit the program with the return error value (-1). */ +1: call HIDDEN_JUMPTARGET(exit) + nop + /* The 'exit' call should never return. In case it does cause + the process to terminate. */ + unimp +END(__start_context) diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/shlib-versions b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/shlib-versions new file mode 100644 index 0000000000..ca5d15b1df --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/shlib-versions @@ -0,0 +1 @@ +ld=ld-linux.so.2 diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/sigaction.c b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/sigaction.c new file mode 100644 index 0000000000..295bfb2d15 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/sigaction.c @@ -0,0 +1,88 @@ +/* POSIX.1 sigaction call for Linux/SPARC. + Copyright (C) 1997-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Miguel de Icaza <miguel@nuclecu.unam.mx>, 1997. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#include <string.h> +#include <syscall.h> +#include <sys/signal.h> +#include <errno.h> +#include <kernel_sigaction.h> +#include <sysdep.h> + +static void __rt_sigreturn_stub (void); +static void __sigreturn_stub (void); + +int +__libc_sigaction (int sig, const struct sigaction *act, struct sigaction *oact) +{ + struct kernel_sigaction kact, koact; + unsigned long stub = 0; + int ret; + + if (act) + { + kact.k_sa_handler = act->sa_handler; + memcpy (&kact.sa_mask, &act->sa_mask, sizeof (sigset_t)); + if (((kact.sa_flags = act->sa_flags) & SA_SIGINFO) != 0) + stub = (unsigned long) &__rt_sigreturn_stub; + else + stub = (unsigned long) &__sigreturn_stub; + stub -= 8; + kact.sa_restorer = NULL; + } + + /* XXX The size argument hopefully will have to be changed to the + real size of the user-level sigset_t. */ + ret = INLINE_SYSCALL (rt_sigaction, 5, sig, act ? &kact : 0, + oact ? &koact : 0, stub, _NSIG / 8); + + if (oact && ret >= 0) + { + oact->sa_handler = koact.k_sa_handler; + memcpy (&oact->sa_mask, &koact.sa_mask, sizeof (sigset_t)); + oact->sa_flags = koact.sa_flags; + oact->sa_restorer = koact.sa_restorer; + } + return ret; +} +libc_hidden_def (__libc_sigaction) + +#include <nptl/sigaction.c> + + +static +inhibit_stack_protector +void +__rt_sigreturn_stub (void) +{ + __asm__ ("mov %0, %%g1\n\t" + "ta 0x10\n\t" + : /* no outputs */ + : "i" (__NR_rt_sigreturn)); +} + +static +inhibit_stack_protector +void +__sigreturn_stub (void) +{ + __asm__ ("mov %0, %%g1\n\t" + "ta 0x10\n\t" + : /* no outputs */ + : "i" (__NR_sigreturn)); +} diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/sigcontextinfo.h b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/sigcontextinfo.h new file mode 100644 index 0000000000..99cf6ab7f4 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/sigcontextinfo.h @@ -0,0 +1,31 @@ +/* Copyright (C) 1999-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Jakub Jelinek <jakub@redhat.com>, 1999. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#define SIGCONTEXT struct sigcontext * +#define SIGCONTEXT_EXTRA_ARGS +#define GET_PC(__ctx) ((void *) ((__ctx)->si_regs.pc)) +#define FIRST_FRAME_POINTER \ + ({ void *ret; \ + asm volatile ("ta 3; add %%fp, 56, %0" : "=r" (ret)); ret; }) +#define ADVANCE_STACK_FRAME(__next) \ + ((void *) (((unsigned *)(__next))+14)) + +#define GET_STACK(__ctx) ((void *) (__ctx)->si_regs.u_regs[14]) +#define GET_FRAME(__ctx) ADVANCE_STACK_FRAME (GET_STACK(__ctx)) +#define CALL_SIGHANDLER(handler, signo, ctx) \ + (handler)((signo), SIGCONTEXT_EXTRA_ARGS (ctx)) diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/fpu/Implies b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/fpu/Implies new file mode 100644 index 0000000000..70568c5d17 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/fpu/Implies @@ -0,0 +1,3 @@ +# We must list this here to move it ahead of the ldbl-opt code. +sparc/sparc32/sparcv9/fpu +sparc/sparc32/fpu diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/fpu/multiarch/Implies b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/fpu/multiarch/Implies new file mode 100644 index 0000000000..a380d8a739 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/fpu/multiarch/Implies @@ -0,0 +1,4 @@ +# We must list this here to move it ahead of the ldbl-opt code. +sparc/sparc32/sparcv9/fpu/multiarch +sparc/sparc32/sparcv9/fpu +sparc/sparc32/fpu diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/get_clockfreq.c b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/get_clockfreq.c new file mode 100644 index 0000000000..4191085d1f --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/get_clockfreq.c @@ -0,0 +1 @@ +#include <sysdeps/unix/sysv/linux/sparc/sparc64/get_clockfreq.c> diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/swapcontext.S b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/swapcontext.S new file mode 100644 index 0000000000..7ef57e989b --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/swapcontext.S @@ -0,0 +1,118 @@ +/* Save current context and install the given one. + Copyright (C) 2008-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by David S. Miller <davem@davemloft.net>, 2008. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#include <sysdep.h> +#include <sys/trap.h> + +#include "ucontext_i.h" + + +/* int __swapcontext (ucontext_t *oucp, const ucontext_t *ucp); + + Saves the machine context in oucp such that when it is activated, + it appears as if __swapcontext() returned again, restores the + machine context in ucp and thereby resumes execution in that + context. + + This implementation is intended to be used for *synchronous* context + switches only. Therefore, it does not have to save anything + other than the PRESERVED state. */ + +ENTRY(__swapcontext) + save %sp, -112, %sp + ta ST_FLUSH_WINDOWS + st %g0, [%i0 + UC_MCONTEXT + MC_GREGS + GREG_PSR] + add %i7, 8, %o0 + st %o0, [%i0 + UC_MCONTEXT + MC_GREGS + GREG_PC] + add %o0, 4, %o0 + st %o0, [%i0 + UC_MCONTEXT + MC_GREGS + GREG_NPC] + rd %y, %o1 + st %o1, [%i0 + UC_MCONTEXT + MC_GREGS + GREG_Y] + st %g1, [%i0 + UC_MCONTEXT + MC_GREGS + GREG_G1] + st %g2, [%i0 + UC_MCONTEXT + MC_GREGS + GREG_G2] + st %g3, [%i0 + UC_MCONTEXT + MC_GREGS + GREG_G3] + st %g4, [%i0 + UC_MCONTEXT + MC_GREGS + GREG_G4] + st %g5, [%i0 + UC_MCONTEXT + MC_GREGS + GREG_G5] + st %g6, [%i0 + UC_MCONTEXT + MC_GREGS + GREG_G6] + st %g7, [%i0 + UC_MCONTEXT + MC_GREGS + GREG_G7] + st %g0, [%i0 + UC_MCONTEXT + MC_GREGS + GREG_O0] + st %i1, [%i0 + UC_MCONTEXT + MC_GREGS + GREG_O1] + st %i2, [%i0 + UC_MCONTEXT + MC_GREGS + GREG_O2] + st %i3, [%i0 + UC_MCONTEXT + MC_GREGS + GREG_O3] + st %i4, [%i0 + UC_MCONTEXT + MC_GREGS + GREG_O4] + st %i5, [%i0 + UC_MCONTEXT + MC_GREGS + GREG_O5] + st %i6, [%i0 + UC_MCONTEXT + MC_GREGS + GREG_O6] + st %i7, [%i0 + UC_MCONTEXT + MC_GREGS + GREG_O7] + st %g0, [%i0 + UC_MCONTEXT + MC_GWINS] + stb %g0, [%i0 + UC_MCONTEXT + MC_FPREGS + FPU_EN] + st %g0, [%i0 + UC_MCONTEXT + MC_XRS + XRS_ID] + st %g0, [%i0 + UC_MCONTEXT + MC_XRS + XRS_PTR] + + mov SIG_SETMASK, %o0 + add %i1, UC_SIGMASK, %o1 + add %i0, UC_SIGMASK, %o2 + mov 8, %o3 + mov __NR_rt_sigprocmask, %g1 + ta 0x10 + + mov %i1, %i0 + ldub [%i0 + UC_MCONTEXT + MC_FPREGS + FPU_EN], %g1 + cmp %g1, 0 + be 1f + nop + ld [%i0 + UC_MCONTEXT + MC_FPREGS + FPU_FSR], %fsr + ldd [%i0 + UC_MCONTEXT + MC_FPREGS + FPU_D0], %f0 + ldd [%i0 + UC_MCONTEXT + MC_FPREGS + FPU_D2], %f2 + ldd [%i0 + UC_MCONTEXT + MC_FPREGS + FPU_D4], %f4 + ldd [%i0 + UC_MCONTEXT + MC_FPREGS + FPU_D6], %f6 + ldd [%i0 + UC_MCONTEXT + MC_FPREGS + FPU_D8], %f8 + ldd [%i0 + UC_MCONTEXT + MC_FPREGS + FPU_D10], %f10 + ldd [%i0 + UC_MCONTEXT + MC_FPREGS + FPU_D12], %f12 + ldd [%i0 + UC_MCONTEXT + MC_FPREGS + FPU_D14], %f14 + ldd [%i0 + UC_MCONTEXT + MC_FPREGS + FPU_D16], %f16 + ldd [%i0 + UC_MCONTEXT + MC_FPREGS + FPU_D18], %f18 + ldd [%i0 + UC_MCONTEXT + MC_FPREGS + FPU_D20], %f20 + ldd [%i0 + UC_MCONTEXT + MC_FPREGS + FPU_D22], %f22 + ldd [%i0 + UC_MCONTEXT + MC_FPREGS + FPU_D24], %f24 + ldd [%i0 + UC_MCONTEXT + MC_FPREGS + FPU_D26], %f26 + ldd [%i0 + UC_MCONTEXT + MC_FPREGS + FPU_D28], %f28 + ldd [%i0 + UC_MCONTEXT + MC_FPREGS + FPU_D30], %f30 +1: + ld [%i0 + UC_MCONTEXT + MC_GREGS + GREG_Y], %g1 + wr %g1, 0x0, %y + ld [%i0 + UC_MCONTEXT + MC_GREGS + GREG_G2], %g2 + ld [%i0 + UC_MCONTEXT + MC_GREGS + GREG_G3], %g3 + ld [%i0 + UC_MCONTEXT + MC_GREGS + GREG_G4], %g4 + ld [%i0 + UC_MCONTEXT + MC_GREGS + GREG_G5], %g5 + ld [%i0 + UC_MCONTEXT + MC_GREGS + GREG_G6], %g6 + ld [%i0 + UC_MCONTEXT + MC_GREGS + GREG_G7], %g7 + ld [%i0 + UC_MCONTEXT + MC_GREGS + GREG_O1], %i1 + ld [%i0 + UC_MCONTEXT + MC_GREGS + GREG_O2], %i2 + ld [%i0 + UC_MCONTEXT + MC_GREGS + GREG_O3], %i3 + ld [%i0 + UC_MCONTEXT + MC_GREGS + GREG_O4], %i4 + ld [%i0 + UC_MCONTEXT + MC_GREGS + GREG_O5], %i5 + ld [%i0 + UC_MCONTEXT + MC_GREGS + GREG_O6], %i6 + restore + ld [%o0 + UC_MCONTEXT + MC_GREGS + GREG_O7], %o7 + ld [%o0 + UC_MCONTEXT + MC_GREGS + GREG_PC], %g1 + jmpl %g1, %g0 + ld [%o0 + UC_MCONTEXT + MC_GREGS + GREG_O0], %o0 +END(__swapcontext) + +weak_alias (__swapcontext, swapcontext) diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/syscall.S b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/syscall.S new file mode 100644 index 0000000000..5a2ea17d8e --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/syscall.S @@ -0,0 +1,37 @@ +/* Copyright (C) 1991-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#include <sysdep.h> + + .text + .globl __syscall_error +ENTRY(syscall) + mov %o0, %g1 + mov %o1, %o0 + mov %o2, %o1 + mov %o3, %o2 + mov %o4, %o3 + mov %o5, %o4 + ld [%sp + 92], %o5 + ta 0x10 + bcc 1f + mov %o7, %g1 + call __syscall_error + mov %g1, %o7 +1: retl + nop +END(syscall) diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/syscalls.list b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/syscalls.list new file mode 100644 index 0000000000..0b6095ffab --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/syscalls.list @@ -0,0 +1,19 @@ +# File name Caller Syscall name # args Strong name Weak names + +chown - chown32 i:sii __chown chown +lchown - lchown32 i:sii __lchown lchown +fchown - fchown32 i:iii __fchown fchown + +getegid - getegid32 Ei: __getegid getegid +geteuid - geteuid32 Ei: __geteuid geteuid +getgid - getgid32 Ei: __getgid getgid +getuid - getuid32 Ei: __getuid getuid +getresuid - getresuid32 3 getresuid +getresgid - getresgid32 3 getresgid +getgroups - getgroups32 i:ip __getgroups getgroups + +setfsgid - setfsgid32 Ei:i setfsgid +setfsuid - setfsuid32 Ei:i setfsuid + +prlimit64 EXTRA prlimit64 i:iipp prlimit64 +fanotify_mark EXTRA fanotify_mark i:iiiiis fanotify_mark diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h new file mode 100644 index 0000000000..c513212f1e --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h @@ -0,0 +1,111 @@ +/* Copyright (C) 2002-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Jakub Jelinek <jakub@redhat.com>, 2002. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#include <sysdep.h> +#include <tls.h> +#ifndef __ASSEMBLER__ +# include <nptl/pthreadP.h> +#endif + +#if IS_IN (libc) || IS_IN (libpthread) || IS_IN (librt) + +# undef PSEUDO +# define PSEUDO(name, syscall_name, args) \ + .text; \ + .globl __syscall_error; \ +ENTRY(name) \ + ld [%g7 + MULTIPLE_THREADS_OFFSET], %g1;\ + cmp %g1, 0; \ + bne 1f; \ +.type __##syscall_name##_nocancel,@function; \ +.globl __##syscall_name##_nocancel; \ +__##syscall_name##_nocancel: \ + mov SYS_ify(syscall_name), %g1; \ + ta 0x10; \ + bcc 8f; \ + mov %o7, %g1; \ + call __syscall_error; \ + mov %g1, %o7; \ +8: jmpl %o7 + 8, %g0; \ + nop; \ +.size __##syscall_name##_nocancel,.-__##syscall_name##_nocancel;\ +1: save %sp, -96, %sp; \ + cfi_def_cfa_register(%fp); \ + cfi_window_save; \ + cfi_register(%o7, %i7); \ + CENABLE; \ + nop; \ + mov %o0, %l0; \ + COPY_ARGS_##args \ + mov SYS_ify(syscall_name), %g1; \ + ta 0x10; \ + bcc 1f; \ + mov %o0, %l1; \ + CDISABLE; \ + mov %l0, %o0; \ + call __syscall_error; \ + mov %l1, %o0; \ + b 2f; \ + mov -1, %l1; \ +1: CDISABLE; \ + mov %l0, %o0; \ +2: jmpl %i7 + 8, %g0; \ + restore %g0, %l1, %o0; + + +# if IS_IN (libpthread) +# define CENABLE call __pthread_enable_asynccancel +# define CDISABLE call __pthread_disable_asynccancel +# elif IS_IN (libc) +# define CENABLE call __libc_enable_asynccancel +# define CDISABLE call __libc_disable_asynccancel +# elif IS_IN (librt) +# define CENABLE call __librt_enable_asynccancel +# define CDISABLE call __librt_disable_asynccancel +# else +# error Unsupported library +# endif + +#define COPY_ARGS_0 /* Nothing */ +#define COPY_ARGS_1 COPY_ARGS_0 mov %i0, %o0; +#define COPY_ARGS_2 COPY_ARGS_1 mov %i1, %o1; +#define COPY_ARGS_3 COPY_ARGS_2 mov %i2, %o2; +#define COPY_ARGS_4 COPY_ARGS_3 mov %i3, %o3; +#define COPY_ARGS_5 COPY_ARGS_4 mov %i4, %o4; +#define COPY_ARGS_6 COPY_ARGS_5 mov %i5, %o5; + +# ifndef __ASSEMBLER__ +# define SINGLE_THREAD_P \ + __builtin_expect (THREAD_GETMEM (THREAD_SELF, \ + header.multiple_threads) == 0, 1) +# else +# define SINGLE_THREAD_P ld [%g7 + MULTIPLE_THREADS_OFFSET], %g1 +# endif + +#elif !defined __ASSEMBLER__ + +# define SINGLE_THREAD_P (1) +# define NO_CANCELLATION 1 + +#endif + +#ifndef __ASSEMBLER__ +# define RTLD_SINGLE_THREAD_P \ + __builtin_expect (THREAD_GETMEM (THREAD_SELF, \ + header.multiple_threads) == 0, 1) +#endif diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h new file mode 100644 index 0000000000..30aab691e7 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h @@ -0,0 +1,147 @@ +/* Copyright (C) 1997-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Miguel de Icaza <miguel@gnu.ai.mit.edu>, January 1997. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#ifndef _LINUX_SPARC32_SYSDEP_H +#define _LINUX_SPARC32_SYSDEP_H 1 + +#include <sysdeps/unix/sysv/linux/sparc/sysdep.h> + +#if IS_IN (rtld) +# include <dl-sysdep.h> /* Defines RTLD_PRIVATE_ERRNO. */ +#endif +#include <tls.h> + +#undef SYS_ify +#define SYS_ify(syscall_name) __NR_##syscall_name + +#ifdef __ASSEMBLER__ + +#define LOADSYSCALL(x) mov __NR_##x, %g1 + +#undef PSEUDO +#define PSEUDO(name, syscall_name, args) \ + .text; \ +ENTRY(name); \ + LOADSYSCALL(syscall_name); \ + ta 0x10; \ + bcc 1f; \ + nop; \ + SYSCALL_ERROR_HANDLER \ +1: + +#undef PSEUDO_NOERRNO +#define PSEUDO_NOERRNO(name, syscall_name, args)\ + .text; \ +ENTRY(name); \ + LOADSYSCALL(syscall_name); \ + ta 0x10; + +#undef PSEUDO_ERRVAL +#define PSEUDO_ERRVAL(name, syscall_name, args) \ + .text; \ +ENTRY(name); \ + LOADSYSCALL(syscall_name); \ + ta 0x10; + +#undef PSEUDO_END +#define PSEUDO_END(name) \ + END(name) + +#ifndef PIC +# define SYSCALL_ERROR_HANDLER \ + mov %o7, %g1; \ + call __syscall_error; \ + mov %g1, %o7; +#else +# if RTLD_PRIVATE_ERRNO +# define SYSCALL_ERROR_HANDLER \ +0: SETUP_PIC_REG_LEAF(o2,g1) \ + sethi %gdop_hix22(rtld_errno), %g1; \ + xor %g1, %gdop_lox10(rtld_errno), %g1;\ + ld [%o2 + %g1], %g1, %gdop(rtld_errno); \ + st %o0, [%g1]; \ + jmp %o7 + 8; \ + mov -1, %o0; +# elif defined _LIBC_REENTRANT + +# if IS_IN (libc) +# define SYSCALL_ERROR_ERRNO __libc_errno +# else +# define SYSCALL_ERROR_ERRNO errno +# endif +# define SYSCALL_ERROR_HANDLER \ +0: SETUP_PIC_REG_LEAF(o2,g1) \ + sethi %tie_hi22(SYSCALL_ERROR_ERRNO), %g1; \ + add %g1, %tie_lo10(SYSCALL_ERROR_ERRNO), %g1; \ + ld [%o2 + %g1], %g1, %tie_ld(SYSCALL_ERROR_ERRNO); \ + st %o0, [%g7 + %g1]; \ + jmp %o7 + 8; \ + mov -1, %o0; +# else +# define SYSCALL_ERROR_HANDLER \ +0: SETUP_PIC_REG_LEAF(o2,g1) \ + sethi %gdop_hix22(errno), %g1;\ + xor %g1, %gdop_lox10(errno), %g1;\ + ld [%o2 + %g1], %g1, %gdop(errno);\ + st %o0, [%g1]; \ + jmp %o7 + 8; \ + mov -1, %o0; +# endif /* _LIBC_REENTRANT */ +#endif /* PIC */ + + +#else /* __ASSEMBLER__ */ + +#define __SYSCALL_STRING \ + "ta 0x10;" \ + "bcc 1f;" \ + " mov 0, %%g1;" \ + "sub %%g0, %%o0, %%o0;" \ + "mov 1, %%g1;" \ + "1:" + +#define __SYSCALL_CLOBBERS \ + "f0", "f1", "f2", "f3", "f4", "f5", "f6", "f7", \ + "f8", "f9", "f10", "f11", "f12", "f13", "f14", "f15", \ + "f16", "f17", "f18", "f19", "f20", "f21", "f22", "f23", \ + "f24", "f25", "f26", "f27", "f28", "f29", "f30", "f31", \ + "cc", "memory" + +#endif /* __ASSEMBLER__ */ + +/* Pointer mangling support. */ +#if IS_IN (rtld) +/* We cannot use the thread descriptor because in ld.so we use setjmp + earlier than the descriptor is initialized. */ +#else +# ifdef __ASSEMBLER__ +# define PTR_MANGLE(dreg, reg, tmpreg) \ + ld [%g7 + POINTER_GUARD], tmpreg; \ + xor reg, tmpreg, dreg +# define PTR_DEMANGLE(dreg, reg, tmpreg) PTR_MANGLE (dreg, reg, tmpreg) +# define PTR_MANGLE2(dreg, reg, tmpreg) \ + xor reg, tmpreg, dreg +# define PTR_DEMANGLE2(dreg, reg, tmpreg) PTR_MANGLE2 (dreg, reg, tmpreg) +# else +# define PTR_MANGLE(var) \ + (var) = (__typeof (var)) ((uintptr_t) (var) ^ THREAD_GET_POINTER_GUARD ()) +# define PTR_DEMANGLE(var) PTR_MANGLE (var) +# endif +#endif + +#endif /* linux/sparc/sysdep.h */ diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/ucontext_i.sym b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/ucontext_i.sym new file mode 100644 index 0000000000..544030ce8b --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/ucontext_i.sym @@ -0,0 +1,61 @@ +#include <stddef.h> +#include <signal.h> +#include <sys/ucontext.h> + +-- + +SIG_BLOCK +SIG_SETMASK + +UC_FLAGS offsetof (ucontext_t, uc_flags) +UC_LINK offsetof (ucontext_t, uc_link) +UC_SIGMASK offsetof (ucontext_t, uc_sigmask) +UC_STACK offsetof (ucontext_t, uc_stack) +UC_MCONTEXT offsetof (ucontext_t, uc_mcontext) +MC_GREGS offsetof (mcontext_t, gregs) +MC_GWINS offsetof (mcontext_t, gwins) +MC_FPREGS offsetof (mcontext_t, fpregs) +MC_XRS offsetof (mcontext_t, xrs) +MC_FILLER offsetof (mcontext_t, filler) +GREG_PSR (REG_PSR * sizeof(greg_t)) +GREG_PC (REG_PC * sizeof(greg_t)) +GREG_NPC (REG_nPC * sizeof(greg_t)) +GREG_Y (REG_Y * sizeof(greg_t)) +GREG_G1 (REG_G1 * sizeof(greg_t)) +GREG_G2 (REG_G2 * sizeof(greg_t)) +GREG_G3 (REG_G3 * sizeof(greg_t)) +GREG_G4 (REG_G4 * sizeof(greg_t)) +GREG_G5 (REG_G5 * sizeof(greg_t)) +GREG_G6 (REG_G6 * sizeof(greg_t)) +GREG_G7 (REG_G7 * sizeof(greg_t)) +GREG_O0 (REG_O0 * sizeof(greg_t)) +GREG_O1 (REG_O1 * sizeof(greg_t)) +GREG_O2 (REG_O2 * sizeof(greg_t)) +GREG_O3 (REG_O3 * sizeof(greg_t)) +GREG_O4 (REG_O4 * sizeof(greg_t)) +GREG_O5 (REG_O5 * sizeof(greg_t)) +GREG_O6 (REG_O6 * sizeof(greg_t)) +GREG_O7 (REG_O7 * sizeof(greg_t)) +FPU_D0 offsetof (fpregset_t, fpu_fr.fpu_dregs[0]) +FPU_D2 offsetof (fpregset_t, fpu_fr.fpu_dregs[1]) +FPU_D4 offsetof (fpregset_t, fpu_fr.fpu_dregs[2]) +FPU_D6 offsetof (fpregset_t, fpu_fr.fpu_dregs[3]) +FPU_D8 offsetof (fpregset_t, fpu_fr.fpu_dregs[4]) +FPU_D10 offsetof (fpregset_t, fpu_fr.fpu_dregs[5]) +FPU_D12 offsetof (fpregset_t, fpu_fr.fpu_dregs[6]) +FPU_D14 offsetof (fpregset_t, fpu_fr.fpu_dregs[7]) +FPU_D16 offsetof (fpregset_t, fpu_fr.fpu_dregs[8]) +FPU_D18 offsetof (fpregset_t, fpu_fr.fpu_dregs[9]) +FPU_D20 offsetof (fpregset_t, fpu_fr.fpu_dregs[10]) +FPU_D22 offsetof (fpregset_t, fpu_fr.fpu_dregs[11]) +FPU_D24 offsetof (fpregset_t, fpu_fr.fpu_dregs[12]) +FPU_D26 offsetof (fpregset_t, fpu_fr.fpu_dregs[13]) +FPU_D28 offsetof (fpregset_t, fpu_fr.fpu_dregs[14]) +FPU_D30 offsetof (fpregset_t, fpu_fr.fpu_dregs[15]) +FPU_Q offsetof (fpregset_t, fpu_q) +FPU_FSR offsetof (fpregset_t, fpu_fsr) +FPU_QCNT offsetof (fpregset_t, fpu_qcnt) +FPU_Q_ENTRY_SZ offsetof (fpregset_t, fpu_q_entrysize) +FPU_EN offsetof (fpregset_t, fpu_en) +XRS_ID offsetof (xrs_t, xrs_id) +XRS_PTR offsetof (xrs_t, xrs_ptr) diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S new file mode 100644 index 0000000000..fb43b1766f --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S @@ -0,0 +1,41 @@ +/* Copyright (C) 2004-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Jakub Jelinek <jakub@redhat.com>, 2004. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#include <sysdep.h> +#include <tcb-offsets.h> + + .text + .globl __syscall_error +ENTRY(__libc_vfork) + LOADSYSCALL(vfork) + ta 0x10 + bcc 2f + mov %o7, %g1 + call __syscall_error + mov %g1, %o7 +2: sub %o1, 1, %o1 + andcc %o0, %o1, %o0 +1: retl + nop +END(__libc_vfork) + +#if IS_IN (libc) +weak_alias (__libc_vfork, vfork) +strong_alias (__libc_vfork, __vfork) +libc_hidden_def (__vfork) +#endif diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/xstat.c b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/xstat.c new file mode 100644 index 0000000000..e9869f5508 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc32/xstat.c @@ -0,0 +1 @@ +#include <sysdeps/unix/sysv/linux/i386/xstat.c> diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/Implies b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/Implies new file mode 100644 index 0000000000..8d91c80097 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/Implies @@ -0,0 +1 @@ +unix/sysv/linux/wordsize-64 diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/Makefile b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/Makefile new file mode 100644 index 0000000000..715af3df7b --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/Makefile @@ -0,0 +1,9 @@ +# See Makeconfig regarding the use of default-abi. +default-abi := 64 + +sysdep-CFLAGS += -fcall-used-g6 +LD += -melf64_sparc + +ifeq ($(subdir),stdlib) +sysdep_routines += __start_context +endif diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/Versions b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/Versions new file mode 100644 index 0000000000..fbea1bb2ef --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/Versions @@ -0,0 +1,19 @@ +libc { + GLIBC_2.0 { + # Exception handling support functions from libgcc + __register_frame; __register_frame_table; __deregister_frame; + __frame_state_for; __register_frame_info_table; + } + GLIBC_2.2.2 { + # w* + wordexp; + } +} + +librt { + GLIBC_2.3.3 { + # Changed timer_t. + timer_create; timer_delete; timer_getoverrun; timer_gettime; + timer_settime; + } +} diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/____longjmp_chk.S b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/____longjmp_chk.S new file mode 100644 index 0000000000..aff42306c9 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/____longjmp_chk.S @@ -0,0 +1,90 @@ +/* Copyright (C) 2009-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +/* longjmp is implemented in terms of the setcontext trap on Linux/Sparc64. */ + +#include <sysdep.h> + +/* Offsets into the jmp_buf structure. */ + +#define O_mask_was_saved 512 +#define O_gregs 32 +#define O_g1 (O_gregs + 4*8) +#define O_sp (O_gregs + 17*8) + +.section .rodata.str1.1,"aMS",@progbits,1 + .type longjmp_msg,@object +longjmp_msg: + .string "longjmp causes uninitialized stack frame" + .size longjmp_msg, .-longjmp_msg + + .text +ENTRY (____longjmp_chk) + ldx [%o0 + O_sp], %o2 + cmp %sp, %o2 + bleu,pt %xcc, .Lok + nop + + save %sp, -208, %sp + cfi_remember_state + cfi_def_cfa_register(%fp) + cfi_window_save + cfi_register(%o7, %i7) + add %fp, 2023, %o1 + clr %o0 + LOADSYSCALL(sigaltstack) + ta 0x6d + bcs,pn %xcc, .Lok2 + lduw [%fp + 2031], %l2 + andcc %l2, 0x1, %g0 + be,pn %xcc, .Lfail + ldx [%fp + 2023], %l0 + ldx [%fp + 2039], %l1 + sub %l0, STACK_BIAS, %l0 + add %l0, %l1, %l0 + sub %l0, %i2, %l0 + cmp %l0, %l1 + bgeu,pt %xcc, .Lok2 + nop + +.Lfail: +#ifndef PIC + sethi %hi(longjmp_msg), %o0 + or %o0, %lo(longjmp_msg), %o0 +#else + SETUP_PIC_REG(l7) + sethi %gdop_hix22(longjmp_msg), %o0 + xor %o0, %gdop_lox10(longjmp_msg), %o0 + ldx [%l7 + %o0], %o0, %gdop(longjmp_msg) +#endif + call HIDDEN_JUMPTARGET(__fortify_fail) + nop + +.Lok2: restore + cfi_restore_state + +.Lok: + /* Modify the context with the value we want to return. */ + movre %o1, 1, %o1 + stx %o1, [%o0 + O_g1] + + /* Let setcontext know if we want to modify the current sigmask. */ + ld [%o0 + O_mask_was_saved], %o1 + + /* And bamf back to where we belong! */ + ta 0x6f +END(____longjmp_chk) diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/__longjmp.S b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/__longjmp.S new file mode 100644 index 0000000000..3107179fdc --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/__longjmp.S @@ -0,0 +1 @@ +/* There is no need for __longjmp what with setcontext. */ diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/__start_context.S b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/__start_context.S new file mode 100644 index 0000000000..1e6fcaede0 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/__start_context.S @@ -0,0 +1,36 @@ +/* Copyright (C) 2012-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#include <sysdep.h> + + .text + +/* This is the helper code which gets called if a function which is + registered with 'makecontext' returns. In this case we have to + install the context listed in the uc_link element of the context + 'makecontext' manipulated at the time of the 'makecontext' call. + If the pointer is NULL the process must terminate. */ + +ENTRY(__start_context) + brz,pn %i0, 1f + mov 1, %o1 + call __setcontext + mov %i0, %o0 +1: call HIDDEN_JUMPTARGET(exit) + mov 0, %o0 + unimp 0 +END(__start_context) diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/brk.S b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/brk.S new file mode 100644 index 0000000000..32fd3e75d1 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/brk.S @@ -0,0 +1,105 @@ +/* Copyright (C) 1997-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Richard Henderson <richard@gnu.ai.mit.edu>, 1997. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +/* __brk is a special syscall under Linux since it never returns an + error. Instead, the error condition is indicated by returning the old + break value (instead of the new, requested one). */ + +#include <sysdep.h> +#define _ERRNO_H +#include <bits/errno.h> + +#ifdef PIC +.section .bss + .align 8 + .globl __curbrk +__curbrk: .skip 8 + .type __curbrk,@object + .size __curbrk,8 +#else +.common __curbrk, 8, 8 +#endif + + .text +ENTRY (__brk) + save %sp, -192, %sp + cfi_def_cfa_register(%fp) + cfi_window_save + cfi_register(%o7, %i7) +#ifdef PIC + SETUP_PIC_REG(l7) +#endif + + LOADSYSCALL(brk) + mov %i0, %o0 + + ta 0x6d + + /* All the ways we can fail... */ + bcs,pn %xcc, .Lerr1 + nop + brz,pt %i0, .Lok + subcc %i0, %o0, %g0 + bne,pn %xcc, .Lerr0 + nop + + /* Update __curbrk and return cleanly. */ +.Lok: +#ifndef PIC + sethi %hi(__curbrk), %g1 + or %g1, %lo(__curbrk), %g1 +#else + sethi %gdop_hix22(__curbrk), %g1 + xor %g1, %gdop_lox10(__curbrk), %g1 + ldx [%l7 + %g1], %g1, %gdop(__curbrk) +#endif + stx %o0, [%g1] + mov %g0, %i0 + + /* Don't use "ret" cause the preprocessor will eat it. */ + jmpl %i7+8, %g0 + restore + + /* What a horrible way to die. */ +.Lerr0: set ENOMEM, %o0 +.Lerr1: +#ifndef _LIBC_REENTRANT +#ifndef PIC + sethi %hi(errno), %g1 + or %g1, %lo(errno), %g1 +#else + sethi %gdop_hix22(errno), %g1 + xor %g1, %gdop_lox10(errno), %g1 + ldx [%l7 + %g1], %g1, %gdop(errno) +#endif + st %o0, [%g1] +#else +#if IS_IN (libc) + call HIDDEN_JUMPTARGET(__errno_location) +#else + call __errno_location +#endif + mov %o0,%l1 + st %l1, [%o0] +#endif + sub %g0, 1, %i0 + jmpl %i7+8, %g0 + restore +END (__brk) + +weak_alias (__brk, brk) diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/bsd-_setjmp.S b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/bsd-_setjmp.S new file mode 100644 index 0000000000..4e6a2da560 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/bsd-_setjmp.S @@ -0,0 +1 @@ +/* _setjmp is in setjmp.S */ diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/bsd-setjmp.S b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/bsd-setjmp.S new file mode 100644 index 0000000000..1da848d2f1 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/bsd-setjmp.S @@ -0,0 +1 @@ +/* setjmp is in setjmp.S */ diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/c++-types.data b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/c++-types.data new file mode 100644 index 0000000000..5a04f4939a --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/c++-types.data @@ -0,0 +1,67 @@ +blkcnt64_t:l +blkcnt_t:l +blksize_t:l +caddr_t:Pc +clockid_t:i +clock_t:l +daddr_t:i +dev_t:m +fd_mask:l +fsblkcnt64_t:m +fsblkcnt_t:m +fsfilcnt64_t:m +fsfilcnt_t:m +fsid_t:8__fsid_t +gid_t:j +id_t:j +ino64_t:m +ino_t:m +int16_t:s +int32_t:i +int64_t:l +int8_t:a +intptr_t:l +key_t:i +loff_t:l +mode_t:j +nlink_t:j +off64_t:l +off_t:l +pid_t:i +pthread_attr_t:14pthread_attr_t +pthread_barrier_t:17pthread_barrier_t +pthread_barrierattr_t:21pthread_barrierattr_t +pthread_cond_t:14pthread_cond_t +pthread_condattr_t:18pthread_condattr_t +pthread_key_t:j +pthread_mutex_t:15pthread_mutex_t +pthread_mutexattr_t:19pthread_mutexattr_t +pthread_once_t:i +pthread_rwlock_t:16pthread_rwlock_t +pthread_rwlockattr_t:20pthread_rwlockattr_t +pthread_spinlock_t:i +pthread_t:m +quad_t:l +register_t:l +rlim64_t:m +rlim_t:m +sigset_t:10__sigset_t +size_t:m +socklen_t:j +ssize_t:l +suseconds_t:i +time_t:l +u_char:h +uid_t:j +uint:j +u_int:j +u_int16_t:t +u_int32_t:j +u_int64_t:m +u_int8_t:h +ulong:m +u_long:m +u_quad_t:m +useconds_t:j +ushort:t +u_short:t diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/clone.S b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/clone.S new file mode 100644 index 0000000000..fc28539a59 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/clone.S @@ -0,0 +1,87 @@ +/* Copyright (C) 1997-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Richard Henderson (rth@tamu.edu). + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +/* clone() is even more special than fork() as it mucks with stacks + and invokes a function in the right context after its all over. */ + +#include <asm/errno.h> +#include <asm/unistd.h> +#include <tcb-offsets.h> +#include <sysdep.h> + +#define CLONE_VM 0x00000100 + +/* int clone(int (*fn)(void *arg), void *child_stack, int flags, void *arg, + pid_t *ptid, void *tls, pid_t *ctid); */ + + .register %g2,#scratch + .register %g3,#scratch + + .text + +ENTRY (__clone) + save %sp, -192, %sp + cfi_def_cfa_register(%fp) + cfi_window_save + cfi_register(%o7, %i7) + + /* sanity check arguments */ + brz,pn %i0, 99f /* fn non-NULL? */ + mov %i0, %g2 + brz,pn %i1, 99f /* child_stack non-NULL? */ + mov %i2, %o0 /* clone flags */ + + /* The child_stack is the top of the stack, allocate one + whole stack frame from that as this is what the kernel + expects. Also, subtract STACK_BIAS. */ + sub %i1, 192 + 0x7ff, %o1 + mov %i3, %g3 + + mov %i4,%o2 /* PTID */ + mov %i5,%o3 /* TLS */ + ldx [%fp+0x7ff+176],%o4 /* CTID */ + + /* Do the system call */ + set __NR_clone, %g1 + ta 0x6d + bcs,pn %xcc, 98f + nop + brnz,pn %o1, __thread_start + nop + jmpl %i7 + 8, %g0 + restore %o0, %g0, %o0 +99: mov EINVAL, %o0 +98: call HIDDEN_JUMPTARGET(__errno_location) + mov %o0, %i0 + st %i0, [%o0] + jmpl %i7 + 8, %g0 + restore %g0,-1,%o0 +END(__clone) + + .type __thread_start,@function +__thread_start: + mov %g0, %fp /* terminate backtrace */ + call %g2 + mov %g3,%o0 + call HIDDEN_JUMPTARGET(_exit),0 + nop + + .size __thread_start, .-__thread_start + +libc_hidden_def (__clone) +weak_alias (__clone, clone) diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/configure b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/configure new file mode 100644 index 0000000000..8f88eff4a3 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/configure @@ -0,0 +1,15 @@ +# This file is generated from configure.ac by Autoconf. DO NOT EDIT! + # Local configure fragment for sysdeps/unix/sysv/linux/sparc/sparc64. + +test -n "$libc_cv_slibdir" || +case "$prefix" in +/usr | /usr/) + libc_cv_slibdir=/lib64 + libc_cv_rtlddir=/lib64 + if test "$libdir" = '${exec_prefix}/lib'; then + libdir='${exec_prefix}/lib64'; + # Locale data can be shared between 32-bit and 64-bit libraries. + libc_cv_complocaledir='${exec_prefix}/lib/locale' + fi + ;; +esac diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/configure.ac b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/configure.ac new file mode 100644 index 0000000000..979bb8d923 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/configure.ac @@ -0,0 +1,4 @@ +GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory. +# Local configure fragment for sysdeps/unix/sysv/linux/sparc/sparc64. + +LIBC_SLIBDIR_RTLDDIR([lib64], [lib64]) diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/dl-brk.S b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/dl-brk.S new file mode 100644 index 0000000000..eeb96544e3 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/dl-brk.S @@ -0,0 +1 @@ +#include <brk.S> diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/dl-cache.h b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/dl-cache.h new file mode 100644 index 0000000000..57c5769179 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/dl-cache.h @@ -0,0 +1,24 @@ +/* Support for reading /etc/ld.so.cache files written by Linux ldconfig. + Copyright (C) 1999-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#define _DL_CACHE_DEFAULT_ID 0x103 + +#define _dl_cache_check_flags(flags) \ + ((flags) == _DL_CACHE_DEFAULT_ID) + +#include_next <dl-cache.h> diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/dl-fxstatat64.c b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/dl-fxstatat64.c new file mode 100644 index 0000000000..330b33f7c7 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/dl-fxstatat64.c @@ -0,0 +1 @@ +#include "fxstatat.c" diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/fxstat.c b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/fxstat.c new file mode 100644 index 0000000000..e328ccbab0 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/fxstat.c @@ -0,0 +1 @@ +#include "../../i386/fxstat.c" diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/fxstatat.c b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/fxstatat.c new file mode 100644 index 0000000000..db08af8e0f --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/fxstatat.c @@ -0,0 +1 @@ +#include "../../i386/fxstatat.c" diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/get_clockfreq.c b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/get_clockfreq.c new file mode 100644 index 0000000000..a0349790dc --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/get_clockfreq.c @@ -0,0 +1,250 @@ +/* Get frequency of the system processor. sparc64 version. + Copyright (C) 2001-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#include <ctype.h> +#include <fcntl.h> +#include <string.h> +#include <unistd.h> +#include <dirent.h> +#include <stdlib.h> +#include <inttypes.h> +#include <sys/ioctl.h> +#include <asm/openpromio.h> + +static hp_timing_t +__get_clockfreq_via_cpuinfo (void) +{ + hp_timing_t result; + int fd; + + result = 0; + + fd = __open ("/proc/cpuinfo", O_RDONLY); + if (fd != -1) + { + char buf[8192]; + ssize_t n; + + n = __read (fd, buf, sizeof buf); + if (n > 0) + { + char *mhz = memmem (buf, n, "Cpu0ClkTck", 7); + + if (mhz != NULL) + { + char *endp = buf + n; + + /* Search for the beginning of the string. */ + while (mhz < endp + && (*mhz < '0' || *mhz > '9') + && (*mhz < 'a' || *mhz > 'f') + && *mhz != '\n') + ++mhz; + + while (mhz < endp && *mhz != '\n') + { + if ((*mhz >= '0' && *mhz <= '9') || + (*mhz >= 'a' && *mhz <= 'f')) + { + result <<= 4; + if (*mhz >= '0' && *mhz <= '9') + result += *mhz - '0'; + else + result += (*mhz - 'a') + 10; + } + ++mhz; + } + } + } + + __close (fd); + } + + return result; +} + +static hp_timing_t +__get_clockfreq_via_proc_openprom (void) +{ + hp_timing_t result; + int obp_fd; + + result = 0; + + obp_fd = __open ("/proc/openprom", O_RDONLY); + if (obp_fd != -1) + { + unsigned long int buf[4096 / sizeof (unsigned long int)]; + struct dirent *dirp = (struct dirent *) buf; + ssize_t len; + + while ((len = __getdents (obp_fd, (char *) dirp, sizeof (buf))) > 0) + { + struct dirent *this_dirp = dirp; + + while (len > 0) + { + char node[strlen ("/proc/openprom/") + + _D_ALLOC_NAMLEN (this_dirp) + + strlen ("/clock-frequency")]; + char *prop; + int fd; + + /* Note that + strlen("/clock-frequency") > strlen("/device_type") + */ + __stpcpy (prop = __stpcpy (__stpcpy (node, "/proc/openprom/"), + this_dirp->d_name), + "/device_type"); + fd = __open (node, O_RDONLY); + if (fd != -1) + { + char type_string[128]; + int ret; + + ret = __read (fd, type_string, sizeof (type_string)); + if (ret > 0 && strncmp (type_string, "'cpu'", 5) == 0) + { + int clkfreq_fd; + + __stpcpy (prop, "/clock-frequency"); + clkfreq_fd = __open (node, O_RDONLY); + if (clkfreq_fd != -1) + { + if (__read (clkfreq_fd, type_string, + sizeof (type_string)) > 0) + result = (hp_timing_t) + strtoumax (type_string, NULL, 16); + __close (clkfreq_fd); + } + } + __close (fd); + } + + if (result != 0) + break; + + len -= this_dirp->d_reclen; + this_dirp = (struct dirent *) + ((char *) this_dirp + this_dirp->d_reclen); + } + if (result != 0) + break; + } + __close (obp_fd); + } + + return result; +} + +static void set_obp_int (struct openpromio *op, int val) +{ + char *cp = op->oprom_array; + int *ip = (int *) cp; + + *ip = val; +} + +static int get_obp_int (struct openpromio *op) +{ + char *cp = op->oprom_array; + int *ip = (int *) cp; + + return *ip; +} + +static hp_timing_t +__get_clockfreq_via_dev_openprom (void) +{ + hp_timing_t result; + int obp_dev_fd; + + result = 0; + + obp_dev_fd = __open ("/dev/openprom", O_RDONLY); + if (obp_dev_fd != -1) + { + char obp_buf[8192]; + struct openpromio *obp_cmd = (struct openpromio *)obp_buf; + int ret; + + obp_cmd->oprom_size = + sizeof (obp_buf) - sizeof (unsigned int); + set_obp_int (obp_cmd, 0); + ret = __ioctl (obp_dev_fd, OPROMCHILD, (char *) obp_cmd); + if (ret == 0) + { + int cur_node = get_obp_int (obp_cmd); + + while (cur_node != 0 && cur_node != -1) + { + obp_cmd->oprom_size = sizeof (obp_buf) - sizeof (unsigned int); + strcpy (obp_cmd->oprom_array, "device_type"); + ret = __ioctl (obp_dev_fd, OPROMGETPROP, (char *) obp_cmd); + if (ret == 0 + && strncmp (obp_cmd->oprom_array, "cpu", 3) == 0) + { + obp_cmd->oprom_size = (sizeof (obp_buf) + - sizeof (unsigned int)); + strcpy (obp_cmd->oprom_array, "clock-frequency"); + ret = __ioctl (obp_dev_fd, OPROMGETPROP, (char *) obp_cmd); + if (ret == 0) + result = (hp_timing_t) get_obp_int (obp_cmd); + } + obp_cmd->oprom_size = sizeof (obp_buf) - sizeof (unsigned int); + set_obp_int (obp_cmd, cur_node); + ret = __ioctl (obp_dev_fd, OPROMNEXT, (char *) obp_cmd); + if (ret < 0) + break; + cur_node = get_obp_int (obp_cmd); + } + } + } + + return result; +} + +hp_timing_t +__get_clockfreq (void) +{ + static hp_timing_t result; + + /* If this function was called before, we know the result. */ + if (result != 0) + return result; + + /* We first read the information from the /proc/cpuinfo file. + It contains at least one line like + Cpu0ClkTick : 000000002cb41780 + We search for this line and convert the number in an integer. */ + result = __get_clockfreq_via_cpuinfo (); + if (result != 0) + return result; + + /* If that did not work, try to find an OpenPROM node + with device_type equal to 'cpu' using /dev/openprom + and fetch the clock-frequency property from there. */ + result = __get_clockfreq_via_dev_openprom (); + if (result != 0) + return result; + + /* Finally, try the same lookup as above but using /proc/openprom. */ + result = __get_clockfreq_via_proc_openprom (); + + return result; +} diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/getcontext.S b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/getcontext.S new file mode 100644 index 0000000000..9cdaff9545 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/getcontext.S @@ -0,0 +1,64 @@ +/* Copyright (C) 1997-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Richard Henderson (rth@tamu.edu). + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#include <sysdep.h> +#include "ucontext_i.h" + +/* int getcontext(ucontext_t *); */ + +ENTRY(__getcontext) + + ldx [%o0 + UC_LINK], %o1 /* Preserve uc_link field, the + trap clears it. */ + ta 0x6e +1: + ldx [%o0 + UC_M_PC], %o2 + ldx [%o0 + UC_M_NPC], %o3 + ldx [%o0 + __UC_SIGMASK], %o4 + stx %o1, [%o0 + UC_LINK] + add %o2, 2f - 1b, %o2 + stx %o2, [%o0 + UC_M_PC] + add %o3, 2f - 1b, %o3 + stx %o3, [%o0 + UC_M_NPC] +#if SIGMASK_WORDS == 16 + stx %o4, [%o0 + UC_SIGMASK] + stx %g0, [%o0 + UC_SIGMASK + 8] + stx %g0, [%o0 + UC_SIGMASK + 16] + stx %g0, [%o0 + UC_SIGMASK + 24] + stx %g0, [%o0 + UC_SIGMASK + 32] + stx %g0, [%o0 + UC_SIGMASK + 40] + stx %g0, [%o0 + UC_SIGMASK + 48] + stx %g0, [%o0 + UC_SIGMASK + 56] + stx %g0, [%o0 + UC_SIGMASK + 64] + stx %g0, [%o0 + UC_SIGMASK + 72] + stx %g0, [%o0 + UC_SIGMASK + 80] + stx %g0, [%o0 + UC_SIGMASK + 88] + stx %g0, [%o0 + UC_SIGMASK + 96] + stx %g0, [%o0 + UC_SIGMASK + 104] + stx %g0, [%o0 + UC_SIGMASK + 112] + stx %g0, [%o0 + UC_SIGMASK + 120] +#else +# error Adjust __getcontext +#endif +2: + retl + clr %o0 + +END(__getcontext) + +weak_alias (__getcontext, getcontext) diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/ipc_priv.h b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/ipc_priv.h new file mode 100644 index 0000000000..c588c41908 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/ipc_priv.h @@ -0,0 +1,41 @@ +/* Old SysV permission definition for Linux. x86_64 version. + Copyright (C) 2016-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#include <sys/ipc.h> /* For __key_t */ + +#define __IPC_64 0x0 + +struct __old_ipc_perm +{ + __key_t __key; /* Key. */ + unsigned int uid; /* Owner's user ID. */ + unsigned int gid; /* Owner's group ID. */ + unsigned int cuid; /* Creator's user ID. */ + unsigned int cgid; /* Creator's group ID. */ + unsigned int mode; /* Read/write permission. */ + unsigned short int __seq; /* Sequence number. */ +}; + +/* SPARC semctl multiplex syscall expects the union pointed address, not + the union address itself. */ +#define SEMCTL_ARG_ADDRESS(__arg) __arg.array + +/* Also for msgrcv it does not use the kludge on final 2 arguments. */ +#define MSGRCV_ARGS(__msgp, __msgtyp) __msgp, __msgtyp + +#include <ipc_ops.h> diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/kernel_stat.h b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/kernel_stat.h new file mode 100644 index 0000000000..30afb553b9 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/kernel_stat.h @@ -0,0 +1,48 @@ +/* Definition of `struct stat' used in the kernel */ +struct kernel_stat + { + unsigned int st_dev; + unsigned long int st_ino; + unsigned int st_mode; + short int st_nlink; + unsigned int st_uid; + unsigned int st_gid; + unsigned int st_rdev; + long int st_size; + long int st_atime_sec; + long int st_mtime_sec; + long int st_ctime_sec; + long int st_blksize; + long int st_blocks; + unsigned long int __glibc_reserved1; + unsigned long int __glibc_reserved2; + }; + +/* Definition of `struct stat64' used in the kernel. */ +struct kernel_stat64 + { + unsigned long int st_dev; + unsigned long int st_ino; + unsigned long int st_nlink; + + unsigned int st_mode; + unsigned int st_uid; + unsigned int st_gid; + unsigned int __pad0; + + unsigned long int st_rdev; + long int st_size; + long int st_blksize; + long int st_blocks; + + unsigned long int st_atime_sec; + unsigned long int st_atime_nsec; + unsigned long int st_mtime_sec; + unsigned long int st_mtime_nsec; + unsigned long int st_ctime_sec; + unsigned long int st_ctime_nsec; + long int __glibc_reserved[3]; + }; + +#define XSTAT_IS_XSTAT64 1 +#define STATFS_IS_STATFS64 0 diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/ld.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/ld.abilist new file mode 100644 index 0000000000..9b45d5e90c --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/ld.abilist @@ -0,0 +1,11 @@ +GLIBC_2.2 GLIBC_2.2 A +GLIBC_2.2 __libc_stack_end D 0x8 +GLIBC_2.2 _dl_mcount F +GLIBC_2.2 _r_debug D 0x28 +GLIBC_2.2 calloc F +GLIBC_2.2 free F +GLIBC_2.2 malloc F +GLIBC_2.2 realloc F +GLIBC_2.3 GLIBC_2.3 A +GLIBC_2.3 __tls_get_addr F +GLIBC_2.4 GLIBC_2.4 A diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/libBrokenLocale.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/libBrokenLocale.abilist new file mode 100644 index 0000000000..21343df781 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/libBrokenLocale.abilist @@ -0,0 +1,2 @@ +GLIBC_2.2 GLIBC_2.2 A +GLIBC_2.2 __ctype_get_mb_cur_max F diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/libanl.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/libanl.abilist new file mode 100644 index 0000000000..edabfb436e --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/libanl.abilist @@ -0,0 +1,5 @@ +GLIBC_2.2.3 GLIBC_2.2.3 A +GLIBC_2.2.3 gai_cancel F +GLIBC_2.2.3 gai_error F +GLIBC_2.2.3 gai_suspend F +GLIBC_2.2.3 getaddrinfo_a F diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist new file mode 100644 index 0000000000..1653164d9e --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist @@ -0,0 +1,2220 @@ +GCC_3.0 GCC_3.0 A +GCC_3.0 _Unwind_Find_FDE F +GCC_3.0 __deregister_frame_info_bases F +GCC_3.0 __register_frame_info_bases F +GCC_3.0 __register_frame_info_table_bases F +GLIBC_2.10 GLIBC_2.10 A +GLIBC_2.10 __cxa_at_quick_exit F +GLIBC_2.10 __posix_getopt F +GLIBC_2.10 accept4 F +GLIBC_2.10 endsgent F +GLIBC_2.10 fallocate F +GLIBC_2.10 fallocate64 F +GLIBC_2.10 fgetsgent F +GLIBC_2.10 fgetsgent_r F +GLIBC_2.10 getsgent F +GLIBC_2.10 getsgent_r F +GLIBC_2.10 getsgnam F +GLIBC_2.10 getsgnam_r F +GLIBC_2.10 malloc_info F +GLIBC_2.10 preadv F +GLIBC_2.10 preadv64 F +GLIBC_2.10 psiginfo F +GLIBC_2.10 putsgent F +GLIBC_2.10 pwritev F +GLIBC_2.10 pwritev64 F +GLIBC_2.10 quick_exit F +GLIBC_2.10 register_printf_modifier F +GLIBC_2.10 register_printf_specifier F +GLIBC_2.10 register_printf_type F +GLIBC_2.10 setsgent F +GLIBC_2.10 sgetsgent F +GLIBC_2.10 sgetsgent_r F +GLIBC_2.11 GLIBC_2.11 A +GLIBC_2.11 __longjmp_chk F +GLIBC_2.11 execvpe F +GLIBC_2.11 mkostemps F +GLIBC_2.11 mkostemps64 F +GLIBC_2.11 mkstemps F +GLIBC_2.11 mkstemps64 F +GLIBC_2.12 GLIBC_2.12 A +GLIBC_2.12 _sys_errlist D 0x438 +GLIBC_2.12 _sys_nerr D 0x4 +GLIBC_2.12 ntp_gettimex F +GLIBC_2.12 recvmmsg F +GLIBC_2.12 sys_errlist D 0x438 +GLIBC_2.12 sys_nerr D 0x4 +GLIBC_2.13 GLIBC_2.13 A +GLIBC_2.13 fanotify_init F +GLIBC_2.13 fanotify_mark F +GLIBC_2.13 prlimit F +GLIBC_2.13 prlimit64 F +GLIBC_2.14 GLIBC_2.14 A +GLIBC_2.14 clock_adjtime F +GLIBC_2.14 name_to_handle_at F +GLIBC_2.14 open_by_handle_at F +GLIBC_2.14 sendmmsg F +GLIBC_2.14 setns F +GLIBC_2.14 syncfs F +GLIBC_2.15 GLIBC_2.15 A +GLIBC_2.15 __fdelt_chk F +GLIBC_2.15 __fdelt_warn F +GLIBC_2.15 posix_spawn F +GLIBC_2.15 posix_spawnp F +GLIBC_2.15 process_vm_readv F +GLIBC_2.15 process_vm_writev F +GLIBC_2.15 scandirat F +GLIBC_2.15 scandirat64 F +GLIBC_2.16 GLIBC_2.16 A +GLIBC_2.16 __getauxval F +GLIBC_2.16 __getshmlba F +GLIBC_2.16 __poll_chk F +GLIBC_2.16 __ppoll_chk F +GLIBC_2.16 _sys_errlist D 0x440 +GLIBC_2.16 _sys_nerr D 0x4 +GLIBC_2.16 aligned_alloc F +GLIBC_2.16 c16rtomb F +GLIBC_2.16 c32rtomb F +GLIBC_2.16 getauxval F +GLIBC_2.16 mbrtoc16 F +GLIBC_2.16 mbrtoc32 F +GLIBC_2.16 sys_errlist D 0x440 +GLIBC_2.16 sys_nerr D 0x4 +GLIBC_2.16 timespec_get F +GLIBC_2.17 GLIBC_2.17 A +GLIBC_2.17 clock_getcpuclockid F +GLIBC_2.17 clock_getres F +GLIBC_2.17 clock_gettime F +GLIBC_2.17 clock_nanosleep F +GLIBC_2.17 clock_settime F +GLIBC_2.17 secure_getenv F +GLIBC_2.18 GLIBC_2.18 A +GLIBC_2.18 __cxa_thread_atexit_impl F +GLIBC_2.2 GLIBC_2.2 A +GLIBC_2.2 _Exit F +GLIBC_2.2 _IO_2_1_stderr_ D 0xe0 +GLIBC_2.2 _IO_2_1_stdin_ D 0xe0 +GLIBC_2.2 _IO_2_1_stdout_ D 0xe0 +GLIBC_2.2 _IO_adjust_column F +GLIBC_2.2 _IO_adjust_wcolumn F +GLIBC_2.2 _IO_default_doallocate F +GLIBC_2.2 _IO_default_finish F +GLIBC_2.2 _IO_default_pbackfail F +GLIBC_2.2 _IO_default_uflow F +GLIBC_2.2 _IO_default_xsgetn F +GLIBC_2.2 _IO_default_xsputn F +GLIBC_2.2 _IO_do_write F +GLIBC_2.2 _IO_doallocbuf F +GLIBC_2.2 _IO_fclose F +GLIBC_2.2 _IO_fdopen F +GLIBC_2.2 _IO_feof F +GLIBC_2.2 _IO_ferror F +GLIBC_2.2 _IO_fflush F +GLIBC_2.2 _IO_fgetpos F +GLIBC_2.2 _IO_fgetpos64 F +GLIBC_2.2 _IO_fgets F +GLIBC_2.2 _IO_file_attach F +GLIBC_2.2 _IO_file_close F +GLIBC_2.2 _IO_file_close_it F +GLIBC_2.2 _IO_file_doallocate F +GLIBC_2.2 _IO_file_finish F +GLIBC_2.2 _IO_file_fopen F +GLIBC_2.2 _IO_file_init F +GLIBC_2.2 _IO_file_jumps D 0xa8 +GLIBC_2.2 _IO_file_open F +GLIBC_2.2 _IO_file_overflow F +GLIBC_2.2 _IO_file_read F +GLIBC_2.2 _IO_file_seek F +GLIBC_2.2 _IO_file_seekoff F +GLIBC_2.2 _IO_file_setbuf F +GLIBC_2.2 _IO_file_stat F +GLIBC_2.2 _IO_file_sync F +GLIBC_2.2 _IO_file_underflow F +GLIBC_2.2 _IO_file_write F +GLIBC_2.2 _IO_file_xsputn F +GLIBC_2.2 _IO_flockfile F +GLIBC_2.2 _IO_flush_all F +GLIBC_2.2 _IO_flush_all_linebuffered F +GLIBC_2.2 _IO_fopen F +GLIBC_2.2 _IO_fprintf F +GLIBC_2.2 _IO_fputs F +GLIBC_2.2 _IO_fread F +GLIBC_2.2 _IO_free_backup_area F +GLIBC_2.2 _IO_free_wbackup_area F +GLIBC_2.2 _IO_fsetpos F +GLIBC_2.2 _IO_fsetpos64 F +GLIBC_2.2 _IO_ftell F +GLIBC_2.2 _IO_ftrylockfile F +GLIBC_2.2 _IO_funlockfile F +GLIBC_2.2 _IO_fwrite F +GLIBC_2.2 _IO_getc F +GLIBC_2.2 _IO_getline F +GLIBC_2.2 _IO_getline_info F +GLIBC_2.2 _IO_gets F +GLIBC_2.2 _IO_init F +GLIBC_2.2 _IO_init_marker F +GLIBC_2.2 _IO_init_wmarker F +GLIBC_2.2 _IO_iter_begin F +GLIBC_2.2 _IO_iter_end F +GLIBC_2.2 _IO_iter_file F +GLIBC_2.2 _IO_iter_next F +GLIBC_2.2 _IO_least_wmarker F +GLIBC_2.2 _IO_link_in F +GLIBC_2.2 _IO_list_all D 0x8 +GLIBC_2.2 _IO_list_lock F +GLIBC_2.2 _IO_list_resetlock F +GLIBC_2.2 _IO_list_unlock F +GLIBC_2.2 _IO_marker_delta F +GLIBC_2.2 _IO_marker_difference F +GLIBC_2.2 _IO_padn F +GLIBC_2.2 _IO_peekc_locked F +GLIBC_2.2 _IO_popen F +GLIBC_2.2 _IO_printf F +GLIBC_2.2 _IO_proc_close F +GLIBC_2.2 _IO_proc_open F +GLIBC_2.2 _IO_putc F +GLIBC_2.2 _IO_puts F +GLIBC_2.2 _IO_remove_marker F +GLIBC_2.2 _IO_seekmark F +GLIBC_2.2 _IO_seekoff F +GLIBC_2.2 _IO_seekpos F +GLIBC_2.2 _IO_seekwmark F +GLIBC_2.2 _IO_setb F +GLIBC_2.2 _IO_setbuffer F +GLIBC_2.2 _IO_setvbuf F +GLIBC_2.2 _IO_sgetn F +GLIBC_2.2 _IO_sprintf F +GLIBC_2.2 _IO_sputbackc F +GLIBC_2.2 _IO_sputbackwc F +GLIBC_2.2 _IO_sscanf F +GLIBC_2.2 _IO_str_init_readonly F +GLIBC_2.2 _IO_str_init_static F +GLIBC_2.2 _IO_str_overflow F +GLIBC_2.2 _IO_str_pbackfail F +GLIBC_2.2 _IO_str_seekoff F +GLIBC_2.2 _IO_str_underflow F +GLIBC_2.2 _IO_sungetc F +GLIBC_2.2 _IO_sungetwc F +GLIBC_2.2 _IO_switch_to_get_mode F +GLIBC_2.2 _IO_switch_to_main_wget_area F +GLIBC_2.2 _IO_switch_to_wbackup_area F +GLIBC_2.2 _IO_switch_to_wget_mode F +GLIBC_2.2 _IO_un_link F +GLIBC_2.2 _IO_ungetc F +GLIBC_2.2 _IO_unsave_markers F +GLIBC_2.2 _IO_unsave_wmarkers F +GLIBC_2.2 _IO_vfprintf F +GLIBC_2.2 _IO_vfscanf F +GLIBC_2.2 _IO_vsprintf F +GLIBC_2.2 _IO_wdefault_doallocate F +GLIBC_2.2 _IO_wdefault_finish F +GLIBC_2.2 _IO_wdefault_pbackfail F +GLIBC_2.2 _IO_wdefault_uflow F +GLIBC_2.2 _IO_wdefault_xsgetn F +GLIBC_2.2 _IO_wdefault_xsputn F +GLIBC_2.2 _IO_wdo_write F +GLIBC_2.2 _IO_wdoallocbuf F +GLIBC_2.2 _IO_wfile_jumps D 0xa8 +GLIBC_2.2 _IO_wfile_overflow F +GLIBC_2.2 _IO_wfile_seekoff F +GLIBC_2.2 _IO_wfile_sync F +GLIBC_2.2 _IO_wfile_underflow F +GLIBC_2.2 _IO_wfile_xsputn F +GLIBC_2.2 _IO_wmarker_delta F +GLIBC_2.2 _IO_wsetb F +GLIBC_2.2 _Qp_add F +GLIBC_2.2 _Qp_cmp F +GLIBC_2.2 _Qp_cmpe F +GLIBC_2.2 _Qp_div F +GLIBC_2.2 _Qp_dtoq F +GLIBC_2.2 _Qp_feq F +GLIBC_2.2 _Qp_fge F +GLIBC_2.2 _Qp_fgt F +GLIBC_2.2 _Qp_fle F +GLIBC_2.2 _Qp_flt F +GLIBC_2.2 _Qp_fne F +GLIBC_2.2 _Qp_itoq F +GLIBC_2.2 _Qp_mul F +GLIBC_2.2 _Qp_neg F +GLIBC_2.2 _Qp_qtod F +GLIBC_2.2 _Qp_qtoi F +GLIBC_2.2 _Qp_qtos F +GLIBC_2.2 _Qp_qtoui F +GLIBC_2.2 _Qp_qtoux F +GLIBC_2.2 _Qp_qtox F +GLIBC_2.2 _Qp_sqrt F +GLIBC_2.2 _Qp_stoq F +GLIBC_2.2 _Qp_sub F +GLIBC_2.2 _Qp_uitoq F +GLIBC_2.2 _Qp_uxtoq F +GLIBC_2.2 _Qp_xtoq F +GLIBC_2.2 __adjtimex F +GLIBC_2.2 __after_morecore_hook D 0x8 +GLIBC_2.2 __align_cpy_1 F +GLIBC_2.2 __align_cpy_16 F +GLIBC_2.2 __align_cpy_2 F +GLIBC_2.2 __align_cpy_4 F +GLIBC_2.2 __align_cpy_8 F +GLIBC_2.2 __argz_count F +GLIBC_2.2 __argz_next F +GLIBC_2.2 __argz_stringify F +GLIBC_2.2 __asprintf F +GLIBC_2.2 __assert F +GLIBC_2.2 __assert_fail F +GLIBC_2.2 __assert_perror_fail F +GLIBC_2.2 __backtrace F +GLIBC_2.2 __backtrace_symbols F +GLIBC_2.2 __backtrace_symbols_fd F +GLIBC_2.2 __bsd_getpgrp F +GLIBC_2.2 __bzero F +GLIBC_2.2 __check_rhosts_file D 0x4 +GLIBC_2.2 __clone F +GLIBC_2.2 __close F +GLIBC_2.2 __cmsg_nxthdr F +GLIBC_2.2 __connect F +GLIBC_2.2 __ctype32_b D 0x8 +GLIBC_2.2 __ctype32_tolower D 0x8 +GLIBC_2.2 __ctype32_toupper D 0x8 +GLIBC_2.2 __ctype_b D 0x8 +GLIBC_2.2 __ctype_get_mb_cur_max F +GLIBC_2.2 __ctype_tolower D 0x8 +GLIBC_2.2 __ctype_toupper D 0x8 +GLIBC_2.2 __curbrk D 0x8 +GLIBC_2.2 __cxa_atexit F +GLIBC_2.2 __cxa_finalize F +GLIBC_2.2 __cyg_profile_func_enter F +GLIBC_2.2 __cyg_profile_func_exit F +GLIBC_2.2 __daylight D 0x4 +GLIBC_2.2 __dcgettext F +GLIBC_2.2 __default_morecore F +GLIBC_2.2 __deregister_frame F +GLIBC_2.2 __deregister_frame_info F +GLIBC_2.2 __dgettext F +GLIBC_2.2 __dup2 F +GLIBC_2.2 __duplocale F +GLIBC_2.2 __endmntent F +GLIBC_2.2 __environ D 0x8 +GLIBC_2.2 __errno_location F +GLIBC_2.2 __fbufsize F +GLIBC_2.2 __fcntl F +GLIBC_2.2 __ffs F +GLIBC_2.2 __finite F +GLIBC_2.2 __finitef F +GLIBC_2.2 __finitel F +GLIBC_2.2 __flbf F +GLIBC_2.2 __fork F +GLIBC_2.2 __fpending F +GLIBC_2.2 __fpu_control D 0x8 +GLIBC_2.2 __fpurge F +GLIBC_2.2 __frame_state_for F +GLIBC_2.2 __freadable F +GLIBC_2.2 __freading F +GLIBC_2.2 __free_hook D 0x8 +GLIBC_2.2 __freelocale F +GLIBC_2.2 __fsetlocking F +GLIBC_2.2 __fwritable F +GLIBC_2.2 __fwriting F +GLIBC_2.2 __fxstat F +GLIBC_2.2 __fxstat64 F +GLIBC_2.2 __getdelim F +GLIBC_2.2 __getmntent_r F +GLIBC_2.2 __getpagesize F +GLIBC_2.2 __getpgid F +GLIBC_2.2 __getpid F +GLIBC_2.2 __gettimeofday F +GLIBC_2.2 __gmtime_r F +GLIBC_2.2 __h_errno_location F +GLIBC_2.2 __isalnum_l F +GLIBC_2.2 __isalpha_l F +GLIBC_2.2 __isascii_l F +GLIBC_2.2 __isblank_l F +GLIBC_2.2 __iscntrl_l F +GLIBC_2.2 __isdigit_l F +GLIBC_2.2 __isgraph_l F +GLIBC_2.2 __isinf F +GLIBC_2.2 __isinff F +GLIBC_2.2 __isinfl F +GLIBC_2.2 __islower_l F +GLIBC_2.2 __isnan F +GLIBC_2.2 __isnanf F +GLIBC_2.2 __isnanl F +GLIBC_2.2 __isprint_l F +GLIBC_2.2 __ispunct_l F +GLIBC_2.2 __isspace_l F +GLIBC_2.2 __isupper_l F +GLIBC_2.2 __iswalnum_l F +GLIBC_2.2 __iswalpha_l F +GLIBC_2.2 __iswblank_l F +GLIBC_2.2 __iswcntrl_l F +GLIBC_2.2 __iswctype F +GLIBC_2.2 __iswctype_l F +GLIBC_2.2 __iswdigit_l F +GLIBC_2.2 __iswgraph_l F +GLIBC_2.2 __iswlower_l F +GLIBC_2.2 __iswprint_l F +GLIBC_2.2 __iswpunct_l F +GLIBC_2.2 __iswspace_l F +GLIBC_2.2 __iswupper_l F +GLIBC_2.2 __iswxdigit_l F +GLIBC_2.2 __isxdigit_l F +GLIBC_2.2 __ivaliduser F +GLIBC_2.2 __key_decryptsession_pk_LOCAL D 0x8 +GLIBC_2.2 __key_encryptsession_pk_LOCAL D 0x8 +GLIBC_2.2 __key_gendes_LOCAL D 0x8 +GLIBC_2.2 __libc_allocate_rtsig F +GLIBC_2.2 __libc_calloc F +GLIBC_2.2 __libc_current_sigrtmax F +GLIBC_2.2 __libc_current_sigrtmin F +GLIBC_2.2 __libc_free F +GLIBC_2.2 __libc_freeres F +GLIBC_2.2 __libc_init_first F +GLIBC_2.2 __libc_mallinfo F +GLIBC_2.2 __libc_malloc F +GLIBC_2.2 __libc_mallopt F +GLIBC_2.2 __libc_memalign F +GLIBC_2.2 __libc_pvalloc F +GLIBC_2.2 __libc_realloc F +GLIBC_2.2 __libc_sa_len F +GLIBC_2.2 __libc_start_main F +GLIBC_2.2 __libc_valloc F +GLIBC_2.2 __lseek F +GLIBC_2.2 __lxstat F +GLIBC_2.2 __lxstat64 F +GLIBC_2.2 __malloc_hook D 0x8 +GLIBC_2.2 __malloc_initialize_hook D 0x8 +GLIBC_2.2 __mbrlen F +GLIBC_2.2 __mbrtowc F +GLIBC_2.2 __memalign_hook D 0x8 +GLIBC_2.2 __mempcpy F +GLIBC_2.2 __mempcpy_small F +GLIBC_2.2 __monstartup F +GLIBC_2.2 __morecore D 0x8 +GLIBC_2.2 __newlocale F +GLIBC_2.2 __nl_langinfo_l F +GLIBC_2.2 __nss_configure_lookup F +GLIBC_2.2 __nss_database_lookup F +GLIBC_2.2 __nss_group_lookup F +GLIBC_2.2 __nss_hosts_lookup F +GLIBC_2.2 __nss_next F +GLIBC_2.2 __nss_passwd_lookup F +GLIBC_2.2 __open F +GLIBC_2.2 __open64 F +GLIBC_2.2 __overflow F +GLIBC_2.2 __pipe F +GLIBC_2.2 __poll F +GLIBC_2.2 __pread64 F +GLIBC_2.2 __printf_fp F +GLIBC_2.2 __profile_frequency F +GLIBC_2.2 __progname D 0x8 +GLIBC_2.2 __progname_full D 0x8 +GLIBC_2.2 __pwrite64 F +GLIBC_2.2 __rawmemchr F +GLIBC_2.2 __rcmd_errstr D 0x8 +GLIBC_2.2 __read F +GLIBC_2.2 __realloc_hook D 0x8 +GLIBC_2.2 __register_frame F +GLIBC_2.2 __register_frame_info F +GLIBC_2.2 __register_frame_info_table F +GLIBC_2.2 __register_frame_table F +GLIBC_2.2 __res_init F +GLIBC_2.2 __res_nclose F +GLIBC_2.2 __res_ninit F +GLIBC_2.2 __res_randomid F +GLIBC_2.2 __res_state F +GLIBC_2.2 __sbrk F +GLIBC_2.2 __sched_get_priority_max F +GLIBC_2.2 __sched_get_priority_min F +GLIBC_2.2 __sched_getparam F +GLIBC_2.2 __sched_getscheduler F +GLIBC_2.2 __sched_setscheduler F +GLIBC_2.2 __sched_yield F +GLIBC_2.2 __secure_getenv F +GLIBC_2.2 __select F +GLIBC_2.2 __send F +GLIBC_2.2 __setmntent F +GLIBC_2.2 __setpgid F +GLIBC_2.2 __sigaction F +GLIBC_2.2 __sigaddset F +GLIBC_2.2 __sigdelset F +GLIBC_2.2 __sigismember F +GLIBC_2.2 __signbit F +GLIBC_2.2 __signbitf F +GLIBC_2.2 __signbitl F +GLIBC_2.2 __sigpause F +GLIBC_2.2 __sigsetjmp F +GLIBC_2.2 __sigsuspend F +GLIBC_2.2 __statfs F +GLIBC_2.2 __stpcpy F +GLIBC_2.2 __stpcpy_small F +GLIBC_2.2 __stpncpy F +GLIBC_2.2 __strcasecmp F +GLIBC_2.2 __strcasecmp_l F +GLIBC_2.2 __strcasestr F +GLIBC_2.2 __strcoll_l F +GLIBC_2.2 __strcpy_small F +GLIBC_2.2 __strcspn_c1 F +GLIBC_2.2 __strcspn_c2 F +GLIBC_2.2 __strcspn_c3 F +GLIBC_2.2 __strdup F +GLIBC_2.2 __strerror_r F +GLIBC_2.2 __strfmon_l F +GLIBC_2.2 __strncasecmp_l F +GLIBC_2.2 __strndup F +GLIBC_2.2 __strpbrk_c2 F +GLIBC_2.2 __strpbrk_c3 F +GLIBC_2.2 __strsep_1c F +GLIBC_2.2 __strsep_2c F +GLIBC_2.2 __strsep_3c F +GLIBC_2.2 __strsep_g F +GLIBC_2.2 __strspn_c1 F +GLIBC_2.2 __strspn_c2 F +GLIBC_2.2 __strspn_c3 F +GLIBC_2.2 __strtod_internal F +GLIBC_2.2 __strtod_l F +GLIBC_2.2 __strtof_internal F +GLIBC_2.2 __strtof_l F +GLIBC_2.2 __strtok_r F +GLIBC_2.2 __strtok_r_1c F +GLIBC_2.2 __strtol_internal F +GLIBC_2.2 __strtol_l F +GLIBC_2.2 __strtold_internal F +GLIBC_2.2 __strtold_l F +GLIBC_2.2 __strtoll_internal F +GLIBC_2.2 __strtoll_l F +GLIBC_2.2 __strtoul_internal F +GLIBC_2.2 __strtoul_l F +GLIBC_2.2 __strtoull_internal F +GLIBC_2.2 __strtoull_l F +GLIBC_2.2 __strverscmp F +GLIBC_2.2 __strxfrm_l F +GLIBC_2.2 __sysconf F +GLIBC_2.2 __sysctl F +GLIBC_2.2 __sysv_signal F +GLIBC_2.2 __timezone D 0x8 +GLIBC_2.2 __toascii_l F +GLIBC_2.2 __tolower_l F +GLIBC_2.2 __toupper_l F +GLIBC_2.2 __towctrans F +GLIBC_2.2 __towctrans_l F +GLIBC_2.2 __towlower_l F +GLIBC_2.2 __towupper_l F +GLIBC_2.2 __tzname D 0x10 +GLIBC_2.2 __uflow F +GLIBC_2.2 __underflow F +GLIBC_2.2 __vfork F +GLIBC_2.2 __vfscanf F +GLIBC_2.2 __vsnprintf F +GLIBC_2.2 __vsscanf F +GLIBC_2.2 __wait F +GLIBC_2.2 __waitpid F +GLIBC_2.2 __wcscasecmp_l F +GLIBC_2.2 __wcscoll_l F +GLIBC_2.2 __wcsncasecmp_l F +GLIBC_2.2 __wcstod_internal F +GLIBC_2.2 __wcstod_l F +GLIBC_2.2 __wcstof_internal F +GLIBC_2.2 __wcstof_l F +GLIBC_2.2 __wcstol_internal F +GLIBC_2.2 __wcstol_l F +GLIBC_2.2 __wcstold_internal F +GLIBC_2.2 __wcstold_l F +GLIBC_2.2 __wcstoll_internal F +GLIBC_2.2 __wcstoll_l F +GLIBC_2.2 __wcstoul_internal F +GLIBC_2.2 __wcstoul_l F +GLIBC_2.2 __wcstoull_internal F +GLIBC_2.2 __wcstoull_l F +GLIBC_2.2 __wcsxfrm_l F +GLIBC_2.2 __wctrans_l F +GLIBC_2.2 __wctype_l F +GLIBC_2.2 __woverflow F +GLIBC_2.2 __write F +GLIBC_2.2 __wuflow F +GLIBC_2.2 __wunderflow F +GLIBC_2.2 __xmknod F +GLIBC_2.2 __xpg_basename F +GLIBC_2.2 __xpg_sigpause F +GLIBC_2.2 __xstat F +GLIBC_2.2 __xstat64 F +GLIBC_2.2 _authenticate F +GLIBC_2.2 _dl_mcount_wrapper F +GLIBC_2.2 _dl_mcount_wrapper_check F +GLIBC_2.2 _environ D 0x8 +GLIBC_2.2 _exit F +GLIBC_2.2 _flushlbf F +GLIBC_2.2 _libc_intl_domainname D 0x5 +GLIBC_2.2 _longjmp F +GLIBC_2.2 _mcleanup F +GLIBC_2.2 _mcount F +GLIBC_2.2 _nl_default_dirname D 0x12 +GLIBC_2.2 _nl_domain_bindings D 0x8 +GLIBC_2.2 _nl_msg_cat_cntr D 0x4 +GLIBC_2.2 _null_auth D 0x18 +GLIBC_2.2 _obstack D 0x8 +GLIBC_2.2 _obstack_allocated_p F +GLIBC_2.2 _obstack_begin F +GLIBC_2.2 _obstack_begin_1 F +GLIBC_2.2 _obstack_free F +GLIBC_2.2 _obstack_memory_used F +GLIBC_2.2 _obstack_newchunk F +GLIBC_2.2 _res D 0x238 +GLIBC_2.2 _res_hconf D 0x48 +GLIBC_2.2 _rpc_dtablesize F +GLIBC_2.2 _seterr_reply F +GLIBC_2.2 _setjmp F +GLIBC_2.2 _sys_errlist D 0x3f8 +GLIBC_2.2 _sys_nerr D 0x4 +GLIBC_2.2 _sys_siglist D 0x200 +GLIBC_2.2 _tolower F +GLIBC_2.2 _toupper F +GLIBC_2.2 a64l F +GLIBC_2.2 abort F +GLIBC_2.2 abs F +GLIBC_2.2 accept F +GLIBC_2.2 access F +GLIBC_2.2 acct F +GLIBC_2.2 addmntent F +GLIBC_2.2 addseverity F +GLIBC_2.2 adjtime F +GLIBC_2.2 adjtimex F +GLIBC_2.2 advance F +GLIBC_2.2 alarm F +GLIBC_2.2 alphasort F +GLIBC_2.2 alphasort64 F +GLIBC_2.2 argp_err_exit_status D 0x4 +GLIBC_2.2 argp_error F +GLIBC_2.2 argp_failure F +GLIBC_2.2 argp_help F +GLIBC_2.2 argp_parse F +GLIBC_2.2 argp_program_bug_address D 0x8 +GLIBC_2.2 argp_program_version D 0x8 +GLIBC_2.2 argp_program_version_hook D 0x8 +GLIBC_2.2 argp_state_help F +GLIBC_2.2 argp_usage F +GLIBC_2.2 argz_add F +GLIBC_2.2 argz_add_sep F +GLIBC_2.2 argz_append F +GLIBC_2.2 argz_count F +GLIBC_2.2 argz_create F +GLIBC_2.2 argz_create_sep F +GLIBC_2.2 argz_delete F +GLIBC_2.2 argz_extract F +GLIBC_2.2 argz_insert F +GLIBC_2.2 argz_next F +GLIBC_2.2 argz_replace F +GLIBC_2.2 argz_stringify F +GLIBC_2.2 asctime F +GLIBC_2.2 asctime_r F +GLIBC_2.2 asprintf F +GLIBC_2.2 atexit F +GLIBC_2.2 atof F +GLIBC_2.2 atoi F +GLIBC_2.2 atol F +GLIBC_2.2 atoll F +GLIBC_2.2 authdes_create F +GLIBC_2.2 authdes_getucred F +GLIBC_2.2 authdes_pk_create F +GLIBC_2.2 authnone_create F +GLIBC_2.2 authunix_create F +GLIBC_2.2 authunix_create_default F +GLIBC_2.2 backtrace F +GLIBC_2.2 backtrace_symbols F +GLIBC_2.2 backtrace_symbols_fd F +GLIBC_2.2 basename F +GLIBC_2.2 bcmp F +GLIBC_2.2 bcopy F +GLIBC_2.2 bdflush F +GLIBC_2.2 bind F +GLIBC_2.2 bind_textdomain_codeset F +GLIBC_2.2 bindresvport F +GLIBC_2.2 bindtextdomain F +GLIBC_2.2 brk F +GLIBC_2.2 bsd_signal F +GLIBC_2.2 bsearch F +GLIBC_2.2 btowc F +GLIBC_2.2 bzero F +GLIBC_2.2 calloc F +GLIBC_2.2 callrpc F +GLIBC_2.2 canonicalize_file_name F +GLIBC_2.2 capget F +GLIBC_2.2 capset F +GLIBC_2.2 catclose F +GLIBC_2.2 catgets F +GLIBC_2.2 catopen F +GLIBC_2.2 cbc_crypt F +GLIBC_2.2 cfgetispeed F +GLIBC_2.2 cfgetospeed F +GLIBC_2.2 cfmakeraw F +GLIBC_2.2 cfree F +GLIBC_2.2 cfsetispeed F +GLIBC_2.2 cfsetospeed F +GLIBC_2.2 cfsetspeed F +GLIBC_2.2 chdir F +GLIBC_2.2 chflags F +GLIBC_2.2 chmod F +GLIBC_2.2 chown F +GLIBC_2.2 chroot F +GLIBC_2.2 clearenv F +GLIBC_2.2 clearerr F +GLIBC_2.2 clearerr_unlocked F +GLIBC_2.2 clnt_broadcast F +GLIBC_2.2 clnt_create F +GLIBC_2.2 clnt_pcreateerror F +GLIBC_2.2 clnt_perrno F +GLIBC_2.2 clnt_perror F +GLIBC_2.2 clnt_spcreateerror F +GLIBC_2.2 clnt_sperrno F +GLIBC_2.2 clnt_sperror F +GLIBC_2.2 clntraw_create F +GLIBC_2.2 clnttcp_create F +GLIBC_2.2 clntudp_bufcreate F +GLIBC_2.2 clntudp_create F +GLIBC_2.2 clntunix_create F +GLIBC_2.2 clock F +GLIBC_2.2 clone F +GLIBC_2.2 close F +GLIBC_2.2 closedir F +GLIBC_2.2 closelog F +GLIBC_2.2 confstr F +GLIBC_2.2 connect F +GLIBC_2.2 copysign F +GLIBC_2.2 copysignf F +GLIBC_2.2 copysignl F +GLIBC_2.2 creat F +GLIBC_2.2 creat64 F +GLIBC_2.2 create_module F +GLIBC_2.2 ctermid F +GLIBC_2.2 ctime F +GLIBC_2.2 ctime_r F +GLIBC_2.2 cuserid F +GLIBC_2.2 daemon F +GLIBC_2.2 daylight D 0x4 +GLIBC_2.2 dcgettext F +GLIBC_2.2 dcngettext F +GLIBC_2.2 delete_module F +GLIBC_2.2 des_setparity F +GLIBC_2.2 dgettext F +GLIBC_2.2 difftime F +GLIBC_2.2 dirfd F +GLIBC_2.2 dirname F +GLIBC_2.2 div F +GLIBC_2.2 dngettext F +GLIBC_2.2 dprintf F +GLIBC_2.2 drand48 F +GLIBC_2.2 drand48_r F +GLIBC_2.2 dup F +GLIBC_2.2 dup2 F +GLIBC_2.2 dysize F +GLIBC_2.2 ecb_crypt F +GLIBC_2.2 ecvt F +GLIBC_2.2 ecvt_r F +GLIBC_2.2 endaliasent F +GLIBC_2.2 endfsent F +GLIBC_2.2 endgrent F +GLIBC_2.2 endhostent F +GLIBC_2.2 endmntent F +GLIBC_2.2 endnetent F +GLIBC_2.2 endnetgrent F +GLIBC_2.2 endprotoent F +GLIBC_2.2 endpwent F +GLIBC_2.2 endrpcent F +GLIBC_2.2 endservent F +GLIBC_2.2 endspent F +GLIBC_2.2 endttyent F +GLIBC_2.2 endusershell F +GLIBC_2.2 endutent F +GLIBC_2.2 endutxent F +GLIBC_2.2 environ D 0x8 +GLIBC_2.2 envz_add F +GLIBC_2.2 envz_entry F +GLIBC_2.2 envz_get F +GLIBC_2.2 envz_merge F +GLIBC_2.2 envz_remove F +GLIBC_2.2 envz_strip F +GLIBC_2.2 erand48 F +GLIBC_2.2 erand48_r F +GLIBC_2.2 err F +GLIBC_2.2 error F +GLIBC_2.2 error_at_line F +GLIBC_2.2 error_message_count D 0x4 +GLIBC_2.2 error_one_per_line D 0x4 +GLIBC_2.2 error_print_progname D 0x8 +GLIBC_2.2 errx F +GLIBC_2.2 ether_aton F +GLIBC_2.2 ether_aton_r F +GLIBC_2.2 ether_hostton F +GLIBC_2.2 ether_line F +GLIBC_2.2 ether_ntoa F +GLIBC_2.2 ether_ntoa_r F +GLIBC_2.2 ether_ntohost F +GLIBC_2.2 euidaccess F +GLIBC_2.2 execl F +GLIBC_2.2 execle F +GLIBC_2.2 execlp F +GLIBC_2.2 execv F +GLIBC_2.2 execve F +GLIBC_2.2 execvp F +GLIBC_2.2 exit F +GLIBC_2.2 fattach F +GLIBC_2.2 fchdir F +GLIBC_2.2 fchflags F +GLIBC_2.2 fchmod F +GLIBC_2.2 fchown F +GLIBC_2.2 fclose F +GLIBC_2.2 fcloseall F +GLIBC_2.2 fcntl F +GLIBC_2.2 fcvt F +GLIBC_2.2 fcvt_r F +GLIBC_2.2 fdatasync F +GLIBC_2.2 fdetach F +GLIBC_2.2 fdopen F +GLIBC_2.2 feof F +GLIBC_2.2 feof_unlocked F +GLIBC_2.2 ferror F +GLIBC_2.2 ferror_unlocked F +GLIBC_2.2 fexecve F +GLIBC_2.2 fflush F +GLIBC_2.2 fflush_unlocked F +GLIBC_2.2 ffs F +GLIBC_2.2 ffsl F +GLIBC_2.2 ffsll F +GLIBC_2.2 fgetc F +GLIBC_2.2 fgetc_unlocked F +GLIBC_2.2 fgetgrent F +GLIBC_2.2 fgetgrent_r F +GLIBC_2.2 fgetpos F +GLIBC_2.2 fgetpos64 F +GLIBC_2.2 fgetpwent F +GLIBC_2.2 fgetpwent_r F +GLIBC_2.2 fgets F +GLIBC_2.2 fgets_unlocked F +GLIBC_2.2 fgetspent F +GLIBC_2.2 fgetspent_r F +GLIBC_2.2 fgetwc F +GLIBC_2.2 fgetwc_unlocked F +GLIBC_2.2 fgetws F +GLIBC_2.2 fgetws_unlocked F +GLIBC_2.2 fileno F +GLIBC_2.2 fileno_unlocked F +GLIBC_2.2 finite F +GLIBC_2.2 finitef F +GLIBC_2.2 finitel F +GLIBC_2.2 flock F +GLIBC_2.2 flockfile F +GLIBC_2.2 fmemopen F +GLIBC_2.2 fmtmsg F +GLIBC_2.2 fnmatch F +GLIBC_2.2 fopen F +GLIBC_2.2 fopen64 F +GLIBC_2.2 fopencookie F +GLIBC_2.2 fork F +GLIBC_2.2 fpathconf F +GLIBC_2.2 fprintf F +GLIBC_2.2 fputc F +GLIBC_2.2 fputc_unlocked F +GLIBC_2.2 fputs F +GLIBC_2.2 fputs_unlocked F +GLIBC_2.2 fputwc F +GLIBC_2.2 fputwc_unlocked F +GLIBC_2.2 fputws F +GLIBC_2.2 fputws_unlocked F +GLIBC_2.2 fread F +GLIBC_2.2 fread_unlocked F +GLIBC_2.2 free F +GLIBC_2.2 freeaddrinfo F +GLIBC_2.2 freopen F +GLIBC_2.2 freopen64 F +GLIBC_2.2 frexp F +GLIBC_2.2 frexpf F +GLIBC_2.2 frexpl F +GLIBC_2.2 fscanf F +GLIBC_2.2 fseek F +GLIBC_2.2 fseeko F +GLIBC_2.2 fseeko64 F +GLIBC_2.2 fsetpos F +GLIBC_2.2 fsetpos64 F +GLIBC_2.2 fstatfs F +GLIBC_2.2 fstatfs64 F +GLIBC_2.2 fstatvfs F +GLIBC_2.2 fstatvfs64 F +GLIBC_2.2 fsync F +GLIBC_2.2 ftell F +GLIBC_2.2 ftello F +GLIBC_2.2 ftello64 F +GLIBC_2.2 ftime F +GLIBC_2.2 ftok F +GLIBC_2.2 ftruncate F +GLIBC_2.2 ftruncate64 F +GLIBC_2.2 ftrylockfile F +GLIBC_2.2 fts_children F +GLIBC_2.2 fts_close F +GLIBC_2.2 fts_open F +GLIBC_2.2 fts_read F +GLIBC_2.2 fts_set F +GLIBC_2.2 ftw F +GLIBC_2.2 ftw64 F +GLIBC_2.2 funlockfile F +GLIBC_2.2 fwide F +GLIBC_2.2 fwprintf F +GLIBC_2.2 fwrite F +GLIBC_2.2 fwrite_unlocked F +GLIBC_2.2 fwscanf F +GLIBC_2.2 gai_strerror F +GLIBC_2.2 gcvt F +GLIBC_2.2 get_avphys_pages F +GLIBC_2.2 get_current_dir_name F +GLIBC_2.2 get_kernel_syms F +GLIBC_2.2 get_myaddress F +GLIBC_2.2 get_nprocs F +GLIBC_2.2 get_nprocs_conf F +GLIBC_2.2 get_phys_pages F +GLIBC_2.2 getaddrinfo F +GLIBC_2.2 getaliasbyname F +GLIBC_2.2 getaliasbyname_r F +GLIBC_2.2 getaliasent F +GLIBC_2.2 getaliasent_r F +GLIBC_2.2 getc F +GLIBC_2.2 getc_unlocked F +GLIBC_2.2 getchar F +GLIBC_2.2 getchar_unlocked F +GLIBC_2.2 getcontext F +GLIBC_2.2 getcwd F +GLIBC_2.2 getdate F +GLIBC_2.2 getdate_err D 0x4 +GLIBC_2.2 getdate_r F +GLIBC_2.2 getdelim F +GLIBC_2.2 getdirentries F +GLIBC_2.2 getdirentries64 F +GLIBC_2.2 getdomainname F +GLIBC_2.2 getdtablesize F +GLIBC_2.2 getegid F +GLIBC_2.2 getenv F +GLIBC_2.2 geteuid F +GLIBC_2.2 getfsent F +GLIBC_2.2 getfsfile F +GLIBC_2.2 getfsspec F +GLIBC_2.2 getgid F +GLIBC_2.2 getgrent F +GLIBC_2.2 getgrent_r F +GLIBC_2.2 getgrgid F +GLIBC_2.2 getgrgid_r F +GLIBC_2.2 getgrnam F +GLIBC_2.2 getgrnam_r F +GLIBC_2.2 getgroups F +GLIBC_2.2 gethostbyaddr F +GLIBC_2.2 gethostbyaddr_r F +GLIBC_2.2 gethostbyname F +GLIBC_2.2 gethostbyname2 F +GLIBC_2.2 gethostbyname2_r F +GLIBC_2.2 gethostbyname_r F +GLIBC_2.2 gethostent F +GLIBC_2.2 gethostent_r F +GLIBC_2.2 gethostid F +GLIBC_2.2 gethostname F +GLIBC_2.2 getitimer F +GLIBC_2.2 getline F +GLIBC_2.2 getloadavg F +GLIBC_2.2 getlogin F +GLIBC_2.2 getlogin_r F +GLIBC_2.2 getmntent F +GLIBC_2.2 getmntent_r F +GLIBC_2.2 getmsg F +GLIBC_2.2 getnameinfo F +GLIBC_2.2 getnetbyaddr F +GLIBC_2.2 getnetbyaddr_r F +GLIBC_2.2 getnetbyname F +GLIBC_2.2 getnetbyname_r F +GLIBC_2.2 getnetent F +GLIBC_2.2 getnetent_r F +GLIBC_2.2 getnetgrent F +GLIBC_2.2 getnetgrent_r F +GLIBC_2.2 getnetname F +GLIBC_2.2 getopt F +GLIBC_2.2 getopt_long F +GLIBC_2.2 getopt_long_only F +GLIBC_2.2 getpagesize F +GLIBC_2.2 getpass F +GLIBC_2.2 getpeername F +GLIBC_2.2 getpgid F +GLIBC_2.2 getpgrp F +GLIBC_2.2 getpid F +GLIBC_2.2 getpmsg F +GLIBC_2.2 getppid F +GLIBC_2.2 getpriority F +GLIBC_2.2 getprotobyname F +GLIBC_2.2 getprotobyname_r F +GLIBC_2.2 getprotobynumber F +GLIBC_2.2 getprotobynumber_r F +GLIBC_2.2 getprotoent F +GLIBC_2.2 getprotoent_r F +GLIBC_2.2 getpt F +GLIBC_2.2 getpublickey F +GLIBC_2.2 getpw F +GLIBC_2.2 getpwent F +GLIBC_2.2 getpwent_r F +GLIBC_2.2 getpwnam F +GLIBC_2.2 getpwnam_r F +GLIBC_2.2 getpwuid F +GLIBC_2.2 getpwuid_r F +GLIBC_2.2 getresgid F +GLIBC_2.2 getresuid F +GLIBC_2.2 getrlimit F +GLIBC_2.2 getrlimit64 F +GLIBC_2.2 getrpcbyname F +GLIBC_2.2 getrpcbyname_r F +GLIBC_2.2 getrpcbynumber F +GLIBC_2.2 getrpcbynumber_r F +GLIBC_2.2 getrpcent F +GLIBC_2.2 getrpcent_r F +GLIBC_2.2 getrpcport F +GLIBC_2.2 getrusage F +GLIBC_2.2 gets F +GLIBC_2.2 getsecretkey F +GLIBC_2.2 getservbyname F +GLIBC_2.2 getservbyname_r F +GLIBC_2.2 getservbyport F +GLIBC_2.2 getservbyport_r F +GLIBC_2.2 getservent F +GLIBC_2.2 getservent_r F +GLIBC_2.2 getsid F +GLIBC_2.2 getsockname F +GLIBC_2.2 getsockopt F +GLIBC_2.2 getspent F +GLIBC_2.2 getspent_r F +GLIBC_2.2 getspnam F +GLIBC_2.2 getspnam_r F +GLIBC_2.2 getsubopt F +GLIBC_2.2 gettext F +GLIBC_2.2 gettimeofday F +GLIBC_2.2 getttyent F +GLIBC_2.2 getttynam F +GLIBC_2.2 getuid F +GLIBC_2.2 getusershell F +GLIBC_2.2 getutent F +GLIBC_2.2 getutent_r F +GLIBC_2.2 getutid F +GLIBC_2.2 getutid_r F +GLIBC_2.2 getutline F +GLIBC_2.2 getutline_r F +GLIBC_2.2 getutmp F +GLIBC_2.2 getutmpx F +GLIBC_2.2 getutxent F +GLIBC_2.2 getutxid F +GLIBC_2.2 getutxline F +GLIBC_2.2 getw F +GLIBC_2.2 getwc F +GLIBC_2.2 getwc_unlocked F +GLIBC_2.2 getwchar F +GLIBC_2.2 getwchar_unlocked F +GLIBC_2.2 getwd F +GLIBC_2.2 glob F +GLIBC_2.2 glob64 F +GLIBC_2.2 glob_pattern_p F +GLIBC_2.2 globfree F +GLIBC_2.2 globfree64 F +GLIBC_2.2 gmtime F +GLIBC_2.2 gmtime_r F +GLIBC_2.2 gnu_get_libc_release F +GLIBC_2.2 gnu_get_libc_version F +GLIBC_2.2 grantpt F +GLIBC_2.2 group_member F +GLIBC_2.2 gsignal F +GLIBC_2.2 gtty F +GLIBC_2.2 h_errlist D 0x28 +GLIBC_2.2 h_nerr D 0x4 +GLIBC_2.2 hasmntopt F +GLIBC_2.2 hcreate F +GLIBC_2.2 hcreate_r F +GLIBC_2.2 hdestroy F +GLIBC_2.2 hdestroy_r F +GLIBC_2.2 herror F +GLIBC_2.2 host2netname F +GLIBC_2.2 hsearch F +GLIBC_2.2 hsearch_r F +GLIBC_2.2 hstrerror F +GLIBC_2.2 htonl F +GLIBC_2.2 htons F +GLIBC_2.2 iconv F +GLIBC_2.2 iconv_close F +GLIBC_2.2 iconv_open F +GLIBC_2.2 if_freenameindex F +GLIBC_2.2 if_indextoname F +GLIBC_2.2 if_nameindex F +GLIBC_2.2 if_nametoindex F +GLIBC_2.2 imaxabs F +GLIBC_2.2 imaxdiv F +GLIBC_2.2 in6addr_any D 0x10 +GLIBC_2.2 in6addr_loopback D 0x10 +GLIBC_2.2 index F +GLIBC_2.2 inet_addr F +GLIBC_2.2 inet_aton F +GLIBC_2.2 inet_lnaof F +GLIBC_2.2 inet_makeaddr F +GLIBC_2.2 inet_netof F +GLIBC_2.2 inet_network F +GLIBC_2.2 inet_nsap_addr F +GLIBC_2.2 inet_nsap_ntoa F +GLIBC_2.2 inet_ntoa F +GLIBC_2.2 inet_ntop F +GLIBC_2.2 inet_pton F +GLIBC_2.2 init_module F +GLIBC_2.2 initgroups F +GLIBC_2.2 initstate F +GLIBC_2.2 initstate_r F +GLIBC_2.2 innetgr F +GLIBC_2.2 insque F +GLIBC_2.2 ioctl F +GLIBC_2.2 iruserok F +GLIBC_2.2 iruserok_af F +GLIBC_2.2 isalnum F +GLIBC_2.2 isalpha F +GLIBC_2.2 isascii F +GLIBC_2.2 isastream F +GLIBC_2.2 isatty F +GLIBC_2.2 isblank F +GLIBC_2.2 iscntrl F +GLIBC_2.2 isdigit F +GLIBC_2.2 isfdtype F +GLIBC_2.2 isgraph F +GLIBC_2.2 isinf F +GLIBC_2.2 isinff F +GLIBC_2.2 isinfl F +GLIBC_2.2 islower F +GLIBC_2.2 isnan F +GLIBC_2.2 isnanf F +GLIBC_2.2 isnanl F +GLIBC_2.2 isprint F +GLIBC_2.2 ispunct F +GLIBC_2.2 isspace F +GLIBC_2.2 isupper F +GLIBC_2.2 iswalnum F +GLIBC_2.2 iswalpha F +GLIBC_2.2 iswblank F +GLIBC_2.2 iswcntrl F +GLIBC_2.2 iswctype F +GLIBC_2.2 iswdigit F +GLIBC_2.2 iswgraph F +GLIBC_2.2 iswlower F +GLIBC_2.2 iswprint F +GLIBC_2.2 iswpunct F +GLIBC_2.2 iswspace F +GLIBC_2.2 iswupper F +GLIBC_2.2 iswxdigit F +GLIBC_2.2 isxdigit F +GLIBC_2.2 jrand48 F +GLIBC_2.2 jrand48_r F +GLIBC_2.2 key_decryptsession F +GLIBC_2.2 key_decryptsession_pk F +GLIBC_2.2 key_encryptsession F +GLIBC_2.2 key_encryptsession_pk F +GLIBC_2.2 key_gendes F +GLIBC_2.2 key_get_conv F +GLIBC_2.2 key_secretkey_is_set F +GLIBC_2.2 key_setnet F +GLIBC_2.2 key_setsecret F +GLIBC_2.2 kill F +GLIBC_2.2 killpg F +GLIBC_2.2 klogctl F +GLIBC_2.2 l64a F +GLIBC_2.2 labs F +GLIBC_2.2 lchown F +GLIBC_2.2 lckpwdf F +GLIBC_2.2 lcong48 F +GLIBC_2.2 lcong48_r F +GLIBC_2.2 ldexp F +GLIBC_2.2 ldexpf F +GLIBC_2.2 ldexpl F +GLIBC_2.2 ldiv F +GLIBC_2.2 lfind F +GLIBC_2.2 link F +GLIBC_2.2 listen F +GLIBC_2.2 llabs F +GLIBC_2.2 lldiv F +GLIBC_2.2 llseek F +GLIBC_2.2 loc1 D 0x8 +GLIBC_2.2 loc2 D 0x8 +GLIBC_2.2 localeconv F +GLIBC_2.2 localtime F +GLIBC_2.2 localtime_r F +GLIBC_2.2 lockf F +GLIBC_2.2 lockf64 F +GLIBC_2.2 locs D 0x8 +GLIBC_2.2 longjmp F +GLIBC_2.2 lrand48 F +GLIBC_2.2 lrand48_r F +GLIBC_2.2 lsearch F +GLIBC_2.2 lseek F +GLIBC_2.2 lseek64 F +GLIBC_2.2 madvise F +GLIBC_2.2 makecontext F +GLIBC_2.2 mallinfo F +GLIBC_2.2 malloc F +GLIBC_2.2 malloc_get_state F +GLIBC_2.2 malloc_set_state F +GLIBC_2.2 malloc_stats F +GLIBC_2.2 malloc_trim F +GLIBC_2.2 malloc_usable_size F +GLIBC_2.2 mallopt F +GLIBC_2.2 mallwatch D 0x8 +GLIBC_2.2 mblen F +GLIBC_2.2 mbrlen F +GLIBC_2.2 mbrtowc F +GLIBC_2.2 mbsinit F +GLIBC_2.2 mbsnrtowcs F +GLIBC_2.2 mbsrtowcs F +GLIBC_2.2 mbstowcs F +GLIBC_2.2 mbtowc F +GLIBC_2.2 mcheck F +GLIBC_2.2 mcheck_check_all F +GLIBC_2.2 mcheck_pedantic F +GLIBC_2.2 mcount F +GLIBC_2.2 memalign F +GLIBC_2.2 memccpy F +GLIBC_2.2 memchr F +GLIBC_2.2 memcmp F +GLIBC_2.2 memcpy F +GLIBC_2.2 memfrob F +GLIBC_2.2 memmem F +GLIBC_2.2 memmove F +GLIBC_2.2 mempcpy F +GLIBC_2.2 memrchr F +GLIBC_2.2 memset F +GLIBC_2.2 mincore F +GLIBC_2.2 mkdir F +GLIBC_2.2 mkdtemp F +GLIBC_2.2 mkfifo F +GLIBC_2.2 mkstemp F +GLIBC_2.2 mkstemp64 F +GLIBC_2.2 mktemp F +GLIBC_2.2 mktime F +GLIBC_2.2 mlock F +GLIBC_2.2 mlockall F +GLIBC_2.2 mmap F +GLIBC_2.2 mmap64 F +GLIBC_2.2 modf F +GLIBC_2.2 modff F +GLIBC_2.2 modfl F +GLIBC_2.2 moncontrol F +GLIBC_2.2 monstartup F +GLIBC_2.2 mount F +GLIBC_2.2 mprobe F +GLIBC_2.2 mprotect F +GLIBC_2.2 mrand48 F +GLIBC_2.2 mrand48_r F +GLIBC_2.2 mremap F +GLIBC_2.2 msgctl F +GLIBC_2.2 msgget F +GLIBC_2.2 msgrcv F +GLIBC_2.2 msgsnd F +GLIBC_2.2 msync F +GLIBC_2.2 mtrace F +GLIBC_2.2 munlock F +GLIBC_2.2 munlockall F +GLIBC_2.2 munmap F +GLIBC_2.2 muntrace F +GLIBC_2.2 nanosleep F +GLIBC_2.2 netname2host F +GLIBC_2.2 netname2user F +GLIBC_2.2 nfsservctl F +GLIBC_2.2 nftw F +GLIBC_2.2 nftw64 F +GLIBC_2.2 ngettext F +GLIBC_2.2 nice F +GLIBC_2.2 nl_langinfo F +GLIBC_2.2 nrand48 F +GLIBC_2.2 nrand48_r F +GLIBC_2.2 ntohl F +GLIBC_2.2 ntohs F +GLIBC_2.2 ntp_adjtime F +GLIBC_2.2 ntp_gettime F +GLIBC_2.2 obstack_alloc_failed_handler D 0x8 +GLIBC_2.2 obstack_exit_failure D 0x4 +GLIBC_2.2 obstack_free F +GLIBC_2.2 obstack_printf F +GLIBC_2.2 obstack_vprintf F +GLIBC_2.2 on_exit F +GLIBC_2.2 open F +GLIBC_2.2 open64 F +GLIBC_2.2 open_memstream F +GLIBC_2.2 opendir F +GLIBC_2.2 openlog F +GLIBC_2.2 optarg D 0x8 +GLIBC_2.2 opterr D 0x4 +GLIBC_2.2 optind D 0x4 +GLIBC_2.2 optopt D 0x4 +GLIBC_2.2 parse_printf_format F +GLIBC_2.2 passwd2des F +GLIBC_2.2 pathconf F +GLIBC_2.2 pause F +GLIBC_2.2 pclose F +GLIBC_2.2 perror F +GLIBC_2.2 personality F +GLIBC_2.2 pipe F +GLIBC_2.2 pmap_getmaps F +GLIBC_2.2 pmap_getport F +GLIBC_2.2 pmap_rmtcall F +GLIBC_2.2 pmap_set F +GLIBC_2.2 pmap_unset F +GLIBC_2.2 poll F +GLIBC_2.2 popen F +GLIBC_2.2 posix_fadvise F +GLIBC_2.2 posix_fadvise64 F +GLIBC_2.2 posix_fallocate F +GLIBC_2.2 posix_fallocate64 F +GLIBC_2.2 posix_madvise F +GLIBC_2.2 posix_memalign F +GLIBC_2.2 posix_spawn F +GLIBC_2.2 posix_spawn_file_actions_addclose F +GLIBC_2.2 posix_spawn_file_actions_adddup2 F +GLIBC_2.2 posix_spawn_file_actions_addopen F +GLIBC_2.2 posix_spawn_file_actions_destroy F +GLIBC_2.2 posix_spawn_file_actions_init F +GLIBC_2.2 posix_spawnattr_destroy F +GLIBC_2.2 posix_spawnattr_getflags F +GLIBC_2.2 posix_spawnattr_getpgroup F +GLIBC_2.2 posix_spawnattr_getschedparam F +GLIBC_2.2 posix_spawnattr_getschedpolicy F +GLIBC_2.2 posix_spawnattr_getsigdefault F +GLIBC_2.2 posix_spawnattr_getsigmask F +GLIBC_2.2 posix_spawnattr_init F +GLIBC_2.2 posix_spawnattr_setflags F +GLIBC_2.2 posix_spawnattr_setpgroup F +GLIBC_2.2 posix_spawnattr_setschedparam F +GLIBC_2.2 posix_spawnattr_setschedpolicy F +GLIBC_2.2 posix_spawnattr_setsigdefault F +GLIBC_2.2 posix_spawnattr_setsigmask F +GLIBC_2.2 posix_spawnp F +GLIBC_2.2 prctl F +GLIBC_2.2 pread F +GLIBC_2.2 pread64 F +GLIBC_2.2 printf F +GLIBC_2.2 printf_size F +GLIBC_2.2 printf_size_info F +GLIBC_2.2 profil F +GLIBC_2.2 profil_counter F +GLIBC_2.2 program_invocation_name D 0x8 +GLIBC_2.2 program_invocation_short_name D 0x8 +GLIBC_2.2 pselect F +GLIBC_2.2 psignal F +GLIBC_2.2 pthread_attr_destroy F +GLIBC_2.2 pthread_attr_getdetachstate F +GLIBC_2.2 pthread_attr_getinheritsched F +GLIBC_2.2 pthread_attr_getschedparam F +GLIBC_2.2 pthread_attr_getschedpolicy F +GLIBC_2.2 pthread_attr_getscope F +GLIBC_2.2 pthread_attr_init F +GLIBC_2.2 pthread_attr_setdetachstate F +GLIBC_2.2 pthread_attr_setinheritsched F +GLIBC_2.2 pthread_attr_setschedparam F +GLIBC_2.2 pthread_attr_setschedpolicy F +GLIBC_2.2 pthread_attr_setscope F +GLIBC_2.2 pthread_cond_broadcast F +GLIBC_2.2 pthread_cond_destroy F +GLIBC_2.2 pthread_cond_init F +GLIBC_2.2 pthread_cond_signal F +GLIBC_2.2 pthread_cond_timedwait F +GLIBC_2.2 pthread_cond_wait F +GLIBC_2.2 pthread_condattr_destroy F +GLIBC_2.2 pthread_condattr_init F +GLIBC_2.2 pthread_equal F +GLIBC_2.2 pthread_exit F +GLIBC_2.2 pthread_getschedparam F +GLIBC_2.2 pthread_mutex_destroy F +GLIBC_2.2 pthread_mutex_init F +GLIBC_2.2 pthread_mutex_lock F +GLIBC_2.2 pthread_mutex_unlock F +GLIBC_2.2 pthread_self F +GLIBC_2.2 pthread_setcancelstate F +GLIBC_2.2 pthread_setcanceltype F +GLIBC_2.2 pthread_setschedparam F +GLIBC_2.2 ptrace F +GLIBC_2.2 ptsname F +GLIBC_2.2 ptsname_r F +GLIBC_2.2 putc F +GLIBC_2.2 putc_unlocked F +GLIBC_2.2 putchar F +GLIBC_2.2 putchar_unlocked F +GLIBC_2.2 putenv F +GLIBC_2.2 putgrent F +GLIBC_2.2 putmsg F +GLIBC_2.2 putpmsg F +GLIBC_2.2 putpwent F +GLIBC_2.2 puts F +GLIBC_2.2 putspent F +GLIBC_2.2 pututline F +GLIBC_2.2 pututxline F +GLIBC_2.2 putw F +GLIBC_2.2 putwc F +GLIBC_2.2 putwc_unlocked F +GLIBC_2.2 putwchar F +GLIBC_2.2 putwchar_unlocked F +GLIBC_2.2 pvalloc F +GLIBC_2.2 pwrite F +GLIBC_2.2 pwrite64 F +GLIBC_2.2 qecvt F +GLIBC_2.2 qecvt_r F +GLIBC_2.2 qfcvt F +GLIBC_2.2 qfcvt_r F +GLIBC_2.2 qgcvt F +GLIBC_2.2 qsort F +GLIBC_2.2 query_module F +GLIBC_2.2 quotactl F +GLIBC_2.2 raise F +GLIBC_2.2 rand F +GLIBC_2.2 rand_r F +GLIBC_2.2 random F +GLIBC_2.2 random_r F +GLIBC_2.2 rawmemchr F +GLIBC_2.2 rcmd F +GLIBC_2.2 rcmd_af F +GLIBC_2.2 re_comp F +GLIBC_2.2 re_compile_fastmap F +GLIBC_2.2 re_compile_pattern F +GLIBC_2.2 re_exec F +GLIBC_2.2 re_match F +GLIBC_2.2 re_match_2 F +GLIBC_2.2 re_max_failures D 0x4 +GLIBC_2.2 re_search F +GLIBC_2.2 re_search_2 F +GLIBC_2.2 re_set_registers F +GLIBC_2.2 re_set_syntax F +GLIBC_2.2 re_syntax_options D 0x8 +GLIBC_2.2 read F +GLIBC_2.2 readdir F +GLIBC_2.2 readdir64 F +GLIBC_2.2 readdir64_r F +GLIBC_2.2 readdir_r F +GLIBC_2.2 readlink F +GLIBC_2.2 readv F +GLIBC_2.2 realloc F +GLIBC_2.2 realpath F +GLIBC_2.2 reboot F +GLIBC_2.2 recv F +GLIBC_2.2 recvfrom F +GLIBC_2.2 recvmsg F +GLIBC_2.2 regcomp F +GLIBC_2.2 regerror F +GLIBC_2.2 regexec F +GLIBC_2.2 regfree F +GLIBC_2.2 register_printf_function F +GLIBC_2.2 registerrpc F +GLIBC_2.2 remove F +GLIBC_2.2 remque F +GLIBC_2.2 rename F +GLIBC_2.2 revoke F +GLIBC_2.2 rewind F +GLIBC_2.2 rewinddir F +GLIBC_2.2 rexec F +GLIBC_2.2 rexec_af F +GLIBC_2.2 rexecoptions D 0x4 +GLIBC_2.2 rindex F +GLIBC_2.2 rmdir F +GLIBC_2.2 rpc_createerr D 0x20 +GLIBC_2.2 rpmatch F +GLIBC_2.2 rresvport F +GLIBC_2.2 rresvport_af F +GLIBC_2.2 rtime F +GLIBC_2.2 ruserok F +GLIBC_2.2 ruserok_af F +GLIBC_2.2 ruserpass F +GLIBC_2.2 sbrk F +GLIBC_2.2 scalbn F +GLIBC_2.2 scalbnf F +GLIBC_2.2 scalbnl F +GLIBC_2.2 scandir F +GLIBC_2.2 scandir64 F +GLIBC_2.2 scanf F +GLIBC_2.2 sched_get_priority_max F +GLIBC_2.2 sched_get_priority_min F +GLIBC_2.2 sched_getparam F +GLIBC_2.2 sched_getscheduler F +GLIBC_2.2 sched_rr_get_interval F +GLIBC_2.2 sched_setparam F +GLIBC_2.2 sched_setscheduler F +GLIBC_2.2 sched_yield F +GLIBC_2.2 seed48 F +GLIBC_2.2 seed48_r F +GLIBC_2.2 seekdir F +GLIBC_2.2 select F +GLIBC_2.2 semctl F +GLIBC_2.2 semget F +GLIBC_2.2 semop F +GLIBC_2.2 send F +GLIBC_2.2 sendfile F +GLIBC_2.2 sendmsg F +GLIBC_2.2 sendto F +GLIBC_2.2 setaliasent F +GLIBC_2.2 setbuf F +GLIBC_2.2 setbuffer F +GLIBC_2.2 setcontext F +GLIBC_2.2 setdomainname F +GLIBC_2.2 setegid F +GLIBC_2.2 setenv F +GLIBC_2.2 seteuid F +GLIBC_2.2 setfsent F +GLIBC_2.2 setfsgid F +GLIBC_2.2 setfsuid F +GLIBC_2.2 setgid F +GLIBC_2.2 setgrent F +GLIBC_2.2 setgroups F +GLIBC_2.2 sethostent F +GLIBC_2.2 sethostid F +GLIBC_2.2 sethostname F +GLIBC_2.2 setitimer F +GLIBC_2.2 setjmp F +GLIBC_2.2 setlinebuf F +GLIBC_2.2 setlocale F +GLIBC_2.2 setlogin F +GLIBC_2.2 setlogmask F +GLIBC_2.2 setmntent F +GLIBC_2.2 setnetent F +GLIBC_2.2 setnetgrent F +GLIBC_2.2 setpgid F +GLIBC_2.2 setpgrp F +GLIBC_2.2 setpriority F +GLIBC_2.2 setprotoent F +GLIBC_2.2 setpwent F +GLIBC_2.2 setregid F +GLIBC_2.2 setresgid F +GLIBC_2.2 setresuid F +GLIBC_2.2 setreuid F +GLIBC_2.2 setrlimit F +GLIBC_2.2 setrlimit64 F +GLIBC_2.2 setrpcent F +GLIBC_2.2 setservent F +GLIBC_2.2 setsid F +GLIBC_2.2 setsockopt F +GLIBC_2.2 setspent F +GLIBC_2.2 setstate F +GLIBC_2.2 setstate_r F +GLIBC_2.2 settimeofday F +GLIBC_2.2 setttyent F +GLIBC_2.2 setuid F +GLIBC_2.2 setusershell F +GLIBC_2.2 setutent F +GLIBC_2.2 setutxent F +GLIBC_2.2 setvbuf F +GLIBC_2.2 sgetspent F +GLIBC_2.2 sgetspent_r F +GLIBC_2.2 shmat F +GLIBC_2.2 shmctl F +GLIBC_2.2 shmdt F +GLIBC_2.2 shmget F +GLIBC_2.2 shutdown F +GLIBC_2.2 sigaction F +GLIBC_2.2 sigaddset F +GLIBC_2.2 sigaltstack F +GLIBC_2.2 sigandset F +GLIBC_2.2 sigblock F +GLIBC_2.2 sigdelset F +GLIBC_2.2 sigemptyset F +GLIBC_2.2 sigfillset F +GLIBC_2.2 siggetmask F +GLIBC_2.2 sighold F +GLIBC_2.2 sigignore F +GLIBC_2.2 siginterrupt F +GLIBC_2.2 sigisemptyset F +GLIBC_2.2 sigismember F +GLIBC_2.2 siglongjmp F +GLIBC_2.2 signal F +GLIBC_2.2 sigorset F +GLIBC_2.2 sigpause F +GLIBC_2.2 sigpending F +GLIBC_2.2 sigprocmask F +GLIBC_2.2 sigqueue F +GLIBC_2.2 sigrelse F +GLIBC_2.2 sigreturn F +GLIBC_2.2 sigset F +GLIBC_2.2 sigsetmask F +GLIBC_2.2 sigstack F +GLIBC_2.2 sigsuspend F +GLIBC_2.2 sigtimedwait F +GLIBC_2.2 sigvec F +GLIBC_2.2 sigwait F +GLIBC_2.2 sigwaitinfo F +GLIBC_2.2 sleep F +GLIBC_2.2 snprintf F +GLIBC_2.2 socket F +GLIBC_2.2 socketpair F +GLIBC_2.2 sprintf F +GLIBC_2.2 srand F +GLIBC_2.2 srand48 F +GLIBC_2.2 srand48_r F +GLIBC_2.2 srandom F +GLIBC_2.2 srandom_r F +GLIBC_2.2 sscanf F +GLIBC_2.2 ssignal F +GLIBC_2.2 sstk F +GLIBC_2.2 statfs F +GLIBC_2.2 statfs64 F +GLIBC_2.2 statvfs F +GLIBC_2.2 statvfs64 F +GLIBC_2.2 stderr D 0x8 +GLIBC_2.2 stdin D 0x8 +GLIBC_2.2 stdout D 0x8 +GLIBC_2.2 step F +GLIBC_2.2 stime F +GLIBC_2.2 stpcpy F +GLIBC_2.2 stpncpy F +GLIBC_2.2 strcasecmp F +GLIBC_2.2 strcasestr F +GLIBC_2.2 strcat F +GLIBC_2.2 strchr F +GLIBC_2.2 strchrnul F +GLIBC_2.2 strcmp F +GLIBC_2.2 strcoll F +GLIBC_2.2 strcpy F +GLIBC_2.2 strcspn F +GLIBC_2.2 strdup F +GLIBC_2.2 strerror F +GLIBC_2.2 strerror_r F +GLIBC_2.2 strfmon F +GLIBC_2.2 strfry F +GLIBC_2.2 strftime F +GLIBC_2.2 strlen F +GLIBC_2.2 strncasecmp F +GLIBC_2.2 strncat F +GLIBC_2.2 strncmp F +GLIBC_2.2 strncpy F +GLIBC_2.2 strndup F +GLIBC_2.2 strnlen F +GLIBC_2.2 strpbrk F +GLIBC_2.2 strptime F +GLIBC_2.2 strrchr F +GLIBC_2.2 strsep F +GLIBC_2.2 strsignal F +GLIBC_2.2 strspn F +GLIBC_2.2 strstr F +GLIBC_2.2 strtod F +GLIBC_2.2 strtof F +GLIBC_2.2 strtoimax F +GLIBC_2.2 strtok F +GLIBC_2.2 strtok_r F +GLIBC_2.2 strtol F +GLIBC_2.2 strtold F +GLIBC_2.2 strtoll F +GLIBC_2.2 strtoq F +GLIBC_2.2 strtoul F +GLIBC_2.2 strtoull F +GLIBC_2.2 strtoumax F +GLIBC_2.2 strtouq F +GLIBC_2.2 strverscmp F +GLIBC_2.2 strxfrm F +GLIBC_2.2 stty F +GLIBC_2.2 svc_exit F +GLIBC_2.2 svc_fdset D 0x80 +GLIBC_2.2 svc_getreq F +GLIBC_2.2 svc_getreq_common F +GLIBC_2.2 svc_getreq_poll F +GLIBC_2.2 svc_getreqset F +GLIBC_2.2 svc_max_pollfd D 0x4 +GLIBC_2.2 svc_pollfd D 0x8 +GLIBC_2.2 svc_register F +GLIBC_2.2 svc_run F +GLIBC_2.2 svc_sendreply F +GLIBC_2.2 svc_unregister F +GLIBC_2.2 svcauthdes_stats D 0x18 +GLIBC_2.2 svcerr_auth F +GLIBC_2.2 svcerr_decode F +GLIBC_2.2 svcerr_noproc F +GLIBC_2.2 svcerr_noprog F +GLIBC_2.2 svcerr_progvers F +GLIBC_2.2 svcerr_systemerr F +GLIBC_2.2 svcerr_weakauth F +GLIBC_2.2 svcfd_create F +GLIBC_2.2 svcraw_create F +GLIBC_2.2 svctcp_create F +GLIBC_2.2 svcudp_bufcreate F +GLIBC_2.2 svcudp_create F +GLIBC_2.2 svcudp_enablecache F +GLIBC_2.2 svcunix_create F +GLIBC_2.2 svcunixfd_create F +GLIBC_2.2 swab F +GLIBC_2.2 swapcontext F +GLIBC_2.2 swapoff F +GLIBC_2.2 swapon F +GLIBC_2.2 swprintf F +GLIBC_2.2 swscanf F +GLIBC_2.2 symlink F +GLIBC_2.2 sync F +GLIBC_2.2 sys_errlist D 0x3f8 +GLIBC_2.2 sys_nerr D 0x4 +GLIBC_2.2 sys_sigabbrev D 0x200 +GLIBC_2.2 sys_siglist D 0x200 +GLIBC_2.2 syscall F +GLIBC_2.2 sysconf F +GLIBC_2.2 sysctl F +GLIBC_2.2 sysinfo F +GLIBC_2.2 syslog F +GLIBC_2.2 system F +GLIBC_2.2 sysv_signal F +GLIBC_2.2 tcdrain F +GLIBC_2.2 tcflow F +GLIBC_2.2 tcflush F +GLIBC_2.2 tcgetattr F +GLIBC_2.2 tcgetpgrp F +GLIBC_2.2 tcgetsid F +GLIBC_2.2 tcsendbreak F +GLIBC_2.2 tcsetattr F +GLIBC_2.2 tcsetpgrp F +GLIBC_2.2 tdelete F +GLIBC_2.2 tdestroy F +GLIBC_2.2 telldir F +GLIBC_2.2 tempnam F +GLIBC_2.2 textdomain F +GLIBC_2.2 tfind F +GLIBC_2.2 time F +GLIBC_2.2 timegm F +GLIBC_2.2 timelocal F +GLIBC_2.2 times F +GLIBC_2.2 timezone D 0x8 +GLIBC_2.2 tmpfile F +GLIBC_2.2 tmpfile64 F +GLIBC_2.2 tmpnam F +GLIBC_2.2 tmpnam_r F +GLIBC_2.2 toascii F +GLIBC_2.2 tolower F +GLIBC_2.2 toupper F +GLIBC_2.2 towctrans F +GLIBC_2.2 towlower F +GLIBC_2.2 towupper F +GLIBC_2.2 tr_break F +GLIBC_2.2 truncate F +GLIBC_2.2 truncate64 F +GLIBC_2.2 tsearch F +GLIBC_2.2 ttyname F +GLIBC_2.2 ttyname_r F +GLIBC_2.2 ttyslot F +GLIBC_2.2 twalk F +GLIBC_2.2 tzname D 0x10 +GLIBC_2.2 tzset F +GLIBC_2.2 ualarm F +GLIBC_2.2 ulckpwdf F +GLIBC_2.2 ulimit F +GLIBC_2.2 umask F +GLIBC_2.2 umount F +GLIBC_2.2 umount2 F +GLIBC_2.2 uname F +GLIBC_2.2 ungetc F +GLIBC_2.2 ungetwc F +GLIBC_2.2 unlink F +GLIBC_2.2 unlockpt F +GLIBC_2.2 unsetenv F +GLIBC_2.2 updwtmp F +GLIBC_2.2 updwtmpx F +GLIBC_2.2 uselib F +GLIBC_2.2 user2netname F +GLIBC_2.2 usleep F +GLIBC_2.2 ustat F +GLIBC_2.2 utime F +GLIBC_2.2 utimes F +GLIBC_2.2 utmpname F +GLIBC_2.2 utmpxname F +GLIBC_2.2 valloc F +GLIBC_2.2 vasprintf F +GLIBC_2.2 vdprintf F +GLIBC_2.2 verr F +GLIBC_2.2 verrx F +GLIBC_2.2 versionsort F +GLIBC_2.2 versionsort64 F +GLIBC_2.2 vfork F +GLIBC_2.2 vfprintf F +GLIBC_2.2 vfscanf F +GLIBC_2.2 vfwprintf F +GLIBC_2.2 vfwscanf F +GLIBC_2.2 vhangup F +GLIBC_2.2 vlimit F +GLIBC_2.2 vprintf F +GLIBC_2.2 vscanf F +GLIBC_2.2 vsnprintf F +GLIBC_2.2 vsprintf F +GLIBC_2.2 vsscanf F +GLIBC_2.2 vswprintf F +GLIBC_2.2 vswscanf F +GLIBC_2.2 vsyslog F +GLIBC_2.2 vtimes F +GLIBC_2.2 vwarn F +GLIBC_2.2 vwarnx F +GLIBC_2.2 vwprintf F +GLIBC_2.2 vwscanf F +GLIBC_2.2 wait F +GLIBC_2.2 wait3 F +GLIBC_2.2 wait4 F +GLIBC_2.2 waitid F +GLIBC_2.2 waitpid F +GLIBC_2.2 warn F +GLIBC_2.2 warnx F +GLIBC_2.2 wcpcpy F +GLIBC_2.2 wcpncpy F +GLIBC_2.2 wcrtomb F +GLIBC_2.2 wcscasecmp F +GLIBC_2.2 wcscat F +GLIBC_2.2 wcschr F +GLIBC_2.2 wcschrnul F +GLIBC_2.2 wcscmp F +GLIBC_2.2 wcscoll F +GLIBC_2.2 wcscpy F +GLIBC_2.2 wcscspn F +GLIBC_2.2 wcsdup F +GLIBC_2.2 wcsftime F +GLIBC_2.2 wcslen F +GLIBC_2.2 wcsncasecmp F +GLIBC_2.2 wcsncat F +GLIBC_2.2 wcsncmp F +GLIBC_2.2 wcsncpy F +GLIBC_2.2 wcsnlen F +GLIBC_2.2 wcsnrtombs F +GLIBC_2.2 wcspbrk F +GLIBC_2.2 wcsrchr F +GLIBC_2.2 wcsrtombs F +GLIBC_2.2 wcsspn F +GLIBC_2.2 wcsstr F +GLIBC_2.2 wcstod F +GLIBC_2.2 wcstof F +GLIBC_2.2 wcstoimax F +GLIBC_2.2 wcstok F +GLIBC_2.2 wcstol F +GLIBC_2.2 wcstold F +GLIBC_2.2 wcstoll F +GLIBC_2.2 wcstombs F +GLIBC_2.2 wcstoq F +GLIBC_2.2 wcstoul F +GLIBC_2.2 wcstoull F +GLIBC_2.2 wcstoumax F +GLIBC_2.2 wcstouq F +GLIBC_2.2 wcswcs F +GLIBC_2.2 wcswidth F +GLIBC_2.2 wcsxfrm F +GLIBC_2.2 wctob F +GLIBC_2.2 wctomb F +GLIBC_2.2 wctrans F +GLIBC_2.2 wctype F +GLIBC_2.2 wcwidth F +GLIBC_2.2 wmemchr F +GLIBC_2.2 wmemcmp F +GLIBC_2.2 wmemcpy F +GLIBC_2.2 wmemmove F +GLIBC_2.2 wmempcpy F +GLIBC_2.2 wmemset F +GLIBC_2.2 wordexp F +GLIBC_2.2 wordfree F +GLIBC_2.2 wprintf F +GLIBC_2.2 write F +GLIBC_2.2 writev F +GLIBC_2.2 wscanf F +GLIBC_2.2 xdecrypt F +GLIBC_2.2 xdr_accepted_reply F +GLIBC_2.2 xdr_array F +GLIBC_2.2 xdr_authdes_cred F +GLIBC_2.2 xdr_authdes_verf F +GLIBC_2.2 xdr_authunix_parms F +GLIBC_2.2 xdr_bool F +GLIBC_2.2 xdr_bytes F +GLIBC_2.2 xdr_callhdr F +GLIBC_2.2 xdr_callmsg F +GLIBC_2.2 xdr_char F +GLIBC_2.2 xdr_cryptkeyarg F +GLIBC_2.2 xdr_cryptkeyarg2 F +GLIBC_2.2 xdr_cryptkeyres F +GLIBC_2.2 xdr_des_block F +GLIBC_2.2 xdr_double F +GLIBC_2.2 xdr_enum F +GLIBC_2.2 xdr_float F +GLIBC_2.2 xdr_free F +GLIBC_2.2 xdr_getcredres F +GLIBC_2.2 xdr_hyper F +GLIBC_2.2 xdr_int F +GLIBC_2.2 xdr_int16_t F +GLIBC_2.2 xdr_int32_t F +GLIBC_2.2 xdr_int64_t F +GLIBC_2.2 xdr_int8_t F +GLIBC_2.2 xdr_key_netstarg F +GLIBC_2.2 xdr_key_netstres F +GLIBC_2.2 xdr_keybuf F +GLIBC_2.2 xdr_keystatus F +GLIBC_2.2 xdr_long F +GLIBC_2.2 xdr_longlong_t F +GLIBC_2.2 xdr_netnamestr F +GLIBC_2.2 xdr_netobj F +GLIBC_2.2 xdr_opaque F +GLIBC_2.2 xdr_opaque_auth F +GLIBC_2.2 xdr_pmap F +GLIBC_2.2 xdr_pmaplist F +GLIBC_2.2 xdr_pointer F +GLIBC_2.2 xdr_reference F +GLIBC_2.2 xdr_rejected_reply F +GLIBC_2.2 xdr_replymsg F +GLIBC_2.2 xdr_rmtcall_args F +GLIBC_2.2 xdr_rmtcallres F +GLIBC_2.2 xdr_short F +GLIBC_2.2 xdr_sizeof F +GLIBC_2.2 xdr_string F +GLIBC_2.2 xdr_u_char F +GLIBC_2.2 xdr_u_hyper F +GLIBC_2.2 xdr_u_int F +GLIBC_2.2 xdr_u_long F +GLIBC_2.2 xdr_u_longlong_t F +GLIBC_2.2 xdr_u_short F +GLIBC_2.2 xdr_uint16_t F +GLIBC_2.2 xdr_uint32_t F +GLIBC_2.2 xdr_uint64_t F +GLIBC_2.2 xdr_uint8_t F +GLIBC_2.2 xdr_union F +GLIBC_2.2 xdr_unixcred F +GLIBC_2.2 xdr_vector F +GLIBC_2.2 xdr_void F +GLIBC_2.2 xdr_wrapstring F +GLIBC_2.2 xdrmem_create F +GLIBC_2.2 xdrrec_create F +GLIBC_2.2 xdrrec_endofrecord F +GLIBC_2.2 xdrrec_eof F +GLIBC_2.2 xdrrec_skiprecord F +GLIBC_2.2 xdrstdio_create F +GLIBC_2.2 xencrypt F +GLIBC_2.2 xprt_register F +GLIBC_2.2 xprt_unregister F +GLIBC_2.2.1 GLIBC_2.2.1 A +GLIBC_2.2.1 pivot_root F +GLIBC_2.2.1 posix_openpt F +GLIBC_2.2.2 GLIBC_2.2.2 A +GLIBC_2.2.2 __nss_hostname_digits_dots F +GLIBC_2.2.2 wordexp F +GLIBC_2.2.3 GLIBC_2.2.3 A +GLIBC_2.2.3 __rpc_thread_createerr F +GLIBC_2.2.3 __rpc_thread_svc_fdset F +GLIBC_2.2.3 __rpc_thread_svc_max_pollfd F +GLIBC_2.2.3 __rpc_thread_svc_pollfd F +GLIBC_2.2.3 fnmatch F +GLIBC_2.2.3 sprofil F +GLIBC_2.2.4 GLIBC_2.2.4 A +GLIBC_2.2.4 dl_iterate_phdr F +GLIBC_2.2.4 getgrouplist F +GLIBC_2.2.4 sockatmark F +GLIBC_2.2.6 GLIBC_2.2.6 A +GLIBC_2.2.6 __nanosleep F +GLIBC_2.22 GLIBC_2.22 A +GLIBC_2.22 fmemopen F +GLIBC_2.23 GLIBC_2.23 A +GLIBC_2.23 fts64_children F +GLIBC_2.23 fts64_close F +GLIBC_2.23 fts64_open F +GLIBC_2.23 fts64_read F +GLIBC_2.23 fts64_set F +GLIBC_2.24 GLIBC_2.24 A +GLIBC_2.24 quick_exit F +GLIBC_2.25 GLIBC_2.25 A +GLIBC_2.25 __explicit_bzero_chk F +GLIBC_2.25 explicit_bzero F +GLIBC_2.25 getentropy F +GLIBC_2.25 getrandom F +GLIBC_2.25 strfromd F +GLIBC_2.25 strfromf F +GLIBC_2.25 strfroml F +GLIBC_2.26 GLIBC_2.26 A +GLIBC_2.26 preadv2 F +GLIBC_2.26 preadv64v2 F +GLIBC_2.26 pwritev2 F +GLIBC_2.26 pwritev64v2 F +GLIBC_2.26 reallocarray F +GLIBC_2.3 GLIBC_2.3 A +GLIBC_2.3 __ctype_b_loc F +GLIBC_2.3 __ctype_tolower_loc F +GLIBC_2.3 __ctype_toupper_loc F +GLIBC_2.3 __isctype F +GLIBC_2.3 __strftime_l F +GLIBC_2.3 __uselocale F +GLIBC_2.3 __wcsftime_l F +GLIBC_2.3 _sys_errlist D 0x400 +GLIBC_2.3 _sys_nerr D 0x4 +GLIBC_2.3 duplocale F +GLIBC_2.3 fgetxattr F +GLIBC_2.3 flistxattr F +GLIBC_2.3 freeifaddrs F +GLIBC_2.3 freelocale F +GLIBC_2.3 fremovexattr F +GLIBC_2.3 fsetxattr F +GLIBC_2.3 futimes F +GLIBC_2.3 getifaddrs F +GLIBC_2.3 getxattr F +GLIBC_2.3 isalnum_l F +GLIBC_2.3 isalpha_l F +GLIBC_2.3 isblank_l F +GLIBC_2.3 iscntrl_l F +GLIBC_2.3 isctype F +GLIBC_2.3 isdigit_l F +GLIBC_2.3 isgraph_l F +GLIBC_2.3 islower_l F +GLIBC_2.3 isprint_l F +GLIBC_2.3 ispunct_l F +GLIBC_2.3 isspace_l F +GLIBC_2.3 isupper_l F +GLIBC_2.3 iswalnum_l F +GLIBC_2.3 iswalpha_l F +GLIBC_2.3 iswblank_l F +GLIBC_2.3 iswcntrl_l F +GLIBC_2.3 iswctype_l F +GLIBC_2.3 iswdigit_l F +GLIBC_2.3 iswgraph_l F +GLIBC_2.3 iswlower_l F +GLIBC_2.3 iswprint_l F +GLIBC_2.3 iswpunct_l F +GLIBC_2.3 iswspace_l F +GLIBC_2.3 iswupper_l F +GLIBC_2.3 iswxdigit_l F +GLIBC_2.3 isxdigit_l F +GLIBC_2.3 lgetxattr F +GLIBC_2.3 listxattr F +GLIBC_2.3 llistxattr F +GLIBC_2.3 lremovexattr F +GLIBC_2.3 lsetxattr F +GLIBC_2.3 lutimes F +GLIBC_2.3 newlocale F +GLIBC_2.3 nl_langinfo_l F +GLIBC_2.3 readahead F +GLIBC_2.3 realpath F +GLIBC_2.3 removexattr F +GLIBC_2.3 sendfile64 F +GLIBC_2.3 setxattr F +GLIBC_2.3 strcasecmp_l F +GLIBC_2.3 strcoll_l F +GLIBC_2.3 strfmon_l F +GLIBC_2.3 strftime_l F +GLIBC_2.3 strncasecmp_l F +GLIBC_2.3 strtod_l F +GLIBC_2.3 strtof_l F +GLIBC_2.3 strtol_l F +GLIBC_2.3 strtold_l F +GLIBC_2.3 strtoul_l F +GLIBC_2.3 strxfrm_l F +GLIBC_2.3 sys_errlist D 0x400 +GLIBC_2.3 sys_nerr D 0x4 +GLIBC_2.3 tolower_l F +GLIBC_2.3 toupper_l F +GLIBC_2.3 towctrans_l F +GLIBC_2.3 towlower_l F +GLIBC_2.3 towupper_l F +GLIBC_2.3 uselocale F +GLIBC_2.3 wcscasecmp_l F +GLIBC_2.3 wcscoll_l F +GLIBC_2.3 wcsftime_l F +GLIBC_2.3 wcsncasecmp_l F +GLIBC_2.3 wcstod_l F +GLIBC_2.3 wcstof_l F +GLIBC_2.3 wcstol_l F +GLIBC_2.3 wcstold_l F +GLIBC_2.3 wcstoll_l F +GLIBC_2.3 wcstoul_l F +GLIBC_2.3 wcstoull_l F +GLIBC_2.3 wcsxfrm_l F +GLIBC_2.3 wctrans_l F +GLIBC_2.3 wctype_l F +GLIBC_2.3.2 GLIBC_2.3.2 A +GLIBC_2.3.2 __register_atfork F +GLIBC_2.3.2 epoll_create F +GLIBC_2.3.2 epoll_ctl F +GLIBC_2.3.2 epoll_wait F +GLIBC_2.3.2 lchmod F +GLIBC_2.3.2 pthread_cond_broadcast F +GLIBC_2.3.2 pthread_cond_destroy F +GLIBC_2.3.2 pthread_cond_init F +GLIBC_2.3.2 pthread_cond_signal F +GLIBC_2.3.2 pthread_cond_timedwait F +GLIBC_2.3.2 pthread_cond_wait F +GLIBC_2.3.2 strptime_l F +GLIBC_2.3.3 GLIBC_2.3.3 A +GLIBC_2.3.3 _sys_siglist D 0x208 +GLIBC_2.3.3 gnu_dev_major F +GLIBC_2.3.3 gnu_dev_makedev F +GLIBC_2.3.3 gnu_dev_minor F +GLIBC_2.3.3 inet6_option_alloc F +GLIBC_2.3.3 inet6_option_append F +GLIBC_2.3.3 inet6_option_find F +GLIBC_2.3.3 inet6_option_init F +GLIBC_2.3.3 inet6_option_next F +GLIBC_2.3.3 inet6_option_space F +GLIBC_2.3.3 nftw F +GLIBC_2.3.3 nftw64 F +GLIBC_2.3.3 remap_file_pages F +GLIBC_2.3.3 sched_getaffinity F +GLIBC_2.3.3 sched_setaffinity F +GLIBC_2.3.3 semtimedop F +GLIBC_2.3.3 strtoll_l F +GLIBC_2.3.3 strtoull_l F +GLIBC_2.3.3 sys_sigabbrev D 0x208 +GLIBC_2.3.3 sys_siglist D 0x208 +GLIBC_2.3.4 GLIBC_2.3.4 A +GLIBC_2.3.4 __chk_fail F +GLIBC_2.3.4 __fprintf_chk F +GLIBC_2.3.4 __gets_chk F +GLIBC_2.3.4 __memcpy_chk F +GLIBC_2.3.4 __memmove_chk F +GLIBC_2.3.4 __mempcpy_chk F +GLIBC_2.3.4 __memset_chk F +GLIBC_2.3.4 __printf_chk F +GLIBC_2.3.4 __snprintf_chk F +GLIBC_2.3.4 __sprintf_chk F +GLIBC_2.3.4 __stpcpy_chk F +GLIBC_2.3.4 __strcat_chk F +GLIBC_2.3.4 __strcpy_chk F +GLIBC_2.3.4 __strncat_chk F +GLIBC_2.3.4 __strncpy_chk F +GLIBC_2.3.4 __vfprintf_chk F +GLIBC_2.3.4 __vprintf_chk F +GLIBC_2.3.4 __vsnprintf_chk F +GLIBC_2.3.4 __vsprintf_chk F +GLIBC_2.3.4 __xpg_strerror_r F +GLIBC_2.3.4 getipv4sourcefilter F +GLIBC_2.3.4 getsourcefilter F +GLIBC_2.3.4 regexec F +GLIBC_2.3.4 sched_getaffinity F +GLIBC_2.3.4 sched_setaffinity F +GLIBC_2.3.4 setipv4sourcefilter F +GLIBC_2.3.4 setsourcefilter F +GLIBC_2.3.4 xdr_quad_t F +GLIBC_2.3.4 xdr_u_quad_t F +GLIBC_2.4 GLIBC_2.4 A +GLIBC_2.4 __confstr_chk F +GLIBC_2.4 __fgets_chk F +GLIBC_2.4 __fgets_unlocked_chk F +GLIBC_2.4 __fgetws_chk F +GLIBC_2.4 __fgetws_unlocked_chk F +GLIBC_2.4 __fwprintf_chk F +GLIBC_2.4 __fxstatat F +GLIBC_2.4 __fxstatat64 F +GLIBC_2.4 __getcwd_chk F +GLIBC_2.4 __getdomainname_chk F +GLIBC_2.4 __getgroups_chk F +GLIBC_2.4 __gethostname_chk F +GLIBC_2.4 __getlogin_r_chk F +GLIBC_2.4 __getwd_chk F +GLIBC_2.4 __mbsnrtowcs_chk F +GLIBC_2.4 __mbsrtowcs_chk F +GLIBC_2.4 __mbstowcs_chk F +GLIBC_2.4 __pread64_chk F +GLIBC_2.4 __pread_chk F +GLIBC_2.4 __ptsname_r_chk F +GLIBC_2.4 __read_chk F +GLIBC_2.4 __readlink_chk F +GLIBC_2.4 __realpath_chk F +GLIBC_2.4 __recv_chk F +GLIBC_2.4 __recvfrom_chk F +GLIBC_2.4 __stack_chk_fail F +GLIBC_2.4 __stpncpy_chk F +GLIBC_2.4 __swprintf_chk F +GLIBC_2.4 __syslog_chk F +GLIBC_2.4 __ttyname_r_chk F +GLIBC_2.4 __vfwprintf_chk F +GLIBC_2.4 __vswprintf_chk F +GLIBC_2.4 __vsyslog_chk F +GLIBC_2.4 __vwprintf_chk F +GLIBC_2.4 __wcpcpy_chk F +GLIBC_2.4 __wcpncpy_chk F +GLIBC_2.4 __wcrtomb_chk F +GLIBC_2.4 __wcscat_chk F +GLIBC_2.4 __wcscpy_chk F +GLIBC_2.4 __wcsncat_chk F +GLIBC_2.4 __wcsncpy_chk F +GLIBC_2.4 __wcsnrtombs_chk F +GLIBC_2.4 __wcsrtombs_chk F +GLIBC_2.4 __wcstombs_chk F +GLIBC_2.4 __wctomb_chk F +GLIBC_2.4 __wmemcpy_chk F +GLIBC_2.4 __wmemmove_chk F +GLIBC_2.4 __wmempcpy_chk F +GLIBC_2.4 __wmemset_chk F +GLIBC_2.4 __wprintf_chk F +GLIBC_2.4 __xmknodat F +GLIBC_2.4 _sys_errlist D 0x430 +GLIBC_2.4 _sys_nerr D 0x4 +GLIBC_2.4 eaccess F +GLIBC_2.4 faccessat F +GLIBC_2.4 fchmodat F +GLIBC_2.4 fchownat F +GLIBC_2.4 fdopendir F +GLIBC_2.4 futimesat F +GLIBC_2.4 inotify_add_watch F +GLIBC_2.4 inotify_init F +GLIBC_2.4 inotify_rm_watch F +GLIBC_2.4 linkat F +GLIBC_2.4 mkdirat F +GLIBC_2.4 mkfifoat F +GLIBC_2.4 open_wmemstream F +GLIBC_2.4 openat F +GLIBC_2.4 openat64 F +GLIBC_2.4 ppoll F +GLIBC_2.4 readlinkat F +GLIBC_2.4 renameat F +GLIBC_2.4 symlinkat F +GLIBC_2.4 sys_errlist D 0x430 +GLIBC_2.4 sys_nerr D 0x4 +GLIBC_2.4 unlinkat F +GLIBC_2.4 unshare F +GLIBC_2.5 GLIBC_2.5 A +GLIBC_2.5 __readlinkat_chk F +GLIBC_2.5 inet6_opt_append F +GLIBC_2.5 inet6_opt_find F +GLIBC_2.5 inet6_opt_finish F +GLIBC_2.5 inet6_opt_get_val F +GLIBC_2.5 inet6_opt_init F +GLIBC_2.5 inet6_opt_next F +GLIBC_2.5 inet6_opt_set_val F +GLIBC_2.5 inet6_rth_add F +GLIBC_2.5 inet6_rth_getaddr F +GLIBC_2.5 inet6_rth_init F +GLIBC_2.5 inet6_rth_reverse F +GLIBC_2.5 inet6_rth_segments F +GLIBC_2.5 inet6_rth_space F +GLIBC_2.5 splice F +GLIBC_2.5 tee F +GLIBC_2.5 vmsplice F +GLIBC_2.6 GLIBC_2.6 A +GLIBC_2.6 __sched_cpucount F +GLIBC_2.6 epoll_pwait F +GLIBC_2.6 futimens F +GLIBC_2.6 sched_getcpu F +GLIBC_2.6 strerror_l F +GLIBC_2.6 sync_file_range F +GLIBC_2.6 utimensat F +GLIBC_2.7 GLIBC_2.7 A +GLIBC_2.7 __fread_chk F +GLIBC_2.7 __fread_unlocked_chk F +GLIBC_2.7 __isoc99_fscanf F +GLIBC_2.7 __isoc99_fwscanf F +GLIBC_2.7 __isoc99_scanf F +GLIBC_2.7 __isoc99_sscanf F +GLIBC_2.7 __isoc99_swscanf F +GLIBC_2.7 __isoc99_vfscanf F +GLIBC_2.7 __isoc99_vfwscanf F +GLIBC_2.7 __isoc99_vscanf F +GLIBC_2.7 __isoc99_vsscanf F +GLIBC_2.7 __isoc99_vswscanf F +GLIBC_2.7 __isoc99_vwscanf F +GLIBC_2.7 __isoc99_wscanf F +GLIBC_2.7 __open64_2 F +GLIBC_2.7 __open_2 F +GLIBC_2.7 __openat64_2 F +GLIBC_2.7 __openat_2 F +GLIBC_2.7 __sched_cpualloc F +GLIBC_2.7 __sched_cpufree F +GLIBC_2.7 eventfd F +GLIBC_2.7 eventfd_read F +GLIBC_2.7 eventfd_write F +GLIBC_2.7 mkostemp F +GLIBC_2.7 mkostemp64 F +GLIBC_2.7 signalfd F +GLIBC_2.8 GLIBC_2.8 A +GLIBC_2.8 __asprintf_chk F +GLIBC_2.8 __dprintf_chk F +GLIBC_2.8 __obstack_printf_chk F +GLIBC_2.8 __obstack_vprintf_chk F +GLIBC_2.8 __vasprintf_chk F +GLIBC_2.8 __vdprintf_chk F +GLIBC_2.8 qsort_r F +GLIBC_2.8 timerfd_create F +GLIBC_2.8 timerfd_gettime F +GLIBC_2.8 timerfd_settime F +GLIBC_2.9 GLIBC_2.9 A +GLIBC_2.9 dup3 F +GLIBC_2.9 epoll_create1 F +GLIBC_2.9 inotify_init1 F +GLIBC_2.9 pipe2 F diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/libcrypt.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/libcrypt.abilist new file mode 100644 index 0000000000..4db2639336 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/libcrypt.abilist @@ -0,0 +1,8 @@ +GLIBC_2.0 GLIBC_2.0 A +GLIBC_2.0 crypt F +GLIBC_2.0 crypt_r F +GLIBC_2.0 encrypt F +GLIBC_2.0 encrypt_r F +GLIBC_2.0 fcrypt F +GLIBC_2.0 setkey F +GLIBC_2.0 setkey_r F diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/libdl.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/libdl.abilist new file mode 100644 index 0000000000..5536f6e0a9 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/libdl.abilist @@ -0,0 +1,14 @@ +GLIBC_2.0 GLIBC_2.0 A +GLIBC_2.0 dladdr F +GLIBC_2.0 dlclose F +GLIBC_2.0 dlerror F +GLIBC_2.0 dlopen F +GLIBC_2.0 dlsym F +GLIBC_2.1 GLIBC_2.1 A +GLIBC_2.1 dlopen F +GLIBC_2.1 dlvsym F +GLIBC_2.3.3 GLIBC_2.3.3 A +GLIBC_2.3.3 dladdr1 F +GLIBC_2.3.3 dlinfo F +GLIBC_2.3.4 GLIBC_2.3.4 A +GLIBC_2.3.4 dlmopen F diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist new file mode 100644 index 0000000000..d071835880 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist @@ -0,0 +1,464 @@ +GLIBC_2.15 GLIBC_2.15 A +GLIBC_2.15 __acos_finite F +GLIBC_2.15 __acosf_finite F +GLIBC_2.15 __acosh_finite F +GLIBC_2.15 __acoshf_finite F +GLIBC_2.15 __acoshl_finite F +GLIBC_2.15 __acosl_finite F +GLIBC_2.15 __asin_finite F +GLIBC_2.15 __asinf_finite F +GLIBC_2.15 __asinl_finite F +GLIBC_2.15 __atan2_finite F +GLIBC_2.15 __atan2f_finite F +GLIBC_2.15 __atan2l_finite F +GLIBC_2.15 __atanh_finite F +GLIBC_2.15 __atanhf_finite F +GLIBC_2.15 __atanhl_finite F +GLIBC_2.15 __cosh_finite F +GLIBC_2.15 __coshf_finite F +GLIBC_2.15 __coshl_finite F +GLIBC_2.15 __exp10_finite F +GLIBC_2.15 __exp10f_finite F +GLIBC_2.15 __exp10l_finite F +GLIBC_2.15 __exp2_finite F +GLIBC_2.15 __exp2f_finite F +GLIBC_2.15 __exp2l_finite F +GLIBC_2.15 __exp_finite F +GLIBC_2.15 __expf_finite F +GLIBC_2.15 __expl_finite F +GLIBC_2.15 __fmod_finite F +GLIBC_2.15 __fmodf_finite F +GLIBC_2.15 __fmodl_finite F +GLIBC_2.15 __gamma_r_finite F +GLIBC_2.15 __gammaf_r_finite F +GLIBC_2.15 __gammal_r_finite F +GLIBC_2.15 __hypot_finite F +GLIBC_2.15 __hypotf_finite F +GLIBC_2.15 __hypotl_finite F +GLIBC_2.15 __j0_finite F +GLIBC_2.15 __j0f_finite F +GLIBC_2.15 __j0l_finite F +GLIBC_2.15 __j1_finite F +GLIBC_2.15 __j1f_finite F +GLIBC_2.15 __j1l_finite F +GLIBC_2.15 __jn_finite F +GLIBC_2.15 __jnf_finite F +GLIBC_2.15 __jnl_finite F +GLIBC_2.15 __lgamma_r_finite F +GLIBC_2.15 __lgammaf_r_finite F +GLIBC_2.15 __lgammal_r_finite F +GLIBC_2.15 __log10_finite F +GLIBC_2.15 __log10f_finite F +GLIBC_2.15 __log10l_finite F +GLIBC_2.15 __log2_finite F +GLIBC_2.15 __log2f_finite F +GLIBC_2.15 __log2l_finite F +GLIBC_2.15 __log_finite F +GLIBC_2.15 __logf_finite F +GLIBC_2.15 __logl_finite F +GLIBC_2.15 __pow_finite F +GLIBC_2.15 __powf_finite F +GLIBC_2.15 __powl_finite F +GLIBC_2.15 __remainder_finite F +GLIBC_2.15 __remainderf_finite F +GLIBC_2.15 __remainderl_finite F +GLIBC_2.15 __scalb_finite F +GLIBC_2.15 __scalbf_finite F +GLIBC_2.15 __scalbl_finite F +GLIBC_2.15 __sinh_finite F +GLIBC_2.15 __sinhf_finite F +GLIBC_2.15 __sinhl_finite F +GLIBC_2.15 __sqrt_finite F +GLIBC_2.15 __sqrtf_finite F +GLIBC_2.15 __sqrtl_finite F +GLIBC_2.15 __y0_finite F +GLIBC_2.15 __y0f_finite F +GLIBC_2.15 __y0l_finite F +GLIBC_2.15 __y1_finite F +GLIBC_2.15 __y1f_finite F +GLIBC_2.15 __y1l_finite F +GLIBC_2.15 __yn_finite F +GLIBC_2.15 __ynf_finite F +GLIBC_2.15 __ynl_finite F +GLIBC_2.18 GLIBC_2.18 A +GLIBC_2.18 __issignaling F +GLIBC_2.18 __issignalingf F +GLIBC_2.18 __issignalingl F +GLIBC_2.2 GLIBC_2.2 A +GLIBC_2.2 _LIB_VERSION D 0x4 +GLIBC_2.2 __clog10 F +GLIBC_2.2 __clog10f F +GLIBC_2.2 __clog10l F +GLIBC_2.2 __finite F +GLIBC_2.2 __finitef F +GLIBC_2.2 __finitel F +GLIBC_2.2 __fpclassify F +GLIBC_2.2 __fpclassifyf F +GLIBC_2.2 __fpclassifyl F +GLIBC_2.2 __signbit F +GLIBC_2.2 __signbitf F +GLIBC_2.2 __signbitl F +GLIBC_2.2 acos F +GLIBC_2.2 acosf F +GLIBC_2.2 acosh F +GLIBC_2.2 acoshf F +GLIBC_2.2 acoshl F +GLIBC_2.2 acosl F +GLIBC_2.2 asin F +GLIBC_2.2 asinf F +GLIBC_2.2 asinh F +GLIBC_2.2 asinhf F +GLIBC_2.2 asinhl F +GLIBC_2.2 asinl F +GLIBC_2.2 atan F +GLIBC_2.2 atan2 F +GLIBC_2.2 atan2f F +GLIBC_2.2 atan2l F +GLIBC_2.2 atanf F +GLIBC_2.2 atanh F +GLIBC_2.2 atanhf F +GLIBC_2.2 atanhl F +GLIBC_2.2 atanl F +GLIBC_2.2 cabs F +GLIBC_2.2 cabsf F +GLIBC_2.2 cabsl F +GLIBC_2.2 cacos F +GLIBC_2.2 cacosf F +GLIBC_2.2 cacosh F +GLIBC_2.2 cacoshf F +GLIBC_2.2 cacoshl F +GLIBC_2.2 cacosl F +GLIBC_2.2 carg F +GLIBC_2.2 cargf F +GLIBC_2.2 cargl F +GLIBC_2.2 casin F +GLIBC_2.2 casinf F +GLIBC_2.2 casinh F +GLIBC_2.2 casinhf F +GLIBC_2.2 casinhl F +GLIBC_2.2 casinl F +GLIBC_2.2 catan F +GLIBC_2.2 catanf F +GLIBC_2.2 catanh F +GLIBC_2.2 catanhf F +GLIBC_2.2 catanhl F +GLIBC_2.2 catanl F +GLIBC_2.2 cbrt F +GLIBC_2.2 cbrtf F +GLIBC_2.2 cbrtl F +GLIBC_2.2 ccos F +GLIBC_2.2 ccosf F +GLIBC_2.2 ccosh F +GLIBC_2.2 ccoshf F +GLIBC_2.2 ccoshl F +GLIBC_2.2 ccosl F +GLIBC_2.2 ceil F +GLIBC_2.2 ceilf F +GLIBC_2.2 ceill F +GLIBC_2.2 cexp F +GLIBC_2.2 cexpf F +GLIBC_2.2 cexpl F +GLIBC_2.2 cimag F +GLIBC_2.2 cimagf F +GLIBC_2.2 cimagl F +GLIBC_2.2 clog F +GLIBC_2.2 clog10 F +GLIBC_2.2 clog10f F +GLIBC_2.2 clog10l F +GLIBC_2.2 clogf F +GLIBC_2.2 clogl F +GLIBC_2.2 conj F +GLIBC_2.2 conjf F +GLIBC_2.2 conjl F +GLIBC_2.2 copysign F +GLIBC_2.2 copysignf F +GLIBC_2.2 copysignl F +GLIBC_2.2 cos F +GLIBC_2.2 cosf F +GLIBC_2.2 cosh F +GLIBC_2.2 coshf F +GLIBC_2.2 coshl F +GLIBC_2.2 cosl F +GLIBC_2.2 cpow F +GLIBC_2.2 cpowf F +GLIBC_2.2 cpowl F +GLIBC_2.2 cproj F +GLIBC_2.2 cprojf F +GLIBC_2.2 cprojl F +GLIBC_2.2 creal F +GLIBC_2.2 crealf F +GLIBC_2.2 creall F +GLIBC_2.2 csin F +GLIBC_2.2 csinf F +GLIBC_2.2 csinh F +GLIBC_2.2 csinhf F +GLIBC_2.2 csinhl F +GLIBC_2.2 csinl F +GLIBC_2.2 csqrt F +GLIBC_2.2 csqrtf F +GLIBC_2.2 csqrtl F +GLIBC_2.2 ctan F +GLIBC_2.2 ctanf F +GLIBC_2.2 ctanh F +GLIBC_2.2 ctanhf F +GLIBC_2.2 ctanhl F +GLIBC_2.2 ctanl F +GLIBC_2.2 drem F +GLIBC_2.2 dremf F +GLIBC_2.2 dreml F +GLIBC_2.2 erf F +GLIBC_2.2 erfc F +GLIBC_2.2 erfcf F +GLIBC_2.2 erfcl F +GLIBC_2.2 erff F +GLIBC_2.2 erfl F +GLIBC_2.2 exp F +GLIBC_2.2 exp10 F +GLIBC_2.2 exp10f F +GLIBC_2.2 exp10l F +GLIBC_2.2 exp2 F +GLIBC_2.2 exp2f F +GLIBC_2.2 exp2l F +GLIBC_2.2 expf F +GLIBC_2.2 expl F +GLIBC_2.2 expm1 F +GLIBC_2.2 expm1f F +GLIBC_2.2 expm1l F +GLIBC_2.2 fabs F +GLIBC_2.2 fabsf F +GLIBC_2.2 fabsl F +GLIBC_2.2 fdim F +GLIBC_2.2 fdimf F +GLIBC_2.2 fdiml F +GLIBC_2.2 feclearexcept F +GLIBC_2.2 fedisableexcept F +GLIBC_2.2 feenableexcept F +GLIBC_2.2 fegetenv F +GLIBC_2.2 fegetexcept F +GLIBC_2.2 fegetexceptflag F +GLIBC_2.2 fegetround F +GLIBC_2.2 feholdexcept F +GLIBC_2.2 feraiseexcept F +GLIBC_2.2 fesetenv F +GLIBC_2.2 fesetexceptflag F +GLIBC_2.2 fesetround F +GLIBC_2.2 fetestexcept F +GLIBC_2.2 feupdateenv F +GLIBC_2.2 finite F +GLIBC_2.2 finitef F +GLIBC_2.2 finitel F +GLIBC_2.2 floor F +GLIBC_2.2 floorf F +GLIBC_2.2 floorl F +GLIBC_2.2 fma F +GLIBC_2.2 fmaf F +GLIBC_2.2 fmal F +GLIBC_2.2 fmax F +GLIBC_2.2 fmaxf F +GLIBC_2.2 fmaxl F +GLIBC_2.2 fmin F +GLIBC_2.2 fminf F +GLIBC_2.2 fminl F +GLIBC_2.2 fmod F +GLIBC_2.2 fmodf F +GLIBC_2.2 fmodl F +GLIBC_2.2 frexp F +GLIBC_2.2 frexpf F +GLIBC_2.2 frexpl F +GLIBC_2.2 gamma F +GLIBC_2.2 gammaf F +GLIBC_2.2 gammal F +GLIBC_2.2 hypot F +GLIBC_2.2 hypotf F +GLIBC_2.2 hypotl F +GLIBC_2.2 ilogb F +GLIBC_2.2 ilogbf F +GLIBC_2.2 ilogbl F +GLIBC_2.2 j0 F +GLIBC_2.2 j0f F +GLIBC_2.2 j0l F +GLIBC_2.2 j1 F +GLIBC_2.2 j1f F +GLIBC_2.2 j1l F +GLIBC_2.2 jn F +GLIBC_2.2 jnf F +GLIBC_2.2 jnl F +GLIBC_2.2 ldexp F +GLIBC_2.2 ldexpf F +GLIBC_2.2 ldexpl F +GLIBC_2.2 lgamma F +GLIBC_2.2 lgamma_r F +GLIBC_2.2 lgammaf F +GLIBC_2.2 lgammaf_r F +GLIBC_2.2 lgammal F +GLIBC_2.2 lgammal_r F +GLIBC_2.2 llrint F +GLIBC_2.2 llrintf F +GLIBC_2.2 llrintl F +GLIBC_2.2 llround F +GLIBC_2.2 llroundf F +GLIBC_2.2 llroundl F +GLIBC_2.2 log F +GLIBC_2.2 log10 F +GLIBC_2.2 log10f F +GLIBC_2.2 log10l F +GLIBC_2.2 log1p F +GLIBC_2.2 log1pf F +GLIBC_2.2 log1pl F +GLIBC_2.2 log2 F +GLIBC_2.2 log2f F +GLIBC_2.2 log2l F +GLIBC_2.2 logb F +GLIBC_2.2 logbf F +GLIBC_2.2 logbl F +GLIBC_2.2 logf F +GLIBC_2.2 logl F +GLIBC_2.2 lrint F +GLIBC_2.2 lrintf F +GLIBC_2.2 lrintl F +GLIBC_2.2 lround F +GLIBC_2.2 lroundf F +GLIBC_2.2 lroundl F +GLIBC_2.2 matherr F +GLIBC_2.2 modf F +GLIBC_2.2 modff F +GLIBC_2.2 modfl F +GLIBC_2.2 nan F +GLIBC_2.2 nanf F +GLIBC_2.2 nanl F +GLIBC_2.2 nearbyint F +GLIBC_2.2 nearbyintf F +GLIBC_2.2 nearbyintl F +GLIBC_2.2 nextafter F +GLIBC_2.2 nextafterf F +GLIBC_2.2 nextafterl F +GLIBC_2.2 nexttoward F +GLIBC_2.2 nexttowardf F +GLIBC_2.2 nexttowardl F +GLIBC_2.2 pow F +GLIBC_2.2 pow10 F +GLIBC_2.2 pow10f F +GLIBC_2.2 pow10l F +GLIBC_2.2 powf F +GLIBC_2.2 powl F +GLIBC_2.2 remainder F +GLIBC_2.2 remainderf F +GLIBC_2.2 remainderl F +GLIBC_2.2 remquo F +GLIBC_2.2 remquof F +GLIBC_2.2 remquol F +GLIBC_2.2 rint F +GLIBC_2.2 rintf F +GLIBC_2.2 rintl F +GLIBC_2.2 round F +GLIBC_2.2 roundf F +GLIBC_2.2 roundl F +GLIBC_2.2 scalb F +GLIBC_2.2 scalbf F +GLIBC_2.2 scalbl F +GLIBC_2.2 scalbln F +GLIBC_2.2 scalblnf F +GLIBC_2.2 scalblnl F +GLIBC_2.2 scalbn F +GLIBC_2.2 scalbnf F +GLIBC_2.2 scalbnl F +GLIBC_2.2 signgam D 0x4 +GLIBC_2.2 significand F +GLIBC_2.2 significandf F +GLIBC_2.2 significandl F +GLIBC_2.2 sin F +GLIBC_2.2 sincos F +GLIBC_2.2 sincosf F +GLIBC_2.2 sincosl F +GLIBC_2.2 sinf F +GLIBC_2.2 sinh F +GLIBC_2.2 sinhf F +GLIBC_2.2 sinhl F +GLIBC_2.2 sinl F +GLIBC_2.2 sqrt F +GLIBC_2.2 sqrtf F +GLIBC_2.2 sqrtl F +GLIBC_2.2 tan F +GLIBC_2.2 tanf F +GLIBC_2.2 tanh F +GLIBC_2.2 tanhf F +GLIBC_2.2 tanhl F +GLIBC_2.2 tanl F +GLIBC_2.2 tgamma F +GLIBC_2.2 tgammaf F +GLIBC_2.2 tgammal F +GLIBC_2.2 trunc F +GLIBC_2.2 truncf F +GLIBC_2.2 truncl F +GLIBC_2.2 y0 F +GLIBC_2.2 y0f F +GLIBC_2.2 y0l F +GLIBC_2.2 y1 F +GLIBC_2.2 y1f F +GLIBC_2.2 y1l F +GLIBC_2.2 yn F +GLIBC_2.2 ynf F +GLIBC_2.2 ynl F +GLIBC_2.23 GLIBC_2.23 A +GLIBC_2.23 __signgam D 0x4 +GLIBC_2.23 lgamma F +GLIBC_2.23 lgammaf F +GLIBC_2.23 lgammal F +GLIBC_2.24 GLIBC_2.24 A +GLIBC_2.24 nextdown F +GLIBC_2.24 nextdownf F +GLIBC_2.24 nextdownl F +GLIBC_2.24 nextup F +GLIBC_2.24 nextupf F +GLIBC_2.24 nextupl F +GLIBC_2.25 GLIBC_2.25 A +GLIBC_2.25 __iseqsig F +GLIBC_2.25 __iseqsigf F +GLIBC_2.25 __iseqsigl F +GLIBC_2.25 canonicalize F +GLIBC_2.25 canonicalizef F +GLIBC_2.25 canonicalizel F +GLIBC_2.25 fegetmode F +GLIBC_2.25 fesetexcept F +GLIBC_2.25 fesetmode F +GLIBC_2.25 fetestexceptflag F +GLIBC_2.25 fmaxmag F +GLIBC_2.25 fmaxmagf F +GLIBC_2.25 fmaxmagl F +GLIBC_2.25 fminmag F +GLIBC_2.25 fminmagf F +GLIBC_2.25 fminmagl F +GLIBC_2.25 fromfp F +GLIBC_2.25 fromfpf F +GLIBC_2.25 fromfpl F +GLIBC_2.25 fromfpx F +GLIBC_2.25 fromfpxf F +GLIBC_2.25 fromfpxl F +GLIBC_2.25 getpayload F +GLIBC_2.25 getpayloadf F +GLIBC_2.25 getpayloadl F +GLIBC_2.25 llogb F +GLIBC_2.25 llogbf F +GLIBC_2.25 llogbl F +GLIBC_2.25 roundeven F +GLIBC_2.25 roundevenf F +GLIBC_2.25 roundevenl F +GLIBC_2.25 setpayload F +GLIBC_2.25 setpayloadf F +GLIBC_2.25 setpayloadl F +GLIBC_2.25 setpayloadsig F +GLIBC_2.25 setpayloadsigf F +GLIBC_2.25 setpayloadsigl F +GLIBC_2.25 totalorder F +GLIBC_2.25 totalorderf F +GLIBC_2.25 totalorderl F +GLIBC_2.25 totalordermag F +GLIBC_2.25 totalordermagf F +GLIBC_2.25 totalordermagl F +GLIBC_2.25 ufromfp F +GLIBC_2.25 ufromfpf F +GLIBC_2.25 ufromfpl F +GLIBC_2.25 ufromfpx F +GLIBC_2.25 ufromfpxf F +GLIBC_2.25 ufromfpxl F +GLIBC_2.4 GLIBC_2.4 A diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/libnsl.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/libnsl.abilist new file mode 100644 index 0000000000..a23db2aeaf --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/libnsl.abilist @@ -0,0 +1,124 @@ +GLIBC_2.0 GLIBC_2.0 A +GLIBC_2.0 __yp_check F +GLIBC_2.0 xdr_domainname F +GLIBC_2.0 xdr_keydat F +GLIBC_2.0 xdr_mapname F +GLIBC_2.0 xdr_peername F +GLIBC_2.0 xdr_valdat F +GLIBC_2.0 xdr_yp_buf F +GLIBC_2.0 xdr_ypbind_binding F +GLIBC_2.0 xdr_ypbind_resp F +GLIBC_2.0 xdr_ypbind_resptype F +GLIBC_2.0 xdr_ypbind_setdom F +GLIBC_2.0 xdr_ypdelete_args F +GLIBC_2.0 xdr_ypmap_parms F +GLIBC_2.0 xdr_ypmaplist F +GLIBC_2.0 xdr_yppush_status F +GLIBC_2.0 xdr_yppushresp_xfr F +GLIBC_2.0 xdr_ypreq_key F +GLIBC_2.0 xdr_ypreq_nokey F +GLIBC_2.0 xdr_ypreq_xfr F +GLIBC_2.0 xdr_ypresp_all F +GLIBC_2.0 xdr_ypresp_key_val F +GLIBC_2.0 xdr_ypresp_maplist F +GLIBC_2.0 xdr_ypresp_master F +GLIBC_2.0 xdr_ypresp_order F +GLIBC_2.0 xdr_ypresp_val F +GLIBC_2.0 xdr_ypresp_xfr F +GLIBC_2.0 xdr_ypstat F +GLIBC_2.0 xdr_ypupdate_args F +GLIBC_2.0 xdr_ypxfrstat F +GLIBC_2.0 yp_all F +GLIBC_2.0 yp_bind F +GLIBC_2.0 yp_first F +GLIBC_2.0 yp_get_default_domain F +GLIBC_2.0 yp_maplist F +GLIBC_2.0 yp_master F +GLIBC_2.0 yp_match F +GLIBC_2.0 yp_next F +GLIBC_2.0 yp_order F +GLIBC_2.0 yp_unbind F +GLIBC_2.0 yp_update F +GLIBC_2.0 ypbinderr_string F +GLIBC_2.0 yperr_string F +GLIBC_2.0 ypprot_err F +GLIBC_2.1 GLIBC_2.1 A +GLIBC_2.1 __free_fdresult F +GLIBC_2.1 __nis_default_access F +GLIBC_2.1 __nis_default_group F +GLIBC_2.1 __nis_default_owner F +GLIBC_2.1 __nis_default_ttl F +GLIBC_2.1 __nis_finddirectory F +GLIBC_2.1 __nis_hash F +GLIBC_2.1 __nisbind_connect F +GLIBC_2.1 __nisbind_create F +GLIBC_2.1 __nisbind_destroy F +GLIBC_2.1 __nisbind_next F +GLIBC_2.1 nis_add F +GLIBC_2.1 nis_add_entry F +GLIBC_2.1 nis_addmember F +GLIBC_2.1 nis_checkpoint F +GLIBC_2.1 nis_clone_directory F +GLIBC_2.1 nis_clone_object F +GLIBC_2.1 nis_clone_result F +GLIBC_2.1 nis_creategroup F +GLIBC_2.1 nis_destroy_object F +GLIBC_2.1 nis_destroygroup F +GLIBC_2.1 nis_dir_cmp F +GLIBC_2.1 nis_domain_of F +GLIBC_2.1 nis_domain_of_r F +GLIBC_2.1 nis_first_entry F +GLIBC_2.1 nis_free_directory F +GLIBC_2.1 nis_free_object F +GLIBC_2.1 nis_free_request F +GLIBC_2.1 nis_freenames F +GLIBC_2.1 nis_freeresult F +GLIBC_2.1 nis_freeservlist F +GLIBC_2.1 nis_freetags F +GLIBC_2.1 nis_getnames F +GLIBC_2.1 nis_getservlist F +GLIBC_2.1 nis_ismember F +GLIBC_2.1 nis_leaf_of F +GLIBC_2.1 nis_leaf_of_r F +GLIBC_2.1 nis_lerror F +GLIBC_2.1 nis_list F +GLIBC_2.1 nis_local_directory F +GLIBC_2.1 nis_local_group F +GLIBC_2.1 nis_local_host F +GLIBC_2.1 nis_local_principal F +GLIBC_2.1 nis_lookup F +GLIBC_2.1 nis_mkdir F +GLIBC_2.1 nis_modify F +GLIBC_2.1 nis_modify_entry F +GLIBC_2.1 nis_name_of F +GLIBC_2.1 nis_name_of_r F +GLIBC_2.1 nis_next_entry F +GLIBC_2.1 nis_perror F +GLIBC_2.1 nis_ping F +GLIBC_2.1 nis_print_directory F +GLIBC_2.1 nis_print_entry F +GLIBC_2.1 nis_print_group F +GLIBC_2.1 nis_print_group_entry F +GLIBC_2.1 nis_print_link F +GLIBC_2.1 nis_print_object F +GLIBC_2.1 nis_print_result F +GLIBC_2.1 nis_print_rights F +GLIBC_2.1 nis_print_table F +GLIBC_2.1 nis_read_obj F +GLIBC_2.1 nis_remove F +GLIBC_2.1 nis_remove_entry F +GLIBC_2.1 nis_removemember F +GLIBC_2.1 nis_rmdir F +GLIBC_2.1 nis_servstate F +GLIBC_2.1 nis_sperrno F +GLIBC_2.1 nis_sperror F +GLIBC_2.1 nis_sperror_r F +GLIBC_2.1 nis_stats F +GLIBC_2.1 nis_verifygroup F +GLIBC_2.1 nis_write_obj F +GLIBC_2.1 readColdStartFile F +GLIBC_2.1 writeColdStartFile F +GLIBC_2.1 xdr_cback_data F +GLIBC_2.1 xdr_obj_p F +GLIBC_2.2 GLIBC_2.2 A +GLIBC_2.2 xdr_ypall F diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist new file mode 100644 index 0000000000..d4c8dedd6c --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist @@ -0,0 +1,247 @@ +GLIBC_2.11 GLIBC_2.11 A +GLIBC_2.11 pthread_sigqueue F +GLIBC_2.12 GLIBC_2.12 A +GLIBC_2.12 pthread_getname_np F +GLIBC_2.12 pthread_mutex_consistent F +GLIBC_2.12 pthread_mutexattr_getrobust F +GLIBC_2.12 pthread_mutexattr_setrobust F +GLIBC_2.12 pthread_setname_np F +GLIBC_2.18 GLIBC_2.18 A +GLIBC_2.18 pthread_getattr_default_np F +GLIBC_2.18 pthread_setattr_default_np F +GLIBC_2.2 GLIBC_2.2 A +GLIBC_2.2 _IO_flockfile F +GLIBC_2.2 _IO_ftrylockfile F +GLIBC_2.2 _IO_funlockfile F +GLIBC_2.2 __close F +GLIBC_2.2 __connect F +GLIBC_2.2 __errno_location F +GLIBC_2.2 __fcntl F +GLIBC_2.2 __fork F +GLIBC_2.2 __h_errno_location F +GLIBC_2.2 __libc_allocate_rtsig F +GLIBC_2.2 __libc_current_sigrtmax F +GLIBC_2.2 __libc_current_sigrtmin F +GLIBC_2.2 __lseek F +GLIBC_2.2 __open F +GLIBC_2.2 __open64 F +GLIBC_2.2 __pread64 F +GLIBC_2.2 __pthread_getspecific F +GLIBC_2.2 __pthread_key_create F +GLIBC_2.2 __pthread_mutex_destroy F +GLIBC_2.2 __pthread_mutex_init F +GLIBC_2.2 __pthread_mutex_lock F +GLIBC_2.2 __pthread_mutex_trylock F +GLIBC_2.2 __pthread_mutex_unlock F +GLIBC_2.2 __pthread_mutexattr_destroy F +GLIBC_2.2 __pthread_mutexattr_init F +GLIBC_2.2 __pthread_mutexattr_settype F +GLIBC_2.2 __pthread_once F +GLIBC_2.2 __pthread_rwlock_destroy F +GLIBC_2.2 __pthread_rwlock_init F +GLIBC_2.2 __pthread_rwlock_rdlock F +GLIBC_2.2 __pthread_rwlock_tryrdlock F +GLIBC_2.2 __pthread_rwlock_trywrlock F +GLIBC_2.2 __pthread_rwlock_unlock F +GLIBC_2.2 __pthread_rwlock_wrlock F +GLIBC_2.2 __pthread_setspecific F +GLIBC_2.2 __pwrite64 F +GLIBC_2.2 __read F +GLIBC_2.2 __res_state F +GLIBC_2.2 __send F +GLIBC_2.2 __sigaction F +GLIBC_2.2 __vfork F +GLIBC_2.2 __wait F +GLIBC_2.2 __write F +GLIBC_2.2 _pthread_cleanup_pop F +GLIBC_2.2 _pthread_cleanup_pop_restore F +GLIBC_2.2 _pthread_cleanup_push F +GLIBC_2.2 _pthread_cleanup_push_defer F +GLIBC_2.2 accept F +GLIBC_2.2 close F +GLIBC_2.2 connect F +GLIBC_2.2 fcntl F +GLIBC_2.2 flockfile F +GLIBC_2.2 fork F +GLIBC_2.2 fsync F +GLIBC_2.2 ftrylockfile F +GLIBC_2.2 funlockfile F +GLIBC_2.2 longjmp F +GLIBC_2.2 lseek F +GLIBC_2.2 lseek64 F +GLIBC_2.2 msync F +GLIBC_2.2 nanosleep F +GLIBC_2.2 open F +GLIBC_2.2 open64 F +GLIBC_2.2 pause F +GLIBC_2.2 pread F +GLIBC_2.2 pread64 F +GLIBC_2.2 pthread_atfork F +GLIBC_2.2 pthread_attr_destroy F +GLIBC_2.2 pthread_attr_getdetachstate F +GLIBC_2.2 pthread_attr_getguardsize F +GLIBC_2.2 pthread_attr_getinheritsched F +GLIBC_2.2 pthread_attr_getschedparam F +GLIBC_2.2 pthread_attr_getschedpolicy F +GLIBC_2.2 pthread_attr_getscope F +GLIBC_2.2 pthread_attr_getstack F +GLIBC_2.2 pthread_attr_getstackaddr F +GLIBC_2.2 pthread_attr_getstacksize F +GLIBC_2.2 pthread_attr_init F +GLIBC_2.2 pthread_attr_setdetachstate F +GLIBC_2.2 pthread_attr_setguardsize F +GLIBC_2.2 pthread_attr_setinheritsched F +GLIBC_2.2 pthread_attr_setschedparam F +GLIBC_2.2 pthread_attr_setschedpolicy F +GLIBC_2.2 pthread_attr_setscope F +GLIBC_2.2 pthread_attr_setstack F +GLIBC_2.2 pthread_attr_setstackaddr F +GLIBC_2.2 pthread_attr_setstacksize F +GLIBC_2.2 pthread_barrier_destroy F +GLIBC_2.2 pthread_barrier_init F +GLIBC_2.2 pthread_barrier_wait F +GLIBC_2.2 pthread_barrierattr_destroy F +GLIBC_2.2 pthread_barrierattr_init F +GLIBC_2.2 pthread_barrierattr_setpshared F +GLIBC_2.2 pthread_cancel F +GLIBC_2.2 pthread_cond_broadcast F +GLIBC_2.2 pthread_cond_destroy F +GLIBC_2.2 pthread_cond_init F +GLIBC_2.2 pthread_cond_signal F +GLIBC_2.2 pthread_cond_timedwait F +GLIBC_2.2 pthread_cond_wait F +GLIBC_2.2 pthread_condattr_destroy F +GLIBC_2.2 pthread_condattr_getpshared F +GLIBC_2.2 pthread_condattr_init F +GLIBC_2.2 pthread_condattr_setpshared F +GLIBC_2.2 pthread_create F +GLIBC_2.2 pthread_detach F +GLIBC_2.2 pthread_equal F +GLIBC_2.2 pthread_exit F +GLIBC_2.2 pthread_getconcurrency F +GLIBC_2.2 pthread_getcpuclockid F +GLIBC_2.2 pthread_getschedparam F +GLIBC_2.2 pthread_getspecific F +GLIBC_2.2 pthread_join F +GLIBC_2.2 pthread_key_create F +GLIBC_2.2 pthread_key_delete F +GLIBC_2.2 pthread_kill F +GLIBC_2.2 pthread_kill_other_threads_np F +GLIBC_2.2 pthread_mutex_destroy F +GLIBC_2.2 pthread_mutex_init F +GLIBC_2.2 pthread_mutex_lock F +GLIBC_2.2 pthread_mutex_timedlock F +GLIBC_2.2 pthread_mutex_trylock F +GLIBC_2.2 pthread_mutex_unlock F +GLIBC_2.2 pthread_mutexattr_destroy F +GLIBC_2.2 pthread_mutexattr_getkind_np F +GLIBC_2.2 pthread_mutexattr_getpshared F +GLIBC_2.2 pthread_mutexattr_gettype F +GLIBC_2.2 pthread_mutexattr_init F +GLIBC_2.2 pthread_mutexattr_setkind_np F +GLIBC_2.2 pthread_mutexattr_setpshared F +GLIBC_2.2 pthread_mutexattr_settype F +GLIBC_2.2 pthread_once F +GLIBC_2.2 pthread_rwlock_destroy F +GLIBC_2.2 pthread_rwlock_init F +GLIBC_2.2 pthread_rwlock_rdlock F +GLIBC_2.2 pthread_rwlock_timedrdlock F +GLIBC_2.2 pthread_rwlock_timedwrlock F +GLIBC_2.2 pthread_rwlock_tryrdlock F +GLIBC_2.2 pthread_rwlock_trywrlock F +GLIBC_2.2 pthread_rwlock_unlock F +GLIBC_2.2 pthread_rwlock_wrlock F +GLIBC_2.2 pthread_rwlockattr_destroy F +GLIBC_2.2 pthread_rwlockattr_getkind_np F +GLIBC_2.2 pthread_rwlockattr_getpshared F +GLIBC_2.2 pthread_rwlockattr_init F +GLIBC_2.2 pthread_rwlockattr_setkind_np F +GLIBC_2.2 pthread_rwlockattr_setpshared F +GLIBC_2.2 pthread_self F +GLIBC_2.2 pthread_setcancelstate F +GLIBC_2.2 pthread_setcanceltype F +GLIBC_2.2 pthread_setconcurrency F +GLIBC_2.2 pthread_setschedparam F +GLIBC_2.2 pthread_setspecific F +GLIBC_2.2 pthread_sigmask F +GLIBC_2.2 pthread_spin_destroy F +GLIBC_2.2 pthread_spin_init F +GLIBC_2.2 pthread_spin_lock F +GLIBC_2.2 pthread_spin_trylock F +GLIBC_2.2 pthread_spin_unlock F +GLIBC_2.2 pthread_testcancel F +GLIBC_2.2 pthread_yield F +GLIBC_2.2 pwrite F +GLIBC_2.2 pwrite64 F +GLIBC_2.2 raise F +GLIBC_2.2 read F +GLIBC_2.2 recv F +GLIBC_2.2 recvfrom F +GLIBC_2.2 recvmsg F +GLIBC_2.2 sem_close F +GLIBC_2.2 sem_destroy F +GLIBC_2.2 sem_getvalue F +GLIBC_2.2 sem_init F +GLIBC_2.2 sem_open F +GLIBC_2.2 sem_post F +GLIBC_2.2 sem_timedwait F +GLIBC_2.2 sem_trywait F +GLIBC_2.2 sem_unlink F +GLIBC_2.2 sem_wait F +GLIBC_2.2 send F +GLIBC_2.2 sendmsg F +GLIBC_2.2 sendto F +GLIBC_2.2 sigaction F +GLIBC_2.2 siglongjmp F +GLIBC_2.2 sigwait F +GLIBC_2.2 system F +GLIBC_2.2 tcdrain F +GLIBC_2.2 vfork F +GLIBC_2.2 wait F +GLIBC_2.2 waitpid F +GLIBC_2.2 write F +GLIBC_2.2.3 GLIBC_2.2.3 A +GLIBC_2.2.3 pthread_getattr_np F +GLIBC_2.2.6 GLIBC_2.2.6 A +GLIBC_2.2.6 __nanosleep F +GLIBC_2.3.2 GLIBC_2.3.2 A +GLIBC_2.3.2 pthread_cond_broadcast F +GLIBC_2.3.2 pthread_cond_destroy F +GLIBC_2.3.2 pthread_cond_init F +GLIBC_2.3.2 pthread_cond_signal F +GLIBC_2.3.2 pthread_cond_timedwait F +GLIBC_2.3.2 pthread_cond_wait F +GLIBC_2.3.3 GLIBC_2.3.3 A +GLIBC_2.3.3 __pthread_cleanup_routine F +GLIBC_2.3.3 __pthread_register_cancel F +GLIBC_2.3.3 __pthread_register_cancel_defer F +GLIBC_2.3.3 __pthread_unregister_cancel F +GLIBC_2.3.3 __pthread_unregister_cancel_restore F +GLIBC_2.3.3 __pthread_unwind_next F +GLIBC_2.3.3 pthread_attr_getaffinity_np F +GLIBC_2.3.3 pthread_attr_setaffinity_np F +GLIBC_2.3.3 pthread_attr_setstack F +GLIBC_2.3.3 pthread_attr_setstacksize F +GLIBC_2.3.3 pthread_barrierattr_getpshared F +GLIBC_2.3.3 pthread_condattr_getclock F +GLIBC_2.3.3 pthread_condattr_setclock F +GLIBC_2.3.3 pthread_getaffinity_np F +GLIBC_2.3.3 pthread_setaffinity_np F +GLIBC_2.3.3 pthread_timedjoin_np F +GLIBC_2.3.3 pthread_tryjoin_np F +GLIBC_2.3.4 GLIBC_2.3.4 A +GLIBC_2.3.4 pthread_attr_getaffinity_np F +GLIBC_2.3.4 pthread_attr_setaffinity_np F +GLIBC_2.3.4 pthread_getaffinity_np F +GLIBC_2.3.4 pthread_setaffinity_np F +GLIBC_2.3.4 pthread_setschedprio F +GLIBC_2.4 GLIBC_2.4 A +GLIBC_2.4 pthread_mutex_consistent_np F +GLIBC_2.4 pthread_mutex_getprioceiling F +GLIBC_2.4 pthread_mutex_setprioceiling F +GLIBC_2.4 pthread_mutexattr_getprioceiling F +GLIBC_2.4 pthread_mutexattr_getprotocol F +GLIBC_2.4 pthread_mutexattr_getrobust_np F +GLIBC_2.4 pthread_mutexattr_setprioceiling F +GLIBC_2.4 pthread_mutexattr_setprotocol F +GLIBC_2.4 pthread_mutexattr_setrobust_np F diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/libresolv.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/libresolv.abilist new file mode 100644 index 0000000000..2d92a35e81 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/libresolv.abilist @@ -0,0 +1,100 @@ +GLIBC_2.0 GLIBC_2.0 A +GLIBC_2.0 __b64_ntop F +GLIBC_2.0 __b64_pton F +GLIBC_2.0 __dn_comp F +GLIBC_2.0 __dn_count_labels F +GLIBC_2.0 __dn_skipname F +GLIBC_2.0 __fp_nquery F +GLIBC_2.0 __fp_query F +GLIBC_2.0 __fp_resstat F +GLIBC_2.0 __hostalias F +GLIBC_2.0 __loc_aton F +GLIBC_2.0 __loc_ntoa F +GLIBC_2.0 __p_cdname F +GLIBC_2.0 __p_cdnname F +GLIBC_2.0 __p_class F +GLIBC_2.0 __p_class_syms D 0xa8 +GLIBC_2.0 __p_fqname F +GLIBC_2.0 __p_fqnname F +GLIBC_2.0 __p_option F +GLIBC_2.0 __p_query F +GLIBC_2.0 __p_secstodate F +GLIBC_2.0 __p_time F +GLIBC_2.0 __p_type F +GLIBC_2.0 __p_type_syms D 0x450 +GLIBC_2.0 __putlong F +GLIBC_2.0 __putshort F +GLIBC_2.0 __res_close F +GLIBC_2.0 __res_dnok F +GLIBC_2.0 __res_hnok F +GLIBC_2.0 __res_isourserver F +GLIBC_2.0 __res_mailok F +GLIBC_2.0 __res_nameinquery F +GLIBC_2.0 __res_ownok F +GLIBC_2.0 __res_queriesmatch F +GLIBC_2.0 __res_send F +GLIBC_2.0 __sym_ntop F +GLIBC_2.0 __sym_ntos F +GLIBC_2.0 __sym_ston F +GLIBC_2.0 _gethtbyaddr F +GLIBC_2.0 _gethtbyname F +GLIBC_2.0 _gethtbyname2 F +GLIBC_2.0 _gethtent F +GLIBC_2.0 _getlong F +GLIBC_2.0 _getshort F +GLIBC_2.0 _res_opcodes D 0x80 +GLIBC_2.0 _sethtent F +GLIBC_2.0 dn_expand F +GLIBC_2.0 inet_net_ntop F +GLIBC_2.0 inet_net_pton F +GLIBC_2.0 inet_neta F +GLIBC_2.0 res_gethostbyaddr F +GLIBC_2.0 res_gethostbyname F +GLIBC_2.0 res_gethostbyname2 F +GLIBC_2.0 res_mkquery F +GLIBC_2.0 res_query F +GLIBC_2.0 res_querydomain F +GLIBC_2.0 res_search F +GLIBC_2.0 res_send_setqhook F +GLIBC_2.0 res_send_setrhook F +GLIBC_2.2 GLIBC_2.2 A +GLIBC_2.2 __dn_expand F +GLIBC_2.2 __res_hostalias F +GLIBC_2.2 __res_mkquery F +GLIBC_2.2 __res_nmkquery F +GLIBC_2.2 __res_nquery F +GLIBC_2.2 __res_nquerydomain F +GLIBC_2.2 __res_nsearch F +GLIBC_2.2 __res_nsend F +GLIBC_2.2 __res_query F +GLIBC_2.2 __res_querydomain F +GLIBC_2.2 __res_search F +GLIBC_2.3.2 GLIBC_2.3.2 A +GLIBC_2.3.2 __p_rcode F +GLIBC_2.9 GLIBC_2.9 A +GLIBC_2.9 ns_datetosecs F +GLIBC_2.9 ns_format_ttl F +GLIBC_2.9 ns_get16 F +GLIBC_2.9 ns_get32 F +GLIBC_2.9 ns_initparse F +GLIBC_2.9 ns_makecanon F +GLIBC_2.9 ns_msg_getflag F +GLIBC_2.9 ns_name_compress F +GLIBC_2.9 ns_name_ntol F +GLIBC_2.9 ns_name_ntop F +GLIBC_2.9 ns_name_pack F +GLIBC_2.9 ns_name_pton F +GLIBC_2.9 ns_name_rollback F +GLIBC_2.9 ns_name_skip F +GLIBC_2.9 ns_name_uncompress F +GLIBC_2.9 ns_name_unpack F +GLIBC_2.9 ns_parse_ttl F +GLIBC_2.9 ns_parserr F +GLIBC_2.9 ns_put16 F +GLIBC_2.9 ns_put32 F +GLIBC_2.9 ns_samedomain F +GLIBC_2.9 ns_samename F +GLIBC_2.9 ns_skiprr F +GLIBC_2.9 ns_sprintrr F +GLIBC_2.9 ns_sprintrrf F +GLIBC_2.9 ns_subdomain F diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist new file mode 100644 index 0000000000..8699f6ccc4 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist @@ -0,0 +1,56 @@ +GLIBC_2.1 GLIBC_2.1 A +GLIBC_2.1 aio_cancel F +GLIBC_2.1 aio_cancel64 F +GLIBC_2.1 aio_error F +GLIBC_2.1 aio_error64 F +GLIBC_2.1 aio_fsync F +GLIBC_2.1 aio_fsync64 F +GLIBC_2.1 aio_init F +GLIBC_2.1 aio_read F +GLIBC_2.1 aio_read64 F +GLIBC_2.1 aio_return F +GLIBC_2.1 aio_return64 F +GLIBC_2.1 aio_suspend F +GLIBC_2.1 aio_suspend64 F +GLIBC_2.1 aio_write F +GLIBC_2.1 aio_write64 F +GLIBC_2.1 lio_listio F +GLIBC_2.1 lio_listio64 F +GLIBC_2.2 GLIBC_2.2 A +GLIBC_2.2 clock_getcpuclockid F +GLIBC_2.2 clock_getres F +GLIBC_2.2 clock_gettime F +GLIBC_2.2 clock_nanosleep F +GLIBC_2.2 clock_settime F +GLIBC_2.2 shm_open F +GLIBC_2.2 shm_unlink F +GLIBC_2.2 timer_create F +GLIBC_2.2 timer_delete F +GLIBC_2.2 timer_getoverrun F +GLIBC_2.2 timer_gettime F +GLIBC_2.2 timer_settime F +GLIBC_2.3 GLIBC_2.3 A +GLIBC_2.3 aio_cancel F +GLIBC_2.3 aio_cancel64 F +GLIBC_2.3.3 GLIBC_2.3.3 A +GLIBC_2.3.3 timer_create F +GLIBC_2.3.3 timer_delete F +GLIBC_2.3.3 timer_getoverrun F +GLIBC_2.3.3 timer_gettime F +GLIBC_2.3.3 timer_settime F +GLIBC_2.3.4 GLIBC_2.3.4 A +GLIBC_2.3.4 mq_close F +GLIBC_2.3.4 mq_getattr F +GLIBC_2.3.4 mq_notify F +GLIBC_2.3.4 mq_open F +GLIBC_2.3.4 mq_receive F +GLIBC_2.3.4 mq_send F +GLIBC_2.3.4 mq_setattr F +GLIBC_2.3.4 mq_timedreceive F +GLIBC_2.3.4 mq_timedsend F +GLIBC_2.3.4 mq_unlink F +GLIBC_2.4 GLIBC_2.4 A +GLIBC_2.4 lio_listio F +GLIBC_2.4 lio_listio64 F +GLIBC_2.7 GLIBC_2.7 A +GLIBC_2.7 __mq_open_2 F diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/libthread_db.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/libthread_db.abilist new file mode 100644 index 0000000000..a8a8c2c68d --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/libthread_db.abilist @@ -0,0 +1,44 @@ +GLIBC_2.1.3 GLIBC_2.1.3 A +GLIBC_2.1.3 td_init F +GLIBC_2.1.3 td_log F +GLIBC_2.1.3 td_ta_clear_event F +GLIBC_2.1.3 td_ta_delete F +GLIBC_2.1.3 td_ta_enable_stats F +GLIBC_2.1.3 td_ta_event_addr F +GLIBC_2.1.3 td_ta_event_getmsg F +GLIBC_2.1.3 td_ta_get_nthreads F +GLIBC_2.1.3 td_ta_get_ph F +GLIBC_2.1.3 td_ta_get_stats F +GLIBC_2.1.3 td_ta_map_id2thr F +GLIBC_2.1.3 td_ta_map_lwp2thr F +GLIBC_2.1.3 td_ta_new F +GLIBC_2.1.3 td_ta_reset_stats F +GLIBC_2.1.3 td_ta_set_event F +GLIBC_2.1.3 td_ta_setconcurrency F +GLIBC_2.1.3 td_ta_thr_iter F +GLIBC_2.1.3 td_ta_tsd_iter F +GLIBC_2.1.3 td_thr_clear_event F +GLIBC_2.1.3 td_thr_dbresume F +GLIBC_2.1.3 td_thr_dbsuspend F +GLIBC_2.1.3 td_thr_event_enable F +GLIBC_2.1.3 td_thr_event_getmsg F +GLIBC_2.1.3 td_thr_get_info F +GLIBC_2.1.3 td_thr_getfpregs F +GLIBC_2.1.3 td_thr_getgregs F +GLIBC_2.1.3 td_thr_getxregs F +GLIBC_2.1.3 td_thr_getxregsize F +GLIBC_2.1.3 td_thr_set_event F +GLIBC_2.1.3 td_thr_setfpregs F +GLIBC_2.1.3 td_thr_setgregs F +GLIBC_2.1.3 td_thr_setprio F +GLIBC_2.1.3 td_thr_setsigpending F +GLIBC_2.1.3 td_thr_setxregs F +GLIBC_2.1.3 td_thr_sigsetmask F +GLIBC_2.1.3 td_thr_tsd F +GLIBC_2.1.3 td_thr_validate F +GLIBC_2.2.3 GLIBC_2.2.3 A +GLIBC_2.2.3 td_symbol_list F +GLIBC_2.3 GLIBC_2.3 A +GLIBC_2.3 td_thr_tls_get_addr F +GLIBC_2.3.3 GLIBC_2.3.3 A +GLIBC_2.3.3 td_thr_tlsbase F diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/libutil.abilist b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/libutil.abilist new file mode 100644 index 0000000000..89c67755c4 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/libutil.abilist @@ -0,0 +1,7 @@ +GLIBC_2.0 GLIBC_2.0 A +GLIBC_2.0 forkpty F +GLIBC_2.0 login F +GLIBC_2.0 login_tty F +GLIBC_2.0 logout F +GLIBC_2.0 logwtmp F +GLIBC_2.0 openpty F diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/localplt.data b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/localplt.data new file mode 100644 index 0000000000..912bd1a16e --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/localplt.data @@ -0,0 +1,29 @@ +libc.so: _Qp_add ? +libc.so: _Qp_cmp ? +libc.so: _Qp_div ? +libc.so: _Qp_feq ? +libc.so: _Qp_fge ? +libc.so: _Qp_fle ? +libc.so: _Qp_flt ? +libc.so: _Qp_fne ? +libc.so: _Qp_itoq ? +libc.so: _Qp_mul ? +libc.so: _Qp_qtod ? +libc.so: _Qp_sub ? +libc.so: _Qp_xtoq ? +libc.so: _Unwind_Find_FDE +libc.so: calloc +libc.so: free +libc.so: malloc +libc.so: memalign +libc.so: realloc +libm.so: matherr +# The main malloc is interposed into the dynamic linker, for +# allocations after the initial link (when dlopen is used). +ld.so: malloc +ld.so: calloc +ld.so: realloc +ld.so: free +# The TLS-enabled version of these functions is interposed from libc.so. +ld.so: _dl_signal_error +ld.so: _dl_catch_error diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/longjmp.S b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/longjmp.S new file mode 100644 index 0000000000..770e4def41 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/longjmp.S @@ -0,0 +1,51 @@ +/* Copyright (C) 1997-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Richard Henderson (rth@tamu.edu). + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +/* longjmp is implemented in terms of the setcontext trap on Linux/Sparc64. */ + +#include <sysdep.h> + +/* Offsets into the jmp_buf structure. */ + +#define O_mask_was_saved 512 +#define O_gregs 32 +#define O_g1 (O_gregs + 4*8) + + +/* void longjmp (sigjmp_buf env, int val) */ + +ENTRY(__libc_siglongjmp) + + /* Modify the context with the value we want to return. */ + movre %o1, 1, %o1 + stx %o1, [%o0 + O_g1] + + /* Let setcontext know if we want to modify the current sigmask. */ + ld [%o0 + O_mask_was_saved], %o1 + + /* And bamf back to where we belong! */ + ta 0x6f + +END(__libc_siglongjmp) + +strong_alias(__libc_siglongjmp, __longjmp) +strong_alias(__libc_siglongjmp, __libc_longjmp) +libc_hidden_def (__libc_longjmp) +weak_alias (__libc_siglongjmp, longjmp) +weak_alias (__libc_siglongjmp, _longjmp) +weak_alias (__libc_siglongjmp, siglongjmp) diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/lxstat.c b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/lxstat.c new file mode 100644 index 0000000000..7f1e98e433 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/lxstat.c @@ -0,0 +1 @@ +#include "../../i386/lxstat.c" diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/makecontext.c b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/makecontext.c new file mode 100644 index 0000000000..ca174d01c1 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/makecontext.c @@ -0,0 +1,57 @@ +/* Copyright (C) 2001-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Jakub Jelinek <jakub@redhat.com>. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#include <stdarg.h> +#include <stdio.h> +#include <stdlib.h> +#include <ucontext.h> + +extern void __start_context (struct ucontext *ucp); + +void +__makecontext (ucontext_t *ucp, void (*func) (void), int argc, ...) +{ + extern void __makecontext_ret (void); + unsigned long *sp, *topsp; + va_list ap; + int i; + + sp = (unsigned long *) ((long) ucp->uc_stack.ss_sp + ucp->uc_stack.ss_size); + sp -= (argc > 6 ? argc : 6) + 32; + sp = (unsigned long *) (((long) sp) & -16L); + topsp = sp + (argc > 6 ? argc : 6) + 16; + + ucp->uc_mcontext.mc_gregs[MC_PC] = (long) func; + ucp->uc_mcontext.mc_gregs[MC_NPC] = ((long) func) + 4; + ucp->uc_mcontext.mc_gregs[MC_O6] = ((long) sp) - 0x7ff; + ucp->uc_mcontext.mc_gregs[MC_O7] = ((long) __start_context) - 8; + ucp->uc_mcontext.mc_fp = ((long) topsp) - 0x7ff; + ucp->uc_mcontext.mc_i7 = 0; + topsp[14] = 0; + topsp[15] = 0; + sp[8] = (long) ucp->uc_link; + va_start (ap, argc); + for (i = 0; i < argc; ++i) + if (i < 6) + ucp->uc_mcontext.mc_gregs[MC_O0 + i] = va_arg (ap, long); + else + sp[16 + i] = va_arg (ap, long); + va_end (ap); +} + +weak_alias (__makecontext, makecontext) diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/personality.c b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/personality.c new file mode 100644 index 0000000000..250e501d91 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/personality.c @@ -0,0 +1,3 @@ +/* Work around sign extension bug in the kernel. */ +#define PERSONALITY_TRUNCATE_ARGUMENT +#include <sysdeps/unix/sysv/linux/personality.c> diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/pipe.S b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/pipe.S new file mode 100644 index 0000000000..83394cd3d0 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/pipe.S @@ -0,0 +1,40 @@ +/* Copyright (C) 1997-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Miguel de Icaza <miguel@gnu.ai.mit.edu>, 1997. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#include <sysdep.h> + + .text + + .globl __syscall_error +ENTRY(__libc_pipe) + mov %o0, %o2 /* Save PIPEDES. */ + LOADSYSCALL(pipe) + ta 0x6d + bcc,pt %xcc, 1f + mov %o7, %g1 + call __syscall_error + mov %g1, %o7 +1: st %o0, [%o2] /* PIPEDES[0] = %o0; */ + st %o1, [%o2 + 4] /* PIPEDES[1] = %o1; */ + retl + clr %o0 +END(__libc_pipe) + +weak_alias (__libc_pipe, __pipe) +libc_hidden_def (__pipe) +weak_alias (__libc_pipe, pipe) diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/profil-counter.h b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/profil-counter.h new file mode 100644 index 0000000000..e68083b63d --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/profil-counter.h @@ -0,0 +1,28 @@ +/* Low-level statistical profiling support function. Linux/Sparc64 version. + Copyright (C) 1997-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#include <signal.h> + +void +__profil_counter (int signo, struct sigcontext *si) +{ + profil_count ((void *) si->sigc_regs.tpc); +} +#ifndef __profil_counter +weak_alias (__profil_counter, profil_counter) +#endif diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/register-dump.h b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/register-dump.h new file mode 100644 index 0000000000..7f1d85471e --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/register-dump.h @@ -0,0 +1,256 @@ +/* Dump registers. + Copyright (C) 1999-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Jakub Jelinek <jj@ultra.linux.cz>, 1999. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#include <sys/uio.h> +#include <_itoa.h> + +/* We will print the register dump in this format: + + TSTATE: XXXXXXXXXXXXXXXX TPC: XXXXXXXXXXXXXXXX TNPC: XXXXXXXXXXXXXXXX + Y: XXXXXXXX + g0: 0000000000000000 g1: XXXXXXXXXXXXXXXX g2: XXXXXXXXXXXXXXXX + g3: XXXXXXXXXXXXXXXX g4: XXXXXXXXXXXXXXXX g5: XXXXXXXXXXXXXXXX + g6: XXXXXXXXXXXXXXXX g7: XXXXXXXXXXXXXXXX + o0: XXXXXXXXXXXXXXXX o1: XXXXXXXXXXXXXXXX o2: XXXXXXXXXXXXXXXX + o3: XXXXXXXXXXXXXXXX o4: XXXXXXXXXXXXXXXX o5: XXXXXXXXXXXXXXXX + sp: XXXXXXXXXXXXXXXX o7: XXXXXXXXXXXXXXXX + l0: XXXXXXXXXXXXXXXX l1: XXXXXXXXXXXXXXXX l2: XXXXXXXXXXXXXXXX + l3: XXXXXXXXXXXXXXXX l4: XXXXXXXXXXXXXXXX l5: XXXXXXXXXXXXXXXX + l6: XXXXXXXXXXXXXXXX l7: XXXXXXXXXXXXXXXX + i0: XXXXXXXXXXXXXXXX i1: XXXXXXXXXXXXXXXX i2: XXXXXXXXXXXXXXXX + i3: XXXXXXXXXXXXXXXX i4: XXXXXXXXXXXXXXXX i5: XXXXXXXXXXXXXXXX + fp: XXXXXXXXXXXXXXXX i7: XXXXXXXXXXXXXXXX + + Mask: XXXXXXXXXXXXXXXX XFSR: XXXXXXXXXXXXXXXX GSR: XX FPRS: X + f0: XXXXXXXXXXXXXXXX f2: XXXXXXXXXXXXXXXX f4: XXXXXXXXXXXXXXXX + f6: XXXXXXXXXXXXXXXX f8: XXXXXXXXXXXXXXXX f10: XXXXXXXXXXXXXXXX + f12: XXXXXXXXXXXXXXXX f14: XXXXXXXXXXXXXXXX f16: XXXXXXXXXXXXXXXX + f18: XXXXXXXXXXXXXXXX f20: XXXXXXXXXXXXXXXX f22: XXXXXXXXXXXXXXXX + f24: XXXXXXXXXXXXXXXX f26: XXXXXXXXXXXXXXXX f28: XXXXXXXXXXXXXXXX + f30: XXXXXXXXXXXXXXXX f32: XXXXXXXXXXXXXXXX f34: XXXXXXXXXXXXXXXX + f36: XXXXXXXXXXXXXXXX f38: XXXXXXXXXXXXXXXX f40: XXXXXXXXXXXXXXXX + f42: XXXXXXXXXXXXXXXX f44: XXXXXXXXXXXXXXXX f46: XXXXXXXXXXXXXXXX + f48: XXXXXXXXXXXXXXXX f50: XXXXXXXXXXXXXXXX f52: XXXXXXXXXXXXXXXX + f54: XXXXXXXXXXXXXXXX f56: XXXXXXXXXXXXXXXX f58: XXXXXXXXXXXXXXXX + f60: XXXXXXXXXXXXXXXX f62: XXXXXXXXXXXXXXXX + + */ + +static void +hexvalue (unsigned long int value, char *buf, size_t len) +{ + char *cp = _itoa_word (value, buf + len, 16, 0); + while (cp > buf) + *--cp = '0'; +} + +static void +register_dump (int fd, SIGCONTEXT ctx) +{ + char regs[36][16]; + char fregs[68][8]; + struct iovec iov[150]; + size_t nr = 0; + int i; + unsigned long *r = (unsigned long *) + (ctx->sigc_regs.u_regs[14] + STACK_BIAS); + __siginfo_fpu_t *f; + +#define ADD_STRING(str) \ + iov[nr].iov_base = (char *) str; \ + iov[nr].iov_len = strlen (str); \ + ++nr +#define ADD_MEM(str, len) \ + iov[nr].iov_base = str; \ + iov[nr].iov_len = len; \ + ++nr + + /* Generate strings of register contents. */ + hexvalue (ctx->sigc_regs.tstate, regs[0], 16); + hexvalue (ctx->sigc_regs.tpc, regs[1], 16); + hexvalue (ctx->sigc_regs.tnpc, regs[2], 16); + hexvalue (ctx->sigc_regs.y, regs[3], 8); + for (i = 1; i <= 15; i++) + hexvalue (ctx->sigc_regs.u_regs[i], regs[3+i], 16); + for (i = 0; i <= 15; i++) + hexvalue (r[i], regs[19+i], 16); + hexvalue (ctx->sigc_mask, regs[35], 16); + + /* Generate the output. */ + ADD_STRING ("Register dump:\n\n TSTATE: "); + ADD_MEM (regs[0], 16); + ADD_STRING (" TPC: "); + ADD_MEM (regs[1], 16); + ADD_STRING (" TNPC: "); + ADD_MEM (regs[2], 16); + ADD_STRING ("\n Y: "); + ADD_MEM (regs[3], 8); + ADD_STRING ("\n g0: 0000000000000000 g1: "); + ADD_MEM (regs[4], 16); + ADD_STRING (" g2: "); + ADD_MEM (regs[5], 16); + ADD_STRING ("\n g3: "); + ADD_MEM (regs[6], 16); + ADD_STRING (" g4: "); + ADD_MEM (regs[7], 16); + ADD_STRING (" g5: "); + ADD_MEM (regs[8], 16); + ADD_STRING ("\n g6: "); + ADD_MEM (regs[9], 16); + ADD_STRING (" g7: "); + ADD_MEM (regs[10], 16); + ADD_STRING ("\n o0: "); + ADD_MEM (regs[11], 16); + ADD_STRING (" o1: "); + ADD_MEM (regs[12], 16); + ADD_STRING (" o2: "); + ADD_MEM (regs[13], 16); + ADD_STRING ("\n o3: "); + ADD_MEM (regs[14], 16); + ADD_STRING (" o4: "); + ADD_MEM (regs[15], 16); + ADD_STRING (" o5: "); + ADD_MEM (regs[16], 16); + ADD_STRING ("\n sp: "); + ADD_MEM (regs[17], 16); + ADD_STRING (" o7: "); + ADD_MEM (regs[18], 16); + ADD_STRING ("\n l0: "); + ADD_MEM (regs[19], 16); + ADD_STRING (" l1: "); + ADD_MEM (regs[20], 16); + ADD_STRING (" l2: "); + ADD_MEM (regs[21], 16); + ADD_STRING ("\n l3: "); + ADD_MEM (regs[22], 16); + ADD_STRING (" l4: "); + ADD_MEM (regs[23], 16); + ADD_STRING (" l5: "); + ADD_MEM (regs[24], 16); + ADD_STRING ("\n l6: "); + ADD_MEM (regs[25], 16); + ADD_STRING (" l7: "); + ADD_MEM (regs[26], 16); + ADD_STRING ("\n i0: "); + ADD_MEM (regs[27], 16); + ADD_STRING (" i1: "); + ADD_MEM (regs[28], 16); + ADD_STRING (" i2: "); + ADD_MEM (regs[29], 16); + ADD_STRING ("\n i3: "); + ADD_MEM (regs[30], 16); + ADD_STRING (" i4: "); + ADD_MEM (regs[31], 16); + ADD_STRING (" i5: "); + ADD_MEM (regs[32], 16); + ADD_STRING ("\n fp: "); + ADD_MEM (regs[33], 16); + ADD_STRING (" i7: "); + ADD_MEM (regs[34], 16); + ADD_STRING ("\n\n Mask: "); + ADD_MEM (regs[35], 16); + + f = ctx->sigc_fpu_save; + if (f != NULL) + { + for (i = 0; i < 64; i++) + hexvalue (f->si_float_regs[i], fregs[i], 8); + hexvalue (f->si_fsr, fregs[64], 16); + hexvalue (f->si_gsr, fregs[66], 2); + hexvalue (f->si_fprs, fregs[67], 1); + ADD_STRING (" XFSR: "); + ADD_MEM (fregs[64], 16); + ADD_STRING (" GSR: "); + ADD_MEM (fregs[66], 2); + ADD_STRING (" FPRS: "); + ADD_MEM (fregs[67], 1); + ADD_STRING ("\n f0: "); + ADD_MEM (fregs[0], 16); + ADD_STRING (" f2: "); + ADD_MEM (fregs[2], 16); + ADD_STRING (" f4: "); + ADD_MEM (fregs[4], 16); + ADD_STRING ("\n f6: "); + ADD_MEM (fregs[6], 16); + ADD_STRING (" f8: "); + ADD_MEM (fregs[8], 16); + ADD_STRING (" f10: "); + ADD_MEM (fregs[10], 16); + ADD_STRING ("\n f12: "); + ADD_MEM (fregs[12], 16); + ADD_STRING (" f14: "); + ADD_MEM (fregs[14], 16); + ADD_STRING (" f16: "); + ADD_MEM (fregs[16], 16); + ADD_STRING ("\n f18: "); + ADD_MEM (fregs[18], 16); + ADD_STRING (" f20: "); + ADD_MEM (fregs[20], 16); + ADD_STRING (" f22: "); + ADD_MEM (fregs[22], 16); + ADD_STRING ("\n f24: "); + ADD_MEM (fregs[24], 16); + ADD_STRING (" f26: "); + ADD_MEM (fregs[26], 16); + ADD_STRING (" f28: "); + ADD_MEM (fregs[28], 16); + ADD_STRING ("\n f30: "); + ADD_MEM (fregs[30], 16); + ADD_STRING (" f32: "); + ADD_MEM (fregs[32], 16); + ADD_STRING (" f34: "); + ADD_MEM (fregs[34], 16); + ADD_STRING ("\n f36: "); + ADD_MEM (fregs[36], 16); + ADD_STRING (" f38: "); + ADD_MEM (fregs[38], 16); + ADD_STRING (" f40: "); + ADD_MEM (fregs[40], 16); + ADD_STRING ("\n f42: "); + ADD_MEM (fregs[42], 16); + ADD_STRING (" f44: "); + ADD_MEM (fregs[44], 16); + ADD_STRING (" f46: "); + ADD_MEM (fregs[46], 16); + ADD_STRING ("\n f48: "); + ADD_MEM (fregs[48], 16); + ADD_STRING (" f50: "); + ADD_MEM (fregs[50], 16); + ADD_STRING (" f52: "); + ADD_MEM (fregs[52], 16); + ADD_STRING ("\n f54: "); + ADD_MEM (fregs[54], 16); + ADD_STRING (" f56: "); + ADD_MEM (fregs[56], 16); + ADD_STRING (" f58: "); + ADD_MEM (fregs[58], 16); + ADD_STRING ("\n f60: "); + ADD_MEM (fregs[60], 16); + ADD_STRING (" f62: "); + ADD_MEM (fregs[62], 16); + } + + ADD_STRING ("\n"); + + /* Write the stuff out. */ + writev (fd, iov, nr); +} + + +#define REGISTER_DUMP register_dump (fd, ctx) diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/setcontext.S b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/setcontext.S new file mode 100644 index 0000000000..085db5c0ee --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/setcontext.S @@ -0,0 +1,38 @@ +/* Copyright (C) 1997-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Richard Henderson (rth@tamu.edu). + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#include <sysdep.h> +#include "ucontext_i.h" + +/* int setcontext(ucontext_t *ctx); */ +.weak setcontext +ENTRY(setcontext) + + ba,pt %xcc, 1f + mov 1, %o1 + +END(setcontext) + +/* int __setcontext(ucontext_t *ctx, int restoremask); */ +ENTRY(__setcontext) + +1: ldx [%o0 + UC_SIGMASK], %o2 + stx %o2, [%o0 + __UC_SIGMASK] + ta 0x6f + +END(__setcontext) diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/setjmp.S b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/setjmp.S new file mode 100644 index 0000000000..ba32db9c93 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/setjmp.S @@ -0,0 +1,67 @@ +/* Copyright (C) 1997-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Richard Henderson (rth@tamu.edu). + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +/* __sigsetjmp is implemented in terms of the getcontext trap on + Linux/Sparc64. */ + +#include <sysdep.h> + +/* Offsets into the jmp_buf structure. */ + +#define O_mask_was_saved 512 +#define O_gregs 32 +#define O_g1 (O_gregs + 4*8) + +/* int _setjmp(jmp_buf) */ + +ENTRY(_setjmp) + ba __sigsetjmp_local + set 0, %o1 +END(_setjmp) +libc_hidden_def (_setjmp) + +/* int setjmp(jmp_buf) */ + +ENTRY(setjmp) + ba,pt %xcc, __sigsetjmp_local + set 1, %o1 +END(setjmp) + +/* int __sigsetjmp(jmp_buf, savemask) */ + +ENTRY(__sigsetjmp) +__sigsetjmp_local: + + /* Record whether the user is intending to save the sigmask. */ + st %o1, [%o0 + O_mask_was_saved] + + /* Load up our return value, as longjmp is going to override + the jmp_buf on its way back. */ + mov %g0, %g1 + + /* And call getcontext! */ + ta 0x6e + + retl + mov %g1, %o0 + +END(__sigsetjmp) +hidden_def (__sigsetjmp) + +weak_extern(_setjmp) +weak_extern(setjmp) diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/shlib-versions b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/shlib-versions new file mode 100644 index 0000000000..9333bbd7a3 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/shlib-versions @@ -0,0 +1,5 @@ +libm=6 GLIBC_2.2 +libc=6 GLIBC_2.2 +ld=ld-linux.so.2 GLIBC_2.2 +libBrokenLocale=1 GLIBC_2.2 +libpthread=0 GLIBC_2.2 diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/sigaction.c b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/sigaction.c new file mode 100644 index 0000000000..78f8a18907 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/sigaction.c @@ -0,0 +1,78 @@ +/* POSIX.1 sigaction call for Linux/SPARC64. + Copyright (C) 1997-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Miguel de Icaza <miguel@nuclecu.unam.mx> and + Jakub Jelinek <jj@ultra.linux.cz>. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#include <string.h> +#include <syscall.h> +#include <sysdep.h> +#include <sys/signal.h> +#include <errno.h> + +#include <kernel_sigaction.h> + +/* SPARC 64bit userland requires a kernel that has rt signals anyway. */ + +static void __rt_sigreturn_stub (void); + +int +__libc_sigaction (int sig, const struct sigaction *act, struct sigaction *oact) +{ + int ret; + struct kernel_sigaction kact, koact; + unsigned long stub = ((unsigned long) &__rt_sigreturn_stub) - 8; + + if (act) + { + kact.k_sa_handler = act->sa_handler; + memcpy (&kact.sa_mask, &act->sa_mask, sizeof (sigset_t)); + kact.sa_flags = act->sa_flags; + kact.sa_restorer = NULL; + } + + /* XXX The size argument hopefully will have to be changed to the + real size of the user-level sigset_t. */ + ret = INLINE_SYSCALL (rt_sigaction, 5, sig, + act ? &kact : 0, + oact ? &koact : 0, stub, _NSIG / 8); + + if (oact && ret >= 0) + { + oact->sa_handler = koact.k_sa_handler; + memcpy (&oact->sa_mask, &koact.sa_mask, sizeof (sigset_t)); + oact->sa_flags = koact.sa_flags; + oact->sa_restorer = koact.sa_restorer; + } + + return ret; +} +libc_hidden_def (__libc_sigaction) + +#include <nptl/sigaction.c> + + +static +inhibit_stack_protector +void +__rt_sigreturn_stub (void) +{ + __asm__ ("mov %0, %%g1\n\t" + "ta 0x6d\n\t" + : /* no outputs */ + : "i" (__NR_rt_sigreturn)); +} diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/sigcontextinfo.h b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/sigcontextinfo.h new file mode 100644 index 0000000000..ba53b4a6e2 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/sigcontextinfo.h @@ -0,0 +1,31 @@ +/* Copyright (C) 1999-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Jakub Jelinek <jj@ultra.linux.cz>, 1999. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#ifndef STACK_BIAS +#define STACK_BIAS 2047 +#endif +#define SIGCONTEXT struct sigcontext * +#define SIGCONTEXT_EXTRA_ARGS +#define GET_PC(__ctx) ((void *) ((__ctx)->sigc_regs.tpc)) +#define ADVANCE_STACK_FRAME(__next) \ + ((void *) (((unsigned long *) (((unsigned long int) (__next)) \ + + STACK_BIAS))+14)) +#define GET_STACK(__ctx) ((void *) ((__ctx)->sigc_regs.u_regs[14])) +#define GET_FRAME(__ctx) ADVANCE_STACK_FRAME (GET_STACK (__ctx)) +#define CALL_SIGHANDLER(handler, signo, ctx) \ + (handler)((signo), SIGCONTEXT_EXTRA_ARGS (ctx)) diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/sigjmp.S b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/sigjmp.S new file mode 100644 index 0000000000..940ccbcf68 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/sigjmp.S @@ -0,0 +1 @@ +/* There is no need for __sigjmp_save what with getcontext. */ diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/sigpending.c b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/sigpending.c new file mode 100644 index 0000000000..7e82927435 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/sigpending.c @@ -0,0 +1,33 @@ +/* Copyright (C) 1997-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#include <errno.h> +#include <signal.h> +#include <unistd.h> + +#include <sysdep.h> +#include <sys/syscall.h> + +/* Change the set of blocked signals to SET, + wait until a signal arrives, and restore the set of blocked signals. */ +int +sigpending (sigset_t *set) +{ + /* XXX The size argument hopefully will have to be changed to the + real size of the user-level sigset_t. */ + return INLINE_SYSCALL (rt_sigpending, 2, set, _NSIG / 8); +} diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/sigprocmask.c b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/sigprocmask.c new file mode 100644 index 0000000000..c2205d0044 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/sigprocmask.c @@ -0,0 +1,33 @@ +/* Copyright (C) 1997-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#include <errno.h> +#include <signal.h> +#include <unistd.h> + +#include <sysdep.h> +#include <sys/syscall.h> + +/* Get and/or change the set of blocked signals. */ +int +__sigprocmask (int how, const sigset_t *set, sigset_t *oset) +{ + /* XXX The size argument hopefully will have to be changed to the + real size of the user-level sigset_t. */ + return INLINE_SYSCALL (rt_sigprocmask, 4, how, set, oset, _NSIG / 8); +} +weak_alias (__sigprocmask, sigprocmask) diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/sizes.h b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/sizes.h new file mode 100644 index 0000000000..24915f6cfb --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/sizes.h @@ -0,0 +1,23 @@ +/* Copyright (C) 1998-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#ifndef _SIZES_H +#define _SIZES_H 1 + +#define PTR_SIZE_STR "8" + +#endif /* sizes.h */ diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/swapcontext.c b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/swapcontext.c new file mode 100644 index 0000000000..e871ea3d12 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/swapcontext.c @@ -0,0 +1,47 @@ +/* Copyright (C) 2001-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Jakub Jelinek <jakub@redhat.com>. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#include <ucontext.h> + +extern int __getcontext (ucontext_t *ucp); +extern int __setcontext (const ucontext_t *ucp, int restoremask); + +int +__swapcontext (ucontext_t *oucp, const ucontext_t *ucp) +{ + extern void __swapcontext_ret (void); + /* Save the current machine context to oucp. */ + __getcontext (oucp); + /* Modify oucp to skip the __setcontext call on reactivation. */ + oucp->uc_mcontext.mc_gregs[MC_PC] = (long) __swapcontext_ret; + oucp->uc_mcontext.mc_gregs[MC_NPC] = ((long) __swapcontext_ret) + 4; + /* Restore the machine context in ucp. */ + __setcontext (ucp, 1); + return 0; +} + +asm (" \n\ + .text \n\ + .type __swapcontext_ret, #function \n\ +__swapcontext_ret: \n\ + return %i7 + 8 \n\ + clr %o0 \n\ + .size __swapcontext_ret, .-__swapcontext_ret \n\ + "); + +weak_alias (__swapcontext, swapcontext) diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/syscall.S b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/syscall.S new file mode 100644 index 0000000000..ac14a7e7de --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/syscall.S @@ -0,0 +1,39 @@ +/* Copyright (C) 1997-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#include <sysdep.h> + .text + + .globl __syscall_error +ENTRY(syscall) + mov %o0,%g1 + mov %o1,%o0 + mov %o2,%o1 + mov %o3,%o2 + mov %o4,%o3 + mov %o5,%o4 + ldx [%sp + STACK_BIAS + 176],%o5 + + ta 0x6d + + bcc,pt %xcc, 1f + mov %o7, %g1 + call __syscall_error + mov %g1, %o7 +1: retl + nop +END(syscall) diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list new file mode 100644 index 0000000000..33082f31eb --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list @@ -0,0 +1,10 @@ +# File name Caller Syscall name # args Strong name Weak names + +bind - bind 3 __bind bind +getpeername - getpeername 3 __getpeername getpeername +getsockname - getsockname 3 __getsockname getsockname +getsockopt - getsockopt 5 __getsockopt getsockopt +listen - listen 2 __listen listen +setsockopt - setsockopt 5 __setsockopt setsockopt +shutdown - shutdown 2 __shutdown shutdown +socketpair - socketpair 4 __socketpair socketpair diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h new file mode 100644 index 0000000000..45fbd737e0 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h @@ -0,0 +1,109 @@ +/* Copyright (C) 2002-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Jakub Jelinek <jakub@redhat.com>, 2002. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#include <sysdep.h> +#include <tls.h> +#ifndef __ASSEMBLER__ +# include <nptl/pthreadP.h> +#endif + +#if IS_IN (libc) || IS_IN (libpthread) || IS_IN (librt) + +# undef PSEUDO +# define PSEUDO(name, syscall_name, args) \ + .text; \ + .globl __syscall_error; \ +ENTRY(name) \ + ld [%g7 + MULTIPLE_THREADS_OFFSET], %g1;\ + brnz,pn %g1, 1f; \ +.type __##syscall_name##_nocancel,@function; \ +.globl __##syscall_name##_nocancel; \ +__##syscall_name##_nocancel: \ + mov SYS_ify(syscall_name), %g1; \ + ta 0x6d; \ + bcc,pt %xcc, 8f; \ + mov %o7, %g1; \ + call __syscall_error; \ + mov %g1, %o7; \ +8: jmpl %o7 + 8, %g0; \ + nop; \ +.size __##syscall_name##_nocancel,.-__##syscall_name##_nocancel;\ +1: save %sp, -192, %sp; \ + cfi_def_cfa_register(%fp); \ + cfi_window_save; \ + cfi_register(%o7, %i7); \ + CENABLE; \ + nop; \ + mov %o0, %l0; \ + COPY_ARGS_##args \ + mov SYS_ify(syscall_name), %g1; \ + ta 0x6d; \ + bcc,pt %xcc, 1f; \ + mov %o0, %l1; \ + CDISABLE; \ + mov %l0, %o0; \ + call __syscall_error; \ + mov %l1, %o0; \ + ba,pt %xcc, 2f; \ + mov -1, %l1; \ +1: CDISABLE; \ + mov %l0, %o0; \ +2: jmpl %i7 + 8, %g0; \ + restore %g0, %l1, %o0; + +# if IS_IN (libpthread) +# define CENABLE call __pthread_enable_asynccancel +# define CDISABLE call __pthread_disable_asynccancel +# elif IS_IN (libc) +# define CENABLE call __libc_enable_asynccancel +# define CDISABLE call __libc_disable_asynccancel +# elif IS_IN (librt) +# define CENABLE call __librt_enable_asynccancel +# define CDISABLE call __librt_disable_asynccancel +# else +# error Unsupported library +# endif + +#define COPY_ARGS_0 /* Nothing */ +#define COPY_ARGS_1 COPY_ARGS_0 mov %i0, %o0; +#define COPY_ARGS_2 COPY_ARGS_1 mov %i1, %o1; +#define COPY_ARGS_3 COPY_ARGS_2 mov %i2, %o2; +#define COPY_ARGS_4 COPY_ARGS_3 mov %i3, %o3; +#define COPY_ARGS_5 COPY_ARGS_4 mov %i4, %o4; +#define COPY_ARGS_6 COPY_ARGS_5 mov %i5, %o5; + +# ifndef __ASSEMBLER__ +# define SINGLE_THREAD_P \ + __builtin_expect (THREAD_GETMEM (THREAD_SELF, \ + header.multiple_threads) == 0, 1) +# else +# define SINGLE_THREAD_P ld [%g7 + MULTIPLE_THREADS_OFFSET], %g1 +# endif + +#elif !defined __ASSEMBLER__ + +# define SINGLE_THREAD_P (1) +# define NO_CANCELLATION 1 + +#endif + +#ifndef __ASSEMBLER__ +# define RTLD_SINGLE_THREAD_P \ + __builtin_expect (THREAD_GETMEM (THREAD_SELF, \ + header.multiple_threads) == 0, 1) +#endif diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h new file mode 100644 index 0000000000..ea6bf5146a --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h @@ -0,0 +1,162 @@ +/* Copyright (C) 1997-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Richard Henderson <richard@gnu.ai.mit.edu>, 1997. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#ifndef _LINUX_SPARC64_SYSDEP_H +#define _LINUX_SPARC64_SYSDEP_H 1 + +#include <sysdeps/unix/sysv/linux/sparc/sysdep.h> + +#if IS_IN (rtld) +# include <dl-sysdep.h> /* Defines RTLD_PRIVATE_ERRNO. */ +#endif +#include <tls.h> + +#undef SYS_ify +#define SYS_ify(syscall_name) __NR_##syscall_name + +/* This is a kludge to make syscalls.list find these under the names + pread and pwrite, since some kernel headers define those names + and some define the *64 names for the same system calls. */ +#if !defined __NR_pread && defined __NR_pread64 +# define __NR_pread __NR_pread64 +#endif +#if !defined __NR_pwrite && defined __NR_pwrite64 +# define __NR_pwrite __NR_pwrite64 +#endif + +#ifdef __ASSEMBLER__ + +#define LOADSYSCALL(x) mov __NR_##x, %g1 + +#undef PSEUDO +#define PSEUDO(name, syscall_name, args) \ + .text; \ +ENTRY(name); \ + LOADSYSCALL(syscall_name); \ + ta 0x6d; \ + bcc,pt %xcc, 1f; \ + nop; \ + SYSCALL_ERROR_HANDLER \ +1: + +#undef PSEUDO_NOERRNO +#define PSEUDO_NOERRNO(name, syscall_name, args)\ + .text; \ +ENTRY(name); \ + LOADSYSCALL(syscall_name); \ + ta 0x6d; + +#undef PSEUDO_ERRVAL +#define PSEUDO_ERRVAL(name, syscall_name, args) \ + .text; \ +ENTRY(name); \ + LOADSYSCALL(syscall_name); \ + ta 0x6d; + +#undef PSEUDO_END +#define PSEUDO_END(name) \ + END(name) + +#ifndef PIC +# define SYSCALL_ERROR_HANDLER \ + mov %o7, %g1; \ + call __syscall_error; \ + mov %g1, %o7; +#else +# if RTLD_PRIVATE_ERRNO +# define SYSCALL_ERROR_HANDLER \ +0: SETUP_PIC_REG_LEAF(o2,g1) \ + sethi %gdop_hix22(rtld_errno), %g1; \ + xor %g1, %gdop_lox10(rtld_errno), %g1;\ + ldx [%o2 + %g1], %g1, %gdop(rtld_errno); \ + st %o0, [%g1]; \ + jmp %o7 + 8; \ + mov -1, %o0; +# elif defined _LIBC_REENTRANT + +# if IS_IN (libc) +# define SYSCALL_ERROR_ERRNO __libc_errno +# else +# define SYSCALL_ERROR_ERRNO errno +# endif +# define SYSCALL_ERROR_HANDLER \ +0: SETUP_PIC_REG_LEAF(o2,g1) \ + sethi %tie_hi22(SYSCALL_ERROR_ERRNO), %g1; \ + add %g1, %tie_lo10(SYSCALL_ERROR_ERRNO), %g1; \ + ldx [%o2 + %g1], %g1, %tie_ldx(SYSCALL_ERROR_ERRNO);\ + st %o0, [%g7 + %g1]; \ + jmp %o7 + 8; \ + mov -1, %o0; +# else +# define SYSCALL_ERROR_HANDLER \ +0: SETUP_PIC_REG_LEAF(o2,g1) \ + sethi %gdop_hix22(errno), %g1;\ + xor %g1, %gdop_lox10(errno), %g1;\ + ldx [%o2 + %g1], %g1, %gdop(errno);\ + st %o0, [%g1]; \ + jmp %o7 + 8; \ + mov -1, %o0; +# endif /* _LIBC_REENTRANT */ +#endif /* PIC */ + +#else /* __ASSEMBLER__ */ + +#define __SYSCALL_STRING \ + "ta 0x6d;" \ + "bcc,pt %%xcc, 1f;" \ + " mov 0, %%g1;" \ + "sub %%g0, %%o0, %%o0;" \ + "mov 1, %%g1;" \ + "1:" + +#define __SYSCALL_CLOBBERS \ + "f0", "f1", "f2", "f3", "f4", "f5", "f6", "f7", \ + "f8", "f9", "f10", "f11", "f12", "f13", "f14", "f15", \ + "f16", "f17", "f18", "f19", "f20", "f21", "f22", "f23", \ + "f24", "f25", "f26", "f27", "f28", "f29", "f30", "f31", \ + "f32", "f34", "f36", "f38", "f40", "f42", "f44", "f46", \ + "f48", "f50", "f52", "f54", "f56", "f58", "f60", "f62", \ + "cc", "memory" + +#endif /* __ASSEMBLER__ */ + +/* This is the offset from the %sp to the backing store above the + register windows. So if you poke stack memory directly you add this. */ +#define STACK_BIAS 2047 + +/* Pointer mangling support. */ +#if IS_IN (rtld) +/* We cannot use the thread descriptor because in ld.so we use setjmp + earlier than the descriptor is initialized. */ +#else +# ifdef __ASSEMBLER__ +# define PTR_MANGLE(dreg, reg, tmpreg) \ + ldx [%g7 + POINTER_GUARD], tmpreg; \ + xor reg, tmpreg, dreg +# define PTR_DEMANGLE(dreg, reg, tmpreg) PTR_MANGLE (dreg, reg, tmpreg) +# define PTR_MANGLE2(dreg, reg, tmpreg) \ + xor reg, tmpreg, dreg +# define PTR_DEMANGLE2(dreg, reg, tmpreg) PTR_MANGLE2 (dreg, reg, tmpreg) +# else +# define PTR_MANGLE(var) \ + (var) = (__typeof (var)) ((uintptr_t) (var) ^ THREAD_GET_POINTER_GUARD ()) +# define PTR_DEMANGLE(var) PTR_MANGLE (var) +# endif +#endif + +#endif /* linux/sparc64/sysdep.h */ diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/time.c b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/time.c new file mode 100644 index 0000000000..509b580c55 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/time.c @@ -0,0 +1 @@ +#include <sysdeps/posix/time.c> diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/timer_create.c b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/timer_create.c new file mode 100644 index 0000000000..d307135003 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/timer_create.c @@ -0,0 +1 @@ +#include <sysdeps/unix/sysv/linux/x86_64/timer_create.c> diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/timer_delete.c b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/timer_delete.c new file mode 100644 index 0000000000..2dd94f5c7a --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/timer_delete.c @@ -0,0 +1 @@ +#include <sysdeps/unix/sysv/linux/x86_64/timer_delete.c> diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/timer_getoverr.c b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/timer_getoverr.c new file mode 100644 index 0000000000..22eaff5cda --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/timer_getoverr.c @@ -0,0 +1 @@ +#include <sysdeps/unix/sysv/linux/x86_64/timer_getoverr.c> diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/timer_gettime.c b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/timer_gettime.c new file mode 100644 index 0000000000..cea524bae5 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/timer_gettime.c @@ -0,0 +1 @@ +#include <sysdeps/unix/sysv/linux/x86_64/timer_gettime.c> diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/timer_settime.c b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/timer_settime.c new file mode 100644 index 0000000000..fa231149d5 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/timer_settime.c @@ -0,0 +1 @@ +#include <sysdeps/unix/sysv/linux/x86_64/timer_settime.c> diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/ucontext_i.h b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/ucontext_i.h new file mode 100644 index 0000000000..bd6599ed02 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/ucontext_i.h @@ -0,0 +1,27 @@ +/* Copyright (C) 2001-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Jakub Jelinek <jakub@redhat.com>. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +/* Constants shared between setcontext() and getcontext(). Don't + install this header file. */ + +#define UC_LINK 0 +#define __UC_SIGMASK 16 +#define UC_M_PC 40 +#define UC_M_NPC 48 +#define UC_SIGMASK 536 +#define SIGMASK_WORDS 16 diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S new file mode 100644 index 0000000000..5ff1cca898 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S @@ -0,0 +1,41 @@ +/* Copyright (C) 2004-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Jakub Jelinek <jakub@redhat.com>, 2004. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#include <sysdep.h> +#include <tcb-offsets.h> + + .text + .globl __syscall_error +ENTRY(__libc_vfork) + LOADSYSCALL(vfork) + ta 0x6d + bcc,pt %xcc, 2f + mov %o7, %g1 + call __syscall_error + mov %g1, %o7 +2: sub %o1, 1, %o1 + andcc %o0, %o1, %o0 +1: retl + nop +END(__libc_vfork) + +#if IS_IN (libc) +weak_alias (__libc_vfork, vfork) +strong_alias (__libc_vfork, __vfork) +libc_hidden_def (__vfork) +#endif diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/wordexp.c b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/wordexp.c new file mode 100644 index 0000000000..45178d106d --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/wordexp.c @@ -0,0 +1,59 @@ +/* Copyright (C) 2001-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#include <shlib-compat.h> + +/* For Linux/Alpha we have to make the wordexp symbols versioned. */ +#define wordexp(words, pwordexp, flags) \ + __new_wordexp (words, pwordexp, flags) + +#include <posix/wordexp.c> + +versioned_symbol (libc, __new_wordexp, wordexp, GLIBC_2_2_2); + + +#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_2_2) +/* The old, incorrect wordexp_t definition. */ +typedef struct + { + int we_wordc; /* Count of words matched. */ + char **we_wordv; /* List of expanded words. */ + int we_offs; /* Slots to reserve in `we_wordv'. */ + } old_wordexp_t; + + +int +attribute_compat_text_section +__old_wordexp (const char *words, old_wordexp_t *pwordexp, int flags) +{ + wordexp_t we; + int result; + + we.we_wordc = pwordexp->we_wordc; + we.we_wordv = pwordexp->we_wordv; + we.we_offs = pwordexp->we_offs; + + result = __new_wordexp (words, &we, flags); + + pwordexp->we_wordc = we.we_wordc; + pwordexp->we_wordv = we.we_wordv; + pwordexp->we_offs = we.we_offs; + + return result; +} +compat_symbol (libc, __old_wordexp, wordexp, GLIBC_2_1); +#endif diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/xstat.c b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/xstat.c new file mode 100644 index 0000000000..c3b00cb1d4 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/xstat.c @@ -0,0 +1 @@ +#include "../../i386/xstat.c" diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/xstatconv.c b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/xstatconv.c new file mode 100644 index 0000000000..8bc62b815c --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64/xstatconv.c @@ -0,0 +1,124 @@ +/* Convert between the kernel's `struct stat' format, and libc's. + Copyright (C) 1991-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#include <assert.h> +#include <errno.h> +#include <sys/stat.h> +#include <kernel_stat.h> +#include <string.h> + +int +__xstat_conv (int vers, struct kernel_stat *kbuf, void *ubuf) +{ + switch (vers) + { + case _STAT_VER_KERNEL: + /* Nothing to do. The struct is in the form the kernel expects. + We should have short-circuted before we got here, but for + completeness... */ + *(struct kernel_stat *) ubuf = *kbuf; + break; + + case _STAT_VER_LINUX: + { + struct stat *buf = ubuf; + + /* Convert to current kernel version of `struct stat'. */ + buf->st_dev = kbuf->st_dev; + buf->__pad1 = 0; + buf->st_ino = kbuf->st_ino; + buf->st_mode = kbuf->st_mode; + buf->st_nlink = kbuf->st_nlink; + buf->st_uid = kbuf->st_uid; + buf->st_gid = kbuf->st_gid; + buf->st_rdev = kbuf->st_rdev; + buf->__pad2 = 0; + buf->st_size = kbuf->st_size; + buf->st_blksize = kbuf->st_blksize; + buf->st_blocks = kbuf->st_blocks; + buf->st_atim.tv_sec = kbuf->st_atime_sec; + buf->st_atim.tv_nsec = 0; + buf->st_mtim.tv_sec = kbuf->st_mtime_sec; + buf->st_mtim.tv_nsec = 0; + buf->st_ctim.tv_sec = kbuf->st_ctime_sec; + buf->st_ctim.tv_nsec = 0; + buf->__glibc_reserved4 = 0; + buf->__glibc_reserved5 = 0; + } + break; + + default: + __set_errno (EINVAL); + return -1; + } + + return 0; +} + +int +__xstat32_conv (int vers, struct stat64 *sbuf, struct stat *buf) +{ + struct kernel_stat64 *kbuf; + + /* *stat64 syscalls on sparc64 really fill in struct kernel_stat64, + rather than struct stat64. But it is the same size as + struct kernel_stat64, so use this hack so that we can reuse + i386 {,f,l}xstat{,at}.c routines. */ + __asm ("" : "=r" (kbuf) : "0" (sbuf)); + assert (sizeof (struct stat) == sizeof (struct stat64)); + assert (sizeof (struct stat64) >= sizeof (struct kernel_stat64)); + + switch (vers) + { + case _STAT_VER_LINUX: + { + /* Convert current kernel version of `struct stat64' to + `struct stat'. */ + buf->st_dev = kbuf->st_dev; + buf->__pad1 = 0; + buf->st_ino = kbuf->st_ino; + buf->st_mode = kbuf->st_mode; + buf->st_nlink = kbuf->st_nlink; + buf->st_uid = kbuf->st_uid; + buf->st_gid = kbuf->st_gid; + buf->st_rdev = kbuf->st_rdev; + buf->__pad2 = 0; + buf->st_size = kbuf->st_size; + buf->st_blksize = kbuf->st_blksize; + buf->st_blocks = kbuf->st_blocks; + buf->st_atim.tv_sec = kbuf->st_atime_sec; + buf->st_atim.tv_nsec = kbuf->st_atime_nsec; + buf->st_mtim.tv_sec = kbuf->st_mtime_sec; + buf->st_mtim.tv_nsec = kbuf->st_mtime_nsec; + buf->st_ctim.tv_sec = kbuf->st_ctime_sec; + buf->st_ctim.tv_nsec = kbuf->st_ctime_nsec; + buf->__glibc_reserved4 = 0; + buf->__glibc_reserved5 = 0; + } + break; + + /* If struct stat64 is different from struct stat then + _STAT_VER_KERNEL does not make sense. */ + case _STAT_VER_KERNEL: + default: + __set_errno (EINVAL); + return -1; + } + + return 0; +} diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sys/procfs.h b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sys/procfs.h new file mode 100644 index 0000000000..e41331ac7c --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sys/procfs.h @@ -0,0 +1,210 @@ +/* Copyright (C) 1996-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#ifndef _SYS_PROCFS_H +#define _SYS_PROCFS_H 1 + +/* This is somehow modelled after the file of the same name on SysVr4 + systems. It provides a definition of the core file format for ELF + used on Linux. */ + +#include <features.h> +#include <signal.h> +#include <sys/time.h> +#include <sys/types.h> +#include <sys/ucontext.h> +#include <sys/user.h> +#include <bits/wordsize.h> + +__BEGIN_DECLS + +#if __WORDSIZE == 64 + +#define ELF_NGREG 36 + +typedef struct + { + unsigned long pr_regs[32]; + unsigned long pr_fsr; + unsigned long pr_gsr; + unsigned long pr_fprs; + } elf_fpregset_t; + +#else /* sparc32 */ + +#define ELF_NGREG 38 + +typedef struct + { + union + { + unsigned long pr_regs[32]; + double pr_dregs[16]; + } pr_fr; + unsigned long __glibc_reserved; + unsigned long pr_fsr; + unsigned char pr_qcnt; + unsigned char pr_q_entrysize; + unsigned char pr_en; + unsigned int pr_q[64]; + } elf_fpregset_t; + +#endif /* sparc32 */ + +typedef unsigned long elf_greg_t; +typedef elf_greg_t elf_gregset_t[ELF_NGREG]; + +struct elf_siginfo + { + int si_signo; /* Signal number. */ + int si_code; /* Extra code. */ + int si_errno; /* Errno. */ + }; + +/* Definitions to generate Intel SVR4-like core files. These mostly + have the same names as the SVR4 types with "elf_" tacked on the + front to prevent clashes with linux definitions, and the typedef + forms have been avoided. This is mostly like the SVR4 structure, + but more Linuxy, with things that Linux does not support and which + gdb doesn't really use excluded. Fields present but not used are + marked with "XXX". */ +struct elf_prstatus + { + struct elf_siginfo pr_info; /* Info associated with signal. */ + short int pr_cursig; /* Current signal. */ + unsigned long int pr_sigpend; /* Set of pending signals. */ + unsigned long int pr_sighold; /* Set of held signals. */ + __pid_t pr_pid; + __pid_t pr_ppid; + __pid_t pr_pgrp; + __pid_t pr_sid; + struct timeval pr_utime; /* User time. */ + struct timeval pr_stime; /* System time. */ + struct timeval pr_cutime; /* Cumulative user time. */ + struct timeval pr_cstime; /* Cumulative system time. */ + elf_gregset_t pr_reg; /* GP registers. */ + int pr_fpvalid; /* True if math copro being used. */ + }; + + +#define ELF_PRARGSZ (80) /* Number of chars for args */ + +struct elf_prpsinfo + { + char pr_state; /* Numeric process state. */ + char pr_sname; /* Char for pr_state. */ + char pr_zomb; /* Zombie. */ + char pr_nice; /* Nice val. */ + unsigned long int pr_flag; /* Flags. */ +#if __WORDSIZE == 64 + unsigned int pr_uid; + unsigned int pr_gid; +#else + unsigned short int pr_uid; + unsigned short int pr_gid; +#endif + int pr_pid, pr_ppid, pr_pgrp, pr_sid; + /* Lots missing */ + char pr_fname[16]; /* Filename of executable. */ + char pr_psargs[ELF_PRARGSZ]; /* Initial part of arg list. */ + }; + +/* Addresses. */ +typedef void *psaddr_t; + +/* Register sets. Linux has different names. */ +typedef elf_gregset_t prgregset_t; +typedef elf_fpregset_t prfpregset_t; + +/* We don't have any differences between processes and threads, + therefore have only one PID type. */ +typedef __pid_t lwpid_t; + + +typedef struct elf_prstatus prstatus_t; +typedef struct elf_prpsinfo prpsinfo_t; + +#if __WORDSIZE == 64 + +/* Provide 32-bit variants so that BFD can read 32-bit + core files. */ +#define ELF_NGREG32 38 +typedef struct + { + union + { + unsigned int pr_regs[32]; + double pr_dregs[16]; + } pr_fr; + unsigned int __glibc_reserved; + unsigned int pr_fsr; + unsigned char pr_qcnt; + unsigned char pr_q_entrysize; + unsigned char pr_en; + unsigned int pr_q[64]; + } elf_fpregset_t32; + +typedef unsigned int elf_greg_t32; +typedef elf_greg_t32 elf_gregset_t32[ELF_NGREG32]; + +struct elf_prstatus32 + { + struct elf_siginfo pr_info; /* Info associated with signal. */ + short int pr_cursig; /* Current signal. */ + unsigned int pr_sigpend; /* Set of pending signals. */ + unsigned int pr_sighold; /* Set of held signals. */ + __pid_t pr_pid; + __pid_t pr_ppid; + __pid_t pr_pgrp; + __pid_t pr_sid; + struct + { + int tv_sec, tv_usec; + } pr_utime, /* User time. */ + pr_stime, /* System time. */ + pr_cutime, /* Cumulative user time. */ + pr_cstime; /* Cumulative system time. */ + elf_gregset_t32 pr_reg; /* GP registers. */ + int pr_fpvalid; /* True if math copro being used. */ + }; + +struct elf_prpsinfo32 + { + char pr_state; /* Numeric process state. */ + char pr_sname; /* Char for pr_state. */ + char pr_zomb; /* Zombie. */ + char pr_nice; /* Nice val. */ + unsigned int pr_flag; /* Flags. */ + unsigned short int pr_uid; + unsigned short int pr_gid; + int pr_pid, pr_ppid, pr_pgrp, pr_sid; + /* Lots missing */ + char pr_fname[16]; /* Filename of executable. */ + char pr_psargs[ELF_PRARGSZ]; /* Initial part of arg list. */ + }; + +typedef elf_gregset_t32 prgregset32_t; +typedef elf_fpregset_t32 prfpregset32_t; + +typedef struct elf_prstatus32 prstatus32_t; +typedef struct elf_prpsinfo32 prpsinfo32_t; + +#endif /* sparc64 */ + +__END_DECLS + +#endif /* sys/procfs.h */ diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sys/ptrace.h b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sys/ptrace.h new file mode 100644 index 0000000000..f60549427f --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sys/ptrace.h @@ -0,0 +1,281 @@ +/* `ptrace' debugger support interface. Linux/SPARC version. + Copyright (C) 1996-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#ifndef _SYS_PTRACE_H +#define _SYS_PTRACE_H 1 + +#include <features.h> +#include <bits/types.h> +#include <bits/wordsize.h> + +/* Linux/SPARC kernels up to 2.3.18 do not care much + about what namespace polution, so use a kludge now. */ +#undef PTRACE_GETREGS +#undef PTRACE_SETREGS +#undef PTRACE_GETFPREGS +#undef PTRACE_SETFPREGS +#undef PTRACE_READDATA +#undef PTRACE_WRITEDATA +#undef PTRACE_READTEXT +#undef PTRACE_WRITETEXT +#undef PTRACE_SUNDETACH + +__BEGIN_DECLS + +/* Type of the REQUEST argument to `ptrace.' */ +enum __ptrace_request +{ + /* Indicate that the process making this request should be traced. + All signals received by this process can be intercepted by its + parent, and its parent can use the other `ptrace' requests. */ + PTRACE_TRACEME = 0, +#define PT_TRACE_ME PTRACE_TRACEME + + /* Return the word in the process's text space at address ADDR. */ + PTRACE_PEEKTEXT = 1, +#define PT_READ_I PTRACE_PEEKTEXT + + /* Return the word in the process's data space at address ADDR. */ + PTRACE_PEEKDATA = 2, +#define PT_READ_D PTRACE_PEEKDATA + + /* Return the word in the process's user area at offset ADDR. */ + PTRACE_PEEKUSER = 3, +#define PT_READ_U PTRACE_PEEKUSER + + /* Write the word DATA into the process's text space at address ADDR. */ + PTRACE_POKETEXT = 4, +#define PT_WRITE_I PTRACE_POKETEXT + + /* Write the word DATA into the process's data space at address ADDR. */ + PTRACE_POKEDATA = 5, +#define PT_WRITE_D PTRACE_POKEDATA + + /* Write the word DATA into the process's user area at offset ADDR. */ + PTRACE_POKEUSER = 6, +#define PT_WRITE_U PTRACE_POKEUSER + + /* Continue the process. */ + PTRACE_CONT = 7, +#define PT_CONTINUE PTRACE_CONT + + /* Kill the process. */ + PTRACE_KILL = 8, +#define PT_KILL PTRACE_KILL + + /* Single step the process. + This is not supported on all machines. */ + PTRACE_SINGLESTEP = 9, +#define PT_STEP PTRACE_SINGLESTEP + + /* Detach from a process attached to with PTRACE_ATTACH. */ + PTRACE_DETACH = 11, +#define PT_DETACH PTRACE_DETACH + + /* This define is needed for older programs which were + trying to work around sparc-linux ptrace nastiness. */ +#define PTRACE_SUNDETACH PTRACE_DETACH + +#if __WORDSIZE == 32 + + /* Get all general purpose registers used by a processes. + This is not supported on all machines. */ + PTRACE_GETREGS = 12, +#define PT_GETREGS PTRACE_GETREGS + + /* Set all general purpose registers used by a processes. + This is not supported on all machines. */ + PTRACE_SETREGS = 13, +#define PT_SETREGS PTRACE_SETREGS + + /* Get all floating point registers used by a processes. + This is not supported on all machines. */ + PTRACE_GETFPREGS = 14, +#define PT_GETFPREGS PTRACE_GETFPREGS + + /* Set all floating point registers used by a processes. + This is not supported on all machines. */ + PTRACE_SETFPREGS = 15, +#define PT_SETFPREGS PTRACE_SETFPREGS + +#endif + + /* Attach to a process that is already running. */ + PTRACE_ATTACH = 16, +#define PT_ATTACH PTRACE_ATTACH + + /* Write several bytes at a time. */ + PTRACE_WRITEDATA = 17, +#define PTRACE_WRITEDATA PTRACE_WRITEDATA + + /* Read several bytes at a time. */ + PTRACE_READTEXT = 18, +#define PTRACE_READTEXT PTRACE_READTEXT +#define PTRACE_READDATA PTRACE_READTEXT + + /* Write several bytes at a time. */ + PTRACE_WRITETEXT = 19, +#define PTRACE_WRITETEXT PTRACE_WRITETEXT + +#if __WORDSIZE == 64 + + /* Get all general purpose registers used by a processes. + This is not supported on all machines. */ + PTRACE_GETREGS = 22, +#define PT_GETREGS PTRACE_GETREGS + + /* Set all general purpose registers used by a processes. + This is not supported on all machines. */ + PTRACE_SETREGS = 23, +#define PT_SETREGS PTRACE_SETREGS + +#endif + + /* Continue and stop at the next (return from) syscall. */ + PTRACE_SYSCALL = 24, +#define PTRACE_SYSCALL PTRACE_SYSCALL + +#if __WORDSIZE == 64 + + /* Get all floating point registers used by a processes. + This is not supported on all machines. */ + PTRACE_GETFPREGS = 25, +#define PT_GETFPREGS PTRACE_GETFPREGS + + /* Set all floating point registers used by a processes. + This is not supported on all machines. */ + PTRACE_SETFPREGS = 26, +#define PT_SETFPREGS PTRACE_SETFPREGS + +#endif + + /* Set ptrace filter options. */ + PTRACE_SETOPTIONS = 0x4200, +#define PT_SETOPTIONS PTRACE_SETOPTIONS + + /* Get last ptrace message. */ + PTRACE_GETEVENTMSG = 0x4201, +#define PT_GETEVENTMSG PTRACE_GETEVENTMSG + + /* Get siginfo for process. */ + PTRACE_GETSIGINFO = 0x4202, +#define PT_GETSIGINFO PTRACE_GETSIGINFO + + /* Set new siginfo for process. */ + PTRACE_SETSIGINFO = 0x4203, +#define PT_SETSIGINFO PTRACE_SETSIGINFO + + /* Get register content. */ + PTRACE_GETREGSET = 0x4204, +#define PTRACE_GETREGSET PTRACE_GETREGSET + + /* Set register content. */ + PTRACE_SETREGSET = 0x4205, +#define PTRACE_SETREGSET PTRACE_SETREGSET + + /* Like PTRACE_ATTACH, but do not force tracee to trap and do not affect + signal or group stop state. */ + PTRACE_SEIZE = 0x4206, +#define PTRACE_SEIZE PTRACE_SEIZE + + /* Trap seized tracee. */ + PTRACE_INTERRUPT = 0x4207, +#define PTRACE_INTERRUPT PTRACE_INTERRUPT + + /* Wait for next group event. */ + PTRACE_LISTEN = 0x4208, +#define PTRACE_LISTEN PTRACE_LISTEN + + PTRACE_PEEKSIGINFO = 0x4209, +#define PTRACE_PEEKSIGINFO PTRACE_PEEKSIGINFO + + PTRACE_GETSIGMASK = 0x420a, +#define PTRACE_GETSIGMASK PTRACE_GETSIGMASK + + PTRACE_SETSIGMASK = 0x420b, +#define PTRACE_SETSIGMASK PTRACE_SETSIGMASK + + PTRACE_SECCOMP_GET_FILTER = 0x420c +#define PTRACE_SECCOMP_GET_FILTER PTRACE_SECCOMP_GET_FILTER +}; + + +/* Flag for PTRACE_LISTEN. */ +enum __ptrace_flags +{ + PTRACE_SEIZE_DEVEL = 0x80000000 +}; + +/* Options set using PTRACE_SETOPTIONS. */ +enum __ptrace_setoptions +{ + PTRACE_O_TRACESYSGOOD = 0x00000001, + PTRACE_O_TRACEFORK = 0x00000002, + PTRACE_O_TRACEVFORK = 0x00000004, + PTRACE_O_TRACECLONE = 0x00000008, + PTRACE_O_TRACEEXEC = 0x00000010, + PTRACE_O_TRACEVFORKDONE = 0x00000020, + PTRACE_O_TRACEEXIT = 0x00000040, + PTRACE_O_TRACESECCOMP = 0x00000080, + PTRACE_O_EXITKILL = 0x00100000, + PTRACE_O_SUSPEND_SECCOMP = 0x00200000, + PTRACE_O_MASK = 0x003000ff +}; + +enum __ptrace_eventcodes +{ +/* Wait extended result codes for the above trace options. */ + PTRACE_EVENT_FORK = 1, + PTRACE_EVENT_VFORK = 2, + PTRACE_EVENT_CLONE = 3, + PTRACE_EVENT_EXEC = 4, + PTRACE_EVENT_VFORK_DONE = 5, + PTRACE_EVENT_EXIT = 6, + PTRACE_EVENT_SECCOMP = 7, +/* Extended result codes enabled by means other than options. */ + PTRACE_EVENT_STOP = 128 +}; + +/* Arguments for PTRACE_PEEKSIGINFO. */ +struct __ptrace_peeksiginfo_args +{ + __uint64_t off; /* From which siginfo to start. */ + __uint32_t flags; /* Flags for peeksiginfo. */ + __int32_t nr; /* How many siginfos to take. */ +}; + +enum __ptrace_peeksiginfo_flags +{ + /* Read signals from a shared (process wide) queue. */ + PTRACE_PEEKSIGINFO_SHARED = (1 << 0) +}; + +/* Perform process tracing functions. REQUEST is one of the values + above, and determines the action to be taken. + For all requests except PTRACE_TRACEME, PID specifies the process to be + traced. + + PID and the other arguments described above for the various requests should + appear (those that are used for the particular request) as: + pid_t PID, void *ADDR, int DATA, void *ADDR2 + after REQUEST. */ +extern long int ptrace (enum __ptrace_request __request, ...) __THROW; + +__END_DECLS + +#endif /* _SYS_PTRACE_H */ diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sys/trap.h b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sys/trap.h new file mode 100644 index 0000000000..99b9c60e06 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sys/trap.h @@ -0,0 +1,7 @@ +/* Include Linux/SPARC specific trap definitions. */ +#ifndef _SYS_TRAP_H +#define _SYS_TRAP_H 1 + +#include <asm/traps.h> + +#endif /* sys/trap.h */ diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sys/ucontext.h b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sys/ucontext.h new file mode 100644 index 0000000000..7ce5f2b881 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sys/ucontext.h @@ -0,0 +1,274 @@ +/* Copyright (C) 1998-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#ifndef _SYS_UCONTEXT_H +#define _SYS_UCONTEXT_H 1 + +#include <features.h> + +#include <bits/types/sigset_t.h> +#include <bits/sigcontext.h> +#include <bits/types/stack_t.h> + +#include <bits/wordsize.h> + + +#if __WORDSIZE == 64 + +#define MC_TSTATE 0 +#define MC_PC 1 +#define MC_NPC 2 +#define MC_Y 3 +#define MC_G1 4 +#define MC_G2 5 +#define MC_G3 6 +#define MC_G4 7 +#define MC_G5 8 +#define MC_G6 9 +#define MC_G7 10 +#define MC_O0 11 +#define MC_O1 12 +#define MC_O2 13 +#define MC_O3 14 +#define MC_O4 15 +#define MC_O5 16 +#define MC_O6 17 +#define MC_O7 18 +#define MC_NGREG 19 + +typedef unsigned long mc_greg_t; +typedef mc_greg_t mc_gregset_t[MC_NGREG]; + +#define MC_MAXFPQ 16 +struct mc_fq { + unsigned long *mcfq_addr; + unsigned int mcfq_insn; +}; + +struct mc_fpu { + union { + unsigned int sregs[32]; + unsigned long dregs[32]; + long double qregs[16]; + } mcfpu_fregs; + unsigned long mcfpu_fsr; + unsigned long mcfpu_fprs; + unsigned long mcfpu_gsr; + struct mc_fq *mcfpu_fq; + unsigned char mcfpu_qcnt; + unsigned char mcfpu_qentsz; + unsigned char mcfpu_enab; +}; +typedef struct mc_fpu mc_fpu_t; + +typedef struct { + mc_gregset_t mc_gregs; + mc_greg_t mc_fp; + mc_greg_t mc_i7; + mc_fpu_t mc_fpregs; +} mcontext_t; + +typedef struct ucontext { + struct ucontext *uc_link; + unsigned long uc_flags; + unsigned long __uc_sigmask; + mcontext_t uc_mcontext; + stack_t uc_stack; + sigset_t uc_sigmask; +} ucontext_t; + +#endif /* __WORDISIZE == 64 */ + +/* + * Location of the users' stored registers relative to R0. + * Usage is as an index into a gregset_t array or as u.u_ar0[XX]. + */ +#define REG_PSR (0) +#define REG_PC (1) +#define REG_nPC (2) +#define REG_Y (3) +#define REG_G1 (4) +#define REG_G2 (5) +#define REG_G3 (6) +#define REG_G4 (7) +#define REG_G5 (8) +#define REG_G6 (9) +#define REG_G7 (10) +#define REG_O0 (11) +#define REG_O1 (12) +#define REG_O2 (13) +#define REG_O3 (14) +#define REG_O4 (15) +#define REG_O5 (16) +#define REG_O6 (17) +#define REG_O7 (18) + +/* + * A gregset_t is defined as an array type for compatibility with the reference + * source. This is important due to differences in the way the C language + * treats arrays and structures as parameters. + * + * Note that NGREG is really (sizeof (struct regs) / sizeof (greg_t)), + * but that the ABI defines it absolutely to be 21 (resp. 19). + */ + +#if __WORDSIZE == 64 + +#define REG_ASI (19) +#define REG_FPRS (20) + +#define NGREG 21 +typedef long greg_t; + +#else /* __WORDSIZE == 32 */ + +#define NGREG 19 +typedef int greg_t; + +#endif /* __WORDSIZE == 32 */ + +typedef greg_t gregset_t[NGREG]; + +/* + * The following structures define how a register window can appear on the + * stack. This structure is available (when required) through the `gwins' + * field of an mcontext (nested within ucontext). SPARC_MAXWINDOW is the + * maximum number of outstanding regiters window defined in the SPARC + * architecture (*not* implementation). + */ +#define SPARC_MAXREGWINDOW 31 /* max windows in SPARC arch. */ +struct rwindow + { + greg_t rw_local[8]; /* locals */ + greg_t rw_in[8]; /* ins */ + }; + +#define rw_fp rw_in[6] /* frame pointer */ +#define rw_rtn rw_in[7] /* return address */ + +typedef struct gwindows + { + int wbcnt; + int *spbuf[SPARC_MAXREGWINDOW]; + struct rwindow wbuf[SPARC_MAXREGWINDOW]; + } gwindows_t; + +/* + * Floating point definitions. + */ + +#define MAXFPQ 16 /* max # of fpu queue entries currently supported */ + +/* + * struct fq defines the minimal format of a floating point instruction queue + * entry. The size of entries in the floating point queue are implementation + * dependent. The union FQu is guarenteed to be the first field in any ABI + * conformant system implementation. Any additional fields provided by an + * implementation should not be used applications designed to be ABI conformant. */ + +struct fpq + { + unsigned long *fpq_addr; /* address */ + unsigned long fpq_instr; /* instruction */ + }; + +struct fq + { + union /* FPU inst/addr queue */ + { + double whole; + struct fpq fpq; + } FQu; + }; + +#define FPU_REGS_TYPE unsigned +#define FPU_DREGS_TYPE unsigned long long +#define V7_FPU_FSR_TYPE unsigned +#define V9_FPU_FSR_TYPE unsigned long long +#define V9_FPU_FPRS_TYPE unsigned + +#if __WORDSIZE == 64 + +typedef struct fpu + { + union { /* FPU floating point regs */ + unsigned fpu_regs[32]; /* 32 singles */ + double fpu_dregs[32]; /* 32 doubles */ + long double fpu_qregs[16]; /* 16 quads */ + } fpu_fr; + struct fq *fpu_q; /* ptr to array of FQ entries */ + unsigned long fpu_fsr; /* FPU status register */ + unsigned char fpu_qcnt; /* # of entries in saved FQ */ + unsigned char fpu_q_entrysize; /* # of bytes per FQ entry */ + unsigned char fpu_en; /* flag signifying fpu in use */ + } fpregset_t; + +#else /* __WORDSIZE == 32 */ + +typedef struct fpu + { + union { /* FPU floating point regs */ + __extension__ unsigned long long fpu_regs[32]; /* 32 singles */ + double fpu_dregs[16]; /* 16 doubles */ + } fpu_fr; + struct fq *fpu_q; /* ptr to array of FQ entries */ + unsigned fpu_fsr; /* FPU status register */ + unsigned char fpu_qcnt; /* # of entries in saved FQ */ + unsigned char fpu_q_entrysize; /* # of bytes per FQ entry */ + unsigned char fpu_en; /* flag signifying fpu in use */ + } fpregset_t; + +/* + * The following structure is for associating extra register state with + * the ucontext structure and is kept within the uc_mcontext filler area. + * + * If (xrs_id == XRS_ID) then the xrs_ptr field is a valid pointer to + * extra register state. The exact format of the extra register state + * pointed to by xrs_ptr is platform-dependent. + * + * Note: a platform may or may not manage extra register state. + */ +typedef struct + { + unsigned int xrs_id; /* indicates xrs_ptr validity */ + void * xrs_ptr; /* ptr to extra reg state */ + } xrs_t; + +#define XRS_ID 0x78727300 /* the string "xrs" */ + +typedef struct + { + gregset_t gregs; /* general register set */ + gwindows_t *gwins; /* POSSIBLE pointer to register windows */ + fpregset_t fpregs; /* floating point register set */ + xrs_t xrs; /* POSSIBLE extra register state association */ + long filler[19]; + } mcontext_t; + + +/* Userlevel context. */ +typedef struct ucontext + { + unsigned long uc_flags; + struct ucontext *uc_link; + sigset_t uc_sigmask; + stack_t uc_stack; + mcontext_t uc_mcontext; + } ucontext_t; + +#endif /* __WORDSIZE == 32 */ +#endif /* sys/ucontext.h */ diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sys/user.h b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sys/user.h new file mode 100644 index 0000000000..e9e41ed64e --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sys/user.h @@ -0,0 +1,86 @@ +/* Copyright (C) 2003-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#ifndef _SYS_USER_H +#define _SYS_USER_H 1 + +#include <stddef.h> + +struct sunos_regs +{ + unsigned int psr, pc, npc, y; + unsigned int regs[15]; +}; + +struct sunos_fpqueue +{ + unsigned int *addr; + unsigned int inst; +}; + +struct sunos_fp +{ + union + { + unsigned int regs[32]; + double reg_dbls[16]; + } fregs; + unsigned int fsr; + unsigned int flags; + unsigned int extra; + unsigned int fpq_count; + struct sunos_fpqueue fpq[16]; +}; + +struct sunos_fpu +{ + struct sunos_fp fpstatus; +}; + +/* The SunOS core file header layout. */ +struct user { + unsigned int magic; + unsigned int len; + struct sunos_regs regs; + struct + { + unsigned char a_dynamic :1; + unsigned char a_toolversion :7; + unsigned char a_machtype; + unsigned short a_info; + unsigned int a_text; + unsigned int a_data; + unsigned int a_bss; + unsigned int a_syms; + unsigned int a_entry; + unsigned int a_trsize; + unsigned int a_drsize; + } uexec; + int signal; + size_t u_tsize; + size_t u_dsize; + size_t u_ssize; + char u_comm[17]; + struct sunos_fpu fpu; + unsigned int sigcode; +}; + +#define NBPG 0x2000 +#define UPAGES 1 +#define SUNOS_CORE_MAGIC 0x080456 + +#endif diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sysdep.c b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sysdep.c new file mode 100644 index 0000000000..f86414570d --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sysdep.c @@ -0,0 +1 @@ +#include <sysdeps/unix/sysv/linux/powerpc/sysdep.c> diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sysdep.h b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sysdep.h new file mode 100644 index 0000000000..3400f6959a --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/sysdep.h @@ -0,0 +1,185 @@ +/* Copyright (C) 2000-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Jakub Jelinek <jakub@redhat.com>, 2000. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#ifndef _LINUX_SPARC_SYSDEP_H +#define _LINUX_SPARC_SYSDEP_H 1 + +#include <sysdeps/unix/sysdep.h> +#include <sysdeps/unix/sysv/linux/sysdep.h> +#include <sysdeps/sparc/sysdep.h> + +#ifdef __ASSEMBLER__ + +#define ret retl; nop +#define ret_NOERRNO retl; nop +#define ret_ERRVAL retl; nop +#define r0 %o0 +#define r1 %o1 +#define MOVE(x,y) mov x, y + +#else /* __ASSEMBLER__ */ + +#undef INLINE_SYSCALL +#define INLINE_SYSCALL(name, nr, args...) \ +({ INTERNAL_SYSCALL_DECL(err); \ + unsigned long resultvar = INTERNAL_SYSCALL(name, err, nr, args);\ + if (INTERNAL_SYSCALL_ERROR_P (resultvar, err)) \ + { \ + __set_errno (INTERNAL_SYSCALL_ERRNO (resultvar, err)); \ + resultvar = (unsigned long) -1; \ + } \ + (long) resultvar; \ +}) + +#undef INTERNAL_SYSCALL_DECL +#define INTERNAL_SYSCALL_DECL(err) \ + register long err __asm__("g1"); + +#undef INTERNAL_SYSCALL +#define INTERNAL_SYSCALL(name, err, nr, args...) \ + inline_syscall##nr(__SYSCALL_STRING, err, __NR_##name, args) + +#undef INTERNAL_SYSCALL_NCS +#define INTERNAL_SYSCALL_NCS(name, err, nr, args...) \ + inline_syscall##nr(__SYSCALL_STRING, err, name, args) + +#undef INTERNAL_SYSCALL_ERROR_P +#define INTERNAL_SYSCALL_ERROR_P(val, err) \ + ((void) (val), __builtin_expect((err) != 0, 0)) + +#undef INTERNAL_SYSCALL_ERRNO +#define INTERNAL_SYSCALL_ERRNO(val, err) (-(val)) + +#define inline_syscall0(string,err,name,dummy...) \ +({ \ + register long __o0 __asm__ ("o0"); \ + err = name; \ + __asm __volatile (string : "=r" (err), "=r" (__o0) : \ + "0" (err) : \ + __SYSCALL_CLOBBERS); \ + __o0; \ +}) + +#define inline_syscall1(string,err,name,arg1) \ +({ \ + register long __o0 __asm__ ("o0") = (long)(arg1); \ + err = name; \ + __asm __volatile (string : "=r" (err), "=r" (__o0) : \ + "0" (err), "1" (__o0) : \ + __SYSCALL_CLOBBERS); \ + __o0; \ +}) + +#define inline_syscall2(string,err,name,arg1,arg2) \ +({ \ + register long __o0 __asm__ ("o0") = (long)(arg1); \ + register long __o1 __asm__ ("o1") = (long)(arg2); \ + err = name; \ + __asm __volatile (string : "=r" (err), "=r" (__o0) : \ + "0" (err), "1" (__o0), "r" (__o1) : \ + __SYSCALL_CLOBBERS); \ + __o0; \ +}) + +#define inline_syscall3(string,err,name,arg1,arg2,arg3) \ +({ \ + register long __o0 __asm__ ("o0") = (long)(arg1); \ + register long __o1 __asm__ ("o1") = (long)(arg2); \ + register long __o2 __asm__ ("o2") = (long)(arg3); \ + err = name; \ + __asm __volatile (string : "=r" (err), "=r" (__o0) : \ + "0" (err), "1" (__o0), "r" (__o1), \ + "r" (__o2) : \ + __SYSCALL_CLOBBERS); \ + __o0; \ +}) + +#define inline_syscall4(string,err,name,arg1,arg2,arg3,arg4) \ +({ \ + register long __o0 __asm__ ("o0") = (long)(arg1); \ + register long __o1 __asm__ ("o1") = (long)(arg2); \ + register long __o2 __asm__ ("o2") = (long)(arg3); \ + register long __o3 __asm__ ("o3") = (long)(arg4); \ + err = name; \ + __asm __volatile (string : "=r" (err), "=r" (__o0) : \ + "0" (err), "1" (__o0), "r" (__o1), \ + "r" (__o2), "r" (__o3) : \ + __SYSCALL_CLOBBERS); \ + __o0; \ +}) + +#define inline_syscall5(string,err,name,arg1,arg2,arg3,arg4,arg5) \ +({ \ + register long __o0 __asm__ ("o0") = (long)(arg1); \ + register long __o1 __asm__ ("o1") = (long)(arg2); \ + register long __o2 __asm__ ("o2") = (long)(arg3); \ + register long __o3 __asm__ ("o3") = (long)(arg4); \ + register long __o4 __asm__ ("o4") = (long)(arg5); \ + err = name; \ + __asm __volatile (string : "=r" (err), "=r" (__o0) : \ + "0" (err), "1" (__o0), "r" (__o1), \ + "r" (__o2), "r" (__o3), "r" (__o4) : \ + __SYSCALL_CLOBBERS); \ + __o0; \ +}) + +#define inline_syscall6(string,err,name,arg1,arg2,arg3,arg4,arg5,arg6) \ +({ \ + register long __o0 __asm__ ("o0") = (long)(arg1); \ + register long __o1 __asm__ ("o1") = (long)(arg2); \ + register long __o2 __asm__ ("o2") = (long)(arg3); \ + register long __o3 __asm__ ("o3") = (long)(arg4); \ + register long __o4 __asm__ ("o4") = (long)(arg5); \ + register long __o5 __asm__ ("o5") = (long)(arg6); \ + err = name; \ + __asm __volatile (string : "=r" (err), "=r" (__o0) : \ + "0" (err), "1" (__o0), "r" (__o1), \ + "r" (__o2), "r" (__o3), "r" (__o4), \ + "r" (__o5) : \ + __SYSCALL_CLOBBERS); \ + __o0; \ +}) + +#define INLINE_CLONE_SYSCALL(arg1,arg2,arg3,arg4,arg5) \ +({ \ + register long __o0 __asm__ ("o0") = (long)(arg1); \ + register long __o1 __asm__ ("o1") = (long)(arg2); \ + register long __o2 __asm__ ("o2") = (long)(arg3); \ + register long __o3 __asm__ ("o3") = (long)(arg4); \ + register long __o4 __asm__ ("o4") = (long)(arg5); \ + register long __g1 __asm__ ("g1") = __NR_clone; \ + __asm __volatile (__SYSCALL_STRING : \ + "=r" (__g1), "=r" (__o0), "=r" (__o1) : \ + "0" (__g1), "1" (__o0), "2" (__o1), \ + "r" (__o2), "r" (__o3), "r" (__o4) : \ + __SYSCALL_CLOBBERS); \ + if (INTERNAL_SYSCALL_ERROR_P (__o0, __g1)) \ + { \ + __set_errno (INTERNAL_SYSCALL_ERRNO (__o0, __g1)); \ + __o0 = -1L; \ + } \ + else \ + { \ + __o0 &= (__o1 - 1); \ + } \ + __o0; \ +}) + +#endif /* __ASSEMBLER__ */ + +#endif /* _LINUX_SPARC_SYSDEP_H */ diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/sparc/system.c b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/system.c new file mode 100644 index 0000000000..2fc196bf5a --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/sparc/system.c @@ -0,0 +1,29 @@ +/* Copyright (C) 2003-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +/* We have to and actually can handle cancelable system(). The big + problem: we have to kill the child process if necessary. To do + this a cleanup handler has to be registered and is has to be able + to find the PID of the child. The main problem is to reliable have + the PID when needed. It is not necessary for the parent thread to + return. It might still be in the kernel when the cancellation + request comes. Therefore we have to use the clone() calls ability + to have the kernel write the PID into the user-level variable. */ +#define FORK() \ + INLINE_CLONE_SYSCALL (CLONE_PARENT_SETTID | SIGCHLD, 0, &pid, NULL, NULL) + +#include "../system.c" |