File tree 1 file changed +9
-3
lines changed
1 file changed +9
-3
lines changed Original file line number Diff line number Diff line change @@ -49,7 +49,8 @@ option(BuildJK2SPGame "Whether to create projects for the jk2 sp gamecode mod (j
49
49
option (BuildJK2SPRdVanilla "Whether to create projects for the jk2 sp renderer (rdjosp-vanilla_x86.dll)" OFF )
50
50
51
51
option (BuildTests "Whether to build automatic unit tests (requires Boost)" OFF )
52
- option (UseSanitizer "Whether to enable runtime sanitizers (e.g. AddressSanitizer)" OFF )
52
+ option (UseAddressSanitizer "Whether to enable runtime address sanitizer" OFF )
53
+ option (UseUndefinedSanitizer "Whether to enable runtime Undefined Behavior sanitizer" OFF )
53
54
54
55
include (CMakeDependentOption)
55
56
cmake_dependent_option(BuildSymbolServer "Build WIP Windows Symbol Server (experimental and unused)" OFF "NOT WIN32 OR NOT MSVC" OFF )
@@ -235,9 +236,14 @@ elseif (("${CMAKE_C_COMPILER_ID}" STREQUAL "GNU") OR ("${CMAKE_C_COMPILER_ID}" M
235
236
set (CMAKE_SHARED_LIBRARY_LINK_C_FLAGS "" )
236
237
set (CMAKE_SHARED_LIBRARY_LINK_CXX_FLAGS "" )
237
238
238
- if (CMAKE_BUILD_TYPE MATCHES "DEBUG" OR CMAKE_BUILD_TYPE MATCHES "Debug" AND UseSanitizer)
239
+ if (UseAddressSanitizer)
240
+ # also raise stack size drastically (to 64MiB), since the sanitizer adds overhead to stack frames
239
241
add_compile_options (-fsanitize=address)
240
- add_link_options (-fsanitize=address)
242
+ add_link_options (-fsanitize=address -z stack-size=4000000)
243
+ endif ()
244
+ if (UseUndefinedSanitizer)
245
+ add_compile_options (-fsanitize=undefined)
246
+ add_link_options (-fsanitize=undefined)
241
247
endif ()
242
248
243
249
# additional flags for debug configuration
You can’t perform that action at this time.
0 commit comments