aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/go/internal/load/pkg.go
diff options
context:
space:
mode:
authorAustin Clements <austin@google.com>2020-10-26 14:32:13 -0400
committerAustin Clements <austin@google.com>2020-10-26 20:12:53 +0000
commitc305e49e96deafe54a8e43010ea76fead6da0a98 (patch)
tree5c41a67de0fc45e24f8014871109f6ad30fdceab /src/cmd/go/internal/load/pkg.go
parent22d2b984a680900ebbec6268f93a839286b6f130 (diff)
downloadgo-c305e49e96deafe54a8e43010ea76fead6da0a98.tar.gz
go-c305e49e96deafe54a8e43010ea76fead6da0a98.zip
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>
Diffstat (limited to 'src/cmd/go/internal/load/pkg.go')
-rw-r--r--src/cmd/go/internal/load/pkg.go5
1 files changed, 0 insertions, 5 deletions
diff --git a/src/cmd/go/internal/load/pkg.go b/src/cmd/go/internal/load/pkg.go
index fcd7728c7b..615b5ef769 100644
--- a/src/cmd/go/internal/load/pkg.go
+++ b/src/cmd/go/internal/load/pkg.go
@@ -1338,11 +1338,6 @@ func disallowInternal(srcDir string, importer *Package, importerPath string, p *
return p
}
- // Allow sync package to access lightweight atomic functions limited to the runtime.
- if p.Standard && strings.HasPrefix(importerPath, "sync") && p.ImportPath == "runtime/internal/atomic" {
- return p
- }
-
// Internal is present.
// Map import path back to directory corresponding to parent of internal.
if i > 0 {