aboutsummaryrefslogtreecommitdiff
path: root/scripts/travis.sh
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/travis.sh')
-rwxr-xr-xscripts/travis.sh25
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"