Re: [ntpwg] Bug: Status/Summary of slashdot leap-second crash onnew years 2008-2009

From: Magnus Danielson
Date: Thu Jan 08 2009 - 11:51:46 EST


M. Warner Losh skrev:
In message: <49647E0F.9030008@xxxxxxxxxxxxxxx>
David Newall <davidn@xxxxxxxxxxxxxxx> writes:
: Linas Vepstas wrote:
: > Currently, the Linux kernel keeps time in UTC. This means
: > that it must take special actions to tick twice when a leap
: > second comes by.
: : Except it doesn't have to tick twice. Refer to
: http://lkml.org/lkml/2009/1/7/78 in which I show that a time_t (what
: time() returns) counts leap seconds (According to Bernstein this is what
: UTC means), and using zoneinfo, the library processes leap seconds
: correctly.

This is *NOT* POSIX time_t. In order to be posix compliant, you can't
do what Bernstein suggests. You can be non-complaint and deal it with
zoneinfo.

You are free to keep your core time in whatever form you wish, but if you want your time_t to be POSIX compatible when accessed over POSIX interfaces you would need to honour the POSIX time_t mapping. While POSIX tried to avoid the leapsecond issue, the mapping they do perform has a peculiar effect on what happends on time_t if you also want to honour the UTC to time_t mapping while accepting UTC from external sources.

: I just realised that the Notes in man 2 time are confusing and probably
: unnecessary. Suffice to say that (assuming correctly configured
: zoneinfo) time() returns the number of seconds elapsed since start 1970.

That's not POSIX complaint.

It just *appears* to be the number of "seconds" since 1970. This appearence is important to some and causing a greif to others.

Cheers,
Magnus
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/