Export only required symbols in libpq on Win32.

Magnus Hagander
This commit is contained in:
Bruce Momjian 2004-10-16 03:26:43 +00:00
parent 88fd162ef6
commit c7add816f5
7 changed files with 41 additions and 4 deletions

View 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

View 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

View 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

View 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 */

View 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 */

View 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

View 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