]> Cypherpunks repositories - gostls13.git/commit
cmd/go,cmd/compile,sync: remove special import case in cmd/go
authorAustin Clements <austin@google.com>
Mon, 26 Oct 2020 18:32:13 +0000 (14:32 -0400)
committerAustin Clements <austin@google.com>
Mon, 26 Oct 2020 20:12:53 +0000 (20:12 +0000)
commitc305e49e96deafe54a8e43010ea76fead6da0a98
tree5c41a67de0fc45e24f8014871109f6ad30fdceab
parent22d2b984a680900ebbec6268f93a839286b6f130
cmd/go,cmd/compile,sync: remove special import case in cmd/go

CL 253748 introduced a special case in cmd/go to allow sync to import
runtime/internal/atomic. Besides introducing unnecessary complexity
into cmd/go, this breaks other packages (like gopls) that understand
how imports work, but don't understand this special case.

Fix this by using the more standard linkname-based approach to pull
the necessary functions from runtime/internal/atomic into sync. Since
these are compiler intrinsics, we also have to tell the compiler that
the linknamed symbols are intrinsics to get this optimization in sync.

Fixes #42196.

Change-Id: I1f91498c255c91583950886a89c3c9adc39a32f0
Reviewed-on: https://go-review.googlesource.com/c/go/+/265124
Trust: Austin Clements <austin@google.com>
Run-TryBot: Austin Clements <austin@google.com>
Reviewed-by: Bryan C. Mills <bcmills@google.com>
Reviewed-by: Keith Randall <khr@golang.org>
Reviewed-by: Paul Murphy <murp@ibm.com>
TryBot-Result: Go Bot <gobot@golang.org>
src/cmd/compile/internal/gc/ssa.go
src/cmd/go/internal/load/pkg.go
src/sync/pool.go