dnl This is the one location where the authoritative version number is stored
AC_INIT(shellinabox, 2.10, markus@shellinabox.com)
-VCS_REVISION=213
+VCS_REVISION=239
AC_SUBST(VCS_REVISION)
AC_DEFINE_UNQUOTED(VCS_REVISION, "${VCS_REVISION}",
[Most recent revision number in the version control system])
dnl Prefer thread-safe functions, if available
AC_CHECK_FUNCS([getgrgid_r getgrnam_r gethostbyname_r getpwnam_r getpwuid_r \
- openpty strcasestr ])
+ openpty strcasestr getresuid getresgid setresuid setresgid ])
dnl We prefer ptsname_r(), but will settle for ptsname() if necessary
AC_TRY_LINK([#ifndef _XOPEN_SOURCE
[AC_DEFINE(HAVE_UPDWTMPX, 1,
Define to 1 if you have support for updwtmpx)])
+dnl Check if the compiler supports aliasing of symbols
+AC_TRY_LINK([void x(void) { };
+ void y(void) __attribute__((alias("x")));],
+ [y();],
+ [AC_DEFINE(HAVE_ATTRIBUTE_ALIAS, 1,
+ Define to 1 if you have support for symbol aliasing)])
+
+dnl Check if the compiler has support to mark parameters as unused
+AC_TRY_LINK([void x(int i __attribute__((unused))) __attribute__((unused));],
+ [],
+ [AC_DEFINE(HAVE_ATTRIBUTE_UNUSED, 1,
+ Define to 1 if you have support for the "unused" attribute)])
+
+dnl Check the function signature of getgrouplist()
+AC_TRY_LINK([#define _BSD_SOURCE
+ #include <grp.h>
+ #include <unistd.h>],
+ [int (*f)(const char *, int, int *, int *) = getgrouplist;],
+ [AC_DEFINE(HAVE_GETGROUPLIST_TAKES_INTS, 1,
+ Define to 1 if getgrouplist() takes ints as arguments)])
+
dnl On some systems, calling /bin/login does not work. Disable the LOGIN
dnl feature, if the user tells us that it does not do the right thing.
AC_ARG_ENABLE(login,