]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/go: internal PIE does not need runtime/cgo
authorDavid Crawshaw <crawshaw@golang.org>
Tue, 6 Sep 2016 13:14:26 +0000 (09:14 -0400)
committerDavid Crawshaw <crawshaw@golang.org>
Sun, 11 Sep 2016 22:01:14 +0000 (22:01 +0000)
Part of adding PIE internal linking on linux/amd64.

Change-Id: I57f0596cb254cbe6569e4d4e39fe4f48437733f2
Reviewed-on: https://go-review.googlesource.com/28544
Reviewed-by: Ian Lance Taylor <iant@golang.org>
src/cmd/go/pkg.go

index 8164ccc0b57a9e152f9bae85196e122d85aa072c..a352b601a7a591c4ff8a61c383a3d227c4c7daeb 100644 (file)
@@ -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")
        }