summaryrefslogtreecommitdiff
path: root/nptl
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2004-07-04 23:12:44 +0000
committerUlrich Drepper <drepper@redhat.com>2004-07-04 23:12:44 +0000
commit382054020099eb8d0350a305d3719f92317e7912 (patch)
tree7f9e7d60dcf41cfe4cc9a62d62468cebef62fefe /nptl
parentfc2803cc4250fb556fac42fff1a13e0f3ed1c703 (diff)
Update.
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.
Diffstat (limited to 'nptl')
-rw-r--r--nptl/ChangeLog9
-rw-r--r--nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S4
-rw-r--r--nptl/tst-rwlock14.c30
3 files changed, 40 insertions, 3 deletions
diff --git a/nptl/ChangeLog b/nptl/ChangeLog
index 1b6f3d764c..8a81100cf4 100644
--- a/nptl/ChangeLog
+++ b/nptl/ChangeLog
@@ -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.
diff --git a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S b/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S
index 924e20868f..aadc90c974 100644
--- a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S
+++ b/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S
@@ -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)
diff --git a/nptl/tst-rwlock14.c b/nptl/tst-rwlock14.c
index 4451a023f7..b9611a81f0 100644
--- a/nptl/tst-rwlock14.c
+++ b/nptl/tst-rwlock14.c
@@ -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");