In the recently released 7.2.2 there is still the problem that this patch solved:
http://archives.postgresql.org/pgsql-cygwin/2002-05/msg00053.php
Here is a patch against 7.2.2 to resolve it:
*** src/backend/access/transam/xlog.c.orig Fri Mar 15 19:20:42 2002
--- src/backend/access/transam/xlog.c Mon Jun 09 13:05:26 2002
***************
** 1506,1512 ****
* overwrite an existing logfile. However, there shouldn't be one, so
* rename() is an acceptable substitute except for the truly paranoid.
*/
! #ifndef __BEOS__
if (link(tmppath, path) < 0)
elog(STOP, "link from %s to %s (initialization of log file %u, segment %u) failed: %m",
tmppath, path, log, seg);
--- 1506,1512 ----
* overwrite an existing logfile. However, there shouldn't be one, so
* rename() is an acceptable substitute except for the truly paranoid.
*/
! #if !defined(__BEOS__) && !defined(__CYGWIN__)
if (link(tmppath, path) < 0)
elog(STOP, "link from %s to %s (initialization of log file %u, segment %u) failed: %m",
tmppath, path, log, seg);