0004-Remove-configure-probe-for-setsid.patch
text/x-patch
Filename: 0004-Remove-configure-probe-for-setsid.patch
Type: text/x-patch
Part: 3
Patch
Format: format-patch
Series: patch 0004
Subject: Remove configure probe for setsid.
| File | + | − |
|---|---|---|
| configure | 1 | 1 |
| configure.ac | 0 | 1 |
| src/backend/postmaster/postmaster.c | 2 | 2 |
| src/backend/storage/ipc/procarray.c | 1 | 1 |
| src/backend/storage/ipc/signalfuncs.c | 1 | 1 |
| src/backend/utils/init/miscinit.c | 1 | 1 |
| src/backend/utils/init/postinit.c | 2 | 2 |
| src/bin/pg_ctl/pg_ctl.c | 1 | 1 |
| src/include/pg_config.h.in | 0 | 3 |
| src/tools/msvc/Solution.pm | 0 | 1 |
From 57de5d03ef3b610d68783b975bab3f3c4f979020 Mon Sep 17 00:00:00 2001
From: Thomas Munro <thomas.munro@gmail.com>
Date: Sun, 24 Jul 2022 00:54:07 +1200
Subject: [PATCH 04/13] Remove configure probe for setsid.
setsid() is in SUSv2 and all targeted Unix systems have it. This can be
replaced with a test that we're not on Windows.
---
configure | 2 +-
configure.ac | 1 -
src/backend/postmaster/postmaster.c | 4 ++--
src/backend/storage/ipc/procarray.c | 2 +-
src/backend/storage/ipc/signalfuncs.c | 2 +-
src/backend/utils/init/miscinit.c | 2 +-
src/backend/utils/init/postinit.c | 4 ++--
src/bin/pg_ctl/pg_ctl.c | 2 +-
src/include/pg_config.h.in | 3 ---
src/tools/msvc/Solution.pm | 1 -
10 files changed, 9 insertions(+), 14 deletions(-)
diff --git a/configure b/configure
index 276fcb647c..62ff8250d4 100755
--- a/configure
+++ b/configure
@@ -16039,7 +16039,7 @@ fi
LIBS_including_readline="$LIBS"
LIBS=`echo "$LIBS" | sed -e 's/-ledit//g' -e 's/-lreadline//g'`
-for ac_func in backtrace_symbols clock_gettime copyfile fdatasync getifaddrs getpeerucred inet_pton kqueue mbstowcs_l memset_s poll posix_fallocate ppoll pthread_is_threaded_np readlink readv setproctitle setproctitle_fast setsid strchrnul strsignal symlink syncfs sync_file_range uselocale wcstombs_l writev
+for ac_func in backtrace_symbols clock_gettime copyfile fdatasync getifaddrs getpeerucred inet_pton kqueue mbstowcs_l memset_s poll posix_fallocate ppoll pthread_is_threaded_np readlink readv setproctitle setproctitle_fast strchrnul strsignal symlink syncfs sync_file_range uselocale wcstombs_l writev
do :
as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
diff --git a/configure.ac b/configure.ac
index 7ec30a7486..eb29046398 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1809,7 +1809,6 @@ AC_CHECK_FUNCS(m4_normalize([
readv
setproctitle
setproctitle_fast
- setsid
strchrnul
strsignal
symlink
diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c
index 1c25457526..b67e82a969 100644
--- a/src/backend/postmaster/postmaster.c
+++ b/src/backend/postmaster/postmaster.c
@@ -4024,7 +4024,7 @@ PostmasterStateMachine(void)
/*
* Send a signal to a postmaster child process
*
- * On systems that have setsid(), each child process sets itself up as a
+ * On Unix systems, each child process uses setsid() to set itself up as a
* process group leader. For signals that are generally interpreted in the
* appropriate fashion, we signal the entire process group not just the
* direct child process. This allows us to, for example, SIGQUIT a blocked
@@ -4042,7 +4042,7 @@ signal_child(pid_t pid, int signal)
{
if (kill(pid, signal) < 0)
elog(DEBUG3, "kill(%ld,%d) failed: %m", (long) pid, signal);
-#ifdef HAVE_SETSID
+#ifndef WIN32
switch (signal)
{
case SIGINT:
diff --git a/src/backend/storage/ipc/procarray.c b/src/backend/storage/ipc/procarray.c
index dadaa958a8..b680c14748 100644
--- a/src/backend/storage/ipc/procarray.c
+++ b/src/backend/storage/ipc/procarray.c
@@ -3869,7 +3869,7 @@ TerminateOtherDBBackends(Oid databaseId)
* If we have setsid(), signal the backend's whole process
* group
*/
-#ifdef HAVE_SETSID
+#ifndef WIN32
(void) kill(-pid, SIGTERM);
#else
(void) kill(pid, SIGTERM);
diff --git a/src/backend/storage/ipc/signalfuncs.c b/src/backend/storage/ipc/signalfuncs.c
index 6e310b14eb..e2dfb4ff00 100644
--- a/src/backend/storage/ipc/signalfuncs.c
+++ b/src/backend/storage/ipc/signalfuncs.c
@@ -93,7 +93,7 @@ pg_signal_backend(int pid, int sig)
*/
/* If we have setsid(), signal the backend's whole process group */
-#ifdef HAVE_SETSID
+#ifndef WIN32
if (kill(-pid, sig))
#else
if (kill(pid, sig))
diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c
index eb43b2c5e5..70018ca5d0 100644
--- a/src/backend/utils/init/miscinit.c
+++ b/src/backend/utils/init/miscinit.c
@@ -145,7 +145,7 @@ InitPostmasterChild(void)
* children, but for consistency we make all postmaster child processes do
* this.
*/
-#ifdef HAVE_SETSID
+#ifndef WIN32
if (setsid() < 0)
elog(FATAL, "setsid() failed: %m");
#endif
diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c
index a5c208a20a..3c77b1aa60 100644
--- a/src/backend/utils/init/postinit.c
+++ b/src/backend/utils/init/postinit.c
@@ -1249,7 +1249,7 @@ StatementTimeoutHandler(void)
if (ClientAuthInProgress)
sig = SIGTERM;
-#ifdef HAVE_SETSID
+#ifndef WIN32
/* try to signal whole process group */
kill(-MyProcPid, sig);
#endif
@@ -1262,7 +1262,7 @@ StatementTimeoutHandler(void)
static void
LockTimeoutHandler(void)
{
-#ifdef HAVE_SETSID
+#ifndef WIN32
/* try to signal whole process group */
kill(-MyProcPid, SIGINT);
#endif
diff --git a/src/bin/pg_ctl/pg_ctl.c b/src/bin/pg_ctl/pg_ctl.c
index 3157d51918..bb46723e3b 100644
--- a/src/bin/pg_ctl/pg_ctl.c
+++ b/src/bin/pg_ctl/pg_ctl.c
@@ -478,7 +478,7 @@ start_postmaster(void)
* group and make it a group leader, so that it doesn't get signaled along
* with the current group that launched it.
*/
-#ifdef HAVE_SETSID
+#ifndef WIN32
if (setsid() < 0)
{
write_stderr(_("%s: could not start server due to setsid() failure: %s\n"),
diff --git a/src/include/pg_config.h.in b/src/include/pg_config.h.in
index 922756568e..9a3372f7de 100644
--- a/src/include/pg_config.h.in
+++ b/src/include/pg_config.h.in
@@ -477,9 +477,6 @@
/* Define to 1 if you have the `setproctitle_fast' function. */
#undef HAVE_SETPROCTITLE_FAST
-/* Define to 1 if you have the `setsid' function. */
-#undef HAVE_SETSID
-
/* Define to 1 if the system has the type `socklen_t'. */
#undef HAVE_SOCKLEN_T
diff --git a/src/tools/msvc/Solution.pm b/src/tools/msvc/Solution.pm
index 893feb6eaf..e3b60a773a 100644
--- a/src/tools/msvc/Solution.pm
+++ b/src/tools/msvc/Solution.pm
@@ -352,7 +352,6 @@ sub GenerateFiles
HAVE_SETENV => undef,
HAVE_SETPROCTITLE => undef,
HAVE_SETPROCTITLE_FAST => undef,
- HAVE_SETSID => undef,
HAVE_SOCKLEN_T => 1,
HAVE_SPINLOCKS => 1,
HAVE_STDBOOL_H => 1,
--
2.30.2