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

Reply via email to