]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
Makefile.in (bversion.h, s-bversion): New targets.
authorBen Elliston <bje@au.ibm.com>
Fri, 22 May 2009 06:08:04 +0000 (06:08 +0000)
committerBen Elliston <bje@gcc.gnu.org>
Fri, 22 May 2009 06:08:04 +0000 (16:08 +1000)
* 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
gcc/Makefile.in
gcc/toplev.h

index c8505ccaaea0e0c61e93e9da9f38d3ec9ff472e2..2dbe9ef40f0ea083a3fc99513095e2f9c73b8ee5 100644 (file)
@@ -1,3 +1,12 @@
+2009-05-22  Ben Elliston  <bje@au.ibm.com>
+
+       * 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  <bje@au.ibm.com>
 
        * c-format.c (handle_format_attribute): Fix comment typo.
index a09b5ff9ad0a9af855f44a16f1e832dbecb8cd3a..63bf744c56c697bec45758b817a495a283339491 100644 (file)
@@ -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 \
index 08a89eab034d2c6bdd6339c4ecc4217030faac60..e62aa727606f65d64c6d0604ec47c84c899757a0 100644 (file)
@@ -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)