Daniel Jacobowitz <drow@xxxxxxxxx> writes: > I need to settle on a solution to use in GCC until an updated > autoconf is available. Thanks. Your change good to me, so I installed it. I documented it a bit differently though. Here's what I installed; this patch also handles an unrelated doc issue with test -L. 2003-09-23 Paul Eggert <eggert@xxxxxxxxxxx> * doc/autoconf.texi (Limitations of Builtins): Document test -h versus test -L issues. 2003-09-23 Daniel Jacobowitz <drow@xxxxxxxxxx> and Paul Eggert <eggert@xxxxxxxxxxx> * lib/autoconf/c.m4 (AC_PROG_CPP_WERROR): New macro. * lib/autoconf/headers.m4 (_AC_CHECK_HEADER_MONGREL): Don't warn about inconsistency if the preprocessor is set to give errors for any warning. * doc/autoconf.texi (C Compiler Characteristics): Document this. Index: doc/autoconf.texi =================================================================== RCS file: /cvsroot/autoconf/autoconf/doc/autoconf.texi,v retrieving revision 1.759 diff -p -u -r1.759 autoconf.texi --- doc/autoconf.texi 12 Sep 2003 07:19:09 -0000 1.759 +++ doc/autoconf.texi 23 Sep 2003 23:02:03 -0000 @@ -5302,6 +5302,17 @@ Some preprocessors don't indicate missin status. For such preprocessors an internal variable is set that causes other macros to check the standard error from the preprocessor and consider the test failed if any warnings have been reported. +For most preprocessors, though, warnings do not cause include-file +tests to fail unless @code{AC_PROG_CPP_WERROR} is also specified. +@end defmac + +@defmac AC_PROG_CPP_WERROR +@acindex{PROG_CPP_WERROR} +@ovindex CPP +This acts like @code{AC_PROG_CPP}, except it treats warnings from the +preprocessor as errors even if the preprocessor exit status indicates +success. This is useful for avoiding headers that generate mandatory +warnings, such as deprecation notices. @end defmac @@ -10209,7 +10220,10 @@ the host system. But occasionally you m whether some arbitrary file exists. To do so, use @samp{test -f} or @samp{test -r}. Do not use @samp{test -x}, because 4.3@acronym{BSD} does not have it. Do not use @samp{test -e} either, because Solaris 2.5 does not -have it. +have it. To test for symbolic links on systems that have them, use +@samp{test -h} rather than @samp{test -L}; either form conforms to +@acronym{POSIX} 1003.1-2001, but older shells like Solaris 8 +@code{/bin/sh} support only @option{-h}. @item @command{test} (strings) @c --------------------------- Index: lib/autoconf/c.m4 =================================================================== RCS file: /cvsroot/autoconf/autoconf/lib/autoconf/c.m4,v retrieving revision 1.182 diff -p -u -r1.182 c.m4 --- lib/autoconf/c.m4 3 Sep 2003 00:35:52 -0000 1.182 +++ lib/autoconf/c.m4 23 Sep 2003 23:02:04 -0000 @@ -419,6 +419,12 @@ AC_SUBST(CPP)dnl AC_LANG_POP(C)dnl ])# AC_PROG_CPP +# AC_PROG_CPP_WERROR +# ------------------ +# Treat warnings from the preprocessor as errors. +AC_DEFUN([AC_PROG_CPP_WERROR], +[AC_REQUIRE([AC_PROG_CPP])dnl +ac_c_preproc_warn_flag=yes])# AC_PROG_CPP_WERROR # AC_LANG_COMPILER(C) # ------------------- Index: lib/autoconf/headers.m4 =================================================================== RCS file: /cvsroot/autoconf/autoconf/lib/autoconf/headers.m4,v retrieving revision 1.34 diff -p -u -r1.34 headers.m4 --- lib/autoconf/headers.m4 22 May 2003 15:17:06 -0000 1.34 +++ lib/autoconf/headers.m4 23 Sep 2003 23:02:05 -0000 @@ -121,13 +121,13 @@ AC_PREPROC_IFELSE([AC_LANG_SOURCE([@%:@i AC_MSG_RESULT([$ac_header_preproc]) # So? What about this header? -case $ac_header_compiler:$ac_header_preproc in - yes:no ) +case $ac_header_compiler:$ac_header_preproc:$ac_[]_AC_LANG_ABBREV[]_preproc_warn_flag in + yes:no: ) AC_MSG_WARN([$1: accepted by the compiler, rejected by the preprocessor!]) AC_MSG_WARN([$1: proceeding with the compiler's result]) ac_header_preproc=yes ;; - no:yes ) + no:yes:* ) AC_MSG_WARN([$1: present but cannot be compiled]) AC_MSG_WARN([$1: check for missing prerequisite headers?]) AC_MSG_WARN([$1: see the Autoconf documentation])