]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/go: -buildmode=pie forces external linking mode on all systems
authorIan Lance Taylor <iant@golang.org>
Sat, 19 Aug 2017 00:46:03 +0000 (17:46 -0700)
committerIan Lance Taylor <iant@golang.org>
Mon, 21 Aug 2017 04:57:55 +0000 (04:57 +0000)
The go tool assumed that -buildmode=pie implied internal linking on
linux-amd64. However, that was changed by CL 36417 for issue #18968.

Fixes #21452

Change-Id: I8ed13aea52959cc5c53223f4c41ba35329445545
Reviewed-on: https://go-review.googlesource.com/57231
Run-TryBot: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Avelino <t@avelino.xxx>
Reviewed-by: Rob Pike <r@golang.org>
src/cmd/go/internal/load/pkg.go

index d3d19229641a68cbb076fcac6e953e9719b8321f..ae2151561a03b6fa2b8ebe9dfb296571a34dea22 100644 (file)
@@ -953,11 +953,12 @@ func (p *Package) load(stk *ImportStack, bp *build.Package, err error) *Package
 
        if cfg.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
+               // support PIE with internal linking mode (currently all
+               // systems: issue #18968)), plugin, and -linkshared force
+               // external linking mode, as of course does
                // -ldflags=-linkmode=external. External linking mode forces
                // an import of runtime/cgo.
-               pieCgo := cfg.BuildBuildmode == "pie" && (cfg.BuildContext.GOOS != "linux" || cfg.BuildContext.GOARCH != "amd64")
+               pieCgo := cfg.BuildBuildmode == "pie"
                linkmodeExternal := false
                for i, a := range cfg.BuildLdflags {
                        if a == "-linkmode=external" {