- Template gcc-go.patch to substitute gcc_go_version and eliminate multiple similar patches each with hardcoded gcc go binary name. gcc-go.patch inserts gcc-go binary name e.g. go-8 to compensate for current lack of gcc-go update-alternatives usage. * add gcc-go.patch * drop gcc6-go.patch * drop gcc7-go.patch - For SLE-12 set gcc_go_version to 8 to bootstrap using gcc8-go. gcc6-go and gcc7-go no longer successfully bootstrap go1.17 or go1.18 on SLE-12 aarch64 ppc64le or s390x. * gcc6-go fails with errors e.g. libnoder.a(_go_.o):(.toc+0x0): undefined reference to `__go_pimt__I4_DiagFrN4_boolee3 OBS-URL: https://build.opensuse.org/request/show/967639 OBS-URL: https://build.opensuse.org/package/show/devel:languages:go/go1.18?expand=0&rev=12
78 lines
3.0 KiB
Diff
78 lines
3.0 KiB
Diff
Index: go/src/cmd/dist/buildtool.go
|
|
===================================================================
|
|
--- go.orig/src/cmd/dist/buildtool.go
|
|
+++ go/src/cmd/dist/buildtool.go
|
|
@@ -205,7 +205,7 @@ func bootstrapBuildTools() {
|
|
// only applies to the final cmd/go binary, but that's OK: if this is Go 1.10
|
|
// or later we don't need to disable inlining to work around bugs in the Go 1.4 compiler.
|
|
cmd := []string{
|
|
- pathf("%s/bin/go", goroot_bootstrap),
|
|
+ pathf("%s/bin/go-$gcc_go_version", goroot_bootstrap),
|
|
"install",
|
|
"-gcflags=-l",
|
|
"-tags=math_big_pure_go compiler_bootstrap",
|
|
Index: go/src/make.bash
|
|
===================================================================
|
|
--- go.orig/src/make.bash
|
|
+++ go/src/make.bash
|
|
@@ -60,7 +60,7 @@
|
|
# time goes when these scripts run.
|
|
#
|
|
# GOROOT_BOOTSTRAP: A working Go tree >= Go 1.4 for bootstrap.
|
|
-# If $GOROOT_BOOTSTRAP/bin/go is missing, $(go env GOROOT) is
|
|
+# If $GOROOT_BOOTSTRAP/bin/go-$gcc_go_version is missing, $(go env GOROOT) is
|
|
# tried for all "go" in $PATH. $HOME/go1.4 by default.
|
|
|
|
set -e
|
|
@@ -176,8 +176,8 @@
|
|
fi
|
|
fi
|
|
done; unset IFS
|
|
-if [ ! -x "$GOROOT_BOOTSTRAP/bin/go" ]; then
|
|
- echo "ERROR: Cannot find $GOROOT_BOOTSTRAP/bin/go." >&2
|
|
+if [ ! -x "$GOROOT_BOOTSTRAP/bin/go-$gcc_go_version" ]; then
|
|
+ echo "ERROR: Cannot find $GOROOT_BOOTSTRAP/bin/go-$gcc_go_version." >&2
|
|
echo "Set \$GOROOT_BOOTSTRAP to a working Go tree >= Go 1.4." >&2
|
|
exit 1
|
|
fi
|
|
@@ -195,7 +195,7 @@
|
|
exit 1
|
|
fi
|
|
rm -f cmd/dist/dist
|
|
-GOROOT="$GOROOT_BOOTSTRAP" GOOS="" GOARCH="" GO111MODULE=off "$GOROOT_BOOTSTRAP/bin/go" build -o cmd/dist/dist ./cmd/dist
|
|
+GOROOT="$GOROOT_BOOTSTRAP" GOOS="" GOARCH="" GO111MODULE=off "$GOROOT_BOOTSTRAP/bin/go-$gcc_go_version" build -o cmd/dist/dist ./cmd/dist
|
|
|
|
# -e doesn't propagate out of eval, so check success by hand.
|
|
eval $(./cmd/dist/dist env -p || echo FAIL=true)
|
|
Index: go/src/make.rc
|
|
===================================================================
|
|
--- go.orig/src/make.rc
|
|
+++ go/src/make.rc
|
|
@@ -60,7 +60,7 @@ GOROOT = `{cd .. && pwd}
|
|
if(! ~ $#GOROOT_BOOTSTRAP 1)
|
|
GOROOT_BOOTSTRAP = $home/go1.4
|
|
for(p in $path){
|
|
- if(! test -x $GOROOT_BOOTSTRAP/bin/go){
|
|
+ if(! test -x $GOROOT_BOOTSTRAP/bin/go-$gcc_go_version){
|
|
if(go_exe = `{path=$p whatis go}){
|
|
goroot = `{GOROOT='' $go_exe env GOROOT}
|
|
if(! ~ $goroot $GOROOT){
|
|
@@ -73,7 +73,7 @@ for(p in $path){
|
|
}
|
|
}
|
|
}
|
|
-if(! test -x $GOROOT_BOOTSTRAP/bin/go){
|
|
+if(! test -x $GOROOT_BOOTSTRAP/bin/go-$gcc_go_version){
|
|
echo 'ERROR: Cannot find '$GOROOT_BOOTSTRAP'/bin/go.' >[1=2]
|
|
echo 'Set $GOROOT_BOOTSTRAP to a working Go tree >= Go 1.4.' >[1=2]
|
|
exit bootstrap
|
|
@@ -87,7 +87,7 @@ if(~ $GOROOT_BOOTSTRAP $GOROOT){
|
|
echo 'Building Go cmd/dist using '^$GOROOT_BOOTSTRAP
|
|
if(~ $#vflag 1)
|
|
echo cmd/dist
|
|
-GOROOT=$GOROOT_BOOTSTRAP GOOS='' GOARCH='' GO111MODULE=off $GOROOT_BOOTSTRAP/bin/go build -o cmd/dist/dist ./cmd/dist
|
|
+GOROOT=$GOROOT_BOOTSTRAP GOOS='' GOARCH='' GO111MODULE=off $GOROOT_BOOTSTRAP/bin/go-$gcc_go_version build -o cmd/dist/dist ./cmd/dist
|
|
|
|
eval `{./cmd/dist/dist env -9}
|
|
if(~ $#vflag 1)
|