This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [PATCH v2 04/11] Use clock_settime to implement settimeofday.
On 25/10/2019 20:20, Rafal Luzynski wrote:
> 25.10.2019 14:08 Adhemerval Zanella <adhemerval.zanella@linaro.org> wrote:
>>
>>
>> From: Zack Weinberg <zackw@panix.com>
>>
>> Use clock_settime to implement settimeofday.
>>
>> Changes from previous version:
>>
>> - Added a NEWS entry.
>>
>> --
>>
>> [...]
>> diff --git a/NEWS b/NEWS
>> index 8727b5e7f0..0b1476e745 100644
>> --- a/NEWS
>> +++ b/NEWS
>> @@ -34,6 +34,30 @@ Deprecated and removed features, and other changes
>> affecting compatibility:
>> binaries and it has been removed from <time.h> header. This function
>> has been deprecated in favor of clock_settime.
>>
>> +* The settimeofday function can still be used to set a system-wide time
>> + zone when the operating system supports it. This is because the Linux
>> + kernel reused the API, on some architectures, to describe a system-wide
>> + time-zone-like offset between the software clock maintained by the
>> kernel,
>> + and the “RTC” clock that keeps time when the system is shut down.
>
> That's little off-topic and little nit-picky but are you sure you want to
> use the Unicode quotes like “” instead of plain ASCII "" ? No problem if
> this is what you really want but I suspect your editor converted this.
I think this came from the original patchset from Zack, I have split
the last commit that added the NEWS entry for all the changes.
I changed to plan ASCII version.
>
>> + However, to reduce the odds of this offset being set by accident,
>> + settimeofday can no longer be used to set the time and the offset
>> + simultaneously. If both of its two arguments are non-null, the call
>> + will fail (setting errno to EINVAL).
>> +
>> + Callers attempting to set this offset should also be prepared for the
>> call
>> + to fail and set errno to ENOSYS; this already happens on the Hurd and
>> on
>> + some Linux architectures. The Linux kernel maintainers are discussing
>> a
>> + more principled replacement for the reused API. After a replacement
>> + becomes available, we will change settimeofday to fail with ENOSYS on
>> all
>> + platforms when its ‘tzp’ argument is not a null pointer.
>
> Same here, the Unicode ‘’ instead of plain ASCII '' .
Ack, fixed.
>
>> + Note that settimeofday itself is obsolescent according to POSIX.
>> + Programs that set the system time should use clock_settime and/or
>> + the adjtime family of functions instead. We may also cease to make
>> + settimeofday available to newly linked binaries after there is a
>> + replacement for Linux’s time-zone-like offset API.
>
> Again the Unicode apostrophe ’ instead of plain ASCII ' .
Ack, fixed.
>
> Regards,
>
> Rafal
>