forked from buildroot/buildroot
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
package/go: update patch for go-bootstrap fix
Add a patch to fix a build failure due to the target GOARCH being used while bootstrapping the Go compiler with the go-bootstrap compiler. Uses the host architecture variable instead. This commit updates the patch with improvements from the upstream PR. PR: golang/go#52362 Signed-off-by: Christian Stewart <christian@paral.in> Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr> (cherry picked from commit bc3de65) Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
- Loading branch information
Showing
2 changed files
with
95 additions
and
119 deletions.
There are no files selected for viewing
119 changes: 0 additions & 119 deletions
119
package/go/0002-build-bootstrap-set-environment-before-generating-bu.patch
This file was deleted.
Oops, something went wrong.
95 changes: 95 additions & 0 deletions
95
package/go/0002-cmd-dist-use-gohostarch-for-ssa-rewrite-check.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,95 @@ | ||
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 | ||
|