Export only required symbols in libpq on Win32.
authorBruce Momjian <bruce@momjian.us>
Sat, 16 Oct 2004 03:26:43 +0000 (03:26 +0000)
committerBruce Momjian <bruce@momjian.us>
Sat, 16 Oct 2004 03:26:43 +0000 (03:26 +0000)
Magnus Hagander

src/Makefile.shlib
src/interfaces/libpq/Makefile
src/interfaces/libpq/blibpqdll.def
src/interfaces/libpq/fe-secure.c
src/interfaces/libpq/libpq-fe.h
src/interfaces/libpq/libpqddll.def
src/interfaces/libpq/libpqdll.def

index 8f01be4b18f6afcc9bdc66309c2d30b2fdceedce..4bd35655452bf549992bf5b712e2445798934a6b 100644 (file)
@@ -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<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,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
 
index e8a418c92b05b6faf97ac33f15ae7603189c28a0..69ce22cbf30c262c19d83c0d1da1b3b4cfa09b59 100644 (file)
@@ -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
index 279d958675690ff0952bce4e7ded72b2cfec015e..3a363b88544014a14d98f9c1adf0e3da3ee3cbc3 100644 (file)
@@ -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
index 199ae9c2fd85d2fc476d31646c800a66b62cb95f..637d93e43dd057fb678560d11dfbca7f919bcc1e 100644 (file)
@@ -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 */
 
 
index 9e6ebb28381069408655d24fe885f1e44ea1f400..7bf7afc102409dec2ba935fa06a5db1d91ab2494 100644 (file)
@@ -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 */
index 7a05da81171c6bd7086eed7dd67318b4c2e1136e..2a6720979b63b45530193ca1f4e0a02a52544acc 100644 (file)
@@ -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
index 2a667c84492019c9ebf76c9262c9696e83550afe..d2465fce59f63cb34ad5bf3e42bbb7ca5a78174f 100644 (file)
@@ -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