Update.
authorUlrich Drepper <drepper@redhat.com>
Sun, 4 Jul 2004 23:12:44 +0000 (23:12 +0000)
committerUlrich Drepper <drepper@redhat.com>
Sun, 4 Jul 2004 23:12:44 +0000 (23:12 +0000)
2004-07-04  Matthew Reppert  <arashi@kai.vm.bytemark.co.uk>

* sysdeps/unix/sysv/linux/i386/glob64.c (glob64): Use libc_hidden_ver
instead of libc_hidden_def.

ChangeLog
nptl/ChangeLog
nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S
nptl/tst-rwlock14.c

index 06d4c64..4a936dd 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2004-07-04  Matthew Reppert  <arashi@kai.vm.bytemark.co.uk>
+
+       * sysdeps/unix/sysv/linux/i386/glob64.c (glob64): Use libc_hidden_ver
+       instead of libc_hidden_def.
+
 2004-07-01  Roland McGrath  <roland@redhat.com>
 
        * aclocal.m4: Add provide for AC_CONFIG_AUX_DIR_DEFAULT.
index 1b6f3d7..8a81100 100644 (file)
@@ -1,3 +1,12 @@
+2004-07-04  Jakub Jelinek  <jakub@redhat.com>
+
+       * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S
+       (pthread_rwlock_timedrdlock): Use cmpq instead of cmpl to check
+       for valid tv_nsec.
+       * tst-rwlock14.c (do_test): Test for invalid tv_nsec equal to
+       1 billion and 64-bit tv_nsec which is valid when truncated to 32
+       bits.
+
 2004-06-29  Roland McGrath  <roland@redhat.com>
 
        * Banner: NPTL no longer has its own version number.
index 924e208..aadc90c 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002, 2003 Free Software Foundation, Inc.
+/* Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
 
@@ -71,7 +71,7 @@ pthread_rwlock_timedrdlock:
        je      5f
 
        /* Check the value of the timeout parameter.  */
-3:     cmpl    $1000000000, 8(%r13)
+3:     cmpq    $1000000000, 8(%r13)
        jae     19f
 
        incl    READERS_QUEUED(%r12)
index 4451a02..b9611a8 100644 (file)
@@ -104,7 +104,7 @@ do_test (void)
       result = 1;
     }
 
-  ts.tv_nsec = 2000000000;
+  ts.tv_nsec = 1000000000;
 
   e = pthread_rwlock_timedrdlock (&r, &ts);
   if (e == 0)
@@ -130,6 +130,34 @@ do_test (void)
       result = 1;
     }
 
+  ts.tv_nsec = 0x100001000LL;
+  if (ts.tv_nsec != 0x100001000LL)
+    ts.tv_nsec = 2000000000;
+
+  e = pthread_rwlock_timedrdlock (&r, &ts);
+  if (e == 0)
+    {
+      puts ("third rwlock_timedrdlock did not fail");
+      result = 1;
+    }
+  else if (e != EINVAL)
+    {
+      puts ("third rwlock_timedrdlock did not return EINVAL");
+      result = 1;
+    }
+
+  e = pthread_rwlock_timedrdlock (&r, &ts);
+  if (e == 0)
+    {
+      puts ("third rwlock_timedrdlock did not fail");
+      result = 1;
+    }
+  else if (e != EINVAL)
+    {
+      puts ("third rwlock_timedrdlock did not return EINVAL");
+      result = 1;
+    }
+
   if (result == 0)
     puts ("no bugs");