configure.ac (plugin-version.h): Generate GCCPLUGIN_VERSION_MAJOR...
authorBasile Starynkevitch <basile@starynkevitch.net>
Wed, 6 Jul 2011 16:37:09 +0000 (16:37 +0000)
committerBasile Starynkevitch <bstarynk@gcc.gnu.org>
Wed, 6 Jul 2011 16:37:09 +0000 (16:37 +0000)
2011-07-06  Basile Starynkevitch  <basile@starynkevitch.net>

* configure.ac (plugin-version.h): Generate
GCCPLUGIN_VERSION_MAJOR, GCCPLUGIN_VERSION_MINOR,
GCCPLUGIN_VERSION_PATCHLEVEL, GCCPLUGIN_VERSION constant integer
macros.

* configure: Regenerate.

* doc/plugins.texi (Building GCC plugins): Mention
GCCPLUGIN_VERSION ... constant macros in plugin-version.h.

From-SVN: r175923

gcc/ChangeLog
gcc/configure
gcc/configure.ac
gcc/doc/plugins.texi

index 3156a9be19d5af014dd3376965e337f111ed5d2c..38a8bcd49361c2be164dfb949ec5fbe26b22640a 100644 (file)
@@ -1,3 +1,15 @@
+2011-07-06  Basile Starynkevitch  <basile@starynkevitch.net>
+
+       * configure.ac (plugin-version.h): Generate
+       GCCPLUGIN_VERSION_MAJOR, GCCPLUGIN_VERSION_MINOR,
+       GCCPLUGIN_VERSION_PATCHLEVEL, GCCPLUGIN_VERSION constant integer
+       macros.
+
+       * configure: Regenerate.
+
+       * doc/plugins.texi (Building GCC plugins): Mention
+       GCCPLUGIN_VERSION ... constant macros in plugin-version.h.
+
 2011-07-06  Bernd Schmidt  <bernds@codesourcery.com>
 
        * machmode.h (TRULY_NOOP_TRUNCATION_MODES_P): New macro.
index 10c24cc94c9e387933ac92a78804855766beaafa..68830c57dfbaee652bf3fdca7313bd81aa75b8db 100755 (executable)
 cat > plugin-version.h <<EOF
 #include "configargs.h"
 
+#define GCCPLUGIN_VERSION_MAJOR   `echo $gcc_BASEVER | sed -e 's/^\([0-9]*\).*$/\1/'`
+#define GCCPLUGIN_VERSION_MINOR   `echo $gcc_BASEVER | sed -e 's/^[0-9]*\.\([0-9]*\).*$/\1/'`
+#define GCCPLUGIN_VERSION_PATCHLEVEL   `echo $gcc_BASEVER | sed -e 's/^[0-9]*\.[0-9]*\.\([0-9]*\)$/\1/'`
+#define GCCPLUGIN_VERSION  (GCCPLUGIN_VERSION_MAJOR*1000 + GCCPLUGIN_VERSION_MINOR)
+
 static char basever[] = "$gcc_BASEVER";
 static char datestamp[] = "$gcc_DATESTAMP";
 static char devphase[] = "$gcc_DEVPHASE";
@@ -17623,7 +17628,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<_LT_EOF
-#line 17626 "configure"
+#line 17631 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -17729,7 +17734,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<_LT_EOF
-#line 17732 "configure"
+#line 17737 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
index 5f3641b319853a802b0b0cf3b2ac79869021f2d8..02c6089e9e6fb12365658e277c81b5761bb3767c 100644 (file)
@@ -1511,6 +1511,11 @@ fi
 cat > plugin-version.h <<EOF
 #include "configargs.h"
 
+#define GCCPLUGIN_VERSION_MAJOR   `echo $gcc_BASEVER | sed -e 's/^\([0-9]*\).*$/\1/'`
+#define GCCPLUGIN_VERSION_MINOR   `echo $gcc_BASEVER | sed -e 's/^[0-9]*\.\([0-9]*\).*$/\1/'`
+#define GCCPLUGIN_VERSION_PATCHLEVEL   `echo $gcc_BASEVER | sed -e 's/^[0-9]*\.[0-9]*\.\([0-9]*\)$/\1/'`
+#define GCCPLUGIN_VERSION  (GCCPLUGIN_VERSION_MAJOR*1000 + GCCPLUGIN_VERSION_MINOR)
+
 static char basever[] = "$gcc_BASEVER";
 static char datestamp[] = "$gcc_DATESTAMP";
 static char devphase[] = "$gcc_DEVPHASE";
index 2ab2b62021d5fc0100f75636750390b5aacacd7f..1ff14474ccc62791aa61dad443df3dbf2f33b05c 100644 (file)
@@ -417,6 +417,17 @@ invoking @command{gcc -print-file-name=plugin} (replace if needed
 Inside plugins, this @code{plugin} directory name can be queried by
 calling @code{default_plugin_dir_name ()}.
 
+Plugins may know, when they are compiled, the GCC version for which
+@file{plugin-version.h} is provided.  The constant macros
+@code{GCCPLUGIN_VERSION_MAJOR}, @code{GCCPLUGIN_VERSION_MINOR},
+@code{GCCPLUGIN_VERSION_PATCHLEVEL}, @code{GCCPLUGIN_VERSION} are
+integer numbers, so a plugin could ensure it is built for GCC 4.7 with 
+@smallexample
+#if GCCPLUGIN_VERSION != 4007
+#error this GCC plugin is for GCC 4.7
+#endif
+@end smallexample
+
 The following GNU Makefile excerpt shows how to build a simple plugin:
 
 @smallexample