This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
Hi Adhemerval, > On 18/01/2020 04:20, Lukasz Majewski wrote: > > For Linux glibc ports the __TIMESIZE == 64 ensures proper aliasing > > for __clock_settime64 (to __clock_settime). > > When __TIMESIZE != 64 (like ARM32, PPC) the glibc expects separate > > definition of the __clock_settime64. > > > > The HURD port only provides __clock_settime, so this patch adds > > __clock_settime64 as a tiny wrapper on it. > > --- > > sysdeps/mach/hurd/clock_settime.c | 9 +++++++++ > > 1 file changed, 9 insertions(+) > > > > diff --git a/sysdeps/mach/hurd/clock_settime.c > > b/sysdeps/mach/hurd/clock_settime.c index 2c77bad71a..db1ba860dc > > 100644 --- a/sysdeps/mach/hurd/clock_settime.c > > +++ b/sysdeps/mach/hurd/clock_settime.c > > @@ -53,3 +53,12 @@ versioned_symbol (libc, __clock_settime, > > clock_settime, GLIBC_2_17); strong_alias (__clock_settime, > > __clock_settime_2); compat_symbol (libc, __clock_settime_2, > > clock_settime, GLIBC_2_2); #endif > > + > > +int > > +__clock_settime64 (clockid_t clock_id, const struct __timespec64 > > *ts64) +{ > > + struct timespec ts = valid_timespec64_to_timespec (*ts64); > > + > > + return __clock_settime (clock_id, &ts); > > +} > > +libc_hidden_def (__clock_settime64) > > > > As for https://sourceware.org/ml/libc-alpha/2020-01/msg00445.html I > don't think this patch is really required now. I think that it is required to allow using __clock_settime64() calls internally in glibc. The __clock_settime64 will be aliased to __clock_settime for archs with __TIMESIZE==64 [*]. It is important for archs with Y2038 support - it will allow in-glibc internal use of 64 bit time (i.e. by using struct __timespec64). Ports which are using Linux kernel already have it defined. The problem is with HURD, which misses this definition. (Please correct me if I'm wrong - but it seems to me that HURD is not using 64 bit time?) I thought about some kind of alias (weak, strong, #define), but the problem was with passed data types - as __clock_settime64 requires struct __timespec64. Note: [*] - __TIMESIZE indicates the default size of time_t (but on Y2038 safe ARM32 bit systems we do have __TIMESIZE=32 but we do have time_t defined as __time64_t [1]). Links: [1] - https://github.com/lmajewski/y2038_glibc/commit/e03c7188c72dd78d7141cf88f24dd2a5fd14c4f1#diff-c051022b496f12bd9028edb46b8ec04dR7 Best regards, Lukasz Majewski -- DENX Software Engineering GmbH, Managing Director: Wolfgang Denk HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-59 Fax: (+49)-8142-66989-80 Email: lukma@denx.de
Attachment:
pgp6JJT3RuRb7.pgp
Description: OpenPGP digital signature
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |