diff options
author | Paul Eggert <eggert@cs.ucla.edu> | 2005-05-10 19:09:23 +0000 |
---|---|---|
committer | Paul Eggert <eggert@cs.ucla.edu> | 2005-05-10 19:09:23 +0000 |
commit | 7a0461caab80bd2aad3ff05e51030cd588437522 (patch) | |
tree | 59c55e921c83751346ea793f7f3e74630bca5dfd | |
parent | b323c059793160170fab7e1fb04072bfc2be9253 (diff) | |
download | coreutils-7a0461caab80bd2aad3ff05e51030cd588437522.tar.xz |
(gl_GETOPT): Check for Solaris 10 bug, not decl, when possible.
-rw-r--r-- | m4/getopt.m4 | 25 |
1 files changed, 22 insertions, 3 deletions
diff --git a/m4/getopt.m4 b/m4/getopt.m4 index d7bd3191c..79c699162 100644 --- a/m4/getopt.m4 +++ b/m4/getopt.m4 @@ -1,4 +1,4 @@ -# getopt.m4 serial 8 +# getopt.m4 serial 9 dnl Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, @@ -39,8 +39,27 @@ AC_DEFUN([gl_GETOPT], dnl Solaris 10 getopt doesn't handle `+' as a leading character in an dnl option string (as of 2005-05-05). if test -z "$GETOPT_H"; then - AC_CHECK_DECL([getopt_clip], [GETOPT_H=getopt.h], [], - [#include <getopt.h>]) + AC_CACHE_CHECK([for working GNU getopt function], [gl_cv_func_gnu_getopt], + [AC_RUN_IFELSE( + [AC_LANG_PROGRAM([#include <getopt.h>], + [[ + char *myargv[3]; + myargv[0] = "conftest"; + myargv[1] = "-+"; + myargv[2] = 0; + return getopt (2, myargv, "+a") != '?'; + ]])], + [gl_cv_func_gnu_getopt=yes], + [gl_cv_func_gnu_getopt=no], + [dnl cross compiling - pessimistically guess based on decls + dnl Solaris 10 getopt doesn't handle `+' as a leading character in an + dnl option string (as of 2005-05-05). + AC_CHECK_DECL([getopt_clip], + [gl_cv_func_gnu_getopt=no], [gl_cv_func_gnu_getopt=yes], + [#include <getopt.h>])])]) + if test "$gl_cv_func_gnu_getopt" = "no"; then + GETOPT_H=getopt.h + fi fi if test -n "$GETOPT_H"; then |