From: Adhemerval Zanella Date: Thu, 24 Oct 2019 17:52:30 +0000 (+0000) Subject: Use clock_gettime to implement time. X-Git-Tag: glibc-2.31~316 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0d563783490bf5b2d7d52cab205760fdff5d5650;p=thirdparty%2Fglibc.git Use clock_gettime to implement time. Change the default implementation of time to call clock_gettime, to align with new Linux ports that are expected to only implement __NR_clock_gettime. Arch-specific implementation that either call the time vDSO or route to gettimeofday vDSO are not removed. Also for Linux, CLOCK_REALTIME_COARSE is used instead of generic CLOCK_REALTIME clockid. This takes less CPU time and its behavior better matches what the current glibc does. Checked on x86_64-linux-gnu, i686-linux-gnu, powerpc64le-linux-gnu, powerpc64-linux-gnu, powerpc-linux-gnu, and aarch64-linux-gnu. Co-authored-by: Zack Weinberg Reviewed-by: Lukasz Majewski --- diff --git a/sysdeps/unix/sysv/linux/time.c b/sysdeps/generic/time-clockid.h similarity index 64% rename from sysdeps/unix/sysv/linux/time.c rename to sysdeps/generic/time-clockid.h index f461733678d..13db6e6b5bb 100644 --- a/sysdeps/unix/sysv/linux/time.c +++ b/sysdeps/generic/time-clockid.h @@ -1,4 +1,5 @@ -/* Copyright (C) 2005-2019 Free Software Foundation, Inc. +/* System specific time definitions. Generic Version. + Copyright 2019 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 @@ -15,27 +16,5 @@ License along with the GNU C Library; if not, see . */ -#include -#include - -#include - -#ifdef __NR_time - -time_t -time (time_t *t) -{ - INTERNAL_SYSCALL_DECL (err); - time_t res = INTERNAL_SYSCALL (time, err, 1, NULL); - /* There cannot be any error. */ - if (t != NULL) - *t = res; - return res; -} -libc_hidden_def (time) - -#else - -# include - -#endif +/* Timer used on clock_gettime for time implementation. */ +#define TIME_CLOCK_GETTIME_CLOCKID CLOCK_REALTIME diff --git a/sysdeps/unix/sysv/linux/powerpc/time.c b/sysdeps/unix/sysv/linux/powerpc/time.c index c35b80fad1c..e957b817515 100644 --- a/sysdeps/unix/sysv/linux/powerpc/time.c +++ b/sysdeps/unix/sysv/linux/powerpc/time.c @@ -78,6 +78,6 @@ libc_hidden_def (time) #else -#include +#include