John, Fact 1 is that there is a *lot* of Unix code out there that depends on 1 day being represented by a 86400 increment in time_t, and that is what POSIX.1:2001 now explicitely requires the system to provide. This excludes in practice the option to make time_t an encoding of TAI+10s.
http://www.cl.cam.ac.uk/~mgk25/volatile/posix-secs-since-epoch-2001.pdf Fact 2 is that the old 1980s pre-POSIX Unix manuals talked about GMT and not UTC. This strongly suggests that the authors were unfamiliar with both TAI and UTC. The "seconds" they refer to behave more like UT1 seconds than like TAI/SI seconds, i.e. they are Earth rotation angles and not Caesium oscillations. There are in the long run as many UT1 seconds as there are UTC-non-leap seconds. The authors of Unix also assumed that local civilian time zones and GMT differ only by an integer number of minutes (see struct timezone in man gettimeofday(2)). Today, most local civilian times and UTC have exactly that connection. Therefore we can conclude very convincingly that UTC non-leap seconds represent the best modern interpretation of what the authors of Unix had in mind. And POSIX.1-2001 wisely does specify now exactly that. I rest my case. Are there any more interesting problems with leap seconds than misinterpretations of old Unix manuals? Markus -- Markus Kuhn, Computer Lab, Univ of Cambridge, GB http://www.cl.cam.ac.uk/~mgk25/ | __oo_O..O_oo__