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