>>>>> "Daniel" == Daniel Carroll <[EMAIL PROTECTED]> writes:
Daniel> The attached patch worked for me, though.
Could you try this patch instead? I find the code somewhat hard to
follow, and preferred to introduce IFELSE to make it more readable.
I also submit this patch.
Index: ChangeLog
from Akim Demaille <[EMAIL PROTECTED]>
* aclang.m4 (_AC_PROG_PREPROC_WORKS): Rename and extend as...
(_AC_PROG_PREPROC_WORKS_IFELSE): this.
Adjust to admit
(AC_PROG_CPP, AC_PROG_CXXCPP): Use it.
Reported by Daniel Carroll.
Index: acgeneral.m4
===================================================================
RCS file: /cvs/autoconf/acgeneral.m4,v
retrieving revision 1.720
diff -u -u -r1.720 acgeneral.m4
--- acgeneral.m4 2001/04/25 15:32:09 1.720
+++ acgeneral.m4 2001/04/25 17:23:52
@@ -2715,12 +2715,11 @@
# ----------------------------------------------------------------
# Try to preprocess PROGRAM.
#
+# This macro can be used during the selection of a preprocessor.
# Run cpp and set ac_cpp_err to "yes" for an error, to
# "$ac_(c,cxx)_preproc_warn_flag" if there are warnings or to "" if
# neither warnings nor errors have been detected. eval is necessary
# to expand ac_cpp.
-#
-# This macro can be used during the selection of a preprocessor.
AC_DEFUN([_AC_PREPROC_IFELSE],
[m4_ifvaln([$1], [AC_LANG_CONFTEST([$1])])dnl
if _AC_EVAL_STDERR([$ac_cpp conftest.$ac_ext]) >/dev/null; then
Index: aclang.m4
===================================================================
RCS file: /cvs/autoconf/aclang.m4,v
retrieving revision 1.125
diff -u -u -r1.125 aclang.m4
--- aclang.m4 2001/04/15 16:20:30 1.125
+++ aclang.m4 2001/04/25 17:23:53
@@ -804,33 +804,36 @@
[AC_REQUIRE([AC_PROG_CPP])])
-# _AC_PROG_PREPROC_WORKS
-# ----------------------
+# _AC_PROG_PREPROC_WORKS_IFELSE(IF-WORKS, IF-NOT)
+# -----------------------------------------------
# Check if $ac_cpp is a working preprocessor that can flag absent
-# includes either by the exit status or by warnings
-# Set ac_cpp_err to a non-empty value if the preprocessor failed
-# This macro is for all languages, not only C
-AC_DEFUN([_AC_PROG_PREPROC_WORKS],
-[# Use a header file that comes with gcc, so configuring glibc
+# includes either by the exit status or by warnings.
+# Set ac_cpp_err to a non-empty value if the preprocessor failed.
+# This macro is for all languages, not only C.
+AC_DEFUN([_AC_PROG_PREPROC_WORKS_IFELSE],
+[# We don't know yet if stderr is the criterion (vs exit status).
+ac_[]_AC_LANG_ABBREV[]_preproc_warn_flag=maybe
+
+# Use a header file that comes with gcc, so configuring glibc
# with a fresh cross-compiler works.
# On the NeXT, cc -E runs the code through the compiler's parser,
# not just through cpp. "Syntax error" is here to catch this case.
-ac_[]_AC_LANG_ABBREV[]_preproc_warn_flag=maybe
_AC_PREPROC_IFELSE([AC_LANG_SOURCE([[@%:@include <assert.h>
Syntax error]])],
-[# Now check whether non-existent headers can be detected and how
-# Skip if ac_cpp_err is not empty - ac_cpp is broken
-if test -z "$ac_cpp_err"; then
- _AC_PREPROC_IFELSE([AC_LANG_SOURCE([[@%:@include <ac_nonexistent.h>]])],
- [# cannot detect missing includes at all
-ac_cpp_err=yes],
- [if test "x$ac_cpp_err" = xmaybe; then
- ac_[]_AC_LANG_ABBREV[]_preproc_warn_flag=yes
- else
- ac_[]_AC_LANG_ABBREV[]_preproc_warn_flag=
- fi
- ac_cpp_err=])
-fi])])# _AC_PROG_PREPROC_WORKS
+[# OK, works on sane cases. Now check whether non-existent headers can
+# be detected and how.
+_AC_PREPROC_IFELSE([AC_LANG_SOURCE([[@%:@include <ac_nonexistent.h>]])],
+[# Broken: cannot detect missing includes.
+m4_default([$2], :)],
+[# OK, detects failures. How?
+if test "x$ac_cpp_err" = xmaybe; then
+ ac_[]_AC_LANG_ABBREV[]_preproc_warn_flag=yes
+else
+ ac_[]_AC_LANG_ABBREV[]_preproc_warn_flag=
+fi
+$1])],
+ [# Broken: cannot fails on valid input.
+m4_default([$2], :)])])# _AC_PROG_PREPROC_WORKS_IFELSE
# AC_PROG_CPP
@@ -856,22 +859,17 @@
# Double quotes because CPP needs to be expanded
for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
do
- _AC_PROG_PREPROC_WORKS
- if test -z "$ac_cpp_err"; then
- break
- fi
+ _AC_PROG_PREPROC_WORKS_IFELSE([break])
done
ac_cv_prog_CPP=$CPP
])dnl
CPP=$ac_cv_prog_CPP
else
- _AC_PROG_PREPROC_WORKS
ac_cv_prog_CPP=$CPP
fi
AC_MSG_RESULT([$CPP])
-if test -n "$ac_cpp_err"; then
- AC_MSG_ERROR([C preprocessor "$CPP" fails sanity check])
-fi
+_AC_PROG_PREPROC_WORKS_IFELSE([],
+ [AC_MSG_ERROR([C preprocessor "$CPP" fails sanity check])])
AC_SUBST(CPP)dnl
AC_LANG_POP(C)dnl
])# AC_PROG_CPP
@@ -1071,22 +1069,17 @@
# Double quotes because CXXCPP needs to be expanded
for CXXCPP in "$CXX -E" "/lib/cpp"
do
- _AC_PROG_PREPROC_WORKS()
- if test -z "$ac_cpp_err"; then
- break
- fi
+ _AC_PROG_PREPROC_WORKS_IFELSE([break])
done
ac_cv_prog_CXXCPP=$CXXCPP
])dnl
CXXCPP=$ac_cv_prog_CXXCPP
else
- _AC_PROG_PREPROC_WORKS()
ac_cv_prog_CXXCPP=$CXXCPP
fi
AC_MSG_RESULT([$CXXCPP])
-if test -n "$ac_cpp_err"; then
- AC_MSG_ERROR([C++ preprocessor "$CXXCPP" fails sanity check])
-fi
+_AC_PROG_PREPROC_WORKS_IFELSE([],
+ [AC_MSG_ERROR([C++ preprocessor "$CXXCPP" fails sanity check])])
AC_SUBST(CXXCPP)dnl
AC_LANG_POP(C++)dnl
])# AC_PROG_CXXCPP