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: Accelerating Y2038 glibc fixes


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

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