From bf293afeca043b28fd1d07e179106f337aa9ec58 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Fri, 3 Jan 2003 01:35:14 +0000 Subject: Update. 2003-01-02 Jakub Jelinek * sysdeps/unix/sysv/linux/arm/sigaction.c (__sigaction, sigaction): Protect weak_alias and libc_hidden_weak with #ifndef LIBC_SIGACTION. * sysdeps/unix/sysv/linux/ia64/sigaction.c (__sigaction, sigaction): Likewise. * sysdeps/unix/sysv/linux/mips/sigaction.c (__sigaction, sigaction): Likewise. * sysdeps/unix/sysv/linux/s390/s390-64/sigaction.c (__sigaction, sigaction): Likewise. * sysdeps/unix/sysv/linux/sparc/sparc32/sigaction.c (__sigaction, sigaction): Likewise. * sysdeps/unix/sysv/linux/sparc/sparc64/sigaction.c (__sigaction, sigaction): Likewise. * sysdeps/unix/sysv/linux/x86_64/sigaction.c (__sigaction, sigaction): Likewise. * sysdeps/unix/sysv/linux/i386/sigaction.c (__sigaction, sigaction): Likewise. Remove SIGCANCEL handling here. * sysdeps/unix/sysv/linux/sigaction.c (__sigaction, sigaction): Likewise. --- nptl/sysdeps/pthread/sigaction.c | 35 ++++++++++++++++++++++++++++++++--- 1 file changed, 32 insertions(+), 3 deletions(-) (limited to 'nptl/sysdeps') diff --git a/nptl/sysdeps/pthread/sigaction.c b/nptl/sysdeps/pthread/sigaction.c index c3f6f435dd..e3554ddb44 100644 --- a/nptl/sysdeps/pthread/sigaction.c +++ b/nptl/sysdeps/pthread/sigaction.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2002 Free Software Foundation, Inc. +/* Copyright (C) 2002, 2003 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 2002. @@ -17,8 +17,37 @@ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ +/* This is tricky. GCC doesn't like #include_next in the primary + source file and even if it did, the first #include_next is this + exact file anyway. */ +#ifndef LIBC_SIGACTION + /* We use the libc implementation but we tell it to not allow SIGCANCEL to be handled. */ -#define SIGCANCEL __SIGRTMIN +# define SIGCANCEL __SIGRTMIN +# define LIBC_SIGACTION 1 + +# include + +int +__sigaction (sig, act, oact) + int sig; + const struct sigaction *act; + struct sigaction *oact; +{ + if (sig == SIGCANCEL) + { + __set_errno (EINVAL); + return -1; + } + + return __libc_sigaction (sig, act, oact); +} +libc_hidden_weak (__sigaction) +weak_alias (__sigaction, sigaction) + +#else + +# include_next -#include_next +#endif /* LIBC_SIGACTION */ -- cgit 1.4.1