sweet: apply flags to cockroachdb 'go build' based on 'go version'
Currently, the cockroachdb benchmark is built by passing a build tag
(untested_go_version) unconditionally, and we also try to build with and
without '-checklinkname=0' passed to the linker. These are required
because some CockroachDB packages reach into the runtime internals.
The current approach doesn't work well across Go versions because
setting "untested_go_version" for older toolchains causes a symbol
conflict (it ends up enabling multiple files with the same definition).
We can fix this upstream, but we also need a fix in the short term.
Plus, it'll help to clean up this logic and make it more explicit.
So, this CL parses 'go version' in a dead-simple way to determine what
to do. If we're using an older version of Go and the version is
well-defined, then we never use 'untested_go_version'. But if the
version of Go is explicitly a development version or newer than Go
1.24, then we do.
Simultaneously, we only pass -checklinkname=0 to the linker if the
toolchain version is >= 1.23. We always pass it for development Go
versions.
Fixes golang/go#68555.
Change-Id: Ieaad89cb6a92bdeee2636dc62b5b3a26ac317b5f
Cq-Include-Trybots: luci.golang.try:x_benchmarks-gotip-linux-amd64-longtest,x_benchmarks-go1.22-linux-amd64-longtest
Reviewed-on: https://go-review.googlesource.com/c/benchmarks/+/600475
Reviewed-by: Austin Clements <austin@google.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Auto-Submit: Michael Knyszek <mknyszek@google.com>
2 files changed