Skip to content

Commit

Permalink
gcc-plugins: Export symbols needed by gcc
Browse files Browse the repository at this point in the history
This explicitly exports symbols that gcc expects from plugins.

Based on code from Emese Revfy.

Signed-off-by: Kees Cook <[email protected]>
  • Loading branch information
kees committed Oct 31, 2016
1 parent 07d9a38 commit da7389a
Show file tree
Hide file tree
Showing 4 changed files with 8 additions and 7 deletions.
4 changes: 2 additions & 2 deletions scripts/gcc-plugins/cyc_complexity_plugin.c
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@

#include "gcc-common.h"

int plugin_is_GPL_compatible;
__visible int plugin_is_GPL_compatible;

static struct plugin_info cyc_complexity_plugin_info = {
.version = "20160225",
Expand Down Expand Up @@ -49,7 +49,7 @@ static unsigned int cyc_complexity_execute(void)

#include "gcc-generate-gimple-pass.h"

int plugin_init(struct plugin_name_args *plugin_info, struct plugin_gcc_version *version)
__visible int plugin_init(struct plugin_name_args *plugin_info, struct plugin_gcc_version *version)
{
const char * const plugin_name = plugin_info->base_name;
struct register_pass_info cyc_complexity_pass_info;
Expand Down
1 change: 1 addition & 0 deletions scripts/gcc-plugins/gcc-common.h
Original file line number Diff line number Diff line change
Expand Up @@ -130,6 +130,7 @@ extern void dump_gimple_stmt(pretty_printer *, gimple, int, int);
#endif

#define __unused __attribute__((__unused__))
#define __visible __attribute__((visibility("default")))

#define DECL_NAME_POINTER(node) IDENTIFIER_POINTER(DECL_NAME(node))
#define DECL_NAME_LENGTH(node) IDENTIFIER_LENGTH(DECL_NAME(node))
Expand Down
6 changes: 3 additions & 3 deletions scripts/gcc-plugins/latent_entropy_plugin.c
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@

#include "gcc-common.h"

int plugin_is_GPL_compatible;
__visible int plugin_is_GPL_compatible;

static GTY(()) tree latent_entropy_decl;

Expand Down Expand Up @@ -584,8 +584,8 @@ static void latent_entropy_start_unit(void *gcc_data __unused,
| TODO_update_ssa
#include "gcc-generate-gimple-pass.h"

int plugin_init(struct plugin_name_args *plugin_info,
struct plugin_gcc_version *version)
__visible int plugin_init(struct plugin_name_args *plugin_info,
struct plugin_gcc_version *version)
{
bool enabled = true;
const char * const plugin_name = plugin_info->base_name;
Expand Down
4 changes: 2 additions & 2 deletions scripts/gcc-plugins/sancov_plugin.c
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@

#include "gcc-common.h"

int plugin_is_GPL_compatible;
__visible int plugin_is_GPL_compatible;

tree sancov_fndecl;

Expand Down Expand Up @@ -86,7 +86,7 @@ static void sancov_start_unit(void __unused *gcc_data, void __unused *user_data)
#endif
}

int plugin_init(struct plugin_name_args *plugin_info, struct plugin_gcc_version *version)
__visible int plugin_init(struct plugin_name_args *plugin_info, struct plugin_gcc_version *version)
{
int i;
struct register_pass_info sancov_plugin_pass_info;
Expand Down

0 comments on commit da7389a

Please sign in to comment.