aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorK. "pestophagous" Heller <pestophagous@gmail.com>2019-08-04 22:46:29 -0700
committerIan Lance Taylor <iant@golang.org>2019-08-09 20:26:42 +0000
commit9c1f14f3763dbbc0d8105fa88c0b7bdad5674ee7 (patch)
tree59cea3128123ac27ecd19d08532cc20ac3182770
parent951143cf1425189965498cc32fc8dc132bf7c777 (diff)
downloadgo-9c1f14f3763dbbc0d8105fa88c0b7bdad5674ee7.tar.gz
go-9c1f14f3763dbbc0d8105fa88c0b7bdad5674ee7.zip
doc/install-source: create distinction between steps that involve "git clone"
Prior doc implied that "git clone" was one way to obtain a go1.4 bootstrap toochain, but it did not state this outright. Further, the doc did not make it explicit in the "Fetch the repository" section that one must necessarily "git clone" a second time in the (presumed-to-be-uncommon) case where "git clone" had already been perfomed in the "compiler binaries" section. Updates #33402 Change-Id: Id70a6587b6ee09aca13559d63868b75cb07dff1e Reviewed-on: https://go-review.googlesource.com/c/go/+/188900 Reviewed-by: Ian Lance Taylor <iant@golang.org>
-rw-r--r--doc/install-source.html22
1 files changed, 22 insertions, 0 deletions
diff --git a/doc/install-source.html b/doc/install-source.html
index f78dacf7ea..12b10d5621 100644
--- a/doc/install-source.html
+++ b/doc/install-source.html
@@ -140,12 +140,16 @@ For example, <code>$GOROOT_BOOTSTRAP/bin/go</code> should be
the <code>go</code> command binary for the bootstrap toolchain.
</p>
+<h3 id="bootstrapFromBinaryRelease">Bootstrap toolchain from binary release</h3>
+
<p>
To use a binary release as a bootstrap toolchain, see
<a href="/dl/">the downloads page</a> or use any other
packaged Go distribution.
</p>
+<h3 id="bootstrapFromSource">Bootstrap toolchain from source</h3>
+
<p>
To build a bootstrap toolchain from source, use
either the git branch <code>release-branch.go1.4</code> or
@@ -160,6 +164,17 @@ on Windows, <code>make.bat</code>).
</p>
<p>
+Once the Go 1.4 source has been unpacked into your GOROOT_BOOTSTRAP directory,
+you must keep this git clone instance checked out to branch
+<code>release-branch.go1.4</code>. Specifically, do not attempt to reuse
+this git clone in the later step named "Fetch the repository." The go1.4
+bootstrap toolchain <b>must be able</b> to properly traverse the go1.4 sources
+that it assumes are present under this repository root.
+</p>
+
+<h3 id="bootstrapFromCrosscompiledSource">Bootstrap toolchain from cross-compiled source</h3>
+
+<p>
To cross-compile a bootstrap toolchain from source, which is
necessary on systems Go 1.4 did not target (for
example, <code>linux/ppc64le</code>), install Go on a different system
@@ -181,6 +196,8 @@ That tree can be copied to a machine of the given target type
and used as <code>GOROOT_BOOTSTRAP</code> to bootstrap a local build.
</p>
+<h3 id="bootstrapFromGccgo">Bootstrap toolchain using gccgo</h3>
+
<p>
To use gccgo as the bootstrap toolchain, you need to arrange
for <code>$GOROOT_BOOTSTRAP/bin/go</code> to be the go tool that comes
@@ -246,6 +263,11 @@ that if Go is checked out in <code>$HOME/go</code>, it will conflict with
the default location of <code>$GOPATH</code>.
See <a href="#gopath"><code>GOPATH</code></a> below.</p>
+Reminder: If you opted to also compile the bootstrap binaries from source (in an
+earlier section), you still need to <code>git clone</code> again at this point
+(to checkout the latest <code>&lt;tag&gt;</code>), because you must keep your
+go1.4 repository distinct.
+
<h2 id="head">(Optional) Switch to the master branch</h2>
<p>If you intend to modify the go source code, and