From: Eric Blake Date: Tue, 13 Apr 2010 17:00:29 +0000 (-0600) Subject: getopt-posix: avoid spurious failure on Solaris X-Git-Tag: stable/20100424~33 X-Git-Url: http://erislabs.org.uk/gitweb/?a=commitdiff_plain;h=1454b1f;p=gnulib.git getopt-posix: avoid spurious failure on Solaris * m4/getopt.m4 (gl_GETOPT_CHECK_HEADERS): Check for getopt_clip as an indicator that setting optind=1 is sufficient for reset. Signed-off-by: Eric Blake (cherry picked from commit 3108b956964845104f2d1455af313849afca50ca) --- diff --git a/ChangeLog b/ChangeLog index 7d7916fc6..5311be0bf 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,9 @@ 2010-04-13 Eric Blake + getopt-posix: avoid spurious failure on Solaris + * m4/getopt.m4 (gl_GETOPT_CHECK_HEADERS): Check for getopt_clip as + an indicator that setting optind=1 is sufficient for reset. + getopt-posix: avoid spurious failure on FreeBSD * m4/getopt.m4 (gl_GETOPT_CHECK_HEADERS): Check for optreset even in POSIX mode, since the m4 test uses it. diff --git a/m4/getopt.m4 b/m4/getopt.m4 index 0ee58210d..8d3d8b641 100644 --- a/m4/getopt.m4 +++ b/m4/getopt.m4 @@ -1,4 +1,4 @@ -# getopt.m4 serial 25 +# getopt.m4 serial 26 dnl Copyright (C) 2002-2006, 2008-2010 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, @@ -79,8 +79,13 @@ AC_DEFUN([gl_GETOPT_CHECK_HEADERS], dnl Existence of the variable, in and of itself, is not a reason to replace dnl getopt, but knowledge of the variable is needed to determine how to dnl reset and whether a reset reparses the environment. + dnl Solaris supports neither optreset nor optind=0, but keeps no state that + dnl needs a reset beyond setting optind=1; detect Solaris by getopt_clip. if test -z "$gl_replace_getopt"; then - AC_CHECK_DECLS([optreset], [], [], + AC_CHECK_DECLS([optreset], [], + [AC_CHECK_DECLS([getopt_clip], [], [], + [[#include ]]) + ], [[#include ]]) fi @@ -99,7 +104,7 @@ AC_DEFUN([gl_GETOPT_CHECK_HEADERS], #include #include -#if !HAVE_DECL_OPTRESET +#if !HAVE_DECL_OPTRESET && !HAVE_DECL_GETOPT_CLIP # define OPTIND_MIN 0 #else # define OPTIND_MIN 1