From: Bruce Momjian Date: Sat, 16 Oct 2004 03:26:43 +0000 (+0000) Subject: Export only required symbols in libpq on Win32. X-Git-Tag: REL8_0_0BETA4~84 X-Git-Url: http://git.postgresql.org/gitweb/?a=commitdiff_plain;h=c7add816f598d5a67bc846f890f1c1d3354a98a3;p=postgresql.git Export only required symbols in libpq on Win32. Magnus Hagander --- diff --git a/src/Makefile.shlib b/src/Makefile.shlib index 8f01be4b18f..4bd35655452 100644 --- a/src/Makefile.shlib +++ b/src/Makefile.shlib @@ -6,7 +6,7 @@ # Copyright (c) 1998, Regents of the University of California # # IDENTIFICATION -# $PostgreSQL: pgsql/src/Makefile.shlib,v 1.85 2004/10/15 05:11:00 momjian Exp $ +# $PostgreSQL: pgsql/src/Makefile.shlib,v 1.86 2004/10/16 03:26:43 momjian Exp $ # #------------------------------------------------------------------------- @@ -31,6 +31,8 @@ # DLLTOOL_DEFFLAGS Additional flags when creating the dll .def file # DLLTOOL_LIBFLAGS Additional flags when creating the lib.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,9 +308,14 @@ else # PORTNAME == cygwin # 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,9 +323,14 @@ else # PORTNAME == win32 # 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 diff --git a/src/interfaces/libpq/Makefile b/src/interfaces/libpq/Makefile index e8a418c92b0..69ce22cbf30 100644 --- a/src/interfaces/libpq/Makefile +++ b/src/interfaces/libpq/Makefile @@ -4,7 +4,7 @@ # # Copyright (c) 1994, Regents of the University of California # -# $PostgreSQL: pgsql/src/interfaces/libpq/Makefile,v 1.117 2004/10/12 04:48:36 neilc Exp $ +# $PostgreSQL: pgsql/src/interfaces/libpq/Makefile,v 1.118 2004/10/16 03:26:43 momjian Exp $ # #------------------------------------------------------------------------- @@ -34,6 +34,7 @@ ifeq ($(PORTNAME), win32) 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 diff --git a/src/interfaces/libpq/blibpqdll.def b/src/interfaces/libpq/blibpqdll.def index 279d9586756..3a363b88544 100644 --- a/src/interfaces/libpq/blibpqdll.def +++ b/src/interfaces/libpq/blibpqdll.def @@ -115,6 +115,10 @@ EXPORTS _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,3 +234,7 @@ EXPORTS 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 diff --git a/src/interfaces/libpq/fe-secure.c b/src/interfaces/libpq/fe-secure.c index 199ae9c2fd8..637d93e43dd 100644 --- a/src/interfaces/libpq/fe-secure.c +++ b/src/interfaces/libpq/fe-secure.c @@ -11,7 +11,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/interfaces/libpq/fe-secure.c,v 1.54 2004/09/28 00:06:02 momjian Exp $ + * $PostgreSQL: pgsql/src/interfaces/libpq/fe-secure.c,v 1.55 2004/10/16 03:26:43 momjian Exp $ * * NOTES * [ Most of these notes are wrong/obsolete, but perhaps not all ] @@ -1201,6 +1201,12 @@ PQgetssl(PGconn *conn) return NULL; return conn->ssl; } +#else +void * +PQgetssl(PGconn *conn) +{ + return NULL; +} #endif /* USE_SSL */ diff --git a/src/interfaces/libpq/libpq-fe.h b/src/interfaces/libpq/libpq-fe.h index 9e6ebb28381..7bf7afc1024 100644 --- a/src/interfaces/libpq/libpq-fe.h +++ b/src/interfaces/libpq/libpq-fe.h @@ -7,7 +7,7 @@ * Portions Copyright (c) 1996-2004, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $PostgreSQL: pgsql/src/interfaces/libpq/libpq-fe.h,v 1.109 2004/10/16 03:10:17 momjian Exp $ + * $PostgreSQL: pgsql/src/interfaces/libpq/libpq-fe.h,v 1.110 2004/10/16 03:26:43 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -258,6 +258,8 @@ extern int PQsetClientEncoding(PGconn *conn, const char *encoding); #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 */ diff --git a/src/interfaces/libpq/libpqddll.def b/src/interfaces/libpq/libpqddll.def index 7a05da81171..2a6720979b6 100644 --- a/src/interfaces/libpq/libpqddll.def +++ b/src/interfaces/libpq/libpqddll.def @@ -115,3 +115,7 @@ EXPORTS PQsendQueryPrepared @ 111 PQdsplen @ 112 PQserverVersion @ 113 + PQgetssl @ 114 + pg_char_to_encoding @ 115 + pg_valid_server_encoding @ 116 + pqsignal @ 117 diff --git a/src/interfaces/libpq/libpqdll.def b/src/interfaces/libpq/libpqdll.def index 2a667c84492..d2465fce59f 100644 --- a/src/interfaces/libpq/libpqdll.def +++ b/src/interfaces/libpq/libpqdll.def @@ -115,3 +115,7 @@ EXPORTS PQsendQueryPrepared @ 111 PQdsplen @ 112 PQserverVersion @ 113 + PQgetssl @ 114 + pg_char_to_encoding @ 115 + pg_valid_server_encoding @ 116 + pqsignal @ 117