From 0541598e4f0bad1b9ff41a4640ec69491b393d54 Mon Sep 17 00:00:00 2001 From: Jacob Champion Date: Mon, 3 May 2021 11:15:15 -0700 Subject: [PATCH 2/7] src/common: remove logging from jsonapi for shlib The can't-happen code in jsonapi was pulling in logging code, which for libpq is not included. --- src/common/Makefile | 4 ++++ src/common/jsonapi.c | 11 ++++++++--- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/src/common/Makefile b/src/common/Makefile index 38a8599337..6f1039bc78 100644 --- a/src/common/Makefile +++ b/src/common/Makefile @@ -28,6 +28,10 @@ subdir = src/common top_builddir = ../.. include $(top_builddir)/src/Makefile.global +# For use in shared libraries, jsonapi needs to not link in any logging +# functions. +override CFLAGS_SL += -DJSONAPI_NO_LOG + # don't include subdirectory-path-dependent -I and -L switches STD_CPPFLAGS := $(filter-out -I$(top_srcdir)/src/include -I$(top_builddir)/src/include,$(CPPFLAGS)) STD_LDFLAGS := $(filter-out -L$(top_builddir)/src/common -L$(top_builddir)/src/port,$(LDFLAGS)) diff --git a/src/common/jsonapi.c b/src/common/jsonapi.c index 1bf38d7b42..6b6001b118 100644 --- a/src/common/jsonapi.c +++ b/src/common/jsonapi.c @@ -27,11 +27,16 @@ #endif #ifdef FRONTEND -#define check_stack_depth() -#define json_log_and_abort(...) \ +# define check_stack_depth() +# ifdef JSONAPI_NO_LOG +# define json_log_and_abort(...) \ + do { fprintf(stderr, __VA_ARGS__); exit(1); } while(0) +# else +# define json_log_and_abort(...) \ do { pg_log_fatal(__VA_ARGS__); exit(1); } while(0) +# endif #else -#define json_log_and_abort(...) elog(ERROR, __VA_ARGS__) +# define json_log_and_abort(...) elog(ERROR, __VA_ARGS__) #endif /* -- 2.25.1