Re: Bugs encountered updating GCC

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Sep 15, 2003 at 10:42:16PM -0400, Daniel Jacobowitz wrote:
> On Fri, Sep 12, 2003 at 03:08:19PM -0700, Paul Eggert wrote:
> > Daniel Jacobowitz <drow@xxxxxxxxx> writes:
> > 
> > > I think the easiest way for me to do this is simply to locally reset
> > > the warnings-are-errors flag for AC_PREPROC_IFELSE.  I don't suppose
> > > you're interested in making this an exported feature?
> > 
> > If by "exported feature" you mean "documented for Autoconf" then I'm
> > interested in it.  It's a bit esoteric, but if GCC ran into the
> > problem, other people might too.
> 
> Well, if I were going to document this feature, I'd do it like this.  I
> didn't bother to add the C++ version since I expect that to be less
> useful.
> 
> What do you think?

Any comments on this?  I need to settle on a solution to use in GCC
until an updated autoconf is available.

> 2003-09-15  Daniel Jacobowitz  <drow@xxxxxxxxxx>
> 
> 	* doc/autoconf.texi (C Compiler Characteristics): Document
> 	AC_PROG_CPP_WERROR.
> 	* lib/autoconf/c.m4 (AC_PROG_CPP_WERROR): New macro.
> 	(_AC_CHECK_HEADER_MONGREL): Don't warn about inconsistency if
> 	the preprocessor is set to give errors for any warning.
> 
> Index: doc/autoconf.texi
> ===================================================================
> RCS file: /cvsroot/autoconf/autoconf/doc/autoconf.texi,v
> retrieving revision 1.757
> diff -u -p -r1.757 autoconf.texi
> --- doc/autoconf.texi	2 Sep 2003 19:13:59 -0000	1.757
> +++ doc/autoconf.texi	16 Sep 2003 02:36:34 -0000
> @@ -5297,7 +5297,17 @@ extension.
>  Some preprocessors don't indicate missing include files by the error
>  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.
> +consider the test failed if any warnings have been reported.  Otherwise
> +warnings are permitted unless @code{AC_PROG_CPP_WERROR} is specified.
> +@end defmac
> +
> +@defmac AC_PROG_CPP_WERROR
> +@acindex{PROG_CPP_WERROR}
> +@ovindex CPP
> +If this macro is used, warnings from the preprocessor will be treated
> +as errors even if the preprocessor reports errors correctly.  This is useful
> +for avoiding headers which generate mandatory warnings, such as deprecation
> +notices.
>  @end defmac
>  
>  
> Index: lib/autoconf/c.m4
> ===================================================================
> RCS file: /cvsroot/autoconf/autoconf/lib/autoconf/c.m4,v
> retrieving revision 1.182
> diff -u -p -r1.182 c.m4
> --- lib/autoconf/c.m4	3 Sep 2003 00:35:52 -0000	1.182
> +++ lib/autoconf/c.m4	16 Sep 2003 02:36:34 -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 -u -p -r1.34 headers.m4
> --- lib/autoconf/headers.m4	22 May 2003 15:17:06 -0000	1.34
> +++ lib/autoconf/headers.m4	16 Sep 2003 02:36:35 -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])
> 
> 
> 

-- 
Daniel Jacobowitz
MontaVista Software                         Debian GNU/Linux Developer



[Index of Archives]     [GCC Help]     [Kernel Discussion]     [RPM Discussion]     [Red Hat Development]     [Yosemite News]     [Linux USB]     [Samba]

  Powered by Linux