mirror of
https://github.com/golang/go
synced 2024-11-18 08:04:40 -07:00
cmd/go: when expanding "cmd", skip vendored main packages
We are vendoring pprof from github.com/google/pprof, which comes with a main package. If we don't explicitly skip that main package, then `go install cmd` will install the compiled program in $GOROOT/bin. Fixes #19441. Change-Id: Ib268ffd16d4be65f7d80e4f8d9dc6e71523a94de Reviewed-on: https://go-review.googlesource.com/38007 Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Raul Silvera <rsilvera@google.com> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
This commit is contained in:
parent
da0d23e5cd
commit
135ce43c87
@ -93,12 +93,21 @@ func MatchPackages(pattern string) []string {
|
||||
if !match(name) {
|
||||
return nil
|
||||
}
|
||||
_, err = cfg.BuildContext.ImportDir(path, 0)
|
||||
pkg, err := cfg.BuildContext.ImportDir(path, 0)
|
||||
if err != nil {
|
||||
if _, noGo := err.(*build.NoGoError); noGo {
|
||||
return nil
|
||||
}
|
||||
}
|
||||
|
||||
// If we are expanding "cmd", skip main
|
||||
// packages under cmd/vendor. At least as of
|
||||
// March, 2017, there is one there for the
|
||||
// vendored pprof tool.
|
||||
if pattern == "cmd" && strings.HasPrefix(pkg.ImportPath, "cmd/vendor") && pkg.Name == "main" {
|
||||
return nil
|
||||
}
|
||||
|
||||
pkgs = append(pkgs, name)
|
||||
return nil
|
||||
})
|
||||
|
@ -172,7 +172,20 @@ if [ "$GOHOSTARCH" != "$GOARCH" -o "$GOHOSTOS" != "$GOOS" ]; then
|
||||
fi
|
||||
|
||||
echo "##### Building packages and commands for $GOOS/$GOARCH."
|
||||
|
||||
old_bin_files=$(cd $GOROOT/bin && echo *)
|
||||
|
||||
CC=$CC_FOR_TARGET "$GOTOOLDIR"/go_bootstrap install $GO_FLAGS -gcflags "$GO_GCFLAGS" -ldflags "$GO_LDFLAGS" -v std cmd
|
||||
|
||||
# Check that there are no new files in $GOROOT/bin other than go and gofmt
|
||||
# and $GOOS_$GOARCH (a directory used when cross-compiling).
|
||||
(cd $GOROOT/bin && for f in *; do
|
||||
if ! expr " $old_bin_files go gofmt ${GOOS}_${GOARCH} " : ".* $f " >/dev/null 2>/dev/null; then
|
||||
echo 1>&2 "ERROR: unexpected new file in $GOROOT/bin: $f"
|
||||
exit 1
|
||||
fi
|
||||
done)
|
||||
|
||||
echo
|
||||
|
||||
rm -f "$GOTOOLDIR"/go_bootstrap
|
||||
|
Loading…
Reference in New Issue
Block a user