From 5767354120e6457ba9b75f1266e8cc55f2307b03 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20=C4=8Cajka?= Date: Wed, 12 Jul 2017 13:38:36 +0200 Subject: [PATCH] Bump to 1.9beta2 Workaround build failure on s390x --- .gitignore | 1 + golang-1.2-verbose-build.patch | 18 +++++++------ golang-1.5-bootstrap-binary-path.patch | 35 +++++++++++++------------- golang.spec | 21 ++++++++-------- s390x-ignore-L0syms.patch | 18 +++++++++++++ sources | 2 +- 6 files changed, 59 insertions(+), 36 deletions(-) create mode 100644 s390x-ignore-L0syms.patch diff --git a/.gitignore b/.gitignore index 992c313..927a316 100644 --- a/.gitignore +++ b/.gitignore @@ -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 diff --git a/golang-1.2-verbose-build.patch b/golang-1.2-verbose-build.patch index e9c5edf..c9dbba2 100644 --- a/golang-1.2-verbose-build.patch +++ b/golang-1.2-verbose-build.patch @@ -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). diff --git a/golang-1.5-bootstrap-binary-path.patch b/golang-1.5-bootstrap-binary-path.patch index d0e1f34..af7d069 100644 --- a/golang-1.5-bootstrap-binary-path.patch +++ b/golang-1.5-bootstrap-binary-path.patch @@ -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 diff --git a/golang.spec b/golang.spec index e1b8d21..98a4112 100644 --- a/golang.spec +++ b/golang.spec @@ -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 - 1.9-0.beta2.1 +- bump to beta2 + * Thu May 25 2017 Jakub Čajka - 1.8.3-1 - bump to 1.8.3 - fix for CVE-2017-8932 diff --git a/s390x-ignore-L0syms.patch b/s390x-ignore-L0syms.patch new file mode 100644 index 0000000..5047f82 --- /dev/null +++ b/s390x-ignore-L0syms.patch @@ -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 + } diff --git a/sources b/sources index 178856e..c5fd0fc 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (go1.8.3.src.tar.gz) = c6e67dd9e3acdf2aa776d920f91f3fb1802d624ba5d51e06b2c7c6b71bcfaf91f4024f7a442cecde69175c589f7f1163f0ae86d887e15ddde710e53ce0961284 +SHA512 (go1.9beta2.src.tar.gz) = 562770efb455465c19412c12053f6fc9aeadfaf045befbb5b0d23152b8d7956db28792100500feb6e89c7a608925247359292e534adf272f7d3286270a0621a5