-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 According to Jim Meyering on 10/22/2008 9:32 AM: > To autoconf folks, I've attached the obvious patch below, > and will push it some time tomorrow if no one objects. > > * lib/autoconf/functions.m4 (AC_FUNC_GETGROUPS): Always define > the shell variable, $ac_cv_func_getgroups_works. Otherwise, > if it set to "yes" in the environment and configure is run on > a system like mingw that lacks the getgroups function, it would > mistakenly define HAVE_GETGROUPS. Reported by Simon Josefsson in > <http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/15354>.
Bah. This is broken in autoconf; sorry for not catching it sooner. In the case where getgroups is available, the fact that ac_cv_func_getgroups_works is predefined bypasses the attempt to even see if it works. Meanwhile, it exposed another gnulib bug: getgroups.c: In function `rpl_getgroups': getgroups.c:45: warning: implicit declaration of function `getgroups' I'm committing these followups. A nicer gnulib patch would involve declaring rpl_getgroups in unistd.in.h, and modifying the unistd module to be aware of whether rpl_getgroups is needed; but this smaller patch does the trick for now. - -- Don't work too hard, make some time for fun as well! Eric Blake [EMAIL PROTECTED] -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.9 (Cygwin) Comment: Public key at home.comcast.net/~ericblake/eblake.gpg Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iEYEARECAAYFAkkBtj0ACgkQ84KuGfSFAYDl/ACgpxr2trm+l2sXOu77eGCLDyWV wlgAn1JFaKljzsevaw6WmXBrr1Pw9Z50 =o7KP -----END PGP SIGNATURE-----
>From e2cdf35545f7834797a6d6dfb493f239d0fde479 Mon Sep 17 00:00:00 2001 From: Eric Blake <[EMAIL PROTECTED]> Date: Fri, 24 Oct 2008 05:36:20 -0600 Subject: [PATCH] getgroups: fix compilation when getgroups is available * lib/getgroups.c (includes): Include <unistd.h> for getgroups, but with <config.h> override of getgroups disabled. Signed-off-by: Eric Blake <[EMAIL PROTECTED]> --- ChangeLog | 6 ++++++ lib/getgroups.c | 7 ++++--- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index cd514df..11a8b0d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2008-10-24 Eric Blake <[EMAIL PROTECTED]> + + getgroups: fix compilation when getgroups is available + * lib/getgroups.c (includes): Include <unistd.h> for getgroups, + but with <config.h> override of getgroups disabled. + 2008-10-23 Bruno Haible <[EMAIL PROTECTED]> Define a dummy SA_NODEFER macro on Interix. diff --git a/lib/getgroups.c b/lib/getgroups.c index a8a225a..a4df7ab 100644 --- a/lib/getgroups.c +++ b/lib/getgroups.c @@ -1,6 +1,6 @@ /* provide consistent interface to getgroups for systems that don't allow N==0 - Copyright (C) 1996, 1999, 2003, 2006, 2007 Free Software Foundation, Inc. + Copyright (C) 1996, 1999, 2003, 2006, 2007, 2008 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -19,10 +19,13 @@ #include <config.h> +#undef getgroups + #include <stdio.h> #include <sys/types.h> #include <errno.h> #include <stdlib.h> +#include <unistd.h> #include "xalloc.h" @@ -38,8 +41,6 @@ rpl_getgroups (int n, GETGROUPS_T *group) GETGROUPS_T *gbuf; int saved_errno; -#undef getgroups - if (n != 0) return getgroups (n, group); -- 1.6.0.2
>From 21bd2e490b0804a0223b7044e89d5d31bd9f6476 Mon Sep 17 00:00:00 2001 From: Eric Blake <[EMAIL PROTECTED]> Date: Fri, 24 Oct 2008 05:42:10 -0600 Subject: [PATCH] AC_FUNC_GETGROUPS: Revert regression. * lib/autoconf/functions.m4 (AC_FUNC_GETGROUPS): Only set ac_cv_func_getgroups_works=no when it is not available. Signed-off-by: Eric Blake <[EMAIL PROTECTED]> --- ChangeLog | 6 ++++++ lib/autoconf/functions.m4 | 15 +++++++++------ 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/ChangeLog b/ChangeLog index c8dca18..0a83589 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2008-10-24 Eric Blake <[EMAIL PROTECTED]> + + AC_FUNC_GETGROUPS: Revert regression. + * lib/autoconf/functions.m4 (AC_FUNC_GETGROUPS): Only set + ac_cv_func_getgroups_works=no when it is not available. + 2008-10-23 Eric Blake <[EMAIL PROTECTED]> Whitespace cleanup. diff --git a/lib/autoconf/functions.m4 b/lib/autoconf/functions.m4 index 3999134..f478ccc 100644 --- a/lib/autoconf/functions.m4 +++ b/lib/autoconf/functions.m4 @@ -619,7 +619,6 @@ if test $ac_cv_func_getgroups = no; then AC_CHECK_LIB(bsd, getgroups, [GETGROUPS_LIB=-lbsd]) fi -ac_cv_func_getgroups_works=no # Run the program to test the functionality of the system-supplied # getgroups function only if there is such a function. if test $ac_cv_func_getgroups = yes; then @@ -627,12 +626,16 @@ if test $ac_cv_func_getgroups = yes; then [AC_RUN_IFELSE([AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT], [[/* On Ultrix 4.3, getgroups (0, 0) always fails. */ return getgroups (0, 0) == -1;]])], - [ac_cv_func_getgroups_works=yes]) + [ac_cv_func_getgroups_works=yes], + [ac_cv_func_getgroups_works=no], + [ac_cv_func_getgroups_works=no]) ]) - if test $ac_cv_func_getgroups_works = yes; then - AC_DEFINE(HAVE_GETGROUPS, 1, - [Define to 1 if your system has a working `getgroups' function.]) - fi +else + ac_cv_func_getgroups_works=no +fi +if test $ac_cv_func_getgroups_works = yes; then + AC_DEFINE(HAVE_GETGROUPS, 1, + [Define to 1 if your system has a working `getgroups' function.]) fi LIBS=$ac_save_LIBS ])# AC_FUNC_GETGROUPS -- 1.6.0.2