Re: [PATCHES] libpq.dll on win32
Patch applied. Thanks. I fixed a few merge conflicts. --- Magnus Hagander wrote: *** src/interfaces/libpq/fe-secure.c 28 Sep 2004 00:06:02 -1.54 --- src/interfaces/libpq/fe-secure.c 11 Oct 2004 19:50:22 - *** *** 1201,1206 --- 1201,1212 return NULL; return conn-ssl; } + #else + void * + PQgetssl(PGconn *conn) + { +return NULL; + } #endif /* USE_SSL */ This seems like a good idea, but that particular approach to it will draw an unprototyped-global-function warning on every non-SSL-enabled compile ... please clean it up. Oops. Updated patch attached. Also, I count 3 *.def files to be fixed, not two. Right. The Borland one, forgot all about that one. Included in attached patch. Borland version not actually tested, though, since I don't have Borland C.. (We really oughta figure a way to generate them all from a single list file... can we rely on sed(1) being available in all Windows build environments?) Unfortunatly, no, we can't. There are sed implementations available for win32, but they're not installed by default. MingW and Cygwin of course ship with sed, but we build libpq with MSVC and Borland as well... The avaiable options to do it are just horrible. There is edlin, but it can't be used for anything serious. Or there is the wonderful concept of writing something in vbscript. But putting vbscript in there doesn't seem like a very good option. I like the idea of having it built automatically for the snapshots in some way, and if you want to build it manually, you have to install 'sed'. I think that's a reasonable requirement. Anyway. Here is the patch for this one. Not sure we want to muck around with those build issues during beta considering they actually *work* now (if a bit of extra work). //Magnus Content-Description: libpq_def.patch [ Attachment, skipping... ] ---(end of broadcast)--- TIP 5: Have you checked our extensive FAQ? http://www.postgresql.org/docs/faqs/FAQ.html -- Bruce Momjian| http://candle.pha.pa.us [EMAIL PROTECTED] | (610) 359-1001 + If your life is a hard drive, | 13 Roberts Road + Christ can be your backup.| Newtown Square, Pennsylvania 19073 Index: src/Makefile.shlib === RCS file: /cvsroot/pgsql/src/Makefile.shlib,v retrieving revision 1.85 diff -c -c -r1.85 Makefile.shlib *** src/Makefile.shlib 15 Oct 2004 05:11:00 - 1.85 --- src/Makefile.shlib 16 Oct 2004 03:22:09 - *** *** 31,36 --- 31,38 # DLLTOOL_DEFFLAGS Additional flags when creating the dll .def file # DLLTOOL_LIBFLAGS Additional flags when creating the libmodule.a file # DLLWRAP_FLAGS Additional flags to dllwrap + # DLL_DEFFILE Use pre-existing .def file instead of auto-generating + # one with all exports in it (win32 only). # # The module Makefile must also include # $(top_builddir)/src/Makefile.global before including this file. *** *** 306,314 --- 308,321 # Cygwin case $(shlib) lib$(NAME).a: $(OBJS) + ifndef DLL_DEFFILE $(DLLTOOL) --export-all $(DLLTOOL_DEFFLAGS) --output-def $(NAME).def $(OBJS) $(DLLWRAP) $(LDFLAGS_SL) -o $(shlib) --dllname $(shlib) $(DLLWRAP_FLAGS) --def $(NAME).def $(OBJS) $(SHLIB_LINK) $(DLLTOOL) --dllname $(shlib) $(DLLTOOL_LIBFLAGS) --def $(NAME).def --output-lib lib$(NAME).a + else + $(DLLWRAP) $(LDFLAGS_SL) -o $(shlib) --dllname $(shlib) $(DLLWRAP_FLAGS) --def $(DLL_DEFFILE) $(OBJS) $(SHLIB_LINK) + $(DLLTOOL) --dllname $(shlib) $(DLLTOOL_LIBFLAGS) --def $(DLL_DEFFILE) --output-lib lib$(NAME).a + endif endif # PORTNAME == cygwin *** *** 316,324 --- 323,336 # win32 case $(shlib) lib$(NAME).a: $(OBJS) + ifndef DLL_DEFFILE $(DLLTOOL) --export-all $(DLLTOOL_DEFFLAGS) --output-def $(NAME).def $(OBJS) $(DLLWRAP) $(LDFLAGS_SL) -o $(shlib) --dllname $(shlib) $(DLLWRAP_FLAGS) --def $(NAME).def $(OBJS) $(SHLIB_LINK) $(DLLTOOL) --dllname $(shlib) $(DLLTOOL_LIBFLAGS) --def $(NAME).def --output-lib lib$(NAME).a + else + $(DLLWRAP) $(LDFLAGS_SL) -o $(shlib) --dllname $(shlib) $(DLLWRAP_FLAGS) --def $(DLL_DEFFILE) $(OBJS) $(SHLIB_LINK) + $(DLLTOOL) --dllname $(shlib) $(DLLTOOL_LIBFLAGS) --def $(DLL_DEFFILE) --output-lib lib$(NAME).a + endif endif # PORTNAME == win32 Index: src/interfaces/libpq/Makefile === RCS file: /cvsroot/pgsql/src/interfaces/libpq/Makefile,v retrieving revision 1.117 diff -c -c -r1.117 Makefile *** src/interfaces/libpq/Makefile 12 Oct 2004 04:48:36 -
Re: [PATCHES] libpq.dll on win32
-Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Magnus Hagander Sent: 11 October 2004 21:05 To: pgsql-patches Subject: [PATCHES] libpq.dll on win32 * Adds required functions to libpqdll.def and libpqddll.def. This includes the functions not in the libpq API that are used by initdb and imported from libpq.dll (per recent mail discussion) They should be added to the Borland .def files as well. Regards, Dave ---(end of broadcast)--- TIP 1: subscribe and unsubscribe commands go to [EMAIL PROTECTED]
Re: [PATCHES] libpq.dll on win32
-Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Tom Lane Sent: 12 October 2004 01:38 To: Magnus Hagander Cc: pgsql-patches Subject: Re: [PATCHES] libpq.dll on win32 Also, I count 3 *.def files to be fixed, not two. (We really oughta figure a way to generate them all from a single list file... can we rely on sed(1) being available in all Windows build environments?) I could have sworn there used to be 4 .def files - 2 for VC++ and 2 for Borland. Oh well. Anyway, no, sed will not be available in VC++, or (I guess) Borland environments. Regards, Dave ---(end of broadcast)--- TIP 7: don't forget to increase your free space map settings
Re: [PATCHES] libpq.dll on win32
Tom Lane schrieb: Also, I count 3 *.def files to be fixed, not two. (We really oughta figure a way to generate them all from a single list file... can we rely on sed(1) being available in all Windows build environments?) for cygwin: yes. the non-gcc builds would need the mingw or cygwin versions. ---(end of broadcast)--- TIP 6: Have you searched our list archives? http://archives.postgresql.org
Re: [PATCHES] libpq.dll on win32
*** src/interfaces/libpq/fe-secure.c 28 Sep 2004 00:06:02 - 1.54 --- src/interfaces/libpq/fe-secure.c 11 Oct 2004 19:50:22 - *** *** 1201,1206 --- 1201,1212 return NULL; return conn-ssl; } + #else + void * + PQgetssl(PGconn *conn) + { + return NULL; + } #endif /* USE_SSL */ This seems like a good idea, but that particular approach to it will draw an unprototyped-global-function warning on every non-SSL-enabled compile ... please clean it up. Oops. Updated patch attached. Also, I count 3 *.def files to be fixed, not two. Right. The Borland one, forgot all about that one. Included in attached patch. Borland version not actually tested, though, since I don't have Borland C.. (We really oughta figure a way to generate them all from a single list file... can we rely on sed(1) being available in all Windows build environments?) Unfortunatly, no, we can't. There are sed implementations available for win32, but they're not installed by default. MingW and Cygwin of course ship with sed, but we build libpq with MSVC and Borland as well... The avaiable options to do it are just horrible. There is edlin, but it can't be used for anything serious. Or there is the wonderful concept of writing something in vbscript. But putting vbscript in there doesn't seem like a very good option. I like the idea of having it built automatically for the snapshots in some way, and if you want to build it manually, you have to install 'sed'. I think that's a reasonable requirement. Anyway. Here is the patch for this one. Not sure we want to muck around with those build issues during beta considering they actually *work* now (if a bit of extra work). //Magnus libpq_def.patch Description: libpq_def.patch ---(end of broadcast)--- TIP 5: Have you checked our extensive FAQ? http://www.postgresql.org/docs/faqs/FAQ.html
Re: [PATCHES] libpq.dll on win32
The avaiable options to do it are just horrible. There is edlin, but it can't be used for anything serious. Or there is the wonderful concept of writing something in vbscript. But putting vbscript in there doesn't seem like a very good option. ActiveState Perl? It's very widely used. Yes, but it's not in there by default. If we're going to require a third party tool to be installed, we'd probably be better off requiring a simple sed.exe which is a single binary instead of the whole perl package which is hundreds of files and many megabytes... //Magnus ---(end of broadcast)--- TIP 7: don't forget to increase your free space map settings
Re: [PATCHES] libpq.dll on win32
Andrew Dunstan [EMAIL PROTECTED] writes: Yes, but it's not in there by default. If we're going to require a third party tool to be installed, we'd probably be better off requiring a simple sed.exe which is a single binary instead of the whole perl package which is hundreds of files and many megabytes... Try this then: http://gnuwin32.sourceforge.net/packages/sed.htm (almost a single binary, anyway) This is all pretty silly. We should just build the .def files during tarball construction, much as we handle bison/flex stuff. regards, tom lane ---(end of broadcast)--- TIP 2: you can get off all lists at once with the unregister command (send unregister YourEmailAddressHere to [EMAIL PROTECTED])
[PATCHES] libpq.dll on win32
This patch aims to correct the issues with libpq.dll exporting too much on win32. Contains the following changes: * Exports PQgetssl() even if SSL support is not compiled in. In this case, it always returns NULL. This is required so programs that expect SSL version of the library does not crash if they don't get it. * Create a global flag in Makefile.shlib named DLL_DEFNAME used to specify a .def file when generating a DLL. If not specified, falls back to the old behaviour of exporting everything in the file. * Adds required functions to libpqdll.def and libpqddll.def. This includes the functions not in the libpq API that are used by initdb and imported from libpq.dll (per recent mail discussion) //Magnus libpq_def.patch Description: libpq_def.patch ---(end of broadcast)--- TIP 8: explain analyze is your friend
Re: [PATCHES] libpq.dll on win32
Magnus Hagander [EMAIL PROTECTED] writes: *** src/interfaces/libpq/fe-secure.c28 Sep 2004 00:06:02 - 1.54 --- src/interfaces/libpq/fe-secure.c11 Oct 2004 19:50:22 - *** *** 1201,1206 --- 1201,1212 return NULL; return conn-ssl; } + #else + void * + PQgetssl(PGconn *conn) + { + return NULL; + } #endif /* USE_SSL */ This seems like a good idea, but that particular approach to it will draw an unprototyped-global-function warning on every non-SSL-enabled compile ... please clean it up. Also, I count 3 *.def files to be fixed, not two. (We really oughta figure a way to generate them all from a single list file... can we rely on sed(1) being available in all Windows build environments?) regards, tom lane ---(end of broadcast)--- TIP 6: Have you searched our list archives? http://archives.postgresql.org