mirror of https://github.com/golang/go.git
The variable represents the RISC-V user-mode application profile for which to compile. Valid values are rva20u64 (the default) and rva22u64. Setting GORISCV64=rva20u64 defines the riscv64.rva20u64 build tag, sets the internal variable buildcfg.GORISCV64 to 20 and defines the macro GORISCV64_rva20u64 for use in assembly language code. Setting GORISCV64=rva22u64 defines the riscv64.rva20u64 and riscv64.rva22u64 build tags, sets the internal variable buildcfg.GORISCV64 to 22 and defines the macro GORISCV64_rva22u64 for use in assembly language code. This patch only provides a mechanism for the compiler and hand-coded assembly language functions to take advantage of the RISC-V extensions mandated by the application profiles. Further patches will be required to get the compiler/assembler and assembly language functions to actually generate and use these extensions. Fixes #61476 Change-Id: I9195ae6ee71703cd2112160e89157ab63b8391af Reviewed-on: https://go-review.googlesource.com/c/go/+/541135 Reviewed-by: M Zhuo <mengzhuo1203@gmail.com> Reviewed-by: Joel Sing <joel@sing.id.au> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Wang Yaduo <wangyaduo@linux.alibaba.com> Reviewed-by: Cherry Mui <cherryyz@google.com> Reviewed-by: Bryan Mills <bcmills@google.com> Run-TryBot: M Zhuo <mengzhuo1203@gmail.com> TryBot-Result: Gopher Robot <gobot@golang.org> |
||
|---|---|---|
| .. | ||
| README | ||
| build.go | ||
| build_test.go | ||
| buildgo.go | ||
| buildruntime.go | ||
| buildtag.go | ||
| buildtag_test.go | ||
| buildtool.go | ||
| doc.go | ||
| exec.go | ||
| imports.go | ||
| main.go | ||
| notgo120.go | ||
| quoted.go | ||
| supported_test.go | ||
| sys_default.go | ||
| sys_windows.go | ||
| test.go | ||
| testjson.go | ||
| testjson_test.go | ||
| util.go | ||
| util_gc.go | ||
| util_gccgo.go | ||
| vfp_arm.s | ||
| vfp_default.s | ||
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.