On 07/13/2012 12:04 PM, Paul Eggert wrote: > On 07/13/2012 10:53 AM, Eric Blake wrote: >> Autoconf guarantees that AC_CHECK_DECLS_ONCE always defines the >> corresponding HAVE_DECL_*, so checking #ifndef HAVE_DECL_* is bogus. >> https://lists.gnu.org/archive/html/coreutils/2012-06/msg00037.html >> >> * lib/argp-parse.c (__argp_parse): Check contents of HAVE_DECL >> macros, not whether they are defined. > > But those HAVE_DECL_ macros are not set by AC_CHECK_DECLS_ONCE.
Indeed; looking at m4/argp.m4: AC_DEFUN([gl_ARGP], [ AC_REQUIRE([AC_C_INLINE]) AC_REQUIRE([AC_C_RESTRICT]) AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) AC_CHECK_DECL([program_invocation_name], [AC_DEFINE([HAVE_DECL_PROGRAM_INVOCATION_NAME], [1], [Define if program_invocation_name is declared])], [AC_DEFINE([GNULIB_PROGRAM_INVOCATION_NAME], [1], [Define to 1 to add extern declaration of program_invocation_name to argp.h])], [[#include <errno.h>]]) AC_CHECK_DECL([program_invocation_short_name], ... they are set by actually using the action-if-found/action-if-not-found arguments of AC_CHECK_DECL, rather than the more typical use of AC_CHECK_DECLS. > > I don't think the change broke anything, but it wasn't needed. Hence, I asked for a review instead of pushing. > That being said, I suggest also changing gl_ARGP so that > it sets thos HAVE_DECL_ macros to 0 or 1, rather than to undefined > or 1, to be compatible with the usual style in gnulib. Agreed; v2 coming up. -- Eric Blake ebl...@redhat.com +1-919-301-3266 Libvirt virtualization library http://libvirt.org
signature.asc
Description: OpenPGP digital signature