
I believe the line you are quoting is expected because the same happens in Paul's Linux output: Africa/Abidjan -9223372036854775808 = NULL We are linking the other objects into zdump.exe, see nmake output: /out:zdump.exe zdump.obj getopt.obj localtime.obj asctime.obj strftime.obj It is probably this line from tools.ini: TZDOBJSW= zdump$(O) getopt$(O) localtime$(O) asctime$(O) strftime$(O) See the ful tools.ini file: [NMAKE] !IF [ if not "%PLATFORM%" == "x64" exit /b 1 ] == 0 CFLAGSW = /Zi -DHAVE_SYS_WAIT_H=0 -DHAVE_UNISTD_H=0 -DHAVE_INTTYPES_H=0 -DHAVE_POSIX_DECLS=0 -DHAVE_LINK=0 -DHAVE_SYMLINK=0 -DHAVE_DECL_ASCTIME_R=0 -Dssize_t=__int64 -DHAVE_STRTOLL=0 -DRESERVE_STD_EXT_IDS -DSUPPRESS_TZDIR -DHAVE_TZNAME=1 -DZIC_BLOAT_DEFAULT="""fat""" !ELSE CFLAGSW = /Zi -DHAVE_SYS_WAIT_H=0 -DHAVE_UNISTD_H=0 -DHAVE_INTTYPES_H=0 -DHAVE_POSIX_DECLS=0 -DHAVE_LINK=0 -DHAVE_SYMLINK=0 -DHAVE_DECL_ASCTIME_R=0 -Dssize_t=int -DHAVE_STRTOLL=0 -DRESERVE_STD_EXT_IDS -DSUPPRESS_TZDIR -DHAVE_TZNAME=1 -DZIC_BLOAT_DEFAULT="""fat""" !ENDIF LINKW = cl $(LDFLAGS) CCW = cl /c LDLIBSW = X = .exe O = .obj PACKAGE= tzcode BUGEMAIL= tz@iana.org TZCOBJSW= zic$(O) getopt$(O) TZDOBJSW= zdump$(O) getopt$(O) localtime$(O) asctime$(O) strftime$(O) root: zic$(X) zdump$(X) version: !IF [git describe > nul 2>&1] == 0 if not exist version for /f "delims=-" %%a in ('git describe') do echo %%a > version !ELSE if not exist version echo $(VERSION) > version !ENDIF version.h: echo static char const PKGVERSION[]="($(PACKAGE)) "; >version.h for /F %%H in ('type version') do echo static char const TZVERSION[]="%%H"; >> version.h echo static char const REPORT_BUGS_TO[]="$(BUGEMAIL)"; >>version.h zic$(X): $(TZCOBJSW) $(LINKW) $(CFLAGSW) $(TZCOBJSW) /link /out:$@ zdump$(X): $(TZDOBJSW) $(LINKW) $(CFLAGSW) $(TZDOBJSW) /link /out:$@ clean_misc: del *$(O) *.out version.h clean: clean_misc del zdump$(X) zic$(X) asctime$(O): private.h tzfile.h date$(O): private.h difftime$(O): private.h localtime$(O): private.h tzfile.h strftime$(O): private.h tzfile.h zdump$(O): version.h zic$(O): private.h tzfile.h version.h getopt$(O): .c.obj: $(CCW) $*.c $(CFLAGSW) .PHONY: root Regards Manu -----Original Message----- From: Guy Harris <gharris@sonic.net> Sent: Freitag, 23. April 2021 09:38 To: Manuela Friedrich <Manuela.Friedrich@actian.com> Cc: Paul Eggert <eggert@cs.ucla.edu>; Steven Shuriff <Steven.Shuriff@actian.com>; Time zone mailing list <tz@iana.org> Subject: Re: [tz] iana build failures on Windows On Apr 22, 2021, at 11:22 PM, Manuela Friedrich via tz <tz@iana.org> wrote:
please find the tracing output attached. I have only kept the first 136 lines believing it provides enough information.
...
d:\devsrc\treasure_test\iana\zoneinfo\iana\Africa\Abidjan -9223372036854775808 = NULL
Is zdump linked with the rest of the tz code, or is it only linked with the Visual Studio C library? If it's only linked with the Visual Studio C library, so that the localtime() that zdump calls is the Visual Studio C library's localtime(), rather than the tz code's localtime(), then it Will Not Work for any time before January 1, 1970, 00:00:00 UTC - localtime() in the Visual Studio C library returns NULL for all such date/time values: https://docs.microsoft.com/en-us/cpp/c-runtime-library/reference/localtime-l...