mirror of
https://github.com/golang/go
synced 2024-11-13 17:40:23 -07:00
66736880ca
Add TSAN acquire/release calls to runtime/cgo to match the ones generated by cgo. This avoids a false positive race around the malloc memory used in runtime/cgo when other goroutines are simultaneously calling malloc and free from cgo. These new calls will only be used when building with CGO_CFLAGS and CGO_LDFLAGS set to -fsanitize=thread, which becomes a requirement to avoid all false positives when using TSAN. These are needed not just for runtime/cgo, but also for any runtime package that uses cgo (such as net and os/user). Add an unused attribute to the _cgo_tsan_acquire and _cgo_tsan_release functions, in case there are no actual cgo function calls. Add a test that checks that setting CGO_CFLAGS/CGO_LDFLAGS avoids a false positive report when using os/user. Change-Id: I0905c644ff7f003b6718aac782393fa219514c48 Reviewed-on: https://go-review.googlesource.com/23492 Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Dmitry Vyukov <dvyukov@google.com> |
||
---|---|---|
.. | ||
errors | ||
fortran | ||
gmp | ||
life | ||
nocgo | ||
stdio | ||
test | ||
testasan | ||
testcarchive | ||
testcshared | ||
testgodefs | ||
testsanitizers | ||
testshared | ||
testsigfwd | ||
testso | ||
testsovar | ||
testtls |