From: Andrew Gerrand Date: Mon, 9 Jan 2012 03:24:05 +0000 (+1100) Subject: go/build: handle and warn of duplicate GOPATH entries X-Git-Tag: weekly.2012-01-15~128 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=c7e91724c0e1f514982e90d7d08bb2c291a2bc43;p=gostls13.git go/build: handle and warn of duplicate GOPATH entries R=golang-dev, alex.brainman CC=golang-dev https://golang.org/cl/5519050 --- diff --git a/src/pkg/go/build/path.go b/src/pkg/go/build/path.go index 7a281800c2..bb9b8ca642 100644 --- a/src/pkg/go/build/path.go +++ b/src/pkg/go/build/path.go @@ -157,6 +157,7 @@ func init() { Path = []*Tree{t} } +Loop: for _, p := range filepath.SplitList(os.Getenv("GOPATH")) { if p == "" { continue @@ -166,6 +167,21 @@ func init() { log.Printf("invalid GOPATH %q: %v", p, err) continue } + + // Check for dupes. + // TODO(alexbrainman): make this correct under windows (case insensitive). + for _, t2 := range Path { + if t2.Path != t.Path { + continue + } + if t2.Goroot { + log.Printf("GOPATH is the same as GOROOT: %q", t.Path) + } else { + log.Printf("duplicate GOPATH entry: %q", t.Path) + } + continue Loop + } + Path = append(Path, t) gcImportArgs = append(gcImportArgs, "-I", t.PkgDir()) ldImportArgs = append(ldImportArgs, "-L", t.PkgDir())