• Ian Lance Taylor's avatar
    runtime/cgo: add TSAN acquire/release calls · 66736880
    Ian Lance Taylor authored
    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: 's avatarDmitry Vyukov <dvyukov@google.com>
    66736880
Name
Last commit
Last update
..
android Loading commit data...
arm Loading commit data...
cgo Loading commit data...
chrome/gophertool Loading commit data...
git Loading commit data...
ios Loading commit data...
linkcheck Loading commit data...
nacl Loading commit data...
sortac Loading commit data...
swig Loading commit data...
trace Loading commit data...
benchcmp Loading commit data...
editors Loading commit data...