about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog10
-rw-r--r--linuxthreads/ChangeLog8
-rw-r--r--sysdeps/i386/fpu/s_nearbyint.S2
-rw-r--r--sysdeps/i386/fpu/s_nearbyintf.S2
-rw-r--r--sysdeps/i386/fpu/s_nearbyintl.S2
-rw-r--r--sysdeps/posix/sigwait.c6
6 files changed, 24 insertions, 6 deletions
diff --git a/ChangeLog b/ChangeLog
index 2aa4a1a9b2..d3720b04e5 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+2000-02-14  Ulrich Drepper  <drepper@redhat.com>
+
+	* sysdeps/posix/sigwait.c: Don't look for signal 0 since it does
+	not exist.  Patch by Miloslav Trmac <mitr@volny.cz> (PR libc/1601).
+
+	* sysdeps/i386/fpu/s_nearbyint.S: Disable raising exception, not
+	enable it.  Patch by Miloslav Trmac <mitr@volny.cz> (PR libc/1600).
+	* sysdeps/i386/fpu/s_nearbyintf.S: Likewise.
+	* sysdeps/i386/fpu/s_nearbyintf.l: Likewise.
+
 2000-02-14  Andreas Jaeger  <aj@suse.de>
 
 	* elf/rtld.c (dl_main): Fix check for references to dynamic linker.
diff --git a/linuxthreads/ChangeLog b/linuxthreads/ChangeLog
index 8728384942..fa20028a6e 100644
--- a/linuxthreads/ChangeLog
+++ b/linuxthreads/ChangeLog
@@ -1,3 +1,11 @@
+2000-02-14  Ulrich Drepper  <drepper@redhat.com>
+
+	* condvar.c (pthread_cond_timedwait_relative_old): Tight loop with
+	nanosleep does not work either.  Get absolute time inside the
+	loop.
+	(pthread_cond_timedwait_relative_new): Likewise.
+	Patch by Kaz Kylheku <kaz@ashi.footprints.net>.
+
 2000-02-13  Andreas Jaeger  <aj@suse.de>
 
 	* condvar.c (pthread_cond_timedwait_relative_new): Fix last patch.
diff --git a/sysdeps/i386/fpu/s_nearbyint.S b/sysdeps/i386/fpu/s_nearbyint.S
index 65ce4f76a1..d8bb382d9e 100644
--- a/sysdeps/i386/fpu/s_nearbyint.S
+++ b/sysdeps/i386/fpu/s_nearbyint.S
@@ -12,7 +12,7 @@ ENTRY(__nearbyint)
 	pushl	%ecx
 	fnstcw	(%esp)
 	movl	(%esp), %eax
-	andl	$~0x20, %eax
+	orl	$0x20, %eax
 	movl	%eax, 4(%esp)
 	fldcw	4(%esp)
 	frndint
diff --git a/sysdeps/i386/fpu/s_nearbyintf.S b/sysdeps/i386/fpu/s_nearbyintf.S
index 090c631607..21858650e2 100644
--- a/sysdeps/i386/fpu/s_nearbyintf.S
+++ b/sysdeps/i386/fpu/s_nearbyintf.S
@@ -12,7 +12,7 @@ ENTRY(__nearbyintf)
 	pushl	%ecx
 	fnstcw	(%esp)
 	movl	(%esp), %eax
-	andl	$~0x20, %eax
+	orl	$0x20, %eax
 	movl	%eax, 4(%esp)
 	fldcw	4(%esp)
 	frndint
diff --git a/sysdeps/i386/fpu/s_nearbyintl.S b/sysdeps/i386/fpu/s_nearbyintl.S
index 2f60af8f18..d74dacb990 100644
--- a/sysdeps/i386/fpu/s_nearbyintl.S
+++ b/sysdeps/i386/fpu/s_nearbyintl.S
@@ -12,7 +12,7 @@ ENTRY(__nearbyintl)
 	pushl	%ecx
 	fnstcw	(%esp)
 	movl	(%esp), %eax
-	andl	$~0x20, %eax
+	orl	$0x20, %eax
 	movl	%eax, 4(%esp)
 	fldcw	4(%esp)
 	frndint
diff --git a/sysdeps/posix/sigwait.c b/sysdeps/posix/sigwait.c
index 2bca88a126..bc0b3b9b82 100644
--- a/sysdeps/posix/sigwait.c
+++ b/sysdeps/posix/sigwait.c
@@ -1,5 +1,5 @@
 /* Implementation of sigwait function from POSIX.1c.
-   Copyright (C) 1996, 1997, 1999 Free Software Foundation, Inc.
+   Copyright (C) 1996, 1997, 1999, 2000 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
 
@@ -52,7 +52,7 @@ __sigwait (const sigset_t *set, int *sig)
      value which does not describe a legal signal number.  */
   was_sig = -1;
 
-  for (this = 0; this < NSIG; ++this)
+  for (this = 1; this < NSIG; ++this)
     if (__sigismember (set, this))
       {
 	/* Unblock this signal.  */
@@ -69,7 +69,7 @@ __sigwait (const sigset_t *set, int *sig)
  restore_handler:
   save_errno = errno;
 
-  while (--this >= 0)
+  while (--this >= 1)
     if (__sigismember (set, this))
       /* We ignore errors here since we must restore all handlers.  */
       __sigaction (this, &saved[this], NULL);