I use the following software: 1. Cygnus B20.1 full package 2. Andy Piper's local.tar for Cygnus B20 3. Ludovic Lange's Cygwin32 IPC Package 4. Postgres 6.4 release 5. Daniel Horak's patch All this software can be obtained throught my Askesis Homepage links Installation 1. Cygnus B20.1 full package I installed the compiler in d:\Unix\Root. This directory is serving as my unix root (/) directory. From that root directory I created a mostly Unix filesystem/hierarchy. I changed my cygnus.bat (see attachement) so that several things work (better) (man, less, postgres etc). To mount the directory as root directory I did "umount /" and "mount D:/Unix/Root /". 2. Andy Piper's local.tar for Cygnus B20 I untarred it from my unix root: d:\Unix\Root. Than I ran the check_cygwin_setup.sh that Andy supplied. Be sure that a directory /bin exists with sh.exe in it. 3. Ludovic Lange's Cygwin32 IPC Package I untarred it in a directory [d:/unix/root] /usr/src and did a make. Than I copied the files as in the readme file. 4. Postgres 6.4 release The postgres installation needed some preparation. First I had to copy some file into my Cygnus include tree: the do nothing but Postgres expects them,. They are available at the formentioned homepage and also attached. 1. copy un.h to 2. copy endian.h to 3. copy tcp.h to Second I had to setup some mountings and directories. Postgres treats all files as binairy files so the (in)famous lf/cr stuff appeared. Allthough Craig Setera (setera@us.ibm.com) has changed teh fopen's etc. so that text files are opened the text way, I do not have his patch so I did it differently: 1. I created a text mounted /usr/src/pgsql. 2. I created a binairy mounted /usr/local/pgsql 3. I also created a mount /sw/cygwin/share because Dan's patch expects bison.hairy there. After doing that mount displayed: Device Directory Type Flags f:\Dev\EGCS\Postgres\Source\pgsql /usr/src/pgsql native text!=binary f:\Dev\EGCS\Postgres\Source /usr/src/even native text!=binary f:\Dev\EGCS\Postgres\Binary\pgsql /usr/local/pgsql native text=binary D:\Unix\Root\Cygnus\cygwin-b20\share /sw/cygwin/share native text!=binary \\.\tape1: /dev/st1 native text!=binary \\.\tape0: /dev/st0 native text!=binary \\.\b: /dev/fd1 native text!=binary \\.\a: /dev/fd0 native text!=binary D:\Unix\Root / native text!=binary I also created in the /usr/local/pgsql the subdirectories bin, include, lib and data. If I did not do that "make install" failed (it cannot make a complete path in once). As last I created a symbolical link from a lib directory to /usr/src/pgsql/src/backend/libpostgres.a After that I could untar/install the postgres package: 1. Unpack the package (and cp/mv it to /usr/src/pgsql) 2. Apply the patch "patch -p2 < postgres64.diff" (patch file in the src root directory, patch file attached and at the web page) After applying the patch 2 manual changes 1. Change pgsql/src/utils/dllinit.c to (only Cygwin B20 or higher) 2. Comment the targets interface and pl out. At this moment they do not compile. Don't know why yet. Making postgres: 1. configure 2. make [ > make.txt 2>&1] (if one wants the output) 3. make install [ > make.install.txt 2>&1] (if one wants the output) After the make install I had to change all the text files in the bin and lib directories so that they did not contain cr/lf and eof stuff. This is important or one get's all kind of errors while running initdb. After doing all this one can run initdb and the regression tests (and see the regression tests crash...)