Re: [PATCHES] libpq.dll on win32

2004-10-15 Thread Bruce Momjian

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

2004-10-12 Thread Dave Page
 

 -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

2004-10-12 Thread Dave Page
 

 -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

2004-10-12 Thread Reini Urban
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

2004-10-12 Thread Magnus Hagander
*** 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

2004-10-12 Thread Magnus Hagander
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

2004-10-12 Thread Tom Lane
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

2004-10-11 Thread Magnus Hagander
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

2004-10-11 Thread Tom Lane
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