From: Russ Cox Date: Mon, 9 Jan 2012 23:38:07 +0000 (-0800) Subject: cmd/go: fix import directory list for compilation X-Git-Tag: weekly.2012-01-15~113 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=0ad241dd550d224f65c634f767f5e73a025fc2bc;p=gostls13.git cmd/go: fix import directory list for compilation This fixes the most annoying bug in the go command, that 'go build' sometimes ignored packages it had just rebuilt in favor of stale installed ones. This part of the code needs more thought, but this small change is an important improvement. R=golang-dev, adg CC=golang-dev https://golang.org/cl/5531053 --- diff --git a/src/cmd/go/build.go b/src/cmd/go/build.go index e3a96ea421..791ec817de 100644 --- a/src/cmd/go/build.go +++ b/src/cmd/go/build.go @@ -509,9 +509,9 @@ func (b *builder) build(a *action) error { incMap[build.Path[0].PkgDir()] = true // goroot incMap[""] = true // ignore empty strings - // build package directories of dependencies + // temporary build package directories of dependencies. for _, a1 := range a.deps { - if pkgdir := a1.pkgdir; !incMap[pkgdir] { + if pkgdir := a1.pkgdir; pkgdir != a1.p.t.PkgDir() && !incMap[pkgdir] { incMap[pkgdir] = true inc = append(inc, "-I", pkgdir) } @@ -522,7 +522,7 @@ func (b *builder) build(a *action) error { // then installed package directories of dependencies for _, a1 := range a.deps { - if pkgdir := a1.p.t.PkgDir(); !incMap[pkgdir] { + if pkgdir := a1.p.t.PkgDir(); pkgdir == a1.pkgdir && !incMap[pkgdir] { incMap[pkgdir] = true inc = append(inc, "-I", pkgdir) }