1From b23d38f1216c4d70738edaa367cf9ecd2dd4b660 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Fri, 13 Dec 2019 12:59:26 -0800
4Subject: [PATCH] Add configure time check for setsid
5
6Do not assume glibc == linux
7
8Upstream-Status: Pending
9Signed-off-by: Khem Raj <raj.khem@gmail.com>
10
11---
12 configure    | 1 +
13 configure.in | 1 +
14 main.c       | 4 ++--
15 xtermcfg.hin | 1 +
16 4 files changed, 5 insertions(+), 2 deletions(-)
17
18diff --git a/configure b/configure
19index 72342c7..c2ec2ac 100755
20--- a/configure
21+++ b/configure
22@@ -5803,6 +5803,7 @@ for ac_func in \
23 	unsetenv \
24 	sched_yield \
25 	setpgid \
26+	setsid \
27 	strftime \
28 	tcgetattr \
29 	waitpid \
30diff --git a/configure.in b/configure.in
31index 56dbc25..0608c80 100644
32--- a/configure.in
33+++ b/configure.in
34@@ -99,6 +99,7 @@ AC_CHECK_FUNCS( \
35 	unsetenv \
36 	sched_yield \
37 	setpgid \
38+	setsid \
39 	strftime \
40 	tcgetattr \
41 	waitpid \
42diff --git a/main.c b/main.c
43index 24da0eb..332174c 100644
44--- a/main.c
45+++ b/main.c
46@@ -2956,7 +2956,7 @@ main(int argc, char *argv[]ENVP_ARG)
47     }
48 }
49
50-#if defined(__osf__) || (defined(__GLIBC__) && !defined(USE_USG_PTYS)) || defined(__DragonFly__) || defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__APPLE__)
51+#if defined(__osf__) || (defined(__linux__) && !defined(USE_USG_PTYS)) || defined(__DragonFly__) || defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__APPLE__)
52 #define USE_OPENPTY 1
53 static int opened_tty = -1;
54 #endif
55@@ -4205,7 +4205,7 @@ spawnXTerm(XtermWidget xw, unsigned line_speed)
56 	    /*
57 	     * now in child process
58 	     */
59-#if defined(_POSIX_SOURCE) || defined(SVR4) || defined(__convex__) || defined(__SCO__) || defined(__QNX__)
60+#if HAVE_SETSID
61 	    int pgrp = setsid();	/* variable may not be used... */
62 #else
63 	    int pgrp = getpid();
64diff --git a/xtermcfg.hin b/xtermcfg.hin
65index 19048cd..e54d2cd 100644
66--- a/xtermcfg.hin
67+++ b/xtermcfg.hin
68@@ -98,6 +98,7 @@
69 #undef HAVE_SCHED_YIELD		/* AC_CHECK_FUNCS(sched_yield) */
70 #undef HAVE_SETITIMER		/* CF_SETITIMER */
71 #undef HAVE_SETPGID		/* AC_CHECK_FUNCS(setpgid) */
72+#undef HAVE_SETSID		/* AC_CHECK_FUNCS(setsid) */
73 #undef HAVE_STDINT_H		/* AC_PROG_CC_STDC */
74 #undef HAVE_STDLIB_H		/* AC_CHECK_HEADERS(stdlib.h) */
75 #undef HAVE_STDNORETURN_H	/* CF_C11_NORETURN */
76