diff options
author | Ulrich Drepper <drepper@redhat.com> | 2003-04-13 02:05:36 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2003-04-13 02:05:36 +0000 |
commit | 7cc1894ca82cb5709205eed6adfbb002ab02de79 (patch) | |
tree | b2c4b6437db735066ca7eb08586bb7c6387a5204 /sysdeps/unix/sysv/linux/i386/sigaction.c | |
parent | 177d1ad3ac9aab9b8ae7e7f70c2c66b6bdb876ee (diff) | |
download | glibc-7cc1894ca82cb5709205eed6adfbb002ab02de79.tar.gz glibc-7cc1894ca82cb5709205eed6adfbb002ab02de79.tar.xz glibc-7cc1894ca82cb5709205eed6adfbb002ab02de79.zip |
Update.
2003-04-12 Ulrich Drepper <drepper@redhat.com> * sysdeps/generic/dl-tls.c (_dl_allocate_tls_init): Add cast to avoid warning. * sysdeps/unix/sysv/linux/i386/sigaction.c (__libc_sigaction): If __ASSUME_VSYSCALL is defined don't add restorer. * sysdeps/unix/sysv/linux/kernel-features.h: Define __ASSUME_VSYSCALL for 2.5.53.
Diffstat (limited to 'sysdeps/unix/sysv/linux/i386/sigaction.c')
-rw-r--r-- | sysdeps/unix/sysv/linux/i386/sigaction.c | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/sysdeps/unix/sysv/linux/i386/sigaction.c b/sysdeps/unix/sysv/linux/i386/sigaction.c index c2f0a0f5d1..55252632dc 100644 --- a/sysdeps/unix/sysv/linux/i386/sigaction.c +++ b/sysdeps/unix/sysv/linux/i386/sigaction.c @@ -88,10 +88,15 @@ __libc_sigaction (int sig, const struct sigaction *act, struct sigaction *oact) { kact.k_sa_handler = act->sa_handler; memcpy (&kact.sa_mask, &act->sa_mask, sizeof (sigset_t)); + +# if __ASSUME_VSYSCALL == 0 kact.sa_flags = act->sa_flags | SA_RESTORER; kact.sa_restorer = ((act->sa_flags & SA_SIGINFO) ? &restore_rt : &restore); +# else + kact.sa_flags = act->sa_flags; +# endif } /* XXX The size argument hopefully will have to be changed to the @@ -157,6 +162,7 @@ libc_hidden_weak (__sigaction) weak_alias (__libc_sigaction, sigaction) #endif +#if __ASSUME_VSYSCALL == 0 /* NOTE: Please think twice before making any changes to the bits of code below. GDB needs some intimate knowledge about it to recognize them as signal trampolines, and make backtraces through @@ -165,8 +171,8 @@ weak_alias (__libc_sigaction, sigaction) If you ever feel the need to make any changes, please notify the appropriate GDB maintainer. */ -#define RESTORE(name, syscall) RESTORE2 (name, syscall) -#define RESTORE2(name, syscall) \ +# define RESTORE(name, syscall) RESTORE2 (name, syscall) +# define RESTORE2(name, syscall) \ asm \ ( \ ".text\n" \ @@ -176,10 +182,10 @@ asm \ " int $0x80" \ ); -#ifdef __NR_rt_sigaction +# ifdef __NR_rt_sigaction /* The return code for realtime-signals. */ RESTORE (restore_rt, __NR_rt_sigreturn) -#endif +# endif /* For the boring old signals. */ # undef RESTORE2 @@ -195,3 +201,4 @@ asm \ ); RESTORE (restore, __NR_sigreturn) +#endif |