|
@@ -1,95 +0,0 @@
|
|
|
-From 38d841a18ab0bcb63554fed6b38012e504599891 Mon Sep 17 00:00:00 2001
|
|
|
-From: Christian Stewart <christian@paral.in>
|
|
|
-Date: Wed, 1 Jun 2022 20:52:12 +0000
|
|
|
-Subject: [PATCH] cmd/dist: use gohostarch for ssa rewrite check
|
|
|
-
|
|
|
-Fix a build failure when bootstrapping the Go compiler with go-bootstrap 1.4
|
|
|
-while the environment contains GOARCH=riscv64.
|
|
|
-
|
|
|
-Building Go toolchain1 using go-1.4-bootstrap-20171003.
|
|
|
-src/cmd/compile/internal/ssa/rewriteRISCV64.go:4814
|
|
|
-invalid operation: y << x (shift count type int64, must be unsigned integer)
|
|
|
-
|
|
|
-This is because:
|
|
|
-
|
|
|
- - buildtool.go:198: calls bootstrapRewriteFile(src)
|
|
|
- - bootstrapRewriteFile: buildtool.go:283 calls:
|
|
|
- - isUnneededSSARewriteFile: checks os.Getenv("GOARCH")
|
|
|
- - isUnneededSSARewriteFile: returns "", false
|
|
|
- - bootstrapRewriteFile: calls bootstrapFixImports
|
|
|
- - boostrapFixImports: generates code go1.4 cannot compile
|
|
|
-
|
|
|
-Instead of checking "GOARCH" in the environment, use the gohostarch variable.
|
|
|
-
|
|
|
-Change-Id: Ie9c190498555c4068461fead6278a62e924062c6
|
|
|
-GitHub-Last-Rev: 300d7a7fea0a67c696970fd271e2ce709674a658
|
|
|
-GitHub-Pull-Request: golang/go#52362
|
|
|
-Reviewed-on: https://go-review.googlesource.com/c/go/+/400376
|
|
|
-Reviewed-by: Bryan Mills <bcmills@google.com>
|
|
|
-TryBot-Result: Gopher Robot <gobot@golang.org>
|
|
|
-Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
|
|
|
-Auto-Submit: Bryan Mills <bcmills@google.com>
|
|
|
-Run-TryBot: Bryan Mills <bcmills@google.com>
|
|
|
-Reviewed-by: Joel Sing <joel@sing.id.au>
|
|
|
-Run-TryBot: Joel Sing <joel@sing.id.au>
|
|
|
----
|
|
|
- src/cmd/dist/buildtool.go | 16 ++++++----------
|
|
|
- 1 file changed, 6 insertions(+), 10 deletions(-)
|
|
|
-
|
|
|
-diff --git a/src/cmd/dist/buildtool.go b/src/cmd/dist/buildtool.go
|
|
|
-index 036f8c52fa..2d8ace52d8 100644
|
|
|
---- a/src/cmd/dist/buildtool.go
|
|
|
-+++ b/src/cmd/dist/buildtool.go
|
|
|
-@@ -16,7 +16,6 @@ import (
|
|
|
- "os"
|
|
|
- "path/filepath"
|
|
|
- "regexp"
|
|
|
-- "runtime"
|
|
|
- "strings"
|
|
|
- )
|
|
|
-
|
|
|
-@@ -239,11 +238,11 @@ var ssaRewriteFileSubstring = filepath.FromSlash("src/cmd/compile/internal/ssa/r
|
|
|
-
|
|
|
- // isUnneededSSARewriteFile reports whether srcFile is a
|
|
|
- // src/cmd/compile/internal/ssa/rewriteARCHNAME.go file for an
|
|
|
--// architecture that isn't for the current runtime.GOARCH.
|
|
|
-+// architecture that isn't for the given GOARCH.
|
|
|
- //
|
|
|
- // When unneeded is true archCaps is the rewrite base filename without
|
|
|
- // the "rewrite" prefix or ".go" suffix: AMD64, 386, ARM, ARM64, etc.
|
|
|
--func isUnneededSSARewriteFile(srcFile string) (archCaps string, unneeded bool) {
|
|
|
-+func isUnneededSSARewriteFile(srcFile, goArch string) (archCaps string, unneeded bool) {
|
|
|
- if !strings.Contains(srcFile, ssaRewriteFileSubstring) {
|
|
|
- return "", false
|
|
|
- }
|
|
|
-@@ -258,13 +257,10 @@ func isUnneededSSARewriteFile(srcFile string) (archCaps string, unneeded bool) {
|
|
|
- archCaps = fileArch
|
|
|
- fileArch = strings.ToLower(fileArch)
|
|
|
- fileArch = strings.TrimSuffix(fileArch, "splitload")
|
|
|
-- if fileArch == os.Getenv("GOHOSTARCH") {
|
|
|
-+ if fileArch == goArch {
|
|
|
- return "", false
|
|
|
- }
|
|
|
-- if fileArch == strings.TrimSuffix(runtime.GOARCH, "le") {
|
|
|
-- return "", false
|
|
|
-- }
|
|
|
-- if fileArch == strings.TrimSuffix(os.Getenv("GOARCH"), "le") {
|
|
|
-+ if fileArch == strings.TrimSuffix(goArch, "le") {
|
|
|
- return "", false
|
|
|
- }
|
|
|
- return archCaps, true
|
|
|
-@@ -273,9 +269,9 @@ func isUnneededSSARewriteFile(srcFile string) (archCaps string, unneeded bool) {
|
|
|
- func bootstrapRewriteFile(srcFile string) string {
|
|
|
- // During bootstrap, generate dummy rewrite files for
|
|
|
- // irrelevant architectures. We only need to build a bootstrap
|
|
|
-- // binary that works for the current runtime.GOARCH.
|
|
|
-+ // binary that works for the current gohostarch.
|
|
|
- // This saves 6+ seconds of bootstrap.
|
|
|
-- if archCaps, ok := isUnneededSSARewriteFile(srcFile); ok {
|
|
|
-+ if archCaps, ok := isUnneededSSARewriteFile(srcFile, gohostarch); ok {
|
|
|
- return fmt.Sprintf(`// Code generated by go tool dist; DO NOT EDIT.
|
|
|
-
|
|
|
- package ssa
|
|
|
---
|
|
|
-2.35.1
|
|
|
-
|