diff --git a/src/backend/postmaster/launch_backend.c b/src/backend/postmaster/launch_backend.c index f9b24b79899..e9fc9827878 100644 --- a/src/backend/postmaster/launch_backend.c +++ b/src/backend/postmaster/launch_backend.c @@ -114,7 +114,7 @@ typedef struct PROC_HDR *ProcGlobal; PGPROC *AuxiliaryProcs; PGPROC *PreparedXactProcs; - PMSignalData *PMSignalState; + volatile PMSignalData *PMSignalState; pid_t PostmasterPid; TimestampTz PgStartTime; TimestampTz PgReloadTime; @@ -668,16 +668,6 @@ SubPostmasterMain(int argc, char *argv[]) pg_unreachable(); /* main_fn never returns */ } -/* - * The following need to be available to the save/restore_backend_variables - * functions. They are marked NON_EXEC_STATIC in their home modules. - */ -extern slock_t *ProcStructLock; -extern PGPROC *AuxiliaryProcs; -extern PMSignalData *PMSignalState; -extern pg_time_t first_syslogger_file_time; -extern struct bkend *ShmemBackendArray; - #ifndef WIN32 #define write_inheritable_socket(dest, src, childpid) ((*(dest) = (src)), true) #define read_inheritable_socket(dest, src) (*(dest) = *(src)) diff --git a/src/include/postmaster/postmaster.h b/src/include/postmaster/postmaster.h index 9feb2e4de14..d19e103937d 100644 --- a/src/include/postmaster/postmaster.h +++ b/src/include/postmaster/postmaster.h @@ -36,6 +36,10 @@ extern PGDLLIMPORT bool remove_temp_files_after_crash; extern PGDLLIMPORT bool send_abort_for_crash; extern PGDLLIMPORT bool send_abort_for_kill; +#ifdef EXEC_BACKEND +extern struct bkend *ShmemBackendArray; +#endif + #ifdef WIN32 extern PGDLLIMPORT HANDLE PostmasterHandle; #else diff --git a/src/include/postmaster/syslogger.h b/src/include/postmaster/syslogger.h index 0f28ebcba55..b5fc239ba9c 100644 --- a/src/include/postmaster/syslogger.h +++ b/src/include/postmaster/syslogger.h @@ -75,6 +75,10 @@ extern PGDLLIMPORT char *Log_filename; extern PGDLLIMPORT bool Log_truncate_on_rotation; extern PGDLLIMPORT int Log_file_mode; +#ifdef EXEC_BACKEND +extern pg_time_t first_syslogger_file_time; +#endif + #ifndef WIN32 extern PGDLLIMPORT int syslogPipe[2]; #else diff --git a/src/include/storage/pmsignal.h b/src/include/storage/pmsignal.h index 029b7201093..0c9a7e32a8a 100644 --- a/src/include/storage/pmsignal.h +++ b/src/include/storage/pmsignal.h @@ -57,6 +57,10 @@ typedef enum /* PMSignalData is an opaque struct, details known only within pmsignal.c */ typedef struct PMSignalData PMSignalData; +#ifdef EXEC_BACKEND +extern volatile PMSignalData *PMSignalState; +#endif + /* * prototypes for functions in pmsignal.c */ diff --git a/src/include/storage/proc.h b/src/include/storage/proc.h index 7d3fc2bfa60..bbd893a544e 100644 --- a/src/include/storage/proc.h +++ b/src/include/storage/proc.h @@ -453,6 +453,11 @@ extern PGDLLIMPORT int TransactionTimeout; extern PGDLLIMPORT int IdleSessionTimeout; extern PGDLLIMPORT bool log_lock_waits; +#ifdef EXEC_BACKEND +extern slock_t *ProcStructLock; +extern PGPROC *AuxiliaryProcs; +#endif + /* * Function Prototypes