Dear maintainers of the tzcode, I noticed I could't build the tzcode from Mingw gcc. Therefore I'd like to suggest some additions/changes. They are fairly trivial, see below. Theo Veenker Main change required is the addition of a (conditional) link() function into zic.c as this function is not provided on a Windows platform. private.h: Add: #ifndef HAVE_LINK #define HAVE_LINK 1 #endif /* !defined HAVE_LINK */ zic.c: Add: #if !HAVE_LINK #define SCRATCH_SIZE 8000 int link(const char * fromname, const char * toname) { FILE * fi; FILE * fo; char * scratch; int err = 0; fi = fopen(fromname, "rb"); if (!fi) return -1; fo = fopen(toname, "wb"); if (!fo) { fclose(fi); return -1; } scratch = (char*)emalloc(SCRATCH_SIZE); while (!feof(fi)) { int nread = fread(scratch, 1, SCRATCH_SIZE, fi); if (nread > 0) { int nwritten = fwrite(scratch, 1, nread, fo); if (nwritten != nread) { err = -1; break; } } else if (feof(fi)) { break; } else if (ferror(fi)) { err = -1; break; } } free(scratch); fclose(fo); fclose(fi); return err; } #endif /* !HAVE_LINK */ Makefile: Linking zdump requires asctime.c and asctime.o to be added to symbols TZDSRCS resp. TZDOBJS: TZDSRCS= zdump.c localtime.c asctime.c ialloc.c TZDOBJS= zdump.o localtime.o asctime.o ialloc.o Also add comment: # -DHAVE_LINK=0 if your system lacks the link function To test compilation using i686-w64-mingw32-gcc under Linux: make CFLAGS="-DHAVE_STDINT_H -DSTD_INSPIRED -DHAVE_SYS_WAIT_H=0 -DHAVE_SYS_STAT_H=0 -DHAVE_UNISTD_H=0 -DHAVE_SYMLINK=0 -DHAVE_LINK=0" cc=i686-w64-mingw32-gcc To test compilation using Mingw gcc under Windows: make CFLAGS="-DHAVE_STDINT_H -DSTD_INSPIRED -DHAVE_SYS_WAIT_H=0 -DHAVE_SYS_STAT_H=0 -DHAVE_UNISTD_H=0 -DHAVE_SYMLINK=0 -DHAVE_LINK=0" cc=gcc -- Theo Veenker | Beexy - Behavioral Experiment Software +31(0)524-541531 | +31(0)6-42525777 mobile theo.veenker@beexy.nl | www.beexy.nl