[tz] iana build failures on Windows

Manuela Friedrich Manuela.Friedrich at actian.com
Mon May 10 07:33:47 UTC 2021


Hello Paul,

with the latest code in the repository zdump -v now matches Linux:

d:\devsrc\treasure_test\iana>d:\devsrc\treasure_test\iana\tmp\zdump.exe -v d:\devsrc\treasure_test\iana\zoneinfo\iana\Africa\Abidjan
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  Mon Jan  1 00:16:07 1912 UT = Sun Dec 31 23:59:59 1911 LMT isdst=0 gmtoff=-968
d:\devsrc\treasure_test\iana\zoneinfo\iana\Africa\Abidjan  Mon Jan  1 00:16:08 1912 UT = Mon Jan  1 00:16:08 1912 GMT isdst=0 gmtoff=0
d:\devsrc\treasure_test\iana\zoneinfo\iana\Africa\Abidjan  Wed Dec 31 23:59:59 2147485547 UT = Wed Dec 31 23:59:59 2147485547 GMT isdst=0 gmtoff=0
d:\devsrc\treasure_test\iana\zoneinfo\iana\Africa\Abidjan  67768036191676800 = NULL
d:\devsrc\treasure_test\iana\zoneinfo\iana\Africa\Abidjan  9223372036854775807 = NULL

Thanks for the fix!

Regards
Manuela

-----Original Message-----
From: Paul Eggert <eggert at cs.ucla.edu> 
Sent: Mittwoch, 5. Mai 2021 20:05
To: Manuela Friedrich <Manuela.Friedrich at actian.com>
Cc: Steven Shuriff <Steven.Shuriff at actian.com>; Time zone mailing list <tz at iana.org>
Subject: Re: iana build failures on Windows

On 5/5/21 6:23 AM, Manuela Friedrich wrote:

> the new tracing seems to reveal a diff in the abbreviations.

Yes, that seems to be the problem. MS-Windows's struct tm does not have a tm_zone member; localtime merely puts time zone abbreviations into a global variable tzname, a la POSIX. On platforms lacking tm_zone, zdump's recently-changed code for remembering time zone abbreviations attempted to optimize localtime calls too aggressively and got the wrong abbreviation out of tzname.

I installed the attached patch into the development repository. It fixes things on Ubuntu when I compile with -DNO_TM_ZONE, which is how I reproduced the bug (NO_TM_ZONE tells zdump to pretend there's no tm_zone member). Please give it a try.


More information about the tz mailing list