aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPeter Eisentraut <peter@eisentraut.org>2024-07-23 14:58:30 +0200
committerPeter Eisentraut <peter@eisentraut.org>2024-07-23 15:07:10 +0200
commitd3cc5ffe81f64c6418ba9b18a9db32392f8027e6 (patch)
treef6d60395f85e4b0ef327b1939aedee415168f03e /src
parent840b3b5b4ee90ce8b692519e534dfb015d89fe8f (diff)
downloadpostgresql-d3cc5ffe81f64c6418ba9b18a9db32392f8027e6.tar.gz
postgresql-d3cc5ffe81f64c6418ba9b18a9db32392f8027e6.zip
Move extern declarations for EXEC_BACKEND to header files
This fixes warnings from -Wmissing-variable-declarations (not yet part of the standard warning options) under EXEC_BACKEND. The NON_EXEC_STATIC variables need a suitable declaration in a header file under EXEC_BACKEND. Also fix the inconsistent application of the volatile qualifier for PMSignalState, which was revealed by this change. Reviewed-by: Andres Freund <andres@anarazel.de> Discussion: https://www.postgresql.org/message-id/flat/e0a62134-83da-4ba4-8cdb-ceb0111c95ce@eisentraut.org
Diffstat (limited to 'src')
-rw-r--r--src/backend/postmaster/launch_backend.c12
-rw-r--r--src/include/postmaster/postmaster.h4
-rw-r--r--src/include/postmaster/syslogger.h4
-rw-r--r--src/include/storage/pmsignal.h4
-rw-r--r--src/include/storage/proc.h5
5 files changed, 18 insertions, 11 deletions
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