diff options
author | Peter Collingbourne <pcc@google.com> | 2014-07-14 09:51:20 -0400 |
---|---|---|
committer | Peter Collingbourne <pcc@google.com> | 2014-07-14 09:51:20 -0400 |
commit | 65e3260909e3d2ca33e4f3ee43322febfe25325f (patch) | |
tree | ddb1451f91aa2ad1c8f04fcc8de7d711dba3e740 | |
parent | 8d31051a19f69760b83a0cd6cdaa4948cefb368f (diff) | |
download | go-65e3260909e3d2ca33e4f3ee43322febfe25325f.tar.gz |
cmd/go: introduce support for $GCCGO env var
This variable allows users to select the compiler when using the
gccgo toolchain.
LGTM=rsc
R=rsc, iant, minux, aram
CC=axwalk, golang-codereviews
https://codereview.appspot.com/106700044
Committer: Russ Cox <rsc@golang.org>
-rw-r--r-- | src/cmd/go/build.go | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/src/cmd/go/build.go b/src/cmd/go/build.go index 9f36c18f0..49ae64082 100644 --- a/src/cmd/go/build.go +++ b/src/cmd/go/build.go @@ -1775,7 +1775,15 @@ func (gcToolchain) cc(b *builder, p *Package, objdir, ofile, cfile string) error // The Gccgo toolchain. type gccgoToolchain struct{} -var gccgoBin, _ = exec.LookPath("gccgo") +var gccgoName, gccgoBin string + +func init() { + gccgoName = os.Getenv("GCCGO") + if gccgoName == "" { + gccgoName = "gccgo" + } + gccgoBin, _ = exec.LookPath(gccgoName) +} func (gccgoToolchain) compiler() string { return gccgoBin @@ -1796,7 +1804,7 @@ func (gccgoToolchain) gc(b *builder, p *Package, archive, obj string, importArgs if p.localPrefix != "" { gcargs = append(gcargs, "-fgo-relative-import-path="+p.localPrefix) } - args := stringList("gccgo", importArgs, "-c", gcargs, "-o", ofile, buildGccgoflags) + args := stringList(gccgoName, importArgs, "-c", gcargs, "-o", ofile, buildGccgoflags) for _, f := range gofiles { args = append(args, mkAbs(p.Dir, f)) } @@ -1812,7 +1820,7 @@ func (gccgoToolchain) asm(b *builder, p *Package, obj, ofile, sfile string) erro defs = append(defs, `-D`, `GOPKGPATH="`+pkgpath+`"`) } defs = append(defs, b.gccArchArgs()...) - return b.run(p.Dir, p.ImportPath, nil, "gccgo", "-I", obj, "-o", ofile, defs, sfile) + return b.run(p.Dir, p.ImportPath, nil, gccgoName, "-I", obj, "-o", ofile, defs, sfile) } func (gccgoToolchain) pkgpath(basedir string, p *Package) string { @@ -1889,7 +1897,7 @@ func (tools gccgoToolchain) ld(b *builder, p *Package, out string, allactions [] if objc { ldflags = append(ldflags, "-lobjc") } - return b.run(".", p.ImportPath, nil, "gccgo", "-o", out, ofiles, "-Wl,-(", ldflags, "-Wl,-)", buildGccgoflags) + return b.run(".", p.ImportPath, nil, gccgoName, "-o", out, ofiles, "-Wl,-(", ldflags, "-Wl,-)", buildGccgoflags) } func (gccgoToolchain) cc(b *builder, p *Package, objdir, ofile, cfile string) error { |