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