homebrewで入れたgoの$GOROOT

$BREW_HOME/Cellar/go/1.1.1 でよかったんだけど、https://github.com/mxcl/homebrew/commit/743bf42e2e0a5f0fc217b114e88c24f84c1fed97 以降は $BREW_HOME/Cellar/go/1.1.2/libexec としてやらないといけなくなった。

なんだけど、このtweetをたまたま見て、そもそもGOROOTはビルド時と違う場所に置いたりしてない限り別に設定しなくて良いらしい。ということを知った。

で少し調べた。

$ echo $GOROOT

$ go env
GOARCH="amd64"
GOBIN=""
GOCHAR="6"
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="darwin"
GOOS="darwin"
GOPATH=""
GORACE=""
GOROOT="/Users/toqoz/brew/Cellar/go/1.1.2/libexec"
GOTOOLDIR="/Users/toqoz/brew/Cellar/go/1.1.2/libexec/pkg/tool/darwin_amd64"
CC="gcc"
GOGCCFLAGS="-g -O2 -fPIC -m64 -pthread -fno-common"
CGO_ENABLED="1"

pkg/runtime/zversion.godefaultGoroot って定数で持ってた。build時に http://golang.org/src/cmd/dist/buildruntime.c#L18 でそれを作ってる。

cf. http://golang.org/doc/install#tarball_non_standard