PATCH TRUNK: [gcc/configure.ac] Generate GCCPLUGIN_VERSION_* macros

Basile Starynkevitch basile@starynkevitch.net
Wed Jul 6 13:12:00 GMT 2011


Hello All,

The fie plugin-version.h is now generated by gcc/configure.ac. It contains
version information (about the GCC supposed to load the plugin compiled with
it) as constant strings.

But I think it will also help some plugin developers if that file (which is
packaged in gcc-4.6-plugin-dev on Debian/Sid, i.e. as the plugin development
package) contained preprocessor macros defining the same versions.

So this patch generates constant macros like
#define GCCPLUGIN_VERSION_STRING  "4.7.0"
#define GCCPLUGIN_VERSION_MAJOR   4
#define GCCPLUGIN_VERSION_MINOR   7
#define GCCPLUGIN_VERSION_MICRO   0
#define GCCPLUGIN_VERSION  (GCCPLUGIN_VERSION_MAJOR*1000 + GCCPLUGIN_VERSION_MINOR)
#define GCCPLUGIN_DEVPHASE  "experimental"
#define GCCPLUGIN_REVISION  "[trunk revision 175910]"

in the plugin-version.h file.


I belive it can help to make plugin code more robust. A serious plugin developper could then add in his plugin code something like

#if GCCPLUGIN_VERSION != 4007
#error this plugin can be built only for GCC 4.7
#endif

and with such a feature the plugin won't even compile if, for one reason or
another, the wrong gcc has been considered i.e. passed with 
   -I$(gcc -print-file-name=plugin)

This brings some help to the careful plugin coder, and don't harm GCC itself.

For GCC trunk or branches we have the BUILDING_GCC_VERSION macro, but it
does not appear in the headers insdtalled by gcc-4.6-plugin-dev package.
Plugins can currently only check for version compatibility at plugin dlopen
time, not at plugin build time!

I am attaching the diff file gccplugin_rev_configure_r175910.diff against
trunk 175910

### gcc/ChangeLog entry ####

2011-07-06  Basile Starynkevitch  <basile@starynkevitch.net>

	* configure.ac (plugin-version.h): Generate
	GCCPLUGIN_VERSION_STRING, GCCPLUGIN_VERSION_MAJOR,
	GCCPLUGIN_VERSION_MINOR, GCCPLUGIN_VERSION_MICRO,
	GCCPLUGIN_VERSION_NUMBER, GCCPLUGIN_DEVPHASE, GCCPLUGIN_REVISION
	macros.

	* configure: Regenerate.

#############################

Ok for trunk, with what changes?

Regards.

PS. While this would help the MELT plugin, I am very sure it could help
other plugins coders!

 -- 

Basile STARYNKEVITCH http://starynkevitch.net/Basile/ 
email: basile<at>starynkevitch<dot>net mobile: +33 6 8501 2359 
8, rue de la Faiencerie, 92340 Bourg La Reine,
France *** opinions {are only mines, sont seulement les miennes} ***
-------------- next part --------------
A non-text attachment was scrubbed...
Name: gccplugin_rev_configure_r175910.diff
Type: text/x-diff
Size: 2067 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20110706/64923d96/attachment.bin>


More information about the Gcc-patches mailing list