From 3d1bde246a781b3533d5dc5476d7efadea960f5a Mon Sep 17 00:00:00 2001
From: Thomas Munro <thomas.munro@gmail.com>
Date: Thu, 11 Aug 2022 16:10:07 +1200
Subject: [PATCH 4/7] Remove configure probes for sys/ipc.h, sys/sem.h,
 sys/shm.h.

These so called System V IPC facilities are in SUSv2 and every targeted
Unix system has them.  It's easy to avoid including them on Windows
system because they're mostly used in platform-specific translation
units.
---
 config/c-library.m4                | 5 +----
 configure                          | 7 ++-----
 configure.ac                       | 3 ---
 src/backend/port/sysv_sema.c       | 6 +-----
 src/backend/port/sysv_shmem.c      | 8 ++------
 src/backend/storage/ipc/dsm_impl.c | 6 +-----
 src/include/pg_config.h.in         | 9 ---------
 src/tools/msvc/Solution.pm         | 3 ---
 8 files changed, 7 insertions(+), 40 deletions(-)

diff --git a/config/c-library.m4 b/config/c-library.m4
index 76552ac6ed..f6b171d923 100644
--- a/config/c-library.m4
+++ b/config/c-library.m4
@@ -68,12 +68,9 @@ fi
 AC_DEFUN([PGAC_UNION_SEMUN],
 [AC_CHECK_TYPES([union semun], [], [],
 [#include <sys/types.h>
-#ifdef HAVE_SYS_IPC_H
 #include <sys/ipc.h>
-#endif
-#ifdef HAVE_SYS_SEM_H
 #include <sys/sem.h>
-#endif])])# PGAC_UNION_SEMUN
+])])# PGAC_UNION_SEMUN
 
 
 # PGAC_STRUCT_SOCKADDR_STORAGE
diff --git a/configure b/configure
index 804162e873..9ea343c9a1 100755
--- a/configure
+++ b/configure
@@ -13874,7 +13874,7 @@ $as_echo "#define HAVE_STDBOOL_H 1" >>confdefs.h
 fi
 
 
-for ac_header in atomic.h copyfile.h execinfo.h getopt.h ifaddrs.h langinfo.h mbarrier.h net/if.h netinet/tcp.h sys/epoll.h sys/event.h sys/ipc.h sys/personality.h sys/prctl.h sys/procctl.h sys/resource.h sys/sem.h sys/shm.h sys/signalfd.h sys/sockio.h sys/ucred.h termios.h ucred.h
+for ac_header in atomic.h copyfile.h execinfo.h getopt.h ifaddrs.h langinfo.h mbarrier.h net/if.h netinet/tcp.h sys/epoll.h sys/event.h sys/personality.h sys/prctl.h sys/procctl.h sys/resource.h sys/signalfd.h sys/sockio.h sys/ucred.h termios.h ucred.h
 do :
   as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
 ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
@@ -15092,12 +15092,9 @@ fi
 
 
 ac_fn_c_check_type "$LINENO" "union semun" "ac_cv_type_union_semun" "#include <sys/types.h>
-#ifdef HAVE_SYS_IPC_H
 #include <sys/ipc.h>
-#endif
-#ifdef HAVE_SYS_SEM_H
 #include <sys/sem.h>
-#endif
+
 "
 if test "x$ac_cv_type_union_semun" = xyes; then :
 
diff --git a/configure.ac b/configure.ac
index a9474fd8f3..8da9fc614d 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1456,13 +1456,10 @@ AC_CHECK_HEADERS(m4_normalize([
 	netinet/tcp.h
 	sys/epoll.h
 	sys/event.h
-	sys/ipc.h
 	sys/personality.h
 	sys/prctl.h
 	sys/procctl.h
 	sys/resource.h
-	sys/sem.h
-	sys/shm.h
 	sys/signalfd.h
 	sys/sockio.h
 	sys/ucred.h
diff --git a/src/backend/port/sysv_sema.c b/src/backend/port/sysv_sema.c
index ea3ad6da1c..08a97616d6 100644
--- a/src/backend/port/sysv_sema.c
+++ b/src/backend/port/sysv_sema.c
@@ -17,13 +17,9 @@
 #include <signal.h>
 #include <unistd.h>
 #include <sys/file.h>
-#include <sys/stat.h>
-#ifdef HAVE_SYS_IPC_H
 #include <sys/ipc.h>
-#endif
-#ifdef HAVE_SYS_SEM_H
 #include <sys/sem.h>
-#endif
+#include <sys/stat.h>
 
 #include "miscadmin.h"
 #include "storage/ipc.h"
diff --git a/src/backend/port/sysv_shmem.c b/src/backend/port/sysv_shmem.c
index ea287c733d..e62d4a618e 100644
--- a/src/backend/port/sysv_shmem.c
+++ b/src/backend/port/sysv_shmem.c
@@ -22,14 +22,10 @@
 #include <signal.h>
 #include <unistd.h>
 #include <sys/file.h>
-#include <sys/mman.h>
-#include <sys/stat.h>
-#ifdef HAVE_SYS_IPC_H
 #include <sys/ipc.h>
-#endif
-#ifdef HAVE_SYS_SHM_H
+#include <sys/mman.h>
 #include <sys/shm.h>
-#endif
+#include <sys/stat.h>
 
 #include "miscadmin.h"
 #include "port/pg_bitutils.h"
diff --git a/src/backend/storage/ipc/dsm_impl.c b/src/backend/storage/ipc/dsm_impl.c
index 69c6df75b4..e1b90c5de4 100644
--- a/src/backend/storage/ipc/dsm_impl.c
+++ b/src/backend/storage/ipc/dsm_impl.c
@@ -53,13 +53,9 @@
 #include <unistd.h>
 #ifndef WIN32
 #include <sys/mman.h>
-#endif
-#include <sys/stat.h>
-#ifdef HAVE_SYS_IPC_H
 #include <sys/ipc.h>
-#endif
-#ifdef HAVE_SYS_SHM_H
 #include <sys/shm.h>
+#include <sys/stat.h>
 #endif
 
 #include "common/file_perm.h"
diff --git a/src/include/pg_config.h.in b/src/include/pg_config.h.in
index f666b4173b..5f96f71896 100644
--- a/src/include/pg_config.h.in
+++ b/src/include/pg_config.h.in
@@ -496,9 +496,6 @@
 /* Define to 1 if you have the <sys/event.h> header file. */
 #undef HAVE_SYS_EVENT_H
 
-/* Define to 1 if you have the <sys/ipc.h> header file. */
-#undef HAVE_SYS_IPC_H
-
 /* Define to 1 if you have the <sys/personality.h> header file. */
 #undef HAVE_SYS_PERSONALITY_H
 
@@ -511,12 +508,6 @@
 /* Define to 1 if you have the <sys/resource.h> header file. */
 #undef HAVE_SYS_RESOURCE_H
 
-/* Define to 1 if you have the <sys/sem.h> header file. */
-#undef HAVE_SYS_SEM_H
-
-/* Define to 1 if you have the <sys/shm.h> header file. */
-#undef HAVE_SYS_SHM_H
-
 /* Define to 1 if you have the <sys/signalfd.h> header file. */
 #undef HAVE_SYS_SIGNALFD_H
 
diff --git a/src/tools/msvc/Solution.pm b/src/tools/msvc/Solution.pm
index b552f439cc..3f69618c4a 100644
--- a/src/tools/msvc/Solution.pm
+++ b/src/tools/msvc/Solution.pm
@@ -361,13 +361,10 @@ sub GenerateFiles
 		HAVE_SYSLOG                              => undef,
 		HAVE_SYS_EPOLL_H                         => undef,
 		HAVE_SYS_EVENT_H                         => undef,
-		HAVE_SYS_IPC_H                           => undef,
 		HAVE_SYS_PERSONALITY_H                   => undef,
 		HAVE_SYS_PRCTL_H                         => undef,
 		HAVE_SYS_PROCCTL_H                       => undef,
 		HAVE_SYS_RESOURCE_H                      => undef,
-		HAVE_SYS_SEM_H                           => undef,
-		HAVE_SYS_SHM_H                           => undef,
 		HAVE_SYS_SIGNALFD_H                      => undef,
 		HAVE_SYS_SOCKIO_H                        => undef,
 		HAVE_SYS_STAT_H                          => 1,
-- 
2.32.1 (Apple Git-133)

