]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/go: include AR env var in gccgo build IDs
authorNikhil Benesch <nikhil.benesch@gmail.com>
Sat, 2 Feb 2019 17:35:44 +0000 (12:35 -0500)
committerBrad Fitzpatrick <bradfitz@golang.org>
Tue, 23 Apr 2019 14:38:17 +0000 (14:38 +0000)
The gccgo toolchain uses the archiver specified by the AR environment
variable, or `ar` by default. Teach the build ID to take the value of
this environment variable into account, since different archivers can
produce different results.

Fix #30046.

Change-Id: Ia6821258d54eecedb9026afc38a515cd564c45cb
Reviewed-on: https://go-review.googlesource.com/c/go/+/160897
Run-TryBot: Russ Cox <rsc@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Russ Cox <rsc@golang.org>
src/cmd/go/internal/work/exec.go

index 5d2659cef5c43a8b558f84ba6b33dcba2e33e9f1..87ca5f31286b3a9377c7718fa427e408f2598769 100644 (file)
@@ -8,6 +8,11 @@ package work
 
 import (
        "bytes"
+       "cmd/go/internal/base"
+       "cmd/go/internal/cache"
+       "cmd/go/internal/cfg"
+       "cmd/go/internal/load"
+       "cmd/go/internal/str"
        "encoding/json"
        "errors"
        "fmt"
@@ -25,12 +30,6 @@ import (
        "strings"
        "sync"
        "time"
-
-       "cmd/go/internal/base"
-       "cmd/go/internal/cache"
-       "cmd/go/internal/cfg"
-       "cmd/go/internal/load"
-       "cmd/go/internal/str"
 )
 
 // actionList returns the list of actions in the dag rooted at root
@@ -270,6 +269,7 @@ func (b *Builder) buildActionID(a *Action) cache.ActionID {
                }
                fmt.Fprintf(h, "compile %s %q %q\n", id, forcedGccgoflags, p.Internal.Gccgoflags)
                fmt.Fprintf(h, "pkgpath %s\n", gccgoPkgpath(p))
+               fmt.Fprintf(h, "ar %q\n", BuildToolchain.(gccgoToolchain).ar())
                if len(p.SFiles) > 0 {
                        id, _ = b.gccgoToolID(BuildToolchain.compiler(), "assembler-with-cpp")
                        // Ignore error; different assembler versions