+dnl Look for the initgroups() declaration. On AIX 4.[13], Solaris 4.1.3, and
+dnl ULTRIX 4.2A the function is defined in libc but there's no declaration in
+dnl any system header.
+dnl
+dnl On Solaris 2.[456], the declaration is in <grp.h>. On HP-UX 9-11 and
+dnl (reportedly) FreeBSD 3.[23], it's in <unistd.h>. Any other locations we
+dnl need to check?
+AC_EGREP_HEADER(initgroups, grp.h, AC_DEFINE(INITGROUPS_HEADER, <grp.h>),
+ AC_EGREP_HEADER(initgroups, unistd.h,
+ AC_DEFINE(INITGROUPS_HEADER, <unistd.h>)))
+
+dnl On AIX 4.1, snprintf() is defined in libc.a but there's no prototype in
+dnl <stdio.h> or elsewhere. Apparently it's not officially supported (though it
+dnl seems to work perfectly and IBM apparently uses it in internal code).
+dnl Anyhow, if we omit our own snprintf() and vsnprintf() prototypes when we
+dnl HAVE_SNPRINTF, we get a billion warnings at compile time. Use the C
+dnl preprocessor to preprocess stdio.h and make sure that there's actually a
+dnl prototype.
+AC_EGREP_HEADER(snprintf, stdio.h, AC_DEFINE(HAVE_SNPRINTF_PROTOTYPE))
+