Skip to content

Commit d3cc5ff

Browse files
committed
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
1 parent 840b3b5 commit d3cc5ff

File tree

5 files changed

+18
-11
lines changed

5 files changed

+18
-11
lines changed

src/backend/postmaster/launch_backend.c

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@ typedef struct
114114
PROC_HDR *ProcGlobal;
115115
PGPROC *AuxiliaryProcs;
116116
PGPROC *PreparedXactProcs;
117-
PMSignalData *PMSignalState;
117+
volatile PMSignalData *PMSignalState;
118118
pid_t PostmasterPid;
119119
TimestampTz PgStartTime;
120120
TimestampTz PgReloadTime;
@@ -668,16 +668,6 @@ SubPostmasterMain(int argc, char *argv[])
668668
pg_unreachable(); /* main_fn never returns */
669669
}
670670

671-
/*
672-
* The following need to be available to the save/restore_backend_variables
673-
* functions. They are marked NON_EXEC_STATIC in their home modules.
674-
*/
675-
extern slock_t *ProcStructLock;
676-
extern PGPROC *AuxiliaryProcs;
677-
extern PMSignalData *PMSignalState;
678-
extern pg_time_t first_syslogger_file_time;
679-
extern struct bkend *ShmemBackendArray;
680-
681671
#ifndef WIN32
682672
#define write_inheritable_socket(dest, src, childpid) ((*(dest) = (src)), true)
683673
#define read_inheritable_socket(dest, src) (*(dest) = *(src))

src/include/postmaster/postmaster.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,10 @@ extern PGDLLIMPORT bool remove_temp_files_after_crash;
3636
extern PGDLLIMPORT bool send_abort_for_crash;
3737
extern PGDLLIMPORT bool send_abort_for_kill;
3838

39+
#ifdef EXEC_BACKEND
40+
extern struct bkend *ShmemBackendArray;
41+
#endif
42+
3943
#ifdef WIN32
4044
extern PGDLLIMPORT HANDLE PostmasterHandle;
4145
#else

src/include/postmaster/syslogger.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,10 @@ extern PGDLLIMPORT char *Log_filename;
7575
extern PGDLLIMPORT bool Log_truncate_on_rotation;
7676
extern PGDLLIMPORT int Log_file_mode;
7777

78+
#ifdef EXEC_BACKEND
79+
extern pg_time_t first_syslogger_file_time;
80+
#endif
81+
7882
#ifndef WIN32
7983
extern PGDLLIMPORT int syslogPipe[2];
8084
#else

src/include/storage/pmsignal.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,10 @@ typedef enum
5757
/* PMSignalData is an opaque struct, details known only within pmsignal.c */
5858
typedef struct PMSignalData PMSignalData;
5959

60+
#ifdef EXEC_BACKEND
61+
extern volatile PMSignalData *PMSignalState;
62+
#endif
63+
6064
/*
6165
* prototypes for functions in pmsignal.c
6266
*/

src/include/storage/proc.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -453,6 +453,11 @@ extern PGDLLIMPORT int TransactionTimeout;
453453
extern PGDLLIMPORT int IdleSessionTimeout;
454454
extern PGDLLIMPORT bool log_lock_waits;
455455

456+
#ifdef EXEC_BACKEND
457+
extern slock_t *ProcStructLock;
458+
extern PGPROC *AuxiliaryProcs;
459+
#endif
460+
456461

457462
/*
458463
* Function Prototypes

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy