<p>George Joseph <strong>merged</strong> this change.</p><p><a href="https://gerrit.asterisk.org/9870">View Change</a></p><div style="white-space:pre-wrap">Approvals:
  Richard Mudgett: Looks good to me, but someone else must approve
  George Joseph: Looks good to me, approved; Approved for Submit

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">Build System: Improve ccache matching for different menuselect options.<br><br>Changing any Menuselect option in the `Compiler Flags` section causes a<br>full rebuild of the Asterisk source tree.  Every enabled option causes<br>a #define to be added to buildopts.h, thus breaking ccache caching for<br>every source file that includes "asterisk.h".  In most cases each option<br>only applies to one or two files.  Now we only define those options for<br>the specific sources which use them, this causes much better cache<br>matching when working with multiple builds.  For example testing code<br>with an without MALLOC_DEBUG will now use just over half the ccache<br>size, only main/astmm.o will have two builds cached instead of every<br>file.<br><br>Reorder main/Makefile so _ASTCFLAGS set on specific object files are all<br>together, sorted by filename.  Stop adding -DMALLOC_DEBUG to CFLAGS of<br>bundled pjproject, this define is no longer used by any header so only<br>serves to break cache.<br><br>The only code change is a slight adjustment to how main/astmm.c is<br>initialized.  Initialization functions always exist so main/asterisk.c<br>can call them unconditionally.  Additionally rename the astmm<br>initialization functions so they are not exported.<br><br>Change-Id: Ie2085237a964f6e1e6fff55ed046e2afff83c027<br>---<br>M Makefile.rules<br>M build_tools/make_buildopts_h<br>M channels/Makefile<br>M include/asterisk/_private.h<br>M include/asterisk/astmm.h<br>M main/Makefile<br>M main/asterisk.c<br>M main/astmm.c<br>M tests/Makefile<br>M third-party/pjproject/Makefile<br>M utils/Makefile<br>11 files changed, 75 insertions(+), 52 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/Makefile.rules b/Makefile.rules</span><br><span>index 7f917b4..b979927 100644</span><br><span>--- a/Makefile.rules</span><br><span>+++ b/Makefile.rules</span><br><span>@@ -20,6 +20,9 @@</span><br><span> # Helpful functions</span><br><span> # call with $(call function,...)</span><br><span> tolower = $(shell echo $(1) | tr '[:upper:]' '[:lower:]')</span><br><span style="color: hsl(120, 100%, 40%);">+# Takes a list of MENUSELECT_CFLAG Id and returns CFLAGS to declare</span><br><span style="color: hsl(120, 100%, 40%);">+# the ones which are enabled.</span><br><span style="color: hsl(120, 100%, 40%);">+get_menuselect_cflags=$(patsubst %,-D%,$(filter $1,$(MENUSELECT_CFLAGS)))</span><br><span> </span><br><span> .PHONY: dist-clean</span><br><span> </span><br><span>diff --git a/build_tools/make_buildopts_h b/build_tools/make_buildopts_h</span><br><span>index 57df27d..692e15b 100755</span><br><span>--- a/build_tools/make_buildopts_h</span><br><span>+++ b/build_tools/make_buildopts_h</span><br><span>@@ -20,21 +20,30 @@</span><br><span> </span><br><span> TMP=`${GREP} -e "^MENUSELECT_CFLAGS" menuselect.makeopts | sed 's/MENUSELECT_CFLAGS\=//g' | sed 's/-D//g'`</span><br><span> for x in ${TMP}; do</span><br><span style="color: hsl(0, 100%, 40%);">-    echo "#define ${x} 1"</span><br><span>      if test "${x}" = "AO2_DEBUG" \</span><br><span>                   -o "${x}" = "BETTER_BACKTRACES" \</span><br><span>                        -o "${x}" = "BUILD_NATIVE" \</span><br><span style="color: hsl(120, 100%, 40%);">+                      -o "${x}" = "COMPILE_DOUBLE" \</span><br><span style="color: hsl(120, 100%, 40%);">+                    -o "${x}" = "DEBUG_CHAOS" \</span><br><span>                      -o "${x}" = "DEBUG_SCHEDULER" \</span><br><span>                  -o "${x}" = "DETECT_DEADLOCKS" \</span><br><span>                         -o "${x}" = "DONT_OPTIMIZE" \</span><br><span>                    -o "${x}" = "DUMP_SCHEDULER" \</span><br><span>                   -o "${x}" = "LOTS_OF_SPANS" \</span><br><span style="color: hsl(0, 100%, 40%);">-                       -o "${x}" = "LOW_MEMORY" \</span><br><span>                       -o "${x}" = "MALLOC_DEBUG" \</span><br><span>                     -o "${x}" = "RADIO_RELAX" \</span><br><span>                      -o "${x}" = "REBUILD_PARSERS" \</span><br><span style="color: hsl(0, 100%, 40%);">-                     -o "${x}" = "REF_DEBUG" ; then</span><br><span style="color: hsl(0, 100%, 40%);">-              # These aren't ABI affecting options, keep them out of AST_BUILDOPTS</span><br><span style="color: hsl(120, 100%, 40%);">+                      -o "${x}" = "REF_DEBUG" \</span><br><span style="color: hsl(120, 100%, 40%);">+                 -o "${x}" = "USE_HOARD_ALLOCATOR" ; then</span><br><span style="color: hsl(120, 100%, 40%);">+          # These options are only for specific sources and have no effect on public ABI.</span><br><span style="color: hsl(120, 100%, 40%);">+               # Keep them out of buildopts.h so ccache does not invalidate all sources.</span><br><span style="color: hsl(120, 100%, 40%);">+             continue</span><br><span style="color: hsl(120, 100%, 40%);">+      fi</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+  echo "#define ${x} 1"</span><br><span style="color: hsl(120, 100%, 40%);">+       if test "${x}" = "LOW_MEMORY" ; then</span><br><span style="color: hsl(120, 100%, 40%);">+              # LOW_MEMORY isn't an ABI affecting option but it is used in many sources</span><br><span style="color: hsl(120, 100%, 40%);">+         # so it gets defined globally but is not included in AST_BUILTOPTS.</span><br><span>          continue</span><br><span>     fi</span><br><span>   if test "x${BUILDOPTS}" != "x" ; then</span><br><span>diff --git a/channels/Makefile b/channels/Makefile</span><br><span>index 6398d95..96421d8 100644</span><br><span>--- a/channels/Makefile</span><br><span>+++ b/channels/Makefile</span><br><span>@@ -29,6 +29,7 @@</span><br><span> $(call MOD_ADD_C,chan_dahdi,$(wildcard dahdi/*.c) sig_analog.c sig_pri.c sig_ss7.c)</span><br><span> $(call MOD_ADD_C,chan_misdn,misdn_config.c misdn/isdn_lib.c misdn/isdn_msg_parser.c)</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+chan_dahdi.o: _ASTCFLAGS+=$(call get_menuselect_cflags,LOTS_OF_SPANS)</span><br><span> chan_mgcp.o: _ASTCFLAGS+=$(AST_NO_FORMAT_TRUNCATION)</span><br><span> chan_unistim.o: _ASTCFLAGS+=$(AST_NO_FORMAT_TRUNCATION)</span><br><span> chan_phone.o: _ASTCFLAGS+=$(AST_NO_FORMAT_TRUNCATION)</span><br><span>diff --git a/include/asterisk/_private.h b/include/asterisk/_private.h</span><br><span>index 89a8f54..d954768 100644</span><br><span>--- a/include/asterisk/_private.h</span><br><span>+++ b/include/asterisk/_private.h</span><br><span>@@ -58,6 +58,22 @@</span><br><span> int dns_core_init(void);        /*!< Provided by dns_core.c */</span><br><span> </span><br><span> /*!</span><br><span style="color: hsl(120, 100%, 40%);">+ * \brief Initialize malloc debug phase 1.</span><br><span style="color: hsl(120, 100%, 40%);">+ *</span><br><span style="color: hsl(120, 100%, 40%);">+ * \note Must be called first thing after forking.</span><br><span style="color: hsl(120, 100%, 40%);">+ *</span><br><span style="color: hsl(120, 100%, 40%);">+ * \return Nothing</span><br><span style="color: hsl(120, 100%, 40%);">+ */</span><br><span style="color: hsl(120, 100%, 40%);">+void load_astmm_phase_1(void);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+/*!</span><br><span style="color: hsl(120, 100%, 40%);">+ * \brief Initialize malloc debug phase 2.</span><br><span style="color: hsl(120, 100%, 40%);">+ *</span><br><span style="color: hsl(120, 100%, 40%);">+ * \return Nothing</span><br><span style="color: hsl(120, 100%, 40%);">+ */</span><br><span style="color: hsl(120, 100%, 40%);">+void load_astmm_phase_2(void);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+/*!</span><br><span>  * \brief Initialize the bridging system.</span><br><span>  * \since 12.0.0</span><br><span>  *</span><br><span>diff --git a/include/asterisk/astmm.h b/include/asterisk/astmm.h</span><br><span>index 13ebe03..e1f91dd 100644</span><br><span>--- a/include/asterisk/astmm.h</span><br><span>+++ b/include/asterisk/astmm.h</span><br><span>@@ -31,13 +31,6 @@</span><br><span> #define _ASTERISK_ASTMM_H</span><br><span> /* IWYU pragma: private, include "asterisk.h" */</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-#if defined(MALLOC_DEBUG) && !defined(STANDALONE) && !defined(STANDALONE2)</span><br><span style="color: hsl(0, 100%, 40%);">-#define __AST_DEBUG_MALLOC</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-void __ast_mm_init_phase_1(void);</span><br><span style="color: hsl(0, 100%, 40%);">-void __ast_mm_init_phase_2(void);</span><br><span style="color: hsl(0, 100%, 40%);">-#endif</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span> void *ast_std_malloc(size_t size) attribute_malloc;</span><br><span> void *ast_std_calloc(size_t nmemb, size_t size) attribute_malloc;</span><br><span> void *ast_std_realloc(void *ptr, size_t size);</span><br><span>diff --git a/main/Makefile b/main/Makefile</span><br><span>index 0e29c84..1cb2c25 100644</span><br><span>--- a/main/Makefile</span><br><span>+++ b/main/Makefile</span><br><span>@@ -141,22 +141,34 @@</span><br><span>        $(CMD_PREFIX) cat $@.fix >> $@</span><br><span>         $(CMD_PREFIX) rm $@.fix</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-ast_expr2f.o: _ASTCFLAGS+=-Wno-unused</span><br><span style="color: hsl(0, 100%, 40%);">-cdr.o: _ASTCFLAGS+=$(AST_NO_FORMAT_TRUNCATION)</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-db.o: _ASTCFLAGS+=$(SQLITE3_INCLUDE)</span><br><span style="color: hsl(0, 100%, 40%);">-asterisk.o: _ASTCFLAGS+=$(LIBEDIT_INCLUDE)</span><br><span style="color: hsl(0, 100%, 40%);">-json.o: _ASTCFLAGS+=$(JANSSON_INCLUDE)</span><br><span style="color: hsl(0, 100%, 40%);">-bucket.o: _ASTCFLAGS+=$(URIPARSER_INCLUDE)</span><br><span style="color: hsl(0, 100%, 40%);">-crypt.o: _ASTCFLAGS+=$(CRYPT_INCLUDE)</span><br><span style="color: hsl(0, 100%, 40%);">-uuid.o: _ASTCFLAGS+=$(UUID_INCLUDE)</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span> ifneq ($(findstring ENABLE_UPLOADS,$(MENUSELECT_CFLAGS)),)</span><br><span style="color: hsl(0, 100%, 40%);">-http.o: _ASTCFLAGS+=$(GMIME_INCLUDE)</span><br><span style="color: hsl(120, 100%, 40%);">+GMIMELDFLAGS+=$(GMIME_LIB)</span><br><span style="color: hsl(120, 100%, 40%);">+GMIMECFLAGS+=$(GMIME_INCLUDE)</span><br><span> endif</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+# Alter CFLAGS for specific sources</span><br><span> stdtime/localtime.o: _ASTCFLAGS+=$(AST_NO_STRICT_OVERFLOW) -Wno-format-nonliteral</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+asterisk.o: _ASTCFLAGS+=$(LIBEDIT_INCLUDE)</span><br><span style="color: hsl(120, 100%, 40%);">+ast_expr2f.o: _ASTCFLAGS+=-Wno-unused</span><br><span style="color: hsl(120, 100%, 40%);">+astmm.o: _ASTCFLAGS+=$(call get_menuselect_cflags,MALLOC_DEBUG DEBUG_CHAOS)</span><br><span style="color: hsl(120, 100%, 40%);">+astobj2.o astobj2_container.o astobj2_hash.o astobj2_rbtree.o: _ASTCFLAGS+=$(call get_menuselect_cflags,AO2_DEBUG)</span><br><span style="color: hsl(120, 100%, 40%);">+backtrace.o: _ASTCFLAGS+=$(call get_menuselect_cflags,BETTER_BACKTRACES)</span><br><span style="color: hsl(120, 100%, 40%);">+bucket.o: _ASTCFLAGS+=$(URIPARSER_INCLUDE)</span><br><span style="color: hsl(120, 100%, 40%);">+cdr.o: _ASTCFLAGS+=$(AST_NO_FORMAT_TRUNCATION)</span><br><span style="color: hsl(120, 100%, 40%);">+crypt.o: _ASTCFLAGS+=$(CRYPT_INCLUDE)</span><br><span style="color: hsl(120, 100%, 40%);">+db.o: _ASTCFLAGS+=$(SQLITE3_INCLUDE)</span><br><span style="color: hsl(120, 100%, 40%);">+dsp.o: _ASTCFLAGS+=$(call get_menuselect_cflags,RADIO_RELAX)</span><br><span style="color: hsl(120, 100%, 40%);">+http.o: _ASTCFLAGS+=$(GMIMECFLAGS)</span><br><span style="color: hsl(120, 100%, 40%);">+iostream.o: _ASTCFLAGS+=$(OPENSSL_INCLUDE)</span><br><span style="color: hsl(120, 100%, 40%);">+json.o: _ASTCFLAGS+=$(JANSSON_INCLUDE)</span><br><span style="color: hsl(120, 100%, 40%);">+lock.o: _ASTCFLAGS+=$(call get_menuselect_cflags,DETECT_DEADLOCKS)</span><br><span style="color: hsl(120, 100%, 40%);">+options.o: _ASTCFLAGS+=$(call get_menuselect_cflags,REF_DEBUG)</span><br><span style="color: hsl(120, 100%, 40%);">+sched.o: _ASTCFLAGS+=$(call get_menuselect_cflags,DEBUG_SCHEDULER DUMP_SCHEDULER)</span><br><span style="color: hsl(120, 100%, 40%);">+tcptls.o: _ASTCFLAGS+=$(OPENSSL_INCLUDE) -Wno-deprecated-declarations</span><br><span style="color: hsl(120, 100%, 40%);">+uuid.o: _ASTCFLAGS+=$(UUID_INCLUDE)</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> OBJS:=$(sort $(OBJS))</span><br><span> </span><br><span> ifneq ($(findstring $(OSARCH), mingw32 cygwin ),)</span><br><span>@@ -169,10 +181,6 @@</span><br><span> MAIN_TGT:=asterisk</span><br><span> endif</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-ifneq ($(findstring ENABLE_UPLOADS,$(MENUSELECT_CFLAGS)),)</span><br><span style="color: hsl(0, 100%, 40%);">-GMIMELDFLAGS+=$(GMIME_LIB)</span><br><span style="color: hsl(0, 100%, 40%);">-endif</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span> $(OBJS): _ASTCFLAGS+=-DAST_MODULE=\"core\" -DAST_IN_CORE</span><br><span> $(MOD_OBJS): _ASTCFLAGS+=$(call MOD_ASTCFLAGS,$*)</span><br><span> </span><br><span>@@ -306,9 +314,6 @@</span><br><span> </span><br><span> endif</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-iostream.o: _ASTCFLAGS+=$(OPENSSL_INCLUDE)</span><br><span style="color: hsl(0, 100%, 40%);">-tcptls.o: _ASTCFLAGS+=$(OPENSSL_INCLUDE) -Wno-deprecated-declarations</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span> $(MAIN_TGT): $(OBJS) $(MOD_OBJS) $(ASTSSL_LIB) $(ASTPJ_LIB)</span><br><span>    @$(CC) -c -o buildinfo.o $(_ASTCFLAGS) buildinfo.c $(ASTCFLAGS)</span><br><span>      $(ECHO_PREFIX) echo "   [LD] $(OBJS) $(MOD_OBJS) -> $@"</span><br><span>diff --git a/main/asterisk.c b/main/asterisk.c</span><br><span>index 8fa1c19..3354724 100644</span><br><span>--- a/main/asterisk.c</span><br><span>+++ b/main/asterisk.c</span><br><span>@@ -3961,9 +3961,7 @@</span><br><span>         * an Asterisk instance, and that there isn't one already running. */</span><br><span>    multi_thread_safe = 1;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-#if defined(__AST_DEBUG_MALLOC)</span><br><span style="color: hsl(0, 100%, 40%);">-       __ast_mm_init_phase_1();</span><br><span style="color: hsl(0, 100%, 40%);">-#endif  /* defined(__AST_DEBUG_MALLOC) */</span><br><span style="color: hsl(120, 100%, 40%);">+     load_astmm_phase_1();</span><br><span> </span><br><span>    /* Check whether high prio was succesfully set by us or some</span><br><span>          * other incantation. */</span><br><span>@@ -4168,9 +4166,7 @@</span><br><span> </span><br><span>         pthread_sigmask(SIG_UNBLOCK, &sigs, NULL);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-#if defined(__AST_DEBUG_MALLOC)</span><br><span style="color: hsl(0, 100%, 40%);">-       __ast_mm_init_phase_2();</span><br><span style="color: hsl(0, 100%, 40%);">-#endif  /* defined(__AST_DEBUG_MALLOC) */</span><br><span style="color: hsl(120, 100%, 40%);">+     load_astmm_phase_2();</span><br><span> </span><br><span>    ast_cli_register_multiple(cli_asterisk_shutdown, ARRAY_LEN(cli_asterisk_shutdown));</span><br><span>  ast_cli_register_multiple(cli_asterisk, ARRAY_LEN(cli_asterisk));</span><br><span>diff --git a/main/astmm.c b/main/astmm.c</span><br><span>index 08f67ab..c845ee7 100644</span><br><span>--- a/main/astmm.c</span><br><span>+++ b/main/astmm.c</span><br><span>@@ -31,6 +31,7 @@</span><br><span> #define ASTMM_LIBC ASTMM_IGNORE</span><br><span> #include "asterisk.h"</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+#include "asterisk/_private.h"</span><br><span> #include "asterisk/logger.h"</span><br><span> </span><br><span> /*!</span><br><span>@@ -62,6 +63,10 @@</span><br><span> #define ast_log_safe ast_log</span><br><span> #endif</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+#if defined(MALLOC_DEBUG) && !defined(STANDALONE) && !defined(STANDALONE2)</span><br><span style="color: hsl(120, 100%, 40%);">+#define __AST_DEBUG_MALLOC</span><br><span style="color: hsl(120, 100%, 40%);">+#endif</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> #define MALLOC_FAILURE_MSG \</span><br><span>     ast_log_safe(LOG_ERROR, "Memory Allocation Failure in function %s at line %d of %s\n", func, lineno, file)</span><br><span> </span><br><span>@@ -1501,14 +1506,7 @@</span><br><span>    }</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-/*!</span><br><span style="color: hsl(0, 100%, 40%);">- * \brief Initialize malloc debug phase 1.</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- * \note Must be called first thing in main().</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- * \return Nothing</span><br><span style="color: hsl(0, 100%, 40%);">- */</span><br><span style="color: hsl(0, 100%, 40%);">-void __ast_mm_init_phase_1(void)</span><br><span style="color: hsl(120, 100%, 40%);">+void load_astmm_phase_1(void)</span><br><span> {</span><br><span>   atexit(mm_atexit_final);</span><br><span> }</span><br><span>@@ -1522,12 +1520,7 @@</span><br><span>       ast_cli_unregister_multiple(cli_memory, ARRAY_LEN(cli_memory));</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-/*!</span><br><span style="color: hsl(0, 100%, 40%);">- * \brief Initialize malloc debug phase 2.</span><br><span style="color: hsl(0, 100%, 40%);">- *</span><br><span style="color: hsl(0, 100%, 40%);">- * \return Nothing</span><br><span style="color: hsl(0, 100%, 40%);">- */</span><br><span style="color: hsl(0, 100%, 40%);">-void __ast_mm_init_phase_2(void)</span><br><span style="color: hsl(120, 100%, 40%);">+void load_astmm_phase_2(void)</span><br><span> {</span><br><span>     char filename[PATH_MAX];</span><br><span> </span><br><span>@@ -1550,6 +1543,14 @@</span><br><span> </span><br><span> #else      /* !defined(__AST_DEBUG_MALLOC) */</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+void load_astmm_phase_1(void)</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+void load_astmm_phase_2(void)</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> void *__ast_repl_calloc(size_t nmemb, size_t size, const char *file, int lineno, const char *func)</span><br><span> {</span><br><span>      DEBUG_CHAOS_RETURN(DEBUG_CHAOS_ALLOC_CHANCE, NULL);</span><br><span>diff --git a/tests/Makefile b/tests/Makefile</span><br><span>index f64669b..715c3f8 100644</span><br><span>--- a/tests/Makefile</span><br><span>+++ b/tests/Makefile</span><br><span>@@ -19,5 +19,6 @@</span><br><span> </span><br><span> include $(ASTTOPDIR)/Makefile.moddir_rules</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+test_astobj2.o: _ASTCFLAGS+=$(call get_menuselect_cflags,AO2_DEBUG)</span><br><span> test_strings.o: _ASTCFLAGS+=$(AST_NO_FORMAT_TRUNCATION) $(AST_NO_STRINGOP_TRUNCATION)</span><br><span> test_voicemail_api.o: _ASTCFLAGS+=$(AST_NO_FORMAT_TRUNCATION)</span><br><span>diff --git a/third-party/pjproject/Makefile b/third-party/pjproject/Makefile</span><br><span>index 476eb44..c761cb5 100644</span><br><span>--- a/third-party/pjproject/Makefile</span><br><span>+++ b/third-party/pjproject/Makefile</span><br><span>@@ -64,9 +64,6 @@</span><br><span>         ifeq ($(AST_DEVMODE),yes)</span><br><span>             CF += -DPJPROJECT_BUNDLED_ASSERTIONS=yes</span><br><span>         endif</span><br><span style="color: hsl(0, 100%, 40%);">-        ifeq ($(findstring MALLOC_DEBUG,$(MENUSELECT_CFLAGS)),MALLOC_DEBUG)</span><br><span style="color: hsl(0, 100%, 40%);">-            CF += -DMALLOC_DEBUG</span><br><span style="color: hsl(0, 100%, 40%);">-        endif</span><br><span>         MALLOC_DEBUG_LIBS = source/pjsip-apps/lib/libasterisk_malloc_debug.a</span><br><span>         MALLOC_DEBUG_LDFLAGS = -L$(PJDIR)/pjsip-apps/lib -Wl,-whole-archive -lasterisk_malloc_debug -Wl,-no-whole-archive</span><br><span>         ifeq ($(findstring DONT_OPTIMIZE,$(MENUSELECT_CFLAGS)),)</span><br><span>diff --git a/utils/Makefile b/utils/Makefile</span><br><span>index 2ec1b91..738d1e4 100644</span><br><span>--- a/utils/Makefile</span><br><span>+++ b/utils/Makefile</span><br><span>@@ -172,6 +172,7 @@</span><br><span>         $(CMD_PREFIX) cp "$<" "$@"</span><br><span> </span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+extconf.o: _ASTCFLAGS+=$(call get_menuselect_cflags,DETECT_DEADLOCKS)</span><br><span> extconf.o: extconf.c</span><br><span> </span><br><span> conf2ael: LIBS+=$(AST_CLANG_BLOCKS_LIBS)</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.asterisk.org/9870">change 9870</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://gerrit.asterisk.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://gerrit.asterisk.org/9870"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: asterisk </div>
<div style="display:none"> Gerrit-Branch: 16 </div>
<div style="display:none"> Gerrit-MessageType: merged </div>
<div style="display:none"> Gerrit-Change-Id: Ie2085237a964f6e1e6fff55ed046e2afff83c027 </div>
<div style="display:none"> Gerrit-Change-Number: 9870 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: Corey Farrell <git@cfware.com> </div>
<div style="display:none"> Gerrit-Reviewer: Corey Farrell <git@cfware.com> </div>
<div style="display:none"> Gerrit-Reviewer: George Joseph <gjoseph@digium.com> </div>
<div style="display:none"> Gerrit-Reviewer: Jenkins2 </div>
<div style="display:none"> Gerrit-Reviewer: Richard Mudgett <rmudgett@digium.com> </div>