diff options
Diffstat (limited to 'scripts/travis.sh')
-rwxr-xr-x | scripts/travis.sh | 25 |
1 files changed, 20 insertions, 5 deletions
diff --git a/scripts/travis.sh b/scripts/travis.sh index aa9ef10fc1..b66c14e388 100755 --- a/scripts/travis.sh +++ b/scripts/travis.sh @@ -26,8 +26,18 @@ check_and_report() { MAKE_CMD="make -j2" if [ "$CC" = "clang" ]; then - # force using the version installed by 'travis-setup.sh' - export CC=/usr/bin/clang + if test -f /usr/local/clang-3.4/bin/clang; then + USE_CLANG_34=true + export CC=/usr/local/clang-3.4/bin/clang + symbolizer=/usr/local/clang-3.4/bin/llvm-symbolizer + fi + + # Try to detect clang-3.4 installed via apt and through llvm.org/apt/. + if dpkg -s clang-3.4 > /dev/null 2>&1; then + USE_CLANG_34=true + export CC=/usr/bin/clang + symbolizer=/usr/bin/llvm-symbolizer-3.4 + fi install_dir="$(pwd)/dist" # temporary directory for writing sanitizer logs @@ -36,13 +46,18 @@ if [ "$CC" = "clang" ]; then mkdir -p "$tmpdir" # need the symbolizer path for stack traces with source information - symbolizer=/usr/bin/llvm-symbolizer-3.4 + if [ -n "$USE_CLANG_34" ]; then + export ASAN_OPTIONS="detect_leaks=1:" + else + symbolizer=/usr/local/clang-3.3/bin/llvm-symbolizer + fi - export SKIP_UNITTEST=1 export SANITIZE=1 export ASAN_SYMBOLIZER_PATH=$symbolizer - export ASAN_OPTIONS="detect_leaks=1:log_path=$tmpdir/asan" + export ASAN_OPTIONS="${ASAN_OPTIONS}log_path=$tmpdir/asan" export TSAN_OPTIONS="external_symbolizer_path=$symbolizer:log_path=$tmpdir/tsan" + + export SKIP_UNITTEST=1 export UBSAN_OPTIONS="log_path=$tmpdir/ubsan" # not sure if this works $MAKE_CMD cmake CMAKE_EXTRA_FLAGS="-DCMAKE_INSTALL_PREFIX=$install_dir" |