From 91282c22ff7b8facf84d267fda0555eb4a17261a Mon Sep 17 00:00:00 2001 From: kpfleming Date: Wed, 18 Mar 2009 01:28:42 +0000 Subject: Improve the build system to *properly* remove unnecessary symbols from the runtime global namespace. Along the way, change the prefixes on some internal-only API calls to use a common prefix. With these changes, for a module to export symbols into the global namespace, it must have *both* the AST_MODFLAG_GLOBAL_SYMBOLS flag and a linker script that allows the linker to leave the symbols exposed in the module's .so file (see res_odbc.exports for an example). git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.4@182802 f38db490-d61c-443f-a65b-d21fe96a405b --- res/res_adsi.exports | 33 +++++++++++++++++++++++++++++++++ res/res_agi.exports | 7 +++++++ res/res_config_odbc.c | 2 +- res/res_config_pgsql.c | 2 +- res/res_crypto.c | 2 +- res/res_features.exports | 13 +++++++++++++ res/res_indications.c | 2 +- res/res_jabber.exports | 13 +++++++++++++ res/res_monitor.exports | 11 +++++++++++ res/res_musiconhold.c | 2 +- res/res_odbc.exports | 11 +++++++++++ res/res_smdi.exports | 18 ++++++++++++++++++ res/res_snmp.c | 2 +- res/res_speech.exports | 21 +++++++++++++++++++++ 14 files changed, 133 insertions(+), 6 deletions(-) create mode 100644 res/res_adsi.exports create mode 100644 res/res_agi.exports create mode 100644 res/res_features.exports create mode 100644 res/res_jabber.exports create mode 100644 res/res_monitor.exports create mode 100644 res/res_odbc.exports create mode 100644 res/res_smdi.exports create mode 100644 res/res_speech.exports (limited to 'res') diff --git a/res/res_adsi.exports b/res/res_adsi.exports new file mode 100644 index 000000000..a4119dc1f --- /dev/null +++ b/res/res_adsi.exports @@ -0,0 +1,33 @@ +{ + global: + ast_adsi_available; + ast_adsi_begin_download; + ast_adsi_channel_restore; + ast_adsi_clear_screen; + ast_adsi_clear_soft_keys; + ast_adsi_connect_session; + ast_adsi_data_mode; + ast_adsi_disconnect_session; + ast_adsi_display; + ast_adsi_download_connect; + ast_adsi_download_disconnect; + ast_adsi_end_download; + ast_adsi_get_cpeid; + ast_adsi_get_cpeinfo; + ast_adsi_input_control; + ast_adsi_input_format; + ast_adsi_load_session; + ast_adsi_load_soft_key; + ast_adsi_print; + ast_adsi_query_cpeid; + ast_adsi_query_cpeinfo; + ast_adsi_read_encoded_dtmf; + ast_adsi_set_keys; + ast_adsi_set_line; + ast_adsi_transmit_message; + ast_adsi_transmit_message_full; + ast_adsi_unload_session; + ast_adsi_voice_mode; + local: + *; +}; diff --git a/res/res_agi.exports b/res/res_agi.exports new file mode 100644 index 000000000..e1b11968f --- /dev/null +++ b/res/res_agi.exports @@ -0,0 +1,7 @@ +{ + global: + ast_agi_register; + ast_agi_unregister; + local: + *; +}; diff --git a/res/res_config_odbc.c b/res/res_config_odbc.c index 7f11b5db3..5c3c1f669 100644 --- a/res/res_config_odbc.c +++ b/res/res_config_odbc.c @@ -558,7 +558,7 @@ static int load_module (void) return 0; } -AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_GLOBAL_SYMBOLS, "ODBC Configuration", +AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_DEFAULT, "ODBC Configuration", .load = load_module, .unload = unload_module, ); diff --git a/res/res_config_pgsql.c b/res/res_config_pgsql.c index 494497033..986223480 100644 --- a/res/res_config_pgsql.c +++ b/res/res_config_pgsql.c @@ -835,7 +835,7 @@ static int realtime_pgsql_status(int fd, int argc, char **argv) } /* needs usecount semantics defined */ -AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_GLOBAL_SYMBOLS, "PostgreSQL RealTime Configuration Driver", +AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_DEFAULT, "PostgreSQL RealTime Configuration Driver", .load = load_module, .unload = unload_module, .reload = reload diff --git a/res/res_crypto.c b/res/res_crypto.c index c2c33d015..8fd78c498 100644 --- a/res/res_crypto.c +++ b/res/res_crypto.c @@ -624,7 +624,7 @@ static int unload_module(void) } /* needs usecount semantics defined */ -AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_GLOBAL_SYMBOLS, "Cryptographic Digital Signatures", +AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_DEFAULT, "Cryptographic Digital Signatures", .load = load_module, .unload = unload_module, .reload = reload diff --git a/res/res_features.exports b/res/res_features.exports new file mode 100644 index 000000000..344a652c8 --- /dev/null +++ b/res/res_features.exports @@ -0,0 +1,13 @@ +{ + global: + ast_bridge_call; + ast_masq_park_call; + ast_park_call; + ast_parking_ext; + ast_pickup_call; + ast_pickup_ext; + ast_register_feature; + ast_unregister_feature; + local: + *; +}; diff --git a/res/res_indications.c b/res/res_indications.c index 9bff10b76..b1c948c95 100644 --- a/res/res_indications.c +++ b/res/res_indications.c @@ -399,7 +399,7 @@ static int reload(void) return ind_load_module(); } -AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_GLOBAL_SYMBOLS, "Indications Resource", +AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_DEFAULT, "Indications Resource", .load = load_module, .unload = unload_module, .reload = reload, diff --git a/res/res_jabber.exports b/res/res_jabber.exports new file mode 100644 index 000000000..8df1fee0e --- /dev/null +++ b/res/res_jabber.exports @@ -0,0 +1,13 @@ +{ + global: + ast_aji_create_chat; + ast_aji_disconnect; + ast_aji_get_client; + ast_aji_get_clients; + ast_aji_increment_mid; + ast_aji_invite_chat; + ast_aji_join_chat; + ast_aji_send; + local: + *; +}; diff --git a/res/res_monitor.exports b/res/res_monitor.exports new file mode 100644 index 000000000..4352dc8b6 --- /dev/null +++ b/res/res_monitor.exports @@ -0,0 +1,11 @@ +{ + global: + ast_monitor_change_fname; + ast_monitor_pause; + ast_monitor_setjoinfiles; + ast_monitor_start; + ast_monitor_stop; + ast_monitor_unpause; + local: + *; +}; diff --git a/res/res_musiconhold.c b/res/res_musiconhold.c index cd8bb3e10..95fe16ec2 100644 --- a/res/res_musiconhold.c +++ b/res/res_musiconhold.c @@ -1486,7 +1486,7 @@ static int unload_module(void) return res; } -AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_GLOBAL_SYMBOLS, "Music On Hold Resource", +AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_DEFAULT, "Music On Hold Resource", .load = load_module, .unload = unload_module, .reload = reload, diff --git a/res/res_odbc.exports b/res/res_odbc.exports new file mode 100644 index 000000000..1e38d49da --- /dev/null +++ b/res/res_odbc.exports @@ -0,0 +1,11 @@ +{ + global: + ast_odbc_backslash_is_escape; + ast_odbc_prepare_and_execute; + ast_odbc_release_obj; + ast_odbc_request_obj; + ast_odbc_sanity_check; + ast_odbc_smart_execute; + local: + *; +}; diff --git a/res/res_smdi.exports b/res/res_smdi.exports new file mode 100644 index 000000000..7fe3edff3 --- /dev/null +++ b/res/res_smdi.exports @@ -0,0 +1,18 @@ +{ + global: + ast_smdi_interface_find; + ast_smdi_interface_unref; + ast_smdi_md_message_destroy; + ast_smdi_md_message_pop; + ast_smdi_md_message_putback; + ast_smdi_md_message_wait; + ast_smdi_mwi_message_destroy; + ast_smdi_mwi_message_pop; + ast_smdi_mwi_message_putback; + ast_smdi_mwi_message_wait; + ast_smdi_mwi_message_wait_station; + ast_smdi_mwi_set; + ast_smdi_mwi_unset; + local: + *; +}; diff --git a/res/res_snmp.c b/res/res_snmp.c index 6bbf23171..5ec0419ad 100644 --- a/res/res_snmp.c +++ b/res/res_snmp.c @@ -109,7 +109,7 @@ static int unload_module(void) return ((thread != AST_PTHREADT_NULL) ? pthread_join(thread, NULL) : 0); } -AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_GLOBAL_SYMBOLS, "SNMP [Sub]Agent for Asterisk", +AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_DEFAULT, "SNMP [Sub]Agent for Asterisk", .load = load_module, .unload = unload_module, ); diff --git a/res/res_speech.exports b/res/res_speech.exports new file mode 100644 index 000000000..226660735 --- /dev/null +++ b/res/res_speech.exports @@ -0,0 +1,21 @@ +{ + global: + ast_speech_change; + ast_speech_change_results_type; + ast_speech_change_state; + ast_speech_destroy; + ast_speech_dtmf; + ast_speech_grammar_activate; + ast_speech_grammar_deactivate; + ast_speech_grammar_load; + ast_speech_grammar_unload; + ast_speech_new; + ast_speech_register; + ast_speech_results_free; + ast_speech_results_get; + ast_speech_start; + ast_speech_unregister; + ast_speech_write; + local: + *; +}; -- cgit v1.2.3