aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRuss Cox <rsc@golang.org>2015-01-21 12:09:20 -0500
committerRuss Cox <rsc@golang.org>2015-01-21 19:06:21 +0000
commita8e5e803e68c11fe812fa5d2d1ecefc0ffa73ef7 (patch)
tree5e1eb76280befd5047481832e1e6d2a85af911ae
parentbe818361b9a5e73ade75fa1999ed0dec81de7cb6 (diff)
downloadgo-a8e5e803e68c11fe812fa5d2d1ecefc0ffa73ef7.tar.gz
go-a8e5e803e68c11fe812fa5d2d1ecefc0ffa73ef7.zip
[dev.cc] cmd/dist: write cmd/internal/obj/zbootstrap.go
cmd/internal/obj needs information about the default values of GOROOT, GOARM, GOEXPERIMENT, Version, and so on. It cannot ask package runtime, because during bootstrap package runtime comes from Go 1.4. So it must have its own copy. Change-Id: I73d3e75a3d47210b3184a51a810ebb44826b81e5 Reviewed-on: https://go-review.googlesource.com/3140 Reviewed-by: Ian Lance Taylor <iant@golang.org> Reviewed-by: Rob Pike <r@golang.org>
-rw-r--r--.gitignore1
-rw-r--r--src/cmd/dist/buildruntime.go28
-rw-r--r--src/cmd/dist/buildtool.go2
3 files changed, 31 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index 7b63aaf3d4..f1c7263237 100644
--- a/.gitignore
+++ b/.gitignore
@@ -35,6 +35,7 @@ src/cmd/gc/mkbuiltin1
src/cmd/gc/opnames.h
src/cmd/gc/y.output
src/cmd/go/zdefaultcc.go
+src/cmd/internal/obj/zbootstrap.go
src/go/doc/headscan
src/runtime/mkversion
src/runtime/zaexperiment.h
diff --git a/src/cmd/dist/buildruntime.go b/src/cmd/dist/buildruntime.go
index 1e6ae82397..5e2605966b 100644
--- a/src/cmd/dist/buildruntime.go
+++ b/src/cmd/dist/buildruntime.go
@@ -45,3 +45,31 @@ func mkzexperiment(dir, file string) {
writefile(out, file, 0)
}
+
+// mkzbootstrap writes cmd/internal/obj/zbootstrap.go:
+//
+// package obj
+//
+// const defaultGOROOT = <goroot>
+// const defaultGOARM = <goarm>
+// const defaultGOOS = <goos>
+// const defaultGOARCH = <goarch>
+// const version = <version>
+// const goexperiment = <goexperiment>
+//
+func mkzbootstrap(file string) {
+ out := fmt.Sprintf(
+ "// auto generated by go tool dist\n"+
+ "\n"+
+ "package obj\n"+
+ "\n"+
+ "const defaultGOROOT = `%s`\n"+
+ "const defaultGOARM = `%s`\n"+
+ "const defaultGOOS = `%s`\n"+
+ "const defaultGOARCH = `%s`\n"+
+ "const version = `%s`\n"+
+ "const goexperiment = `%s`\n",
+ goroot_final, goarm, gohostos, gohostarch, goversion, os.Getenv("GOEXPERIMENT"))
+
+ writefile(out, file, 0)
+}
diff --git a/src/cmd/dist/buildtool.go b/src/cmd/dist/buildtool.go
index c493dd1e51..10371526d3 100644
--- a/src/cmd/dist/buildtool.go
+++ b/src/cmd/dist/buildtool.go
@@ -38,6 +38,8 @@ func bootstrapBuildTools() {
}
xprintf("##### Building Go toolchain using %s.\n", goroot_bootstrap)
+ mkzbootstrap(pathf("%s/src/cmd/internal/obj/zbootstrap.go", goroot))
+
// Use $GOROOT/pkg/bootstrap as the bootstrap workspace root.
// We use a subdirectory of $GOROOT/pkg because that's the
// space within $GOROOT where we store all generated objects.