diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h
index b145a19..f133e5f 100644
--- a/src/include/miscadmin.h
+++ b/src/include/miscadmin.h
@@ -80,7 +80,7 @@ extern volatile bool ProcDiePending;
 extern volatile bool ClientConnectionLost;
 
 /* these are marked volatile because they are examined by signal handlers: */
-extern volatile bool ImmediateInterruptOK;
+extern PGDLLIMPORT volatile bool ImmediateInterruptOK;
 extern PGDLLIMPORT volatile uint32 InterruptHoldoffCount;
 extern PGDLLIMPORT volatile uint32 CritSectionCount;
 
diff --git a/src/include/postmaster/bgworker.h b/src/include/postmaster/bgworker.h
index 05269f3..78d6c0e 100644
--- a/src/include/postmaster/bgworker.h
+++ b/src/include/postmaster/bgworker.h
@@ -116,7 +116,7 @@ extern BgwHandleStatus WaitForBackgroundWorkerStartup(BackgroundWorkerHandle *
 extern void TerminateBackgroundWorker(BackgroundWorkerHandle *handle);
 
 /* This is valid in a running worker */
-extern BackgroundWorker *MyBgworkerEntry;
+extern PGDLLIMPORT BackgroundWorker *MyBgworkerEntry;
 
 /*
  * Connect to the specified database, as the specified user.  Only a worker
diff --git a/src/include/storage/shm_mq.h b/src/include/storage/shm_mq.h
index 1ce88a1..1bc1f56 100644
--- a/src/include/storage/shm_mq.h
+++ b/src/include/storage/shm_mq.h
@@ -65,6 +65,6 @@ extern shm_mq_result shm_mq_receive(shm_mq_handle *mqh,
 extern shm_mq_result shm_mq_wait_for_attach(shm_mq_handle *mqh);
 
 /* Smallest possible queue. */
-extern const Size shm_mq_minimum_size;
+extern PGDLLIMPORT const Size shm_mq_minimum_size;
 
 #endif   /* SHM_MQ_H */
