From 06f30dcf46ed4f89e0c9c5e67615a5c9ad492988 Mon Sep 17 00:00:00 2001 From: Peter Eisentraut Date: Tue, 23 Aug 2022 20:24:21 +0200 Subject: [PATCH v2] Move NON_EXEC_STATIC from c.h to postgres.h It is not needed at the scope of c.h, only in backend code. Discussion: https://www.postgresql.org/message-id/flat/a6a6b48e-ca0a-b58d-18de-98e40d94b842%40enterprisedb.com --- src/include/c.h | 7 ------- src/include/postgres.h | 20 ++++++++++++++++++++ 2 files changed, 20 insertions(+), 7 deletions(-) diff --git a/src/include/c.h b/src/include/c.h index dfc366b026..aad9554de6 100644 --- a/src/include/c.h +++ b/src/include/c.h @@ -1338,13 +1338,6 @@ typedef intptr_t sigjmp_buf[5]; #endif /* __MINGW64__ */ #endif /* WIN32 */ -/* EXEC_BACKEND defines */ -#ifdef EXEC_BACKEND -#define NON_EXEC_STATIC -#else -#define NON_EXEC_STATIC static -#endif - /* /port compatibility functions */ #include "port.h" diff --git a/src/include/postgres.h b/src/include/postgres.h index 31358110dc..13903fa022 100644 --- a/src/include/postgres.h +++ b/src/include/postgres.h @@ -25,6 +25,7 @@ * ------- ------------------------------------------------ * 1) variable-length datatypes (TOAST support) * 2) Datum type + support macros + * 3) miscellaneous * * NOTES * @@ -805,4 +806,23 @@ extern Datum Float8GetDatum(float8 X); #define Float8GetDatumFast(X) PointerGetDatum(&(X)) #endif + +/* ---------------------------------------------------------------- + * Section 3: miscellaneous + * ---------------------------------------------------------------- + */ + +/* + * NON_EXEC_STATIC: It's sometimes useful to define a variable or function + * that is normally static but extern when using EXEC_BACKEND (see + * pg_config_manual.h). There would then typically be some code in + * postmaster.c that uses those extern symbols to transfer state between + * processes or do whatever other things it needs to do in EXEC_BACKEND mode. + */ +#ifdef EXEC_BACKEND +#define NON_EXEC_STATIC +#else +#define NON_EXEC_STATIC static +#endif + #endif /* POSTGRES_H */ -- 2.37.1