about summary refs log tree commit diff
path: root/sysdeps/unix/sysv/linux/sigsuspend.c
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>1998-03-03 17:58:38 +0000
committerUlrich Drepper <drepper@redhat.com>1998-03-03 17:58:38 +0000
commit8fb3e0079a0512e8525f6c5897c51563d57801e7 (patch)
treea6f26d8cbf90b7ee76dc3c0b7fc20f8664f9a513 /sysdeps/unix/sysv/linux/sigsuspend.c
parentae828bc6f9a3ff47cb92846f71a9a7f8c6d5c941 (diff)
downloadglibc-8fb3e0079a0512e8525f6c5897c51563d57801e7.tar.gz
glibc-8fb3e0079a0512e8525f6c5897c51563d57801e7.tar.xz
glibc-8fb3e0079a0512e8525f6c5897c51563d57801e7.zip
Update.
1998-03-03 17:55  Ulrich Drepper  <drepper@cygnus.com>

	* elf/sprof.c: Cleanup a bit.

1998-03-03 08:01  H.J. Lu  <hjl@gnu.org>

	* sysdeps/generic/sysdep.h (L): New. Define.

	* sysdeps/unix/sysv/linux/i386/sysdep.h (L): New. Define.

	* sysdeps/i386/i586/addmul_1.S: Fix a typo.

	* sysdeps/unix/sysv/linux/i386/clone.S: Follow Intel's advice
	to have only one exit point for functions.
	* sysdeps/unix/sysv/linux/i386/mmap.S: Likewise.
	* sysdeps/unix/sysv/linux/i386/s_pread64.S: Likewise.
	* sysdeps/unix/sysv/linux/i386/s_pwrite64.S: Likewise.
	* sysdeps/unix/sysv/linux/i386/socket.S: Likewise.
	* sysdeps/unix/sysv/linux/i386/syscall.S: Likewise.

1998-03-03  Andreas Jaeger  <aj@arthur.rhein-neckar.de>

	* sysdeps/unix/sysv/linux/sigaction.c (__sigaction): Safe and
	reset errno so that errno isn't set to ENOSYS in the first call.
	* sysdeps/unix/sysv/linux/i386/sigaction.c (__sigaction): Likewise.
	* sysdeps/unix/sysv/linux/sigsuspend.c (__sigsuspend): Likewise.
	* sysdeps/unix/sysv/linux/sigprocmask.c (__sigprocmask): Likewise.
	* sysdeps/unix/sysv/linux/sigpending.c (sigpending): Likewise.
Diffstat (limited to 'sysdeps/unix/sysv/linux/sigsuspend.c')
-rw-r--r--sysdeps/unix/sysv/linux/sigsuspend.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/sysdeps/unix/sysv/linux/sigsuspend.c b/sysdeps/unix/sysv/linux/sigsuspend.c
index 197015401d..a5d2eb0ad7 100644
--- a/sysdeps/unix/sysv/linux/sigsuspend.c
+++ b/sysdeps/unix/sysv/linux/sigsuspend.c
@@ -40,11 +40,13 @@ __sigsuspend (set)
     {
       /* XXX The size argument hopefully will have to be changed to the
 	 real size of the user-level sigset_t.  */
+      int saved_errno = errno;
       int result = __syscall_rt_sigsuspend (set, _NSIG / 8);
 
       if (result >= 0 || errno != ENOSYS)
 	return result;
 
+      __set_errno (saved_errno);
       __libc_missing_rt_sigs = 1;
     }