This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [PATCH v2 2/7] y2038: Introduce __ASSUME_64BIT_TIME define
On Thu, 16 May 2019, Arnd Bergmann wrote:
> > 2.2. __NR_clock_settime64 is not present in kernel headers.
> > 32-bit __NR_clock_settime should be called.
>
> Is there still a chance to revisit that last case? I had assumed that
> glibc would have to require new kernel headers to support 64-bit
> time_t since some of the macro definitions (ioctl commands,
> socket options, ...) in the kernel have changed to deal with both
> cases.
In general, we're wary of being too aggressive about requirements for
building glibc (although the minimum kernel header version for building
glibc may still be more recent than the minimum kernel version required by
glibc at runtime). If anyone building glibc on a distribution from the
past couple of years does not need to install extra build requirements
locally, that's convenient.
In this case, there is *no* released kernel with those __NR_* in its
headers that is good for glibc testing, because of the fds_bits / val
namespace issues in 5.1 (these sorts of changes are an example of exactly
the kind of change for which the conform/ tests are most important because
of the risk of accidentally introducing namespace issues, whether
link-time or in the headers). And even once some suitable kernel exists,
it would be a while before it's ubiquitous for people building glibc.
I'd expect the only effects of allowing for not having __NR_* would
generally be that the case where the syscalls are not assumed to be
available at runtime also has an #ifdef on the __NR_* macro, so that if
it's not defined it falls straight through into exactly the same fallback
code as if the syscall had failed with ENOSYS.
--
Joseph S. Myers
joseph@codesourcery.com