- export CFLAGS="-ggdb3 --coverage -O0"
- # Collect coverage on all optimizations
- export MONO_ENV_OPTIONS="$MONO_ENV_OPTIONS -O=all"
-elif [[ ${label} == w* ]]; then
+ export CFLAGS="$CFLAGS -ggdb3 --coverage -O0"
+fi
+
+if [[ ${CI_TAGS} == *'clang-sanitizer'* ]]; then
+ export CC="clang"
+ export CXX="clang++"
+ export CFLAGS="$CFLAGS -g -O1 -fsanitize=thread -fsanitize-blacklist=${MONO_REPO_ROOT}/scripts/ci/clang-thread-sanitizer-blacklist -mllvm -tsan-instrument-atomics=false"
+ export LDFLAGS="-fsanitize=thread"
+ # TSAN_OPTIONS are used by programs that were compiled with Clang's ThreadSanitizer
+ # see https://github.com/google/sanitizers/wiki/ThreadSanitizerFlags for more details
+ export TSAN_OPTIONS="history_size=7:exitcode=0:force_seq_cst_atomics=1"
+ make_timeout=30m
+fi
+
+if [[ ${label} == w* ]]; then