Bump to 1.9beta2

Workaround build failure on s390x
This commit is contained in:
Jakub Čajka 2017-07-12 13:38:36 +02:00
parent 45041c89fe
commit 5767354120
6 changed files with 59 additions and 36 deletions

1
.gitignore vendored
View File

@ -41,3 +41,4 @@
/go1.8.src.tar.gz
/go1.8.1.src.tar.gz
/go1.8.3.src.tar.gz
/go1.9beta2.src.tar.gz

View File

@ -1,8 +1,7 @@
Index: go/src/make.bash
===================================================================
--- go.orig/src/make.bash
+++ go/src/make.bash
@@ -153,12 +153,12 @@ if [ "$GOHOSTARCH" != "$GOARCH" -o "$GOHOSTOS" != "$GOOS" ]; then
diff -up go/src/make.bash.verbose go/src/make.bash
--- go/src/make.bash.verbose 2017-07-11 12:00:09.513553508 +0200
+++ go/src/make.bash 2017-07-11 12:01:25.288245720 +0200
@@ -167,7 +167,7 @@ if [ "$GOHOSTARCH" != "$GOARCH" -o "$GOH
# CC_FOR_TARGET is recorded as the default compiler for the go tool. When building for the host, however,
# use the host compiler, CC, from `cmd/dist/dist env` instead.
CC=$CC GOOS=$GOHOSTOS GOARCH=$GOHOSTARCH \
@ -11,9 +10,12 @@ Index: go/src/make.bash
echo
fi
echo "##### Building packages and commands for $GOOS/$GOARCH."
@@ -175,7 +175,7 @@ echo "##### Building packages and comman
old_bin_files=$(cd $GOROOT/bin && echo *)
-CC=$CC_FOR_TARGET "$GOTOOLDIR"/go_bootstrap install $GO_FLAGS -gcflags "$GO_GCFLAGS" -ldflags "$GO_LDFLAGS" -v std cmd
+CC=$CC_FOR_TARGET "$GOTOOLDIR"/go_bootstrap install $GO_FLAGS -gcflags "$GO_GCFLAGS" -ldflags "$GO_LDFLAGS" -v -x std cmd
echo
rm -f "$GOTOOLDIR"/go_bootstrap
# Check that there are no new files in $GOROOT/bin other than go and gofmt
# and $GOOS_$GOARCH (a directory used when cross-compiling).

View File

@ -1,36 +1,37 @@
diff -up go/src/cmd/dist/buildtool.go.bootstrap go/src/cmd/dist/buildtool.go
--- go/src/cmd/dist/buildtool.go.bootstrap 2016-10-24 12:54:57.620563325 +0200
+++ go/src/cmd/dist/buildtool.go 2016-10-24 13:12:25.036466602 +0200
@@ -131,17 +131,25 @@ func bootstrapBuildTools() {
--- go/src/cmd/dist/buildtool.go.bootstrap 2017-07-11 12:05:00.041373419 +0200
+++ go/src/cmd/dist/buildtool.go 2017-07-11 12:07:27.141775914 +0200
@@ -153,18 +153,26 @@ func bootstrapBuildTools() {
defer os.Setenv("GOBIN", os.Getenv("GOBIN"))
os.Setenv("GOBIN", "")
+ hostos := os.Getenv("GOHOSTOS")
+ hostarch := os.Getenv("GOHOSTARCH")
+ hostos := os.Getenv("GOHOSTOS")
+ hostarch := os.Getenv("GOHOSTARCH")
+
os.Setenv("GOOS", "")
os.Setenv("GOHOSTOS", "")
os.Setenv("GOARCH", "")
os.Setenv("GOHOSTARCH", "")
+ bingopath := pathf("%s/bin/%s_%s/go", goroot_bootstrap, hostos, hostarch)
+ if _, err := os.Stat(bingopath); os.IsNotExist(err) {
+ bingopath = pathf("%s/bin/go", goroot_bootstrap)
+ }
+ bingopath := pathf("%s/bin/%s_%s/go", goroot_bootstrap, hostos, hostarch)
+ if _, err := os.Stat(bingopath); os.IsNotExist(err) {
+ bingopath = pathf("%s/bin/go", goroot_bootstrap)
+ }
+
// Run Go 1.4 to build binaries. Use -gcflags=-l to disable inlining to
// workaround bugs in Go 1.4's compiler. See discussion thread:
// https://groups.google.com/d/msg/golang-dev/Ss7mCKsvk8w/Gsq7VYI0AwAJ
// Use the math_big_pure_go build tag to disable the assembly in math/big
// which may contain unsupported instructions.
- run(workspace, ShowOutput|CheckExit, pathf("%s/bin/go", goroot_bootstrap), "install", "-gcflags=-l", "-tags=math_big_pure_go", "-v", "bootstrap/cmd/...")
+ run(workspace, ShowOutput|CheckExit, bingopath, "install", "-gcflags=-l", "-v", "-tags=math_big_pure_go", "bootstrap/...")
// Copy binaries into tool binary directory.
for _, name := range bootstrapDirs {
cmd := []string{
- pathf("%s/bin/go", goroot_bootstrap),
+ bingopath,
"install",
"-gcflags=-l",
"-tags=math_big_pure_go",
diff -up go/src/make.bash.bootstrap go/src/make.bash
--- go/src/make.bash.bootstrap 2016-10-24 12:54:57.606563267 +0200
+++ go/src/make.bash 2016-10-24 12:54:57.620563325 +0200
--- go/src/make.bash.bootstrap 2017-07-11 12:05:00.036373439 +0200
+++ go/src/make.bash 2017-07-11 12:05:00.041373419 +0200
@@ -120,8 +120,15 @@ echo '##### Building Go bootstrap tool.'
echo cmd/dist
export GOROOT="$(cd .. && pwd)"
@ -49,7 +50,7 @@ diff -up go/src/make.bash.bootstrap go/src/make.bash
echo "Set \$GOROOT_BOOTSTRAP to a working Go tree >= Go 1.4." >&2
exit 1
fi
@@ -130,8 +137,6 @@ if [ "$GOROOT_BOOTSTRAP" == "$GOROOT" ];
@@ -130,8 +137,6 @@ if [ "$GOROOT_BOOTSTRAP" = "$GOROOT" ];
echo "Set \$GOROOT_BOOTSTRAP to a working Go tree >= Go 1.4." >&2
exit 1
fi

View File

@ -93,12 +93,12 @@
%global gohostarch s390x
%endif
%global go_api 1.8
%global go_version 1.8.3
%global go_api 1.9
%global go_version 1.9beta2
Name: golang
Version: 1.8.3
Release: 1%{?dist}
Version: 1.9
Release: 0.beta2.1%{?dist}
Summary: The Go Programming Language
# source tree includes several copies of Mark.Twain-Tom.Sawyer.txt under Public Domain
License: BSD and Public Domain
@ -119,7 +119,7 @@ BuildRequires: hostname
BuildRequires: net-tools
%endif
# for tests
BuildRequires: pcre-devel, glibc-static, perl
BuildRequires: pcre-devel, glibc-static, perl, procps-ng
Provides: go = %{version}-%{release}
Requires: %{name}-bin = %{version}-%{release}
@ -137,8 +137,8 @@ Patch215: ./go1.5-zoneinfo_testing_only.patch
# Proposed patch by mmunday https://golang.org/cl/35262
Patch219: s390x-expose-IfInfomsg-X__ifi_pad.patch
# https://github.com/golang/go/commit/94aba76639cf4d5e30975d846bb0368db8202269
Patch220: 31bit-OID-asn1.patch
Patch220: s390x-ignore-L0syms.patch
# Having documentation separate was broken
Obsoletes: %{name}-docs < 1.1-4
@ -270,13 +270,11 @@ Requires: %{name} = %{version}-%{release}
%patch215 -p1
%patch219 -p1
%patch220 -p1
cp %{SOURCE1} ./src/runtime/
# don't include chacha test vectors in buildID
mv ./src/vendor/golang_org/x/crypto/chacha20poly1305/chacha20poly1305_test_vectors.go ./src/vendor/golang_org/x/crypto/chacha20poly1305/chacha20poly1305_vectors_test.go
%build
# print out system information
uname -a
@ -509,6 +507,9 @@ fi
%endif
%changelog
* Tue Jul 11 2017 Jakub Čajka <jcajka@redhat.com> - 1.9-0.beta2.1
- bump to beta2
* Thu May 25 2017 Jakub Čajka <jcajka@redhat.com> - 1.8.3-1
- bump to 1.8.3
- fix for CVE-2017-8932

18
s390x-ignore-L0syms.patch Normal file
View File

@ -0,0 +1,18 @@
diff --git a/src/cmd/link/internal/ld/ldelf.go b/src/cmd/link/internal/ld/ldelf.go
index d4f9fc4..87dabaa 100644
--- a/src/cmd/link/internal/ld/ldelf.go
+++ b/src/cmd/link/internal/ld/ldelf.go
@@ -799,6 +799,13 @@ func ldelf(ctxt *Link, f *bio.Reader, pkg string, length int64, pn string) {
continue
}
+ if sect.name == ".debug_str" && strings.HasPrefix(sym.name, "L0") && sym.type_ == 0 {
+ // introduced by https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=49fced1206db40c71208c201165d65f92c69cebe on s390x
+ // TODO investigate from where they are actually coming from
+ // See issue
+ continue
+ }
+
if strings.HasPrefix(sym.name, ".LASF") { // gcc on s390x does this
continue
}

View File

@ -1 +1 @@
SHA512 (go1.8.3.src.tar.gz) = c6e67dd9e3acdf2aa776d920f91f3fb1802d624ba5d51e06b2c7c6b71bcfaf91f4024f7a442cecde69175c589f7f1163f0ae86d887e15ddde710e53ce0961284
SHA512 (go1.9beta2.src.tar.gz) = 562770efb455465c19412c12053f6fc9aeadfaf045befbb5b0d23152b8d7956db28792100500feb6e89c7a608925247359292e534adf272f7d3286270a0621a5