diff options
author | IntelligentQuantum <IntelligentQuantum@ProtonMail.Com> | 2022-05-01 00:09:51 +0430 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-04-30 21:39:51 +0200 |
commit | 769eea2cc0ca1975b2f26d6acd1ef1608710bd3d (patch) | |
tree | cc76a03b821afaf6e49ffc071e7e8e4968791578 /src/cmake | |
parent | 26c66e0d79615cbe9597c75ae2dc44a05323c4a5 (diff) |
feat(Tools/MMapsGenerator): Improve multithreading of mmaps_generator (#10963)
* cherry-pick commit (https://github.com/Shauren/TrinityCore/commit/699edaa0144fa3b0033dc45e24ad74222cc8240e)
Co-authored-by: Giacomo Pozzoni <giacomopoz@gmail.com>
Diffstat (limited to 'src/cmake')
-rw-r--r-- | src/cmake/compiler/clang/settings.cmake | 46 | ||||
-rw-r--r-- | src/cmake/showoptions.cmake | 21 |
2 files changed, 67 insertions, 0 deletions
diff --git a/src/cmake/compiler/clang/settings.cmake b/src/cmake/compiler/clang/settings.cmake index d53c673a94..93e85762e0 100644 --- a/src/cmake/compiler/clang/settings.cmake +++ b/src/cmake/compiler/clang/settings.cmake @@ -66,6 +66,52 @@ if(WITH_COREDEBUG) message(STATUS "Clang: Debug-flags set (-g3)") endif() +if(MSAN) + target_compile_options(acore-compile-option-interface + INTERFACE + -fno-omit-frame-pointer + -fsanitize=memory + -fsanitize-memory-track-origins + -mllvm + -msan-keep-going=1) + + target_link_options(acore-compile-option-interface + INTERFACE + -fno-omit-frame-pointer + -fsanitize=memory + -fsanitize-memory-track-origins) + + message(STATUS "Clang: Enabled Memory Sanitizer MSan") +endif() + +if(UBSAN) + target_compile_options(acore-compile-option-interface + INTERFACE + -fno-omit-frame-pointer + -fsanitize=undefined) + + target_link_options(acore-compile-option-interface + INTERFACE + -fno-omit-frame-pointer + -fsanitize=undefined) + + message(STATUS "Clang: Enabled Undefined Behavior Sanitizer UBSan") +endif() + +if(TSAN) + target_compile_options(acore-compile-option-interface + INTERFACE + -fno-omit-frame-pointer + -fsanitize=thread) + + target_link_options(acore-compile-option-interface + INTERFACE + -fno-omit-frame-pointer + -fsanitize=thread) + + message(STATUS "Clang: Enabled Thread Sanitizer TSan") +endif() + # -Wno-narrowing needed to suppress a warning in g3d # -Wno-deprecated-register is needed to suppress gsoap warnings on Unix systems. target_compile_options(acore-compile-option-interface diff --git a/src/cmake/showoptions.cmake b/src/cmake/showoptions.cmake index 1d2366a281..08467d8df8 100644 --- a/src/cmake/showoptions.cmake +++ b/src/cmake/showoptions.cmake @@ -168,6 +168,27 @@ elseif (WITH_DETAILED_METRICS) add_definitions(-DWITH_DETAILED_METRICS) endif() +if(MSAN) + message("") + message(" *** MSAN - WARNING!") + message(" *** Please note that this is for DEBUGGING WITH MEMORY SANITIZER only!") + add_definitions(-DMSAN) +endif() + +if(UBSAN) + message("") + message(" *** UBSAN - WARNING!") + message(" *** Please note that this is for DEBUGGING WITH UNDEFINED BEHAVIOR SANITIZER only!") + add_definitions(-DUBSAN) +endif() + +if(TSAN) + message("") + message(" *** TSAN - WARNING!") + message(" *** Please note that this is for DEBUGGING WITH THREAD SANITIZER only!") + add_definitions(-DTSAN -DNO_BUFFERPOOL) +endif() + if(BUILD_SHARED_LIBS) message("") message(" *** WITH_DYNAMIC_LINKING - INFO!") |