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
