Small suggestion on build script - Mailing list pgsql-hackers

From Dann Corbit
Subject Small suggestion on build script
Date
Msg-id D90A5A6C612A39408103E6ECDD77B829408D53@voyager.corporate.connx.com
Whole thread Raw
Responses Re: Small suggestion on build script  ("Marc G. Fournier" <scrappy@postgresql.org>)
Re: Small suggestion on build script  (Tom Lane <tgl@sss.pgh.pa.us>)
Re: Small suggestion on build script  (Peter Eisentraut <peter_e@gmx.net>)
List pgsql-hackers
I would like to suggest changing the symlinks to copy commands:

cp ./src/backend/port/tas/dummy.s ./src/backend/port/tas.s
cp ./src/backend/port/dynloader/win32.c ./src/backend/port/dynloader.c
cp ./src/backend/port/sysv_sema.c ./src/backend/port/pg_sema.c
cp ./src/backend/port/sysv_shmem.c ./src/backend/port/pg_shmem.c
cp ./src/backend/port/dynloader/win32.h ./src/include/dynloader.h
cp ./src/include/port/win32.h ./src/include/pg_config_os.h
cp ./src/makefiles/Makefile.win32 ./src/Makefile.port

The reason is that under Mingw, I get random failures with the symlinks
(typically all will work but one or two, but there is no telling which
will succeed and which will fail).

The space consumed by a copy instead of a symblink is very small.

Here is a summary of the changes I need to make to do a build of the
latest drop:

1.  Go to the Postgresql site and download the latest development
snapshot called postgresql-snapshot.tar.bz2 and decompress and untar it.
2.  Install the complete MINGW tool chain from here:
http://www.mingw.org/download.shtml
I went from the bottom up.
3.  Using mingw, change directory to the /postgresql-snapshot directory
and run
$ ./configure   --without-readline
3. b) even at that, the pg_config.h file will be messed up.  You have to
manually edit it so that every reference to readline is #undef removed.
3. c) edit pg_config.h and make these changes:
/* Define to 1 if you have the <termios.h> header file. */
#undef HAVE_TERMIOS_H
#define WIN32 1
3. d) a sample of a working pg_config.h file is attached.
4.  You will probably have to repair either float.c or ieeefp.h.  The
file float.c needs the following modification after the comments,
because something goes haywire in ieeefp.h:
#include "postgres.h"
#include <ctype.h>
#include <errno.h>
#include <float.h>
#include <math.h>
#include <limits.h>
/* for finite() on Solaris */
#ifdef HAVE_IEEEFP_H
#ifndef __MINGW32__ /* <<<== ICKY_WIN32_KLUDGE --> DRC {BROKEN ieeefp.h
file} */
#include <ieeefp.h>
#endif /* end ICKY_WIN32_KLUDGE */
#endif

5.  The build will stop where the symlinks fail (random).  For the files
that are missing, perform the copy commands shown above.

6.  Run make, correcting any errors with symlinks until all are resolved

7.  Make install


pgsql-hackers by date:

Previous
From: "Simon Riggs"
Date:
Subject: Re: Function to kill backend
Next
From: Bruce Momjian
Date:
Subject: Re: Abstract for my replication system