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>
// 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.