From 4eb375fea3aac45e04a97885fc1b53c33ad7c837 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Mon, 13 Aug 2007 00:46:30 +0000 Subject: [PATCH] * sysdeps/unix/sysv/linux/clock_gettime.c (maybe_syscall_gettime_cpu): Build fix for systems which might lack POSIX timer support. --- ChangeLog | 3 +++ sysdeps/unix/sysv/linux/clock_gettime.c | 10 +++++++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 55201ca127..cb5f6c67ee 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,8 @@ 2007-08-12 Ulrich Drepper + * sysdeps/unix/sysv/linux/clock_gettime.c (maybe_syscall_gettime_cpu): + Build fix for systems which might lack POSIX timer support. + * sysdeps/unix/sysv/linux/x86_64/libc-start.c (_libc_vdso_platform_setup): Mangle function pointers before storing them. diff --git a/sysdeps/unix/sysv/linux/clock_gettime.c b/sysdeps/unix/sysv/linux/clock_gettime.c index 5afe20feb5..cd536a0fc0 100644 --- a/sysdeps/unix/sysv/linux/clock_gettime.c +++ b/sysdeps/unix/sysv/linux/clock_gettime.c @@ -1,5 +1,5 @@ /* clock_gettime -- Get current time from a POSIX clockid_t. Linux version. - Copyright (C) 2003,2004,2005,2006 Free Software Foundation, Inc. + Copyright (C) 2003,2004,2005,2006,2007 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -133,11 +133,19 @@ maybe_syscall_gettime_cpu (clockid_t clock_id, struct timespec *tp) { if (e == EINVAL) { +# ifdef HAVE_CLOCK_GETRES_VSYSCALL /* Check whether the kernel supports CPU clocks at all. If not, record it for the future. */ r = INTERNAL_VSYSCALL (clock_getres, err, 2, + MAKE_PROCESS_CPUCLOCK (0, CPUCLOCK_SCHED), + NULL); +# else + /* Check whether the kernel supports CPU clocks at all. + If not, record it for the future. */ + r = INTERNAL_SYSCALL (clock_getres, err, 2, MAKE_PROCESS_CPUCLOCK (0, CPUCLOCK_SCHED), NULL); +# endif if (INTERNAL_SYSCALL_ERROR_P (r, err)) __libc_missing_posix_cpu_timers = 1; }