mirror of https://github.com/golang/go.git
misc/cgo/testsanitizers: don't run some TSAN tests on GCC < 7
Before GCC 7 defined __SANITIZE_THREAD__ when using TSAN, runtime/cgo/libcgo.h could not determine reliably whether TSAN was in use when using GCC. Fixes #15983. Change-Id: I5581c9f88e1cde1974c280008b2230fe5e971f44 Reviewed-on: https://go-review.googlesource.com/23833 Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Michael Hudson-Doyle <michael.hudson@canonical.com>
This commit is contained in:
parent
f605c77bbc
commit
d1b5d08f34
|
|
@ -135,11 +135,28 @@ if test "$tsan" = "yes"; then
|
|||
testtsan tsan3.go
|
||||
testtsan tsan4.go
|
||||
|
||||
# This test requires rebuilding os/user with -fsanitize=thread.
|
||||
testtsan tsan5.go "CGO_CFLAGS=-fsanitize=thread CGO_LDFLAGS=-fsanitize=thread" "-installsuffix=tsan"
|
||||
# These tests are only reliable using clang or GCC version 7 or later.
|
||||
# Otherwise runtime/cgo/libcgo.h can't tell whether TSAN is in use.
|
||||
ok=false
|
||||
if ${CC} --version | grep clang >/dev/null 2>&1; then
|
||||
ok=true
|
||||
else
|
||||
ver=$($CC -dumpversion)
|
||||
major=$(echo $ver | sed -e 's/\([0-9]*\).*/\1/')
|
||||
if test "$major" -lt 7; then
|
||||
echo "skipping remaining TSAN tests: GCC version $major (older than 7)"
|
||||
else
|
||||
ok=true
|
||||
fi
|
||||
fi
|
||||
|
||||
# This test requires rebuilding runtime/cgo with -fsanitize=thread.
|
||||
testtsan tsan6.go "CGO_CFLAGS=-fsanitize=thread CGO_LDFLAGS=-fsanitize=thread" "-installsuffix=tsan"
|
||||
if test "$ok" = "true"; then
|
||||
# This test requires rebuilding os/user with -fsanitize=thread.
|
||||
testtsan tsan5.go "CGO_CFLAGS=-fsanitize=thread CGO_LDFLAGS=-fsanitize=thread" "-installsuffix=tsan"
|
||||
|
||||
# This test requires rebuilding runtime/cgo with -fsanitize=thread.
|
||||
testtsan tsan6.go "CGO_CFLAGS=-fsanitize=thread CGO_LDFLAGS=-fsanitize=thread" "-installsuffix=tsan"
|
||||
fi
|
||||
fi
|
||||
|
||||
exit $status
|
||||
|
|
|
|||
Loading…
Reference in New Issue