This makes every plugin load faster. Each plugin is also 3-4kb smaller. v2: Fix one goof v3: Change to attributes.
- Lauri
>From e8d65a2be4d1c9abaa9ffc38cac6a2c8223d44b0 Mon Sep 17 00:00:00 2001 From: Lauri Kasanen <[email protected]> Date: Mon, 21 May 2012 19:29:36 +0300 Subject: [PATCH 1/8] includes: Guard global variables with hidden visibility, v3 This makes every plugin load faster. Each plugin is also 3-4kb smaller. v2: Fix one goof v3: Change to attributes. Signed-off-by: Lauri Kasanen <[email protected]> --- configure | 1 + src/include/MKPlugin.h | 8 ++++---- src/include/mk_macros.h | 6 ++++++ 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/configure b/configure index ab02d30..f6a58d0 100755 --- a/configure +++ b/configure @@ -886,6 +886,7 @@ else DEFS="-DDEBUG -DSAFE_FREE" CFLAGS="$CFLAGS -g -Wall" fi +CFLAGS="$CFLAGS -fvisibility=hidden" if [ $only_accept -eq 1 ] && [ $only_accept4 -eq 1 ] ; then echo -e "\nError: you cannot use --only-accept and --only-accept4 at same time\n" diff --git a/src/include/MKPlugin.h b/src/include/MKPlugin.h index e1ee3b1..32a371a 100644 --- a/src/include/MKPlugin.h +++ b/src/include/MKPlugin.h @@ -34,13 +34,13 @@ #include "mk_macros.h" /* global vars */ -struct plugin_api *mk_api; -struct plugin_info _plugin_info; +struct plugin_api MK_EXPORT *mk_api; +struct plugin_info MK_EXPORT _plugin_info; -mk_plugin_key_t _mkp_data; +mk_plugin_key_t MK_EXPORT _mkp_data; #define MONKEY_PLUGIN(a, b, c, d) \ - struct plugin_info _plugin_info = {a, b, c, d} + struct plugin_info MK_EXPORT _plugin_info = {a, b, c, d} #ifdef TRACE #define PLUGIN_TRACE(...) \ diff --git a/src/include/mk_macros.h b/src/include/mk_macros.h index 70b8782..05664cf 100644 --- a/src/include/mk_macros.h +++ b/src/include/mk_macros.h @@ -101,4 +101,10 @@ #define MK_NET_HOSTMIN(addr,net) net == 31 ? MK_NET_NETWORK(addr,net) : (MK_NET_NETWORK(addr,net) + 0x01000000) #define MK_NET_HOSTMAX(addr,net) net == 31 ? MK_NET_BROADCAST(addr,net) : (MK_NET_BROADCAST(addr,net) - 0x01000000); +#if __GNUC__ >= 4 + #define MK_EXPORT __attribute__ ((visibility ("default"))) +#else + #define MK_EXPORT +#endif + #endif -- 1.7.2.1
_______________________________________________ Monkey mailing list [email protected] http://lists.monkey-project.com/listinfo/monkey
