Build: Add menuselect options for using compiler sanitizers
[asterisk/asterisk.git] / build_tools / cflags.xml
1 <category name="MENUSELECT_CFLAGS" displayname="Compiler Flags" positive_output="yes" remove_on_change=".lastclean">
2                 <member name="DONT_OPTIMIZE" displayname="Disable Optimizations by the Compiler">
3                         <support_level>core</support_level>
4                 </member>
5                 <member name="DEBUG_THREADS" displayname="Enable Thread Debugging">
6                         <support_level>core</support_level>
7                 </member>
8                 <member name="REF_DEBUG" displayname="Enable reference count debugging by default">
9                         <support_level>extended</support_level>
10                 </member>
11                 <member name="AO2_DEBUG" displayname="Enable internal Astobj2 debugging">
12                         <support_level>extended</support_level>
13                 </member>
14                 <member name="STATIC_BUILD" displayname="Build static binaries">
15                         <support_level>extended</support_level>
16                 </member>
17                 <member name="LOADABLE_MODULES" displayname="Runtime module loading">
18                         <defaultenabled>yes</defaultenabled>
19                         <support_level>core</support_level>
20                 </member>
21                 <member name="DEBUG_FD_LEAKS" displayname="Enable File Descriptor Leak Detection">
22                         <support_level>core</support_level>
23                 </member>
24                 <member name="REBUILD_PARSERS" displayname="Rebuild AEL and expression parsers from bison/flex source files">
25                         <depend>bison</depend>
26                         <depend>flex</depend>
27                         <defaultenabled>no</defaultenabled>
28                         <support_level>extended</support_level>
29                 </member>
30                 <member name="LOW_MEMORY" displayname="Optimize for Low Memory Usage">
31                         <support_level>extended</support_level>
32                 </member>
33                 <member name="DISABLE_INLINE" displayname="Disable the inline API">
34                         <!-- Added to work around GCC bug
35                              See http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47816
36                           -->
37                         <support_level>extended</support_level>
38                 </member>
39                 <member name="OPTIONAL_API" displayname="Enable the optional API">
40                         <!-- Added to manually disable the optional API, since
41                              it's now supported on all systems.
42                           -->
43                         <defaultenabled>yes</defaultenabled>
44                         <support_level>extended</support_level>
45                 </member>
46                 <member name="BETTER_BACKTRACES" displayname="Use libbfd (GPL) to generate better inline backtraces">
47                         <depend>BFD</depend>
48                         <depend>DLADDR</depend>
49                         <defaultenabled>no</defaultenabled>
50                         <support_level>core</support_level>
51                 </member>
52                 <member name="USE_HOARD_ALLOCATOR" displayname="Use the Hoard Memory Allocator instead of the default system one">
53                         <defaultenabled>no</defaultenabled>
54                         <depend>hoard</depend>
55                         <support_level>extended</support_level>
56                 </member>
57                 <member name="LOTS_OF_SPANS" displayname="More than 32 DAHDI spans">
58                         <support_level>core</support_level>
59                 </member>
60                 <member name="RADIO_RELAX" displayname="Relax DTMF for Radio Applications">
61                         <support_level>extended</support_level>
62                 </member>
63                 <member name="G711_NEW_ALGORITHM" displayname="Use the NEW ulaw/alaw codecs (slower, but cleaner)">
64                         <defaultenabled>no</defaultenabled>
65                         <support_level>extended</support_level>
66                 </member>
67                 <member name="G711_REDUCED_BRANCHING" displayname="New ulaw/alaw codec, reduced branching (might help it run faster in some architectures)">
68                         <depend>G711_NEW_ALGORITHM</depend>
69                         <support_level>extended</support_level>
70                 </member>
71                 <member name="TEST_CODING_TABLES" displayname="New ulaw/alaw codec, turn on table tests on init">
72                         <depend>G711_NEW_ALGORITHM</depend>
73                         <support_level>extended</support_level>
74                 </member>
75                 <member name="TEST_TANDEM_TRANSCODING" displayname="New ulaw/alaw codec, turn on transcoding tests on init">
76                         <depend>G711_NEW_ALGORITHM</depend>
77                         <support_level>extended</support_level>
78                 </member>
79                 <member name="MALLOC_DEBUG" displayname="Keep Track of Memory Allocations">
80                         <conflict>DEBUG_CHAOS</conflict>
81                         <support_level>core</support_level>
82                 </member>
83                 <member name="DEBUG_CHAOS" displayname="Randomly FAIL memory allocations or other operations">
84                         <conflict>MALLOC_DEBUG</conflict>
85                         <support_level>core</support_level>
86                 </member>
87                 <member name="ADDRESS_SANITIZER" displayname="Address Sanitizer">
88                         <support_level>extended</support_level>
89                         <conflict>THREAD_SANITIZER</conflict>
90                         <conflict>LEAK_SANITIZER</conflict>
91                         <conflict>UNDEFINED_SANITIZER</conflict>
92                         <conflict>MALLOC_DEBUG</conflict>
93                         <conflict>DEBUG_CHAOS</conflict>
94                 </member>
95                 <member name="THREAD_SANITIZER" displayname="Thread Sanitizer">
96                         <support_level>extended</support_level>
97                         <conflict>ADDRESS_SANITIZER</conflict>
98                         <conflict>LEAK_SANITIZER</conflict>
99                         <conflict>UNDEFINED_SANITIZER</conflict>
100                 </member>
101                 <member name="LEAK_SANITIZER" displayname="Leak Sanitizer">
102                         <support_level>extended</support_level>
103                         <conflict>ADDRESS_SANITIZER</conflict>
104                         <conflict>THREAD_SANITIZER</conflict>
105                         <conflict>UNDEFINED_SANITIZER</conflict>
106                         <conflict>MALLOC_DEBUG</conflict>
107                         <conflict>DEBUG_CHAOS</conflict>
108                 </member>
109                 <member name="UNDEFINED_SANITIZER" displayname="Undefined Behavior Sanitizer">
110                         <support_level>extended</support_level>
111                         <conflict>ADDRESS_SANITIZER</conflict>
112                         <conflict>THREAD_SANITIZER</conflict>
113                         <conflict>LEAK_SANITIZER</conflict>
114                 </member>
115                 <member name="BUSYDETECT_TONEONLY" displayname="Enable additional comparision of only the tone duration not the silence part">
116                         <conflict>BUSYDETECT_COMPARE_TONE_AND_SILENCE</conflict>
117                         <defaultenabled>no</defaultenabled>
118                         <support_level>extended</support_level>
119                 </member>
120                 <member name="BUSYDETECT_COMPARE_TONE_AND_SILENCE" displayname="Assume that tone and silence have the same duration">
121                         <conflict>BUSYDETECT_TONEONLY</conflict>
122                         <defaultenabled>no</defaultenabled>
123                         <support_level>extended</support_level>
124                 </member>
125                 <member name="BUSYDETECT_DEBUG" displayname="Enable additional busy detection debugging">
126                         <defaultenabled>no</defaultenabled>
127                         <support_level>extended</support_level>
128                 </member>
129                 <member name="INTEGER_CALLERID" displayname="Use the (less accurate) integer-based method for decoding FSK tones (for embedded systems)">
130                         <support_level>extended</support_level>
131                 </member>
132                 <member name="BUILD_NATIVE" displayname="Allow compiler to generate code optimized for the CPU on which the build is performed.">
133                         <support_level>core</support_level>
134                         <defaultenabled>yes</defaultenabled>
135                         <depend>native_arch</depend>
136                 </member>
137         </category>