diff options
author | Matt Turner <mattst88@gmail.com> | 2019-11-21 11:23:18 -0500 |
---|---|---|
committer | Matt Turner <mattst88@gmail.com> | 2019-11-22 15:24:27 -0500 |
commit | 88f12aa74bf4fea25d5b8d8002b3088432feb405 (patch) | |
tree | c5f52e11bcb0e473d55dfb3db8d0bd858320234a | |
parent | 0e60139064b84b856c59e5a456e26c60710b1b69 (diff) |
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
Reviewed-by: Julien Cristau <jcristau@debian.org>
Signed-off-by: Matt Turner <mattst88@gmail.com>
(cherry picked from commit e6ab7f9f342f463092c45226f3294074351fdd5e)
-rw-r--r-- | configure.ac | 2 | ||||
-rw-r--r-- | hw/xfree86/os-support/shared/sigio.c | 5 | ||||
-rw-r--r-- | include/dix-config.h.in | 3 | ||||
-rw-r--r-- | include/meson.build | 1 |
4 files changed, 8 insertions, 3 deletions
diff --git a/configure.ac b/configure.ac index 42950ff19..6033cb404 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..247bec708 100644 --- a/hw/xfree86/os-support/shared/sigio.c +++ b/hw/xfree86/os-support/shared/sigio.c @@ -208,7 +208,8 @@ xf86InstallSIGIOHandler(int fd, void (*f) (int, void *), void *closure) } } #endif -#ifdef I_SETSIG /* System V Streams - used on Solaris for input devices */ +#if defined(I_SETSIG) && defined(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 +280,7 @@ xf86RemoveSIGIOHandler(int fd) #ifdef O_ASYNC fcntl(fd, F_SETFL, fcntl(fd, F_GETFL) & ~O_ASYNC); #endif -#ifdef I_SETSIG +#if defined(I_SETSIG) && defined(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/dix-config.h.in b/include/dix-config.h.in index a9c0bf7fb..c18f62370 100644 --- a/include/dix-config.h.in +++ b/include/dix-config.h.in @@ -515,4 +515,7 @@ /* Have epoll_create1() */ #undef HAVE_EPOLL_CREATE1 +/* Have isastream */ +#undef HAVE_ISASTREAM + #endif /* _DIX_CONFIG_H_ */ diff --git a/include/meson.build b/include/meson.build index 536e01647..64c6c81ce 100644 --- a/include/meson.build +++ b/include/meson.build @@ -114,6 +114,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')) |