diff options
Diffstat (limited to 'REORG.TODO/sysdeps/unix/sysv/linux/sparc/sparc64')
68 files changed, 5568 insertions, 0 deletions
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; +} |