diff --git a/configure b/configure index 7642abd583c..79fa717843d 100755 --- a/configure +++ b/configure @@ -183,6 +183,7 @@ _build_scalers=yes _build_hq_scalers=yes _enable_prof=no _enable_asan=no +_enable_tsan=no _global_constructors=no _no_undefined_var_template=no _no_pragma_pack=no @@ -1026,6 +1027,7 @@ Optional Features: --enable-release-mode enable building in release mode (without optimizations) --enable-optimizations enable optimizations --enable-asan enable Address Sanitizer for memory-related debugging + --enable-tsan enable Thread Sanitizer for thread-related debugging --enable-profiling enable profiling --enable-plugins enable the support for dynamic plugins --default-dynamic make plugins dynamic by default @@ -1467,6 +1469,9 @@ for ac_option in $@; do --enable-asan) _enable_asan=yes ;; + --enable-tsan) + _enable_tsan=yes + ;; --with-sdl-prefix=*) arg=`echo $ac_option | cut -d '=' -f 2` _sdlpath="$arg:$arg/bin" @@ -5594,11 +5599,24 @@ fi echo_n "Enabling Address Sanitizer... " if test "$_enable_asan" = yes ; then - append_var CXXFLAGS "-fsanitize=address -fno-omit-frame-pointer" - append_var LDFLAGS "-fsanitize=address -fno-omit-frame-pointer" + if test "$_enable_tsan" = yes ; then + echo_n "conflicting with tsan, disabling... " + _enable_asan=no + else + append_var CXXFLAGS "-fsanitize=address -fno-omit-frame-pointer" + append_var LDFLAGS "-fsanitize=address -fno-omit-frame-pointer" + fi fi echo "$_enable_asan" +echo_n "Enabling Thread Sanitizer... " + +if test "$_enable_tsan" = yes ; then + append_var CXXFLAGS "-fsanitize=thread -O2" + append_var LDFLAGS "-fsanitize=thread -O2" +fi +echo "$_enable_tsan" + echo_n "Backend... " echo_n "$_backend"