Fix clock_gettime for assumed kernel >= 2.6.12

This commit is contained in:
Andreas Schwab 2011-11-15 15:04:26 +01:00
parent a501a01e06
commit 446514f97e
3 changed files with 15 additions and 2 deletions

View File

@ -1,5 +1,10 @@
2011-11-15 Andreas Schwab <schwab@redhat.com>
* sysdeps/unix/sysv/linux/clock_gettime.c (SYSDEP_GETTIME_CPU)
[__ASSUME_POSIX_CPU_TIMERS > 0]: Assign to retval and break.
* sysdeps/unix/sysv/linux/x86_64/clock_gettime.c
(SYSCALL_GETTIME): Set errno on error.
* sysdeps/unix/sysv/linux/check_pf.c (make_request): Properly
count references to noai6ai_cached.

View File

@ -110,7 +110,9 @@ maybe_syscall_gettime (clockid_t clock_id, struct timespec *tp)
# if __ASSUME_POSIX_CPU_TIMERS > 0
# define SYSDEP_GETTIME_CPU SYSCALL_GETTIME
# define SYSDEP_GETTIME_CPU(clock_id, tp) \
retval = SYSCALL_GETTIME (clock_id, tp); \
break
# define SYSDEP_GETTIME_CPUTIME /* Default catches them too. */
# else

View File

@ -3,8 +3,14 @@
#ifdef SHARED
# define SYSCALL_GETTIME(id, tp) \
({ long int (*f) (clockid_t, struct timespec *) = __vdso_clock_gettime; \
long int v_ret; \
PTR_DEMANGLE (f); \
f (id, tp); })
v_ret = f (id, tp); \
if (INTERNAL_SYSCALL_ERROR_P (v_ret, )) { \
__set_errno (INTERNAL_SYSCALL_ERRNO (v_ret, )); \
v_ret = -1; \
} \
v_ret; })
# define INTERNAL_GETTIME(id, tp) \
({ long int (*f) (clockid_t, struct timespec *) = __vdso_clock_gettime; \
PTR_DEMANGLE (f); \