Build: Add menuselect options for using compiler sanitizers

This patch adds menuselect options for building Asterisk with
various sanitizers provided by gcc and clang.

When one of *SANITIZER flags is set in menuselect, the appropriate
option is added to CFLAGS ad LDFLAGS for the build.

Information on sanitizers in the project wiki:
https://github.com/google/sanitizers/wiki

GCC Manual:
https://gcc.gnu.org/onlinedocs/gcc/Debugging-Options.html

Clang Compiler User's Manual:
http://clang.llvm.org/docs/UsersManual.html#controlling-code-generation

ASTERISK-24718 #close
Reported by: Badalian Vyacheslav

Change-Id: Iafa51b792b7bcb20e848b99d16cf362d08590fa0
This commit is contained in:
Ivan Poddubny
2015-10-10 23:20:55 +03:00
parent 7b2afcc92f
commit a12eb89ea4
2 changed files with 48 additions and 0 deletions

View File

@@ -84,6 +84,34 @@
<conflict>MALLOC_DEBUG</conflict>
<support_level>core</support_level>
</member>
<member name="ADDRESS_SANITIZER" displayname="Address Sanitizer">
<support_level>extended</support_level>
<conflict>THREAD_SANITIZER</conflict>
<conflict>LEAK_SANITIZER</conflict>
<conflict>UNDEFINED_SANITIZER</conflict>
<conflict>MALLOC_DEBUG</conflict>
<conflict>DEBUG_CHAOS</conflict>
</member>
<member name="THREAD_SANITIZER" displayname="Thread Sanitizer">
<support_level>extended</support_level>
<conflict>ADDRESS_SANITIZER</conflict>
<conflict>LEAK_SANITIZER</conflict>
<conflict>UNDEFINED_SANITIZER</conflict>
</member>
<member name="LEAK_SANITIZER" displayname="Leak Sanitizer">
<support_level>extended</support_level>
<conflict>ADDRESS_SANITIZER</conflict>
<conflict>THREAD_SANITIZER</conflict>
<conflict>UNDEFINED_SANITIZER</conflict>
<conflict>MALLOC_DEBUG</conflict>
<conflict>DEBUG_CHAOS</conflict>
</member>
<member name="UNDEFINED_SANITIZER" displayname="Undefined Behavior Sanitizer">
<support_level>extended</support_level>
<conflict>ADDRESS_SANITIZER</conflict>
<conflict>THREAD_SANITIZER</conflict>
<conflict>LEAK_SANITIZER</conflict>
</member>
<member name="BUSYDETECT_TONEONLY" displayname="Enable additional comparision of only the tone duration not the silence part">
<conflict>BUSYDETECT_COMPARE_TONE_AND_SILENCE</conflict>
<defaultenabled>no</defaultenabled>