1From 3730a38efad969fb6f8227df07eb4461a078f5a3 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 configure    | 1 +
12 configure.in | 1 +
13 main.c       | 4 ++--
14 xtermcfg.hin | 1 +
15 5 files changed, 6 insertions(+), 2 deletions(-)
16
17diff --git a/configure b/configure
18index 0aafefc..03e8df0 100755
19--- a/configure
20+++ b/configure
21@@ -5411,6 +5411,7 @@ for ac_func in \
22 	unsetenv \
23 	sched_yield \
24 	setpgid \
25+	setsid \
26 	strftime \
27 	tcgetattr \
28 	waitpid \
29diff --git a/configure.in b/configure.in
30index d2fee88..74d65df 100644
31--- a/configure.in
32+++ b/configure.in
33@@ -99,6 +99,7 @@ AC_CHECK_FUNCS( \
34 	unsetenv \
35 	sched_yield \
36 	setpgid \
37+	setsid \
38 	strftime \
39 	tcgetattr \
40 	waitpid \
41diff --git a/main.c b/main.c
42index 5e60589..b81d2be 100644
43--- a/main.c
44+++ b/main.c
45@@ -2868,7 +2868,7 @@ main(int argc, char *argv[]ENVP_ARG)
46     }
47 }
48
49-#if defined(__osf__) || (defined(__GLIBC__) && !defined(USE_USG_PTYS)) || defined(__DragonFly__) || defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__APPLE__)
50+#if defined(__osf__) || (defined(__linux__) && !defined(USE_USG_PTYS)) || defined(__DragonFly__) || defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__APPLE__)
51 #define USE_OPENPTY 1
52 static int opened_tty = -1;
53 #endif
54@@ -4040,7 +4040,7 @@ spawnXTerm(XtermWidget xw, unsigned line_speed)
55 	    /*
56 	     * now in child process
57 	     */
58-#if defined(_POSIX_SOURCE) || defined(SVR4) || defined(__convex__) || defined(__SCO__) || defined(__QNX__)
59+#if HAVE_SETSID
60 	    int pgrp = setsid();	/* variable may not be used... */
61 #else
62 	    int pgrp = getpid();
63diff --git a/xtermcfg.hin b/xtermcfg.hin
64index 1dbc3b8..4f3ff5b 100644
65--- a/xtermcfg.hin
66+++ b/xtermcfg.hin
67@@ -96,6 +96,7 @@
68 #undef HAVE_PUTENV		/* AC_CHECK_FUNCS(putenv) */
69 #undef HAVE_SCHED_YIELD		/* AC_CHECK_FUNCS(sched_yield) */
70 #undef HAVE_SETPGID		/* AC_CHECK_FUNCS(setpgid) */
71+#undef HAVE_SETSID		/* AC_CHECK_FUNCS(setsid) */
72 #undef HAVE_STDINT_H		/* AC_PROG_CC_STDC */
73 #undef HAVE_STDLIB_H		/* AC_CHECK_HEADERS(stdlib.h) */
74 #undef HAVE_STRFTIME		/* AC_CHECK_FUNCS(strftime) */
75--
762.24.1
77
78