mirror of
https://github.com/golang/go
synced 2024-11-12 05:30:21 -07:00
cmd/cgo: don't depend on runtime/cgo if !CgoEnabled
Fixes the build when CGO_ENABLED=0. Change-Id: I7f3c67d61e156e69536558fda0a0a4b429b82bbd Reviewed-on: https://go-review.googlesource.com/33104 Run-TryBot: Ian Lance Taylor <iant@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
This commit is contained in:
parent
35ea53dcc8
commit
7bdb77af5f
@ -913,24 +913,26 @@ func (p *Package) load(stk *importStack, bp *build.Package, err error) *Package
|
||||
importPaths = append(importPaths, "syscall")
|
||||
}
|
||||
|
||||
// Currently build modes c-shared, pie (on systems that do not
|
||||
// support PIE with internal linking mode), plugin, and
|
||||
// -linkshared force external linking mode, as of course does
|
||||
// -ldflags=-linkmode=external. External linking mode forces
|
||||
// an import of runtime/cgo.
|
||||
pieCgo := buildBuildmode == "pie" && (buildContext.GOOS != "linux" || buildContext.GOARCH != "amd64")
|
||||
linkmodeExternal := false
|
||||
for i, a := range buildLdflags {
|
||||
if a == "-linkmode=external" {
|
||||
linkmodeExternal = true
|
||||
if buildContext.CgoEnabled && p.Name == "main" && !p.Goroot {
|
||||
// Currently build modes c-shared, pie (on systems that do not
|
||||
// support PIE with internal linking mode), plugin, and
|
||||
// -linkshared force external linking mode, as of course does
|
||||
// -ldflags=-linkmode=external. External linking mode forces
|
||||
// an import of runtime/cgo.
|
||||
pieCgo := buildBuildmode == "pie" && (buildContext.GOOS != "linux" || buildContext.GOARCH != "amd64")
|
||||
linkmodeExternal := false
|
||||
for i, a := range buildLdflags {
|
||||
if a == "-linkmode=external" {
|
||||
linkmodeExternal = true
|
||||
}
|
||||
if a == "-linkmode" && i+1 < len(buildLdflags) && buildLdflags[i+1] == "external" {
|
||||
linkmodeExternal = true
|
||||
}
|
||||
}
|
||||
if a == "-linkmode" && i+1 < len(buildLdflags) && buildLdflags[i+1] == "external" {
|
||||
linkmodeExternal = true
|
||||
if buildBuildmode == "c-shared" || buildBuildmode == "plugin" || pieCgo || buildLinkshared || linkmodeExternal {
|
||||
importPaths = append(importPaths, "runtime/cgo")
|
||||
}
|
||||
}
|
||||
if p.Name == "main" && !p.Goroot && (buildBuildmode == "c-shared" || buildBuildmode == "plugin" || pieCgo || buildLinkshared || linkmodeExternal) {
|
||||
importPaths = append(importPaths, "runtime/cgo")
|
||||
}
|
||||
|
||||
// Everything depends on runtime, except runtime, its internal
|
||||
// subpackages, and unsafe.
|
||||
|
Loading…
Reference in New Issue
Block a user