From: Cherry Mui Date: Fri, 12 Sep 2025 17:46:31 +0000 (-0400) Subject: cmd/link: support race mode with MSVC clang X-Git-Tag: go1.26rc1~876 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=e603e9834e83ec67f0dd39c4e77683eef0593946;p=gostls13.git cmd/link: support race mode with MSVC clang I couldn't make --print-file-name work with -msvc clang. (The library name is synchronization.lib, but even with that name it still doesn't print the full path.) Assume it always synchronization.lib. Change-Id: I22e8f14824f7f7e96b71b913217b1f604f1e2da7 Reviewed-on: https://go-review.googlesource.com/c/go/+/703398 Reviewed-by: Than McIntosh Reviewed-by: Florian Zenker LUCI-TryBot-Result: Go LUCI --- diff --git a/src/cmd/link/internal/ld/lib.go b/src/cmd/link/internal/ld/lib.go index 516150a0a7..1a1bc18675 100644 --- a/src/cmd/link/internal/ld/lib.go +++ b/src/cmd/link/internal/ld/lib.go @@ -1943,7 +1943,11 @@ func (ctxt *Link) hostlink() { argv = append(argv, "-Wl,-T,"+p) } if *flagRace { - if p := ctxt.findLibPath("libsynchronization.a"); p != "libsynchronization.a" { + // Apparently --print-file-name doesn't work with -msvc clang. + // (The library name is synchronization.lib, but even with that + // name it still doesn't print the full path.) Assume it always + // it. + if isMSVC || ctxt.findLibPath("libsynchronization.a") != "libsynchronization.a" { argv = append(argv, "-lsynchronization") } }