summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKevin P. Fleming <kpfleming@digium.com>2010-04-02 18:57:58 +0000
committerKevin P. Fleming <kpfleming@digium.com>2010-04-02 18:57:58 +0000
commit2be88e05c043e8abc1b6a3c94c4699859a7adf68 (patch)
tree617eb61593a42ffe9e08c245fa183358073bbf84
parentf4617ae2b534262484980b4fbff2e42f87543b23 (diff)
Allow symbol export filtering to work properly on platforms that have symbol prefixes.
Some platforms prefix externally-visible symbols in object files generated from C sources (most commonly, '_' is the prefix). On these platforms, the existing symbol export filtering process ends up suppressing all the symbols that are supposed to be left visible. This patch allows the prefix string to be supplied to the top-level Makefile in the LINKER_SYMBOL_PREFIX variable, and then generates the linker scripts as required to include the prefix supplied. git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@255906 65c4cc65-6c06-0410-ace0-fbb531ad65f3
-rw-r--r--Makefile8
-rw-r--r--Makefile.moddir_rules1
-rw-r--r--Makefile.rules8
-rw-r--r--apps/app_voicemail.exports20
-rw-r--r--apps/app_voicemail.exports.in20
-rwxr-xr-xbuild_tools/make_linker_version_script4
-rw-r--r--main/Makefile9
-rw-r--r--main/asterisk.exports45
-rw-r--r--main/asterisk.exports.in45
-rw-r--r--res/res_adsi.exports33
-rw-r--r--res/res_adsi.exports.in33
-rw-r--r--res/res_ael_share.exports.in (renamed from res/res_ael_share.exports)0
-rw-r--r--res/res_agi.exports10
-rw-r--r--res/res_agi.exports.in10
-rw-r--r--res/res_calendar.exports7
-rw-r--r--res/res_calendar.exports.in7
-rw-r--r--res/res_fax.exports11
-rw-r--r--res/res_fax.exports.in11
-rw-r--r--res/res_features.exports13
-rw-r--r--res/res_features.exports.in13
-rw-r--r--res/res_jabber.exports14
-rw-r--r--res/res_jabber.exports.in14
-rw-r--r--res/res_monitor.exports11
-rw-r--r--res/res_monitor.exports.in11
-rw-r--r--res/res_odbc.exports20
-rw-r--r--res/res_odbc.exports.in20
-rw-r--r--res/res_pktccops.exports6
-rw-r--r--res/res_pktccops.exports.in6
-rw-r--r--res/res_smdi.exports18
-rw-r--r--res/res_smdi.exports.in18
-rw-r--r--res/res_speech.exports21
-rw-r--r--res/res_speech.exports.in21
32 files changed, 257 insertions, 231 deletions
diff --git a/Makefile b/Makefile
index 6e292718c..323b20f06 100644
--- a/Makefile
+++ b/Makefile
@@ -175,6 +175,14 @@ HTTP_DOCSDIR=/var/www/html
# Determine by a grep 'ScriptAlias' of your Apache httpd.conf file
HTTP_CGIDIR=/var/www/cgi-bin
+# If your platform's linker expects a prefix on symbols generated from compiling C
+# source files, set LINKER_SYMBOL_PREFIX to that value. On some systems, exported symbols
+# from C source files are prefixed with '_', for example. If this value is not set
+# properly, the linker scripts that live in the '*.exports' files in various places
+# in this tree will unintentionally suppress symbols that should be visible
+# in the final binary objects.
+LINKER_SYMBOL_PREFIX=
+
# Uncomment this to use the older DSP routines
#_ASTCFLAGS+=-DOLD_DSP_ROUTINES
diff --git a/Makefile.moddir_rules b/Makefile.moddir_rules
index 00494a8b5..b883548af 100644
--- a/Makefile.moddir_rules
+++ b/Makefile.moddir_rules
@@ -129,6 +129,7 @@ uninstall::
dist-clean::
rm -f .*.moduleinfo .moduleinfo
rm -f .*.makeopts .makeopts
+ rm -f *.exports
.%.moduleinfo: %.c
@echo "<member name=\"$*\" displayname=\"$(shell $(GREP) -e AST_MODULE_INFO $< | head -n 1 | cut -d '"' -f 2)\" remove_on_change=\"$(SUBDIR)/$*.o $(SUBDIR)/$*.so\">" > $@
diff --git a/Makefile.rules b/Makefile.rules
index d917d8708..92d8bb7cc 100644
--- a/Makefile.rules
+++ b/Makefile.rules
@@ -3,7 +3,7 @@
#
# Makefile rules
#
-# Copyright (C) 2006-2008, Digium, Inc.
+# Copyright (C) 2006-2010, Digium, Inc.
#
# Kevin P. Fleming <kpfleming@digium.com>
#
@@ -117,10 +117,16 @@ endif
$(CMD_PREFIX) $(CXX) -o $@ -E $< $(MAKE_DEPS) $(CXX_CFLAGS)
%.so: %.o
+ifeq ($(GNU_LD),1)
+ $(CMD_PREFIX) $(ASTTOPDIR)/build_tools/make_linker_version_script $* $(LINKER_SYMBOL_PREFIX)
+endif
$(ECHO_PREFIX) echo " [LD] $^ -> $@"
$(CMD_PREFIX) $(CC) $(STATIC_BUILD) -o $@ $(CC_LDFLAGS_SO) $^ $(CC_LIBS)
%.so: %.oo
+ifeq ($(GNU_LD),1)
+ $(CMD_PREFIX) $(ASTTOPDIR)/build_tools/make_linker_version_script $* $(LINKER_SYMBOL_PREFIX)
+endif
$(ECHO_PREFIX) echo " [LDXX] $^ -> $@"
$(CMD_PREFIX) $(CXX) $(STATIC_BUILD) -o $@ $(CXX_LDFLAGS_SO) $^ $(CXX_LIBS)
diff --git a/apps/app_voicemail.exports b/apps/app_voicemail.exports
deleted file mode 100644
index 52bce5146..000000000
--- a/apps/app_voicemail.exports
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- global:
- mm_critical;
- mm_diskerror;
- mm_dlog;
- mm_exists;
- mm_expunged;
- mm_fatal;
- mm_flags;
- mm_list;
- mm_log;
- mm_login;
- mm_lsub;
- mm_nocritical;
- mm_notify;
- mm_searched;
- mm_status;
- local:
- *;
-};
diff --git a/apps/app_voicemail.exports.in b/apps/app_voicemail.exports.in
new file mode 100644
index 000000000..3520d2216
--- /dev/null
+++ b/apps/app_voicemail.exports.in
@@ -0,0 +1,20 @@
+{
+ global:
+ LINKER_SYMBOL_PREFIXmm_critical;
+ LINKER_SYMBOL_PREFIXmm_diskerror;
+ LINKER_SYMBOL_PREFIXmm_dlog;
+ LINKER_SYMBOL_PREFIXmm_exists;
+ LINKER_SYMBOL_PREFIXmm_expunged;
+ LINKER_SYMBOL_PREFIXmm_fatal;
+ LINKER_SYMBOL_PREFIXmm_flags;
+ LINKER_SYMBOL_PREFIXmm_list;
+ LINKER_SYMBOL_PREFIXmm_log;
+ LINKER_SYMBOL_PREFIXmm_login;
+ LINKER_SYMBOL_PREFIXmm_lsub;
+ LINKER_SYMBOL_PREFIXmm_nocritical;
+ LINKER_SYMBOL_PREFIXmm_notify;
+ LINKER_SYMBOL_PREFIXmm_searched;
+ LINKER_SYMBOL_PREFIXmm_status;
+ local:
+ *;
+};
diff --git a/build_tools/make_linker_version_script b/build_tools/make_linker_version_script
new file mode 100755
index 000000000..8f3c2bb0a
--- /dev/null
+++ b/build_tools/make_linker_version_script
@@ -0,0 +1,4 @@
+#!/bin/sh
+
+test -f ${1}.exports.in && ${AWK} "{sub(\"LINKER_SYMBOL_PREFIX\", \"${2}\"); print;}" ${1}.exports.in > ${1}.exports
+test -f ${1}.exports.in || rm -f ${1}.exports
diff --git a/main/Makefile b/main/Makefile
index a019a0855..ada40fe61 100644
--- a/main/Makefile
+++ b/main/Makefile
@@ -167,7 +167,7 @@ endif
$(OBJS): _ASTCFLAGS+=-DAST_MODULE=\"core\"
-$(MAIN_TGT): $(OBJS) editline/libedit.a db1-ast/libdb1.a $(AST_EMBED_LDSCRIPTS) asterisk.exports
+$(MAIN_TGT): $(OBJS) editline/libedit.a db1-ast/libdb1.a $(AST_EMBED_LDSCRIPTS)
@$(CC) -c -o buildinfo.o $(_ASTCFLAGS) buildinfo.c $(ASTCFLAGS)
$(ECHO_PREFIX) echo " [LD] $(OBJS) editline/libedit.a db1-ast/libdb1.a $(AST_EMBED_LDSCRIPTS) -> $@"
ifneq ($(findstring chan_h323,$(MENUSELECT_CHANNELS)),)
@@ -176,9 +176,16 @@ else
$(CMD_PREFIX) $(CXX) $(STATIC_BUILD) -o $@ $(ASTLINK) $(AST_EMBED_LDFLAGS) $(_ASTLDFLAGS) $(ASTLDFLAGS) $(H323LDFLAGS) $(OBJS) editline/libedit.a db1-ast/libdb1.a $(AST_EMBED_LDSCRIPTS) buildinfo.o $(AST_LIBS) $(AST_EMBED_LIBS) $(H323LDLIBS) $(GMIMELDFLAGS)
endif
+ifeq ($(GNU_LD),1)
+$(MAIN_TGT): asterisk.exports
+asterisk.exports: asterisk.exports.in
+ $(CMD_PREFIX) $(ASTTOPDIR)/build_tools/make_linker_version_script asterisk $(LINKER_SYMBOL_PREFIX)
+endif
+
clean::
rm -f asterisk
rm -f db1-ast/.*.d
+ rm -f asterisk.exports
@if [ -f editline/Makefile ]; then $(MAKE) -C editline distclean ; fi
@$(MAKE) -C db1-ast clean
@$(MAKE) -C stdtime clean
diff --git a/main/asterisk.exports b/main/asterisk.exports
deleted file mode 100644
index 284bf36f2..000000000
--- a/main/asterisk.exports
+++ /dev/null
@@ -1,45 +0,0 @@
-{
- global:
- ast_*;
- _ast_*;
- __ast_*;
- pbx_*;
- astman_*;
- ao2_*;
- __ao2_*;
- option_debug;
- option_verbose;
- dahdi_chan_name;
- dahdi_chan_name_len;
- dahdi_chan_mode;
- callerid_*;
- cid_di;
- cid_dr;
- clidsb;
- MD5*;
- sched_*;
- io_*;
- jb_*;
- aes_*;
- config_*;
- tdd_*;
- term_*;
- channelreloadreason2txt;
- devstate2str;
- __manager_event;
- dialed_interface_info;
- strsep;
- setenv;
- unsetenv;
- strcasestr;
- strnlen;
- strndup;
- vasprintf;
- asprintf;
- strtoq;
- getloadavg;
- ntohll;
- htonll;
- local:
- *;
-};
diff --git a/main/asterisk.exports.in b/main/asterisk.exports.in
new file mode 100644
index 000000000..ef1dcddc2
--- /dev/null
+++ b/main/asterisk.exports.in
@@ -0,0 +1,45 @@
+{
+ global:
+ LINKER_SYMBOL_PREFIXast_*;
+ LINKER_SYMBOL_PREFIX_ast_*;
+ LINKER_SYMBOL_PREFIX__ast_*;
+ LINKER_SYMBOL_PREFIXpbx_*;
+ LINKER_SYMBOL_PREFIXastman_*;
+ LINKER_SYMBOL_PREFIXao2_*;
+ LINKER_SYMBOL_PREFIX__ao2_*;
+ LINKER_SYMBOL_PREFIXoption_debug;
+ LINKER_SYMBOL_PREFIXoption_verbose;
+ LINKER_SYMBOL_PREFIXdahdi_chan_name;
+ LINKER_SYMBOL_PREFIXdahdi_chan_name_len;
+ LINKER_SYMBOL_PREFIXdahdi_chan_mode;
+ LINKER_SYMBOL_PREFIXcallerid_*;
+ LINKER_SYMBOL_PREFIXcid_di;
+ LINKER_SYMBOL_PREFIXcid_dr;
+ LINKER_SYMBOL_PREFIXclidsb;
+ LINKER_SYMBOL_PREFIXMD5*;
+ LINKER_SYMBOL_PREFIXsched_*;
+ LINKER_SYMBOL_PREFIXio_*;
+ LINKER_SYMBOL_PREFIXjb_*;
+ LINKER_SYMBOL_PREFIXaes_*;
+ LINKER_SYMBOL_PREFIXconfig_*;
+ LINKER_SYMBOL_PREFIXtdd_*;
+ LINKER_SYMBOL_PREFIXterm_*;
+ LINKER_SYMBOL_PREFIXchannelreloadreason2txt;
+ LINKER_SYMBOL_PREFIXdevstate2str;
+ LINKER_SYMBOL_PREFIX__manager_event;
+ LINKER_SYMBOL_PREFIXdialed_interface_info;
+ LINKER_SYMBOL_PREFIXstrsep;
+ LINKER_SYMBOL_PREFIXsetenv;
+ LINKER_SYMBOL_PREFIXunsetenv;
+ LINKER_SYMBOL_PREFIXstrcasestr;
+ LINKER_SYMBOL_PREFIXstrnlen;
+ LINKER_SYMBOL_PREFIXstrndup;
+ LINKER_SYMBOL_PREFIXvasprintf;
+ LINKER_SYMBOL_PREFIXasprintf;
+ LINKER_SYMBOL_PREFIXstrtoq;
+ LINKER_SYMBOL_PREFIXgetloadavg;
+ LINKER_SYMBOL_PREFIXntohll;
+ LINKER_SYMBOL_PREFIXhtonll;
+ local:
+ *;
+};
diff --git a/res/res_adsi.exports b/res/res_adsi.exports
deleted file mode 100644
index a4119dc1f..000000000
--- a/res/res_adsi.exports
+++ /dev/null
@@ -1,33 +0,0 @@
-{
- 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_adsi.exports.in b/res/res_adsi.exports.in
new file mode 100644
index 000000000..480f0ead8
--- /dev/null
+++ b/res/res_adsi.exports.in
@@ -0,0 +1,33 @@
+{
+ global:
+ LINKER_SYMBOL_PREFIXast_adsi_available;
+ LINKER_SYMBOL_PREFIXast_adsi_begin_download;
+ LINKER_SYMBOL_PREFIXast_adsi_channel_restore;
+ LINKER_SYMBOL_PREFIXast_adsi_clear_screen;
+ LINKER_SYMBOL_PREFIXast_adsi_clear_soft_keys;
+ LINKER_SYMBOL_PREFIXast_adsi_connect_session;
+ LINKER_SYMBOL_PREFIXast_adsi_data_mode;
+ LINKER_SYMBOL_PREFIXast_adsi_disconnect_session;
+ LINKER_SYMBOL_PREFIXast_adsi_display;
+ LINKER_SYMBOL_PREFIXast_adsi_download_connect;
+ LINKER_SYMBOL_PREFIXast_adsi_download_disconnect;
+ LINKER_SYMBOL_PREFIXast_adsi_end_download;
+ LINKER_SYMBOL_PREFIXast_adsi_get_cpeid;
+ LINKER_SYMBOL_PREFIXast_adsi_get_cpeinfo;
+ LINKER_SYMBOL_PREFIXast_adsi_input_control;
+ LINKER_SYMBOL_PREFIXast_adsi_input_format;
+ LINKER_SYMBOL_PREFIXast_adsi_load_session;
+ LINKER_SYMBOL_PREFIXast_adsi_load_soft_key;
+ LINKER_SYMBOL_PREFIXast_adsi_print;
+ LINKER_SYMBOL_PREFIXast_adsi_query_cpeid;
+ LINKER_SYMBOL_PREFIXast_adsi_query_cpeinfo;
+ LINKER_SYMBOL_PREFIXast_adsi_read_encoded_dtmf;
+ LINKER_SYMBOL_PREFIXast_adsi_set_keys;
+ LINKER_SYMBOL_PREFIXast_adsi_set_line;
+ LINKER_SYMBOL_PREFIXast_adsi_transmit_message;
+ LINKER_SYMBOL_PREFIXast_adsi_transmit_message_full;
+ LINKER_SYMBOL_PREFIXast_adsi_unload_session;
+ LINKER_SYMBOL_PREFIXast_adsi_voice_mode;
+ local:
+ *;
+};
diff --git a/res/res_ael_share.exports b/res/res_ael_share.exports.in
index 5db09cc02..5db09cc02 100644
--- a/res/res_ael_share.exports
+++ b/res/res_ael_share.exports.in
diff --git a/res/res_agi.exports b/res/res_agi.exports
deleted file mode 100644
index a305cf2b9..000000000
--- a/res/res_agi.exports
+++ /dev/null
@@ -1,10 +0,0 @@
-{
- global:
- *ast_agi_register;
- *ast_agi_unregister;
- *ast_agi_register_multiple;
- *ast_agi_unregister_multiple;
- *ast_agi_send;
- local:
- *;
-};
diff --git a/res/res_agi.exports.in b/res/res_agi.exports.in
new file mode 100644
index 000000000..cf4d276dd
--- /dev/null
+++ b/res/res_agi.exports.in
@@ -0,0 +1,10 @@
+{
+ global:
+ LINKER_SYMBOL_PREFIX*ast_agi_register;
+ LINKER_SYMBOL_PREFIX*ast_agi_unregister;
+ LINKER_SYMBOL_PREFIX*ast_agi_register_multiple;
+ LINKER_SYMBOL_PREFIX*ast_agi_unregister_multiple;
+ LINKER_SYMBOL_PREFIX*ast_agi_send;
+ local:
+ *;
+};
diff --git a/res/res_calendar.exports b/res/res_calendar.exports
deleted file mode 100644
index 021d395b3..000000000
--- a/res/res_calendar.exports
+++ /dev/null
@@ -1,7 +0,0 @@
-{
- global:
- ast_*;
- calendar_config;
- local:
- *;
-};
diff --git a/res/res_calendar.exports.in b/res/res_calendar.exports.in
new file mode 100644
index 000000000..7fbe4ca78
--- /dev/null
+++ b/res/res_calendar.exports.in
@@ -0,0 +1,7 @@
+{
+ global:
+ LINKER_SYMBOL_PREFIXast_*;
+ LINKER_SYMBOL_PREFIXcalendar_config;
+ local:
+ *;
+};
diff --git a/res/res_fax.exports b/res/res_fax.exports
deleted file mode 100644
index 0ffe0b327..000000000
--- a/res/res_fax.exports
+++ /dev/null
@@ -1,11 +0,0 @@
-{
- global:
- ast_fax_tech_register;
- ast_fax_tech_unregister;
- ast_fax_session_unreference;
- ast_fax_minrate;
- ast_fax_maxrate;
- ast_fax_state_to_str;
- local:
- *;
-};
diff --git a/res/res_fax.exports.in b/res/res_fax.exports.in
new file mode 100644
index 000000000..7cd569007
--- /dev/null
+++ b/res/res_fax.exports.in
@@ -0,0 +1,11 @@
+{
+ global:
+ LINKER_SYMBOL_PREFIXast_fax_tech_register;
+ LINKER_SYMBOL_PREFIXast_fax_tech_unregister;
+ LINKER_SYMBOL_PREFIXast_fax_session_unreference;
+ LINKER_SYMBOL_PREFIXast_fax_minrate;
+ LINKER_SYMBOL_PREFIXast_fax_maxrate;
+ LINKER_SYMBOL_PREFIXast_fax_state_to_str;
+ local:
+ *;
+};
diff --git a/res/res_features.exports b/res/res_features.exports
deleted file mode 100644
index 344a652c8..000000000
--- a/res/res_features.exports
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- 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_features.exports.in b/res/res_features.exports.in
new file mode 100644
index 000000000..0575e98e5
--- /dev/null
+++ b/res/res_features.exports.in
@@ -0,0 +1,13 @@
+{
+ global:
+ LINKER_SYMBOL_PREFIXast_bridge_call;
+ LINKER_SYMBOL_PREFIXast_masq_park_call;
+ LINKER_SYMBOL_PREFIXast_park_call;
+ LINKER_SYMBOL_PREFIXast_parking_ext;
+ LINKER_SYMBOL_PREFIXast_pickup_call;
+ LINKER_SYMBOL_PREFIXast_pickup_ext;
+ LINKER_SYMBOL_PREFIXast_register_feature;
+ LINKER_SYMBOL_PREFIXast_unregister_feature;
+ local:
+ *;
+};
diff --git a/res/res_jabber.exports b/res/res_jabber.exports
deleted file mode 100644
index c20bd0256..000000000
--- a/res/res_jabber.exports
+++ /dev/null
@@ -1,14 +0,0 @@
-{
- 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;
- ast_aji_send_chat;
- local:
- *;
-};
diff --git a/res/res_jabber.exports.in b/res/res_jabber.exports.in
new file mode 100644
index 000000000..a021ac593
--- /dev/null
+++ b/res/res_jabber.exports.in
@@ -0,0 +1,14 @@
+{
+ global:
+ LINKER_SYMBOL_PREFIXast_aji_create_chat;
+ LINKER_SYMBOL_PREFIXast_aji_disconnect;
+ LINKER_SYMBOL_PREFIXast_aji_get_client;
+ LINKER_SYMBOL_PREFIXast_aji_get_clients;
+ LINKER_SYMBOL_PREFIXast_aji_increment_mid;
+ LINKER_SYMBOL_PREFIXast_aji_invite_chat;
+ LINKER_SYMBOL_PREFIXast_aji_join_chat;
+ LINKER_SYMBOL_PREFIXast_aji_send;
+ LINKER_SYMBOL_PREFIXast_aji_send_chat;
+ local:
+ *;
+};
diff --git a/res/res_monitor.exports b/res/res_monitor.exports
deleted file mode 100644
index 0c97f6a80..000000000
--- a/res/res_monitor.exports
+++ /dev/null
@@ -1,11 +0,0 @@
-{
- 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_monitor.exports.in b/res/res_monitor.exports.in
new file mode 100644
index 000000000..4a4072442
--- /dev/null
+++ b/res/res_monitor.exports.in
@@ -0,0 +1,11 @@
+{
+ global:
+ LINKER_SYMBOL_PREFIX*ast_monitor_change_fname;
+ LINKER_SYMBOL_PREFIX*ast_monitor_pause;
+ LINKER_SYMBOL_PREFIX*ast_monitor_setjoinfiles;
+ LINKER_SYMBOL_PREFIX*ast_monitor_start;
+ LINKER_SYMBOL_PREFIX*ast_monitor_stop;
+ LINKER_SYMBOL_PREFIX*ast_monitor_unpause;
+ local:
+ *;
+};
diff --git a/res/res_odbc.exports b/res/res_odbc.exports
deleted file mode 100644
index 0512ab809..000000000
--- a/res/res_odbc.exports
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- global:
- ast_odbc_ast_str_SQLGetData;
- ast_odbc_backslash_is_escape;
- ast_odbc_clear_cache;
- ast_odbc_direct_execute;
- ast_odbc_find_column;
- ast_odbc_find_table;
- ast_odbc_prepare_and_execute;
- ast_odbc_release_obj;
- ast_odbc_request_obj;
- _ast_odbc_request_obj;
- ast_odbc_request_obj2;
- _ast_odbc_request_obj2;
- ast_odbc_retrieve_transaction_obj;
- ast_odbc_sanity_check;
- ast_odbc_smart_execute;
- local:
- *;
-};
diff --git a/res/res_odbc.exports.in b/res/res_odbc.exports.in
new file mode 100644
index 000000000..ad674beb1
--- /dev/null
+++ b/res/res_odbc.exports.in
@@ -0,0 +1,20 @@
+{
+ global:
+ LINKER_SYMBOL_PREFIXast_odbc_ast_str_SQLGetData;
+ LINKER_SYMBOL_PREFIXast_odbc_backslash_is_escape;
+ LINKER_SYMBOL_PREFIXast_odbc_clear_cache;
+ LINKER_SYMBOL_PREFIXast_odbc_direct_execute;
+ LINKER_SYMBOL_PREFIXast_odbc_find_column;
+ LINKER_SYMBOL_PREFIXast_odbc_find_table;
+ LINKER_SYMBOL_PREFIXast_odbc_prepare_and_execute;
+ LINKER_SYMBOL_PREFIXast_odbc_release_obj;
+ LINKER_SYMBOL_PREFIXast_odbc_request_obj;
+ LINKER_SYMBOL_PREFIX_ast_odbc_request_obj;
+ LINKER_SYMBOL_PREFIXast_odbc_request_obj2;
+ LINKER_SYMBOL_PREFIX_ast_odbc_request_obj2;
+ LINKER_SYMBOL_PREFIXast_odbc_retrieve_transaction_obj;
+ LINKER_SYMBOL_PREFIXast_odbc_sanity_check;
+ LINKER_SYMBOL_PREFIXast_odbc_smart_execute;
+ local:
+ *;
+};
diff --git a/res/res_pktccops.exports b/res/res_pktccops.exports
deleted file mode 100644
index 72cd65ba8..000000000
--- a/res/res_pktccops.exports
+++ /dev/null
@@ -1,6 +0,0 @@
-{
- global:
- ast_pktccops_gate_alloc;
- local:
- *;
-};
diff --git a/res/res_pktccops.exports.in b/res/res_pktccops.exports.in
new file mode 100644
index 000000000..1892e5bc6
--- /dev/null
+++ b/res/res_pktccops.exports.in
@@ -0,0 +1,6 @@
+{
+ global:
+ LINKER_SYMBOL_PREFIXast_pktccops_gate_alloc;
+ local:
+ *;
+};
diff --git a/res/res_smdi.exports b/res/res_smdi.exports
deleted file mode 100644
index e140aba9f..000000000
--- a/res/res_smdi.exports
+++ /dev/null
@@ -1,18 +0,0 @@
-{
- 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_smdi.exports.in b/res/res_smdi.exports.in
new file mode 100644
index 000000000..ef0ba5df5
--- /dev/null
+++ b/res/res_smdi.exports.in
@@ -0,0 +1,18 @@
+{
+ global:
+ LINKER_SYMBOL_PREFIX*ast_smdi_interface_find;
+ LINKER_SYMBOL_PREFIX*ast_smdi_interface_unref;
+ LINKER_SYMBOL_PREFIX*ast_smdi_md_message_destroy;
+ LINKER_SYMBOL_PREFIX*ast_smdi_md_message_pop;
+ LINKER_SYMBOL_PREFIX*ast_smdi_md_message_putback;
+ LINKER_SYMBOL_PREFIX*ast_smdi_md_message_wait;
+ LINKER_SYMBOL_PREFIX*ast_smdi_mwi_message_destroy;
+ LINKER_SYMBOL_PREFIX*ast_smdi_mwi_message_pop;
+ LINKER_SYMBOL_PREFIX*ast_smdi_mwi_message_putback;
+ LINKER_SYMBOL_PREFIX*ast_smdi_mwi_message_wait;
+ LINKER_SYMBOL_PREFIX*ast_smdi_mwi_message_wait_station;
+ LINKER_SYMBOL_PREFIX*ast_smdi_mwi_set;
+ LINKER_SYMBOL_PREFIX*ast_smdi_mwi_unset;
+ local:
+ *;
+};
diff --git a/res/res_speech.exports b/res/res_speech.exports
deleted file mode 100644
index 226660735..000000000
--- a/res/res_speech.exports
+++ /dev/null
@@ -1,21 +0,0 @@
-{
- 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:
- *;
-};
diff --git a/res/res_speech.exports.in b/res/res_speech.exports.in
new file mode 100644
index 000000000..2bdb6398b
--- /dev/null
+++ b/res/res_speech.exports.in
@@ -0,0 +1,21 @@
+{
+ global:
+ LINKER_SYMBOL_PREFIXast_speech_change;
+ LINKER_SYMBOL_PREFIXast_speech_change_results_type;
+ LINKER_SYMBOL_PREFIXast_speech_change_state;
+ LINKER_SYMBOL_PREFIXast_speech_destroy;
+ LINKER_SYMBOL_PREFIXast_speech_dtmf;
+ LINKER_SYMBOL_PREFIXast_speech_grammar_activate;
+ LINKER_SYMBOL_PREFIXast_speech_grammar_deactivate;
+ LINKER_SYMBOL_PREFIXast_speech_grammar_load;
+ LINKER_SYMBOL_PREFIXast_speech_grammar_unload;
+ LINKER_SYMBOL_PREFIXast_speech_new;
+ LINKER_SYMBOL_PREFIXast_speech_register;
+ LINKER_SYMBOL_PREFIXast_speech_results_free;
+ LINKER_SYMBOL_PREFIXast_speech_results_get;
+ LINKER_SYMBOL_PREFIXast_speech_start;
+ LINKER_SYMBOL_PREFIXast_speech_unregister;
+ LINKER_SYMBOL_PREFIXast_speech_write;
+ local:
+ *;
+};