Can't completely get rid of #ifndef FRONTEND in palloc.h :-(
pg_controldata includes postgres.h not postgres_fe.h, so utils/palloc.h must be able to compile in a "#define FRONTEND" context. It appears that Solaris Studio is smart enough to persuade us to define PG_USE_INLINE, but not smart enough to not make a copy of unreferenced static functions; which leads to an unsatisfied reference to CurrentMemoryContext. So we need an #ifndef FRONTEND around that declaration. Per buildfarm.
This commit is contained in:
parent
5035701e07
commit
a9baeb361d
@ -75,8 +75,14 @@ extern void *repalloc_huge(void *pointer, Size size);
|
|||||||
* MemoryContextSwitchTo can't be a macro in standard C compilers.
|
* MemoryContextSwitchTo can't be a macro in standard C compilers.
|
||||||
* But we can make it an inline function if the compiler supports it.
|
* But we can make it an inline function if the compiler supports it.
|
||||||
* See STATIC_IF_INLINE in c.h.
|
* See STATIC_IF_INLINE in c.h.
|
||||||
|
*
|
||||||
|
* Although this header file is nominally backend-only, certain frontend
|
||||||
|
* programs like pg_controldata include it via postgres.h. For some compilers
|
||||||
|
* it's necessary to hide the inline definition of MemoryContextSwitchTo in
|
||||||
|
* this scenario; hence the #ifndef FRONTEND.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#ifndef FRONTEND
|
||||||
#ifndef PG_USE_INLINE
|
#ifndef PG_USE_INLINE
|
||||||
extern MemoryContext MemoryContextSwitchTo(MemoryContext context);
|
extern MemoryContext MemoryContextSwitchTo(MemoryContext context);
|
||||||
#endif /* !PG_USE_INLINE */
|
#endif /* !PG_USE_INLINE */
|
||||||
@ -90,6 +96,7 @@ MemoryContextSwitchTo(MemoryContext context)
|
|||||||
return old;
|
return old;
|
||||||
}
|
}
|
||||||
#endif /* PG_USE_INLINE || MCXT_INCLUDE_DEFINITIONS */
|
#endif /* PG_USE_INLINE || MCXT_INCLUDE_DEFINITIONS */
|
||||||
|
#endif /* FRONTEND */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* These are like standard strdup() except the copied string is
|
* These are like standard strdup() except the copied string is
|
||||||
|
Loading…
x
Reference in New Issue
Block a user