Update.
authorUlrich Drepper <drepper@redhat.com>
Fri, 27 Jun 2003 08:17:46 +0000 (08:17 +0000)
committerUlrich Drepper <drepper@redhat.com>
Fri, 27 Jun 2003 08:17:46 +0000 (08:17 +0000)
2003-06-27  Ulrich Drepper  <drepper@redhat.com>

* rt/Makefile (CFLAGS-librt-cancellation.c): Define.

ChangeLog
nptl/ChangeLog
nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
nptl/tst-cancel4.c
rt/Makefile

index 9e1d50a..8275df1 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2003-06-27  Ulrich Drepper  <drepper@redhat.com>
+
+       * rt/Makefile (CFLAGS-librt-cancellation.c): Define.
+
 2003-06-26  Roland McGrath  <roland@frob.com>
 
        * sysdeps/mach/configure.in: Barf rather than define NO_CREATION_TIME.
index 21157bc..65cf4ef 100644 (file)
@@ -1,3 +1,8 @@
+2003-06-27  Ulrich Drepper  <drepper@redhat.com>
+
+       * tst-cancel4.c (tf_msgrcv): Strengthen test against valid
+       premature returns a bit more.
+
 2003-06-26  Ulrich Drepper  <drepper@redhat.com>
 
        * sysdeps/pthread/librt-cancellation.c: Move __pthread_unwind
index 2eba326..f09be44 100644 (file)
@@ -334,8 +334,9 @@ versioned_symbol (libpthread, __pthread_cond_timedwait, pthread_cond_timedwait,
 
        .type   __condvar_tw_cleanup3, @function
 __condvar_tw_cleanup3:
-       leal    wakeup_seq(%edx), %ebx # XXX Is this correct?  %edx preserved?
+       movl    40(%esp), %ebx
 .LSbl5:
+       jmp     __condvar_tw_cleanup
        .size   __condvar_tw_cleanup3, .-__condvar_tw_cleanup3
        .type   __condvar_tw_cleanup2, @function
 __condvar_tw_cleanup2:
index 8b0b735..a8142d9 100644 (file)
@@ -1891,6 +1891,8 @@ tf_msgrcv (void *arg)
        }
     }
 
+  ssize_t s;
+
   pthread_cleanup_push (cl, NULL);
 
   struct
@@ -1906,13 +1908,13 @@ tf_msgrcv (void *arg)
   do
     {
       errno = 0;
-      msgrcv (tempmsg, (struct msgbuf *) &m, 10, randnr, 0);
+      s = msgrcv (tempmsg, (struct msgbuf *) &m, 10, randnr, 0);
     }
-  while (errno == EIDRM);
+  while (errno == EIDRM || errno == EINTR);
 
   pthread_cleanup_pop (0);
 
-  printf ("%s: msgrcv returned\n", __FUNCTION__);
+  printf ("%s: msgrcv returned %zd with errno = %m\n", __FUNCTION__, s);
 
   exit (1);
 }
index b999492..9f49a02 100644 (file)
@@ -51,6 +51,7 @@ include ../Rules
 
 CFLAGS-aio_suspend.c = -fexceptions
 CFLAGS-clock_nanosleep.c = -fexceptions -fasynchronous-unwind-tables
+CFLAGS-librt-cancellation.c = -fasynchronous-unwind-tables
 
 # Depend on libc.so so a DT_NEEDED is generated in the shared objects.
 # This ensures they will load libc.so for needed symbols if loaded by