From b1fae823ee46a26e7e557591d659351835742537 Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Sun, 17 Mar 2013 15:45:31 -0400 Subject: [PATCH] Re-include pqsignal() in libpq. We need this in non-ENABLE_THREAD_SAFETY builds, and also to satisfy the exports.txt entry; while it might be a good idea to remove the latter, I'm hesitant to do so except in the context of an intentional ABI break. At least we don't have a separately maintained source file for it anymore. --- src/interfaces/libpq/.gitignore | 1 + src/interfaces/libpq/Makefile | 15 ++++++++------- src/interfaces/libpq/bcc32.mak | 7 +++++++ src/interfaces/libpq/win32.mak | 7 +++++++ 4 files changed, 23 insertions(+), 7 deletions(-) diff --git a/src/interfaces/libpq/.gitignore b/src/interfaces/libpq/.gitignore index ba0d38592a..2758e009f1 100644 --- a/src/interfaces/libpq/.gitignore +++ b/src/interfaces/libpq/.gitignore @@ -8,6 +8,7 @@ /noblock.c /open.c /pgstrcasecmp.c +/pqsignal.c /snprintf.c /strerror.c /strlcpy.c diff --git a/src/interfaces/libpq/Makefile b/src/interfaces/libpq/Makefile index c45856efb6..7ed79c4f27 100644 --- a/src/interfaces/libpq/Makefile +++ b/src/interfaces/libpq/Makefile @@ -35,7 +35,8 @@ OBJS= fe-auth.o fe-connect.o fe-exec.o fe-misc.o fe-print.o fe-lobj.o \ fe-protocol2.o fe-protocol3.o pqexpbuffer.o fe-secure.o \ libpq-events.o # libpgport C files we always use -OBJS += chklocale.o inet_net_ntop.o noblock.o pgstrcasecmp.o thread.o +OBJS += chklocale.o inet_net_ntop.o noblock.o pgstrcasecmp.o pqsignal.o \ + thread.o # libpgport C files that are needed if identified by configure OBJS += $(filter crypt.o getaddrinfo.o getpeereid.o inet_aton.o open.o snprintf.o strerror.o strlcpy.o win32error.o win32setlocale.o, $(LIBOBJS)) # backend/libpq @@ -81,14 +82,14 @@ include $(top_srcdir)/src/Makefile.shlib backend_src = $(top_srcdir)/src/backend -# We use several backend modules verbatim, but since we need to -# compile with appropriate options to build a shared lib, we can't -# necessarily use the same object files as the backend uses. Instead, -# symlink the source files in here and build our own object file. +# We use several libpgport and backend modules verbatim, but since we need +# to compile with appropriate options to build a shared lib, we can't +# necessarily use the same object files built for libpgport and the backend. +# Instead, symlink the source files in here and build our own object files. # For some libpgport modules, this only happens if configure decides # the module is needed (see filter hack in OBJS, above). -chklocale.c crypt.c getaddrinfo.c getpeereid.c inet_aton.c inet_net_ntop.c noblock.c open.c pgsleep.c pgstrcasecmp.c snprintf.c strerror.c strlcpy.c thread.c win32error.c win32setlocale.c: % : $(top_srcdir)/src/port/% +chklocale.c crypt.c getaddrinfo.c getpeereid.c inet_aton.c inet_net_ntop.c noblock.c open.c pgsleep.c pgstrcasecmp.c pqsignal.c snprintf.c strerror.c strlcpy.c thread.c win32error.c win32setlocale.c: % : $(top_srcdir)/src/port/% rm -f $@ && $(LN_S) $< . ip.c md5.c: % : $(backend_src)/libpq/% @@ -139,7 +140,7 @@ clean distclean: clean-lib rm -f $(OBJS) pthread.h libpq.rc # Might be left over from a Win32 client-only build rm -f pg_config_paths.h - rm -f inet_net_ntop.c noblock.c pgstrcasecmp.c thread.c + rm -f inet_net_ntop.c noblock.c pgstrcasecmp.c pqsignal.c thread.c rm -f chklocale.c crypt.c getaddrinfo.c getpeereid.c inet_aton.c open.c snprintf.c strerror.c strlcpy.c win32error.c win32setlocale.c rm -f pgsleep.c rm -f md5.c ip.c diff --git a/src/interfaces/libpq/bcc32.mak b/src/interfaces/libpq/bcc32.mak index 6282196446..8f5cd8de47 100644 --- a/src/interfaces/libpq/bcc32.mak +++ b/src/interfaces/libpq/bcc32.mak @@ -76,6 +76,7 @@ ALL : config "$(OUTDIR)" "$(OUTDIR)\blibpq.dll" "$(OUTDIR)\blibpq.lib" CLEAN : -@erase "$(INTDIR)\getaddrinfo.obj" -@erase "$(INTDIR)\pgstrcasecmp.obj" + -@erase "$(INTDIR)\pqsignal.obj" -@erase "$(INTDIR)\thread.obj" -@erase "$(INTDIR)\inet_aton.obj" -@erase "$(INTDIR)\crypt.obj" @@ -120,6 +121,7 @@ LIB32_OBJS= \ "$(INTDIR)\win32.obj" \ "$(INTDIR)\getaddrinfo.obj" \ "$(INTDIR)\pgstrcasecmp.obj" \ + "$(INTDIR)\pqsignal.obj" \ "$(INTDIR)\thread.obj" \ "$(INTDIR)\inet_aton.obj" \ "$(INTDIR)\crypt.obj" \ @@ -207,6 +209,11 @@ LINK32_FLAGS = -Gn -L$(BCB)\lib;$(INTDIR); -x -Tpd -v $(CPP_PROJ) ..\..\port\pgstrcasecmp.c << +"$(INTDIR)\pqsignal.obj" : ..\..\port\pqsignal.c + $(CPP) @<< + $(CPP_PROJ) ..\..\port\pqsignal.c +<< + "$(INTDIR)\thread.obj" : ..\..\port\thread.c $(CPP) @<< $(CPP_PROJ) ..\..\port\thread.c diff --git a/src/interfaces/libpq/win32.mak b/src/interfaces/libpq/win32.mak index 49d51d11fb..ee1884fe20 100644 --- a/src/interfaces/libpq/win32.mak +++ b/src/interfaces/libpq/win32.mak @@ -83,6 +83,7 @@ ALL : config "$(OUTDIR)\$(OUTFILENAME).lib" "$(OUTDIR)\$(OUTFILENAME).dll" CLEAN : -@erase "$(INTDIR)\getaddrinfo.obj" -@erase "$(INTDIR)\pgstrcasecmp.obj" + -@erase "$(INTDIR)\pqsignal.obj" -@erase "$(INTDIR)\thread.obj" -@erase "$(INTDIR)\inet_aton.obj" -@erase "$(INTDIR)\crypt.obj" @@ -130,6 +131,7 @@ LIB32_OBJS= \ "$(INTDIR)\win32.obj" \ "$(INTDIR)\getaddrinfo.obj" \ "$(INTDIR)\pgstrcasecmp.obj" \ + "$(INTDIR)\pqsignal.obj" \ "$(INTDIR)\thread.obj" \ "$(INTDIR)\inet_aton.obj" \ "$(INTDIR)\crypt.obj" \ @@ -247,6 +249,11 @@ LINK32_OBJS= \ $(CPP_PROJ) ..\..\port\pgstrcasecmp.c << +"$(INTDIR)\pqsignal.obj" : ..\..\port\pqsignal.c + $(CPP) @<< + $(CPP_PROJ) ..\..\port\pqsignal.c +<< + "$(INTDIR)\thread.obj" : ..\..\port\thread.c $(CPP) @<< $(CPP_PROJ) ..\..\port\thread.c