diff --git a/src/cmd/go/pkg.go b/src/cmd/go/pkg.go index 8164ccc0b5..a352b601a7 100644 --- a/src/cmd/go/pkg.go +++ b/src/cmd/go/pkg.go @@ -849,7 +849,8 @@ func (p *Package) load(stk *importStack, bp *build.Package, err error) *Package // Currently build modes c-shared, pie, and -linkshared force // external linking mode, and external linking mode forces an // import of runtime/cgo. - if p.Name == "main" && !p.Goroot && (buildBuildmode == "c-shared" || buildBuildmode == "pie" || buildLinkshared) { + pieCgo := buildBuildmode == "pie" && (buildContext.GOOS != "linux" || buildContext.GOARCH != "amd64") + if p.Name == "main" && !p.Goroot && (buildBuildmode == "c-shared" || pieCgo || buildLinkshared) { importPaths = append(importPaths, "runtime/cgo") }