From 7fbc530a22903c9c026fe6f761f894c0325c8356 Mon Sep 17 00:00:00 2001
From: Matt Turner <mattst88@gmail.com>
Date: Thu, 21 Nov 2019 11:23:18 -0500
Subject: [PATCH xserver] xfree86: Test presence of isastream()

isastream() was never more than a stub in glibc, and was removed in
glibc-2.30 by commit a0a0dc83173c ("Remove obsolete, never-implemented
XSI STREAMS declarations").

Bug: https://bugs.gentoo.org/700838
Signed-off-by: Matt Turner <mattst88@gmail.com>
---
 configure.ac                         | 2 +-
 hw/xfree86/os-support/shared/sigio.c | 4 ++--
 include/meson.build                  | 1 +
 3 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/configure.ac b/configure.ac
index af16b0afb..e2f2ac8bd 100644
--- a/configure.ac
+++ b/configure.ac
@@ -159,7 +159,7 @@ dnl Checks for library functions.
 AC_CHECK_FUNCS([backtrace geteuid getuid issetugid getresuid \
 	getdtablesize getifaddrs getpeereid getpeerucred getprogname getzoneid \
 	mmap posix_fallocate seteuid shmctl64 strncasecmp vasprintf vsnprintf \
-	walkcontext setitimer poll epoll_create1 mkostemp memfd_create])
+	walkcontext setitimer poll epoll_create1 mkostemp memfd_create isastream])
 AC_CONFIG_LIBOBJ_DIR([os])
 AC_REPLACE_FUNCS([reallocarray strcasecmp strcasestr strlcat strlcpy strndup\
 	timingsafe_memcmp])
diff --git a/hw/xfree86/os-support/shared/sigio.c b/hw/xfree86/os-support/shared/sigio.c
index 884a71c61..b07e58e65 100644
--- a/hw/xfree86/os-support/shared/sigio.c
+++ b/hw/xfree86/os-support/shared/sigio.c
@@ -208,7 +208,7 @@ xf86InstallSIGIOHandler(int fd, void (*f) (int, void *), void *closure)
                 }
             }
 #endif
-#ifdef I_SETSIG                 /* System V Streams - used on Solaris for input devices */
+#ifdef HAVE_ISASTREAM           /* System V Streams - used on Solaris for input devices */
             if (!installed && isastream(fd)) {
                 if (ioctl(fd, I_SETSIG, S_INPUT | S_ERROR | S_HANGUP) == -1) {
                     xf86Msg(X_WARNING, "fcntl(%d, I_SETSIG): %s\n",
@@ -279,7 +279,7 @@ xf86RemoveSIGIOHandler(int fd)
 #ifdef O_ASYNC
         fcntl(fd, F_SETFL, fcntl(fd, F_GETFL) & ~O_ASYNC);
 #endif
-#ifdef I_SETSIG
+#ifdef HAVE_ISASTREAM
         if (isastream(fd)) {
             if (ioctl(fd, I_SETSIG, 0) == -1) {
                 xf86Msg(X_WARNING, "fcntl(%d, I_SETSIG, 0): %s\n",
diff --git a/include/meson.build b/include/meson.build
index dfca3c340..f8275508d 100644
--- a/include/meson.build
+++ b/include/meson.build
@@ -119,6 +119,7 @@ conf_data.set('HAVE_CBRT', cc.has_function('cbrt'))
 conf_data.set('HAVE_EPOLL_CREATE1', cc.has_function('epoll_create1'))
 conf_data.set('HAVE_GETUID', cc.has_function('getuid'))
 conf_data.set('HAVE_GETEUID', cc.has_function('geteuid'))
+conf_data.set('HAVE_ISASTREAM', cc.has_function('isastream'))
 conf_data.set('HAVE_ISSETUGID', cc.has_function('issetugid'))
 conf_data.set('HAVE_GETIFADDRS', cc.has_function('getifaddrs'))
 conf_data.set('HAVE_GETPEEREID', cc.has_function('getpeereid'))
-- 
2.23.0