[asterisk-commits] kpfleming: trunk r182826 - in /trunk: ./ build_tools/ include/asterisk/ main/...
SVN commits to the Asterisk project
asterisk-commits at lists.digium.com
Tue Mar 17 21:21:39 CDT 2009
Author: kpfleming
Date: Tue Mar 17 21:21:23 2009
New Revision: 182826
URL: http://svn.digium.com/svn-view/asterisk?view=rev&rev=182826
Log:
Merged revisions 182808 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r182808 | kpfleming | 2009-03-17 20:55:22 -0500 (Tue, 17 Mar 2009) | 5 lines
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).
........
Added:
trunk/default.exports
- copied unchanged from r182808, branches/1.4/default.exports
trunk/main/asterisk.exports
- copied unchanged from r182808, branches/1.4/main/asterisk.exports
trunk/res/res_adsi.exports
- copied unchanged from r182808, branches/1.4/res/res_adsi.exports
trunk/res/res_agi.exports
- copied unchanged from r182808, branches/1.4/res/res_agi.exports
trunk/res/res_features.exports
- copied unchanged from r182808, branches/1.4/res/res_features.exports
trunk/res/res_jabber.exports
- copied unchanged from r182808, branches/1.4/res/res_jabber.exports
trunk/res/res_monitor.exports
- copied unchanged from r182808, branches/1.4/res/res_monitor.exports
trunk/res/res_odbc.exports
- copied unchanged from r182808, branches/1.4/res/res_odbc.exports
trunk/res/res_smdi.exports
- copied unchanged from r182808, branches/1.4/res/res_smdi.exports
trunk/res/res_speech.exports
- copied unchanged from r182808, branches/1.4/res/res_speech.exports
Removed:
trunk/build_tools/strip_nonapi
Modified:
trunk/ (props changed)
trunk/Makefile.rules
trunk/include/asterisk/astobj2.h
trunk/main/Makefile
trunk/main/astobj2.c
trunk/makeopts.in
trunk/res/res_config_odbc.c
trunk/res/res_config_pgsql.c
trunk/res/res_snmp.c
Propchange: trunk/
------------------------------------------------------------------------------
Binary property 'branch-1.4-merged' - no diff available.
Modified: trunk/Makefile.rules
URL: http://svn.digium.com/svn-view/asterisk/trunk/Makefile.rules?view=diff&rev=182826&r1=182825&r2=182826
==============================================================================
--- trunk/Makefile.rules (original)
+++ trunk/Makefile.rules Tue Mar 17 21:21:23 2009
@@ -51,8 +51,13 @@
# per-target settings will be applied
CC_CFLAGS=$(PTHREAD_CFLAGS) $(ASTCFLAGS)
CXX_CFLAGS=$(PTHREAD_CFLAGS) $(filter-out -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations $(AST_DECLARATION_AFTER_STATEMENT),$(ASTCFLAGS))
-CC_LDFLAGS_SO=$(PTHREAD_CFLAGS) $(ASTLDFLAGS) $(SOLINK)
-CXX_LDFLAGS_SO=$(PTHREAD_CFLAGS) $(ASTLDFLAGS) $(SOLINK)
+
+ifeq ($(GNU_LD),1)
+SO_SUPPRESS_SYMBOLS=-Wl,--version-script,$(if $(wildcard $(subst .so,.exports,$@)),$(subst .so,.exports,$@),$(ASTTOPDIR)/default.exports)
+endif
+
+CC_LDFLAGS_SO=$(PTHREAD_CFLAGS) $(ASTLDFLAGS) $(SOLINK) $(SO_SUPPRESS_SYMBOLS)
+CXX_LDFLAGS_SO=$(PTHREAD_CFLAGS) $(ASTLDFLAGS) $(SOLINK) $(SO_SUPPRESS_SYMBOLS)
CC_LIBS=$(PTHREAD_LIBS) $(LIBS)
CXX_LIBS=$(PTHREAD_LIBS) $(LIBS)
Modified: trunk/include/asterisk/astobj2.h
URL: http://svn.digium.com/svn-view/asterisk/trunk/include/asterisk/astobj2.h?view=diff&rev=182826&r1=182825&r2=182826
==============================================================================
--- trunk/include/asterisk/astobj2.h (original)
+++ trunk/include/asterisk/astobj2.h Tue Mar 17 21:21:23 2009
@@ -402,17 +402,17 @@
#ifdef REF_DEBUG
-#define ao2_t_alloc(arg1, arg2, arg3) _ao2_alloc_debug((arg1), (arg2), (arg3), __FILE__, __LINE__, __PRETTY_FUNCTION__)
-#define ao2_alloc(arg1, arg2) _ao2_alloc_debug((arg1), (arg2), "", __FILE__, __LINE__, __PRETTY_FUNCTION__)
-
-#else
-
-#define ao2_t_alloc(arg1,arg2,arg3) _ao2_alloc((arg1), (arg2))
-#define ao2_alloc(arg1,arg2) _ao2_alloc((arg1), (arg2))
-
-#endif
-void *_ao2_alloc_debug(const size_t data_size, ao2_destructor_fn destructor_fn, char *tag, char *file, int line, const char *funcname);
-void *_ao2_alloc(const size_t data_size, ao2_destructor_fn destructor_fn);
+#define ao2_t_alloc(arg1, arg2, arg3) __ao2_alloc_debug((arg1), (arg2), (arg3), __FILE__, __LINE__, __PRETTY_FUNCTION__)
+#define ao2_alloc(arg1, arg2) __ao2_alloc_debug((arg1), (arg2), "", __FILE__, __LINE__, __PRETTY_FUNCTION__)
+
+#else
+
+#define ao2_t_alloc(arg1,arg2,arg3) __ao2_alloc((arg1), (arg2))
+#define ao2_alloc(arg1,arg2) __ao2_alloc((arg1), (arg2))
+
+#endif
+void *__ao2_alloc_debug(const size_t data_size, ao2_destructor_fn destructor_fn, char *tag, char *file, int line, const char *funcname);
+void *__ao2_alloc(const size_t data_size, ao2_destructor_fn destructor_fn);
/*! \brief
@@ -437,14 +437,14 @@
*/
#ifdef REF_DEBUG
-#define ao2_t_ref(arg1,arg2,arg3) _ao2_ref_debug((arg1), (arg2), (arg3), __FILE__, __LINE__, __PRETTY_FUNCTION__)
-#define ao2_ref(arg1,arg2) _ao2_ref_debug((arg1), (arg2), "", __FILE__, __LINE__, __PRETTY_FUNCTION__)
-#else
-#define ao2_t_ref(arg1,arg2,arg3) _ao2_ref((arg1), (arg2))
-#define ao2_ref(arg1,arg2) _ao2_ref((arg1), (arg2))
-#endif
-int _ao2_ref_debug(void *o, int delta, char *tag, char *file, int line, const char *funcname);
-int _ao2_ref(void *o, int delta);
+#define ao2_t_ref(arg1,arg2,arg3) __ao2_ref_debug((arg1), (arg2), (arg3), __FILE__, __LINE__, __PRETTY_FUNCTION__)
+#define ao2_ref(arg1,arg2) __ao2_ref_debug((arg1), (arg2), "", __FILE__, __LINE__, __PRETTY_FUNCTION__)
+#else
+#define ao2_t_ref(arg1,arg2,arg3) __ao2_ref((arg1), (arg2))
+#define ao2_ref(arg1,arg2) __ao2_ref((arg1), (arg2))
+#endif
+int __ao2_ref_debug(void *o, int delta, char *tag, char *file, int line, const char *funcname);
+int __ao2_ref(void *o, int delta);
/*! \brief
* Lock an object.
@@ -455,8 +455,8 @@
#ifndef DEBUG_THREADS
int ao2_lock(void *a);
#else
-#define ao2_lock(a) _ao2_lock(a, __FILE__, __PRETTY_FUNCTION__, __LINE__, #a)
-int _ao2_lock(void *a, const char *file, const char *func, int line, const char *var);
+#define ao2_lock(a) __ao2_lock(a, __FILE__, __PRETTY_FUNCTION__, __LINE__, #a)
+int __ao2_lock(void *a, const char *file, const char *func, int line, const char *var);
#endif
/*! \brief
@@ -468,8 +468,8 @@
#ifndef DEBUG_THREADS
int ao2_unlock(void *a);
#else
-#define ao2_unlock(a) _ao2_unlock(a, __FILE__, __PRETTY_FUNCTION__, __LINE__, #a)
-int _ao2_unlock(void *a, const char *file, const char *func, int line, const char *var);
+#define ao2_unlock(a) __ao2_unlock(a, __FILE__, __PRETTY_FUNCTION__, __LINE__, #a)
+int __ao2_unlock(void *a, const char *file, const char *func, int line, const char *var);
#endif
/*! \brief
@@ -481,8 +481,8 @@
#ifndef DEBUG_THREADS
int ao2_trylock(void *a);
#else
-#define ao2_trylock(a) _ao2_trylock(a, __FILE__, __PRETTY_FUNCTION__, __LINE__, #a)
-int _ao2_trylock(void *a, const char *file, const char *func, int line, const char *var);
+#define ao2_trylock(a) __ao2_trylock(a, __FILE__, __PRETTY_FUNCTION__, __LINE__, #a)
+int __ao2_trylock(void *a, const char *file, const char *func, int line, const char *var);
#endif
/*!
@@ -686,15 +686,15 @@
*/
#ifdef REF_DEBUG
-#define ao2_t_container_alloc(arg1,arg2,arg3,arg4) _ao2_container_alloc_debug((arg1), (arg2), (arg3), (arg4), __FILE__, __LINE__, __PRETTY_FUNCTION__)
-#define ao2_container_alloc(arg1,arg2,arg3) _ao2_container_alloc_debug((arg1), (arg2), (arg3), "", __FILE__, __LINE__, __PRETTY_FUNCTION__)
-#else
-#define ao2_t_container_alloc(arg1,arg2,arg3,arg4) _ao2_container_alloc((arg1), (arg2), (arg3))
-#define ao2_container_alloc(arg1,arg2,arg3) _ao2_container_alloc((arg1), (arg2), (arg3))
-#endif
-struct ao2_container *_ao2_container_alloc(const unsigned int n_buckets,
+#define ao2_t_container_alloc(arg1,arg2,arg3,arg4) __ao2_container_alloc_debug((arg1), (arg2), (arg3), (arg4), __FILE__, __LINE__, __PRETTY_FUNCTION__)
+#define ao2_container_alloc(arg1,arg2,arg3) __ao2_container_alloc_debug((arg1), (arg2), (arg3), "", __FILE__, __LINE__, __PRETTY_FUNCTION__)
+#else
+#define ao2_t_container_alloc(arg1,arg2,arg3,arg4) __ao2_container_alloc((arg1), (arg2), (arg3))
+#define ao2_container_alloc(arg1,arg2,arg3) __ao2_container_alloc((arg1), (arg2), (arg3))
+#endif
+struct ao2_container *__ao2_container_alloc(const unsigned int n_buckets,
ao2_hash_fn *hash_fn, ao2_callback_fn *cmp_fn);
-struct ao2_container *_ao2_container_alloc_debug(const unsigned int n_buckets,
+struct ao2_container *__ao2_container_alloc_debug(const unsigned int n_buckets,
ao2_hash_fn *hash_fn, ao2_callback_fn *cmp_fn,
char *tag, char *file, int line, const char *funcname);
@@ -730,14 +730,14 @@
*/
#ifdef REF_DEBUG
-#define ao2_t_link(arg1, arg2, arg3) _ao2_link_debug((arg1), (arg2), (arg3), __FILE__, __LINE__, __PRETTY_FUNCTION__)
-#define ao2_link(arg1, arg2) _ao2_link_debug((arg1), (arg2), "", __FILE__, __LINE__, __PRETTY_FUNCTION__)
-#else
-#define ao2_t_link(arg1, arg2, arg3) _ao2_link((arg1), (arg2))
-#define ao2_link(arg1, arg2) _ao2_link((arg1), (arg2))
-#endif
-void *_ao2_link_debug(struct ao2_container *c, void *new_obj, char *tag, char *file, int line, const char *funcname);
-void *_ao2_link(struct ao2_container *c, void *newobj);
+#define ao2_t_link(arg1, arg2, arg3) __ao2_link_debug((arg1), (arg2), (arg3), __FILE__, __LINE__, __PRETTY_FUNCTION__)
+#define ao2_link(arg1, arg2) __ao2_link_debug((arg1), (arg2), "", __FILE__, __LINE__, __PRETTY_FUNCTION__)
+#else
+#define ao2_t_link(arg1, arg2, arg3) __ao2_link((arg1), (arg2))
+#define ao2_link(arg1, arg2) __ao2_link((arg1), (arg2))
+#endif
+void *__ao2_link_debug(struct ao2_container *c, void *new_obj, char *tag, char *file, int line, const char *funcname);
+void *__ao2_link(struct ao2_container *c, void *newobj);
/*!
* \brief Remove an object from the container
@@ -756,14 +756,14 @@
* refcount will be decremented).
*/
#ifdef REF_DEBUG
-#define ao2_t_unlink(arg1, arg2, arg3) _ao2_unlink_debug((arg1), (arg2), (arg3), __FILE__, __LINE__, __PRETTY_FUNCTION__)
-#define ao2_unlink(arg1, arg2) _ao2_unlink_debug((arg1), (arg2), "", __FILE__, __LINE__, __PRETTY_FUNCTION__)
-#else
-#define ao2_t_unlink(arg1, arg2, arg3) _ao2_unlink((arg1), (arg2))
-#define ao2_unlink(arg1, arg2) _ao2_unlink((arg1), (arg2))
-#endif
-void *_ao2_unlink_debug(struct ao2_container *c, void *obj, char *tag, char *file, int line, const char *funcname);
-void *_ao2_unlink(struct ao2_container *c, void *obj);
+#define ao2_t_unlink(arg1, arg2, arg3) __ao2_unlink_debug((arg1), (arg2), (arg3), __FILE__, __LINE__, __PRETTY_FUNCTION__)
+#define ao2_unlink(arg1, arg2) __ao2_unlink_debug((arg1), (arg2), "", __FILE__, __LINE__, __PRETTY_FUNCTION__)
+#else
+#define ao2_t_unlink(arg1, arg2, arg3) __ao2_unlink((arg1), (arg2))
+#define ao2_unlink(arg1, arg2) __ao2_unlink((arg1), (arg2))
+#endif
+void *__ao2_unlink_debug(struct ao2_container *c, void *obj, char *tag, char *file, int line, const char *funcname);
+void *__ao2_unlink(struct ao2_container *c, void *obj);
/*! \brief Used as return value if the flag OBJ_MULTIPLE is set */
@@ -851,16 +851,16 @@
* be used to free the additional reference possibly created by this function.
*/
#ifdef REF_DEBUG
-#define ao2_t_callback(arg1,arg2,arg3,arg4,arg5) _ao2_callback_debug((arg1), (arg2), (arg3), (arg4), (arg5), __FILE__, __LINE__, __PRETTY_FUNCTION__)
-#define ao2_callback(arg1,arg2,arg3,arg4) _ao2_callback_debug((arg1), (arg2), (arg3), (arg4), "", __FILE__, __LINE__, __PRETTY_FUNCTION__)
-#else
-#define ao2_t_callback(arg1,arg2,arg3,arg4,arg5) _ao2_callback((arg1), (arg2), (arg3), (arg4))
-#define ao2_callback(arg1,arg2,arg3,arg4) _ao2_callback((arg1), (arg2), (arg3), (arg4))
-#endif
-void *_ao2_callback_debug(struct ao2_container *c, enum search_flags flags,
+#define ao2_t_callback(arg1,arg2,arg3,arg4,arg5) __ao2_callback_debug((arg1), (arg2), (arg3), (arg4), (arg5), __FILE__, __LINE__, __PRETTY_FUNCTION__)
+#define ao2_callback(arg1,arg2,arg3,arg4) __ao2_callback_debug((arg1), (arg2), (arg3), (arg4), "", __FILE__, __LINE__, __PRETTY_FUNCTION__)
+#else
+#define ao2_t_callback(arg1,arg2,arg3,arg4,arg5) __ao2_callback((arg1), (arg2), (arg3), (arg4))
+#define ao2_callback(arg1,arg2,arg3,arg4) __ao2_callback((arg1), (arg2), (arg3), (arg4))
+#endif
+void *__ao2_callback_debug(struct ao2_container *c, enum search_flags flags,
ao2_callback_fn *cb_fn, void *arg, char *tag,
char *file, int line, const char *funcname);
-void *_ao2_callback(struct ao2_container *c,
+void *__ao2_callback(struct ao2_container *c,
enum search_flags flags,
ao2_callback_fn *cb_fn, void *arg);
@@ -880,16 +880,16 @@
* \see ao2_callback()
*/
#ifdef REF_DEBUG
-#define ao2_t_callback_data(arg1,arg2,arg3,arg4,arg5,arg6) _ao2_callback_data_debug((arg1), (arg2), (arg3), (arg4), (arg5), (arg6), __FILE__, __LINE__, __PRETTY_FUNCTION__)
-#define ao2_callback_data(arg1,arg2,arg3,arg4,arg5) _ao2_callback_data_debug((arg1), (arg2), (arg3), (arg4), (arg5), "", __FILE__, __LINE__, __PRETTY_FUNCTION__)
-#else
-#define ao2_t_callback_data(arg1,arg2,arg3,arg4,arg5,arg6) _ao2_callback_data((arg1), (arg2), (arg3), (arg4), (arg5))
-#define ao2_callback_data(arg1,arg2,arg3,arg4,arg5) _ao2_callback_data((arg1), (arg2), (arg3), (arg4), (arg5))
-#endif
-void *_ao2_callback_data_debug(struct ao2_container *c, enum search_flags flags,
+#define ao2_t_callback_data(arg1,arg2,arg3,arg4,arg5,arg6) __ao2_callback_data_debug((arg1), (arg2), (arg3), (arg4), (arg5), (arg6), __FILE__, __LINE__, __PRETTY_FUNCTION__)
+#define ao2_callback_data(arg1,arg2,arg3,arg4,arg5) __ao2_callback_data_debug((arg1), (arg2), (arg3), (arg4), (arg5), "", __FILE__, __LINE__, __PRETTY_FUNCTION__)
+#else
+#define ao2_t_callback_data(arg1,arg2,arg3,arg4,arg5,arg6) __ao2_callback_data((arg1), (arg2), (arg3), (arg4), (arg5))
+#define ao2_callback_data(arg1,arg2,arg3,arg4,arg5) __ao2_callback_data((arg1), (arg2), (arg3), (arg4), (arg5))
+#endif
+void *__ao2_callback_data_debug(struct ao2_container *c, enum search_flags flags,
ao2_callback_data_fn *cb_fn, void *arg, void *data, char *tag,
char *file, int line, const char *funcname);
-void *_ao2_callback_data(struct ao2_container *c,
+void *__ao2_callback_data(struct ao2_container *c,
enum search_flags flags,
ao2_callback_data_fn *cb_fn, void *arg, void *data);
@@ -897,14 +897,14 @@
* XXX possibly change order of arguments ?
*/
#ifdef REF_DEBUG
-#define ao2_t_find(arg1,arg2,arg3,arg4) _ao2_find_debug((arg1), (arg2), (arg3), (arg4), __FILE__, __LINE__, __PRETTY_FUNCTION__)
-#define ao2_find(arg1,arg2,arg3) _ao2_find_debug((arg1), (arg2), (arg3), "", __FILE__, __LINE__, __PRETTY_FUNCTION__)
-#else
-#define ao2_t_find(arg1,arg2,arg3,arg4) _ao2_find((arg1), (arg2), (arg3))
-#define ao2_find(arg1,arg2,arg3) _ao2_find((arg1), (arg2), (arg3))
-#endif
-void *_ao2_find_debug(struct ao2_container *c, void *arg, enum search_flags flags, char *tag, char *file, int line, const char *funcname);
-void *_ao2_find(struct ao2_container *c, void *arg, enum search_flags flags);
+#define ao2_t_find(arg1,arg2,arg3,arg4) __ao2_find_debug((arg1), (arg2), (arg3), (arg4), __FILE__, __LINE__, __PRETTY_FUNCTION__)
+#define ao2_find(arg1,arg2,arg3) __ao2_find_debug((arg1), (arg2), (arg3), "", __FILE__, __LINE__, __PRETTY_FUNCTION__)
+#else
+#define ao2_t_find(arg1,arg2,arg3,arg4) __ao2_find((arg1), (arg2), (arg3))
+#define ao2_find(arg1,arg2,arg3) __ao2_find((arg1), (arg2), (arg3))
+#endif
+void *__ao2_find_debug(struct ao2_container *c, void *arg, enum search_flags flags, char *tag, char *file, int line, const char *funcname);
+void *__ao2_find(struct ao2_container *c, void *arg, enum search_flags flags);
/*! \brief
*
@@ -1003,14 +1003,14 @@
struct ao2_iterator ao2_iterator_init(struct ao2_container *c, int flags);
#ifdef REF_DEBUG
-#define ao2_t_iterator_next(arg1, arg2) _ao2_iterator_next_debug((arg1), (arg2), __FILE__, __LINE__, __PRETTY_FUNCTION__)
-#define ao2_iterator_next(arg1) _ao2_iterator_next_debug((arg1), "", __FILE__, __LINE__, __PRETTY_FUNCTION__)
-#else
-#define ao2_t_iterator_next(arg1, arg2) _ao2_iterator_next((arg1))
-#define ao2_iterator_next(arg1) _ao2_iterator_next((arg1))
-#endif
-void *_ao2_iterator_next_debug(struct ao2_iterator *a, char *tag, char *file, int line, const char *funcname);
-void *_ao2_iterator_next(struct ao2_iterator *a);
+#define ao2_t_iterator_next(arg1, arg2) __ao2_iterator_next_debug((arg1), (arg2), __FILE__, __LINE__, __PRETTY_FUNCTION__)
+#define ao2_iterator_next(arg1) __ao2_iterator_next_debug((arg1), "", __FILE__, __LINE__, __PRETTY_FUNCTION__)
+#else
+#define ao2_t_iterator_next(arg1, arg2) __ao2_iterator_next((arg1))
+#define ao2_iterator_next(arg1) __ao2_iterator_next((arg1))
+#endif
+void *__ao2_iterator_next_debug(struct ao2_iterator *a, char *tag, char *file, int line, const char *funcname);
+void *__ao2_iterator_next(struct ao2_iterator *a);
/* extra functions */
void ao2_bt(void); /* backtrace */
Modified: trunk/main/Makefile
URL: http://svn.digium.com/svn-view/asterisk/trunk/main/Makefile?view=diff&rev=182826&r1=182825&r2=182826
==============================================================================
--- trunk/main/Makefile (original)
+++ trunk/main/Makefile Tue Mar 17 21:21:23 2009
@@ -111,6 +111,10 @@
endif
endif
+ifeq ($(GNU_LD),1)
+ASTLINK+=-Wl,--version-script,asterisk.exports
+endif
+
CHECK_SUBDIR: # do nothing, just make sure that we recurse in the subdir/
editline/libedit.a: CHECK_SUBDIR
@@ -171,15 +175,14 @@
GMIMELDFLAGS+=$(GMIME_LIB)
endif
-$(MAIN_TGT): $(OBJS) editline/libedit.a db1-ast/libdb1.a $(AST_EMBED_LDSCRIPTS)
+$(MAIN_TGT): $(OBJS) editline/libedit.a db1-ast/libdb1.a $(AST_EMBED_LDSCRIPTS) asterisk.exports
@$(CC) -c -o buildinfo.o $(ASTCFLAGS) buildinfo.c
- $(ECHO_PREFIX) echo " [LD] $^ -> $@"
+ $(ECHO_PREFIX) echo " [LD] $(OBJS) editline/libedit.a db1-ast/libdb1.a $(AST_EMBED_LDSCRIPTS) -> $@"
ifneq ($(findstring chan_h323,$(MENUSELECT_CHANNELS)),)
- $(CMD_PREFIX) $(CC) $(STATIC_BUILD) -o $@ $(ASTLINK) $(AST_EMBED_LDFLAGS) $(ASTLDFLAGS) $^ buildinfo.o $(AST_LIBS) $(AST_EMBED_LIBS) $(GMIMELDFLAGS)
+ $(CMD_PREFIX) $(CC) $(STATIC_BUILD) -o $@ $(ASTLINK) $(AST_EMBED_LDFLAGS) $(ASTLDFLAGS) $(OBJS) editline/libedit.a db1-ast/libdb1.a $(AST_EMBED_LDSCRIPTS) buildinfo.o $(AST_LIBS) $(AST_EMBED_LIBS) $(GMIMELDFLAGS)
else
- $(CMD_PREFIX) $(CXX) $(STATIC_BUILD) -o $@ $(ASTLINK) $(AST_EMBED_LDFLAGS) $(ASTLDFLAGS) $(H323LDFLAGS) $^ buildinfo.o $(AST_LIBS) $(AST_EMBED_LIBS) $(H323LDLIBS) $(GMIMELDFLAGS)
+ $(CMD_PREFIX) $(CXX) $(STATIC_BUILD) -o $@ $(ASTLINK) $(AST_EMBED_LDFLAGS) $(ASTLDFLAGS) $(H323LDFLAGS) $(OBJS) editline/libedit.a db1-ast/libdb1.a $(AST_EMBED_LDSCRIPTS) buildinfo.o $(AST_LIBS) $(AST_EMBED_LIBS) $(H323LDLIBS) $(GMIMELDFLAGS)
endif
- $(CMD_PREFIX) $(ASTTOPDIR)/build_tools/strip_nonapi $@ || rm $@
clean::
rm -f asterisk
Modified: trunk/main/astobj2.c
URL: http://svn.digium.com/svn-view/asterisk/trunk/main/astobj2.c?view=diff&rev=182826&r1=182825&r2=182826
==============================================================================
--- trunk/main/astobj2.c (original)
+++ trunk/main/astobj2.c Tue Mar 17 21:21:23 2009
@@ -134,20 +134,20 @@
/* the underlying functions common to debug and non-debug versions */
-static int __ao2_ref(void *user_data, const int delta);
-static void *__ao2_alloc(size_t data_size, ao2_destructor_fn destructor_fn);
-static struct ao2_container *__ao2_container_alloc(struct ao2_container *c, const uint n_buckets, ao2_hash_fn *hash_fn,
- ao2_callback_fn *cmp_fn);
-static struct bucket_list *__ao2_link(struct ao2_container *c, void *user_data, const char *file, int line, const char *func);
-static void *__ao2_callback(struct ao2_container *c,
- const enum search_flags flags, void *cb_fn, void *arg, void *data, enum ao2_callback_type type,
- char *tag, char *file, int line, const char *funcname);
-static void * __ao2_iterator_next(struct ao2_iterator *a, struct bucket_list **q);
+static int internal_ao2_ref(void *user_data, const int delta);
+static void *internal_ao2_alloc(size_t data_size, ao2_destructor_fn destructor_fn);
+static struct ao2_container *internal_ao2_container_alloc(struct ao2_container *c, const uint n_buckets, ao2_hash_fn *hash_fn,
+ ao2_callback_fn *cmp_fn);
+static struct bucket_list *internal_ao2_link(struct ao2_container *c, void *user_data, const char *file, int line, const char *func);
+static void *internal_ao2_callback(struct ao2_container *c,
+ const enum search_flags flags, void *cb_fn, void *arg, void *data, enum ao2_callback_type type,
+ char *tag, char *file, int line, const char *funcname);
+static void *internal_ao2_iterator_next(struct ao2_iterator *a, struct bucket_list **q);
#ifndef DEBUG_THREADS
int ao2_lock(void *user_data)
#else
-int _ao2_lock(void *user_data, const char *file, const char *func, int line, const char *var)
+int __ao2_lock(void *user_data, const char *file, const char *func, int line, const char *var)
#endif
{
struct astobj2 *p = INTERNAL_OBJ(user_data);
@@ -169,7 +169,7 @@
#ifndef DEBUG_THREADS
int ao2_unlock(void *user_data)
#else
-int _ao2_unlock(void *user_data, const char *file, const char *func, int line, const char *var)
+int __ao2_unlock(void *user_data, const char *file, const char *func, int line, const char *var)
#endif
{
struct astobj2 *p = INTERNAL_OBJ(user_data);
@@ -191,7 +191,7 @@
#ifndef DEBUG_THREADS
int ao2_trylock(void *user_data)
#else
-int _ao2_trylock(void *user_data, const char *file, const char *func, int line, const char *var)
+int __ao2_trylock(void *user_data, const char *file, const char *func, int line, const char *var)
#endif
{
struct astobj2 *p = INTERNAL_OBJ(user_data);
@@ -227,7 +227,7 @@
*/
-int _ao2_ref_debug(void *user_data, const int delta, char *tag, char *file, int line, const char *funcname)
+int __ao2_ref_debug(void *user_data, const int delta, char *tag, char *file, int line, const char *funcname)
{
struct astobj2 *obj = INTERNAL_OBJ(user_data);
@@ -244,20 +244,20 @@
fprintf(refo, "%p **call destructor** %s:%d:%s (%s)\n", user_data, file, line, funcname, tag);
fclose(refo);
}
- return __ao2_ref(user_data, delta);
-}
-
-int _ao2_ref(void *user_data, const int delta)
+ return internal_ao2_ref(user_data, delta);
+}
+
+int __ao2_ref(void *user_data, const int delta)
{
struct astobj2 *obj = INTERNAL_OBJ(user_data);
if (obj == NULL)
return -1;
- return __ao2_ref(user_data, delta);
-}
-
-static int __ao2_ref(void *user_data, const int delta)
+ return internal_ao2_ref(user_data, delta);
+}
+
+static int internal_ao2_ref(void *user_data, const int delta)
{
struct astobj2 *obj = INTERNAL_OBJ(user_data);
int current_value;
@@ -303,7 +303,7 @@
* We always alloc at least the size of a void *,
* for debugging purposes.
*/
-static void *__ao2_alloc(size_t data_size, ao2_destructor_fn destructor_fn)
+static void *internal_ao2_alloc(size_t data_size, ao2_destructor_fn destructor_fn)
{
/* allocation */
struct astobj2 *obj;
@@ -332,13 +332,13 @@
return EXTERNAL_OBJ(obj);
}
-void *_ao2_alloc_debug(size_t data_size, ao2_destructor_fn destructor_fn, char *tag, char *file, int line, const char *funcname)
+void *__ao2_alloc_debug(size_t data_size, ao2_destructor_fn destructor_fn, char *tag, char *file, int line, const char *funcname)
{
/* allocation */
void *obj;
FILE *refo = fopen(REF_FILE,"a");
- obj = __ao2_alloc(data_size, destructor_fn);
+ obj = internal_ao2_alloc(data_size, destructor_fn);
if (obj == NULL)
return NULL;
@@ -352,9 +352,9 @@
return obj;
}
-void *_ao2_alloc(size_t data_size, ao2_destructor_fn destructor_fn)
-{
- return __ao2_alloc(data_size, destructor_fn);
+void *__ao2_alloc(size_t data_size, ao2_destructor_fn destructor_fn)
+{
+ return internal_ao2_alloc(data_size, destructor_fn);
}
@@ -418,8 +418,8 @@
/*
* A container is just an object, after all!
*/
-static struct ao2_container *__ao2_container_alloc(struct ao2_container *c, const unsigned int n_buckets, ao2_hash_fn *hash_fn,
- ao2_callback_fn *cmp_fn)
+static struct ao2_container *internal_ao2_container_alloc(struct ao2_container *c, const unsigned int n_buckets, ao2_hash_fn *hash_fn,
+ ao2_callback_fn *cmp_fn)
{
/* XXX maybe consistency check on arguments ? */
/* compute the container size */
@@ -439,28 +439,27 @@
return c;
}
-struct ao2_container *_ao2_container_alloc_debug(const unsigned int n_buckets, ao2_hash_fn *hash_fn,
- ao2_callback_fn *cmp_fn, char *tag, char *file, int line, const char *funcname)
+struct ao2_container *__ao2_container_alloc_debug(const unsigned int n_buckets, ao2_hash_fn *hash_fn,
+ ao2_callback_fn *cmp_fn, char *tag, char *file, int line, const char *funcname)
{
/* XXX maybe consistency check on arguments ? */
/* compute the container size */
size_t container_size = sizeof(struct ao2_container) + n_buckets * sizeof(struct bucket);
- struct ao2_container *c = _ao2_alloc_debug(container_size, container_destruct_debug, tag, file, line, funcname);
-
- return __ao2_container_alloc(c, n_buckets, hash_fn, cmp_fn);
-}
-
-struct ao2_container *
-_ao2_container_alloc(const unsigned int n_buckets, ao2_hash_fn *hash_fn,
- ao2_callback_fn *cmp_fn)
+ struct ao2_container *c = __ao2_alloc_debug(container_size, container_destruct_debug, tag, file, line, funcname);
+
+ return internal_ao2_container_alloc(c, n_buckets, hash_fn, cmp_fn);
+}
+
+struct ao2_container *__ao2_container_alloc(const unsigned int n_buckets, ao2_hash_fn *hash_fn,
+ ao2_callback_fn *cmp_fn)
{
/* XXX maybe consistency check on arguments ? */
/* compute the container size */
size_t container_size = sizeof(struct ao2_container) + n_buckets * sizeof(struct bucket);
- struct ao2_container *c = _ao2_alloc(container_size, container_destruct);
-
- return __ao2_container_alloc(c, n_buckets, hash_fn, cmp_fn);
+ struct ao2_container *c = __ao2_alloc(container_size, container_destruct);
+
+ return internal_ao2_container_alloc(c, n_buckets, hash_fn, cmp_fn);
}
/*!
@@ -486,7 +485,7 @@
* link an object to a container
*/
-static struct bucket_list *__ao2_link(struct ao2_container *c, void *user_data, const char *file, int line, const char *func)
+static struct bucket_list *internal_ao2_link(struct ao2_container *c, void *user_data, const char *file, int line, const char *func)
{
int i;
/* create a new list entry */
@@ -516,23 +515,23 @@
return p;
}
-void *_ao2_link_debug(struct ao2_container *c, void *user_data, char *tag, char *file, int line, const char *funcname)
-{
- struct bucket_list *p = __ao2_link(c, user_data, file, line, funcname);
+void *__ao2_link_debug(struct ao2_container *c, void *user_data, char *tag, char *file, int line, const char *funcname)
+{
+ struct bucket_list *p = internal_ao2_link(c, user_data, file, line, funcname);
if (p) {
- _ao2_ref_debug(user_data, +1, tag, file, line, funcname);
+ __ao2_ref_debug(user_data, +1, tag, file, line, funcname);
ao2_unlock(c);
}
return p;
}
-void *_ao2_link(struct ao2_container *c, void *user_data)
-{
- struct bucket_list *p = __ao2_link(c, user_data, __FILE__, __LINE__, __PRETTY_FUNCTION__);
+void *__ao2_link(struct ao2_container *c, void *user_data)
+{
+ struct bucket_list *p = internal_ao2_link(c, user_data, __FILE__, __LINE__, __PRETTY_FUNCTION__);
if (p) {
- _ao2_ref(user_data, +1);
+ __ao2_ref(user_data, +1);
ao2_unlock(c);
}
return p;
@@ -550,23 +549,23 @@
* Unlink an object from the container
* and destroy the associated * ao2_bucket_list structure.
*/
-void *_ao2_unlink_debug(struct ao2_container *c, void *user_data, char *tag,
- char *file, int line, const char *funcname)
+void *__ao2_unlink_debug(struct ao2_container *c, void *user_data, char *tag,
+ char *file, int line, const char *funcname)
{
if (INTERNAL_OBJ(user_data) == NULL) /* safety check on the argument */
return NULL;
- _ao2_callback_debug(c, OBJ_UNLINK | OBJ_POINTER | OBJ_NODATA, ao2_match_by_addr, user_data, tag, file, line, funcname);
+ __ao2_callback_debug(c, OBJ_UNLINK | OBJ_POINTER | OBJ_NODATA, ao2_match_by_addr, user_data, tag, file, line, funcname);
return NULL;
}
-void *_ao2_unlink(struct ao2_container *c, void *user_data)
+void *__ao2_unlink(struct ao2_container *c, void *user_data)
{
if (INTERNAL_OBJ(user_data) == NULL) /* safety check on the argument */
return NULL;
- _ao2_callback(c, OBJ_UNLINK | OBJ_POINTER | OBJ_NODATA, ao2_match_by_addr, user_data);
+ __ao2_callback(c, OBJ_UNLINK | OBJ_POINTER | OBJ_NODATA, ao2_match_by_addr, user_data);
return NULL;
}
@@ -595,9 +594,9 @@
* aren't an excessive load to the system, as the callback should not be
* called as often as, say, the ao2_ref func is called.
*/
-static void *__ao2_callback(struct ao2_container *c,
- const enum search_flags flags, void *cb_fn, void *arg, void *data, enum ao2_callback_type type,
- char *tag, char *file, int line, const char *funcname)
+static void *internal_ao2_callback(struct ao2_container *c,
+ const enum search_flags flags, void *cb_fn, void *arg, void *data, enum ao2_callback_type type,
+ char *tag, char *file, int line, const char *funcname)
{
int i, last; /* search boundaries */
void *ret = NULL;
@@ -675,9 +674,9 @@
/* it is important to handle this case before the unlink */
ret = EXTERNAL_OBJ(cur->astobj);
if (tag)
- _ao2_ref_debug(ret, 1, tag, file, line, funcname);
+ __ao2_ref_debug(ret, 1, tag, file, line, funcname);
else
- _ao2_ref(ret, 1);
+ __ao2_ref(ret, 1);
}
if (flags & OBJ_UNLINK) { /* must unlink */
@@ -689,9 +688,9 @@
/* update number of elements and version */
ast_atomic_fetchadd_int(&c->elements, -1);
if (tag)
- _ao2_ref_debug(EXTERNAL_OBJ(x->astobj), -1, tag, file, line, funcname);
+ __ao2_ref_debug(EXTERNAL_OBJ(x->astobj), -1, tag, file, line, funcname);
else
- _ao2_ref(EXTERNAL_OBJ(x->astobj), -1);
+ __ao2_ref(EXTERNAL_OBJ(x->astobj), -1);
free(x); /* free the link record */
}
@@ -715,45 +714,45 @@
return ret;
}
-void *_ao2_callback_debug(struct ao2_container *c,
- const enum search_flags flags,
- ao2_callback_fn *cb_fn, void *arg,
- char *tag, char *file, int line, const char *funcname)
-{
- return __ao2_callback(c,flags, cb_fn, arg, NULL, DEFAULT, tag, file, line, funcname);
-}
-
-void *_ao2_callback(struct ao2_container *c, const enum search_flags flags,
- ao2_callback_fn *cb_fn, void *arg)
-{
- return __ao2_callback(c,flags, cb_fn, arg, NULL, DEFAULT, NULL, NULL, 0, NULL);
-}
-
-void *_ao2_callback_data_debug(struct ao2_container *c,
- const enum search_flags flags,
- ao2_callback_data_fn *cb_fn, void *arg, void *data,
- char *tag, char *file, int line, const char *funcname)
-{
- return __ao2_callback(c, flags, cb_fn, arg, data, WITH_DATA, tag, file, line, funcname);
-}
-
-void *_ao2_callback_data(struct ao2_container *c, const enum search_flags flags,
- ao2_callback_data_fn *cb_fn, void *arg, void *data)
-{
- return __ao2_callback(c, flags, cb_fn, arg, data, WITH_DATA, NULL, NULL, 0, NULL);
+void *__ao2_callback_debug(struct ao2_container *c,
+ const enum search_flags flags,
+ ao2_callback_fn *cb_fn, void *arg,
+ char *tag, char *file, int line, const char *funcname)
+{
+ return internal_ao2_callback(c,flags, cb_fn, arg, NULL, DEFAULT, tag, file, line, funcname);
+}
+
+void *__ao2_callback(struct ao2_container *c, const enum search_flags flags,
+ ao2_callback_fn *cb_fn, void *arg)
+{
+ return internal_ao2_callback(c,flags, cb_fn, arg, NULL, DEFAULT, NULL, NULL, 0, NULL);
+}
+
+void *__ao2_callback_data_debug(struct ao2_container *c,
+ const enum search_flags flags,
+ ao2_callback_data_fn *cb_fn, void *arg, void *data,
+ char *tag, char *file, int line, const char *funcname)
+{
+ return internal_ao2_callback(c, flags, cb_fn, arg, data, WITH_DATA, tag, file, line, funcname);
+}
+
+void *__ao2_callback_data(struct ao2_container *c, const enum search_flags flags,
+ ao2_callback_data_fn *cb_fn, void *arg, void *data)
+{
+ return internal_ao2_callback(c, flags, cb_fn, arg, data, WITH_DATA, NULL, NULL, 0, NULL);
}
/*!
* the find function just invokes the default callback with some reasonable flags.
*/
-void *_ao2_find_debug(struct ao2_container *c, void *arg, enum search_flags flags, char *tag, char *file, int line, const char *funcname)
-{
- return _ao2_callback_debug(c, flags, c->cmp_fn, arg, tag, file, line, funcname);
-}
-
-void *_ao2_find(struct ao2_container *c, void *arg, enum search_flags flags)
-{
- return _ao2_callback(c, flags, c->cmp_fn, arg);
+void *__ao2_find_debug(struct ao2_container *c, void *arg, enum search_flags flags, char *tag, char *file, int line, const char *funcname)
+{
+ return __ao2_callback_debug(c, flags, c->cmp_fn, arg, tag, file, line, funcname);
+}
+
+void *__ao2_find(struct ao2_container *c, void *arg, enum search_flags flags)
+{
+ return __ao2_callback(c, flags, c->cmp_fn, arg);
}
/*!
@@ -772,7 +771,7 @@
/*
* move to the next element in the container.
*/
-static void * __ao2_iterator_next(struct ao2_iterator *a, struct bucket_list **q)
+static void *internal_ao2_iterator_next(struct ao2_iterator *a, struct bucket_list **q)
{
int lim;
struct bucket_list *p = NULL;
@@ -827,16 +826,16 @@
return ret;
}
-void * _ao2_iterator_next_debug(struct ao2_iterator *a, char *tag, char *file, int line, const char *funcname)
+void *__ao2_iterator_next_debug(struct ao2_iterator *a, char *tag, char *file, int line, const char *funcname)
{
struct bucket_list *p;
void *ret = NULL;
- ret = __ao2_iterator_next(a, &p);
+ ret = internal_ao2_iterator_next(a, &p);
if (p) {
/* inc refcount of returned object */
- _ao2_ref_debug(ret, 1, tag, file, line, funcname);
+ __ao2_ref_debug(ret, 1, tag, file, line, funcname);
}
if (!(a->flags & F_AO2I_DONTLOCK))
@@ -845,16 +844,16 @@
return ret;
}
-void * _ao2_iterator_next(struct ao2_iterator *a)
+void *__ao2_iterator_next(struct ao2_iterator *a)
{
struct bucket_list *p = NULL;
void *ret = NULL;
- ret = __ao2_iterator_next(a, &p);
+ ret = internal_ao2_iterator_next(a, &p);
if (p) {
/* inc refcount of returned object */
- _ao2_ref(ret, 1);
+ __ao2_ref(ret, 1);
}
if (!(a->flags & F_AO2I_DONTLOCK))
@@ -868,13 +867,13 @@
*/
static int cd_cb(void *obj, void *arg, int flag)
{
- _ao2_ref(obj, -1);
+ __ao2_ref(obj, -1);
return 0;
}
static int cd_cb_debug(void *obj, void *arg, int flag)
{
- _ao2_ref_debug(obj, -1, "deref object via container destroy", __FILE__, __LINE__, __PRETTY_FUNCTION__);
+ __ao2_ref_debug(obj, -1, "deref object via container destroy", __FILE__, __LINE__, __PRETTY_FUNCTION__);
return 0;
}
@@ -883,7 +882,7 @@
struct ao2_container *c = _c;
int i;
- _ao2_callback(c, OBJ_UNLINK, cd_cb, NULL);
+ __ao2_callback(c, OBJ_UNLINK, cd_cb, NULL);
for (i = 0; i < c->n_buckets; i++) {
struct bucket_list *current;
@@ -903,7 +902,7 @@
struct ao2_container *c = _c;
int i;
- _ao2_callback_debug(c, OBJ_UNLINK, cd_cb_debug, NULL, "container_destruct_debug called", __FILE__, __LINE__, __PRETTY_FUNCTION__);
+ __ao2_callback_debug(c, OBJ_UNLINK, cd_cb_debug, NULL, "container_destruct_debug called", __FILE__, __LINE__, __PRETTY_FUNCTION__);
for (i = 0; i < c->n_buckets; i++) {
struct bucket_list *current;
Modified: trunk/makeopts.in
URL: http://svn.digium.com/svn-view/asterisk/trunk/makeopts.in?view=diff&rev=182826&r1=182825&r2=182826
==============================================================================
--- trunk/makeopts.in (original)
+++ trunk/makeopts.in Tue Mar 17 21:21:23 2009
@@ -47,6 +47,8 @@
PTHREAD_CFLAGS=@PTHREAD_CFLAGS@
PTHREAD_LIBS=@PTHREAD_LIBS@
+GNU_LD=@GNU_LD@
+
prefix = @prefix@
exec_prefix = @exec_prefix@
Modified: trunk/res/res_config_odbc.c
URL: http://svn.digium.com/svn-view/asterisk/trunk/res/res_config_odbc.c?view=diff&rev=182826&r1=182825&r2=182826
==============================================================================
--- trunk/res/res_config_odbc.c (original)
+++ trunk/res/res_config_odbc.c Tue Mar 17 21:21:23 2009
@@ -1067,7 +1067,7 @@
return 0;
}
-AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_GLOBAL_SYMBOLS, "Realtime ODBC configuration",
+AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_DEFAULT, "Realtime ODBC configuration",
.load = load_module,
.unload = unload_module,
.reload = reload_module,
Modified: trunk/res/res_config_pgsql.c
URL: http://svn.digium.com/svn-view/asterisk/trunk/res/res_config_pgsql.c?view=diff&rev=182826&r1=182825&r2=182826
==============================================================================
--- trunk/res/res_config_pgsql.c (original)
+++ trunk/res/res_config_pgsql.c Tue Mar 17 21:21:23 2009
@@ -1530,7 +1530,7 @@
}
/* 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
Modified: trunk/res/res_snmp.c
URL: http://svn.digium.com/svn-view/asterisk/trunk/res/res_snmp.c?view=diff&rev=182826&r1=182825&r2=182826
==============================================================================
--- trunk/res/res_snmp.c (original)
+++ trunk/res/res_snmp.c Tue Mar 17 21:21:23 2009
@@ -115,7 +115,7 @@
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,
);
More information about the asterisk-commits
mailing list