On Thu, Apr 2, 2015 at 10:58 AM, Michael Paquier <michael.paqu...@gmail.com>
wrote:
>
> On other Linux machines, tests for dblink are failing:
> + ERROR: could not load library
> "/usr/src/pgfarm/build/HEAD/inst/lib/postgresql/dblink.so":
> /usr/src/pgfarm/build/HEAD/inst/lib/libpq.so.5: undefined symbol:
> libpq_connstring_is_recognized
>

The patch attached fixes all those inconsistencies (tested build on OSX and
Windows).
-- 
Michael
From 188b8e51df428e650d9cc23b4a67d7516a1e5e47 Mon Sep 17 00:00:00 2001
From: Michael Paquier <mich...@otacoo.com>
Date: Thu, 2 Apr 2015 11:13:42 +0900
Subject: [PATCH] Fix libpq build errors caused by fcef1617

libpq build was missing a reference to the new file connstrings.c,
leading to build errors on OSX and Windows, and regression test errors
for dblink as it tried to load a version of libpq missing dependencies.
---
 src/common/connstrings.c        | 4 ++++
 src/interfaces/libpq/.gitignore | 1 +
 src/interfaces/libpq/Makefile   | 7 ++++++-
 src/tools/msvc/Mkvcbuild.pm     | 4 ++--
 4 files changed, 13 insertions(+), 3 deletions(-)

diff --git a/src/common/connstrings.c b/src/common/connstrings.c
index 91170a1..ad714ab 100644
--- a/src/common/connstrings.c
+++ b/src/common/connstrings.c
@@ -6,6 +6,10 @@
  *
  *	src/include/common/connstrings.c
  */
+#ifndef FRONTEND
+#error "This file is not expected to be compiled for backend code"
+#endif
+
 #include "postgres_fe.h"
 
 #include <string.h>
diff --git a/src/interfaces/libpq/.gitignore b/src/interfaces/libpq/.gitignore
index cb96af7..a28dff9 100644
--- a/src/interfaces/libpq/.gitignore
+++ b/src/interfaces/libpq/.gitignore
@@ -1,5 +1,6 @@
 /exports.list
 /chklocale.c
+/connstrings.c
 /crypt.c
 /getaddrinfo.c
 /getpeereid.c
diff --git a/src/interfaces/libpq/Makefile b/src/interfaces/libpq/Makefile
index 6973a20..513f981 100644
--- a/src/interfaces/libpq/Makefile
+++ b/src/interfaces/libpq/Makefile
@@ -27,7 +27,7 @@ endif
 # Need to recompile any external C files because we need
 # all object files to use the same compile flags as libpq; some
 # platforms require special flags.
-LIBS := $(LIBS:-lpgport=)
+LIBS := $(filter -lpgport -lpgcommon, $(LIBS))
 
 # We can't use Makefile variables here because the MSVC build system scrapes
 # OBJS from this file.
@@ -43,6 +43,8 @@ OBJS += $(filter crypt.o getaddrinfo.o getpeereid.o inet_aton.o open.o system.o
 OBJS += ip.o md5.o
 # utils/mb
 OBJS += encnames.o wchar.o
+# common/
+OBJS += connstrings.o
 
 ifeq ($(with_openssl),yes)
 OBJS += fe-secure-openssl.o
@@ -96,6 +98,9 @@ backend_src = $(top_srcdir)/src/backend
 chklocale.c crypt.c getaddrinfo.c getpeereid.c inet_aton.c inet_net_ntop.c noblock.c open.c system.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) $< .
 
+connstrings.c: % : $(top_srcdir)/src/common/%
+	rm -f $@ && $(LN_S) $< .
+
 ip.c md5.c: % : $(backend_src)/libpq/%
 	rm -f $@ && $(LN_S) $< .
 
diff --git a/src/tools/msvc/Mkvcbuild.pm b/src/tools/msvc/Mkvcbuild.pm
index 7f319df..5175d30 100644
--- a/src/tools/msvc/Mkvcbuild.pm
+++ b/src/tools/msvc/Mkvcbuild.pm
@@ -95,8 +95,8 @@ sub mkvcbuild
 	  exec.c pg_crc.c pg_lzcompress.c pgfnames.c psprintf.c relpath.c rmtree.c
 	  string.c username.c wait_error.c);
 
-	our @pgcommonfrontendfiles = (@pgcommonallfiles, qw(fe_memutils.c
-	  restricted_token.c));
+	our @pgcommonfrontendfiles = (@pgcommonallfiles, qw(connstrings.c
+	  fe_memutils.c restricted_token.c));
 
 	our @pgcommonbkndfiles = @pgcommonallfiles;
 
-- 
2.3.5

-- 
Sent via pgsql-committers mailing list (pgsql-committers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-committers

Reply via email to