[tz] iana build failures on Windows

Paul Eggert eggert at cs.ucla.edu
Wed Apr 21 18:34:14 UTC 2021


On 4/20/21 4:57 AM, Manuela Friedrich wrote:
> I still would like to double check about the zdump -v output for Africa Abidjan.
> I am getting 1946 lines of output.
> Is that in the range you get on Linux?

No, all I get is the following.

> Africa/Abidjan  -9223372036854775808 = NULL
> Africa/Abidjan  -67768040609740801 = NULL
> Africa/Abidjan  Thu Jan  1 00:00:00 -2147481748 UT = NULL
> Africa/Abidjan  Thu Jan  1 00:16:07 -2147481748 UT = NULL
> Africa/Abidjan  Thu Jan  1 00:16:08 -2147481748 UT = Thu Jan  1 00:00:00 -2147481748 LMT isdst=0 gmtoff=-968
> Africa/Abidjan  Mon Jan  1 00:16:07 1912 UT = Sun Dec 31 23:59:59 1911 LMT isdst=0 gmtoff=-968
> Africa/Abidjan  Mon Jan  1 00:16:08 1912 UT = Mon Jan  1 00:16:08 1912 GMT isdst=0 gmtoff=0
> Africa/Abidjan  Wed Dec 31 23:59:59 2147485547 UT = Wed Dec 31 23:59:59 2147485547 GMT isdst=0 gmtoff=0
> Africa/Abidjan  67768036191676800 = NULL
> Africa/Abidjan  9223372036854775807 = NULL

So it appears that there is still some problem on MS-Windows that we 
haven't gotten to the bottom of. Looking at the output you sent me in 
earlier email (quoted below), it appears that there a problem starting 
at Sun Dec 31 23:59:59 1911 UT. Starting then, on your MS-Windows port 
for some reason zdump thinks there is a transition every second.

> d:\devsrc\treasure_test\iana\zoneinfo\iana\Africa\Abidjan  -9223372036854775808 = NULL
> d:\devsrc\treasure_test\iana\zoneinfo\iana\Africa\Abidjan  -67768040609740801 = NULL
> d:\devsrc\treasure_test\iana\zoneinfo\iana\Africa\Abidjan  Thu Jan  1 00:00:00 -2147481748 UT = NULL
> d:\devsrc\treasure_test\iana\zoneinfo\iana\Africa\Abidjan  Thu Jan  1 00:16:07 -2147481748 UT = NULL
> d:\devsrc\treasure_test\iana\zoneinfo\iana\Africa\Abidjan  Thu Jan  1 00:16:08 -2147481748 UT = Thu Jan  1 00:00:00 -2147481748 LMT isdst=0 gmtoff=-968
> d:\devsrc\treasure_test\iana\zoneinfo\iana\Africa\Abidjan  Sun Dec 31 23:59:59 1911 UT = Sun Dec 31 23:43:51 1911 LMT isdst=0 gmtoff=-968
> d:\devsrc\treasure_test\iana\zoneinfo\iana\Africa\Abidjan  Mon Jan  1 00:00:00 1912 UT = Sun Dec 31 23:43:52 1911 LMT isdst=0 gmtoff=-968
> d:\devsrc\treasure_test\iana\zoneinfo\iana\Africa\Abidjan  Mon Jan  1 00:00:00 1912 UT = Sun Dec 31 23:43:52 1911 LMT isdst=0 gmtoff=-968
> d:\devsrc\treasure_test\iana\zoneinfo\iana\Africa\Abidjan  Mon Jan  1 00:00:01 1912 UT = Sun Dec 31 23:43:53 1911 LMT isdst=0 gmtoff=-968
> d:\devsrc\treasure_test\iana\zoneinfo\iana\Africa\Abidjan  Mon Jan  1 00:00:01 1912 UT = Sun Dec 31 23:43:53 1911 LMT isdst=0 gmtoff=-968
> d:\devsrc\treasure_test\iana\zoneinfo\iana\Africa\Abidjan  Mon Jan  1 00:00:02 1912 UT = Sun Dec 31 23:43:54 1911 LMT isdst=0 gmtoff=-968
> d:\devsrc\treasure_test\iana\zoneinfo\iana\Africa\Abidjan  Mon Jan  1 00:00:02 1912 UT = Sun Dec 31 23:43:54 1911 LMT isdst=0 gmtoff=-968
> ...

My suspicion is that the following line in zdump.c (line 702) is the 
culprit somehow:

                             && delta(&tm, &lotm) == t - lot

That is, I suspect that delta(&tm, &lotm) is not equal to t - lot, even 
though it should be in the "transitions" that zdump is reporting 
incorrectly. Here, tm is the result of calling localtime on t and lotm 
is the result of calling localtime on lot, and in this incorrect 
"transitions" t = lot + 1. Perhaps you can investigate my guess with a 
debugger, or by inserting debugging printfs to see why zdump is going awry.


More information about the tz mailing list