golang/src/cmd/dist
Ian Lance Taylor 6584fe8195 cmd/dist: don't copy files ending in ~ to bootstrap directory
They are editor backup files. They are ignored by .gitignore,
so they can never be real files in the Go repo.

Change-Id: I58800e6e9f939e0bd21b086243b9260bcc8cd770
Reviewed-on: https://go-review.googlesource.com/c/go/+/584675
Reviewed-by: Than McIntosh <thanm@google.com>
Reviewed-by: Ian Lance Taylor <iant@google.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Auto-Submit: Ian Lance Taylor <iant@golang.org>
2024-05-09 23:29:41 +00:00
..
README cmd/dist: fix broken link in README 2023-07-25 17:20:22 +00:00
build.go cmd/go: preprocess PGO profiles 2024-04-18 15:38:19 +00:00
build_test.go cmd/link/internal/ld: move more of mustLinkExternal into internal/platform 2023-03-02 16:34:21 +00:00
buildgo.go cmd/dist: more robust cleanup 2023-06-13 20:44:00 +00:00
buildruntime.go cmd/dist,internal: add GOARM64 environment variable 2024-03-06 01:33:19 +00:00
buildtag.go cmd/dist: implement //go:build parsing 2021-10-28 03:35:04 +00:00
buildtag_test.go cmd/dist: add buildtag parsing test 2021-11-25 00:02:52 +00:00
buildtool.go cmd/dist: don't copy files ending in ~ to bootstrap directory 2024-05-09 23:29:41 +00:00
doc.go all: gofmt main repo 2022-04-11 16:34:30 +00:00
exec.go all: update build tags to require/assume Go 1.20 2023-07-20 21:52:09 +00:00
imports.go cmd/dist: support GOROOT vendoring 2019-10-28 21:45:30 +00:00
main.go internal/platform,cmd/dist: export the list of supported platforms 2023-06-22 19:44:52 +00:00
notgo120.go all: drop old +build lines 2023-10-19 23:33:27 +00:00
quoted.go all: add missing copyright header 2022-11-09 14:05:53 +00:00
supported_test.go all: fix a large number of comments 2024-03-26 19:58:28 +00:00
sys_default.go all: drop old +build lines 2023-10-19 23:33:27 +00:00
sys_windows.go all: fix Microsoft links 2023-09-12 16:42:41 +00:00
test.go slices: add iterator-related functions 2024-05-09 19:20:55 +00:00
testjson.go all: remove redundant string conversions when formatting []byte with %s 2024-03-07 20:46:32 +00:00
testjson_test.go cmd/dist: flush incomplete lines in -json mode 2023-05-19 20:13:24 +00:00
util.go cmd/dist: default to GOARM=7 on all non-arm systems 2023-02-23 17:50:29 +00:00
util_gc.go all: drop old +build lines 2023-10-19 23:33:27 +00:00
util_gccgo.go all: drop old +build lines 2023-10-19 23:33:27 +00:00
vfp_arm.s all: drop old +build lines 2023-10-19 23:33:27 +00:00
vfp_default.s all: drop old +build lines 2023-10-19 23:33:27 +00:00

README

This program, dist, is the bootstrapping tool for the Go distribution.

As of Go 1.5, dist and other parts of the compiler toolchain are written
in Go, making bootstrapping a little more involved than in the past.
The approach is to build the current release of Go with an earlier one.

The process to install Go 1.x, for x ≥ 22, is:

1. Build cmd/dist with Go 1.20.6.
2. Using dist, build Go 1.x compiler toolchain with Go 1.20.6.
3. Using dist, rebuild Go 1.x compiler toolchain with itself.
4. Using dist, build Go 1.x cmd/go (as go_bootstrap) with Go 1.x compiler toolchain.
5. Using go_bootstrap, build the remaining Go 1.x standard library and commands.

Because of backward compatibility, although the steps above say Go 1.20.6,
in practice any release ≥ Go 1.20.6 but < Go 1.x will work as the bootstrap base.
Releases ≥ Go 1.x are very likely to work as well.

See https://go.dev/s/go15bootstrap for more details about the original bootstrap
and https://go.dev/issue/54265 for details about later bootstrap version bumps.