Commit 2d7f5f9b by Joern Rennecke

re PR testsuite/42843 (--enable-build-with-cxx plugin tests fail)

gcc:
	PR testsuite/42843
	* gcc-plugin.h (int plugin_is_GPL_compatible): Declare as extern "C".
	* doc/plugins.texi (Plugin license check): Update information
	on type of plugin_is_GPL_compatible.
	* Makefile.in (PLUGINCC): Define as $(COMPILER).
	(PLUGINCFLAGS): Define as $(COMPILER_FLAGS).
gcc/testsuite:
	PR testsuite/42843
	* gcc.dg/plugin/selfassign.c (pass_warn_self_assign): Use enumerator
	TV_NONE to initialize tv_id field.
	* g++.dg/plugin/selfassign.c (pass_warn_self_assign): Likewise.
	* gcc.dg/plugin/one_time_plugin.c (one_pass): Likewise.
	* g++.dg/plugin/dumb_plugin.c (pass_dumb_plugin_example): Likewise.
	Include toplev.h .
	* gcc.dg/plugin/finish_unit_plugin.c: Include cgraph.h.
	* g++.dg/plugin/attribute_plugin.c: Include toplev.h and plugin.h .
	* g++.dg/plugin/pragma_plugin.c: Include toplev.h .

From-SVN: r160461
parent ff5dfc48
2010-06-09 Joern Rennecke <amylaar@spamcop.net>
PR testsuite/42843
* gcc-plugin.h (int plugin_is_GPL_compatible): Declare as extern "C".
* doc/plugins.texi (Plugin license check): Update information
on type of plugin_is_GPL_compatible.
* Makefile.in (PLUGINCC): Define as $(COMPILER).
(PLUGINCFLAGS): Define as $(COMPILER_FLAGS).
2010-06-09 Bernd Schmidt <bernds@codesourcery.com> 2010-06-09 Bernd Schmidt <bernds@codesourcery.com>
* config/arm/arm.c (thumb2_reorg): New function. * config/arm/arm.c (thumb2_reorg): New function.
...@@ -13,7 +22,7 @@ ...@@ -13,7 +22,7 @@
2010-06-09 Joern Rennecke <joern.rennecke@embecosm.com> 2010-06-09 Joern Rennecke <joern.rennecke@embecosm.com>
PR plugins/44459: PR plugins/44459
* gcc-plugin.h: Encapsulate all declarations in extern "C". * gcc-plugin.h: Encapsulate all declarations in extern "C".
2010-06-08 Jan Hubicka <jh@suse.cz> 2010-06-08 Jan Hubicka <jh@suse.cz>
......
...@@ -331,10 +331,10 @@ LTO_BINARY_READER = @LTO_BINARY_READER@ ...@@ -331,10 +331,10 @@ LTO_BINARY_READER = @LTO_BINARY_READER@
LTO_USE_LIBELF = @LTO_USE_LIBELF@ LTO_USE_LIBELF = @LTO_USE_LIBELF@
# Compiler needed for plugin support # Compiler needed for plugin support
PLUGINCC = @CC@ PLUGINCC = $(COMPILER)
# Flags needed for plugin support # Flags needed for plugin support
PLUGINCFLAGS = @CFLAGS@ PLUGINCFLAGS = $(COMPILER_FLAGS)
# Libs and linker options needed for plugin support # Libs and linker options needed for plugin support
PLUGINLIBS = @pluginlibs@ PLUGINLIBS = @pluginlibs@
......
...@@ -50,8 +50,10 @@ fatal error: plugin <name> is not licensed under a GPL-compatible license ...@@ -50,8 +50,10 @@ fatal error: plugin <name> is not licensed under a GPL-compatible license
compilation terminated compilation terminated
@end smallexample @end smallexample
The type of the symbol is irrelevant. The compiler merely asserts that The declared type of the symbol should be int, to match a forward declaration
it exists in the global scope. Something like this is enough: in @file{gcc-plugin.h} that suppresses C++ mangling. It does not need to be in
any allocated section, though. The compiler merely asserts that
the symbol exists in the global scope. Something like this is enough:
@smallexample @smallexample
int plugin_is_GPL_compatible; int plugin_is_GPL_compatible;
......
...@@ -151,4 +151,15 @@ extern const char* default_plugin_dir_name (void); ...@@ -151,4 +151,15 @@ extern const char* default_plugin_dir_name (void);
} }
#endif #endif
/* In case the C++ compiler does name mangling for globals, declare
plugin_is_GPL_compatible extern "C" so that a later definition
in a plugin file will have this linkage. */
#ifdef __cplusplus
extern "C" {
#endif
extern int plugin_is_GPL_compatible;
#ifdef __cplusplus
}
#endif
#endif /* GCC_PLUGIN_H */ #endif /* GCC_PLUGIN_H */
2010-06-09 Joern Rennecke <amylaar@spamcop.net>
PR testsuite/42843
* gcc.dg/plugin/selfassign.c (pass_warn_self_assign): Use enumerator
TV_NONE to initialize tv_id field.
* g++.dg/plugin/selfassign.c (pass_warn_self_assign): Likewise.
* gcc.dg/plugin/one_time_plugin.c (one_pass): Likewise.
* g++.dg/plugin/dumb_plugin.c (pass_dumb_plugin_example): Likewise.
Include toplev.h .
* gcc.dg/plugin/finish_unit_plugin.c: Include cgraph.h.
* g++.dg/plugin/attribute_plugin.c: Include toplev.h and plugin.h .
* g++.dg/plugin/pragma_plugin.c: Include toplev.h .
2010-06-08 Sandra Loosemore <sandra@codesourcery.com> 2010-06-08 Sandra Loosemore <sandra@codesourcery.com>
PR tree-optimization/39874 PR tree-optimization/39874
......
...@@ -8,6 +8,8 @@ ...@@ -8,6 +8,8 @@
#include "tree.h" #include "tree.h"
#include "tree-pass.h" #include "tree-pass.h"
#include "intl.h" #include "intl.h"
#include "toplev.h"
#include "plugin.h"
int plugin_is_GPL_compatible; int plugin_is_GPL_compatible;
......
...@@ -9,6 +9,7 @@ ...@@ -9,6 +9,7 @@
#include "tree.h" #include "tree.h"
#include "tree-pass.h" #include "tree-pass.h"
#include "intl.h" #include "intl.h"
#include "toplev.h"
int plugin_is_GPL_compatible; int plugin_is_GPL_compatible;
...@@ -65,7 +66,7 @@ static struct gimple_opt_pass pass_dumb_plugin_example = ...@@ -65,7 +66,7 @@ static struct gimple_opt_pass pass_dumb_plugin_example =
NULL, /* sub */ NULL, /* sub */
NULL, /* next */ NULL, /* next */
0, /* static_pass_number */ 0, /* static_pass_number */
0, /* tv_id */ TV_NONE, /* tv_id */
PROP_cfg, /* properties_required */ PROP_cfg, /* properties_required */
0, /* properties_provided */ 0, /* properties_provided */
0, /* properties_destroyed */ 0, /* properties_destroyed */
......
...@@ -13,6 +13,7 @@ ...@@ -13,6 +13,7 @@
#include "cpplib.h" #include "cpplib.h"
#include "tree-pass.h" #include "tree-pass.h"
#include "intl.h" #include "intl.h"
#include "toplev.h"
int plugin_is_GPL_compatible; int plugin_is_GPL_compatible;
......
...@@ -275,7 +275,7 @@ static struct gimple_opt_pass pass_warn_self_assign = ...@@ -275,7 +275,7 @@ static struct gimple_opt_pass pass_warn_self_assign =
NULL, /* sub */ NULL, /* sub */
NULL, /* next */ NULL, /* next */
0, /* static_pass_number */ 0, /* static_pass_number */
0, /* tv_id */ TV_NONE, /* tv_id */
PROP_ssa, /* properties_required */ PROP_ssa, /* properties_required */
0, /* properties_provided */ 0, /* properties_provided */
0, /* properties_destroyed */ 0, /* properties_destroyed */
......
...@@ -12,6 +12,7 @@ ...@@ -12,6 +12,7 @@
#include "tree.h" #include "tree.h"
#include "tree-pass.h" #include "tree-pass.h"
#include "intl.h" #include "intl.h"
#include "cgraph.h"
int plugin_is_GPL_compatible; int plugin_is_GPL_compatible;
......
...@@ -37,7 +37,7 @@ struct gimple_opt_pass one_pass = ...@@ -37,7 +37,7 @@ struct gimple_opt_pass one_pass =
NULL, /* sub */ NULL, /* sub */
NULL, /* next */ NULL, /* next */
0, /* static_pass_number */ 0, /* static_pass_number */
0, /* tv_id */ TV_NONE, /* tv_id */
PROP_gimple_any, /* properties_required */ PROP_gimple_any, /* properties_required */
0, /* properties_provided */ 0, /* properties_provided */
0, /* properties_destroyed */ 0, /* properties_destroyed */
......
...@@ -275,7 +275,7 @@ static struct gimple_opt_pass pass_warn_self_assign = ...@@ -275,7 +275,7 @@ static struct gimple_opt_pass pass_warn_self_assign =
NULL, /* sub */ NULL, /* sub */
NULL, /* next */ NULL, /* next */
0, /* static_pass_number */ 0, /* static_pass_number */
0, /* tv_id */ TV_NONE, /* tv_id */
PROP_ssa, /* properties_required */ PROP_ssa, /* properties_required */
0, /* properties_provided */ 0, /* properties_provided */
0, /* properties_destroyed */ 0, /* properties_destroyed */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment