|
Message-ID: <529588D8.3020006@skarnet.org> Date: Wed, 27 Nov 2013 05:53:28 +0000 From: Laurent Bercot <ska-dietlibc@...rnet.org> To: musl@...ts.openwall.com Subject: Re: [PATCH] Add support for leap seconds in zoneinfo files > __secs_to_tm and __tm_to_secs are not the right places for applying > leap seconds, because they affect gmtime, which is specified strictly > by POSIX to have a particular relationship with time_t... I disagree that they are not the right place for it. * the point of using TAI-10 instead of UTC is to have a linear system clock, so leap seconds must not be applied to clock_gettime() and friends. http://pubs.opengroup.org/onlinepubs/9699919799/functions/time.html and http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap04.html#tag_04_15 are vague enough ("approximate the number of seconds that have elapsed since the Epoch") for TAI-10 to be a compliant setup here. The numerical relationship between number of seconds and broken-down time is not respected if there are leap seconds, but: * http://pubs.opengroup.org/onlinepubs/9699919799/functions/gmtime.html makes it very clear that gmtime() should return UTC, and user applications like "date" rely on it, so if there are leap seconds, they should definitely be applied here; * POSIX followers will use posix/ timezones with 0 leap seconds anyway, so the numerical relationship will be respected. To sum it up: - leap seconds break POSIX anyway, but should break as little as possible - leap second users only care about system clock time, not broken-down time - so gmtime() should always return UTC, this is relied on by userland so it's more important than the exact relationship between tm and secs - so time() should ignore leap seconds but broken-down time should apply them - so the right place to apply them is in __secs_to_tm and __tm_to_secs, the conversion routines - using a posix/ zone will make everything POSIX in any case. -- Laurent
Powered by blists - more mailing lists
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.