]> Cypherpunks.ru repositories - gostls13.git/commit
cmd/link: link against libsynchronization.a for -race on windows
authorThan McIntosh <thanm@google.com>
Fri, 24 Jun 2022 19:31:35 +0000 (15:31 -0400)
committerThan McIntosh <thanm@google.com>
Mon, 27 Jun 2022 16:28:25 +0000 (16:28 +0000)
commitc3bea70d9b3b80ceb7733cd7bde0cdf0a1bfd0d0
tree82f9e2b39c2b6f05e20a8143a8ad9540377dcdc9
parentf093cf90bff4bfc4e0a304283eef0d2445d67538
cmd/link: link against libsynchronization.a for -race on windows

As of LLVM rev 41cb504b7c4b18ac15830107431a0c1eec73a6b2, the
race detector runtime now refers to things in the windows
synchronization library, hence when doing windows internal
linking, at that library to the list of host archives that
we visit. The tsan code that makes the reference is here:

https://github.com/llvm/llvm-project/blob/41cb504b7c4b18ac15830107431a0c1eec73a6b2/compiler-rt/lib/sanitizer_common/sanitizer_win.cpp#L48
https://github.com/llvm/llvm-project/blob/41cb504b7c4b18ac15830107431a0c1eec73a6b2/compiler-rt/lib/sanitizer_common/sanitizer_win.cpp#L834

Note that libsynchronization.a is not guaranteed to be available on
all windows systems, so in the external linking case, check for its
existence before adding "-lsynchronization" to the external linker
args.

Updates #53539.

Change-Id: I433c95c869915693d59e9c1082d5b8a11da1fc8c
Reviewed-on: https://go-review.googlesource.com/c/go/+/413817
Reviewed-by: Cherry Mui <cherryyz@google.com>
Run-TryBot: Than McIntosh <thanm@google.com>
src/cmd/link/internal/ld/lib.go