From 134ef63846ab66e47efb86eedae8c506d7baf93e Mon Sep 17 00:00:00 2001 From: Ben Elliston Date: Fri, 22 May 2009 06:08:04 +0000 Subject: [PATCH] Makefile.in (bversion.h, s-bversion): New targets. * Makefile.in (bversion.h, s-bversion): New targets. (TOPLEV_H): Add bversion.h. * toplev.h: Include "bversion.h". (ATTRIBUTE_GCC_DIAG): When building with checking disabled, use the __format__ attribute only if compiling with the same version of GCC as the sources (the "build version"). From-SVN: r147792 --- gcc/ChangeLog | 9 +++++++++ gcc/Makefile.in | 10 +++++++++- gcc/toplev.h | 3 ++- 3 files changed, 20 insertions(+), 2 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index c8505ccaaea0..2dbe9ef40f0e 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,12 @@ +2009-05-22 Ben Elliston + + * Makefile.in (bversion.h, s-bversion): New targets. + (TOPLEV_H): Add bversion.h. + * toplev.h: Include "bversion.h". + (ATTRIBUTE_GCC_DIAG): When building with checking disabled, use + the __format__ attribute only if compiling with the same version + of GCC as the sources (the "build version"). + 2009-05-22 Ben Elliston * c-format.c (handle_format_attribute): Fix comment typo. diff --git a/gcc/Makefile.in b/gcc/Makefile.in index a09b5ff9ad0a..63bf744c56c6 100644 --- a/gcc/Makefile.in +++ b/gcc/Makefile.in @@ -792,7 +792,7 @@ endif # Shorthand variables for dependency lists. EXCEPT_H = except.h sbitmap.h vecprim.h -TOPLEV_H = toplev.h input.h +TOPLEV_H = toplev.h input.h bversion.h TARGET_H = $(TM_H) target.h insn-modes.h MACHMODE_H = machmode.h mode-classes.def insn-modes.h HOOKS_H = hooks.h $(MACHMODE_H) @@ -2455,6 +2455,14 @@ targhooks.o : targhooks.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TREE_H) \ $(MACHMODE_H) $(TARGET_DEF_H) $(TARGET_H) $(GGC_H) gt-targhooks.h \ $(OPTABS_H) $(RECOG_H) reload.h +bversion.h: s-bversion; @true +s-bversion: BASE-VER + echo "#define BUILDING_GCC_MAJOR `echo $(BASEVER_c) | sed -e 's/^\([0-9]*\).*$$/\1/'`" > bversion.h + echo "#define BUILDING_GCC_MINOR `echo $(BASEVER_c) | sed -e 's/^[0-9]*\.\([0-9]*\).*$$/\1/'`" >> bversion.h + echo "#define BUILDING_GCC_PATCHLEVEL `echo $(BASEVER_c) | sed -e 's/^[0-9]*\.[0-9]*\.\([0-9]*\)$$/\1/'`" >> bversion.h + echo "#define BUILDING_GCC_VERSION (BUILDING_GCC_MAJOR * 1000 + BUILDING_GCC_MINOR)" >> bversion.h + $(STAMP) s-bversion + toplev.o : toplev.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) \ version.h $(RTL_H) $(FUNCTION_H) $(FLAGS_H) xcoffout.h $(INPUT_H) \ $(INSN_ATTR_H) output.h $(DIAGNOSTIC_H) debug.h insn-config.h intl.h \ diff --git a/gcc/toplev.h b/gcc/toplev.h index 08a89eab034d..e62aa727606f 100644 --- a/gcc/toplev.h +++ b/gcc/toplev.h @@ -21,6 +21,7 @@ along with GCC; see the file COPYING3. If not see #ifndef GCC_TOPLEV_H #define GCC_TOPLEV_H #include "input.h" +#include "bversion.h" /* If non-NULL, return one past-the-end of the matching SUBPART of the WHOLE string. */ @@ -49,7 +50,7 @@ extern void _fatal_insn (const char *, const_rtx, const char *, int, const char /* None of these functions are suitable for ATTRIBUTE_PRINTF, because each language front end can extend them with its own set of format specifiers. We must use custom format checks. */ -#if GCC_VERSION >= 4001 +#if (ENABLE_CHECKING && GCC_VERSION >= 4001) || GCC_VERSION == BUILDING_GCC_VERSION #define ATTRIBUTE_GCC_DIAG(m, n) __attribute__ ((__format__ (GCC_DIAG_STYLE, m, n))) ATTRIBUTE_NONNULL(m) #else #define ATTRIBUTE_GCC_DIAG(m, n) ATTRIBUTE_NONNULL(m)