summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog9
-rw-r--r--doc/glibc-functions/login_tty.texi3
-rw-r--r--lib/utmp.in.h5
-rw-r--r--m4/login_tty.m46
4 files changed, 19 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog
index 6e78d73fa0..5da003bd5b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,14 @@
2023-04-08 Bruno Haible <bruno@clisp.org>
+ login_tty: Fix compilation error in C++ mode on Solaris 11.4.
+ * m4/login_tty.m4 (gl_FUNC_LOGIN_TTY): Test whether <termios.h> exists.
+ Consider it when testing whether login_tty is declared.
+ * lib/utmp.in.h: If none of <util.h> and <libutil.h> exists, include
+ <termios.h> instead.
+ * doc/glibc-functions/login_tty.texi: Document the Solaris 11.4 problem.
+
+2023-04-08 Bruno Haible <bruno@clisp.org>
+
time: Fix compilation error in C++ mode on Solaris 11.
* lib/time.in.h (time): Disable _GL_CXXALIASWARN invocation on non-glibc
systems.
diff --git a/doc/glibc-functions/login_tty.texi b/doc/glibc-functions/login_tty.texi
index 3e743b1527..42e7068d91 100644
--- a/doc/glibc-functions/login_tty.texi
+++ b/doc/glibc-functions/login_tty.texi
@@ -25,7 +25,8 @@ Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 11.3, Android 5.1.
@item
This function is declared in @code{<utmp.h>} on glibc, Cygwin, Android,
in @code{<util.h>} on macOS 11.1, NetBSD 5.0, OpenBSD 3.8,
-and in @code{<libutil.h>} on FreeBSD 13.0, Haiku.
+in @code{<libutil.h>} on FreeBSD 13.0, Haiku,
+and in @code{<termios.h>} on Solaris 11.4.
@c Also note that @code{<sys/types.h>} is
@c a prerequisite of @code{<utmp.h>} on FreeBSD 8.0, OpenBSD 4.6 and
@c of @code{<libutil.h>} on FreeBSD 8.0.
diff --git a/lib/utmp.in.h b/lib/utmp.in.h
index c33b3d2469..2c8c79d129 100644
--- a/lib/utmp.in.h
+++ b/lib/utmp.in.h
@@ -33,13 +33,16 @@
#define _@GUARD_PREFIX@_UTMP_H
/* FreeBSD, NetBSD, OpenBSD, macOS, Minix, Haiku declare login_tty in
- <util.h> or <libutil.h>, not in <utmp.h>. */
+ <util.h> or <libutil.h>, not in <utmp.h>. Solaris declares it in
+ <termios.h>, not in <utmp.h>. */
/* But in any case avoid namespace pollution on glibc systems. */
#if (@GNULIB_LOGIN_TTY@ || defined GNULIB_POSIXCHECK) && ! defined __GLIBC__
# if HAVE_UTIL_H /* macOS, NetBSD, OpenBSD, Minix */
# include <util.h>
# elif HAVE_LIBUTIL_H /* FreeBSD, Haiku */
# include <libutil.h>
+# elif HAVE_TERMIOS_H /* Solaris */
+# include <termios.h>
# endif
#endif
diff --git a/m4/login_tty.m4 b/m4/login_tty.m4
index ca15e6aabb..734e64c4f8 100644
--- a/m4/login_tty.m4
+++ b/m4/login_tty.m4
@@ -1,4 +1,4 @@
-# login_tty.m4 serial 2
+# login_tty.m4 serial 3
dnl Copyright (C) 2010-2023 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
@@ -8,7 +8,7 @@ AC_DEFUN([gl_FUNC_LOGIN_TTY],
[
AC_REQUIRE([gl_PTY_LIB])
- AC_CHECK_HEADERS_ONCE([utmp.h util.h libutil.h])
+ AC_CHECK_HEADERS_ONCE([utmp.h util.h libutil.h termios.h])
gl_saved_libs="$LIBS"
LIBS="$LIBS $PTY_LIB"
gl_CHECK_FUNCS_ANDROID([login_tty], [[
@@ -20,6 +20,8 @@ AC_DEFUN([gl_FUNC_LOGIN_TTY],
# include <util.h>
#elif HAVE_LIBUTIL_H
# include <libutil.h>
+ #elif HAVE_TERMIOS_H
+ # include <termios.h>
#endif
]])
LIBS="$gl_saved_LIBS"