[tz] localtime.c year-2038 problem with 32-bit unsigned time_t

Paul Eggert eggert at cs.ucla.edu
Mon May 27 22:15:26 UTC 2013


The recently-added tests uncovered problems in the reference
implementation on platforms where time_t is an unsigned 32-bit quantity.
To reproduce the problem, check out the latest version from
Github and run the command 'make check_time_t_alternatives'.
On my platform (Ubuntu 13.04 x86-64), this generates about 45,000
lines of output, which I won't bore readers with, but here's
one example:

-America/New_York                Sun Mar 14 06:59:59 2038 UTC = Sun Mar 14 01:59:59 2038 EST isdst=0
-America/New_York                Sun Mar 14 07:00:00 2038 UTC = Sun Mar 14 03:00:00 2038 EDT isdst=1
-America/New_York                Sun Nov  7 05:59:59 2038 UTC = Sun Nov  7 01:59:59 2038 EDT isdst=1
-America/New_York                Sun Nov  7 06:00:00 2038 UTC = Sun Nov  7 01:00:00 2038 EST isdst=0

These transitions should exist with unsigned 32-bit time_t,
but they're missing.


More information about the tz mailing list