runtime/race: add build tag to internal amd64vN packages

Only one of the runtime/race/internal/amd64vN packages should be
included in a build. Generally this is true because the
runtime/race package would import only one of them depending on
the build configuration. But for "go install -buildmode=shared std"
it includes all Go packages in std, which includes both, which
then causes link-time failure due to duplicated symbols. To avoid
this, we add build tags to the internal packages, so, depending on
the build configuation, only one package would contain buildable
go files therefore be included in the build.

For #57334.

Change-Id: I52ddc3a40e16c7d04b4dd861e9689918d27e8509
Reviewed-on: https://go-review.googlesource.com/c/go/+/458695
TryBot-Result: Gopher Robot <gobot@golang.org>
Run-TryBot: Cherry Mui <cherryyz@google.com>
Reviewed-by: Ian Lance Taylor <iant@google.com>
This commit is contained in:
Cherry Mui 2022-12-20 17:19:09 -05:00
parent 13ed4f42f0
commit 18baca6765
4 changed files with 4 additions and 2 deletions

View File

@ -5,4 +5,6 @@
// This package holds the race detector .syso for
// amd64 architectures with GOAMD64<v3.
//go:build amd64 && ((linux && !amd64.v3) || darwin || freebsd || netbsd || openbsd || windows)
package amd64v1

View File

@ -5,4 +5,6 @@
// This package holds the race detector .syso for
// amd64 architectures with GOAMD64>=v3.
//go:build amd64 && linux && amd64.v3
package amd64v3

View File

@ -3,7 +3,6 @@
// license that can be found in the LICENSE file.
//go:build (linux && !amd64.v3) || darwin || freebsd || netbsd || openbsd || windows
// +build linux,!amd64.v3 darwin freebsd netbsd openbsd windows
package race

View File

@ -3,7 +3,6 @@
// license that can be found in the LICENSE file.
//go:build linux && amd64.v3
// +build linux,amd64.v3
package race