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]

Re: [PATCH v8] y2038: Introduce __ASSUME_TIME64_SYSCALLS define


On Wed, Aug 14, 2019 at 11:47 AM Alistair Francis <alistair23@gmail.com> wrote:
>
> On Mon, Jul 8, 2019 at 4:23 AM Joseph Myers <joseph@codesourcery.com> wrote:
> >
> > On Thu, 27 Jun 2019, Lukasz Majewski wrote:
> >
> > > Dear Joseph,
> > >
> > > Do you have any more comments regarding the __ASSUME_TIME64_SYSCALL
> > > flag patch [1] ?
> >
> > I think it still needs major editing for clarity as well as idiomatic
> > English usage.  Rather than sending a long list of detailed issues with
> > particular words and phrases it probably makes more sense for me (or
> > another native speaker with good familiarity with all the issues involved)
> > to do that editing; I hope to look at that around August / September /
> > October if no-one else does it first.
>
> I'm a native English speaker and I think I now have a good sense of
> what is going on, would it help if I read through it and send an
> updated version?

I had a go at it anyway, this is the updated comment I came up with:

/* Support for the 64-bit time Linux kernel syscalls.

   This flag indicates support for Linux kernel syscalls, which are able
   to handle the 64 bit time ABI. It is defined for all 64-bit architectures as
   they have always supported 64 bit time support. It is also defined for all
   32-bit architectures when using Linux kernel version 5.1 or newer.

   When __ASSUME_TIME64_SYSCALLS is defined glibc should call the *64/time64
   suffixed syscalls. These should be #defined to the the unsuffixed versions
   when required (such as when running on 64-bit systems).

   __ASSUME_TIME64_SYSCALLS being defined does not mean that __TIMESIZE is
   64-bit. In cases where the __TIMESIZE is 64-bit the 64-bit syscalls can be
   used directly. In cases where __TIMESIZE is 32-bit conversions between the
   original 32-bit values and the kernel's 64-bit values will need to occur.

   As an example - the syscall to set clock (clock_settime) - if the
   __ASSUME_TIME64_SYSCALLS is defined, it indicates that 64 bit time can
   be set in the system.

   On systems with __WORDSIZE == 64 the __NR_clock_settime syscall is used
   to achieve this goal. Contrary, systems with __WORDSIZE == 32 do use
   new __NR_clock_settime64 syscall available from Linux version 5.1.

   The __ASSUME_TIME64_SYSCALLS is defined for:

   1. Systems with intrinsic 64 bit time support (__WORDSIZE == 64).

   2. For x32 architecture, which is a special case in respect to 64 bit
      time support (it has __WORDSIZE==32 but __TIMESIZE==64)

   3. Systems with __WORDSIZE==32, which gain 64 bit time support
      with new set of syscalls added to Linux kernel 5.1.

   4. All new 32-bit architectures that only support 64-bit time, such as RV32.
   */

Alistair


>
> Alistair
>
> >
> > --
> > Joseph S. Myers
> > joseph@codesourcery.com


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]