diff options
-rw-r--r-- | source3/configure.in | 34 |
1 files changed, 22 insertions, 12 deletions
diff --git a/source3/configure.in b/source3/configure.in index 5df423832f..810ab6bced 100644 --- a/source3/configure.in +++ b/source3/configure.in @@ -1378,23 +1378,33 @@ AC_DEFINE(HAVE_PRCTL, 1, [Whether prctl is available]),[]) case "$host_os" in *linux*) # glibc <= 2.3.2 has a broken getgrouplist - AC_TRY_RUN([ + AC_CACHE_CHECK([for a broken Linux getgrouplist API], + linux_getgrouplist_ok, + [ + AC_TRY_RUN([ #include <unistd.h> #include <sys/utsname.h> -main() { - /* glibc up to 2.3 has a broken getgrouplist */ + + main() { + /* glibc up to 2.3 has a broken getgrouplist */ #if defined(__GLIBC__) && defined(__GLIBC_MINOR__) - int libc_major = __GLIBC__; - int libc_minor = __GLIBC_MINOR__; + int libc_major = __GLIBC__; + int libc_minor = __GLIBC_MINOR__; - if (libc_major < 2) - exit(1); - if ((libc_major == 2) && (libc_minor <= 3)) - exit(1); + if (libc_major < 2) + exit(1); + if ((libc_major == 2) && (libc_minor <= 3)) + exit(1); #endif - exit(0); -} -], [linux_getgrouplist_ok=yes], [linux_getgrouplist_ok=no]) + exit(0); + } + + ], + [linux_getgrouplist_ok=yes], + [linux_getgrouplist_ok=no], + [linux_getgrouplist_ok=cross]) + ]) + if test x"$linux_getgrouplist_ok" = x"yes"; then AC_DEFINE(HAVE_GETGROUPLIST, 1, [Have good getgrouplist]) fi |