[1/2] y2038: hurd: Provide __clock_gettime64 function

Message ID 20200116132728.11646-1-lukma@denx.de
State Superseded, archived
Headers

Commit Message

Lukasz Majewski Jan. 16, 2020, 1:27 p.m. UTC
  For Linux glibc ports the __TIMESIZE == 64 ensures proper aliasing for
__clock_gettime64 (to __clock_gettime).
When __TIMESIZE != 64 (like ARM32, PPC) the glibc expects separate definition
of the __clock_gettime64.

The HURD port only provides __clock_gettime, so this patch adds
__clock_gettime64 as a tiny wrapper on it.
---
 sysdeps/mach/clock_gettime.c | 14 ++++++++++++++
 1 file changed, 14 insertions(+)
  

Comments

Samuel Thibault Jan. 16, 2020, 5:47 p.m. UTC | #1
Lukasz Majewski, le jeu. 16 janv. 2020 14:27:27 +0100, a ecrit:
> For Linux glibc ports the __TIMESIZE == 64 ensures proper aliasing for
> __clock_gettime64 (to __clock_gettime).
> When __TIMESIZE != 64 (like ARM32, PPC) the glibc expects separate definition
> of the __clock_gettime64.
> 
> The HURD port only provides __clock_gettime, so this patch adds
> __clock_gettime64 as a tiny wrapper on it.

Acked-by: Samuel Thibault <samuel.thibault@ens-lyon.org>

Thanks!

> ---
>  sysdeps/mach/clock_gettime.c | 14 ++++++++++++++
>  1 file changed, 14 insertions(+)
> 
> diff --git a/sysdeps/mach/clock_gettime.c b/sysdeps/mach/clock_gettime.c
> index ac3547df3c..fbd80536d5 100644
> --- a/sysdeps/mach/clock_gettime.c
> +++ b/sysdeps/mach/clock_gettime.c
> @@ -49,3 +49,17 @@ versioned_symbol (libc, __clock_gettime, clock_gettime, GLIBC_2_17);
>  strong_alias (__clock_gettime, __clock_gettime_2);
>  compat_symbol (libc, __clock_gettime_2, clock_gettime, GLIBC_2_2);
>  #endif
> +
> +int
> +__clock_gettime64 (clockid_t clock_id, struct __timespec64 *ts64)
> +{
> +  struct timespec ts;
> +  int ret;
> +
> +  ret = __clock_gettime (clock_id, &ts);
> +  if (ret == 0)
> +    *ts64 = valid_timespec_to_timespec64 (ts);
> +
> +  return ret;
> +}
> +libc_hidden_def (__clock_gettime64)
> -- 
> 2.20.1
>
  

Patch

diff --git a/sysdeps/mach/clock_gettime.c b/sysdeps/mach/clock_gettime.c
index ac3547df3c..fbd80536d5 100644
--- a/sysdeps/mach/clock_gettime.c
+++ b/sysdeps/mach/clock_gettime.c
@@ -49,3 +49,17 @@  versioned_symbol (libc, __clock_gettime, clock_gettime, GLIBC_2_17);
 strong_alias (__clock_gettime, __clock_gettime_2);
 compat_symbol (libc, __clock_gettime_2, clock_gettime, GLIBC_2_2);
 #endif
+
+int
+__clock_gettime64 (clockid_t clock_id, struct __timespec64 *ts64)
+{
+  struct timespec ts;
+  int ret;
+
+  ret = __clock_gettime (clock_id, &ts);
+  if (ret == 0)
+    *ts64 = valid_timespec_to_timespec64 (ts);
+
+  return ret;
+}
+libc_hidden_def (__clock_gettime64)