diff options
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/i386/sigaction.c | 15 |
2 files changed, 17 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog index 879d4420e7..2e8c1daecc 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2002-08-25 Ulrich Drepper <drepper@redhat.com> + + * sysdeps/unix/sysv/linux/i386/sigaction.c: Avoid warnings by + declaring __restore and __restore_rt as hidden (if possible). + 2002-08-25 Roland McGrath <roland@redhat.com> * manual/llio.texi (Access Modes): Fix typos in O_READ/O_WRITE defns. diff --git a/sysdeps/unix/sysv/linux/i386/sigaction.c b/sysdeps/unix/sysv/linux/i386/sigaction.c index 8e5ac84dcf..57634c1c98 100644 --- a/sysdeps/unix/sysv/linux/i386/sigaction.c +++ b/sysdeps/unix/sysv/linux/i386/sigaction.c @@ -46,10 +46,19 @@ extern int __syscall_rt_sigaction (int, const struct kernel_sigaction *__unbound int __libc_missing_rt_sigs; #endif -#ifdef __NR_rt_sigaction +/* Using the hidden attribute here does not change the code but it + helps to avoid warnings. */ +#if defined HAVE_HIDDEN && !defined HAVE_BROKEN_VISIBILITY_ATTRIBUTE +# ifdef __NR_rt_sigaction +extern void restore_rt (void) asm ("__restore_rt") attribute_hidden; +# endif +extern void restore (void) asm ("__restore") attribute_hidden; +#else +# ifdef __NR_rt_sigaction static void restore_rt (void) asm ("__restore_rt"); -#endif +# endif static void restore (void) asm ("__restore"); +#endif /* If ACT is not NULL, change the action for SIG to *ACT. @@ -126,7 +135,7 @@ __libc_sigaction (int sig, const struct sigaction *act, struct sigaction *oact) "int $0x80\n" "popl %%ebx" : "=a" (result) - : "0" (SYS_ify (sigaction)), "r" (sig), + : "0" (SYS_ify (sigaction)), "mr" (sig), "c" (act ? __ptrvalue (&k_newact) : 0), "d" (oact ? __ptrvalue (&k_oldact) : 0)); |