Hi

This makes every plugin load faster. Each plugin is also 3-4kb smaller.

- Lauri
>From 4a4e749321d19583c6797947ad1dc26818f740c9 Mon Sep 17 00:00:00 2001
From: Lauri Kasanen <[email protected]>
Date: Mon, 21 May 2012 19:29:36 +0300
Subject: [PATCH 02/13] includes: Guard global variables with hidden visibility

This makes every plugin load faster. Each plugin is also 3-4kb smaller.

Signed-off-by: Lauri Kasanen <[email protected]>
---
 src/include/MKPlugin.h     |    7 ++++++-
 src/include/mk_config.h    |    4 ++++
 src/include/mk_header.h    |    4 ++++
 src/include/mk_http.h      |    4 ++++
 src/include/mk_iov.h       |    4 ++++
 src/include/mk_plugin.h    |    4 ++++
 src/include/mk_request.h   |    4 ++++
 src/include/mk_scheduler.h |    4 ++++
 src/include/monkey.h       |    4 ++++
 9 files changed, 38 insertions(+), 1 deletions(-)

diff --git a/src/include/MKPlugin.h b/src/include/MKPlugin.h
index e1ee3b1..8635676 100644
--- a/src/include/MKPlugin.h
+++ b/src/include/MKPlugin.h
@@ -34,11 +34,16 @@
 #include "mk_macros.h"
 
 /* global vars */
-struct plugin_api *mk_api;
 struct plugin_info _plugin_info;
 
+#pragma GCC visibility push(hidden)
+
+struct plugin_api *mk_api;
+
 mk_plugin_key_t _mkp_data;
 
+#pragma GCC visibility pop
+
 #define MONKEY_PLUGIN(a, b, c, d)                   \
     struct plugin_info _plugin_info = {a, b, c, d}
 
diff --git a/src/include/mk_config.h b/src/include/mk_config.h
index 78f9324..8028c90 100644
--- a/src/include/mk_config.h
+++ b/src/include/mk_config.h
@@ -44,6 +44,8 @@
 #define MK_CONFIG_VAL_BOOL 2
 #define MK_CONFIG_VAL_LIST 3
 
+#pragma GCC visibility push(hidden)
+
 /* Indented configuration */
 struct mk_config
 {
@@ -209,4 +211,6 @@ int mk_config_host_find(mk_pointer host, struct host 
**vhost, struct host_alias
 void mk_config_host_free_all();
 #endif
 
+#pragma GCC visibility pop
+
 #endif
diff --git a/src/include/mk_header.h b/src/include/mk_header.h
index c67a91a..38d6963 100644
--- a/src/include/mk_header.h
+++ b/src/include/mk_header.h
@@ -91,6 +91,8 @@ struct header_status_response {
 #define MK_HEADER_SHORT_LOCATION "Location: "
 #define MK_HEADER_SHORT_CT "Content-Type: "
 
+#pragma GCC visibility push(hidden)
+
 mk_pointer mk_header_short_date;
 mk_pointer mk_header_short_location;
 mk_pointer mk_header_short_ct;
@@ -123,4 +125,6 @@ void mk_header_response_reset(struct response_headers 
*header);
 void mk_header_set_http_status(struct session_request *sr, int status);
 void mk_header_set_content_length(struct session_request *sr, long len);
 
+#pragma GCC visibility pop
+
 #endif
diff --git a/src/include/mk_http.h b/src/include/mk_http.h
index c5062a9..a777cec 100644
--- a/src/include/mk_http.h
+++ b/src/include/mk_http.h
@@ -39,6 +39,8 @@
 #define HTTP_METHOD_PUT_STR         "PUT"
 #define HTTP_METHOD_DELETE_STR      "DELETE"
 
+#pragma GCC visibility push(hidden)
+
 mk_pointer mk_http_method_get_p;
 mk_pointer mk_http_method_post_p;
 mk_pointer mk_http_method_head_p;
@@ -81,4 +83,6 @@ int mk_http_pending_request(struct client_session *cs);
 int mk_http_send_file(struct client_session *cs, struct session_request *sr);
 int mk_http_request_end(int socket);
 
+#pragma GCC visibility pop
+
 #endif
diff --git a/src/include/mk_iov.h b/src/include/mk_iov.h
index 861c7a6..ddb8404 100644
--- a/src/include/mk_iov.h
+++ b/src/include/mk_iov.h
@@ -40,6 +40,8 @@
 
 #include "mk_memory.h"
 
+#pragma GCC visibility push(hidden)
+
 mk_pointer mk_iov_crlf;
 mk_pointer mk_iov_crlfcrlf;
 mk_pointer mk_iov_lf;
@@ -82,4 +84,6 @@ void mk_iov_separators_init(void);
 void mk_iov_free_marked(struct mk_iov *mk_io);
 void mk_iov_print(struct mk_iov *mk_io);
 
+#pragma GCC visibility pop
+
 #endif
diff --git a/src/include/mk_plugin.h b/src/include/mk_plugin.h
index 58e187e..a520ac1 100644
--- a/src/include/mk_plugin.h
+++ b/src/include/mk_plugin.h
@@ -86,6 +86,8 @@
 /* The plugin request to the caller skip event hooks */
 #define MK_PLUGIN_RET_EVENT_CONTINUE -600
 
+#pragma GCC visibility push(hidden)
+
 /* Contexts: process/thread */
 struct plugin_core
 {
@@ -373,4 +375,6 @@ int mk_plugin_header_get(struct session_request *sr,
                          mk_pointer query,
                          mk_pointer *result);
 
+#pragma GCC visibility pop
+
 #endif
diff --git a/src/include/mk_request.h b/src/include/mk_request.h
index f721eda..6a1f787 100644
--- a/src/include/mk_request.h
+++ b/src/include/mk_request.h
@@ -36,6 +36,8 @@
 #define MK_CRLF "\r\n"
 #define MK_ENDBLOCK "\r\n\r\n"
 
+#pragma GCC visibility push(hidden)
+
 mk_pointer mk_crlf;
 mk_pointer mk_endblock;
 
@@ -290,4 +292,6 @@ int mk_handler_read(int socket, struct client_session *cs);
 int mk_handler_write(int socket, struct client_session *cs);
 
 void mk_request_ka_next(struct client_session *cs);
+
+#pragma GCC visibility pop
 #endif
diff --git a/src/include/mk_scheduler.h b/src/include/mk_scheduler.h
index a29bfae..2bcea16 100644
--- a/src/include/mk_scheduler.h
+++ b/src/include/mk_scheduler.h
@@ -33,6 +33,8 @@
 #define MK_SCHEDULER_CONN_PENDING 0
 #define MK_SCHEDULER_CONN_PROCESS 1
 
+#pragma GCC visibility push(hidden)
+
 struct sched_connection
 {
     int status;
@@ -104,4 +106,6 @@ struct sched_connection *mk_sched_get_connection(struct 
sched_list_node
 int mk_sched_update_conn_status(struct sched_list_node *sched, int remote_fd,
                                 int status);
 
+#pragma GCC visibility pop
+
 #endif
diff --git a/src/include/monkey.h b/src/include/monkey.h
index 25f56bf..0379f84 100644
--- a/src/include/monkey.h
+++ b/src/include/monkey.h
@@ -31,6 +31,8 @@
 #define SH_NOCGI 0
 #define SH_CGI 1
 
+#pragma GCC visibility push(hidden)
+
 /* Monkey Protocol */
 mk_pointer mk_monkey_protocol;
 
@@ -38,4 +40,6 @@ mk_pointer mk_monkey_protocol;
 gid_t EGID;
 gid_t EUID;
 
+#pragma GCC visibility pop
+
 #endif
-- 
1.7.2.1

_______________________________________________
Monkey mailing list
[email protected]
http://lists.monkey-project.com/listinfo/monkey

Reply via email to