1
0
mirror of https://github.com/golang/go synced 2024-11-19 14:54:43 -07:00

cmd/go: more refined handling of cmd/compile magic environment variables

Per discussion with David Chase, need to check GOSSAHASH$n
for increasing n until one is missing. Also if GSHS_LOGFILE is set,
the compiler writes to that file, so arrange never to cache in that case.

Change-Id: I3931b4e296251b99abab9bbbbbdcf94ae8c1e2a6
Reviewed-on: https://go-review.googlesource.com/77111
Reviewed-by: David Chase <drchase@google.com>
This commit is contained in:
Russ Cox 2017-11-10 14:50:03 -05:00
parent f768693f58
commit c2e26fad3b

View File

@ -223,7 +223,6 @@ func (b *Builder) buildActionID(a *Action) cache.ActionID {
"GOCLOBBERDEADHASH", "GOCLOBBERDEADHASH",
"GOSSAFUNC", "GOSSAFUNC",
"GO_SSA_PHI_LOC_CUTOFF", "GO_SSA_PHI_LOC_CUTOFF",
"GSHS_LOGFILE",
"GOSSAHASH", "GOSSAHASH",
} }
for _, env := range magic { for _, env := range magic {
@ -231,6 +230,23 @@ func (b *Builder) buildActionID(a *Action) cache.ActionID {
fmt.Fprintf(h, "magic %s=%s\n", env, x) fmt.Fprintf(h, "magic %s=%s\n", env, x)
} }
} }
if os.Getenv("GOSSAHASH") != "" {
for i := 0; ; i++ {
env := fmt.Sprintf("GOSSAHASH%d", i)
x := os.Getenv(env)
if x == "" {
break
}
fmt.Fprintf(h, "magic %s=%s\n", env, x)
}
}
if os.Getenv("GSHS_LOGFILE") != "" {
// Clumsy hack. Compiler writes to this log file,
// so do not allow use of cache at all.
// We will still write to the cache but it will be
// essentially unfindable.
fmt.Fprintf(h, "nocache %d\n", time.Now().UnixNano())
}
} }
// Input files. // Input files.