diff options
Diffstat (limited to 'sysdeps/unix/sysv/linux/sparc/sparc64')
59 files changed, 254 insertions, 187 deletions
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/Makefile b/sysdeps/unix/sysv/linux/sparc/sparc64/Makefile index 715af3df7b..7ea433f21f 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/Makefile +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/Makefile @@ -7,3 +7,8 @@ LD += -melf64_sparc ifeq ($(subdir),stdlib) sysdep_routines += __start_context endif + +ifeq ($(subdir),nptl) +CFLAGS-pause.c += -fexceptions +CFLAGS-sigsuspend.c += -fexceptions +endif diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/Versions b/sysdeps/unix/sysv/linux/sparc/sparc64/Versions index cfcc15b119..fbea1bb2ef 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/Versions +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/Versions @@ -9,3 +9,11 @@ libc { wordexp; } } + +librt { + GLIBC_2.3.3 { + # Changed timer_t. + timer_create; timer_delete; timer_getoverrun; timer_gettime; + timer_settime; + } +} diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/____longjmp_chk.S b/sysdeps/unix/sysv/linux/sparc/sparc64/____longjmp_chk.S index 5885d84770..f33d25d908 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/____longjmp_chk.S +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/____longjmp_chk.S @@ -1,4 +1,4 @@ -/* Copyright (C) 2009-2014 Free Software Foundation, Inc. +/* Copyright (C) 2009-2015 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/__start_context.S b/sysdeps/unix/sysv/linux/sparc/sparc64/__start_context.S index 48e72fa823..d409c22b27 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/__start_context.S +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/__start_context.S @@ -1,4 +1,4 @@ -/* Copyright (C) 2012-2014 Free Software Foundation, Inc. +/* Copyright (C) 2012-2015 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/brk.S b/sysdeps/unix/sysv/linux/sparc/sparc64/brk.S index 567163f907..29b6e8703d 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/brk.S +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/brk.S @@ -1,4 +1,4 @@ -/* Copyright (C) 1997-2014 Free Software Foundation, Inc. +/* Copyright (C) 1997-2015 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Richard Henderson <richard@gnu.ai.mit.edu>, 1997. @@ -89,7 +89,7 @@ ENTRY (__brk) #endif st %o0, [%g1] #else -#ifndef NOT_IN_libc +#if IS_IN (libc) call HIDDEN_JUMPTARGET(__errno_location) #else call __errno_location diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/nptl/c++-types.data b/sysdeps/unix/sysv/linux/sparc/sparc64/c++-types.data index 5a04f4939a..5a04f4939a 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/nptl/c++-types.data +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/c++-types.data diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/clone.S b/sysdeps/unix/sysv/linux/sparc/sparc64/clone.S index 57d75d2d26..27c8b3d9dc 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/clone.S +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/clone.S @@ -1,4 +1,4 @@ -/* Copyright (C) 1997-2014 Free Software Foundation, Inc. +/* Copyright (C) 1997-2015 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Richard Henderson (rth@tamu.edu). @@ -77,7 +77,6 @@ END(__clone) .type __thread_start,@function __thread_start: -#ifdef RESET_PID sethi %hi(CLONE_THREAD), %l0 andcc %g4, %l0, %g0 bne,pt %icc, 1f @@ -89,7 +88,6 @@ __thread_start: 2: st %o0,[%g7 + PID] st %o0,[%g7 + TID] 1: -#endif mov %g0, %fp /* terminate backtrace */ call %g2 mov %g3,%o0 diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/configure b/sysdeps/unix/sysv/linux/sparc/sparc64/configure new file mode 100644 index 0000000000..9e5ea3c86a --- /dev/null +++ b/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_localedir='${exec_prefix}/lib/locale' + fi + ;; +esac diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/configure.ac b/sysdeps/unix/sysv/linux/sparc/sparc64/configure.ac new file mode 100644 index 0000000000..979bb8d923 --- /dev/null +++ b/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/sysdeps/unix/sysv/linux/sparc/sparc64/dl-cache.h b/sysdeps/unix/sysv/linux/sparc/sparc64/dl-cache.h index 7409e0db88..a970de4308 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/dl-cache.h +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/dl-cache.h @@ -1,5 +1,5 @@ /* Support for reading /etc/ld.so.cache files written by Linux ldconfig. - Copyright (C) 1999-2014 Free Software Foundation, Inc. + Copyright (C) 1999-2015 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/dl-fxstatat64.c b/sysdeps/unix/sysv/linux/sparc/sparc64/dl-fxstatat64.c index 339e5f4335..330b33f7c7 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/dl-fxstatat64.c +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/dl-fxstatat64.c @@ -1,6 +1 @@ -/* In this implementation we do not really care whether the call fails - because of missing kernel support since we do not even call the - function in this case. */ -#undef __ASSUME_ATFCTS -#define __ASSUME_ATFCTS 1 #include "fxstatat.c" diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/get_clockfreq.c b/sysdeps/unix/sysv/linux/sparc/sparc64/get_clockfreq.c index 99ee15cfba..27dfdbc8a0 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/get_clockfreq.c +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/get_clockfreq.c @@ -1,5 +1,5 @@ /* Get frequency of the system processor. sparc64 version. - Copyright (C) 2001-2014 Free Software Foundation, Inc. + Copyright (C) 2001-2015 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/getcontext.S b/sysdeps/unix/sysv/linux/sparc/sparc64/getcontext.S index 7913b5673c..d3e08aeb7c 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/getcontext.S +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/getcontext.S @@ -1,4 +1,4 @@ -/* Copyright (C) 1997-2014 Free Software Foundation, Inc. +/* Copyright (C) 1997-2015 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Richard Henderson (rth@tamu.edu). diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/nptl/ld.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/ld.abilist index 9ad04eddad..9ad04eddad 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/nptl/ld.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/ld.abilist diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libBrokenLocale.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libBrokenLocale.abilist index b7aa242c86..b7aa242c86 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libBrokenLocale.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libBrokenLocale.abilist diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libanl.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libanl.abilist index c9755d8a33..c9755d8a33 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libanl.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libanl.abilist diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist index 35987faa6e..fa70645c98 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libc.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist @@ -1908,6 +1908,9 @@ GLIBC_2.2.4 GLIBC_2.2.6 GLIBC_2.2.6 A __nanosleep F +GLIBC_2.22 + GLIBC_2.22 A + fmemopen F GLIBC_2.3 GLIBC_2.3 A __ctype_b_loc F diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libcrypt.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libcrypt.abilist index 1df145f260..1df145f260 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libcrypt.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libcrypt.abilist diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libdl.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libdl.abilist index 62e6b41edb..62e6b41edb 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libdl.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libdl.abilist diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libm.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist index 2b41d34225..2b41d34225 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libm.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libnsl.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libnsl.abilist index 4241e2d887..4241e2d887 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libnsl.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libnsl.abilist diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libpthread.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist index a84c113594..a84c113594 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libpthread.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libresolv.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libresolv.abilist index 808d0f2f74..808d0f2f74 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libresolv.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libresolv.abilist diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/nptl/librt.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist index d710117080..d710117080 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/nptl/librt.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libthread_db.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libthread_db.abilist index f33138067c..f33138067c 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libthread_db.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libthread_db.abilist diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libutil.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libutil.abilist index 7422687e3c..7422687e3c 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libutil.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libutil.abilist diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/nptl/localplt.data b/sysdeps/unix/sysv/linux/sparc/sparc64/localplt.data index 6f1769c026..633cfe4493 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/nptl/localplt.data +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/localplt.data @@ -17,3 +17,11 @@ libc.so: malloc libc.so: memalign libc.so: realloc libm.so: matherr +# The dynamic loader uses __libc_memalign internally to allocate +# aligned TLS storage. The other malloc family of functions are +# expected to allow user symbol interposition. +ld.so: __libc_memalign +ld.so: malloc +ld.so: calloc +ld.so: realloc +ld.so: free diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/longjmp.S b/sysdeps/unix/sysv/linux/sparc/sparc64/longjmp.S index ab8c83788f..908715e8f1 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/longjmp.S +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/longjmp.S @@ -1,4 +1,4 @@ -/* Copyright (C) 1997-2014 Free Software Foundation, Inc. +/* Copyright (C) 1997-2015 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Richard Henderson (rth@tamu.edu). diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/makecontext.c b/sysdeps/unix/sysv/linux/sparc/sparc64/makecontext.c index 958b6cd0c2..5daba79d83 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/makecontext.c +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/makecontext.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2014 Free Software Foundation, Inc. +/* Copyright (C) 2001-2015 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Jakub Jelinek <jakub@redhat.com>. diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/msgctl.c b/sysdeps/unix/sysv/linux/sparc/sparc64/msgctl.c index 766087ea9d..88a36dcf0f 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/msgctl.c +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/msgctl.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1995-2014 Free Software Foundation, Inc. +/* Copyright (C) 1995-2015 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, August 1995. diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/msgrcv.c b/sysdeps/unix/sysv/linux/sparc/sparc64/msgrcv.c index 36c947f7b0..169ac532b3 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/msgrcv.c +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/msgrcv.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2010-2014 Free Software Foundation, Inc. +/* Copyright (C) 2010-2015 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -23,24 +23,10 @@ #include <sys/syscall.h> ssize_t -__libc_msgrcv (msqid, msgp, msgsz, msgtyp, msgflg) - int msqid; - void *msgp; - size_t msgsz; - long int msgtyp; - int msgflg; +__libc_msgrcv (int msqid, void *msgp, size_t msgsz, long int msgtyp, + int msgflg) { - if (SINGLE_THREAD_P) - return INLINE_SYSCALL (ipc, 6, IPCOP_msgrcv, msqid, msgsz, msgflg, - msgp, msgtyp); - - int oldtype = LIBC_CANCEL_ASYNC (); - - ssize_t result = INLINE_SYSCALL (ipc, 6, IPCOP_msgrcv, msqid, msgsz, msgflg, - msgp, msgtyp); - - LIBC_CANCEL_RESET (oldtype); - - return result; + return SYSCALL_CANCEL (ipc, IPCOP_msgrcv, msqid, msgsz, msgflg, + msgp, msgtyp); } weak_alias (__libc_msgrcv, msgrcv) diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/pipe.S b/sysdeps/unix/sysv/linux/sparc/sparc64/pipe.S index 01967d6de4..b6f3604235 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/pipe.S +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/pipe.S @@ -1,4 +1,4 @@ -/* Copyright (C) 1997-2014 Free Software Foundation, Inc. +/* Copyright (C) 1997-2015 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Miguel de Icaza <miguel@gnu.ai.mit.edu>, 1997. diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/profil-counter.h b/sysdeps/unix/sysv/linux/sparc/sparc64/profil-counter.h index 38f7270ac2..eb511013b5 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/profil-counter.h +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/profil-counter.h @@ -1,5 +1,5 @@ /* Low-level statistical profiling support function. Linux/Sparc64 version. - Copyright (C) 1997-2014 Free Software Foundation, Inc. + Copyright (C) 1997-2015 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -19,7 +19,10 @@ #include <signal.h> void -profil_counter (int signo, struct sigcontext *si) +__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/sysdeps/unix/sysv/linux/sparc/sparc64/register-dump.h b/sysdeps/unix/sysv/linux/sparc/sparc64/register-dump.h index 3d44d636a9..2a79f2172a 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/register-dump.h +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/register-dump.h @@ -1,5 +1,5 @@ /* Dump registers. - Copyright (C) 1999-2014 Free Software Foundation, Inc. + Copyright (C) 1999-2015 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Jakub Jelinek <jj@ultra.linux.cz>, 1999. diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/semctl.c b/sysdeps/unix/sysv/linux/sparc/sparc64/semctl.c index fa541bfb80..2714728a63 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/semctl.c +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/semctl.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1995-2014 Free Software Foundation, Inc. +/* Copyright (C) 1995-2015 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, August 1995. diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/setcontext.S b/sysdeps/unix/sysv/linux/sparc/sparc64/setcontext.S index b68e8288bd..ce4b2f0f07 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/setcontext.S +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/setcontext.S @@ -1,4 +1,4 @@ -/* Copyright (C) 1997-2014 Free Software Foundation, Inc. +/* Copyright (C) 1997-2015 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Richard Henderson (rth@tamu.edu). diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/setjmp.S b/sysdeps/unix/sysv/linux/sparc/sparc64/setjmp.S index b0448b4cfb..a546935ffd 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/setjmp.S +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/setjmp.S @@ -1,4 +1,4 @@ -/* Copyright (C) 1997-2014 Free Software Foundation, Inc. +/* Copyright (C) 1997-2015 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Richard Henderson (rth@tamu.edu). diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/shlib-versions b/sysdeps/unix/sysv/linux/sparc/sparc64/shlib-versions new file mode 100644 index 0000000000..9333bbd7a3 --- /dev/null +++ b/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/sysdeps/unix/sysv/linux/sparc/sparc64/shmctl.c b/sysdeps/unix/sysv/linux/sparc/sparc64/shmctl.c index b844f38ecf..bb76b192fe 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/shmctl.c +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/shmctl.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1995-2014 Free Software Foundation, Inc. +/* Copyright (C) 1995-2015 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, August 1995. diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/sigaction.c b/sysdeps/unix/sysv/linux/sparc/sparc64/sigaction.c index 665e658cf9..34258e5cd0 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/sigaction.c +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/sigaction.c @@ -1,5 +1,5 @@ /* POSIX.1 sigaction call for Linux/SPARC64. - Copyright (C) 1997-2014 Free Software Foundation, Inc. + Copyright (C) 1997-2015 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>. @@ -63,15 +63,8 @@ __libc_sigaction (int sig, const struct sigaction *act, struct sigaction *oact) } libc_hidden_def (__libc_sigaction) -#ifdef WRAPPER_INCLUDE -# include WRAPPER_INCLUDE -#endif +#include <nptl/sigaction.c> -#ifndef LIBC_SIGACTION -weak_alias (__libc_sigaction, __sigaction); -libc_hidden_weak (__sigaction) -weak_alias (__libc_sigaction, sigaction); -#endif static void __rt_sigreturn_stub (void) diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/sigcontextinfo.h b/sysdeps/unix/sysv/linux/sparc/sparc64/sigcontextinfo.h index 6e505b596b..d0f18d3a87 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/sigcontextinfo.h +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/sigcontextinfo.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1999-2014 Free Software Foundation, Inc. +/* Copyright (C) 1999-2015 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Jakub Jelinek <jj@ultra.linux.cz>, 1999. diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/sigpending.c b/sysdeps/unix/sysv/linux/sparc/sparc64/sigpending.c index 6e16bf90e6..61b5089d0e 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/sigpending.c +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/sigpending.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1997-2014 Free Software Foundation, Inc. +/* Copyright (C) 1997-2015 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/sigprocmask.c b/sysdeps/unix/sysv/linux/sparc/sparc64/sigprocmask.c index 66065650be..74ccf55c53 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/sigprocmask.c +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/sigprocmask.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1997-2014 Free Software Foundation, Inc. +/* Copyright (C) 1997-2015 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/sizes.h b/sysdeps/unix/sysv/linux/sparc/sparc64/sizes.h index 966996e9be..a4f87f574d 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/sizes.h +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/sizes.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1998-2014 Free Software Foundation, Inc. +/* Copyright (C) 1998-2015 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/socket.S b/sysdeps/unix/sysv/linux/sparc/sparc64/socket.S deleted file mode 100644 index d262e36883..0000000000 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/socket.S +++ /dev/null @@ -1,118 +0,0 @@ -/* Copyright (C) 1997-2014 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-cancel.h> -#include <socketcall.h> - -#define P(a, b) P2(a, b) -#define P2(a, b) a##b - -#ifndef NARGS -#ifdef socket -#error NARGS not defined -#endif -#define NARGS 3 -#endif - - .text -/* The socket-oriented system calls are handled unusually in Linux. - They are all gated through the single `socketcall' system call number. - `socketcall' takes two arguments: the first is the subcode, specifying - which socket function is being called; and the second is a pointer to - the arguments to the specific function. - - The .S files for the other calls just #define socket and #include this. */ - -#ifndef __socket -# ifndef NO_WEAK_ALIAS -# define __socket P(__,socket) -# else -# define __socket socket -# endif -#endif - - .globl __syscall_error -ENTRY(__socket) - - /* Drop up to 6 arguments (recvfrom) into the memory allocated by - the caller for varargs, since that's really what we have. */ - stx %o0, [%sp + STACK_BIAS + 128 + 0] - stx %o1, [%sp + STACK_BIAS + 128 + 8] -#if NARGS > 2 - stx %o2, [%sp + STACK_BIAS + 128 + 16] -#if NARGS > 3 - stx %o3, [%sp + STACK_BIAS + 128 + 24] -#if NARGS > 4 - stx %o4, [%sp + STACK_BIAS + 128 + 32] -#if NARGS > 5 - stx %o5, [%sp + STACK_BIAS + 128 + 40] -#endif -#endif -#endif -#endif - -#if defined NEED_CANCELLATION && defined CENABLE - SINGLE_THREAD_P - cmp %g1, 0 - bne .Lsocket_cancel -#endif - mov P(SOCKOP_,socket), %o0 /* arg 1: socket subfunction */ - add %sp, STACK_BIAS + 128, %o1 /* arg 2: parameter block */ - LOADSYSCALL(socketcall) - ta 0x6d - - bcc,pt %xcc, 1f - mov %o7, %g1 - call __syscall_error - mov %g1, %o7 -1: retl - nop - -#if defined NEED_CANCELLATION && defined CENABLE -.Lsocket_cancel: - save %sp, -160, %sp - cfi_def_cfa_register (%fp) - cfi_window_save - cfi_register (%o7, %i7) - CENABLE - nop - mov %o0, %l0 - add %sp, 160 + STACK_BIAS + 128, %o1 - mov P(SOCKOP_,socket), %o0 - LOADSYSCALL(socketcall) - 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 -#endif - -END(__socket) - -#ifndef NO_WEAK_ALIAS -weak_alias (__socket, socket) -#endif diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/swapcontext.c b/sysdeps/unix/sysv/linux/sparc/sparc64/swapcontext.c index 14b1061ce6..a63cbc212a 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/swapcontext.c +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/swapcontext.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2014 Free Software Foundation, Inc. +/* Copyright (C) 2001-2015 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Jakub Jelinek <jakub@redhat.com>. diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/syscall.S b/sysdeps/unix/sysv/linux/sparc/sparc64/syscall.S index a9eeac4e73..b24c45e023 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/syscall.S +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/syscall.S @@ -1,4 +1,4 @@ -/* Copyright (C) 1997-2014 Free Software Foundation, Inc. +/* Copyright (C) 1997-2015 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list b/sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list index ca2953c6b9..3d1c1daac9 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list @@ -4,7 +4,7 @@ select - select C:5 __select select accept - accept C:3 __libc_accept __accept accept bind - bind 3 __bind bind -connect - connect C:3 __libc_connect __connect_internal __connect connect +connect - connect C:3 __libc_connect __connect connect getpeername - getpeername 3 __getpeername getpeername getsockname - getsockname 3 __getsockname getsockname getsockopt - getsockopt 5 __getsockopt getsockopt diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h b/sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h new file mode 100644 index 0000000000..6e58765e46 --- /dev/null +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h @@ -0,0 +1,109 @@ +/* Copyright (C) 2002-2015 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/sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h b/sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h index 53df66e21b..5b76f15164 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1997-2014 Free Software Foundation, Inc. +/* Copyright (C) 1997-2015 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Richard Henderson <richard@gnu.ai.mit.edu>, 1997. @@ -21,7 +21,7 @@ #include <sysdeps/unix/sysv/linux/sparc/sysdep.h> -#ifdef IS_IN_rtld +#if IS_IN (rtld) # include <dl-sysdep.h> /* Defines RTLD_PRIVATE_ERRNO. */ #endif #include <tls.h> @@ -89,7 +89,7 @@ ENTRY(name); \ mov -1, %o0; # elif defined _LIBC_REENTRANT -# ifndef NOT_IN_libc +# if IS_IN (libc) # define SYSCALL_ERROR_ERRNO __libc_errno # else # define SYSCALL_ERROR_ERRNO errno @@ -140,7 +140,7 @@ ENTRY(name); \ #define STACK_BIAS 2047 /* Pointer mangling support. */ -#if defined NOT_IN_libc && defined IS_IN_rtld +#if IS_IN (rtld) /* We cannot use the thread descriptor because in ld.so we use setjmp earlier than the descriptor is initialized. */ #else diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/timer_create.c b/sysdeps/unix/sysv/linux/sparc/sparc64/timer_create.c new file mode 100644 index 0000000000..d307135003 --- /dev/null +++ b/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/sysdeps/unix/sysv/linux/sparc/sparc64/timer_delete.c b/sysdeps/unix/sysv/linux/sparc/sparc64/timer_delete.c new file mode 100644 index 0000000000..2dd94f5c7a --- /dev/null +++ b/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/sysdeps/unix/sysv/linux/sparc/sparc64/timer_getoverr.c b/sysdeps/unix/sysv/linux/sparc/sparc64/timer_getoverr.c new file mode 100644 index 0000000000..22eaff5cda --- /dev/null +++ b/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/sysdeps/unix/sysv/linux/sparc/sparc64/timer_gettime.c b/sysdeps/unix/sysv/linux/sparc/sparc64/timer_gettime.c new file mode 100644 index 0000000000..cea524bae5 --- /dev/null +++ b/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/sysdeps/unix/sysv/linux/sparc/sparc64/timer_settime.c b/sysdeps/unix/sysv/linux/sparc/sparc64/timer_settime.c new file mode 100644 index 0000000000..fa231149d5 --- /dev/null +++ b/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/sysdeps/unix/sysv/linux/sparc/sparc64/ucontext_i.h b/sysdeps/unix/sysv/linux/sparc/sparc64/ucontext_i.h index ee20237079..446f89d17a 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/ucontext_i.h +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/ucontext_i.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2014 Free Software Foundation, Inc. +/* Copyright (C) 2001-2015 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Jakub Jelinek <jakub@redhat.com>. diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S b/sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S new file mode 100644 index 0000000000..6939ba3522 --- /dev/null +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S @@ -0,0 +1,49 @@ +/* Copyright (C) 2004-2015 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(__vfork) + ld [%g7 + PID], %o5 + sethi %hi(0x80000000), %o3 + cmp %o5, 0 + sub %g0, %o5, %o4 + move %icc, %o3, %o4 + st %o4, [%g7 + PID] + + LOADSYSCALL(vfork) + ta 0x6d + bcc,pt %xcc, 2f + mov %o7, %g1 + st %o5, [%g7 + PID] + call __syscall_error + mov %g1, %o7 +2: sub %o1, 1, %o1 + andcc %o0, %o1, %o0 + bne,a,pt %icc, 1f + st %o5, [%g7 + PID] +1: retl + nop +END(__vfork) + +libc_hidden_def (__vfork) +weak_alias (__vfork, vfork) +strong_alias (__vfork, __libc_vfork) diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/wordexp.c b/sysdeps/unix/sysv/linux/sparc/sparc64/wordexp.c index aed2c9e529..4a9d891a1c 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/wordexp.c +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/wordexp.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2014 Free Software Foundation, Inc. +/* Copyright (C) 2001-2015 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/xstatconv.c b/sysdeps/unix/sysv/linux/sparc/sparc64/xstatconv.c index 87cc988aa2..a9578a5008 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/xstatconv.c +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/xstatconv.c @@ -1,5 +1,5 @@ /* Convert between the kernel's `struct stat' format, and libc's. - Copyright (C) 1991-2014 Free Software Foundation, Inc. + Copyright (C) 1991-2015 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -21,7 +21,6 @@ #include <sys/stat.h> #include <kernel_stat.h> #include <string.h> -#include <kernel-features.h> int __xstat_conv (int vers, struct kernel_stat *kbuf, void *ubuf) |