* sysdeps/unix/sysv/linux/sigaction.c: If SIGCANCEL is defined
	define sigaction and __sigaction as wrappers around
	__libc_sigaction which rejects changing SIGCANCEL.
	* sysdeps/unix/sysv/linux/i386/sigaction.c: Likewise.
This commit is contained in:
Ulrich Drepper 2002-09-18 08:27:02 +00:00
parent b7cb624be9
commit ace55c73dd
3 changed files with 43 additions and 0 deletions

View File

@ -1,5 +1,10 @@
2002-09-18 Ulrich Drepper <drepper@redhat.com> 2002-09-18 Ulrich Drepper <drepper@redhat.com>
* sysdeps/unix/sysv/linux/sigaction.c: If SIGCANCEL is defined
define sigaction and __sigaction as wrappers around
__libc_sigaction which rejects changing SIGCANCEL.
* sysdeps/unix/sysv/linux/i386/sigaction.c: Likewise.
* sysdeps/unix/sysv/linux/i386/clone.S: Add support for SETTLS and * sysdeps/unix/sysv/linux/i386/clone.S: Add support for SETTLS and
SETTID/CLEARTID. SETTID/CLEARTID.

View File

@ -157,9 +157,28 @@ __libc_sigaction (int sig, const struct sigaction *act, struct sigaction *oact)
#endif #endif
} }
#ifndef SIGCANCEL
weak_alias (__libc_sigaction, __sigaction) weak_alias (__libc_sigaction, __sigaction)
libc_hidden_weak (__sigaction) libc_hidden_weak (__sigaction)
weak_alias (__libc_sigaction, sigaction) weak_alias (__libc_sigaction, sigaction)
#else
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)
#endif
/* NOTE: Please think twice before making any changes to the bits of /* NOTE: Please think twice before making any changes to the bits of
code below. GDB needs some intimate knowledge about it to code below. GDB needs some intimate knowledge about it to

View File

@ -133,6 +133,25 @@ __libc_sigaction (sig, act, oact)
#endif #endif
} }
#ifndef SIGCANCEL
weak_alias (__libc_sigaction, __sigaction) weak_alias (__libc_sigaction, __sigaction)
libc_hidden_weak (__sigaction) libc_hidden_weak (__sigaction)
weak_alias (__libc_sigaction, sigaction) weak_alias (__libc_sigaction, sigaction)
#else
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)
#endif