Re: libpq.dll on win32 - Mailing list pgsql-patches
From | Bruce Momjian |
---|---|
Subject | Re: libpq.dll on win32 |
Date | |
Msg-id | 200410160323.i9G3NM616171@candle.pha.pa.us Whole thread Raw |
In response to | Re: libpq.dll on win32 ("Magnus Hagander" <mha@sollentuna.net>) |
List | pgsql-patches |
Patch applied. Thanks. I fixed a few merge conflicts. --------------------------------------------------------------------------- Magnus Hagander wrote: > >*** src/interfaces/libpq/fe-secure.c 28 Sep 2004 00:06:02 > >-0000 1.54 > >--- src/interfaces/libpq/fe-secure.c 11 Oct 2004 19:50:22 -0000 > >*************** > >*** 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 pgman@candle.pha.pa.us | (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 -0000 1.85 --- src/Makefile.shlib 16 Oct 2004 03:22:09 -0000 *************** *** 31,36 **** --- 31,38 ---- # DLLTOOL_DEFFLAGS Additional flags when creating the dll .def file # DLLTOOL_LIBFLAGS Additional flags when creating the lib<module>.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 -0000 1.117 --- src/interfaces/libpq/Makefile 16 Oct 2004 03:22:22 -0000 *************** *** 34,39 **** --- 34,40 ---- OBJS += win32.o libpqrc.o libpqrc.o : libpq.rc windres -i libpq.rc -o libpqrc.o + DLL_DEFFILE=libpqdll.def ifeq ($(enable_thread_safety), yes) # This doesn't work yet because configure test fails. 2004-06-19 OBJS += pthread-win32.o Index: src/interfaces/libpq/blibpqdll.def =================================================================== RCS file: /cvsroot/pgsql/src/interfaces/libpq/blibpqdll.def,v retrieving revision 1.10 diff -c -c -r1.10 blibpqdll.def *** src/interfaces/libpq/blibpqdll.def 11 Aug 2004 18:06:01 -0000 1.10 --- src/interfaces/libpq/blibpqdll.def 16 Oct 2004 03:22:23 -0000 *************** *** 115,120 **** --- 115,124 ---- _PQsendQueryPrepared @ 111 _PQdsplen @ 112 _PQserverVersion @ 113 + _PQgetssl @ 114 + _pg_char_to_encoding @ 115 + _pg_valid_server_encoding @ 116 + _pqsignal @ 117 ; Aliases for MS compatible names PQconnectdb = _PQconnectdb *************** *** 230,232 **** --- 234,240 ---- PQsendQueryPrepared = _PQsendQueryPrepared PQdsplen = _PQdsplen PQserverVersion = _PQserverVersion + PQgetssl = _PQgetssl + pg_char_to_encoding = _pg_char_to_encoding + pg_valid_server_encoding = _pg_valid_server_encoding + pqsignal = _pqsignal Index: src/interfaces/libpq/fe-secure.c =================================================================== RCS file: /cvsroot/pgsql/src/interfaces/libpq/fe-secure.c,v retrieving revision 1.54 diff -c -c -r1.54 fe-secure.c *** src/interfaces/libpq/fe-secure.c 28 Sep 2004 00:06:02 -0000 1.54 --- src/interfaces/libpq/fe-secure.c 16 Oct 2004 03:22:26 -0000 *************** *** 1201,1206 **** --- 1201,1212 ---- return NULL; return conn->ssl; } + #else + void * + PQgetssl(PGconn *conn) + { + return NULL; + } #endif /* USE_SSL */ Index: src/interfaces/libpq/libpq-fe.h =================================================================== RCS file: /cvsroot/pgsql/src/interfaces/libpq/libpq-fe.h,v retrieving revision 1.109 diff -c -c -r1.109 libpq-fe.h *** src/interfaces/libpq/libpq-fe.h 16 Oct 2004 03:10:17 -0000 1.109 --- src/interfaces/libpq/libpq-fe.h 16 Oct 2004 03:22:28 -0000 *************** *** 258,263 **** --- 258,265 ---- #ifdef USE_SSL /* Get the SSL structure associated with a connection */ extern SSL *PQgetssl(PGconn *conn); + #else + extern void *PQgetssl(PGconn *conn); #endif /* Set verbosity for PQerrorMessage and PQresultErrorMessage */ Index: src/interfaces/libpq/libpqddll.def =================================================================== RCS file: /cvsroot/pgsql/src/interfaces/libpq/libpqddll.def,v retrieving revision 1.2 diff -c -c -r1.2 libpqddll.def *** src/interfaces/libpq/libpqddll.def 11 Aug 2004 18:06:01 -0000 1.2 --- src/interfaces/libpq/libpqddll.def 16 Oct 2004 03:22:29 -0000 *************** *** 115,117 **** --- 115,121 ---- PQsendQueryPrepared @ 111 PQdsplen @ 112 PQserverVersion @ 113 + PQgetssl @ 114 + pg_char_to_encoding @ 115 + pg_valid_server_encoding @ 116 + pqsignal @ 117 Index: src/interfaces/libpq/libpqdll.def =================================================================== RCS file: /cvsroot/pgsql/src/interfaces/libpq/libpqdll.def,v retrieving revision 1.26 diff -c -c -r1.26 libpqdll.def *** src/interfaces/libpq/libpqdll.def 11 Aug 2004 18:06:01 -0000 1.26 --- src/interfaces/libpq/libpqdll.def 16 Oct 2004 03:22:29 -0000 *************** *** 115,117 **** --- 115,121 ---- PQsendQueryPrepared @ 111 PQdsplen @ 112 PQserverVersion @ 113 + PQgetssl @ 114 + pg_char_to_encoding @ 115 + pg_valid_server_encoding @ 116 + pqsignal @ 117
pgsql-patches by date: