From 7cc1894ca82cb5709205eed6adfbb002ab02de79 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Sun, 13 Apr 2003 02:05:36 +0000 Subject: Update. 2003-04-12 Ulrich Drepper * 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. --- sysdeps/unix/sysv/linux/i386/sigaction.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) (limited to 'sysdeps/unix/sysv/linux/i386/sigaction.c') 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 -- cgit 1.4.1