This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: Accelerating Y2038 glibc fixes
- From: Joseph Myers <joseph at codesourcery dot com>
- To: Zack Weinberg <zackw at panix dot com>
- Cc: Lukasz Majewski <lukma at denx dot de>, Wolfgang Denk <wd at denx dot de>, GNU C Library <libc-alpha at sourceware dot org>, Alistair Francis <alistair dot francis at wdc dot com>, Alistair Francis <alistair23 at gmail dot com>
- Date: Mon, 29 Jul 2019 20:12:52 +0000
- Subject: Re: Accelerating Y2038 glibc fixes
- References: <20190712072103.D3DBC24003A@gemini.denx.de> <alpine.DEB.2.21.1907251934270.17883@digraph.polyomino.org.uk> <20190726123902.6f8813da@jawa> <CAKCAbMjvrgebp9qhbK3TiH3fNEx+Xg0B9tGgJv=iVjRwUKEdoQ@mail.gmail.com>
On Mon, 29 Jul 2019, Zack Weinberg wrote:
> I’m prepared to work with you to come up with better wording but I
> need to ask you a bunch of questions. Could you please reply to each
> of the queries marked Qn below?
Note that while these cases are things we should think about in working
out (for example) what the best semantics for __ASSUME_TIME64_SYSCALLS
are, they shouldn't be part of how it's defined (a definition that says
this is what happens in each of five cases is not a cleanly defined
interface); the definition should rather be such that readers can see what
the answer would be for each of those cases - and for any other cases that
may arise in future. (I think the current definition is that it means
either a specified set of suffixed syscalls using 64-bit time are
guaranteed to be available at runtime, *or* that the corresponding
unsuffixed syscalls use 64-bit time and are guaranteed to be available, so
that #define of the suffixed names to the unsuffixed ones is OK in that
case.)
There is at least one case you didn't list (or a variant of case 5 that's
different as far as glibc's concerned but not as far as the kernel's
concerned): new glibc ports for ILP32 ABIs where the oldest kernel version
supported is older than 5.1, should we wish for any such port to support
only 64-bit time and not 32-bit time (so __TIMESIZE == 64, __WORDSIZE ==
64, __SYSCALL_WORDSIZE == 64) - and once we have the support in glibc to
make it possible not to support 32-bit time in such a case, it seems a
good idea for any such new ports to use it.
__WORDSIZE is the size, in bits, of "long int". __SYSCALL_WORDSIZE (when
defined) is the size, in bits, of __syscall_slong_t (the "long int" type
in the syscall interface, which is the same as userspace "long int" except
for x32).
--
Joseph S. Myers
joseph@codesourcery.com