[zorg] r254951 - Use proper CMake invocation to build TSan in release mode

Alexey Samsonov via llvm-commits llvm-commits at lists.llvm.org
Mon Dec 7 13:27:38 PST 2015


Author: samsonov
Date: Mon Dec  7 15:27:37 2015
New Revision: 254951

URL: http://llvm.org/viewvc/llvm-project?rev=254951&view=rev
Log:
Use proper CMake invocation to build TSan in release mode

Modified:
    zorg/trunk/zorg/buildbot/builders/sanitizers/buildbot_standard.sh
    zorg/trunk/zorg/buildbot/builders/sanitizers/test_tsan.sh

Modified: zorg/trunk/zorg/buildbot/builders/sanitizers/buildbot_standard.sh
URL: http://llvm.org/viewvc/llvm-project/zorg/trunk/zorg/buildbot/builders/sanitizers/buildbot_standard.sh?rev=254951&r1=254950&r2=254951&view=diff
==============================================================================
--- zorg/trunk/zorg/buildbot/builders/sanitizers/buildbot_standard.sh (original)
+++ zorg/trunk/zorg/buildbot/builders/sanitizers/buildbot_standard.sh Mon Dec  7 15:27:37 2015
@@ -10,13 +10,16 @@ env
 HERE="$(dirname $0)"
 . ${HERE}/buildbot_functions.sh
 
+TSAN_DEBUG_BUILD_DIR=tsan_debug_build
 TSAN_FULL_DEBUG_BUILD_DIR=tsan_full_debug_build
+TSAN_RELEASE_BUILD_DIR=tsan_release_build
 
 if [ "$BUILDBOT_CLOBBER" != "" ]; then
   echo @@@BUILD_STEP clobber@@@
   rm -rf llvm
-  rm -rf clang_build
+  rm -rf $TSAN_DEBUG_BUILD_DIR
   rm -rf $TSAN_FULL_DEBUG_BUILD_DIR
+  rm -rf $TSAN_RELEASE_BUILD_DIR
 fi
 
 ROOT=`pwd`
@@ -28,41 +31,41 @@ CHECK_LLD=${CHECK_LLD:-1}
 LLVM_CHECKOUT=${ROOT}/llvm
 CMAKE_COMMON_OPTIONS="-DLLVM_ENABLE_ASSERTIONS=ON -DLLVM_BUILD_EXTERNAL_COMPILER_RT=ON"
 
+function build_tsan {
+  local build_dir=$1
+  local extra_cmake_args=$2
+  local targets="clang llvm-symbolizer llvm-config FileCheck not"
+  if [ ! -d $build_dir ]; then
+    mkdir $build_dir
+  fi
+  (cd $build_dir && CC=gcc CXX=g++ cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo \
+    ${CMAKE_COMMON_OPTIONS} ${extra_cmake_args} \
+    ${LLVM_CHECKOUT})
+  (cd $build_dir && make -j$MAKE_JOBS ${targets}) || echo @@@STEP_FAILURE@@@
+  (cd $build_dir && make compiler-rt-clear) || echo @@@STEP_FAILURE@@@
+  (cd $build_dir && make -j$MAKE_JOBS tsan) || echo @@@STEP_FAILURE@@@
+}
+
 echo @@@BUILD_STEP update@@@
 buildbot_update
 
 echo @@@BUILD_STEP build fresh clang + debug compiler-rt@@@
-if [ ! -d clang_build ]; then
-  mkdir clang_build
-fi
-TARGETS="clang llvm-symbolizer llvm-config FileCheck not"
-(cd clang_build && CC=gcc CXX=g++ cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo \
-  ${CMAKE_COMMON_OPTIONS} -DCOMPILER_RT_DEBUG=ON ${LLVM_CHECKOUT})
-
-(cd clang_build && make -j$MAKE_JOBS ${TARGETS}) || echo @@@STEP_FAILURE@@@
-CLANG_PATH=$ROOT/clang_build/bin
+build_tsan "${TSAN_DEBUG_BUILD_DIR}" "-DCOMPILER_RT_DEBUG=ON"
 
 echo @@@BUILD_STEP test tsan in debug compiler-rt build@@@
-(cd clang_build && make compiler-rt-clear) || echo @@@STEP_FAILURE@@@
-(cd clang_build && make -j$MAKE_JOBS check-tsan) || echo @@@STEP_FAILURE@@@
+(cd $TSAN_DEBUG_BUILD_DIR && make -j$MAKE_JOBS check-tsan) || echo @@@STEP_FAILURE@@@
 
 echo @@@BUILD_STEP build tsan with stats and debug output@@@
-if [ ! -d $TSAN_FULL_DEBUG_BUILD_DIR ]; then
-  mkdir $TSAN_FULL_DEBUG_BUILD_DIR
-fi
-(cd $TSAN_FULL_DEBUG_BUILD_DIR && CC=gcc CXX=g++ cmake -DCMAKE_BUILD_TYPE=Release \
-  ${CMAKE_COMMON_OPTIONS} -DCOMPILER_RT_DEBUG=ON \
-  -DCOMPILER_RT_TSAN_DEBUG_OUTPUT=ON -DLLVM_INCLUDE_TESTS=OFF \
-  ${LLVM_CHECKOUT})
-(cd $TSAN_FULL_DEBUG_BUILD_DIR && make -j$MAKE_JOBS ${TARGETS}) || echo @@@STEP_FAILURE@@@
-(cd $TSAN_FULL_DEBUG_BUILD_DIR && make compiler-rt-clear) || echo @@@STEP_FAILURE@@@
-(cd $TSAN_FULL_DEBUG_BUILD_DIR && make -j$MAKE_JOBS tsan) || echo @@@STEP_FAILURE@@@
+build_tsan "${TSAN_FULL_DEBUG_BUILD_DIR}" "-DCOMPILER_RT_DEBUG=ON -DCOMPILER_RT_TSAN_DEBUG_OUTPUT=ON -DLLVM_INCLUDE_TESTS=OFF"
 
-echo @@@BUILD_STEP prepare for testing tsan@@@
+echo @@@BUILD_STEP build release tsan with clang@@@
+build_tsan "${TSAN_RELEASE_BUILD_DIR}" "-DCOMPILER_RT_DEBUG=OFF"
 
+echo @@@BUILD_STEP prepare for testing tsan@@@
 TSAN_PATH=$ROOT/llvm/projects/compiler-rt/lib/tsan/
 (cd $TSAN_PATH && make -f Makefile.old install_deps)
 
+CLANG_PATH=$ROOT/$TSAN_RELEASE_BUILD_DIR/bin
 export PATH=$CLANG_PATH:$PATH
 export MAKEFLAGS=-j$MAKE_JOBS
 gcc -v 2>tmp && grep "version" tmp

Modified: zorg/trunk/zorg/buildbot/builders/sanitizers/test_tsan.sh
URL: http://llvm.org/viewvc/llvm-project/zorg/trunk/zorg/buildbot/builders/sanitizers/test_tsan.sh?rev=254951&r1=254950&r2=254951&view=diff
==============================================================================
--- zorg/trunk/zorg/buildbot/builders/sanitizers/test_tsan.sh (original)
+++ zorg/trunk/zorg/buildbot/builders/sanitizers/test_tsan.sh Mon Dec  7 15:27:37 2015
@@ -4,10 +4,6 @@ set -x
 set -e
 set -u
 
-echo @@@BUILD_STEP tsan build release-clang@@@
-make -f Makefile.old clean
-make -f Makefile.old DEBUG=0 CC=clang CXX=clang++
-
 echo @@@BUILD_STEP tsan analyze@@@
 BIN=$(mktemp -t tsan_exe.XXXXXXXX)
 echo "int main() {return 0;}" | clang -x c++ - -fsanitize=thread -O2 -o ${BIN}




More information about the llvm-commits mailing list