Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit fde85346 authored by Dan Willemsen's avatar Dan Willemsen
Browse files

Don't use runtime.Version() to find the current go version

That will be the go version at compile time. So read $GOROOT/VERSION, or
fall back to executing `$GOROOT/bin/go version` to find the go version
currently in GOROOT.

Test: Ensure everything rebuilds when switching between go1.8rc2 and go1.8
Change-Id: I8738a7aa249a088b1e0668af260fa3974844dab7
parent fd96d242
Loading
Loading
Loading
Loading
+15 −1
Original line number Diff line number Diff line
@@ -67,8 +67,22 @@ var (
	verbose = false

	goToolDir = filepath.Join(runtime.GOROOT(), "pkg", "tool", runtime.GOOS+"_"+runtime.GOARCH)
	goVersion = findGoVersion()
)

func findGoVersion() string {
	if version, err := ioutil.ReadFile(filepath.Join(runtime.GOROOT(), "VERSION")); err == nil {
		return string(version)
	}

	cmd := exec.Command(filepath.Join(runtime.GOROOT(), "bin", "go"), "version")
	if version, err := cmd.Output(); err == nil {
		return string(version)
	} else {
		panic(fmt.Sprintf("Unable to discover go version: %v", err))
	}
}

type GoPackage struct {
	Name string

@@ -218,7 +232,7 @@ func (p *GoPackage) Compile(outDir, trimPath string) error {
	shaFile := p.output + ".hash"

	hash := sha1.New()
	fmt.Fprintln(hash, runtime.GOOS, runtime.GOARCH, runtime.Version())
	fmt.Fprintln(hash, runtime.GOOS, runtime.GOARCH, goVersion)

	cmd := exec.Command(filepath.Join(goToolDir, "compile"),
		"-o", p.output,
+1 −1
Original line number Diff line number Diff line
@@ -53,7 +53,7 @@ function run_go
{
    # Increment when microfactory changes enough that it cannot rebuild itself.
    # For example, if we use a new command line argument that doesn't work on older versions.
    local mf_version=1
    local mf_version=2

    local mf_src="${TOP}/build/soong/cmd/microfactory"