Re: Cygwin PostgreSQL CVS Patch - Mailing list pgsql-ports
From | Jason Tishler |
---|---|
Subject | Re: Cygwin PostgreSQL CVS Patch |
Date | |
Msg-id | 20010112102048.H219@dothill.com Whole thread Raw |
In response to | Re: Cygwin PostgreSQL CVS Patch (Peter Eisentraut <peter_e@gmx.net>) |
Responses |
Re: Cygwin PostgreSQL CVS Patch
|
List | pgsql-ports |
Peter, On Fri, Jan 12, 2001 at 12:54:07AM +0100, Peter Eisentraut wrote: > > On Tue, Jan 09, 2001 at 11:39:07PM -0500, Tom Lane wrote: > > > This is Peter's turf, but I will take care of it if he doesn't get to it > > > soon. In the meantime, please work up a final Cygwin patch on the > > > assumption that configure will be fixed as above. > > > > See attached for ChangeLog and patch. The instructions to apply the > > patch is as follows: > > The Makefile.shlib patch looks like a hack to me to get the regression > tests to work. Surely you don't have to install *all* shared libraries > into bindir *and* libdir. Pick one or fix the regression test driver or > do something else. My reasons for installing the "shared" libraries, DLLs under Cygwin, into bindir and libdir are as follows: 1. All of the DLLs except for plpgsql.dll need to be in the users PATH, otherwise Windows cannot start applications that depend on them. The canonical example is the regression test (really psql). However, any app that is dependent on ecpg.dll, pgeasy.dll, pq.dll, or pq++.dll will have this problem too. The only exception is plpgsql.dll which needs to be in LD_LIBRARY_PATH since it is dlopen-ed into postgres.exe, if appropriate. 2. I would prefer to use symlinks but that would require the real files to be installed in bindir and symlinked back to libdir because Windows does *not* understand Cygwin symlinks. Doing so would have caused more significant changes to the makefiles which I don't believe is desired for just one platform. 3. I continued to install the DLLs to libdir because I was concerned that postgres.exe (or other executables) might be dlopen-ing them. If so, then LD_LIBRARY_PATH would have to be set to a different value on Cygwin than on other UNIX systems. The only downside that I can see from installing to both bindir and libdir is the possibility of the copies from getting out of sync and wasted disk space. The wasted disk space is really not an issue since the total size of the five stripped DLLs on 7.0.3 is ~250K. I admit that there is a "hacky" aspect to the Makefile.shlib patch. I am lucky that plpgsql.dll doesn't get installed to both bindir and libdir. This is a desired side effect due to plpgsql.dll's install rule overriding the standard one in Makefile.shlib. Given more insight into my reasoning, will you reconsider and accept my Makefile.shlib patch? Thanks, Jason -- Jason Tishler Director, Software Engineering Phone: +1 (732) 264-8770 x235 Dot Hill Systems Corp. Fax: +1 (732) 264-8798 82 Bethany Road, Suite 7 Email: Jason.Tishler@dothill.com Hazlet, NJ 07730 USA WWW: http://www.dothill.com
pgsql-ports by date: