cmd/go: more cross-package references from internal/syscall/unix

On some platforms, assembly in internal/syscall/unix references
unexported runtime symbols. Catch these references so the compiler can
generate the necessary ABI wrappers.

Fixes #28769.
Updates #27539.

Change-Id: I118eebfb8b3d907b4c3562198e6afb49854f5827
Reviewed-on: https://go-review.googlesource.com/c/149817
Run-TryBot: Austin Clements <austin@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Tobias Klauser <tobias.klauser@gmail.com>
Reviewed-by: Clément Chigot <clement.chigot@atos.net>
Reviewed-by: Keith Randall <khr@golang.org>
This commit is contained in:
Austin Clements 2018-11-13 18:38:49 -05:00
parent 63a3993a33
commit c6d493937e
1 changed files with 2 additions and 2 deletions

View File

@ -295,9 +295,9 @@ func (gcToolchain) symabis(b *Builder, a *Action, sfiles []string) (string, erro
// Gather known cross-package references from assembly code.
var otherPkgs []string
if p.ImportPath == "runtime" {
// Assembly in syscall and runtime/cgo references
// Assembly in the following packages references
// symbols in runtime.
otherPkgs = []string{"syscall", "runtime/cgo"}
otherPkgs = []string{"syscall", "internal/syscall/unix", "runtime/cgo"}
} else if p.ImportPath == "runtime/internal/atomic" {
// sync/atomic is an assembly wrapper around
// runtime/internal/atomic.