mirror of
https://github.com/golang/go.git
synced 2025-05-29 03:11:26 +00:00
cmd/go: for gccgo, look for tool build ID before hashing entire file
Also fix the key used to store the ID. This is a significant speedup in cmd/go run time when using an unreleased toolchain. For example, the TestGoBuildTestOnly cmd/go test goes from 15 seconds to 1 second. Change-Id: Ibfd697d55084db059c6b563f70f71f635e935391 Reviewed-on: https://go-review.googlesource.com/c/go/+/194441 Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Jay Conrod <jayconrod@google.com>
This commit is contained in:
parent
5c5f217b63
commit
f668573a5e
@ -292,14 +292,19 @@ func (b *Builder) gccgoToolID(name, language string) (string, error) {
|
|||||||
exe = lp
|
exe = lp
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if _, err := os.Stat(exe); err != nil {
|
id, err = buildid.ReadFile(exe)
|
||||||
return "", fmt.Errorf("%s: can not find compiler %q: %v; output %q", name, exe, err, out)
|
if err != nil {
|
||||||
|
return "", err
|
||||||
|
}
|
||||||
|
|
||||||
|
// If we can't find a build ID, use a hash.
|
||||||
|
if id == "" {
|
||||||
|
id = b.fileHash(exe)
|
||||||
}
|
}
|
||||||
id = b.fileHash(exe)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
b.id.Lock()
|
b.id.Lock()
|
||||||
b.toolIDCache[name] = id
|
b.toolIDCache[key] = id
|
||||||
b.id.Unlock()
|
b.id.Unlock()
|
||||||
|
|
||||||
return id, nil
|
return id, nil
|
||||||
|
Loading…
x
Reference in New Issue
Block a user