[compiler-rt] r227852 - [TSan] Add Go runtime sanity check to CMake build.
Alexey Samsonov
vonosmas at gmail.com
Mon Feb 2 12:37:28 PST 2015
Author: samsonov
Date: Mon Feb 2 14:37:28 2015
New Revision: 227852
URL: http://llvm.org/viewvc/llvm-project?rev=227852&view=rev
Log:
[TSan] Add Go runtime sanity check to CMake build.
Modified:
compiler-rt/trunk/lib/tsan/CMakeLists.txt
compiler-rt/trunk/lib/tsan/go/buildgo.sh
compiler-rt/trunk/test/tsan/CMakeLists.txt
Modified: compiler-rt/trunk/lib/tsan/CMakeLists.txt
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/tsan/CMakeLists.txt?rev=227852&r1=227851&r2=227852&view=diff
==============================================================================
--- compiler-rt/trunk/lib/tsan/CMakeLists.txt (original)
+++ compiler-rt/trunk/lib/tsan/CMakeLists.txt Mon Feb 2 14:37:28 2015
@@ -100,6 +100,15 @@ endif()
add_dependencies(compiler-rt tsan)
+# Sanity check for Go runtime.
+add_custom_target(GotsanRuntimeCheck
+ COMMAND CC=${CMAKE_C_COMPILER} IN_TMPDIR=1 SILENT=1
+ ${CMAKE_CURRENT_SOURCE_DIR}/go/buildgo.sh
+ DEPENDS clang_rt.tsan-${arch}
+ WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/go
+ COMMENT "Checking TSan Go runtime..."
+ VERBATIM)
+
# Build libcxx instrumented with TSan.
if(TSAN_SUPPORTED_ARCH AND
COMPILER_RT_HAS_LIBCXX_SOURCES AND
Modified: compiler-rt/trunk/lib/tsan/go/buildgo.sh
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/tsan/go/buildgo.sh?rev=227852&r1=227851&r2=227852&view=diff
==============================================================================
--- compiler-rt/trunk/lib/tsan/go/buildgo.sh (original)
+++ compiler-rt/trunk/lib/tsan/go/buildgo.sh Mon Feb 2 14:37:28 2015
@@ -83,11 +83,25 @@ else
exit 1
fi
+CC=${CC:-gcc}
+IN_TMPDIR=${IN_TMPDIR:-0}
+SILENT=${SILENT:-0}
+
+if [ $IN_TMPDIR != "0" ]; then
+ DIR=$(mktemp -qd /tmp/gotsan.XXXXXXXXXX)
+ cleanup() {
+ rm -rf $DIR
+ }
+ trap cleanup EXIT
+else
+ DIR=.
+fi
+
SRCS+=$ADD_SRCS
-rm -f gotsan.cc
+rm -f $DIR/gotsan.cc
for F in $SRCS; do
- cat $F >> gotsan.cc
+ cat $F >> $DIR/gotsan.cc
done
FLAGS=" -I../rtl -I../.. -I../../sanitizer_common -I../../../include -std=c++11 -m64 -Wall -fno-exceptions -fno-rtti -DSANITIZER_GO -DSANITIZER_DEADLOCK_DETECTOR_VERSION=2 $OSCFLAGS"
@@ -97,10 +111,16 @@ else
FLAGS+=" -DSANITIZER_DEBUG=1 -g"
fi
-CC=${CC:-gcc}
+if [ "$SILENT" != "1" ]; then
+ echo $CC gotsan.cc -c -o $DIR/race_$SUFFIX.syso $FLAGS $CFLAGS
+fi
+$CC $DIR/gotsan.cc -c -o $DIR/race_$SUFFIX.syso $FLAGS $CFLAGS
-echo $CC gotsan.cc -c -o race_$SUFFIX.syso $FLAGS $CFLAGS
-$CC gotsan.cc -c -o race_$SUFFIX.syso $FLAGS $CFLAGS
+$CC test.c $DIR/race_$SUFFIX.syso -m64 -o $DIR/test $OSLDFLAGS
-$CC test.c race_$SUFFIX.syso -m64 -o test $OSLDFLAGS
-GORACE="exitcode=0 atexit_sleep_ms=0" ./test
+export GORACE="exitcode=0 atexit_sleep_ms=0"
+if [ "$SILENT" != "1" ]; then
+ $DIR/test
+else
+ $DIR/test 2>/dev/null
+fi
Modified: compiler-rt/trunk/test/tsan/CMakeLists.txt
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/tsan/CMakeLists.txt?rev=227852&r1=227851&r2=227852&view=diff
==============================================================================
--- compiler-rt/trunk/test/tsan/CMakeLists.txt (original)
+++ compiler-rt/trunk/test/tsan/CMakeLists.txt Mon Feb 2 14:37:28 2015
@@ -1,4 +1,5 @@
set(TSAN_TEST_DEPS ${SANITIZER_COMMON_LIT_TEST_DEPS})
+list(APPEND TSAN_TEST_DEPS GotsanRuntimeCheck)
if(NOT COMPILER_RT_STANDALONE_BUILD)
list(APPEND TSAN_TEST_DEPS tsan)
endif()
More information about the llvm-commits
mailing list