From 7507b193bc54a3e9b351d32b47d0f9e71e5d97cd Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Sat, 13 Feb 2010 20:46:52 +0000 Subject: [PATCH] Don't expose the inline definition of MemoryContextSwitchTo when FRONTEND is defined. Its reference to CurrentMemoryContext causes link failures on some platforms, evidently because the inline function gets compiled despite lack of use. Per buildfarm member warthog. --- src/include/utils/palloc.h | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/include/utils/palloc.h b/src/include/utils/palloc.h index af59c3ce54..304a5a84a5 100644 --- a/src/include/utils/palloc.h +++ b/src/include/utils/palloc.h @@ -21,7 +21,7 @@ * Portions Copyright (c) 1996-2010, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $PostgreSQL: pgsql/src/include/utils/palloc.h,v 1.43 2010/02/13 02:34:16 tgl Exp $ + * $PostgreSQL: pgsql/src/include/utils/palloc.h,v 1.44 2010/02/13 20:46:52 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -73,8 +73,12 @@ extern void *repalloc(void *pointer, Size size); /* * MemoryContextSwitchTo can't be a macro in standard C compilers. * But we can make it an inline function if the compiler supports it. + * + * This file has to be includable by some non-backend code such as + * pg_resetxlog, so don't expose the CurrentMemoryContext reference + * if FRONTEND is defined. */ -#ifdef USE_INLINE +#if defined(USE_INLINE) && !defined(FRONTEND) static inline MemoryContext MemoryContextSwitchTo(MemoryContext context) @@ -87,7 +91,7 @@ MemoryContextSwitchTo(MemoryContext context) #else extern MemoryContext MemoryContextSwitchTo(MemoryContext context); -#endif /* USE_INLINE */ +#endif /* USE_INLINE && !FRONTEND */ /* * These are like standard strdup() except the copied string is -- 2.40.0