This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [RFC v1 01/16] sysdeps/nanosleep: Use clock_nanosleep_time64 instead of nanosleep
* Alistair Francis:
> On Sat, Jun 22, 2019 at 11:34 PM Florian Weimer <fweimer@redhat.com> wrote:
>>
>> * Alistair Francis:
>>
>> > +2019-06-21 Alistair Francis <alistair.francis@wdc.com>
>> > +
>> > + * nptl/thrd_sleep.c: Use clock_nanosleep_time64 instead of nanosleep.
>> > + * sysdeps/unix/sysv/linux/nanosleep.c: Likewise.
>> > + * sysdeps/unix/sysv/linux/nanosleep_nocancel.c: Likewise.
>>
>> Sorry, how is this supposed to work for all the other architectures
>> which don't have this system call with current kernel versions?
>
> Good question, I'm sure it doesn't.
>
> If we put this around #if defined(clock_nanosleep_time64) or #ifndef
> clock_nanosleep and then keep the current code as the #else would that
> be acceptable to upstream?
Does this work in <sysdep.h> for the port?
#define __NR_clock_nanosleep __NR_clock_nanosleep_time64
This is somewhat hackish, but it's reasonably accurate for architectures
that provide standard system calls under non-standard names for some
reason.
Obviously, this assume that for these new ports, the UAPI headers do the
right thing and use 64-bit time_t for the old structs as well.
Thanks,
Florian