diff --git a/compat/getgrouplist.c b/compat/getgrouplist.c index ab85df98a..a8085c100 100644 --- a/compat/getgrouplist.c +++ b/compat/getgrouplist.c @@ -102,7 +102,16 @@ done: # define ALIGN(p) (((unsigned long)(p) + ALIGNBYTES) & ~ALIGNBYTES) #endif -extern void _nss_initf_group(nss_db_params_t *); +#if defined(HAVE__NSS_INITF_GROUP) || defined(HAVE___NSS_INITF_GROUP) +extern void _nss_initf_group(nss_db_params_t *params); +#else +static void +_nss_initf_group(nss_db_params_t *params) +{ + params->name = NSS_DBNAM_GROUP; + params->default_config = NSS_DEFCONF_GROUP; +} +#endif static id_t strtoid(const char *p, int *errval) diff --git a/configure b/configure index 474850525..40703d8e2 100755 --- a/configure +++ b/configure @@ -17130,6 +17130,28 @@ done $as_echo "#define HAVE__NSS_INITF_GROUP 1" >>confdefs.h +else + + for ac_header in nss_dbdefs.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "nss_dbdefs.h" "ac_cv_header_nss_dbdefs_h" "$ac_includes_default" +if test "x$ac_cv_header_nss_dbdefs_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_NSS_DBDEFS_H 1 +_ACEOF + + # Older Solaris does not export _nss_initf_group + # but we can use our own. + $as_echo "#define HAVE_NSS_SEARCH 1" >>confdefs.h + + $as_echo "#define HAVE__NSS_XBYY_BUF_ALLOC 1" >>confdefs.h + + +fi + +done + + fi diff --git a/configure.ac b/configure.ac index a15a726f9..33472bc5a 100644 --- a/configure.ac +++ b/configure.ac @@ -2322,6 +2322,13 @@ AC_CHECK_FUNCS(getgrouplist, [], [ AC_DEFINE([HAVE_NSS_SEARCH]) AC_DEFINE([HAVE__NSS_XBYY_BUF_ALLOC]) AC_DEFINE([HAVE__NSS_INITF_GROUP]) + ], [ + AC_CHECK_HEADERS(nss_dbdefs.h, [ + # Older Solaris does not export _nss_initf_group + # but we can use our own. + AC_DEFINE([HAVE_NSS_SEARCH]) + AC_DEFINE([HAVE__NSS_XBYY_BUF_ALLOC]) + ]) ]) ], [ # HP-UX