diff options
author | Ulrich Drepper <drepper@redhat.com> | 2003-01-03 01:35:14 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2003-01-03 01:35:14 +0000 |
commit | bf293afeca043b28fd1d07e179106f337aa9ec58 (patch) | |
tree | cbd15671dfeef397742c9b34a136ac8345d13a54 /nptl/sysdeps/pthread | |
parent | b0c9067d7b93d240363167e0778a86eae939eb4d (diff) | |
download | glibc-bf293afeca043b28fd1d07e179106f337aa9ec58.zip glibc-bf293afeca043b28fd1d07e179106f337aa9ec58.tar.gz glibc-bf293afeca043b28fd1d07e179106f337aa9ec58.tar.bz2 |
Update.
2003-01-02 Jakub Jelinek <jakub@redhat.com>
* 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.
Diffstat (limited to 'nptl/sysdeps/pthread')
-rw-r--r-- | nptl/sysdeps/pthread/sigaction.c | 35 |
1 files changed, 32 insertions, 3 deletions
diff --git a/nptl/sysdeps/pthread/sigaction.c b/nptl/sysdeps/pthread/sigaction.c index c3f6f43..e3554dd 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 <drepper@redhat.com>, 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 <nptl/sysdeps/pthread/sigaction.c> + +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 <sigaction.c> -#include_next <sigaction.c> +#endif /* LIBC_SIGACTION */ |