1
0
mirror of https://github.com/golang/go synced 2024-11-20 05:14:41 -07:00

cmd/go: make build errors more visible

Fixes #3324.

Robert suggested not reporting errors until the end of the output.
which I'd also like to do, but errPrintedOutput makes that a bigger
change than I want to do before Go 1.  This change should at least
remove the confusion we had.

# Building packages and commands for linux/amd64.
runtime
errors
sync/atomic
unicode
unicode/utf8
math
sync
unicode/utf16
crypto/subtle
io
syscall
hash
crypto
crypto/md5
hash/crc32
crypto/cipher
crypto/hmac
crypto/sha1
go install unicode: copying /tmp/go-build816525784/unicode.a to /home/rsc/g/go/pkg/linux_amd64/unicode.a: short write
hash/adler32
container/list
container/ring
...

R=golang-dev, r
CC=golang-dev
https://golang.org/cl/5837054
This commit is contained in:
Russ Cox 2012-03-15 17:35:57 -04:00
parent 9e03dcb3fa
commit 7a84fb3a85
2 changed files with 14 additions and 4 deletions

View File

@ -604,7 +604,12 @@ func (b *builder) do(root *action) {
} }
// build is the action for building a single package or command. // build is the action for building a single package or command.
func (b *builder) build(a *action) error { func (b *builder) build(a *action) (err error) {
defer func() {
if err != nil {
err = fmt.Errorf("go build %s: %v", a.p.ImportPath, err)
}
}()
if buildN { if buildN {
// In -n mode, print a banner between packages. // In -n mode, print a banner between packages.
// The banner is five lines so that when changes to // The banner is five lines so that when changes to
@ -753,7 +758,12 @@ func (b *builder) build(a *action) error {
} }
// install is the action for installing a single package or executable. // install is the action for installing a single package or executable.
func (b *builder) install(a *action) error { func (b *builder) install(a *action) (err error) {
defer func() {
if err != nil {
err = fmt.Errorf("go install %s: %v", a.p.ImportPath, err)
}
}()
a1 := a.deps[0] a1 := a.deps[0]
perm := os.FileMode(0666) perm := os.FileMode(0666)
if a1.link { if a1.link {
@ -874,7 +884,7 @@ func (b *builder) copyFile(a *action, dst, src string, perm os.FileMode) error {
df.Close() df.Close()
if err != nil { if err != nil {
os.Remove(dst) os.Remove(dst)
return err return fmt.Errorf("copying %s to %s: %v", src, dst, err)
} }
return nil return nil
} }

View File

@ -110,7 +110,7 @@ func clean(p *Package) {
} }
dirs, err := ioutil.ReadDir(p.Dir) dirs, err := ioutil.ReadDir(p.Dir)
if err != nil { if err != nil {
errorf("%v", err) errorf("go clean %s: %v", p.Dir, err)
return return
} }