summaryrefslogtreecommitdiff
path: root/enablesanitizers.sh
diff options
context:
space:
mode:
authorKonstantin Baladurin <k.baladurin@partner.samsung.com>2017-12-09 13:57:20 +0300
committerJan Vorlicek <janvorli@microsoft.com>2017-12-09 11:57:20 +0100
commit1724c75e6edff5d9008a5696f0eff586f3d93761 (patch)
tree20477acce6a09b444189abceee3f0c0acb15a764 /enablesanitizers.sh
parent2b3fd06adc01ce05b121d586830ab628d9bdad84 (diff)
downloadcoreclr-1724c75e6edff5d9008a5696f0eff586f3d93761.tar.gz
coreclr-1724c75e6edff5d9008a5696f0eff586f3d93761.tar.bz2
coreclr-1724c75e6edff5d9008a5696f0eff586f3d93761.zip
Fix build with Asan (#15372)
- verify_dependencies: disable checking dependencies for Asan build because in this case shared libraries can have undefined symbols (if static linking with compiler-rt is used). - enablesanitizers.sh: remove excess quotes for ASAN_OPTIONS and UBSAN_OPTIONS environment variable because otherwise Asan cannot parse flags. Also doesn't export ASAN_SYMBOLIZER_PATH for clang > 3.6.
Diffstat (limited to 'enablesanitizers.sh')
-rwxr-xr-xenablesanitizers.sh36
1 files changed, 27 insertions, 9 deletions
diff --git a/enablesanitizers.sh b/enablesanitizers.sh
index 70555aa70e..2937b0b2f4 100755
--- a/enablesanitizers.sh
+++ b/enablesanitizers.sh
@@ -26,6 +26,7 @@ else
__EnableLSan=0
__TurnOff=0
__Options=
+ __ExportSymbolizerPath=1
for i in "$@"
do
@@ -60,6 +61,17 @@ else
clang3.7)
__ClangMajorVersion=3
__ClangMinorVersion=7
+ __ExportSymbolizerPath=0
+ ;;
+ clang3.8)
+ __ClangMajorVersion=3
+ __ClangMinorVersion=8
+ __ExportSymbolizerPath=0
+ ;;
+ clang3.9)
+ __ClangMajorVersion=3
+ __ClangMinorVersion=9
+ __ExportSymbolizerPath=0
;;
*)
echo "Unknown arg: $i"
@@ -83,7 +95,9 @@ else
__Options="$__Options ubsan"
fi
if [ $__EnableLSan == 1 ]; then
- ASAN_OPTIONS="$ASAN_OPTIONS detect_leaks"
+ ASAN_OPTIONS="$ASAN_OPTIONS detect_leaks=1"
+ else
+ ASAN_OPTIONS="$ASAN_OPTIONS detect_leaks=0"
fi
# passed to build.sh
@@ -92,18 +106,22 @@ else
echo "Setting DEBUG_SANITIZERS=$DEBUG_SANITIZERS"
# used by ASan at run-time
- ASAN_OPTIONS="\"$ASAN_OPTIONS\""
export ASAN_OPTIONS
- echo "Setting ASAN_OPTIONS=$ASAN_OPTIONS"
+ echo "Setting ASAN_OPTIONS=\"$ASAN_OPTIONS\""
- UBSAN_OPTIONS="\"$UBSAN_OPTIONS\""
export UBSAN_OPTIONS
- echo "Setting UBSAN_OPTIONS=$UBSAN_OPTIONS"
+ echo "Setting UBSAN_OPTIONS=\"$UBSAN_OPTIONS\""
- # used by ASan at run-time
- ASAN_SYMBOLIZER_PATH="/usr/bin/llvm-symbolizer-$__ClangMajorVersion.$__ClangMinorVersion"
- export ASAN_SYMBOLIZER_PATH
- echo "Setting ASAN_SYMBOLIZER_PATH=$ASAN_SYMBOLIZER_PATH"
+ # for compiler-rt > 3.6 Asan check that binary name is 'llvm-symbolizer', 'addr2line' or
+ # 'atos' (for Darwin) otherwise it returns error
+ if [ $__ExportSymbolizerPath == 1 ]; then
+ # used by ASan at run-time
+ ASAN_SYMBOLIZER_PATH="/usr/bin/llvm-symbolizer-$__ClangMajorVersion.$__ClangMinorVersion"
+ export ASAN_SYMBOLIZER_PATH
+ echo "Setting ASAN_SYMBOLIZER_PATH=$ASAN_SYMBOLIZER_PATH"
+ else
+ unset ASAN_SYMBOLIZER_PATH
+ fi
echo "Done. You can now run: build.sh Debug clang$__ClangMajorVersion.$__ClangMinorVersion"
fi