summaryrefslogtreecommitdiff
path: root/nptl
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2007-08-20 22:36:43 +0000
committerUlrich Drepper <drepper@redhat.com>2007-08-20 22:36:43 +0000
commitfb84593c439da7998f29777525b4ad49d379b2a1 (patch)
tree3423afc26d2462efec045b0397c94a2cc181aa9d /nptl
parentb83fb35cd1eb2f8d2178f943f94039771cb18820 (diff)
* csu/libc-start.c: Don't handle VDSO_SETUP here.
* sysdeps/unix/sysv/linux/init-first.c: Handle it here instead. * sysdeps/unix/sysv/linux/x86_64/libc-start.c: Renamed to... * sysdeps/unix/sysv/linux/x86_64/init-first.c: ...this. New file. * sysdeps/unix/sysv/linux/powerpc/libc-start.c: Move VDSO_SETUP code to... * sysdeps/unix/sysv/linux/x86_64/init-first.c: ...here. New file.
Diffstat (limited to 'nptl')
-rw-r--r--nptl/ChangeLog5
-rw-r--r--nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S9
2 files changed, 13 insertions, 1 deletions
diff --git a/nptl/ChangeLog b/nptl/ChangeLog
index f130a7c7b9..306324879c 100644
--- a/nptl/ChangeLog
+++ b/nptl/ChangeLog
@@ -1,3 +1,8 @@
+2007-08-20 Ulrich Drepper <drepper@redhat.com>
+
+ * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
+ (__pthread_cond_timedwait): Use clock_gettime from VDSO if possible.
+
2007-08-16 Jakub Jelinek <jakub@redhat.com>
* sysdeps/unix/sysv/linux/alpha/lowlevellock.h
diff --git a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S b/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
index a5de670866..d730a7e12d 100644
--- a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
+++ b/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
@@ -134,8 +134,15 @@ __pthread_cond_timedwait:
/* Only clocks 0 and 1 are allowed so far. Both are handled in the
kernel. */
leaq 24(%rsp), %rsi
- movl $__NR_clock_gettime, %eax
+ movq __vdso_clock_gettime@GOTPCREL(%rip), %rax
+ movq (%rax), %rax
+ PTR_DEMANGLE (%rax)
+ jz 26f
+ call *%rax
+ jmp 27f
+26: movl $__NR_clock_gettime, %eax
syscall
+27:
# ifndef __ASSUME_POSIX_TIMERS
cmpq $-ENOSYS, %rax
je 19f