On 13 June 2010 03:46, Jiří Techet <[email protected]> wrote: > 2010/6/12 Enrico Tröger <[email protected]>: >> On Thu, 10 Jun 2010 13:33:44 +0200, Jiří wrote: >> >>> On Thu, Jun 10, 2010 at 13:05, Nick Treleaven >>> <[email protected]> wrote: >>> > On Wed, 9 Jun 2010 21:40:58 +0200 >>> > Jiří Techet <[email protected]> wrote: >>> > >>> >> Signed-off-by: Jiří Techet <[email protected]> >>> >> --- >>> >> src/plugindata.h | 2 ++ >>> > >>> >> + gint plugin_version_check(gint abi_ver);\ >>> >> gint plugin_version_check(gint abi_ver) \ >>> >> { \ >>> > >>> > Why is this necessary? >>> > >>> >>> If you don't compile the plugins with -Wmissing-prototypes then you >>> don't get any warnings if you use a function that hasn't been >>> declared (imagine you make a typo in a call of an API function or any >>> of your internal functions). The plugin compiles just fine, but then >>> it doesn't get loaded by geany on runtime and you have to start >>> searching for what symbol is missing (using LD_DEBUG). >>> >>> -Wmissing-prototypes requires that for every non-static function there >>> is a previous declaration before it is defined/used. This is normally >>> satisfied because these are in the header files - this macro is just >>> an exceptional case. >>> >>> In general, I would recommend that geany uses a slightly more strict >>> set of warning options. I find the options used by gnome-common as a >>> reasonable set: >>> >>> -Wall -Wmissing-prototypes -Wnested-externs -Wpointer-arith >>> -Wno-sign-compare >>> >>> You might consider using them for the whole geany. >> >> Just as an additional note: >> compiler flags should always be used by individual developers/users, >> not by the used build system directly. > > Why? If you want to ensure that the sources satisfy some standards, > then it's alright. You use -Wall after all. > >> -Wmissing-prototypes and friends are gcc specific and would break >> building with other compilers. >> >> I guess you didn't mean to add them to the build system directly :). > > You can use gnome-compiler-flags.m4 from the gnome-common package that > checks whether you use gcc for compilation and only in this case the > above flags are added (it adds a configure parameter where the set of > flags can be configured). > > Regards, > > Jiri
I think its worth putting the prototypes in the header as Nick suggests even without this being a standard build flag. Then if the prototype even did have to change or, heaven forbid, the plugin writer makes a mistake, the compiler has a chance of warning you. Then you only need -Wmissing-prototypes occasionally to check for "dangling functions". Cheers Lex > _______________________________________________ > Geany-devel mailing list > [email protected] > http://lists.uvena.de/cgi-bin/mailman/listinfo/geany-devel > _______________________________________________ Geany-devel mailing list [email protected] http://lists.uvena.de/cgi-bin/mailman/listinfo/geany-devel
