From: Anthony Martin Date: Mon, 30 Jan 2012 18:54:22 +0000 (-0500) Subject: go: don't clobber command install paths X-Git-Tag: weekly.2012-02-07~213 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=d2599b431e80a3824cc587f8b23e3783fd241f3a;p=gostls13.git go: don't clobber command install paths This fixes a regression that was made when adding support for building with gccgo (in d6a14e6fac0c). External commands (those not from the Go tree) were being installed to the package directory instead of the binary directory. R=golang-dev, rsc, adg, remyoudompheng, rsc CC=golang-dev https://golang.org/cl/5564072 --- diff --git a/src/cmd/go/pkg.go b/src/cmd/go/pkg.go index 2ca0bf7d47..940d31a2b6 100644 --- a/src/cmd/go/pkg.go +++ b/src/cmd/go/pkg.go @@ -279,17 +279,20 @@ func scanPackage(ctxt *build.Context, t *build.Tree, arg, importPath, dir string p.target += ".exe" } } else { - p.target = filepath.Join(t.PkgDir(), filepath.FromSlash(importPath)+".a") - } - - // For gccgo, rewrite p.target with the expected library name. We won't do - // that for the standard library for the moment. - if !p.Standard { dir := t.PkgDir() + // For gccgo, rewrite p.target with the expected library name. if _, ok := buildToolchain.(gccgoToolchain); ok { dir = filepath.Join(filepath.Dir(dir), "gccgo", filepath.Base(dir)) } p.target = buildToolchain.pkgpath(dir, p) + + // NB. Currently we have gccgo install the standard libraries + // in the "usual" location, where the Go toolchain puts them. + if p.Standard { + if _, ok := buildToolchain.(gccgoToolchain); ok { + p.target = goToolchain{}.pkgpath(dir, p) + } + } } var built time.Time