+2009-06-17 Eric Blake <ebb9@byu.net>
+
+ Fix AC_CHECK_HEADER infloop for gcc.
+ * lib/autoconf/headers.m4 (_AC_CHECK_HEADER_NEW)
+ (_AC_CHECK_HEADER_OLD): Give up on AU_DEFUN, and manually warn
+ about obsoletion, to avoid infinite loop in gcc.
+ Reported by Ralf Wildenhues.
+
2009-06-15 Eric Blake <ebb9@byu.net>
Add m4_copy_force, m4_rename_force.
AS_VAR_IF([ac_Header], [yes], [$2], [$3])
AS_VAR_POPDEF([ac_Header])])# _AC_CHECK_HEADER_COMPILE
-# _AC_CHECK_HEADER_NEW(HEADER-FILE, [ACTION-IF-FOUND],
-# [ACTION-IF-NOT-FOUND])
-# ----------------------------------------------------
-# Some packages used this macro, even though it is undocumented.
-AU_DEFUN([_AC_CHECK_HEADER_NEW],
-[AC_CHECK_HEADER([$1], [$2], [$3], [AC_INCLUDES_DEFAULT])])
-
-
# _AC_CHECK_HEADER_PREPROC_BODY
# -----------------------------
# Shell function body for _AC_CHECK_HEADER_PREPROC.
# _AC_CHECK_HEADER_OLD(HEADER-FILE, [ACTION-IF-FOUND],
# [ACTION-IF-NOT-FOUND])
+# _AC_CHECK_HEADER_NEW(HEADER-FILE, [ACTION-IF-FOUND],
+# [ACTION-IF-NOT-FOUND])
# ----------------------------------------------------
-# Some packages used this macro, even though it is undocumented.
-AU_DEFUN([_AC_CHECK_HEADER_OLD],
-[AC_CHECK_HEADER([$1], [$2], [$3], [-])])
+# Some packages used these undocumented macros. Even worse, gcc
+# redefined AC_CHECK_HEADER in terms of _AC_CHECK_HEADER_OLD, so we
+# can't do the simpler:
+# AU_DEFUN([_AC_CHECK_HEADER_OLD],
+# [AC_CHECK_HEADER([$1], [$2], [$3], [-])])
+AC_DEFUN([_AC_CHECK_HEADER_OLD],
+[AC_DIAGNOSE([obsolete], [The macro `$0' is obsolete.
+You should use AC_CHECK_HEADER with a fourth argument.])]dnl
+[_AC_CHECK_HEADER_PREPROC($@)])
+
+AC_DEFUN([_AC_CHECK_HEADER_NEW],
+[AC_DIAGNOSE([obsolete], [The macro `$0' is obsolete.
+You should use AC_CHECK_HEADER with a fourth argument.])]dnl
+[_AC_CHECK_HEADER_COMPILE($@)])
# _AH_CHECK_HEADER(HEADER-FILE)