cmd/go: 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. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/194257 From-SVN: r275559
This commit is contained in:
parent
5447e8e2e2
commit
c96fc08123
2 changed files with 10 additions and 5 deletions
|
@ -1,4 +1,4 @@
|
|||
5c3f52ffbae7a9bb59bce63cd2cffdd8af8f4a92
|
||||
68038b4fdf1456482af986cb05dcf3121bd43ffc
|
||||
|
||||
The first line of this file holds the git revision number of the last
|
||||
merge done from the gofrontend repository.
|
||||
|
|
|
@ -291,14 +291,19 @@ func (b *Builder) gccgoToolID(name, language string) (string, error) {
|
|||
exe = lp
|
||||
}
|
||||
}
|
||||
if _, err := os.Stat(exe); err != nil {
|
||||
return "", fmt.Errorf("%s: can not find compiler %q: %v; output %q", name, exe, err, out)
|
||||
id, err = buildid.ReadFile(exe)
|
||||
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.toolIDCache[name] = id
|
||||
b.toolIDCache[key] = id
|
||||
b.id.Unlock()
|
||||
|
||||
return id, nil
|
||||
|
|
Loading…
Add table
Reference in a new issue