about summary refs log tree commit diff
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)
downloadglibc-fb84593c439da7998f29777525b4ad49d379b2a1.tar.gz
glibc-fb84593c439da7998f29777525b4ad49d379b2a1.tar.xz
glibc-fb84593c439da7998f29777525b4ad49d379b2a1.zip
* 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