summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBruce Momjian2004-10-16 03:26:43 +0000
committerBruce Momjian2004-10-16 03:26:43 +0000
commitc7add816f598d5a67bc846f890f1c1d3354a98a3 (patch)
tree36a8194c1f777ffb089a75b71fb860909cbd3bf1
parent88fd162ef64cab7ed197f0612e0b610d57007200 (diff)
Export only required symbols in libpq on Win32.
Magnus Hagander
-rw-r--r--src/Makefile.shlib14
-rw-r--r--src/interfaces/libpq/Makefile3
-rw-r--r--src/interfaces/libpq/blibpqdll.def8
-rw-r--r--src/interfaces/libpq/fe-secure.c8
-rw-r--r--src/interfaces/libpq/libpq-fe.h4
-rw-r--r--src/interfaces/libpq/libpqddll.def4
-rw-r--r--src/interfaces/libpq/libpqdll.def4
7 files changed, 41 insertions, 4 deletions
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<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
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