[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